summaryrefslogtreecommitdiff
path: root/deps/npm
diff options
context:
space:
mode:
authorRebecca Turner <me@re-becca.org>2018-04-20 18:26:37 -0700
committerRebecca Turner <me@re-becca.org>2018-05-24 23:24:45 -0700
commit468ab4519e1b92473acefb22801497a1af6aebae (patch)
treebdac1d062cd4b094bde3a21147bab5d82c792ece /deps/npm
parentac8226115e2192a7a46ba07789fa5136f74223e1 (diff)
downloadandroid-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.tar.gz
android-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.tar.bz2
android-node-v8-468ab4519e1b92473acefb22801497a1af6aebae.zip
deps: upgrade npm to 6.1.0
PR-URL: https://github.com/nodejs/node/pull/20190 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Diffstat (limited to 'deps/npm')
-rw-r--r--deps/npm/.github/issue_template.md1
-rw-r--r--deps/npm/.mailmap7
-rw-r--r--deps/npm/.npmignore11
-rw-r--r--deps/npm/.travis.yml5
-rw-r--r--deps/npm/AUTHORS48
-rw-r--r--deps/npm/CHANGELOG.md1950
-rw-r--r--deps/npm/Makefile4
-rw-r--r--deps/npm/README.md4
-rwxr-xr-xdeps/npm/bin/npm-cli.js75
-rw-r--r--deps/npm/bin/npx5
-rw-r--r--deps/npm/bin/npx.cmd3
-rw-r--r--deps/npm/changelogs/CHANGELOG-5.md2360
-rw-r--r--deps/npm/doc/cli/npm-audit.md94
-rw-r--r--deps/npm/doc/cli/npm-ci.md58
-rw-r--r--deps/npm/doc/cli/npm-hook.md72
-rw-r--r--deps/npm/doc/cli/npm-init.md62
-rw-r--r--deps/npm/doc/cli/npm-install-ci-test.md16
-rw-r--r--deps/npm/doc/cli/npm-install.md10
-rw-r--r--deps/npm/doc/cli/npm-ls.md2
-rw-r--r--deps/npm/doc/cli/npm-outdated.md2
-rw-r--r--deps/npm/doc/cli/npm-prune.md16
-rw-r--r--deps/npm/doc/cli/npm-run-script.md4
-rw-r--r--deps/npm/doc/cli/npm-team.md3
-rw-r--r--deps/npm/doc/cli/npm-update.md28
-rw-r--r--deps/npm/doc/cli/npm-version.md2
-rw-r--r--deps/npm/doc/cli/npm.md2
-rw-r--r--deps/npm/doc/files/npm-folders.md2
-rw-r--r--deps/npm/doc/files/npm-package-locks.md19
-rw-r--r--deps/npm/doc/files/package-lock.json.md10
-rw-r--r--deps/npm/doc/files/package.json.md48
-rw-r--r--deps/npm/doc/misc/npm-coding-style.md2
-rw-r--r--deps/npm/doc/misc/npm-config.md27
-rw-r--r--deps/npm/doc/misc/npm-developers.md2
-rw-r--r--deps/npm/doc/misc/npm-index.md18
-rw-r--r--deps/npm/doc/misc/npm-scope.md2
-rw-r--r--deps/npm/doc/misc/semver.md22
-rw-r--r--deps/npm/doc/spec/package-lock.md4
-rw-r--r--deps/npm/html/doc/README.html6
-rw-r--r--deps/npm/html/doc/cli/npm-access.html2
-rw-r--r--deps/npm/html/doc/cli/npm-adduser.html2
-rw-r--r--deps/npm/html/doc/cli/npm-audit.html88
-rw-r--r--deps/npm/html/doc/cli/npm-bin.html2
-rw-r--r--deps/npm/html/doc/cli/npm-bugs.html2
-rw-r--r--deps/npm/html/doc/cli/npm-build.html2
-rw-r--r--deps/npm/html/doc/cli/npm-bundle.html2
-rw-r--r--deps/npm/html/doc/cli/npm-cache.html2
-rw-r--r--deps/npm/html/doc/cli/npm-ci.html64
-rw-r--r--deps/npm/html/doc/cli/npm-completion.html2
-rw-r--r--deps/npm/html/doc/cli/npm-config.html2
-rw-r--r--deps/npm/html/doc/cli/npm-dedupe.html2
-rw-r--r--deps/npm/html/doc/cli/npm-deprecate.html2
-rw-r--r--deps/npm/html/doc/cli/npm-dist-tag.html2
-rw-r--r--deps/npm/html/doc/cli/npm-docs.html2
-rw-r--r--deps/npm/html/doc/cli/npm-doctor.html12
-rw-r--r--deps/npm/html/doc/cli/npm-edit.html2
-rw-r--r--deps/npm/html/doc/cli/npm-explore.html2
-rw-r--r--deps/npm/html/doc/cli/npm-help-search.html2
-rw-r--r--deps/npm/html/doc/cli/npm-help.html2
-rw-r--r--deps/npm/html/doc/cli/npm-hook.html63
-rw-r--r--deps/npm/html/doc/cli/npm-init.html52
-rw-r--r--deps/npm/html/doc/cli/npm-install-ci-test.html36
-rw-r--r--deps/npm/html/doc/cli/npm-install-test.html2
-rw-r--r--deps/npm/html/doc/cli/npm-install.html12
-rw-r--r--deps/npm/html/doc/cli/npm-link.html2
-rw-r--r--deps/npm/html/doc/cli/npm-logout.html2
-rw-r--r--deps/npm/html/doc/cli/npm-ls.html6
-rw-r--r--deps/npm/html/doc/cli/npm-outdated.html11
-rw-r--r--deps/npm/html/doc/cli/npm-owner.html2
-rw-r--r--deps/npm/html/doc/cli/npm-pack.html2
-rw-r--r--deps/npm/html/doc/cli/npm-ping.html2
-rw-r--r--deps/npm/html/doc/cli/npm-prefix.html2
-rw-r--r--deps/npm/html/doc/cli/npm-profile.html2
-rw-r--r--deps/npm/html/doc/cli/npm-prune.html14
-rw-r--r--deps/npm/html/doc/cli/npm-publish.html2
-rw-r--r--deps/npm/html/doc/cli/npm-rebuild.html2
-rw-r--r--deps/npm/html/doc/cli/npm-repo.html2
-rw-r--r--deps/npm/html/doc/cli/npm-restart.html2
-rw-r--r--deps/npm/html/doc/cli/npm-root.html2
-rw-r--r--deps/npm/html/doc/cli/npm-run-script.html5
-rw-r--r--deps/npm/html/doc/cli/npm-search.html2
-rw-r--r--deps/npm/html/doc/cli/npm-shrinkwrap.html2
-rw-r--r--deps/npm/html/doc/cli/npm-star.html2
-rw-r--r--deps/npm/html/doc/cli/npm-stars.html2
-rw-r--r--deps/npm/html/doc/cli/npm-start.html2
-rw-r--r--deps/npm/html/doc/cli/npm-stop.html2
-rw-r--r--deps/npm/html/doc/cli/npm-team.html5
-rw-r--r--deps/npm/html/doc/cli/npm-test.html2
-rw-r--r--deps/npm/html/doc/cli/npm-token.html2
-rw-r--r--deps/npm/html/doc/cli/npm-uninstall.html2
-rw-r--r--deps/npm/html/doc/cli/npm-unpublish.html4
-rw-r--r--deps/npm/html/doc/cli/npm-update.html48
-rw-r--r--deps/npm/html/doc/cli/npm-version.html4
-rw-r--r--deps/npm/html/doc/cli/npm-view.html2
-rw-r--r--deps/npm/html/doc/cli/npm-whoami.html2
-rw-r--r--deps/npm/html/doc/cli/npm.html8
-rw-r--r--deps/npm/html/doc/files/npm-folders.html14
-rw-r--r--deps/npm/html/doc/files/npm-global.html14
-rw-r--r--deps/npm/html/doc/files/npm-json.html47
-rw-r--r--deps/npm/html/doc/files/npm-package-locks.html19
-rw-r--r--deps/npm/html/doc/files/npm-shrinkwrap.json.html2
-rw-r--r--deps/npm/html/doc/files/npmrc.html2
-rw-r--r--deps/npm/html/doc/files/package-lock.json.html8
-rw-r--r--deps/npm/html/doc/files/package.json.html47
-rw-r--r--deps/npm/html/doc/index.html12
-rw-r--r--deps/npm/html/doc/misc/npm-coding-style.html4
-rw-r--r--deps/npm/html/doc/misc/npm-config.html27
-rw-r--r--deps/npm/html/doc/misc/npm-developers.html6
-rw-r--r--deps/npm/html/doc/misc/npm-disputes.html14
-rw-r--r--deps/npm/html/doc/misc/npm-index.html12
-rw-r--r--deps/npm/html/doc/misc/npm-orgs.html2
-rw-r--r--deps/npm/html/doc/misc/npm-registry.html2
-rw-r--r--deps/npm/html/doc/misc/npm-scope.html4
-rw-r--r--deps/npm/html/doc/misc/npm-scripts.html16
-rw-r--r--deps/npm/html/doc/misc/removing-npm.html2
-rw-r--r--deps/npm/html/doc/misc/semver.html29
-rw-r--r--deps/npm/lib/access.js3
-rw-r--r--deps/npm/lib/adduser.js2
-rw-r--r--deps/npm/lib/audit.js264
-rw-r--r--deps/npm/lib/auth/legacy.js100
-rw-r--r--deps/npm/lib/auth/sso.js7
-rw-r--r--deps/npm/lib/bugs.js5
-rw-r--r--deps/npm/lib/build.js4
-rw-r--r--deps/npm/lib/cache.js1
-rw-r--r--deps/npm/lib/ci.js40
-rw-r--r--deps/npm/lib/completion.js4
-rw-r--r--deps/npm/lib/config.js30
-rw-r--r--deps/npm/lib/config/cmd-list.js11
-rw-r--r--deps/npm/lib/config/core.js34
-rw-r--r--deps/npm/lib/config/defaults.js18
-rw-r--r--deps/npm/lib/config/fetch-opts.js12
-rw-r--r--deps/npm/lib/config/get-credentials-by-uri.js6
-rw-r--r--deps/npm/lib/config/load-prefix.js2
-rw-r--r--deps/npm/lib/config/pacote.js2
-rw-r--r--deps/npm/lib/config/set-credentials-by-uri.js2
-rw-r--r--deps/npm/lib/dedupe.js4
-rw-r--r--deps/npm/lib/deprecate.js1
-rw-r--r--deps/npm/lib/dist-tag.js1
-rw-r--r--deps/npm/lib/docs.js5
-rw-r--r--deps/npm/lib/edit.js4
-rw-r--r--deps/npm/lib/help-search.js18
-rw-r--r--deps/npm/lib/help.js10
-rw-r--r--deps/npm/lib/hook.js135
-rw-r--r--deps/npm/lib/init.js46
-rw-r--r--deps/npm/lib/install-ci-test.js26
-rw-r--r--deps/npm/lib/install.js148
-rw-r--r--deps/npm/lib/install/action/extract-worker.js4
-rw-r--r--deps/npm/lib/install/action/extract.js32
-rw-r--r--deps/npm/lib/install/action/fetch.js2
-rw-r--r--deps/npm/lib/install/actions.js2
-rw-r--r--deps/npm/lib/install/audit.js272
-rw-r--r--deps/npm/lib/install/copy-tree.js17
-rw-r--r--deps/npm/lib/install/decompose-actions.js79
-rw-r--r--deps/npm/lib/install/deps.js130
-rw-r--r--deps/npm/lib/install/diff-trees.js42
-rw-r--r--deps/npm/lib/install/get-requested.js4
-rw-r--r--deps/npm/lib/install/has-modern-meta.js20
-rw-r--r--deps/npm/lib/install/inflate-shrinkwrap.js81
-rw-r--r--deps/npm/lib/install/is-only-optional.js3
-rw-r--r--deps/npm/lib/install/read-shrinkwrap.js68
-rw-r--r--deps/npm/lib/install/save.js12
-rw-r--r--deps/npm/lib/link.js6
-rw-r--r--deps/npm/lib/ls.js16
-rw-r--r--deps/npm/lib/npm.js28
-rw-r--r--deps/npm/lib/outdated.js181
-rw-r--r--deps/npm/lib/owner.js3
-rw-r--r--deps/npm/lib/pack.js170
-rw-r--r--deps/npm/lib/profile.js29
-rw-r--r--deps/npm/lib/prune.js2
-rw-r--r--deps/npm/lib/publish.js45
-rw-r--r--deps/npm/lib/repo.js9
-rw-r--r--deps/npm/lib/run-script.js2
-rw-r--r--deps/npm/lib/search/format-package-stream.js16
-rw-r--r--deps/npm/lib/search/package-filter.js20
-rw-r--r--deps/npm/lib/shrinkwrap.js48
-rw-r--r--deps/npm/lib/team.js3
-rw-r--r--deps/npm/lib/test.js1
-rw-r--r--deps/npm/lib/token.js31
-rw-r--r--deps/npm/lib/unbuild.js2
-rw-r--r--deps/npm/lib/uninstall.js4
-rw-r--r--deps/npm/lib/unpublish.js9
-rw-r--r--deps/npm/lib/update.js2
-rw-r--r--deps/npm/lib/utils/error-handler.js2
-rw-r--r--deps/npm/lib/utils/error-message.js117
-rw-r--r--deps/npm/lib/utils/gunzip-maybe.js4
-rw-r--r--deps/npm/lib/utils/metrics-launch.js1
-rw-r--r--deps/npm/lib/utils/open-url.js16
-rw-r--r--deps/npm/lib/utils/parse-json.js5
-rw-r--r--deps/npm/lib/utils/perf.js3
-rw-r--r--deps/npm/lib/utils/pick-manifest-from-registry-metadata.js2
-rw-r--r--deps/npm/lib/utils/read-user-info.js10
-rw-r--r--deps/npm/lib/utils/stringify-package.js17
-rw-r--r--deps/npm/lib/utils/unsupported.js7
-rw-r--r--deps/npm/lib/version.js32
-rw-r--r--deps/npm/lib/view.js165
-rw-r--r--deps/npm/lib/xmas.js2
-rw-r--r--deps/npm/man/man1/npm-README.18
-rw-r--r--deps/npm/man/man1/npm-access.12
-rw-r--r--deps/npm/man/man1/npm-adduser.14
-rw-r--r--deps/npm/man/man1/npm-audit.1132
-rw-r--r--deps/npm/man/man1/npm-bin.12
-rw-r--r--deps/npm/man/man1/npm-bugs.14
-rw-r--r--deps/npm/man/man1/npm-build.12
-rw-r--r--deps/npm/man/man1/npm-bundle.12
-rw-r--r--deps/npm/man/man1/npm-cache.16
-rw-r--r--deps/npm/man/man1/npm-ci.176
-rw-r--r--deps/npm/man/man1/npm-completion.12
-rw-r--r--deps/npm/man/man1/npm-config.12
-rw-r--r--deps/npm/man/man1/npm-dedupe.12
-rw-r--r--deps/npm/man/man1/npm-deprecate.12
-rw-r--r--deps/npm/man/man1/npm-dist-tag.12
-rw-r--r--deps/npm/man/man1/npm-docs.14
-rw-r--r--deps/npm/man/man1/npm-doctor.12
-rw-r--r--deps/npm/man/man1/npm-edit.12
-rw-r--r--deps/npm/man/man1/npm-explore.12
-rw-r--r--deps/npm/man/man1/npm-help-search.12
-rw-r--r--deps/npm/man/man1/npm-help.12
-rw-r--r--deps/npm/man/man1/npm-hook.197
-rw-r--r--deps/npm/man/man1/npm-init.178
-rw-r--r--deps/npm/man/man1/npm-install-ci-test.123
-rw-r--r--deps/npm/man/man1/npm-install-test.12
-rw-r--r--deps/npm/man/man1/npm-install.115
-rw-r--r--deps/npm/man/man1/npm-link.12
-rw-r--r--deps/npm/man/man1/npm-logout.14
-rw-r--r--deps/npm/man/man1/npm-ls.16
-rw-r--r--deps/npm/man/man1/npm-outdated.113
-rw-r--r--deps/npm/man/man1/npm-owner.12
-rw-r--r--deps/npm/man/man1/npm-pack.12
-rw-r--r--deps/npm/man/man1/npm-ping.12
-rw-r--r--deps/npm/man/man1/npm-prefix.12
-rw-r--r--deps/npm/man/man1/npm-profile.12
-rw-r--r--deps/npm/man/man1/npm-prune.118
-rw-r--r--deps/npm/man/man1/npm-publish.12
-rw-r--r--deps/npm/man/man1/npm-rebuild.12
-rw-r--r--deps/npm/man/man1/npm-repo.12
-rw-r--r--deps/npm/man/man1/npm-restart.12
-rw-r--r--deps/npm/man/man1/npm-root.12
-rw-r--r--deps/npm/man/man1/npm-run-script.110
-rw-r--r--deps/npm/man/man1/npm-search.14
-rw-r--r--deps/npm/man/man1/npm-shrinkwrap.12
-rw-r--r--deps/npm/man/man1/npm-star.12
-rw-r--r--deps/npm/man/man1/npm-stars.12
-rw-r--r--deps/npm/man/man1/npm-start.14
-rw-r--r--deps/npm/man/man1/npm-stop.12
-rw-r--r--deps/npm/man/man1/npm-team.15
-rw-r--r--deps/npm/man/man1/npm-test.12
-rw-r--r--deps/npm/man/man1/npm-token.12
-rw-r--r--deps/npm/man/man1/npm-uninstall.12
-rw-r--r--deps/npm/man/man1/npm-unpublish.14
-rw-r--r--deps/npm/man/man1/npm-update.162
-rw-r--r--deps/npm/man/man1/npm-version.14
-rw-r--r--deps/npm/man/man1/npm-view.12
-rw-r--r--deps/npm/man/man1/npm-whoami.12
-rw-r--r--deps/npm/man/man1/npm.18
-rw-r--r--deps/npm/man/man1/npx.19
-rw-r--r--deps/npm/man/man5/npm-folders.514
-rw-r--r--deps/npm/man/man5/npm-global.514
-rw-r--r--deps/npm/man/man5/npm-json.553
-rw-r--r--deps/npm/man/man5/npm-package-locks.523
-rw-r--r--deps/npm/man/man5/npm-shrinkwrap.json.52
-rw-r--r--deps/npm/man/man5/npmrc.52
-rw-r--r--deps/npm/man/man5/package-lock.json.510
-rw-r--r--deps/npm/man/man5/package.json.553
-rw-r--r--deps/npm/man/man7/npm-coding-style.74
-rw-r--r--deps/npm/man/man7/npm-config.739
-rw-r--r--deps/npm/man/man7/npm-developers.74
-rw-r--r--deps/npm/man/man7/npm-disputes.76
-rw-r--r--deps/npm/man/man7/npm-index.716
-rw-r--r--deps/npm/man/man7/npm-orgs.72
-rw-r--r--deps/npm/man/man7/npm-registry.72
-rw-r--r--deps/npm/man/man7/npm-scope.74
-rw-r--r--deps/npm/man/man7/npm-scripts.716
-rw-r--r--deps/npm/man/man7/removing-npm.72
-rw-r--r--deps/npm/man/man7/semver.726
-rwxr-xr-xdeps/npm/node_modules/JSONStream/bin.js10
-rwxr-xr-xdeps/npm/node_modules/JSONStream/index.js8
-rw-r--r--deps/npm/node_modules/JSONStream/node_modules/jsonparse/package.json58
-rw-r--r--deps/npm/node_modules/JSONStream/node_modules/through/package.json72
-rw-r--r--deps/npm/node_modules/JSONStream/package.json32
-rw-r--r--deps/npm/node_modules/abbrev/package.json12
-rw-r--r--deps/npm/node_modules/agent-base/.travis.yml (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml)0
-rw-r--r--deps/npm/node_modules/agent-base/History.md113
-rw-r--r--deps/npm/node_modules/agent-base/README.md145
-rw-r--r--deps/npm/node_modules/agent-base/index.js160
-rw-r--r--deps/npm/node_modules/agent-base/package.json69
-rw-r--r--deps/npm/node_modules/agent-base/patch-core.js37
-rw-r--r--deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key (renamed from 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)0
-rw-r--r--deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem (renamed from 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)0
-rw-r--r--deps/npm/node_modules/agent-base/test/test.js673
-rw-r--r--deps/npm/node_modules/agentkeepalive/History.md148
-rw-r--r--deps/npm/node_modules/agentkeepalive/README.md248
-rw-r--r--deps/npm/node_modules/agentkeepalive/browser.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js)0
-rw-r--r--deps/npm/node_modules/agentkeepalive/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js)0
-rw-r--r--deps/npm/node_modules/agentkeepalive/lib/_http_agent.js416
-rw-r--r--deps/npm/node_modules/agentkeepalive/lib/agent.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js)0
-rw-r--r--deps/npm/node_modules/agentkeepalive/lib/https_agent.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js)0
-rw-r--r--deps/npm/node_modules/agentkeepalive/package.json84
-rw-r--r--deps/npm/node_modules/ajv/.tonic_example.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/.tonic_example.js)0
-rw-r--r--deps/npm/node_modules/ajv/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/LICENSE)0
-rw-r--r--deps/npm/node_modules/ajv/README.md1327
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.bundle.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.bundle.js)681
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.min.js3
-rw-r--r--deps/npm/node_modules/ajv/dist/ajv.min.js.map1
-rw-r--r--deps/npm/node_modules/ajv/dist/nodent.min.js2
-rw-r--r--deps/npm/node_modules/ajv/dist/regenerator.min.js2
-rw-r--r--deps/npm/node_modules/ajv/lib/$data.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/$data.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/ajv.d.ts358
-rw-r--r--deps/npm/node_modules/ajv/lib/ajv.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.js)49
-rw-r--r--deps/npm/node_modules/ajv/lib/cache.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/cache.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/_rules.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/_rules.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/async.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/async.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/equal.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/equal.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/error_classes.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/error_classes.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/formats.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/formats.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/index.js380
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/resolve.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/resolve.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/rules.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/rules.js)2
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/schema_obj.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/schema_obj.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/ucs2length.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/ucs2length.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/compile/util.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/util.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limit.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limit.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitItems.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitItems.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitLength.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitLength.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitProperties.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/allOf.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/allOf.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/anyOf.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/anyOf.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/coerce.def (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/coerce.def)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/const.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/const.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/contains.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/contains.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/custom.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/custom.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/defaults.def (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/defaults.def)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/definitions.def (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/definitions.def)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/dependencies.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/dependencies.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/enum.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/enum.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/errors.def (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/errors.def)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/format.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/format.jst)2
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/items.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/items.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/missing.def (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/missing.def)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/multipleOf.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/multipleOf.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/not.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/not.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/oneOf.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/oneOf.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/pattern.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/pattern.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/properties.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/properties.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/propertyNames.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/propertyNames.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/ref.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/ref.jst)4
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/required.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/required.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/uniqueItems.jst)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dot/validate.jst (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/validate.jst)8
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/README.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/README.md)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limit.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limit.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitItems.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitLength.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitProperties.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/allOf.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/allOf.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/anyOf.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/anyOf.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/const.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/const.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/contains.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/contains.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/custom.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/custom.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/dependencies.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/dependencies.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/enum.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/enum.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/format.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/format.js)2
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/items.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/items.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/multipleOf.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/not.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/not.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/oneOf.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/oneOf.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/pattern.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/pattern.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/properties.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/properties.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/propertyNames.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/ref.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/ref.js)4
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/required.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/required.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/uniqueItems.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/dotjs/validate.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/validate.js)8
-rw-r--r--deps/npm/node_modules/ajv/lib/keyword.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/keyword.js)5
-rw-r--r--deps/npm/node_modules/ajv/lib/patternGroups.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/patternGroups.js)0
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/$data.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/$data.json)0
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-04.json)0
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-06.json)4
-rw-r--r--deps/npm/node_modules/ajv/lib/refs/json-schema-v5.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-v5.json)0
-rw-r--r--deps/npm/node_modules/ajv/package.json132
-rw-r--r--deps/npm/node_modules/ajv/scripts/.eslintrc.yml (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/.eslintrc.yml)0
-rw-r--r--deps/npm/node_modules/ajv/scripts/bundle.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/bundle.js)0
-rw-r--r--deps/npm/node_modules/ajv/scripts/compile-dots.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/compile-dots.js)0
-rwxr-xr-xdeps/npm/node_modules/ajv/scripts/info (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/info)0
-rwxr-xr-xdeps/npm/node_modules/ajv/scripts/prepare-tests (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/prepare-tests)0
-rwxr-xr-xdeps/npm/node_modules/ajv/scripts/travis-gh-pages (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/travis-gh-pages)0
-rw-r--r--deps/npm/node_modules/ansi-align/CHANGELOG.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/ansi-align/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/LICENSE)0
-rw-r--r--deps/npm/node_modules/ansi-align/README.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/README.md)0
-rw-r--r--deps/npm/node_modules/ansi-align/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/index.js)0
-rw-r--r--deps/npm/node_modules/ansi-align/package.json70
-rw-r--r--deps/npm/node_modules/ansi-regex/package.json25
-rw-r--r--deps/npm/node_modules/ansi-styles/index.js165
-rw-r--r--deps/npm/node_modules/ansi-styles/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/license)0
-rw-r--r--deps/npm/node_modules/ansi-styles/package.json88
-rw-r--r--deps/npm/node_modules/ansi-styles/readme.md147
-rw-r--r--deps/npm/node_modules/ansicolors/package.json30
-rw-r--r--deps/npm/node_modules/ansistyles/package.json30
-rw-r--r--deps/npm/node_modules/aproba/package.json19
-rw-r--r--deps/npm/node_modules/archy/package.json29
-rw-r--r--deps/npm/node_modules/are-we-there-yet/CHANGES.md (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/LICENSE (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/README.md195
-rw-r--r--deps/npm/node_modules/are-we-there-yet/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/package.json63
-rw-r--r--deps/npm/node_modules/are-we-there-yet/tracker-base.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/tracker-group.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/tracker-stream.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js)0
-rw-r--r--deps/npm/node_modules/are-we-there-yet/tracker.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js)0
-rw-r--r--deps/npm/node_modules/asap/CHANGES.md69
-rw-r--r--deps/npm/node_modules/asap/LICENSE.md (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/asap/README.md (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/README.md)0
-rw-r--r--deps/npm/node_modules/asap/asap.js (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/asap.js)0
-rw-r--r--deps/npm/node_modules/asap/browser-asap.js (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js)0
-rw-r--r--deps/npm/node_modules/asap/browser-raw.js (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js)0
-rw-r--r--deps/npm/node_modules/asap/package.json88
-rw-r--r--deps/npm/node_modules/asap/raw.js (renamed from deps/npm/node_modules/dezalgo/node_modules/asap/raw.js)0
-rw-r--r--deps/npm/node_modules/asn1/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.npmignore)0
-rw-r--r--deps/npm/node_modules/asn1/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.travis.yml)0
-rw-r--r--deps/npm/node_modules/asn1/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/LICENSE)0
-rw-r--r--deps/npm/node_modules/asn1/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/README.md)0
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/errors.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js)0
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js)0
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/reader.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js)0
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/types.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js)0
-rw-r--r--deps/npm/node_modules/asn1/lib/ber/writer.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js)0
-rw-r--r--deps/npm/node_modules/asn1/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js)0
-rw-r--r--deps/npm/node_modules/asn1/package.json65
-rw-r--r--deps/npm/node_modules/asn1/tst/ber/reader.test.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/reader.test.js)0
-rw-r--r--deps/npm/node_modules/asn1/tst/ber/writer.test.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/writer.test.js)0
-rw-r--r--deps/npm/node_modules/assert-plus/AUTHORS (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/AUTHORS)0
-rw-r--r--deps/npm/node_modules/assert-plus/CHANGES.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/CHANGES.md)0
-rw-r--r--deps/npm/node_modules/assert-plus/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md)0
-rw-r--r--deps/npm/node_modules/assert-plus/assert.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js)0
-rw-r--r--deps/npm/node_modules/assert-plus/package.json87
-rw-r--r--deps/npm/node_modules/asynckit/LICENSE (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/LICENSE)0
-rw-r--r--deps/npm/node_modules/asynckit/README.md (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/README.md)0
-rw-r--r--deps/npm/node_modules/asynckit/bench.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/bench.js)0
-rw-r--r--deps/npm/node_modules/asynckit/index.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/index.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/abort.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/abort.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/async.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/async.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/defer.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/defer.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/iterate.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/iterate.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_asynckit.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_asynckit.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_parallel.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_parallel.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_serial.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial_ordered.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/state.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/state.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/streamify.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/streamify.js)0
-rw-r--r--deps/npm/node_modules/asynckit/lib/terminator.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/terminator.js)0
-rw-r--r--deps/npm/node_modules/asynckit/package.json91
-rw-r--r--deps/npm/node_modules/asynckit/parallel.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/parallel.js)0
-rw-r--r--deps/npm/node_modules/asynckit/serial.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serial.js)0
-rw-r--r--deps/npm/node_modules/asynckit/serialOrdered.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serialOrdered.js)0
-rw-r--r--deps/npm/node_modules/asynckit/stream.js (renamed from deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/stream.js)0
-rw-r--r--deps/npm/node_modules/aws-sign2/LICENSE (renamed from deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE)0
-rw-r--r--deps/npm/node_modules/aws-sign2/README.md (renamed from deps/npm/node_modules/request/node_modules/aws-sign2/README.md)0
-rw-r--r--deps/npm/node_modules/aws-sign2/index.js212
-rw-r--r--deps/npm/node_modules/aws-sign2/package.json50
-rw-r--r--deps/npm/node_modules/aws4/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/aws4/.travis.yml)0
-rw-r--r--deps/npm/node_modules/aws4/LICENSE (renamed from deps/npm/node_modules/request/node_modules/aws4/LICENSE)0
-rw-r--r--deps/npm/node_modules/aws4/README.md522
-rw-r--r--deps/npm/node_modules/aws4/aws4.js (renamed from deps/npm/node_modules/request/node_modules/aws4/aws4.js)6
-rw-r--r--deps/npm/node_modules/aws4/lru.js (renamed from deps/npm/node_modules/request/node_modules/aws4/lru.js)0
-rw-r--r--deps/npm/node_modules/aws4/package.json104
-rw-r--r--deps/npm/node_modules/balanced-match/.npmignore (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore)0
-rw-r--r--deps/npm/node_modules/balanced-match/LICENSE.md (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/balanced-match/README.md (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md)0
-rw-r--r--deps/npm/node_modules/balanced-match/index.js (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js)0
-rw-r--r--deps/npm/node_modules/balanced-match/package.json77
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/README.md)0
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/index.js)0
-rw-r--r--deps/npm/node_modules/bcrypt-pbkdf/package.json36
-rw-r--r--deps/npm/node_modules/bin-links/CHANGELOG.md20
-rw-r--r--deps/npm/node_modules/bin-links/index.js166
-rw-r--r--deps/npm/node_modules/bin-links/package.json38
-rw-r--r--deps/npm/node_modules/block-stream/LICENCE (renamed from deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENCE)0
-rw-r--r--deps/npm/node_modules/block-stream/LICENSE (renamed from deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE)0
-rw-r--r--deps/npm/node_modules/block-stream/README.md (renamed from deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/README.md)0
-rw-r--r--deps/npm/node_modules/block-stream/block-stream.js (renamed from deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/block-stream.js)0
-rw-r--r--deps/npm/node_modules/block-stream/package.json60
-rw-r--r--deps/npm/node_modules/bluebird/package.json29
-rwxr-xr-xdeps/npm/node_modules/boom/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE)0
-rwxr-xr-xdeps/npm/node_modules/boom/README.md (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md)0
-rwxr-xr-xdeps/npm/node_modules/boom/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js)0
-rw-r--r--deps/npm/node_modules/boom/package.json61
-rw-r--r--deps/npm/node_modules/boxen/index.js138
-rw-r--r--deps/npm/node_modules/boxen/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/license)0
-rw-r--r--deps/npm/node_modules/boxen/package.json79
-rw-r--r--deps/npm/node_modules/boxen/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md)0
-rw-r--r--deps/npm/node_modules/brace-expansion/LICENSE21
-rw-r--r--deps/npm/node_modules/brace-expansion/README.md129
-rw-r--r--deps/npm/node_modules/brace-expansion/index.js (renamed from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/index.js)0
-rw-r--r--deps/npm/node_modules/brace-expansion/package.json75
-rw-r--r--deps/npm/node_modules/buffer-from/index.js69
-rw-r--r--deps/npm/node_modules/buffer-from/package.json50
-rw-r--r--deps/npm/node_modules/buffer-from/readme.md69
-rw-r--r--deps/npm/node_modules/buffer-from/test.js12
-rw-r--r--deps/npm/node_modules/builtin-modules/builtin-modules.json (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json)0
-rw-r--r--deps/npm/node_modules/builtin-modules/index.js (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js)0
-rw-r--r--deps/npm/node_modules/builtin-modules/license (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/license)0
-rw-r--r--deps/npm/node_modules/builtin-modules/package.json73
-rw-r--r--deps/npm/node_modules/builtin-modules/readme.md (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md)0
-rw-r--r--deps/npm/node_modules/builtin-modules/static.js (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js)0
-rw-r--r--deps/npm/node_modules/builtins/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/.travis.yml)0
-rw-r--r--deps/npm/node_modules/builtins/History.md39
-rw-r--r--deps/npm/node_modules/builtins/License (renamed from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/License)0
-rw-r--r--deps/npm/node_modules/builtins/Readme.md (renamed from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md)0
-rw-r--r--deps/npm/node_modules/builtins/builtins.json (renamed from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json)0
-rw-r--r--deps/npm/node_modules/builtins/package.json46
-rw-r--r--deps/npm/node_modules/builtins/test.js (renamed from deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/test.js)0
-rw-r--r--deps/npm/node_modules/byline/LICENSE (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/byline/LICENSE)0
-rw-r--r--deps/npm/node_modules/byline/README.md (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/byline/README.md)0
-rw-r--r--deps/npm/node_modules/byline/lib/byline.js (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/byline/lib/byline.js)0
-rw-r--r--deps/npm/node_modules/byline/package.json56
-rw-r--r--deps/npm/node_modules/byte-size/LICENSE21
-rw-r--r--deps/npm/node_modules/byte-size/README.hbs12
-rw-r--r--deps/npm/node_modules/byte-size/README.md105
-rw-r--r--deps/npm/node_modules/byte-size/index.js143
-rw-r--r--deps/npm/node_modules/byte-size/package.json76
-rw-r--r--deps/npm/node_modules/cacache/CHANGELOG.md60
-rw-r--r--deps/npm/node_modules/cacache/README.md4
-rw-r--r--deps/npm/node_modules/cacache/get.js36
-rw-r--r--deps/npm/node_modules/cacache/lib/content/read.js43
-rw-r--r--deps/npm/node_modules/cacache/lib/content/write.js4
-rw-r--r--deps/npm/node_modules/cacache/lib/entry-index.js27
-rw-r--r--deps/npm/node_modules/cacache/lib/util/tmp.js12
-rw-r--r--deps/npm/node_modules/cacache/lib/verify.js40
-rw-r--r--deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md190
-rw-r--r--deps/npm/node_modules/cacache/node_modules/ssri/README.md462
-rw-r--r--deps/npm/node_modules/cacache/node_modules/ssri/index.js334
-rw-r--r--deps/npm/node_modules/cacache/node_modules/ssri/package.json89
-rw-r--r--deps/npm/node_modules/cacache/node_modules/y18n/package.json65
-rw-r--r--deps/npm/node_modules/cacache/package.json68
-rw-r--r--deps/npm/node_modules/cacache/put.js28
-rw-r--r--deps/npm/node_modules/call-limit/package.json28
-rw-r--r--deps/npm/node_modules/camelcase/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/index.js)0
-rw-r--r--deps/npm/node_modules/camelcase/license (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/license)0
-rw-r--r--deps/npm/node_modules/camelcase/package.json75
-rw-r--r--deps/npm/node_modules/camelcase/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/readme.md)0
-rw-r--r--deps/npm/node_modules/capture-stack-trace/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/capture-stack-trace/package.json61
-rw-r--r--deps/npm/node_modules/capture-stack-trace/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/caseless/LICENSE (renamed from deps/npm/node_modules/request/node_modules/caseless/LICENSE)0
-rw-r--r--deps/npm/node_modules/caseless/README.md (renamed from deps/npm/node_modules/request/node_modules/caseless/README.md)0
-rw-r--r--deps/npm/node_modules/caseless/index.js (renamed from deps/npm/node_modules/request/node_modules/caseless/index.js)0
-rw-r--r--deps/npm/node_modules/caseless/package.json56
-rw-r--r--deps/npm/node_modules/caseless/test.js (renamed from deps/npm/node_modules/request/node_modules/caseless/test.js)0
-rw-r--r--deps/npm/node_modules/chalk/index.js228
-rw-r--r--deps/npm/node_modules/chalk/index.js.flow93
-rw-r--r--deps/npm/node_modules/chalk/license (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/license)0
-rw-r--r--deps/npm/node_modules/chalk/package.json107
-rw-r--r--deps/npm/node_modules/chalk/readme.md314
-rw-r--r--deps/npm/node_modules/chalk/templates.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js)32
-rw-r--r--deps/npm/node_modules/chalk/types/index.d.ts97
-rw-r--r--deps/npm/node_modules/chownr/package.json33
-rw-r--r--deps/npm/node_modules/ci-info/LICENSE21
-rw-r--r--deps/npm/node_modules/ci-info/README.md100
-rw-r--r--deps/npm/node_modules/ci-info/index.js48
-rw-r--r--deps/npm/node_modules/ci-info/package.json64
-rw-r--r--deps/npm/node_modules/cidr-regex/LICENSE22
-rw-r--r--deps/npm/node_modules/cidr-regex/README.md64
-rw-r--r--deps/npm/node_modules/cidr-regex/index.js13
-rw-r--r--deps/npm/node_modules/cidr-regex/package.json78
-rw-r--r--deps/npm/node_modules/cli-boxes/boxes.json (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/boxes.json)0
-rw-r--r--deps/npm/node_modules/cli-boxes/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/index.js)0
-rw-r--r--deps/npm/node_modules/cli-boxes/license (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license)0
-rw-r--r--deps/npm/node_modules/cli-boxes/package.json71
-rw-r--r--deps/npm/node_modules/cli-boxes/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-columns/LICENSE20
-rw-r--r--deps/npm/node_modules/cli-columns/README.md69
-rw-r--r--deps/npm/node_modules/cli-columns/color.js15
-rw-r--r--deps/npm/node_modules/cli-columns/index.js83
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js)0
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/license)0
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/ansi-regex/readme.md (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/index.js)0
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/cli-columns/node_modules/strip-ansi/readme.md (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-columns/package.json84
-rw-r--r--deps/npm/node_modules/cli-columns/test.js78
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/ansi-regex/index.js (renamed from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/ansi-regex/readme.md (renamed from deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE23
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md178
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js74
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js73
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js187
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js45
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js104
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js113
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js12
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js12
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js12
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js8
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js5
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js61
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/package.json61
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/colors/safe.js9
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/license (renamed from deps/npm/node_modules/glob/node_modules/path-is-absolute/license)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/package.json77
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/readme.md (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/lodash/package.json81
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json70
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json67
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json77
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/strip-ansi/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/index.js)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/license)0
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/cli-table2/node_modules/strip-ansi/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/readme.md)0
-rw-r--r--deps/npm/node_modules/cli-table2/package.json30
-rw-r--r--deps/npm/node_modules/cliui/CHANGELOG.md51
-rw-r--r--deps/npm/node_modules/cliui/LICENSE.txt (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/cliui/README.md115
-rw-r--r--deps/npm/node_modules/cliui/index.js324
-rw-r--r--deps/npm/node_modules/cliui/package.json99
-rw-r--r--deps/npm/node_modules/clone/.npmignore4
-rw-r--r--deps/npm/node_modules/clone/LICENSE (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE)0
-rw-r--r--deps/npm/node_modules/clone/README.md (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md)0
-rw-r--r--deps/npm/node_modules/clone/clone.iml10
-rw-r--r--deps/npm/node_modules/clone/clone.js (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js)8
-rw-r--r--deps/npm/node_modules/clone/package.json137
-rw-r--r--deps/npm/node_modules/cmd-shim/package.json31
-rw-r--r--deps/npm/node_modules/co/History.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/History.md)0
-rw-r--r--deps/npm/node_modules/co/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/LICENSE)0
-rw-r--r--deps/npm/node_modules/co/Readme.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/Readme.md)0
-rw-r--r--deps/npm/node_modules/co/index.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/index.js)0
-rw-r--r--deps/npm/node_modules/co/package.json66
-rw-r--r--deps/npm/node_modules/code-point-at/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/index.js)0
-rw-r--r--deps/npm/node_modules/code-point-at/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/license)0
-rw-r--r--deps/npm/node_modules/code-point-at/package.json74
-rw-r--r--deps/npm/node_modules/code-point-at/readme.md (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/readme.md)0
-rw-r--r--deps/npm/node_modules/color-convert/CHANGELOG.md (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/color-convert/LICENSE (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE)0
-rw-r--r--deps/npm/node_modules/color-convert/README.md (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md)0
-rw-r--r--deps/npm/node_modules/color-convert/conversions.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js)0
-rw-r--r--deps/npm/node_modules/color-convert/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js)0
-rw-r--r--deps/npm/node_modules/color-convert/package.json81
-rw-r--r--deps/npm/node_modules/color-convert/route.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js)5
-rw-r--r--deps/npm/node_modules/color-name/.eslintrc.json (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json)0
-rw-r--r--deps/npm/node_modules/color-name/.npmignore (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore)0
-rw-r--r--deps/npm/node_modules/color-name/LICENSE (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE)0
-rw-r--r--deps/npm/node_modules/color-name/README.md (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md)0
-rw-r--r--deps/npm/node_modules/color-name/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js)0
-rw-r--r--deps/npm/node_modules/color-name/package.json53
-rw-r--r--deps/npm/node_modules/color-name/test.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js)0
-rw-r--r--deps/npm/node_modules/colors/LICENSE25
-rw-r--r--deps/npm/node_modules/colors/README.md184
-rw-r--r--deps/npm/node_modules/colors/examples/normal-usage.js80
-rw-r--r--deps/npm/node_modules/colors/examples/safe-string.js75
-rw-r--r--deps/npm/node_modules/colors/index.d.ts136
-rw-r--r--deps/npm/node_modules/colors/lib/colors.js199
-rw-r--r--deps/npm/node_modules/colors/lib/custom/trap.js46
-rw-r--r--deps/npm/node_modules/colors/lib/custom/zalgo.js109
-rw-r--r--deps/npm/node_modules/colors/lib/extendStringPrototype.js106
-rw-r--r--deps/npm/node_modules/colors/lib/index.js13
-rw-r--r--deps/npm/node_modules/colors/lib/maps/america.js12
-rw-r--r--deps/npm/node_modules/colors/lib/maps/rainbow.js13
-rw-r--r--deps/npm/node_modules/colors/lib/maps/random.js12
-rw-r--r--deps/npm/node_modules/colors/lib/maps/zebra.js5
-rw-r--r--deps/npm/node_modules/colors/lib/styles.js (renamed from deps/npm/node_modules/cli-table2/node_modules/colors/lib/styles.js)6
-rw-r--r--deps/npm/node_modules/colors/lib/system/has-flag.js35
-rw-r--r--deps/npm/node_modules/colors/lib/system/supports-colors.js151
-rw-r--r--deps/npm/node_modules/colors/package.json68
-rw-r--r--deps/npm/node_modules/colors/safe.d.ts48
-rw-r--r--deps/npm/node_modules/colors/safe.js10
-rw-r--r--deps/npm/node_modules/colors/themes/generic-logging.js (renamed from deps/npm/node_modules/cli-table2/node_modules/colors/themes/generic-logging.js)4
-rw-r--r--deps/npm/node_modules/columnify/node_modules/ansi-regex/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/index.js)0
-rw-r--r--deps/npm/node_modules/columnify/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/license)0
-rw-r--r--deps/npm/node_modules/columnify/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/columnify/node_modules/ansi-regex/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/readme.md)0
-rw-r--r--deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE30
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md65
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json139
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html22
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.html148
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test.js372
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/package.json60
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/test.js34
-rw-r--r--deps/npm/node_modules/columnify/node_modules/wcwidth/package.json76
-rw-r--r--deps/npm/node_modules/columnify/package.json28
-rw-r--r--deps/npm/node_modules/combined-stream/License (renamed from deps/npm/node_modules/request/node_modules/combined-stream/License)0
-rw-r--r--deps/npm/node_modules/combined-stream/Readme.md138
-rw-r--r--deps/npm/node_modules/combined-stream/lib/combined_stream.js (renamed from deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js)3
-rw-r--r--deps/npm/node_modules/combined-stream/lib/defer.js26
-rw-r--r--deps/npm/node_modules/combined-stream/package.json58
-rw-r--r--deps/npm/node_modules/concat-map/.travis.yml (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml)0
-rw-r--r--deps/npm/node_modules/concat-map/LICENSE (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE)0
-rw-r--r--deps/npm/node_modules/concat-map/README.markdown (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown)0
-rw-r--r--deps/npm/node_modules/concat-map/example/map.js (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js)0
-rw-r--r--deps/npm/node_modules/concat-map/index.js (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js)0
-rw-r--r--deps/npm/node_modules/concat-map/package.json88
-rw-r--r--deps/npm/node_modules/concat-map/test/map.js (renamed from deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js)0
-rw-r--r--deps/npm/node_modules/concat-stream/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/concat-stream/index.js144
-rw-r--r--deps/npm/node_modules/concat-stream/package.json89
-rw-r--r--deps/npm/node_modules/concat-stream/readme.md102
-rw-r--r--deps/npm/node_modules/config-chain/node_modules/proto-list/package.json55
-rw-r--r--deps/npm/node_modules/config-chain/package.json28
-rw-r--r--deps/npm/node_modules/configstore/index.js106
-rw-r--r--deps/npm/node_modules/configstore/license9
-rw-r--r--deps/npm/node_modules/configstore/package.json79
-rw-r--r--deps/npm/node_modules/configstore/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md)0
-rw-r--r--deps/npm/node_modules/console-control-strings/LICENSE (renamed from deps/npm/node_modules/npmlog/node_modules/console-control-strings/LICENSE)0
-rw-r--r--deps/npm/node_modules/console-control-strings/README.md (renamed from deps/npm/node_modules/npmlog/node_modules/console-control-strings/README.md)0
-rw-r--r--deps/npm/node_modules/console-control-strings/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/console-control-strings/index.js)0
-rw-r--r--deps/npm/node_modules/console-control-strings/package.json62
-rw-r--r--deps/npm/node_modules/copy-concurrently/LICENSE (renamed from deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/LICENSE)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/README.md (renamed from deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/README.md)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/copy.js (renamed from deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/is-windows.js (renamed from deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/is-windows.js)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/LICENSE21
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/README.md40
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee (renamed from deps/npm/node_modules/iferr/index.coffee)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js (renamed from deps/npm/node_modules/iferr/index.js)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/package.json55
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee (renamed from deps/npm/node_modules/iferr/test/index.coffee)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts (renamed from deps/npm/node_modules/iferr/test/mocha.opts)0
-rw-r--r--deps/npm/node_modules/copy-concurrently/package.json72
-rw-r--r--deps/npm/node_modules/core-util-is/LICENSE (renamed from deps/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE)0
-rw-r--r--deps/npm/node_modules/core-util-is/README.md (renamed from deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md)0
-rw-r--r--deps/npm/node_modules/core-util-is/float.patch (renamed from deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch)0
-rw-r--r--deps/npm/node_modules/core-util-is/lib/util.js (renamed from deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js)0
-rw-r--r--deps/npm/node_modules/core-util-is/package.json64
-rw-r--r--deps/npm/node_modules/core-util-is/test.js (renamed from deps/npm/node_modules/readable-stream/node_modules/core-util-is/test.js)0
-rw-r--r--deps/npm/node_modules/create-error-class/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/index.js)0
-rw-r--r--deps/npm/node_modules/create-error-class/license (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/license)0
-rw-r--r--deps/npm/node_modules/create-error-class/package.json60
-rw-r--r--deps/npm/node_modules/create-error-class/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/readme.md)0
-rw-r--r--deps/npm/node_modules/cross-spawn/CHANGELOG.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/cross-spawn/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/LICENSE)0
-rw-r--r--deps/npm/node_modules/cross-spawn/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/README.md)0
-rw-r--r--deps/npm/node_modules/cross-spawn/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/index.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/enoent.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/enoent.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/parse.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/parse.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/util/readShebang.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js)0
-rw-r--r--deps/npm/node_modules/cross-spawn/package.json84
-rw-r--r--deps/npm/node_modules/cryptiles/.npmignore (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/README.md (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/node_modules/boom/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/LICENSE)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/node_modules/boom/README.md (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/README.md)0
-rwxr-xr-xdeps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/lib/index.js)0
-rw-r--r--deps/npm/node_modules/cryptiles/node_modules/boom/package.json61
-rwxr-xr-xdeps/npm/node_modules/cryptiles/package.json61
-rw-r--r--deps/npm/node_modules/crypto-random-string/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/index.js)0
-rw-r--r--deps/npm/node_modules/crypto-random-string/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/license)0
-rw-r--r--deps/npm/node_modules/crypto-random-string/package.json75
-rw-r--r--deps/npm/node_modules/crypto-random-string/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/readme.md)0
-rw-r--r--deps/npm/node_modules/cyclist/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/.npmignore)0
-rw-r--r--deps/npm/node_modules/cyclist/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/README.md)0
-rw-r--r--deps/npm/node_modules/cyclist/index.js (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/index.js)0
-rw-r--r--deps/npm/node_modules/cyclist/package.json50
-rw-r--r--deps/npm/node_modules/dashdash/CHANGES.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/CHANGES.md)0
-rw-r--r--deps/npm/node_modules/dashdash/LICENSE.txt (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/dashdash/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/README.md)0
-rw-r--r--deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/etc/dashdash.bash_completion.in)0
-rw-r--r--deps/npm/node_modules/dashdash/lib/dashdash.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js)0
-rw-r--r--deps/npm/node_modules/dashdash/package.json67
-rw-r--r--deps/npm/node_modules/debug/.coveralls.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml)0
-rw-r--r--deps/npm/node_modules/debug/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore)0
-rw-r--r--deps/npm/node_modules/debug/.travis.yml20
-rw-r--r--deps/npm/node_modules/debug/CHANGELOG.md395
-rw-r--r--deps/npm/node_modules/debug/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE)0
-rw-r--r--deps/npm/node_modules/debug/Makefile58
-rw-r--r--deps/npm/node_modules/debug/README.md368
-rw-r--r--deps/npm/node_modules/debug/karma.conf.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js)0
-rw-r--r--deps/npm/node_modules/debug/node.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js)0
-rw-r--r--deps/npm/node_modules/debug/node_modules/ms/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js)0
-rw-r--r--deps/npm/node_modules/debug/node_modules/ms/license.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md)0
-rw-r--r--deps/npm/node_modules/debug/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/debug/node_modules/ms/readme.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md)0
-rw-r--r--deps/npm/node_modules/debug/package.json85
-rw-r--r--deps/npm/node_modules/debug/src/browser.js195
-rw-r--r--deps/npm/node_modules/debug/src/debug.js225
-rw-r--r--deps/npm/node_modules/debug/src/index.js10
-rw-r--r--deps/npm/node_modules/debug/src/node.js186
-rw-r--r--deps/npm/node_modules/debuglog/package.json30
-rw-r--r--deps/npm/node_modules/decamelize/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/index.js)0
-rw-r--r--deps/npm/node_modules/decamelize/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/decamelize/package.json71
-rw-r--r--deps/npm/node_modules/decamelize/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/readme.md)0
-rw-r--r--deps/npm/node_modules/decode-uri-component/index.js (renamed from deps/npm/node_modules/query-string/node_modules/decode-uri-component/index.js)0
-rw-r--r--deps/npm/node_modules/decode-uri-component/license (renamed from deps/npm/node_modules/query-string/node_modules/decode-uri-component/license)0
-rw-r--r--deps/npm/node_modules/decode-uri-component/package.json69
-rw-r--r--deps/npm/node_modules/decode-uri-component/readme.md (renamed from deps/npm/node_modules/query-string/node_modules/decode-uri-component/readme.md)0
-rw-r--r--deps/npm/node_modules/deep-extend/CHANGELOG.md38
-rw-r--r--deps/npm/node_modules/deep-extend/LICENSE20
-rw-r--r--deps/npm/node_modules/deep-extend/README.md93
-rw-r--r--deps/npm/node_modules/deep-extend/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/deep-extend/lib/deep-extend.js150
-rw-r--r--deps/npm/node_modules/deep-extend/package.json93
-rw-r--r--deps/npm/node_modules/defaults/.npmignore (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore)0
-rw-r--r--deps/npm/node_modules/defaults/LICENSE (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE)0
-rw-r--r--deps/npm/node_modules/defaults/README.md (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md)0
-rw-r--r--deps/npm/node_modules/defaults/index.js (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js)0
-rw-r--r--deps/npm/node_modules/defaults/package.json57
-rw-r--r--deps/npm/node_modules/defaults/test.js33
-rw-r--r--deps/npm/node_modules/delayed-stream/.npmignore (renamed from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore)0
-rw-r--r--deps/npm/node_modules/delayed-stream/License (renamed from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License)0
-rw-r--r--deps/npm/node_modules/delayed-stream/Makefile6
-rw-r--r--deps/npm/node_modules/delayed-stream/Readme.md (renamed from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md)0
-rw-r--r--deps/npm/node_modules/delayed-stream/lib/delayed_stream.js (renamed from deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js)0
-rw-r--r--deps/npm/node_modules/delayed-stream/package.json62
-rw-r--r--deps/npm/node_modules/delegates/.npmignore (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore)0
-rw-r--r--deps/npm/node_modules/delegates/History.md (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md)0
-rw-r--r--deps/npm/node_modules/delegates/License (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License)0
-rw-r--r--deps/npm/node_modules/delegates/Makefile (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile)0
-rw-r--r--deps/npm/node_modules/delegates/Readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md)0
-rw-r--r--deps/npm/node_modules/delegates/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js)0
-rw-r--r--deps/npm/node_modules/delegates/package.json48
-rw-r--r--deps/npm/node_modules/delegates/test/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js)0
-rw-r--r--deps/npm/node_modules/detect-indent/package.json30
-rw-r--r--deps/npm/node_modules/detect-newline/index.js24
-rw-r--r--deps/npm/node_modules/detect-newline/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/license)0
-rw-r--r--deps/npm/node_modules/detect-newline/package.json72
-rw-r--r--deps/npm/node_modules/detect-newline/readme.md42
-rw-r--r--deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md63
-rw-r--r--deps/npm/node_modules/dezalgo/node_modules/asap/package.json88
-rw-r--r--deps/npm/node_modules/dezalgo/package.json28
-rw-r--r--deps/npm/node_modules/dot-prop/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js)0
-rw-r--r--deps/npm/node_modules/dot-prop/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/dot-prop/package.json80
-rw-r--r--deps/npm/node_modules/dot-prop/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md)0
-rw-r--r--deps/npm/node_modules/dotenv/CHANGELOG.md96
-rw-r--r--deps/npm/node_modules/dotenv/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE)0
-rw-r--r--deps/npm/node_modules/dotenv/README.md257
-rw-r--r--deps/npm/node_modules/dotenv/appveyor.yml13
-rw-r--r--deps/npm/node_modules/dotenv/config.js (renamed from deps/npm/node_modules/libnpx/node_modules/dotenv/config.js)0
-rw-r--r--deps/npm/node_modules/dotenv/lib/main.js79
-rw-r--r--deps/npm/node_modules/dotenv/package.json73
-rw-r--r--deps/npm/node_modules/duplexer3/LICENSE.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/duplexer3/README.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/README.md)0
-rw-r--r--deps/npm/node_modules/duplexer3/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/index.js)0
-rw-r--r--deps/npm/node_modules/duplexer3/package.json64
-rw-r--r--deps/npm/node_modules/duplexify/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/.travis.yml)0
-rw-r--r--deps/npm/node_modules/duplexify/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/LICENSE)0
-rw-r--r--deps/npm/node_modules/duplexify/README.md97
-rw-r--r--deps/npm/node_modules/duplexify/example.js (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/example.js)0
-rw-r--r--deps/npm/node_modules/duplexify/index.js235
-rw-r--r--deps/npm/node_modules/duplexify/package.json70
-rw-r--r--deps/npm/node_modules/duplexify/test.js291
-rw-r--r--deps/npm/node_modules/ecc-jsbn/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/.npmignore)0
-rw-r--r--deps/npm/node_modules/ecc-jsbn/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/LICENSE)0
-rw-r--r--deps/npm/node_modules/ecc-jsbn/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/README.md)0
-rw-r--r--deps/npm/node_modules/ecc-jsbn/index.js56
-rw-r--r--deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn)6
-rw-r--r--deps/npm/node_modules/ecc-jsbn/lib/ec.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/ec.js)6
-rw-r--r--deps/npm/node_modules/ecc-jsbn/lib/sec.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/sec.js)0
-rw-r--r--deps/npm/node_modules/ecc-jsbn/package.json64
-rw-r--r--deps/npm/node_modules/ecc-jsbn/test.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/test.js)0
-rw-r--r--deps/npm/node_modules/editor/package.json28
-rw-r--r--deps/npm/node_modules/encoding/.npmignore (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore)0
-rw-r--r--deps/npm/node_modules/encoding/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml)0
-rw-r--r--deps/npm/node_modules/encoding/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE)0
-rw-r--r--deps/npm/node_modules/encoding/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md)0
-rw-r--r--deps/npm/node_modules/encoding/lib/encoding.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js)0
-rw-r--r--deps/npm/node_modules/encoding/lib/iconv-loader.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js)0
-rw-r--r--deps/npm/node_modules/encoding/package.json54
-rw-r--r--deps/npm/node_modules/encoding/test/test.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js)0
-rw-r--r--deps/npm/node_modules/end-of-stream/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/end-of-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/end-of-stream/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/end-of-stream/README.md)0
-rw-r--r--deps/npm/node_modules/end-of-stream/index.js87
-rw-r--r--deps/npm/node_modules/end-of-stream/package.json72
-rw-r--r--deps/npm/node_modules/err-code/.editorconfig (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.editorconfig)0
-rw-r--r--deps/npm/node_modules/err-code/.eslintrc.json (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.eslintrc.json)0
-rw-r--r--deps/npm/node_modules/err-code/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.npmignore)0
-rw-r--r--deps/npm/node_modules/err-code/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.travis.yml)0
-rw-r--r--deps/npm/node_modules/err-code/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/README.md)0
-rw-r--r--deps/npm/node_modules/err-code/bower.json (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/bower.json)0
-rw-r--r--deps/npm/node_modules/err-code/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.js)0
-rw-r--r--deps/npm/node_modules/err-code/index.umd.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.umd.js)0
-rw-r--r--deps/npm/node_modules/err-code/package.json64
-rw-r--r--deps/npm/node_modules/err-code/test/.eslintrc.json (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json)0
-rw-r--r--deps/npm/node_modules/err-code/test/test.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/test.js)0
-rw-r--r--deps/npm/node_modules/errno/.travis.yml11
-rw-r--r--deps/npm/node_modules/errno/README.md145
-rwxr-xr-xdeps/npm/node_modules/errno/build.js (renamed from deps/npm/node_modules/worker-farm/node_modules/errno/build.js)0
-rwxr-xr-xdeps/npm/node_modules/errno/cli.js22
-rw-r--r--deps/npm/node_modules/errno/custom.js (renamed from deps/npm/node_modules/worker-farm/node_modules/errno/custom.js)10
-rw-r--r--deps/npm/node_modules/errno/errno.js (renamed from deps/npm/node_modules/worker-farm/node_modules/errno/errno.js)0
-rw-r--r--deps/npm/node_modules/errno/package.json62
-rw-r--r--deps/npm/node_modules/errno/test.js88
-rw-r--r--deps/npm/node_modules/es6-promise/CHANGELOG.md151
-rw-r--r--deps/npm/node_modules/es6-promise/LICENSE (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/README.md97
-rw-r--r--deps/npm/node_modules/es6-promise/auto.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.auto.js1181
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.auto.map1
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.js1
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.map1
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.js1179
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.map1
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.min.js1
-rw-r--r--deps/npm/node_modules/es6-promise/dist/es6-promise.min.map1
-rw-r--r--deps/npm/node_modules/es6-promise/es6-promise.d.ts81
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise.auto.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/-internal.js266
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/asap.js119
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/enumerator.js113
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/polyfill.js35
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/promise.js426
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/promise/all.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/promise/race.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/promise/reject.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/promise/resolve.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/then.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/lib/es6-promise/utils.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promise/package.json104
-rw-r--r--deps/npm/node_modules/es6-promisify/README.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promisify/dist/promise.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promisify/dist/promisify.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/es6-promisify/package.json72
-rw-r--r--deps/npm/node_modules/escape-string-regexp/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/index.js)0
-rw-r--r--deps/npm/node_modules/escape-string-regexp/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/license)0
-rw-r--r--deps/npm/node_modules/escape-string-regexp/package.json84
-rw-r--r--deps/npm/node_modules/escape-string-regexp/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/readme.md)0
-rw-r--r--deps/npm/node_modules/execa/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/index.js)0
-rw-r--r--deps/npm/node_modules/execa/lib/errname.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/errname.js)0
-rw-r--r--deps/npm/node_modules/execa/lib/stdio.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/stdio.js)0
-rw-r--r--deps/npm/node_modules/execa/license (renamed from deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/execa/package.json109
-rw-r--r--deps/npm/node_modules/execa/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/readme.md)0
-rw-r--r--deps/npm/node_modules/extend/.jscs.json (renamed from deps/npm/node_modules/request/node_modules/extend/.jscs.json)1
-rw-r--r--deps/npm/node_modules/extend/.npmignore (renamed from deps/npm/node_modules/request/node_modules/extend/.npmignore)0
-rw-r--r--deps/npm/node_modules/extend/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/extend/.travis.yml)0
-rw-r--r--deps/npm/node_modules/extend/CHANGELOG.md76
-rw-r--r--deps/npm/node_modules/extend/LICENSE22
-rw-r--r--deps/npm/node_modules/extend/README.md80
-rw-r--r--deps/npm/node_modules/extend/component.json31
-rw-r--r--deps/npm/node_modules/extend/index.js (renamed from deps/npm/node_modules/request/node_modules/extend/index.js)0
-rw-r--r--deps/npm/node_modules/extend/package.json75
-rw-r--r--deps/npm/node_modules/extsprintf/.gitmodules (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.gitmodules)0
-rw-r--r--deps/npm/node_modules/extsprintf/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.npmignore)0
-rw-r--r--deps/npm/node_modules/extsprintf/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/LICENSE)0
-rw-r--r--deps/npm/node_modules/extsprintf/Makefile (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile)0
-rw-r--r--deps/npm/node_modules/extsprintf/Makefile.targ (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile.targ)0
-rw-r--r--deps/npm/node_modules/extsprintf/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/README.md)0
-rw-r--r--deps/npm/node_modules/extsprintf/jsl.node.conf (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/jsl.node.conf)3
-rw-r--r--deps/npm/node_modules/extsprintf/lib/extsprintf.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js)0
-rw-r--r--deps/npm/node_modules/extsprintf/package.json44
-rw-r--r--deps/npm/node_modules/fast-deep-equal/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/LICENSE)0
-rw-r--r--deps/npm/node_modules/fast-deep-equal/README.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/README.md)0
-rw-r--r--deps/npm/node_modules/fast-deep-equal/index.d.ts4
-rw-r--r--deps/npm/node_modules/fast-deep-equal/index.js55
-rw-r--r--deps/npm/node_modules/fast-deep-equal/package.json85
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml26
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/.npmignore4
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.travis.yml)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/LICENSE (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/README.md119
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js31
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json137
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/key_cmp.js)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/nested.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/nested.js)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/str.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/str.js)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/value_cmp.js)0
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/index.js59
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/package.json78
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/cmp.js)2
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/nested.js44
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/str.js46
-rw-r--r--deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js22
-rw-r--r--deps/npm/node_modules/figgy-pudding/CHANGELOG.md66
-rw-r--r--deps/npm/node_modules/figgy-pudding/LICENSE.md (renamed from deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/figgy-pudding/README.md149
-rw-r--r--deps/npm/node_modules/figgy-pudding/index.js101
-rw-r--r--deps/npm/node_modules/figgy-pudding/package.json76
-rw-r--r--deps/npm/node_modules/find-npm-prefix/find-prefix.js50
-rw-r--r--deps/npm/node_modules/find-npm-prefix/package.json33
-rw-r--r--deps/npm/node_modules/find-up/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/index.js)0
-rw-r--r--deps/npm/node_modules/find-up/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/license)0
-rw-r--r--deps/npm/node_modules/find-up/package.json87
-rw-r--r--deps/npm/node_modules/find-up/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/readme.md)0
-rw-r--r--deps/npm/node_modules/flush-write-stream/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.travis.yml)0
-rw-r--r--deps/npm/node_modules/flush-write-stream/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/flush-write-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/flush-write-stream/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/flush-write-stream/README.md)0
-rw-r--r--deps/npm/node_modules/flush-write-stream/example.js (renamed from deps/npm/node_modules/mississippi/node_modules/flush-write-stream/example.js)0
-rw-r--r--deps/npm/node_modules/flush-write-stream/index.js54
-rw-r--r--deps/npm/node_modules/flush-write-stream/package.json57
-rw-r--r--deps/npm/node_modules/flush-write-stream/test.js (renamed from deps/npm/node_modules/mississippi/node_modules/flush-write-stream/test.js)0
-rw-r--r--deps/npm/node_modules/forever-agent/LICENSE (renamed from deps/npm/node_modules/request/node_modules/forever-agent/LICENSE)0
-rw-r--r--deps/npm/node_modules/forever-agent/README.md (renamed from deps/npm/node_modules/request/node_modules/forever-agent/README.md)0
-rw-r--r--deps/npm/node_modules/forever-agent/index.js138
-rw-r--r--deps/npm/node_modules/forever-agent/package.json50
-rw-r--r--deps/npm/node_modules/form-data/License (renamed from deps/npm/node_modules/request/node_modules/form-data/License)0
-rw-r--r--deps/npm/node_modules/form-data/README.md234
-rw-r--r--deps/npm/node_modules/form-data/README.md.bak (renamed from deps/npm/node_modules/request/node_modules/form-data/README.md.bak)6
-rw-r--r--deps/npm/node_modules/form-data/lib/browser.js (renamed from deps/npm/node_modules/request/node_modules/form-data/lib/browser.js)0
-rw-r--r--deps/npm/node_modules/form-data/lib/form_data.js (renamed from deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js)0
-rw-r--r--deps/npm/node_modules/form-data/lib/populate.js (renamed from deps/npm/node_modules/request/node_modules/form-data/lib/populate.js)0
-rw-r--r--deps/npm/node_modules/form-data/package.json98
-rw-r--r--deps/npm/node_modules/from2/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/from2/.travis.yml)0
-rw-r--r--deps/npm/node_modules/from2/LICENSE.md (renamed from deps/npm/node_modules/mississippi/node_modules/from2/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/from2/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/from2/README.md)0
-rw-r--r--deps/npm/node_modules/from2/index.js (renamed from deps/npm/node_modules/mississippi/node_modules/from2/index.js)0
-rw-r--r--deps/npm/node_modules/from2/package.json72
-rw-r--r--deps/npm/node_modules/from2/test.js (renamed from deps/npm/node_modules/mississippi/node_modules/from2/test.js)0
-rw-r--r--deps/npm/node_modules/fs-minipass/LICENSE (renamed from deps/npm/node_modules/glob/node_modules/minimatch/LICENSE)0
-rw-r--r--deps/npm/node_modules/fs-minipass/README.md70
-rw-r--r--deps/npm/node_modules/fs-minipass/index.js386
-rw-r--r--deps/npm/node_modules/fs-minipass/package.json62
-rw-r--r--deps/npm/node_modules/fs-vacuum/package.json31
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/.npmignore (renamed from deps/npm/node_modules/iferr/.npmignore)0
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/LICENSE21
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/README.md40
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.coffee24
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.js49
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/package.json55
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee42
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/mocha.opts2
-rw-r--r--deps/npm/node_modules/fs-write-stream-atomic/package.json32
-rw-r--r--deps/npm/node_modules/fs.realpath/LICENSE (renamed from deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE)0
-rw-r--r--deps/npm/node_modules/fs.realpath/README.md (renamed from deps/npm/node_modules/glob/node_modules/fs.realpath/README.md)0
-rw-r--r--deps/npm/node_modules/fs.realpath/index.js (renamed from deps/npm/node_modules/glob/node_modules/fs.realpath/index.js)0
-rw-r--r--deps/npm/node_modules/fs.realpath/old.js (renamed from deps/npm/node_modules/glob/node_modules/fs.realpath/old.js)0
-rw-r--r--deps/npm/node_modules/fs.realpath/package.json59
-rw-r--r--deps/npm/node_modules/fstream/.npmignore (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/.npmignore)0
-rw-r--r--deps/npm/node_modules/fstream/.travis.yml (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/.travis.yml)0
-rw-r--r--deps/npm/node_modules/fstream/LICENSE (renamed from deps/npm/node_modules/lru-cache/node_modules/pseudomap/LICENSE)0
-rw-r--r--deps/npm/node_modules/fstream/README.md (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/README.md)0
-rw-r--r--deps/npm/node_modules/fstream/examples/filter-pipe.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/examples/filter-pipe.js)0
-rw-r--r--deps/npm/node_modules/fstream/examples/pipe.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/examples/pipe.js)0
-rw-r--r--deps/npm/node_modules/fstream/examples/reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/examples/reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/examples/symlink-write.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/examples/symlink-write.js)0
-rw-r--r--deps/npm/node_modules/fstream/fstream.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/fstream.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/abstract.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/abstract.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/collect.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/collect.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/dir-reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/dir-writer.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-writer.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/file-reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/file-writer.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-writer.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/get-type.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/get-type.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/link-reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/link-writer.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-writer.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/proxy-reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/proxy-writer.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-writer.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/socket-reader.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/socket-reader.js)0
-rw-r--r--deps/npm/node_modules/fstream/lib/writer.js (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/lib/writer.js)0
-rw-r--r--deps/npm/node_modules/fstream/package.json62
-rw-r--r--deps/npm/node_modules/gauge/CHANGELOG.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/gauge/LICENSE (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE)0
-rw-r--r--deps/npm/node_modules/gauge/README.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/README.md)0
-rw-r--r--deps/npm/node_modules/gauge/base-theme.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/base-theme.js)0
-rw-r--r--deps/npm/node_modules/gauge/error.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/error.js)0
-rw-r--r--deps/npm/node_modules/gauge/has-color.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/has-color.js)0
-rw-r--r--deps/npm/node_modules/gauge/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/index.js)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/ansi-regex/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/index.js)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/license)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/gauge/node_modules/ansi-regex/readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/readme.md)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json77
-rw-r--r--deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/string-width/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/string-width/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/license)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/string-width/package.json88
-rw-r--r--deps/npm/node_modules/gauge/node_modules/string-width/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/strip-ansi/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/index.js)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/license)0
-rw-r--r--deps/npm/node_modules/gauge/node_modules/strip-ansi/package.json102
-rw-r--r--deps/npm/node_modules/gauge/node_modules/strip-ansi/readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/readme.md)0
-rw-r--r--deps/npm/node_modules/gauge/package.json94
-rw-r--r--deps/npm/node_modules/gauge/plumbing.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/plumbing.js)0
-rw-r--r--deps/npm/node_modules/gauge/process.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/process.js)0
-rw-r--r--deps/npm/node_modules/gauge/progress-bar.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js)0
-rw-r--r--deps/npm/node_modules/gauge/render-template.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/render-template.js)0
-rw-r--r--deps/npm/node_modules/gauge/set-immediate.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js)0
-rw-r--r--deps/npm/node_modules/gauge/set-interval.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/set-interval.js)0
-rw-r--r--deps/npm/node_modules/gauge/spin.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/spin.js)0
-rw-r--r--deps/npm/node_modules/gauge/template-item.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/template-item.js)0
-rw-r--r--deps/npm/node_modules/gauge/theme-set.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/theme-set.js)0
-rw-r--r--deps/npm/node_modules/gauge/themes.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/themes.js)0
-rw-r--r--deps/npm/node_modules/gauge/wide-truncate.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js)0
-rw-r--r--deps/npm/node_modules/genfun/CHANGELOG.md (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/genfun/README.md (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/README.md)0
-rw-r--r--deps/npm/node_modules/genfun/lib/genfun.js (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js)0
-rw-r--r--deps/npm/node_modules/genfun/lib/method.js (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/method.js)0
-rw-r--r--deps/npm/node_modules/genfun/lib/role.js (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/role.js)0
-rw-r--r--deps/npm/node_modules/genfun/lib/util.js (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/util.js)0
-rw-r--r--deps/npm/node_modules/genfun/package.json79
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/.npmignore)0
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/LICENSE21
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/README.md40
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/index.coffee24
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/index.js49
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/package.json55
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/test/index.coffee42
-rw-r--r--deps/npm/node_modules/gentle-fs/node_modules/iferr/test/mocha.opts2
-rw-r--r--deps/npm/node_modules/gentle-fs/package.json24
-rw-r--r--deps/npm/node_modules/get-caller-file/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/README.md)0
-rw-r--r--deps/npm/node_modules/get-caller-file/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/index.js)0
-rw-r--r--deps/npm/node_modules/get-caller-file/package.json58
-rw-r--r--deps/npm/node_modules/get-stream/buffer-stream.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/buffer-stream.js)0
-rw-r--r--deps/npm/node_modules/get-stream/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/index.js)0
-rw-r--r--deps/npm/node_modules/get-stream/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/license)0
-rw-r--r--deps/npm/node_modules/get-stream/package.json82
-rw-r--r--deps/npm/node_modules/get-stream/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/readme.md)0
-rw-r--r--deps/npm/node_modules/getpass/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.npmignore)0
-rw-r--r--deps/npm/node_modules/getpass/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.travis.yml)0
-rw-r--r--deps/npm/node_modules/getpass/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/LICENSE)0
-rw-r--r--deps/npm/node_modules/getpass/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/README.md)0
-rw-r--r--deps/npm/node_modules/getpass/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/lib/index.js)0
-rw-r--r--deps/npm/node_modules/getpass/package.json50
-rw-r--r--deps/npm/node_modules/glob/node_modules/fs.realpath/package.json62
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md123
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js201
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json77
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json92
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json75
-rw-r--r--deps/npm/node_modules/glob/node_modules/minimatch/package.json63
-rw-r--r--deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json79
-rw-r--r--deps/npm/node_modules/glob/package.json30
-rw-r--r--deps/npm/node_modules/global-dirs/index.js90
-rw-r--r--deps/npm/node_modules/global-dirs/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/license)0
-rw-r--r--deps/npm/node_modules/global-dirs/package.json84
-rw-r--r--deps/npm/node_modules/global-dirs/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md)0
-rw-r--r--deps/npm/node_modules/got/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js)0
-rw-r--r--deps/npm/node_modules/got/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/got/package.json110
-rw-r--r--deps/npm/node_modules/got/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/readme.md)0
-rw-r--r--deps/npm/node_modules/graceful-fs/package.json41
-rw-r--r--deps/npm/node_modules/har-schema/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/LICENSE)0
-rw-r--r--deps/npm/node_modules/har-schema/README.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/README.md)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/afterRequest.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/afterRequest.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/beforeRequest.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/beforeRequest.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/browser.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/browser.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/cache.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cache.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/content.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/content.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/cookie.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cookie.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/creator.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/creator.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/entry.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/entry.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/har.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/har.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/header.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/header.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/index.js)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/log.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/log.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/page.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/page.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/pageTimings.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/pageTimings.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/postData.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/postData.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/query.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/query.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/request.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/request.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/response.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/response.json)0
-rw-r--r--deps/npm/node_modules/har-schema/lib/timings.json (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/timings.json)0
-rw-r--r--deps/npm/node_modules/har-schema/package.json86
-rw-r--r--deps/npm/node_modules/har-validator/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/LICENSE)0
-rw-r--r--deps/npm/node_modules/har-validator/README.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/README.md)0
-rw-r--r--deps/npm/node_modules/har-validator/lib/async.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/lib/async.js)0
-rw-r--r--deps/npm/node_modules/har-validator/lib/error.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/lib/error.js)0
-rw-r--r--deps/npm/node_modules/har-validator/lib/promise.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/lib/promise.js)0
-rw-r--r--deps/npm/node_modules/har-validator/package.json75
-rw-r--r--deps/npm/node_modules/has-flag/index.js8
-rw-r--r--deps/npm/node_modules/has-flag/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/license)0
-rw-r--r--deps/npm/node_modules/has-flag/package.json76
-rw-r--r--deps/npm/node_modules/has-flag/readme.md70
-rw-r--r--deps/npm/node_modules/has-unicode/package.json31
-rwxr-xr-xdeps/npm/node_modules/hawk/.npmignore (renamed from deps/npm/node_modules/request/node_modules/hawk/.npmignore)0
-rwxr-xr-xdeps/npm/node_modules/hawk/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/LICENSE)0
-rwxr-xr-xdeps/npm/node_modules/hawk/README.md (renamed from deps/npm/node_modules/request/node_modules/hawk/README.md)0
-rwxr-xr-xdeps/npm/node_modules/hawk/client.js (renamed from deps/npm/node_modules/request/node_modules/hawk/client.js)0
-rw-r--r--deps/npm/node_modules/hawk/dist/browser.js (renamed from deps/npm/node_modules/request/node_modules/hawk/dist/browser.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/browser.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/browser.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/client.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/client.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/crypto.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/index.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/server.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/server.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/lib/utils.js (renamed from deps/npm/node_modules/request/node_modules/hawk/lib/utils.js)0
-rwxr-xr-xdeps/npm/node_modules/hawk/package.json78
-rw-r--r--deps/npm/node_modules/hoek/.npmignore (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore)0
-rw-r--r--deps/npm/node_modules/hoek/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE)0
-rw-r--r--deps/npm/node_modules/hoek/README.md (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md)0
-rwxr-xr-xdeps/npm/node_modules/hoek/lib/escape.js (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js)0
-rwxr-xr-xdeps/npm/node_modules/hoek/lib/index.js978
-rw-r--r--deps/npm/node_modules/hoek/package.json58
-rw-r--r--deps/npm/node_modules/hosted-git-info/CHANGELOG.md17
-rw-r--r--deps/npm/node_modules/hosted-git-info/README.md6
-rw-r--r--deps/npm/node_modules/hosted-git-info/git-host-info.js14
-rw-r--r--deps/npm/node_modules/hosted-git-info/git-host.js31
-rw-r--r--deps/npm/node_modules/hosted-git-info/package.json38
-rw-r--r--deps/npm/node_modules/http-cache-semantics/README.md177
-rw-r--r--deps/npm/node_modules/http-cache-semantics/node4/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js)0
-rw-r--r--deps/npm/node_modules/http-cache-semantics/package.json60
-rw-r--r--deps/npm/node_modules/http-proxy-agent/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml)0
-rw-r--r--deps/npm/node_modules/http-proxy-agent/History.md101
-rw-r--r--deps/npm/node_modules/http-proxy-agent/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md)0
-rw-r--r--deps/npm/node_modules/http-proxy-agent/index.js111
-rw-r--r--deps/npm/node_modules/http-proxy-agent/package.json67
-rw-r--r--deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key)0
-rw-r--r--deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem)0
-rw-r--r--deps/npm/node_modules/http-proxy-agent/test/test.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js)0
-rw-r--r--deps/npm/node_modules/http-signature/.dir-locals.el (renamed from deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el)0
-rw-r--r--deps/npm/node_modules/http-signature/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/.npmignore)0
-rw-r--r--deps/npm/node_modules/http-signature/CHANGES.md46
-rw-r--r--deps/npm/node_modules/http-signature/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/LICENSE)0
-rw-r--r--deps/npm/node_modules/http-signature/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/README.md)0
-rw-r--r--deps/npm/node_modules/http-signature/http_signing.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/http_signing.md)0
-rw-r--r--deps/npm/node_modules/http-signature/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/lib/index.js)0
-rw-r--r--deps/npm/node_modules/http-signature/lib/parser.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js)0
-rw-r--r--deps/npm/node_modules/http-signature/lib/signer.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js)0
-rw-r--r--deps/npm/node_modules/http-signature/lib/utils.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/lib/utils.js)0
-rw-r--r--deps/npm/node_modules/http-signature/lib/verify.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js)0
-rw-r--r--deps/npm/node_modules/http-signature/package.json77
-rw-r--r--deps/npm/node_modules/https-proxy-agent/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml)0
-rw-r--r--deps/npm/node_modules/https-proxy-agent/History.md124
-rw-r--r--deps/npm/node_modules/https-proxy-agent/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md)0
-rw-r--r--deps/npm/node_modules/https-proxy-agent/index.js229
-rw-r--r--deps/npm/node_modules/https-proxy-agent/package.json67
-rw-r--r--deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key (renamed from 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)0
-rw-r--r--deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem (renamed from 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)0
-rw-r--r--deps/npm/node_modules/https-proxy-agent/test/test.js342
-rw-r--r--deps/npm/node_modules/humanize-ms/History.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md)0
-rw-r--r--deps/npm/node_modules/humanize-ms/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE)0
-rw-r--r--deps/npm/node_modules/humanize-ms/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md)0
-rw-r--r--deps/npm/node_modules/humanize-ms/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js)0
-rw-r--r--deps/npm/node_modules/humanize-ms/package.json66
-rw-r--r--deps/npm/node_modules/iconv-lite/.travis.yml (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/Changelog.md156
-rw-r--r--deps/npm/node_modules/iconv-lite/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE)0
-rw-r--r--deps/npm/node_modules/iconv-lite/README.md156
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js554
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/dbcs-data.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/internal.js188
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js72
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/sbcs-data-generated.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/sbcs-data.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/big5-added.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/cp936.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/cp949.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/cp950.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/eucjp.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/gbk-added.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/tables/shiftjis.json (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/utf16.js175
-rw-r--r--deps/npm/node_modules/iconv-lite/encodings/utf7.js288
-rw-r--r--deps/npm/node_modules/iconv-lite/lib/bom-handling.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/lib/extend-node.js217
-rw-r--r--deps/npm/node_modules/iconv-lite/lib/index.d.ts24
-rw-r--r--deps/npm/node_modules/iconv-lite/lib/index.js153
-rw-r--r--deps/npm/node_modules/iconv-lite/lib/streams.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/iconv-lite/package.json77
-rw-r--r--deps/npm/node_modules/iferr/iferr.js23
-rw-r--r--deps/npm/node_modules/iferr/package.json51
-rw-r--r--deps/npm/node_modules/ignore-walk/LICENSE (renamed from deps/npm/node_modules/lru-cache/node_modules/yallist/LICENSE)0
-rw-r--r--deps/npm/node_modules/ignore-walk/README.md (renamed from deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/README.md)0
-rw-r--r--deps/npm/node_modules/ignore-walk/index.js (renamed from deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/index.js)0
-rw-r--r--deps/npm/node_modules/ignore-walk/package.json71
-rw-r--r--deps/npm/node_modules/import-lazy/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/import-lazy/index.js)0
-rw-r--r--deps/npm/node_modules/import-lazy/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/license)0
-rw-r--r--deps/npm/node_modules/import-lazy/package.json76
-rw-r--r--deps/npm/node_modules/import-lazy/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/import-lazy/readme.md)0
-rw-r--r--deps/npm/node_modules/imurmurhash/package.json31
-rw-r--r--deps/npm/node_modules/inflight/package.json32
-rw-r--r--deps/npm/node_modules/inherits/package.json54
-rw-r--r--deps/npm/node_modules/ini/ini.js128
-rw-r--r--deps/npm/node_modules/ini/package.json49
-rw-r--r--deps/npm/node_modules/init-package-json/CHANGELOG.md17
-rw-r--r--deps/npm/node_modules/init-package-json/default-input.js9
-rw-r--r--deps/npm/node_modules/init-package-json/init-package-json.js2
-rw-r--r--deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md81
-rw-r--r--deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js270
-rw-r--r--deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json64
-rw-r--r--deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE15
-rw-r--r--deps/npm/node_modules/init-package-json/node_modules/promzard/package.json56
-rw-r--r--deps/npm/node_modules/init-package-json/package.json52
-rw-r--r--deps/npm/node_modules/invert-kv/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/index.js)0
-rw-r--r--deps/npm/node_modules/invert-kv/package.json65
-rw-r--r--deps/npm/node_modules/invert-kv/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/readme.md)0
-rw-r--r--deps/npm/node_modules/ip-regex/index.js24
-rw-r--r--deps/npm/node_modules/ip-regex/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/license)0
-rw-r--r--deps/npm/node_modules/ip-regex/package.json77
-rw-r--r--deps/npm/node_modules/ip-regex/readme.md63
-rw-r--r--deps/npm/node_modules/ip/.jscsrc (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc)0
-rw-r--r--deps/npm/node_modules/ip/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore)0
-rw-r--r--deps/npm/node_modules/ip/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml)0
-rw-r--r--deps/npm/node_modules/ip/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md)0
-rw-r--r--deps/npm/node_modules/ip/lib/ip.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/ip/package.json55
-rw-r--r--deps/npm/node_modules/ip/test/api-test.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/is-builtin-module/index.js (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js)0
-rw-r--r--deps/npm/node_modules/is-builtin-module/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/license)0
-rw-r--r--deps/npm/node_modules/is-builtin-module/package.json75
-rw-r--r--deps/npm/node_modules/is-builtin-module/readme.md (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md)0
-rw-r--r--deps/npm/node_modules/is-ci/.travis.yml7
-rw-r--r--deps/npm/node_modules/is-ci/LICENSE21
-rw-r--r--deps/npm/node_modules/is-ci/README.md69
-rwxr-xr-xdeps/npm/node_modules/is-ci/bin.js4
-rw-r--r--deps/npm/node_modules/is-ci/index.js3
-rw-r--r--deps/npm/node_modules/is-ci/package.json69
-rw-r--r--deps/npm/node_modules/is-ci/test.js19
-rw-r--r--deps/npm/node_modules/is-cidr/.npmignore1
-rw-r--r--deps/npm/node_modules/is-cidr/.travis.yml21
-rw-r--r--deps/npm/node_modules/is-cidr/LICENSE22
-rw-r--r--deps/npm/node_modules/is-cidr/README.md58
-rw-r--r--deps/npm/node_modules/is-cidr/example/example.js13
-rw-r--r--deps/npm/node_modules/is-cidr/index.js6
-rw-r--r--deps/npm/node_modules/is-cidr/lib/index.js18
-rw-r--r--deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore1
-rw-r--r--deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md48
-rw-r--r--deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js10
-rw-r--r--deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json68
-rw-r--r--deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js199
-rw-r--r--deps/npm/node_modules/is-cidr/package.json109
-rw-r--r--deps/npm/node_modules/is-cidr/test/index.test.js199
-rw-r--r--deps/npm/node_modules/is-fullwidth-code-point/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js)0
-rw-r--r--deps/npm/node_modules/is-fullwidth-code-point/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/license)0
-rw-r--r--deps/npm/node_modules/is-fullwidth-code-point/package.json78
-rw-r--r--deps/npm/node_modules/is-fullwidth-code-point/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md)0
-rw-r--r--deps/npm/node_modules/is-installed-globally/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js)0
-rw-r--r--deps/npm/node_modules/is-installed-globally/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license)0
-rw-r--r--deps/npm/node_modules/is-installed-globally/package.json80
-rw-r--r--deps/npm/node_modules/is-installed-globally/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md)0
-rw-r--r--deps/npm/node_modules/is-npm/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/is-npm/index.js)0
-rw-r--r--deps/npm/node_modules/is-npm/package.json64
-rw-r--r--deps/npm/node_modules/is-npm/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/is-npm/readme.md)0
-rw-r--r--deps/npm/node_modules/is-obj/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/index.js)0
-rw-r--r--deps/npm/node_modules/is-obj/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/license)0
-rw-r--r--deps/npm/node_modules/is-obj/package.json65
-rw-r--r--deps/npm/node_modules/is-obj/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/readme.md)0
-rw-r--r--deps/npm/node_modules/is-path-inside/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js)0
-rw-r--r--deps/npm/node_modules/is-path-inside/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/license)0
-rw-r--r--deps/npm/node_modules/is-path-inside/package.json70
-rw-r--r--deps/npm/node_modules/is-path-inside/readme.md34
-rw-r--r--deps/npm/node_modules/is-redirect/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/index.js)0
-rw-r--r--deps/npm/node_modules/is-redirect/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/license)0
-rw-r--r--deps/npm/node_modules/is-redirect/package.json67
-rw-r--r--deps/npm/node_modules/is-redirect/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/readme.md)0
-rw-r--r--deps/npm/node_modules/is-retry-allowed/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/index.js)0
-rw-r--r--deps/npm/node_modules/is-retry-allowed/license (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/license)0
-rw-r--r--deps/npm/node_modules/is-retry-allowed/package.json59
-rw-r--r--deps/npm/node_modules/is-retry-allowed/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/readme.md)0
-rw-r--r--deps/npm/node_modules/is-stream/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/index.js)0
-rw-r--r--deps/npm/node_modules/is-stream/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/license)0
-rw-r--r--deps/npm/node_modules/is-stream/package.json72
-rw-r--r--deps/npm/node_modules/is-stream/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/readme.md)0
-rw-r--r--deps/npm/node_modules/is-typedarray/LICENSE.md (renamed from deps/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/is-typedarray/README.md (renamed from deps/npm/node_modules/request/node_modules/is-typedarray/README.md)0
-rw-r--r--deps/npm/node_modules/is-typedarray/index.js (renamed from deps/npm/node_modules/request/node_modules/is-typedarray/index.js)0
-rw-r--r--deps/npm/node_modules/is-typedarray/package.json59
-rw-r--r--deps/npm/node_modules/is-typedarray/test.js (renamed from deps/npm/node_modules/request/node_modules/is-typedarray/test.js)0
-rw-r--r--deps/npm/node_modules/isarray/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/.npmignore)0
-rw-r--r--deps/npm/node_modules/isarray/.travis.yml (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml)0
-rw-r--r--deps/npm/node_modules/isarray/Makefile5
-rw-r--r--deps/npm/node_modules/isarray/README.md (renamed from deps/npm/node_modules/readable-stream/node_modules/isarray/README.md)0
-rw-r--r--deps/npm/node_modules/isarray/component.json (renamed from deps/npm/node_modules/readable-stream/node_modules/isarray/component.json)0
-rw-r--r--deps/npm/node_modules/isarray/index.js (renamed from deps/npm/node_modules/readable-stream/node_modules/isarray/index.js)0
-rw-r--r--deps/npm/node_modules/isarray/package.json74
-rw-r--r--deps/npm/node_modules/isarray/test.js19
-rw-r--r--deps/npm/node_modules/isexe/.npmignore (renamed from deps/npm/node_modules/which/node_modules/isexe/.npmignore)0
-rw-r--r--deps/npm/node_modules/isexe/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE)0
-rw-r--r--deps/npm/node_modules/isexe/README.md (renamed from deps/npm/node_modules/which/node_modules/isexe/README.md)0
-rw-r--r--deps/npm/node_modules/isexe/index.js (renamed from deps/npm/node_modules/which/node_modules/isexe/index.js)0
-rw-r--r--deps/npm/node_modules/isexe/mode.js (renamed from deps/npm/node_modules/which/node_modules/isexe/mode.js)0
-rw-r--r--deps/npm/node_modules/isexe/package.json61
-rw-r--r--deps/npm/node_modules/isexe/test/basic.js (renamed from deps/npm/node_modules/which/node_modules/isexe/test/basic.js)0
-rw-r--r--deps/npm/node_modules/isexe/windows.js (renamed from deps/npm/node_modules/which/node_modules/isexe/windows.js)0
-rw-r--r--deps/npm/node_modules/isstream/.npmignore (renamed from deps/npm/node_modules/request/node_modules/isstream/.npmignore)0
-rw-r--r--deps/npm/node_modules/isstream/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/isstream/.travis.yml)0
-rw-r--r--deps/npm/node_modules/isstream/LICENSE.md (renamed from deps/npm/node_modules/request/node_modules/isstream/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/isstream/README.md (renamed from deps/npm/node_modules/request/node_modules/isstream/README.md)0
-rw-r--r--deps/npm/node_modules/isstream/isstream.js (renamed from deps/npm/node_modules/request/node_modules/isstream/isstream.js)0
-rw-r--r--deps/npm/node_modules/isstream/package.json61
-rw-r--r--deps/npm/node_modules/isstream/test.js165
-rw-r--r--deps/npm/node_modules/jsbn/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/.npmignore)0
-rw-r--r--deps/npm/node_modules/jsbn/LICENSE40
-rw-r--r--deps/npm/node_modules/jsbn/README.md173
-rw-r--r--deps/npm/node_modules/jsbn/example.html (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.html)4
-rw-r--r--deps/npm/node_modules/jsbn/example.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js)0
-rw-r--r--deps/npm/node_modules/jsbn/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js)0
-rw-r--r--deps/npm/node_modules/jsbn/package.json53
-rw-r--r--deps/npm/node_modules/json-parse-better-errors/CHANGELOG.md46
-rw-r--r--deps/npm/node_modules/json-parse-better-errors/LICENSE.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/json-parse-better-errors/README.md46
-rw-r--r--deps/npm/node_modules/json-parse-better-errors/index.js38
-rw-r--r--deps/npm/node_modules/json-parse-better-errors/package.json82
-rw-r--r--deps/npm/node_modules/json-schema-traverse/.eslintrc.yml (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.eslintrc.yml)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/.npmignore (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.npmignore)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.travis.yml)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/LICENSE (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/LICENSE)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/README.md (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/README.md)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/index.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/index.js)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/package.json70
-rw-r--r--deps/npm/node_modules/json-schema-traverse/spec/.eslintrc.yml (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/.eslintrc.yml)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/fixtures/schema.js)0
-rw-r--r--deps/npm/node_modules/json-schema-traverse/spec/index.spec.js (renamed from deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/index.spec.js)0
-rw-r--r--deps/npm/node_modules/json-schema/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/README.md)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/hyper-schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/hyper-schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/json-ref (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/json-ref)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/links (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/links)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-00/schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/hyper-schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/hyper-schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/json-ref (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/json-ref)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/links (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/links)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-01/schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/hyper-schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/hyper-schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/json-ref (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/json-ref)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/links (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/links)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-02/schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/address (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/address)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/calendar (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/calendar)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/card (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/card)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/geo (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/geo)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/examples/interfaces (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/interfaces)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/hyper-schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/hyper-schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/json-ref (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/json-ref)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/links (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/links)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-03/schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/hyper-schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/hyper-schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/links (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/links)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-04/schema (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/schema)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-03.xml)0
-rw-r--r--deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-04.xml)0
-rw-r--r--deps/npm/node_modules/json-schema/lib/links.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/links.js)0
-rw-r--r--deps/npm/node_modules/json-schema/lib/validate.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js)0
-rw-r--r--deps/npm/node_modules/json-schema/package.json71
-rw-r--r--deps/npm/node_modules/json-schema/test/tests.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/test/tests.js)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/.npmignore (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/CHANGELOG.md14
-rw-r--r--deps/npm/node_modules/json-stringify-safe/LICENSE (renamed from deps/npm/node_modules/node-gyp/node_modules/fstream/LICENSE)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/Makefile (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/README.md (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/package.json66
-rw-r--r--deps/npm/node_modules/json-stringify-safe/stringify.js (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/test/mocha.opts (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts)0
-rw-r--r--deps/npm/node_modules/json-stringify-safe/test/stringify_test.js (renamed from deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/.npmignore (renamed from deps/npm/node_modules/mississippi/.npmignore)0
-rw-r--r--deps/npm/node_modules/jsonparse/LICENSE (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE)0
-rw-r--r--deps/npm/node_modules/jsonparse/README.markdown (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown)0
-rw-r--r--deps/npm/node_modules/jsonparse/bench.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/examples/twitterfeed.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/jsonparse.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/package.json58
-rw-r--r--deps/npm/node_modules/jsonparse/samplejson/basic.json (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json)0
-rw-r--r--deps/npm/node_modules/jsonparse/samplejson/basic2.json (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/big-token.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/boundary.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/offset.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/primitives.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/surrogate.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/unvalid.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js)0
-rw-r--r--deps/npm/node_modules/jsonparse/test/utf8.js (renamed from deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js)0
-rw-r--r--deps/npm/node_modules/jsprim/CHANGES.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CHANGES.md)0
-rw-r--r--deps/npm/node_modules/jsprim/CONTRIBUTING.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CONTRIBUTING.md)0
-rw-r--r--deps/npm/node_modules/jsprim/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/LICENSE)0
-rw-r--r--deps/npm/node_modules/jsprim/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/README.md)0
-rw-r--r--deps/npm/node_modules/jsprim/lib/jsprim.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js)0
-rw-r--r--deps/npm/node_modules/jsprim/package.json49
-rw-r--r--deps/npm/node_modules/latest-version/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/index.js)0
-rw-r--r--deps/npm/node_modules/latest-version/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/latest-version/package.json71
-rw-r--r--deps/npm/node_modules/latest-version/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/readme.md)0
-rw-r--r--deps/npm/node_modules/lazy-property/package.json28
-rw-r--r--deps/npm/node_modules/lcid/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/index.js)0
-rw-r--r--deps/npm/node_modules/lcid/lcid.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/lcid.json)0
-rw-r--r--deps/npm/node_modules/lcid/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/lcid/package.json79
-rw-r--r--deps/npm/node_modules/lcid/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/readme.md)0
-rw-r--r--deps/npm/node_modules/libcipm/CHANGELOG.md382
-rw-r--r--deps/npm/node_modules/libcipm/LICENSE.md7
-rw-r--r--deps/npm/node_modules/libcipm/README.md37
-rw-r--r--deps/npm/node_modules/libcipm/index.js402
-rw-r--r--deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js29
-rw-r--r--deps/npm/node_modules/libcipm/lib/config/npm-config.js72
-rw-r--r--deps/npm/node_modules/libcipm/lib/config/pacote-opts.js135
-rw-r--r--deps/npm/node_modules/libcipm/lib/extract.js53
-rw-r--r--deps/npm/node_modules/libcipm/lib/silentlog.js13
-rw-r--r--deps/npm/node_modules/libcipm/lib/worker.js16
-rw-r--r--deps/npm/node_modules/libcipm/package.json101
-rw-r--r--deps/npm/node_modules/libnpmhook/CHANGELOG.md66
-rw-r--r--deps/npm/node_modules/libnpmhook/LICENSE.md (renamed from deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/libnpmhook/README.md23
-rw-r--r--deps/npm/node_modules/libnpmhook/config.js13
-rw-r--r--deps/npm/node_modules/libnpmhook/index.js41
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md104
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md16
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md549
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js48
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js99
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js90
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js58
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js160
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json90
-rw-r--r--deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js14
-rw-r--r--deps/npm/node_modules/libnpmhook/package.json84
-rw-r--r--deps/npm/node_modules/libnpx/CHANGELOG.md63
-rw-r--r--deps/npm/node_modules/libnpx/LICENSE.md17
-rw-r--r--deps/npm/node_modules/libnpx/README.md6
-rw-r--r--deps/npm/node_modules/libnpx/child.js18
-rw-r--r--deps/npm/node_modules/libnpx/get-prefix.js32
-rw-r--r--deps/npm/node_modules/libnpx/index.js48
-rw-r--r--deps/npm/node_modules/libnpx/libnpx.19
-rw-r--r--deps/npm/node_modules/libnpx/locales/ar.json29
-rw-r--r--deps/npm/node_modules/libnpx/locales/en.json3
-rw-r--r--deps/npm/node_modules/libnpx/locales/fr.json28
-rw-r--r--deps/npm/node_modules/libnpx/locales/ko.json18
-rw-r--r--deps/npm/node_modules/libnpx/locales/pt_BR.json38
-rw-r--r--deps/npm/node_modules/libnpx/locales/zh_CN.json3
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md76
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/dotenv/README.md208
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js74
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/dotenv/package.json76
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE15
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/npm-package-arg/README.md81
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js270
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json64
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/y18n/README.md91
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/y18n/index.js172
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/y18n/package.json69
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md961
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/README.md103
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/index.js31
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js72
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js15
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js336
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js104
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js10
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js489
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js364
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json40
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json44
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md15
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md110
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js316
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js32
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md32
-rw-r--r--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.js4
-rw-r--r--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.json42
-rw-r--r--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.md28
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json45
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json48
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json47
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json51
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json49
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json41
-rw-r--r--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.json64
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/package.json71
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json83
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json80
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json44
-rw-r--r--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.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json45
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json44
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json111
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json42
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json44
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js7
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md66
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json46
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json80
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js26
-rw-r--r--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.js40
-rw-r--r--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.json47
-rw-r--r--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.md68
-rw-r--r--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.json48
-rw-r--r--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.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json46
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json46
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js47
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js11
-rw-r--r--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.js35
-rw-r--r--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/LICENSE21
-rw-r--r--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.md144
-rw-r--r--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.js133
-rw-r--r--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/.editorconfig18
-rw-r--r--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.yml4
-rw-r--r--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/.npmignore5
-rw-r--r--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.yml17
-rw-r--r--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/LICENSE21
-rw-r--r--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.md16
-rw-r--r--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.js10
-rw-r--r--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.json44
-rw-r--r--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.json46
-rw-r--r--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.json45
-rw-r--r--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.md83
-rw-r--r--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.js751
-rw-r--r--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.js71
-rw-r--r--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.js68
-rw-r--r--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.json45
-rw-r--r--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.md119
-rw-r--r--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.js14
-rw-r--r--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.json43
-rw-r--r--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.md36
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json48
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md45
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js26
-rw-r--r--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.js68
-rw-r--r--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.json80
-rw-r--r--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.md119
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json45
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md42
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json49
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md79
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json49
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md80
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml3
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json41
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json44
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json87
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json43
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md223
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md281
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js764
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json46
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/package.json105
-rw-r--r--deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js1127
-rw-r--r--deps/npm/node_modules/libnpx/package.json78
-rw-r--r--deps/npm/node_modules/libnpx/parse-args.js138
-rw-r--r--deps/npm/node_modules/locate-path/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/index.js)0
-rw-r--r--deps/npm/node_modules/locate-path/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/locate-path/package.json79
-rw-r--r--deps/npm/node_modules/locate-path/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/readme.md)0
-rw-r--r--deps/npm/node_modules/lock-verify/LICENSE13
-rw-r--r--deps/npm/node_modules/lock-verify/README.md22
-rw-r--r--deps/npm/node_modules/lock-verify/index.js73
-rw-r--r--deps/npm/node_modules/lock-verify/package.json63
-rw-r--r--deps/npm/node_modules/lockfile/.npmignore3
-rw-r--r--deps/npm/node_modules/lockfile/.travis.yml15
-rw-r--r--deps/npm/node_modules/lockfile/CHANGELOG.md8
-rw-r--r--deps/npm/node_modules/lockfile/lockfile.js15
-rw-r--r--deps/npm/node_modules/lockfile/package.json44
-rw-r--r--deps/npm/node_modules/lockfile/sockets.md27
-rw-r--r--deps/npm/node_modules/lockfile/speedtest.js63
-rw-r--r--deps/npm/node_modules/lockfile/test/retry-time.js1
-rw-r--r--deps/npm/node_modules/lodash._baseindexof/package.json30
-rw-r--r--deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json70
-rw-r--r--deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json70
-rw-r--r--deps/npm/node_modules/lodash._baseuniq/package.json29
-rw-r--r--deps/npm/node_modules/lodash._bindcallback/package.json30
-rw-r--r--deps/npm/node_modules/lodash._cacheindexof/package.json30
-rw-r--r--deps/npm/node_modules/lodash._createcache/package.json29
-rw-r--r--deps/npm/node_modules/lodash._createset/LICENSE (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE)0
-rw-r--r--deps/npm/node_modules/lodash._createset/README.md (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md)0
-rw-r--r--deps/npm/node_modules/lodash._createset/index.js (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js)0
-rw-r--r--deps/npm/node_modules/lodash._createset/package.json65
-rw-r--r--deps/npm/node_modules/lodash._getnative/package.json30
-rw-r--r--deps/npm/node_modules/lodash._root/LICENSE (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE)0
-rw-r--r--deps/npm/node_modules/lodash._root/README.md (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md)0
-rw-r--r--deps/npm/node_modules/lodash._root/index.js (renamed from deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js)0
-rw-r--r--deps/npm/node_modules/lodash._root/package.json65
-rw-r--r--deps/npm/node_modules/lodash.clonedeep/package.json30
-rw-r--r--deps/npm/node_modules/lodash.restparam/package.json30
-rw-r--r--deps/npm/node_modules/lodash.union/package.json30
-rw-r--r--deps/npm/node_modules/lodash.uniq/package.json30
-rw-r--r--deps/npm/node_modules/lodash.without/package.json30
-rw-r--r--deps/npm/node_modules/lodash/LICENSE (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/LICENSE)0
-rw-r--r--deps/npm/node_modules/lodash/README.md (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/README.md)0
-rw-r--r--deps/npm/node_modules/lodash/array.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/chunk.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/chunk.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/compact.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/compact.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/difference.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/difference.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/drop.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/drop.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/dropRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/dropRightWhile.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRightWhile.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/dropWhile.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropWhile.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/fill.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/fill.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/findIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/findIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/findLastIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/findLastIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/first.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/first.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/flatten.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/flatten.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/flattenDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/flattenDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/head.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/head.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/indexOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/indexOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/initial.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/initial.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/intersection.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/intersection.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/last.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/last.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/lastIndexOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/lastIndexOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/object.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/object.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/pull.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/pull.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/pullAt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/pullAt.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/remove.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/remove.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/rest.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/rest.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/slice.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/slice.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/sortedIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/sortedLastIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedLastIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/tail.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/tail.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/take.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/take.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/takeRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/takeRightWhile.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRightWhile.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/takeWhile.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeWhile.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/union.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/union.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/uniq.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/uniq.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/unique.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/unique.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/unzip.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzip.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/unzipWith.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzipWith.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/without.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/without.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/xor.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/xor.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/zip.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/zip.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/zipObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/array/zipWith.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipWith.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/chain.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/chain.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/commit.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/commit.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/concat.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/concat.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/lodash.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/lodash.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/plant.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/plant.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/reverse.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/reverse.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/run.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/run.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/tap.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/tap.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/thru.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/thru.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/toJSON.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toJSON.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/toString.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toString.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/value.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/value.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/valueOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/valueOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperChain.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperChain.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperCommit.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperCommit.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperConcat.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperConcat.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperPlant.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperPlant.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperReverse.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperReverse.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperToString.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperToString.js)0
-rw-r--r--deps/npm/node_modules/lodash/chain/wrapperValue.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperValue.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/all.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/all.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/any.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/any.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/at.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/at.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/collect.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/collect.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/contains.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/contains.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/countBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/countBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/detect.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/detect.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/each.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/each.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/eachRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/eachRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/every.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/every.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/filter.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/filter.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/find.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/find.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/findLast.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findLast.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/findWhere.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findWhere.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/foldl.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldl.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/foldr.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldr.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/forEach.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEach.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/forEachRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEachRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/groupBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/groupBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/include.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/include.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/includes.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/includes.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/indexBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/indexBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/inject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/inject.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/invoke.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/invoke.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/map.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/map.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/max.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/max.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/min.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/min.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/partition.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/partition.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/pluck.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/pluck.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/reduce.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduce.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/reduceRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduceRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/reject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reject.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/sample.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sample.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/select.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/select.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/shuffle.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/shuffle.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/size.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/size.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/some.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/some.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/sortBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/sortByAll.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByAll.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/sortByOrder.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByOrder.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/sum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sum.js)0
-rw-r--r--deps/npm/node_modules/lodash/collection/where.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/collection/where.js)0
-rw-r--r--deps/npm/node_modules/lodash/date.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/date.js)0
-rw-r--r--deps/npm/node_modules/lodash/date/now.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/date/now.js)0
-rw-r--r--deps/npm/node_modules/lodash/function.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/after.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/after.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/ary.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/ary.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/backflow.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/backflow.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/before.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/before.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/bind.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/bind.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/bindAll.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindAll.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/bindKey.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindKey.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/compose.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/compose.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/curry.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/curry.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/curryRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/curryRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/debounce.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/debounce.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/defer.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/defer.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/delay.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/delay.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/flow.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/flow.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/flowRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/flowRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/memoize.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/memoize.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/modArgs.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/modArgs.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/negate.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/negate.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/once.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/once.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/partial.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/partial.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/partialRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/partialRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/rearg.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/rearg.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/restParam.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/restParam.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/spread.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/spread.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/throttle.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/throttle.js)0
-rw-r--r--deps/npm/node_modules/lodash/function/wrap.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/function/wrap.js)0
-rw-r--r--deps/npm/node_modules/lodash/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/index.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/LazyWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LazyWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/LodashWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LodashWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/MapCache.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/MapCache.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/SetCache.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/SetCache.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayConcat.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayConcat.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayCopy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayCopy.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayEach.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEach.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayEachRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEachRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayEvery.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEvery.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayExtremum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayExtremum.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayFilter.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayFilter.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayMap.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayMap.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayPush.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayPush.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayReduce.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduce.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arrayReduceRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduceRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arraySome.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySome.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/arraySum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySum.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/assignDefaults.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignDefaults.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/assignOwnDefaults.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignOwnDefaults.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/assignWith.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseAssign.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAssign.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseAt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseCallback.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCallback.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseClone.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseClone.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseCompareAscending.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCompareAscending.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseCopy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCopy.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseCreate.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCreate.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseDelay.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDelay.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseDifference.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDifference.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseEach.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEach.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseEachRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEachRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseEvery.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEvery.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseExtremum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseExtremum.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFill.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFill.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFilter.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFilter.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFind.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFind.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFindIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFindIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFlatten.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFlatten.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFor.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFor.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseForIn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForIn.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseForOwn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwn.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseForOwnRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwnRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseForRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseFunctions.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFunctions.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseGet.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseGet.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseIndexOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIndexOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseIsEqual.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqual.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseIsEqualDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqualDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseIsFunction.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsFunction.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseIsMatch.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsMatch.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseLodash.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseLodash.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseMap.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMap.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseMatches.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatches.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseMatchesProperty.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatchesProperty.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseMerge.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMerge.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseMergeDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMergeDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseProperty.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseProperty.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/basePropertyDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePropertyDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/basePullAt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePullAt.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseRandom.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseRandom.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseReduce.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseReduce.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSetData.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSetData.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSlice.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSlice.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSome.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSome.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSortBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSortByOrder.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortByOrder.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseSum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSum.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseToString.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseToString.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseUniq.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseUniq.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseValues.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseValues.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseWhile.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWhile.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/baseWrapperValue.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWrapperValue.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/binaryIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/binaryIndexBy.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndexBy.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/bindCallback.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bindCallback.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/bufferClone.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bufferClone.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/cacheIndexOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cacheIndexOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/cachePush.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cachePush.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/charsLeftIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsLeftIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/charsRightIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsRightIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/compareAscending.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareAscending.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/compareMultiple.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareMultiple.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/composeArgs.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgs.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/composeArgsRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgsRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createAggregator.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAggregator.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createAssigner.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAssigner.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createBaseEach.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseEach.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createBaseFor.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseFor.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createBindWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBindWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createCache.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCache.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createCompounder.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCompounder.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createCtorWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCtorWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createCurry.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCurry.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createDefaults.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createDefaults.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createExtremum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createExtremum.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createFind.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFind.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createFindIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createFindKey.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindKey.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createFlow.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFlow.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createForEach.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForEach.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createForIn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForIn.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createForOwn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForOwn.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createHybridWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createHybridWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createObjectMapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createObjectMapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createPadDir.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadDir.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createPadding.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadding.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createPartial.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartial.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createPartialWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartialWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createReduce.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createReduce.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createRound.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createRound.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createSortedIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createSortedIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/createWrapper.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createWrapper.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/deburrLetter.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/deburrLetter.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/equalArrays.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalArrays.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/equalByTag.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalByTag.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/equalObjects.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalObjects.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/escapeHtmlChar.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeHtmlChar.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/escapeRegExpChar.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeRegExpChar.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/escapeStringChar.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeStringChar.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getData.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getData.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getFuncName.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getFuncName.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getLength.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getLength.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getMatchData.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getMatchData.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getNative.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getNative.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/getView.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getView.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/indexOfNaN.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/indexOfNaN.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/initCloneArray.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneArray.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/initCloneByTag.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneByTag.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/initCloneObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/invokePath.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/invokePath.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isArrayLike.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isArrayLike.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isIterateeCall.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIterateeCall.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isKey.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isKey.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isLaziable.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLaziable.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isLength.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLength.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isObjectLike.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isObjectLike.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isSpace.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isSpace.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/isStrictComparable.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isStrictComparable.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/lazyClone.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyClone.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/lazyReverse.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyReverse.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/lazyValue.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyValue.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mapDelete.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapDelete.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mapGet.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapGet.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mapHas.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapHas.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mapSet.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapSet.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mergeData.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeData.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/mergeDefaults.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeDefaults.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/metaMap.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/metaMap.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/pickByArray.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByArray.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/pickByCallback.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByCallback.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/reEscape.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEscape.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/reEvaluate.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEvaluate.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/reInterpolate.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reInterpolate.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/realNames.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/realNames.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/reorder.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reorder.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/replaceHolders.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/replaceHolders.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/setData.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/setData.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/shimKeys.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/shimKeys.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/sortedUniq.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/sortedUniq.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/toIterable.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toIterable.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/toObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/toPath.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toPath.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/trimmedLeftIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedLeftIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/trimmedRightIndex.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedRightIndex.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/unescapeHtmlChar.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/unescapeHtmlChar.js)0
-rw-r--r--deps/npm/node_modules/lodash/internal/wrapperClone.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/internal/wrapperClone.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/clone.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/clone.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/cloneDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/cloneDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/eq.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/eq.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/gt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gt.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/gte.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gte.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isArguments.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArguments.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isArray.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArray.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isBoolean.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isBoolean.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isDate.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isDate.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isElement.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isElement.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isEmpty.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEmpty.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isEqual.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEqual.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isError.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isError.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isFinite.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFinite.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isFunction.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFunction.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isMatch.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isMatch.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isNaN.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNaN.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isNative.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNative.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isNull.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNull.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isNumber.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNumber.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isPlainObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isPlainObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isRegExp.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isRegExp.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isString.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isString.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isTypedArray.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isTypedArray.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/isUndefined.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isUndefined.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/lt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lt.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/lte.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lte.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/toArray.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toArray.js)0
-rw-r--r--deps/npm/node_modules/lodash/lang/toPlainObject.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toPlainObject.js)0
-rw-r--r--deps/npm/node_modules/lodash/math.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/add.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/add.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/ceil.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/ceil.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/floor.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/floor.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/max.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/max.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/min.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/min.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/round.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/round.js)0
-rw-r--r--deps/npm/node_modules/lodash/math/sum.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/math/sum.js)0
-rw-r--r--deps/npm/node_modules/lodash/number.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/number.js)0
-rw-r--r--deps/npm/node_modules/lodash/number/inRange.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/number/inRange.js)0
-rw-r--r--deps/npm/node_modules/lodash/number/random.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/number/random.js)0
-rw-r--r--deps/npm/node_modules/lodash/object.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/assign.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/assign.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/create.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/create.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/defaults.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaults.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/defaultsDeep.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaultsDeep.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/extend.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/extend.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/findKey.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/findKey.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/findLastKey.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/findLastKey.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/forIn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/forIn.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/forInRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/forInRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/forOwn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwn.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/forOwnRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwnRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/functions.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/functions.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/get.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/get.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/has.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/has.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/invert.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/invert.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/keys.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/keys.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/keysIn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/keysIn.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/mapKeys.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapKeys.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/mapValues.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapValues.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/merge.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/merge.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/methods.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/methods.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/omit.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/omit.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/pairs.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/pairs.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/pick.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/pick.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/result.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/result.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/set.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/set.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/transform.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/values.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/values.js)0
-rw-r--r--deps/npm/node_modules/lodash/object/valuesIn.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/object/valuesIn.js)0
-rw-r--r--deps/npm/node_modules/lodash/package.json81
-rw-r--r--deps/npm/node_modules/lodash/string.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/camelCase.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/camelCase.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/capitalize.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/capitalize.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/deburr.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/deburr.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/endsWith.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/endsWith.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/escape.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/escape.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/escapeRegExp.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/escapeRegExp.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/kebabCase.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/kebabCase.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/pad.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/pad.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/padLeft.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/padLeft.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/padRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/padRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/parseInt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/parseInt.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/repeat.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/repeat.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/snakeCase.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/snakeCase.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/startCase.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/startCase.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/startsWith.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/startsWith.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/template.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/template.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/templateSettings.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/templateSettings.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/trim.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/trim.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/trimLeft.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimLeft.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/trimRight.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimRight.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/trunc.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/trunc.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/unescape.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/unescape.js)0
-rw-r--r--deps/npm/node_modules/lodash/string/words.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/string/words.js)0
-rw-r--r--deps/npm/node_modules/lodash/support.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/support.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/attempt.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/attempt.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/callback.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/callback.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/constant.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/constant.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/identity.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/identity.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/iteratee.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/iteratee.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/matches.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matches.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/matchesProperty.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matchesProperty.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/method.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/method.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/methodOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/methodOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/mixin.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/mixin.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/noop.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/noop.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/property.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/property.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/propertyOf.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/propertyOf.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/range.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/range.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/times.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/times.js)0
-rw-r--r--deps/npm/node_modules/lodash/utility/uniqueId.js (renamed from deps/npm/node_modules/cli-table2/node_modules/lodash/utility/uniqueId.js)0
-rw-r--r--deps/npm/node_modules/lowercase-keys/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/index.js)0
-rw-r--r--deps/npm/node_modules/lowercase-keys/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/license)0
-rw-r--r--deps/npm/node_modules/lowercase-keys/package.json67
-rw-r--r--deps/npm/node_modules/lowercase-keys/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/readme.md)0
-rw-r--r--deps/npm/node_modules/lru-cache/README.md8
-rw-r--r--deps/npm/node_modules/lru-cache/index.js2
-rw-r--r--deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json58
-rw-r--r--deps/npm/node_modules/lru-cache/node_modules/yallist/package.json65
-rw-r--r--deps/npm/node_modules/lru-cache/package.json45
-rw-r--r--deps/npm/node_modules/make-dir/index.js85
-rw-r--r--deps/npm/node_modules/make-dir/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/license)0
-rw-r--r--deps/npm/node_modules/make-dir/package.json86
-rw-r--r--deps/npm/node_modules/make-dir/readme.md116
-rw-r--r--deps/npm/node_modules/make-fetch-happen/CHANGELOG.md550
-rw-r--r--deps/npm/node_modules/make-fetch-happen/LICENSE16
-rw-r--r--deps/npm/node_modules/make-fetch-happen/README.md (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/README.md)0
-rw-r--r--deps/npm/node_modules/make-fetch-happen/agent.js171
-rw-r--r--deps/npm/node_modules/make-fetch-happen/cache.js249
-rw-r--r--deps/npm/node_modules/make-fetch-happen/index.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/index.js)0
-rw-r--r--deps/npm/node_modules/make-fetch-happen/package.json95
-rw-r--r--deps/npm/node_modules/make-fetch-happen/warning.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/warning.js)0
-rw-r--r--deps/npm/node_modules/meant/package.json12
-rw-r--r--deps/npm/node_modules/mem/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/index.js)0
-rw-r--r--deps/npm/node_modules/mem/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/license)0
-rw-r--r--deps/npm/node_modules/mem/package.json77
-rw-r--r--deps/npm/node_modules/mem/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/readme.md)0
-rw-r--r--deps/npm/node_modules/mime-db/HISTORY.md368
-rw-r--r--deps/npm/node_modules/mime-db/LICENSE (renamed from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE)0
-rw-r--r--deps/npm/node_modules/mime-db/README.md94
-rw-r--r--deps/npm/node_modules/mime-db/db.json (renamed from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json)198
-rw-r--r--deps/npm/node_modules/mime-db/index.js (renamed from deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js)0
-rw-r--r--deps/npm/node_modules/mime-db/package.json100
-rw-r--r--deps/npm/node_modules/mime-types/HISTORY.md260
-rw-r--r--deps/npm/node_modules/mime-types/LICENSE (renamed from deps/npm/node_modules/request/node_modules/mime-types/LICENSE)0
-rw-r--r--deps/npm/node_modules/mime-types/README.md108
-rw-r--r--deps/npm/node_modules/mime-types/index.js (renamed from deps/npm/node_modules/request/node_modules/mime-types/index.js)0
-rw-r--r--deps/npm/node_modules/mime-types/package.json87
-rw-r--r--deps/npm/node_modules/mimic-fn/index.js9
-rw-r--r--deps/npm/node_modules/mimic-fn/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license)0
-rw-r--r--deps/npm/node_modules/mimic-fn/package.json73
-rw-r--r--deps/npm/node_modules/mimic-fn/readme.md68
-rw-r--r--deps/npm/node_modules/minimatch/LICENSE (renamed from deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE)0
-rw-r--r--deps/npm/node_modules/minimatch/README.md (renamed from deps/npm/node_modules/glob/node_modules/minimatch/README.md)0
-rw-r--r--deps/npm/node_modules/minimatch/minimatch.js (renamed from deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js)0
-rw-r--r--deps/npm/node_modules/minimatch/package.json69
-rw-r--r--deps/npm/node_modules/minimist/.travis.yml (renamed from deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml)0
-rw-r--r--deps/npm/node_modules/minimist/LICENSE (renamed from deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE)0
-rw-r--r--deps/npm/node_modules/minimist/example/parse.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js)0
-rw-r--r--deps/npm/node_modules/minimist/index.js187
-rw-r--r--deps/npm/node_modules/minimist/package.json71
-rw-r--r--deps/npm/node_modules/minimist/readme.markdown (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown)0
-rw-r--r--deps/npm/node_modules/minimist/test/dash.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js)0
-rw-r--r--deps/npm/node_modules/minimist/test/default_bool.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js)0
-rw-r--r--deps/npm/node_modules/minimist/test/dotted.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js)0
-rw-r--r--deps/npm/node_modules/minimist/test/long.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js)0
-rw-r--r--deps/npm/node_modules/minimist/test/parse.js318
-rw-r--r--deps/npm/node_modules/minimist/test/parse_modified.js9
-rw-r--r--deps/npm/node_modules/minimist/test/short.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/minimist/test/whitespace.js (renamed from deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js)0
-rw-r--r--deps/npm/node_modules/minipass/README.md124
-rw-r--r--deps/npm/node_modules/minipass/index.js379
-rw-r--r--deps/npm/node_modules/minipass/node_modules/yallist/LICENSE (renamed from deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/minipass/node_modules/yallist/README.md (renamed from deps/npm/node_modules/lru-cache/node_modules/yallist/README.md)0
-rw-r--r--deps/npm/node_modules/minipass/node_modules/yallist/iterator.js8
-rw-r--r--deps/npm/node_modules/minipass/node_modules/yallist/package.json62
-rw-r--r--deps/npm/node_modules/minipass/node_modules/yallist/yallist.js376
-rw-r--r--deps/npm/node_modules/minipass/package.json72
-rw-r--r--deps/npm/node_modules/minizlib/LICENSE (renamed from deps/npm/node_modules/tar/node_modules/minizlib/LICENSE)0
-rw-r--r--deps/npm/node_modules/minizlib/README.md (renamed from deps/npm/node_modules/tar/node_modules/minizlib/README.md)0
-rw-r--r--deps/npm/node_modules/minizlib/constants.js (renamed from deps/npm/node_modules/tar/node_modules/minizlib/constants.js)0
-rw-r--r--deps/npm/node_modules/minizlib/index.js364
-rw-r--r--deps/npm/node_modules/minizlib/package.json71
-rw-r--r--deps/npm/node_modules/mississippi/changelog.md10
-rw-r--r--deps/npm/node_modules/mississippi/index.js1
-rw-r--r--deps/npm/node_modules/mississippi/license7
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/concat-stream/index.js143
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json87
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json86
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md102
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/README.md97
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/index.js228
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md47
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js72
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md51
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js21
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json69
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json65
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js62
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json56
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/package.json72
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/duplexify/test.js292
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js83
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json68
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore3
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js52
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json57
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/from2/package.json72
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json54
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json59
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/pump/index.js80
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/pump/package.json64
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/pumpify/index.js55
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/pumpify/package.json67
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/pumpify/test.js163
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/index.js54
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml6
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE21
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md25
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js20
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json56
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js48
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/package.json59
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/stream-each/test.js82
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore1
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json89
-rw-r--r--deps/npm/node_modules/mississippi/node_modules/through2/package.json68
-rw-r--r--deps/npm/node_modules/mississippi/package.json53
-rw-r--r--deps/npm/node_modules/mississippi/readme.md43
-rw-r--r--deps/npm/node_modules/mkdirp/node_modules/minimist/index.js187
-rw-r--r--deps/npm/node_modules/mkdirp/node_modules/minimist/package.json75
-rw-r--r--deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js318
-rw-r--r--deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js9
-rw-r--r--deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js67
-rw-r--r--deps/npm/node_modules/mkdirp/package.json41
-rw-r--r--deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json72
-rw-r--r--deps/npm/node_modules/move-concurrently/node_modules/run-queue/package.json66
-rw-r--r--deps/npm/node_modules/move-concurrently/package.json34
-rw-r--r--deps/npm/node_modules/ms/index.js162
-rw-r--r--deps/npm/node_modules/ms/license.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md)0
-rw-r--r--deps/npm/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/ms/readme.md60
-rw-r--r--deps/npm/node_modules/mute-stream/.travis.yml (renamed from deps/npm/node_modules/osenv/.travis.yml)0
-rw-r--r--deps/npm/node_modules/mute-stream/LICENSE (renamed from deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/LICENSE)0
-rw-r--r--deps/npm/node_modules/mute-stream/README.md (renamed from deps/npm/node_modules/read/node_modules/mute-stream/README.md)0
-rw-r--r--deps/npm/node_modules/mute-stream/mute.js (renamed from deps/npm/node_modules/read/node_modules/mute-stream/mute.js)0
-rw-r--r--deps/npm/node_modules/mute-stream/package.json60
-rw-r--r--deps/npm/node_modules/mute-stream/test/basic.js (renamed from deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/CHANGELOG.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/LICENSE.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/package.json102
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/blob.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/body.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/common.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/fetch-error.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/headers.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/request.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js)0
-rw-r--r--deps/npm/node_modules/node-fetch-npm/src/response.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js)0
-rw-r--r--deps/npm/node_modules/node-gyp/.jshintrc7
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/fstream/package.json62
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md209
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js923
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md123
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore5
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md21
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md91
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js59
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json77
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml4
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown62
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js6
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js13
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json92
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js39
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json75
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json63
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/nopt/package.json6
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/semver/package.json2
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json63
-rw-r--r--deps/npm/node_modules/node-gyp/node_modules/tar/package.json27
-rw-r--r--deps/npm/node_modules/node-gyp/package.json30
-rw-r--r--deps/npm/node_modules/nopt/package.json27
-rw-r--r--deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json76
-rw-r--r--deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json78
-rw-r--r--deps/npm/node_modules/normalize-package-data/package.json15
-rw-r--r--deps/npm/node_modules/npm-audit-report/CHANGELOG.md42
-rw-r--r--deps/npm/node_modules/npm-audit-report/LICENSE16
-rw-r--r--deps/npm/node_modules/npm-audit-report/README.md40
-rw-r--r--deps/npm/node_modules/npm-audit-report/index.js24
-rw-r--r--deps/npm/node_modules/npm-audit-report/lib/utils.js35
-rw-r--r--deps/npm/node_modules/npm-audit-report/package.json82
-rw-r--r--deps/npm/node_modules/npm-audit-report/reporters/detail.js206
-rw-r--r--deps/npm/node_modules/npm-audit-report/reporters/install.js70
-rw-r--r--deps/npm/node_modules/npm-audit-report/reporters/json.js17
-rw-r--r--deps/npm/node_modules/npm-audit-report/reporters/quiet.js18
-rw-r--r--deps/npm/node_modules/npm-bundled/README.md (renamed from deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/README.md)0
-rw-r--r--deps/npm/node_modules/npm-bundled/index.js (renamed from deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/index.js)0
-rw-r--r--deps/npm/node_modules/npm-bundled/package.json60
-rw-r--r--deps/npm/node_modules/npm-cache-filename/package.json28
-rw-r--r--deps/npm/node_modules/npm-install-checks/package.json28
-rw-r--r--deps/npm/node_modules/npm-lifecycle/CHANGELOG.md26
-rw-r--r--deps/npm/node_modules/npm-lifecycle/README.md4
-rw-r--r--deps/npm/node_modules/npm-lifecycle/index.js97
-rw-r--r--deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json56
-rw-r--r--deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json66
-rw-r--r--deps/npm/node_modules/npm-lifecycle/package.json41
-rw-r--r--deps/npm/node_modules/npm-logical-tree/CHANGELOG.md46
-rw-r--r--deps/npm/node_modules/npm-logical-tree/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-logical-tree/README.md147
-rw-r--r--deps/npm/node_modules/npm-logical-tree/index.js192
-rw-r--r--deps/npm/node_modules/npm-logical-tree/package.json83
-rw-r--r--deps/npm/node_modules/npm-package-arg/CHANGELOG.md16
-rw-r--r--deps/npm/node_modules/npm-package-arg/npa.js20
-rw-r--r--deps/npm/node_modules/npm-package-arg/package.json64
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md209
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js923
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md123
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js200
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore5
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md21
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md91
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js59
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json77
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml4
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown62
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js6
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js13
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json88
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js39
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json75
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json63
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json71
-rw-r--r--deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json60
-rw-r--r--deps/npm/node_modules/npm-packlist/package.json14
-rw-r--r--deps/npm/node_modules/npm-pick-manifest/CHANGELOG.md (renamed from deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/npm-pick-manifest/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-pick-manifest/README.md (renamed from deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/README.md)0
-rw-r--r--deps/npm/node_modules/npm-pick-manifest/index.js (renamed from deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/index.js)0
-rw-r--r--deps/npm/node_modules/npm-pick-manifest/package.json85
-rw-r--r--deps/npm/node_modules/npm-profile/CHANGELOG.md28
-rw-r--r--deps/npm/node_modules/npm-profile/README.md156
-rw-r--r--deps/npm/node_modules/npm-profile/index.js187
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/CHANGELOG.md478
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/README.es.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.es.md)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/README.md624
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/en.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/en.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/es.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/es.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/get.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/get.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/index.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/path.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/path.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/read.js125
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/rm.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/rm.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/write.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/write.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/entry-index.js225
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/memoization.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/memoization.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/fix-owner.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/hash-to-segments.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/hash-to-segments.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/move-file.js51
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/tmp.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/tmp.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/y.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/y.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/lib/verify.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/verify.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.json (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.json)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.json (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.json)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/ls.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/ls.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/changelog.md7
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/index.js10
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/license7
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/package.json62
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/readme.md411
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/package.json137
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/put.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/put.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/rm.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/rm.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/cacache/verify.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/verify.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md15
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md22
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js14
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md130
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md248
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js399
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json66
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json82
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md423
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md3
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md624
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js115
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js224
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js55
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE13
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md91
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js172
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json65
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json126
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md173
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js497
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json60
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js33
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js301
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js61
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js385
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js181
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js64
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js98
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js75
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md94
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js109
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore2
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md99
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--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.md122
-rw-r--r--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.md82
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.json96
-rw-r--r--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.json72
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js26
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml14
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md362
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile50
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md312
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json19
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js152
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md51
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json88
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js185
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js202
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js10
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js15
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js248
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json62
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore2
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md113
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js228
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore2
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md99
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--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.md89
-rw-r--r--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.js73
-rw-r--r--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.js85
-rw-r--r--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.md122
-rw-r--r--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/LICENSE19
-rw-r--r--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.md82
-rw-r--r--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.js4
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js3
-rw-r--r--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.js7
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.js52
-rw-r--r--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.js84
-rw-r--r--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.js46
-rw-r--r--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.js48
-rw-r--r--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.js32
-rw-r--r--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.js21
-rw-r--r--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.json96
-rw-r--r--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.json72
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js26
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml1
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore9
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml14
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md362
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE18
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile50
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md312
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json19
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js70
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js1
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js152
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md21
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md51
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json88
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js185
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js202
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js10
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js15
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js248
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json62
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js308
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore6
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md132
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md160
-rw-r--r--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.js554
-rw-r--r--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.js188
-rw-r--r--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.js73
-rw-r--r--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.js175
-rw-r--r--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.js288
-rw-r--r--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.js215
-rw-r--r--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.ts24
-rw-r--r--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.js148
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json123
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json53
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md36
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md53
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js32
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json76
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json100
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json64
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json67
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml22
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore2
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml22
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md99
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--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.md89
-rw-r--r--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.js73
-rw-r--r--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.js85
-rw-r--r--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.md122
-rw-r--r--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/LICENSE19
-rw-r--r--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.md82
-rw-r--r--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.js4
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js3
-rw-r--r--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.js7
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.js52
-rw-r--r--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.js84
-rw-r--r--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.js46
-rw-r--r--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.js48
-rw-r--r--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.js32
-rw-r--r--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.js21
-rw-r--r--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.json96
-rw-r--r--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.json72
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js26
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json53
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json70
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json68
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json66
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md175
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md3
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md462
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js334
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json90
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json27
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/index.js10
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/pump/.travis.yml)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/pump/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/pump/README.md)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/index.js80
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/package.json59
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test-browser.js (renamed from deps/npm/node_modules/mississippi/node_modules/pump/test-browser.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test.js (renamed from deps/npm/node_modules/mississippi/node_modules/pump/test.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/package.json62
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/mississippi/readme.md399
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/.travis.yml5
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/pumpify/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/README.md56
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/index.js82
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/package.json59
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/test-browser.js62
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/pump/test-node.js53
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.travis.yml (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/README.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js.map (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/lib/smart-buffer.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/package.json70
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/test/smart-buffer.test.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/smart-buffer/typings/index.d.ts (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/History.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/package.json66
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/test.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/examples/associate.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/examples/bind.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/examples/connect.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-agent.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-client.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js)0
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/socks/package.json68
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/ssri/CHANGELOG.md256
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/ssri/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/ssri/README.md488
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/ssri/index.js379
-rw-r--r--deps/npm/node_modules/npm-profile/node_modules/ssri/package.json90
-rw-r--r--deps/npm/node_modules/npm-profile/package.json67
-rw-r--r--deps/npm/node_modules/npm-registry-client/CHANGELOG.md11
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/access.js8
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/adduser.js3
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js2
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/org.js2
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/publish.js2
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/request.js2
-rw-r--r--deps/npm/node_modules/npm-registry-client/lib/team.js4
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE24
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js143
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE35
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js4
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js630
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json87
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown61
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js19
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js10
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json86
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md102
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/LICENSE15
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/README.md81
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js270
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json64
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore2
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/License21
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/Makefile21
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/README.md215
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/equation.gifbin0 -> 1209 bytes
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js31
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/example/stop.js40
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/index.js1
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js99
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js143
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json56
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js10
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-forever.js24
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js176
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js77
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js69
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js (renamed from deps/npm/node_modules/retry/test/runner.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md81
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md17
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/ssri/README.md30
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js81
-rw-r--r--deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json34
-rw-r--r--deps/npm/node_modules/npm-registry-client/package.json49
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md43
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/README.md548
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/auth.js47
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/check-response.js99
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/config.js94
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/errors.js58
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/index.js166
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md478
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md628
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.md624
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/en.js3
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/es.js3
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/get.js190
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/index.js3
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js26
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js125
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js21
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js162
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js225
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js69
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js44
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js11
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js51
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js32
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js25
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js213
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js44
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json6
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js46
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json6
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/ls.js6
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md7
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js10
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license7
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json62
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md411
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/package.json137
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/put.js71
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/rm.js28
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/verify.js3
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md29
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md121
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js60
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json70
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md525
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE16
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md404
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js171
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js482
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json95
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js24
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml5
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/LICENSE21
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/README.md56
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/index.js82
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/package.json59
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js62
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-node.js53
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json70
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json66
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/.npmignore (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/LICENSE (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/README.md (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/index.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js (renamed from deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js)0
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/socks/package.json68
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md256
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md16
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/README.md488
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/index.js379
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/package.json90
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/package.json126
-rw-r--r--deps/npm/node_modules/npm-registry-fetch/silentlog.js14
-rw-r--r--deps/npm/node_modules/npm-run-path/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/index.js)0
-rw-r--r--deps/npm/node_modules/npm-run-path/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/npm-run-path/package.json77
-rw-r--r--deps/npm/node_modules/npm-run-path/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/readme.md)0
-rw-r--r--deps/npm/node_modules/npm-user-validate/package.json24
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md195
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore1
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json51
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json66
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json65
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json78
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md27
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt16
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/README.md40
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js157
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json70
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js53
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js32
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json74
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md32
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js4
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json71
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md28
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json80
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json92
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json102
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json66
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/gauge/package.json96
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md26
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt14
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/set-blocking/README.md31
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js7
-rw-r--r--deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json74
-rw-r--r--deps/npm/node_modules/npmlog/package.json18
-rw-r--r--deps/npm/node_modules/number-is-nan/index.js (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js)0
-rw-r--r--deps/npm/node_modules/number-is-nan/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/number-is-nan/package.json71
-rw-r--r--deps/npm/node_modules/number-is-nan/readme.md (renamed from deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md)0
-rw-r--r--deps/npm/node_modules/oauth-sign/LICENSE (renamed from deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE)0
-rw-r--r--deps/npm/node_modules/oauth-sign/README.md4
-rw-r--r--deps/npm/node_modules/oauth-sign/index.js135
-rw-r--r--deps/npm/node_modules/oauth-sign/package.json56
-rw-r--r--deps/npm/node_modules/object-assign/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js)0
-rw-r--r--deps/npm/node_modules/object-assign/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/object-assign/package.json79
-rw-r--r--deps/npm/node_modules/object-assign/readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/readme.md)0
-rw-r--r--deps/npm/node_modules/once/package.json44
-rw-r--r--deps/npm/node_modules/opener/package.json28
-rw-r--r--deps/npm/node_modules/os-homedir/index.js (renamed from deps/npm/node_modules/osenv/node_modules/os-homedir/index.js)0
-rw-r--r--deps/npm/node_modules/os-homedir/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/license)0
-rw-r--r--deps/npm/node_modules/os-homedir/package.json74
-rw-r--r--deps/npm/node_modules/os-homedir/readme.md (renamed from deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md)0
-rw-r--r--deps/npm/node_modules/os-locale/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/index.js)0
-rw-r--r--deps/npm/node_modules/os-locale/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/os-locale/package.json77
-rw-r--r--deps/npm/node_modules/os-locale/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/readme.md)0
-rw-r--r--deps/npm/node_modules/os-tmpdir/index.js (renamed from deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js)0
-rw-r--r--deps/npm/node_modules/os-tmpdir/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/license)0
-rw-r--r--deps/npm/node_modules/os-tmpdir/package.json74
-rw-r--r--deps/npm/node_modules/os-tmpdir/readme.md (renamed from deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md)0
-rw-r--r--deps/npm/node_modules/osenv/.npmignore13
-rw-r--r--deps/npm/node_modules/osenv/node_modules/os-homedir/package.json77
-rw-r--r--deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json77
-rw-r--r--deps/npm/node_modules/osenv/package.json44
-rw-r--r--deps/npm/node_modules/osenv/test/unix.js71
-rw-r--r--deps/npm/node_modules/osenv/test/windows.js74
-rw-r--r--deps/npm/node_modules/osenv/x.tap39
-rw-r--r--deps/npm/node_modules/p-finally/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/index.js)0
-rw-r--r--deps/npm/node_modules/p-finally/license (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license)0
-rw-r--r--deps/npm/node_modules/p-finally/package.json74
-rw-r--r--deps/npm/node_modules/p-finally/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/readme.md)0
-rw-r--r--deps/npm/node_modules/p-limit/index.js42
-rw-r--r--deps/npm/node_modules/p-limit/license (renamed from deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license)0
-rw-r--r--deps/npm/node_modules/p-limit/package.json81
-rw-r--r--deps/npm/node_modules/p-limit/readme.md69
-rw-r--r--deps/npm/node_modules/p-locate/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/p-locate/license (renamed from deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license)0
-rw-r--r--deps/npm/node_modules/p-locate/package.json86
-rw-r--r--deps/npm/node_modules/p-locate/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/p-try/index.js4
-rw-r--r--deps/npm/node_modules/p-try/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/license)0
-rw-r--r--deps/npm/node_modules/p-try/package.json75
-rw-r--r--deps/npm/node_modules/p-try/readme.md38
-rw-r--r--deps/npm/node_modules/package-json/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/index.js)0
-rw-r--r--deps/npm/node_modules/package-json/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/license)0
-rw-r--r--deps/npm/node_modules/package-json/package.json75
-rw-r--r--deps/npm/node_modules/package-json/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/readme.md)0
-rw-r--r--deps/npm/node_modules/pacote/CHANGELOG.md258
-rw-r--r--deps/npm/node_modules/pacote/extract.js124
-rw-r--r--deps/npm/node_modules/pacote/lib/extract-stream.js40
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/directory.js1
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/file.js14
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/git.js26
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js12
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/registry/manifest.js4
-rw-r--r--deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js82
-rw-r--r--deps/npm/node_modules/pacote/lib/finalize-manifest.js27
-rw-r--r--deps/npm/node_modules/pacote/lib/util/finished.js17
-rw-r--r--deps/npm/node_modules/pacote/lib/util/git.js169
-rw-r--r--deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js24
-rw-r--r--deps/npm/node_modules/pacote/lib/util/opt-check.js5
-rw-r--r--deps/npm/node_modules/pacote/lib/util/pack-dir.js4
-rw-r--r--deps/npm/node_modules/pacote/lib/with-tarball-stream.js135
-rw-r--r--deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js51
-rw-r--r--deps/npm/node_modules/pacote/node_modules/get-stream/index.js51
-rw-r--r--deps/npm/node_modules/pacote/node_modules/get-stream/package.json80
-rw-r--r--deps/npm/node_modules/pacote/node_modules/get-stream/readme.md117
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md509
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE3
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js171
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md130
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md248
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js5
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js4
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js399
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js133
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js42
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md25
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE17
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md40
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js24
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js152
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md21
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md51
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json66
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json82
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md173
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js497
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js559
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json60
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js33
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js301
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js61
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js385
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js181
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js64
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js98
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js75
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md94
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md74
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js109
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md105
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md89
-rw-r--r--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.js73
-rw-r--r--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.js85
-rw-r--r--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.md122
-rw-r--r--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/LICENSE19
-rw-r--r--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.md82
-rw-r--r--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.js4
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js3
-rw-r--r--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.js7
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.js52
-rw-r--r--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.js84
-rw-r--r--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.js46
-rw-r--r--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.js48
-rw-r--r--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.js32
-rw-r--r--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.js21
-rw-r--r--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.json96
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json72
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js38
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore9
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml14
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md362
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE18
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile50
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md312
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json19
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js70
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js152
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md21
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md51
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json88
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js185
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js202
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js10
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js248
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json62
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js303
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore2
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md113
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md137
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js228
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml23
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md105
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md89
-rw-r--r--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.js73
-rw-r--r--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.js85
-rw-r--r--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.md122
-rw-r--r--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/LICENSE19
-rw-r--r--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.md82
-rw-r--r--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.js4
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js3
-rw-r--r--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.js7
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.js52
-rw-r--r--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.js84
-rw-r--r--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.js46
-rw-r--r--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.js48
-rw-r--r--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.js32
-rw-r--r--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.js21
-rw-r--r--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.json96
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json72
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js38
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore9
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml14
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md362
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE18
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile50
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md312
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json19
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js70
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js152
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md21
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json69
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md51
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json88
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js185
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js202
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js10
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js248
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json62
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js308
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md252
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md21
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md398
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml25
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE16
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md52
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js113
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js14
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore6
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md132
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE20
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md160
-rw-r--r--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.js554
-rw-r--r--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.js176
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/index.js22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/internal.js188
-rw-r--r--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.js73
-rw-r--r--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.js451
-rw-r--r--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.js168
-rw-r--r--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.json122
-rw-r--r--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.json264
-rw-r--r--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.json273
-rw-r--r--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.json177
-rw-r--r--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.json182
-rw-r--r--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.json1
-rw-r--r--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.json55
-rw-r--r--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.json125
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf16.js175
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/encodings/utf7.js288
-rw-r--r--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.js51
-rw-r--r--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.js215
-rw-r--r--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.ts24
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/index.js148
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/lib/streams.js120
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json123
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json53
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js75
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md36
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md7
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md53
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js32
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json76
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json100
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js109
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js411
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js92
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js35
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js296
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js214
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js174
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js71
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore1
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml23
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md105
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md136
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js158
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md89
-rw-r--r--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.js73
-rw-r--r--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.js85
-rw-r--r--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.md122
-rw-r--r--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/LICENSE19
-rw-r--r--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.md82
-rw-r--r--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.js4
-rw-r--r--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.js1159
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.js1157
-rw-r--r--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.map1
-rw-r--r--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.js1
-rw-r--r--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.map1
-rw-r--r--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.ts74
-rw-r--r--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.js3
-rw-r--r--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.js7
-rw-r--r--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.js271
-rw-r--r--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.js120
-rw-r--r--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.js111
-rw-r--r--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.js35
-rw-r--r--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.js383
-rw-r--r--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.js52
-rw-r--r--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.js84
-rw-r--r--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.js46
-rw-r--r--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.js48
-rw-r--r--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.js32
-rw-r--r--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.js21
-rw-r--r--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.json96
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/package.json72
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json65
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js38
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js631
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc46
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore2
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md90
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js416
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json53
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/test/api-test.js407
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json70
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json68
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json66
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/make-fetch-happen/package.json97
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/README.md209
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js923
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md123
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js200
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore5
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md21
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md91
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js59
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json77
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml4
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE18
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown62
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js6
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js13
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json88
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js39
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json75
-rw-r--r--deps/npm/node_modules/pacote/node_modules/minimatch/package.json63
-rw-r--r--deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json81
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig15
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore2
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml5
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE19
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/README.md92
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/index.js52
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig12
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json7
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore2
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml5
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md72
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json30
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js22
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js26
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json64
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json5
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js92
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/package.json68
-rw-r--r--deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js263
-rw-r--r--deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md38
-rw-r--r--deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json79
-rw-r--r--deps/npm/node_modules/pacote/node_modules/protoduck/package.json88
-rw-r--r--deps/npm/node_modules/pacote/package.json87
-rw-r--r--deps/npm/node_modules/pacote/tarball.js108
-rw-r--r--deps/npm/node_modules/parallel-transform/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.npmignore)0
-rw-r--r--deps/npm/node_modules/parallel-transform/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/LICENSE)0
-rw-r--r--deps/npm/node_modules/parallel-transform/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/README.md)0
-rw-r--r--deps/npm/node_modules/parallel-transform/index.js (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/index.js)0
-rw-r--r--deps/npm/node_modules/parallel-transform/package.json58
-rw-r--r--deps/npm/node_modules/path-exists/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/path-exists/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/license)0
-rw-r--r--deps/npm/node_modules/path-exists/package.json72
-rw-r--r--deps/npm/node_modules/path-exists/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/path-is-absolute/index.js (renamed from deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js)0
-rw-r--r--deps/npm/node_modules/path-is-absolute/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/license)0
-rw-r--r--deps/npm/node_modules/path-is-absolute/package.json75
-rw-r--r--deps/npm/node_modules/path-is-absolute/readme.md (renamed from deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md)0
-rw-r--r--deps/npm/node_modules/path-is-inside/package.json34
-rw-r--r--deps/npm/node_modules/path-key/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/path-key/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license)0
-rw-r--r--deps/npm/node_modules/path-key/package.json71
-rw-r--r--deps/npm/node_modules/path-key/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/performance-now/.npmignore (renamed from deps/npm/node_modules/request/node_modules/performance-now/.npmignore)0
-rw-r--r--deps/npm/node_modules/performance-now/.tm_properties (renamed from deps/npm/node_modules/request/node_modules/performance-now/.tm_properties)0
-rw-r--r--deps/npm/node_modules/performance-now/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/performance-now/.travis.yml)0
-rw-r--r--deps/npm/node_modules/performance-now/README.md (renamed from deps/npm/node_modules/request/node_modules/performance-now/README.md)0
-rw-r--r--deps/npm/node_modules/performance-now/lib/performance-now.js (renamed from deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js)0
-rw-r--r--deps/npm/node_modules/performance-now/lib/performance-now.js.map (renamed from deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js.map)0
-rw-r--r--deps/npm/node_modules/performance-now/license.txt (renamed from deps/npm/node_modules/request/node_modules/performance-now/license.txt)0
-rw-r--r--deps/npm/node_modules/performance-now/package.json65
-rw-r--r--deps/npm/node_modules/performance-now/src/index.d.ts (renamed from deps/npm/node_modules/request/node_modules/performance-now/src/index.d.ts)0
-rw-r--r--deps/npm/node_modules/performance-now/src/performance-now.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/src/performance-now.coffee)0
-rw-r--r--deps/npm/node_modules/performance-now/test/mocha.opts (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/mocha.opts)0
-rw-r--r--deps/npm/node_modules/performance-now/test/performance-now.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/performance-now.coffee)0
-rw-r--r--deps/npm/node_modules/performance-now/test/scripts.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/scripts.coffee)0
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-call.coffee)0
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-require.coffee)0
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/difference.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/scripts/difference.coffee)0
-rwxr-xr-xdeps/npm/node_modules/performance-now/test/scripts/initial-value.coffee (renamed from deps/npm/node_modules/request/node_modules/performance-now/test/scripts/initial-value.coffee)0
-rw-r--r--deps/npm/node_modules/pify/index.js84
-rw-r--r--deps/npm/node_modules/pify/license (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license)0
-rw-r--r--deps/npm/node_modules/pify/package.json84
-rw-r--r--deps/npm/node_modules/pify/readme.md131
-rw-r--r--deps/npm/node_modules/prepend-http/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/prepend-http/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/license)0
-rw-r--r--deps/npm/node_modules/prepend-http/package.json67
-rw-r--r--deps/npm/node_modules/prepend-http/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/process-nextick-args/index.js43
-rw-r--r--deps/npm/node_modules/process-nextick-args/license.md (renamed from deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md)0
-rw-r--r--deps/npm/node_modules/process-nextick-args/package.json50
-rw-r--r--deps/npm/node_modules/process-nextick-args/readme.md18
-rw-r--r--deps/npm/node_modules/promise-inflight/package.json31
-rw-r--r--deps/npm/node_modules/promise-retry/.editorconfig (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.editorconfig)0
-rw-r--r--deps/npm/node_modules/promise-retry/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.npmignore)0
-rw-r--r--deps/npm/node_modules/promise-retry/.travis.yml (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.travis.yml)0
-rw-r--r--deps/npm/node_modules/promise-retry/LICENSE (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/LICENSE)0
-rw-r--r--deps/npm/node_modules/promise-retry/README.md (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/README.md)0
-rw-r--r--deps/npm/node_modules/promise-retry/index.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/index.js)0
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/.npmignore2
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/License21
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/Makefile21
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/README.md215
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/equation.gifbin0 -> 1209 bytes
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/example/dns.js31
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/example/stop.js40
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/index.js1
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry.js99
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js143
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/package.json56
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/common.js10
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js24
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js176
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js77
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js69
-rw-r--r--deps/npm/node_modules/promise-retry/node_modules/retry/test/runner.js5
-rw-r--r--deps/npm/node_modules/promise-retry/package.json70
-rw-r--r--deps/npm/node_modules/promise-retry/test/test.js (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/test/test.js)0
-rw-r--r--deps/npm/node_modules/promzard/.npmignore (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore)0
-rw-r--r--deps/npm/node_modules/promzard/LICENSE (renamed from deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE)0
-rw-r--r--deps/npm/node_modules/promzard/README.md (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/README.md)0
-rw-r--r--deps/npm/node_modules/promzard/example/buffer.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js)0
-rw-r--r--deps/npm/node_modules/promzard/example/index.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js)0
-rw-r--r--deps/npm/node_modules/promzard/example/npm-init/README.md (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md)0
-rw-r--r--deps/npm/node_modules/promzard/example/npm-init/init-input.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js)0
-rw-r--r--deps/npm/node_modules/promzard/example/npm-init/init.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js)0
-rw-r--r--deps/npm/node_modules/promzard/example/npm-init/package.json (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json)0
-rw-r--r--deps/npm/node_modules/promzard/example/substack-input.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js)2
-rw-r--r--deps/npm/node_modules/promzard/package.json53
-rw-r--r--deps/npm/node_modules/promzard/promzard.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js)1
-rw-r--r--deps/npm/node_modules/promzard/test/basic.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js)0
-rw-r--r--deps/npm/node_modules/promzard/test/buffer.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js)0
-rw-r--r--deps/npm/node_modules/promzard/test/exports.input (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input)0
-rw-r--r--deps/npm/node_modules/promzard/test/exports.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js)0
-rw-r--r--deps/npm/node_modules/promzard/test/fn.input (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input)0
-rw-r--r--deps/npm/node_modules/promzard/test/fn.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js)0
-rw-r--r--deps/npm/node_modules/promzard/test/simple.input (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input)0
-rw-r--r--deps/npm/node_modules/promzard/test/simple.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js)6
-rw-r--r--deps/npm/node_modules/promzard/test/validate.input (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input)0
-rw-r--r--deps/npm/node_modules/promzard/test/validate.js (renamed from deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js)0
-rw-r--r--deps/npm/node_modules/proto-list/LICENSE (renamed from deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/LICENSE)0
-rw-r--r--deps/npm/node_modules/proto-list/README.md (renamed from deps/npm/node_modules/config-chain/node_modules/proto-list/README.md)0
-rw-r--r--deps/npm/node_modules/proto-list/package.json51
-rw-r--r--deps/npm/node_modules/proto-list/proto-list.js (renamed from deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js)0
-rw-r--r--deps/npm/node_modules/proto-list/test/basic.js (renamed from deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js)0
-rw-r--r--deps/npm/node_modules/protoduck/CHANGELOG.md55
-rw-r--r--deps/npm/node_modules/protoduck/LICENSE20
-rw-r--r--deps/npm/node_modules/protoduck/README.md (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/README.md)0
-rw-r--r--deps/npm/node_modules/protoduck/index.js (renamed from deps/npm/node_modules/pacote/node_modules/protoduck/index.js)0
-rw-r--r--deps/npm/node_modules/protoduck/package.json89
-rw-r--r--deps/npm/node_modules/prr/.npmignore (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore)0
-rw-r--r--deps/npm/node_modules/prr/.travis.yml10
-rw-r--r--deps/npm/node_modules/prr/LICENSE.md11
-rw-r--r--deps/npm/node_modules/prr/README.md47
-rw-r--r--deps/npm/node_modules/prr/package.json58
-rw-r--r--deps/npm/node_modules/prr/prr.js (renamed from deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/prr.js)0
-rw-r--r--deps/npm/node_modules/prr/test.js (renamed from deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/test.js)0
-rw-r--r--deps/npm/node_modules/pseudomap/LICENSE (renamed from deps/npm/node_modules/pacote/node_modules/minimatch/LICENSE)0
-rw-r--r--deps/npm/node_modules/pseudomap/README.md (renamed from deps/npm/node_modules/lru-cache/node_modules/pseudomap/README.md)0
-rw-r--r--deps/npm/node_modules/pseudomap/map.js (renamed from deps/npm/node_modules/lru-cache/node_modules/pseudomap/map.js)0
-rw-r--r--deps/npm/node_modules/pseudomap/package.json54
-rw-r--r--deps/npm/node_modules/pseudomap/pseudomap.js (renamed from deps/npm/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js)0
-rw-r--r--deps/npm/node_modules/pseudomap/test/basic.js (renamed from deps/npm/node_modules/lru-cache/node_modules/pseudomap/test/basic.js)0
-rw-r--r--deps/npm/node_modules/pump/.travis.yml5
-rw-r--r--deps/npm/node_modules/pump/LICENSE21
-rw-r--r--deps/npm/node_modules/pump/README.md65
-rw-r--r--deps/npm/node_modules/pump/index.js82
-rw-r--r--deps/npm/node_modules/pump/package.json59
-rw-r--r--deps/npm/node_modules/pump/test-browser.js66
-rw-r--r--deps/npm/node_modules/pump/test-node.js53
-rw-r--r--deps/npm/node_modules/pumpify/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/pumpify/.travis.yml)0
-rw-r--r--deps/npm/node_modules/pumpify/LICENSE21
-rw-r--r--deps/npm/node_modules/pumpify/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/pumpify/README.md)0
-rw-r--r--deps/npm/node_modules/pumpify/index.js60
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/.travis.yml5
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/LICENSE21
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/README.md56
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/index.js82
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/package.json59
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/test-browser.js62
-rw-r--r--deps/npm/node_modules/pumpify/node_modules/pump/test-node.js53
-rw-r--r--deps/npm/node_modules/pumpify/package.json70
-rw-r--r--deps/npm/node_modules/pumpify/test.js235
-rw-r--r--deps/npm/node_modules/punycode/LICENSE-MIT.txt (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt)0
-rw-r--r--deps/npm/node_modules/punycode/README.md (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md)0
-rw-r--r--deps/npm/node_modules/punycode/package.json88
-rw-r--r--deps/npm/node_modules/punycode/punycode.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js)0
-rw-r--r--deps/npm/node_modules/qrcode-terminal/.npmignore2
-rw-r--r--deps/npm/node_modules/qrcode-terminal/README.md1
-rwxr-xr-xdeps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js65
-rw-r--r--deps/npm/node_modules/qrcode-terminal/package.json30
-rw-r--r--deps/npm/node_modules/qs/.editorconfig (renamed from deps/npm/node_modules/request/node_modules/qs/.editorconfig)0
-rw-r--r--deps/npm/node_modules/qs/.eslintignore (renamed from deps/npm/node_modules/request/node_modules/qs/.eslintignore)0
-rw-r--r--deps/npm/node_modules/qs/CHANGELOG.md226
-rw-r--r--deps/npm/node_modules/qs/LICENSE (renamed from deps/npm/node_modules/request/node_modules/qs/LICENSE)0
-rw-r--r--deps/npm/node_modules/qs/README.md (renamed from deps/npm/node_modules/request/node_modules/qs/README.md)0
-rw-r--r--deps/npm/node_modules/qs/dist/qs.js (renamed from deps/npm/node_modules/request/node_modules/qs/dist/qs.js)37
-rw-r--r--deps/npm/node_modules/qs/lib/formats.js (renamed from deps/npm/node_modules/request/node_modules/qs/lib/formats.js)0
-rw-r--r--deps/npm/node_modules/qs/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/qs/lib/index.js)0
-rw-r--r--deps/npm/node_modules/qs/lib/parse.js (renamed from deps/npm/node_modules/request/node_modules/qs/lib/parse.js)0
-rw-r--r--deps/npm/node_modules/qs/lib/stringify.js (renamed from deps/npm/node_modules/request/node_modules/qs/lib/stringify.js)0
-rw-r--r--deps/npm/node_modules/qs/lib/utils.js213
-rw-r--r--deps/npm/node_modules/qs/package.json80
-rw-r--r--deps/npm/node_modules/qs/test/index.js (renamed from deps/npm/node_modules/request/node_modules/qs/test/index.js)0
-rw-r--r--deps/npm/node_modules/qs/test/parse.js574
-rw-r--r--deps/npm/node_modules/qs/test/stringify.js597
-rw-r--r--deps/npm/node_modules/qs/test/utils.js (renamed from deps/npm/node_modules/request/node_modules/qs/test/utils.js)0
-rw-r--r--deps/npm/node_modules/query-string/index.js184
-rw-r--r--deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json69
-rw-r--r--deps/npm/node_modules/query-string/node_modules/object-assign/index.js90
-rw-r--r--deps/npm/node_modules/query-string/node_modules/object-assign/package.json74
-rw-r--r--deps/npm/node_modules/query-string/node_modules/object-assign/readme.md61
-rw-r--r--deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js6
-rw-r--r--deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license21
-rw-r--r--deps/npm/node_modules/query-string/node_modules/strict-uri-encode/package.json62
-rw-r--r--deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md40
-rw-r--r--deps/npm/node_modules/query-string/package.json45
-rw-r--r--deps/npm/node_modules/query-string/readme.md51
-rw-r--r--deps/npm/node_modules/qw/package.json22
-rw-r--r--deps/npm/node_modules/rc/LICENSE.APACHE2 (renamed from deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2)0
-rw-r--r--deps/npm/node_modules/rc/LICENSE.BSD (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.BSD)0
-rw-r--r--deps/npm/node_modules/rc/LICENSE.MIT (renamed from deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT)0
-rw-r--r--deps/npm/node_modules/rc/README.md227
-rw-r--r--deps/npm/node_modules/rc/browser.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/browser.js)0
-rwxr-xr-xdeps/npm/node_modules/rc/cli.js4
-rwxr-xr-xdeps/npm/node_modules/rc/index.js53
-rw-r--r--deps/npm/node_modules/rc/lib/utils.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/.travis.yml (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/LICENSE (renamed from deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/example/parse.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/package.json73
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/readme.markdown (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/all_bool.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/bool.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/dash.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/default_bool.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/dotted.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/kv_short.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/long.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/num.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/parse.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/parse_modified.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/short.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/stop_early.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/unknown.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/node_modules/minimist/test/whitespace.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/package.json65
-rw-r--r--deps/npm/node_modules/rc/test/ini.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/test/nested-env-vars.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/rc/test/test.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/read-cmd-shim/package.json31
-rw-r--r--deps/npm/node_modules/read-installed/node_modules/util-extend/package.json49
-rw-r--r--deps/npm/node_modules/read-installed/package.json27
-rw-r--r--deps/npm/node_modules/read-package-json/CHANGELOG.md11
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md36
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md7
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/README.md53
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js32
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json76
-rw-r--r--deps/npm/node_modules/read-package-json/node_modules/slash/package.json65
-rw-r--r--deps/npm/node_modules/read-package-json/package.json42
-rw-r--r--deps/npm/node_modules/read-package-json/read-json.js24
-rw-r--r--deps/npm/node_modules/read-package-tree/package.json28
-rw-r--r--deps/npm/node_modules/read-package-tree/rpt.js13
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml9
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html93
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html500
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css212
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html93
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css1
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js1
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.pngbin209 -> 0 bytes
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js158
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info155
-rw-r--r--deps/npm/node_modules/read/node_modules/mute-stream/package.json63
-rw-r--r--deps/npm/node_modules/read/package.json30
-rw-r--r--deps/npm/node_modules/readable-stream/.npmignore9
-rw-r--r--deps/npm/node_modules/readable-stream/.travis.yml14
-rw-r--r--deps/npm/node_modules/readable-stream/README.md5
-rw-r--r--deps/npm/node_modules/readable-stream/lib/_stream_duplex.js35
-rw-r--r--deps/npm/node_modules/readable-stream/lib/_stream_readable.js78
-rw-r--r--deps/npm/node_modules/readable-stream/lib/_stream_transform.js68
-rw-r--r--deps/npm/node_modules/readable-stream/lib/_stream_writable.js47
-rw-r--r--deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js13
-rw-r--r--deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js10
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json66
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore1
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile6
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/isarray/package.json76
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/isarray/test.js20
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml12
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js43
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json51
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md18
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js24
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md28
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json56
-rw-r--r--deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json61
-rw-r--r--deps/npm/node_modules/readable-stream/package.json75
-rw-r--r--deps/npm/node_modules/readdir-scoped-modules/package.json28
-rw-r--r--deps/npm/node_modules/registry-auth-token/CHANGELOG.md106
-rw-r--r--deps/npm/node_modules/registry-auth-token/LICENSE (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/LICENSE)0
-rw-r--r--deps/npm/node_modules/registry-auth-token/README.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/README.md)0
-rw-r--r--deps/npm/node_modules/registry-auth-token/base64.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/base64.js)0
-rw-r--r--deps/npm/node_modules/registry-auth-token/index.js118
-rw-r--r--deps/npm/node_modules/registry-auth-token/package.json74
-rw-r--r--deps/npm/node_modules/registry-auth-token/registry-url.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/registry-url.js)0
-rw-r--r--deps/npm/node_modules/registry-auth-token/test/auth-token.test.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/auth-token.test.js)50
-rw-r--r--deps/npm/node_modules/registry-auth-token/test/registry-url.test.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/registry-url.test.js)0
-rw-r--r--deps/npm/node_modules/registry-auth-token/yarn.lock1512
-rw-r--r--deps/npm/node_modules/registry-url/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/index.js)0
-rw-r--r--deps/npm/node_modules/registry-url/license (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/license)0
-rw-r--r--deps/npm/node_modules/registry-url/package.json72
-rw-r--r--deps/npm/node_modules/registry-url/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/readme.md)0
-rw-r--r--deps/npm/node_modules/request/CHANGELOG.md34
-rw-r--r--deps/npm/node_modules/request/README.md4
-rw-r--r--deps/npm/node_modules/request/lib/oauth.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/aws-sign2/index.js212
-rw-r--r--deps/npm/node_modules/request/node_modules/aws-sign2/package.json50
-rw-r--r--deps/npm/node_modules/request/node_modules/aws4/.npmignore4
-rw-r--r--deps/npm/node_modules/request/node_modules/aws4/.tern-port1
-rw-r--r--deps/npm/node_modules/request/node_modules/aws4/README.md523
-rw-r--r--deps/npm/node_modules/request/node_modules/aws4/package.json108
-rw-r--r--deps/npm/node_modules/request/node_modules/caseless/package.json60
-rw-r--r--deps/npm/node_modules/request/node_modules/combined-stream/Readme.md138
-rw-r--r--deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile7
-rw-r--r--deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json65
-rw-r--r--deps/npm/node_modules/request/node_modules/combined-stream/package.json61
-rw-r--r--deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md77
-rw-r--r--deps/npm/node_modules/request/node_modules/extend/LICENSE23
-rw-r--r--deps/npm/node_modules/request/node_modules/extend/README.md81
-rw-r--r--deps/npm/node_modules/request/node_modules/extend/component.json32
-rw-r--r--deps/npm/node_modules/request/node_modules/extend/package.json78
-rw-r--r--deps/npm/node_modules/request/node_modules/forever-agent/index.js138
-rw-r--r--deps/npm/node_modules/request/node_modules/forever-agent/package.json52
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/Readme.md234
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json94
-rw-r--r--deps/npm/node_modules/request/node_modules/form-data/package.json98
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md1303
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js3
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map1
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts296
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js379
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json70
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml25
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml5
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js56
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js43
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json78
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml5
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js18
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js320
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore60
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json70
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore1
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml4
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE18
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js84
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown34
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js2
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js273
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js154
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json66
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js16
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js15
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json77
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown130
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js35
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js74
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js59
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js32
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js20
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json130
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json86
-rw-r--r--deps/npm/node_modules/request/node_modules/har-validator/package.json75
-rw-r--r--deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json61
-rw-r--r--deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json61
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json61
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js974
-rw-r--r--deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json58
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md68
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js396
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json64
-rwxr-xr-xdeps/npm/node_modules/request/node_modules/hawk/package.json78
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md46
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json87
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json44
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json75
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE19
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md3
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch604
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js107
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json62
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js68
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json51
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json51
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md698
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js73
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js288
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json68
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json39
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json70
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js57
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json68
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json54
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE40
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md175
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json59
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md221
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json90
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json100
-rw-r--r--deps/npm/node_modules/request/node_modules/http-signature/package.json77
-rw-r--r--deps/npm/node_modules/request/node_modules/is-typedarray/package.json62
-rw-r--r--deps/npm/node_modules/request/node_modules/isstream/package.json65
-rw-r--r--deps/npm/node_modules/request/node_modules/isstream/test.js168
-rw-r--r--deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md14
-rw-r--r--deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE15
-rw-r--r--deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json70
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md247
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/README.md108
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md343
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md94
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json100
-rw-r--r--deps/npm/node_modules/request/node_modules/mime-types/package.json87
-rw-r--r--deps/npm/node_modules/request/node_modules/oauth-sign/README.md4
-rw-r--r--deps/npm/node_modules/request/node_modules/oauth-sign/index.js136
-rw-r--r--deps/npm/node_modules/request/node_modules/oauth-sign/package.json58
-rw-r--r--deps/npm/node_modules/request/node_modules/performance-now/package.json65
-rw-r--r--deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md221
-rw-r--r--deps/npm/node_modules/request/node_modules/qs/lib/utils.js202
-rw-r--r--deps/npm/node_modules/request/node_modules/qs/package.json79
-rw-r--r--deps/npm/node_modules/request/node_modules/qs/test/parse.js573
-rw-r--r--deps/npm/node_modules/request/node_modules/qs/test/stringify.js596
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/.npmignore15
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/.travis.yml4
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt22
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/README.md38
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/example.js27
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/package.json56
-rw-r--r--deps/npm/node_modules/request/node_modules/stringstream/stringstream.js102
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/README.md509
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js98
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json91
-rw-r--r--deps/npm/node_modules/request/node_modules/tough-cookie/package.json92
-rw-r--r--deps/npm/node_modules/request/node_modules/tunnel-agent/package.json57
-rw-r--r--deps/npm/node_modules/request/package.json41
-rw-r--r--deps/npm/node_modules/request/request.js8
-rw-r--r--deps/npm/node_modules/require-directory/.npmignore (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.npmignore)0
-rw-r--r--deps/npm/node_modules/require-directory/.travis.yml (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml)0
-rw-r--r--deps/npm/node_modules/require-directory/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/LICENSE)0
-rw-r--r--deps/npm/node_modules/require-directory/README.markdown (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/README.markdown)0
-rw-r--r--deps/npm/node_modules/require-directory/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/index.js)0
-rw-r--r--deps/npm/node_modules/require-directory/package.json69
-rw-r--r--deps/npm/node_modules/require-main-filename/.npmignore (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.npmignore)0
-rw-r--r--deps/npm/node_modules/require-main-filename/.travis.yml (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.travis.yml)0
-rw-r--r--deps/npm/node_modules/require-main-filename/LICENSE.txt (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/require-main-filename/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/README.md)0
-rw-r--r--deps/npm/node_modules/require-main-filename/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/index.js)0
-rw-r--r--deps/npm/node_modules/require-main-filename/package.json58
-rw-r--r--deps/npm/node_modules/require-main-filename/test.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/test.js)0
-rw-r--r--deps/npm/node_modules/resolve-from/index.js (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/index.js)0
-rw-r--r--deps/npm/node_modules/resolve-from/license (renamed from deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license)0
-rw-r--r--deps/npm/node_modules/resolve-from/package.json66
-rw-r--r--deps/npm/node_modules/resolve-from/readme.md (renamed from deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/readme.md)0
-rw-r--r--deps/npm/node_modules/retry/.npmignore1
-rw-r--r--deps/npm/node_modules/retry/.travis.yml15
-rw-r--r--deps/npm/node_modules/retry/Makefile6
-rw-r--r--deps/npm/node_modules/retry/Readme.md20
-rw-r--r--deps/npm/node_modules/retry/lib/retry.js9
-rw-r--r--deps/npm/node_modules/retry/lib/retry_operation.js17
-rw-r--r--deps/npm/node_modules/retry/package.json52
-rw-r--r--deps/npm/node_modules/retry/test/integration/test-retry-operation.js86
-rw-r--r--deps/npm/node_modules/retry/test/integration/test-retry-wrap.js48
-rw-r--r--deps/npm/node_modules/rimraf/package.json25
-rw-r--r--deps/npm/node_modules/run-queue/README.md (renamed from deps/npm/node_modules/move-concurrently/node_modules/run-queue/README.md)0
-rw-r--r--deps/npm/node_modules/run-queue/package.json63
-rw-r--r--deps/npm/node_modules/run-queue/queue.js (renamed from deps/npm/node_modules/move-concurrently/node_modules/run-queue/queue.js)0
-rw-r--r--deps/npm/node_modules/safe-buffer/.travis.yml7
-rw-r--r--deps/npm/node_modules/safe-buffer/index.d.ts187
-rw-r--r--deps/npm/node_modules/safe-buffer/package.json51
-rw-r--r--deps/npm/node_modules/safe-buffer/test.js101
-rw-r--r--deps/npm/node_modules/safer-buffer/LICENSE21
-rw-r--r--deps/npm/node_modules/safer-buffer/Porting-Buffer.md268
-rw-r--r--deps/npm/node_modules/safer-buffer/Readme.md156
-rw-r--r--deps/npm/node_modules/safer-buffer/dangerous.js58
-rw-r--r--deps/npm/node_modules/safer-buffer/package.json60
-rw-r--r--deps/npm/node_modules/safer-buffer/safer.js77
-rw-r--r--deps/npm/node_modules/safer-buffer/tests.js406
-rw-r--r--deps/npm/node_modules/semver-diff/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/semver-diff/index.js)0
-rw-r--r--deps/npm/node_modules/semver-diff/license (renamed from deps/npm/node_modules/osenv/node_modules/os-homedir/license)0
-rw-r--r--deps/npm/node_modules/semver-diff/package.json66
-rw-r--r--deps/npm/node_modules/semver-diff/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/semver-diff/readme.md)0
-rw-r--r--deps/npm/node_modules/semver/README.md22
-rwxr-xr-xdeps/npm/node_modules/semver/bin/semver14
-rw-r--r--deps/npm/node_modules/semver/package.json41
-rw-r--r--deps/npm/node_modules/semver/range.bnf4
-rw-r--r--deps/npm/node_modules/semver/semver.js28
-rw-r--r--deps/npm/node_modules/set-blocking/CHANGELOG.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/set-blocking/LICENSE.txt (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/set-blocking/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/README.md)0
-rw-r--r--deps/npm/node_modules/set-blocking/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/index.js)0
-rw-r--r--deps/npm/node_modules/set-blocking/package.json71
-rw-r--r--deps/npm/node_modules/sha/package.json28
-rw-r--r--deps/npm/node_modules/shebang-command/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/shebang-command/license (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license)0
-rw-r--r--deps/npm/node_modules/shebang-command/package.json71
-rw-r--r--deps/npm/node_modules/shebang-command/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/shebang-regex/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/shebang-regex/license (renamed from deps/npm/node_modules/osenv/node_modules/os-tmpdir/license)0
-rw-r--r--deps/npm/node_modules/shebang-regex/package.json64
-rw-r--r--deps/npm/node_modules/shebang-regex/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/signal-exit/CHANGELOG.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/signal-exit/LICENSE.txt (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/signal-exit/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/README.md)0
-rw-r--r--deps/npm/node_modules/signal-exit/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/index.js)0
-rw-r--r--deps/npm/node_modules/signal-exit/package.json72
-rw-r--r--deps/npm/node_modules/signal-exit/signals.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/signals.js)0
-rw-r--r--deps/npm/node_modules/slash/index.js (renamed from deps/npm/node_modules/read-package-json/node_modules/slash/index.js)0
-rw-r--r--deps/npm/node_modules/slash/package.json65
-rw-r--r--deps/npm/node_modules/slash/readme.md (renamed from deps/npm/node_modules/read-package-json/node_modules/slash/readme.md)0
-rw-r--r--deps/npm/node_modules/slide/package.json33
-rw-r--r--deps/npm/node_modules/smart-buffer/.travis.yml12
-rw-r--r--deps/npm/node_modules/smart-buffer/LICENSE20
-rw-r--r--deps/npm/node_modules/smart-buffer/README.md632
-rw-r--r--deps/npm/node_modules/smart-buffer/build/smartbuffer.js1095
-rw-r--r--deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map1
-rw-r--r--deps/npm/node_modules/smart-buffer/build/utils.js95
-rw-r--r--deps/npm/node_modules/smart-buffer/build/utils.js.map1
-rw-r--r--deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md65
-rw-r--r--deps/npm/node_modules/smart-buffer/docs/README_v3.md359
-rw-r--r--deps/npm/node_modules/smart-buffer/docs/ROADMAP.md (renamed from deps/npm/node_modules/tar/node_modules/minipass/foo)0
-rw-r--r--deps/npm/node_modules/smart-buffer/package.json104
-rw-r--r--deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts654
-rw-r--r--deps/npm/node_modules/smart-buffer/typings/utils.d.ts51
-rw-r--r--deps/npm/node_modules/smart-buffer/yarn.lock1849
-rwxr-xr-xdeps/npm/node_modules/sntp/.npmignore (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore)0
-rwxr-xr-xdeps/npm/node_modules/sntp/LICENSE (renamed from deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE)0
-rwxr-xr-xdeps/npm/node_modules/sntp/README.md67
-rwxr-xr-xdeps/npm/node_modules/sntp/lib/index.js412
-rwxr-xr-xdeps/npm/node_modules/sntp/package.json64
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/.travis.yml21
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/History.md96
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/README.md134
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/index.js145
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/package.json69
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key)0
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem (renamed from deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem)0
-rw-r--r--deps/npm/node_modules/socks-proxy-agent/test/test.js144
-rw-r--r--deps/npm/node_modules/socks/.prettierrc.yaml5
-rw-r--r--deps/npm/node_modules/socks/.travis.yml10
-rw-r--r--deps/npm/node_modules/socks/LICENSE20
-rw-r--r--deps/npm/node_modules/socks/README.md668
-rw-r--r--deps/npm/node_modules/socks/build/client/socksclient.js702
-rw-r--r--deps/npm/node_modules/socks/build/client/socksclient.js.map1
-rw-r--r--deps/npm/node_modules/socks/build/common/constants.js105
-rw-r--r--deps/npm/node_modules/socks/build/common/constants.js.map1
-rw-r--r--deps/npm/node_modules/socks/build/common/helpers.js101
-rw-r--r--deps/npm/node_modules/socks/build/common/helpers.js.map1
-rw-r--r--deps/npm/node_modules/socks/build/common/receivebuffer.js42
-rw-r--r--deps/npm/node_modules/socks/build/common/receivebuffer.js.map1
-rw-r--r--deps/npm/node_modules/socks/build/common/util.js24
-rw-r--r--deps/npm/node_modules/socks/build/common/util.js.map1
-rw-r--r--deps/npm/node_modules/socks/build/index.js7
-rw-r--r--deps/npm/node_modules/socks/build/index.js.map1
-rw-r--r--deps/npm/node_modules/socks/docs/examples/index.md17
-rw-r--r--deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md90
-rw-r--r--deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md83
-rw-r--r--deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md258
-rw-r--r--deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md93
-rw-r--r--deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md86
-rw-r--r--deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md265
-rw-r--r--deps/npm/node_modules/socks/docs/index.md5
-rw-r--r--deps/npm/node_modules/socks/docs/migratingFromV1.md86
-rw-r--r--deps/npm/node_modules/socks/package.json108
-rw-r--r--deps/npm/node_modules/socks/typings/client/socksclient.d.ts157
-rw-r--r--deps/npm/node_modules/socks/typings/common/constants.d.ts137
-rw-r--r--deps/npm/node_modules/socks/typings/common/helpers.d.ts13
-rw-r--r--deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts12
-rw-r--r--deps/npm/node_modules/socks/typings/common/util.d.ts14
-rw-r--r--deps/npm/node_modules/socks/typings/index.d.ts1
-rw-r--r--deps/npm/node_modules/socks/yarn-error.log2416
-rw-r--r--deps/npm/node_modules/socks/yarn.lock2300
-rw-r--r--deps/npm/node_modules/sorted-object/package.json29
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE19
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md3
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch604
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js107
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json66
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js68
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json60
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore2
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json56
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json68
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json11
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/isarray/README.md (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/README.md)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/isarray/build/build.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/build/build.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/isarray/component.json (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/component.json)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/isarray/index.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/index.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/isarray/package.json57
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/.npmignore (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/.npmignore)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/LICENSE (renamed from deps/npm/node_modules/read-installed/node_modules/util-extend/LICENSE)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/README.md (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/README.md)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/duplex.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/duplex.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/float.patch (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/float.patch)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_duplex.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_duplex.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_passthrough.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_passthrough.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_readable.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_readable.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_transform.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_transform.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_writable.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_writable.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/package.json65
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/passthrough.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/passthrough.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/readable.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/readable.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/transform.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/transform.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/writable.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/writable.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore1
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore1
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml6
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE21
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md25
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js20
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json56
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js48
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json59
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/.npmignore (renamed from deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/LICENSE (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/LICENSE)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/README.md (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/README.md)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/index.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/index.js)0
-rw-r--r--deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/package.json53
-rw-r--r--deps/npm/node_modules/sorted-union-stream/package.json32
-rw-r--r--deps/npm/node_modules/spdx-correct/LICENSE202
-rw-r--r--deps/npm/node_modules/spdx-correct/README.md10
-rw-r--r--deps/npm/node_modules/spdx-correct/index.js326
-rw-r--r--deps/npm/node_modules/spdx-correct/package.json80
-rw-r--r--deps/npm/node_modules/spdx-exceptions/README.md36
-rw-r--r--deps/npm/node_modules/spdx-exceptions/index.json29
-rw-r--r--deps/npm/node_modules/spdx-exceptions/package.json49
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/AUTHORS (renamed from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS)1
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/LICENSE (renamed from deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE)0
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/README.md91
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/index.js8
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/package.json97
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/parse.js138
-rw-r--r--deps/npm/node_modules/spdx-expression-parse/scan.js131
-rw-r--r--deps/npm/node_modules/spdx-license-ids/README.md52
-rw-r--r--deps/npm/node_modules/spdx-license-ids/deprecated.json23
-rw-r--r--deps/npm/node_modules/spdx-license-ids/index.json344
-rw-r--r--deps/npm/node_modules/spdx-license-ids/package.json78
-rw-r--r--deps/npm/node_modules/sshpk/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.npmignore)0
-rw-r--r--deps/npm/node_modules/sshpk/.travis.yml (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.travis.yml)0
-rw-r--r--deps/npm/node_modules/sshpk/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/LICENSE)0
-rw-r--r--deps/npm/node_modules/sshpk/README.md698
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-conv (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv)13
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-sign (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-sign)0
-rwxr-xr-xdeps/npm/node_modules/sshpk/bin/sshpk-verify (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-verify)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/algs.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js)8
-rw-r--r--deps/npm/node_modules/sshpk/lib/certificate.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/certificate.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/dhe.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js)24
-rw-r--r--deps/npm/node_modules/sshpk/lib/ed-compat.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js)5
-rw-r--r--deps/npm/node_modules/sshpk/lib/errors.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/fingerprint.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/auto.js106
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/dnssec.js286
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/openssh-cert.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pem.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js)11
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pkcs1.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js)56
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/pkcs8.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js)111
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/rfc4253.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js)35
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/ssh-private.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/ssh.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js)6
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/x509-pem.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509-pem.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/formats/x509.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509.js)5
-rw-r--r--deps/npm/node_modules/sshpk/lib/identity.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/identity.js)19
-rw-r--r--deps/npm/node_modules/sshpk/lib/index.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/key.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js)5
-rw-r--r--deps/npm/node_modules/sshpk/lib/private-key.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js)20
-rw-r--r--deps/npm/node_modules/sshpk/lib/signature.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/ssh-buffer.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js)0
-rw-r--r--deps/npm/node_modules/sshpk/lib/utils.js388
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1 (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1)6
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1 (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1)0
-rw-r--r--deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1 (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1)0
-rw-r--r--deps/npm/node_modules/sshpk/package.json100
-rw-r--r--deps/npm/node_modules/ssri/CHANGELOG.md86
-rw-r--r--deps/npm/node_modules/ssri/README.md32
-rw-r--r--deps/npm/node_modules/ssri/index.js83
-rw-r--r--deps/npm/node_modules/ssri/package.json47
-rw-r--r--deps/npm/node_modules/stream-each/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/parallel-transform/.npmignore)0
-rw-r--r--deps/npm/node_modules/stream-each/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/.travis.yml)0
-rw-r--r--deps/npm/node_modules/stream-each/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/LICENSE)0
-rw-r--r--deps/npm/node_modules/stream-each/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/README.md)0
-rw-r--r--deps/npm/node_modules/stream-each/collaborators.md (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/collaborators.md)0
-rw-r--r--deps/npm/node_modules/stream-each/index.js58
-rw-r--r--deps/npm/node_modules/stream-each/package.json59
-rw-r--r--deps/npm/node_modules/stream-each/test.js122
-rw-r--r--deps/npm/node_modules/stream-iterate/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/pump/.npmignore)0
-rw-r--r--deps/npm/node_modules/stream-iterate/.travis.yml (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.travis.yml)0
-rw-r--r--deps/npm/node_modules/stream-iterate/LICENSE (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/LICENSE)0
-rw-r--r--deps/npm/node_modules/stream-iterate/README.md (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/README.md)0
-rw-r--r--deps/npm/node_modules/stream-iterate/index.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/index.js)0
-rw-r--r--deps/npm/node_modules/stream-iterate/package.json56
-rw-r--r--deps/npm/node_modules/stream-iterate/test.js (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/test.js)0
-rw-r--r--deps/npm/node_modules/stream-shift/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/pumpify/.npmignore)0
-rw-r--r--deps/npm/node_modules/stream-shift/.travis.yml (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.travis.yml)0
-rw-r--r--deps/npm/node_modules/stream-shift/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/LICENSE)0
-rw-r--r--deps/npm/node_modules/stream-shift/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/README.md)0
-rw-r--r--deps/npm/node_modules/stream-shift/index.js (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/index.js)0
-rw-r--r--deps/npm/node_modules/stream-shift/package.json55
-rw-r--r--deps/npm/node_modules/stream-shift/test.js (renamed from deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/test.js)0
-rw-r--r--deps/npm/node_modules/strict-uri-encode/index.js2
-rw-r--r--deps/npm/node_modules/strict-uri-encode/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/strict-uri-encode/package.json63
-rw-r--r--deps/npm/node_modules/strict-uri-encode/readme.md39
-rw-r--r--deps/npm/node_modules/string-width/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/index.js)0
-rw-r--r--deps/npm/node_modules/string-width/license9
-rw-r--r--deps/npm/node_modules/string-width/package.json94
-rw-r--r--deps/npm/node_modules/string-width/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/readme.md)0
-rw-r--r--deps/npm/node_modules/string_decoder/.travis.yml50
-rw-r--r--deps/npm/node_modules/string_decoder/LICENSE (renamed from deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE)0
-rw-r--r--deps/npm/node_modules/string_decoder/README.md47
-rw-r--r--deps/npm/node_modules/string_decoder/lib/string_decoder.js (renamed from deps/npm/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js)46
-rw-r--r--deps/npm/node_modules/string_decoder/package.json59
-rw-r--r--deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js10
-rw-r--r--deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json85
-rw-r--r--deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md46
-rw-r--r--deps/npm/node_modules/strip-ansi/package.json18
-rw-r--r--deps/npm/node_modules/strip-eof/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/index.js)0
-rw-r--r--deps/npm/node_modules/strip-eof/license (renamed from deps/npm/node_modules/pacote/node_modules/get-stream/license)0
-rw-r--r--deps/npm/node_modules/strip-eof/package.json71
-rw-r--r--deps/npm/node_modules/strip-eof/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/readme.md)0
-rw-r--r--deps/npm/node_modules/strip-json-comments/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/strip-json-comments/license (renamed from deps/npm/node_modules/query-string/node_modules/object-assign/license)0
-rw-r--r--deps/npm/node_modules/strip-json-comments/package.json75
-rw-r--r--deps/npm/node_modules/strip-json-comments/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/supports-color/browser.js5
-rw-r--r--deps/npm/node_modules/supports-color/index.js131
-rw-r--r--deps/npm/node_modules/supports-color/license9
-rw-r--r--deps/npm/node_modules/supports-color/package.json85
-rw-r--r--deps/npm/node_modules/supports-color/readme.md66
-rw-r--r--deps/npm/node_modules/tar/README.md66
-rw-r--r--deps/npm/node_modules/tar/lib/buffer.js11
-rw-r--r--deps/npm/node_modules/tar/lib/create.js23
-rw-r--r--deps/npm/node_modules/tar/lib/extract.js45
-rw-r--r--deps/npm/node_modules/tar/lib/header.js5
-rw-r--r--deps/npm/node_modules/tar/lib/list.js14
-rw-r--r--deps/npm/node_modules/tar/lib/mkdir.js1
-rw-r--r--deps/npm/node_modules/tar/lib/pack.js16
-rw-r--r--deps/npm/node_modules/tar/lib/parse.js17
-rw-r--r--deps/npm/node_modules/tar/lib/pax.js1
-rw-r--r--deps/npm/node_modules/tar/lib/replace.js41
-rw-r--r--deps/npm/node_modules/tar/lib/unpack.js236
-rw-r--r--deps/npm/node_modules/tar/lib/write-entry.js46
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/.npmignore4
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/.travis.yml7
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/README.md46
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/b.js12
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js11
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js12
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js11
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js12
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js41
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js15
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/bench/test.js160
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/d.js7
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/e.js17
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/eos.js12
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/index.js295
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsxbin54935 -> 0 bytes
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/package.json64
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/test/basic.js438
-rw-r--r--deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js38
-rw-r--r--deps/npm/node_modules/tar/node_modules/minizlib/index.js354
-rw-r--r--deps/npm/node_modules/tar/node_modules/minizlib/package.json71
-rw-r--r--deps/npm/node_modules/tar/node_modules/yallist/package.json3
-rw-r--r--deps/npm/node_modules/tar/package.json48
-rw-r--r--deps/npm/node_modules/term-size/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js)0
-rw-r--r--deps/npm/node_modules/term-size/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/license)0
-rw-r--r--deps/npm/node_modules/term-size/package.json75
-rw-r--r--deps/npm/node_modules/term-size/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md)0
-rwxr-xr-xdeps/npm/node_modules/term-size/vendor/macos/term-size (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size)bin8760 -> 8760 bytes
-rw-r--r--deps/npm/node_modules/term-size/vendor/windows/term-size.exe (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe)bin17408 -> 17408 bytes
-rw-r--r--deps/npm/node_modules/text-table/package.json31
-rw-r--r--deps/npm/node_modules/through/.travis.yml (renamed from deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml)0
-rw-r--r--deps/npm/node_modules/through/LICENSE.APACHE2 (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.APACHE2)0
-rw-r--r--deps/npm/node_modules/through/LICENSE.MIT (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.MIT)0
-rw-r--r--deps/npm/node_modules/through/index.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/index.js)0
-rw-r--r--deps/npm/node_modules/through/package.json69
-rw-r--r--deps/npm/node_modules/through/readme.markdown (renamed from deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown)0
-rw-r--r--deps/npm/node_modules/through/test/async.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/test/async.js)0
-rw-r--r--deps/npm/node_modules/through/test/auto-destroy.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js)0
-rw-r--r--deps/npm/node_modules/through/test/buffering.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js)0
-rw-r--r--deps/npm/node_modules/through/test/end.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/test/end.js)0
-rw-r--r--deps/npm/node_modules/through/test/index.js (renamed from deps/npm/node_modules/JSONStream/node_modules/through/test/index.js)0
-rw-r--r--deps/npm/node_modules/through2/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/through2/.npmignore)0
-rw-r--r--deps/npm/node_modules/through2/LICENSE.html (renamed from deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.html)0
-rw-r--r--deps/npm/node_modules/through2/LICENSE.md (renamed from deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.md)0
-rw-r--r--deps/npm/node_modules/through2/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/through2/README.md)0
-rw-r--r--deps/npm/node_modules/through2/package.json68
-rw-r--r--deps/npm/node_modules/through2/through2.js (renamed from deps/npm/node_modules/mississippi/node_modules/through2/through2.js)0
-rw-r--r--deps/npm/node_modules/timed-out/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/index.js)0
-rw-r--r--deps/npm/node_modules/timed-out/license (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/license)0
-rw-r--r--deps/npm/node_modules/timed-out/package.json68
-rw-r--r--deps/npm/node_modules/timed-out/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/readme.md)0
-rw-r--r--deps/npm/node_modules/tiny-relative-date/LICENSE.md21
-rw-r--r--deps/npm/node_modules/tiny-relative-date/README.md120
-rw-r--r--deps/npm/node_modules/tiny-relative-date/lib/factory.js100
-rw-r--r--deps/npm/node_modules/tiny-relative-date/lib/index.js18
-rw-r--r--deps/npm/node_modules/tiny-relative-date/package.json75
-rw-r--r--deps/npm/node_modules/tiny-relative-date/src/factory.js89
-rw-r--r--deps/npm/node_modules/tiny-relative-date/src/index.js4
-rw-r--r--deps/npm/node_modules/tiny-relative-date/translations/da.js31
-rw-r--r--deps/npm/node_modules/tiny-relative-date/translations/de.js31
-rw-r--r--deps/npm/node_modules/tiny-relative-date/translations/en-short.js31
-rw-r--r--deps/npm/node_modules/tiny-relative-date/translations/en.js31
-rw-r--r--deps/npm/node_modules/tiny-relative-date/translations/es.js31
-rw-r--r--deps/npm/node_modules/tough-cookie/LICENSE (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE)0
-rw-r--r--deps/npm/node_modules/tough-cookie/README.md509
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/cookie.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js)263
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/memstore.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js)0
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/pathMatch.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js)0
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/permuteDomain.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js)0
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/pubsuffix.js98
-rw-r--r--deps/npm/node_modules/tough-cookie/lib/store.js (renamed from deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js)0
-rw-r--r--deps/npm/node_modules/tough-cookie/package.json92
-rw-r--r--deps/npm/node_modules/tunnel-agent/LICENSE (renamed from deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE)0
-rw-r--r--deps/npm/node_modules/tunnel-agent/README.md (renamed from deps/npm/node_modules/request/node_modules/tunnel-agent/README.md)0
-rw-r--r--deps/npm/node_modules/tunnel-agent/index.js (renamed from deps/npm/node_modules/request/node_modules/tunnel-agent/index.js)0
-rw-r--r--deps/npm/node_modules/tunnel-agent/package.json55
-rw-r--r--deps/npm/node_modules/tweetnacl/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore)0
-rw-r--r--deps/npm/node_modules/tweetnacl/AUTHORS.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/AUTHORS.md)0
-rw-r--r--deps/npm/node_modules/tweetnacl/CHANGELOG.md221
-rw-r--r--deps/npm/node_modules/tweetnacl/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/LICENSE)0
-rw-r--r--deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md)0
-rw-r--r--deps/npm/node_modules/tweetnacl/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md)0
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl-fast.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js)0
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl-fast.min.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js)0
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.d.ts (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.d.ts)0
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js)0
-rw-r--r--deps/npm/node_modules/tweetnacl/nacl.min.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js)0
-rw-r--r--deps/npm/node_modules/tweetnacl/package.json86
-rw-r--r--deps/npm/node_modules/typedarray/.travis.yml (renamed from deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml)0
-rw-r--r--deps/npm/node_modules/typedarray/LICENSE (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/LICENSE)0
-rw-r--r--deps/npm/node_modules/typedarray/example/tarray.js (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/example/tarray.js)0
-rw-r--r--deps/npm/node_modules/typedarray/index.js (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/index.js)0
-rw-r--r--deps/npm/node_modules/typedarray/package.json83
-rw-r--r--deps/npm/node_modules/typedarray/readme.markdown (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/readme.markdown)0
-rw-r--r--deps/npm/node_modules/typedarray/test/server/undef_globals.js (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js)0
-rw-r--r--deps/npm/node_modules/typedarray/test/tarray.js (renamed from deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/tarray.js)0
-rw-r--r--deps/npm/node_modules/uid-number/package.json20
-rw-r--r--deps/npm/node_modules/umask/package.json32
-rw-r--r--deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md20
-rw-r--r--deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json59
-rw-r--r--deps/npm/node_modules/unique-filename/package.json34
-rw-r--r--deps/npm/node_modules/unique-slug/.npmignore (renamed from deps/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore)0
-rw-r--r--deps/npm/node_modules/unique-slug/.travis.yml (renamed from deps/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml)0
-rw-r--r--deps/npm/node_modules/unique-slug/README.md19
-rw-r--r--deps/npm/node_modules/unique-slug/index.js (renamed from deps/npm/node_modules/unique-filename/node_modules/unique-slug/index.js)0
-rw-r--r--deps/npm/node_modules/unique-slug/package.json56
-rw-r--r--deps/npm/node_modules/unique-slug/test/index.js (renamed from deps/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js)0
-rw-r--r--deps/npm/node_modules/unique-string/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/index.js)0
-rw-r--r--deps/npm/node_modules/unique-string/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/license)0
-rw-r--r--deps/npm/node_modules/unique-string/package.json76
-rw-r--r--deps/npm/node_modules/unique-string/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/readme.md)0
-rw-r--r--deps/npm/node_modules/unpipe/package.json31
-rw-r--r--deps/npm/node_modules/unzip-response/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/index.js)0
-rw-r--r--deps/npm/node_modules/unzip-response/license (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/license)0
-rw-r--r--deps/npm/node_modules/unzip-response/package.json81
-rw-r--r--deps/npm/node_modules/unzip-response/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/readme.md)0
-rw-r--r--deps/npm/node_modules/update-notifier/index.js8
-rw-r--r--deps/npm/node_modules/update-notifier/license9
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/index.js138
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json70
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js64
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md57
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json75
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js36
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js46
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json81
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json88
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md42
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js309
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js37
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js41
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE19
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md85
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js59
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js73
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js113
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js30
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js12
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js18
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js37
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js31
-rw-r--r--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.js19
-rw-r--r--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.js2
-rw-r--r--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.json64
-rw-r--r--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.md29
-rw-r--r--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.json71
-rw-r--r--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.md39
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json83
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md117
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json74
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md42
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js39
-rw-r--r--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.js13
-rw-r--r--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.json71
-rw-r--r--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.md51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json77
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md81
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json74
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md47
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md27
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt16
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md40
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js157
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json66
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js53
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js15
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json75
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md28
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json111
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md279
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js8
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js32
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json74
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md32
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license21
-rw-r--r--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.js4
-rw-r--r--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/license21
-rw-r--r--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.json71
-rw-r--r--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.md28
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license21
-rw-r--r--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/license21
-rw-r--r--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.json108
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json91
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json91
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md34
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/boxen/package.json83
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/index.js220
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js152
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json53
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json81
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json86
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md147
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json85
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js2
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js115
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js10
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json93
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md67
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json85
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md66
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/package.json96
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md306
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/index.js98
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json69
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js83
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md119
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json86
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md113
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json79
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/package.json79
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/configstore/package.json79
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/import-lazy/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/import-lazy/package.json76
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js89
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json84
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md31
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json83
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license21
-rw-r--r--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.json64
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json63
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json68
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js51
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json84
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md117
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json71
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json62
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json74
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md42
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json71
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json72
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json85
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license21
-rw-r--r--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/license21
-rw-r--r--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.json71
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json76
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json113
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore6
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md94
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js116
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore3
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md149
-rwxr-xr-xdeps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js60
-rw-r--r--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.md21
-rw-r--r--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/LICENSE20
-rw-r--r--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.md90
-rw-r--r--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.js144
-rw-r--r--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.json93
-rw-r--r--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/LICENSE18
-rw-r--r--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.json77
-rw-r--r--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/license21
-rw-r--r--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.json78
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json67
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json76
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock1466
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore3
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.APACHE215
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD26
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.MIT24
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md149
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js7
-rwxr-xr-xdeps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js60
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js102
-rw-r--r--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.md21
-rw-r--r--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/LICENSE20
-rw-r--r--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.md90
-rw-r--r--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.js1
-rw-r--r--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.js144
-rw-r--r--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.json93
-rw-r--r--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.yml8
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/LICENSE18
-rw-r--r--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.js2
-rw-r--r--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.js235
-rw-r--r--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.json77
-rw-r--r--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.markdown91
-rw-r--r--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.js32
-rw-r--r--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.js166
-rw-r--r--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.js31
-rw-r--r--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.js35
-rw-r--r--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.js22
-rw-r--r--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.js16
-rw-r--r--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.js31
-rw-r--r--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.js36
-rw-r--r--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.js197
-rw-r--r--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.js9
-rw-r--r--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.js15
-rw-r--r--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.js102
-rw-r--r--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.js8
-rw-r--r--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.js70
-rw-r--r--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/license21
-rw-r--r--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.json78
-rw-r--r--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.md64
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json67
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js15
-rw-r--r--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.js50
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js59
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json77
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json80
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json77
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/semver-diff/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/semver-diff/package.json69
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license21
-rw-r--r--deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/package.json77
-rw-r--r--deps/npm/node_modules/update-notifier/package.json48
-rw-r--r--deps/npm/node_modules/update-notifier/readme.md15
-rw-r--r--deps/npm/node_modules/url-parse-lax/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/index.js)0
-rw-r--r--deps/npm/node_modules/url-parse-lax/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/license)0
-rw-r--r--deps/npm/node_modules/url-parse-lax/package.json73
-rw-r--r--deps/npm/node_modules/url-parse-lax/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/readme.md)0
-rw-r--r--deps/npm/node_modules/util-deprecate/History.md (renamed from deps/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md)0
-rw-r--r--deps/npm/node_modules/util-deprecate/LICENSE (renamed from deps/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE)0
-rw-r--r--deps/npm/node_modules/util-deprecate/README.md (renamed from deps/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md)0
-rw-r--r--deps/npm/node_modules/util-deprecate/browser.js (renamed from deps/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js)0
-rw-r--r--deps/npm/node_modules/util-deprecate/node.js (renamed from deps/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js)0
-rw-r--r--deps/npm/node_modules/util-deprecate/package.json56
-rw-r--r--deps/npm/node_modules/util-extend/LICENSE (renamed from deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/util-extend/README.md (renamed from deps/npm/node_modules/read-installed/node_modules/util-extend/README.md)0
-rw-r--r--deps/npm/node_modules/util-extend/extend.js (renamed from deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js)0
-rw-r--r--deps/npm/node_modules/util-extend/package.json45
-rw-r--r--deps/npm/node_modules/util-extend/test.js (renamed from deps/npm/node_modules/read-installed/node_modules/util-extend/test.js)0
-rw-r--r--deps/npm/node_modules/uuid/.eslintrc.json5
-rw-r--r--deps/npm/node_modules/uuid/CHANGELOG.md57
-rw-r--r--deps/npm/node_modules/uuid/HISTORY.md27
-rw-r--r--deps/npm/node_modules/uuid/README.md162
-rw-r--r--deps/npm/node_modules/uuid/README_js.md280
-rwxr-xr-xdeps/npm/node_modules/uuid/bin/uuid15
-rw-r--r--deps/npm/node_modules/uuid/lib/md5-browser.js216
-rw-r--r--deps/npm/node_modules/uuid/lib/md5.js25
-rw-r--r--deps/npm/node_modules/uuid/lib/rng-browser.js21
-rw-r--r--deps/npm/node_modules/uuid/lib/rng.js10
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1-browser.js6
-rw-r--r--deps/npm/node_modules/uuid/lib/sha1.js28
-rw-r--r--deps/npm/node_modules/uuid/lib/v35.js53
-rw-r--r--deps/npm/node_modules/uuid/package.json43
-rw-r--r--deps/npm/node_modules/uuid/v1.js37
-rw-r--r--deps/npm/node_modules/uuid/v3.js4
-rw-r--r--deps/npm/node_modules/uuid/v4.js2
-rw-r--r--deps/npm/node_modules/uuid/v5.js45
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/LICENSE376
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/README.md2
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE57
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md10
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js237
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE24
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md55
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json84
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json334
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json66
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md83
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js5
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json93
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js1357
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/package.json42
-rw-r--r--deps/npm/node_modules/validate-npm-package-license/test.log3
-rw-r--r--deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml4
-rw-r--r--deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md39
-rw-r--r--deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json51
-rw-r--r--deps/npm/node_modules/validate-npm-package-name/package.json28
-rw-r--r--deps/npm/node_modules/verror/.npmignore (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/.npmignore)0
-rw-r--r--deps/npm/node_modules/verror/CHANGES.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CHANGES.md)0
-rw-r--r--deps/npm/node_modules/verror/CONTRIBUTING.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CONTRIBUTING.md)0
-rw-r--r--deps/npm/node_modules/verror/LICENSE (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/LICENSE)0
-rw-r--r--deps/npm/node_modules/verror/README.md (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/README.md)0
-rw-r--r--deps/npm/node_modules/verror/lib/verror.js (renamed from deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js)0
-rw-r--r--deps/npm/node_modules/verror/package.json51
-rw-r--r--deps/npm/node_modules/wcwidth/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/.npmignore)0
-rw-r--r--deps/npm/node_modules/wcwidth/LICENSE29
-rw-r--r--deps/npm/node_modules/wcwidth/Readme.md (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md)0
-rw-r--r--deps/npm/node_modules/wcwidth/combining.js (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js)0
-rw-r--r--deps/npm/node_modules/wcwidth/docs/index.md62
-rw-r--r--deps/npm/node_modules/wcwidth/index.js (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/index.js)0
-rw-r--r--deps/npm/node_modules/wcwidth/package.json73
-rw-r--r--deps/npm/node_modules/wcwidth/test/index.js (renamed from deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js)0
-rw-r--r--deps/npm/node_modules/which-module/CHANGELOG.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/CHANGELOG.md)0
-rw-r--r--deps/npm/node_modules/which-module/LICENSE (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/LICENSE)0
-rw-r--r--deps/npm/node_modules/which-module/README.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/README.md)0
-rw-r--r--deps/npm/node_modules/which-module/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/index.js)0
-rw-r--r--deps/npm/node_modules/which-module/package.json68
-rw-r--r--deps/npm/node_modules/which/node_modules/isexe/LICENSE15
-rw-r--r--deps/npm/node_modules/which/node_modules/isexe/package.json64
-rw-r--r--deps/npm/node_modules/which/package.json20
-rw-r--r--deps/npm/node_modules/wide-align/LICENSE (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/LICENSE)0
-rw-r--r--deps/npm/node_modules/wide-align/README.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/README.md)0
-rw-r--r--deps/npm/node_modules/wide-align/align.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/ansi-regex/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/ansi-regex/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/license)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/ansi-regex/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json77
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/string-width/index.js (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/string-width/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/string-width/package.json88
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/string-width/readme.md (renamed from deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/readme.md)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/strip-ansi/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/index.js)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/license)0
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/strip-ansi/package.json101
-rw-r--r--deps/npm/node_modules/wide-align/node_modules/strip-ansi/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/readme.md)0
-rw-r--r--deps/npm/node_modules/wide-align/package.json69
-rw-r--r--deps/npm/node_modules/widest-line/index.js4
-rw-r--r--deps/npm/node_modules/widest-line/license9
-rw-r--r--deps/npm/node_modules/widest-line/package.json86
-rw-r--r--deps/npm/node_modules/widest-line/readme.md34
-rw-r--r--deps/npm/node_modules/worker-farm/.editorconfig16
-rw-r--r--deps/npm/node_modules/worker-farm/.travis.yml1
-rw-r--r--deps/npm/node_modules/worker-farm/README.md5
-rw-r--r--deps/npm/node_modules/worker-farm/examples/basic/child.js2
-rw-r--r--deps/npm/node_modules/worker-farm/examples/basic/index.js2
-rw-r--r--deps/npm/node_modules/worker-farm/examples/pi/calc.js2
-rw-r--r--deps/npm/node_modules/worker-farm/lib/farm.js14
-rw-r--r--deps/npm/node_modules/worker-farm/lib/fork.js13
-rw-r--r--deps/npm/node_modules/worker-farm/lib/index.js2
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore1
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/README.md141
-rwxr-xr-xdeps/npm/node_modules/worker-farm/node_modules/errno/cli.js20
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore1
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml10
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE39
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md45
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json56
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/errno/package.json60
-rwxr-xr-xdeps/npm/node_modules/worker-farm/node_modules/errno/test.js31
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore1
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE19
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/Makefile4
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/README.md32
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js19
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js17
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/package.json43
-rw-r--r--deps/npm/node_modules/worker-farm/node_modules/xtend/test.js83
-rw-r--r--deps/npm/node_modules/worker-farm/package.json38
-rw-r--r--deps/npm/node_modules/worker-farm/tests/child.js87
-rw-r--r--deps/npm/node_modules/worker-farm/tests/debug.js12
-rw-r--r--deps/npm/node_modules/worker-farm/tests/index.js564
-rwxr-xr-xdeps/npm/node_modules/wrap-ansi/index.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/index.js)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/license)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/index.js4
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/license (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/package.json108
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md39
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json77
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md (renamed from 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)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/string-width/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/index.js)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/string-width/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/license)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/string-width/package.json88
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/string-width/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/readme.md)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/index.js6
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/license)0
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/package.json102
-rw-r--r--deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md33
-rw-r--r--deps/npm/node_modules/wrap-ansi/package.json120
-rw-r--r--deps/npm/node_modules/wrap-ansi/readme.md (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/readme.md)0
-rw-r--r--deps/npm/node_modules/wrappy/package.json29
-rw-r--r--deps/npm/node_modules/write-file-atomic/README.md2
-rw-r--r--deps/npm/node_modules/write-file-atomic/index.js177
-rw-r--r--deps/npm/node_modules/write-file-atomic/package.json34
-rw-r--r--deps/npm/node_modules/xdg-basedir/index.js (renamed from deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/index.js)0
-rw-r--r--deps/npm/node_modules/xdg-basedir/license (renamed from deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/license)0
-rw-r--r--deps/npm/node_modules/xdg-basedir/package.json73
-rw-r--r--deps/npm/node_modules/xdg-basedir/readme.md (renamed from deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/readme.md)0
-rw-r--r--deps/npm/node_modules/xtend/.npmignore (renamed from deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.npmignore)0
-rw-r--r--deps/npm/node_modules/xtend/LICENCE (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/LICENCE)0
-rw-r--r--deps/npm/node_modules/xtend/Makefile (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/Makefile)0
-rw-r--r--deps/npm/node_modules/xtend/README.md (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/README.md)0
-rw-r--r--deps/npm/node_modules/xtend/immutable.js (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/immutable.js)0
-rw-r--r--deps/npm/node_modules/xtend/mutable.js (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/mutable.js)0
-rw-r--r--deps/npm/node_modules/xtend/package.json87
-rw-r--r--deps/npm/node_modules/xtend/test.js (renamed from deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/test.js)0
-rw-r--r--deps/npm/node_modules/y18n/CHANGELOG.md21
-rw-r--r--deps/npm/node_modules/y18n/LICENSE (renamed from deps/npm/node_modules/cacache/node_modules/y18n/LICENSE)0
-rw-r--r--deps/npm/node_modules/y18n/README.md109
-rw-r--r--deps/npm/node_modules/y18n/index.js188
-rw-r--r--deps/npm/node_modules/y18n/package.json70
-rw-r--r--deps/npm/node_modules/yallist/LICENSE (renamed from deps/npm/node_modules/read/node_modules/mute-stream/LICENSE)0
-rw-r--r--deps/npm/node_modules/yallist/README.md204
-rw-r--r--deps/npm/node_modules/yallist/iterator.js (renamed from deps/npm/node_modules/lru-cache/node_modules/yallist/iterator.js)0
-rw-r--r--deps/npm/node_modules/yallist/package.json62
-rw-r--r--deps/npm/node_modules/yallist/yallist.js (renamed from deps/npm/node_modules/lru-cache/node_modules/yallist/yallist.js)0
-rw-r--r--deps/npm/node_modules/yargs-parser/CHANGELOG.md300
-rw-r--r--deps/npm/node_modules/yargs-parser/LICENSE.txt (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt)0
-rw-r--r--deps/npm/node_modules/yargs-parser/README.md308
-rw-r--r--deps/npm/node_modules/yargs-parser/index.js811
-rw-r--r--deps/npm/node_modules/yargs-parser/lib/tokenize-arg-string.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js)8
-rw-r--r--deps/npm/node_modules/yargs-parser/package.json75
-rw-r--r--deps/npm/node_modules/yargs/CHANGELOG.md1131
-rw-r--r--deps/npm/node_modules/yargs/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/LICENSE)0
-rw-r--r--deps/npm/node_modules/yargs/README.md107
-rw-r--r--deps/npm/node_modules/yargs/completion.sh.hbs (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/completion.sh.hbs)4
-rw-r--r--deps/npm/node_modules/yargs/index.js32
-rw-r--r--deps/npm/node_modules/yargs/lib/apply-extends.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/lib/apply-extends.js)21
-rw-r--r--deps/npm/node_modules/yargs/lib/argsert.js66
-rw-r--r--deps/npm/node_modules/yargs/lib/command.js426
-rw-r--r--deps/npm/node_modules/yargs/lib/completion.js105
-rw-r--r--deps/npm/node_modules/yargs/lib/levenshtein.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/lib/levenshtein.js)10
-rw-r--r--deps/npm/node_modules/yargs/lib/obj-filter.js11
-rw-r--r--deps/npm/node_modules/yargs/lib/usage.js524
-rw-r--r--deps/npm/node_modules/yargs/lib/validation.js341
-rw-r--r--deps/npm/node_modules/yargs/lib/yerror.js (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/lib/yerror.js)1
-rw-r--r--deps/npm/node_modules/yargs/locales/be.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/be.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/de.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/de.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/en.json42
-rw-r--r--deps/npm/node_modules/yargs/locales/es.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/es.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/fr.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/fr.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/hi.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/hi.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/hu.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/hu.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/id.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/id.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/it.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/it.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/ja.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/ja.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/ko.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/ko.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/nb.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/nb.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/nl.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/nl.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/nn.json39
-rw-r--r--deps/npm/node_modules/yargs/locales/pirate.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/pirate.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/pl.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/pl.json)5
-rw-r--r--deps/npm/node_modules/yargs/locales/pt.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/pt_BR.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt_BR.json)6
-rw-r--r--deps/npm/node_modules/yargs/locales/ru.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/ru.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/th.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/th.json)0
-rw-r--r--deps/npm/node_modules/yargs/locales/tr.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/tr.json)4
-rw-r--r--deps/npm/node_modules/yargs/locales/zh_CN.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_CN.json)6
-rw-r--r--deps/npm/node_modules/yargs/locales/zh_TW.json (renamed from deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_TW.json)0
-rw-r--r--deps/npm/node_modules/yargs/node_modules/y18n/LICENSE (renamed from deps/npm/node_modules/libnpx/node_modules/y18n/LICENSE)0
-rw-r--r--deps/npm/node_modules/yargs/node_modules/y18n/README.md (renamed from deps/npm/node_modules/cacache/node_modules/y18n/README.md)0
-rw-r--r--deps/npm/node_modules/yargs/node_modules/y18n/index.js (renamed from deps/npm/node_modules/cacache/node_modules/y18n/index.js)0
-rw-r--r--deps/npm/node_modules/yargs/node_modules/y18n/package.json65
-rw-r--r--deps/npm/node_modules/yargs/package.json101
-rw-r--r--deps/npm/node_modules/yargs/yargs.js1153
-rw-r--r--deps/npm/package.json115
-rw-r--r--deps/npm/scripts/changelog.js10
-rwxr-xr-xdeps/npm/scripts/index-build.js8
-rwxr-xr-xdeps/npm/scripts/maketest41
-rw-r--r--deps/npm/scripts/release.sh3
-rw-r--r--deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js4
-rw-r--r--deps/npm/test/common-tap.js26
-rw-r--r--deps/npm/test/fixtures/config/.npmrc1
-rw-r--r--deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js2
-rw-r--r--deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js1
-rw-r--r--deps/npm/test/need-npm5-update/legacy-npm-self-install.js3
-rw-r--r--deps/npm/test/need-npm5-update/lifecycle-signal.js2
-rw-r--r--deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js6
-rw-r--r--deps/npm/test/need-npm5-update/outdated-depth-integer.js6
-rw-r--r--deps/npm/test/need-npm5-update/outdated-symlink.js3
-rw-r--r--deps/npm/test/need-npm5-update/peer-deps-toplevel.js3
-rw-r--r--deps/npm/test/need-npm5-update/rm-linked.js6
-rw-r--r--deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js3
-rw-r--r--deps/npm/test/network/git-cache-locking.js3
-rw-r--r--deps/npm/test/network/registry.js4
-rw-r--r--deps/npm/test/tap/00-verify-ls-ok.js13
-rw-r--r--deps/npm/test/tap/adduser-always-auth.js235
-rw-r--r--deps/npm/test/tap/adduser-legacy-auth.js7
-rw-r--r--deps/npm/test/tap/adduser-oauth.js19
-rw-r--r--deps/npm/test/tap/adduser-saml.js19
-rw-r--r--deps/npm/test/tap/anon-cli-metrics.js3
-rw-r--r--deps/npm/test/tap/audit-fix.js669
-rw-r--r--deps/npm/test/tap/auto-prune.js147
-rw-r--r--deps/npm/test/tap/bugs.js2
-rw-r--r--deps/npm/test/tap/builtin-config.js94
-rw-r--r--deps/npm/test/tap/bundled-dependencies-no-pkgjson.js55
-rw-r--r--deps/npm/test/tap/cache-add-unpublished.js2
-rw-r--r--deps/npm/test/tap/ci.js304
-rw-r--r--deps/npm/test/tap/config-basic.js1
-rw-r--r--deps/npm/test/tap/config-builtin.js1
-rw-r--r--deps/npm/test/tap/config-envReplace.js57
-rw-r--r--deps/npm/test/tap/config-list.js2
-rw-r--r--deps/npm/test/tap/config-meta.js6
-rw-r--r--deps/npm/test/tap/correct-mkdir.js5
-rw-r--r--deps/npm/test/tap/debug-logs.js3
-rw-r--r--deps/npm/test/tap/dist-tag.js2
-rw-r--r--deps/npm/test/tap/doctor.js2
-rw-r--r--deps/npm/test/tap/gently-rm-cmdshims.js37
-rw-r--r--deps/npm/test/tap/gently-rm-linked-module.js3
-rw-r--r--deps/npm/test/tap/git-npmignore.js1
-rw-r--r--deps/npm/test/tap/help.js2
-rw-r--r--deps/npm/test/tap/hook.js243
-rw-r--r--deps/npm/test/tap/init-create.js171
-rw-r--r--deps/npm/test/tap/init-interrupt.js1
-rw-r--r--deps/npm/test/tap/install-bad-dep-format.js2
-rw-r--r--deps/npm/test/tap/install-cli-only-production.js10
-rw-r--r--deps/npm/test/tap/install-cli-only-shrinkwrap.js9
-rw-r--r--deps/npm/test/tap/install-contributors-count.js70
-rw-r--r--deps/npm/test/tap/install-duplicate-deps-warning.js2
-rw-r--r--deps/npm/test/tap/install-order.js1
-rw-r--r--deps/npm/test/tap/install-package-lock-only.js3
-rw-r--r--deps/npm/test/tap/install-parse-error.js3
-rw-r--r--deps/npm/test/tap/install-save-consistent-newlines.js122
-rw-r--r--deps/npm/test/tap/install-scoped-with-bundled-dependency.js3
-rw-r--r--deps/npm/test/tap/install-shrinkwrapped-git.js23
-rw-r--r--deps/npm/test/tap/install-test-cli-without-package-lock.js83
-rw-r--r--deps/npm/test/tap/install-windows-newlines.js2
-rw-r--r--deps/npm/test/tap/install-with-dev-dep-duplicate.js2
-rw-r--r--deps/npm/test/tap/invalid-dep-version-filtering.js4
-rw-r--r--deps/npm/test/tap/is-fs-access-available.js5
-rw-r--r--deps/npm/test/tap/link.js8
-rw-r--r--deps/npm/test/tap/lockfile-http-deps.js3
-rw-r--r--deps/npm/test/tap/map-to-registry.js2
-rw-r--r--deps/npm/test/tap/nerf-dart.js6
-rw-r--r--deps/npm/test/tap/no-global-warns.js2
-rw-r--r--deps/npm/test/tap/optional-metadep-rollback-collision.js11
-rw-r--r--deps/npm/test/tap/outdated-color.js16
-rw-r--r--deps/npm/test/tap/outdated-latest.js109
-rw-r--r--deps/npm/test/tap/override-bundled.js10
-rw-r--r--deps/npm/test/tap/pack-files-and-ignores.js (renamed from deps/npm/test/tap/files-and-ignores.js)0
-rw-r--r--deps/npm/test/tap/pack.js167
-rw-r--r--deps/npm/test/tap/peer-deps.js2
-rw-r--r--deps/npm/test/tap/prepublish-only.js9
-rw-r--r--deps/npm/test/tap/prune-dev-dep-with-bins.js2
-rw-r--r--deps/npm/test/tap/publish-config.js2
-rw-r--r--deps/npm/test/tap/publish-scoped.js6
-rw-r--r--deps/npm/test/tap/publish.js174
-rw-r--r--deps/npm/test/tap/repo.js2
-rw-r--r--deps/npm/test/tap/retry-on-stale-cache.js9
-rw-r--r--deps/npm/test/tap/save-optional.js81
-rw-r--r--deps/npm/test/tap/scripts-whitespace-windows.js6
-rw-r--r--deps/npm/test/tap/search.js6
-rw-r--r--deps/npm/test/tap/shared-linked.js3
-rw-r--r--deps/npm/test/tap/shrinkwrap-default-dev.js3
-rw-r--r--deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js3
-rw-r--r--deps/npm/test/tap/shrinkwrap-optional-dependency.js2
-rw-r--r--deps/npm/test/tap/shrinkwrap-optional-platform.js3
-rw-r--r--deps/npm/test/tap/shrinkwrap-optional-property.js2
-rw-r--r--deps/npm/test/tap/shrinkwrap-prod-dependency.js2
-rw-r--r--deps/npm/test/tap/shrinkwrap-resolve-conflict.js117
-rw-r--r--deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js1
-rw-r--r--deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js1
-rw-r--r--deps/npm/test/tap/spec-local-specifiers.js4
-rw-r--r--deps/npm/test/tap/startstop.js4
-rw-r--r--deps/npm/test/tap/symlink-cycle.js2
-rw-r--r--deps/npm/test/tap/tagged-version-matching.js33
-rw-r--r--deps/npm/test/tap/team.js24
-rw-r--r--deps/npm/test/tap/test-run-ls.js2
-rw-r--r--deps/npm/test/tap/unit-deps-earliestInstallable.js5
-rw-r--r--deps/npm/test/tap/unit-token-validate-cidr.js19
-rw-r--r--deps/npm/test/tap/unsupported.js11
-rw-r--r--deps/npm/test/tap/update-examples.js2
-rw-r--r--deps/npm/test/tap/upgrade-lifecycles.js3
-rw-r--r--deps/npm/test/tap/version-consistent-newlines.js91
-rw-r--r--deps/npm/test/tap/view.js11
4567 files changed, 116721 insertions, 144247 deletions
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 <root@ip-10-195-202-5.ec2.internal>
Danila Gerasimov <danila.gerasimov@gmail.com>
Dave Galbraith <dave@jut.io>
David Beitey <david@davidjb.com>
+David Rousselie <guido.dassori@gmail.com>
Domenic Denicola <domenic@domenicdenicola.com>
Einar Otto Stangvik <einaros@gmail.com>
Emma Ramirez <ramirez.emma.g@gmail.com>
@@ -32,11 +33,15 @@ Jake Verbaten <raynos2@gmail.com>
James Sanders <jimmyjazz14@gmail.com>
James Treworgy <jamietre@gmail.com>
Jason Smith <jhs@iriscouch.com>
+Jed Fox <git@twopointzero.us>
Joshua Bennett <legodudejb@gmail.com>
+Joshua Bennett <legodudejb@gmail.com> <legodude17@users.noreply.github.com>
Jonas Weber <github@jonasw.de>
Julien Meddah <julien.meddah@deveryware.com>
+Kat MarchƔn <kzm@zkat.tech> <kzm@sykosomatic.org>
Kevin Lorenz <mail@kevinlorenz.com>
Kris Windham <kriswindham@gmail.com>
+Leonardo Rojas <leonardo.rojas@shopify.com>
Lin Clark <lin.w.clark@gmail.com>
Luke Arduini <luke.arduini@gmail.com> <luke.arduini@me.com>
Maciej Małecki <me@mmalecki.com> <maciej.malecki@notimplemented.org>
@@ -46,12 +51,14 @@ Maxim Bogushevich <boga1@mail.ru>
Maximilian Antoni <mail@maxantoni.de> <maximilian.antoni@juliusbaer.com>
Michael Hayes <michael@hayes.io> <mhayes@newrelic.com>
Nicolas Morel <marsup@gmail.com>
+Misha Kaletsky <misha.kaletsky@gmail.com>
Olivier Melcher <olivier.melcher@gmail.com>
Ra'Shaun Stovall <rashaunstovall@gmail.com>
Rebecca Turner <me@re-becca.org> <turner@mikomi.org>
Rebecca Turner <me@re-becca.org> <rebecca@npmjs.com>
Ryan Emery <seebees@gmail.com>
Sam Mikes <smikes@cubane.com>
+Sreenivas Alapati <sreenivas9alapati@gmail.com>
Stephanie Snopek <stephaniesnopek@gmail.com>
Takaya Kobayashi <jigsaw@live.jp>
Ted Yavuzkurt <hello@TedY.io> <davidteoman@gmail.com>
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 <claycarpenter@gmail.com>
bangbang93 <bangbang93@163.com>
Nick Malaguti <nmalaguti@palantir.com>
Cedric Nelson <cedric.nelson@gmail.com>
-Kat MarchƔn <kzm@sykosomatic.org>
+Kat MarchƔn <kzm@zkat.tech>
Andrew <talktome@aboutandrew.co.uk>
Eduardo Pinho <enet4mikeenet@gmail.com>
Rachel Hutchison <rhutchix@intel.com>
@@ -453,14 +453,13 @@ Henry Zhu <hi@henryzoo.com>
Nate Goldman <ungoldman@gmail.com>
Ted Yavuzkurt <hello@TedY.io>
Arseniy Maximov <localhost@kern0.ru>
-Joshua Bennett <legodude17@users.noreply.github.com>
Evgeny Kulikov <beyondcompute@users.noreply.github.com>
Š”ŠŗŠ¾Š²Š¾Ń€Š¾Š“Š° ŠŠøŠŗŠøтŠ° ŠŠ½Š“рŠµŠµŠ²Šøч <chalkerx@gmail.com>
Carol (Nichols || Goulding) <carol.nichols@gmail.com>
Jarid Margolin <jaridmargolin@gmail.com>
David Cook <divergentdave@gmail.com>
Brian Dukes <bdukes@engagesoftware.com>
-J F <git@twopointzero.us>
+Jed Fox <git@twopointzero.us>
Pavlo Liulia <pavloblack@hotmail.com>
JƔn Dzurek <famousgarkin@outlook.com>
Lucas Theisen <ltheisen@mitre.org>
@@ -487,21 +486,21 @@ Leonard Martin <leonard.martin@gmail.com>
Teddy Katz <teddy.katz@gmail.com>
Simon Legg <leggsimon@gmail.com>
Kin Lum <kenneth.kin.lum@gmail.com>
-dax <guido.dassori@gmail.com>
+David Rousselie <guido.dassori@gmail.com>
Jože Mlakar <JozeM@ixtlan-team.si>
happylynx <happylynx@users.noreply.github.com>
Dominic Watson <intellix@users.noreply.github.com>
Enrico Weigelt, metux IT consult <enrico.weigelt@gr13.net>
Brian Beck <exogen@gmail.com>
Ramana Venkata <vramana@users.noreply.github.com>
-mmkal <misha.kaletsky@gmail.com>
+Misha Kaletsky <misha.kaletsky@gmail.com>
Andrew Schmadel <schmod@users.noreply.github.com>
AJ Jordan <alex@strugee.net>
Mark Banner <standard8@mozilla.com>
Richard Simko <richardsimko@users.noreply.github.com>
Sanketh Katta <sankethkatta@gmail.com>
Tim Needham <tim.needham@wmfs.net>
-leonardo rojas <leonardo.rojas@shopify.com>
+Leonardo Rojas <leonardo.rojas@shopify.com>
Mark Peter Fejes <fejes.mark@gmail.com>
Ryan Florence <rpflorence@gmail.com>
MichaelQQ <mingsian.tu@vpon.com>
@@ -513,7 +512,6 @@ Luis Gustavo Pereira <lgp1985@yahoo.com.br>
Amos Wenger <fasterthanlime@users.noreply.github.com>
Samuel Marks <samuelmarks@gmail.com>
Victor Travieso <victor@grabcad.com>
-legodude17 <legodude17@users.noreply.github.com>
Joshua Chaitin-Pollak <jbcpollak@users.noreply.github.com>
Brendan Warkentin <faazshift@gmail.com>
Scott Santucci <ScottFreeCode@users.noreply.github.com>
@@ -536,3 +534,39 @@ Jacob Wejendorp <jacob@wejendorp.dk>
Alejandro LĆ³pez <a.lopez.sanchez@outlook.es>
Victor Belozyorov <hi@vbelozyorov.com>
Bradley Farias <bfarias@godaddy.com>
+Kyle E. Mitchell <kyle@kemitchell.com>
+Tuan Anh Tran <me@tuananh.org>
+Nathan Woltman <nwoltman@outlook.com>
+Kyra <kyranet@users.noreply.github.com>
+LeŠ°h Neukirchen <chneukirchen@gmail.com>
+Kyle Spier-Swenson <kyleshome@gmail.com>
+Joe Bowbeer <joe.bowbeer@gmail.com>
+Nalin Bhardwaj <6984346+nalinbhardwaj@users.noreply.github.com>
+Nicolas Garnier <ngarnier@users.noreply.github.com>
+Vladislav Rassokhin <vladrassokhin@gmail.com>
+Josh Goldberg <joshuakgoldberg@outlook.com>
+laggingreflex <laggingreflex@gmail.com>
+Kristofer Selbekk <selbekk@users.noreply.github.com>
+Sreenivas Alapati <sreenivas9alapati@gmail.com>
+Ben Creasy <ben@bencreasy.com>
+Allan Kimmer Jensen <allankimmerjensen@gmail.com>
+rinfan <rinfan@users.noreply.github.com>
+Matt Hoyle <code@deployable.co>
+Mason Pawsey <mpawsey@csub.edu>
+Johannes Bader <olydis@users.noreply.github.com>
+Michael Zabka <zabka.michael@gmail.com>
+Bruce MacNaughton <bmacnaughton@gmail.com>
+Christopher Patty <christopher.patty@aggiemail.usu.edu>
+Max Stoiber <contact@mxstbr.com>
+Enrico Weigelt <enrico.weigelt@gr13.net>
+David Hu <davidjhu@gmail.com>
+Steven R. Loomis <srl295@gmail.com>
+Julien Deniau <julien.deniau@gmail.com>
+Prasanna Venkatesh T S <vipranarayan14@gmail.com>
+Alec Larson <aleclarson@users.noreply.github.com>
+John-David Dalton <john.david.dalton@gmail.com>
+Raymond Feng <enjoyjava@gmail.com>
+Tieme van Veen <tiemevanveen@hotmail.com>
+Finn Pauls <derfinn@gmail.com>
+Jeremy Kahn <jeremyckahn@gmail.com>
+Mertcan Mermerkaya <mertcan@mermerkaya.net>
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 <pkg>`!
-### 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 <address>`. 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 <name>`.
+ ([@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 <cmd>` 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 <address>`. 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 <cmd>` 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 <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](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>/]<name> (same as `npx [<@scope>/]create-<name>`)
-## 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 <initializer>` 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-<initializer>`, 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 <folder>`:
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>/]<pkg>...] [--production]
+ npm prune [[<@scope>/]<pkg>...] [--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 @@
<p>This is just enough info to get you up and running.</p>
<p>Much more info available via <code>npm help</code> once it&#39;s installed.</p>
<h2 id="important">IMPORTANT</h2>
-<p><strong>You need node v4 or higher to run this program.</strong></p>
-<p>To install an old <strong>and unsupported</strong> version of npm that works on node v0.12
+<p><strong>You need node v6 or higher to run this program.</strong></p>
+<p>To install an old <strong>and unsupported</strong> version of npm that works on node v5
and prior, clone the git repo and dig through the old tags and branches.</p>
<p><strong>npm is configured to use npm, Inc.&#39;s public package registry at
<a href="https://registry.npmjs.org">https://registry.npmjs.org</a> by default.</strong></p>
@@ -127,5 +127,5 @@ doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@5.6.0</p>
+<p id="footer"><a href="../doc/README.html">README</a> &mdash; npm@6.1.0</p>
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
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-access &mdash; npm@5.6.0</p>
+<p id="footer">npm-access &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-adduser &mdash; npm@5.6.0</p>
+<p id="footer">npm-adduser &mdash; npm@6.1.0</p>
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 @@
+<!doctype html>
+<html>
+ <title>npm-audit</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" type="text/css" href="../../static/style.css">
+ <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-audit.html">
+ <script async=true src="../../static/toc.js"></script>
+
+ <body>
+ <div id="wrapper">
+
+<h1><a href="../cli/npm-audit.html">npm-audit</a></h1> <p>Run a security audit</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm audit [--json]
+npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=dev]
+</code></pre><h2 id="examples">EXAMPLES</h2>
+<p>Scan your project for vulnerabilities and automatically install any compatible
+updates to vulnerable dependencies:</p>
+<pre><code>$ npm audit fix
+</code></pre><p>Run <code>audit fix</code> without modifying <code>node_modules</code>, but still updating the
+pkglock:</p>
+<pre><code>$ npm audit fix --package-lock-only
+</code></pre><p>Skip updating <code>devDependencies</code>:</p>
+<pre><code>$ npm audit fix --only=prod
+</code></pre><p>Have <code>audit fix</code> install semver-major updates to toplevel dependencies, not just
+semver-compatible ones:</p>
+<pre><code>$ npm audit fix --force
+</code></pre><p>Do a dry run to get an idea of what <code>audit fix</code> will do, and <em>also</em> output
+install information in JSON format:</p>
+<pre><code>$ npm audit fix --dry-run --json
+</code></pre><p>Scan your project for vulnerabilities and just show the details, without fixing
+anything:</p>
+<pre><code>$ npm audit
+</code></pre><p>Get the detailed audit report in JSON format:</p>
+<pre><code>$ npm audit --json
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<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>
+<p>You can also have npm automatically fix the vulnerabilities by running <code>npm
+audit fix</code>. Note that some vulnerabilities cannot be fixed automatically and
+will require manual intervention or review. Also note that since <code>npm audit fix</code>
+runs a full-fledged <code>npm install</code> under the hood, all configs that apply to the
+installer will also apply to <code>npm install</code> -- so things like <code>npm audit fix
+--package-lock-only</code> will work as expected.</p>
+<h2 id="content-submitted">CONTENT SUBMITTED</h2>
+<ul>
+<li>npm_version</li>
+<li>node_version</li>
+<li>platform</li>
+<li>node_env</li>
+<li>A scrubbed version of your package-lock.json or npm-shrinkwrap.json</li>
+</ul>
+<h3 id="scrubbing">SCRUBBING</h3>
+<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:</p>
+<ul>
+<li>Any module referencing a scope that is configured for a non-default
+registry has its name scrubbed. (That is, a scope you did a <code>npm login --scope=@ourscope</code> for.)</li>
+<li>All git dependencies have their names and specifiers scrubbed.</li>
+<li>All remote tarball dependencies have their names and specifiers scrubbed.</li>
+<li>All local directory and tarball dependencies have their names and specifiers scrubbed.</li>
+</ul>
+<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.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
+<li><a href="../files/package-locks.html">package-locks(5)</a></li>
+<li><a href="../misc/config.html">config(7)</a></li>
+</ul>
+
+</div>
+
+<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
+<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
+<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
+<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
+<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
+<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
+</table>
+<p id="footer">npm-audit &mdash; npm@6.1.0</p>
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 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bin &mdash; npm@5.6.0</p>
+<p id="footer">npm-bin &mdash; npm@6.1.0</p>
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 <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bugs &mdash; npm@5.6.0</p>
+<p id="footer">npm-bugs &mdash; npm@6.1.0</p>
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:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-build &mdash; npm@5.6.0</p>
+<p id="footer">npm-build &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-bundle &mdash; npm@5.6.0</p>
+<p id="footer">npm-bundle &mdash; npm@6.1.0</p>
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</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-cache &mdash; npm@5.6.0</p>
+<p id="footer">npm-cache &mdash; npm@6.1.0</p>
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 @@
+<!doctype html>
+<html>
+ <title>npm-ci</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" type="text/css" href="../../static/style.css">
+ <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-ci.html">
+ <script async=true src="../../static/toc.js"></script>
+
+ <body>
+ <div id="wrapper">
+
+<h1><a href="../cli/npm-ci.html">npm-ci</a></h1> <p>Install a project with a clean slate</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm ci
+</code></pre><h2 id="example">EXAMPLE</h2>
+<p>Make sure you have a package-lock and an up-to-date install:</p>
+<pre><code>$ cd ./my/npm/project
+$ npm install
+added 154 packages in 10s
+$ ls | grep package-lock
+</code></pre><p>Run <code>npm ci</code> in that project</p>
+<pre><code>$ npm ci
+added 154 packages in 5s
+</code></pre><p>Configure Travis to build using <code>npm ci</code> instead of <code>npm install</code>:</p>
+<pre><code># .travis.yml
+install:
+- npm ci
+# keep the npm cache around to speed up installs
+cache:
+ directories:
+ - &quot;$HOME/.npm&quot;
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<p>This command is similar to <code><a href="../cli/npm-install.html">npm-install(1)</a></code>, except it&#39;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>
+<p>In short, the main differences between using <code>npm install</code> and <code>npm ci</code> are:</p>
+<ul>
+<li>The project <strong>must</strong> have an existing <code>package-lock.json</code> or <code>npm-shrinkwrap.json</code>.</li>
+<li>If dependencies in the package lock do not match those in <code>package.json</code>, <code>npm ci</code> will exit with an error, instead of updating the package lock.</li>
+<li><code>npm ci</code> can only install entire projects at a time: individual dependencies cannot be added with this command.</li>
+<li>If a <code>node_modules</code> is already present, it will be automatically removed before <code>npm ci</code> begins its install.</li>
+<li>It will never write to <code>package.json</code> or any of the package-locks: installs are essentially frozen.</li>
+</ul>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
+<li><a href="../files/npm-package-locks.html">npm-package-locks(5)</a></li>
+</ul>
+
+</div>
+
+<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
+<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
+<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
+<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
+<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
+<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
+</table>
+<p id="footer">npm-ci &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-completion &mdash; npm@5.6.0</p>
+<p id="footer">npm-completion &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-config &mdash; npm@5.6.0</p>
+<p id="footer">npm-config &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-dedupe &mdash; npm@5.6.0</p>
+<p id="footer">npm-dedupe &mdash; npm@6.1.0</p>
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:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-deprecate &mdash; npm@5.6.0</p>
+<p id="footer">npm-deprecate &mdash; npm@6.1.0</p>
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 <code>v</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-dist-tag &mdash; npm@5.6.0</p>
+<p id="footer">npm-dist-tag &mdash; npm@6.1.0</p>
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 <code>name</code> property.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-docs &mdash; npm@5.6.0</p>
+<p id="footer">npm-docs &mdash; npm@6.1.0</p>
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 <code>npm@latest
better than an old version.</p>
<p><code>npm doctor</code> verifies the following items in your environment, and if there are
any recommended changes, it will display them.</p>
-<h3 id="-npm-ping-"><code>npm ping</code></h3>
+<h3 id="npm-ping"><code>npm ping</code></h3>
<p>By default, npm installs from the primary npm registry, <code>registry.npmjs.org</code>.
<code>npm doctor</code> hits a special ping endpoint within the registry. This can also be
checked with <code>npm ping</code>. If this check fails, you may be using a proxy that
@@ -42,7 +42,7 @@ HTTPS to <code>registry.npmjs.org</code>.</p>
what that is by running <code>npm config get registry</code>), and if you&#39;re using a
private registry that doesn&#39;t support the <code>/whoami</code> endpoint supported by the
primary registry, this check may fail.</p>
-<h3 id="-npm-v-"><code>npm -v</code></h3>
+<h3 id="npm-v"><code>npm -v</code></h3>
<p>While Node.js may come bundled with a particular version of npm, it&#39;s the
policy of the CLI team that we recommend all users run <code>npm@latest</code> if they
can. As the CLI is maintained by a small team of contributors, there are only
@@ -50,21 +50,21 @@ resources for a single line of development, so npm&#39;s own long-term support
releases typically only receive critical security and regression fixes. The
team believes that the latest tested version of npm is almost always likely to
be the most functional and defect-free version of npm.</p>
-<h3 id="-node-v-"><code>node -v</code></h3>
+<h3 id="node-v"><code>node -v</code></h3>
<p>For most users, in most circumstances, the best version of Node will be the
latest long-term support (LTS) release. Those of you who want access to new
ECMAscript features or bleeding-edge changes to Node&#39;s standard library may be
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&#39;s OK! But
in general, the npm team recommends that most users run Node.js LTS.</p>
-<h3 id="-npm-config-get-registry-"><code>npm config get registry</code></h3>
+<h3 id="npm-config-get-registry"><code>npm config get registry</code></h3>
<p>Some of you may be installing from private package registries for your project
or company. That&#39;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&#39;re pointing at.
This part of <code>npm doctor</code> just lets you, and maybe whoever&#39;s helping you with
support, know that you&#39;re not using the default registry.</p>
-<h3 id="-which-git-"><code>which git</code></h3>
+<h3 id="which-git"><code>which git</code></h3>
<p>While it&#39;s documented in the <a href="../../doc/README.html">README</a>, 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&#39;s not
@@ -103,4 +103,4 @@ cache, you should probably run <code>npm cache clean</code> and reset the cache.
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-doctor &mdash; npm@5.6.0</p>
+<p id="footer">npm-doctor &mdash; npm@6.1.0</p>
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 <code>&quot;notepad&quot;</code> on Windows.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-edit &mdash; npm@5.6.0</p>
+<p id="footer">npm-edit &mdash; npm@6.1.0</p>
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</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-explore &mdash; npm@5.6.0</p>
+<p id="footer">npm-explore &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-help-search &mdash; npm@5.6.0</p>
+<p id="footer">npm-help-search &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-help &mdash; npm@5.6.0</p>
+<p id="footer">npm-help &mdash; npm@6.1.0</p>
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 @@
+<!doctype html>
+<html>
+ <title>npm-hook</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" type="text/css" href="../../static/style.css">
+ <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-hook.html">
+ <script async=true src="../../static/toc.js"></script>
+
+ <body>
+ <div id="wrapper">
+
+<h1><a href="../cli/npm-hook.html">npm-hook</a></h1> <p>Manage registry hooks</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm hook ls [pkg]
+npm hook add &lt;entity&gt; &lt;url&gt; &lt;secret&gt;
+npm hook update &lt;id&gt; &lt;url&gt; [secret]
+npm hook rm &lt;id&gt;
+</code></pre><h2 id="example">EXAMPLE</h2>
+<p>Add a hook to watch a package for changes:</p>
+<pre><code>$ npm hook add lodash https://example.com/ my-shared-secret
+</code></pre><p>Add a hook to watch packages belonging to the user <code>substack</code>:</p>
+<pre><code>$ npm hook add ~substack https://example.com/ my-shared-secret
+</code></pre><p>Add a hook to watch packages in the scope <code>@npm</code></p>
+<pre><code>$ npm hook add @npm https://example.com/ my-shared-secret
+</code></pre><p>List all your active hooks:</p>
+<pre><code>$ npm hook ls
+</code></pre><p>List your active hooks for the <code>lodash</code> package:</p>
+<pre><code>$ npm hook ls lodash
+</code></pre><p>Update an existing hook&#39;s url:</p>
+<pre><code>$ npm hook update id-deadbeef https://my-new-website.here/
+</code></pre><p>Remove a hook:</p>
+<pre><code>$ npm hook rm id-deadbeef
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<p>Allows you to manage <a href="http://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm">npm
+hooks</a>,
+including adding, removing, listing, and updating.</p>
+<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>
+<p>To create a package hook, simply reference the package name.</p>
+<p>To create an owner hook, prefix the owner name with <code>~</code> (as in, <code>~youruser</code>).</p>
+<p>To create a scope hook, prefix the scope name with <code>@</code> (as in, <code>@yourscope</code>).</p>
+<p>The hook <code>id</code> used by <code>update</code> and <code>rm</code> are the IDs listed in <code>npm hook ls</code> for
+that particular hook.</p>
+<p>The shared secret will be sent along to the URL endpoint so you can verify the
+request came from your own configured hook.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="http://blog.npmjs.org/post/145260155635/introducing-hooks-get-notifications-of-npm">&quot;Introducing Hooks&quot; blog post</a></li>
+</ul>
+
+</div>
+
+<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
+<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
+<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
+<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
+<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
+<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
+</table>
+<p id="footer">npm-hook &mdash; npm@6.1.0</p>
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 @@
<body>
<div id="wrapper">
-<h1><a href="../cli/npm-init.html">npm-init</a></h1> <p>Interactively create a package.json file</p>
+<h1><a href="../cli/npm-init.html">npm-init</a></h1> <p>create a package.json file</p>
<h2 id="synopsis">SYNOPSIS</h2>
-<pre><code>npm init [-f|--force|-y|--yes]
+<pre><code>npm init [--force|-f|--yes|-y|--scope]
+npm init &lt;@scope&gt; (same as `npx &lt;@scope&gt;/create`)
+npm init [&lt;@scope&gt;/]&lt;name&gt; (same as `npx [&lt;@scope&gt;/]create-&lt;name&gt;`)
+</code></pre><h2 id="examples">EXAMPLES</h2>
+<p>Create a new React-based project using <a href="https://npm.im/create-react-app"><code>create-react-app</code></a>:</p>
+<pre><code>$ npm init react-app ./my-react-app
+</code></pre><p>Create a new <code>esm</code>-compatible package using <a href="https://npm.im/create-esm"><code>create-esm</code></a>:</p>
+<pre><code>$ mkdir my-esm-lib &amp;&amp; cd my-esm-lib
+$ npm init esm --yes
+</code></pre><p>Generate a plain old package.json using legacy init:</p>
+<pre><code>$ mkdir my-npm-pkg &amp;&amp; cd my-npm-pkg
+$ git init
+$ npm init
+</code></pre><p>Generate it without having it ask any questions:</p>
+<pre><code>$ npm init -y
</code></pre><h2 id="description">DESCRIPTION</h2>
-<p>This will ask you a bunch of questions, and then write a package.json for you.</p>
-<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&#39;ve selected.</p>
-<p>If you already have a package.json file, it&#39;ll read that first, and default to
-the options in there.</p>
-<p>It is strictly additive, so it does not delete options from your package.json
-without a really good reason to do so.</p>
-<p>If you invoke it with <code>-f</code>, <code>--force</code>, <code>-y</code>, or <code>--yes</code>, it will use only
-defaults and not prompt you for any options.</p>
-<h2 id="configuration">CONFIGURATION</h2>
-<h3 id="scope">scope</h3>
+<p><code>npm init &lt;initializer&gt;</code> can be used to set up a new or existing npm package.</p>
+<p><code>initializer</code> in this case is an npm package named <code>create-&lt;initializer&gt;</code>, which
+will be installed by <a href="https://npm.im/npx"><code><a href="../cli/npx.html">npx(1)</a></code></a>, and then have its main bin
+executed -- presumably creating or updating <code>package.json</code> and running any other
+initialization-related operations.</p>
+<p>The init command is transformed to a corresponding <code>npx</code> operation as follows:</p>
<ul>
-<li>Default: none</li>
-<li>Type: String</li>
+<li><code>npm init foo</code> -&gt; <code>npx create-foo</code></li>
+<li><code>npm init @usr/foo</code> -&gt; <code>npx @usr/create-foo</code></li>
+<li><code>npm init @usr</code> -&gt; <code>npx @usr/create</code></li>
</ul>
-<p>The scope under which the new module should be created.</p>
+<p>Any additional options will be passed directly to the command, so <code>npm init foo
+--hello</code> will map to <code>npx create-foo --hello</code>.</p>
+<p>If the initializer is omitted (by just calling <code>npm init</code>), 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
+<code>-y</code>/<code>--yes</code> to skip the questionnaire altogether. If you pass <code>--scope</code>, it
+will create a scoped package.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="https://github.com/isaacs/init-package-json">https://github.com/isaacs/init-package-json</a></li>
@@ -48,5 +66,5 @@ defaults and not prompt you for any options.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-init &mdash; npm@5.6.0</p>
+<p id="footer">npm-init &mdash; npm@6.1.0</p>
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 @@
+<!doctype html>
+<html>
+ <title>npm-install-ci-test</title>
+ <meta charset="utf-8">
+ <link rel="stylesheet" type="text/css" href="../../static/style.css">
+ <link rel="canonical" href="https://www.npmjs.org/doc/cli/npm-install-ci-test.html">
+ <script async=true src="../../static/toc.js"></script>
+
+ <body>
+ <div id="wrapper">
+
+<h1>npm <a href="../cli/install-ci-test.html">install-ci-test</a></h1> <p>Install a project with a clean slate and run tests</p>
+<h2 id="synopsis">SYNOPSIS</h2>
+<pre><code>npm install-ci-test
+
+alias: npm cit
+</code></pre><h2 id="description">DESCRIPTION</h2>
+<p>This command runs an <code>npm ci</code> followed immediately by an <code>npm test</code>.</p>
+<h2 id="see-also">SEE ALSO</h2>
+<ul>
+<li><a href="../cli/npm-ci.html">npm-ci(1)</a></li>
+<li><a href="../cli/npm-test.html">npm-test(1)</a></li>
+</ul>
+
+</div>
+
+<table border=0 cellspacing=0 cellpadding=0 id=npmlogo>
+<tr><td style="width:180px;height:10px;background:rgb(237,127,127)" colspan=18>&nbsp;</td></tr>
+<tr><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td><td style="width:40px;height:10px;background:#fff" colspan=4>&nbsp;</td><td rowspan=4 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td><td colspan=6 style="width:60px;height:10px;background:#fff">&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=4>&nbsp;</td></tr>
+<tr><td colspan=2 style="width:20px;height:30px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=4 colspan=2>&nbsp;</td><td style="width:10px;height:20px;background:rgb(237,127,127)" rowspan=2>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:20px;height:10px;background:#fff" rowspan=3 colspan=2>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:#fff" rowspan=3>&nbsp;</td><td style="width:10px;height:10px;background:rgb(237,127,127)" rowspan=3>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff" rowspan=2>&nbsp;</td></tr>
+<tr><td style="width:10px;height:10px;background:#fff">&nbsp;</td></tr>
+<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
+<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
+</table>
+<p id="footer">npm-install-ci-test &mdash; npm@6.1.0</p>
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 <code>npm install</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-install-test &mdash; npm@5.6.0</p>
+<p id="footer">npm-install-test &mdash; npm@6.1.0</p>
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).</p>
<p> With the <code>--production</code> flag (or when the <code>NODE_ENV</code> environment variable
is set to <code>production</code>), npm will not install modules listed in
<code>devDependencies</code>.</p>
+<blockquote>
+<p>NOTE: The <code>--production</code> flag has no particular meaning when adding a
+ dependency to a project.</p>
+</blockquote>
</li>
<li><p><code>npm install &lt;folder&gt;</code>:</p>
<p> Install the package in the directory as a symlink in the current project.
@@ -281,11 +285,14 @@ being installed.</p>
<p>The <code>--no-shrinkwrap</code> argument, which will ignore an available
package lock or shrinkwrap file and use the package.json instead.</p>
<p>The <code>--no-package-lock</code> argument will prevent npm from creating a
-<code>package-lock.json</code> file.</p>
+<code>package-lock.json</code> file. When running with package-lock&#39;s disabled npm
+will not automatically prune your node modules when installing.</p>
<p>The <code>--nodedir=/path/to/node/source</code> argument will allow npm to find the
node source code so that npm can compile native modules.</p>
<p>The <code>--only={prod[uction]|dev[elopment]}</code> argument will cause either only
<code>devDependencies</code> or only non-<code>devDependencies</code> to be installed regardless of the <code>NODE_ENV</code>.</p>
+<p>The <code>--no-audit</code> argument can be used to disable sending of audit reports to
+the configured registries. See <code><a href="../cli/npm-audit.html">npm-audit(1)</a></code> for details on what is sent.</p>
<p>See <code><a href="../misc/npm-config.html">npm-config(7)</a></code>. Many of the configuration params have some
effect on installation, since that&#39;s most of what npm does.</p>
<h2 id="algorithm">ALGORITHM</h2>
@@ -344,6 +351,7 @@ affects a real use-case, it will be investigated.</p>
<ul>
<li><a href="../files/npm-folders.html">npm-folders(5)</a></li>
<li><a href="../cli/npm-update.html">npm-update(1)</a></li>
+<li><a href="../cli/npm-audit.html">npm-audit(1)</a></li>
<li><a href="../cli/npm-link.html">npm-link(1)</a></li>
<li><a href="../cli/npm-rebuild.html">npm-rebuild(1)</a></li>
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
@@ -369,5 +377,5 @@ affects a real use-case, it will be investigated.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-install &mdash; npm@5.6.0</p>
+<p id="footer">npm-install &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-link &mdash; npm@5.6.0</p>
+<p id="footer">npm-link &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-logout &mdash; npm@5.6.0</p>
+<p id="footer">npm-logout &mdash; npm@6.1.0</p>
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.</p>
limit the results to only the paths to the packages named. Note that
nested packages will <em>also</em> show the paths to the specified packages.
For example, running <code>npm ls promzard</code> in npm&#39;s source tree will show:</p>
-<pre><code>npm@5.6.0 /path/to/npm
+<pre><code>npm@6.1.0 /path/to/npm
ā””ā”€ā”¬ init-package-json@0.0.4
ā””ā”€ā”€ promzard@0.1.5
</code></pre><p>It will print out extraneous, missing, and invalid packages.</p>
@@ -68,7 +68,7 @@ project.</p>
<li>Default: false</li>
</ul>
<p>Display only the dependency tree for packages in <code>dependencies</code>.</p>
-<h3 id="dev">dev</h3>
+<h3 id="dev-development">dev / development</h3>
<ul>
<li>Type: Boolean</li>
<li>Default: false</li>
@@ -110,5 +110,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-ls &mdash; npm@5.6.0</p>
+<p id="footer">npm-ls &mdash; npm@6.1.0</p>
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.</li>
<li><code>package type</code> (when using <code>--long</code> / <code>-l</code>) tells you whether this package is
a <code>dependency</code> or a <code>devDependency</code>. Packages not included in <code>package.json</code>
are always marked <code>dependencies</code>.</li>
+<li>Red means there&#39;s a newer version matching your semver requirements, so you should update now.</li>
+<li>Yellow indicates that there&#39;s a newer version above your semver requirements (usually new major, or new 0.x minor) so proceed with caution.</li>
</ul>
<h3 id="an-example">An example</h3>
<pre><code>$ npm outdated
@@ -58,10 +60,9 @@ The installed committish might satisfy the dependency specifier (if it&#39;s
something immutable, like a commit SHA), or it might not, so <code>npm outdated</code> and
<code>npm update</code> 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.</li>
-<li><code>npm@3.5.2</code> is marked as &quot;wanted&quot;, but &quot;latest&quot; is <code>npm@3.5.1</code> because npm
-uses dist-tags to manage its <code>latest</code> and <code>next</code> release channels. <code>npm update</code>
-will install the <em>newest</em> version, but <code>npm install npm</code> (with no semver range)
-will install whatever&#39;s tagged as <code>latest</code>.</li>
+<li><a href="mailto:`npm@3.5.2">`npm@3.5.2</a><code>is marked as &quot;wanted&quot;, but &quot;latest&quot; is</code><a href="mailto:npm@3.5.1">npm@3.5.1</a><code>because npm
+uses dist-tags to manage its</code>latest<code>and</code>next<code>release channels.</code>npm update<code>will install the _newest_ version, but</code>npm install npm<code>(with no semver range)
+will install whatever&#39;s tagged as</code>latest`.</li>
<li><code>once</code> is just plain out of date. Reinstalling <code>node_modules</code> from scratch or
running <code>npm update</code> will bring it up to spec.</li>
</ul>
@@ -116,5 +117,5 @@ project.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-outdated &mdash; npm@5.6.0</p>
+<p id="footer">npm-outdated &mdash; npm@6.1.0</p>
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 <code>--otp</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-owner &mdash; npm@5.6.0</p>
+<p id="footer">npm-owner &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-pack &mdash; npm@5.6.0</p>
+<p id="footer">npm-pack &mdash; npm@6.1.0</p>
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:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-ping &mdash; npm@5.6.0</p>
+<p id="footer">npm-ping &mdash; npm@6.1.0</p>
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 <code>-g</code> is also specified.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prefix &mdash; npm@5.6.0</p>
+<p id="footer">npm-prefix &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-profile &mdash; npm@5.6.0</p>
+<p id="footer">npm-profile &mdash; npm@6.1.0</p>
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 @@
<h1><a href="../cli/npm-prune.html">npm-prune</a></h1> <p>Remove extraneous packages</p>
<h2 id="synopsis">SYNOPSIS</h2>
-<pre><code>npm prune [[&lt;@scope&gt;/]&lt;pkg&gt;...] [--production]
+<pre><code>npm prune [[&lt;@scope&gt;/]&lt;pkg&gt;...] [--production] [--dry-run] [--json]
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>This command removes &quot;extraneous&quot; packages. If a package name is
provided, then only packages matching one of the supplied names are
@@ -20,8 +20,16 @@ removed.</p>
package&#39;s dependencies list.</p>
<p>If the <code>--production</code> flag is specified or the <code>NODE_ENV</code> environment
variable is set to <code>production</code>, this command will remove the packages
-specified in your <code>devDependencies</code>. Setting <code>--production=false</code> will
+specified in your <code>devDependencies</code>. Setting <code>--no-production</code> will
negate <code>NODE_ENV</code> being set to <code>production</code>.</p>
+<p>If the <code>--dry-run</code> flag is used then no changes will actually be made.</p>
+<p>If the <code>--json</code> flag is used then the changes <code>npm prune</code> made (or would
+have made with <code>--dry-run</code>) are printed as a JSON object.</p>
+<p>In normal operation with package-locks enabled, extraneous modules are
+pruned automatically when modules are installed and you&#39;ll only need
+this command with the <code>--production</code> flag.</p>
+<p>If you&#39;ve disabled package-locks then extraneous modules will not be removed
+and it&#39;s up to you to run <code>npm prune</code> from time-to-time to remove them.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-uninstall.html">npm-uninstall(1)</a></li>
@@ -40,5 +48,5 @@ negate <code>NODE_ENV</code> being set to <code>production</code>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-prune &mdash; npm@5.6.0</p>
+<p id="footer">npm-prune &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-publish.html b/deps/npm/html/doc/cli/npm-publish.html
index c8a0b691e1..5a3c8b8f16 100644
--- a/deps/npm/html/doc/cli/npm-publish.html
+++ b/deps/npm/html/doc/cli/npm-publish.html
@@ -85,5 +85,5 @@ packs them into a tarball to be uploaded to the registry.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-publish &mdash; npm@5.6.0</p>
+<p id="footer">npm-publish &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-rebuild.html b/deps/npm/html/doc/cli/npm-rebuild.html
index 136192342a..4361ac43c1 100644
--- a/deps/npm/html/doc/cli/npm-rebuild.html
+++ b/deps/npm/html/doc/cli/npm-rebuild.html
@@ -35,5 +35,5 @@ the new binary.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-rebuild &mdash; npm@5.6.0</p>
+<p id="footer">npm-rebuild &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-repo.html b/deps/npm/html/doc/cli/npm-repo.html
index 12e6b1748e..e11513ceb0 100644
--- a/deps/npm/html/doc/cli/npm-repo.html
+++ b/deps/npm/html/doc/cli/npm-repo.html
@@ -41,5 +41,5 @@ a <code>package.json</code> in the current folder and use the <code>name</code>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-repo &mdash; npm@5.6.0</p>
+<p id="footer">npm-repo &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-restart.html b/deps/npm/html/doc/cli/npm-restart.html
index 4f9aacecf1..918d331de4 100644
--- a/deps/npm/html/doc/cli/npm-restart.html
+++ b/deps/npm/html/doc/cli/npm-restart.html
@@ -53,5 +53,5 @@ behavior will be accompanied by an increase in major version number</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-restart &mdash; npm@5.6.0</p>
+<p id="footer">npm-restart &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-root.html b/deps/npm/html/doc/cli/npm-root.html
index a4e9aa9bd6..c97d05bdcd 100644
--- a/deps/npm/html/doc/cli/npm-root.html
+++ b/deps/npm/html/doc/cli/npm-root.html
@@ -35,5 +35,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-root &mdash; npm@5.6.0</p>
+<p id="footer">npm-root &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-run-script.html b/deps/npm/html/doc/cli/npm-run-script.html
index 489fbccb09..c3ed88b8f1 100644
--- a/deps/npm/html/doc/cli/npm-run-script.html
+++ b/deps/npm/html/doc/cli/npm-run-script.html
@@ -59,6 +59,9 @@ not found in the <code>PATH</code>.</p>
<p>If you try to run a script without having a <code>node_modules</code> directory and it fails,
you will be given a warning to run <code>npm install</code>, just in case you&#39;ve forgotten.</p>
<p>You can use the <code>--silent</code> flag to prevent showing <code>npm ERR!</code> output on error.</p>
+<p>You can use the <code>--if-present</code> 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.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../misc/npm-scripts.html">npm-scripts(7)</a></li>
@@ -80,5 +83,5 @@ you will be given a warning to run <code>npm install</code>, just in case you&#3
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-run-script &mdash; npm@5.6.0</p>
+<p id="footer">npm-run-script &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-search.html b/deps/npm/html/doc/cli/npm-search.html
index df759928a7..30a47caf7d 100644
--- a/deps/npm/html/doc/cli/npm-search.html
+++ b/deps/npm/html/doc/cli/npm-search.html
@@ -109,5 +109,5 @@ setting.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-search &mdash; npm@5.6.0</p>
+<p id="footer">npm-search &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-shrinkwrap.html b/deps/npm/html/doc/cli/npm-shrinkwrap.html
index 629f5b69a7..b4a740e413 100644
--- a/deps/npm/html/doc/cli/npm-shrinkwrap.html
+++ b/deps/npm/html/doc/cli/npm-shrinkwrap.html
@@ -41,5 +41,5 @@ of package locks in npm, see <a href="../files/npm-package-locks.html">npm-packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-shrinkwrap &mdash; npm@5.6.0</p>
+<p id="footer">npm-shrinkwrap &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-star.html b/deps/npm/html/doc/cli/npm-star.html
index a957ff479f..ef57f2254c 100644
--- a/deps/npm/html/doc/cli/npm-star.html
+++ b/deps/npm/html/doc/cli/npm-star.html
@@ -36,5 +36,5 @@ a vaguely positive way to show that you care.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-star &mdash; npm@5.6.0</p>
+<p id="footer">npm-star &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-stars.html b/deps/npm/html/doc/cli/npm-stars.html
index ff6dbfb314..9b28be20e0 100644
--- a/deps/npm/html/doc/cli/npm-stars.html
+++ b/deps/npm/html/doc/cli/npm-stars.html
@@ -36,5 +36,5 @@ you will most certainly enjoy this command.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-stars &mdash; npm@5.6.0</p>
+<p id="footer">npm-stars &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-start.html b/deps/npm/html/doc/cli/npm-start.html
index 0c0dfb3ae1..258673ccfd 100644
--- a/deps/npm/html/doc/cli/npm-start.html
+++ b/deps/npm/html/doc/cli/npm-start.html
@@ -39,5 +39,5 @@ more details.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-start &mdash; npm@5.6.0</p>
+<p id="footer">npm-start &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-stop.html b/deps/npm/html/doc/cli/npm-stop.html
index 9c04332e68..88ce21fd9d 100644
--- a/deps/npm/html/doc/cli/npm-stop.html
+++ b/deps/npm/html/doc/cli/npm-stop.html
@@ -34,5 +34,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-stop &mdash; npm@5.6.0</p>
+<p id="footer">npm-stop &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-team.html b/deps/npm/html/doc/cli/npm-team.html
index 81d74fa0a7..9c89f72947 100644
--- a/deps/npm/html/doc/cli/npm-team.html
+++ b/deps/npm/html/doc/cli/npm-team.html
@@ -39,6 +39,9 @@ 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.</p>
</li>
+<li><p>edit:
+Edit a current team.</p>
+</li>
</ul>
<h2 id="details">DETAILS</h2>
<p><code>npm team</code> always operates directly on the current registry, configurable from
@@ -67,5 +70,5 @@ use the <code>npm access</code> command to grant or revoke the appropriate permi
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-team &mdash; npm@5.6.0</p>
+<p id="footer">npm-team &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-test.html b/deps/npm/html/doc/cli/npm-test.html
index 280e69f3a1..4abe456952 100644
--- a/deps/npm/html/doc/cli/npm-test.html
+++ b/deps/npm/html/doc/cli/npm-test.html
@@ -36,5 +36,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-test &mdash; npm@5.6.0</p>
+<p id="footer">npm-test &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-token.html b/deps/npm/html/doc/cli/npm-token.html
index 8ec2f5fbec..c39e39779a 100644
--- a/deps/npm/html/doc/cli/npm-token.html
+++ b/deps/npm/html/doc/cli/npm-token.html
@@ -73,4 +73,4 @@ This will NOT accept the truncated token found in <code>npm token list</code> ou
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-token &mdash; npm@5.6.0</p>
+<p id="footer">npm-token &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-uninstall.html b/deps/npm/html/doc/cli/npm-uninstall.html
index dd430d0796..9a6b4ec1d7 100644
--- a/deps/npm/html/doc/cli/npm-uninstall.html
+++ b/deps/npm/html/doc/cli/npm-uninstall.html
@@ -63,5 +63,5 @@ npm uninstall lodash --no-save
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-uninstall &mdash; npm@5.6.0</p>
+<p id="footer">npm-uninstall &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-unpublish.html b/deps/npm/html/doc/cli/npm-unpublish.html
index 721de2828f..72e84ce862 100644
--- a/deps/npm/html/doc/cli/npm-unpublish.html
+++ b/deps/npm/html/doc/cli/npm-unpublish.html
@@ -29,7 +29,7 @@ package again, a new version number must be used.</p>
<p>With the default registry (<code>registry.npmjs.org</code>), 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.</p>
+contact <a href="mailto:support@npmjs.com">support@npmjs.com</a>.</p>
<p>The scope is optional and follows the usual rules for <code><a href="../misc/npm-scope.html">npm-scope(7)</a></code>.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
@@ -51,5 +51,5 @@ contact support@npmjs.com.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-unpublish &mdash; npm@5.6.0</p>
+<p id="footer">npm-unpublish &mdash; npm@6.1.0</p>
diff --git a/deps/npm/html/doc/cli/npm-update.html b/deps/npm/html/doc/cli/npm-update.html
index ddaf4104df..5b3f2a585d 100644
--- a/deps/npm/html/doc/cli/npm-update.html
+++ b/deps/npm/html/doc/cli/npm-update.html
@@ -24,12 +24,15 @@ as well.</p>
packages.</p>
<p>If no package name is specified, all packages in the specified location (global
or local) will be updated.</p>
-<p>As of <code>npm@2.6.1</code>, the <code>npm update</code> will only inspect top-level packages.
-Prior versions of <code>npm</code> would also recursively inspect all dependencies.
-To get the old behavior, use <code>npm --depth 9999 update</code>.</p>
+<p>As of <a href="mailto:`npm@2.6.1">`npm@2.6.1</a><code>, the</code>npm update<code>will only inspect top-level packages.
+Prior versions of</code>npm<code>would also recursively inspect all dependencies.
+To get the old behavior, use</code>npm --depth 9999 update`.</p>
+<p>As of <a href="mailto:`npm@5.0.0">`npm@5.0.0</a><code>, the</code>npm update<code>will change</code>package.json<code>to save the
+new version as the minimum required dependency. To get the old behavior,
+use</code>npm update --no-save`.</p>
<h2 id="examples">EXAMPLES</h2>
-<p>IMPORTANT VERSION NOTE: these examples assume <code>npm@2.6.1</code> or later. For
-older versions of <code>npm</code>, you must specify <code>--depth 0</code> to get the behavior
+<p>IMPORTANT VERSION NOTE: these examples assume <a href="mailto:`npm@2.6.1">`npm@2.6.1</a><code>or later. For
+older versions of</code>npm<code>, you must specify</code>--depth 0` to get the behavior
described below.</p>
<p>For the examples below, assume that the current package is <code>app</code> and it depends
on dependencies, <code>dep1</code> (<code>dep2</code>, .. etc.). The published versions of <code>dep1</code> are:</p>
@@ -52,45 +55,28 @@ on dependencies, <code>dep1</code> (<code>dep2</code>, .. etc.). The published
<pre><code>&quot;dependencies&quot;: {
&quot;dep1&quot;: &quot;^1.1.1&quot;
}
-</code></pre><p>Then <code>npm update</code> will install <code>dep1@1.2.2</code>, because <code>1.2.2</code> is <code>latest</code> and
-<code>1.2.2</code> satisfies <code>^1.1.1</code>.</p>
+</code></pre><p>Then <code>npm update</code> will install <a href="mailto:`dep1@1.2.2">`dep1@1.2.2</a><code>, because</code>1.2.2<code>is</code>latest<code>and</code>1.2.2<code>satisfies</code>^1.1.1`.</p>
<h3 id="tilde-dependencies">Tilde Dependencies</h3>
<p>However, if <code>app</code>&#39;s <code>package.json</code> contains:</p>
<pre><code>&quot;dependencies&quot;: {
&quot;dep1&quot;: &quot;~1.1.1&quot;
}
-</code></pre><p>In this case, running <code>npm update</code> will install <code>dep1@1.1.2</code>. Even though the <code>latest</code>
-tag points to <code>1.2.2</code>, this version does not satisfy <code>~1.1.1</code>, which is equivalent
-to <code>&gt;=1.1.1 &lt;1.2.0</code>. So the highest-sorting version that satisfies <code>~1.1.1</code> is used,
-which is <code>1.1.2</code>.</p>
+</code></pre><p>In this case, running <code>npm update</code> will install <a href="mailto:`dep1@1.1.2">`dep1@1.1.2</a><code>. Even though the</code>latest<code>tag points to</code>1.2.2<code>, this version does not satisfy</code>~1.1.1<code>, which is equivalent
+to</code>&gt;=1.1.1 &lt;1.2.0<code>. So the highest-sorting version that satisfies</code>~1.1.1<code>is used,
+which is</code>1.1.2`.</p>
<h3 id="caret-dependencies-below-1-0-0">Caret Dependencies below 1.0.0</h3>
<p>Suppose <code>app</code> has a caret dependency on a version below <code>1.0.0</code>, for example:</p>
<pre><code>&quot;dependencies&quot;: {
&quot;dep1&quot;: &quot;^0.2.0&quot;
}
-</code></pre><p><code>npm update</code> will install <code>dep1@0.2.0</code>, because there are no other
-versions which satisfy <code>^0.2.0</code>.</p>
+</code></pre><p><code>npm update</code> will install <a href="mailto:`dep1@0.2.0">`dep1@0.2.0</a><code>, because there are no other
+versions which satisfy</code>^0.2.0`.</p>
<p>If the dependence were on <code>^0.4.0</code>:</p>
<pre><code>&quot;dependencies&quot;: {
&quot;dep1&quot;: &quot;^0.4.0&quot;
}
-</code></pre><p>Then <code>npm update</code> will install <code>dep1@0.4.1</code>, because that is the highest-sorting
-version that satisfies <code>^0.4.0</code> (<code>&gt;= 0.4.0 &lt;0.5.0</code>)</p>
-<h3 id="recording-updates-with-save-">Recording Updates with <code>--save</code></h3>
-<p>When you want to update a package and save the new version as
-the minimum required dependency in <code>package.json</code>, you can use
-<code>npm update -S</code> or <code>npm update --save</code>. For example if
-<code>package.json</code> contains:</p>
-<pre><code>&quot;dependencies&quot;: {
- &quot;dep1&quot;: &quot;^1.1.1&quot;
-}
-</code></pre><p>Then <code>npm update --save</code> will install <code>dep1@1.2.2</code> (i.e., <code>latest</code>),
-and <code>package.json</code> will be modified:</p>
-<pre><code>&quot;dependencies&quot;: {
- &quot;dep1&quot;: &quot;^1.2.2&quot;
-}
-</code></pre><p>Note that <code>npm</code> will only write an updated version to <code>package.json</code>
-if it installs a new package.</p>
+</code></pre><p>Then <code>npm update</code> will install <a href="mailto:`dep1@0.4.1">`dep1@0.4.1</a><code>, because that is the highest-sorting
+version that satisfies</code>^0.4.0<code>(</code>&gt;= 0.4.0 &lt;0.5.0`)</p>
<h3 id="updating-globally-installed-packages">Updating Globally-Installed Packages</h3>
<p><code>npm update -g</code> will apply the <code>update</code> action to each globally installed
package that is <code>outdated</code> -- that is, has a version that is different from
@@ -118,5 +104,5 @@ be <em>downgraded</em>.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-update &mdash; npm@5.6.0</p>
+<p id="footer">npm-update &mdash; npm@6.1.0</p>
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 @@
&#39;npm ls&#39; to inspect current package/dependency versions
</code></pre><h2 id="description">DESCRIPTION</h2>
<p>Run this in a package directory to bump the version and write the new
-data back to <code>package.json</code> and, if present, <code>npm-shrinkwrap.json</code>.</p>
+data back to <code>package.json</code>, <code>package-lock.json</code>, and, if present, <code>npm-shrinkwrap.json</code>.</p>
<p>The <code>newversion</code> argument should be a valid semver string, a
valid second argument to <a href="https://github.com/npm/node-semver#functions">semver.inc</a> (one of <code>patch</code>, <code>minor</code>, <code>major</code>,
<code>prepatch</code>, <code>preminor</code>, <code>premajor</code>, <code>prerelease</code>), or <code>from-git</code>. In the second case,
@@ -120,5 +120,5 @@ to the same value as the current version.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-version &mdash; npm@5.6.0</p>
+<p id="footer">npm-version &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-view &mdash; npm@5.6.0</p>
+<p id="footer">npm-view &mdash; npm@6.1.0</p>
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 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-whoami &mdash; npm@5.6.0</p>
+<p id="footer">npm-whoami &mdash; npm@6.1.0</p>
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 @@
<h2 id="synopsis">SYNOPSIS</h2>
<pre><code>npm &lt;command&gt; [args]
</code></pre><h2 id="version">VERSION</h2>
-<p>5.6.0</p>
+<p>6.1.0</p>
<h2 id="description">DESCRIPTION</h2>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
@@ -79,7 +79,7 @@ Use the <code>npm publish</code> command to upload your code to the registry.</l
<ul>
<li>Command line switches:<br>Set a config with <code>--key val</code>. All keys take a value, even if they
are booleans (the config parser doesn&#39;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 <code>true</code>.</li>
<li>Environment Variables:<br>Set any config by prefixing the name in an environment variable with
<code>npm_config_</code>. For example, <code>export npm_config_key=val</code>.</li>
@@ -126,7 +126,7 @@ will no doubt tell you to put the output in a gist or email.</p>
<p><a href="http://blog.izs.me/">Isaac Z. Schlueter</a> ::
<a href="https://github.com/isaacs/">isaacs</a> ::
<a href="http://twitter.com/izs">@izs</a> ::
-<a href="&#109;&#97;&#105;&#x6c;&#x74;&#x6f;&#x3a;&#105;&#x40;&#105;&#x7a;&#115;&#46;&#109;&#x65;">&#105;&#x40;&#105;&#x7a;&#115;&#46;&#109;&#x65;</a></p>
+<a href="mailto:&#x69;&#x40;&#105;&#122;&#115;&#46;&#109;&#x65;">&#x69;&#x40;&#105;&#122;&#115;&#46;&#109;&#x65;</a></p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-help.html">npm-help(1)</a></li>
@@ -150,5 +150,5 @@ will no doubt tell you to put the output in a gist or email.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm &mdash; npm@5.6.0</p>
+<p id="footer">npm &mdash; npm@6.1.0</p>
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 <code>npm test</code>.)</p>
<p>Man pages are not installed on Windows systems.</p>
<h3 id="cache">Cache</h3>
<p>See <code><a href="../cli/npm-cache.html">npm-cache(1)</a></code>. Cache files are stored in <code>~/.npm</code> on Posix, or
-<code>~/npm-cache</code> on Windows.</p>
+<code>%AppData%/npm-cache</code> on Windows.</p>
<p>This is controlled by the <code>cache</code> configuration param.</p>
<h3 id="temp-files">Temp Files</h3>
<p>Temporary files are stored by default in the folder specified by the
@@ -135,15 +135,15 @@ highest level possible, below the localized &quot;target&quot; folder.</p>
`-- baz (1.2.3) &lt;---[D]
`-- node_modules
`-- quux (3.2.0) &lt;---[E]
-</code></pre><p>Since foo depends directly on <code>bar@1.2.3</code> and <code>baz@1.2.3</code>, those are
-installed in foo&#39;s <code>node_modules</code> folder.</p>
+</code></pre><p>Since foo depends directly on <a href="mailto:`bar@1.2.3">`bar@1.2.3</a><code>and</code><a href="mailto:baz@1.2.3">baz@1.2.3</a><code>, those are
+installed in foo&#39;s</code>node_modules` folder.</p>
<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&#39;s dependency on <code>blerg@1.x</code>,
+parent installation of blerg satisfies bar&#39;s dependency on <a href="mailto:`blerg@1.x">`blerg@1.x</a>`,
it does not install another copy under [B].</p>
<p>Bar [B] also has dependencies on baz and asdf, so those are installed in
-bar&#39;s <code>node_modules</code> folder. Because it depends on <code>baz@2.x</code>, it cannot
-re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
+bar&#39;s <code>node_modules</code> folder. Because it depends on <a href="mailto:`baz@2.x">`baz@2.x</a><code>, it cannot
+re-use the</code><a href="mailto:baz@1.2.3">baz@1.2.3</a><code>installed in the parent</code>node_modules` folder [D],
and must install its own copy [C].</p>
<p>Underneath bar, the <code>baz -&gt; quux -&gt; bar</code> dependency creates a cycle.
However, because bar is already in quux&#39;s ancestry [B], it does not
@@ -181,5 +181,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-folders &mdash; npm@5.6.0</p>
+<p id="footer">npm-folders &mdash; npm@6.1.0</p>
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 <code>npm test</code>.)</p>
<p>Man pages are not installed on Windows systems.</p>
<h3 id="cache">Cache</h3>
<p>See <code><a href="../cli/npm-cache.html">npm-cache(1)</a></code>. Cache files are stored in <code>~/.npm</code> on Posix, or
-<code>~/npm-cache</code> on Windows.</p>
+<code>%AppData%/npm-cache</code> on Windows.</p>
<p>This is controlled by the <code>cache</code> configuration param.</p>
<h3 id="temp-files">Temp Files</h3>
<p>Temporary files are stored by default in the folder specified by the
@@ -135,15 +135,15 @@ highest level possible, below the localized &quot;target&quot; folder.</p>
`-- baz (1.2.3) &lt;---[D]
`-- node_modules
`-- quux (3.2.0) &lt;---[E]
-</code></pre><p>Since foo depends directly on <code>bar@1.2.3</code> and <code>baz@1.2.3</code>, those are
-installed in foo&#39;s <code>node_modules</code> folder.</p>
+</code></pre><p>Since foo depends directly on <a href="mailto:`bar@1.2.3">`bar@1.2.3</a><code>and</code><a href="mailto:baz@1.2.3">baz@1.2.3</a><code>, those are
+installed in foo&#39;s</code>node_modules` folder.</p>
<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&#39;s dependency on <code>blerg@1.x</code>,
+parent installation of blerg satisfies bar&#39;s dependency on <a href="mailto:`blerg@1.x">`blerg@1.x</a>`,
it does not install another copy under [B].</p>
<p>Bar [B] also has dependencies on baz and asdf, so those are installed in
-bar&#39;s <code>node_modules</code> folder. Because it depends on <code>baz@2.x</code>, it cannot
-re-use the <code>baz@1.2.3</code> installed in the parent <code>node_modules</code> folder [D],
+bar&#39;s <code>node_modules</code> folder. Because it depends on <a href="mailto:`baz@2.x">`baz@2.x</a><code>, it cannot
+re-use the</code><a href="mailto:baz@1.2.3">baz@1.2.3</a><code>installed in the parent</code>node_modules` folder [D],
and must install its own copy [C].</p>
<p>Underneath bar, the <code>baz -&gt; quux -&gt; bar</code> dependency creates a cycle.
However, because bar is already in quux&#39;s ancestry [B], it does not
@@ -181,5 +181,5 @@ cannot be found elsewhere. See <code><a href="../files/package.json.html">packa
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-folders &mdash; npm@5.6.0</p>
+<p id="footer">npm-folders &mdash; npm@6.1.0</p>
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.</p>
<p>A lot of the behavior described in this document is affected by the config
settings described in <code><a href="../misc/npm-config.html">npm-config(7)</a></code>.</p>
<h2 id="name">name</h2>
-<p>The <em>most</em> important things in your package.json are the name and version fields.
-Those are actually required, and your package won&#39;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.</p>
+<p>If you plan to publish your package, the <em>most</em> 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&#39;t
+plan to publish your package, the name and version fields are optional.</p>
<p>The name is what your thing is called.</p>
<p>Some rules:</p>
<ul>
@@ -45,11 +45,11 @@ already, before you get too attached to it. <a href="https://www.npmjs.com/">htt
<p>A name can be optionally prefixed by a scope, e.g. <code>@myorg/mypackage</code>. See
<code><a href="../misc/npm-scope.html">npm-scope(7)</a></code> for more detail.</p>
<h2 id="version">version</h2>
-<p>The <em>most</em> important things in your package.json are the name and version fields.
-Those are actually required, and your package won&#39;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.</p>
+<p>If you plan to publish your package, the <em>most</em> 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&#39;t
+plan to publish your package, the name and version fields are optional.</p>
<p>Version must be parseable by
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p>
@@ -62,7 +62,9 @@ package, as it&#39;s listed in <code>npm search</code>.</p>
discover your package as it&#39;s listed in <code>npm search</code>.</p>
<h2 id="homepage">homepage</h2>
<p>The url to the project homepage.</p>
-<h2 id="bugs">bugs</h2>
+<p>Example:</p>
+<pre><code>&quot;homepage&quot;: &quot;https://github.com/owner/project#readme&quot;
+</code></pre><h2 id="bugs">bugs</h2>
<p>The url to your project&#39;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.</p>
@@ -129,13 +131,14 @@ is an object with a &quot;name&quot; field and optionally &quot;url&quot; and &q
</code></pre><p>Both email and url are optional either way.</p>
<p>npm also sets a top-level &quot;maintainers&quot; field with your npm user info.</p>
<h2 id="files">files</h2>
-<p>The optional &quot;files&quot; field is an array of file patterns that describes
+<p>The optional <code>files</code> 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.).</p>
+dependency. File patterns follow a similar syntax to <code>.gitignore</code>, but
+reversed: including a file, directory, or glob pattern (<code>*</code>, <code>**/*</code>, and such)
+will make it so that file is included in the tarball when it&#39;s packed. Omitting
+the field will make it default to <code>[&quot;*&quot;]</code>, which means it will include all files.</p>
+<p>Some special files and directories are also included or excluded regardless of
+whether they exist in the <code>files</code> array (see below).</p>
<p>You can also provide a <code>.npmignore</code> 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 &quot;files&quot; field, but in
@@ -179,6 +182,10 @@ That is, if your package is named <code>foo</code>, and a user installs it, and
<p>This should be a module ID relative to the root of your package folder.</p>
<p>For most modules, it makes the most sense to have a main script and often not
much else.</p>
+<h2 id="browser">browser</h2>
+<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&#39;t available in Node.js modules. (e.g. <code>window</code>)</p>
<h2 id="bin">bin</h2>
<p>A lot of packages have one or more executable files that they&#39;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.</p>
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 &quot;latest&quot;, published
to the global public registry or that a scoped module is private by default.</p>
-<p>Any config values can be overridden, but of course only &quot;tag&quot;, &quot;registry&quot; and
-&quot;access&quot; probably matter for the purposes of publishing.</p>
+<p>Any config values can be overridden, but only &quot;tag&quot;, &quot;registry&quot; and &quot;access&quot;
+probably matter for the purposes of publishing.</p>
<p>See <code><a href="../misc/npm-config.html">npm-config(7)</a></code> to see the list of config options that can be
overridden.</p>
<h2 id="default-values">DEFAULT VALUES</h2>
@@ -603,5 +610,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">package.json &mdash; npm@5.6.0</p>
+<p id="footer">package.json &mdash; npm@6.1.0</p>
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 <code>npm install A</code> will install:</p>
<pre><code>A@0.1.0
`-- B@0.0.1
`-- C@0.0.1
-</code></pre><p>However, if B@0.0.2 is published, then a fresh <code>npm install A</code> will
+</code></pre><p>However, if <a href="mailto:B@0.0.2">B@0.0.2</a> is published, then a fresh <code>npm install A</code> will
install:</p>
<pre><code>A@0.1.0
`-- B@0.0.2
@@ -61,7 +61,7 @@ install:</p>
</code></pre><p>assuming the new version did not modify B&#39;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&#39;s author and B&#39;s
+could specify a dependency on <a href="mailto:B@0.0.1">B@0.0.1</a>. However, if A&#39;s author and B&#39;s
author are not the same person, there&#39;s no way for A&#39;s author to say
that he or she does not want to pull in newly published versions of C
when B hasn&#39;t changed at all.</p>
@@ -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 <code>node_modules</code>, so you can notice
if any transitive dependencies were updated, hoisted, etc.</p>
+<h3 id="resolving-lockfile-conflicts">Resolving lockfile conflicts</h3>
+<p>Occasionally, two separate npm install will create package locks that cause
+merge conflicts in source control systems. As of <a href="mailto:`npm@5.7.0">`npm@5.7.0</a><code>, these conflicts
+can be resolved by manually fixing any</code>package.json<code>conflicts, and then
+running</code>npm install [--package-lock-only]<code>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</code>--package-lock-only<code>is provided, it will do this without also modifying your
+local</code>node_modules/`.</p>
+<p>To make this process seamless on git, consider installing
+<a href="https://npm.im/npm-merge-driver"><code>npm-merge-driver</code></a>, which will teach git how
+to do this itself without any user interaction. In short: <code>$ npx
+npm-merge-driver install -g</code> will let you do this, and even works with
+<a href="mailto:pre-`npm@5.7.0">pre-`npm@5.7.0</a><code>versions of npm 5, albeit a bit more noisily. Note that if</code>package.json<code>itself conflicts, you will have to resolve that by hand and run</code>npm install` manually, even with the merge driver.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527">https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527</a></li>
@@ -145,4 +158,4 @@ if any transitive dependencies were updated, hoisted, etc.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-package-locks &mdash; npm@5.6.0</p>
+<p id="footer">npm-package-locks &mdash; npm@6.1.0</p>
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 <a href="../files/package-lock.json.html">package-lock.js
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-shrinkwrap.json &mdash; npm@5.6.0</p>
+<p id="footer">npm-shrinkwrap.json &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npmrc &mdash; npm@5.6.0</p>
+<p id="footer">npmrc &mdash; npm@6.1.0</p>
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.</p>
<p>All optional dependencies should be included even if they&#39;re uninstallable
on the current platform.</p>
+<h4 id="requires">requires</h4>
+<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
+<code>dependencies</code> or in a level higher than us.</p>
<h4 id="dependencies">dependencies</h4>
<p>The dependencies of this dependency, exactly as at the top level.</p>
<h2 id="see-also">SEE ALSO</h2>
<ul>
<li><a href="../cli/npm-shrinkwrap.html">npm-shrinkwrap(1)</a></li>
<li><a href="../files/npm-shrinkwrap.json.html">npm-shrinkwrap.json(5)</a></li>
+<li><a href="../files/npm-package-locks.html">npm-package-locks(5)</a></li>
<li><a href="../files/package.json.html">package.json(5)</a></li>
<li><a href="../cli/npm-install.html">npm-install(1)</a></li>
</ul>
@@ -124,4 +130,4 @@ on the current platform.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">package-lock.json &mdash; npm@5.6.0</p>
+<p id="footer">package-lock.json &mdash; npm@6.1.0</p>
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.</p>
<p>A lot of the behavior described in this document is affected by the config
settings described in <code><a href="../misc/npm-config.html">npm-config(7)</a></code>.</p>
<h2 id="name">name</h2>
-<p>The <em>most</em> important things in your package.json are the name and version fields.
-Those are actually required, and your package won&#39;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.</p>
+<p>If you plan to publish your package, the <em>most</em> 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&#39;t
+plan to publish your package, the name and version fields are optional.</p>
<p>The name is what your thing is called.</p>
<p>Some rules:</p>
<ul>
@@ -45,11 +45,11 @@ already, before you get too attached to it. <a href="https://www.npmjs.com/">htt
<p>A name can be optionally prefixed by a scope, e.g. <code>@myorg/mypackage</code>. See
<code><a href="../misc/npm-scope.html">npm-scope(7)</a></code> for more detail.</p>
<h2 id="version">version</h2>
-<p>The <em>most</em> important things in your package.json are the name and version fields.
-Those are actually required, and your package won&#39;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.</p>
+<p>If you plan to publish your package, the <em>most</em> 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&#39;t
+plan to publish your package, the name and version fields are optional.</p>
<p>Version must be parseable by
<a href="https://github.com/isaacs/node-semver">node-semver</a>, which is bundled
with npm as a dependency. (<code>npm install semver</code> to use it yourself.)</p>
@@ -62,7 +62,9 @@ package, as it&#39;s listed in <code>npm search</code>.</p>
discover your package as it&#39;s listed in <code>npm search</code>.</p>
<h2 id="homepage">homepage</h2>
<p>The url to the project homepage.</p>
-<h2 id="bugs">bugs</h2>
+<p>Example:</p>
+<pre><code>&quot;homepage&quot;: &quot;https://github.com/owner/project#readme&quot;
+</code></pre><h2 id="bugs">bugs</h2>
<p>The url to your project&#39;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.</p>
@@ -129,13 +131,14 @@ is an object with a &quot;name&quot; field and optionally &quot;url&quot; and &q
</code></pre><p>Both email and url are optional either way.</p>
<p>npm also sets a top-level &quot;maintainers&quot; field with your npm user info.</p>
<h2 id="files">files</h2>
-<p>The optional &quot;files&quot; field is an array of file patterns that describes
+<p>The optional <code>files</code> 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.).</p>
+dependency. File patterns follow a similar syntax to <code>.gitignore</code>, but
+reversed: including a file, directory, or glob pattern (<code>*</code>, <code>**/*</code>, and such)
+will make it so that file is included in the tarball when it&#39;s packed. Omitting
+the field will make it default to <code>[&quot;*&quot;]</code>, which means it will include all files.</p>
+<p>Some special files and directories are also included or excluded regardless of
+whether they exist in the <code>files</code> array (see below).</p>
<p>You can also provide a <code>.npmignore</code> 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 &quot;files&quot; field, but in
@@ -179,6 +182,10 @@ That is, if your package is named <code>foo</code>, and a user installs it, and
<p>This should be a module ID relative to the root of your package folder.</p>
<p>For most modules, it makes the most sense to have a main script and often not
much else.</p>
+<h2 id="browser">browser</h2>
+<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&#39;t available in Node.js modules. (e.g. <code>window</code>)</p>
<h2 id="bin">bin</h2>
<p>A lot of packages have one or more executable files that they&#39;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.</p>
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 &quot;latest&quot;, published
to the global public registry or that a scoped module is private by default.</p>
-<p>Any config values can be overridden, but of course only &quot;tag&quot;, &quot;registry&quot; and
-&quot;access&quot; probably matter for the purposes of publishing.</p>
+<p>Any config values can be overridden, but only &quot;tag&quot;, &quot;registry&quot; and &quot;access&quot;
+probably matter for the purposes of publishing.</p>
<p>See <code><a href="../misc/npm-config.html">npm-config(7)</a></code> to see the list of config options that can be
overridden.</p>
<h2 id="default-values">DEFAULT VALUES</h2>
@@ -603,5 +610,5 @@ ignored.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">package.json &mdash; npm@5.6.0</p>
+<p id="footer">package.json &mdash; npm@6.1.0</p>
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 @@
<p>Set access level on published packages</p>
<h3 id="npm-adduser-1-"><a href="cli/npm-adduser.html">npm-adduser(1)</a></h3>
<p>Add a registry user account</p>
+<h3 id="npm-audit-1-"><a href="cli/npm-audit.html">npm-audit(1)</a></h3>
+<p>Run a security audit</p>
<h3 id="npm-bin-1-"><a href="cli/npm-bin.html">npm-bin(1)</a></h3>
<p>Display npm bin folder</p>
<h3 id="npm-bugs-1-"><a href="cli/npm-bugs.html">npm-bugs(1)</a></h3>
@@ -30,6 +32,8 @@
<p>REMOVED</p>
<h3 id="npm-cache-1-"><a href="cli/npm-cache.html">npm-cache(1)</a></h3>
<p>Manipulates packages cache</p>
+<h3 id="npm-ci-1-"><a href="cli/npm-ci.html">npm-ci(1)</a></h3>
+<p>Install a project with a clean slate</p>
<h3 id="npm-completion-1-"><a href="cli/npm-completion.html">npm-completion(1)</a></h3>
<p>Tab Completion for npm</p>
<h3 id="npm-config-1-"><a href="cli/npm-config.html">npm-config(1)</a></h3>
@@ -52,8 +56,12 @@
<p>Search npm help documentation</p>
<h3 id="npm-help-1-"><a href="cli/npm-help.html">npm-help(1)</a></h3>
<p>Get help on npm</p>
+<h3 id="npm-hook-1-"><a href="cli/npm-hook.html">npm-hook(1)</a></h3>
+<p>Manage registry hooks</p>
<h3 id="npm-init-1-"><a href="cli/npm-init.html">npm-init(1)</a></h3>
-<p>Interactively create a package.json file</p>
+<p>create a package.json file</p>
+<h3 id="npm-install-ci-test-1-"><a href="cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
+<p>Install a project with a clean slate and run tests</p>
<h3 id="npm-install-test-1-"><a href="cli/npm-install-test.html">npm-install-test(1)</a></h3>
<p>Install package(s) and run tests</p>
<h3 id="npm-install-1-"><a href="cli/npm-install.html">npm-install(1)</a></h3>
@@ -172,5 +180,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-index &mdash; npm@5.6.0</p>
+<p id="footer">npm-index &mdash; npm@6.1.0</p>
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:</p>
<pre><code>var ok = &#39;String contains &quot;double&quot; quotes&#39;
var alsoOk = &quot;String contains &#39;single&#39; quotes or apostrophe&quot;
</code></pre><h2 id="whitespace">Whitespace</h2>
-<p>Put a single space in front of ( for anything other than a function call.
+<p>Put a single space in front of <code>(</code> for anything other than a function call.
Also use a single space wherever it makes things more readable.</p>
<p>Don&#39;t leave trailing whitespace at the end of lines. Don&#39;t indent empty
lines. Don&#39;t use more spaces than are helpful.</p>
@@ -153,5 +153,5 @@ set to anything.&quot;</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-coding-style &mdash; npm@5.6.0</p>
+<p id="footer">npm-coding-style &mdash; npm@6.1.0</p>
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 <code>GET</code> requests.</p>
</ul>
<p>When &quot;dev&quot; or &quot;development&quot; and running local <code>npm shrinkwrap</code>,
<code>npm outdated</code>, or <code>npm update</code>, is an alias for <code>--dev</code>.</p>
+<h3 id="audit">audit</h3>
+<ul>
+<li>Default: true</li>
+<li>Type: Boolean</li>
+</ul>
+<p>When &quot;true&quot; submit audit reports alongside <code>npm install</code> runs to the default
+registry and all registries configured for scopes. See the documentation
+for <a href="../cli/npm-audit.html">npm-audit(1)</a> for details on what is submitted.</p>
<h3 id="auth-type">auth-type</h3>
<ul>
<li>Default: <code>&#39;legacy&#39;</code></li>
@@ -239,6 +247,8 @@ PEM format (Windows calls it &quot;Base-64 encoded X.509 (.CER)&quot;) with newl
</ul>
<p>If false, never shows colors. If <code>&quot;always&quot;</code> then always shows colors.
If true, then only prints color codes for tty file descriptors.</p>
+<p>This option can also be changed using the environment: colors are
+disabled when the environment variable <code>NO_COLOR</code> is set to any value.</p>
<h3 id="depth">depth</h3>
<ul>
<li>Default: Infinity</li>
@@ -560,7 +570,7 @@ combination). Passed to the <code>http</code> <code>Agent</code> used to make th
<p>Any &quot;%s&quot; in the message will be replaced with the version number.</p>
<h3 id="metrics-registry">metrics-registry</h3>
<ul>
-<li>Default: The value of <code>registry</code> (which defaults to &quot;<a href="https://registry.npmjs.org/">https://registry.npmjs.org/</a>&quot;)</li>
+<li>Default: The value of <code>registry</code> (which defaults to &quot;<a href="https://registry.npmjs.org/&quot;">https://registry.npmjs.org/&quot;</a>)</li>
<li>Type: String</li>
</ul>
<p>The registry you want to send cli metrics to if <code>send-metrics</code> is true.</p>
@@ -578,6 +588,12 @@ impact how lifecycle scripts are called.</p>
<li>Type: semver or false</li>
</ul>
<p>The node version to use when checking a package&#39;s <code>engines</code> map.</p>
+<h3 id="no-proxy">no-proxy</h3>
+<ul>
+<li>Default: null</li>
+<li>Type: String or Array</li>
+</ul>
+<p>A comma-separated string or an array of domain extensions that a proxy should not be used for.</p>
<h3 id="offline">offline</h3>
<ul>
<li>Default: false</li>
@@ -628,13 +644,16 @@ when publishing or changing package permissions with <code>npm access</code>.</p
</ul>
<p>If set to false, then ignore <code>package-lock.json</code> files when installing. This
will also prevent <em>writing</em> <code>package-lock.json</code> if <code>save</code> is true.</p>
+<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 <code>npm prune</code>.</p>
<p>This option is an alias for <code>--shrinkwrap</code>.</p>
<h3 id="package-lock-only">package-lock-only</h3>
<ul>
<li>Default: false</li>
<li>Type: Boolean</li>
</ul>
-<p>If set to true, it will update only the <code>package-json</code>,
+<p>If set to true, it will update only the <code>package-lock.json</code>,
instead of checking <code>node_modules</code> and downloading dependencies.</p>
<h3 id="parseable">parseable</h3>
<ul>
@@ -718,7 +737,7 @@ honored by the underlying <code>request</code> library.</p>
<p>Remove failed installs.</p>
<h3 id="save">save</h3>
<ul>
-<li>Default: false</li>
+<li>Default: true</li>
<li>Type: Boolean</li>
</ul>
<p>Save installed packages to a package.json file as dependencies.</p>
@@ -1024,5 +1043,5 @@ exit successfully.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-config &mdash; npm@5.6.0</p>
+<p id="footer">npm-config &mdash; npm@6.1.0</p>
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.</p>
<p>These are man pages. If you install npm, you should be able to
then do <code>man npm-thing</code> to get the documentation on a particular
topic, or <code>npm help thing</code> to see the same information.</p>
-<h2 id="what-is-a-package-">What is a <code>package</code></h2>
+<h2 id="what-is-a-package">What is a <code>package</code></h2>
<p>A package is:</p>
<ul>
<li>a) a folder containing a program described by a package.json file</li>
@@ -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 &quot;engines&quot; field to explicitly state the versions of
node (or whatever else) that your program requires, and it&#39;s pretty
-well assumed that it&#39;s javascript.</p>
+well assumed that it&#39;s JavaScript.</p>
<p>It does not necessarily need to match your github repository name.</p>
<p>So, <code>node-foo</code> and <code>bar-js</code> are bad names. <code>foo</code> or <code>bar</code> are better.</p>
</li>
@@ -204,5 +204,5 @@ from a fresh checkout.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-developers &mdash; npm@5.6.0</p>
+<p id="footer">npm-developers &mdash; npm@6.1.0</p>
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.</p>
<h2 id="tl-dr">TL;DR</h2>
<ol>
<li>Get the author email with <code>npm owner ls &lt;pkgname&gt;</code></li>
-<li>Email the author, CC <a href="&#109;&#97;&#105;&#108;&#116;&#x6f;&#58;&#x73;&#117;&#112;&#112;&#111;&#x72;&#x74;&#x40;&#x6e;&#x70;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#109;">&#x73;&#117;&#112;&#112;&#111;&#x72;&#x74;&#x40;&#x6e;&#x70;&#x6d;&#106;&#x73;&#x2e;&#99;&#111;&#109;</a></li>
+<li>Email the author, CC <a href="mailto:&#115;&#x75;&#x70;&#112;&#111;&#x72;&#x74;&#x40;&#110;&#112;&#109;&#x6a;&#x73;&#46;&#99;&#x6f;&#x6d;">&#115;&#x75;&#x70;&#112;&#111;&#x72;&#x74;&#x40;&#110;&#112;&#109;&#x6a;&#x73;&#46;&#99;&#x6f;&#x6d;</a></li>
<li>After a few weeks, if there&#39;s no resolution, we&#39;ll sort it out.</li>
</ol>
<p>Don&#39;t squat on package names. Publish code or move out of the way.</p>
@@ -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 <code>foo</code> JavaScript toolkit framework.
They publish it to npm as <code>foojs</code>, but people are routinely confused when
-<code>npm install</code>foo`` is some different thing.</li>
+<code>npm install</code>foo<code></code> is some different thing.</li>
<li><p>Yusuf writes a parser for the widely-known <code>foo</code> 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 <code>foo</code> parser, but can&#39;t publish,
@@ -55,12 +55,12 @@ because Yusuf&#39;s <code>foo</code> is in the way.</p>
</li>
<li>Alice emails Yusuf, explaining the situation <strong>as respectfully as possible</strong>,
and what she would like to do with the module name. She adds the npm support
-staff <a href="&#x6d;&#x61;&#105;&#108;&#116;&#x6f;&#58;&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#109;">&#115;&#x75;&#112;&#x70;&#111;&#114;&#116;&#x40;&#x6e;&#112;&#109;&#106;&#x73;&#46;&#x63;&#x6f;&#109;</a> to the CC list of the email. Mention in the email
+staff <a href="mailto:&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#64;&#110;&#x70;&#109;&#x6a;&#115;&#x2e;&#99;&#111;&#109;">&#x73;&#117;&#112;&#x70;&#111;&#114;&#116;&#64;&#110;&#x70;&#109;&#x6a;&#115;&#x2e;&#99;&#111;&#109;</a> to the CC list of the email. Mention in the email
that Yusuf can run npm owner <code>add alice foo</code> to add Alice as an owner of the
foo package.</li>
<li>After a reasonable amount of time, if Yusuf has not responded, or if Yusuf
and Alice can&#39;t come to any sort of resolution, email support
-<a href="&#109;&#x61;&#x69;&#108;&#116;&#x6f;&#x3a;&#115;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#x40;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#109;">&#115;&#117;&#112;&#x70;&#111;&#x72;&#x74;&#x40;&#110;&#x70;&#109;&#106;&#115;&#x2e;&#99;&#111;&#109;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is usually at least
+<a href="mailto:&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#x40;&#110;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#x6d;">&#x73;&#x75;&#112;&#x70;&#x6f;&#x72;&#x74;&#x40;&#110;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#99;&#x6f;&#x6d;</a> and we&#39;ll sort it out. (&quot;Reasonable&quot; is usually at least
4 weeks.)</li>
</ol>
<h2 id="reasoning">REASONING</h2>
@@ -96,12 +96,12 @@ application database or otherwise putting non-packagey things into it.</li>
<a href="https://www.npmjs.com/policies/conduct">Code of Conduct</a> such as hateful
language, pornographic content, or harassment.</li>
</ol>
-<p>If you see bad behavior like this, please report it to <a href="&#109;&#x61;&#x69;&#x6c;&#x74;&#111;&#58;&#97;&#x62;&#117;&#x73;&#101;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#109;">&#97;&#x62;&#117;&#x73;&#101;&#64;&#x6e;&#112;&#109;&#x6a;&#115;&#46;&#99;&#x6f;&#109;</a> right
+<p>If you see bad behavior like this, please report it to <a href="mailto:&#97;&#x62;&#x75;&#115;&#101;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;">&#97;&#x62;&#x75;&#115;&#101;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#115;&#x2e;&#x63;&#x6f;&#x6d;</a> right
away. <strong>You are never expected to resolve abusive behavior on your own. We are
here to help.</strong></p>
<h2 id="trademarks">TRADEMARKS</h2>
<p>If you think another npm publisher is infringing your trademark, such as by
-using a confusingly similar package name, email <a href="&#x6d;&#x61;&#105;&#x6c;&#116;&#111;&#x3a;&#97;&#x62;&#117;&#115;&#101;&#64;&#110;&#112;&#109;&#106;&#115;&#46;&#x63;&#x6f;&#x6d;">&#97;&#x62;&#117;&#115;&#101;&#64;&#110;&#112;&#109;&#106;&#115;&#46;&#x63;&#x6f;&#x6d;</a> with a link to
+using a confusingly similar package name, email <a href="mailto:&#x61;&#98;&#x75;&#x73;&#x65;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;">&#x61;&#98;&#x75;&#x73;&#x65;&#x40;&#x6e;&#112;&#x6d;&#x6a;&#x73;&#x2e;&#x63;&#111;&#109;</a> with a link to
the package or user account on <a href="https://npmjs.com">https://npmjs.com</a>. Attach a
copy of your trademark registration certificate.</p>
<p>If we see that the package&#39;s publisher is intentionally misleading others by
@@ -134,5 +134,5 @@ License.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-disputes &mdash; npm@5.6.0</p>
+<p id="footer">npm-disputes &mdash; npm@6.1.0</p>
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 @@
<p>Set access level on published packages</p>
<h3 id="npm-adduser-1-"><a href="../cli/npm-adduser.html">npm-adduser(1)</a></h3>
<p>Add a registry user account</p>
+<h3 id="npm-audit-1-"><a href="../cli/npm-audit.html">npm-audit(1)</a></h3>
+<p>Run a security audit</p>
<h3 id="npm-bin-1-"><a href="../cli/npm-bin.html">npm-bin(1)</a></h3>
<p>Display npm bin folder</p>
<h3 id="npm-bugs-1-"><a href="../cli/npm-bugs.html">npm-bugs(1)</a></h3>
@@ -30,6 +32,8 @@
<p>REMOVED</p>
<h3 id="npm-cache-1-"><a href="../cli/npm-cache.html">npm-cache(1)</a></h3>
<p>Manipulates packages cache</p>
+<h3 id="npm-ci-1-"><a href="../cli/npm-ci.html">npm-ci(1)</a></h3>
+<p>Install a project with a clean slate</p>
<h3 id="npm-completion-1-"><a href="../cli/npm-completion.html">npm-completion(1)</a></h3>
<p>Tab Completion for npm</p>
<h3 id="npm-config-1-"><a href="../cli/npm-config.html">npm-config(1)</a></h3>
@@ -52,8 +56,12 @@
<p>Search npm help documentation</p>
<h3 id="npm-help-1-"><a href="../cli/npm-help.html">npm-help(1)</a></h3>
<p>Get help on npm</p>
+<h3 id="npm-hook-1-"><a href="../cli/npm-hook.html">npm-hook(1)</a></h3>
+<p>Manage registry hooks</p>
<h3 id="npm-init-1-"><a href="../cli/npm-init.html">npm-init(1)</a></h3>
-<p>Interactively create a package.json file</p>
+<p>create a package.json file</p>
+<h3 id="npm-install-ci-test-1-"><a href="../cli/npm-install-ci-test.html">npm-install-ci-test(1)</a></h3>
+<p>Install a project with a clean slate and run tests</p>
<h3 id="npm-install-test-1-"><a href="../cli/npm-install-test.html">npm-install-test(1)</a></h3>
<p>Install package(s) and run tests</p>
<h3 id="npm-install-1-"><a href="../cli/npm-install.html">npm-install(1)</a></h3>
@@ -172,5 +180,5 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-index &mdash; npm@5.6.0</p>
+<p id="footer">npm-index &mdash; npm@6.1.0</p>
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 @@
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-orgs &mdash; npm@5.6.0</p>
+<p id="footer">npm-orgs &mdash; npm@6.1.0</p>
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.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-registry &mdash; npm@5.6.0</p>
+<p id="footer">npm-registry &mdash; npm@6.1.0</p>
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 <code>public</code> as if you had run <code>npm access public</code> after publishing.</p>
<h3 id="publishing-private-scoped-packages-to-the-npm-registry">Publishing private scoped packages to the npm registry</h3>
<p>To publish a private scoped package to the npm registry, you must have
-an <a href="https://www.npmjs.com/private-modules">npm Private Modules</a>
+an <a href="https://docs.npmjs.com/private-modules/intro">npm Private Modules</a>
account.</p>
<p>You can then publish the module with <code>npm publish</code> or <code>npm publish
--access restricted</code>, and it will be present in the npm registry, with
@@ -99,5 +99,5 @@ that registry instead.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-scope &mdash; npm@5.6.0</p>
+<p id="footer">npm-scope &mdash; npm@6.1.0</p>
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. <code>premyscript</code>, <code>myscri
<p><pkg> -- npm run <stage>`.</p>
<h2 id="prepublish-and-prepare">PREPUBLISH AND PREPARE</h2>
<h3 id="deprecation-note">DEPRECATION NOTE</h3>
-<p>Since <code>npm@1.1.71</code>, the npm CLI has run the <code>prepublish</code> script for both <code>npm
-publish</code> and <code>npm install</code>, because it&#39;s a convenient way to prepare a package
+<p>Since <a href="mailto:`npm@1.1.71">`npm@1.1.71</a><code>, the npm CLI has run the</code>prepublish<code>script for both</code>npm
+publish<code>and</code>npm install<code>, because it&#39;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, <a href="https://github.com/npm/npm/issues/10074">very
-confusing</a>. As of <code>npm@4.0.0</code>, a new
-event has been introduced, <code>prepare</code>, that preserves this existing behavior. A
-<em>new</em> event, <code>prepublishOnly</code> 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</code><a href="mailto:npm@4.0.0">npm@4.0.0</a><code>, a new
+event has been introduced,</code>prepare<code>, that preserves this existing behavior. A
+_new_ event,</code>prepublishOnly<code>has been added as a transitional strategy to
allow users to avoid the confusing behavior of existing npm versions and only
-run on <code>npm publish</code> (for instance, running the tests one last time to ensure
+run on</code>npm publish` (for instance, running the tests one last time to ensure
they&#39;re in good shape).</p>
<p>See <a href="https://github.com/npm/npm/issues/10074">https://github.com/npm/npm/issues/10074</a> for a much lengthier
justification, with further reading, for this change.</p>
@@ -239,5 +239,5 @@ scripts is for compilation which must be done on the target architecture.</li>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">npm-scripts &mdash; npm@5.6.0</p>
+<p id="footer">npm-scripts &mdash; npm@6.1.0</p>
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:</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">removing-npm &mdash; npm@5.6.0</p>
+<p id="footer">removing-npm &mdash; npm@6.1.0</p>
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(&#39; =v1.2.3 &#39;) // &#39;1.2.3&#39;
semver.satisfies(&#39;1.2.3&#39;, &#39;1.x || &gt;=2.5.0 || 5.0.0 - 7.2.3&#39;) // true
semver.gt(&#39;1.2.3&#39;, &#39;9.8.7&#39;) // false
semver.lt(&#39;1.2.3&#39;, &#39;9.8.7&#39;) // true
+semver.valid(semver.coerce(&#39;v2&#39;)) // &#39;2.0.0&#39;
+semver.valid(semver.coerce(&#39;42.6.7.9.3-alpha&#39;)) // &#39;42.6.7&#39;
</code></pre>
<p>As a command-line utility:</p>
<pre><code>$ 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:</p>
deterministic ways.</p>
<p>Advanced ranges may be combined in the same way as primitive
comparators using white space or <code>||</code>.</p>
-<h4 id="hyphen-ranges-x-y-z-a-b-c-">Hyphen Ranges <code>X.Y.Z - A.B.C</code></h4>
+<h4 id="hyphen-ranges-x-y-z-a-b-c">Hyphen Ranges <code>X.Y.Z - A.B.C</code></h4>
<p>Specifies an inclusive set.</p>
<ul>
<li><code>1.2.3 - 2.3.4</code> := <code>&gt;=1.2.3 &lt;=2.3.4</code></li>
@@ -166,7 +172,7 @@ character is in fact optional.</p>
<li><code>1</code> := <code>1.x.x</code> := <code>&gt;=1.0.0 &lt;2.0.0</code></li>
<li><code>1.2</code> := <code>1.2.x</code> := <code>&gt;=1.2.0 &lt;1.3.0</code></li>
</ul>
-<h4 id="tilde-ranges-1-2-3-1-2-1-">Tilde Ranges <code>~1.2.3</code> <code>~1.2</code> <code>~1</code></h4>
+<h4 id="tilde-ranges-1-2-3-1-2-1">Tilde Ranges <code>~1.2.3</code> <code>~1.2</code> <code>~1</code></h4>
<p>Allows patch-level changes if a minor version is specified on the
comparator. Allows minor-level changes if not.</p>
<ul>
@@ -182,7 +188,7 @@ equal to <code>beta.2</code>. So, <code>1.2.3-beta.4</code> would be allowed, b
<code>1.2.4-beta.2</code> would not, because it is a prerelease of a
different <code>[major, minor, patch]</code> tuple.</li>
</ul>
-<h4 id="caret-ranges-1-2-3-0-2-5-0-0-4-">Caret Ranges <code>^1.2.3</code> <code>^0.2.5</code> <code>^0.0.4</code></h4>
+<h4 id="caret-ranges-1-2-3-0-2-5-0-0-4">Caret Ranges <code>^1.2.3</code> <code>^0.2.5</code> <code>^0.0.4</code></h4>
<p>Allows changes that do not modify the left-most non-zero digit in the
<code>[major, minor, patch]</code> tuple. In other words, this allows patch and
minor updates for versions <code>1.0.0</code> and above, patch updates for
@@ -324,6 +330,21 @@ range (since <code>1.2.8</code> satisfies, which is lower), and it also does not
satisfy the range.</p>
<p>If you want to know if a version satisfies or does not satisfy a
range, use the <code>satisfies(version, range)</code> function.</p>
+<h3 id="coercion">Coercion</h3>
+<ul>
+<li><code>coerce(version)</code>: Coerces a string to semver if possible</li>
+</ul>
+<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., <code>1</code>, <code>1.2</code>, <code>1.2.3</code>) up to the max permitted length (256 characters).
+Longer versions are simply truncated (<code>4.6.3.9.2-alpha2</code> becomes <code>4.6.3</code>).
+All surrounding text is simply ignored (<code>v3.4 replaces v3.3.1</code> becomes <code>3.4.0</code>).
+Only text which lacks digits will fail coercion (<code>version one</code> is not valid).
+The maximum length for any semver component considered for coercion is 16 characters;
+longer components will be ignored (<code>10000000000000000.4.7.4</code> becomes <code>4.7.4</code>).
+The maximum value for any semver component is <code>Integer.MAX_SAFE_INTEGER || (2**53 - 1)</code>;
+higher value components are invalid (<code>9999999999999999.4.7.4</code> is likely invalid).</p>
</div>
@@ -336,5 +357,5 @@ range, use the <code>satisfies(version, range)</code> function.</p>
<tr><td style="width:60px;height:10px;background:rgb(237,127,127)" colspan=6>&nbsp;</td><td colspan=10 style="width:10px;height:10px;background:rgb(237,127,127)">&nbsp;</td></tr>
<tr><td colspan=5 style="width:50px;height:10px;background:#fff">&nbsp;</td><td style="width:40px;height:10px;background:rgb(237,127,127)" colspan=4>&nbsp;</td><td style="width:90px;height:10px;background:#fff" colspan=9>&nbsp;</td></tr>
</table>
-<p id="footer">semver &mdash; npm@5.6.0</p>
+<p id="footer">semver &mdash; npm@6.1.0</p>
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 [<package>]'
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 <command> is one of:',
npm.config.get('long') ? usages()
- : ' ' + wrap(commands),
+ : ' ' + wrap(commands),
'',
'npm <command> -h quick help on <command>',
'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 <pkg> <url> <secret> [--type=<type>]',
+ 'npm hook ls [pkg]',
+ 'npm hook rm <id>',
+ 'npm hook update <id> <url> <secret>'
+])
+
+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>/]<name> (same as `npx [<@scope>/]create-<name>`)'
+)
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 <pkg> <pkg> <pkg>
//
// 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>/]<pkg>...]'
@@ -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 [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>]' +
"\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 [<pkg>]'
-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 <tokenKey>\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 [<newversion> | 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 <entity> <url> <secret>
+npm hook update <id> <url> [secret]
+npm hook rm <id>
+.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>/]<name> (same as `npx [<@scope>/]create\-<name>`)
+.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 <initializer>\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\-<initializer>\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 <folder>\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>/]<pkg>\.\.\.] [\-\-production]
+npm prune [[<@scope>/]<pkg>\.\.\.] [\-\-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 [<newversion> | 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 <command> [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/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/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/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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/agent-base/.travis.yml
index 6ce862c6f6..6ce862c6f6 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml
+++ b/deps/npm/node_modules/agent-base/.travis.yml
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 &lt;nathan@tootallnate.net&gt;
+
+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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/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
+++ b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.key
diff --git a/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 b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/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
+++ b/deps/npm/node_modules/agent-base/test/ssl-cert-snakeoil.pem
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 <<u376@m1.holmlund.se>>)
+
+**others**
+ * [[`55a7a5c`](http://github.com/node-modules/agentkeepalive/commit/55a7a5cd33e97f9a8370083dcb041c5552f10ac9)] - test: stop timer after test end (fengmk2 <<fengmk2@gmail.com>>)
+
+3.4.0 / 2018-02-27
+==================
+
+**features**
+ * [[`bc7cadb`](http://github.com/node-modules/agentkeepalive/commit/bc7cadb30ecd2071e2b341ac53ae1a2b8155c43d)] - feat: use socket custom freeSocketKeepAliveTimeout first (#59) (fengmk2 <<fengmk2@gmail.com>>)
+
+**others**
+ * [[`138eda8`](http://github.com/node-modules/agentkeepalive/commit/138eda81e10b632aaa87bea0cb66d8667124c4e8)] - doc: fix `keepAliveMsecs` params description (#55) (Hongcai Deng <<admin@dhchouse.com>>)
+
+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 <fengmk2@gmail.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/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js b/deps/npm/node_modules/agentkeepalive/browser.js
index 29c9398aa5..29c9398aa5 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js
+++ b/deps/npm/node_modules/agentkeepalive/browser.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js b/deps/npm/node_modules/agentkeepalive/index.js
index 6138131a9b..6138131a9b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js
+++ b/deps/npm/node_modules/agentkeepalive/index.js
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/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js b/deps/npm/node_modules/agentkeepalive/lib/agent.js
index a51ad597bc..a51ad597bc 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js
+++ b/deps/npm/node_modules/agentkeepalive/lib/agent.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js b/deps/npm/node_modules/agentkeepalive/lib/https_agent.js
index e6d58a3df9..e6d58a3df9 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
+++ b/deps/npm/node_modules/agentkeepalive/lib/https_agent.js
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/request/node_modules/har-validator/node_modules/ajv/.tonic_example.js b/deps/npm/node_modules/ajv/.tonic_example.js
index aa11812d87..aa11812d87 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/.tonic_example.js
+++ b/deps/npm/node_modules/ajv/.tonic_example.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/LICENSE b/deps/npm/node_modules/ajv/LICENSE
index 09f090263b..09f090263b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/LICENSE
+++ b/deps/npm/node_modules/ajv/LICENSE
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 @@
+<img align="right" alt="Ajv logo" width="160" src="http://epoberezkin.github.io/ajv/images/ajv_logo.png">
+
+# 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
+```
+
+
+## <a name="usage"></a>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
+<script src="ajv.min.js"></script>
+```
+
+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).
+
+
+## <a name="ref"></a>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<br>speed*|run-time<br>speed*|bundle<br>size|
+|---|:-:|:-:|:-:|
+|es7 async<br>(native)|-|0.75|-|
+|generators<br>(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) -&gt; Object
+
+Create Ajv instance.
+
+
+##### .compile(Object schema) -&gt; Function&lt;Object data&gt;
+
+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).
+
+
+##### <a name="api-compileAsync"></a>.compileAsync(Object schema [, Boolean meta] [, Function callback]) -&gt; 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) -&gt; 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&lt;Object&gt;|Object schema [, String key]) -&gt; 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&lt;Object&gt;|Object schema [, String key]) -&gt; 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`.
+
+
+##### <a name="api-validateschema"></a>.validateSchema(Object schema) -&gt; 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) -&gt; Function&lt;Object data&gt;
+
+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]) -&gt; 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.
+
+
+##### <a name="api-addformat"></a>.addFormat(String name, String|RegExp|Function|Object format) -&gt; 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.
+
+
+##### <a name="api-addkeyword"></a>.addKeyword(String keyword, Object definition) -&gt; 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) -&gt; Object|Boolean
+
+Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown.
+
+
+##### .removeKeyword(String keyword) -&gt; 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&lt;Object&gt; errors [, Object options]]) -&gt; 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/request/node_modules/har-validator/node_modules/ajv/dist/ajv.bundle.js b/deps/npm/node_modules/ajv/dist/ajv.bundle.js
index 2329e81c39..25843d30c8 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.bundle.js
+++ b/deps/npm/node_modules/ajv/dist/ajv.bundle.js
@@ -381,7 +381,7 @@ function regex(str) {
var resolve = require('./resolve')
, util = require('./util')
, errorClasses = require('./error_classes')
- , stableStringify = require('json-stable-stringify');
+ , stableStringify = require('fast-json-stable-stringify');
var validateGenerator = require('../dotjs/validate');
@@ -482,6 +482,7 @@ function compile(schema, root, localRefs, baseId) {
useCustomRule: useCustomRule,
opts: opts,
formats: formats,
+ logger: self.logger,
self: self
});
@@ -524,7 +525,7 @@ function compile(schema, root, localRefs, baseId) {
refVal[0] = validate;
} catch(e) {
- console.error('Error compiling schema, function code:', sourceCode);
+ self.logger.error('Error compiling schema, function code:', sourceCode);
throw e;
}
@@ -638,7 +639,7 @@ function compile(schema, root, localRefs, baseId) {
var valid = validateSchema(schema);
if (!valid) {
var message = 'keyword schema is invalid: ' + self.errorsText(validateSchema.errors);
- if (self._opts.validateSchema == 'log') console.error(message);
+ if (self._opts.validateSchema == 'log') self.logger.error(message);
else throw new Error(message);
}
}
@@ -756,7 +757,7 @@ function vars(arr, statement) {
return code;
}
-},{"../dotjs/validate":35,"./error_classes":5,"./resolve":8,"./util":12,"co":40,"fast-deep-equal":41,"json-stable-stringify":43}],8:[function(require,module,exports){
+},{"../dotjs/validate":35,"./error_classes":5,"./resolve":8,"./util":12,"co":40,"fast-deep-equal":41,"fast-json-stable-stringify":42}],8:[function(require,module,exports){
'use strict';
var url = require('url')
@@ -1029,7 +1030,7 @@ function resolveIds(schema) {
return localRefs;
}
-},{"./schema_obj":10,"./util":12,"fast-deep-equal":41,"json-schema-traverse":42,"url":51}],9:[function(require,module,exports){
+},{"./schema_obj":10,"./util":12,"fast-deep-equal":41,"json-schema-traverse":43,"url":48}],9:[function(require,module,exports){
'use strict';
var ruleModules = require('./_rules')
@@ -1052,7 +1053,7 @@ module.exports = function rules() {
var ALL = [ 'type' ];
var KEYWORDS = [
- 'additionalItems', '$schema', 'id', 'title',
+ 'additionalItems', '$schema', '$id', 'id', 'title',
'description', 'default', 'definitions'
];
var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
@@ -2563,7 +2564,7 @@ module.exports = function generate_format(it, $keyword, $ruleType) {
var $format = it.formats[$schema];
if (!$format) {
if ($unknownFormats == 'ignore') {
- console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
+ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
if ($breakOnError) {
out += ' if (true) { ';
}
@@ -3687,7 +3688,7 @@ module.exports = function generate_ref(it, $keyword, $ruleType) {
if ($refVal === undefined) {
var $message = it.MissingRefError.message(it.baseId, $schema);
if (it.opts.missingRefs == 'fail') {
- console.error($message);
+ it.logger.error($message);
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = ''; /* istanbul ignore else */
@@ -3718,7 +3719,7 @@ module.exports = function generate_ref(it, $keyword, $ruleType) {
out += ' if (false) { ';
}
} else if (it.opts.missingRefs == 'ignore') {
- console.warn($message);
+ it.logger.warn($message);
if ($breakOnError) {
out += ' if (true) { ';
}
@@ -4256,7 +4257,7 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
} else if (it.opts.extendRefs !== true) {
$refKeywords = false;
- console.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
+ it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
}
}
if ($typeSchema) {
@@ -4414,7 +4415,7 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
}
} else {
if (it.opts.v5 && it.schema.patternGroups) {
- console.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');
+ it.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');
}
var arr2 = it.RULES;
if (arr2) {
@@ -4579,10 +4580,10 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
}
function $shouldUseRule($rule) {
- return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImlementsSomeKeyword($rule));
+ return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));
}
- function $ruleImlementsSomeKeyword($rule) {
+ function $ruleImplementsSomeKeyword($rule) {
var impl = $rule.implements;
for (var i = 0; i < impl.length; i++)
if (it.schema[impl[i]] !== undefined) return true;
@@ -4607,6 +4608,7 @@ module.exports = {
* @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 */
@@ -4684,6 +4686,8 @@ function addKeyword(keyword, definition) {
function checkDataType(dataType) {
if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
}
+
+ return this;
}
@@ -4704,6 +4708,7 @@ function getKeyword(keyword) {
* Remove keyword
* @this Ajv
* @param {String} keyword pre-defined or custom keyword.
+ * @return {Ajv} this for method chaining
*/
function removeKeyword(keyword) {
/* jshint validthis: true */
@@ -4720,6 +4725,7 @@ function removeKeyword(keyword) {
}
}
}
+ return this;
}
},{"./dotjs/custom":21}],37:[function(require,module,exports){
@@ -4839,6 +4845,10 @@ module.exports={
"type": "string"
},
"default": {},
+ "examples": {
+ "type": "array",
+ "items": {}
+ },
"multipleOf": {
"type": "number",
"exclusiveMinimum": 0
@@ -5218,6 +5228,67 @@ module.exports = function equal(a, b) {
},{}],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;
@@ -5298,528 +5369,7 @@ function escapeJsonPtr(str) {
return str.replace(/~/g, '~0').replace(/\//g, '~1');
}
-},{}],43:[function(require,module,exports){
-var json = typeof JSON !== 'undefined' ? JSON : require('jsonify');
-
-module.exports = function (obj, opts) {
- if (!opts) opts = {};
- if (typeof opts === 'function') opts = { cmp: opts };
- var space = opts.space || '';
- if (typeof space === 'number') space = Array(space+1).join(' ');
- var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;
- var replacer = opts.replacer || function(key, value) { return value; };
-
- 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 (parent, key, node, level) {
- var indent = space ? ('\n' + new Array(level + 1).join(space)) : '';
- var colonSeparator = space ? ': ' : ':';
-
- if (node && node.toJSON && typeof node.toJSON === 'function') {
- node = node.toJSON();
- }
-
- node = replacer.call(parent, key, node);
-
- if (node === undefined) {
- return;
- }
- if (typeof node !== 'object' || node === null) {
- return json.stringify(node);
- }
- if (isArray(node)) {
- var out = [];
- for (var i = 0; i < node.length; i++) {
- var item = stringify(node, i, node[i], level+1) || json.stringify(null);
- out.push(indent + space + item);
- }
- return '[' + out.join(',') + indent + ']';
- }
- else {
- if (seen.indexOf(node) !== -1) {
- if (cycles) return json.stringify('__cycle__');
- throw new TypeError('Converting circular structure to JSON');
- }
- else seen.push(node);
-
- var keys = objectKeys(node).sort(cmp && cmp(node));
- var out = [];
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = stringify(node, key, node[key], level+1);
-
- if(!value) continue;
-
- var keyValue = json.stringify(key)
- + colonSeparator
- + value;
- ;
- out.push(indent + space + keyValue);
- }
- seen.splice(seen.indexOf(node), 1);
- return '{' + out.join(',') + indent + '}';
- }
- })({ '': obj }, '', obj, 0);
-};
-
-var isArray = Array.isArray || function (x) {
- return {}.toString.call(x) === '[object Array]';
-};
-
-var objectKeys = Object.keys || function (obj) {
- var has = Object.prototype.hasOwnProperty || function () { return true };
- var keys = [];
- for (var key in obj) {
- if (has.call(obj, key)) keys.push(key);
- }
- return keys;
-};
-
-},{"jsonify":44}],44:[function(require,module,exports){
-exports.parse = require('./lib/parse');
-exports.stringify = require('./lib/stringify');
-
-},{"./lib/parse":45,"./lib/stringify":46}],45:[function(require,module,exports){
-var at, // The index of the current character
- ch, // The current character
- escapee = {
- '"': '"',
- '\\': '\\',
- '/': '/',
- b: '\b',
- f: '\f',
- n: '\n',
- r: '\r',
- t: '\t'
- },
- text,
-
- error = function (m) {
- // Call error when something is wrong.
- throw {
- name: 'SyntaxError',
- message: m,
- at: at,
- text: text
- };
- },
-
- next = function (c) {
- // If a c parameter is provided, verify that it matches the current character.
- if (c && c !== ch) {
- error("Expected '" + c + "' instead of '" + ch + "'");
- }
-
- // Get the next character. When there are no more characters,
- // return the empty string.
-
- ch = text.charAt(at);
- at += 1;
- return ch;
- },
-
- number = function () {
- // Parse a number value.
- var number,
- string = '';
-
- if (ch === '-') {
- string = '-';
- next('-');
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- if (ch === '.') {
- string += '.';
- while (next() && ch >= '0' && ch <= '9') {
- string += ch;
- }
- }
- if (ch === 'e' || ch === 'E') {
- string += ch;
- next();
- if (ch === '-' || ch === '+') {
- string += ch;
- next();
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- }
- number = +string;
- if (!isFinite(number)) {
- error("Bad number");
- } else {
- return number;
- }
- },
-
- string = function () {
- // Parse a string value.
- var hex,
- i,
- string = '',
- uffff;
-
- // When parsing for string values, we must look for " and \ characters.
- if (ch === '"') {
- while (next()) {
- if (ch === '"') {
- next();
- return string;
- } else if (ch === '\\') {
- next();
- if (ch === 'u') {
- uffff = 0;
- for (i = 0; i < 4; i += 1) {
- hex = parseInt(next(), 16);
- if (!isFinite(hex)) {
- break;
- }
- uffff = uffff * 16 + hex;
- }
- string += String.fromCharCode(uffff);
- } else if (typeof escapee[ch] === 'string') {
- string += escapee[ch];
- } else {
- break;
- }
- } else {
- string += ch;
- }
- }
- }
- error("Bad string");
- },
-
- white = function () {
-
-// Skip whitespace.
-
- while (ch && ch <= ' ') {
- next();
- }
- },
-
- word = function () {
-
-// true, false, or null.
-
- switch (ch) {
- case 't':
- next('t');
- next('r');
- next('u');
- next('e');
- return true;
- case 'f':
- next('f');
- next('a');
- next('l');
- next('s');
- next('e');
- return false;
- case 'n':
- next('n');
- next('u');
- next('l');
- next('l');
- return null;
- }
- error("Unexpected '" + ch + "'");
- },
-
- value, // Place holder for the value function.
-
- array = function () {
-
-// Parse an array value.
-
- var array = [];
-
- if (ch === '[') {
- next('[');
- white();
- if (ch === ']') {
- next(']');
- return array; // empty array
- }
- while (ch) {
- array.push(value());
- white();
- if (ch === ']') {
- next(']');
- return array;
- }
- next(',');
- white();
- }
- }
- error("Bad array");
- },
-
- object = function () {
-
-// Parse an object value.
-
- var key,
- object = {};
-
- if (ch === '{') {
- next('{');
- white();
- if (ch === '}') {
- next('}');
- return object; // empty object
- }
- while (ch) {
- key = string();
- white();
- next(':');
- if (Object.hasOwnProperty.call(object, key)) {
- error('Duplicate key "' + key + '"');
- }
- object[key] = value();
- white();
- if (ch === '}') {
- next('}');
- return object;
- }
- next(',');
- white();
- }
- }
- error("Bad object");
- };
-
-value = function () {
-
-// Parse a JSON value. It could be an object, an array, a string, a number,
-// or a word.
-
- white();
- switch (ch) {
- case '{':
- return object();
- case '[':
- return array();
- case '"':
- return string();
- case '-':
- return number();
- default:
- return ch >= '0' && ch <= '9' ? number() : word();
- }
-};
-
-// Return the json_parse function. It will have access to all of the above
-// functions and variables.
-
-module.exports = function (source, reviver) {
- var result;
-
- text = source;
- at = 0;
- ch = ' ';
- result = value();
- white();
- if (ch) {
- error("Syntax error");
- }
-
- // If there is a reviver function, we recursively walk the new structure,
- // passing each name/value pair to the reviver function for possible
- // transformation, starting with a temporary root object that holds the result
- // in an empty key. If there is not a reviver function, we simply return the
- // result.
-
- return typeof reviver === 'function' ? (function walk(holder, key) {
- var k, v, value = holder[key];
- if (value && typeof value === 'object') {
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = walk(value, k);
- if (v !== undefined) {
- value[k] = v;
- } else {
- delete value[k];
- }
- }
- }
- }
- return reviver.call(holder, key, value);
- }({'': result}, '')) : result;
-};
-
-},{}],46:[function(require,module,exports){
-var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- gap,
- indent,
- meta = { // table of character substitutions
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"' : '\\"',
- '\\': '\\\\'
- },
- rep;
-
-function quote(string) {
- // If the string contains no control characters, no quote characters, and no
- // backslash characters, then we can safely slap some quotes around it.
- // Otherwise we must also replace the offending characters with safe escape
- // sequences.
-
- escapable.lastIndex = 0;
- return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
- var c = meta[a];
- return typeof c === 'string' ? c :
- '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
- }) + '"' : '"' + string + '"';
-}
-
-function str(key, holder) {
- // Produce a string from holder[key].
- var i, // The loop counter.
- k, // The member key.
- v, // The member value.
- length,
- mind = gap,
- partial,
- value = holder[key];
-
- // If the value has a toJSON method, call it to obtain a replacement value.
- if (value && typeof value === 'object' &&
- typeof value.toJSON === 'function') {
- value = value.toJSON(key);
- }
-
- // If we were called with a replacer function, then call the replacer to
- // obtain a replacement value.
- if (typeof rep === 'function') {
- value = rep.call(holder, key, value);
- }
-
- // What happens next depends on the value's type.
- switch (typeof value) {
- case 'string':
- return quote(value);
-
- case 'number':
- // JSON numbers must be finite. Encode non-finite numbers as null.
- return isFinite(value) ? String(value) : 'null';
-
- case 'boolean':
- case 'null':
- // If the value is a boolean or null, convert it to a string. Note:
- // typeof null does not produce 'null'. The case is included here in
- // the remote chance that this gets fixed someday.
- return String(value);
-
- case 'object':
- if (!value) return 'null';
- gap += indent;
- partial = [];
-
- // Array.isArray
- if (Object.prototype.toString.apply(value) === '[object Array]') {
- length = value.length;
- for (i = 0; i < length; i += 1) {
- partial[i] = str(i, value) || 'null';
- }
-
- // Join all of the elements together, separated with commas, and
- // wrap them in brackets.
- v = partial.length === 0 ? '[]' : gap ?
- '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
- '[' + partial.join(',') + ']';
- gap = mind;
- return v;
- }
-
- // If the replacer is an array, use it to select the members to be
- // stringified.
- if (rep && typeof rep === 'object') {
- length = rep.length;
- for (i = 0; i < length; i += 1) {
- k = rep[i];
- if (typeof k === 'string') {
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- }
- else {
- // Otherwise, iterate through all of the keys in the object.
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- }
-
- // Join all of the member texts together, separated with commas,
- // and wrap them in braces.
-
- v = partial.length === 0 ? '{}' : gap ?
- '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
- '{' + partial.join(',') + '}';
- gap = mind;
- return v;
- }
-}
-
-module.exports = function (value, replacer, space) {
- var i;
- gap = '';
- indent = '';
-
- // If the space parameter is a number, make an indent string containing that
- // many spaces.
- if (typeof space === 'number') {
- for (i = 0; i < space; i += 1) {
- indent += ' ';
- }
- }
- // If the space parameter is a string, it will be used as the indent string.
- else if (typeof space === 'string') {
- indent = space;
- }
-
- // If there is a replacer, it must be a function or an array.
- // Otherwise, throw an error.
- rep = replacer;
- if (replacer && typeof replacer !== 'function'
- && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) {
- throw new Error('JSON.stringify');
- }
-
- // Make a fake root object containing our value under the key of ''.
- // Return the result of stringifying the value.
- return str('', {'': value});
-};
-
-},{}],47:[function(require,module,exports){
+},{}],44:[function(require,module,exports){
(function (global){
/*! https://mths.be/punycode v1.4.1 by @mathias */
;(function(root) {
@@ -6356,7 +5906,7 @@ module.exports = function (value, replacer, space) {
}(this));
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-},{}],48:[function(require,module,exports){
+},{}],45:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -6442,7 +5992,7 @@ var isArray = Array.isArray || function (xs) {
return Object.prototype.toString.call(xs) === '[object Array]';
};
-},{}],49:[function(require,module,exports){
+},{}],46:[function(require,module,exports){
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
@@ -6529,13 +6079,13 @@ var objectKeys = Object.keys || function (obj) {
return res;
};
-},{}],50:[function(require,module,exports){
+},{}],47:[function(require,module,exports){
'use strict';
exports.decode = exports.parse = require('./decode');
exports.encode = exports.stringify = require('./encode');
-},{"./decode":48,"./encode":49}],51:[function(require,module,exports){
+},{"./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
@@ -7269,7 +6819,7 @@ Url.prototype.parseHost = function() {
if (host) this.hostname = host;
};
-},{"./util":52,"punycode":47,"querystring":50}],52:[function(require,module,exports){
+},{"./util":49,"punycode":44,"querystring":47}],49:[function(require,module,exports){
'use strict';
module.exports = {
@@ -7294,7 +6844,7 @@ var compileSchema = require('./compile')
, resolve = require('./compile/resolve')
, Cache = require('./cache')
, SchemaObject = require('./compile/schema_obj')
- , stableStringify = require('json-stable-stringify')
+ , stableStringify = require('fast-json-stable-stringify')
, formats = require('./compile/formats')
, rules = require('./compile/rules')
, $dataMetaSchema = require('./$data')
@@ -7342,6 +6892,7 @@ var META_SUPPORT_DATA = ['/properties'];
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 = {};
@@ -7371,7 +6922,7 @@ function Ajv(opts) {
/**
* Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
+ * 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
@@ -7415,11 +6966,12 @@ function compile(schema, _meta) {
* @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<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);
- return;
+ return this;
}
var id = this._getId(schema);
if (id !== undefined && typeof id != 'string')
@@ -7427,6 +6979,7 @@ function addSchema(schema, key, _skipValidation, _meta) {
key = resolve.normalizeId(key || id);
checkUnique(this, key);
this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
+ return this;
}
@@ -7437,9 +6990,11 @@ function addSchema(schema, key, _skipValidation, _meta) {
* @param {Object} schema schema object
* @param {String} key optional schema key
* @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
+ * @return {Ajv} this for method chaining
*/
function addMetaSchema(schema, key, skipValidation) {
this.addSchema(schema, key, skipValidation, true);
+ return this;
}
@@ -7456,7 +7011,7 @@ function validateSchema(schema, throwOrLogError) {
throw new Error('$schema must be a string');
$schema = $schema || this._opts.defaultMeta || defaultMeta(this);
if (!$schema) {
- console.warn('meta-schema not available');
+ this.logger.warn('meta-schema not available');
this.errors = null;
return true;
}
@@ -7469,7 +7024,7 @@ function validateSchema(schema, throwOrLogError) {
finally { this._formats.uri = currentUriFormat; }
if (!valid && throwOrLogError) {
var message = 'schema is invalid: ' + this.errorsText();
- if (this._opts.validateSchema == 'log') console.error(message);
+ if (this._opts.validateSchema == 'log') this.logger.error(message);
else throw new Error(message);
}
return valid;
@@ -7536,25 +7091,26 @@ function _getSchemaObj(self, keyRef) {
* Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
* @this Ajv
* @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
+ * @return {Ajv} this for method chaining
*/
function removeSchema(schemaKeyRef) {
if (schemaKeyRef instanceof RegExp) {
_removeAllSchemas(this, this._schemas, schemaKeyRef);
_removeAllSchemas(this, this._refs, schemaKeyRef);
- return;
+ return this;
}
switch (typeof schemaKeyRef) {
case 'undefined':
_removeAllSchemas(this, this._schemas);
_removeAllSchemas(this, this._refs);
this._cache.clear();
- return;
+ return this;
case 'string':
var schemaObj = _getSchemaObj(this, schemaKeyRef);
if (schemaObj) this._cache.del(schemaObj.cacheKey);
delete this._schemas[schemaKeyRef];
delete this._refs[schemaKeyRef];
- return;
+ return this;
case 'object':
var serialize = this._opts.serialize;
var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
@@ -7566,6 +7122,7 @@ function removeSchema(schemaKeyRef) {
delete this._refs[id];
}
}
+ return this;
}
@@ -7668,15 +7225,15 @@ function chooseGetId(opts) {
}
}
-
+/* @this Ajv */
function _getId(schema) {
- if (schema.$id) console.warn('schema $id ignored', schema.$id);
+ if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);
return schema.id;
}
-
+/* @this Ajv */
function _get$Id(schema) {
- if (schema.id) console.warn('schema id ignored', schema.id);
+ if (schema.id) this.logger.warn('schema id ignored', schema.id);
return schema.$id;
}
@@ -7716,10 +7273,12 @@ function errorsText(errors, options) {
* @this Ajv
* @param {String} name format name
* @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
+ * @return {Ajv} this for method chaining
*/
function addFormat(name, format) {
if (typeof format == 'string') format = new RegExp(format);
this._formats[name] = format;
+ return this;
}
@@ -7766,5 +7325,21 @@ function getMetaSchemaOptions(self) {
return metaOpts;
}
-},{"./$data":1,"./cache":2,"./compile":7,"./compile/async":4,"./compile/error_classes":5,"./compile/formats":6,"./compile/resolve":8,"./compile/rules":9,"./compile/schema_obj":10,"./compile/util":12,"./keyword":36,"./patternGroups":37,"./refs/$data.json":38,"./refs/json-schema-draft-06.json":39,"co":40,"json-stable-stringify":43}]},{},[])("ajv")
+
+function setLogger(self) {
+ var logger = self._opts.logger;
+ if (logger === false) {
+ self.logger = {log: noop, warn: noop, error: noop};
+ } else {
+ if (logger === undefined) logger = console;
+ if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))
+ throw new Error('logger must implement log, warn and error methods');
+ self.logger = logger;
+ }
+}
+
+
+function noop() {}
+
+},{"./$data":1,"./cache":2,"./compile":7,"./compile/async":4,"./compile/error_classes":5,"./compile/formats":6,"./compile/resolve":8,"./compile/rules":9,"./compile/schema_obj":10,"./compile/util":12,"./keyword":36,"./patternGroups":37,"./refs/$data.json":38,"./refs/json-schema-draft-06.json":39,"co":40,"fast-json-stable-stringify":42}]},{},[])("ajv")
}); \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/dist/ajv.min.js b/deps/npm/node_modules/ajv/dist/ajv.min.js
new file mode 100644
index 0000000000..f5267c9a5a
--- /dev/null
+++ b/deps/npm/node_modules/ajv/dist/ajv.min.js
@@ -0,0 +1,3 @@
+/* ajv 5.5.2: Another JSON Schema Validator */
+!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var h=new Error("Cannot find module '"+i+"'");throw h.code="MODULE_NOT_FOUND",h}var u=t[i]={exports:{}};r[i][0].call(u.exports,function(e){var t=r[i][1][e];return s(t||e)},u,u.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<a.length;i++)s(a[i]);return s}({1:[function(e,r,t){"use strict";var a=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));var s,o=r[t].split("/"),i=e;for(s=1;s<o.length;s++)i=i[o[s]];for(s=0;s<a.length;s++){var n=a[s],l=i[n];l&&(i[n]={anyOf:[l,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#"}]})}}return e}},{}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),const:e("../dotjs/const"),contains:e("../dotjs/contains"),dependencies:e("../dotjs/dependencies"),enum:e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),propertyNames:e("../dotjs/propertyNames"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":13,"../dotjs/_limitItems":14,"../dotjs/_limitLength":15,"../dotjs/_limitProperties":16,"../dotjs/allOf":17,"../dotjs/anyOf":18,"../dotjs/const":19,"../dotjs/contains":20,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":30,"../dotjs/propertyNames":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":34,"../dotjs/validate":35}],4:[function(e,r,t){"use strict";function a(e,r,t){function o(e){var r=e.$schema;return r&&!n.getSchema(r)?a.call(n,{$ref:r},!0):Promise.resolve()}function i(e){try{return n._compile(e)}catch(t){if(t instanceof s)return function(t){function a(){delete n._loadingSchemas[l]}function s(e){return n._refs[e]||n._schemas[e]}var l=t.missingSchema;if(s(l))throw new Error("Schema "+l+" is loaded but "+t.missingRef+" cannot be resolved");var h=n._loadingSchemas[l];return h||(h=n._loadingSchemas[l]=n._opts.loadSchema(l)).then(a,a),h.then(function(e){if(!s(l))return o(e).then(function(){s(l)||n.addSchema(e,l,void 0,r)})}).then(function(){return i(e)})}(t);throw t}}var n=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(t=r,r=void 0);var l=o(e).then(function(){var t=n._addSchema(e,void 0,r);return t.validate||i(t)});return t&&l.then(function(e){t(null,e)},t),l}var s=e("./error_classes").MissingRef;r.exports=a},{"./error_classes":5}],5:[function(e,r,t){"use strict";function a(e,r,t){this.message=t||a.message(e,r),this.missingRef=o.url(e,r),this.missingSchema=o.normalizeId(o.fullPath(this.missingRef))}function s(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var o=e("./resolve");r.exports={Validation:s(function(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}),MissingRef:s(a)},a.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":8}],6:[function(e,r,t){"use strict";function a(e){return e="full"==e?"full":"fast",n.copy(a[e])}function s(e){var r=e.match(l);if(!r)return!1;var t=+r[1],a=+r[2];return t>=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<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function o(e,r){return"var pattern"+e+" = new RegExp("+c.toQuotedString(r[e])+");"}function i(e){return"var default"+e+" = defaults["+e+"];"}function n(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function l(e){return"var customRule"+e+" = customRules["+e+"];"}function h(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}var u=e("./resolve"),c=e("./util"),d=e("./error_classes"),f=e("fast-json-stable-stringify"),p=e("../dotjs/validate"),m=e("co"),v=c.ucs2length,y=e("fast-deep-equal"),g=d.Validation;r.exports=a},{"../dotjs/validate":35,"./error_classes":5,"./resolve":8,"./util":12,co:40,"fast-deep-equal":41,"fast-json-stable-stringify":42}],8:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if((o=o||this._schemas[t])instanceof v)return i(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var n,l,h,u=s.call(this,r,t);return u&&(n=u.schema,r=u.root,h=u.baseId),n instanceof v?l=n.validate||e.call(this,n.schema,r,void 0,h):void 0!==n&&(l=i(n,this._opts.inlineRefs)?n:e.call(this,n,r,void 0,h)),l}function s(e,r){var t=f.parse(r,!1,!0),a=u(t),i=h(this._getId(e.schema));if(a!==i){var n=c(a),l=this._refs[n];if("string"==typeof l)return function(e,r,t){var a=s.call(this,e,r);if(a){var i=a.schema,n=a.baseId;e=a.root;var l=this._getId(i);return l&&(n=d(n,l)),o.call(this,t,n,i,e)}}.call(this,e,l,t);if(l instanceof v)l.validate||this._compile(l),e=l;else{if(!((l=this._schemas[n])instanceof v))return;if(l.validate||this._compile(l),n==c(r))return{schema:l,root:e,baseId:i};e=l}if(!e.schema)return;i=h(this._getId(e.schema))}return o.call(this,t,i,e.schema,e)}function o(e,r,t,a){if(e.hash=e.hash||"","#/"==e.hash.slice(0,2)){for(var o=e.hash.split("/"),i=1;i<o.length;i++){var n=o[i];if(n){if(n=m.unescapeFragment(n),void 0===(t=t[n]))break;var l;if(!g[n]&&((l=this._getId(t))&&(r=d(r,l)),t.$ref)){var h=d(r,t.$ref),u=s.call(this,a,h);u&&(t=u.schema,a=u.root,r=u.baseId)}}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}function i(e,r){return!1!==r&&(void 0===r||!0===r?n(e):r?l(e)<=r:void 0)}function n(e){var r;if(Array.isArray(e)){for(var t=0;t<e.length;t++)if("object"==typeof(r=e[t])&&!n(r))return!1}else for(var a in e){if("$ref"==a)return!1;if("object"==typeof(r=e[a])&&!n(r))return!1}return!0}function l(e){var r,t=0;if(Array.isArray(e)){for(var a=0;a<e.length;a++)if("object"==typeof(r=e[a])&&(t+=l(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(P[s])t++;else if("object"==typeof(r=e[s])&&(t+=l(r)+1),t==1/0)return 1/0}return t}function h(e,r){!1!==r&&(e=c(e));return u(f.parse(e,!1,!0))}function u(e){var r=e.protocol||"//"==e.href.slice(0,2)?"//":"";return(e.protocol||"")+r+(e.host||"")+(e.path||"")+"#"}function c(e){return e?e.replace(E,""):""}function d(e,r){return r=c(r),f.resolve(e,r)}var f=e("url"),p=e("fast-deep-equal"),m=e("./util"),v=e("./schema_obj"),y=e("json-schema-traverse");r.exports=a,a.normalizeId=c,a.fullPath=h,a.url=d,a.ids=function(e){var r=c(this._getId(e)),t={"":r},a={"":h(r,!1)},s={},o=this;return y(e,{allKeys:!0},function(e,r,i,n,l,h,u){if(""!==r){var d=o._getId(e),v=t[n],y=a[n]+"/"+l;if(void 0!==u&&(y+="/"+("number"==typeof u?u:m.escapeFragment(u))),"string"==typeof d){d=v=c(v?f.resolve(v,d):d);var g=o._refs[d];if("string"==typeof g&&(g=o._refs[g]),g&&g.schema){if(!p(e,g.schema))throw new Error('id "'+d+'" resolves to more than one schema')}else if(d!=c(y))if("#"==d[0]){if(s[d]&&!p(e,s[d]))throw new Error('id "'+d+'" resolves to more than one schema');s[d]=e}else o._refs[d]=y}t[r]=v,a[r]=y}}),s},a.inlineRef=i,a.schema=s;var g=m.toHash(["properties","patternProperties","enum","dependencies","definitions"]),P=m.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),E=/#\/?$/},{"./schema_obj":10,"./util":12,"fast-deep-equal":41,"json-schema-traverse":43,url:48}],9:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util").toHash;r.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],r=["type"];return e.all=s(r),e.types=s(["number","integer","string","array","object","boolean","null"]),e.forEach(function(t){t.rules=t.rules.map(function(t){var s;if("object"==typeof t){var o=Object.keys(t)[0];s=t[o],t=o,s.forEach(function(t){r.push(t),e.all[t]=!0})}r.push(t);return e.all[t]={keyword:t,code:a[t],implements:s}}),t.type&&(e.types[t.type]=t)}),e.keywords=s(r.concat(["additionalItems","$schema","$id","id","title","description","default","definitions"])),e.custom={},e}},{"./_rules":3,"./util":12}],10:[function(e,r,t){"use strict";var a=e("./util");r.exports=function(e){a.copy(e,this)}},{"./util":12}],11:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],12:[function(e,r,t){"use strict";function a(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}function s(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}function o(e){return"number"==typeof e?"["+e+"]":d.test(e)?"."+e:"['"+i(e)+"']"}function i(e){return e.replace(f,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function n(e){return"'"+i(e)+"'"}function l(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function h(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function u(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:function(e,r){r=r||{};for(var t in e)r[t]=e[t];return r},checkDataType:a,checkDataTypes:function(e,r){switch(e.length){case 1:return a(e[0],r,!0);default:var t="",o=s(e);o.array&&o.object&&(t=o.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete o.null,delete o.array,delete o.object),o.number&&delete o.integer;for(var i in o)t+=(t?" && ":"")+a(i,r,!0);return t}},coerceToTypes:function(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];c[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if(c[r])return[r];if("array"===e&&"array"===r)return["array"]}},toHash:s,getProperty:o,escapeQuotes:i,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:function(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0},varReplace:function(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")},cleanUpCode:function(e){return e.replace(p,"").replace(m,"").replace(v,"if (!($1))")},finalCleanUpCode:function(e,r){var t=e.match(y);return t&&2==t.length&&(e=r?e.replace(P,"").replace(b,S):e.replace(g,"").replace(E,w)),(t=e.match(j))&&3===t.length?e.replace(_,""):e},schemaHasRules:function(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0},schemaHasRulesExcept:function(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0},toQuotedString:n,getPathExpr:function(e,r,t,a){return l(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")},getPath:function(e,r,t){return l(e,n(t?"/"+h(r):o(r)))},getData:function(e,r,t){var a,s,i,n;if(""===e)return"rootData";if("/"==e[0]){if(!x.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,i="rootData"}else{if(!(n=e.match(F)))throw new Error("Invalid JSON-pointer: "+e);if(a=+n[1],"#"==(s=n[2])){if(a>=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<h.length;c++){var d=h[c];d&&(l+=" && "+(i+=o(u(d))))}return l},unescapeFragment:function(e){return u(decodeURIComponent(e))},unescapeJsonPointer:u,escapeFragment:function(e){return encodeURIComponent(h(e))},escapeJsonPointer:h};var c=s(["string","number","integer","boolean","null"]),d=/^[a-z$_][a-z$_0-9]*$/i,f=/'|\\/g,p=/else\s*{\s*}/g,m=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,v=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,y=/[^v.]errors/g,g=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,P=/var errors = 0;|var vErrors = null;/g,E="return errors === 0;",w="validate.errors = null; return true;",b=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,S="return data;",j=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,_=/if \(rootData === undefined\) rootData = data;/,x=/^\/(?:[^~]|~0|~1)*$/,F=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"./ucs2length":11,"fast-deep-equal":41}],13:[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;var f="maximum"==r,p=f?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=f?"<":">",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<v;)p=f[m+=1],e.util.schemaHasRules(p,e.RULES.all)&&(d=!1,l.schema=p,l.schemaPath=o+"["+m+"]",l.errSchemaPath=i+"/"+m,a+=" "+e.validate(l)+" ",l.baseId=c,n&&(a+=" if ("+u+") { ",h+="}"));return n&&(a+=d?" if (true) { ":" "+h.slice(0,-1)+" "),a=e.util.cleanUpCode(a)}},{}],18:[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;if(i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)})){var v=f.baseId;a+=" var "+d+" = errors; var "+c+" = false; ";var y=e.compositeRule;e.compositeRule=f.compositeRule=!0;var g=i;if(g)for(var P,E=-1,w=g.length-1;E<w;)P=g[E+=1],f.schema=P,f.schemaPath=n+"["+E+"]",f.errSchemaPath=l+"/"+E,a+=" "+e.validate(f)+" ",f.baseId=v,a+=" "+c+" = "+c+" || "+m+"; if (!"+c+") { ",p+="}";e.compositeRule=f.compositeRule=y,a+=" "+p+" if (!"+c+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should match some schema in anyOf' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+=" } else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else h&&(a+=" if (true) { ");return a}},{}],19:[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=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),d||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+c+" = equal("+u+", schema"+s+"); if (!"+c+") { ";var f=f||[];f.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=f.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",h&&(a+=" else { "),a}},{}],20:[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);f.level++;var p="valid"+f.level,m="i"+s,v=f.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId,P=e.util.schemaHasRules(i,e.RULES.all);if(a+="var "+d+" = errors;var "+c+";",P){var E=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+p+" = false; for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",f.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var w=u+"["+m+"]";f.dataPathArr[v]=m;var b=e.validate(f);f.baseId=g,e.util.varOccurences(b,y)<2?a+=" "+e.util.varReplace(b,y,w)+" ":a+=" var "+y+" = "+w+"; "+b+" ",a+=" if ("+p+") break; } ",e.compositeRule=f.compositeRule=E,a+=" if (!"+p+") {"}else a+=" if ("+u+".length == 0) {";var S=S||[];S.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should contain a valid item' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var j=a;return a=S.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 { ",P&&(a+=" errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; } "),e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],h=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,d="data"+(n||""),f="valid"+i,p="errs__"+i,m=e.opts.$data&&l&&l.$data;m?(o+=" var schema"+i+" = "+e.util.getData(l.$data,n,e.dataPathArr)+"; ",s="schema"+i):s=l;var v,y,g,P,E,w="definition"+i,b=this.definition,S="";if(m&&b.$data){var j=b.validateSchema;o+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+(E="keywordValidate"+i)+" = "+w+".validate;"}else{if(!(P=e.useCustomRule(this,l,e.schema,e)))return;s="validate.schema"+h,E=P.code,v=b.compile,y=b.inline,g=b.macro}var _=E+".errors",x="i"+i,F="ruleErr"+i,$=b.async;if($&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(o+=_+" = null;"),o+="var "+p+" = errors;var "+f+";",m&&b.$data&&(S+="}",o+=" if ("+s+" === undefined) { "+f+" = true; } else { ",j&&(S+="}",o+=" "+f+" = "+w+".validateSchema("+s+"); if ("+f+") { ")),y)o+=b.statements?" "+P.validate+" ":" "+f+" = "+P.validate+"; ";else if(g){var R=e.util.copy(e);S="";R.level++;var O="valid"+R.level;R.schema=P.validate,R.schemaPath="";var D=e.compositeRule;e.compositeRule=R.compositeRule=!0;var I=e.validate(R).replace(/validate\.schema/g,E);e.compositeRule=R.compositeRule=D,o+=" "+I}else{(L=L||[]).push(o),o="",o+=" "+E+".call( ",o+=e.opts.passContext?"this":"self",o+=v||!1===b.schema?" , "+d+" ":" , "+s+" , "+d+" , validate.schema"+e.schemaPath+" ",o+=" , (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var A=n?"data"+(n-1||""):"parentData",k=n?e.dataPathArr[n]:"parentDataProperty",q=o+=" , "+A+" , "+k+" , rootData ) ";o=L.pop(),!1===b.errors?(o+=" "+f+" = ",$&&(o+=""+e.yieldAwait),o+=q+"; "):o+=$?" var "+(_="customErrors"+i)+" = null; try { "+f+" = "+e.yieldAwait+q+"; } catch (e) { "+f+" = false; if (e instanceof ValidationError) "+_+" = e.errors; else throw e; } ":" "+_+" = null; "+f+" = "+q+"; "}if(b.modifying&&(o+=" if ("+A+") "+d+" = "+A+"["+k+"];"),o+=""+S,b.valid)c&&(o+=" if (true) { ");else{o+=" if ( ",void 0===b.valid?(o+=" !",o+=g?""+O:""+f):o+=" "+!b.valid+" ",o+=") { ",a=this.keyword;(L=L||[]).push(o),o="";var L;(L=L||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ";var z=o;o=L.pop();var C=o+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+z+"]); ":" validate.errors = ["+z+"]; return false; ":" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";o=L.pop(),y?b.errors?"full"!=b.errors&&(o+=" for (var "+x+"="+p+"; "+x+"<errors; "+x+"++) { var "+F+" = vErrors["+x+"]; if ("+F+".dataPath === undefined) "+F+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+F+".schemaPath === undefined) { "+F+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+F+".schema = "+s+"; "+F+".data = "+d+"; "),o+=" } "):!1===b.errors?o+=" "+C+" ":(o+=" if ("+p+" == errors) { "+C+" } else { for (var "+x+"="+p+"; "+x+"<errors; "+x+"++) { var "+F+" = vErrors["+x+"]; if ("+F+".dataPath === undefined) "+F+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+F+".schemaPath === undefined) { "+F+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+F+".schema = "+s+"; "+F+".data = "+d+"; "),o+=" } } "):g?(o+=" var err = ",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+this.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+this.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+d+" "),o+=" } "):o+=" {} ",o+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(o+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===b.errors?o+=" "+C+" ":(o+=" if (Array.isArray("+_+")) { if (vErrors === null) vErrors = "+_+"; else vErrors = vErrors.concat("+_+"); errors = vErrors.length; for (var "+x+"="+p+"; "+x+"<errors; "+x+"++) { var "+F+" = vErrors["+x+"]; if ("+F+".dataPath === undefined) "+F+".dataPath = (dataPath || '') + "+e.errorPath+"; "+F+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(o+=" "+F+".schema = "+s+"; "+F+".data = "+d+"; "),o+=" } } else { "+C+" } "),o+=" } ",c&&(o+=" else { ")}return o}},{}],22:[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),f="";d.level++;var p="valid"+d.level,m={},v={},y=e.opts.ownProperties;for(w in i){var g=i[w],P=Array.isArray(g)?v:m;P[w]=g}a+="var "+c+" = errors;";var E=e.errorPath;a+="var missing"+s+";";for(var w in v)if((P=v[w]).length){if(a+=" if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),h){a+=" && ( ";var b=P;if(b)for(var S=-1,j=b.length-1;S<j;){O=b[S+=1],S&&(a+=" || ");a+=" ( ( "+(k=u+(A=e.util.getProperty(O)))+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:A)+") ) "}a+=")) { ";var _="missing"+s,x="' + "+_+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,_,!0):E+" + "+_);var F=F||[];F.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var $=a;a=F.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var R=P;if(R)for(var O,D=-1,I=R.length-1;D<I;){O=R[D+=1];var A=e.util.getProperty(O),k=(x=e.util.escapeQuotes(O),u+A);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,O,e.opts.jsonPointers)),a+=" if ( "+k+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(w)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(w)+" is present' "),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++; } "}}a+=" } ",h&&(f+="}",a+=" else { ")}e.errorPath=E;var q=d.baseId;for(var w in m){e.util.schemaHasRules(g=m[w],e.RULES.all)&&(a+=" "+p+" = true; if ( "+u+e.util.getProperty(w)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(w)+"') "),a+=") { ",d.schema=g,d.schemaPath=n+e.util.getProperty(w),d.errSchemaPath=l+"/"+e.util.escapeFragment(w),a+=" "+e.validate(d)+" ",d.baseId=q,a+=" } ",h&&(a+=" if ("+p+") { ",f+="}"))}return h&&(a+=" "+f+" if ("+c+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],23:[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=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var f="i"+s,p="schema"+s;d||(a+=" var "+p+" = validate.schema"+n+";"),a+="var "+c+";",d&&(a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"),a+=c+" = false;for (var "+f+"=0; "+f+"<"+p+".length; "+f+"++) if (equal("+u+", "+p+"["+f+"])) { "+c+" = true; break; }",d&&(a+=" } "),a+=" if (!"+c+") { ";var m=m||[];m.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",h&&(a+=" else { "),a}},{}],24:[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||"");if(!1===e.opts.format)return h&&(a+=" if (true) { "),a;var c,d=e.opts.$data&&i&&i.$data;d?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",c="schema"+s):c=i;var f=e.opts.unknownFormats,p=Array.isArray(f);if(d){a+=" var "+(m="format"+s)+" = formats["+c+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",d&&(a+=" ("+c+" !== undefined && typeof "+c+" != 'string') || "),a+=" (","ignore"!=f&&(a+=" ("+c+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+c+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+m+"("+u+") : "+m+"("+u+")) ":" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {"}else{var m;if(!(m=e.formats[i])){if("ignore"==f)return e.logger.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),h&&(a+=" if (true) { "),a;if(p&&f.indexOf(i)>=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<F;)if(_=j[x+=1],e.util.schemaHasRules(_,e.RULES.all)){a+=" "+m+" = true; if ("+u+".length > "+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;E<w;)P=g[E+=1],e.util.schemaHasRules(P,e.RULES.all)?(f.schema=P,f.schemaPath=n+"["+E+"]",f.errSchemaPath=l+"/"+E,a+=" "+e.validate(f)+" ",f.baseId=v):a+=" var "+m+" = true; ",E&&(a+=" if ("+m+" && prevValid"+s+") "+c+" = false; else { ",p+="}"),a+=" if ("+m+") "+c+" = prevValid"+s+" = true;";return e.compositeRule=f.compositeRule=y,a+=p+"if (!"+c+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should match exactly one schema in oneOf' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+="} else { errors = "+d+"; if (vErrors !== null) { if ("+d+") vErrors.length = "+d+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],29:[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;var f=d?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",d&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+f+".test("+c+") ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { pattern: ",s+=d?""+a:""+e.util.toQuotedString(n),s+=" } ",!1!==e.opts.messages&&(s+=" , message: 'should match pattern \"",s+=d?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=d?"validate.schema"+l:""+e.util.toQuotedString(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}},{}],30:[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="key"+s,y="idx"+s,g=f.dataLevel=e.dataLevel+1,P="data"+g,E="dataProperties"+s,w=Object.keys(i||{}),b=e.schema.patternProperties||{},S=Object.keys(b),j=e.schema.additionalProperties,_=w.length||S.length,x=!1===j,F="object"==typeof j&&Object.keys(j).length,$=e.opts.removeAdditional,R=x||F||$,O=e.opts.ownProperties,D=e.baseId,I=e.schema.required;if(I&&(!e.opts.v5||!I.$data)&&I.length<e.opts.loopRequired)var A=e.util.toHash(I);if(e.opts.patternGroups)var k=e.schema.patternGroups||{},q=Object.keys(k);if(a+="var "+d+" = errors;var "+m+" = true;",O&&(a+=" var "+E+" = undefined;"),R){if(a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",_){if(a+=" var isAdditional"+s+" = !(false ",w.length)if(w.length>5)a+=" || validate.schema"+n+"["+v+"] ";else{var L=w;if(L)for(var z=-1,C=L.length-1;z<C;)X=L[z+=1],a+=" || "+v+" == "+e.util.toQuotedString(X)+" "}if(S.length){var Q=S;if(Q)for(var U=-1,V=Q.length-1;U<V;)ne=Q[U+=1],a+=" || "+e.usePattern(ne)+".test("+v+") "}if(e.opts.patternGroups&&q.length){var N=q;if(N){U=-1;for(var T=N.length-1;U<T;)ce=N[U+=1],a+=" || "+e.usePattern(ce)+".test("+v+") "}}a+=" ); if (isAdditional"+s+") { "}if("all"==$)a+=" delete "+u+"["+v+"]; ";else{var M=e.errorPath,H="' + "+v+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers)),x)if($)a+=" delete "+u+"["+v+"]; ";else{a+=" "+m+" = false; ";var K=l;l=e.errSchemaPath+"/additionalProperties";(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+H+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var 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++; ",l=K,h&&(a+=" break; ")}else if(F)if("failing"==$){a+=" var "+d+" = errors; ";var G=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.schema=j,f.schemaPath=e.schemaPath+".additionalProperties",f.errSchemaPath=e.errSchemaPath+"/additionalProperties",f.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);var J=u+"["+v+"]";f.dataPathArr[g]=v;var Z=e.validate(f);f.baseId=D,e.util.varOccurences(Z,P)<2?a+=" "+e.util.varReplace(Z,P,J)+" ":a+=" var "+P+" = "+J+"; "+Z+" ",a+=" if (!"+m+") { errors = "+d+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+v+"]; } ",e.compositeRule=f.compositeRule=G}else{f.schema=j,f.schemaPath=e.schemaPath+".additionalProperties",f.errSchemaPath=e.errSchemaPath+"/additionalProperties",f.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);J=u+"["+v+"]";f.dataPathArr[g]=v;Z=e.validate(f);f.baseId=D,e.util.varOccurences(Z,P)<2?a+=" "+e.util.varReplace(Z,P,J)+" ":a+=" var "+P+" = "+J+"; "+Z+" ",h&&(a+=" if (!"+m+") break; ")}e.errorPath=M}_&&(a+=" } "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}var Y=e.opts.useDefaults&&!e.compositeRule;if(w.length){var W=w;if(W)for(var X,ee=-1,re=W.length-1;ee<re;){X=W[ee+=1];if(e.util.schemaHasRules(pe=i[X],e.RULES.all)){var te=e.util.getProperty(X),ae=(J=u+te,Y&&void 0!==pe.default);f.schema=pe,f.schemaPath=n+te,f.errSchemaPath=l+"/"+e.util.escapeFragment(X),f.errorPath=e.util.getPath(e.errorPath,X,e.opts.jsonPointers),f.dataPathArr[g]=e.util.toQuotedString(X);Z=e.validate(f);if(f.baseId=D,e.util.varOccurences(Z,P)<2){Z=e.util.varReplace(Z,P,J);var se=J}else{se=P;a+=" var "+P+" = "+J+"; "}if(ae)a+=" "+Z+" ";else{if(A&&A[X]){a+=" if ( "+se+" === undefined ",O&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(X)+"') "),a+=") { "+m+" = false; ";M=e.errorPath,K=l;var oe=e.util.escapeQuotes(X);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(M,X,e.opts.jsonPointers)),l=e.errSchemaPath+"/required";(we=we||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+oe+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+oe+"\\'",a+="' "),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++; ",l=K,e.errorPath=M,a+=" } else { "}else h?(a+=" if ( "+se+" === undefined ",O&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(X)+"') "),a+=") { "+m+" = true; } else { "):(a+=" if ("+se+" !== undefined ",O&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(X)+"') "),a+=" ) { ");a+=" "+Z+" } "}}h&&(a+=" if ("+m+") { ",p+="}")}}if(S.length){var ie=S;if(ie)for(var ne,le=-1,he=ie.length-1;le<he;){ne=ie[le+=1];if(e.util.schemaHasRules(pe=b[ne],e.RULES.all)){f.schema=pe,f.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(ne),f.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(ne),a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",a+=" if ("+e.usePattern(ne)+".test("+v+")) { ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);J=u+"["+v+"]";f.dataPathArr[g]=v;Z=e.validate(f);f.baseId=D,e.util.varOccurences(Z,P)<2?a+=" "+e.util.varReplace(Z,P,J)+" ":a+=" var "+P+" = "+J+"; "+Z+" ",h&&(a+=" if (!"+m+") break; "),a+=" } ",h&&(a+=" else "+m+" = true; "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}}}if(e.opts.patternGroups&&q.length){var ue=q;if(ue)for(var ce,de=-1,fe=ue.length-1;de<fe;){var pe,me=k[ce=ue[de+=1]];if(e.util.schemaHasRules(pe=me.schema,e.RULES.all)){f.schema=pe,f.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(ce)+".schema",f.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(ce)+"/schema",a+=" var pgPropCount"+s+" = 0; ",a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",a+=" if ("+e.usePattern(ce)+".test("+v+")) { pgPropCount"+s+"++; ",f.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);J=u+"["+v+"]";f.dataPathArr[g]=v;Z=e.validate(f);f.baseId=D,e.util.varOccurences(Z,P)<2?a+=" "+e.util.varReplace(Z,P,J)+" ":a+=" var "+P+" = "+J+"; "+Z+" ",h&&(a+=" if (!"+m+") break; "),a+=" } ",h&&(a+=" else "+m+" = true; "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}");var ve=me.minimum,ye=me.maximum;if(void 0!==ve||void 0!==ye){a+=" var "+c+" = true; ";K=l;if(void 0!==ve){var ge=ve,Pe="minimum",Ee="less";a+=" "+c+" = pgPropCount"+s+" >= "+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+"<errors; "+v+"++) { vErrors["+v+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(a+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { propertyName: '"+y+"' } ",!1!==e.opts.messages&&(a+=" , message: 'property name \\'"+y+"\\' is invalid' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),h&&(a+=" break; "),a+=" } }"}return h&&(a+=" if ("+c+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.dataLevel,n=e.schema[r],l=e.errSchemaPath+"/"+r,h=!e.opts.allErrors,u="data"+(i||""),c="valid"+e.level;if("#"==n||"#/"==n)e.isRoot?(a=e.async,s="validate"):(a=!0===e.root.schema.$async,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,n,e.isRoot);if(void 0===d){var f=e.MissingRefError.message(e.baseId,n);if("fail"==e.opts.missingRefs){e.logger.error(f);(y=y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { ref: '"+e.util.escapeQuotes(n)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(n)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(n)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),o+=" } "):o+=" {} ";var p=o;o=y.pop(),o+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",h&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,n,f);e.logger.warn(f),h&&(o+=" if (true) { ")}}else if(d.inline){var m=e.util.copy(e);m.level++;var v="valid"+m.level;m.schema=d.schema,m.schemaPath="",m.errSchemaPath=n;o+=" "+e.validate(m).replace(/validate\.schema/g,d.code)+" ",h&&(o+=" if ("+v+") { ")}else a=!0===d.$async,s=d.code}if(s){var y;(y=y||[]).push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+u+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var g=o+=" , "+(i?"data"+(i-1||""):"parentData")+" , "+(i?e.dataPathArr[i]:"parentDataProperty")+", rootData) ";if(o=y.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");h&&(o+=" var "+c+"; "),o+=" try { "+e.yieldAwait+" "+g+"; ",h&&(o+=" "+c+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",h&&(o+=" "+c+" = false; "),o+=" } ",h&&(o+=" if ("+c+") { ")}else o+=" if (!"+g+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",h&&(o+=" else { ")}return o}},{}],33:[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=e.opts.$data&&i&&i.$data;d&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var f="schema"+s;if(!d)if(i.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;y<g;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else p=i;if(d||p.length){var E=e.errorPath,w=d||p.length>=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<F;){D=_[x+=1],x&&(a+=" || ");a+=" ( ( "+(q=u+(k=e.util.getProperty(D)))+" === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(D)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:k)+") ) "}a+=") { ";S="' + "+(R="missing"+s)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,R,!0):E+" + "+R);var $;($=$||[]).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+=" {} ";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 if(w){d||(a+=" var "+f+" = validate.schema"+n+"; ");var R;S="' + "+(R="schema"+s+"["+(x="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,R,e.opts.jsonPointers)),d&&(a+=" if ("+f+" && !Array.isArray("+f+")) { var err = ",!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+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } else if ("+f+" !== undefined) { "),a+=" for (var "+x+" = 0; "+x+" < "+f+".length; "+x+"++) { if ("+u+"["+f+"["+x+"]] === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+f+"["+x+"]) "),a+=") { var err = ",!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+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } } ",d&&(a+=" } ")}else{var O=p;if(O)for(var D,I=-1,A=O.length-1;I<A;){D=O[I+=1];var k=e.util.getProperty(D),q=(S=e.util.escapeQuotes(D),u+k);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,D,e.opts.jsonPointers)),a+=" if ( "+q+" === undefined ",b&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(D)+"') "),a+=") { var err = ",!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+=" {} ",a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; } "}}e.errorPath=E}else h&&(a+=" if (true) {");return a}},{}],34:[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="valid"+o,f=e.opts.$data&&n&&n.$data;if(f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||f)&&!1!==e.opts.uniqueItems){f&&(s+=" var "+d+"; if ("+a+" === false || "+a+" === undefined) "+d+" = true; else if (typeof "+a+" != 'boolean') "+d+" = false; else { "),s+=" var "+d+" = true; if ("+c+".length > 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;t<r.length;t++)if(s(r[t]))return!0}function s(r){return void 0!==e.schema[r.keyword]||r.implements&&function(r){for(var t=r.implements,a=0;a<t.length;a++)if(void 0!==e.schema[t[a]])return!0}(r)}var o="",i=!0===e.schema.$async,n=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),l=e.self._getId(e.schema);if(e.isTop){if(i){e.async=!0;var h="es7"==e.opts.async;e.yieldAwait=h?"await":"yield"}o+=" var validate = ",i?h?o+=" (async function ":("*"!=e.opts.async&&(o+="co.wrap"),o+="(function* "):o+=" (function ",o+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",l&&(e.opts.sourceCode||e.opts.processCode)&&(o+=" /*# sourceURL="+l+" */ ")}if("boolean"==typeof e.schema||!n&&!e.schema.$ref){var u=e.level,c=e.dataLevel,d=e.schema[r="false schema"],f=e.schemaPath+e.util.getProperty(r),p=e.errSchemaPath+"/"+r,m=!e.opts.allErrors,v="data"+(c||""),y="valid"+u;if(!1===e.schema){e.isTop?m=!0:o+=" var "+y+" = false; ";(Y=Y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(E||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: {} ",!1!==e.opts.messages&&(o+=" , message: 'boolean schema is false' "),e.opts.verbose&&(o+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),o+=" } "):o+=" {} ";var g=o;o=Y.pop(),o+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else o+=e.isTop?i?" return data; ":" validate.errors = null; return true; ":" var "+y+" = true; ";return e.isTop&&(o+=" }); return validate; "),o}if(e.isTop){var P=e.isTop;u=e.level=0,c=e.dataLevel=0,v="data";e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[void 0],o+=" var vErrors = null; ",o+=" var errors = 0; ",o+=" if (rootData === undefined) rootData = data; "}else{u=e.level,v="data"+((c=e.dataLevel)||"");if(l&&(e.baseId=e.resolve.url(e.baseId,l)),i&&!e.async)throw new Error("async schema in sync schema");o+=" var errs_"+u+" = errors;"}y="valid"+u,m=!e.opts.allErrors;var E,w="",b="",S=e.schema.type,j=Array.isArray(S);if(j&&1==S.length&&(S=S[0],j=!1),e.schema.$ref&&n){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');!0!==e.opts.extendRefs&&(n=!1,e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(S){if(e.opts.coerceTypes)var _=e.util.coerceToTypes(e.opts.coerceTypes,S);var x=e.RULES.types[S];if(_||j||!0===x||x&&!a(x)){f=e.schemaPath+".type",p=e.errSchemaPath+"/type",f=e.schemaPath+".type",p=e.errSchemaPath+"/type";if(o+=" if ("+e.util[j?"checkDataTypes":"checkDataType"](S,v,!0)+") { ",_){var F="dataType"+u,$="coerced"+u;o+=" var "+F+" = typeof "+v+"; ","array"==e.opts.coerceTypes&&(o+=" if ("+F+" == 'object' && Array.isArray("+v+")) "+F+" = 'array'; "),o+=" var "+$+" = undefined; ";var R="",O=_;if(O)for(var D,I=-1,A=O.length-1;I<A;)D=O[I+=1],I&&(o+=" if ("+$+" === undefined) { ",R+="}"),"array"==e.opts.coerceTypes&&"array"!=D&&(o+=" if ("+F+" == 'array' && "+v+".length == 1) { "+$+" = "+v+" = "+v+"[0]; "+F+" = typeof "+v+"; } "),"string"==D?o+=" if ("+F+" == 'number' || "+F+" == 'boolean') "+$+" = '' + "+v+"; else if ("+v+" === null) "+$+" = ''; ":"number"==D||"integer"==D?(o+=" if ("+F+" == 'boolean' || "+v+" === null || ("+F+" == 'string' && "+v+" && "+v+" == +"+v+" ","integer"==D&&(o+=" && !("+v+" % 1)"),o+=")) "+$+" = +"+v+"; "):"boolean"==D?o+=" if ("+v+" === 'false' || "+v+" === 0 || "+v+" === null) "+$+" = false; else if ("+v+" === 'true' || "+v+" === 1) "+$+" = true; ":"null"==D?o+=" if ("+v+" === '' || "+v+" === 0 || "+v+" === false) "+$+" = null; ":"array"==e.opts.coerceTypes&&"array"==D&&(o+=" if ("+F+" == 'string' || "+F+" == 'number' || "+F+" == 'boolean' || "+v+" == null) "+$+" = ["+v+"]; ");o+=" "+R+" if ("+$+" === undefined) { ";(Y=Y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: { type: '",o+=j?""+S.join(","):""+S,o+="' } ",!1!==e.opts.messages&&(o+=" , message: 'should be ",o+=j?""+S.join(","):""+S,o+="' "),e.opts.verbose&&(o+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),o+=" } "):o+=" {} ";g=o;o=Y.pop(),o+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } else { ";var k=c?"data"+(c-1||""):"parentData";o+=" "+v+" = "+$+"; ",c||(o+="if ("+k+" !== undefined)"),o+=" "+k+"["+(c?e.dataPathArr[c]:"parentDataProperty")+"] = "+$+"; } "}else{(Y=Y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: { type: '",o+=j?""+S.join(","):""+S,o+="' } ",!1!==e.opts.messages&&(o+=" , message: 'should be ",o+=j?""+S.join(","):""+S,o+="' "),e.opts.verbose&&(o+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),o+=" } "):o+=" {} ";g=o;o=Y.pop(),o+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}o+=" } "}}if(e.schema.$ref&&!n)o+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",m&&(o+=" } if (errors === ",o+=P?"0":"errs_"+u,o+=") { ",b+="}");else{e.opts.v5&&e.schema.patternGroups&&e.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');var q=e.RULES;if(q)for(var L=-1,z=q.length-1;L<z;)if(x=q[L+=1],a(x)){if(x.type&&(o+=" if ("+e.util.checkDataType(x.type,v)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==x.type&&e.schema.properties){d=e.schema.properties;var C=Object.keys(d);if(C)for(var Q,U=-1,V=C.length-1;U<V;){if(void 0!==(T=d[Q=C[U+=1]]).default){o+=" if ("+(H=v+e.util.getProperty(Q))+" === undefined) "+H+" = ",o+="shared"==e.opts.useDefaults?" "+e.useDefault(T.default)+" ":" "+JSON.stringify(T.default)+" ",o+="; "}}}else if("array"==x.type&&Array.isArray(e.schema.items)){var N=e.schema.items;if(N){I=-1;for(var T,M=N.length-1;I<M;)if(void 0!==(T=N[I+=1]).default){var H;o+=" if ("+(H=v+"["+I+"]")+" === undefined) "+H+" = ",o+="shared"==e.opts.useDefaults?" "+e.useDefault(T.default)+" ":" "+JSON.stringify(T.default)+" ",o+="; "}}}var K=x.rules;if(K)for(var B,G=-1,J=K.length-1;G<J;)if(B=K[G+=1],s(B)){var Z=B.code(e,B.keyword,x.type);Z&&(o+=" "+Z+" ",m&&(w+="}"))}if(m&&(o+=" "+w+" ",w=""),x.type&&(o+=" } ",S&&S===x.type&&!_)){o+=" else { ";var Y;f=e.schemaPath+".type",p=e.errSchemaPath+"/type";(Y=Y||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(p)+" , params: { type: '",o+=j?""+S.join(","):""+S,o+="' } ",!1!==e.opts.messages&&(o+=" , message: 'should be ",o+=j?""+S.join(","):""+S,o+="' "),e.opts.verbose&&(o+=" , schema: validate.schema"+f+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+v+" "),o+=" } "):o+=" {} ";g=o;o=Y.pop(),o+=!e.compositeRule&&m?e.async?" throw new ValidationError(["+g+"]); ":" validate.errors = ["+g+"]; return false; ":" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",o+=" } "}m&&(o+=" if (errors === ",o+=P?"0":"errs_"+u,o+=") { ",b+="}")}}return m&&(o+=" "+b+" "),P?(i?(o+=" if (errors === 0) return data; ",o+=" else throw new ValidationError(vErrors); "):(o+=" validate.errors = vErrors; ",o+=" return errors === 0; "),o+=" }); return validate;"):o+=" var "+y+" = errors === errs_"+u+";",o=e.util.cleanUpCode(o),P&&(o=e.util.finalCleanUpCode(o,i)),o}},{}],36:[function(e,r,t){"use strict";var a=/^[a-z_$][a-z0-9_$-]*$/i,s=e("./dotjs/custom");r.exports={add:function(e,r){function t(e,r,t){for(var a,o=0;o<i.length;o++){var n=i[o];if(n.type==r){a=n;break}}a||i.push(a={type:r,rules:[]});var l={keyword:e,definition:t,custom:!0,code:s,implements:t.implements};a.rules.push(l),i.custom[e]=l}function o(e){if(!i.types[e])throw new Error("Unknown type "+e)}var i=this.RULES;if(i.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){if(r.macro&&void 0!==r.valid)throw new Error('"valid" option cannot be used with macro keywords');var n=r.type;if(Array.isArray(n)){var l,h=n.length;for(l=0;l<h;l++)o(n[l]);for(l=0;l<h;l++)t(e,n[l],r)}else n&&o(n),t(e,n,r);var u=!0===r.$data&&this._opts.$data;if(u&&!r.validate)throw new Error('$data support: "validate" function is not defined');var c=r.metaSchema;c&&(u&&(c={anyOf:[c,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#"}]}),r.validateSchema=this.compile(c,!0))}return i.keywords[e]=i.all[e]=!0,this},get:function(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1},remove:function(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}return this}}},{"./dotjs/custom":21}],37:[function(e,r,t){"use strict";var a="http://json-schema.org/draft-06/schema";r.exports=function(e){var r=e._opts.defaultMeta,t="string"==typeof r?{$ref:r}:e.getSchema(a)?{$ref:a}:{};e.addKeyword("patternGroups",{metaSchema:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{type:"integer",minimum:0},minimum:{type:"integer",minimum:0},schema:t},additionalProperties:!1}}}),e.RULES.all.properties.implements.push("patternGroups")}},{}],38:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#",description:"Meta-schema for $data reference (JSON-schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],39:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"http://json-schema.org/draft-06/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},title:{type:"string"},description:{type:"string"},default:{},examples:{type:"array",items:{}},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:{},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:{}}},{}],40:[function(e,r,t){function a(e){var r=this,t=n.call(arguments,1);return new Promise(function(a,i){function n(r){var t;try{t=e.next(r)}catch(e){return i(e)}h(t)}function l(r){var t;try{t=e.throw(r)}catch(e){return i(e)}h(t)}function h(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&o(t)?t.then(n,l):l(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}if("function"==typeof e&&(e=e.apply(r,t)),!e||"function"!=typeof e.next)return a(e);n()})}function s(e){return e?o(e)?e:function(e){var r=e.constructor;return!!r&&("GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName||i(r.prototype))}(e)||i(e)?a.call(this,e):"function"==typeof e?function(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){if(e)return a(e);arguments.length>2&&(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;i<t.length;i++){var n=t[i],l=s.call(this,e[n]);l&&o(l)?function(e,t){r[t]=void 0,a.push(e.then(function(e){r[t]=e}))}(l,n):r[n]=e[n]}return Promise.all(a).then(function(){return r})}.call(this,e):e:e}function o(e){return"function"==typeof e.then}function i(e){return"function"==typeof e.next&&"function"==typeof e.throw}var n=Array.prototype.slice;r.exports=a.default=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],41:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;var a,s=Array.isArray(r),o=Array.isArray(t);if(s&&o){if(r.length!=t.length)return!1;for(a=0;a<r.length;a++)if(!e(r[a],t[a]))return!1;return!0}if(s!=o)return!1;if(r&&t&&"object"==typeof r&&"object"==typeof t){var i=Object.keys(r);if(i.length!==Object.keys(t).length)return!1;var n=r instanceof Date,l=t instanceof Date;if(n&&l)return r.getTime()==t.getTime();if(n!=l)return!1;var h=r instanceof RegExp,u=t instanceof RegExp;if(h&&u)return r.toString()==t.toString();if(h!=u)return!1;for(a=0;a<i.length;a++)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=0;a<i.length;a++)if(!e(r[i[a]],t[i[a]]))return!1;return!0}return!1}},{}],42:[function(e,r,t){"use strict";r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t="boolean"==typeof r.cycles&&r.cycles,a=r.cmp&&function(e){return function(r){return function(t,a){return e({key:t,value:r[t]},{key:a,value:r[a]})}}}(r.cmp),s=[];return function e(r){if(r&&r.toJSON&&"function"==typeof r.toJSON&&(r=r.toJSON()),void 0!==r){if("number"==typeof r)return isFinite(r)?""+r:"null";if("object"!=typeof r)return JSON.stringify(r);var o,i;if(Array.isArray(r)){for(i="[",o=0;o<r.length;o++)o&&(i+=","),i+=e(r[o])||"null";return i+"]"}if(null===r)return"null";if(-1!==s.indexOf(r)){if(t)return JSON.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}var n=s.push(r)-1,l=Object.keys(r).sort(a&&a(r));for(i="",o=0;o<l.length;o++){var h=l[o],u=e(r[h]);u&&(i&&(i+=","),i+=JSON.stringify(h)+":"+u)}return s.splice(n,1),"{"+i+"}"}}(e)}},{}],43:[function(e,r,t){"use strict";function a(e,r,t,o,i,n,l,h,u){if(t&&"object"==typeof t&&!Array.isArray(t)){r(t,o,i,n,l,h,u);for(var c in t){var d=t[c];if(Array.isArray(d)){if(c in s.arrayKeywords)for(var f=0;f<d.length;f++)a(e,r,d[f],o+"/"+c+"/"+f,i,o,c,t,f)}else if(c in s.propsKeywords){if(d&&"object"==typeof d)for(var p in d)a(e,r,d[p],o+"/"+c+"/"+function(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}(p),i,o,c,t,p)}else(c in s.keywords||e.allKeys&&!(c in s.skipKeywords))&&a(e,r,d,o+"/"+c,i,o,c,t)}}}var s=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),a(r,t,e,"",e)};s.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},s.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},s.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},s.skipKeywords={enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],44:[function(e,r,t){(function(e){!function(a){function s(e){throw new RangeError(D[e])}function o(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function i(e,r){var t=e.split("@"),a="";t.length>1&&(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<o;)(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<o?56320==(64512&(t=e.charCodeAt(s++)))?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--):a.push(r);return a}function l(e){return o(e,function(e){var r="";return e>65535&&(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<t;++a)e.charCodeAt(a)>=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;o<v;){for(i=y,n=1,u=E;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,!(d<f);u+=E)n>A(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<v;++l)(m=e[l])<128&&j.push(k(m));for(a=o=j.length,o&&j.push(F);a<v;){for(h=P,l=0;l<v;++l)(m=e[l])>=r&&m<h&&(h=m);for(h-r>A((P-t)/(y=a+1))&&s("overflow"),t+=(h-r)*y,r=h,l=0;l<v;++l)if((m=e[l])<r&&++t>P&&s("overflow"),m==r){for(d=t,f=E;p=f<=i?w:f>=i+b?b:f-i,!(d<p);f+=E)j.push(k(u(p+(S=d-p)%(g=E-p),0))),d=A(S/g);j.push(k(u(d,0))),i=c(t,y,a==o),t=0,++a}++t,++r}return j.join("")}var p="object"==typeof t&&t&&!t.nodeType&&t,m="object"==typeof r&&r&&!r.nodeType&&r,v="object"==typeof e&&e;v.global!==v&&v.window!==v&&v.self!==v||(a=v);var y,g,P=2147483647,E=36,w=1,b=26,S=38,j=700,_=72,x=128,F="-",$=/^xn--/,R=/[^\x20-\x7E]/,O=/[\x2E\u3002\uFF0E\uFF61]/g,D={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 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<h;++u){var c,d,f,p,m=e[u].replace(n,"%20"),v=m.indexOf(t);v>=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<e.length;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],47:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":45,"./encode":46}],48:[function(e,r,t){"use strict";function a(){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}function s(e,r,t){if(e&&i.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}var o=e("punycode"),i=e("./util");t.parse=s,t.resolve=function(e,r){return s(e,!1,!0).resolve(r)},t.resolveObject=function(e,r){return e?s(e,!1,!0).resolveObject(r):r},t.format=function(e){return i.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)},t.Url=a;var n=/^([a-z0-9.+-]+:)/i,l=/:[0-9]*$/,h=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,u=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\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&&a<e.indexOf("#")?"?":"#",l=e.split(s);l[0]=l[0].replace(/\\/g,"/");var u=e=l.join(s);if(u=u.trim(),!t&&1===e.split("#").length){var E=h.exec(u);if(E)return this.path=u,this.href=u,this.pathname=E[1],E[2]?(this.search=E[2],this.query=r?P.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var w=n.exec(u);if(w){var b=(w=w[0]).toLowerCase();this.protocol=b,u=u.substr(w.length)}if(t||w||u.match(/^\/\/[^@\/]+@[^@\/]+/)){var S="//"===u.substr(0,2);!S||w&&y[w]||(u=u.substr(2),this.slashes=!0)}if(!y[w]&&(S||w&&!g[w])){for(var j=-1,_=0;_<f.length;_++){-1!==($=u.indexOf(f[_]))&&(-1===j||$<j)&&(j=$)}var x,F;-1!==(F=-1===j?u.lastIndexOf("@"):u.lastIndexOf("@",j))&&(x=u.slice(0,F),u=u.slice(F+1),this.auth=decodeURIComponent(x)),j=-1;for(_=0;_<d.length;_++){var $;-1!==($=u.indexOf(d[_]))&&(-1===j||$<j)&&(j=$)}-1===j&&(j=u.length),this.host=u.slice(0,j),u=u.slice(j),this.parseHost(),this.hostname=this.hostname||"";var R="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!R)for(var O=this.hostname.split(/\./),D=(_=0,O.length);_<D;_++){var I=O[_];if(I&&!I.match(p)){for(var A="",k=0,q=I.length;k<q;k++)I.charCodeAt(k)>127?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;_<D;_++){var U=c[_];if(-1!==u.indexOf(U)){var V=encodeURIComponent(U);V===U&&(V=escape(U)),u=u.split(U).join(V)}}var N=u.indexOf("#");-1!==N&&(this.hash=u.substr(N),u=u.slice(0,N));var T=u.indexOf("?");if(-1!==T?(this.search=u.substr(T),this.query=u.substr(T+1),r&&(this.query=P.parse(this.query)),u=u.slice(0,T)):r&&(this.search="",this.query={}),u&&(this.pathname=u),g[b]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){this.path=(Q=this.pathname||"")+(this.search||"")}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&i.isObject(this.query)&&Object.keys(this.query).length&&(o=P.stringify(this.query));var n=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||g[r])&&!1!==s?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),n&&"?"!==n.charAt(0)&&(n="?"+n),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),n=n.replace("#","%23"),r+s+t+n+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(i.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;o<s.length;o++){var n=s[o];t[n]=this[n]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var l=Object.keys(e),h=0;h<l.length;h++){var u=l[h];"protocol"!==u&&(t[u]=e[u])}return g[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!g[e.protocol]){for(var c=Object.keys(e),d=0;d<c.length;d++){var f=c[d];t[f]=e[f]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||y[e.protocol])t.pathname=e.pathname;else{for(var p=(e.pathname||"").split("/");p.length&&!(e.host=p.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==p[0]&&p.unshift(""),p.length<2&&p.unshift(""),t.pathname=p.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){t.path=(t.pathname||"")+(t.search||"")}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var m=t.pathname&&"/"===t.pathname.charAt(0),v=e.host||e.pathname&&"/"===e.pathname.charAt(0),P=v||m||t.host&&e.pathname,E=P,w=t.pathname&&t.pathname.split("/")||[],b=(p=e.pathname&&e.pathname.split("/")||[],t.protocol&&!g[t.protocol]);if(b&&(t.hostname="",t.port=null,t.host&&(""===w[0]?w[0]=t.host:w.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===p[0]?p[0]=e.host:p.unshift(e.host)),e.host=null),P=P&&(""===p[0]||""===w[0])),v)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,w=p;else if(p.length)w||(w=[]),w.pop(),w=w.concat(p),t.search=e.search,t.query=e.query;else if(!i.isNullOrUndefined(e.search)){if(b){t.hostname=t.host=w.shift();($=!!(t.host&&t.host.indexOf("@")>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<e.length;s++)this.addSchema(e[s],void 0,t,a);return this}var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");return r=d.normalizeId(r||o),h(this,r),this._schemas[r]=this._addSchema(e,t,a,!0),this},a.prototype.addMetaSchema=function(e,r,t){return this.addSchema(e,r,t,!0),this},a.prototype.validateSchema=function(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||function(e){var r=e._opts.meta;return e._opts.defaultMeta="object"==typeof r?e._getId(r)||r:e.getSchema(j)?j:void 0,e._opts.defaultMeta}(this)))return this.logger.warn("meta-schema not available"),this.errors=null,!0;var a=this._formats.uri;this._formats.uri="function"==typeof a?this._schemaUriFormatFunc:this._schemaUriFormat;var s;try{s=this.validate(t,e)}finally{this._formats.uri=a}if(!s&&r){var o="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(o);this.logger.error(o)}return s},a.prototype.getSchema=function(e){var r=s(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return function(e,r){var t=d.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=c.call(e,a,s,void 0,o);return e._fragments[r]=new p({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}(this,e)}},a.prototype.removeSchema=function(e){if(e instanceof RegExp)return o(this,this._schemas,e),o(this,this._refs,e),this;switch(typeof e){case"undefined":return o(this,this._schemas),o(this,this._refs),this._cache.clear(),this;case"string":var r=s(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],delete this._refs[e],this;case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var i=this._getId(e);i&&(i=d.normalizeId(i),delete this._schemas[i],delete this._refs[i])}return this},a.prototype.addFormat=function(e,r){return"string"==typeof r&&(r=new RegExp(r)),this._formats[e]=r,this},a.prototype.errorsText=function(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=r||{}).separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)},a.prototype._addSchema=function(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=d.normalizeId(this._getId(e));n&&a&&h(this,n);var l,u=!1!==this._opts.validateSchema&&!r;u&&!(l=n&&n==d.normalizeId(e.$schema))&&this.validateSchema(e,!0);var c=d.ids.call(this,e),f=new p({id:n,schema:e,localRefs:c,cacheKey:o,meta:t});return"#"!=n[0]&&a&&(this._refs[n]=f),this._cache.put(o,f),u&&l&&this.validateSchema(e,!0),f},a.prototype._compile=function(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r||t,!0===e.schema.$async&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=this._opts,this._opts=this._metaOpts);var s;try{s=c.call(this,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(this._opts=a)}return e.validate=s,e.refs=s.refs,e.refVal=s.refVal,e.root=s.root,s},a.prototype.compileAsync=e("./compile/async");var b=e("./keyword");a.prototype.addKeyword=b.add,a.prototype.getKeyword=b.get,a.prototype.removeKeyword=b.remove;var S=e("./compile/error_classes");a.ValidationError=S.Validation,a.MissingRefError=S.MissingRef,a.$dataMetaSchema=g;var j="http://json-schema.org/draft-06/schema",_=["removeAdditional","useDefaults","coerceTypes"],x=["/properties"]},{"./$data":1,"./cache":2,"./compile":7,"./compile/async":4,"./compile/error_classes":5,"./compile/formats":6,"./compile/resolve":8,"./compile/rules":9,"./compile/schema_obj":10,"./compile/util":12,"./keyword":36,"./patternGroups":37,"./refs/$data.json":38,"./refs/json-schema-draft-06.json":39,co:40,"fast-json-stable-stringify":42}]},{},[])("ajv")});
+//# sourceMappingURL=ajv.min.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/dist/ajv.min.js.map b/deps/npm/node_modules/ajv/dist/ajv.min.js.map
new file mode 100644
index 0000000000..e591b58a64
--- /dev/null
+++ b/deps/npm/node_modules/ajv/dist/ajv.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["0"],"names":["f","exports","module","define","amd","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","KEYWORDS","metaSchema","keywordsJsonPointers","JSON","parse","stringify","j","segments","split","keywords","key","schema","anyOf","$ref","2","Cache","_cache","prototype","put","value","get","del","clear","3","allOf","const","contains","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","propertyNames","required","uniqueItems","validate","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/const","../dotjs/contains","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/propertyNames","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","compileAsync","meta","callback","loadMetaSchemaOf","sch","$schema","getSchema","Promise","resolve","_compileAsync","schemaObj","_compile","MissingRefError","removePromise","_loadingSchemas","ref","added","_refs","_schemas","missingSchema","missingRef","schemaPromise","_opts","loadSchema","then","addSchema","undefined","loadMissingSchema","p","_addSchema","v","MissingRef","./error_classes","5","baseId","message","url","normalizeId","fullPath","errorSubclass","Subclass","Object","create","constructor","Validation","errors","ajv","validation","./resolve","6","formats","mode","util","copy","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","regex","Z_ANCHOR","test","RegExp","HOSTNAME","URI","URITEMPLATE","URL","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","uri","uri-reference","uri-template","email","hostname","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","dateTime","DATE_TIME_SEPARATOR","NOT_URI_FRAGMENT","./util","7","compile","root","localRefs","callValidate","compilation","result","apply","arguments","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","errorClasses","RULES","resolveRef","usePattern","useDefault","useCustomRule","opts","logger","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","makeValidate","co","equal","ucs2length","ValidationError","error","refs","source","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","validateSchema","definition","errorsText","macro","keyword","c","compIndex","compiling","_compilations","_formats","cv","splice","arr","statement","fast-deep-equal","fast-json-stable-stringify","8","SchemaObject","res","resolveSchema","refPath","_getFullPath","getFullPath","_getId","id","parsedRef","resolveUrl","getJsonPointer","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","Array","isArray","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","traverse","ids","schemaId","baseIds","","fullPaths","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","toHash","./schema_obj","json-schema-traverse","9","ruleModules","type","rules","ALL","all","types","forEach","group","map","implKeywords","keys","k","push","implements","concat","custom","./_rules","10","obj","11","len","pos","charCodeAt","12","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","joinPaths","b","escapeJsonPointer","unescapeJsonPointer","to","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","getPath","prop","getData","$data","lvl","paths","up","jsonPointer","segment","decodeURIComponent","encodeURIComponent","./ucs2length","13","$keyword","$ruleType","$schemaValue","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","Math","14","15","unicode","16","17","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","18","$valid","$errs","every","$wasComposite","19","20","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","passContext","$parentData","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","22","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","warn","indexOf","$formatRef","25","$additionalItems","additionalItems","$currErrSchemaPath","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$dataProperties","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","v5","loopRequired","$requiredHash","patternGroups","$pgProperties","$pgPropertyKeys","i1","$pProperty","arr3","l3","$pgProperty","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","31","$invalidName","32","$refCode","$refVal","$message","missingRefs","__callValidate","33","$propertySch","$loopRequired","i3","34","35","$shouldUseGroup","$rulesGroup","$shouldUseRule","$rule","impl","$ruleImplementsSomeKeyword","$refKeywords","$id","$es7","yieldAwait","$top","rootId","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$dataType","$coerced","$bracesCoercion","$type","36","add","_addRule","ruleGroup","rg","remove","./dotjs/custom","37","META_SCHEMA_ID","defaultMeta","metaSchemaRef","addKeyword","38","description","39","title","definitions","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","examples","exclusiveMinimum","exclusiveMaximum","40","gen","ctx","args","reject","onFulfilled","ret","next","onRejected","err","throw","done","toPromise","isPromise","TypeError","String","name","displayName","isGenerator","isGeneratorFunction","fn","val","isObject","results","promises","promise","defer","wrap","createPromise","__generatorFunction__","41","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","hasOwnProperty","42","cmp","cycles","node","seen","toJSON","isFinite","seenIndex","sort","43","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","skipKeywords","44","RangeError","mapDomain","string","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","m","q","currentValue","handledCPCountPlusOne","qMinusT","freeExports","nodeType","freeModule","freeGlobal","punycode","regexPunycode","regexNonASCII","overflow","not-basic","invalid-input","fromCharCode","version","ucs2","toASCII","toUnicode","toLowerCase","45","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","x","idx","substr","xs","46","stringifyPrimitive","objectKeys","ks","47","./decode","./encode","48","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","relative","resolveObject","isString","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","49","arg","log","noop","console","setLogger","_fragments","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","cache","_get$Id","_get$IdOrId","chooseGetId","errorDataPath","serialize","_metaOpts","metaOpts","META_IGNORE_OPTIONS","getMetaSchemaOptions","addFormat","addInitialFormats","$dataSchema","addMetaSchema","$dataMetaSchema","META_SUPPORT_DATA","addDraft6MetaSchema","optsSchemas","schemas","addInitialSchemas","_getSchemaObj","keyRef","_removeAllSchemas","cacheKey","checkUnique","compileSchema","schemaKeyRef","_meta","_skipValidation","skipValidation","throwOrLogError","currentUriFormat","fragment","_getSchemaFragment","removeSchema","separator","text","dataPath","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","customKeyword","getKeyword","removeKeyword","./$data","./cache","./compile","./compile/async","./compile/error_classes","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/util","./keyword","./patternGroups","./refs/$data.json","./refs/json-schema-draft-06.json"],"mappings":"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","file":"ajv.min.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/ajv/dist/nodent.min.js b/deps/npm/node_modules/ajv/dist/nodent.min.js
new file mode 100644
index 0000000000..330005546b
--- /dev/null
+++ b/deps/npm/node_modules/ajv/dist/nodent.min.js
@@ -0,0 +1,2 @@
+/* nodent 3.1.5: NoDent - Asynchronous Javascript language extensions */
+require=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){t.exports=function(t){switch(parseInt(t.version)){case 2:case 3:t.plugins.asyncawait=e("./acorn-v3");break;case 4:case 5:t.plugins.asyncawait=e("./acorn-v4");break;default:throw new Error("acorn-es7-plugin requires Acorn v2, 3, 4 or 5")}return t}},{"./acorn-v3":2,"./acorn-v4":3}],2:[function(e,t,n){function r(e,t){return e.lineStart>=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 <member>(value)' cannot be be async"),"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set <member>(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 <member>(value)' cannot be be async"):(this.__isAsyncProp=!0,"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set <member>(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;r<t.length;r+=2){if((n+=t[r])>e)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<t))return new I(n,t-r);++n,r=i.index+i[0].length}}function c(e){var t={};for(var n in D)t[n]=e&&a(e,n)?e[n]:D[n];if(t.ecmaVersion>=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<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},q.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var z=V.prototype;z.parseTopLevel=function(e){var t={};for(e.body||(e.body=[]);this.type!==L.eof;){var n=this.parseStatement(!0,!0,t);e.body.push(n)}return this.adaptDirectivePrologue(e.body),this.next(),this.options.ecmaVersion>=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<this.labels.length;++r){var i=this.labels[r];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(n||"loop"===i.kind))break;if(e.label&&n)break}}return r===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,n?"BreakStatement":"ContinueStatement")},z.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},z.parseDoStatement=function(e){return this.next(),this.labels.push(W),e.body=this.parseStatement(!1),this.labels.pop(),this.expect(L._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=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<i.length;r+=1){i[r].name===t&&this.raise(n.start,"Label '"+t+"' is already declared")}for(var s=this.type.isLoop?"loop":this.type===L._switch?"switch":null,o=this.labels.length-1;o>=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<o.length;s+=1){var a=o[s];this.checkUnreserved(a.local)}e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},z.checkExport=function(e,t,n){e&&(a(e,t)&&this.raiseRecoverable(n,"Duplicate export '"+t+"'"),e[t]=!0)},z.checkPatternExport=function(e,t){var n=t.type;if("Identifier"==n)this.checkExport(e,t.name,t.start);else if("ObjectPattern"==n)for(var r=0,i=t.properties;r<i.length;r+=1){var s=i[r];this.checkPatternExport(e,s.value)}else if("ArrayPattern"==n)for(var o=0,a=t.elements;o<a.length;o+=1){var u=a[o];u&&this.checkPatternExport(e,u)}else"AssignmentPattern"==n?this.checkPatternExport(e,t.left):"ParenthesizedExpression"==n&&this.checkPatternExport(e,t.expression)},z.checkVariableExport=function(e,t){if(e)for(var n=0,r=t;n<r.length;n+=1){var i=r[n];this.checkPatternExport(e,i.id)}},z.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},z.parseExportSpecifiers=function(e){var t=[],n=!0;for(this.expect(L.braceL);!this.eat(L.braceR);){if(n)n=!1;else if(this.expect(L.comma),this.afterTrailingComma(L.braceR))break;var r=this.startNode();r.local=this.parseIdent(!0),r.exported=this.eatContextual("as")?this.parseIdent(!0):r.local,this.checkExport(e,r.exported.name,r.exported.start),t.push(this.finishNode(r,"ExportSpecifier"))}return t},z.parseImport=function(e){return this.next(),this.type===L.string?(e.specifiers=J,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===L.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},z.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===L.name){var n=this.startNode();if(n.local=this.parseIdent(),this.checkLVal(n.local,"let"),e.push(this.finishNode(n,"ImportDefaultSpecifier")),!this.eat(L.comma))return e}if(this.type===L.star){var r=this.startNode();return this.next(),this.expectContextual("as"),r.local=this.parseIdent(),this.checkLVal(r.local,"let"),e.push(this.finishNode(r,"ImportNamespaceSpecifier")),e}for(this.expect(L.braceL);!this.eat(L.braceR);){if(t)t=!1;else if(this.expect(L.comma),this.afterTrailingComma(L.braceR))break;var i=this.startNode();i.imported=this.parseIdent(!0),this.eatContextual("as")?i.local=this.parseIdent():(this.checkUnreserved(i.imported),i.local=i.imported),this.checkLVal(i.local,"let"),e.push(this.finishNode(i,"ImportSpecifier"))}return e},z.adaptDirectivePrologue=function(e){for(var t=0;t<e.length&&this.isDirectiveCandidate(e[t]);++t)e[t].directive=e[t].expression.raw.slice(1,-1)},z.isDirectiveCandidate=function(e){return"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var H=V.prototype;H.toAssignable=function(e,t){if(this.options.ecmaVersion>=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<r.length;n+=1){var i=r[n];"init"!==i.kind&&this.raise(i.key.start,"Object pattern can't contain getter or setter"),this.toAssignable(i.value,t)}break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t);break;case"AssignmentExpression":if("="!==e.operator){this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break}e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":this.toAssignable(e.expression,t);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}return e},H.toAssignableList=function(e,t){var n=e.length;if(n){var r=e[n-1];if(r&&"RestElement"==r.type)--n;else if(r&&"SpreadElement"==r.type){r.type="RestElement";var i=r.argument;this.toAssignable(i,t),--n}6===this.options.ecmaVersion&&t&&r&&"RestElement"===r.type&&"Identifier"!==r.argument.type&&this.unexpected(r.argument.start)}for(var s=0;s<n;s++){var o=e[s];o&&this.toAssignable(o,t)}return e},H.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},H.parseRestBinding=function(){var e=this.startNode();return this.next(),6===this.options.ecmaVersion&&this.type!==L.name&&this.unexpected(),e.argument=this.parseBindingAtom(),this.finishNode(e,"RestElement")},H.parseBindingAtom=function(){if(this.options.ecmaVersion>=6)switch(this.type){case L.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(L.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case L.braceL:return this.parseObj(!0)}return this.parseIdent()},H.parseBindingList=function(e,t,n){for(var r=[],i=!0;!this.eat(e);)if(i?i=!1:this.expect(L.comma),t&&this.type===L.comma)r.push(null);else{if(n&&this.afterTrailingComma(e))break;if(this.type===L.ellipsis){var s=this.parseRestBinding();this.parseBindingListItem(s),r.push(s),this.type===L.comma&&this.raise(this.start,"Comma is not permitted after the rest element"),this.expect(e);break}var o=this.parseMaybeDefault(this.start,this.startLoc);this.parseBindingListItem(o),r.push(o)}return r},H.parseBindingListItem=function(e){return e},H.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(L.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")},H.checkLVal=function(e,t,n){switch(e.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),n&&(a(n,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),n[e.name]=!0),t&&"none"!==t&&(("var"===t&&!this.canDeclareVarName(e.name)||"var"!==t&&!this.canDeclareLexicalName(e.name))&&this.raiseRecoverable(e.start,"Identifier '"+e.name+"' has already been declared"),"var"===t?this.declareVarName(e.name):this.declareLexicalName(e.name));break;case"MemberExpression":t&&this.raiseRecoverable(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var r=0,i=e.properties;r<i.length;r+=1){var s=i[r];this.checkLVal(s.value,t,n)}break;case"ArrayPattern":for(var o=0,u=e.elements;o<u.length;o+=1){var c=u[o];c&&this.checkLVal(c,t,n)}break;case"AssignmentPattern":this.checkLVal(e.left,t,n);break;case"RestElement":this.checkLVal(e.argument,t,n);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,n);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var Y=V.prototype;Y.checkPropClash=function(e,t){if(!(this.options.ecmaVersion>=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;t<n.length;t+=1){if("Identifier"!==n[t].type)return!1}return!0},Y.checkParams=function(e,t){for(var n={},r=0,i=e.params;r<i.length;r+=1){var s=i[r];this.checkLVal(s,"var",t?null:n)}},Y.parseExprList=function(e,t,n,r){for(var i=[],s=!0;!this.eat(e);){if(s)s=!1;else if(this.expect(L.comma),t&&this.afterTrailingComma(e))break;var o=void 0;n&&this.type===L.comma?o=null:this.type===L.ellipsis?(o=this.parseSpread(r),r&&this.type===L.comma&&r.trailingComma<0&&(r.trailingComma=this.start)):o=this.parseMaybeAssign(!1,r),i.push(o)}return i},Y.checkUnreserved=function(e){var t=e.start,n=e.end,r=e.name;if(this.inGenerator&&"yield"===r&&this.raiseRecoverable(t,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===r&&this.raiseRecoverable(t,"Can not use 'await' as identifier inside an async function"),this.isKeyword(r)&&this.raise(t,"Unexpected keyword '"+r+"'"),!(this.options.ecmaVersion<6&&-1!=this.input.slice(t,n).indexOf("\\"))){(this.strict?this.reservedWordsStrict:this.reservedWords).test(r)&&this.raiseRecoverable(t,"The keyword '"+r+"' is reserved")}},Y.parseIdent=function(e,t){var n=this.startNode();return e&&"never"==this.options.allowReserved&&(e=!1),this.type===L.name?n.name=this.value:this.type.keyword?(n.name=this.type.keyword,"class"!==n.name&&"function"!==n.name||this.lastTokEnd===this.lastTokStart+1&&46===this.input.charCodeAt(this.lastTokStart)||this.context.pop()):this.unexpected(),this.next(),this.finishNode(n,"Identifier"),e||this.checkUnreserved(n),n},Y.parseYield=function(){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type==L.semi||this.canInsertSemicolon()||this.type!=L.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(L.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")},Y.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0),this.finishNode(e,"AwaitExpression")};var X=V.prototype;X.raise=function(e,t){var n=u(this.input,e);t+=" ("+n.line+":"+n.column+")";var r=new SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},X.raiseRecoverable=X.raise,X.curPosition=function(){if(this.options.locations)return new I(this.curLine,this.pos-this.lineStart)};var Z=V.prototype,K=Object.assign||function(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];for(var r=0,i=t;r<i.length;r+=1){var s=i[r];for(var o in s)a(s,o)&&(e[o]=s[o])}return e};Z.enterFunctionScope=function(){this.scopeStack.push({var:{},lexical:{},childVar:{},parentLexical:{}})},Z.exitFunctionScope=function(){this.scopeStack.pop()},Z.enterLexicalScope=function(){var e=this.scopeStack[this.scopeStack.length-1],t={var:{},lexical:{},childVar:{},parentLexical:{}};this.scopeStack.push(t),K(t.parentLexical,e.lexical,e.parentLexical)},Z.exitLexicalScope=function(){var e=this.scopeStack.pop(),t=this.scopeStack[this.scopeStack.length-1];K(t.childVar,e.var,e.childVar)},Z.canDeclareVarName=function(e){var t=this.scopeStack[this.scopeStack.length-1];return!a(t.lexical,e)&&!a(t.parentLexical,e)},Z.canDeclareLexicalName=function(e){var t=this.scopeStack[this.scopeStack.length-1];return!a(t.lexical,e)&&!a(t.var,e)&&!a(t.childVar,e)},Z.declareVarName=function(e){this.scopeStack[this.scopeStack.length-1].var[e]=!0},Z.declareLexicalName=function(e){this.scopeStack[this.scopeStack.length-1].lexical[e]=!0};var ee=function(e,t,n){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new j(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},te=V.prototype;te.startNode=function(){return new ee(this,this.start,this.startLoc)},te.startNodeAt=function(e,t){return new ee(this,e,t)},te.finishNode=function(e,t){return h.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},te.finishNodeAt=function(e,t,n,r){return h.call(this,e,t,n,r)};var ne=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},re={b_stat:new ne("{",!1),b_expr:new ne("{",!0),b_tmpl:new ne("${",!1),p_stat:new ne("(",!1),p_expr:new ne("(",!0),q_tmpl:new ne("`",!0,!0,function(e){return e.tryReadTemplateToken()}),f_stat:new ne("function",!1),f_expr:new ne("function",!0),f_expr_gen:new ne("function",!0,!1,null,!0),f_gen:new ne("function",!1,!1,null,!0)},ie=V.prototype;ie.initialContext=function(){return[re.b_stat]},ie.braceIsBlock=function(e){var t=this.curContext();return t===re.f_expr||t===re.f_stat||(e!==L.colon||t!==re.b_stat&&t!==re.b_expr?e===L._return||e==L.name&&this.exprAllowed?O.test(this.input.slice(this.lastTokEnd,this.start)):e===L._else||e===L.semi||e===L.eof||e===L.parenR||e==L.arrow||(e==L.braceL?t===re.b_stat:e!=L._var&&e!=L.name&&!this.exprAllowed):!t.isExpr)},ie.inGeneratorContext=function(){for(var e=this.context.length-1;e>=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.index<this.pos;)++this.curLine,this.lineStart=r.index+r[0].length}this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,n),t,this.pos,e,this.curPosition())},oe.skipLineComment=function(e){for(var t=this.pos,n=this.options.onComment&&this.curPosition(),r=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&!o(r);)r=this.input.charCodeAt(++this.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(t+e,this.pos),t,this.pos,n,this.curPosition())},oe.skipSpace=function(){e:for(;this.pos<this.input.length;){var e=this.input.charCodeAt(this.pos);switch(e){case 32:case 160:++this.pos;break;case 13:10===this.input.charCodeAt(this.pos+1)&&++this.pos;case 10:case 8232:case 8233:++this.pos,this.options.locations&&(++this.curLine,this.lineStart=this.pos);break;case 47:switch(this.input.charCodeAt(this.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&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<s;++i){var o=this.input.charCodeAt(this.pos),a=void 0;if((a=o>=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<this.input.length;this.pos++)switch(this.input[this.pos]){case"\\":++this.pos;break;case"$":if("{"!==this.input[this.pos+1])break;case"`":return this.finishToken(L.invalidTemplate,this.input.slice(this.start,this.pos))}this.raise(this.start,"Unterminated template")},oe.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return d(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(t>=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<this.input.length;){var o=this.fullCharCodeAtPos();if(r(o,s))this.pos+=o<=65535?1:2;else{if(92!==o)break;this.containsEsc=!0,e+=this.input.slice(i,this.pos);var a=this.pos;117!=this.input.charCodeAt(++this.pos)&&this.invalidStringToken(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos;var u=this.readCodePoint();(t?n:r)(u,s)||this.invalidStringToken(a,"Invalid Unicode escape"),e+=d(u),i=this.pos}t=!1}return e+this.input.slice(i,this.pos)},oe.readWord=function(){var e=this.readWord1(),t=L.name;return this.keywords.test(e)&&(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+e),t=_[e]),this.finishToken(t,e)};e.version="5.2.1",e.parse=function(e,t){return new V(t,e).parse()},e.parseExpressionAt=function(e,t,n){var r=new V(n,e,t);return r.nextToken(),r.parseExpression()},e.tokenizer=function(e,t){return new V(t,e)},e.addLooseExports=function(t,n,r){e.parse_dammit=t,e.LooseParser=n,e.pluginsLoose=r},e.Parser=V,e.plugins=M,e.defaultOptions=D,e.Position=I,e.SourceLocation=j,e.getLineInfo=u,e.Node=ee,e.TokenType=k,e.tokTypes=L,e.keywordTypes=_,e.TokContext=ne,e.tokContexts=re,e.isIdentifierChar=r,e.isIdentifierStart=n,e.Token=se,e.isNewLine=o,e.lineBreak=O,e.lineBreakG=T,e.nonASCIIwhitespace=N,Object.defineProperty(e,"__esModule",{value:!0})})},{}],5:[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||{},e.acorn.walk=e.acorn.walk||{}))}(this,function(e){"use strict";function t(e){return"string"==typeof e?function(t){return t==e}:e||function(){return!0}}function n(e,t,n){n(e,t)}function r(e,t,n){}var i=function(e,t){this.node=e,this.state=t},s=Object.create||function(e){function t(){}return t.prototype=e,new t},o={};o.Program=o.BlockStatement=function(e,t,n){for(var r=0,i=e.body;r<i.length;r+=1){n(i[r],t,"Statement")}},o.Statement=n,o.EmptyStatement=r,o.ExpressionStatement=o.ParenthesizedExpression=function(e,t,n){return n(e.expression,t,"Expression")},o.IfStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Statement"),e.alternate&&n(e.alternate,t,"Statement")},o.LabeledStatement=function(e,t,n){return n(e.body,t,"Statement")},o.BreakStatement=o.ContinueStatement=r,o.WithStatement=function(e,t,n){n(e.object,t,"Expression"),n(e.body,t,"Statement")},o.SwitchStatement=function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0,i=e.cases;r<i.length;r+=1){var s=i[r];s.test&&n(s.test,t,"Expression");for(var o=0,a=s.consequent;o<a.length;o+=1){n(a[o],t,"Statement")}}},o.ReturnStatement=o.YieldExpression=o.AwaitExpression=function(e,t,n){e.argument&&n(e.argument,t,"Expression")},o.ThrowStatement=o.SpreadElement=function(e,t,n){return n(e.argument,t,"Expression")},o.TryStatement=function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t),e.finalizer&&n(e.finalizer,t,"Statement")},o.CatchClause=function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},o.WhileStatement=o.DoWhileStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.body,t,"Statement")},o.ForStatement=function(e,t,n){e.init&&n(e.init,t,"ForInit"),e.test&&n(e.test,t,"Expression"),e.update&&n(e.update,t,"Expression"),n(e.body,t,"Statement")},o.ForInStatement=o.ForOfStatement=function(e,t,n){n(e.left,t,"ForInit"),n(e.right,t,"Expression"),n(e.body,t,"Statement")},o.ForInit=function(e,t,n){"VariableDeclaration"==e.type?n(e,t):n(e,t,"Expression")},o.DebuggerStatement=r,o.FunctionDeclaration=function(e,t,n){return n(e,t,"Function")},o.VariableDeclaration=function(e,t,n){for(var r=0,i=e.declarations;r<i.length;r+=1){n(i[r],t)}},o.VariableDeclarator=function(e,t,n){n(e.id,t,"Pattern"),e.init&&n(e.init,t,"Expression")},o.Function=function(e,t,n){e.id&&n(e.id,t,"Pattern");for(var r=0,i=e.params;r<i.length;r+=1){n(i[r],t,"Pattern")}n(e.body,t,e.expression?"ScopeExpression":"ScopeBody")},o.ScopeBody=function(e,t,n){return n(e,t,"Statement")},o.ScopeExpression=function(e,t,n){return n(e,t,"Expression")},o.Pattern=function(e,t,n){"Identifier"==e.type?n(e,t,"VariablePattern"):"MemberExpression"==e.type?n(e,t,"MemberPattern"):n(e,t)},o.VariablePattern=r,o.MemberPattern=n,o.RestElement=function(e,t,n){return n(e.argument,t,"Pattern")},o.ArrayPattern=function(e,t,n){for(var r=0,i=e.elements;r<i.length;r+=1){var s=i[r];s&&n(s,t,"Pattern")}},o.ObjectPattern=function(e,t,n){for(var r=0,i=e.properties;r<i.length;r+=1){n(i[r].value,t,"Pattern")}},o.Expression=n,o.ThisExpression=o.Super=o.MetaProperty=r,o.ArrayExpression=function(e,t,n){for(var r=0,i=e.elements;r<i.length;r+=1){var s=i[r];s&&n(s,t,"Expression")}},o.ObjectExpression=function(e,t,n){for(var r=0,i=e.properties;r<i.length;r+=1){n(i[r],t)}},o.FunctionExpression=o.ArrowFunctionExpression=o.FunctionDeclaration,o.SequenceExpression=o.TemplateLiteral=function(e,t,n){for(var r=0,i=e.expressions;r<i.length;r+=1){n(i[r],t,"Expression")}},o.UnaryExpression=o.UpdateExpression=function(e,t,n){n(e.argument,t,"Expression")},o.BinaryExpression=o.LogicalExpression=function(e,t,n){n(e.left,t,"Expression"),n(e.right,t,"Expression")},o.AssignmentExpression=o.AssignmentPattern=function(e,t,n){n(e.left,t,"Pattern"),n(e.right,t,"Expression")},o.ConditionalExpression=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Expression"),n(e.alternate,t,"Expression")},o.NewExpression=o.CallExpression=function(e,t,n){if(n(e.callee,t,"Expression"),e.arguments)for(var r=0,i=e.arguments;r<i.length;r+=1){n(i[r],t,"Expression")}},o.MemberExpression=function(e,t,n){n(e.object,t,"Expression"),e.computed&&n(e.property,t,"Expression")},o.ExportNamedDeclaration=o.ExportDefaultDeclaration=function(e,t,n){e.declaration&&n(e.declaration,t,"ExportNamedDeclaration"==e.type||e.declaration.id?"Statement":"Expression"),e.source&&n(e.source,t,"Expression")},o.ExportAllDeclaration=function(e,t,n){n(e.source,t,"Expression")},o.ImportDeclaration=function(e,t,n){for(var r=0,i=e.specifiers;r<i.length;r+=1){n(i[r],t)}n(e.source,t,"Expression")},o.ImportSpecifier=o.ImportDefaultSpecifier=o.ImportNamespaceSpecifier=o.Identifier=o.Literal=r,o.TaggedTemplateExpression=function(e,t,n){n(e.tag,t,"Expression"),n(e.quasi,t)},o.ClassDeclaration=o.ClassExpression=function(e,t,n){return n(e,t,"Class")},o.Class=function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression");for(var r=0,i=e.body.body;r<i.length;r+=1){n(i[r],t)}},o.MethodDefinition=o.Property=function(e,t,n){e.computed&&n(e.key,t,"Expression"),n(e.value,t,"Expression")},e.simple=function(t,n,r,i,s){r||(r=e.base),function e(t,i,s){var o=s||t.type,a=n[o];r[o](t,i,e),a&&a(t,i)}(t,i,s)},e.ancestor=function(t,n,r,i){r||(r=e.base);var s=[];!function e(t,i,o){var a=o||t.type,u=n[a],c=t!=s[s.length-1];c&&s.push(t),r[a](t,i,e),u&&u(t,i||s,s),c&&s.pop()}(t,i)},e.recursive=function(t,n,r,i,s){var o=r?e.make(r,i):i;!function e(t,n,r){o[r||t.type](t,n,e)}(t,n,s)},e.full=function(t,n,r,i,s){r||(r=e.base),function e(t,i,s){var o=s||t.type;r[o](t,i,e),s||n(t,i,o)}(t,i,s)},e.fullAncestor=function(t,n,r,i){r||(r=e.base);var s=[];!function e(t,i,o){var a=o||t.type,u=t!=s[s.length-1];u&&s.push(t),r[a](t,i,e),o||n(t,i||s,s,a),u&&s.pop()}(t,i)},e.findNodeAt=function(n,r,s,o,a,u){o=t(o),a||(a=e.base);try{!function e(t,n,u){var c=u||t.type;if((null==r||t.start<=r)&&(null==s||t.end>=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)&&(o[u](t,n,e),s(u,t)))throw new i(t,n)}(n,a)}catch(e){if(e instanceof i)return e;throw e}},e.findNodeAfter=function(n,r,s,o,a){s=t(s),o||(o=e.base);try{!function e(t,n,a){if(!(t.end<r)){var u=a||t.type;if(t.start>=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.end<t.end)&&s(c,t)&&(u=new i(t,n)),o[c](t,n,e)}}(n,a),u},e.make=function(t,n){n||(n=e.base);var r=s(n);for(var i in t)r[i]=t[i];return r},e.base=o,Object.defineProperty(e,"__esModule",{value:!0})})},{}],6:[function(e,t,n){"use strict";function r(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 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;o<n;o+=3)r=(e[o]<<16)+(e[o+1]<<8)+e[o+2],s.push(i(r));return s.join("")}n.byteLength=function(e){return 3*e.length/4-r(e)},n.toByteArray=function(e){var t,n,i,s,o,c=e.length;s=r(e),o=new u(3*c/4-s),n=s>0?c-4:c;var l=0;for(t=0;t<n;t+=4)i=a[e.charCodeAt(t)]<<18|a[e.charCodeAt(t+1)]<<12|a[e.charCodeAt(t+2)]<<6|a[e.charCodeAt(t+3)],o[l++]=i>>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;u<c;u+=16383)a.push(s(e,u,u+16383>c?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;l<p;++l)o[l]=c[l],a[c.charCodeAt(l)]=l;a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63},{}],7:[function(e,t,n){},{}],8:[function(e,t,n){"use strict";function r(e){if(e>B)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<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");var r;r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n);return r.__proto__=i.prototype,r}(e,t,n):"string"==typeof e?function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=0|l(e,t),s=r(n),o=s.write(e,t);o!==n&&(s=s.slice(0,o));return s}(e,t):function(e){if(i.isBuffer(e)){var t=0|c(e.length),n=r(t);return 0===n.length?n:(e.copy(n,0,0,t),n)}if(e){if(N(e)||"length"in e)return"number"!=typeof e.length||P(e.length)?r(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e)}function o(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function a(e){return o(e),r(e<0?0:0|c(e))}function u(e){for(var t=e.length<0?0:0|c(e.length),n=r(t),i=0;i<t;i+=1)n[i]=255&e[i];return n}function c(e){if(e>=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;s<n;++s)i+=function(e){return e<16?"0"+e.toString(16):e.toString(16)}(e[s]);return i}(this,t,n);case"utf8":case"utf-8":return w(this,t,n);case"ascii":return function(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}(this,t,n);case"latin1":case"binary":return function(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}(this,t,n);case"base64":return function(e,t,n){return 0===t&&n===e.length?F.fromByteArray(e):F.fromByteArray(e.slice(t,n))}(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function h(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function f(e,t,n,r,s){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?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;c<a;c++)if(s(e,c)===s(t,-1===l?0:c-l)){if(-1===l&&(l=c),c-l+1===u)return l*o}else-1!==l&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;h<u;h++)if(s(e,c+h)!==s(t,h)){p=!1;break}if(p)return c}return-1}function y(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(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<r;++o){var a=parseInt(t.substr(2*o,2),16);if(P(a))return o;e[n+o]=a}return o}function m(e,t,n,r){return O(_(t,e.length-n),e,n,r)}function g(e,t,n,r){return O(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function v(e,t,n,r){return g(e,t,n,r)}function b(e,t,n,r){return O(L(t),e,n,r)}function x(e,t,n,r){return O(function(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>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;i<n;){var s=e[i],o=null,a=s>239?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(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=R));return n}(r)}function E(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)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||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.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;o<r;++o){if((n=e.charCodeAt(o))>55295&&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<r&&!(i+n>=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);s<o;++s)if(e[s]!==t[s]){n=e[s],r=t[s];break}return n<r?-1:r<n?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=i.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!i.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,s),s+=o.length}return r},i.byteLength=l,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)h(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)h(this,t,t+3),h(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)h(this,t,t+7),h(this,t+1,t+6),h(this,t+2,t+5),h(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?w(this,0,e):p.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+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<u;++p)if(c[p]!==l[p]){o=c[p],a=l[p];break}return o<a?-1:a<o?1:0},i.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},i.prototype.indexOf=function(e,t,n){return f(this,e,t,n,!0)},i.prototype.lastIndexOf=function(e,t,n){return f(this,e,t,n,!1)},i.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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<e&&(t=e);var r=this.subarray(e,t);return r.__proto__=i.prototype,r},i.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||E(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},i.prototype.readUIntBE=function(e,t,n){e>>>=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<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=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<n&&(i*=256);)this[t+s]=e/i&255;return t+n},i.prototype.writeUIntBE=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=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<n&&(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.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<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=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<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},i.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!i.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var a=i.isBuffer(e)?e:new i(e,r),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u]}return this};var I=/[^+/0-9A-Za-z-_]/g},{"base64-js":6,ieee754:9}],9:[function(e,t,n){n.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>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<<c)-1,p=l>>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<<i|a,c+=i;c>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;o<e.length;o++)if(i=u(e[o],t))return i;return null}var c=n;"function"!=typeof n&&(c=n?function(e){return!0}:function(e){return!a(e).isScope});try{y.treeWalker(e,function(n,r,i){if(t(n))throw s.path=i,s;(n===e||c(n))&&r()})}catch(e){if(e===s)return s.path;throw e}return null}function c(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden})}function l(e){return u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden},function(e){var t=a(e);return!t.isBlockStatement&&!t.isScope})}function p(e){if(null===e)return{type:"NullLiteral",value:null,raw:"null"};if(!0===e||!1===e)return{type:"BooleanLiteral",value:e,raw:JSON.stringify(e)};if(e instanceof RegExp){var t=e.toString(),n=t.split("/");return{type:"RegExpLiteral",value:e,raw:t,pattern:n[1],flags:n[2]}}return"number"==typeof e?{type:"NumericLiteral",value:e,raw:JSON.stringify(e)}:{type:"StringLiteral",value:e,raw:JSON.stringify(e)}}function h(e,t){return{type:"Identifier",name:e,loc:t}}function f(e){var t={};for(var n in e)t[n]="string"==typeof e[n]?h(e[n]):e[n];return t}function d(e,t,n,d){function m(e,t){if(n.es6target&&!e.id&&!t&&0===e.type.indexOf("Function"))return e.type="ArrowFunctionExpression",e;if(n.noRuntime){if(t){if(a(t).isLiteral)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");e.body.body=y.part("try {$:0} catch($2) {return $1($2)}",[i(e.body),t,h("$boundEx")]).body}else if(n.es6target&&!e.id&&0===e.type.indexOf("Function"))return e.type="ArrowFunctionExpression",e;return n.es6target&&!e.id?(e.type="ArrowFunctionExpression",e):y.part("$0.bind(this)",[e]).expr}return t?y.part("$0.$1(this,$2)",[e,pe.asyncbind,t]).expr:y.part("$0.$1(this)",[e,pe.asyncbind]).expr}function g(e,t,n,r){return y.part("var $0 = $1",[h(e),m({type:"FunctionExpression",id:null,generator:!1,expression:!1,params:n||[],body:Array.isArray(t)?{type:"BlockStatement",body:t}:t},r)]).body[0]}function v(t){return e.filename+(t&&t.loc&&t.loc.start?"("+t.loc.start.line+":"+t.loc.start.column+")\t":"\t")}function b(e){return n.babelTree?p(e):{type:"Literal",value:e,raw:JSON.stringify(e)}}function x(e){return e?!n.babelTree||"ClassMethod"!==e.type&&"ObjectMethod"!==e.type?(!n.babelTree&&"MethodDefinition"===e.type||"Property"===e.type&&(e.method||"get"==e.kind||"set"==e.kind))&&a(e.value).isFunction?e.value:null:e:null}function w(e,t){if(!a(e).isFunction)throw new Error("Can only replace 'arguments' in functions");return"$usesArguments"in e||(y.treeWalker(e,function(t,r,i){"Identifier"===t.type&&"arguments"===t.name?(i[0].parent.shorthand&&(i[0].parent.shorthand=!1,i[0].parent.key=h("arguments"),e.$usesArguments=!0),"key"!==i[0].field&&(t.name=n.$arguments,e.$usesArguments=!0)):t!==e&&a(t).isFunction?"ArrowFunctionExpression"===t.type&&(w(t),e.$usesArguments=e.$usesArguments||t.$usesArguments):r()}),e.$usesArguments=e.$usesArguments||!1),e.$usesArguments&&"ArrowFunctionExpression"!==e.type}function E(e){return"string"!=typeof e&&(e=e.type.replace(/Statement|Expression/g,"")),n.generatedSymbolPrefix+e+"_"+le++}function S(e,t){return e&&(e.$exit=f({$error:t.$error,$return:t.$return})),e}function k(e,t){var n=function(e){for(var t=0;t<e.length;t++){if(e[t].self.$exit)return e[t].self;if(e[t].parent&&e[t].parent.$exit)return e[t].parent}return null}(e);if(n)return n.$exit;if(t)for(var r=0;r<t.length;r++)if(t[r])return f(t[r]);return null}function A(e,t){var r=!(n.promises||n.generators||n.engine)&&n.lazyThenables;ie(e),ne(e),j(e),H(e),J(e),(r?function(e,t){return y.treeWalker(e,function(e,t,r){function o(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:L(e||S)}}}function l(e,t){if("BreakStatement"===e.type)s(e,i(A(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_exit")));else if("ContinueStatement"===e.type)s(e,i(o(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_next")));else if(a(e).isFunction)return!0;t()}"ForInStatement"===e.type&&c(e)?U(e,r):"ForOfStatement"===e.type&&c(e)&&z(e,r),t();var p;if(a(e).isLoop&&c(e)){var f=e.init,d=e.test||b(!0),g=e.update,v=e.body,x=function(e){return u(e,{type:"ThisExpression"})}(v);f&&(a(f).isStatement||(f={type:"ExpressionStatement",expression:f})),g=g&&{type:"ExpressionStatement",expression:g},v=a(v).isBlockStatement?i(v).body:[i(v)];var w=e.$label&&e.$label.name;w="Loop_"+(w||le++);var E=n.generatedSymbolPrefix+(w+"_exit"),S=n.generatedSymbolPrefix+(w+"_next"),k=h(n.generatedSymbolPrefix+w),A=function(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:{type:"CallExpression",callee:h(e||E),arguments:[]}}}},_=C(S,[{type:"ReturnStatement",argument:{type:"CallExpression",callee:x?m(k):k,arguments:[h(E),pe.error]}}]);g&&_.body.body.unshift(g);for(var O=0;O<v.length;O++)y.treeWalker(v[O],l);v.push(i(o()));var T={type:"FunctionExpression",id:k,params:[h(E),pe.error],body:{type:"BlockStatement",body:[_]}};if("DoWhileStatement"===e.type)_.body.body=[{type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:i(_.body.body)},alternate:{type:"ReturnStatement",argument:{type:"CallExpression",callee:h(E),arguments:[]}}}],T.body.body=[_].concat(v);else{var N={type:"IfStatement",test:i(d),consequent:{type:"BlockStatement",body:v},alternate:i(A())};T.body.body.push(N)}var P={type:"ExpressionStatement",expression:{type:"AwaitExpression",argument:m(T,b(0))}};for(!f||"VariableDeclaration"!==f.type||"let"!==f.kind&&"const"!==f.kind||("const"===f.kind&&(f.kind="let"),P={type:"BlockStatement",body:[i(f),P]},f=null),p=0;p<r.length;p++){var F=r[p];if("index"in F)return f?F.parent[F.field].splice(F.index,1,i(f),P):F.parent[F.field][F.index]=P,!0}}return!0},t),e}:o)(e),F(e),P(e),V(e,[M,r?o:W,B,R,$]),q(e,t),se(e),ue(e)}function C(e,t){var n={$continuation:!0,type:e?"FunctionDeclaration":"FunctionExpression",id:e?"string"==typeof e?h(e):e:void 0,params:[],body:{type:"BlockStatement",body:i(t)}};return e&&(ce[e]={def:n}),n}function _(e){return{type:"AwaitExpression",argument:H({type:"FunctionExpression",generator:!1,expression:!1,async:!0,params:[],body:{type:"BlockStatement",body:e}}).body.body[0].argument}}function L(e,t){"string"==typeof e&&(e=h(e));var n=y.part("$0.call($1)",[e,[{type:"ThisExpression"}].concat(t||[])]).expr;return e.$thisCall=n,n.$thisCallName=e.name,n}function O(e,t){return{type:"ReturnStatement",argument:L(e,t)}}function T(e,t){return{type:"CallExpression",callee:h(e.$seh+"Finally"),arguments:t?[t]:[]}}function N(e,t){if(Array.isArray(e))return e.map(function(e){return N(e,t)});var r=0,i=0;return y.treeWalker(e,function(e,t,s){if("ReturnStatement"!==e.type||e.$mapped){if("ThrowStatement"===e.type){var o=a(e).isAsync;if(r>0){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<e.body.length;){var i=e.body[r];if("SwitchCase"!==i.type&&a(i).isBlockStatement){if(ae(i.body))if(l(i)){var s=E(i),o=e.body.splice(r+1,e.body.length-(r+1));if(o.length){var u=C(s,o);delete ce[s],i.body.push(O(s)),e.body.push(u),r++}else r++}else r++;else e.body.splice.apply(e.body,[r,1].concat(i.body))}else r++}}function B(e,t,n){if("IfStatement"===e.type&&c([e.consequent,e.alternate])){var r=E(e),o=t[0],u={type:"BlockStatement",body:[e]};if("index"in o){var l=o.index,p=o.parent[o.field].splice(l+1,o.parent[o.field].length-(l+1));if(o.replace(u),p.length){var h=O(r);u.body.push(n(C(r,p))),[e.consequent,e.alternate].forEach(function(e){if(e){var t;(t=a(e).isBlockStatement?e.body[e.body.length-1]:e)&&"ReturnStatement"===t.type||("BlockStatement"!==e.type&&s(e,{type:"BlockStatement",body:[i(e)]}),e.$deferred=!0,e.body.push(i(h))),n(e)}}),e.consequent&&e.alternate&&e.consequent.$deferred&&e.alternate.$deferred||u.body.push(i(h))}}else o.parent[o.field]=u}}function R(e,t,n){if(!e.$switched&&"SwitchStatement"===e.type&&c(e.cases)){e.$switched=!0;var r,s,o,a=t[0];if("index"in a){var u=a.index+1;(o=a.parent[a.field].splice(u,a.parent[a.field].length-u)).length&&"BreakStatement"===o[o.length-1].type&&a.parent[a.field].push(o.pop()),r=E(e),s=O(r),a.parent[a.field].unshift(C(r,o)),a.parent[a.field].push(i(s))}return e.cases.forEach(function(e,t){if("SwitchCase"!==e.type)throw new Error("switch contains non-case/default statement: "+e.type);if(c(e.consequent)){var n=e.consequent[e.consequent.length-1];"BreakStatement"===n.type?e.consequent[e.consequent.length-1]=i(s):"ReturnStatement"===n.type||"ThrowStatement"===n.type||(d(v(e)+"switch-case fall-through not supported - added break. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"),e.consequent.push(i(s)))}}),!0}}function I(e){return"ReturnStatement"===e.type||"ThrowStatement"===e.type}function j(t,r){return y.treeWalker(t,function(t,i,s){if("TryStatement"===t.type&&!t.$seh&&(a(s[0].parent).isBlockStatement||(s[0].parent[s[0].field]={type:"BlockStatement",body:[t]}),t.$seh=E("Try")+"_",t.$containedAwait=!!c(t),t.$finallyExit=t.finalizer&&function(e){for(var t=0;t<e.length;t++)if(a(e[t].self).isFunction)return e[t].self.async||e[t].self.$wasAsync;return!1}(s)&&!!u(t.finalizer.body,I),t.$containedAwait||t.$finallyExit)){t.$needsMapping=!r||!t.$finallyExit;var o=k(s,[n]);if(t.finalizer&&!t.handler){var l=h(E("exception"));t.handler={type:"CatchClause",param:l,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:l}]}}}if(!t.handler&&!t.finalizer){var p=new SyntaxError(v(t.value)+"try requires catch and/or finally clause",e.filename,t.start);throw p.pos=t.start,p.loc=t.loc.start,p}t.finalizer?(S(t.block,{$error:t.$seh+"Catch",$return:T(t,o.$return)}),S(t.handler,{$error:T(t,o.$error),$return:T(t,o.$return)})):S(t.block,{$error:t.$seh+"Catch",$return:o.$return})}i()}),t}function D(e,t){for(var n=0;n<e.length;n++)if(!a(e[n]).isDirective)return void e.splice.apply(e,[n,0].concat(t));e.splice.apply(e,[e.length,0].concat(t))}function M(t,r,s){if(t.$needsMapping){var o,a,u,c=r[0];if(!("index"in c))throw new Error(e.filename+" - malformed try/catch blocks");var l=c.index+1,p=c.parent[c.field].splice(l,c.parent[c.field].length-l);if(p.length){var f=s(g(a=t.$seh+"Post",p,[],k(r,[n]).$error));c.parent[c.field].splice(c.index,0,f),o=y.part("return $0()",[t.finalizer?T(t,h(a)):h(a)]).body[0]}else t.finalizer&&(o=O(T(t)));t.$mapped=!0,o&&(t.block.body.push(i(o)),t.handler.body.body.push(i(o)));var d=k(r,[n]);if(t.handler){var v=h(t.$seh+"Catch");u=i(t.handler.body);var b=g(v.name,u,[i(t.handler.param)],t.finalizer?T(t,d.$error):d.$error);t.handler.body.body=[{type:"CallExpression",callee:v,arguments:[i(t.handler.param)]}],c.parent[c.field].splice(c.index,0,b)}if(t.finalizer){s(t.finalizer);var x={exit:h(t.$seh+"Exit"),value:h(t.$seh+"Value"),body:i(t.finalizer.body)},w=y.part("(function ($value) { $:body; return $exit && ($exit.call(this, $value)); })",x).expr,E={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(t.$seh+"Finally"),init:m({type:"FunctionExpression",params:[x.exit],id:null,body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:m(w,d.$error)}]}})}]};D(c.parent[c.field],[E]);var S=y.part("return $0()",[t.finalizer?T(t,h(a)):h(a)]).body[0];u.body[u.length-1]=S,t.block.body[t.block.body.length-1]=S,delete t.finalizer}}}function V(e,t,n){function r(e,n){return y.treeWalker(e,function(e,n,s){function o(e){return r(e,s)}i.indexOf(e)<0&&(i.push(e),t.forEach(function(t){t(e,s,o)})),n()},n)}var i=[];return r(e,n),e}function q(e,t,o){return y.treeWalker(e,function(e,u,l){if("IfStatement"==e.type&&("BlockStatement"!=e.consequent.type&&c(e.consequent)&&(e.consequent={type:"BlockStatement",body:[e.consequent]}),e.alternate&&"BlockStatement"!=e.alternate.type&&c(e.alternate)&&(e.alternate={type:"BlockStatement",body:[e.alternate]})),u(),a(e).isAwait){var p=e.loc;if(!(t=t||l.some(function(e){return e.self&&e.self.$wasAsync}))||"warn"===t){var f=v(e)+"'await' used inside non-async function. ";n.promises?f+="'return' value Promise runtime-specific":f+="'return' value from await is synchronous",d(f+". See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification")}var y=l[0].parent;"LogicalExpression"===y.type&&y.right===e&&d(v(e.argument)+"'"+r(y)+"' on right of "+y.operator+" will always evaluate '"+r(e.argument)+"'"),"ConditionalExpression"===y.type&&y.test!==e&&d(v(e.argument)+"'"+r(y)+"' will always evaluate '"+r(e.argument)+"'");var g=h(E("await")),b=i(e.argument);s(e,g);for(var x,w,S=1;S<l.length;S++)if(w=a(l[S].self).isBlockStatement){x=l[S-1];break}if(!x)throw new Error(v(e)+"Illegal await not contained in a statement");var A,C,_=k(l,[o,n]),L=x.index,O=w.splice(L,w.length-L).slice(1);"ReturnStatement"===x.self.type&&"CallExpression"===x.self.argument.type&&1===x.self.argument.arguments.length&&x.self.argument.arguments[0].name===g.name?C=A=x.self.argument.callee:"Identifier"===x.self.type||x.self.name===g.name||"ExpressionStatement"===x.self.type&&"Identifier"===x.self.expression.type&&x.self.expression.name===g.name?A=O.length?{type:"FunctionExpression",params:[i(g)],body:q({type:"BlockStatement",body:i(O)},t,_)}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}:(O.unshift(x.self),A={type:"FunctionExpression",params:[i(g)],body:q({type:"BlockStatement",body:i(O)},t,_)}),C||(C=A?m(A,_.$error):{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}),n.wrapAwait&&(b={type:"CallExpression",arguments:[b],callee:n.promises||n.generators?{type:"MemberExpression",object:h("Promise"),property:h("resolve")}:{type:"MemberExpression",object:h("Object"),property:h("$makeThenable")}});var T={type:"CallExpression",callee:{type:"MemberExpression",object:b,property:h("then",p),computed:!1},arguments:[C,_.$error]};w.push({loc:p,type:"ReturnStatement",argument:T})}return!0}),e}function U(e,t){var n=e.$label;delete e.$label;var r=h(E("idx")),i=h(E("in")),o=y.part("var $0,$1 = [];for ($0 in $2) $1.push($0)",[r,i,e.right]).body,u=y.part("for ($0; $1.length;){ $2 = $1.shift(); $:3 ; }",[e.left,i,"VariableDeclaration"===e.left.type?e.left.declarations[0].id:e.left,e.body]).body[0];u.$label=n;for(var c=0;c<t.length;c++)if(a(t[c].parent).isBlockStatement){t[c].parent[t[c].field].splice(t[c].index,0,o[0],o[1]);break}s(e,u)}function z(e,t){"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[e.body]});var n,r,i=y.part("[$0[Symbol.iterator]()]",[e.right]).expr;if("VariableDeclaration"===e.left.type){"const"===e.left.kind&&(e.left.kind="let"),n=e.left.declarations[0].id;var s=te(e.left.declarations[0].id);r=h(E("iterator_"+s.join("_"))),e.left.declarations=s.map(function(e){return{type:"VariableDeclarator",id:h(e)}}),e.left.declarations.push({type:"VariableDeclarator",id:r,init:i}),e.init=e.left}else{var o={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:r=h(E("iterator_"+(n=e.left).name)),init:i}]};e.init=o}e.type="ForStatement",e.test=y.part("!($0[1] = $0[0].next()).done && (($1 = $0[1].value) || true)",[r,n]).expr,delete e.left,delete e.right}function W(e,t,r){var i=e.$depth;"ForInStatement"===e.type&&c(e)?U(e,t):"ForOfStatement"===e.type&&c(e)&&z(e);var s=t.some(function(e){return"$label"in e.self&&"ForStatement"===e.self.type&&e.self.$mapped});if(!e.$mapped&&a(e).isLoop&&u(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden||s&&("BreakStatement"===e.type||"ContinueStatement"===e.type)&&e.label})){t[0].self.$mapped=!0;var o=[],l=e.init,p=e.test||b(!0),f=e.update,d=e.body;f&&(f={type:"ExpressionStatement",expression:f}),l&&(a(l).isStatement||(l={type:"ExpressionStatement",expression:l}),o.push(l));var m,g;e.$label?(g=e.$label.name,m=t[1]):(g=le++,m=t[0]);var v,x,w=h((g=n.generatedSymbolPrefix+"Loop_"+g)+"_trampoline"),E=h(g),S=f?h(g+"_step"):E,A=h(g+"_exit");h("q"),h("$exception");if("index"in m){var _=m.index;x=m.parent[m.field].splice(_+1,m.parent[m.field].length-(_+1))}else x=[];v=C(A,x);var L={type:"ReturnStatement",argument:E},O={type:"ReturnStatement",argument:S},T={type:"ReturnStatement",argument:{type:"ArrayExpression",elements:[b(1)]}};y.treeWalker(d,function(e,t,n){if(a(e).isFunction||a(e).isLoop)return!0;if("BreakStatement"===e.type||"ContinueStatement"===e.type)if(e.label)for(var r=n.filter(function(e){return"$label"in e.self}).map(function(e,t){return e.self.$label&&e.self.$label.name}),i=[],s=0;s<r.length;s++){if(r[s]===e.label.name){"BreakStatement"===e.type&&i.push(b(1)),n[0].replace({type:"ReturnStatement",argument:{type:"ArrayExpression",elements:i.reverse()}});break}i.push(b(0))}else"BreakStatement"===e.type?n[0].replace(T):n[0].replace(O);else t()},t),d="BlockStatement"===d.type?d.body.slice(0):[d],d="DoWhileStatement"===e.type?d.concat({type:"IfStatement",test:{type:"UnaryExpression",argument:p,prefix:!0,operator:"!"},consequent:T,alternate:O}):[{type:"IfStatement",test:p,consequent:{type:"BlockStatement",body:d.concat(O)},alternate:T}],n.noRuntime&&o.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:w}],kind:"var"});var N,P=k(t,[n]).$error;N=n.noRuntime?y.part(n.es6target?"($idTrampoline = ((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); } } }))($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;u<o.declarations.length;u++){var c=o.declarations[u];if(te(c.id).forEach(t),c.init){var l={type:"AssignmentExpression",left:i(c.id),operator:"=",right:i(c.init)};a.push(l)}}if(0==a.length)n.remove();else{var p=a.length>1?{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;u<p.length;u++)if(!a(p[u]).isScope){if((r=c(p[u]))&&o(r[0].self),!c(p.slice(u+1)))break;(r=t(p[u]))&&h.push(r[0].self)}}else if("VariableDeclaration"===e.type)for(u=e.declarations.length-1;u>0;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<s.length;o++)if("VariableDeclaration"===s[o].type)for(var u=0;u<s[o].declarations.length;u++)te(s[o].declarations[u].id).forEach(function(e){i[e]=s[o].kind})}t(),"AssignmentExpression"===e.type?n(e.left):"UpdateExpression"===e.type&&n(e.argument),s&&(i=Object.getPrototypeOf(i))})}(e);var p=!1;return y.treeWalker(e,function(e,t,i){var s=p;if(p=p||oe(e),a(e).isBlockStatement){if(c(e)){var l,f,y,m,g;if(!i[0].parent||a(i[0].parent).isScope){var x={},w={};(f=K(e,n(["const"]),!1)).forEach(function(e){e[0].self.declarations.forEach(function(e){te(e.id).forEach(function(t){x[t]||w[t]?(delete x[t],w[t]=e):x[t]=e})})}),f.forEach(function(e){for(var t=0;t<e.length&&!a(e[t].parent).isBlockStatement;t++);var n=e[t];n.append({type:"ExpressionStatement",expression:{type:"SequenceExpression",expressions:e[0].self.declarations.map(function(e){var t={type:"AssignmentExpression",operator:"=",left:e.id,right:e.init};return e.init=null,t})}});var r=te(e[0].self.declarations),i=r.filter(function(e){return e in w});i.length&&e[0].append({type:"VariableDeclaration",kind:"let",declarations:i.map(function(e){return{type:"VariableDeclarator",id:h(e)}})}),e[0].self.kind="var",(i=r.filter(function(e){return e in x})).length?e[0].self.declarations=i.map(function(e){return{type:"VariableDeclarator",id:h(e)}}):n.remove()}),y=K(e,n(["var"]),!1),m=[]}else m=K(e,n(["const"]),!0);m=m.concat(K(e,n(["let"]),!0)),l=K(e,function(e){return a(e).isDirective},!0),g=K(e,o,p),y=y?ee(y,"var"):{duplicates:{},decls:[]},m=m?ee(m,"let"):{duplicates:{},decls:[]},Object.keys(y.duplicates).forEach(function(e){d(v(y.duplicates[e])+"Duplicate declaration '"+r(y.duplicates[e])+"'")}),Object.keys(m.duplicates).forEach(function(e){d(v(m.duplicates[e])+"Duplicate declaration '"+r(m.duplicates[e])+"'")}),g=g.map(function(e){var t,n=e[0];if(a(n.self).isAsync)return t=n.self.id.name,a(n.parent).isBlockStatement?(n.self.type="FunctionDeclaration",n.remove(),n.self):n.replace(h(t));t=n.self.id.name;return"FunctionDeclaration"===n.self.type?n.remove():n.replace(h(t))}),((l=l.map(function(e){return e[0].remove()})).length||y.decls.length||m.decls.length||g.length)&&(e.body=l.concat(y.decls).concat(m.decls).concat(g).concat(e.body))}p=s}if("LabeledStatement"===e.type&&"BlockStatement"===e.body.type&&c(e.body)&&u(e.body,function(e){return"BreakStatement"===e.type&&e.label})&&(e.body.body.push({type:"BreakStatement"}),e.body={type:"DoWhileStatement",test:b(0),body:e.body}),t(),"ForOfStatement"===e.type||"ForInStatement"===e.type||a(e).isLoop){for(var E=0,S=0;S<i.length;S++)if("ForOfStatement"===i[S].self.type||"ForInStatement"===i[S].self.type||a(i[S].self).isLoop)E+=1;else if(a(i[S].self).isFunction)break;e.$depth=E,"LabeledStatement"===i[0].parent.type?e.$label=i[0].parent.label:e.$label=null}return!0}),e}function re(e,t){return y.treeWalker(e,function(e,r,i){if(r(),("ClassDeclaration"===e.type||"ClassExpression"===e.type)&&(e.body.body.forEach(function(e,t){function n(){return e.$superID=e.$superID||h("$super$"+le++)}return function(e){(e=x(e))&&a(e).isAsync&&(!t||"get"===e.kind||u(e,function(e){return a(e).isFunction&&u(e,function(e){return"Super"===e.type})&&u(e,function(e){return e.async&&("ReturnStatement"===e.type||"ThrowStatement"===e.type)})},!0))&&y.treeWalker(e.body,function(e,t,r){var i;a(e).isClass||(t(),"Super"===e.type&&("MemberExpression"===r[0].parent.type?"CallExpression"===r[1].parent.type&&"callee"===r[1].field?(i=y.part("this.$super($field).call(this,$args)",{super:n(),field:r[0].parent.computed?r[0].parent.property:b(r[0].parent.property.name),args:r[1].parent.arguments}).expr,r[2].replace(i)):(i=y.part("this.$super($field)",{super:n(),field:r[0].parent.computed?r[0].parent.property:b(r[0].parent.property.name)}).expr,r[1].replace(i)):d(v(e)+"'super' in async methods must be deferenced. 'async constructor()'/'await super()' not valid.")))})}}(e,t)),e.$superID)){var s=y.part("(function($field) { return super[$field] })",{field:h("$field")}).expr;n.babelTree?(s.type="ClassMethod",s.key=e.$superID,s.kind="method",e.body.body.push(s)):e.body.body.push({type:"MethodDefinition",key:e.$superID,kind:"method",value:s})}})}function ie(e){return y.treeWalker(e,function(e,t,n){return c(e)&&"ArrowFunctionExpression"===e.type&&"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),t(),!0}),e}function se(e){return y.treeWalker(e,function(e,t,r){t(),"Identifier"===e.type&&"__nodent"===e.name&&s(e,b(n))}),e}function oe(e){if("Program"===e.type&&"module"===e.sourceType)return!0;var t;if("Program"===e.type)t=e.body;else{if(!a(e).isFunction)return!1;t=e.body.body}if(t)for(var n=0;n<t.length;n++)if(a(t[n]).isDirective&&t[n].expression.value.match(/^\s*use\s+strict\s*$/))return!0;return!1}function ae(e){for(var t=0;t<e.length;t++){var n=e[t];if("ClassDeclaration"===n.type||"VariableDeclaration"===n.type&&("let"===n.kind||"const"===n.kind)||"FunctionDeclaration"===n.type&&n.id&&n.id.name&&!n.$continuation)return!0}return!1}function ue(e){y.treeWalker(e,function(e,t,n){if(t(),"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type&&1===e.body.body.length&&"ReturnStatement"===e.body.body[0].type)e.body=e.body.body[0].argument;else{var r,i;if(r=a(e).isBlockStatement)for(var s=0;s<r.length;s++)(i=a(r[s]).isBlockStatement)&&!ae(i)&&(ae(r[s])||[].splice.apply(r,[s,1].concat(i)))}}),y.treeWalker(e,function(e,t,n){if(t(),a(e).isJump){var r=n[0];if("index"in r)for(var i=r.index+1,s=r.parent[r.field];i<s.length;)"VariableDeclaration"===s[i].type||a(s[i]).isFunction&&s[i].id?i+=1:s.splice(i,1)}}),y.treeWalker(e,function(e,t,n){t(),e.$thisCall&&ce[e.name]&&(ce[e.name].ref?delete ce[e.name]:ce[e.name].ref=e.$thisCall)});var t=Object.keys(ce).map(function(e){return ce[e].ref});if(t.length){y.treeWalker(e,function(e,n,r){if(n(),t.indexOf(e)>=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)<r(t)||r(n)==r(t)&&(i||t.right===n)?(e.write(null,"("),this.out(n,e,n.type),e.write(null,")")):this.out(n,e,n.type)},argumentList:function(e,t){t.write(e,"(");var n=e.arguments;if(n.length>0)for(var r=n.length,i=0;i<r;i++)0!=i&&t.write(null,", "),this.expr(t,f,n[i]);t.write(null,")")},formatParameters:function(e,t){var n;if(t.write(null,"("),null!=e&&e.length>0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r<i;r++)n=e[r],t.write(n,", "),this.out(n,t,n.type)}t.write(null,") ")},Program:function(e,t){for(var n,r,i=c(t.indent,t.indentLevel),s=t.lineEnd,o=0,a=(n=e.body).length;o<a;o++)r=n[o],t.write(null,i),this.out(r,t,r.type),t.write(null,s)},BlockStatement:u=function(e,t){var n,r,i=c(t.indent,t.indentLevel++),s=t.lineEnd,o=i+t.indent;if(t.write(e,"{"),null!=(n=e.body)&&n.length>0){t.write(null,s);for(var a=0,u=n.length;a<u;a++)r=n[a],t.write(null,o),this.out(r,t,r.type),t.write(null,s);t.write(null,i)}t.write(e.loc?{loc:{start:{line:e.loc.end.line,column:0}}}:null,"}"),t.indentLevel--},ClassBody:u,EmptyStatement:function(e,t){t.write(e,";")},ParenthesizedExpression:function(e,t){this.expr(t,e,e.expression,2)},ExpressionStatement:function(e,t){"FunctionExpression"===e.expression.type||"ObjectExpression"===e.expression.type?(t.write(null,"("),this.expr(t,e,e.expression),t.write(null,")")):this.expr(t,e,e.expression),t.write(null,";")},IfStatement:function(e,t){t.write(e,"if ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.consequent,t,e.consequent.type),null!=e.alternate&&("BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel)),t.write(null," else "),"BlockStatement"!==e.alternate.type&&"IfStatement"!==e.alternate.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.alternate,t,e.alternate.type))},LabeledStatement:function(e,t){this.out(e.label,t,e.label.type),t.write(null,":"),this.out(e.body,t,e.body.type)},BreakStatement:function(e,t){t.write(e,"break"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},ContinueStatement:function(e,t){t.write(e,"continue"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},WithStatement:function(e,t){t.write(e,"with ("),this.out(e.object,t,e.object.type),t.write(null,") "),this.out(e.body,t,e.body.type)},SwitchStatement:function(e,t){var n,r,i,s=c(t.indent,t.indentLevel++),o=t.lineEnd;t.indentLevel++;var a=s+t.indent,u=a+t.indent;t.write(e,"switch ("),this.out(e.discriminant,t,e.discriminant.type),t.write(null,") {",o);for(var l=e.cases,p=0;p<l.length;p++){(n=l[p]).test?(t.write(n,a,"case "),this.out(n.test,t,n.test.type),t.write(null,":",o)):t.write(n,a,"default:",o),r=n.consequent;for(var h=0;h<r.length;h++)i=r[h],t.write(null,u),this.out(i,t,i.type),t.write(null,o)}t.indentLevel-=2,t.write(null,s,"}")},ReturnStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"return"),e.argument&&(t.write(null," "),this.out(e.argument,t,e.argument.type)),t.write(null,";")},ThrowStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"throw "),this.out(e.argument,t,e.argument.type),t.write(null,";")},TryStatement:function(e,t){t.write(e,"try "),this.out(e.block,t,e.block.type),e.handler&&this.out(e.handler,t,e.handler.type),e.finalizer&&(t.write(e.finalizer," finally "),this.out(e.finalizer,t,e.finalizer.type))},CatchClause:function(e,t){t.write(e," catch ("),this.out(e.param,t,e.param.type),t.write(null,") "),this.out(e.body,t,e.body.type)},WhileStatement:function(e,t){t.write(e,"while ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},DoWhileStatement:function(e,t){t.write(e,"do "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type),t.write(null," while ("),this.out(e.test,t,e.test.type),t.write(null,");")},ForStatement:function(e,t){if(t.write(e,"for ("),null!=e.init){var n=e.init,r=n.type;t.inForInit++,this.out(n,t,r),t.inForInit--,"VariableDeclaration"!==r&&t.write(null,"; ")}else t.write(null,"; ");e.test&&this.out(e.test,t,e.test.type),t.write(null,"; "),e.update&&this.out(e.update,t,e.update.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForInStatement:i=function(e,t){t.write(e,"for (");var n=e.left,r=n.type;t.inForInit++,this.out(n,t,r),"V"===r[0]&&19===r.length&&t.back(),t.inForInit--,t.write(null,"I"===e.type[3]?" in ":" of "),this.out(e.right,t,e.right.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,c(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForOfStatement:i,DebuggerStatement:function(e,t){t.write(e,"debugger;")},Function:function(e,t){e.async&&t.write(e,"async "),t.write(e,e.generator?"function* ":"function "),e.id&&t.write(e.id,e.id.name),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},FunctionDeclaration:function(e,t){this.Function(e,t),t.write(null,t.lineEnd,c(t.indent,t.indentLevel))},FunctionExpression:function(e,t){this.Function(e,t)},VariableDeclaration:function(e,t){var n=e.declarations;t.write(e,e.kind," ");var r=n.length;if(r>0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i<r;i++)t.write(null,", "),this.out(n[i],t,"VariableDeclarator")}t.write(null,";")},VariableDeclarator:function(e,t){this.out(e.id,t,e.id.type),null!=e.init&&(t.write(null," = "),this.expr(t,f,e.init))},ClassDeclaration:function(e,t){t.write(e,"class "),e.id&&t.write(e.id,e.id.name+" "),e.superClass&&(t.write(null,"extends "),this.out(e.superClass,t,e.superClass.type),t.write(null," ")),this.out(e.body,t,"BlockStatement")},ImportSpecifier:function(e,t){e.local.name==e.imported.name?this.out(e.local,t,e.local.type):(this.out(e.imported,t,e.imported.type),t.write(null," as "),this.out(e.local,t,e.local.type))},ImportDefaultSpecifier:function(e,t){this.out(e.local,t,e.local.type)},ImportNamespaceSpecifier:function(e,t){t.write(null,"* as "),this.out(e.local,t,e.local.type)},ImportDeclaration:function(e,t){t.write(e,"import ");var n=e.specifiers,r=n.length,i=!0;if(r>0){for(var s=0;s<r;s++)"ImportSpecifier"===n[s].type&&i&&(i=!1,t.write(null,"{")),this.out(n[s],t,n[s].type),s<r-1&&t.write(null,", ");"ImportSpecifier"===n[r-1].type&&t.write(null,"}"),t.write(null," from ")}t.write(e.source,e.source.raw),t.write(null,";")},ExportDefaultDeclaration:function(e,t){t.write(e,"export default "),this.out(e.declaration,t,e.declaration.type)},ExportSpecifier:function(e,t){e.local.name==e.exported.name?this.out(e.local,t,e.local.type):(this.out(e.local,t,e.local.type),t.write(null," as "),this.out(e.exported,t,e.exported.type))},ExportNamedDeclaration:function(e,t){if(t.write(e,"export "),e.declaration)this.out(e.declaration,t,e.declaration.type);else{var n=e.specifiers;if(t.write(e,"{"),n&&n.length>0)for(var r=0;r<n.length;r++)this.out(n[r],t,n[r].type),r<n.length-1&&t.write(null,", ");t.write(null,"}"),e.source&&t.write(e.source," from ",e.source.raw),t.write(null,";")}},ExportAllDeclaration:function(e,t){t.write(e,"export * from "),t.write(e.source,e.source.raw,";")},MethodDefinition:function(e,t){switch(e.value.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.value.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.value.params,t),this.out(e.value.body,t,e.value.body.type)},ClassMethod:function(e,t){switch(e.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},ClassExpression:function(e,t){this.out(e,t,"ClassDeclaration")},ArrowFunctionExpression:function(e,t){e.async&&t.write(e,"async "),1===e.params.length&&"Identifier"===e.params[0].type?(this.out(e.params[0],t,e.params[0].type),t.write(e," => ")):(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;s<o;s++)n=i[s],t.write(r[s].value,r[s].value.raw),t.write(null,"${"),this.out(n,t,n.type),t.write(null,"}");t.write(r[r.length-1].value,r[r.length-1].value.raw),t.write(e,"`")},TaggedTemplateExpression:function(e,t){this.out(e.tag,t,e.tag.type),this.out(e.quasi,t,e.quasi.type)},ArrayExpression:a=function(e,t){if(t.write(e,"["),e.elements.length>0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,f,s),((i+=1)<r||null===s)&&t.write(null,","),i>=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"),++u<a;)t.write(e,",",i),t.lineLength()>t.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"),++i<r;)t.write(null,", ");t.write(null,"}")},SequenceExpression:function(e,t){var n,r=e.expressions;if(r.length>0)for(var i=r.length,s=0;s<i;s++)n=r[s],s&&t.write(null,", "),this.expr(t,f,n)},UnaryExpression:function(e,t){e.prefix?(t.write(e,e.operator),e.operator.length>1&&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<arguments.length;n++)if(s&&e&&e.loc&&e.loc.start&&s.addMapping({source:t.map.file,original:{line:e.loc.start.line,column:e.loc.start.column},generated:{line:t.map.startLine+i.length+1,column:r.length}}),arguments[n]===p.lineEnd){if(u.length&&(u.forEach(function(e){"Line"===e.type?r+=" // "+e.value:((" /*"+e.value+"*/").split("\n").forEach(function(e){r+=e,i.push(r),r=""}),r=i.pop())}),u=[]),i.push(r),r="",a.length){var l=i.pop();a.forEach(function(e){var t=c(p.indent,e.indent);"Line"===e.type?i.push(t+"//"+e.value):(t+"/*"+e.value+"*/").split("\n").forEach(function(e){i.push(e)})}),i.push(l),a=[]}}else r+=arguments[n],e&&e.$comments&&(e.$comments.forEach(function(t){var n=e.loc.start.column<t.loc.start.column;t.indent=p.indentLevel,n?u.push(t):a.push(t)}),e.$comments=null)},back:function(){r=r.substring(0,r.length-o.length)},indent:" ",lineEnd:"\n",indentLevel:0,wrapColumn:80};d.out(e,p),u=e.$comments||[],p.write(e,p.lineEnd);var h=i.join(p.lineEnd);return t&&t.map?{code:h,map:s}:h}},{"source-map":24}],13:[function(e,t,n){"use strict";function r(e,t){["start","end","loc","range"].forEach(function(n){n in e&&!(n in t)&&(t[n]=e[n])})}function i(e,t,n){function r(e){e.replace=u.replace,e.append=u.append,e.index?(Object.defineProperties(e,{index:{enumerable:!0,get:u.index}}),e.remove=u.removeElement):e.remove=u.removeNode,n.unshift(e),i(e.self,t,n),n.shift()}return n||((n=[{self:e}]).replace=function(e,t){n[e].replace(t)}),t(e,function(){e.type in a&&a[e.type](e,n,function t(i,s,o){if(i===e)return a[o||e.type](e,n,t);for(var u=Object.keys(e),c=0;c<u.length;c++){var l=e[u[c]];Array.isArray(l)?l.indexOf(i)>=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<e.cases.length;++r)n(e.cases[r],t)},SwitchCase:function(e,t,n){e.test&&n(e.test,t,"Expression");for(var r=0;r<e.consequent.length;++r)n(e.consequent[r],t,"Statement")},TryStatement:function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t,"Statement"),e.finalizer&&n(e.finalizer,t,"Statement")},CatchClause:function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},Class:function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression"),n(e.body,t)},ClassBody:function(e,t,n){for(var r=0;r<e.body.length;r++)n(e.body[r],t)},ObjectPattern:function(e,t,n){for(var r=0,i=e.properties;r<i.length;r+=1)n(i[r],t,"Property")},ClassProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ClassMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")},ObjectProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ObjectMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")}}),u={replace:function(e){return Array.isArray(e)&&1===e.length&&(e=e[0]),"index"in this?(r(this.parent[this.field][this.index],e),Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index,1].concat(e)):this.parent[this.field][this.index]=e):(r(this.parent[this.field],e),Array.isArray(e)?this.parent[this.field]={type:"BlockStatement",body:e}:this.parent[this.field]=e),this.self},append:function(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),!("index"in this))throw new Error("Cannot append Element node to non-array");return Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index+1,0].concat(e)):this.parent[this.field].splice(this.index+1,0,e),this.self},index:function(){return this.parent[this.field].indexOf(this.self)},removeElement:function(){return this.parent[this.field].splice(this.index,1)[0]},removeNode:function(){var e=this.parent[this.field];return delete this.parent[this.field],e}},c=!1,l={};t.exports={part:function(e,t){function n(e,r){if(Array.isArray(r)&&!Array.isArray(e))throw new Error("Can't substitute an array for a node");return r=r||{},Object.keys(e).forEach(function(i){if(!(e[i]instanceof Object))return r[i]=e[i];if(Array.isArray(e[i]))return r[i]=n(e[i],[]);var s;if(s=Array.isArray(r)?function(e){return"function"==typeof e&&(e=e()),r=r.concat(e)}:function(e){return"function"==typeof e&&(e=e()),r[i]=e,r},"Identifier"===e[i].type&&"$"===e[i].name[0])return s(t[e[i].name.slice(1)]);if("LabeledStatement"===e[i].type&&"$"===e[i].label.name){var o=e[i].body.expression;return s(t[o.name||o.value])}return"LabeledStatement"===e[i].type&&"$$"===e[i].label.name.slice(0,2)?s(t[e[i].label.name.slice(2)](n(e[i]).body)):s(n(e[i]))}),r}l[e]||(l[e]=s(e,{noNodentExtensions:!0,locations:!1,ranges:!1,onComment:null}));var r=n(l[e]);return{body:r.body,expr:"ExpressionStatement"===r.body[0].type?r.body[0].expression:null}},parse:s,treeWalker:i}},{acorn:4,"acorn-es7-plugin":1,"acorn/dist/walk":5}],14:[function(e,t,n){function r(){this._array=[],this._set=o?new Map:Object.create(null)}var i=e("./util"),s=Object.prototype.hasOwnProperty,o="undefined"!=typeof Map;r.fromArray=function(e,t){for(var n=new r,i=0,s=e.length;i<s;i++)n.add(e[i],t);return n},r.prototype.size=function(){return o?this._set.size:Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=o?e:i.toSetString(e),r=o?this.has(e):s.call(this._set,n),a=this._array.length;r&&!t||this._array.push(e),r||(o?this._set.set(e,a):this._set[n]=a)},r.prototype.has=function(e){if(o)return this._set.has(e);var t=i.toSetString(e);return s.call(this._set,t)},r.prototype.indexOf=function(e){if(o){var t=this._set.get(e);if(t>=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<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":23}],15:[function(e,t,n){var r=e("./base64");n.encode=function(e){var t,n="",i=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&i,(i>>>=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)<<u,u+=5}while(i);n.value=function(e){var t=e>>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&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},{}],17:[function(e,t,n){function r(e,t,i,s,o,a){var u=Math.floor((t-e)/2)+e,c=o(i,s[u],!0);return 0===c?u:c>0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?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<s){var o=n-1;r(e,function(e,t){return Math.round(e+Math.random()*(t-e))}(n,s),s);for(var a=e[s],u=n;u<s;u++)t(e[u],a)<=0&&r(e,o+=1,u);r(e,o+1,u);var c=o+1;i(e,t,n,c-1),i(e,t,c+1,s)}}n.quickSort=function(e,t){i(e,t,0,e.length-1)}},{}],20:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new o(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),r=a.getArg(t,"sources"),i=a.getArg(t,"names",[]),s=a.getArg(t,"sourceRoot",null),o=a.getArg(t,"sourcesContent",null),u=a.getArg(t,"mappings"),l=a.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(a.normalize).map(function(e){return s&&a.isAbsolute(s)&&a.isAbsolute(e)?a.relative(s,e):e}),this._names=c.fromArray(i.map(String),!0),this._sources=c.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=o,this._mappings=u,this.file=l}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function o(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),i=a.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new c,this._names=new c;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=a.getArg(e,"offset"),n=a.getArg(t,"line"),i=a.getArg(t,"column");if(n<s.line||n===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(a.getArg(e,"map"))}})}var a=e("./util"),u=e("./binary-search"),c=e("./array-set").ArraySet,l=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,s=t||null;switch(n||r.GENERATED_ORDER){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var o=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=o&&(t=a.join(o,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},r.prototype.allGeneratedPositionsFor=function(e){var t=a.getArg(e,"line"),n={source:a.getArg(e,"source"),originalLine:t,originalColumn:a.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=a.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=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;h<f;h++){var d=o[h],y=new s;y.generatedLine=d.generatedLine,y.generatedColumn=d.generatedColumn,d.source&&(y.source=r.indexOf(d.source),y.originalLine=d.originalLine,y.originalColumn=d.originalColumn,d.name&&(y.name=n.indexOf(d.name)),l.push(y)),u.push(y)}return p(t.__originalMappings,a.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?a.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,o,u,c=1,h=0,f=0,d=0,y=0,m=0,g=e.length,v=0,b={},x={},w=[],E=[];v<g;)if(";"===e.charAt(v))c++,v++,h=0;else if(","===e.charAt(v))v++;else{for((n=new s).generatedLine=c,o=v;o<g&&!this._charIsMappingSeparator(e,o);o++);if(r=e.slice(v,o),i=b[r])v+=r.length;else{for(i=[];v<o;)l.decode(e,v,x),u=x.value,v=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[r]=i}n.generatedColumn=h+i[0],h=n.generatedColumn,i.length>1&&(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<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",a.compareByGeneratedPositionsDeflated,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=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;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),o.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=u.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n||e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},o.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n].consumer.sourceContentFor(e,!0);if(r)return r}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(-1!==n.consumer.sources.indexOf(a.getArg(e,"source"))){var r=n.consumer.generatedPositionFor(e);if(r){return{line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)}}}}return{line:null,column:null}},o.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,s=0;s<i.length;s++){var o=i[s],u=r.consumer._sources.at(o.source);null!==r.consumer.sourceRoot&&(u=a.join(r.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var c=r.consumer._names.at(o.name);this._names.add(c),c=this._names.indexOf(c);var l={source:u,generatedLine:o.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(r.generatedOffset.generatedLine===o.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:c};this.__generatedMappings.push(l),"number"==typeof l.originalLine&&this.__originalMappings.push(l)}p(this.__generatedMappings,a.compareByGeneratedPositionsDeflated),p(this.__originalMappings,a.compareByOriginalPositions)},n.IndexedSourceMapConsumer=o},{"./array-set":14,"./base64-vlq":15,"./binary-search":17,"./quick-sort":19,"./util":23}],21:[function(e,t,n){function r(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new o,this._names=new o,this._mappings=new a,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),o=e("./array-set").ArraySet,a=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=s.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),n=s.getArg(e,"original",null),r=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=s.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=s.relative(i,r));var a=new o,u=new o;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var o=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=o.source&&(t.source=o.source,null!=n&&(t.source=s.join(n,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=o.line,t.originalColumn=o.column,null!=o.name&&(t.name=o.name))}var c=t.source;null==c||a.has(c)||a.add(c);var l=t.name;null==l||u.has(l)||u.add(l)},this),this._sources=a,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=s.join(n,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&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;d<y;d++){if(t=f[d],e="",t.generatedLine!==a)for(o=0;t.generatedLine!==a;)e+=";",a++;else if(d>0){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<u.length?u[c++]:void 0}return e()+(e()||"")},p=1,h=0,f=null;return t.eachMapping(function(e){if(null!==f){if(!(p<e.generatedLine)){var t=(n=u[c]).substr(0,e.generatedColumn-h);return u[c]=n.substr(e.generatedColumn-h),h=e.generatedColumn,i(f,t),void(f=e)}i(f,l()),p++,h=0}for(;p<e.generatedLine;)a.add(l()),p++;if(h<e.generatedColumn){var n=u[c];a.add(n.substr(0,e.generatedColumn)),u[c]=n.substr(e.generatedColumn),h=e.generatedColumn}f=e},this),c<u.length&&(f&&i(f,l()),a.add(u.splice(c).join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=s.join(n,e)),a.setSourceContent(e,r))}),a},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=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;n<r;n++)(t=this.children[n])[a]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[a]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][a]&&this.children[t].walkSourceContents(e);var r=Object.keys(this.sourceContents);for(t=0,n=r.length;t<n;t++)e(s.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,s=null,o=null,a=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&o===i.line&&a===i.column&&u===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,o=i.line,a=i.column,u=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),s=null,r=!1);for(var c=0,l=e.length;c<l;c++)10===e.charCodeAt(c)?(t.line++,t.column=0,c+1===l?(s=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":21,"./util":23}],23:[function(e,t,n){function r(e){var t=e.match(c);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var t=e,s=r(e);if(s){if(!s.path)return e;t=s.path}for(var o,a=n.isAbsolute(t),u=t.split(/\/+/),c=0,l=u.length-1;l>=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;n++)r(t.c[n],e)})}},reject:function(e){if(void 0===this.state){this.state=i,this.v=e;var t=this.c;t&&s(function(){for(var n=0,r=t.length;n<r;n++)i(t[n],e)})}},then:function(e,t){var r=new n,i={y:e,n:t,p:r};if(void 0===this.state)this.c?this.c.push(i):this.c=[i];else{var o=this.state,a=this.v;s(function(){o(i,a)})}return r}},n.resolve=function(e){if(e&&e instanceof n)return e;var t=new n;return t.resolve(e),t},n.reject=function(e){if(e&&e instanceof n)return e;var t=new n;return t.reject(e),t},n.version="2.3.3-nodent",n}}).call(this,e("_process"))},{_process:32}],29:[function(e,t,n){t.exports=function(e,t,n,r){var i=[[],[]],s=[/(.*)(<script[^>]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u<t.length;){var c=s[o].exec(t[u]);c&&0==o&&c[2].match("src=")&&(c=null),c?(1==o?(i[o].push(c[1]),pr=e.compile(i[1].join("\n"),n,3,r.compiler).code,a&&r.runtime&&(a=!1,r.runtime&&i[0].push("Function.prototype.$asyncbind = "+e.$asyncbind.toString()+";\n")),i[0].push(pr),i[1]=[],i[o=0].push(c[2])):(i[o].push(c[1]),i[o].push(c[2]),o=1),t[u]=c[3]):i[o].push(t[u++])}return i[0].join("\n")}},{}],30:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=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<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,s=arguments.length-1;s>=-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<e.length&&""===e[t];t++);for(var n=e.length-1;n>=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;u<o;u++)if(i[u]!==s[u]){a=u;break}var c=[];for(u=a;u<i.length;u++)c.push("..");return(c=c.concat(s.slice(a))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=s(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=s(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return s(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:32}],31:[function(e,t,n){(function(e){"use strict";var n="win32"===e.platform,r=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,i=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,s={};s.parse=function(e){if("string"!=typeof e)throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=function(e){var t=r.exec(e),n=(t[1]||"")+(t[2]||""),s=t[3]||"",o=i.exec(s);return[n,o[1],o[2],o[3]]}(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}};var o=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,a={};a.parse=function(e){if("string"!=typeof e)throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=function(e){return o.exec(e).slice(1)}(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return t[1]=t[1]||"",t[2]=t[2]||"",t[3]=t[3]||"",{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},t.exports=n?s.parse:a.parse,t.exports.posix=a.parse,t.exports.win32=s.parse}).call(this,e("_process"))},{_process:32}],32:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(l===setTimeout)return setTimeout(e,0);if((l===r||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function o(){y&&f&&(y=!1,f.length?d=f.concat(d):m=-1,d.length&&a())}function a(){if(!y){var e=s(o);y=!0;for(var t=d.length;t;){for(f=d,d=[];++m<t;)f&&f[m].run();m=-1,t=d.length}f=null,y=!1,function(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}(e)}}function u(e,t){this.fun=e,this.array=t}function c(){}var l,p,h=t.exports={};!function(){try{l="function"==typeof setTimeout?setTimeout:r}catch(e){l=r}try{p="function"==typeof clearTimeout?clearTimeout:i}catch(e){p=i}}();var f,d=[],y=!1,m=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];d.push(new u(e,t)),1!==d.length||y||s(a)},u.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=c,h.addListener=c,h.once=c,h.off=c,h.removeListener=c,h.removeAllListeners=c,h.emit=c,h.prependListener=c,h.prependOnceListener=c,h.listeners=function(e){return[]},h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},{}],33:[function(e,t,n){var r=e("./lib/core"),i=e("./lib/async");i.core=r,i.isCore=function(e){return r[e]},i.sync=e("./lib/sync"),t.exports=i},{"./lib/async":34,"./lib/core":37,"./lib/sync":39}],34:[function(e,t,n){(function(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,u){function c(t,n,r){t?d(t):n?d(null,n,r):h(w,function(t,n,r){if(t)d(t);else if(n)d(null,n,r);else{var i=new Error("Cannot find module '"+e+"' from '"+x+"'");i.code="MODULE_NOT_FOUND",d(i)}})}function l(e,t,n){function r(e,t,n){function i(n,i,l){if(c=i,n)return o(n);if(l&&c&&y.pathFilter){var p=s.relative(l,u),h=p.slice(0,p.length-e[0].length),f=y.pathFilter(c,t,h);if(f)return r([""].concat(b.slice()),s.resolve(l,f),c)}g(u,a)}function a(n,i){return n?o(n):i?o(null,u,c):void r(e.slice(1),t,c)}if(0===e.length)return o(null,void 0,n);var u=t+e[0],c=n;c?i(null,c):p(s.dirname(u),i)}var i=t,o=n;"function"==typeof i&&(o=i,i=void 0);r([""].concat(b),e,i)}function p(e,t){if(""===e||"/"===e)return t(null);if("win32"===n.platform&&/^\w:[/\\]*$/.test(e))return t(null);if(/[/\\]node_modules[/\\]*$/.test(e))return t(null);var r=s.join(e,"package.json");g(r,function(n,i){if(!i)return p(s.dirname(e),t);v(r,function(n,i){n&&t(n);try{var s=JSON.parse(i)}catch(e){}s&&y.packageFilter&&(s=y.packageFilter(s,r)),t(null,s,e)})})}function h(e,t,n){var r=n,i=t;"function"==typeof i&&(r=i,i=y.package);var o=s.join(e,"package.json");g(o,function(t,n){return t?r(t):n?void v(o,function(t,n){if(t)return r(t);try{var i=JSON.parse(n)}catch(e){}if(y.packageFilter&&(i=y.packageFilter(i,o)),i.main)return"."!==i.main&&"./"!==i.main||(i.main="index"),void l(s.resolve(e,i.main),i,function(t,n,i){if(t)return r(t);if(n)return r(null,n,i);if(!i)return l(s.join(e,"index"),i,r);h(s.resolve(e,i.main),i,function(t,n,i){return t?r(t):n?r(null,n,i):void l(s.join(e,"index"),i,r)})});l(s.join(e,"/index"),i,r)}):l(s.join(e,"index"),i,r)})}function f(t,n){function r(e,r,i){return e?t(e):r?t(null,r,i):void f(t,n.slice(1))}if(0===n.length)return t(null,void 0);var i=n[0];l(s.join(i,e),void 0,function(n,o,a){return n?t(n):o?t(null,o,a):void h(s.join(i,e),void 0,r)})}var d=u,y=t||{};if("function"==typeof y&&(d=y,y={}),"string"!=typeof e){var m=new TypeError("Path must be a string.");return n.nextTick(function(){d(m)})}var g=y.isFile||function(e,t){i.stat(e,function(e,n){return e?"ENOENT"===e.code||"ENOTDIR"===e.code?t(null,!1):t(e):t(null,n.isFile()||n.isFIFO())})},v=y.readFile||i.readFile,b=y.extensions||[".js"],x=y.basedir||s.dirname(o());if(y.paths=y.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(e)){var w=s.resolve(x,e);".."!==e&&"/"!==e.slice(-1)||(w+="/"),/\/$/.test(e)&&w===x?h(w,y.package,c):l(w,y.package,c)}else!function(e,t,n){f(n,a(t,y))}(0,x,function(t,n,i){if(t)d(t);else if(n)d(null,n,i);else{if(r[e])return d(null,e);var s=new Error("Cannot find module '"+e+"' from '"+x+"'");s.code="MODULE_NOT_FOUND",d(s)}})}}).call(this,e("_process"))},{"./caller.js":35,"./core":37,"./node-modules-paths.js":38,_process:32,fs:7,path:30}],35:[function(e,t,n){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;return Error.prepareStackTrace=e,t[2].getFileName()}},{}],36:[function(e,t,n){t.exports={assert:!0,buffer_ieee754:"< 0.9.7",buffer:!0,child_process:!0,cluster:!0,console:!0,constants:!0,crypto:!0,_debugger:"< 8",dgram:!0,dns:!0,domain:!0,events:!0,freelist:"< 6",fs:!0,http:!0,http2:">= 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<a:">="===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<h.length;t++){var n=e+h[t];if(l(n))return n}}function u(e){var t=s.join(e,"/package.json");if(l(t))try{var r=p(t,"UTF8"),i=JSON.parse(r);if(c.packageFilter&&(i=c.packageFilter(i,e)),i.main){"."!==i.main&&"./"!==i.main||(i.main="index");var o=n(s.resolve(e,i.main));if(o)return o;var a=u(s.resolve(e,i.main));if(a)return a}}catch(e){}return n(s.join(e,"/index"))}if("string"!=typeof e)throw new TypeError("Path must be a string.");var c=t||{},l=c.isFile||function(e){try{var t=i.statSync(e)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return!1;throw e}return t.isFile()||t.isFIFO()},p=c.readFileSync||i.readFileSync,h=c.extensions||[".js"],f=c.basedir||s.dirname(o());if(c.paths=c.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(e)){var d=s.resolve(f,e);".."!==e&&"/"!==e.slice(-1)||(d+="/");var y=n(d)||u(d);if(y)return y}else{var m=function(e,t){for(var r=a(t,c),i=0;i<r.length;i++){var o=r[i],l=n(s.join(o,"/",e));if(l)return l;var p=u(s.join(o,"/",e));if(p)return p}}(e,f);if(m)return m}if(r[e])return e;var g=new Error("Cannot find module '"+e+"' from '"+f+"'");throw g.code="MODULE_NOT_FOUND",g}},{"./caller.js":35,"./core":37,"./node-modules-paths.js":38,fs:7,path:30}],nodent:[function(require,module,exports){(function(process,global,__dirname){"use strict";function copyObj(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}function globalErrorHandler(e){throw e}function isDirective(e){return"ExpressionStatement"===e.type&&("StringLiteral"===e.expression.type||"Literal"===e.expression.type&&"string"==typeof e.expression.value)}function parseCompilerOptions(code,log,filename){log||(log=console.warn.bind(console));var regex,set,parseOpts={};if("string"==typeof code)(regex=code.match(useDirective))&&(set=regex[1]||"default");else for(var i=0;i<code.body.length&&isDirective(code.body[i].type);i++){var test="'"+code.body[i].value+"'";if(regex=test.match(useDirective)){set=regex[1]||"default";break}}if(!regex){if(!defaultCodeGenOpts.noUseDirective)return null;set="default",regex=[null,null,"{}"]}if(set)try{filename?require("fs").lstatSync(filename).isDirectory()||(filename=require("path").dirname(filename)):filename=require("path").resolve(".");var packagePath=require("resolve").sync("package.json",{moduleDirectory:[""],extensions:[""],basedir:filename}),packageOptions=JSON.parse(fs.readFileSync(packagePath)).nodent.directive[set]}catch(e){}try{parseOpts=copyObj([optionSets[set],packageOptions,regex[2]&&JSON.parse(regex[2])])}catch(e){log("Invalid literal compiler option: "+(regex&&regex[0]||"<no options found>"))}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<n.extensions.length;p++)if(fs.existsSync(l+"."+n.extensions[p])){l=l+"."+n.extensions[p];break}fs.readFile(l,function(e,t){if(e)return c(e);try{var u,l;n.htmlScriptRegex&&o.url.match(n.htmlScriptRegex)?(u=require("./htmlScriptParser")(i,t.toString(),o.url,n),l="text/html"):(n.runtime?(u="Function.prototype."+s.$asyncbind+" = "+$asyncbind.toString()+";",s.generators&&(u+="Function.prototype."+s.$asyncspawn+" = "+$asyncspawn.toString()+";"),s.wrapAwait&&!s.promises&&(u+="Object."+s.$makeThenable+" = "+Thenable.resolve.toString()+";"),s.mapStartLine=u.split("\n").length,u+="\n"):u="",u+=i.compile(t.toString(),o.url,null,s).code,l="application/javascript"),a.setHeader("Content-Type",l),n.enableCache&&(r[o.url]={output:u,contentType:l}),n.setHeaders&&n.setHeaders(a),a.write(u),a.end()}catch(e){return c(e)}})}}function requireCover(e,t){t=t||{};var n=e+"|"+Object.keys(t).sort().reduce(function(e,n){return e+n+JSON.stringify(t[n])},"");return this.covers[n]||(e.indexOf("/")>=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;o<i.length;o++)if(r.slice(0,i[o].path.length)==i[o].path){if(i[o].jsCompiler){if(i[o].jsCompiler===t)break;return i[o].jsCompiler.apply(this,arguments)}return stdJSLoader(n,r)}var a=parseCompilerOptions(stripBOM(fs.readFileSync(r,"utf8")),e.log,r);return a?s(n,r,a):stdJSLoader(n,r)}var u={path:r.replace(/\/node_modules\/nodent\/nodent\.js$/,"")};u.path&&(u.version=JSON.parse(fs.readFileSync(r.replace(/nodent\.js$/,"package.json"))).version,stdJSLoader(n,r),function(e,t){e=e.split("."),t=t.split(".");for(var n=0;n<3;n++){if(e[n]<t[n])return-1;if(e[n]>t[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;n<process.argv.length;n++)if("--"===process.argv[n].slice(0,2)){var r=process.argv[n].slice(2).split("=");t[r[0]]=r[1]||!0}else t.push(process.argv[n]);return t}());initialize.setDefaultCompileOptions({sourcemap:r.sourcemap,wrapAwait:r.wrapAwait,lazyThenables:r.lazyThenables,noRuntime:r.noruntime,es6target:r.es6target,parser:r.noextensions?{noNodentExtensions:!0}:void 0});var i=initialize({augmentObject:!0});if(!(r.fromast||r.parseast||r.pretty||r.out||r.dest||r.ast||r.minast||r.exec))try{var s=n.resolve(r[0]);return require(s)}catch(e){throw e&&(e.message=r[0]+": "+e.message),e}if(0==r.length||"-"===r[0])return t="(stdin)",function(e){return new Thenable(function(t,n){var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var e=r.map(function(e){return e.toString()}).join("");return t(e)}),e.on("error",n)}.$asyncbind(this))}(process.stdin).then(e,globalErrorHandler);for(var o=0;o<r.length;o++)t=n.resolve(r[o]),e(stripBOM(fs.readFileSync(t,"utf8")),r[o])}var stdJSLoader,fs=require("fs"),NodentCompiler=require("nodent-compiler"),config={log:function(e){console.warn("Nodent: "+e)},augmentObject:!1,extension:".njs",dontMapStackTraces:!1,asyncStackTrace:!1,babelTree:!1,dontInstallRequireHook:!1},defaultCodeGenOpts=Object.create(NodentCompiler.initialCodeGenOpts,{es7:{value:!0,writable:!0,enumerable:!0}}),optionSets={default:defaultCodeGenOpts,es7:Object.create(defaultCodeGenOpts),promise:Object.create(defaultCodeGenOpts,{promises:{value:!0,writable:!0,enumerable:!0}}),generator:Object.create(defaultCodeGenOpts,{generators:{value:!0,writable:!0,enumerable:!0},es7:{value:!1,writable:!0,enumerable:!0}}),engine:Object.create(defaultCodeGenOpts,{engine:{value:!0,writable:!0,enumerable:!0},promises:{value:!0,writable:!0,enumerable:!0}}),host:Object.create(defaultCodeGenOpts,{promises:{value:"host",writable:!0,enumerable:!0},es6target:{value:"host",writable:!0,enumerable:!0},engine:{value:"host",writable:!0,enumerable:!0}})};optionSets.promises=optionSets.promise,optionSets.generators=optionSets.generator;var useDirective=/^\s*['"]use\s+nodent-?([a-zA-Z0-9]*)?(\s*.*)?['"]\s*;/,runtimes=require("nodent-runtime"),$asyncbind=runtimes.$asyncbind,$asyncspawn=runtimes.$asyncspawn,Thenable=$asyncbind.Thenable,hostOptions={promises:"Promise",es6target:"()=>0",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<n.length;a++)i(n[a]);return i}({1:[function(e,t,r){(function(r){"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return r.Buffer&&"function"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}function s(e){return Object.prototype.toString.call(e)}function a(e){return!i(e)&&("function"==typeof r.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function o(e){if(g.isFunction(e)){if(x)return e.name;var t=e.toString().match(A);return t&&t[1]}}function u(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function l(e){if(x||!g.isFunction(e))return g.inspect(e);var t=o(e);return"[Function"+(t?": "+t:"")+"]"}function c(e,t,r,n,i){throw new E.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function p(e,t){e||c(e,!0,t,"==",E.ok)}function h(e,t,r,o){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(g.isDate(e)&&g.isDate(t))return e.getTime()===t.getTime();if(g.isRegExp(e)&&g.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(a(e)&&a(t)&&s(e)===s(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;var u=(o=o||{actual:[],expected:[]}).actual.indexOf(e);return-1!==u&&u===o.expected.indexOf(t)||(o.actual.push(e),o.expected.push(t),function(e,t,r,n){if(null===e||void 0===e||null===t||void 0===t)return!1;if(g.isPrimitive(e)||g.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=f(e),s=f(t);if(i&&!s||!i&&s)return!1;if(i)return e=v.call(e),t=v.call(t),h(e,t,r);var a,o,u=D(e),l=D(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),o=u.length-1;o>=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;s<n;++s){if(r&&r.push(s),s in e!=s in t)return!1;if(!i(e[s],t[s],r))return!1;if(r){var a=r.pop();if(a!==s)throw new Error(""+a)}}return!0}(e,t,r):l.check(e)?function(e,t,r){if(l.assert(e),!l.check(t))return!1;if(e.type!==t.type)return r&&r.push("type"),!1;var n=a(e),s=n.length,u=a(t),c=u.length;if(s===c){for(var p=0;p<s;++p){var f=n[p],d=o(e,f),m=o(t,f);if(r&&r.push(f),!i(d,m,r))return!1;if(r){var y=r.pop();if(y!==f)throw new Error(""+y)}}return!0}if(!r)return!1;var g=Object.create(null);for(p=0;p<s;++p)g[n[p]]=!0;for(p=0;p<c;++p){if(f=u[p],!h.call(g,f))return r.push(f),!1;delete g[f]}for(f in g){r.push(f);break}return!1}(e,t,r):c.check(e)?c.check(t)&&+e==+t:p.check(e)?p.check(t)&&e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.ignoreCase===t.ignoreCase:e==t)}var s=t.use(e("../lib/types")),a=s.getFieldNames,o=s.getFieldValue,u=s.builtInTypes.array,l=s.builtInTypes.object,c=s.builtInTypes.Date,p=s.builtInTypes.RegExp,h=Object.prototype.hasOwnProperty;return r.assert=function(e,t){var i=[];if(!r(e,t,i)){if(0!==i.length)throw new Error("Nodes differ in the following path: "+i.map(n).join(""));if(e!==t)throw new Error("Nodes must be equal")}},r}},{"../lib/types":19}],14:[function(e,t,r){t.exports=function(t){function r(e,t,n){if(!(this instanceof r))throw new Error("NodePath constructor cannot be invoked without 'new'");p.call(this,e,t,n)}function n(e){return o.BinaryExpression.check(e)||o.LogicalExpression.check(e)}function i(e){return!!o.CallExpression.check(e)||(c.check(e)?e.some(i):!!o.Node.check(e)&&a.someField(e,function(e,t){return i(t)}))}function s(e){if(o.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||0===t.length)return e.prune()}else if(o.ExpressionStatement.check(e.node)){if(!e.get("expression").value)return e.prune()}else o.IfStatement.check(e.node)&&function(e){var t=e.get("test").value,r=e.get("alternate").value,n=e.get("consequent").value;if(n||r){if(!n&&r){var i=u.unaryExpression("!",t,!0);o.UnaryExpression.check(t)&&"!"===t.operator&&(i=t.argument),e.get("test").replace(i),e.get("consequent").replace(r),e.get("alternate").replace()}}else{var s=u.expressionStatement(t);e.replace(s)}}(e);return e}var a=t.use(e("./types")),o=a.namedTypes,u=a.builders,l=a.builtInTypes.number,c=a.builtInTypes.array,p=t.use(e("./path")),h=t.use(e("./scope")),f=r.prototype=Object.create(p.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}});Object.defineProperties(f,{node:{get:function(){return Object.defineProperty(this,"node",{configurable:!0,value:this._computeNode()}),this.node}},parent:{get:function(){return Object.defineProperty(this,"parent",{configurable:!0,value:this._computeParent()}),this.parent}},scope:{get:function(){return Object.defineProperty(this,"scope",{configurable:!0,value:this._computeScope()}),this.scope}}}),f.replace=function(){return delete this.node,delete this.parent,delete this.scope,p.prototype.replace.apply(this,arguments)},f.prune=function(){var e=this.parent;return this.replace(),s(e)},f._computeNode=function(){var e=this.value;if(o.Node.check(e))return e;var t=this.parentPath;return t&&t.node||null},f._computeParent=function(){var e=this.value,t=this.parentPath;if(!o.Node.check(e)){for(;t&&!o.Node.check(t.value);)t=t.parentPath;t&&(t=t.parentPath)}for(;t&&!o.Node.check(t.value);)t=t.parentPath;return t||null},f._computeScope=function(){var e=this.value,t=this.parentPath,r=t&&t.scope;return o.Node.check(e)&&h.isEstablishedBy(e)&&(r=new h(this,r)),r||null},f.getValueProperty=function(e){return a.getFieldValue(this.value,e)},f.needsParens=function(e){if(!(s=this.parentPath))return!1;var t=this.value;if(!o.Expression.check(t))return!1;if("Identifier"===t.type)return!1;for(;!o.Node.check(s.value);)if(!(s=s.parentPath))return!1;var r=s.value;switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===r.type&&"object"===this.name&&r.object===t;case"BinaryExpression":case"LogicalExpression":switch(r.type){case"CallExpression":return"callee"===this.name&&r.callee===t;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===this.name&&r.object===t;case"BinaryExpression":case"LogicalExpression":var n=r.operator,s=d[n],a=t.operator,u=d[a];if(s>u)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<s;++o){var u=t[o];r="visit"+n[u],c.check(e[r])&&(i[u]=r)}return i}(this),this._shouldVisitComments=n.call(this._methodNameTable,"Block")||n.call(this._methodNameTable,"Line"),this.Context=function(e){function t(n){if(!(this instanceof t))throw new Error("");if(!(this instanceof r))throw new Error("");if(!(n instanceof o))throw new Error("");Object.defineProperty(this,"visitor",{value:e,writable:!1,enumerable:!0,configurable:!1}),this.currentPath=n,this.needToCallTraverse=!0,Object.seal(this)}if(!(e instanceof r))throw new Error("");var n=t.prototype=Object.create(e);return n.constructor=t,i(n,h),t}(this),this._visiting=!1,this._changeReported=!1}function i(e,t){for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}function s(e,t){if(!(e instanceof o))throw new Error("");if(!(t instanceof r))throw new Error("");var i=e.value;if(u.check(i))e.each(t.visitWithoutReset,t);else if(l.check(i)){var s=a.getFieldNames(i);t._shouldVisitComments&&i.comments&&s.indexOf("comments")<0&&s.push("comments");for(var c=s.length,p=[],h=0;h<c;++h){var f=s[h];n.call(i,f)||(i[f]=a.getFieldValue(i,f)),p.push(e.get(f))}for(h=0;h<c;++h)t.visitWithoutReset(p[h])}else;return e.value}var a=t.use(e("./types")),o=t.use(e("./node-path")),u=(a.namedTypes.Printable,a.builtInTypes.array),l=a.builtInTypes.object,c=a.builtInTypes.function;r.fromMethodsObject=function(e){function t(){if(!(this instanceof t))throw new Error("Visitor constructor cannot be invoked without 'new'");r.call(this)}if(e instanceof r)return e;if(!l.check(e))return new r;var n=t.prototype=Object.create(p);return n.constructor=t,i(n,e),i(t,r),c.assert(t.fromMethodsObject),c.assert(t.visit),new t},r.visit=function(e,t){return r.fromMethodsObject(t).visit(e)};var p=r.prototype;p.visit=function(){if(this._visiting)throw new Error("Recursively calling visitor.visit(path) resets visitor state. Try this.visit(path) or this.traverse(path) instead.");this._visiting=!0,this._changeReported=!1,this._abortRequested=!1;for(var e=arguments.length,t=new Array(e),r=0;r<e;++r)t[r]=arguments[r];t[0]instanceof o||(t[0]=new o({root:t[0]}).get("root")),this.reset.apply(this,t);try{var n=this.visitWithoutReset(t[0]),i=!0}finally{if(this._visiting=!1,!i&&this._abortRequested)return t[0].value}return n},p.AbortRequest=function(){},p.abort=function(){var e=this;e._abortRequested=!0;var t=new e.AbortRequest;throw t.cancel=function(){e._abortRequested=!1},t},p.reset=function(e){},p.visitWithoutReset=function(e){if(this instanceof this.Context)return this.visitor.visitWithoutReset(e);if(!(e instanceof o))throw new Error("");var t=e.value,r=t&&"object"==typeof t&&"string"==typeof t.type&&this._methodNameTable[t.type];if(!r)return s(e,this);var n=this.acquireContext(e);try{return n.invokeVisitorMethod(r)}finally{this.releaseContext(n)}},p.acquireContext=function(e){return 0===this._reusableContextStack.length?new this.Context(e):this._reusableContextStack.pop().reset(e)},p.releaseContext=function(e){if(!(e instanceof this.Context))throw new Error("");this._reusableContextStack.push(e),e.currentPath=null},p.reportChanged=function(){this._changeReported=!0},p.wasChangeReported=function(){return this._changeReported};var h=Object.create(null);return h.reset=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof o))throw new Error("");return this.currentPath=e,this.needToCallTraverse=!0,this},h.invokeVisitorMethod=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(this.currentPath instanceof o))throw new Error("");var t=this.visitor[e].call(this,this.currentPath);if(!1===t?this.needToCallTraverse=!1:void 0!==t&&(this.currentPath=this.currentPath.replace(t)[0],this.needToCallTraverse&&this.traverse(this.currentPath)),!1!==this.needToCallTraverse)throw new Error("Must either call this.traverse or return false in "+e);var r=this.currentPath;return r&&r.value},h.traverse=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof o))throw new Error("");if(!(this.currentPath instanceof o))throw new Error("");return this.needToCallTraverse=!1,s(e,r.fromMethodsObject(t||this.visitor))},h.visit=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof o))throw new Error("");if(!(this.currentPath instanceof o))throw new Error("");return this.needToCallTraverse=!1,r.fromMethodsObject(t||this.visitor).visitWithoutReset(e)},h.reportChanged=function(){this.visitor.reportChanged()},h.abort=function(){this.needToCallTraverse=!1,this.visitor.abort()},r}},{"./node-path":14,"./types":19}],16:[function(e,t,r){var n=Array.prototype,i=(n.slice,n.map,Object.prototype.hasOwnProperty);t.exports=function(t){function r(e,t,n){if(!(this instanceof r))throw new Error("Path constructor cannot be invoked without 'new'");if(t){if(!(t instanceof r))throw new Error("")}else t=null,n=null;this.value=e,this.parentPath=t,this.name=n,this.__childCache=null}function n(e){return e.__childCache||(e.__childCache=Object.create(null))}function s(e,t){var r=n(e),s=e.getValueProperty(t),a=r[t];return i.call(r,t)&&a.value===s||(a=r[t]=new e.constructor(s,e,t)),a}function a(){}function o(e,t,r,s){if(l.assert(e.value),0===t)return a;var o=e.value.length;if(o<1)return a;var u=arguments.length;2===u?(r=0,s=o):3===u?(r=Math.max(r,0),s=o):(r=Math.max(r,0),s=Math.min(s,o)),c.assert(r),c.assert(s);for(var p=Object.create(null),h=n(e),f=r;f<s;++f)if(i.call(e.value,f)){var d=e.get(f);if(d.name!==f)throw new Error("");var m=f+t;d.name=m,p[m]=d,delete h[f]}return delete h.length,function(){for(var t in p){var r=p[t];if(r.name!==+t)throw new Error("");h[t]=r,e.value[t]=r.value}}}var u=t.use(e("./types")),l=u.builtInTypes.array,c=u.builtInTypes.number,p=r.prototype;return p.getValueProperty=function(e){return this.value[e]},p.get=function(e){for(var t=this,r=arguments,n=r.length,i=0;i<n;++i)t=s(t,r[i]);return t},p.each=function(e,t){var r=[],n=this.value.length,s=0;for(s=0;s<n;++s)i.call(this.value,s)&&(r[s]=this.get(s));for(t=t||this,s=0;s<n;++s)i.call(r,s)&&e.call(t,r[s])},p.map=function(e,t){var r=[];return this.each(function(t){r.push(e.call(this,t))},t),r},p.filter=function(e,t){var r=[];return this.each(function(t){e.call(this,t)&&r.push(t)},t),r},p.shift=function(){var e=o(this,-1),t=this.value.shift();return e(),t},p.unshift=function(e){var t=o(this,arguments.length),r=this.value.unshift.apply(this.value,arguments);return t(),r},p.push=function(e){return l.assert(this.value),delete n(this).length,this.value.push.apply(this.value,arguments)},p.pop=function(){l.assert(this.value);var e=n(this);return delete e[this.value.length-1],delete e.length,this.value.pop()},p.insertAt=function(e,t){var r=arguments.length,n=o(this,r-1,e);if(n===a)return this;e=Math.max(e,0);for(var i=1;i<r;++i)this.value[e+i-1]=arguments[i];return n(),this},p.insertBefore=function(e){for(var t=this.parentPath,r=arguments.length,n=[this.name],i=0;i<r;++i)n.push(arguments[i]);return t.insertAt.apply(t,n)},p.insertAfter=function(e){for(var t=this.parentPath,r=arguments.length,n=[this.name+1],i=0;i<r;++i)n.push(arguments[i]);return t.insertAt.apply(t,n)},p.replace=function(e){var t=[],i=this.parentPath.value,s=n(this.parentPath),a=arguments.length;if(function(e){if(!(e instanceof r))throw new Error("");var t=e.parentPath;if(!t)return e;var i=t.value,s=n(t);if(i[e.name]===e.value)s[e.name]=e;else if(l.check(i)){var a=i.indexOf(e.value);a>=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<a;++h)p.push(arguments[h]);if(i.splice.apply(i,p)[0]!==this.value)throw new Error("");if(i.length!==u-1+a)throw new Error("");if(c(),0===a)delete this.value,delete s[this.name],this.__childCache=null;else{if(i[this.name]!==e)throw new Error("");for(this.value!==e&&(this.value=e,this.__childCache=null),h=0;h<a;++h)t.push(this.parentPath.get(this.name+h));if(t[0]!==this)throw new Error("")}}else if(1===a)this.value!==e&&(this.__childCache=null),this.value=i[this.name]=e,t.push(this);else{if(0!==a)throw new Error("Could not replace path");delete i[this.name],delete this.value,this.__childCache=null}return t},r}},{"./types":19}],17:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(t){function r(n,i){if(!(this instanceof r))throw new Error("Scope constructor cannot be invoked without 'new'");if(!(n instanceof t.use(e("./node-path"))))throw new Error("");m.assert(n.value);var s;if(i){if(!(i instanceof r))throw new Error("");s=i.depth+1}else i=null,s=0;Object.defineProperties(this,{path:{value:n},node:{value:n.value},isGlobal:{value:!i,enumerable:!0},depth:{value:s},parent:{value:i},bindings:{value:{}},types:{value:{}}})}function i(e,t,r){var i=e.value;e.parent&&l.FunctionExpression.check(e.parent.node)&&e.parent.node.id&&a(e.parent.get("id"),t),i&&(h.check(i)?e.each(function(e){s(e,t,r)}):l.Function.check(i)?(e.get("params").each(function(e){a(e,t)}),s(e.get("body"),t,r)):l.TypeAlias&&l.TypeAlias.check(i)?function(e,t){var r=e.value;l.Pattern.assert(r),l.Identifier.check(r)&&(n.call(t,r.name)?t[r.name].push(e):t[r.name]=[e])}(e.get("id"),r):l.VariableDeclarator.check(i)?(a(e.get("id"),t),s(e.get("init"),t,r)):"ImportSpecifier"===i.type||"ImportNamespaceSpecifier"===i.type||"ImportDefaultSpecifier"===i.type?a(e.get(i.local?"local":i.name?"name":"id"),t):c.check(i)&&!p.check(i)&&o.eachField(i,function(n,i){var a=e.get(n);if(!function(e,t){if(e.value===t)return!0;if(Array.isArray(e.value)&&0===e.value.length&&Array.isArray(t)&&0===t.length)return!0;return!1}(a,i))throw new Error("");s(a,t,r)}))}function s(e,t,r){var s=e.value;if(!s||p.check(s));else if(l.FunctionDeclaration.check(s)&&null!==s.id)a(e.get("id"),t);else if(l.ClassDeclaration&&l.ClassDeclaration.check(s))a(e.get("id"),t);else if(m.check(s)){if(l.CatchClause.check(s)){var o=s.param.name,u=n.call(t,o);i(e.get("body"),t,r),u||delete t[o]}}else i(e,t,r)}function a(e,t){var r=e.value;l.Pattern.assert(r),l.Identifier.check(r)?n.call(t,r.name)?t[r.name].push(e):t[r.name]=[e]:l.ObjectPattern&&l.ObjectPattern.check(r)?e.get("properties").each(function(e){var r=e.value;l.Pattern.check(r)?a(e,t):l.Property.check(r)?a(e.get("value"),t):l.SpreadProperty&&l.SpreadProperty.check(r)&&a(e.get("argument"),t)}):l.ArrayPattern&&l.ArrayPattern.check(r)?e.get("elements").each(function(e){var r=e.value;l.Pattern.check(r)?a(e,t):l.SpreadElement&&l.SpreadElement.check(r)&&a(e.get("argument"),t)}):l.PropertyPattern&&l.PropertyPattern.check(r)?a(e.get("pattern"),t):(l.SpreadElementPattern&&l.SpreadElementPattern.check(r)||l.SpreadPropertyPattern&&l.SpreadPropertyPattern.check(r))&&a(e.get("argument"),t)}var o=t.use(e("./types")),u=o.Type,l=o.namedTypes,c=l.Node,p=l.Expression,h=o.builtInTypes.array,f=o.builders,d=[l.Program,l.Function,l.CatchClause],m=u.or.apply(u,d);r.isEstablishedBy=function(e){return m.check(e)};var y=r.prototype;return y.didScan=!1,y.declares=function(e){return this.scan(),n.call(this.bindings,e)},y.declaresType=function(e){return this.scan(),n.call(this.types,e)},y.declareTemporary=function(e){if(e){if(!/^[a-z$_]/i.test(e))throw new Error("")}else e="t$";e+=this.depth.toString(36)+"$",this.scan();for(var t=0;this.declares(e+t);)++t;var r=e+t;return this.bindings[r]=o.builders.identifier(r)},y.injectTemporary=function(e,t){e||(e=this.declareTemporary());var r=this.path.get("body");return l.BlockStatement.check(r.value)&&(r=r.get("body")),r.unshift(f.variableDeclaration("var",[f.variableDeclarator(e,t||null)])),e},y.scan=function(e){if(e||!this.didScan){for(var t in this.bindings)delete this.bindings[t];!function(e,t,r){var n=e.value;m.assert(n),l.CatchClause.check(n)?a(e.get("param"),t):i(e,t,r)}(this.path,this.bindings,this.types),this.didScan=!0}},y.getBindings=function(){return this.scan(),this.bindings},y.getTypes=function(){return this.scan(),this.types},y.lookup=function(e){for(var t=this;t&&!t.declares(e);t=t.parent);return t},y.lookupType=function(e){for(var t=this;t&&!t.declaresType(e);t=t.parent);return t},y.getGlobalScope=function(){for(var e=this;!e.isGlobal;)e=e.parent;return e},r}},{"./node-path":14,"./types":19}],18:[function(e,t,r){t.exports=function(t){var r={},n=t.use(e("../lib/types")),i=n.Type,s=n.builtInTypes,a=s.number;r.geq=function(e){return new i(function(t){return a.check(t)&&t>=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<r;++i)t.push(n(arguments[i]));return new e(function(e,n){for(var i=0;i<r;++i)if(t[i].check(e,n))return!0;return!1},function(){return t.join(" | ")})},e.fromArray=function(e){if(!D.check(e))throw new Error("");if(1!==e.length)throw new Error("only one element type is permitted for typed arrays");return n(e[0]).arrayOf()},g.arrayOf=function(){var t=this;return new e(function(e,r){return D.check(e)&&e.every(function(e){return t.check(e,r)})},function(){return"["+t+"]"})},e.fromObject=function(t){var r=Object.keys(t).map(function(e){return new s(e,t[e])});return new e(function(e,t){return S.check(e)&&r.every(function(r){return r.type.check(e[r.name],t)})},function(){return"{ "+r.join(", ")+" }"})};var w=s.prototype;w.toString=function(){return JSON.stringify(this.name)+": "+this.type},w.getValue=function(e){var t=e[this.name];return _.check(t)?(this.defaultFn&&(t=this.defaultFn.call(e)),t):t},e.def=function(e){return E.assert(e),l.call(k,e)?k[e]:k[e]=new c(e)};var k=Object.create(null);c.fromValue=function(e){if(e&&"object"==typeof e){var t=e.type;if("string"==typeof t&&l.call(k,t)){var r=k[t];if(r.finalized)return r}}return null};var F=c.prototype;F.isSupertypeOf=function(e){if(e instanceof c){if(!0!==this.finalized||!0!==e.finalized)throw new Error("");return l.call(e.allSupertypes,this.typeName)}throw new Error(e+" is not a Def")},y.getSupertypeNames=function(e){if(!l.call(k,e))throw new Error("");var t=k[e];if(!0!==t.finalized)throw new Error("");return t.supertypeList.slice(1)},y.computeSupertypeLookupTable=function(e){for(var t={},r=Object.keys(k),n=r.length,i=0;i<n;++i){var s=r[i],a=k[s];if(!0!==a.finalized)throw new Error(""+s);for(var o=0;o<a.supertypeList.length;++o){var u=a.supertypeList[o];if(l.call(e,u)){t[s]=u;break}}}return t},F.checkAllFields=function(e,t){var r=this.allFields;if(!0!==this.finalized)throw new Error(""+this.typeName);return S.check(e)&&Object.keys(r).every(function(n){var i=r[n],s=i.type,a=i.getValue(e);return s.check(a,t)})},F.check=function(e,t){if(!0!==this.finalized)throw new Error("prematurely checking unfinalized type "+this.typeName);if(!S.check(e))return!1;var r=c.fromValue(e);return r?t&&r===this?this.checkAllFields(e,t):!!this.isSupertypeOf(r)&&(!t||r.checkAllFields(e,t)&&this.checkAllFields(e,!1)):("SourceLocation"===this.typeName||"Position"===this.typeName)&&this.checkAllFields(e,t)},F.bases=function(){var e=i.call(arguments),t=this.baseNames;if(this.finalized){if(e.length!==t.length)throw new Error("");for(var r=0;r<e.length;r++)if(e[r]!==t[r])throw new Error("");return this}return e.forEach(function(e){E.assert(e),t.indexOf(e)<0&&t.push(e)}),this},Object.defineProperty(F,"buildable",{value:!1});var T={};y.builders=T;var P={};y.defineMethod=function(e,t){var r=P[e];return _.check(t)?delete P[e]:(A.assert(t),Object.defineProperty(P,e,{enumerable:!0,configurable:!0,value:t})),r};var B=E.arrayOf();F.build=function(){var e=this,r=i.call(arguments);return B.assert(r),Object.defineProperty(e,"buildParams",{value:r,writable:!1,enumerable:!1,configurable:!0}),e.buildable?e:(e.field("type",String,function(){return e.typeName}),Object.defineProperty(e,"buildable",{value:!0}),Object.defineProperty(T,p(e.typeName),{enumerable:!0,value:function(){function r(r,a){if(!l.call(s,r)){var o=e.allFields;if(!l.call(o,r))throw new Error(""+r);var u,c=o[r],p=c.type;if(C.check(a)&&a<i)u=n[a];else{if(!c.defaultFn){var h="no value or default function given for field "+JSON.stringify(r)+" of "+e.typeName+"("+e.buildParams.map(function(e){return o[e]}).join(", ")+")";throw new Error(h)}u=c.defaultFn.call(s)}if(!p.check(u))throw new Error(t(u)+" does not match field "+c+" of type "+e.typeName);s[r]=u}}var n=arguments,i=n.length,s=Object.create(P);if(!e.finalized)throw new Error("attempting to instantiate unfinalized type "+e.typeName);if(e.buildParams.forEach(function(e,t){r(e,t)}),Object.keys(e.allFields).forEach(function(e){r(e)}),s.type!==e.typeName)throw new Error("");return s}}),e)},y.getBuilderName=p,y.getStatementBuilderName=h,F.field=function(e,t,r,n){return this.finalized?(console.error("Ignoring attempt to redefine field "+JSON.stringify(e)+" of finalized type "+JSON.stringify(this.typeName)),this):(this.ownFields[e]=new s(e,t,r,n),this)};var O={};return y.namedTypes=O,y.getFieldNames=f,y.getFieldValue=d,y.eachField=function(e,t,r){f(e).forEach(function(r){t.call(this,r,d(e,r))},r)},y.someField=function(e,t,r){return f(e).some(function(r){return t.call(this,r,d(e,r))},r)},Object.defineProperty(F,"finalized",{value:!1}),F.finalize=function(){var e=this;if(!e.finalized){var t=e.allFields,r=e.allSupertypes;e.baseNames.forEach(function(n){var i=k[n];if(!(i instanceof c)){var s="unknown supertype name "+JSON.stringify(n)+" for subtype "+JSON.stringify(e.typeName);throw new Error(s)}i.finalize(),m(t,i.allFields),m(r,i.allSupertypes)}),m(t,e.ownFields),r[e.typeName]=e,e.fieldNames.length=0;for(var n in t)l.call(t,n)&&!t[n].hidden&&e.fieldNames.push(n);Object.defineProperty(O,e.typeName,{enumerable:!0,value:e.type}),Object.defineProperty(e,"finalized",{value:!0}),function(e,t){t.length=0,t.push(e);for(var r=Object.create(null),n=0;n<t.length;++n){e=t[n];var i=k[e];if(!0!==i.finalized)throw new Error("");l.call(r,e)&&delete t[r[e]],r[e]=n,t.push.apply(t,i.baseNames)}for(var s=0,a=s,o=t.length;a<o;++a)l.call(t,a)&&(t[s++]=t[a]);t.length=s}(e.typeName,e.supertypeList),e.buildable&&e.supertypeList.lastIndexOf("Expression")>=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;n<t;n++)r[n]=arguments[n];var i=function(e){var t=e.slice(-2),r=t[0],n=t[1],i=(0,s.matchToToken)(e);if("name"===i.type){if(o.default.keyword.isReservedWordES6(i.value))return"keyword";if(c.test(i.value)&&("<"===n[r-1]||"</"==n.substr(r-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&p.test(i.value)?"bracket":i.type}(r),a=e[i];return a?r[0].split(l).map(function(e){return a(e)}).join("\n"):r[0]})}r.__esModule=!0,r.default=function(e,t,r){var n=arguments.length>3&&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<t;n++)r+=" "+e[n];if(!this.enabled||!r)return r;var i=this._styles,s=i.length,o=a.dim.open;!p||-1===i.indexOf("gray")&&-1===i.indexOf("grey")||(a.dim.open="");for(;s--;){var u=a[i[s]];r=u.open+r.replace(u.closeRe,u.open)+u.close}return a.dim.open=o,r}.apply(t,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=f,t}var s=e("escape-string-regexp"),a=e("ansi-styles"),o=e("strip-ansi"),u=e("has-ansi"),l=e("supports-color"),c=Object.defineProperties,p="win32"===r.platform&&!/^xterm/i.test(r.env.TERM);p&&(a.blue.open="");var h=function(){var e={};return Object.keys(a).forEach(function(t){a[t].closeRe=new RegExp(s(a[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),f=c(function(){},h);c(n.prototype,function(){var e={};return Object.keys(h).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}()),t.exports=new n,t.exports.styles=a,t.exports.hasColor=u,t.exports.stripColor=o,t.exports.supportsColor=l}).call(this,e("_process"))},{_process:550,"ansi-styles":23,"escape-string-regexp":312,"has-ansi":314,"strip-ansi":29,"supports-color":30}],25:[function(e,t,r){!function(){"use strict";function e(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}t.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:e,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(t){return e(t)||null!=t&&"FunctionDeclaration"===t.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=r(t)}while(t);return!1},trailingStatement:r}}()},{}],26:[function(e,t,r){!function(){"use strict";function e(e){if(e<=65535)return String.fromCharCode(e);return String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}var r,n,i,s,a,o;for(n={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},i=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],s=new Array(128),o=0;o<128;++o)s[o]=o>=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;++t)if(n=e.charCodeAt(t),!l.isIdentifierPartES5(n))return!1;return!0}function o(e,t){return 1024*(e-55296)+(t-56320)+65536}function u(e){var t,r,n,i,s;if(0===e.length)return!1;for(s=l.isIdentifierStartES6,t=0,r=e.length;t<r;++t){if(55296<=(n=e.charCodeAt(t))&&n<=56319){if(++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||t<n)};t.exports="FORCE_COLOR"in e.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(e.stdout&&!e.stdout.isTTY)&&("win32"===e.platform||("COLORTERM"in e.env||"dumb"!==e.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(e.env.TERM))))}).call(this,e("_process"))},{_process:550}],31:[function(e,t,r){t.exports=e("./lib/api/node.js")},{"./lib/api/node.js":32}],32:[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,r.transformFromAst=r.transform=r.analyse=r.Pipeline=r.OptionManager=r.traverse=r.types=r.messages=r.util=r.version=r.resolvePreset=r.resolvePlugin=r.template=r.buildExternalHelpers=r.options=r.File=void 0;var s=e("../transformation/file");Object.defineProperty(r,"File",{enumerable:!0,get:function(){return i(s).default}});var a=e("../transformation/file/options/config");Object.defineProperty(r,"options",{enumerable:!0,get:function(){return i(a).default}});var o=e("../tools/build-external-helpers");Object.defineProperty(r,"buildExternalHelpers",{enumerable:!0,get:function(){return i(o).default}});var u=e("babel-template");Object.defineProperty(r,"template",{enumerable:!0,get:function(){return i(u).default}});var l=e("../helpers/resolve-plugin");Object.defineProperty(r,"resolvePlugin",{enumerable:!0,get:function(){return i(l).default}});var c=e("../helpers/resolve-preset");Object.defineProperty(r,"resolvePreset",{enumerable:!0,get:function(){return i(c).default}});var p=e("../../package");Object.defineProperty(r,"version",{enumerable:!0,get:function(){return p.version}}),r.Plugin=function(e){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")},r.transformFile=function(e,t,r){"function"==typeof t&&(r=t,t={}),t.filename=e,h.default.readFile(e,function(e,n){var i=void 0;if(!e)try{i=x(n,t)}catch(t){e=t}e?r(e):r(null,i)})},r.transformFileSync=function(e){var t=arguments.length>1&&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<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var r=g.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,g.default)(this.ast,r,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},n.prototype.wrap=function(e,r){e+="";try{return this.shouldIgnore()?this.makeResult({code:e,ignored:!0}):r()}catch(r){if(r._babel)throw r;r._babel=!0;var n=r.message=this.opts.filename+": "+r.message,i=r.loc;if(i&&(r.codeFrame=(0,x.default)(e,i.line,i.column+1,this.opts),n+="\n"+r.codeFrame),t.browser&&(r.message=n),r.stack){var s=r.stack.replace(r.message,n);r.stack=s}throw r}},n.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},n.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},n.prototype.shouldIgnore=function(){var e=this.opts;return C.shouldIgnore(e.filename,e.ignore,e.only)},n.prototype.call=function(e,t){var r=t,n=Array.isArray(r),i=0;for(r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=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;n<t.body.length;n++){var i=t.body[n];if(i&&null!=i._blockHoist){r=!0;break}}r&&(t.body=(0,s.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),!0===t&&(t=2),-1*t}))}}}}),t.exports=r.default},{"../plugin":56,"lodash/sortBy":531}],53:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=e.inShadow(t);if(function(e,t){return!!e.is("_forceShadow")||t}(e,r)){var n=e.node._shadowedFunctionLiteral,i=void 0,s=!1,a=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(i=i||t),t.isProgram())return s=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(n){if(t===n||t.node===n.node)return!0}else if(!t.is("shadow"))return!0;return s=!0,!1}return!1});if(n&&a.isProgram()&&!n.isProgram()&&(a=e.findParent(function(e){return e.isProgram()||e.isFunction()})),a!==i&&s){var u=a.getData(t);if(u)return e.replaceWith(u);var c=e.scope.generateUidIdentifier(t);a.setData(t,c);var p=a.findParent(function(e){return e.isClass()}),h=!!(p&&p.node&&p.node.superClass);if("this"===t&&a.isMethod({kind:"constructor"})&&h)a.scope.push({id:c}),a.traverse(l,{id:c});else{var f="this"===t?o.thisExpression():o.identifier(t);n&&(f._shadowedFunctionLiteral=n),a.scope.push({id:c,init:f})}return e.replaceWith(c)}}}r.__esModule=!0;var s=n(e("babel-runtime/core-js/symbol")),a=n(e("../plugin")),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")),u=(0,s.default)("super this bound"),l={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[u]||(t[u]=!0,e.replaceWith(o.assignmentExpression("=",this.id,t)))}}};r.default=new a.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){i(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&i(e,"arguments")}}}),t.exports=r.default},{"../plugin":56,"babel-runtime/core-js/symbol":129,"babel-types":180}],54:[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("../helpers/normalize-ast")),a=n(e("./plugin")),o=n(e("./file")),u=function(){function e(){(0,i.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&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<t;s++)n[s]=arguments[s];var a=r,o=Array.isArray(a),u=0;for(a=o?a:(0,i.default)(a);;){var l;if(o){if(u>=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<a.length;o++)a[o]=arguments[o];a[0]=r.coerce(a[0]),"string"!=typeof a[0]&&a.unshift("%O");var u=0;a[0]=a[0].replace(/%([a-zA-Z%])/g,function(t,n){if("%%"===t)return t;u++;var i=r.formatters[n];if("function"==typeof i){var s=a[u];t=i.call(e,s),a.splice(u,1),u--}return t}),r.formatArgs.call(e,a);(t.log||r.log||console.log.bind(console)).apply(e,a)}}return t.namespace=e,t.enabled=r.enabled(e),t.useColors=r.useColors(),t.color=function(e){var t,n=0;for(t in e)n=(n<<5)-n+e.charCodeAt(t),n|=0;return r.colors[Math.abs(n)%r.colors.length]}(e),"function"==typeof r.init&&r.init(t),t}(r=t.exports=n.debug=n.default=n).coerce=function(e){return e instanceof Error?e.stack||e.message:e},r.disable=function(){r.enable("")},r.enable=function(e){r.save(e),r.names=[],r.skips=[];for(var t=("string"==typeof e?e:"").split(/[\s,]+/),n=t.length,i=0;i<n;i++)t[i]&&("-"===(e=t[i].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")))},r.enabled=function(e){var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1},r.humanize=e("ms"),r.names=[],r.skips=[],r.formatters={};var i},{ms:543}],61:[function(e,t,r){(function(n){function i(){return n.env.DEBUG}var s=e("tty"),a=e("util");(r=t.exports=e("./debug")).init=function(e){e.inspectOpts={};for(var t=Object.keys(r.inspectOpts),n=0;n<t.length;n++)e.inspectOpts[t[n]]=r.inspectOpts[t[n]]},r.log=function(){return u.write(a.format.apply(a,arguments)+"\n")},r.formatArgs=function(e){var t=this.namespace;if(this.useColors){var n=this.color,i=" [3"+n+";1m"+t+" ";e[0]=i+e[0].split("\n").join("\n"+i),e.push("[3"+n+"m+"+r.humanize(this.diff)+"")}else e[0]=(new Date).toUTCString()+" "+t+" "+e[0]},r.save=function(e){null==e?delete n.env.DEBUG:n.env.DEBUG=e},r.load=i,r.useColors=function(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):s.isatty(o)},r.colors=[6,2,3,4,5,1],r.inspectOpts=Object.keys(n.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var r=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()}),i=n.env[t];return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[r]=i,e},{});var o=parseInt(n.env.DEBUG_FD,10)||2;1!==o&&2!==o&&a.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var u=1===o?n.stdout:2===o?n.stderr:function(t){var r;switch(n.binding("tty_wrap").guessHandleType(t)){case"TTY":(r=new s.WriteStream(t))._type="tty",r._handle&&r._handle.unref&&r._handle.unref();break;case"FILE":(r=new(e("fs").SyncWriteStream)(t,{autoClose:!1}))._type="fs";break;case"PIPE":case"TCP":(r=new(e("net").Socket)({fd:t,readable:!1,writable:!0})).readable=!1,r.read=null,r._type="pipe",r._handle&&r._handle.unref&&r._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return r.fd=t,r._isStdio=!0,r}(o);r.formatters.o=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts).split("\n").map(function(e){return e.trim()}).join(" ")},r.formatters.O=function(e){return this.inspectOpts.colors=this.useColors,a.inspect(e,this.inspectOpts)},r.enable(i())}).call(this,e("_process"))},{"./debug":60,_process:550,fs:193,net:193,tty:609,util:613}],62:[function(e,t,r){function n(){this._array=[],this._set=a?new Map:Object.create(null)}var i=e("./util"),s=Object.prototype.hasOwnProperty,a="undefined"!=typeof Map;n.fromArray=function(e,t){for(var r=new n,i=0,s=e.length;i<s;i++)r.add(e[i],t);return r},n.prototype.size=function(){return a?this._set.size:Object.getOwnPropertyNames(this._set).length},n.prototype.add=function(e,t){var r=a?e:i.toSetString(e),n=a?this.has(e):s.call(this._set,r),o=this._array.length;n&&!t||this._array.push(e),n||(a?this._set.set(e,o):this._set[r]=o)},n.prototype.has=function(e){if(a)return this._set.has(e);var t=i.toSetString(e);return s.call(this._set,t)},n.prototype.indexOf=function(e){if(a){var t=this._set.get(e);if(t>=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<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},n.prototype.toArray=function(){return this._array.slice()},r.ArraySet=n},{"./util":71}],63:[function(e,t,r){var n=e("./base64");r.encode=function(e){var t,r="",i=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&i,(i>>>=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)<<u,u+=5}while(i);r.value=function(e){var t=e>>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&&e<n.length)return n[e];throw new TypeError("Must be between 0 and 63: "+e)},r.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},{}],65:[function(e,t,r){function n(e,t,i,s,a,o){var u=Math.floor((t-e)/2)+e,l=a(i,s[u],!0);return 0===l?u:l>0?t-u>1?n(u,t,i,s,a,o):o==r.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?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<s){var a=r-1;n(e,function(e,t){return Math.round(e+Math.random()*(t-e))}(r,s),s);for(var o=e[s],u=r;u<s;u++)t(e[u],o)<=0&&n(e,a+=1,u);n(e,a+1,u);var l=a+1;i(e,t,r,l-1),i(e,t,l+1,s)}}r.quickSort=function(e,t){i(e,t,0,e.length-1)}},{}],68:[function(e,t,r){function n(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new a(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),n=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),s=o.getArg(t,"sourceRoot",null),a=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);n=n.map(String).map(o.normalize).map(function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(n,!0),this.sourceRoot=s,this.sourcesContent=a,this._mappings=u,this.file=c}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function a(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),i=o.getArg(t,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),r=o.getArg(t,"line"),i=o.getArg(t,"column");if(r<s.line||r===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:r+1,generatedColumn:i+1},consumer:new n(o.getArg(e,"map"))}})}var o=e("./util"),u=e("./binary-search"),l=e("./array-set").ArraySet,c=e("./base64-vlq"),p=e("./quick-sort").quickSort;n.fromSourceMap=function(e){return i.fromSourceMap(e)},n.prototype._version=3,n.prototype.__generatedMappings=null,Object.defineProperty(n.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),n.prototype.__originalMappings=null,Object.defineProperty(n.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),n.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},n.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},n.GENERATED_ORDER=1,n.ORIGINAL_ORDER=2,n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.prototype.eachMapping=function(e,t,r){var i,s=t||null;switch(r||n.GENERATED_ORDER){case n.GENERATED_ORDER:i=this._generatedMappings;break;case n.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=a&&(t=o.join(a,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},n.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),r={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=o.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var n=[],i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=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;h<f;h++){var d=a[h],m=new s;m.generatedLine=d.generatedLine,m.generatedColumn=d.generatedColumn,d.source&&(m.source=n.indexOf(d.source),m.originalLine=d.originalLine,m.originalColumn=d.originalColumn,d.name&&(m.name=r.indexOf(d.name)),c.push(m)),u.push(m)}return p(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var r,n,i,a,u,l=1,h=0,f=0,d=0,m=0,y=0,g=e.length,b=0,v={},x={},E=[],A=[];b<g;)if(";"===e.charAt(b))l++,b++,h=0;else if(","===e.charAt(b))b++;else{for((r=new s).generatedLine=l,a=b;a<g&&!this._charIsMappingSeparator(e,a);a++);if(n=e.slice(b,a),i=v[n])b+=n.length;else{for(i=[];b<a;)c.decode(e,b,x),u=x.value,b=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");v[n]=i}r.generatedColumn=h+i[0],h=r.generatedColumn,i.length>1&&(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<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(r>=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;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),a.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=u.search(t,this._sections,function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn}),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},a.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer.sources.indexOf(o.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n){return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}}return{line:null,column:null}},a.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],i=n.consumer._generatedMappings,s=0;s<i.length;s++){var a=i[s],u=n.consumer._sources.at(a.source);null!==n.consumer.sourceRoot&&(u=o.join(n.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=n.consumer._names.at(a.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:a.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(n.generatedOffset.generatedLine===a.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}p(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),p(this.__originalMappings,o.compareByOriginalPositions)},r.IndexedSourceMapConsumer=a},{"./array-set":62,"./base64-vlq":63,"./binary-search":65,"./quick-sort":67,"./util":71}],69:[function(e,t,r){function n(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),a=e("./array-set").ArraySet,o=e("./mapping-list").MappingList;n.prototype._version=3,n.fromSourceMap=function(e){var t=e.sourceRoot,r=new n({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=s.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)}),r},n.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),r=s.getArg(e,"original",null),n=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},n.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=s.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=s.relative(i,n));var o=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=s.join(r,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=s.join(r,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,n))},this)},n.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&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;d<m;d++){if(t=f[d],e="",t.generatedLine!==o)for(a=0;t.generatedLine!==o;)e+=";",o++;else if(d>0){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<u.length?u[l++]:void 0}return e()+(e()||"")},p=1,h=0,f=null;return t.eachMapping(function(e){if(null!==f){if(!(p<e.generatedLine)){var t=(r=u[l]).substr(0,e.generatedColumn-h);return u[l]=r.substr(e.generatedColumn-h),h=e.generatedColumn,i(f,t),void(f=e)}i(f,c()),p++,h=0}for(;p<e.generatedLine;)o.add(c()),p++;if(h<e.generatedColumn){var r=u[l];o.add(r.substr(0,e.generatedColumn)),u[l]=r.substr(e.generatedColumn),h=e.generatedColumn}f=e},this),l<u.length&&(f&&i(f,c()),o.add(u.splice(l).join(""))),t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=s.join(r,e)),o.setSourceContent(e,n))}),o},n.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},n.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=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;r<n;r++)(t=this.children[r])[o]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},n.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},n.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[o]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},n.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},n.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][o]&&this.children[t].walkSourceContents(e);var n=Object.keys(this.sourceContents);for(t=0,r=n.length;t<r;t++)e(s.fromSetString(n[t]),this.sourceContents[n[t]])},n.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},n.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new i(e),n=!1,s=null,a=null,o=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&a===i.line&&o===i.column&&u===i.name||r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,a=i.line,o=i.column,u=i.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(s=null,n=!1):n&&r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){r.setSourceContent(e,t)}),{code:t.code,map:r}},r.SourceNode=n},{"./source-map-generator":69,"./util":71}],71:[function(e,t,r){function n(e){var t=e.match(l);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function i(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function s(e){var t=e,s=n(e);if(s){if(!s.path)return e;t=s.path}for(var a,o=r.isAbsolute(t),u=t.split(/\/+/),l=0,c=u.length-1;c>=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;s<e.length;s++)"\n"===e[s]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\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<e.length;r++)"\n"===e[r]&&t++;return this._position.line+t},e}();r.default=o,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":134,"trim-right":608}],75:[function(e,t,r){"use strict";r.__esModule=!0,r.File=function(e){this.print(e.program,e)},r.Program=function(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)},r.BlockStatement=function(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))},r.Noop=function(){},r.Directive=function(e){this.print(e.value,e),this.semicolon()};var n=e("./types");Object.defineProperty(r,"DirectiveLiteral",{enumerable:!0,get:function(){return n.StringLiteral}})},{"./types":84}],76:[function(e,t,r){"use strict";function n(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}r.__esModule=!0,r.ClassDeclaration=n,r.ClassBody=function(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())},r.ClassProperty=function(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()},r.ClassMethod=function(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)},r.ClassExpression=n},{}],77:[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(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function s(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var r=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(r)}}}function a(e,t){var r=this.inForStatementInitCounter&&"in"===e.operator&&!u.needsParens(e,t);r&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),r&&this.token(")")}r.__esModule=!0,r.LogicalExpression=r.BinaryExpression=r.AwaitExpression=r.YieldExpression=void 0,r.UnaryExpression=function(e){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)},r.DoExpression=function(e){this.word("do"),this.space(),this.print(e.body,e)},r.ParenthesizedExpression=function(e){this.token("("),this.print(e.expression,e),this.token(")")},r.UpdateExpression=function(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))},r.ConditionalExpression=function(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)},r.NewExpression=function(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||o.isCallExpression(t,{callee:e})||o.isMemberExpression(t)||o.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))},r.SequenceExpression=function(e){this.printList(e.expressions,e)},r.ThisExpression=function(){this.word("this")},r.Super=function(){this.word("super")},r.Decorator=function(e){this.token("@"),this.print(e.expression,e),this.newline()},r.CallExpression=function(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,r=void 0;t&&(r=i,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:r}),t&&(this.newline(),this.dedent()),this.token(")")},r.Import=function(){this.word("import")},r.EmptyStatement=function(){this.semicolon(!0)},r.ExpressionStatement=function(e){this.print(e.expression,e),this.semicolon()},r.AssignmentPattern=function(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)},r.AssignmentExpression=a,r.BindExpression=function(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)},r.MemberExpression=function(e){if(this.print(e.object,e),!e.computed&&o.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;o.isLiteral(e.property)&&"number"==typeof e.property.value&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))},r.MetaProperty=function(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)};var o=n(e("babel-types")),u=n(e("../node"));r.YieldExpression=s("yield"),r.AwaitExpression=s("await");r.BinaryExpression=a,r.LogicalExpression=a},{"../node":86,"babel-types":180}],78:[function(e,t,r){"use strict";function n(e){this.print(e.id,e),this.print(e.typeParameters,e)}function i(){this.space(),this.token("&"),this.space()}function s(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}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("</"),this.print(e.name,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;r<t.length;r++)this.print(t[r],e),r+1<t.length&&this.print(e.expressions[r],e)}},{}],84:[function(e,t,r){"use strict";function n(e){this.token("..."),this.print(e.argument,e)}function i(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function s(e){var t=e.elements,r=t.length;this.token("["),this.printInnerComments(e);for(var n=0;n<t.length;n++){var i=t[n];i?(n>0&&this.space(),this.print(i,e),n<r-1&&this.token(",")):this.token(",")}this.token("]")}r.__esModule=!0,r.ArrayPattern=r.ObjectPattern=r.RestProperty=r.SpreadProperty=r.SpreadElement=void 0,r.Identifier=function(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)},r.RestElement=n,r.ObjectExpression=i,r.ObjectMethod=function(e){this.printJoin(e.decorators,e),this._method(e)},r.ObjectProperty=function(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(a.isAssignmentPattern(e.value)&&a.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&a.isIdentifier(e.key)&&a.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)},r.ArrayExpression=s,r.RegExpLiteral=function(e){this.word("/"+e.pattern+"/"+e.flags)},r.BooleanLiteral=function(e){this.word(e.value?"true":"false")},r.NullLiteral=function(){this.word("null")},r.NumericLiteral=function(e){var t=this.getPossibleRaw(e),r=e.value+"";null==t?this.number(r):this.format.minified?this.number(t.length<r.length?t:r):this.number(t)},r.StringLiteral=function(e,t){var r=this.getPossibleRaw(e);if(this.format.minified||null==r){var n={quotes:a.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(n.json=!0);var i=(0,o.default)(e.value,n);return this.token(i)}this.token(r)};var a=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")),o=function(e){return e&&e.__esModule?e:{default:e}}(e("jsesc"));r.SpreadElement=n,r.SpreadProperty=n,r.RestProperty=n,r.ObjectPattern=i,r.ArrayPattern=s},{"babel-types":180,jsesc:323}],85:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.CodeGenerator=void 0;var i=n(e("babel-runtime/helpers/classCallCheck")),s=n(e("babel-runtime/helpers/possibleConstructorReturn")),a=n(e("babel-runtime/helpers/inherits"));r.default=function(e,t,r){return new c(e,t,r).generate()};var o=n(e("detect-indent")),u=n(e("./source-map")),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=function(e){function t(r){var n=arguments.length>1&&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<t.length;i++){var s=t[i];if("string"===s.type.label){var a=e.slice(s.start,s.end);if("'"===a[0]?r.single++:r.double++,++n>=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;s<i.length&&!(n=u(i[s],e,r));s++);}return n&&n[r]||0}r.__esModule=!0;var l=i(e("babel-runtime/core-js/get-iterator")),c=i(e("babel-runtime/core-js/object/keys"));r.needsWhitespace=u,r.needsWhitespaceBefore=function(e,t){return u(e,t,"before")},r.needsWhitespaceAfter=function(e,t){return u(e,t,"after")},r.needsParens=function(e,t,r){return!!t&&(!(!f.isNewExpression(t)||t.callee!==e||!o(e))||a(d,e,t,r))};var p=i(e("./whitespace")),h=n(e("./parentheses")),f=n(e("babel-types")),d=s(h),m=s(p.default.nodes),y=s(p.default.list)},{"./parentheses":87,"./whitespace":88,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/keys":127,"babel-types":180}],87:[function(e,t,r){"use strict";function n(e,t){return u.isArrayTypeAnnotation(t)}function i(e,t){return u.isBinary(t)||u.isUnaryLike(t)||u.isCallExpression(t)||u.isMemberExpression(t)||u.isNewExpression(t)||u.isConditionalExpression(t)&&e===t.test}function s(e,t){return u.isMemberExpression(t,{object:e})||u.isCallExpression(t,{callee:e})||u.isNewExpression(t,{callee:e})}function a(e,t){return!!(u.isUnaryLike(t)||u.isBinary(t)||u.isConditionalExpression(t,{test:e})||u.isAwaitExpression(t))||s(e,t)}function o(e){for(var t=arguments.length>1&&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;t<e.declarations.length;t++){var r=e.declarations[t],a=i(r.id)&&!s(r.init);if(!a){var o=n(r.init);a=i(r.init)&&o.hasCall||o.hasFunction}if(a)return{before:!0,after:!0}}},IfStatement:function(e){if(o.isBlockStatement(e.consequent))return{before:!0,after:!0}}},r.nodes.ObjectProperty=r.nodes.ObjectTypeProperty=r.nodes.ObjectMethod=r.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},r.list={VariableDeclaration:function(e){return(0,a.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var t=e[0],n=e[1];"boolean"==typeof n&&(n={after:n,before:n}),[t].concat(o.FLIPPED_ALIAS_KEYS[t]||[]).forEach(function(e){r.nodes[e]=function(){return n}})})},{"babel-types":180,"lodash/map":525}],89:[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(){this.token(","),this.space()}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/assign")),o=i(e("babel-runtime/core-js/get-iterator")),u=i(e("babel-runtime/core-js/json/stringify")),l=i(e("babel-runtime/core-js/weak-set")),c=i(e("babel-runtime/helpers/classCallCheck")),p=i(e("lodash/find")),h=i(e("lodash/findLast")),f=i(e("lodash/isInteger")),d=i(e("lodash/repeat")),m=i(e("./buffer")),y=n(e("./node")),g=i(e("./whitespace")),b=n(e("babel-types")),v=/e/i,x=/\.0+$/,E=/^0[box]/,A=function(){function e(t,r,n){(0,c.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new l.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new m.default(r),this._whitespace=n.length>0?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;t<e;t++)this._newline()},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,r){this._catchUp(e,t),this._buf.withSource(e,t,r)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&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;r<e.length&&" "===e[r];r++);if(r!==e.length){var n=e[r];"\n"!==n&&"/"!==n||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var r=t?t[e]:null;if(r&&null!==r.line)for(var n=r.line-this._buf.getCurrentLine(),i=0;i<n;i++)this._newline()}},e.prototype._getIndent=function(){return(0,d.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var r=this;if(e){var n=this.format.concise;e._compact&&(this.format.concise=!0);if(!this[e.type])throw new ReferenceError("unknown node of type "+(0,u.default)(e.type)+" with constructor "+(0,u.default)(e&&e.constructor.name));this._printStack.push(e);var i=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!i);var s=y.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var a=b.isProgram(e)||b.isFile(e)?null:e.loc;this.withSource("start",a,function(){r[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=n,this._insideAux=i}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i<e.length;i++){var s=e[i];s&&(r.statement&&this._printNewline(!0,s,t,n),this.print(s,t),r.iterator&&r.iterator(s,i),r.separator&&i<e.length-1&&r.separator.call(this),r.statement&&this._printNewline(!1,s,t,n))}r.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var r=!!e.leadingComments;r&&this.indent(),this.print(e,t),r&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;b.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&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<D.length;S++){var C=D[S];(0,a.default)(A.prototype,C)}t.exports=r.default},{"./buffer":74,"./generators/base":75,"./generators/classes":76,"./generators/expressions":77,"./generators/flow":78,"./generators/jsx":79,"./generators/methods":80,"./generators/modules":81,"./generators/statements":82,"./generators/template-literals":83,"./generators/types":84,"./node":86,"./whitespace":91,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/json/stringify":121,"babel-runtime/core-js/object/assign":124,"babel-runtime/core-js/weak-set":133,"babel-runtime/helpers/classCallCheck":134,"babel-types":180,"lodash/find":499,"lodash/findLast":501,"lodash/isInteger":514,"lodash/repeat":530}],90:[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/keys")),s=n(e("babel-runtime/helpers/typeof")),a=n(e("babel-runtime/helpers/classCallCheck")),o=n(e("source-map")),u=function(){function e(t,r){(0,a.default)(this,e),this._cachedMap=null,this._code=r,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){if(!this._cachedMap){var e=this._cachedMap=new o.default.SourceMapGenerator({file:this._opts.sourceMapTarget,sourceRoot:this._opts.sourceRoot}),t=this._code;"string"==typeof t?e.setSourceContent(this._opts.sourceFileName,t):"object"===(void 0===t?"undefined":(0,s.default)(t))&&(0,i.default)(t).forEach(function(r){e.setSourceContent(r,t[r])}),this._rawMappings.forEach(e.addMapping,e)}return this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,r,n,i,s){this._lastGenLine!==e&&null===r||this._lastGenLine===e&&this._lastSourceLine===r&&this._lastSourceColumn===n||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=r,this._lastSourceColumn=n,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==r?void 0:s||this._opts.sourceFileName,original:null==r?void 0:{line:r,column:n}}))},e}();r.default=u,t.exports=r.default},{"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/typeof":138,"source-map":102}],91:[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){(0,n.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,n.length);if(i>=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<n;s++)void 0===this.used[s]&&(this.used[s]=!0,i++);return i},e.prototype._findToken=function(e,t,r){if(t>=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;r<e.properties.length;r++){var n=e.properties[r],i=n.value;i.properties.unshift(u.objectProperty(u.identifier("key"),u.toComputedKey(n))),t.elements.push(i)}return t},r.toClassObject=i,r.toDefineObject=function(e){return(0,s.default)(e).forEach(function(t){var r=e[t];r.value&&(r.writable=u.booleanLiteral(!0)),r.configurable=u.booleanLiteral(!0),r.enumerable=u.booleanLiteral(!0)}),i(e)};var a=n(e("babel-helper-function-name")),o=n(e("lodash/has")),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"))},{"babel-helper-function-name":104,"babel-runtime/core-js/object/keys":127,"babel-types":180,"lodash/has":504}],104:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.__esModule=!0,r.default=function(e){var t=e.node,r=e.parent,n=e.scope,s=e.id;if(!t.id){if(!a.isObjectProperty(r)&&!a.isObjectMethod(r,{kind:"method"})||r.computed&&!a.isLiteral(r.key)){if(a.isVariableDeclarator(r)){if(s=r.id,a.isIdentifier(s)){var c=n.parent.getBinding(s.name);if(c&&c.constant&&n.getBinding(s.name)===c)return t.id=s,void(t.id[a.NOT_LOCAL_BINDING]=!0)}}else if(a.isAssignmentExpression(r))s=r.left;else if(!s)return}else s=r.key;var p=void 0;if(s&&a.isLiteral(s))p=s.value;else{if(!s||!a.isIdentifier(s))return;p=s.name}p=a.toBindingIdentifierName(p),(s=a.identifier(p))[a.NOT_LOCAL_BINDING]=!0;return function(e,t,r,n){if(e.selfReference){if(!n.hasBinding(r.name)||n.hasGlobal(r.name)){if(!a.isFunction(t))return;var s=o;t.generator&&(s=u);var l=s({FUNCTION:t,FUNCTION_ID:r,FUNCTION_KEY:n.generateUidIdentifier(r.name)}).expression;l.callee._skipModulesRemap=!0;for(var c=l.callee.body.body[0].params,p=0,h=(0,i.default)(t);p<h;p++)c.push(n.generateUidIdentifier("x"));return l}n.rename(r.name)}t.id=r,n.getProgramParent().references[r.name]=!0}(function(e,t,r){var n={selfAssignment:!1,selfReference:!1,outerDeclar:r.getBindingIdentifier(t),references:[],name:t},i=r.getOwnBinding(t);return i?"param"===i.kind&&(n.selfReference=!0):(n.outerDeclar||r.hasGlobal(t))&&r.traverse(e,l,n),n}(t,p,n),t,s,n)||t}};var i=n(e("babel-helper-get-function-arity")),s=n(e("babel-template")),a=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")),o=(0,s.default)("\n (function (FUNCTION_KEY) {\n function FUNCTION_ID() {\n return FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n }\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),u=(0,s.default)("\n (function (FUNCTION_KEY) {\n function* FUNCTION_ID() {\n return yield* FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n };\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),l={"ReferencedIdentifier|BindingIdentifier":function(e,t){if(e.node.name===t.name){e.scope.getBindingIdentifier(t.name)===t.outerDeclar&&(t.selfReference=!0,e.stop())}}};t.exports=r.default},{"babel-helper-get-function-arity":105,"babel-template":139,"babel-types":180}],105:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){for(var t=e.params,r=0;r<t.length;r++){var i=t[r];if(n.isAssignmentPattern(i)||n.isRestElement(i))return r}return t.length};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}],106:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t,r){return 1===r.length&&n.isSpreadElement(r[0])&&n.isIdentifier(r[0].argument,{name:"arguments"})?n.callExpression(n.memberExpression(e,n.identifier("apply")),[t,r[0].argument]):n.callExpression(n.memberExpression(e,n.identifier("call")),[t].concat(r))};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}],107:[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){return p.isMemberExpression(e)&&p.isSuper(e.object)}function a(e,t){var r=t?e:p.memberExpression(e,p.identifier("prototype"));return p.logicalExpression("||",p.memberExpression(r,p.identifier("__proto__")),p.callExpression(p.memberExpression(p.identifier("Object"),p.identifier("getPrototypeOf")),[r]))}r.__esModule=!0;var o=i(e("babel-runtime/helpers/classCallCheck")),u=i(e("babel-runtime/core-js/symbol")),l=i(e("babel-helper-optimise-call-expression")),c=n(e("babel-messages")),p=n(e("babel-types")),h=(0,u.default)(),f={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[h]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var n=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),n&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},d=function(){function e(t){var r=arguments.length>1&&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;s<t;s++)r[s-1]=arguments[s];var o=a[e];if(!o)throw new ReferenceError("Unknown message "+(0,i.default)(e));return r=n(r),o.replace(/\$(\d+)/g,function(e,t){return r[t-1]})},r.parseArgs=n;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("util")),a=r.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},{"babel-runtime/core-js/json/stringify":121,util:613}],111:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},t.exports=r.default},{}],112:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},t.exports=r.default},{}],113:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,r){if(r.opts.spec){var n=e.node;if(n.shadow)return;n.shadow={this:!1},n.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(r.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},t.exports=r.default},{}],114:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return!!h.isVariableDeclaration(e)&&(!!e[h.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function s(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!h.isFor(r))for(var s=0;s<t.declarations.length;s++){var a=t.declarations[s];a.init=a.init||n.buildUndefinedNode()}if(t[h.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=n.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=n.getOwnBinding(l);c&&(c.kind="var"),n.moveBindingTo(l,o)}}}function a(e){return h.isVariableDeclaration(e,{kind:"var"})&&!i(e)}r.__esModule=!0;var o=n(e("babel-runtime/core-js/symbol")),u=n(e("babel-runtime/core-js/object/create")),l=n(e("babel-runtime/helpers/classCallCheck"));r.default=function(){return{visitor:{VariableDeclaration:function(e,t){var r=e.node,n=e.parent,a=e.scope;if(i(r)&&(s(e,null,n,a,!0),r._tdzThis)){for(var o=[r],u=0;u<r.declarations.length;u++){var l=r.declarations[u];if(l.init){var c=h.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,o.push(h.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}r._blockHoist=2,e.isCompletionRecord()&&o.push(h.expressionStatement(a.buildUndefinedNode())),e.replaceWithMultiple(o)}},Loop:function(e,t){var r=e.node,n=e.parent,i=e.scope;h.ensureBlock(r);var s=new A(e,e.get("body"),n,i,t).run();s&&e.replaceWith(s)},CatchClause:function(e,t){var r=e.parent,n=e.scope;new A(null,e.get("body"),r,n,t).run()},"BlockStatement|SwitchStatement|Program":function(e,t){if(!function(e){return h.isLoop(e.parent)||h.isCatchClause(e.parent)}(e)){new A(null,e,e.parent,e.scope,t).run()}}}}};var c=n(e("babel-traverse")),p=e("./tdz"),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("babel-types")),f=n(e("lodash/values")),d=n(e("lodash/extend")),m=(0,n(e("babel-template")).default)('\n if (typeof RETURN === "object") return RETURN.v;\n'),y=c.default.visitors.merge([{Loop:{enter:function(e,t){t.loopDepth++},exit:function(e,t){t.loopDepth--}},Function:function(e,t){return t.loopDepth>0&&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;r<e.params.length;r++){var n=e.params[r];if(t.reassignments[n.name]){var i=this.scope.generateUidIdentifier(n.name);e.params[r]=i,this.scope.rename(n.name,i.name,e),e.body.body.push(h.expressionStatement(h.assignmentExpression("=",n,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,r=[];if(this.loop){var n=this.loop.left||this.loop.init;i(n)&&(r.push(n),(0,d.default)(this.outsideLetReferences,h.getBindingIdentifiers(n)))}var a=function n(a,o){o=o||a.node,(h.isClassDeclaration(o)||h.isFunctionDeclaration(o)||i(o))&&(i(o)&&s(a,o,t,e.scope),r=r.concat(o.declarations||o)),h.isLabeledStatement(o)&&n(a.get("body"),o.body)};if(t.body)for(var o=0;o<t.body.length;o++){a(this.blockPath.get("body")[o])}if(t.cases)for(var u=0;u<t.cases.length;u++)for(var l=t.cases[u].consequent,c=0;c<l.length;c++){a(this.blockPath.get("cases")[u],l[c])}for(var p=0;p<r.length;p++){var f=r[p],m=h.getBindingIdentifiers(f,!1,!0);(0,d.default)(this.letReferences,m),this.hasLetReferences=!0}if(this.hasLetReferences){var g={letReferences:this.letReferences,closurify:!1,file:this.file,loopDepth:0},b=this.blockPath.find(function(e){return e.isLoop()||e.isFunction()});return b&&b.isLoop()&&g.loopDepth++,this.blockPath.traverse(y,g),g.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,o.default)()};return this.blockPath.traverse(v,e),this.blockPath.traverse(E,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(b,this)},e.prototype.pushDeclar=function(e){var t=[],r=h.getBindingIdentifiers(e);for(var n in r)t.push(h.variableDeclarator(r[n]));this.body.push(h.variableDeclaration(e.kind,t));for(var i=[],s=0;s<e.declarations.length;s++){var a=e.declarations[s];if(a.init){var o=h.assignmentExpression("=",a.id,a.init);i.push(h.inherits(o,a))}}return i},e.prototype.buildHas=function(e,t){var r=this.body;r.push(h.variableDeclaration("var",[h.variableDeclarator(e,t)]));var n=void 0,i=this.has,s=[];if(i.hasReturn&&(n=m({RETURN:e})),i.hasBreakContinue){for(var a in i.map)s.push(h.switchCase(h.stringLiteral(a),[i.map[a]]));if(i.hasReturn&&s.push(h.switchCase(null,[n])),1===s.length){var o=s[0];r.push(h.ifStatement(h.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<s.length;u++){var l=s[u].consequent[0];h.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}r.push(h.switchStatement(e,s))}}else i.hasReturn&&r.push(n)},e}();t.exports=r.default},{"./tdz":115,"babel-runtime/core-js/object/create":125,"babel-runtime/core-js/symbol":129,"babel-runtime/helpers/classCallCheck":134,"babel-template":139,"babel-traverse":143,"babel-types":180,"lodash/extend":498,"lodash/values":541}],115:[function(e,t,r){"use strict";function n(e,t){return s.callExpression(t.addHelper("temporalRef"),[e,s.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function i(e,t,r){var n=r.letReferences[e.name];return!!n&&t.getBindingIdentifier(e.name)===n}r.__esModule=!0,r.visitor=void 0;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"));r.visitor={ReferencedIdentifier:function(e,t){if(this.file.opts.tdz){var r=e.node,a=e.parent,o=e.scope;if(!e.parentPath.isFor({left:r})&&i(r,o,t)){var u=o.getBinding(r.name).path,l=function(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"inside":"after"===r?"outside":"maybe"}(e,u);if("inside"!==l)if("maybe"===l){var c=n(r,t.file);if(u.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(a._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(s.sequenceExpression([c,a]))}else e.replaceWith(c)}else"outside"===l&&e.replaceWith(s.throwStatement(s.inherits(s.newExpression(s.identifier("ReferenceError"),[s.stringLiteral(r.name+" is not defined - temporal dead zone")]),r)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var r=e.node;if(!r._ignoreBlockScopingTDZ){var a=[],o=e.getBindingIdentifiers();for(var u in o){var l=o[u];i(l,e.scope,t)&&a.push(n(l,t.file))}a.length&&(r._ignoreBlockScopingTDZ=!0,a.push(r),e.replaceWithMultiple(a.map(s.expressionStatement)))}}}}}},{"babel-types":180}],116:[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/symbol"));r.default=function(e){var t=e.types,r=(0,i.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var r=e.node,n=r.declaration.id||e.scope.generateUidIdentifier("class");r.declaration.id=n,e.replaceWith(r.declaration),e.insertAfter(t.exportDefaultDeclaration(n))}},ClassDeclaration:function(e){var r=e.node,n=r.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(n,t.toExpression(r))]))},ClassExpression:function(e,t){var n=e.node;if(!n[r]){var i=(0,o.default)(e);if(i&&i!==n)return e.replaceWith(i);n[r]=!0;var u=a.default;t.opts.loose&&(u=s.default),e.replaceWith(new u(e,t.file).run())}}}}};var s=n(e("./loose")),a=n(e("./vanilla")),o=n(e("babel-helper-function-name"));t.exports=r.default},{"./loose":117,"./vanilla":118,"babel-helper-function-name":104,"babel-runtime/core-js/symbol":129}],117:[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("babel-helper-function-name")),u=n(e("./vanilla")),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(e){function t(){(0,i.default)(this,t);var r=(0,s.default)(this,e.apply(this,arguments));return r.isLoose=!0,r}return(0,a.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var r=this.classRef;e.static||(r=l.memberExpression(r,l.identifier("prototype")));var n=l.memberExpression(r,e.key,e.computed||l.isLiteral(e.key)),i=l.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var s=l.toComputedKey(e,e.key);l.isStringLiteral(s)&&(i=(0,o.default)({node:i,id:s,scope:t}));var a=l.expressionStatement(l.assignmentExpression("=",n,i));return l.inheritsComments(a,e),this.body.push(a),!0}},t}(u.default);r.default=c,t.exports=r.default},{"./vanilla":118,"babel-helper-function-name":104,"babel-runtime/helpers/classCallCheck":134,"babel-runtime/helpers/inherits":135,"babel-runtime/helpers/possibleConstructorReturn":137,"babel-types":180}],118:[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/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=e("babel-traverse"),u=i(e("babel-helper-replace-supers")),l=i(e("babel-helper-optimise-call-expression")),c=n(e("babel-helper-define-map")),p=i(e("babel-template")),h=n(e("babel-types")),f=(0,p.default)("\n (function () {\n super(...arguments);\n })\n"),d={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},m=o.visitors.merge([d,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),y=o.visitors.merge([d,{ThisExpression:function(e){this.superThises.push(e)}}]),g=function(){function e(t,r){(0,a.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=r,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?h.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||h.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,r=this.file,n=this.body,i=this.constructorBody=h.blockStatement([]);this.constructor=this.buildConstructor();var s=[],a=[];if(this.isDerived&&(a.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),s.push(t),this.superName=t),this.buildBody(),i.body.unshift(h.expressionStatement(h.callExpression(r.addHelper("classCallCheck"),[h.thisExpression(),this.classRef]))),n=n.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===n.length)return h.toExpression(n[0]);n.push(h.returnStatement(this.classRef));var o=h.functionExpression(null,s,h.blockStatement(n));return o.shadow=!0,h.callExpression(o,a)},e.prototype.buildConstructor=function(){var e=h.functionDeclaration(this.classRef,[],this.constructorBody);return h.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var r=arguments.length>2&&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<i.length;a++)i[a]!==n&&(s=a);i=i.slice(0,s+1),e.push(h.expressionStatement(h.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return h.variableDeclaration("var",[h.variableDeclarator(e,h.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,r,n){var i=e.node;this.isLoose?(i.arguments.unshift(h.thisExpression()),2===i.arguments.length&&h.isSpreadElement(i.arguments[1])&&h.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=h.memberExpression(t,h.identifier("apply"))):i.callee=h.memberExpression(t,h.identifier("call"))):i=(0,l.default)(h.logicalExpression("||",h.memberExpression(this.classRef,h.identifier("__proto__")),h.callExpression(h.memberExpression(h.identifier("Object"),h.identifier("getPrototypeOf")),[this.classRef])),h.thisExpression(),i.arguments);var s=h.callExpression(this.file.addHelper("possibleConstructorReturn"),[h.thisExpression(),i]),a=this.bareSuperAfter.map(function(e){return e(r)});e.parentPath.isExpressionStatement()&&e.parentPath.container===n.node.body&&n.node.body.length-1===e.parentPath.key?((this.superThises.length||a.length)&&(e.scope.push({id:r}),s=h.assignmentExpression("=",r,s)),a.length&&(s=h.toSequenceExpression([s].concat(a,[r]))),e.parentPath.replaceWith(h.returnStatement(s))):e.replaceWithMultiple([h.variableDeclaration("var",[h.variableDeclarator(r,s)])].concat(a,[h.expressionStatement(r)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,r=t.get("body");t.traverse(y,this);var n=!!this.bareSupers.length,i=this.superName||h.identifier("Function"),a=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0;for(o=u?o:(0,s.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;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;r<e;r++)t[r]=arguments[r];return function(e,t){var r=(e=(0,a.default)(e)).program;return t.length&&(0,l.default)(e,d,null,t),r.body.length>1?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<e.length;i++){var s=e[i];s&&this.shouldVisit(s)&&n.push(this.create(t,e,i,r))}return this.visitQueue(n)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];var t=[],r=!1,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;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.key<n.key?n=p:a.indexOf(n.parentKey)>a.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<n&&(n=t.length),t}),u=o[0];e:for(var l=0;l<n;l++){var c=u[l],p=o,h=Array.isArray(p),f=0;for(p=h?p:(0,i.default)(p);;){var d;if(h){if(f>=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;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}},r._resyncList=function(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}},r._resyncRemoved=function(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()},r.popContext=function(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])},r.pushContext=function(e){this.contexts.push(e),this.setContext(e)},r.setup=function(e,t,r,n){this.inList=!!r,this.listKey=r,this.parentKey=r||n,this.container=t,this.parentPath=e||this.parentPath,this.setKey(n)},r.setKey=function(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type},r.requeue=function(){var e=arguments.length>0&&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<C.path.node.end)return e(C.path);if(C&&C.hasValue)return C.value;if("undefined"===l.name)return C?e(C.path):void 0;if("Infinity"===l.name)return C?e(C.path):1/0;if("NaN"===l.name)return C?e(C.path):NaN;var _=a.resolve();return _===a?e(a):r(_)}if(a.isUnaryExpression({prefix:!0})){if("void"===l.operator)return;var w=a.get("argument");if("typeof"===l.operator&&(w.isFunction()||w.isClass()))return"function";var k=r(w);if(!n)return;switch(l.operator){case"!":return!k;case"+":return+k;case"-":return-k;case"~":return~k;case"typeof":return void 0===k?"undefined":(0,i.default)(k)}}if(a.isArrayExpression()){for(var F=[],T=a.get("elements"),P=T,B=Array.isArray(P),O=0,P=B?P:(0,s.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;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<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^Z;case"<<":return Q<<Z;case">>":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;l<a.length;l++){var c=a[l],p=s.get(c);(Array.isArray(p)||p.node)&&(r=r.concat(p))}}}}return n},r.getOuterBindingIdentifierPaths=function(e){return this.getBindingIdentifierPaths(e,!0)};var a=n(e("./index")),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"))},{"./index":150,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/create":125,"babel-types":180}],150:[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/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=n(e("./lib/virtual-types")),u=i(e("debug")),l=i(e("invariant")),c=i(e("../index")),p=i(e("lodash/assign")),h=i(e("../scope")),f=n(e("babel-types")),d=e("../cache"),m=(0,u.default)("babel"),y=function(){function e(t,r){(0,a.default)(this,e),this.parent=r,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var r=t.hub,n=t.parentPath,i=t.parent,s=t.container,a=t.listKey,o=t.key;!r&&n&&(r=n.hub),(0,l.default)(i,"To get a node path the parent needs to exist");var u=s[o],c=d.path.get(i)||[];d.path.has(i)||d.path.set(i,c);for(var p=void 0,h=0;h<c.length;h++){var f=c[h];if(f.node===u){p=f;break}}return p||(p=new e(r,i),c.push(p)),p.setup(n,s,a,o),p},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new h.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var r=this.data[e];return!r&&t&&(r=this.data[e]=t),r},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&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<s.length;l++){var c=s[l];if((u=i.indexOf(c))>=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<t.length;n++){var i=e+n,a=t[n];if(this.container.splice(i,0,a),this.context){var o=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&o.pushContext(this.context),r.push(o)}else r.push(u.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}var l=this._getQueueContexts(),c=r,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}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<r.length;n++){var i=r[n];i.key>=e&&(i.key+=t)}},r._verifyNodeList=function(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],n=void 0;if(r?"object"!==(void 0===r?"undefined":(0,i.default)(r))?n="contains a non-object node":r.type?r instanceof u.default&&(n="has a NodePath when it expected a raw object"):n="without a type":n="has falsy node",n){var s=Array.isArray(r)?"array":void 0===r?"undefined":(0,i.default)(r);throw new Error("Node list "+n+" with the index of "+t+" and type of "+s)}}return e},r.unshiftContainer=function(e,t){return this._assertUnremoved(),t=this._verifyNodeList(t),u.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).insertBefore(t)},r.pushContainer=function(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var r=this.node[e];return u.default.get({parentPath:this,parent:this.node,container:r,listKey:e,key:r.length}).replaceWithMultiple(t)},r.hoist=function(){var e=arguments.length>0&&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<e.length;i++){var a=e[i],o=t[i];s(a);for(var u in a){var l=a[u];(o||r)&&(l=function(e,t,r){var n={},i=function(i){var s=e[i];if(!Array.isArray(s))return"continue";s=s.map(function(e){var n=e;return t&&(n=function(r){return e.call(t,r,t)}),r&&(n=r(t.key,i,n)),n}),n[i]=s};for(var s in e)i(s);return n}(l,o,r)),c(n[u]=n[u]||{},l)}}return n};var d=n(e("./path/lib/virtual-types")),m=n(e("babel-messages")),y=n(e("babel-types")),g=i(e("lodash/clone"))},{"./path/lib/virtual-types":157,"babel-messages":110,"babel-runtime/core-js/get-iterator":120,"babel-runtime/core-js/object/keys":127,"babel-runtime/helpers/typeof":138,"babel-types":180,"lodash/clone":491}],165:[function(e,t,r){(function(n){function i(){var e;try{e=r.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}(r=t.exports=e("./debug")).log=function(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)},r.formatArgs=function(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+r.humanize(this.diff),t){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(s=i))}),e.splice(s,0,n)}},r.save=function(e){try{null==e?r.storage.removeItem("debug"):r.storage.debug=e}catch(e){}},r.load=i,r.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=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<n.length;i++)e(t,r+"["+i+"]",n[i])}return t.each=e,t},r.assertOneOf=function(){function e(e,t,n){if(r.indexOf(n)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,o.default)(r)+" but got "+(0,o.default)(n))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOf=r,e},r.assertNodeType=function(){function e(e,t,n){var i=!1,s=r,u=Array.isArray(s),c=0;for(s=u?s:(0,a.default)(s);;){var p;if(u){if(c>=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<t;n++)r[n]=arguments[n];return e.oneOfNodeTypes=r,e},r.assertNodeOrValueType=function(){function e(e,t,n){var s=!1,u=r,c=Array.isArray(u),p=0;for(u=c?u:(0,a.default)(u);;){var h;if(c){if(p>=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<t;n++)r[n]=arguments[n];return e.oneOfNodeOrValueTypes=r,e},r.assertValueType=s,r.chain=function(){function e(){var e=r,t=Array.isArray(e),n=0;for(e=t?e:(0,a.default)(e);;){var i;if(t){if(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;n<t;n++)r[n]=arguments[n];return e.chainOf=r,e},r.default=function(e){var t=arguments.length>1&&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<e.length;o++){var u=e[o];if(u&&!(a.indexOf(u)>=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;s++)r[s].match(/[^ \t]/)&&(n=s);for(var a="",o=0;o<r.length;o++){var u=r[o],l=0===o,c=o===r.length-1,p=o===n,h=u.replace(/\t/g," ");l||(h=h.replace(/^[ ]+/,"")),c||(h=h.replace(/[ ]+$/,"")),h&&(p||(h+=" "),a+=h)}a&&t.push(i.stringLiteral(a))}r.__esModule=!0,r.isReactComponent=void 0,r.isCompatTag=function(e){return!!e&&/^[a-z]|\-/.test(e)},r.buildChildren=function(e){for(var t=[],r=0;r<e.children.length;r++){var s=e.children[r];i.isJSXText(s)?n(s,t):(i.isJSXExpressionContainer(s)&&(s=s.expression),i.isJSXEmptyExpression(s)||t.push(s))}return t};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"));r.isReactComponent=i.buildMatchMemberExpression("React.Component")},{"./index":180}],182:[function(e,t,r){"use strict";function n(e,t,r){for(var n=[].concat(e),a=(0,i.default)(null);n.length;){var o=n.shift();if(o){var u=s.getBindingIdentifiers.keys[o.type];if(s.isIdentifier(o))if(t){(a[o.name]=a[o.name]||[]).push(o)}else a[o.name]=o;else if(s.isExportDeclaration(o))s.isDeclaration(o.declaration)&&n.push(o.declaration);else{if(r){if(s.isFunctionDeclaration(o)){n.push(o.id);continue}if(s.isFunctionExpression(o))continue}if(u)for(var l=0;l<u.length;l++){var c=u[l];o[c]&&(n=n.concat(o[c]))}}}}return a}r.__esModule=!0;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/object/create"));r.getBindingIdentifiers=n,r.getOuterBindingIdentifiers=function(e,t){return n(e,t,!0)};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("./index"));n.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],OpaqueType:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},{"./index":180,"babel-runtime/core-js/object/create":125}],183:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if("object"!==(void 0===e?"undefined":(0,a.default)(e))||"object"!==(void 0===e?"undefined":(0,a.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;var r=(0,s.default)(c.NODE_FIELDS[e.type]||e.type),n=Array.isArray(r),u=0;for(r=n?r:(0,o.default)(r);;){var l;if(n){if(u>=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<e[p].length;h++)if(!i(e[p][h],t[p][h]))return!1}else if(!i(e[p],t[p]))return!1}return!0}r.__esModule=!0;var s=n(e("babel-runtime/core-js/object/keys")),a=n(e("babel-runtime/helpers/typeof")),o=n(e("babel-runtime/core-js/get-iterator"));r.isBinding=function(e,t){var r=u.getBindingIdentifiers.keys[t.type];if(r)for(var n=0;n<r.length;n++){var i=t[r[n]];if(Array.isArray(i)){if(i.indexOf(e)>=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;n<t.length;n+=2){if((r+=t[n])>e)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.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),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.index<this.state.pos;)++this.state.curLine,this.state.lineStart=n.index+n[0].length;this.pushComment(!0,this.input.slice(t+2,r),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,r=this.state.curPosition(),n=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==n&&13!==n&&8232!==n&&8233!==n;)++this.state.pos,n=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,r,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&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<s;++i){var a=this.input.charCodeAt(this.state.pos),o=void 0;if((o=a>=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.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(a(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,e+=this.input.slice(r,this.state.pos);var i=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint(!0);(t?s:a)(o,!0)||this.raise(i,"Invalid Unicode escape"),e+=u(o),r=this.state.pos}t=!1}return e+this.input.slice(r,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=T.name;return!this.state.containsEsc&&this.isKeyword(e)&&(t=P[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===T.colon){var t=this.curContext();if(t===I.braceStatement||t===I.braceExpression)return!t.isExpr}return e===T._return?B.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===T._else||e===T.semi||e===T.eof||e===T.parenR||(e===T.braceL?this.curContext()===I.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=this.state.type,r=void 0;t.keyword&&e===T.dot?this.state.exprAllowed=!1:(r=t.updateContext)?r.call(this,e):this.state.exprAllowed=t.beforeExpr},e}()),G=q.prototype;G.addExtra=function(e,t,r){if(e){(e.extra=e.extra||{})[t]=r}},G.isRelational=function(e){return this.match(T.relational)&&this.state.value===e},G.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,T.relational)},G.isContextual=function(e){return this.match(T.name)&&this.state.value===e},G.eatContextual=function(e){return this.state.value===e&&this.eat(T.name)},G.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},G.canInsertSemicolon=function(){return this.match(T.eof)||this.match(T.braceR)||B.test(this.input.slice(this.state.lastTokEnd,this.state.start))},G.isLineTerminator=function(){return this.eat(T.semi)||this.canInsertSemicolon()},G.semicolon=function(){this.isLineTerminator()||this.unexpected(null,T.semi)},G.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},G.unexpected=function(e){var t=arguments.length>1&&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<this.state.labels.length;++n){var i=this.state.labels[n];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(r||"loop"===i.kind))break;if(e.label&&r)break}}return n===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},X.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},X.parseDoStatement=function(e){return this.next(),this.state.labels.push(J),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(T._while),e.test=this.parseParenExpression(),this.eat(T.semi),this.finishNode(e,"DoWhileStatement")},X.parseForStatement=function(e){this.next(),this.state.labels.push(J);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(T.parenL),this.match(T.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(T._var)||this.match(T._let)||this.match(T._const)){var r=this.startNode(),n=this.state.type;return this.next(),this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),!this.match(T._in)&&!this.isContextual("of")||1!==r.declarations.length||r.declarations[0].init?(t&&this.unexpected(),this.parseFor(e,r)):this.parseForIn(e,r,t)}var i={start:0},s=this.parseExpression(!0,i);if(this.match(T._in)||this.isContextual("of")){var a=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(s,void 0,a),this.checkLVal(s,void 0,void 0,a),this.parseForIn(e,s,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,s)},X.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},X.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(T._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},X.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},X.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(T.braceL),this.state.labels.push(W);for(var t,r=void 0;!this.match(T.braceR);)if(this.match(T._case)||this.match(T._default)){var n=this.match(T._case);r&&this.finishNode(r,"SwitchCase"),e.cases.push(r=this.startNode()),r.consequent=[],this.next(),n?r.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,r.test=null),this.expect(T.colon)}else r?r.consequent.push(this.parseStatement(!0)):this.unexpected();return r&&this.finishNode(r,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},X.parseThrowStatement=function(e){return this.next(),B.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var K=[];X.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(T._catch)){var t=this.startNode();this.next(),this.expect(T.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(T.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=K,e.finalizer=this.eat(T._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},X.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},X.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push(J),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},X.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},X.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},X.parseLabeledStatement=function(e,t,r){var n=this.state.labels,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}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<n;a++){var o=e[a];o&&this.toAssignable(o,t,r)}return e},z.toReferencedList=function(e){return e},z.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},z.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},z.shouldAllowYieldIdentifier=function(){return this.match(T._yield)&&!this.state.strict&&!this.state.inGenerator},z.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},z.parseBindingAtom=function(){switch(this.state.type){case T._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case T.name:return this.parseIdentifier(!0);case T.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(T.bracketR,!0),this.finishNode(e,"ArrayPattern");case T.braceL:return this.parseObj(!0);default:this.unexpected()}},z.parseBindingList=function(e,t){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(T.comma),t&&this.match(T.comma))r.push(null);else{if(this.eat(e))break;if(this.match(T.ellipsis)){r.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(T.at);)i.push(this.parseDecorator());var s=this.parseMaybeDefault();i.length&&(s.decorators=i),this.parseAssignableListItemTypes(s),r.push(this.parseMaybeDefault(s.start,s.loc.start,s))}return r},z.parseAssignableListItemTypes=function(e){return e},z.parseMaybeDefault=function(e,t,r){if(t=t||this.state.startLoc,e=e||this.state.start,r=r||this.parseBindingAtom(),!this.eat(T.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},z.checkLVal=function(e,t,r,n){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),r){var i="_"+e.name;r[i]?this.raise(e.start,"Argument name clash in strict mode"):r[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":var s=e.properties,a=Array.isArray(s),o=0;for(s=a?s:s[Symbol.iterator]();;){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;"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.index<t))return new L(r,t-n);++r,n=i.index+i[0].length}}(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n};var Z=q.prototype;Z.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},Z.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){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;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(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;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;s<this.state.leadingComments.length&&!(this.state.leadingComments[s].end>e.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.pos<this.input.length&&!this.match(T.bracketR)&&(e.types.push(this.flowParseType()),!this.match(T.bracketR));)this.expect(T.comma);return this.expect(T.bracketR),this.finishNode(e,"TupleTypeAnnotation")},re.flowParseFunctionTypeParam=function(){var e=null,t=!1,r=null,n=this.startNode(),i=this.lookahead();return i.type===T.colon||i.type===T.question?(e=this.parseIdentifier(),this.eat(T.question)&&(t=!0),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),n.name=e,n.optional=t,n.typeAnnotation=r,this.finishNode(n,"FunctionTypeParam")},re.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc.start);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},re.flowParseFunctionTypeParams=function(){for(var e={params:arguments.length>0&&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="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||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("<tag",!1),I.j_cTag=new j("</tag",!1),I.j_expr=new j("<tag>...</tag>",!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<this.input.length&&t++<10;){if(";"===(n=this.input[this.state.pos++])){"#"===e[0]?"x"===e[1]?(e=e.substr(2),ue.test(e)&&(r=ae(parseInt(e,16)))):(e=e.substr(1),le.test(e)&&(r=ae(parseInt(e,10)))):r=oe[e];break}e+=n}return r||(this.state.pos=i,"&")},ce.jsxReadWord=function(){var e=void 0,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(a(e)||45===e);return this.finishToken(T.jsxName,this.input.slice(t,this.state.pos))},ce.jsxParseIdentifier=function(){var e=this.startNode();return this.match(T.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},ce.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,r=this.jsxParseIdentifier();if(!this.eat(T.colon))return r;var n=this.startNodeAt(e,t);return n.namespace=r,n.name=this.jsxParseIdentifier(),this.finishNode(n,"JSXNamespacedName")},ce.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.jsxParseNamespacedName();this.eat(T.dot);){var n=this.startNodeAt(e,t);n.object=r,n.property=this.jsxParseIdentifier(),r=this.finishNode(n,"JSXMemberExpression")}return r},ce.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case T.braceL:if("JSXEmptyExpression"!==(e=this.jsxParseExpressionContainer()).expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case T.jsxTagStart:case T.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},ce.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEnd,this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.start,this.state.startLoc)},ce.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(T.braceL),this.expect(T.ellipsis),e.expression=this.parseExpression(),this.expect(T.braceR),this.finishNode(e,"JSXSpreadChild")},ce.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(T.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(T.braceR),this.finishNode(e,"JSXExpressionContainer")},ce.jsxParseAttribute=function(){var e=this.startNode();return this.eat(T.braceL)?(this.expect(T.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(T.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(T.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},ce.jsxParseOpeningElementAt=function(e,t){var r=this.startNodeAt(e,t);for(r.attributes=[],r.name=this.jsxParseElementName();!this.match(T.slash)&&!this.match(T.jsxTagEnd);)r.attributes.push(this.jsxParseAttribute());return r.selfClosing=this.eat(T.slash),this.expect(T.jsxTagEnd),this.finishNode(r,"JSXOpeningElement")},ce.jsxParseClosingElementAt=function(e,t){var r=this.startNodeAt(e,t);return r.name=this.jsxParseElementName(),this.expect(T.jsxTagEnd),this.finishNode(r,"JSXClosingElement")},ce.jsxParseElementAt=function(e,t){var r=this.startNodeAt(e,t),n=[],i=this.jsxParseOpeningElementAt(e,t),s=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case T.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(T.slash)){s=this.jsxParseClosingElementAt(e,t);break e}n.push(this.jsxParseElementAt(e,t));break;case T.jsxText:n.push(this.parseExprAtom());break;case T.braceL:this.lookahead().type===T.ellipsis?n.push(this.jsxParseSpreadChild()):n.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}h(s.name)!==h(i.name)&&this.raise(s.start,"Expected corresponding JSX closing tag for <"+h(i.name)+">")}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;o<s;o++)a[o-3]=arguments[o];e.call.apply(e,[this,t,r,n].concat(a))}}}),e.extend("checkPropClash",function(){return function(e,t){if(!e.computed&&p(e)){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)}}}),e.extend("isStrictBody",function(){return function(e,t){if(!t&&e.body.body.length>0){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;s<n;s++)i[s-1]=arguments[s];e.call.apply(e,[this,t].concat(i)),t.directives.reverse().forEach(function(e){t.body.unshift(r.directiveToStmt(e))}),delete t.directives}}),e.extend("parseClassMethod",function(){return function(e,t,r,n){this.parseMethod(t,r,n),t.typeParameters&&(t.value.typeParameters=t.typeParameters,delete t.typeParameters),e.body.push(this.finishNode(t,"MethodDefinition"))}}),e.extend("parseExprAtom",function(e){return function(){switch(this.state.type){case T.regexp:return this.estreeParseRegExpLiteral(this.state.value);case T.num:case T.string:return this.estreeParseLiteral(this.state.value);case T._null:return this.estreeParseLiteral(null);case T._true:return this.estreeParseLiteral(!0);case T._false:return this.estreeParseLiteral(!1);default:for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.call.apply(e,[this].concat(r))}}}),e.extend("parseLiteral",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i.raw=i.extra.raw,delete i.extra,i}}),e.extend("parseMethod",function(e){return function(t){var r=this.startNode();r.kind=t.kind;for(var n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];return r=e.call.apply(e,[this,r].concat(i)),delete r.kind,t.value=this.finishNode(r,"FunctionExpression"),t}}),e.extend("parseObjectMethod",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&("method"===i.kind&&(i.kind="init"),i.type="Property"),i}}),e.extend("parseObjectProperty",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&(i.kind="init",i.type="Property"),i}}),e.extend("toAssignable",function(e){return function(t,r){for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(p(t))return this.toAssignable.apply(this,[t.value,r].concat(i)),t;if("ObjectExpression"===t.type){t.type="ObjectPattern";var a=t.properties,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;"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;i<t.length;i++){var s=t[i];s&&"TypeCastExpression"===s.type&&(t[i]=this.typeCastToParameter(s))}return e.call(this,t,r,n)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var r=e[t];r&&r._exprListItem&&"TypeCastExpression"===r.type&&this.raise(r.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(){for(var t=this.startNode(),r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];var s=e.call.apply(e,[this].concat(n));return this.match(T.colon)?(t._exprListItem=!0,t.expression=s,t.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t,"TypeCastExpression")):s}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(T.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassMethod",function(e){return function(){return this.isRelational("<")||e.call(this)}}),e.extend("isClassProperty",function(e){return function(){return this.match(T.colon)||e.call(this)}}),e.extend("isNonstaticConstructor",function(e){return function(t){return!this.match(T.colon)&&e.call(this,t)}}),e.extend("parseClassMethod",function(e){return function(t,r){r.variance&&this.unexpected(r.variancePos),delete r.variance,delete r.variancePos,this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterDeclaration());for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];e.call.apply(e,[this,t,r].concat(i))}}),e.extend("parseClassSuper",function(e){return function(t,r){if(e.call(this,t,r),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var n=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,n.push(this.finishNode(i,"ClassImplements"))}while(this.eat(T.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var r=this.state.start,n=this.flowParseVariance(),i=e.call(this,t);return t.variance=n,t.variancePos=r,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var r=void 0;this.isRelational("<")&&(r=this.flowParseTypeParameterDeclaration(),this.match(T.parenL)||this.unexpected()),e.apply(this,arguments),r&&((t.value||t).typeParameters=r)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(T.question)&&(e.optional=!0),this.match(T.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.apply(this,r);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var r=null;if(this.match(T._typeof)?r="typeof":this.isContextual("type")&&(r="type"),r){var n=this.lookahead();(n.type===T.name&&"from"!==n.value||n.type===T.braceL||n.type===T.star)&&(this.next(),t.importKind=r)}e.call(this,t)}}),e.extend("parseImportSpecifier",function(){return function(e){var t=this.startNode(),r=this.state.start,n=this.parseIdentifier(!0),i=null;"type"===n.name?i="type":"typeof"===n.name&&(i="typeof");var s=!1;if(this.isContextual("as")){var a=this.parseIdentifier(!0);null===i||this.match(T.name)||this.state.type.keyword?(t.imported=n,t.importKind=null,t.local=this.parseIdentifier()):(t.imported=a,t.importKind=i,t.local=a.__clone())}else null!==i&&(this.match(T.name)||this.state.type.keyword)?(t.imported=this.parseIdentifier(!0),t.importKind=i,this.eatContextual("as")?t.local=this.parseIdentifier():(s=!0,t.local=t.imported.__clone())):(s=!0,t.imported=n,t.importKind=null,t.local=t.imported.__clone());"type"!==e.importKind&&"typeof"!==e.importKind||"type"!==t.importKind&&"typeof"!==t.importKind||this.raise(r,"`The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements`"),s&&this.checkReservedWord(t.local.name,t.start,!0,!0),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(T.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,r){if(this.match(T.colon)){var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=n}return e.call(this,t,r)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(T.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];if(T.jsxTagStart&&this.match(T.jsxTagStart)){var s=this.state.clone();try{return e.apply(this,n)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=s,this.state.context.length-=2,t=e}}if(null!=t||this.isRelational("<")){var a=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),(a=e.apply(this,n)).typeParameters=o,a.start=o.start,a.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===a.type)return a;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return e.apply(this,n)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(T.colon)){var r=this.state.clone();try{var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAndPredicateAnnotation();this.state.noAnonFunctionType=n,this.canInsertSemicolon()&&this.unexpected(),this.match(T.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=r}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(T.colon)||e.call(this)}})},V.jsx=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(T.jsxText)){var r=this.parseLiteral(this.state.value,"JSXText");return r.extra=null,r}return this.match(T.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){if(this.state.inPropertyName)return e.call(this,t);var r=this.curContext();if(r===I.j_expr)return this.jsxReadToken();if(r===I.j_oTag||r===I.j_cTag){if(s(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(T.jsxTagEnd);if((34===t||39===t)&&r===I.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(T.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(T.braceL)){var r=this.curContext();r===I.j_oTag?this.state.context.push(I.braceExpression):r===I.j_expr?this.state.context.push(I.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(T.slash)||t!==T.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(I.j_cTag),this.state.exprAllowed=!1}}})},r.parse=function(e,t){return new q(t,e).parse()},r.parseExpression=function(e,t){var r=new q(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()},r.tokTypes=T},{}],189:[function(e,t,r){"use strict";function n(e,t,r){e instanceof RegExp&&(e=i(e,r)),t instanceof RegExp&&(t=i(t,r));var n=s(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function i(e,t){var r=t.match(e);return r?r[0]:null}function s(e,t,r){var n,i,s,a,o,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=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())<s&&(s=i,a=l),l=r.indexOf(t,c+1)),c=u<l&&u>=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;a<r;a+=3)n=(e[a]<<16)+(e[a+1]<<8)+e[a+2],s.push(i(n));return s.join("")}r.byteLength=function(e){return 3*e.length/4-n(e)},r.toByteArray=function(e){var t,r,i,s,a,l=e.length;s=n(e),a=new u(3*l/4-s),r=s>0?l-4:l;var c=0;for(t=0;t<r;t+=4)i=o[e.charCodeAt(t)]<<18|o[e.charCodeAt(t+1)]<<12|o[e.charCodeAt(t+2)]<<6|o[e.charCodeAt(t+3)],a[c++]=i>>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;u<l;u+=16383)o.push(s(e,u,u+16383>l?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<p;++c)a[c]=l[c],o[l.charCodeAt(c)]=c;o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},{}],191:[function(e,t,r){function n(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split(f).join("\\").split(d).join("{").split(m).join("}").split(y).join(",").split(g).join(".")}function s(e){if(!e)return[""];var t=[],r=h("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,a=r.post,o=n.split(",");o[o.length-1]+="{"+i+"}";var u=s(a);return a.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function a(e){return"{"+e+"}"}function o(e){return/^-?0\d/.test(e)}function u(e,t){return e<=t}function l(e,t){return e>=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;D<A&&(C*=-1,_=l);var w=b.some(o);v=[];for(var k=A;_(k,D);k+=C){var F;if(d)"\\"===(F=String.fromCharCode(k))&&(F="");else if(F=String(k),w){var T=S-F.length;if(T>0){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;B<v.length;B++)for(var O=0;O<E.length;O++){var N=x+v[B]+E[O];(!t||y||N)&&r.push(N)}return r}var p=e("concat-map"),h=e("balanced-match");t.exports=function(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),c(function(e){return e.split("\\\\").join(f).split("\\{").join(d).split("\\}").join(m).split("\\,").join(y).split("\\.").join(g)}(e),!0).map(i)):[]};var f="\0SLASH"+Math.random()+"\0",d="\0OPEN"+Math.random()+"\0",m="\0CLOSE"+Math.random()+"\0",y="\0COMMA"+Math.random()+"\0",g="\0PERIOD"+Math.random()+"\0"},{"balanced-match":189,"concat-map":195}],192:[function(e,t,r){},{}],193:[function(e,t,r){arguments[4][192][0].apply(r,arguments)},{dup:192}],194:[function(e,t,r){"use strict";function n(e){if(e>j)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<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(r||0))throw new RangeError("'length' is out of bounds");var n;n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r);return n.__proto__=i.prototype,n}(e,t,r):"string"==typeof e?function(e,t){"string"==typeof t&&""!==t||(t="utf8");if(!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var r=0|c(e,t),s=n(r),a=s.write(e,t);a!==r&&(s=s.slice(0,a));return s}(e,t):function(e){if(i.isBuffer(e)){var t=0|l(e.length),r=n(t);return 0===r.length?r:(e.copy(r,0,0,t),r)}if(e){if(P(e)||"length"in e)return"number"!=typeof e.length||B(e.length)?n(0):u(e);if("Buffer"===e.type&&Array.isArray(e.data))return u(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e)}function a(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function o(e){return a(e),n(e<0?0:0|l(e))}function u(e){for(var t=e.length<0?0:0|l(e.length),r=n(t),i=0;i<t;i+=1)r[i]=255&e[i];return r}function l(e){if(e>=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;s<r;++s)i+=function(e){return e<16?"0"+e.toString(16):e.toString(16)}(e[s]);return i}(this,t,r);case"utf8":case"utf-8":return E(this,t,r);case"ascii":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}(this,t,r);case"latin1":case"binary":return function(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}(this,t,r);case"base64":return function(e,t,r){return 0===t&&r===e.length?O.fromByteArray(e):O.fromByteArray(e.slice(t,r))}(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return function(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function h(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function f(e,t,r,n,s){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?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;l<o;l++)if(s(e,l)===s(t,-1===c?0:l-c)){if(-1===c&&(c=l),l-c+1===u)return c*a}else-1!==c&&(l-=l-c),c=-1}else for(r+u>o&&(r=o-u),l=r;l>=0;l--){for(var p=!0,h=0;h<u;h++)if(s(e,l+h)!==s(t,h)){p=!1;break}if(p)return l}return-1}function m(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(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<n;++a){var o=parseInt(t.substr(2*a,2),16);if(B(o))return a;e[r+a]=o}return a}function y(e,t,r,n){return F(w(t,e.length-r),e,r,n)}function g(e,t,r,n){return F(function(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}(t),e,r,n)}function b(e,t,r,n){return g(e,t,r,n)}function v(e,t,r,n){return F(k(t),e,r,n)}function x(e,t,r,n){return F(function(e,t){for(var r,n,i,s=[],a=0;a<e.length&&!((t-=2)<0);++a)r=e.charCodeAt(a),n=r>>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;i<r;){var s=e[i],a=null,o=s>239?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(;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=I));return r}(n)}function A(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)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||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.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;a<n;++a){if((r=e.charCodeAt(a))>55295&&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<n&&!(i+r>=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);s<a;++s)if(e[s]!==t[s]){r=e[s],n=t[s];break}return r<n?-1:n<r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=i.allocUnsafe(t),s=0;for(r=0;r<e.length;++r){var a=e[r];if(!i.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,s),s+=a.length}return n},i.byteLength=c,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)h(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)h(this,t,t+3),h(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)h(this,t,t+7),h(this,t+1,t+6),h(this,t+2,t+5),h(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?E(this,0,e):p.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+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<u;++p)if(l[p]!==c[p]){a=l[p],o=c[p];break}return a<o?-1:o<a?1:0},i.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},i.prototype.indexOf=function(e,t,r){return f(this,e,t,r,!0)},i.prototype.lastIndexOf=function(e,t,r){return f(this,e,t,r,!1)},i.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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<e&&(t=e);var n=this.subarray(e,t);return n.__proto__=i.prototype,n},i.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||A(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},i.prototype.readUIntBE=function(e,t,r){e>>>=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<t&&(i*=256);)n+=this[e+s]*i;return i*=128,n>=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<r&&(i*=256);)this[t+s]=e/i&255;return t+r},i.prototype.writeUIntBE=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=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<r&&(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.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<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=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<n-r&&(n=e.length-t+r);var i,s=n-r;if(this===e&&r<t&&t<n)for(i=s-1;i>=0;--i)e[i+t]=this[i+r];else if(s<1e3)for(i=0;i<s;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},i.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!i.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=i.isBuffer(e)?e:new i(e,n),u=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%u]}return this};var L=/[^+/0-9A-Za-z-_]/g},{"base64-js":190,ieee754:316}],195:[function(e,t,r){t.exports=function(e,t){for(var r=[],i=0;i<e.length;i++){var s=t(e[i],i);n(s)?r.push.apply(r,s):r.push(s)}return r};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],196:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.get-iterator")},{"../modules/core.get-iterator":287,"../modules/es6.string.iterator":296,"../modules/web.dom.iterable":309}],197:[function(e,t,r){var n=e("../../modules/_core"),i=n.JSON||(n.JSON={stringify:JSON.stringify});t.exports=function(e){return i.stringify.apply(i,arguments)}},{"../../modules/_core":225}],198:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.map"),e("../modules/es7.map.to-json"),e("../modules/es7.map.of"),e("../modules/es7.map.from"),t.exports=e("../modules/_core").Map},{"../modules/_core":225,"../modules/es6.map":289,"../modules/es6.object.to-string":295,"../modules/es6.string.iterator":296,"../modules/es7.map.from":300,"../modules/es7.map.of":301,"../modules/es7.map.to-json":302,"../modules/web.dom.iterable":309}],199:[function(e,t,r){e("../../modules/es6.number.max-safe-integer"),t.exports=9007199254740991},{"../../modules/es6.number.max-safe-integer":290}],200:[function(e,t,r){e("../../modules/es6.object.assign"),t.exports=e("../../modules/_core").Object.assign},{"../../modules/_core":225,"../../modules/es6.object.assign":291}],201:[function(e,t,r){e("../../modules/es6.object.create");var n=e("../../modules/_core").Object;t.exports=function(e,t){return n.create(e,t)}},{"../../modules/_core":225,"../../modules/es6.object.create":292}],202:[function(e,t,r){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Object.getOwnPropertySymbols},{"../../modules/_core":225,"../../modules/es6.symbol":297}],203:[function(e,t,r){e("../../modules/es6.object.keys"),t.exports=e("../../modules/_core").Object.keys},{"../../modules/_core":225,"../../modules/es6.object.keys":293}],204:[function(e,t,r){e("../../modules/es6.object.set-prototype-of"),t.exports=e("../../modules/_core").Object.setPrototypeOf},{"../../modules/_core":225,"../../modules/es6.object.set-prototype-of":294}],205:[function(e,t,r){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Symbol.for},{"../../modules/_core":225,"../../modules/es6.symbol":297}],206:[function(e,t,r){e("../../modules/es6.symbol"),e("../../modules/es6.object.to-string"),e("../../modules/es7.symbol.async-iterator"),e("../../modules/es7.symbol.observable"),t.exports=e("../../modules/_core").Symbol},{"../../modules/_core":225,"../../modules/es6.object.to-string":295,"../../modules/es6.symbol":297,"../../modules/es7.symbol.async-iterator":303,"../../modules/es7.symbol.observable":304}],207:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/web.dom.iterable"),t.exports=e("../../modules/_wks-ext").f("iterator")},{"../../modules/_wks-ext":284,"../../modules/es6.string.iterator":296,"../../modules/web.dom.iterable":309}],208:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-map"),e("../modules/es7.weak-map.of"),e("../modules/es7.weak-map.from"),t.exports=e("../modules/_core").WeakMap},{"../modules/_core":225,"../modules/es6.object.to-string":295,"../modules/es6.weak-map":298,"../modules/es7.weak-map.from":305,"../modules/es7.weak-map.of":306,"../modules/web.dom.iterable":309}],209:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-set"),e("../modules/es7.weak-set.of"),e("../modules/es7.weak-set.from"),t.exports=e("../modules/_core").WeakSet},{"../modules/_core":225,"../modules/es6.object.to-string":295,"../modules/es6.weak-set":299,"../modules/es7.weak-set.from":307,"../modules/es7.weak-set.of":308,"../modules/web.dom.iterable":309}],210:[function(e,t,r){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},{}],211:[function(e,t,r){t.exports=function(){}},{}],212:[function(e,t,r){t.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},{}],213:[function(e,t,r){var n=e("./_is-object");t.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},{"./_is-object":243}],214:[function(e,t,r){var n=e("./_for-of");t.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},{"./_for-of":234}],215:[function(e,t,r){var n=e("./_to-iobject"),i=e("./_to-length"),s=e("./_to-absolute-index");t.exports=function(e){return function(t,r,a){var o,u=n(t),l=i(u.length),c=s(a,l);if(e&&r!=r){for(;l>c;)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("<script>document.F=Object<\/script>"),t.close(),u=t.F;n--;)delete u.prototype[s[n]];return u()};t.exports=Object.create||function(e,t){var r;return null!==e?(o.prototype=n(e),r=new o,o.prototype=null,r[a]=e):r=u(),void 0===t?r:i(r,t)}},{"./_an-object":213,"./_dom-create":229,"./_enum-bug-keys":230,"./_html":238,"./_object-dps":254,"./_shared-key":272}],253:[function(e,t,r){var n=e("./_an-object"),i=e("./_ie8-dom-define"),s=e("./_to-primitive"),a=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":213,"./_descriptors":228,"./_ie8-dom-define":239,"./_to-primitive":280}],254:[function(e,t,r){var n=e("./_object-dp"),i=e("./_an-object"),s=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){i(e);for(var r,a=s(t),o=a.length,u=0;o>u;)n.f(e,r=a[u++],t[r]);return e}},{"./_an-object":213,"./_descriptors":228,"./_object-dp":253,"./_object-keys":261}],255:[function(e,t,r){var n=e("./_object-pie"),i=e("./_property-desc"),s=e("./_to-iobject"),a=e("./_to-primitive"),o=e("./_has"),u=e("./_ie8-dom-define"),l=Object.getOwnPropertyDescriptor;r.f=e("./_descriptors")?l:function(e,t){if(e=s(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!n.f.call(e,t),e[t])}},{"./_descriptors":228,"./_has":236,"./_ie8-dom-define":239,"./_object-pie":262,"./_property-desc":264,"./_to-iobject":277,"./_to-primitive":280}],256:[function(e,t,r){var n=e("./_to-iobject"),i=e("./_object-gopn").f,s={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];t.exports.f=function(e){return a&&"[object Window]"==s.call(e)?function(e){try{return i(e)}catch(e){return a.slice()}}(e):i(n(e))}},{"./_object-gopn":257,"./_to-iobject":277}],257:[function(e,t,r){var n=e("./_object-keys-internal"),i=e("./_enum-bug-keys").concat("length","prototype");r.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},{"./_enum-bug-keys":230,"./_object-keys-internal":260}],258:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],259:[function(e,t,r){var n=e("./_has"),i=e("./_to-object"),s=e("./_shared-key")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},{"./_has":236,"./_shared-key":272,"./_to-object":279}],260:[function(e,t,r){var n=e("./_has"),i=e("./_to-iobject"),s=e("./_array-includes")(!1),a=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var r,o=i(e),u=0,l=[];for(r in o)r!=a&&n(o,r)&&l.push(r);for(;t.length>u;)n(o,r=t[u++])&&(~s(l,r)||l.push(r));return l}},{"./_array-includes":215,"./_has":236,"./_shared-key":272,"./_to-iobject":277}],261:[function(e,t,r){var n=e("./_object-keys-internal"),i=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,i)}},{"./_enum-bug-keys":230,"./_object-keys-internal":260}],262:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],263:[function(e,t,r){var n=e("./_export"),i=e("./_core"),s=e("./_fails");t.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},{"./_core":225,"./_export":232,"./_fails":233}],264:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],265:[function(e,t,r){var n=e("./_hide");t.exports=function(e,t,r){for(var i in t)r&&e[i]?e[i]=t[i]:n(e,i,t[i]);return e}},{"./_hide":237}],266:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":237}],267:[function(e,t,r){"use strict";var n=e("./_export"),i=e("./_a-function"),s=e("./_ctx"),a=e("./_for-of");t.exports=function(e){n(n.S,e,{from:function(e){var t,r,n,o,u=arguments[1];return i(this),(t=void 0!==u)&&i(u),void 0==e?new this:(r=[],t?(n=0,o=s(u,arguments[2],2),a(e,!1,function(e){r.push(o(e,n++))})):a(e,!1,r.push,r),new this(r))}})}},{"./_a-function":210,"./_ctx":226,"./_export":232,"./_for-of":234}],268:[function(e,t,r){"use strict";var n=e("./_export");t.exports=function(e){n(n.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},{"./_export":232}],269:[function(e,t,r){var n=e("./_is-object"),i=e("./_an-object"),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,n){try{(n=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2))(t,[]),r=!(t instanceof Array)}catch(e){r=!0}return function(e,t){return s(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:s}},{"./_an-object":213,"./_ctx":226,"./_is-object":243,"./_object-gopd":255}],270:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_core"),s=e("./_object-dp"),a=e("./_descriptors"),o=e("./_wks")("species");t.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];a&&t&&!t[o]&&s.f(t,o,{configurable:!0,get:function(){return this}})}},{"./_core":225,"./_descriptors":228,"./_global":235,"./_object-dp":253,"./_wks":285}],271:[function(e,t,r){var n=e("./_object-dp").f,i=e("./_has"),s=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},{"./_has":236,"./_object-dp":253,"./_wks":285}],272:[function(e,t,r){var n=e("./_shared")("keys"),i=e("./_uid");t.exports=function(e){return n[e]||(n[e]=i(e))}},{"./_shared":273,"./_uid":281}],273:[function(e,t,r){var n=e("./_global"),i=n["__core-js_shared__"]||(n["__core-js_shared__"]={});t.exports=function(e){return i[e]||(i[e]={})}},{"./_global":235}],274:[function(e,t,r){var n=e("./_to-integer"),i=e("./_defined");t.exports=function(e){return function(t,r){var s,a,o=String(i(t)),u=n(r),l=o.length;return u<0||u>=l?e?"":void 0:(s=o.charCodeAt(u))<55296||s>56319||u+1===l||(a=o.charCodeAt(u+1))<56320||a>57343?e?o.charAt(u):s:e?o.slice(u,u+2):a-56320+(s-55296<<10)+65536}}},{"./_defined":227,"./_to-integer":276}],275:[function(e,t,r){var n=e("./_to-integer"),i=Math.max,s=Math.min;t.exports=function(e,t){return(e=n(e))<0?i(e+t,0):s(e,t)}},{"./_to-integer":276}],276:[function(e,t,r){var n=Math.ceil,i=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},{}],277:[function(e,t,r){var n=e("./_iobject"),i=e("./_defined");t.exports=function(e){return n(i(e))}},{"./_defined":227,"./_iobject":240}],278:[function(e,t,r){var n=e("./_to-integer"),i=Math.min;t.exports=function(e){return e>0?i(n(e),9007199254740991):0}},{"./_to-integer":276}],279:[function(e,t,r){var n=e("./_defined");t.exports=function(e){return Object(n(e))}},{"./_defined":227}],280:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":243}],281:[function(e,t,r){var n=0,i=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},{}],282:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},{"./_is-object":243}],283:[function(e,t,r){var n=e("./_global"),i=e("./_core"),s=e("./_library"),a=e("./_wks-ext"),o=e("./_object-dp").f;t.exports=function(e){var t=i.Symbol||(i.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},{"./_core":225,"./_global":235,"./_library":249,"./_object-dp":253,"./_wks-ext":284}],284:[function(e,t,r){r.f=e("./_wks")},{"./_wks":285}],285:[function(e,t,r){var n=e("./_shared")("wks"),i=e("./_uid"),s=e("./_global").Symbol,a="function"==typeof s;(t.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:i)("Symbol."+e))}).store=n},{"./_global":235,"./_shared":273,"./_uid":281}],286:[function(e,t,r){var n=e("./_classof"),i=e("./_wks")("iterator"),s=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||s[n(e)]}},{"./_classof":219,"./_core":225,"./_iterators":248,"./_wks":285}],287:[function(e,t,r){var n=e("./_an-object"),i=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},{"./_an-object":213,"./_core":225,"./core.get-iterator-method":286}],288:[function(e,t,r){"use strict";var n=e("./_add-to-unscopables"),i=e("./_iter-step"),s=e("./_iterators"),a=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?r:"values"==t?e[r]:[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":211,"./_iter-define":246,"./_iter-step":247,"./_iterators":248,"./_to-iobject":277}],289:[function(e,t,r){"use strict";var n=e("./_collection-strong"),i=e("./_validate-collection");t.exports=e("./_collection")("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return n.def(i(this,"Map"),0===e?0:e,t)}},n,!0)},{"./_collection":224,"./_collection-strong":221,"./_validate-collection":282}],290:[function(e,t,r){var n=e("./_export");n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{"./_export":232}],291:[function(e,t,r){var n=e("./_export");n(n.S+n.F,"Object",{assign:e("./_object-assign")})},{"./_export":232,"./_object-assign":251}],292:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{create:e("./_object-create")})},{"./_export":232,"./_object-create":252}],293:[function(e,t,r){var n=e("./_to-object"),i=e("./_object-keys");e("./_object-sap")("keys",function(){return function(e){return i(n(e))}})},{"./_object-keys":261,"./_object-sap":263,"./_to-object":279}],294:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":232,"./_set-proto":269}],295:[function(e,t,r){arguments[4][192][0].apply(r,arguments)},{dup:192}],296:[function(e,t,r){"use strict";var n=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":246,"./_string-at":274}],297:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_has"),s=e("./_descriptors"),a=e("./_export"),o=e("./_redefine"),u=e("./_meta").KEY,l=e("./_fails"),c=e("./_shared"),p=e("./_set-to-string-tag"),h=e("./_uid"),f=e("./_wks"),d=e("./_wks-ext"),m=e("./_wks-define"),y=e("./_enum-keys"),g=e("./_is-array"),b=e("./_an-object"),v=e("./_is-object"),x=e("./_to-iobject"),E=e("./_to-primitive"),A=e("./_property-desc"),D=e("./_object-create"),S=e("./_object-gopn-ext"),C=e("./_object-gopd"),_=e("./_object-dp"),w=e("./_object-keys"),k=C.f,F=_.f,T=S.f,P=n.Symbol,B=n.JSON,O=B&&B.stringify,N="prototype",j=f("_hidden"),I=f("toPrimitive"),L={}.propertyIsEnumerable,M=c("symbol-registry"),R=c("symbols"),V=c("op-symbols"),U=Object[N],q="function"==typeof P,G=n.QObject,X=!G||!G[N]||!G[N].findChild,J=s&&l(function(){return 7!=D(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=k(U,t);n&&delete U[t],F(e,t,r),n&&e!==U&&F(U,t,n)}:F,W=function(e){var t=R[e]=D(P[N]);return t._k=e,t},K=q&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},z=function(e,t,r){return e===U&&z(V,t,r),b(e),t=E(t,!0),b(r),i(R,t)?(r.enumerable?(i(e,j)&&e[j][t]&&(e[j][t]=!1),r=D(r,{enumerable:A(0,!1)})):(i(e,j)||F(e,j,A(1,{})),e[j][t]=!0),J(e,t,r)):F(e,t,r)},Y=function(e,t){b(e);for(var r,n=y(t=x(t)),i=0,s=n.length;s>i;)z(e,r=n[i++],t[r]);return e},H=function(e){var t=L.call(this,e=E(e,!0));return!(this===U&&i(R,e)&&!i(V,e))&&(!(t||!i(this,e)||!i(R,e)||i(this,j)&&this[j][e])||t)},$=function(e,t){if(e=x(e),t=E(t,!0),e!==U||!i(R,t)||i(V,t)){var r=k(e,t);return!r||!i(R,t)||i(e,j)&&e[j][t]||(r.enumerable=!0),r}},Q=function(e){for(var t,r=T(x(e)),n=[],s=0;r.length>s;)i(R,t=r[s++])||t==j||t==u||n.push(t);return n},Z=function(e){for(var t,r=e===U,n=T(r?V:x(e)),s=[],a=0;n.length>a;)!i(R,t=n[a++])||r&&!i(U,t)||s.push(R[t]);return s};q||(o((P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(r){this===U&&t.call(V,r),i(this,j)&&i(this[j],e)&&(this[j][e]=!1),J(this,e,A(1,r))};return s&&X&&J(U,e,{configurable:!0,set:t}),W(e)})[N],"toString",function(){return this._k}),C.f=$,_.f=z,e("./_object-gopn").f=S.f=Q,e("./_object-pie").f=H,e("./_object-gops").f=Z,s&&!e("./_library")&&o(U,"propertyIsEnumerable",H,!0),d.f=function(e){return W(f(e))}),a(a.G+a.W+a.F*!q,{Symbol:P});for(var ee="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),te=0;ee.length>te;)f(ee[te++]);for(var re=w(f.store),ne=0;re.length>ne;)m(re[ne++]);a(a.S+a.F*!q,"Symbol",{for:function(e){return i(M,e+="")?M[e]:M[e]=P(e)},keyFor:function(e){if(!K(e))throw TypeError(e+" is not a symbol!");for(var t in M)if(M[t]===e)return t},useSetter:function(){X=!0},useSimple:function(){X=!1}}),a(a.S+a.F*!q,"Object",{create:function(e,t){return void 0===t?D(e):Y(D(e),t)},defineProperty:z,defineProperties:Y,getOwnPropertyDescriptor:$,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),B&&a(a.S+a.F*(!q||l(function(){var e=P();return"[null]"!=O([e])||"{}"!=O({a:e})||"{}"!=O(Object(e))})),"JSON",{stringify:function(e){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);if(r=t=n[1],(v(t)||void 0!==e)&&!K(e))return g(t)||(t=function(e,t){if("function"==typeof r&&(t=r.call(this,e,t)),!K(t))return t}),n[1]=t,O.apply(B,n)}}),P[N][I]||e("./_hide")(P[N],I,P[N].valueOf),p(P,"Symbol"),p(Math,"Math",!0),p(n.JSON,"JSON",!0)},{"./_an-object":213,"./_descriptors":228,"./_enum-keys":231,"./_export":232,"./_fails":233,"./_global":235,"./_has":236,"./_hide":237,"./_is-array":242,"./_is-object":243,"./_library":249,"./_meta":250,"./_object-create":252,"./_object-dp":253,"./_object-gopd":255,"./_object-gopn":257,"./_object-gopn-ext":256,"./_object-gops":258,"./_object-keys":261,"./_object-pie":262,"./_property-desc":264,"./_redefine":266,"./_set-to-string-tag":271,"./_shared":273,"./_to-iobject":277,"./_to-primitive":280,"./_uid":281,"./_wks":285,"./_wks-define":283,"./_wks-ext":284}],298:[function(e,t,r){"use strict";var n,i=e("./_array-methods")(0),s=e("./_redefine"),a=e("./_meta"),o=e("./_object-assign"),u=e("./_collection-weak"),l=e("./_is-object"),c=e("./_fails"),p=e("./_validate-collection"),h=a.getWeak,f=Object.isExtensible,d=u.ufstore,m={},y=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},g={get:function(e){if(l(e)){var t=h(e);return!0===t?d(p(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(p(this,"WeakMap"),e,t)}},b=t.exports=e("./_collection")("WeakMap",y,g,u,!0,!0);c(function(){return 7!=(new b).set((Object.freeze||Object)(m),7).get(m)})&&(o((n=u.getConstructor(y,"WeakMap")).prototype,g),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=b.prototype,r=t[e];s(t,e,function(t,i){if(l(t)&&!f(t)){this._f||(this._f=new n);var s=this._f[e](t,i);return"set"==e?this:s}return r.call(this,t,i)})}))},{"./_array-methods":216,"./_collection":224,"./_collection-weak":223,"./_fails":233,"./_is-object":243,"./_meta":250,"./_object-assign":251,"./_redefine":266,"./_validate-collection":282}],299:[function(e,t,r){"use strict";var n=e("./_collection-weak"),i=e("./_validate-collection");e("./_collection")("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return n.def(i(this,"WeakSet"),e,!0)}},n,!1,!0)},{"./_collection":224,"./_collection-weak":223,"./_validate-collection":282}],300:[function(e,t,r){e("./_set-collection-from")("Map")},{"./_set-collection-from":267}],301:[function(e,t,r){e("./_set-collection-of")("Map")},{"./_set-collection-of":268}],302:[function(e,t,r){var n=e("./_export");n(n.P+n.R,"Map",{toJSON:e("./_collection-to-json")("Map")})},{"./_collection-to-json":222,"./_export":232}],303:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":283}],304:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":283}],305:[function(e,t,r){e("./_set-collection-from")("WeakMap")},{"./_set-collection-from":267}],306:[function(e,t,r){e("./_set-collection-of")("WeakMap")},{"./_set-collection-of":268}],307:[function(e,t,r){e("./_set-collection-from")("WeakSet")},{"./_set-collection-from":267}],308:[function(e,t,r){e("./_set-collection-of")("WeakSet")},{"./_set-collection-of":268}],309:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),i=e("./_hide"),s=e("./_iterators"),a=e("./_wks")("toStringTag"),o="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<o.length;u++){var l=o[u],c=n[l],p=c&&c.prototype;p&&!p[a]&&i(p,a,l),s[l]=s.Array}},{"./_global":235,"./_hide":237,"./_iterators":248,"./_wks":285,"./es6.array.iterator":288}],310:[function(e,t,r){(function(e){function t(e){return Object.prototype.toString.call(e)}r.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===t(e)},r.isBoolean=function(e){return"boolean"==typeof e},r.isNull=function(e){return null===e},r.isNullOrUndefined=function(e){return null==e},r.isNumber=function(e){return"number"==typeof e},r.isString=function(e){return"string"==typeof e},r.isSymbol=function(e){return"symbol"==typeof e},r.isUndefined=function(e){return void 0===e},r.isRegExp=function(e){return"[object RegExp]"===t(e)},r.isObject=function(e){return"object"==typeof e&&null!==e},r.isDate=function(e){return"[object Date]"===t(e)},r.isError=function(e){return"[object Error]"===t(e)||e instanceof Error},r.isFunction=function(e){return"function"==typeof e},r.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},r.isBuffer=e.isBuffer}).call(this,{isBuffer:e("../../is-buffer/index.js")})},{"../../is-buffer/index.js":319}],311:[function(e,t,r){"use strict";var n=e("repeating"),i=/^(?:( )+|\t+)/;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,r,s=0,a=0,o=0,u={};e.split(/\n/g).forEach(function(e){if(e){var n,l=e.match(i);l?(n=l[0].length,l[1]?a++:s++):n=0;var c=n-o;o=n,c?(t=u[(r=c>0)?c:-c])?t[0]++:t=u[c]=[1,0]:t&&(t[1]+=Number(r))}});var l,c,p=function(e){var t=0,r=0,n=0;for(var i in e){var s=e[i],a=s[0],o=s[1];(a>r||a===r&&o>n)&&(r=a,n=o,t=Number(i))}return t}(u);return p?a>=s?(l="space",c=n(" ",p)):(l="tab",c=n("\t",p)):(l=null,c=""),{amount:p,type:l,indent:c}}},{repeating:601}],312:[function(e,t,r){"use strict";var n=/[|\\{}()[\]^$+*?.]/g;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(n,"\\$&")}},{}],313:[function(e,t,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function s(e){return"object"==typeof e&&null!==e}function a(e){return void 0===e}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!function(e){return"number"==typeof e}(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,r,n,o,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||s(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(r=this._events[e],a(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:o=Array.prototype.slice.call(arguments,1),r.apply(this,o)}else if(s(r))for(o=Array.prototype.slice.call(arguments,1),n=(l=r.slice()).length,u=0;u<n;u++)l[u].apply(this,o);return!0},n.prototype.addListener=function(e,t){var r;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?s(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,s(this._events[e])&&!this._events[e].warned&&(r=a(this._maxListeners)?n.defaultMaxListeners:this._maxListeners)&&r>0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,a,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],a=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(r)){for(o=a;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){n=o;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],314:[function(e,t,r){"use strict";var n=e("ansi-regex"),i=new RegExp(n().source);t.exports=i.test.bind(i)},{"ansi-regex":315}],315:[function(e,t,r){arguments[4][22][0].apply(r,arguments)},{dup:22}],316:[function(e,t,r){r.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,u=(1<<o)-1,l=u>>1,c=-7,p=r?i-1:0,h=r?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-c)-1,f>>=-c,c+=o;c>0;s=256*s+e[t+p],p+=h,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+e[t+p],p+=h,c-=8);if(0===s)s=1-l;else{if(s===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),s-=l}return(f?-1:1)*a*Math.pow(2,s-n)},r.write=function(e,t,r,n,i,s){var a,o,u,l=8*s-i-1,c=(1<<l)-1,p=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:s-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+p>=1?h/u:h*Math.pow(2,1-p))*u>=2&&(a++,u/=2),a+p>=c?(o=0,a=c):a+p>=1?(o=(t*u-1)*Math.pow(2,i),a+=p):(o=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&o,f+=d,o/=256,i-=8);for(a=a<<i|o,l+=i;l>0;e[r+f]=255&a,f+=d,a/=256,l-=8);e[r+f-d]|=128*m}},{}],317:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],318:[function(e,t,r){"use strict";t.exports=function(e,t,r,n,i,s,a,o){if(void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,i,s,a,o],c=0;(u=new Error(t.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}}},{}],319:[function(e,t,r){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}t.exports=function(e){return null!=e&&(n(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}(e)||!!e._isBuffer)}},{}],320:[function(e,t,r){"use strict";var n=e("number-is-nan");t.exports=Number.isFinite||function(e){return!("number"!=typeof e||n(e)||e===1/0||e===-1/0)}},{"number-is-nan":544}],321:[function(e,t,r){var n={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},{}],322:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,r.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},{}],323:[function(e,t,r){(function(e){!function(n){var i="object"==typeof r&&r,s="object"==typeof t&&t&&t.exports==i&&t,a="object"==typeof e&&e;a.global!==a&&a.window!==a||(n=a);var o={},u=o.hasOwnProperty,l=function(e,t){var r;for(r in e)u.call(e,r)&&t(r,e[r])},c=o.toString,p={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},h=/["'\\\b\f\n\r\t]/,f=/[0-9]/,d=/[ !#-&\(-\[\]-~]/,m=function(e,t){var r={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},n=t&&t.json;n&&(r.quotes="double",r.wrap=!0),"single"!=(t=function(e,t){return t?(l(t,function(t,r){e[t]=r}),e):e}(r,t)).quotes&&"double"!=t.quotes&&(t.quotes="single");var i,s="double"==t.quotes?'"':"'",a=t.compact,o=t.indent,u=t.lowercaseHex,y="",g=t.__inline1__,b=t.__inline2__,v=a?"":"\n",x=!0,E="binary"==t.numbers,A="octal"==t.numbers,D="decimal"==t.numbers,S="hexadecimal"==t.numbers;if(n&&e&&function(e){return"function"==typeof e||"[object Function]"==c.call(e)}(e.toJSON)&&(e=e.toJSON()),!function(e){return"string"==typeof e||"[object String]"==c.call(e)}(e)){if(function(e){return"[object Map]"==c.call(e)}(e))return 0==e.size?"new Map()":(a||(t.__inline1__=!0),"new Map("+m(Array.from(e),t)+")");if(function(e){return"[object Set]"==c.call(e)}(e))return 0==e.size?"new Set()":"new Set("+m(Array.from(e),t)+")";if(function(e){return"[object Array]"==c.call(e)}(e))return i=[],t.wrap=!0,g?(t.__inline1__=!1,t.__inline2__=!0):(y=t.__indent__,o+=y,t.__indent__=o),function(e,t){for(var r=e.length,n=-1;++n<r;)t(e[n])}(e,function(e){x=!1,b&&(t.__inline2__=!1),i.push((a||b?"":o)+m(e,t))}),x?"[]":b?"["+i.join(", ")+"]":"["+v+i.join(","+v)+v+(a?"":y)+"]";if(!function(e){return"number"==typeof e||"[object Number]"==c.call(e)}(e))return function(e){return"[object Object]"==c.call(e)}(e)?(i=[],t.wrap=!0,y=t.__indent__,o+=y,t.__indent__=o,l(e,function(e,r){x=!1,i.push((a?"":o)+m(e,t)+":"+(a?"":" ")+m(r,t))}),x?"{}":"{"+v+i.join(","+v)+v+(a?"":y)+"}"):n?JSON.stringify(e)||"null":String(e);if(n)return JSON.stringify(e);if(D)return String(e);if(S){var C=e.toString(16);return u||(C=C.toUpperCase()),"0x"+C}if(E)return"0b"+e.toString(2);if(A)return"0o"+e.toString(8)}var _,w,k=e,F=-1,T=k.length;for(i="";++F<T;){var P=k.charAt(F);if(t.es6&&(_=k.charCodeAt(F))>=55296&&_<=56319&&T>F+1&&(w=k.charCodeAt(F+1))>=56320&&w<=57343){var B=(1024*(_-55296)+w-56320+65536).toString(16);u||(B=B.toUpperCase()),i+="\\u{"+B+"}",F++}else{if(!t.escapeEverything){if(d.test(P)){i+=P;continue}if('"'==P){i+=s==P?'\\"':P;continue}if("'"==P){i+=s==P?"\\'":P;continue}}if("\0"!=P||n||f.test(k.charAt(F+1)))if(h.test(P))i+=p[P];else{B=P.charCodeAt(0).toString(16);u||(B=B.toUpperCase());var O=B.length>2||n,N="\\"+(O?"u":"x")+("0000"+B).slice(O?-4:-2);i+=N}else i+="\\0"}}return t.wrap&&(i=s+i+s),t.escapeEtago?i.replace(/<\/(script|style)/gi,"<\\/$1"):i};m.version="1.3.0","function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return m}):i&&!i.nodeType?s?s.exports=m:i.jsesc=m:n.jsesc=m}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],324:[function(e,t,r){var n="object"==typeof r?r:{};n.parse=function(){"use strict";var e,t,r,n,i,s,a={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},o=[" ","\t","\r","\n","\v","\f","Ā ","\ufeff"],u=function(e){return""===e?"EOF":"'"+e+"'"},l=function(n){var s=new SyntaxError;throw s.message=n+" at line "+t+" column "+r+" of the JSON5 data. Still to read: "+JSON.stringify(i.substring(e-1,e+19)),s.at=e,s.lineNumber=t,s.columnNumber=r,s},c=function(s){return s&&s!==n&&l("Expected "+u(s)+" instead of "+u(n)),n=i.charAt(e),e++,r++,("\n"===n||"\r"===n&&"\n"!==p())&&(t++,r=0),n},p=function(){return i.charAt(e)},h=function(){var e=n;for("_"!==n&&"$"!==n&&(n<"a"||n>"z")&&(n<"A"||n>"Z")&&l("Bad identifier as unquoted key");c()&&("_"===n||"$"===n||n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9");)e+=n;return e},f=function(){var e,t="",r="",i=10;if("-"!==n&&"+"!==n||(t=n,c(n)),"I"===n)return("number"!=typeof(e=g())||isNaN(e))&&l("Unexpected word for number"),"-"===t?-e:e;if("N"===n)return e=g(),isNaN(e)||l("expected word to be NaN"),e;switch("0"===n&&(r+=n,c(),"x"===n||"X"===n?(r+=n,c(),i=16):n>="0"&&n<="9"&&l("Octal literal")),i){case 10:for(;n>="0"&&n<="9";)r+=n,c();if("."===n)for(r+=".";c()&&n>="0"&&n<="9";)r+=n;if("e"===n||"E"===n)for(r+=n,c(),"-"!==n&&"+"!==n||(r+=n,c());n>="0"&&n<="9";)r+=n,c();break;case 16:for(;n>="0"&&n<="9"||n>="A"&&n<="F"||n>="a"&&n<="f";)r+=n,c()}if(e="-"===t?-r:+r,isFinite(e))return e;l("Bad number")},d=function(){var e,t,r,i,s="";if('"'===n||"'"===n)for(r=n;c();){if(n===r)return c(),s;if("\\"===n)if(c(),"u"===n){for(i=0,t=0;t<4&&(e=parseInt(c(),16),isFinite(e));t+=1)i=16*i+e;s+=String.fromCharCode(i)}else if("\r"===n)"\n"===p()&&c();else{if("string"!=typeof a[n])break;s+=a[n]}else{if("\n"===n)break;s+=n}}l("Bad string")},m=function(){"/"!==n&&l("Not a comment"),c("/"),"/"===n?function(){"/"!==n&&l("Not an inline comment");do{if(c(),"\n"===n||"\r"===n)return void c()}while(n)}():"*"===n?function(){"*"!==n&&l("Not a block comment");do{for(c();"*"===n;)if(c("*"),"/"===n)return void c("/")}while(n);l("Unterminated block comment")}():l("Unrecognized comment")},y=function(){for(;n;)if("/"===n)m();else{if(!(o.indexOf(n)>=0))return;c()}},g=function(){switch(n){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null;case"I":return c("I"),c("n"),c("f"),c("i"),c("n"),c("i"),c("t"),c("y"),1/0;case"N":return c("N"),c("a"),c("N"),NaN}l("Unexpected "+u(n))};return s=function(){switch(y(),n){case"{":return function(){var e,t={};if("{"===n)for(c("{"),y();n;){if("}"===n)return c("}"),t;if(e='"'===n||"'"===n?d():h(),y(),c(":"),t[e]=s(),y(),","!==n)return c("}"),t;c(","),y()}l("Bad object")}();case"[":return function(){var e=[];if("["===n)for(c("["),y();n;){if("]"===n)return c("]"),e;if(","===n?l("Missing array element"):e.push(s()),y(),","!==n)return c("]"),e;c(","),y()}l("Bad array")}();case'"':case"'":return d();case"-":case"+":case".":return f();default:return n>="0"&&n<="9"?f():g()}},function(a,o){var u;return i=String(a),e=0,t=1,r=1,n=" ",u=s(),y(),n&&l("Syntax error"),"function"==typeof o?function e(t,r){var n,i,s=t[r];if(s&&"object"==typeof s)for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(void 0!==(i=e(s,n))?s[n]=i:delete s[n]);return o.call(t,r,s)}({"":u},""):u}}(),n.stringify=function(e,t,r){function i(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function s(e){if("string"!=typeof e)return!1;if(!function(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}(e[0]))return!1;for(var t=1,r=e.length;t<r;){if(!i(e[t]))return!1;t++}return!0}function a(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function o(e){for(var t=0;t<f.length;t++)if(f[t]===e)throw new TypeError("Converting circular structure to JSON")}function u(e,t,r){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var n=r?"":"\n",i=0;i<t;i++)n+=e;return n}function l(e){return d.lastIndex=0,d.test(e)?'"'+e.replace(d,function(e){var t=m[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function c(e,t,r){var n,i,d=p(e,t,r);switch(d&&!function(e){return"[object Date]"===Object.prototype.toString.call(e)}(d)&&(d=d.valueOf()),typeof d){case"boolean":return d.toString();case"number":return isNaN(d)||!isFinite(d)?"null":d.toString();case"string":return l(d.toString());case"object":if(null===d)return"null";if(a(d)){o(d),n="[",f.push(d);for(var m=0;m<d.length;m++)i=c(d,m,!1),n+=u(h,f.length),n+=null===i||void 0===i?"null":i,m<d.length-1?n+=",":h&&(n+="\n");f.pop(),d.length&&(n+=u(h,f.length,!0)),n+="]"}else{o(d),n="{";var y=!1;f.push(d);for(var g in d)if(d.hasOwnProperty(g)){var b=c(d,g,!1);r=!1,void 0!==b&&null!==b&&(n+=u(h,f.length),y=!0,n+=(t=s(g)?g:l(g))+":"+(h?" ":"")+b+",")}f.pop(),n=y?n.substring(0,n.length-1)+u(h,f.length)+"}":"{}"}return n;default:return}}if(t&&"function"!=typeof t&&!a(t))throw new Error("Replacer must be a function or an array");var p=function(e,r,n){var i=e[r];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,r,i):t?n||a(e)||t.indexOf(r)>=0?i:void 0:i};n.isWord=s;var h,f=[];r&&("string"==typeof r?h=r:"number"==typeof r&&r>=0&&(h=u(" ",r,!0)));var d=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,m={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},y={"":e};return void 0===e?p(y,"",!0):c(y,"",!0)}},{}],325:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"DataView");t.exports=n},{"./_getNative":429,"./_root":473}],326:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_hashClear"),s=e("./_hashDelete"),a=e("./_hashGet"),o=e("./_hashHas"),u=e("./_hashSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_hashClear":437,"./_hashDelete":438,"./_hashGet":439,"./_hashHas":440,"./_hashSet":441}],327:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_listCacheClear"),s=e("./_listCacheDelete"),a=e("./_listCacheGet"),o=e("./_listCacheHas"),u=e("./_listCacheSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_listCacheClear":453,"./_listCacheDelete":454,"./_listCacheGet":455,"./_listCacheHas":456,"./_listCacheSet":457}],328:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Map");t.exports=n},{"./_getNative":429,"./_root":473}],329:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_mapCacheClear"),s=e("./_mapCacheDelete"),a=e("./_mapCacheGet"),o=e("./_mapCacheHas"),u=e("./_mapCacheSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_mapCacheClear":458,"./_mapCacheDelete":459,"./_mapCacheGet":460,"./_mapCacheHas":461,"./_mapCacheSet":462}],330:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Promise");t.exports=n},{"./_getNative":429,"./_root":473}],331:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Set");t.exports=n},{"./_getNative":429,"./_root":473}],332:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=e("./_MapCache"),s=e("./_setCacheAdd"),a=e("./_setCacheHas");n.prototype.add=n.prototype.push=s,n.prototype.has=a,t.exports=n},{"./_MapCache":329,"./_setCacheAdd":474,"./_setCacheHas":475}],333:[function(e,t,r){function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=e("./_ListCache"),s=e("./_stackClear"),a=e("./_stackDelete"),o=e("./_stackGet"),u=e("./_stackHas"),l=e("./_stackSet");n.prototype.clear=s,n.prototype.delete=a,n.prototype.get=o,n.prototype.has=u,n.prototype.set=l,t.exports=n},{"./_ListCache":327,"./_stackClear":479,"./_stackDelete":480,"./_stackGet":481,"./_stackHas":482,"./_stackSet":483}],334:[function(e,t,r){var n=e("./_root").Symbol;t.exports=n},{"./_root":473}],335:[function(e,t,r){var n=e("./_root").Uint8Array;t.exports=n},{"./_root":473}],336:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"WeakMap");t.exports=n},{"./_getNative":429,"./_root":473}],337:[function(e,t,r){t.exports=function(e,t){return e.set(t[0],t[1]),e}},{}],338:[function(e,t,r){t.exports=function(e,t){return e.add(t),e}},{}],339:[function(e,t,r){t.exports=function(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}},{}],340:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}},{}],341:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}},{}],342:[function(e,t,r){var n=e("./_baseIndexOf");t.exports=function(e,t){return!(null==e||!e.length)&&n(e,t,0)>-1}},{"./_baseIndexOf":368}],343:[function(e,t,r){t.exports=function(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}},{}],344:[function(e,t,r){var n=e("./_baseTimes"),i=e("./isArguments"),s=e("./isArray"),a=e("./isBuffer"),o=e("./_isIndex"),u=e("./isTypedArray"),l=Object.prototype.hasOwnProperty;t.exports=function(e,t){var r=s(e),c=!r&&i(e),p=!r&&!c&&a(e),h=!r&&!c&&!p&&u(e),f=r||c||p||h,d=f?n(e.length,String):[],m=d.length;for(var y in e)!t&&!l.call(e,y)||f&&("length"==y||p&&("offset"==y||"parent"==y)||h&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||o(y,m))||d.push(y);return d}},{"./_baseTimes":392,"./_isIndex":446,"./isArguments":508,"./isArray":509,"./isBuffer":512,"./isTypedArray":522}],345:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}},{}],346:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}},{}],347:[function(e,t,r){t.exports=function(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}},{}],348:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}},{}],349:[function(e,t,r){var n=e("./_baseAssignValue"),i=e("./eq");t.exports=function(e,t,r){(void 0===r||i(e[t],r))&&(void 0!==r||t in e)||n(e,t,r)}},{"./_baseAssignValue":354,"./eq":496}],350:[function(e,t,r){var n=e("./_baseAssignValue"),i=e("./eq"),s=Object.prototype.hasOwnProperty;t.exports=function(e,t,r){var a=e[t];s.call(e,t)&&i(a,r)&&(void 0!==r||t in e)||n(e,t,r)}},{"./_baseAssignValue":354,"./eq":496}],351:[function(e,t,r){var n=e("./eq");t.exports=function(e,t){for(var r=e.length;r--;)if(n(e[r][0],t))return r;return-1}},{"./eq":496}],352:[function(e,t,r){var n=e("./_copyObject"),i=e("./keys");t.exports=function(e,t){return e&&n(t,i(t),e)}},{"./_copyObject":410,"./keys":523}],353:[function(e,t,r){var n=e("./_copyObject"),i=e("./keysIn");t.exports=function(e,t){return e&&n(t,i(t),e)}},{"./_copyObject":410,"./keysIn":524}],354:[function(e,t,r){var n=e("./_defineProperty");t.exports=function(e,t,r){"__proto__"==t&&n?n(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}},{"./_defineProperty":420}],355:[function(e,t,r){t.exports=function(e,t,r){return e==e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}},{}],356:[function(e,t,r){function n(e,t,r,P,B,O){var N,j=t&D,I=t&S,L=t&C;if(r&&(N=B?r(e,P,B,O):r(e)),void 0!==N)return N;if(!E(e))return e;var M=v(e);if(M){if(N=y(e),!j)return c(e,N)}else{var R=m(e),V=R==w||R==k;if(x(e))return l(e,j);if(R==F||R==_||V&&!B){if(N=I||V?{}:b(e),!j)return I?h(e,u(N,e)):p(e,o(N,e))}else{if(!T[R])return B?e:{};N=g(e,R,n,j)}}O||(O=new i);var U=O.get(e);if(U)return U;O.set(e,N);var q=L?I?d:f:I?keysIn:A,G=M?void 0:q(e);return s(G||e,function(i,s){G&&(i=e[s=i]),a(N,s,n(i,t,r,s,e,O))}),N}var i=e("./_Stack"),s=e("./_arrayEach"),a=e("./_assignValue"),o=e("./_baseAssign"),u=e("./_baseAssignIn"),l=e("./_cloneBuffer"),c=e("./_copyArray"),p=e("./_copySymbols"),h=e("./_copySymbolsIn"),f=e("./_getAllKeys"),d=e("./_getAllKeysIn"),m=e("./_getTag"),y=e("./_initCloneArray"),g=e("./_initCloneByTag"),b=e("./_initCloneObject"),v=e("./isArray"),x=e("./isBuffer"),E=e("./isObject"),A=e("./keys"),D=1,S=2,C=4,_="[object Arguments]",w="[object Function]",k="[object GeneratorFunction]",F="[object Object]",T={};T[_]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[F]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[w]=T["[object WeakMap]"]=!1,t.exports=n},{"./_Stack":333,"./_arrayEach":340,"./_assignValue":350,"./_baseAssign":352,"./_baseAssignIn":353,"./_cloneBuffer":400,"./_copyArray":409,"./_copySymbols":411,"./_copySymbolsIn":412,"./_getAllKeys":425,"./_getAllKeysIn":426,"./_getTag":434,"./_initCloneArray":442,"./_initCloneByTag":443,"./_initCloneObject":444,"./isArray":509,"./isBuffer":512,"./isObject":516,"./keys":523}],357:[function(e,t,r){var n=e("./isObject"),i=Object.create,s=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();t.exports=s},{"./isObject":516}],358:[function(e,t,r){var n=e("./_baseForOwn"),i=e("./_createBaseEach")(n);t.exports=i},{"./_baseForOwn":362,"./_createBaseEach":415}],359:[function(e,t,r){t.exports=function(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}},{}],360:[function(e,t,r){function n(e,t,r,a,o){var u=-1,l=e.length;for(r||(r=s),o||(o=[]);++u<l;){var c=e[u];t>0&&r(c)?t>1?n(c,t-1,r,a,o):i(o,c):a||(o[o.length]=c)}return o}var i=e("./_arrayPush"),s=e("./_isFlattenable");t.exports=n},{"./_arrayPush":346,"./_isFlattenable":445}],361:[function(e,t,r){var n=e("./_createBaseFor")();t.exports=n},{"./_createBaseFor":416}],362:[function(e,t,r){var n=e("./_baseFor"),i=e("./keys");t.exports=function(e,t){return e&&n(e,t,i)}},{"./_baseFor":361,"./keys":523}],363:[function(e,t,r){var n=e("./_castPath"),i=e("./_toKey");t.exports=function(e,t){for(var r=0,s=(t=n(t,e)).length;null!=e&&r<s;)e=e[i(t[r++])];return r&&r==s?e:void 0}},{"./_castPath":398,"./_toKey":486}],364:[function(e,t,r){var n=e("./_arrayPush"),i=e("./isArray");t.exports=function(e,t,r){var s=t(e);return i(e)?s:n(s,r(e))}},{"./_arrayPush":346,"./isArray":509}],365:[function(e,t,r){var n=e("./_Symbol"),i=e("./_getRawTag"),s=e("./_objectToString"),a="[object Null]",o="[object Undefined]",u=n?n.toStringTag:void 0;t.exports=function(e){return null==e?void 0===e?o:a:u&&u in Object(e)?i(e):s(e)}},{"./_Symbol":334,"./_getRawTag":431,"./_objectToString":470}],366:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(e,t){return null!=e&&n.call(e,t)}},{}],367:[function(e,t,r){t.exports=function(e,t){return null!=e&&t in Object(e)}},{}],368:[function(e,t,r){var n=e("./_baseFindIndex"),i=e("./_baseIsNaN"),s=e("./_strictIndexOf");t.exports=function(e,t,r){return t==t?s(e,t,r):n(e,i,r)}},{"./_baseFindIndex":359,"./_baseIsNaN":373,"./_strictIndexOf":484}],369:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isObjectLike"),s="[object Arguments]";t.exports=function(e){return i(e)&&n(e)==s}},{"./_baseGetTag":365,"./isObjectLike":517}],370:[function(e,t,r){function n(e,t,r,a,o){return e===t||(null==e||null==t||!s(e)&&!s(t)?e!=e&&t!=t:i(e,t,r,a,n,o))}var i=e("./_baseIsEqualDeep"),s=e("./isObjectLike");t.exports=n},{"./_baseIsEqualDeep":371,"./isObjectLike":517}],371:[function(e,t,r){var n=e("./_Stack"),i=e("./_equalArrays"),s=e("./_equalByTag"),a=e("./_equalObjects"),o=e("./_getTag"),u=e("./isArray"),l=e("./isBuffer"),c=e("./isTypedArray"),p=1,h="[object Arguments]",f="[object Array]",d="[object Object]",m=Object.prototype.hasOwnProperty;t.exports=function(e,t,r,y,g,b){var v=u(e),x=u(t),E=v?f:o(e),A=x?f:o(t),D=(E=E==h?d:E)==d,S=(A=A==h?d:A)==d,C=E==A;if(C&&l(e)){if(!l(t))return!1;v=!0,D=!1}if(C&&!D)return b||(b=new n),v||c(e)?i(e,t,r,y,g,b):s(e,t,E,r,y,g,b);if(!(r&p)){var _=D&&m.call(e,"__wrapped__"),w=S&&m.call(t,"__wrapped__");if(_||w){var k=_?e.value():e,F=w?t.value():t;return b||(b=new n),g(k,F,r,y,b)}}return!!C&&(b||(b=new n),a(e,t,r,y,g,b))}},{"./_Stack":333,"./_equalArrays":421,"./_equalByTag":422,"./_equalObjects":423,"./_getTag":434,"./isArray":509,"./isBuffer":512,"./isTypedArray":522}],372:[function(e,t,r){var n=e("./_Stack"),i=e("./_baseIsEqual"),s=1,a=2;t.exports=function(e,t,r,o){var u=r.length,l=u,c=!o;if(null==e)return!l;for(e=Object(e);u--;){var p=r[u];if(c&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<l;){var h=(p=r[u])[0],f=e[h],d=p[1];if(c&&p[2]){if(void 0===f&&!(h in e))return!1}else{var m=new n;if(o)var y=o(f,d,h,e,t,m);if(!(void 0===y?i(d,f,s|a,o,m):y))return!1}}return!0}},{"./_Stack":333,"./_baseIsEqual":370}],373:[function(e,t,r){t.exports=function(e){return e!=e}},{}],374:[function(e,t,r){var n=e("./isFunction"),i=e("./_isMasked"),s=e("./isObject"),a=e("./_toSource"),o=/^\[object .+?Constructor\]$/,u=Function.prototype,l=Object.prototype,c=u.toString,p=l.hasOwnProperty,h=RegExp("^"+c.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=function(e){return!(!s(e)||i(e))&&(n(e)?h:o).test(a(e))}},{"./_isMasked":450,"./_toSource":487,"./isFunction":513,"./isObject":516}],375:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isObjectLike"),s="[object RegExp]";t.exports=function(e){return i(e)&&n(e)==s}},{"./_baseGetTag":365,"./isObjectLike":517}],376:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isLength"),s=e("./isObjectLike"),a={};a["[object Float32Array]"]=a["[object Float64Array]"]=a["[object Int8Array]"]=a["[object Int16Array]"]=a["[object Int32Array]"]=a["[object Uint8Array]"]=a["[object Uint8ClampedArray]"]=a["[object Uint16Array]"]=a["[object Uint32Array]"]=!0,a["[object Arguments]"]=a["[object Array]"]=a["[object ArrayBuffer]"]=a["[object Boolean]"]=a["[object DataView]"]=a["[object Date]"]=a["[object Error]"]=a["[object Function]"]=a["[object Map]"]=a["[object Number]"]=a["[object Object]"]=a["[object RegExp]"]=a["[object Set]"]=a["[object String]"]=a["[object WeakMap]"]=!1,t.exports=function(e){return s(e)&&i(e.length)&&!!a[n(e)]}},{"./_baseGetTag":365,"./isLength":515,"./isObjectLike":517}],377:[function(e,t,r){var n=e("./_baseMatches"),i=e("./_baseMatchesProperty"),s=e("./identity"),a=e("./isArray"),o=e("./property");t.exports=function(e){return"function"==typeof e?e:null==e?s:"object"==typeof e?a(e)?i(e[0],e[1]):n(e):o(e)}},{"./_baseMatches":381,"./_baseMatchesProperty":382,"./identity":506,"./isArray":509,"./property":529}],378:[function(e,t,r){var n=e("./_isPrototype"),i=e("./_nativeKeys"),s=Object.prototype.hasOwnProperty;t.exports=function(e){if(!n(e))return i(e);var t=[];for(var r in Object(e))s.call(e,r)&&"constructor"!=r&&t.push(r);return t}},{"./_isPrototype":451,"./_nativeKeys":467}],379:[function(e,t,r){var n=e("./isObject"),i=e("./_isPrototype"),s=e("./_nativeKeysIn"),a=Object.prototype.hasOwnProperty;t.exports=function(e){if(!n(e))return s(e);var t=i(e),r=[];for(var o in e)("constructor"!=o||!t&&a.call(e,o))&&r.push(o);return r}},{"./_isPrototype":451,"./_nativeKeysIn":468,"./isObject":516}],380:[function(e,t,r){var n=e("./_baseEach"),i=e("./isArrayLike");t.exports=function(e,t){var r=-1,s=i(e)?Array(e.length):[];return n(e,function(e,n,i){s[++r]=t(e,n,i)}),s}},{"./_baseEach":358,"./isArrayLike":510}],381:[function(e,t,r){var n=e("./_baseIsMatch"),i=e("./_getMatchData"),s=e("./_matchesStrictComparable");t.exports=function(e){var t=i(e);return 1==t.length&&t[0][2]?s(t[0][0],t[0][1]):function(r){return r===e||n(r,e,t)}}},{"./_baseIsMatch":372,"./_getMatchData":428,"./_matchesStrictComparable":464}],382:[function(e,t,r){var n=e("./_baseIsEqual"),i=e("./get"),s=e("./hasIn"),a=e("./_isKey"),o=e("./_isStrictComparable"),u=e("./_matchesStrictComparable"),l=e("./_toKey"),c=1,p=2;t.exports=function(e,t){return a(e)&&o(t)?u(l(e),t):function(r){var a=i(r,e);return void 0===a&&a===t?s(r,e):n(t,a,c|p)}}},{"./_baseIsEqual":370,"./_isKey":448,"./_isStrictComparable":452,"./_matchesStrictComparable":464,"./_toKey":486,"./get":503,"./hasIn":505}],383:[function(e,t,r){function n(e,t,r,c,p){e!==t&&a(t,function(a,l){if(u(a))p||(p=new i),o(e,t,l,r,n,c,p);else{var h=c?c(e[l],a,l+"",e,t,p):void 0;void 0===h&&(h=a),s(e,l,h)}},l)}var i=e("./_Stack"),s=e("./_assignMergeValue"),a=e("./_baseFor"),o=e("./_baseMergeDeep"),u=e("./isObject"),l=e("./keysIn");t.exports=n},{"./_Stack":333,"./_assignMergeValue":349,"./_baseFor":361,"./_baseMergeDeep":384,"./isObject":516,"./keysIn":524}],384:[function(e,t,r){var n=e("./_assignMergeValue"),i=e("./_cloneBuffer"),s=e("./_cloneTypedArray"),a=e("./_copyArray"),o=e("./_initCloneObject"),u=e("./isArguments"),l=e("./isArray"),c=e("./isArrayLikeObject"),p=e("./isBuffer"),h=e("./isFunction"),f=e("./isObject"),d=e("./isPlainObject"),m=e("./isTypedArray"),y=e("./toPlainObject");t.exports=function(e,t,r,g,b,v,x){var E=e[r],A=t[r],D=x.get(A);if(D)n(e,r,D);else{var S=v?v(E,A,r+"",e,t,x):void 0,C=void 0===S;if(C){var _=l(A),w=!_&&p(A),k=!_&&!w&&m(A);S=A,_||w||k?l(E)?S=E:c(E)?S=a(E):w?(C=!1,S=i(A,!0)):k?(C=!1,S=s(A,!0)):S=[]:d(A)||u(A)?(S=E,u(E)?S=y(E):(!f(E)||g&&h(E))&&(S=o(A))):C=!1}C&&(x.set(A,S),b(S,A,g,v,x),x.delete(A)),n(e,r,S)}}},{"./_assignMergeValue":349,"./_cloneBuffer":400,"./_cloneTypedArray":406,"./_copyArray":409,"./_initCloneObject":444,"./isArguments":508,"./isArray":509,"./isArrayLikeObject":511,"./isBuffer":512,"./isFunction":513,"./isObject":516,"./isPlainObject":518,"./isTypedArray":522,"./toPlainObject":538}],385:[function(e,t,r){var n=e("./_arrayMap"),i=e("./_baseIteratee"),s=e("./_baseMap"),a=e("./_baseSortBy"),o=e("./_baseUnary"),u=e("./_compareMultiple"),l=e("./identity");t.exports=function(e,t,r){var c=-1;t=n(t.length?t:[l],o(i));var p=s(e,function(e,r,i){return{criteria:n(t,function(t){return t(e)}),index:++c,value:e}});return a(p,function(e,t){return u(e,t,r)})}},{"./_arrayMap":345,"./_baseIteratee":377,"./_baseMap":380,"./_baseSortBy":391,"./_baseUnary":394,"./_compareMultiple":408,"./identity":506}],386:[function(e,t,r){t.exports=function(e){return function(t){return null==t?void 0:t[e]}}},{}],387:[function(e,t,r){var n=e("./_baseGet");t.exports=function(e){return function(t){return n(t,e)}}},{"./_baseGet":363}],388:[function(e,t,r){var n=9007199254740991,i=Math.floor;t.exports=function(e,t){var r="";if(!e||t<1||t>n)return r;do{t%2&&(r+=e),(t=i(t/2))&&(e+=e)}while(t);return r}},{}],389:[function(e,t,r){var n=e("./identity"),i=e("./_overRest"),s=e("./_setToString");t.exports=function(e,t){return s(i(e,t,n),e+"")}},{"./_overRest":472,"./_setToString":477,"./identity":506}],390:[function(e,t,r){var n=e("./constant"),i=e("./_defineProperty"),s=e("./identity"),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:s;t.exports=a},{"./_defineProperty":420,"./constant":494,"./identity":506}],391:[function(e,t,r){t.exports=function(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}},{}],392:[function(e,t,r){t.exports=function(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}},{}],393:[function(e,t,r){function n(e){if("string"==typeof e)return e;if(a(e))return s(e,n)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=e("./_Symbol"),s=e("./_arrayMap"),a=e("./isArray"),o=e("./isSymbol"),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;t.exports=n},{"./_Symbol":334,"./_arrayMap":345,"./isArray":509,"./isSymbol":521}],394:[function(e,t,r){t.exports=function(e){return function(t){return e(t)}}},{}],395:[function(e,t,r){var n=e("./_SetCache"),i=e("./_arrayIncludes"),s=e("./_arrayIncludesWith"),a=e("./_cacheHas"),o=e("./_createSet"),u=e("./_setToArray"),l=200;t.exports=function(e,t,r){var c=-1,p=i,h=e.length,f=!0,d=[],m=d;if(r)f=!1,p=s;else if(h>=l){var y=t?null:o(e);if(y)return u(y);f=!1,p=a,m=new n}else m=t?[]:d;e:for(;++c<h;){var g=e[c],b=t?t(g):g;if(g=r||0!==g?g:0,f&&b==b){for(var v=m.length;v--;)if(m[v]===b)continue e;t&&m.push(b),d.push(g)}else p(m,b,r)||(m!==d&&m.push(b),d.push(g))}return d}},{"./_SetCache":332,"./_arrayIncludes":342,"./_arrayIncludesWith":343,"./_cacheHas":397,"./_createSet":418,"./_setToArray":476}],396:[function(e,t,r){var n=e("./_arrayMap");t.exports=function(e,t){return n(t,function(t){return e[t]})}},{"./_arrayMap":345}],397:[function(e,t,r){t.exports=function(e,t){return e.has(t)}},{}],398:[function(e,t,r){var n=e("./isArray"),i=e("./_isKey"),s=e("./_stringToPath"),a=e("./toString");t.exports=function(e,t){return n(e)?e:i(e,t)?[e]:s(a(e))}},{"./_isKey":448,"./_stringToPath":485,"./isArray":509,"./toString":539}],399:[function(e,t,r){var n=e("./_Uint8Array");t.exports=function(e){var t=new e.constructor(e.byteLength);return new n(t).set(new n(e)),t}},{"./_Uint8Array":335}],400:[function(e,t,r){var n=e("./_root"),i="object"==typeof r&&r&&!r.nodeType&&r,s=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=s&&s.exports===i?n.Buffer:void 0,o=a?a.allocUnsafe:void 0;t.exports=function(e,t){if(t)return e.slice();var r=e.length,n=o?o(r):new e.constructor(r);return e.copy(n),n}},{"./_root":473}],401:[function(e,t,r){var n=e("./_cloneArrayBuffer");t.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}},{"./_cloneArrayBuffer":399}],402:[function(e,t,r){var n=e("./_addMapEntry"),i=e("./_arrayReduce"),s=e("./_mapToArray"),a=1;t.exports=function(e,t,r){var o=t?r(s(e),a):s(e);return i(o,n,new e.constructor)}},{"./_addMapEntry":337,"./_arrayReduce":347,"./_mapToArray":463}],403:[function(e,t,r){var n=/\w*$/;t.exports=function(e){var t=new e.constructor(e.source,n.exec(e));return t.lastIndex=e.lastIndex,t}},{}],404:[function(e,t,r){var n=e("./_addSetEntry"),i=e("./_arrayReduce"),s=e("./_setToArray"),a=1;t.exports=function(e,t,r){var o=t?r(s(e),a):s(e);return i(o,n,new e.constructor)}},{"./_addSetEntry":338,"./_arrayReduce":347,"./_setToArray":476}],405:[function(e,t,r){var n=e("./_Symbol"),i=n?n.prototype:void 0,s=i?i.valueOf:void 0;t.exports=function(e){return s?Object(s.call(e)):{}}},{"./_Symbol":334}],406:[function(e,t,r){var n=e("./_cloneArrayBuffer");t.exports=function(e,t){var r=t?n(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}},{"./_cloneArrayBuffer":399}],407:[function(e,t,r){var n=e("./isSymbol");t.exports=function(e,t){if(e!==t){var r=void 0!==e,i=null===e,s=e==e,a=n(e),o=void 0!==t,u=null===t,l=t==t,c=n(t);if(!u&&!c&&!a&&e>t||a&&o&&l&&!u&&!c||i&&o&&l||!r&&l||!s)return 1;if(!i&&!a&&!c&&e<t||c&&r&&s&&!i&&!a||u&&r&&s||!o&&s||!l)return-1}return 0}},{"./isSymbol":521}],408:[function(e,t,r){var n=e("./_compareAscending");t.exports=function(e,t,r){for(var i=-1,s=e.criteria,a=t.criteria,o=s.length,u=r.length;++i<o;){var l=n(s[i],a[i]);if(l)return i>=u?l:l*("desc"==r[i]?-1:1)}return e.index-t.index}},{"./_compareAscending":407}],409:[function(e,t,r){t.exports=function(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}},{}],410:[function(e,t,r){var n=e("./_assignValue"),i=e("./_baseAssignValue");t.exports=function(e,t,r,s){var a=!r;r||(r={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=s?s(r[l],e[l],l,r,e):void 0;void 0===c&&(c=e[l]),a?i(r,l,c):n(r,l,c)}return r}},{"./_assignValue":350,"./_baseAssignValue":354}],411:[function(e,t,r){var n=e("./_copyObject"),i=e("./_getSymbols");t.exports=function(e,t){return n(e,i(e),t)}},{"./_copyObject":410,"./_getSymbols":432}],412:[function(e,t,r){var n=e("./_copyObject"),i=e("./_getSymbolsIn");t.exports=function(e,t){return n(e,i(e),t)}},{"./_copyObject":410,"./_getSymbolsIn":433}],413:[function(e,t,r){var n=e("./_root")["__core-js_shared__"];t.exports=n},{"./_root":473}],414:[function(e,t,r){var n=e("./_baseRest"),i=e("./_isIterateeCall");t.exports=function(e){return n(function(t,r){var n=-1,s=r.length,a=s>1?r[s-1]:void 0,o=s>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(s--,a):void 0,o&&i(r[0],r[1],o)&&(a=s<3?void 0:a,s=1),t=Object(t);++n<s;){var u=r[n];u&&e(t,u,n,a)}return t})}},{"./_baseRest":389,"./_isIterateeCall":447}],415:[function(e,t,r){var n=e("./isArrayLike");t.exports=function(e,t){return function(r,i){if(null==r)return r;if(!n(r))return e(r,i);for(var s=r.length,a=t?s:-1,o=Object(r);(t?a--:++a<s)&&!1!==i(o[a],a,o););return r}}},{"./isArrayLike":510}],416:[function(e,t,r){t.exports=function(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[e?o:++i];if(!1===r(s[u],u,s))break}return t}}},{}],417:[function(e,t,r){var n=e("./_baseIteratee"),i=e("./isArrayLike"),s=e("./keys");t.exports=function(e){return function(t,r,a){var o=Object(t);if(!i(t)){var u=n(r,3);t=s(t),r=function(e){return u(o[e],e,o)}}var l=e(t,r,a);return l>-1?o[u?t[l]:l]:void 0}}},{"./_baseIteratee":377,"./isArrayLike":510,"./keys":523}],418:[function(e,t,r){var n=e("./_Set"),i=e("./noop"),s=e("./_setToArray"),a=n&&1/s(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;t.exports=a},{"./_Set":331,"./_setToArray":476,"./noop":528}],419:[function(e,t,r){var n=e("./eq"),i=Object.prototype,s=i.hasOwnProperty;t.exports=function(e,t,r,a){return void 0===e||n(e,i[r])&&!s.call(a,r)?t:e}},{"./eq":496}],420:[function(e,t,r){var n=e("./_getNative"),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();t.exports=i},{"./_getNative":429}],421:[function(e,t,r){var n=e("./_SetCache"),i=e("./_arraySome"),s=e("./_cacheHas"),a=1,o=2;t.exports=function(e,t,r,u,l,c){var p=r&a,h=e.length,f=t.length;if(h!=f&&!(p&&f>h))return!1;var d=c.get(e);if(d&&c.get(t))return d==t;var m=-1,y=!0,g=r&o?new n:void 0;for(c.set(e,t),c.set(t,e);++m<h;){var b=e[m],v=t[m];if(u)var x=p?u(v,b,m,t,e,c):u(b,v,m,e,t,c);if(void 0!==x){if(x)continue;y=!1;break}if(g){if(!i(t,function(e,t){if(!s(g,t)&&(b===e||l(b,e,r,u,c)))return g.push(t)})){y=!1;break}}else if(b!==v&&!l(b,v,r,u,c)){y=!1;break}}return c.delete(e),c.delete(t),y}},{"./_SetCache":332,"./_arraySome":348,"./_cacheHas":397}],422:[function(e,t,r){var n=e("./_Symbol"),i=e("./_Uint8Array"),s=e("./eq"),a=e("./_equalArrays"),o=e("./_mapToArray"),u=e("./_setToArray"),l=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",d="[object Map]",m="[object Number]",y="[object RegExp]",g="[object Set]",b="[object String]",v="[object Symbol]",x="[object ArrayBuffer]",E="[object DataView]",A=n?n.prototype:void 0,D=A?A.valueOf:void 0;t.exports=function(e,t,r,n,A,S,C){switch(r){case E:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case x:return!(e.byteLength!=t.byteLength||!S(new i(e),new i(t)));case p:case h:case m:return s(+e,+t);case f:return e.name==t.name&&e.message==t.message;case y:case b:return e==t+"";case d:var _=o;case g:var w=n&l;if(_||(_=u),e.size!=t.size&&!w)return!1;var k=C.get(e);if(k)return k==t;n|=c,C.set(e,t);var F=a(_(e),_(t),n,A,S,C);return C.delete(e),F;case v:if(D)return D.call(e)==D.call(t)}return!1}},{"./_Symbol":334,"./_Uint8Array":335,"./_equalArrays":421,"./_mapToArray":463,"./_setToArray":476,"./eq":496}],423:[function(e,t,r){var n=e("./_getAllKeys"),i=1,s=Object.prototype.hasOwnProperty;t.exports=function(e,t,r,a,o,u){var l=r&i,c=n(e),p=c.length;if(p!=n(t).length&&!l)return!1;for(var h=p;h--;){var f=c[h];if(!(l?f in t:s.call(t,f)))return!1}var d=u.get(e);if(d&&u.get(t))return d==t;var m=!0;u.set(e,t),u.set(t,e);for(var y=l;++h<p;){var g=e[f=c[h]],b=t[f];if(a)var v=l?a(b,g,f,t,e,u):a(g,b,f,e,t,u);if(!(void 0===v?g===b||o(g,b,r,a,u):v)){m=!1;break}y||(y="constructor"==f)}if(m&&!y){var x=e.constructor,E=t.constructor;x!=E&&"constructor"in e&&"constructor"in t&&!("function"==typeof x&&x instanceof x&&"function"==typeof E&&E instanceof E)&&(m=!1)}return u.delete(e),u.delete(t),m}},{"./_getAllKeys":425}],424:[function(e,t,r){(function(e){var r="object"==typeof e&&e&&e.Object===Object&&e;t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],425:[function(e,t,r){var n=e("./_baseGetAllKeys"),i=e("./_getSymbols"),s=e("./keys");t.exports=function(e){return n(e,s,i)}},{"./_baseGetAllKeys":364,"./_getSymbols":432,"./keys":523}],426:[function(e,t,r){var n=e("./_baseGetAllKeys"),i=e("./_getSymbolsIn"),s=e("./keysIn");t.exports=function(e){return n(e,s,i)}},{"./_baseGetAllKeys":364,"./_getSymbolsIn":433,"./keysIn":524}],427:[function(e,t,r){var n=e("./_isKeyable");t.exports=function(e,t){var r=e.__data__;return n(t)?r["string"==typeof t?"string":"hash"]:r.map}},{"./_isKeyable":449}],428:[function(e,t,r){var n=e("./_isStrictComparable"),i=e("./keys");t.exports=function(e){for(var t=i(e),r=t.length;r--;){var s=t[r],a=e[s];t[r]=[s,a,n(a)]}return t}},{"./_isStrictComparable":452,"./keys":523}],429:[function(e,t,r){var n=e("./_baseIsNative"),i=e("./_getValue");t.exports=function(e,t){var r=i(e,t);return n(r)?r:void 0}},{"./_baseIsNative":374,"./_getValue":435}],430:[function(e,t,r){var n=e("./_overArg")(Object.getPrototypeOf,Object);t.exports=n},{"./_overArg":471}],431:[function(e,t,r){var n=e("./_Symbol"),i=Object.prototype,s=i.hasOwnProperty,a=i.toString,o=n?n.toStringTag:void 0;t.exports=function(e){var t=s.call(e,o),r=e[o];try{e[o]=void 0;var n=!0}catch(e){}var i=a.call(e);return n&&(t?e[o]=r:delete e[o]),i}},{"./_Symbol":334}],432:[function(e,t,r){var n=e("./_arrayFilter"),i=e("./stubArray"),s=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,o=a?function(e){return null==e?[]:(e=Object(e),n(a(e),function(t){return s.call(e,t)}))}:i;t.exports=o},{"./_arrayFilter":341,"./stubArray":533}],433:[function(e,t,r){var n=e("./_arrayPush"),i=e("./_getPrototype"),s=e("./_getSymbols"),a=e("./stubArray"),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,s(e)),e=i(e);return t}:a;t.exports=o},{"./_arrayPush":346,"./_getPrototype":430,"./_getSymbols":432,"./stubArray":533}],434:[function(e,t,r){var n=e("./_DataView"),i=e("./_Map"),s=e("./_Promise"),a=e("./_Set"),o=e("./_WeakMap"),u=e("./_baseGetTag"),l=e("./_toSource"),c=l(n),p=l(i),h=l(s),f=l(a),d=l(o),m=u;(n&&"[object DataView]"!=m(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=m(new i)||s&&"[object Promise]"!=m(s.resolve())||a&&"[object Set]"!=m(new a)||o&&"[object WeakMap]"!=m(new o))&&(m=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?l(r):"";if(n)switch(n){case c:return"[object DataView]";case p:return"[object Map]";case h:return"[object Promise]";case f:return"[object Set]";case d:return"[object WeakMap]"}return t}),t.exports=m},{"./_DataView":325,"./_Map":328,"./_Promise":330,"./_Set":331,"./_WeakMap":336,"./_baseGetTag":365,"./_toSource":487}],435:[function(e,t,r){t.exports=function(e,t){return null==e?void 0:e[t]}},{}],436:[function(e,t,r){var n=e("./_castPath"),i=e("./isArguments"),s=e("./isArray"),a=e("./_isIndex"),o=e("./isLength"),u=e("./_toKey");t.exports=function(e,t,r){for(var l=-1,c=(t=n(t,e)).length,p=!1;++l<c;){var h=u(t[l]);if(!(p=null!=e&&r(e,h)))break;e=e[h]}return p||++l!=c?p:!!(c=null==e?0:e.length)&&o(c)&&a(h,c)&&(s(e)||i(e))}},{"./_castPath":398,"./_isIndex":446,"./_toKey":486,"./isArguments":508,"./isArray":509,"./isLength":515}],437:[function(e,t,r){var n=e("./_nativeCreate");t.exports=function(){this.__data__=n?n(null):{},this.size=0}},{"./_nativeCreate":466}],438:[function(e,t,r){t.exports=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}},{}],439:[function(e,t,r){var n=e("./_nativeCreate"),i="__lodash_hash_undefined__",s=Object.prototype.hasOwnProperty;t.exports=function(e){var t=this.__data__;if(n){var r=t[e];return r===i?void 0:r}return s.call(t,e)?t[e]:void 0}},{"./_nativeCreate":466}],440:[function(e,t,r){var n=e("./_nativeCreate"),i=Object.prototype.hasOwnProperty;t.exports=function(e){var t=this.__data__;return n?void 0!==t[e]:i.call(t,e)}},{"./_nativeCreate":466}],441:[function(e,t,r){var n=e("./_nativeCreate"),i="__lodash_hash_undefined__";t.exports=function(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=n&&void 0===t?i:t,this}},{"./_nativeCreate":466}],442:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(e){var t=e.length,r=e.constructor(t);return t&&"string"==typeof e[0]&&n.call(e,"index")&&(r.index=e.index,r.input=e.input),r}},{}],443:[function(e,t,r){var n=e("./_cloneArrayBuffer"),i=e("./_cloneDataView"),s=e("./_cloneMap"),a=e("./_cloneRegExp"),o=e("./_cloneSet"),u=e("./_cloneSymbol"),l=e("./_cloneTypedArray"),c="[object Boolean]",p="[object Date]",h="[object Map]",f="[object Number]",d="[object RegExp]",m="[object Set]",y="[object String]",g="[object Symbol]",b="[object ArrayBuffer]",v="[object DataView]",x="[object Float32Array]",E="[object Float64Array]",A="[object Int8Array]",D="[object Int16Array]",S="[object Int32Array]",C="[object Uint8Array]",_="[object Uint8ClampedArray]",w="[object Uint16Array]",k="[object Uint32Array]";t.exports=function(e,t,r,F){var T=e.constructor;switch(t){case b:return n(e);case c:case p:return new T(+e);case v:return i(e,F);case x:case E:case A:case D:case S:case C:case _:case w:case k:return l(e,F);case h:return s(e,F,r);case f:case y:return new T(e);case d:return a(e);case m:return o(e,F,r);case g:return u(e)}}},{"./_cloneArrayBuffer":399,"./_cloneDataView":401,"./_cloneMap":402,"./_cloneRegExp":403,"./_cloneSet":404,"./_cloneSymbol":405,"./_cloneTypedArray":406}],444:[function(e,t,r){var n=e("./_baseCreate"),i=e("./_getPrototype"),s=e("./_isPrototype");t.exports=function(e){return"function"!=typeof e.constructor||s(e)?{}:n(i(e))}},{"./_baseCreate":357,"./_getPrototype":430,"./_isPrototype":451}],445:[function(e,t,r){var n=e("./_Symbol"),i=e("./isArguments"),s=e("./isArray"),a=n?n.isConcatSpreadable:void 0;t.exports=function(e){return s(e)||i(e)||!!(a&&e&&e[a])}},{"./_Symbol":334,"./isArguments":508,"./isArray":509}],446:[function(e,t,r){var n=9007199254740991,i=/^(?:0|[1-9]\d*)$/;t.exports=function(e,t){return!!(t=null==t?n:t)&&("number"==typeof e||i.test(e))&&e>-1&&e%1==0&&e<t}},{}],447:[function(e,t,r){var n=e("./eq"),i=e("./isArrayLike"),s=e("./_isIndex"),a=e("./isObject");t.exports=function(e,t,r){if(!a(r))return!1;var o=typeof t;return!!("number"==o?i(r)&&s(t,r.length):"string"==o&&t in r)&&n(r[t],e)}},{"./_isIndex":446,"./eq":496,"./isArrayLike":510,"./isObject":516}],448:[function(e,t,r){var n=e("./isArray"),i=e("./isSymbol"),s=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,a=/^\w*$/;t.exports=function(e,t){if(n(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!i(e))||a.test(e)||!s.test(e)||null!=t&&e in Object(t)}},{"./isArray":509,"./isSymbol":521}],449:[function(e,t,r){t.exports=function(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}},{}],450:[function(e,t,r){var n=e("./_coreJsData"),i=function(){var e=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();t.exports=function(e){return!!i&&i in e}},{"./_coreJsData":413}],451:[function(e,t,r){var n=Object.prototype;t.exports=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||n)}},{}],452:[function(e,t,r){var n=e("./isObject");t.exports=function(e){return e==e&&!n(e)}},{"./isObject":516}],453:[function(e,t,r){t.exports=function(){this.__data__=[],this.size=0}},{}],454:[function(e,t,r){var n=e("./_assocIndexOf"),i=Array.prototype.splice;t.exports=function(e){var t=this.__data__,r=n(t,e);return!(r<0||(r==t.length-1?t.pop():i.call(t,r,1),--this.size,0))}},{"./_assocIndexOf":351}],455:[function(e,t,r){var n=e("./_assocIndexOf");t.exports=function(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}},{"./_assocIndexOf":351}],456:[function(e,t,r){var n=e("./_assocIndexOf");t.exports=function(e){return n(this.__data__,e)>-1}},{"./_assocIndexOf":351}],457:[function(e,t,r){var n=e("./_assocIndexOf");t.exports=function(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}},{"./_assocIndexOf":351}],458:[function(e,t,r){var n=e("./_Hash"),i=e("./_ListCache"),s=e("./_Map");t.exports=function(){this.size=0,this.__data__={hash:new n,map:new(s||i),string:new n}}},{"./_Hash":326,"./_ListCache":327,"./_Map":328}],459:[function(e,t,r){var n=e("./_getMapData");t.exports=function(e){var t=n(this,e).delete(e);return this.size-=t?1:0,t}},{"./_getMapData":427}],460:[function(e,t,r){var n=e("./_getMapData");t.exports=function(e){return n(this,e).get(e)}},{"./_getMapData":427}],461:[function(e,t,r){var n=e("./_getMapData");t.exports=function(e){return n(this,e).has(e)}},{"./_getMapData":427}],462:[function(e,t,r){var n=e("./_getMapData");t.exports=function(e,t){var r=n(this,e),i=r.size;return r.set(e,t),this.size+=r.size==i?0:1,this}},{"./_getMapData":427}],463:[function(e,t,r){t.exports=function(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}},{}],464:[function(e,t,r){t.exports=function(e,t){return function(r){return null!=r&&r[e]===t&&(void 0!==t||e in Object(r))}}},{}],465:[function(e,t,r){var n=e("./memoize"),i=500;t.exports=function(e){var t=n(e,function(e){return r.size===i&&r.clear(),e}),r=t.cache;return t}},{"./memoize":526}],466:[function(e,t,r){var n=e("./_getNative")(Object,"create");t.exports=n},{"./_getNative":429}],467:[function(e,t,r){var n=e("./_overArg")(Object.keys,Object);t.exports=n},{"./_overArg":471}],468:[function(e,t,r){t.exports=function(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}},{}],469:[function(e,t,r){var n=e("./_freeGlobal"),i="object"==typeof r&&r&&!r.nodeType&&r,s=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=s&&s.exports===i&&n.process,o=function(){try{return a&&a.binding&&a.binding("util")}catch(e){}}();t.exports=o},{"./_freeGlobal":424}],470:[function(e,t,r){var n=Object.prototype.toString;t.exports=function(e){return n.call(e)}},{}],471:[function(e,t,r){t.exports=function(e,t){return function(r){return e(t(r))}}},{}],472:[function(e,t,r){var n=e("./_apply"),i=Math.max;t.exports=function(e,t,r){return t=i(void 0===t?e.length-1:t,0),function(){for(var s=arguments,a=-1,o=i(s.length-t,0),u=Array(o);++a<o;)u[a]=s[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=s[a];return l[t]=r(u),n(e,this,l)}}},{"./_apply":339}],473:[function(e,t,r){var n=e("./_freeGlobal"),i="object"==typeof self&&self&&self.Object===Object&&self,s=n||i||Function("return this")();t.exports=s},{"./_freeGlobal":424}],474:[function(e,t,r){var n="__lodash_hash_undefined__";t.exports=function(e){return this.__data__.set(e,n),this}},{}],475:[function(e,t,r){t.exports=function(e){return this.__data__.has(e)}},{}],476:[function(e,t,r){t.exports=function(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}},{}],477:[function(e,t,r){var n=e("./_baseSetToString"),i=e("./_shortOut")(n);t.exports=i},{"./_baseSetToString":390,"./_shortOut":478}],478:[function(e,t,r){var n=800,i=16,s=Date.now;t.exports=function(e){var t=0,r=0;return function(){var a=s(),o=i-(a-r);if(r=a,o>0){if(++t>=n)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},{}],479:[function(e,t,r){var n=e("./_ListCache");t.exports=function(){this.__data__=new n,this.size=0}},{"./_ListCache":327}],480:[function(e,t,r){t.exports=function(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}},{}],481:[function(e,t,r){t.exports=function(e){return this.__data__.get(e)}},{}],482:[function(e,t,r){t.exports=function(e){return this.__data__.has(e)}},{}],483:[function(e,t,r){var n=e("./_ListCache"),i=e("./_Map"),s=e("./_MapCache"),a=200;t.exports=function(e,t){var r=this.__data__;if(r instanceof n){var o=r.__data__;if(!i||o.length<a-1)return o.push([e,t]),this.size=++r.size,this;r=this.__data__=new s(o)}return r.set(e,t),this.size=r.size,this}},{"./_ListCache":327,"./_Map":328,"./_MapCache":329}],484:[function(e,t,r){t.exports=function(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}},{}],485:[function(e,t,r){var n=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,a=e("./_memoizeCapped")(function(e){var t=[];return n.test(e)&&t.push(""),e.replace(i,function(e,r,n,i){t.push(n?i.replace(s,"$1"):r||e)}),t});t.exports=a},{"./_memoizeCapped":465}],486:[function(e,t,r){var n=e("./isSymbol"),i=1/0;t.exports=function(e){if("string"==typeof e||n(e))return e;var t=e+"";return"0"==t&&1/e==-i?"-0":t}},{"./isSymbol":521}],487:[function(e,t,r){var n=Function.prototype.toString;t.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},{}],488:[function(e,t,r){var n=e("./_assignValue"),i=e("./_copyObject"),s=e("./_createAssigner"),a=e("./isArrayLike"),o=e("./_isPrototype"),u=e("./keys"),l=Object.prototype.hasOwnProperty,c=s(function(e,t){if(o(t)||a(t))i(t,u(t),e);else for(var r in t)l.call(t,r)&&n(e,r,t[r])});t.exports=c},{"./_assignValue":350,"./_copyObject":410,"./_createAssigner":414,"./_isPrototype":451,"./isArrayLike":510,"./keys":523}],489:[function(e,t,r){var n=e("./_copyObject"),i=e("./_createAssigner"),s=e("./keysIn"),a=i(function(e,t){n(t,s(t),e)});t.exports=a},{"./_copyObject":410,"./_createAssigner":414,"./keysIn":524}],490:[function(e,t,r){var n=e("./_copyObject"),i=e("./_createAssigner"),s=e("./keysIn"),a=i(function(e,t,r,i){n(t,s(t),e,i)});t.exports=a},{"./_copyObject":410,"./_createAssigner":414,"./keysIn":524}],491:[function(e,t,r){var n=e("./_baseClone"),i=4;t.exports=function(e){return n(e,i)}},{"./_baseClone":356}],492:[function(e,t,r){var n=e("./_baseClone"),i=1,s=4;t.exports=function(e){return n(e,i|s)}},{"./_baseClone":356}],493:[function(e,t,r){var n=e("./_baseClone"),i=1,s=4;t.exports=function(e,t){return t="function"==typeof t?t:void 0,n(e,i|s,t)}},{"./_baseClone":356}],494:[function(e,t,r){t.exports=function(e){return function(){return e}}},{}],495:[function(e,t,r){var n=e("./_apply"),i=e("./assignInWith"),s=e("./_baseRest"),a=e("./_customDefaultsAssignIn"),o=s(function(e){return e.push(void 0,a),n(i,void 0,e)});t.exports=o},{"./_apply":339,"./_baseRest":389,"./_customDefaultsAssignIn":419,"./assignInWith":490}],496:[function(e,t,r){t.exports=function(e,t){return e===t||e!=e&&t!=t}},{}],497:[function(e,t,r){var n=e("./toString"),i=/[\\^$.*+?()[\]{}|]/g,s=RegExp(i.source);t.exports=function(e){return(e=n(e))&&s.test(e)?e.replace(i,"\\$&"):e}},{"./toString":539}],498:[function(e,t,r){t.exports=e("./assignIn")},{"./assignIn":489}],499:[function(e,t,r){var n=e("./_createFind")(e("./findIndex"));t.exports=n},{"./_createFind":417,"./findIndex":500}],500:[function(e,t,r){var n=e("./_baseFindIndex"),i=e("./_baseIteratee"),s=e("./toInteger"),a=Math.max;t.exports=function(e,t,r){var o=null==e?0:e.length;if(!o)return-1;var u=null==r?0:s(r);return u<0&&(u=a(o+u,0)),n(e,i(t,3),u)}},{"./_baseFindIndex":359,"./_baseIteratee":377,"./toInteger":536}],501:[function(e,t,r){var n=e("./_createFind")(e("./findLastIndex"));t.exports=n},{"./_createFind":417,"./findLastIndex":502}],502:[function(e,t,r){var n=e("./_baseFindIndex"),i=e("./_baseIteratee"),s=e("./toInteger"),a=Math.max,o=Math.min;t.exports=function(e,t,r){var u=null==e?0:e.length;if(!u)return-1;var l=u-1;return void 0!==r&&(l=s(r),l=r<0?a(u+l,0):o(l,u-1)),n(e,i(t,3),l,!0)}},{"./_baseFindIndex":359,"./_baseIteratee":377,"./toInteger":536}],503:[function(e,t,r){var n=e("./_baseGet");t.exports=function(e,t,r){var i=null==e?void 0:n(e,t);return void 0===i?r:i}},{"./_baseGet":363}],504:[function(e,t,r){var n=e("./_baseHas"),i=e("./_hasPath");t.exports=function(e,t){return null!=e&&i(e,t,n)}},{"./_baseHas":366,"./_hasPath":436}],505:[function(e,t,r){var n=e("./_baseHasIn"),i=e("./_hasPath");t.exports=function(e,t){return null!=e&&i(e,t,n)}},{"./_baseHasIn":367,"./_hasPath":436}],506:[function(e,t,r){t.exports=function(e){return e}},{}],507:[function(e,t,r){var n=e("./_baseIndexOf"),i=e("./isArrayLike"),s=e("./isString"),a=e("./toInteger"),o=e("./values"),u=Math.max;t.exports=function(e,t,r,l){e=i(e)?e:o(e),r=r&&!l?a(r):0;var c=e.length;return r<0&&(r=u(c+r,0)),s(e)?r<=c&&e.indexOf(t,r)>-1:!!c&&n(e,t,r)>-1}},{"./_baseIndexOf":368,"./isArrayLike":510,"./isString":520,"./toInteger":536,"./values":541}],508:[function(e,t,r){var n=e("./_baseIsArguments"),i=e("./isObjectLike"),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!o.call(e,"callee")};t.exports=u},{"./_baseIsArguments":369,"./isObjectLike":517}],509:[function(e,t,r){var n=Array.isArray;t.exports=n},{}],510:[function(e,t,r){var n=e("./isFunction"),i=e("./isLength");t.exports=function(e){return null!=e&&i(e.length)&&!n(e)}},{"./isFunction":513,"./isLength":515}],511:[function(e,t,r){var n=e("./isArrayLike"),i=e("./isObjectLike");t.exports=function(e){return i(e)&&n(e)}},{"./isArrayLike":510,"./isObjectLike":517}],512:[function(e,t,r){var n=e("./_root"),i=e("./stubFalse"),s="object"==typeof r&&r&&!r.nodeType&&r,a=s&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===s?n.Buffer:void 0,u=(o?o.isBuffer:void 0)||i;t.exports=u},{"./_root":473,"./stubFalse":534}],513:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isObject"),s="[object AsyncFunction]",a="[object Function]",o="[object GeneratorFunction]",u="[object Proxy]";t.exports=function(e){if(!i(e))return!1;var t=n(e);return t==a||t==o||t==s||t==u}},{"./_baseGetTag":365,"./isObject":516}],514:[function(e,t,r){var n=e("./toInteger");t.exports=function(e){return"number"==typeof e&&e==n(e)}},{"./toInteger":536}],515:[function(e,t,r){var n=9007199254740991;t.exports=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}},{}],516:[function(e,t,r){t.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},{}],517:[function(e,t,r){t.exports=function(e){return null!=e&&"object"==typeof e}},{}],518:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./_getPrototype"),s=e("./isObjectLike"),a="[object Object]",o=Function.prototype,u=Object.prototype,l=o.toString,c=u.hasOwnProperty,p=l.call(Object);t.exports=function(e){if(!s(e)||n(e)!=a)return!1;var t=i(e);if(null===t)return!0;var r=c.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&l.call(r)==p}},{"./_baseGetTag":365,"./_getPrototype":430,"./isObjectLike":517}],519:[function(e,t,r){var n=e("./_baseIsRegExp"),i=e("./_baseUnary"),s=e("./_nodeUtil"),a=s&&s.isRegExp,o=a?i(a):n;t.exports=o},{"./_baseIsRegExp":375,"./_baseUnary":394,"./_nodeUtil":469}],520:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isArray"),s=e("./isObjectLike"),a="[object String]";t.exports=function(e){return"string"==typeof e||!i(e)&&s(e)&&n(e)==a}},{"./_baseGetTag":365,"./isArray":509,"./isObjectLike":517}],521:[function(e,t,r){var n=e("./_baseGetTag"),i=e("./isObjectLike"),s="[object Symbol]";t.exports=function(e){return"symbol"==typeof e||i(e)&&n(e)==s}},{"./_baseGetTag":365,"./isObjectLike":517}],522:[function(e,t,r){var n=e("./_baseIsTypedArray"),i=e("./_baseUnary"),s=e("./_nodeUtil"),a=s&&s.isTypedArray,o=a?i(a):n;t.exports=o},{"./_baseIsTypedArray":376,"./_baseUnary":394,"./_nodeUtil":469}],523:[function(e,t,r){var n=e("./_arrayLikeKeys"),i=e("./_baseKeys"),s=e("./isArrayLike");t.exports=function(e){return s(e)?n(e):i(e)}},{"./_arrayLikeKeys":344,"./_baseKeys":378,"./isArrayLike":510}],524:[function(e,t,r){var n=e("./_arrayLikeKeys"),i=e("./_baseKeysIn"),s=e("./isArrayLike");t.exports=function(e){return s(e)?n(e,!0):i(e)}},{"./_arrayLikeKeys":344,"./_baseKeysIn":379,"./isArrayLike":510}],525:[function(e,t,r){var n=e("./_arrayMap"),i=e("./_baseIteratee"),s=e("./_baseMap"),a=e("./isArray");t.exports=function(e,t){return(a(e)?n:s)(e,i(t,3))}},{"./_arrayMap":345,"./_baseIteratee":377,"./_baseMap":380,"./isArray":509}],526:[function(e,t,r){function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(n.Cache||i),r}var i=e("./_MapCache"),s="Expected a function";n.Cache=i,t.exports=n},{"./_MapCache":329}],527:[function(e,t,r){var n=e("./_baseMerge"),i=e("./_createAssigner")(function(e,t,r,i){n(e,t,r,i)});t.exports=i},{"./_baseMerge":383,"./_createAssigner":414}],528:[function(e,t,r){t.exports=function(){}},{}],529:[function(e,t,r){var n=e("./_baseProperty"),i=e("./_basePropertyDeep"),s=e("./_isKey"),a=e("./_toKey");t.exports=function(e){return s(e)?n(a(e)):i(e)}},{"./_baseProperty":386,"./_basePropertyDeep":387,"./_isKey":448,"./_toKey":486}],530:[function(e,t,r){var n=e("./_baseRepeat"),i=e("./_isIterateeCall"),s=e("./toInteger"),a=e("./toString");t.exports=function(e,t,r){return t=(r?i(e,t,r):void 0===t)?1:s(t),n(a(e),t)}},{"./_baseRepeat":388,"./_isIterateeCall":447,"./toInteger":536,"./toString":539}],531:[function(e,t,r){var n=e("./_baseFlatten"),i=e("./_baseOrderBy"),s=e("./_baseRest"),a=e("./_isIterateeCall"),o=s(function(e,t){if(null==e)return[];var r=t.length;return r>1&&a(e,t[0],t[1])?t=[]:r>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,n(t,1),[])});t.exports=o},{"./_baseFlatten":360,"./_baseOrderBy":385,"./_baseRest":389,"./_isIterateeCall":447}],532:[function(e,t,r){var n=e("./_baseClamp"),i=e("./_baseToString"),s=e("./toInteger"),a=e("./toString");t.exports=function(e,t,r){return e=a(e),r=null==r?0:n(s(r),0,e.length),t=i(t),e.slice(r,r+t.length)==t}},{"./_baseClamp":355,"./_baseToString":393,"./toInteger":536,"./toString":539}],533:[function(e,t,r){t.exports=function(){return[]}},{}],534:[function(e,t,r){t.exports=function(){return!1}},{}],535:[function(e,t,r){var n=e("./toNumber"),i=1/0,s=1.7976931348623157e308;t.exports=function(e){if(!e)return 0===e?e:0;if((e=n(e))===i||e===-i)return(e<0?-1:1)*s;return e==e?e:0}},{"./toNumber":537}],536:[function(e,t,r){var n=e("./toFinite");t.exports=function(e){var t=n(e),r=t%1;return t==t?r?t-r:t:0}},{"./toFinite":535}],537:[function(e,t,r){var n=e("./isObject"),i=e("./isSymbol"),s=NaN,a=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,u=/^0b[01]+$/i,l=/^0o[0-7]+$/i,c=parseInt;t.exports=function(e){if("number"==typeof e)return e;if(i(e))return s;if(n(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=n(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(a,"");var r=u.test(e);return r||l.test(e)?c(e.slice(2),r?2:8):o.test(e)?s:+e}},{"./isObject":516,"./isSymbol":521}],538:[function(e,t,r){var n=e("./_copyObject"),i=e("./keysIn");t.exports=function(e){return n(e,i(e))}},{"./_copyObject":410,"./keysIn":524}],539:[function(e,t,r){var n=e("./_baseToString");t.exports=function(e){return null==e?"":n(e)}},{"./_baseToString":393}],540:[function(e,t,r){var n=e("./_baseUniq");t.exports=function(e){return e&&e.length?n(e):[]}},{"./_baseUniq":395}],541:[function(e,t,r){var n=e("./_baseValues"),i=e("./keys");t.exports=function(e){return null==e?[]:n(e,i(e))}},{"./_baseValues":396,"./keys":523}],542:[function(e,t,r){function n(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),Object.keys(e).forEach(function(t){r[t]=e[t]}),r}function i(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new s(t,r).match(e))}function s(e,t){if(!(this instanceof s))return new s(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==o.sep&&(e=e.split(o.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function a(e,t){if(t||(t=this instanceof s?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:l(e)}t.exports=i,i.Minimatch=s;var o={sep:"/"};try{o=e("path")}catch(e){}var u=i.GLOBSTAR=s.GLOBSTAR={},l=e("brace-expansion"),c={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},p="[^/]",h=p+"*?",f="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",d="(?:(?!(?:\\/|^)\\.).)*?",m=function(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}("().*{}+?[]^$\\!"),y=/\/+/;i.filter=function(e,t){return t=t||{},function(r,n,s){return i(r,e,t)}},i.defaults=function(e){if(!e||!Object.keys(e).length)return i;var t=i,r=function(r,i,s){return t.minimatch(r,i,n(e,s))};return r.Minimatch=function(r,i){return new t.Minimatch(r,n(e,i))},r},s.defaults=function(e){return e&&Object.keys(e).length?i.defaults(e).Minimatch:s},s.prototype.debug=function(){},s.prototype.make=function(){if(!this._made){var e=this.pattern,t=this.options;if(t.nocomment||"#"!==e.charAt(0))if(e){this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,r),r=this.globParts=r.map(function(e){return e.split(y)}),this.debug(this.pattern,r),r=r.map(function(e,t,r){return e.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(e){return-1===e.indexOf(!1)}),this.debug(this.pattern,r),this.set=r}else this.empty=!0;else this.comment=!0}},s.prototype.parseNegate=function(){var e=this.pattern,t=!1,r=0;if(!this.options.nonegate){for(var n=0,i=e.length;n<i&&"!"===e.charAt(n);n++)t=!t,r++;r&&(this.pattern=e.substr(r)),this.negate=t}},i.braceExpand=function(e,t){return a(e,t)},s.prototype.braceExpand=a,s.prototype.parse=function(e,t){function r(){if(i){switch(i){case"*":a+=h,o=!0;break;case"?":a+=p,o=!0;break;default:a+="\\"+i}E.debug("clearStateChar %j %j",i,a),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return u;if(""===e)return"";for(var i,s,a="",o=!!n.nocase,l=!1,f=[],d=[],y=!1,b=-1,v=-1,x="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",E=this,A=0,D=e.length;A<D&&(s=e.charAt(A));A++)if(this.debug("%s\t%s %s %j",e,A,a,s),l&&m[s])a+="\\"+s,l=!1;else switch(s){case"/":return!1;case"\\":r(),l=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,A,a,s),y){this.debug(" in class"),"!"===s&&A===v+1&&(s="^"),a+=s;continue}E.debug("call clearStateChar %j",i),r(),i=s,n.noext&&r();continue;case"(":if(y){a+="(";continue}if(!i){a+="\\(";continue}f.push({type:i,start:A-1,reStart:a.length,open:c[i].open,close:c[i].close}),a+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,a),i=!1;continue;case")":if(y||!f.length){a+="\\)";continue}r(),o=!0;var S=f.pop();a+=S.close,"!"===S.type&&d.push(S),S.reEnd=a.length;continue;case"|":if(y||!f.length||l){a+="\\|",l=!1;continue}r(),a+="|";continue;case"[":if(r(),y){a+="\\"+s;continue}y=!0,v=A,b=a.length,a+=s;continue;case"]":if(A===v+1||!y){a+="\\"+s,l=!1;continue}if(y){var C=e.substring(v+1,A);try{RegExp("["+C+"]")}catch(e){var _=this.parse(C,g);a=a.substr(0,b)+"\\["+_[0]+"\\]",o=o||_[1],y=!1;continue}}o=!0,y=!1,a+=s;continue;default:r(),l?l=!1:!m[s]||"^"===s&&y||(a+="\\"),a+=s}for(y&&(C=e.substr(v+1),_=this.parse(C,g),a=a.substr(0,b)+"\\["+_[0],o=o||_[1]),S=f.pop();S;S=f.pop()){var w=a.slice(S.reStart+S.open.length);this.debug("setting tail",a,S),w=w.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,r){return r||(r="\\"),t+t+r+"|"}),this.debug("tail=%j\n %s",w,w,S,a);var k="*"===S.type?h:"?"===S.type?p:"\\"+S.type;o=!0,a=a.slice(0,S.reStart)+k+"\\("+w}r(),l&&(a+="\\\\");var F=!1;switch(a.charAt(0)){case".":case"[":case"(":F=!0}for(var T=d.length-1;T>-1;T--){var P=d[T],B=a.slice(0,P.reStart),O=a.slice(P.reStart,P.reEnd-8),N=a.slice(P.reEnd-8,P.reEnd),j=a.slice(P.reEnd);N+=j;var I=B.split("(").length-1,L=j;for(A=0;A<I;A++)L=L.replace(/\)[+*?]?/,"");var M="";""===(j=L)&&t!==g&&(M="$"),a=B+O+j+M+N}if(""!==a&&o&&(a="(?=.)"+a),F&&(a=x+a),t===g)return[a,o];if(!o)return function(e){return e.replace(/\\(.)/g,"$1")}(e);var R=n.nocase?"i":"";try{var V=new RegExp("^"+a+"$",R)}catch(e){return new RegExp("$.")}return V._glob=e,V._src=a,V};var g={};i.makeRe=function(e,t){return new s(e,t||{}).makeRe()},s.prototype.makeRe=function(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?h:t.dot?f:d,n=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===u?r:"string"==typeof e?function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch(e){this.regexp=!1}return this.regexp},i.match=function(e,t,r){var n=new s(t,r=r||{});return e=e.filter(function(e){return n.match(e)}),n.options.nonull&&!e.length&&e.push(t),e},s.prototype.match=function(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==o.sep&&(e=e.split(o.sep).join("/")),e=e.split(y),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i,s;for(s=e.length-1;s>=0&&!(i=e[s]);s--);for(s=0;s<n.length;s++){var a=n[s],u=e;if(r.matchBase&&1===a.length&&(u=[i]),this.matchOne(u,a,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate},s.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,s=0,a=e.length,o=t.length;i<a&&s<o;i++,s++){this.debug("matchOne loop");var l=t[s],c=e[i];if(this.debug(t,l,c),!1===l)return!1;if(l===u){this.debug("GLOBSTAR",[t,l,c]);var p=i,h=s+1;if(h===o){for(this.debug("** at the end");i<a;i++)if("."===e[i]||".."===e[i]||!n.dot&&"."===e[i].charAt(0))return!1;return!0}for(;p<a;){var f=e[p];if(this.debug("\nglobstar while",e,p,t,h,f),this.matchOne(e.slice(p),t.slice(h),r))return this.debug("globstar found match!",p,a,f),!0;if("."===f||".."===f||!n.dot&&"."===f.charAt(0)){this.debug("dot detected!",e,p,t,h);break}this.debug("globstar swallow a segment, and continue"),p++}return!(!r||(this.debug("\n>>> no match, partial?",e,p,t,h),p!==a))}var d;if("string"==typeof l?(d=n.nocase?c.toLowerCase()===l.toLowerCase():c===l,this.debug("string match",l,c,d)):(d=c.match(l),this.debug("pattern match",l,c,d)),!d)return!1}if(i===a&&s===o)return!0;if(i===a)return r;if(s===o){return i===a-1&&""===e[i]}throw new Error("wtf?")}},{"brace-expansion":191,path:546}],543:[function(e,t,r){function n(e,t,r){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+r:Math.ceil(e/t)+" "+r+"s"}var i=1e3,s=60*i,a=60*s,o=24*a,u=365.25*o;t.exports=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*u;case"days":case"day":case"d":return r*o;case"hours":case"hour":case"hrs":case"hr":case"h":return r*a;case"minutes":case"minute":case"mins":case"min":case"m":return r*s;case"seconds":case"second":case"secs":case"sec":case"s":return r*i;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}(e);if("number"===r&&!1===isNaN(e))return t.long?function(e){return n(e,o,"day")||n(e,a,"hour")||n(e,s,"minute")||n(e,i,"second")||e+" ms"}(e):function(e){return e>=o?Math.round(e/o)+"d":e>=a?Math.round(e/a)+"h":e>=s?Math.round(e/s)+"m":e>=i?Math.round(e/i)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],544:[function(e,t,r){"use strict";t.exports=Number.isNaN||function(e){return e!=e}},{}],545:[function(e,t,r){r.endianness=function(){return"LE"},r.hostname=function(){return"undefined"!=typeof location?location.hostname:""},r.loadavg=function(){return[]},r.uptime=function(){return 0},r.freemem=function(){return Number.MAX_VALUE},r.totalmem=function(){return Number.MAX_VALUE},r.cpus=function(){return[]},r.type=function(){return"Browser"},r.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},r.networkInterfaces=r.getNetworkInterfaces=function(){return{}},r.arch=function(){return"javascript"},r.platform=function(){return"browser"},r.tmpdir=r.tmpDir=function(){return"/tmp"},r.EOL="\n",r.homedir=function(){return"/"}},{}],546:[function(e,t,r){(function(e){function t(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};r.resolve=function(){for(var r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,i="/"===a.charAt(0))}return r=t(n(r.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(e){var i=r.isAbsolute(e),s="/"===a(e,-1);return(e=t(n(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},r.isAbsolute=function(e){return"/"===e.charAt(0)},r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},r.relative=function(e,t){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=r.resolve(e).substr(1),t=r.resolve(t).substr(1);for(var i=n(e.split("/")),s=n(t.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}var l=[];for(u=o;u<i.length;u++)l.push("..");return(l=l.concat(s.slice(o))).join("/")},r.sep="/",r.delimiter=":",r.dirname=function(e){var t=s(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},r.basename=function(e,t){var r=s(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},r.extname=function(e){return s(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(this,e("_process"))},{_process:550}],547:[function(e,t,r){(function(e){"use strict";function r(e){return"/"===e.charAt(0)}function n(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}t.exports="win32"===e.platform?n:r,t.exports.posix=r,t.exports.win32=n}).call(this,e("_process"))},{_process:550}],548:[function(e,t,r){"use strict";function n(e,t,r){if(u)try{u.call(o,e,t,{value:r})}catch(n){e[t]=r}else e[t]=r}function i(e){return e&&(n(e,"call",e.call),n(e,"apply",e.apply)),e}function s(e){return l?l.call(o,e):(f.prototype=e||null,new f)}function a(){do{var e=function(e){var t={};return t[e]=!0,Object.keys(t)[0]}(h.call(p.call(d(),36),2))}while(c.call(m,e));return m[e]=e}var o=Object,u=Object.defineProperty,l=Object.create;i(u),i(l);var c=i(Object.prototype.hasOwnProperty),p=i(Number.prototype.toString),h=i(String.prototype.slice),f=function(){},d=Math.random,m=s(null);r.makeUniqueKey=a;var y=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=y(e),r=0,n=0,i=t.length;r<i;++r)c.call(m,t[r])||(r>n&&(t[n]=t[r]),++n);return t.length=n,t},r.makeAccessor=function(e){function t(t){return c.call(t,r)||function(t){var s;n(t,r,function(r,n){if(r===i)return n?s=null:s||(s=e(t))})}(t),t[r](i)}var r=a(),i=s(null);return e=e||function(e){return s(null)},t.forget=function(e){c.call(e,r)&&e[r](i,!0)},t}},{}],549:[function(e,t,r){(function(e){"use strict";!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=function(t,r,n,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var s,a,o=arguments.length;switch(o){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,r)});case 3:return e.nextTick(function(){t.call(null,r,n)});case 4:return e.nextTick(function(){t.call(null,r,n,i)});default:for(s=new Array(o-1),a=0;a<s.length;)s[a++]=arguments[a];return e.nextTick(function(){t.apply(null,s)})}}:t.exports=e.nextTick}).call(this,e("_process"))},{_process:550}],550:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(c===setTimeout)return setTimeout(e,0);if((c===n||!c)&&setTimeout)return c=setTimeout,setTimeout(e,0);try{return c(e,0)}catch(t){try{return c.call(null,e,0)}catch(t){return c.call(this,e,0)}}}function a(){m&&f&&(m=!1,f.length?d=f.concat(d):y=-1,d.length&&o())}function o(){if(!m){var e=s(a);m=!0;for(var t=d.length;t;){for(f=d,d=[];++y<t;)f&&f[y].run();y=-1,t=d.length}f=null,m=!1,function(e){if(p===clearTimeout)return clearTimeout(e);if((p===i||!p)&&clearTimeout)return p=clearTimeout,clearTimeout(e);try{p(e)}catch(t){try{return p.call(null,e)}catch(t){return p.call(this,e)}}}(e)}}function u(e,t){this.fun=e,this.array=t}function l(){}var c,p,h=t.exports={};!function(){try{c="function"==typeof setTimeout?setTimeout:n}catch(e){c=n}try{p="function"==typeof clearTimeout?clearTimeout:i}catch(e){p=i}}();var f,d=[],m=!1,y=-1;h.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];d.push(new u(e,t)),1!==d.length||m||s(o)},u.prototype.run=function(){this.fun.apply(null,this.array)},h.title="browser",h.browser=!0,h.env={},h.argv=[],h.version="",h.versions={},h.on=l,h.addListener=l,h.once=l,h.off=l,h.removeListener=l,h.removeAllListeners=l,h.emit=l,h.prependListener=l,h.prependOnceListener=l,h.listeners=function(e){return[]},h.binding=function(e){throw new Error("process.binding is not supported")},h.cwd=function(){return"/"},h.chdir=function(e){throw new Error("process.chdir is not supported")},h.umask=function(){return 0}},{}],551:[function(e,t,r){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":552}],552:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);l.call(this,e),c.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",i)}function i(){this.allowHalfOpen||this._writableState.ended||a(s,this)}function s(e){e.end()}var a=e("process-nextick-args"),o=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=n;var u=e("core-util-is");u.inherits=e("inherits");var l=e("./_stream_readable"),c=e("./_stream_writable");u.inherits(n,l);for(var p=o(c.prototype),h=0;h<p.length;h++){var f=p[h];n.prototype[f]||(n.prototype[f]=c.prototype[f])}Object.defineProperty(n.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),n.prototype._destroy=function(e,t){this.push(null),this.end(),a(t,e)}},{"./_stream_readable":554,"./_stream_writable":556,"core-util-is":310,inherits:317,"process-nextick-args":549}],553:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);i.call(this,e)}t.exports=n;var i=e("./_stream_transform"),s=e("core-util-is");s.inherits=e("inherits"),s.inherits(n,i),n.prototype._transform=function(e,t,r){r(null,e)}},{"./_stream_transform":555,"core-util-is":310,inherits:317}],554:[function(e,t,r){(function(r,n){"use strict";function i(t,r){E=E||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,r instanceof E&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var n=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new P,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(T||(T=e("string_decoder/").StringDecoder),this.decoder=new T(t.encoding),this.encoding=t.encoding)}function s(t){if(E=E||e("./_stream_duplex"),!(this instanceof s))return new s(t);this._readableState=new i(t,this),this.readable=!0,t&&("function"==typeof t.read&&(this._read=t.read),"function"==typeof t.destroy&&(this._destroy=t.destroy)),S.call(this)}function a(e,t,r,n,i){var s=e._readableState;if(null===t)s.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,l(e)}(e,s);else{var a;i||(a=function(e,t){var r;(function(e){return C.isBuffer(e)||e instanceof _})(t)||"string"==typeof t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk"));return r}(s,t)),a?e.emit("error",a):s.objectMode||t&&t.length>0?("string"==typeof t||s.objectMode||Object.getPrototypeOf(t)===C.prototype||(t=function(e){return C.from(e)}(t)),n?s.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):o(e,s,t,!0):s.ended?e.emit("error",new Error("stream.push() after EOF")):(s.reading=!1,s.decoder&&!r?(t=s.decoder.write(t),s.objectMode||0!==t.length?o(e,s,t,!1):p(e,s)):o(e,s,t,!1))):n||(s.reading=!1)}return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(s)}function o(e,t,r,n){t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,n?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&l(e)),p(e,t)}function u(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=N?e=N:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function l(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(F("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?x(c,e):c(e))}function c(e){F("emit readable"),e.emit("readable"),m(e)}function p(e,t){t.readingMore||(t.readingMore=!0,x(h,e,t))}function h(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(F("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function f(e){F("readable nexttick read 0"),e.read(0)}function d(e,t){t.reading||(F("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),m(e),t.flowing&&!t.reading&&e.read(0)}function m(e){var t=e._readableState;for(F("flow",t.flowing);t.flowing&&null!==e.read(););}function y(e,t){if(0===t.length)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=function(e,t,r){var n;e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):n=e===t.head.data.length?t.shift():r?function(e,t){var r=t.head,n=1,i=r.data;e-=i.length;for(;r=r.next;){var s=r.data,a=e>s.length?s.length:e;if(a===s.length?i+=s:i+=s.slice(0,e),0===(e-=a)){a===s.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(a));break}++n}return t.length-=n,i}(e,t):function(e,t){var r=C.allocUnsafe(e),n=t.head,i=1;n.data.copy(r),e-=n.data.length;for(;n=n.next;){var s=n.data,a=e>s.length?s.length:e;if(s.copy(r,r.length-e,0,a),0===(e-=a)){a===s.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(a));break}++i}return t.length-=i,r}(e,t);return n}(e,t.buffer,t.decoder),r}function g(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,x(b,t,e))}function b(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function v(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}var x=e("process-nextick-args");t.exports=s;var E,A=e("isarray");s.ReadableState=i;e("events").EventEmitter;var D=function(e,t){return e.listeners(t).length},S=e("./internal/streams/stream"),C=e("safe-buffer").Buffer,_=n.Uint8Array||function(){},w=e("core-util-is");w.inherits=e("inherits");var k=e("util"),F=void 0;F=k&&k.debuglog?k.debuglog("stream"):function(){};var T,P=e("./internal/streams/BufferList"),B=e("./internal/streams/destroy");w.inherits(s,S);var O=["error","close","destroy","pause","resume"];Object.defineProperty(s.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),s.prototype.destroy=B.destroy,s.prototype._undestroy=B.undestroy,s.prototype._destroy=function(e,t){this.push(null),t(e)},s.prototype.push=function(e,t){var r,n=this._readableState;return n.objectMode?r=!0:"string"==typeof e&&((t=t||n.defaultEncoding)!==n.encoding&&(e=C.from(e,t),t=""),r=!0),a(this,e,t,!1,r)},s.prototype.unshift=function(e){return a(this,e,null,!0,!1)},s.prototype.isPaused=function(){return!1===this._readableState.flowing},s.prototype.setEncoding=function(t){return T||(T=e("string_decoder/").StringDecoder),this._readableState.decoder=new T(t),this._readableState.encoding=t,this};var N=8388608;s.prototype.read=function(e){F("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return F("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?g(this):l(this),null;if(0===(e=u(e,t))&&t.ended)return 0===t.length&&g(this),null;var n=t.needReadable;F("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&F("length less than watermark",n=!0),t.ended||t.reading?F("reading or ended",n=!1):n&&(F("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=u(r,t)));var i;return null===(i=e>0?y(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&g(this)),null!==i&&this.emit("data",i),i},s.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},s.prototype.pipe=function(e,t){function n(t,r){F("onunpipe"),t===c&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,F("cleanup"),e.removeListener("close",o),e.removeListener("finish",u),e.removeListener("drain",f),e.removeListener("error",a),e.removeListener("unpipe",n),c.removeListener("end",i),c.removeListener("end",l),c.removeListener("data",s),d=!0,!p.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function i(){F("onend"),e.end()}function s(t){F("ondata"),y=!1;!1!==e.write(t)||y||((1===p.pipesCount&&p.pipes===e||p.pipesCount>1&&-1!==v(p.pipes,e))&&!d&&(F("false write response, pause",c._readableState.awaitDrain),c._readableState.awaitDrain++,y=!0),c.pause())}function a(t){F("onerror",t),l(),e.removeListener("error",a),0===D(e,"error")&&e.emit("error",t)}function o(){e.removeListener("finish",u),l()}function u(){F("onfinish"),e.removeListener("close",o),l()}function l(){F("unpipe"),c.unpipe(e)}var c=this,p=this._readableState;switch(p.pipesCount){case 0:p.pipes=e;break;case 1:p.pipes=[p.pipes,e];break;default:p.pipes.push(e)}p.pipesCount+=1,F("pipe count=%d opts=%j",p.pipesCount,t);var h=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?i:l;p.endEmitted?x(h):c.once("end",h),e.on("unpipe",n);var f=function(e){return function(){var t=e._readableState;F("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&D(e,"data")&&(t.flowing=!0,m(e))}}(c);e.on("drain",f);var d=!1,y=!1;return c.on("data",s),function(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?A(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}(e,"error",a),e.once("close",o),e.once("finish",u),e.emit("pipe",c),p.flowing||(F("pipe resume"),c.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var s=0;s<i;s++)n[s].emit("unpipe",this,r);return this}var a=v(t.pipes,e);return-1===a?this:(t.pipes.splice(a,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,r),this)},s.prototype.on=function(e,t){var r=S.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&l(this):x(f,this))}return r},s.prototype.addListener=s.prototype.on,s.prototype.resume=function(){var e=this._readableState;return e.flowing||(F("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,x(d,e,t))}(this,e)),this},s.prototype.pause=function(){return F("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(F("pause"),this._readableState.flowing=!1,this.emit("pause")),this},s.prototype.wrap=function(e){var t=this._readableState,r=!1,n=this;e.on("end",function(){if(F("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&n.push(e)}n.push(null)}),e.on("data",function(i){if(F("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)){n.push(i)||(r=!0,e.pause())}});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s<O.length;s++)e.on(O[s],n.emit.bind(n,O[s]));return n._read=function(t){F("wrapped _read",t),r&&(r=!1,e.resume())},n},s._fromList=y}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./_stream_duplex":552,"./internal/streams/BufferList":557,"./internal/streams/destroy":558,"./internal/streams/stream":559,_process:550,"core-util-is":310,events:313,inherits:317,isarray:321,"process-nextick-args":549,"safe-buffer":602,"string_decoder/":605,util:192}],555:[function(e,t,r){"use strict";function n(e){this.afterTransform=function(t,r){return function(e,t,r){var n=e._transformState;n.transforming=!1;var i=n.writecb;if(!i)return e.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!==r&&void 0!==r&&e.push(r);i(t);var s=e._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&e._read(s.highWaterMark)}(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e){if(!(this instanceof i))return new i(e);a.call(this,e),this._transformState=new n(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,r){s(t,e,r)}):s(t)})}function s(e,t,r){if(t)return e.emit("error",t);null!==r&&void 0!==r&&e.push(r);var n=e._writableState,i=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}t.exports=i;var a=e("./_stream_duplex"),o=e("core-util-is");o.inherits=e("inherits"),o.inherits(i,a),i.prototype.push=function(e,t){return this._transformState.needTransform=!1,a.prototype.push.call(this,e,t)},i.prototype._transform=function(e,t,r){throw new Error("_transform() is not implemented")},i.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},i.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},i.prototype._destroy=function(e,t){var r=this;a.prototype._destroy.call(this,e,function(e){t(e),r.emit("close")})}},{"./_stream_duplex":552,"core-util-is":310,inherits:317}],556:[function(e,t,r){(function(r,n){"use strict";function i(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,r){var n=e.entry;e.entry=null;for(;n;){var i=n.callback;t.pendingcb--,i(r),n=n.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}function s(){}function a(t,r){y=y||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,r instanceof y&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var n=t.highWaterMark,s=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:s,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var a=!1===t.decodeStrings;this.decodeStrings=!a,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(r),t)!function(e,t,r,n,i){--t.pendingcb,r?(m(i,n),m(d,e,t),e._writableState.errorEmitted=!0,e.emit("error",n)):(i(n),e._writableState.errorEmitted=!0,e.emit("error",n),d(e,t))}(e,r,n,t,i);else{var s=h(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||p(e,r),n?g(c,e,r,s,i):c(e,r,s,i)}}(r,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new i(this)}function o(t){if(y=y||e("./_stream_duplex"),!(S.call(o,this)||this instanceof y))return new o(t);this._writableState=new a(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev),"function"==typeof t.destroy&&(this._destroy=t.destroy),"function"==typeof t.final&&(this._final=t.final)),x.call(this)}function u(e,t,r,n,i,s){if(!r){var a=function(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=E.from(t,r)),t}(t,n,i);n!==a&&(r=!0,i="buffer",n=a)}var o=t.objectMode?1:n.length;t.length+=o;var u=t.length<t.highWaterMark;if(u||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest={chunk:n,encoding:i,isBuf:r,callback:s,next:null},c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else l(e,t,!1,o,n,i,s);return u}function l(e,t,r,n,i,s,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function c(e,t,r,n){r||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,n(),d(e,t)}function p(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,s=new Array(n),a=t.corkedRequestsFree;a.entry=r;for(var o=0,u=!0;r;)s[o]=r,r.isBuf||(u=!1),r=r.next,o+=1;s.allBuffers=u,l(e,t,!0,t.length,s,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new i(t)}else{for(;r;){var c=r.chunk,p=r.encoding,h=r.callback;if(l(e,t,!1,t.objectMode?1:c.length,c,p,h),r=r.next,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}function h(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function f(e,t){e._final(function(r){t.pendingcb--,r&&e.emit("error",r),t.prefinished=!0,e.emit("prefinish"),d(e,t)})}function d(e,t){var r=h(t);return r&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,m(f,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),r}var m=e("process-nextick-args");t.exports=o;var y,g=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:m;o.WritableState=a;var b=e("core-util-is");b.inherits=e("inherits");var v={deprecate:e("util-deprecate")},x=e("./internal/streams/stream"),E=e("safe-buffer").Buffer,A=n.Uint8Array||function(){},D=e("./internal/streams/destroy");b.inherits(o,x),a.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(a.prototype,"buffer",{get:v.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}();var S;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(S=Function.prototype[Symbol.hasInstance],Object.defineProperty(o,Symbol.hasInstance,{value:function(e){return!!S.call(this,e)||e&&e._writableState instanceof a}})):S=function(e){return e instanceof this},o.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},o.prototype.write=function(e,t,r){var n=this._writableState,i=!1,a=function(e){return E.isBuffer(e)||e instanceof A}(e)&&!n.objectMode;return a&&!E.isBuffer(e)&&(e=function(e){return E.from(e)}(e)),"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),"function"!=typeof r&&(r=s),n.ended?function(e,t){var r=new Error("write after end");e.emit("error",r),m(t,r)}(this,r):(a||function(e,t,r,n){var i=!0,s=!1;return null===r?s=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),m(n,s),i=!1),i}(this,n,e,r))&&(n.pendingcb++,i=u(this,n,a,e,t,r)),i},o.prototype.cork=function(){this._writableState.corked++},o.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||p(this,e))},o.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},o.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},o.prototype._writev=null,o.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||function(e,t,r){t.ending=!0,d(e,t),r&&(t.finished?m(r):e.once("finish",r)),t.ended=!0,e.writable=!1}(this,n,r)},Object.defineProperty(o.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),o.prototype.destroy=D.destroy,o.prototype._undestroy=D.undestroy,o.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./_stream_duplex":552,"./internal/streams/destroy":558,"./internal/streams/stream":559,_process:550,"core-util-is":310,inherits:317,"process-nextick-args":549,"safe-buffer":602,"util-deprecate":610}],557:[function(e,t,r){"use strict";function n(e,t,r){e.copy(t,r)}var i=e("safe-buffer").Buffer;t.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},e.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),r=this.head,s=0;r;)n(r.data,t,s),s+=r.data.length,r=r.next;return t},e}()},{"safe-buffer":602}],558:[function(e,t,r){"use strict";function n(e,t){e.emit("error",t)}var i=e("process-nextick-args");t.exports={destroy:function(e,t){var r=this,s=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;s||a?t?t(e):!e||this._writableState&&this._writableState.errorEmitted||i(n,this,e):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(i(n,r,e),r._writableState&&(r._writableState.errorEmitted=!0)):t&&t(e)}))},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},{"process-nextick-args":549}],559:[function(e,t,r){t.exports=e("events").EventEmitter},{events:313}],560:[function(e,t,r){t.exports=e("./readable").PassThrough},{"./readable":561}],561:[function(e,t,r){(r=t.exports=e("./lib/_stream_readable.js")).Stream=r,r.Readable=r,r.Writable=e("./lib/_stream_writable.js"),r.Duplex=e("./lib/_stream_duplex.js"),r.Transform=e("./lib/_stream_transform.js"),r.PassThrough=e("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":552,"./lib/_stream_passthrough.js":553,"./lib/_stream_readable.js":554,"./lib/_stream_transform.js":555,"./lib/_stream_writable.js":556}],562:[function(e,t,r){t.exports=e("./readable").Transform},{"./readable":561}],563:[function(e,t,r){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":556}],564:[function(e,t,r){function n(e,t,r){if(e){if(g.fixFaultyLocations(e,t),r){if(p.Node.check(e)&&p.SourceLocation.check(e.loc)){for(var i=r.length-1;i>=0&&!(b(r[i].loc.end,e.loc.start)<=0);--i);return void r.splice(i+1,0,e)}}else if(e[v])return e[v];var s;if(h.check(e))s=Object.keys(e);else{if(!f.check(e))return;s=c.getFieldNames(e)}r||Object.defineProperty(e,v,{value:r=[],enumerable:!1});i=0;for(var a=s.length;i<a;++i)n(e[s[i]],t,r);return r}}function i(e,t,r){for(var s=n(e,r),a=0,o=s.length;a<o;){var u=a+o>>1,l=s[u];if(b(l.loc.start,t.loc.start)<=0&&b(t.loc.end,l.loc.end)<=0)return void i(t.enclosingNode=l,t,r);if(b(l.loc.end,t.loc.start)<=0){var c=l;a=u+1}else{if(!(b(t.loc.end,l.loc.start)<=0))throw new Error("Comment location overlaps with node location");var p=l;o=u}}c&&(t.precedingNode=c),p&&(t.followingNode=p)}function s(e,t){var r=e.length;if(0!==r){for(var n=e[0].precedingNode,i=e[0].followingNode,s=i.loc.start,a=r;a>0;--a){var c=e[a-1];l.strictEqual(c.precedingNode,n),l.strictEqual(c.followingNode,i);var p=t.sliceString(c.loc.end,s);if(/\S/.test(p))break;s=c.loc.start}for(;a<=r&&(c=e[a])&&("Line"===c.type||"CommentLine"===c.type)&&c.loc.start.column>i.loc.start.column;)++a;e.forEach(function(e,t){t<a?u(n,e):o(i,e)}),e.length=0}}function a(e,t){(e.comments||(e.comments=[])).push(t)}function o(e,t){t.leading=!0,t.trailing=!1,a(e,t)}function u(e,t){t.leading=!1,t.trailing=!0,a(e,t)}var l=e("assert"),c=e("./types"),p=c.namedTypes,h=c.builtInTypes.array,f=c.builtInTypes.object,d=e("./lines"),m=(d.fromString,d.Lines),y=d.concat,g=e("./util"),b=g.comparePos,v=e("private").makeUniqueKey();r.attach=function(e,t,r){if(h.check(e)){var n=[];e.forEach(function(e){e.loc.lines=r,i(t,e,r);var c=e.precedingNode,p=e.enclosingNode,h=e.followingNode;if(c&&h){var f=n.length;if(f>0){var d=n[f-1];l.strictEqual(d.precedingNode===e.precedingNode,d.followingNode===e.followingNode),d.followingNode!==e.followingNode&&s(n,r)}n.push(e)}else if(c)s(n,r),u(c,e);else if(h)s(n,r),o(h,e);else{if(!p)throw new Error("AST contains no nodes at all?");s(n,r),function(e,t){t.leading=!1,t.trailing=!1,a(e,t)}(p,e)}}),s(n,r),e.forEach(function(e){delete e.precedingNode,delete e.enclosingNode,delete e.followingNode})}},r.printComments=function(e,t){var r=e.getValue(),n=t(e),i=p.Node.check(r)&&c.getFieldValue(r,"comments");if(!i||0===i.length)return n;var s=[],a=[n];return e.each(function(e){var n=e.getValue(),i=c.getFieldValue(n,"leading"),o=c.getFieldValue(n,"trailing");i||o&&!p.Statement.check(r)&&"Block"!==n.type&&"CommentBlock"!==n.type?s.push(function(e,t){var r=e.getValue();p.Comment.assert(r);var n=r.loc,i=n&&n.lines,s=[t(e)];if(r.trailing)s.push("\n");else if(i instanceof m){var a=i.slice(n.end,i.skipSpaces(n.end));1===a.length?s.push(a):s.push(new Array(a.length).join("\n"))}else s.push("\n");return y(s)}(e,t)):o&&a.push(function(e,t){var r=e.getValue(e);p.Comment.assert(r);var n=r.loc,i=n&&n.lines,s=[];if(i instanceof m){var a=i.skipSpaces(n.start,!0)||i.firstPos(),o=i.slice(a,n.start);1===o.length?s.push(o):s.push(new Array(o.length).join("\n"))}return s.push(t(e)),y(s)}(e,t))},"comments"),s.push.apply(s,a),y(s)}},{"./lines":566,"./types":572,"./util":573,assert:1,private:548}],565:[function(e,t,r){function n(e){o.ok(this instanceof n),this.stack=[e]}function i(e,t){for(var r=e.stack,n=r.length-1;n>=0;n-=2){var i=r[n];if(l.Node.check(i)&&--t<0)return i}return null}function s(e){return l.BinaryExpression.check(e)||l.LogicalExpression.check(e)}function a(e){return!!l.CallExpression.check(e)||(c.check(e)?e.some(a):!!l.Node.check(e)&&u.someField(e,function(e,t){return a(t)}))}var o=e("assert"),u=e("./types"),l=u.namedTypes,c=(l.Node,u.builtInTypes.array),p=u.builtInTypes.number,h=n.prototype;t.exports=n,n.from=function(e){if(e instanceof n)return e.copy();if(e instanceof u.NodePath){for(var t,r=Object.create(n.prototype),i=[e.value];t=e.parentPath;e=t)i.push(e.name,t.value);return r.stack=i.reverse(),r}return new n(e)},h.copy=function(){var e=Object.create(n.prototype);return e.stack=this.stack.slice(0),e},h.getName=function(){var e=this.stack,t=e.length;return t>1?e[t-2]:null},h.getValue=function(){var e=this.stack;return e[e.length-1]},h.getNode=function(e){return i(this,~~e)},h.getParentNode=function(e){return i(this,1+~~e)},h.getRootValue=function(){var e=this.stack;return e.length%2==0?e[1]:e[0]},h.call=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}var o=e(this);return t.length=r,o},h.each=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}for(s=0;s<n.length;++s)s in n&&(t.push(s,n[s]),e(this),t.length-=2);t.length=r},h.map=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}var o=new Array(n.length);for(s=0;s<n.length;++s)s in n&&(t.push(s,n[s]),o[s]=e(this,s),t.length-=2);return t.length=r,o},h.needsParens=function(e){var t=this.getParentNode();if(!t)return!1;var r=this.getName(),n=this.getNode();if(this.getValue()!==n)return!1;if(l.Statement.check(n))return!1;if("Identifier"===n.type)return!1;if("ParenthesizedExpression"===t.type)return!1;switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===t.type&&"object"===r&&t.object===n;case"BinaryExpression":case"LogicalExpression":switch(t.type){case"CallExpression":return"callee"===r&&t.callee===n;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===r&&t.object===n;case"BinaryExpression":case"LogicalExpression":var i=t.operator,u=f[i],c=n.operator,h=f[c];if(u>h)return!0;if(u===h&&"right"===r)return o.strictEqual(t.right,n),!0;default:return!1}case"SequenceExpression":switch(t.type){case"ReturnStatement":case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==r;default:return!0}case"YieldExpression":switch(t.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"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return"NullableTypeAnnotation"===t.type;case"Literal":return"MemberExpression"===t.type&&p.check(n.value)&&"object"===r&&t.object===n;case"AssignmentExpression":case"ConditionalExpression":switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===r&&t.callee===n;case"ConditionalExpression":return"test"===r&&t.test===n;case"MemberExpression":return"object"===r&&t.object===n;default:return!1}case"ArrowFunctionExpression":return!(!l.CallExpression.check(t)||"callee"!==r)||(!(!l.MemberExpression.check(t)||"object"!==r)||s(t));case"ObjectExpression":if("ArrowFunctionExpression"===t.type&&"body"===r)return!0;default:if("NewExpression"===t.type&&"callee"===r&&t.callee===n)return a(n)}return!(!0===e||this.canBeFirstInStatement()||!this.firstInStatement())};var f={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%","**"]].forEach(function(e,t){e.forEach(function(e){f[e]=t})}),h.canBeFirstInStatement=function(){var e=this.getNode();return!l.FunctionExpression.check(e)&&!l.ObjectExpression.check(e)},h.firstInStatement=function(){for(var e,t,r,n,i=this.stack,a=i.length-1;a>=0;a-=2)if(l.Node.check(i[a])&&(r=e,n=t,e=i[a-1],t=i[a]),t&&n){if(l.BlockStatement.check(t)&&"body"===e&&0===r)return o.strictEqual(t.body[0],n),!0;if(l.ExpressionStatement.check(t)&&"expression"===r)return o.strictEqual(t.expression,n),!0;if(l.SequenceExpression.check(t)&&"expressions"===e&&0===r)o.strictEqual(t.expressions[0],n);else if(l.CallExpression.check(t)&&"callee"===r)o.strictEqual(t.callee,n);else if(l.MemberExpression.check(t)&&"object"===r)o.strictEqual(t.object,n);else if(l.ConditionalExpression.check(t)&&"test"===r)o.strictEqual(t.test,n);else if(s(t)&&"left"===r)o.strictEqual(t.left,n);else{if(!l.UnaryExpression.check(t)||t.prefix||"argument"!==r)return!1;o.strictEqual(t.argument,n)}}return!0}},{"./types":572,assert:1}],566:[function(e,t,r){function n(e){return e[f]}function i(e,t){c.ok(this instanceof i),c.ok(e.length>0),t?d.assert(t):t=null,Object.defineProperty(this,f,{value:{infos:e,mappings:[],name:t,cachedSourceMap:null}}),t&&n(this).mappings.push(new y(this,{start:this.firstPos(),end:this.lastPos()}))}function s(e){return{line:e.line,indent:e.indent,locked:e.locked,sliceStart:e.sliceStart,sliceEnd:e.sliceEnd}}function a(e,t){for(var r=0,n=e.length,i=0;i<n;++i)switch(e.charCodeAt(i)){case 9:c.strictEqual(typeof t,"number"),c.ok(t>0);var s=Math.ceil(r/t)*t;s===r?r+=t:r=s;break;case 11:case 12:case 13:case 65279:break;case 32:default:r+=1}return r}function o(e,t){if(e instanceof i)return e;e+="";var r=t&&t.tabWidth,n=e.indexOf("\t")<0,s=!(!t||!t.locked),o=!t&&n&&e.length<=x;if(c.ok(r||n,"No tab width specified but encountered tabs in string\n"+e),o&&v.call(b,e))return b[e];var u=new i(e.split(A).map(function(e){var t=E.exec(e)[0];return{line:e,indent:a(t,r),locked:s,sliceStart:t.length,sliceEnd:e.length}}),h(t).sourceFileName);return o&&(b[e]=u),u}function u(e){return!/\S/.test(e)}function l(e,t,r){var n=e.sliceStart,i=e.sliceEnd,s=Math.max(e.indent,0),a=s+i-n;return void 0===r&&(r=a),t=Math.max(t,0),r=Math.min(r,a),(r=Math.max(r,t))<s?(s=r,i=n):i-=a-r,a=r,a-=t,t<s?s-=t:(t-=s,s=0,n+=t),c.ok(s>=0),c.ok(n<=i),c.strictEqual(a,s+i-n),e.indent===s&&e.sliceStart===n&&e.sliceEnd===i?e:{line:e.line,indent:s,locked:!1,sliceStart:n,sliceEnd:i}}var c=e("assert"),p=e("source-map"),h=e("./options").normalize,f=e("private").makeUniqueKey(),d=e("./types").builtInTypes.string,m=e("./util").comparePos,y=e("./mapping");r.Lines=i;var g=i.prototype;Object.defineProperties(g,{length:{get:function(){return n(this).infos.length}},name:{get:function(){return n(this).name}}});var b={},v=b.hasOwnProperty,x=10;r.countSpaces=a;var E=/^\s*/,A=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;r.fromString=o,g.toString=function(e){return this.sliceString(this.firstPos(),this.lastPos(),e)},g.getSourceMap=function(e,t){function r(r){return r=r||{},d.assert(e),r.file=e,t&&(d.assert(t),r.sourceRoot=t),r}if(!e)return null;var i=this,s=n(i);if(s.cachedSourceMap)return r(s.cachedSourceMap.toJSON());var a=new p.SourceMapGenerator(r()),o={};return s.mappings.forEach(function(e){for(var t=e.sourceLines.skipSpaces(e.sourceLoc.start)||e.sourceLines.lastPos(),r=i.skipSpaces(e.targetLoc.start)||i.lastPos();m(t,e.sourceLoc.end)<0&&m(r,e.targetLoc.end)<0;){var n=e.sourceLines.charAt(t),s=i.charAt(r);c.strictEqual(n,s);var u=e.sourceLines.name;if(a.addMapping({source:u,original:{line:t.line,column:t.column},generated:{line:r.line,column:r.column}}),!v.call(o,u)){var l=e.sourceLines.toString();a.setSourceContent(u,l),o[u]=l}i.nextPos(r,!0),e.sourceLines.nextPos(t,!0)}}),s.cachedSourceMap=a,a.toJSON()},g.bootstrapCharAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,r=e.column,n=this.toString().split(A),i=n[t-1];return void 0===i?"":r===i.length&&t<n.length?"\n":r>=i.length?"":i.charAt(r)},g.charAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,r=e.column,i=n(this).infos[t-1],s=r;if(void 0===i||s<0)return"";var a=this.getIndentAt(t);return s<a?" ":(s+=i.sliceStart-a)===i.sliceEnd&&t<this.length?"\n":s>=i.sliceEnd?"":i.line.charAt(s)},g.stripMargin=function(e,t){if(0===e)return this;if(c.ok(e>0,"negative margin: "+e),t&&1===this.length)return this;var r=n(this),a=new i(r.infos.map(function(r,n){return r.line&&(n>0||!t)&&((r=s(r)).indent=Math.max(0,r.indent-e)),r}));if(r.mappings.length>0){var o=n(a).mappings;c.strictEqual(o.length,0),r.mappings.forEach(function(r){o.push(r.indent(e,t,!0))})}return a},g.indent=function(e){if(0===e)return this;var t=n(this),r=new i(t.infos.map(function(t){return t.line&&!t.locked&&((t=s(t)).indent+=e),t}));if(t.mappings.length>0){var a=n(r).mappings;c.strictEqual(a.length,0),t.mappings.forEach(function(t){a.push(t.indent(e))})}return r},g.indentTail=function(e){if(0===e)return this;if(this.length<2)return this;var t=n(this),r=new i(t.infos.map(function(t,r){return r>0&&t.line&&!t.locked&&((t=s(t)).indent+=e),t}));if(t.mappings.length>0){var a=n(r).mappings;c.strictEqual(a.length,0),t.mappings.forEach(function(t){a.push(t.indent(e,!0))})}return r},g.lockIndentTail=function(){if(this.length<2)return this;return new i(n(this).infos.map(function(e,t){return e=s(e),e.locked=t>0,e}))},g.getIndentAt=function(e){c.ok(e>=1,"no line "+e+" (line numbers start from 1)");var t=n(this).infos[e-1];return Math.max(t.indent,0)},g.guessTabWidth=function(){var e=n(this);if(v.call(e,"cachedTabWidth"))return e.cachedTabWidth;for(var t=[],r=0,i=1,s=this.length;i<=s;++i){var a=e.infos[i-1];if(!u(a.line.slice(a.sliceStart,a.sliceEnd))){var o=Math.abs(a.indent-r);t[o]=1+~~t[o],r=a.indent}}for(var l=-1,c=2,p=1;p<t.length;p+=1)v.call(t,p)&&t[p]>l&&(l=t[p],c=p);return e.cachedTabWidth=c},g.startsWithComment=function(){var e=n(this);if(0===e.infos.length)return!1;var t=e.infos[0],r=t.sliceStart,i=t.sliceEnd,s=t.line.slice(r,i).trim();return 0===s.length||"//"===s.slice(0,2)||"/*"===s.slice(0,2)},g.isOnlyWhitespace=function(){return u(this.toString())},g.isPrecededOnlyByWhitespace=function(e){var t=n(this).infos[e.line-1],r=Math.max(t.indent,0),i=e.column-r;if(i<=0)return!0;var s=t.sliceStart,a=Math.min(s+i,t.sliceEnd);return u(t.line.slice(s,a))},g.getLineLength=function(e){var t=n(this).infos[e-1];return this.getIndentAt(e)+t.sliceEnd-t.sliceStart},g.nextPos=function(e,t){var r=Math.max(e.line,0);return Math.max(e.column,0)<this.getLineLength(r)?(e.column+=1,!t||!!this.skipSpaces(e,!1,!0)):r<this.length&&(e.line+=1,e.column=0,!t||!!this.skipSpaces(e,!1,!0))},g.prevPos=function(e,t){var r=e.line,n=e.column;if(n<1){if((r-=1)<1)return!1;n=this.getLineLength(r)}else n=Math.min(n-1,this.getLineLength(r));return e.line=r,e.column=n,!t||!!this.skipSpaces(e,!0,!0)},g.firstPos=function(){return{line:1,column:0}},g.lastPos=function(){return{line:this.length,column:this.getLineLength(this.length)}},g.skipSpaces=function(e,t,r){if(e=e?r?e:{line:e.line,column:e.column}:t?this.lastPos():this.firstPos(),t){for(;this.prevPos(e);)if(!u(this.charAt(e))&&this.nextPos(e))return e;return null}for(;u(this.charAt(e));)if(!this.nextPos(e))return null;return e},g.trimLeft=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);return e?this.slice(e):D},g.trimRight=function(){var e=this.skipSpaces(this.lastPos(),!0,!0);return e?this.slice(this.firstPos(),e):D},g.trim=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);if(null===e)return D;var t=this.skipSpaces(this.lastPos(),!0,!0);return c.notStrictEqual(t,null),this.slice(e,t)},g.eachPos=function(e,t,r){var n=this.firstPos();if(t&&(n.line=t.line,n.column=t.column),!r||this.skipSpaces(n,!1,!0))do{e.call(this,n)}while(this.nextPos(n,r))},g.bootstrapSlice=function(e,t){var r=this.toString().split(A).slice(e.line-1,t.line);return r.push(r.pop().slice(0,t.column)),r[0]=r[0].slice(e.column),o(r.join("\n"))},g.slice=function(e,t){if(!t){if(!e)return this;t=this.lastPos()}var r=n(this),s=r.infos.slice(e.line-1,t.line);e.line===t.line?s[0]=l(s[0],e.column,t.column):(c.ok(e.line<t.line),s[0]=l(s[0],e.column),s.push(l(s.pop(),0,t.column)));var a=new i(s);if(r.mappings.length>0){var o=n(a).mappings;c.strictEqual(o.length,0),r.mappings.forEach(function(r){var n=r.slice(this,e,t);n&&o.push(n)},this)}return a},g.bootstrapSliceString=function(e,t,r){return this.slice(e,t).toString(r)},g.sliceString=function(e,t,r){if(!t){if(!e)return this;t=this.lastPos()}r=h(r);for(var i=n(this).infos,s=[],o=r.tabWidth,c=e.line;c<=t.line;++c){var p=i[c-1];c===e.line?p=c===t.line?l(p,e.column,t.column):l(p,e.column):c===t.line&&(p=l(p,0,t.column));var f=Math.max(p.indent,0),d=p.line.slice(0,p.sliceStart);if(r.reuseWhitespace&&u(d)&&a(d,r.tabWidth)===f)s.push(p.line.slice(0,p.sliceEnd));else{var m=0,y=f;r.useTabs&&(y-=(m=Math.floor(f/o))*o);var g="";m>0&&(g+=new Array(m+1).join("\t")),y>0&&(g+=new Array(y+1).join(" ")),g+=p.line.slice(p.sliceStart,p.sliceEnd),s.push(g)}}return s.join(r.lineTerminator)},g.isEmpty=function(){return this.length<2&&this.getLineLength(1)<1},g.join=function(e){function t(e){if(null!==e){if(r){var t=e.infos[0],n=new Array(t.indent+1).join(" "),i=u.length,a=Math.max(r.indent,0)+r.sliceEnd-r.sliceStart;r.line=r.line.slice(0,r.sliceEnd)+n+t.line.slice(t.sliceStart,t.sliceEnd),r.locked=r.locked||t.locked,r.sliceEnd=r.line.length,e.mappings.length>0&&e.mappings.forEach(function(e){l.push(e.add(i,a))})}else e.mappings.length>0&&l.push.apply(l,e.mappings);e.infos.forEach(function(e,t){(!r||t>0)&&(r=s(e),u.push(r))})}}var r,a=n(this),u=[],l=[];if(e.map(function(e){var t=o(e);return t.isEmpty()?null:n(t)}).forEach(this.isEmpty()?t:function(e,r){r>0&&t(a),t(e)}),u.length<1)return D;var c=new i(u);return n(c).mappings=l,c},r.concat=function(e){return D.join(e)},g.concat=function(e){var t=arguments,r=[this];return r.push.apply(r,t),c.strictEqual(r.length,t.length+1),D.join(r)};var D=o("")},{"./mapping":567,"./options":568,"./types":572,"./util":573,assert:1,private:548,"source-map":586}],567:[function(e,t,r){function n(e,t,r){a.ok(this instanceof n),a.ok(e instanceof p.Lines),l.assert(t),r?a.ok(u.check(r.start.line)&&u.check(r.start.column)&&u.check(r.end.line)&&u.check(r.end.column)):r=t,Object.defineProperties(this,{sourceLines:{value:e},sourceLoc:{value:t},targetLoc:{value:r}})}function i(e,t,r){return{line:e.line+t-1,column:1===e.line?e.column+r:e.column}}function s(e,t,r){return{line:e.line-t+1,column:e.line===t?e.column-r:e.column}}var a=e("assert"),o=e("./types"),u=(o.builtInTypes.string,o.builtInTypes.number),l=o.namedTypes.SourceLocation,c=o.namedTypes.Position,p=e("./lines"),h=e("./util").comparePos,f=n.prototype;t.exports=n,f.slice=function(e,t,r){function i(n){var i=u[n],s=l[n],f=t;return"end"===n?f=r:a.strictEqual(n,"start"),function(e,t,r,n,i){a.ok(e instanceof p.Lines),a.ok(r instanceof p.Lines),c.assert(t),c.assert(n),c.assert(i);var s=h(n,i);if(0===s)return t;if(s<0){var o=e.skipSpaces(t),u=r.skipSpaces(n),l=i.line-u.line;for(o.line+=l,u.line+=l,l>0?(o.column=0,u.column=0):a.strictEqual(l,0);h(u,i)<0&&r.nextPos(u,!0);)a.ok(e.nextPos(o,!0)),a.strictEqual(e.charAt(o),r.charAt(u))}else for(o=e.skipSpaces(t,!0),u=r.skipSpaces(n,!0),l=i.line-u.line,o.line+=l,u.line+=l,l<0?(o.column=e.getLineLength(o.line),u.column=r.getLineLength(u.line)):a.strictEqual(l,0);h(i,u)<0&&r.prevPos(u,!0);)a.ok(e.prevPos(o,!0)),a.strictEqual(e.charAt(o),r.charAt(u));return o}(o,i,e,s,f)}a.ok(e instanceof p.Lines),c.assert(t),r?c.assert(r):r=e.lastPos();var o=this.sourceLines,u=this.sourceLoc,l=this.targetLoc;if(h(t,l.start)<=0)if(h(l.end,r)<=0)l={start:s(l.start,t.line,t.column),end:s(l.end,t.line,t.column)};else{if(h(r,l.start)<=0)return null;u={start:u.start,end:i("end")},l={start:s(l.start,t.line,t.column),end:s(r,t.line,t.column)}}else{if(h(l.end,t)<=0)return null;h(l.end,r)<=0?(u={start:i("start"),end:u.end},l={start:{line:1,column:0},end:s(l.end,t.line,t.column)}):(u={start:i("start"),end:i("end")},l={start:{line:1,column:0},end:s(r,t.line,t.column)})}return new n(this.sourceLines,u,l)},f.add=function(e,t){return new n(this.sourceLines,this.sourceLoc,{start:i(this.targetLoc.start,e,t),end:i(this.targetLoc.end,e,t)})},f.subtract=function(e,t){return new n(this.sourceLines,this.sourceLoc,{start:s(this.targetLoc.start,e,t),end:s(this.targetLoc.end,e,t)})},f.indent=function(e,t,r){if(0===e)return this;var i=this.targetLoc,s=i.start.line,a=i.end.line;if(t&&1===s&&1===a)return this;if(i={start:i.start,end:i.end},!t||s>1){var o=i.start.column+e;i.start={line:s,column:r?Math.max(0,o):o}}if(!t||a>1){var u=i.end.column+e;i.end={line:a,column:r?Math.max(0,u):u}}return new n(this.sourceLines,this.sourceLoc,i)}},{"./lines":566,"./types":572,"./util":573,assert:1}],568:[function(e,t,r){var n={parser:e("esprima"),tabWidth:4,useTabs:!1,reuseWhitespace:!0,lineTerminator:e("os").EOL,wrapColumn:74,sourceFileName:null,sourceMapName:null,sourceRoot:null,inputSourceMap:null,range:!1,tolerant:!0,quote:null,trailingComma:!1,arrayBracketSpacing:!1,objectCurlySpacing:!0,arrowParensAlways:!1,flowObjectCommas:!0},i=n.hasOwnProperty;r.normalize=function(e){function t(t){return i.call(e,t)?e[t]:n[t]}return e=e||n,{tabWidth:+t("tabWidth"),useTabs:!!t("useTabs"),reuseWhitespace:!!t("reuseWhitespace"),lineTerminator:t("lineTerminator"),wrapColumn:Math.max(t("wrapColumn"),0),sourceFileName:t("sourceFileName"),sourceMapName:t("sourceMapName"),sourceRoot:t("sourceRoot"),inputSourceMap:t("inputSourceMap"),parser:t("esprima")||t("parser"),range:t("range"),tolerant:t("tolerant"),quote:t("quote"),trailingComma:t("trailingComma"),arrayBracketSpacing:t("arrayBracketSpacing"),objectCurlySpacing:t("objectCurlySpacing"),arrowParensAlways:t("arrowParensAlways"),flowObjectCommas:t("flowObjectCommas")}}},{esprima:575,os:545}],569:[function(e,t,r){function n(e){i.ok(this instanceof n),this.lines=e,this.indent=0}var i=e("assert"),s=e("./types"),a=(s.namedTypes,s.builders),o=s.builtInTypes.object,u=s.builtInTypes.array,l=(s.builtInTypes.function,e("./patcher").Patcher,e("./options").normalize),c=e("./lines").fromString,p=e("./comments").attach,h=e("./util");r.parse=function(e,t){t=l(t);var r=c(e,t),i=r.toString({tabWidth:t.tabWidth,reuseWhitespace:!1,useTabs:!1}),s=[],o=t.parser.parse(i,{jsx:!0,loc:!0,locations:!0,range:t.range,comment:!0,onComment:s,tolerant:t.tolerant,ecmaVersion:6,sourceType:"module"});h.fixFaultyLocations(o,r),o.loc=o.loc||{start:r.firstPos(),end:r.lastPos()},o.loc.lines=r,o.loc.indent=0;var u=h.getTrueLoc(o,r);o.loc.start=u.start,o.loc.end=u.end,o.comments&&(s=o.comments,delete o.comments);if("Program"===(f=o).type){var f;(f=a.file(o,t.sourceFileName||null)).loc={lines:r,indent:0,start:r.firstPos(),end:r.lastPos()}}else"File"===f.type&&(o=f.program);return p(s,o.body.length?f.program:f,r),new n(r).copy(f)};n.prototype.copy=function(e){if(u.check(e))return e.map(this.copy,this);if(!o.check(e))return e;h.fixFaultyLocations(e,this.lines);var t=Object.create(Object.getPrototypeOf(e),{original:{value:e,configurable:!1,enumerable:!1,writable:!0}}),r=e.loc,n=this.indent,i=n;r&&(("Block"===e.type||"Line"===e.type||"CommentBlock"===e.type||"CommentLine"===e.type||this.lines.isPrecededOnlyByWhitespace(r.start))&&(i=this.indent=r.start.column),r.lines=this.lines,r.indent=i);for(var s=Object.keys(e),a=s.length,l=0;l<a;++l){var c=s[l];"loc"===c?t[c]=e[c]:"tokens"===c&&"File"===e.type?t[c]=e[c]:t[c]=this.copy(e[c])}return this.indent=n,t}},{"./comments":564,"./lines":566,"./options":568,"./patcher":570,"./types":572,"./util":573,assert:1}],570:[function(e,t,r){function n(e){c.ok(this instanceof n),c.ok(e instanceof p.Lines);var t=[];this.replace=function(e,r){A.check(r)&&(r=p.fromString(r)),t.push({lines:r,start:e.start,end:e.end})},this.get=function(r){function n(t,r){c.ok(b(t,r)<=0),s.push(e.slice(t,r))}var i=(r=r||{start:{line:1,column:0},end:{line:e.length,column:e.getLineLength(e.length)}}).start,s=[];return t.sort(function(e,t){return b(e.start,t.start)}).forEach(function(e){b(i,e.start)>0||(n(i,e.start),s.push(e.lines),i=e.end)}),n(i,r.end),p.concat(s)}}function i(e){var t=[];return e.comments&&e.comments.length>0&&e.comments.forEach(function(e){(e.leading||e.trailing)&&t.push(e)}),t}function s(e,t,r){var n=e.getValue();return n===t.getValue()||(E.check(n)?a(e,t,r):!!x.check(n)&&function(e,t,r){var n=e.getValue();if(x.assert(n),null===n.original)return!1;var i=t.getValue();if(!x.check(i))return!1;if(f.check(n)){if(!f.check(i))return!1;if(n.type===i.type){var s=[];if(l(e,t,s))r.push.apply(r,s);else{if(!i.loc)return!1;r.push({oldPath:t.copy(),newPath:e.copy()})}return!0}return!!(d.check(n)&&d.check(i)&&i.loc)&&(r.push({oldPath:t.copy(),newPath:e.copy()}),!0)}return l(e,t,r)}(e,t,r))}function a(e,t,r){var n=e.getValue(),i=t.getValue();E.assert(n);var a=n.length;if(!E.check(i)||i.length!==a)return!1;for(var o=0;o<a;++o){e.stack.push(o,n[o]),t.stack.push(o,i[o]);var u=s(e,t,r);if(e.stack.length-=2,t.stack.length-=2,!u)return!1}return!0}function o(e){var t=e.getValue().loc,r=t&&t.lines;if(r){var n=C;for(n.line=t.start.line,n.column=t.start.column;r.prevPos(n);){var i=r.charAt(n);if("("===i)return b(e.getRootValue().loc.start,n)<=0;if(_.test(i))return!1}}return!1}function u(e){return o(e)&&function(e){var t=e.getValue().loc,r=t&&t.lines;if(r){var n=C;n.line=t.end.line,n.column=t.end.column;do{var i=r.charAt(n);if(")"===i)return b(n,e.getRootValue().loc.end)<=0;if(_.test(i))return!1}while(r.nextPos(n))}return!1}(e)}function l(e,t,r){var n=e.getValue(),i=t.getValue();if(x.assert(n),x.assert(i),null===n.original)return!1;if(!e.canBeFirstInStatement()&&e.firstInStatement()&&!o(t))return!1;if(e.needsParens(!0)&&!u(t))return!1;var a=g.getUnionOfKeys(i,n);"File"!==i.type&&"File"!==n.type||delete a.tokens,delete a.loc;var l=r.length;for(var c in a){e.stack.push(c,h.getFieldValue(n,c)),t.stack.push(c,h.getFieldValue(i,c));var p=s(e,t,r);if(e.stack.length-=2,t.stack.length-=2,!p)return!1}return!(m.check(e.getNode())&&r.length>l)}var c=e("assert"),p=e("./lines"),h=e("./types"),f=(h.getFieldValue,h.namedTypes.Printable),d=h.namedTypes.Expression,m=h.namedTypes.ReturnStatement,y=h.namedTypes.SourceLocation,g=e("./util"),b=g.comparePos,v=e("./fast-path"),x=h.builtInTypes.object,E=h.builtInTypes.array,A=h.builtInTypes.string,D=/[0-9a-z_$]/i;r.Patcher=n;var S=n.prototype;S.tryToReprintComments=function(e,t,r){var n=this;if(!e.comments&&!t.comments)return!0;var s=v.from(e),o=v.from(t);s.stack.push("comments",i(e)),o.stack.push("comments",i(t));var u=[],l=a(s,o,u);return l&&u.length>0&&u.forEach(function(e){var t=e.oldPath.getValue();c.ok(t.leading||t.trailing),n.replace(t.loc,r(e.newPath).indentTail(t.loc.indent))}),l},S.deleteComments=function(e){if(e.comments){var t=this;e.comments.forEach(function(r){r.leading?t.replace({start:r.loc.start,end:e.loc.lines.skipSpaces(r.loc.end,!1,!1)},""):r.trailing&&t.replace({start:e.loc.lines.skipSpaces(r.loc.start,!0,!1),end:r.loc.end},"")})}},r.getReprinter=function(e){c.ok(e instanceof v);var t=e.getValue();if(f.check(t)){var r=t.original,i=r&&r.loc,s=i&&i.lines,a=[];if(s&&function(e,t){var r=e.getValue();f.assert(r);var n=r.original;if(f.assert(n),c.deepEqual(t,[]),r.type!==n.type)return!1;var i=l(e,new v(n),t);return i||(t.length=0),i}(e,a))return function(e){var t=new n(s);return a.forEach(function(r){var n=r.newPath.getValue(),i=r.oldPath.getValue();y.assert(i.loc,!0);var a=!t.tryToReprintComments(n,i,e);a&&t.deleteComments(i);var o=e(r.newPath,a).indentTail(i.loc.indent),u=function(e,t,r){var n=g.copyPos(t.start),i=e.prevPos(n)&&e.charAt(n),s=r.charAt(r.firstPos());return i&&D.test(i)&&s&&D.test(s)}(s,i.loc,o),l=function(e,t,r){var n=e.charAt(t.end),i=r.lastPos(),s=r.prevPos(i)&&r.charAt(i);return s&&D.test(s)&&n&&D.test(n)}(s,i.loc,o);if(u||l){var c=[];u&&c.push(" "),c.push(o),l&&c.push(" "),o=p.concat(c)}t.replace(i.loc,o)}),t.get(i).indentTail(-r.loc.indent)}}};var C={line:1,column:0},_=/\S/},{"./fast-path":565,"./lines":566,"./types":572,"./util":573,assert:1}],571:[function(e,t,r){function n(e,t){v.ok(this instanceof n),k.assert(e),this.code=e,t&&(F.assert(t),this.map=t)}function i(e){function t(e){return v.ok(e instanceof T),x(e,r)}function r(e,r){if(r)return t(e);if(v.ok(e instanceof T),!l){var n=c.tabWidth,i=e.getNode().loc;if(i&&i.lines&&i.lines.guessTabWidth){c.tabWidth=i.lines.guessTabWidth();var s=a(e);return c.tabWidth=n,s}}return a(e)}function a(e){var t=C(e);return t?function(e,t){return e.needsParens()?D(["(",t,")"]):t}(e,t(r)):o(e)}function o(e,r){return r?x(e,o):s(e,c,t)}function u(e){return s(e,c,u)}v.ok(this instanceof i);var l=e&&e.tabWidth,c=S(e);v.notStrictEqual(c,e),c.sourceFileName=null,this.print=function(e){if(!e)return O;var t=r(T.from(e),!0);return new n(t.toString(c),P.composeSourceMaps(c.inputSourceMap,t.getSourceMap(c.sourceMapName,c.sourceRoot)))},this.printGenerically=function(e){if(!e)return O;var t=T.from(e),r=c.reuseWhitespace;c.reuseWhitespace=!1;var i=new n(u(t).toString(c));return c.reuseWhitespace=r,i}}function s(e,t,r){v.ok(e instanceof T);var n=e.getValue(),i=[],s=!1,m=function(e,t,r){var n=e.getValue();if(!n)return A("");if("string"==typeof n)return A(n,t);w.Printable.assert(n);var i=[];switch(n.type){case"File":return e.call(r,"program");case"Program":return n.directives&&e.each(function(e){i.push(r(e),";\n")},"directives"),i.push(e.call(function(e){return a(e,t,r)},"body")),D(i);case"Noop":case"EmptyStatement":return A("");case"ExpressionStatement":return D([e.call(r,"expression"),";"]);case"ParenthesizedExpression":return D(["(",e.call(r,"expression"),")"]);case"BinaryExpression":case"LogicalExpression":case"AssignmentExpression":return A(" ").join([e.call(r,"left"),n.operator,e.call(r,"right")]);case"AssignmentPattern":return D([e.call(r,"left")," = ",e.call(r,"right")]);case"MemberExpression":i.push(e.call(r,"object"));var s=e.call(r,"property");return n.computed?i.push("[",s,"]"):i.push(".",s),D(i);case"MetaProperty":return D([e.call(r,"meta"),".",e.call(r,"property")]);case"BindExpression":return n.object&&i.push(e.call(r,"object")),i.push("::",e.call(r,"callee")),D(i);case"Path":return A(".").join(n.body);case"Identifier":return D([A(n.name,t),e.call(r,"typeAnnotation")]);case"SpreadElement":case"SpreadElementPattern":case"RestProperty":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return D(["...",e.call(r,"argument")]);case"FunctionDeclaration":case"FunctionExpression":return n.async&&i.push("async "),i.push("function"),n.generator&&i.push("*"),n.id&&i.push(" ",e.call(r,"id"),e.call(r,"typeParameters")),i.push("(",l(e,t,r),")",e.call(r,"returnType")," ",e.call(r,"body")),D(i);case"ArrowFunctionExpression":return n.async&&i.push("async "),n.typeParameters&&i.push(e.call(r,"typeParameters")),t.arrowParensAlways||1!==n.params.length||n.rest||"Identifier"!==n.params[0].type||n.params[0].typeAnnotation||n.returnType?i.push("(",l(e,t,r),")",e.call(r,"returnType")):i.push(e.call(r,"params",0)),i.push(" => ",e.call(r,"body")),D(i);case"MethodDefinition":return n.static&&i.push("static "),i.push(o(e,t,r)),D(i);case"YieldExpression":return i.push("yield"),n.delegate&&i.push("*"),n.argument&&i.push(" ",e.call(r,"argument")),D(i);case"AwaitExpression":return i.push("await"),n.all&&i.push("*"),n.argument&&i.push(" ",e.call(r,"argument")),D(i);case"ModuleDeclaration":return i.push("module",e.call(r,"id")),n.source?(v.ok(!n.body),i.push("from",e.call(r,"source"))):i.push(e.call(r,"body")),A(" ").join(i);case"ImportSpecifier":return n.imported?(i.push(e.call(r,"imported")),n.local&&n.local.name!==n.imported.name&&i.push(" as ",e.call(r,"local"))):n.id&&(i.push(e.call(r,"id")),n.name&&i.push(" as ",e.call(r,"name"))),D(i);case"ExportSpecifier":return n.local?(i.push(e.call(r,"local")),n.exported&&n.exported.name!==n.local.name&&i.push(" as ",e.call(r,"exported"))):n.id&&(i.push(e.call(r,"id")),n.name&&i.push(" as ",e.call(r,"name"))),D(i);case"ExportBatchSpecifier":return A("*");case"ImportNamespaceSpecifier":return i.push("* as "),n.local?i.push(e.call(r,"local")):n.id&&i.push(e.call(r,"id")),D(i);case"ImportDefaultSpecifier":return n.local?e.call(r,"local"):e.call(r,"id");case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return h(e,t,r);case"ExportAllDeclaration":return i.push("export *"),n.exported&&i.push(" as ",e.call(r,"exported")),i.push(" from ",e.call(r,"source")),D(i);case"ExportNamespaceSpecifier":return D(["* as ",e.call(r,"exported")]);case"ExportDefaultSpecifier":return e.call(r,"exported");case"Import":return A("import",t);case"ImportDeclaration":if(i.push("import "),n.importKind&&"value"!==n.importKind&&i.push(n.importKind+" "),n.specifiers&&n.specifiers.length>0){var m=!1;e.each(function(e){var n=e.getName();n>0&&i.push(", ");var s=e.getValue();w.ImportDefaultSpecifier.check(s)||w.ImportNamespaceSpecifier.check(s)?v.strictEqual(m,!1):(w.ImportSpecifier.assert(s),m||(m=!0,i.push(t.objectCurlySpacing?"{ ":"{"))),i.push(r(e))},"specifiers"),m&&i.push(t.objectCurlySpacing?" }":"}"),i.push(" from ")}return i.push(e.call(r,"source"),";"),D(i);case"BlockStatement":var g=e.call(function(e){return a(e,t,r)},"body");return!g.isEmpty()||n.directives&&0!==n.directives.length?(i.push("{\n"),n.directives&&e.each(function(e){i.push(r(e).indent(t.tabWidth),";",n.directives.length>1||!g.isEmpty()?"\n":"")},"directives"),i.push(g.indent(t.tabWidth)),i.push("\n}"),D(i)):A("{}");case"ReturnStatement":if(i.push("return"),n.argument){var x=e.call(r,"argument");x.startsWithComment()||x.length>1&&w.JSXElement&&w.JSXElement.check(n.argument)?i.push(" (\n",x.indent(t.tabWidth),"\n)"):i.push(" ",x)}return i.push(";"),D(i);case"CallExpression":return D([e.call(r,"callee"),u(e,t,r)]);case"ObjectExpression":case"ObjectPattern":case"ObjectTypeAnnotation":var E=!1,S="ObjectTypeAnnotation"===n.type,C=t.flowObjectCommas?",":S?";":",",_=[];S&&_.push("indexers","callProperties"),_.push("properties");var k=0;_.forEach(function(e){k+=n[e].length});var F=S&&1===k||0===k,T=n.exact?"{|":"{",B=n.exact?"|}":"}";i.push(F?T:T+"\n");var O=i.length-1,N=0;return _.forEach(function(n){e.each(function(e){var n=r(e);F||(n=n.indent(t.tabWidth));var s=!S&&n.length>1;s&&E&&i.push("\n"),i.push(n),N<k-1?(i.push(C+(s?"\n\n":"\n")),E=!s):1!==k&&S?i.push(C):!F&&P.isTrailingCommaEnabled(t,"objects")&&i.push(C),N++},n)}),i.push(F?B:"\n"+B),0!==N&&F&&t.objectCurlySpacing&&(i[O]=T+" ",i[i.length-1]=" "+B),D(i);case"PropertyPattern":return D([e.call(r,"key"),": ",e.call(r,"pattern")]);case"ObjectProperty":case"Property":if(n.method||"get"===n.kind||"set"===n.kind)return o(e,t,r);var j=e.call(r,"key");return n.computed?i.push("[",j,"]"):i.push(j),n.shorthand||i.push(": ",e.call(r,"value")),D(i);case"ClassMethod":return n.static&&i.push("static "),D([i,c(e,t,r)]);case"ObjectMethod":return c(e,t,r);case"Decorator":return D(["@",e.call(r,"expression")]);case"ArrayExpression":case"ArrayPattern":var I=n.elements,k=I.length,L=e.map(r,"elements"),M=A(", ").join(L),F=M.getLineLength(1)<=t.wrapColumn;return F?t.arrayBracketSpacing?i.push("[ "):i.push("["):i.push("[\n"),e.each(function(e){var r=e.getName(),n=e.getValue();if(n){var s=L[r];F?r>0&&i.push(" "):s=s.indent(t.tabWidth),i.push(s),(r<k-1||!F&&P.isTrailingCommaEnabled(t,"arrays"))&&i.push(","),F||i.push("\n")}else i.push(",")},"elements"),F&&t.arrayBracketSpacing?i.push(" ]"):i.push("]"),D(i);case"SequenceExpression":return A(", ").join(e.map(r,"expressions"));case"ThisExpression":return A("this");case"Super":return A("super");case"NullLiteral":return A("null");case"RegExpLiteral":return A(n.extra.raw);case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"Literal":return"string"!=typeof n.value?A(n.value,t):A(b(n.value,t),t);case"Directive":return e.call(r,"value");case"DirectiveLiteral":return A(b(n.value,t));case"ModuleSpecifier":if(n.local)throw new Error("The ESTree ModuleSpecifier type should be abstract");return A(b(n.value,t),t);case"UnaryExpression":return i.push(n.operator),/[a-z]$/.test(n.operator)&&i.push(" "),i.push(e.call(r,"argument")),D(i);case"UpdateExpression":return i.push(e.call(r,"argument"),n.operator),n.prefix&&i.reverse(),D(i);case"ConditionalExpression":return D(["(",e.call(r,"test")," ? ",e.call(r,"consequent")," : ",e.call(r,"alternate"),")"]);case"NewExpression":i.push("new ",e.call(r,"callee"));var R=n.arguments;return R&&i.push(u(e,t,r)),D(i);case"VariableDeclaration":i.push(n.kind," ");var V=0,L=e.map(function(e){var t=r(e);return V=Math.max(t.length,V),t},"declarations");1===V?i.push(A(", ").join(L)):L.length>1?i.push(A(",\n").join(L).indentTail(n.kind.length+1)):i.push(L[0]);var U=e.getParentNode();return w.ForStatement.check(U)||w.ForInStatement.check(U)||w.ForOfStatement&&w.ForOfStatement.check(U)||w.ForAwaitStatement&&w.ForAwaitStatement.check(U)||i.push(";"),D(i);case"VariableDeclarator":return n.init?A(" = ").join([e.call(r,"id"),e.call(r,"init")]):e.call(r,"id");case"WithStatement":return D(["with (",e.call(r,"object"),") ",e.call(r,"body")]);case"IfStatement":var q=d(e.call(r,"consequent"),t),i=["if (",e.call(r,"test"),")",q];return n.alternate&&i.push(y(q)?" else":"\nelse",d(e.call(r,"alternate"),t)),D(i);case"ForStatement":var G=e.call(r,"init"),X=G.length>1?";\n":"; ",J=A(X).join([G,e.call(r,"test"),e.call(r,"update")]).indentTail("for (".length),W=D(["for (",J,")"]),K=d(e.call(r,"body"),t),i=[W];return W.length>1&&(i.push("\n"),K=K.trimLeft()),i.push(K),D(i);case"WhileStatement":return D(["while (",e.call(r,"test"),")",d(e.call(r,"body"),t)]);case"ForInStatement":return D([n.each?"for each (":"for (",e.call(r,"left")," in ",e.call(r,"right"),")",d(e.call(r,"body"),t)]);case"ForOfStatement":return D(["for (",e.call(r,"left")," of ",e.call(r,"right"),")",d(e.call(r,"body"),t)]);case"ForAwaitStatement":return D(["for await (",e.call(r,"left")," of ",e.call(r,"right"),")",d(e.call(r,"body"),t)]);case"DoWhileStatement":var z=D(["do",d(e.call(r,"body"),t)]),i=[z];return y(z)?i.push(" while"):i.push("\nwhile"),i.push(" (",e.call(r,"test"),");"),D(i);case"DoExpression":var Y=e.call(function(e){return a(e,t,r)},"body");return D(["do {\n",Y.indent(t.tabWidth),"\n}"]);case"BreakStatement":return i.push("break"),n.label&&i.push(" ",e.call(r,"label")),i.push(";"),D(i);case"ContinueStatement":return i.push("continue"),n.label&&i.push(" ",e.call(r,"label")),i.push(";"),D(i);case"LabeledStatement":return D([e.call(r,"label"),":\n",e.call(r,"body")]);case"TryStatement":return i.push("try ",e.call(r,"block")),n.handler?i.push(" ",e.call(r,"handler")):n.handlers&&e.each(function(e){i.push(" ",r(e))},"handlers"),n.finalizer&&i.push(" finally ",e.call(r,"finalizer")),D(i);case"CatchClause":return i.push("catch (",e.call(r,"param")),n.guard&&i.push(" if ",e.call(r,"guard")),i.push(") ",e.call(r,"body")),D(i);case"ThrowStatement":return D(["throw ",e.call(r,"argument"),";"]);case"SwitchStatement":return D(["switch (",e.call(r,"discriminant"),") {\n",A("\n").join(e.map(r,"cases")),"\n}"]);case"SwitchCase":return n.test?i.push("case ",e.call(r,"test"),":"):i.push("default:"),n.consequent.length>0&&i.push("\n",e.call(function(e){return a(e,t,r)},"consequent").indent(t.tabWidth)),D(i);case"DebuggerStatement":return A("debugger;");case"JSXAttribute":return i.push(e.call(r,"name")),n.value&&i.push("=",e.call(r,"value")),D(i);case"JSXIdentifier":return A(n.name,t);case"JSXNamespacedName":return A(":").join([e.call(r,"namespace"),e.call(r,"name")]);case"JSXMemberExpression":return A(".").join([e.call(r,"object"),e.call(r,"property")]);case"JSXSpreadAttribute":return D(["{...",e.call(r,"argument"),"}"]);case"JSXExpressionContainer":return D(["{",e.call(r,"expression"),"}"]);case"JSXElement":var H=e.call(r,"openingElement");if(n.openingElement.selfClosing)return v.ok(!n.closingElement),H;var $=D(e.map(function(e){var t=e.getValue();if(w.Literal.check(t)&&"string"==typeof t.value){if(/\S/.test(t.value))return t.value.replace(/^\s+|\s+$/g,"");if(/\n/.test(t.value))return"\n"}return r(e)},"children")).indentTail(t.tabWidth),Q=e.call(r,"closingElement");return D([H,$,Q]);case"JSXOpeningElement":i.push("<",e.call(r,"name"));var Z=[];e.each(function(e){Z.push(" ",r(e))},"attributes");var ee=D(Z),te=ee.length>1||ee.getLineLength(1)>t.wrapColumn;return te&&(Z.forEach(function(e,t){" "===e&&(v.strictEqual(t%2,0),Z[t]="\n")}),ee=D(Z).indentTail(t.tabWidth)),i.push(ee,n.selfClosing?" />":">"),D(i);case"JSXClosingElement":return D(["</",e.call(r,"name"),">"]);case"JSXText":return A(n.value,t);case"JSXEmptyExpression":return A("");case"TypeAnnotatedIdentifier":return D([e.call(r,"annotation")," ",e.call(r,"identifier")]);case"ClassBody":return 0===n.body.length?A("{}"):D(["{\n",e.call(function(e){return a(e,t,r)},"body").indent(t.tabWidth),"\n}"]);case"ClassPropertyDefinition":return i.push("static ",e.call(r,"definition")),w.MethodDefinition.check(n.definition)||i.push(";"),D(i);case"ClassProperty":n.static&&i.push("static ");var j=e.call(r,"key");return n.computed?j=D(["[",j,"]"]):"plus"===n.variance?j=D(["+",j]):"minus"===n.variance&&(j=D(["-",j])),i.push(j),n.typeAnnotation&&i.push(e.call(r,"typeAnnotation")),n.value&&i.push(" = ",e.call(r,"value")),i.push(";"),D(i);case"ClassDeclaration":case"ClassExpression":return i.push("class"),n.id&&i.push(" ",e.call(r,"id"),e.call(r,"typeParameters")),n.superClass&&i.push(" extends ",e.call(r,"superClass"),e.call(r,"superTypeParameters")),n.implements&&n.implements.length>0&&i.push(" implements ",A(", ").join(e.map(r,"implements"))),i.push(" ",e.call(r,"body")),D(i);case"TemplateElement":return A(n.value.raw,t).lockIndentTail();case"TemplateLiteral":var re=e.map(r,"expressions");return i.push("`"),e.each(function(e){var t=e.getName();i.push(r(e)),t<re.length&&i.push("${",re[t],"}")},"quasis"),i.push("`"),D(i).lockIndentTail();case"TaggedTemplateExpression":return D([e.call(r,"tag"),e.call(r,"quasi")]);case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"TupleTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(n.type));case"CommentBlock":case"Block":return D(["/*",A(n.value,t),"*/"]);case"CommentLine":case"Line":return D(["//",A(n.value,t)]);case"TypeAnnotation":return n.typeAnnotation?("FunctionTypeAnnotation"!==n.typeAnnotation.type&&i.push(": "),i.push(e.call(r,"typeAnnotation")),D(i)):A("");case"ExistentialTypeParam":case"ExistsTypeAnnotation":return A("*",t);case"EmptyTypeAnnotation":return A("empty",t);case"AnyTypeAnnotation":return A("any",t);case"MixedTypeAnnotation":return A("mixed",t);case"ArrayTypeAnnotation":return D([e.call(r,"elementType"),"[]"]);case"BooleanTypeAnnotation":return A("boolean",t);case"BooleanLiteralTypeAnnotation":return v.strictEqual(typeof n.value,"boolean"),A(""+n.value,t);case"DeclareClass":return f(e,["class ",e.call(r,"id")," ",e.call(r,"body")]);case"DeclareFunction":return f(e,["function ",e.call(r,"id"),";"]);case"DeclareModule":return f(e,["module ",e.call(r,"id")," ",e.call(r,"body")]);case"DeclareModuleExports":return f(e,["module.exports",e.call(r,"typeAnnotation")]);case"DeclareVariable":return f(e,["var ",e.call(r,"id"),";"]);case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return D(["declare ",h(e,t,r)]);case"FunctionTypeAnnotation":var ne=e.getParentNode(0),ie=!(w.ObjectTypeCallProperty.check(ne)||w.DeclareFunction.check(e.getParentNode(2))),se=ie&&!w.FunctionTypeParam.check(ne);return se&&i.push(": "),i.push("(",A(", ").join(e.map(r,"params")),")"),n.returnType&&i.push(ie?" => ":": ",e.call(r,"returnType")),D(i);case"FunctionTypeParam":return D([e.call(r,"name"),n.optional?"?":"",": ",e.call(r,"typeAnnotation")]);case"GenericTypeAnnotation":return D([e.call(r,"id"),e.call(r,"typeParameters")]);case"DeclareInterface":i.push("declare ");case"InterfaceDeclaration":return i.push(A("interface ",t),e.call(r,"id"),e.call(r,"typeParameters")," "),n.extends&&i.push("extends ",A(", ").join(e.map(r,"extends"))),i.push(" ",e.call(r,"body")),D(i);case"ClassImplements":case"InterfaceExtends":return D([e.call(r,"id"),e.call(r,"typeParameters")]);case"IntersectionTypeAnnotation":return A(" & ").join(e.map(r,"types"));case"NullableTypeAnnotation":return D(["?",e.call(r,"typeAnnotation")]);case"NullLiteralTypeAnnotation":return A("null",t);case"ThisTypeAnnotation":return A("this",t);case"NumberTypeAnnotation":return A("number",t);case"ObjectTypeCallProperty":return e.call(r,"value");case"ObjectTypeIndexer":var ae="plus"===n.variance?"+":"minus"===n.variance?"-":"";return D([ae,"[",e.call(r,"id"),": ",e.call(r,"key"),"]: ",e.call(r,"value")]);case"ObjectTypeProperty":var ae="plus"===n.variance?"+":"minus"===n.variance?"-":"";return D([ae,e.call(r,"key"),n.optional?"?":"",": ",e.call(r,"value")]);case"QualifiedTypeIdentifier":return D([e.call(r,"qualification"),".",e.call(r,"id")]);case"StringLiteralTypeAnnotation":return A(b(n.value,t),t);case"NumberLiteralTypeAnnotation":case"NumericLiteralTypeAnnotation":return v.strictEqual(typeof n.value,"number"),A(JSON.stringify(n.value),t);case"StringTypeAnnotation":return A("string",t);case"DeclareTypeAlias":i.push("declare ");case"TypeAlias":return D(["type ",e.call(r,"id"),e.call(r,"typeParameters")," = ",e.call(r,"right"),";"]);case"TypeCastExpression":return D(["(",e.call(r,"expression"),e.call(r,"typeAnnotation"),")"]);case"TypeParameterDeclaration":case"TypeParameterInstantiation":return D(["<",A(", ").join(e.map(r,"params")),">"]);case"TypeParameter":switch(n.variance){case"plus":i.push("+");break;case"minus":i.push("-")}return i.push(e.call(r,"name")),n.bound&&i.push(e.call(r,"bound")),n.default&&i.push("=",e.call(r,"default")),D(i);case"TypeofTypeAnnotation":return D([A("typeof ",t),e.call(r,"argument")]);case"UnionTypeAnnotation":return A(" | ").join(e.map(r,"types"));case"VoidTypeAnnotation":return A("void",t);case"NullTypeAnnotation":return A("null",t);case"ClassHeritage":case"ComprehensionBlock":case"ComprehensionExpression":case"Glob":case"GeneratorExpression":case"LetStatement":case"LetExpression":case"GraphExpression":case"GraphIndexExpression":case"XMLDefaultDeclaration":case"XMLAnyName":case"XMLQualifiedIdentifier":case"XMLFunctionQualifiedIdentifier":case"XMLAttributeSelector":case"XMLFilterExpression":case"XML":case"XMLElement":case"XMLList":case"XMLEscape":case"XMLText":case"XMLStartTag":case"XMLEndTag":case"XMLPointTag":case"XMLName":case"XMLAttribute":case"XMLCdata":case"XMLComment":case"XMLProcessingInstruction":default:throw new Error("unknown type: "+JSON.stringify(n.type))}return p}(e,t,r);return!n||m.isEmpty()?m:(n.decorators&&n.decorators.length>0&&!P.getParentExportDeclaration(e)?e.each(function(e){i.push(r(e),"\n")},"decorators"):P.isExportDeclaration(n)&&n.declaration&&n.declaration.decorators?e.each(function(e){i.push(r(e),"\n")},"declaration","decorators"):s=e.needsParens(),s&&i.unshift("("),i.push(m),s&&i.push(")"),D(i))}function a(e,t,r){w.ClassBody&&w.ClassBody.check(e.getParentNode());var n=[],i=!1,s=!1;e.each(function(e){e.getName();var t=e.getValue();t&&"EmptyStatement"!==t.type&&(w.Comment.check(t)?i=!0:w.Statement.check(t)?s=!0:k.assert(t),n.push({node:t,printed:r(e)}))}),i&&v.strictEqual(s,!1,"Comments may appear as statements in otherwise empty statement lists, but may not coexist with non-Comment nodes.");var a=null,o=n.length,u=[];return n.forEach(function(e,r){var n,i,s=e.printed,l=e.node,c=s.length>1,p=r>0,h=r<o-1,f=l&&l.loc&&l.loc.lines,d=f&&t.reuseWhitespace&&P.getTrueLoc(l,f);if(p)if(d){var m=f.skipSpaces(d.start,!0),y=m?m.line:1,g=d.start.line-y;n=Array(g+1).join("\n")}else n=c?"\n\n":"\n";else n="";if(h)if(d){var b=f.skipSpaces(d.end),v=(b?b.line:f.length)-d.end.line;i=Array(v+1).join("\n")}else i=c?"\n\n":"\n";else i="";u.push(function(e,t){if(!e&&!t)return A("");if(!e)return A(t);if(!t)return A(e);var r=A(e),n=A(t);if(n.length>r.length)return n;return r}(a,n),s),h?a=i:i&&u.push(i)}),D(u)}function o(e,t,r){var n=e.getNode(),i=n.kind,s=[];"ObjectMethod"===n.type||"ClassMethod"===n.type?n.value=n:w.FunctionExpression.assert(n.value),n.value.async&&s.push("async "),i&&"init"!==i&&"method"!==i&&"constructor"!==i?(v.ok("get"===i||"set"===i),s.push(i," ")):n.value.generator&&s.push("*");var a=e.call(r,"key");return n.computed&&(a=D(["[",a,"]"])),s.push(a,e.call(r,"value","typeParameters"),"(",e.call(function(e){return l(e,t,r)},"value"),")",e.call(r,"value","returnType")," ",e.call(r,"value","body")),D(s)}function u(e,t,r){var n=e.map(r,"arguments"),i=P.isTrailingCommaEnabled(t,"parameters"),s=A(", ").join(n);return s.getLineLength(1)>t.wrapColumn?(s=A(",\n").join(n),D(["(\n",s.indent(t.tabWidth),i?",\n)":"\n)"])):D(["(",s,")"])}function l(e,t,r){var n=e.getValue();w.Function.assert(n);var i=e.map(r,"params");n.defaults&&e.each(function(e){var t=e.getName(),n=i[t];n&&e.getValue()&&(i[t]=D([n," = ",r(e)]))},"defaults"),n.rest&&i.push(D(["...",e.call(r,"rest")]));var s=A(", ").join(i);return s.length>1||s.getLineLength(1)>t.wrapColumn?(s=A(",\n").join(i),s=P.isTrailingCommaEnabled(t,"parameters")&&!n.rest&&"RestElement"!==n.params[n.params.length-1].type?D([s,",\n"]):D([s,"\n"]),D(["\n",s.indent(t.tabWidth)])):s}function c(e,t,r){var n=e.getValue(),i=[];if(n.async&&i.push("async "),n.generator&&i.push("*"),n.method||"get"===n.kind||"set"===n.kind)return o(e,t,r);var s=e.call(r,"key");return n.computed?i.push("[",s,"]"):i.push(s),i.push("(",l(e,t,r),")",e.call(r,"returnType")," ",e.call(r,"body")),D(i)}function h(e,t,r){var n=e.getValue(),i=["export "],s=t.objectCurlySpacing;w.Declaration.assert(n),(n.default||"ExportDefaultDeclaration"===n.type)&&i.push("default "),n.declaration?i.push(e.call(r,"declaration")):n.specifiers&&n.specifiers.length>0&&(1===n.specifiers.length&&"ExportBatchSpecifier"===n.specifiers[0].type?i.push("*"):i.push(s?"{ ":"{",A(", ").join(e.map(r,"specifiers")),s?" }":"}"),n.source&&i.push(" from ",e.call(r,"source")));var a=D(i);return";"===m(a)||n.declaration&&("FunctionDeclaration"===n.declaration.type||"ClassDeclaration"===n.declaration.type)||(a=D([a,";"])),a}function f(e,t){var r=P.getParentExportDeclaration(e);return r?v.strictEqual(r.type,"DeclareExportDeclaration"):t.unshift("declare "),D(t)}function d(e,t){return e.length>1?D([" ",e]):D(["\n",function(e){var t=m(e);return!t||"\n};".indexOf(t)<0?D([e,";"]):e}(e).indent(t.tabWidth)])}function m(e){var t=e.lastPos();do{var r=e.charAt(t);if(/\S/.test(r))return r}while(e.prevPos(t))}function y(e){return"}"===m(e)}function g(e){return e.replace(/['"]/g,function(e){return'"'===e?"'":'"'})}function b(e,t){switch(k.assert(e),t.quote){case"auto":var r=JSON.stringify(e),n=g(JSON.stringify(g(e)));return r.length>n.length?n:r;case"single":return g(JSON.stringify(g(e)));case"double":default:return JSON.stringify(e)}}var v=e("assert"),x=(e("source-map"),e("./comments").printComments),E=e("./lines"),A=E.fromString,D=E.concat,S=e("./options").normalize,C=e("./patcher").getReprinter,_=e("./types"),w=_.namedTypes,k=_.builtInTypes.string,F=_.builtInTypes.object,T=e("./fast-path"),P=e("./util"),B=!1;n.prototype.toString=function(){return B||(console.warn("Deprecation warning: recast.print now returns an object with a .code property. You appear to be treating the object as a string, which might still work but is strongly discouraged."),B=!0),this.code};var O=new n("");r.Printer=i},{"./comments":564,"./fast-path":565,"./lines":566,"./options":568,"./patcher":570,"./types":572,"./util":573,assert:1,"source-map":586}],572:[function(e,t,r){t.exports=e("ast-types")},{"ast-types":20}],573:[function(e,t,r){function n(e,t){return e.line-t.line||e.column-t.column}function i(e){return{line:e.line,column:e.column}}function s(e,t){e&&t&&(n(t.start,e.start)<0&&(e.start=t.start),n(e.end,t.end)<0&&(e.end=t.end))}var a=e("assert"),o=e("./types"),u=(o.getFieldValue,o.namedTypes),l=e("source-map"),c=l.SourceMapConsumer,p=l.SourceMapGenerator,h=Object.prototype.hasOwnProperty,f=r;f.getUnionOfKeys=function(){for(var e={},t=arguments.length,r=0;r<t;++r)for(var n=Object.keys(arguments[r]),i=n.length,s=0;s<i;++s)e[n[s]]=!0;return e},f.comparePos=n,f.copyPos=i,f.composeSourceMaps=function(e,t){if(!e)return t||null;if(!t)return e;var r=new c(e),n=new c(t),s=new p({file:t.file,sourceRoot:t.sourceRoot}),a={};return n.eachMapping(function(e){var t=r.originalPositionFor({line:e.originalLine,column:e.originalColumn}),n=t.source;if(null!==n){s.addMapping({source:n,original:i(t),generated:{line:e.generatedLine,column:e.generatedColumn},name:e.name});var o=r.sourceContentFor(n);o&&!h.call(a,n)&&(a[n]=o,s.setSourceContent(n,o))}}),s.toJSON()},f.getTrueLoc=function(e,t){function r(e){s(a,e.loc)}if(!e.loc)return null;var a={start:e.loc.start,end:e.loc.end};return e.comments&&e.comments.forEach(r),e.declaration&&f.isExportDeclaration(e)&&e.declaration.decorators&&e.declaration.decorators.forEach(r),n(a.start,a.end)<0&&(a.start=i(a.start),t.skipSpaces(a.start,!1,!0),n(a.start,a.end)<0&&(a.end=i(a.end),t.skipSpaces(a.end,!0,!0))),a},f.fixFaultyLocations=function(e,t){if((o=e.loc)&&(o.start.line<1&&(o.start.line=1),o.end.line<1&&(o.end.line=1)),"File"===e.type&&(o.start=t.firstPos(),o.end=t.lastPos()),"TemplateLiteral"===e.type)!function(e,t){if(a.strictEqual(e.type,"TemplateLiteral"),0!==e.quasis.length){var r=i(e.loc.start);a.strictEqual(t.charAt(r),"`"),a.ok(t.nextPos(r));var s=e.quasis[0];n(s.loc.start,r)<0&&(s.loc.start=r);var o=i(e.loc.end);a.ok(t.prevPos(o)),a.strictEqual(t.charAt(o),"`");var u=e.quasis[e.quasis.length-1];n(o,u.loc.end)<0&&(u.loc.end=o),e.expressions.forEach(function(r,i){var s=t.skipSpaces(r.loc.start,!0,!1);if(t.prevPos(s)&&"{"===t.charAt(s)&&t.prevPos(s)&&"$"===t.charAt(s)){var o=e.quasis[i];n(s,o.loc.end)<0&&(o.loc.end=s)}var u=t.skipSpaces(r.loc.end,!1,!1);if("}"===t.charAt(u)){a.ok(t.nextPos(u));var l=e.quasis[i+1];n(l.loc.start,u)<0&&(l.loc.start=u)}})}}(e,t);else if(o&&e.decorators)e.decorators.forEach(function(e){s(o,e.loc)});else if(e.declaration&&f.isExportDeclaration(e)){e.declaration.loc=null;var r=e.declaration.decorators;r&&r.forEach(function(e){s(o,e.loc)})}else if(u.MethodDefinition&&u.MethodDefinition.check(e)||u.Property.check(e)&&(e.method||e.shorthand))e.value.loc=null,u.FunctionExpression.check(e.value)&&(e.value.id=null);else if("ObjectTypeProperty"===e.type){var o,l=(o=e.loc)&&o.end;l&&(l=i(l),t.prevPos(l)&&","===t.charAt(l)&&(l=t.skipSpaces(l,!0,!0))&&(o.end=l))}},f.isExportDeclaration=function(e){if(e)switch(e.type){case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportDefaultSpecifier":case"DeclareExportDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return!0}return!1},f.getParentExportDeclaration=function(e){var t=e.getParentNode();return"declaration"===e.getName()&&f.isExportDeclaration(t)?t:null},f.isTrailingCommaEnabled=function(e,t){var r=e.trailingComma;return"object"==typeof r?!!r[t]:!!r}},{"./types":572,assert:1,"source-map":586}],574:[function(e,t,r){(function(t){function n(e,t){return new a(t).print(e)}var i=e("./lib/types"),s=e("./lib/parser").parse,a=e("./lib/printer").Printer;Object.defineProperties(r,{parse:{enumerable:!0,value:s},visit:{enumerable:!0,value:i.visit},print:{enumerable:!0,value:n},prettyPrint:{enumerable:!1,value:function(e,t){return new a(t).printGenerically(e)}},types:{enumerable:!1,value:i},run:{enumerable:!1,value:function(r,i){return function(r,i,a){e("fs").readFile(r,"utf-8",function(e,r){e?console.error(e):function(e,r,i){var a=i&&i.writeback||function(e){t.stdout.write(e)};r(s(e,i),function(e){a(n(e,i).code)})}(r,i,a)})}(t.argv[2],r,i)}}})}).call(this,e("_process"))},{"./lib/parser":569,"./lib/printer":571,"./lib/types":572,_process:550,fs:192}],575:[function(e,t,r){!function(e,n){"object"==typeof r&&"object"==typeof t?t.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof r?r.esprima=n():e.esprima=n()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";var n=r(1),i=r(3),s=r(11),a=r(15);t.parse=function(e,t,r){var a=null,o=function(e,t){r&&r(e,t),a&&a.visit(e,t)},u="function"==typeof r?o:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var c="boolean"==typeof t.attachComment&&t.attachComment;(l||c)&&((a=new n.CommentHandler).attach=c,t.comment=!0,u=o)}var p,h=(p=t&&"boolean"==typeof t.jsx&&t.jsx?new s.JSXParser(e,t,u):new i.Parser(e,t,u)).parseProgram();return l&&(h.comments=a.comments),p.config.tokens&&(h.tokens=p.tokens),p.config.tolerant&&(h.errors=p.errorHandler.errors),h},t.tokenize=function(e,t,r){var n,i=new a.Tokenizer(e,t);n=[];try{for(;;){var s=i.getNextToken();if(!s)break;r&&(s=r(s)),n.push(s)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n};var o=r(2);t.Syntax=o.Syntax,t.version="3.1.3"},function(e,t,r){"use strict";var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var s=this.leading[i];t.end.offset>=s.start&&(r.unshift(s.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e,t){var r=[];if(this.trailing.length>0){for(var n=this.trailing.length-1;n>=0;--n){var i=this.trailing[n];i.start>=t.end.offset&&r.unshift(i.comment)}return this.trailing.length=0,r}var s=this.stack[this.stack.length-1];if(s&&s.node.trailingComments){var a=s.node.trailingComments[0];a&&a.range[0]>=t.end.offset&&(r=s.node.trailingComments,delete s.node.trailingComments)}return r},e.prototype.findLeadingComments=function(e,t){for(var r,n=[];this.stack.length>0;){if(!((a=this.stack[this.stack.length-1])&&a.start>=t.start.offset))break;r=this.stack.pop().node}if(r){for(var i=(r.leadingComments?r.leadingComments.length:0)-1;i>=0;--i){var s=r.leadingComments[i];s.range[1]<=t.start.offset&&(n.unshift(s),r.leadingComments.splice(i,1))}return r.leadingComments&&0===r.leadingComments.length&&delete r.leadingComments,n}for(i=this.leading.length-1;i>=0;--i){var a;(a=this.leading[i]).start<=t.start.offset&&(n.unshift(a.comment),this.leading.splice(i,1))}return n},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n=r(4),i=r(5),s=r(6),a=r(7),o=r(8),u=r(2),l=r(10),c="ArrowParameterPlaceHolder",p=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new s.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new o.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),s=e.replace(/%(\d)/g,function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,o=this.lastMarker.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;throw this.errorHandler.createError(a,o,u,s)},e.prototype.tolerateError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),s=e.replace(/%(\d)/g,function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,o=this.scanner.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;this.errorHandler.tolerateError(a,o,u,s)},e.prototype.unexpectedTokenError=function(e,t){var r,n=t||i.Messages.UnexpectedToken;if(e?(t||(n=e.type===a.Token.EOF?i.Messages.UnexpectedEOS:e.type===a.Token.Identifier?i.Messages.UnexpectedIdentifier:e.type===a.Token.NumericLiteral?i.Messages.UnexpectedNumber:e.type===a.Token.StringLiteral?i.Messages.UnexpectedString:e.type===a.Token.Template?i.Messages.UnexpectedTemplate:i.Messages.UnexpectedToken,e.type===a.Token.Keyword&&(this.scanner.isFutureReservedWord(e.value)?n=i.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=i.Messages.StrictReservedWord))),r=e.type===a.Token.Template?e.value.raw:e.value):r="ILLEGAL",n=n.replace("%0",r),e&&"number"==typeof e.lineNumber){var s=e.start,o=e.lineNumber,u=e.start-this.lastMarker.lineStart+1;return this.errorHandler.createError(s,o,u,n)}s=this.lastMarker.index,o=this.lastMarker.lineNumber,u=s-this.lastMarker.lineStart+1;return this.errorHandler.createError(s,o,u,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var r=e[t],n=void 0;n={type:r.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(r.slice[0],r.slice[1])},this.config.range&&(n.range=r.range),this.config.loc&&(n.loc=r.loc);var i={start:{line:r.loc.start.line,column:r.loc.start.column,offset:r.range[0]},end:{line:r.loc.end.line,column:r.loc.end.column,offset:r.range[1]}};this.delegate(n,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t;return t={type:a.TokenName[e.type],value:this.getTokenRaw(e)},this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.regex&&(t.regex=e.regex),t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var t;return t=this.scanner.lex(),this.hasLineTerminator=!(!e||!t)&&e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===a.Token.Identifier&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=a.Token.Keyword),this.lookahead=t,this.config.tokens&&t.type!==a.Token.EOF&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart}},e.prototype.startNode=function(e){return{index:e.start,line:e.lineNumber,column:e.start-e.lineStart}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var r={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart,offset:this.lastMarker.index}};this.delegate(t,r)}return t},e.prototype.expect=function(e){var t=this.nextToken();t.type===a.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;e.type===a.Token.Punctuator&&","===e.value?this.nextToken():e.type===a.Token.Punctuator&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,i.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();t.type===a.Token.Keyword&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return this.lookahead.type===a.Token.Punctuator&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return this.lookahead.type===a.Token.Keyword&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return this.lookahead.type===a.Token.Identifier&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(this.lookahead.type!==a.Token.Punctuator)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===a.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case a.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(n,new l.Identifier(this.nextToken().value));break;case a.Token.NumericLiteral:case a.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,(t=this.nextToken()).value="true"===t.value,r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,(t=this.nextToken()).value=null,r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.Template:e=this.parseTemplateLiteral();break;case a.Token.Punctuator:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new l.RegexLiteral(t.value,r,t.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case a.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new l.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,r},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,r.params,n,!1))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),r=null;switch(t.type){case a.Token.StringLiteral:case a.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var n=this.getTokenRaw(t);r=this.finalize(e,new l.Literal(t.value,n));break;case a.Token.Identifier:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.Keyword:r=this.finalize(e,new l.Identifier(t.value));break;case a.Token.Punctuator:"["===t.value?(r=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return r},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r,n,s=this.createNode(),o=this.lookahead,u=!1,c=!1,p=!1;o.type===a.Token.Identifier?(this.nextToken(),r=this.finalize(s,new l.Identifier(o.value))):this.match("*")?this.nextToken():(u=this.match("["),r=this.parseObjectPropertyKey());var h=this.qualifiedPropertyName(this.lookahead);if(o.type===a.Token.Identifier&&"get"===o.value&&h)t="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,n=this.parseGetterMethod();else if(o.type===a.Token.Identifier&&"set"===o.value&&h)t="set",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseSetterMethod();else if(o.type===a.Token.Punctuator&&"*"===o.value&&h)t="init",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseGeneratorMethod(),c=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),n=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))n=this.parsePropertyMethodFunction(),c=!0;else if(o.type===a.Token.Identifier){var f=this.finalize(s,new l.Identifier(o.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),p=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);n=this.finalize(s,new l.AssignmentPattern(f,d))}else p=!0,n=f}else this.throwUnexpectedToken(this.nextToken());return this.finalize(s,new l.Property(t,r,u,n,c,p))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(r,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==a.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(r,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new l.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(var t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:e.type=u.Syntax.ObjectPattern;for(t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:c,params:[]};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:c,params:[e]};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index<this.scanner.length&&this.match(",");){if(this.nextToken(),this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(r)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(var s=0;s<i.length;s++)this.reinterpretExpressionAsPattern(i[s]);n=!0,e={type:c,params:i}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new l.SequenceExpression(i)))}if(!n){if(this.expect(")"),this.match("=>")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:c,params:[e]}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(s=0;s<e.expressions.length;s++)this.reinterpretExpressionAsPattern(e.expressions[s]);else this.reinterpretExpressionAsPattern(e);var a=e.type===u.Syntax.SequenceExpression?e.expressions:[e];e={type:c,params:a}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;this.expectCommaSeparator()}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return e.type===a.Token.Identifier||e.type===a.Token.Keyword||e.type===a.Token.BooleanLiteral||e.type===a.Token.NullLiteral},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new l.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e=this.createNode(),t=this.parseIdentifierName();n.assert("new"===t.name,"New expression must start with `new`");var r;if(this.match("."))if(this.nextToken(),this.lookahead.type===a.Token.Identifier&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();r=new l.MetaProperty(t,i)}else this.throwUnexpectedToken(this.lookahead);else{var s=this.isolateCoverGrammar(this.parseLeftHandSideExpression),o=this.match("(")?this.parseArguments():[];r=new l.NewExpression(s,o),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,r)},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e=this.lookahead,t=this.context.allowIn;this.context.allowIn=!0;var r;for(this.matchKeyword("super")&&this.context.inFunctionBody?(r=this.createNode(),this.nextToken(),r=this.finalize(r,new l.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):r=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var n=this.parseIdentifierName();r=this.finalize(this.startNode(e),new l.StaticMemberExpression(r,n))}else if(this.match("(")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var i=this.parseArguments();r=this.finalize(this.startNode(e),new l.CallExpression(r,i))}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");n=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),r=this.finalize(this.startNode(e),new l.ComputedMemberExpression(r,n))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var s=this.parseTemplateLiteral();r=this.finalize(this.startNode(e),new l.TaggedTemplateExpression(r,s))}return this.context.allowIn=t,r},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new l.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new l.ComputedMemberExpression(t,r))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");r=this.parseIdentifierName();t=this.finalize(e,new l.StaticMemberExpression(t,r))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new l.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var r=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment);var s=!0;e=this.finalize(r,new l.UpdateExpression(n.value,e,s)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===a.Token.Punctuator&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var o=this.nextToken().value;s=!1;e=this.finalize(this.startNode(t),new l.UpdateExpression(o,e,s))}return e},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new l.UnaryExpression(r.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(i.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new l.BinaryExpression("**",r,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return e.type===a.Token.Punctuator?this.operatorPrecedence[t]||0:e.type===a.Token.Keyword&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),r=this.lookahead,n=this.binaryPrecedence(r);if(n>0){this.nextToken(),r.prec=n,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],s=t,a=this.isolateCoverGrammar(this.parseExponentiationExpression),o=[s,r,a];!((n=this.binaryPrecedence(this.lookahead))<=0);){for(;o.length>2&&n<=o[o.length-2].prec;){a=o.pop();var u=o.pop().value;s=o.pop(),i.pop();var c=this.startNode(i[i.length-1]);o.push(this.finalize(c,new l.BinaryExpression(u,s,a)))}(r=this.nextToken()).prec=n,o.push(r),i.push(this.lookahead),o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var p=o.length-1;for(t=o[p],i.pop();p>1;){c=this.startNode(i.pop());t=this.finalize(c,new l.BinaryExpression(o[p-1].value,o[p-2],t)),p-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new l.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(var r=0;r<t.elements.length;r++)null!==t.elements[r]&&this.checkPatternParam(e,t.elements[r]);break;case u.Syntax.YieldExpression:break;default:n.assert(t.type===u.Syntax.ObjectPattern,"Invalid type");for(r=0;r<t.properties.length;r++)this.checkPatternParam(e,t.properties[r].value)}},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,r=[e];switch(e.type){case u.Syntax.Identifier:break;case c:r=e.params;break;default:return null}t={paramSet:{}};for(var n=0;n<r.length;++n){(s=r[n]).type===u.Syntax.AssignmentPattern&&s.right.type===u.Syntax.YieldExpression&&(s.right.argument&&this.throwUnexpectedToken(this.lookahead),s.right.type=u.Syntax.Identifier,s.right.name="yield",delete s.right.argument,delete s.right.delegate),this.checkPatternParam(t,s),r[n]=s}if(this.context.strict||!this.context.allowYield)for(n=0;n<r.length;++n){var s;(s=r[n]).type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===i.Messages.StrictParamDupe){var a=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(a,t.message)}return{params:r,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,r=t;if((e=this.parseConditionalExpression()).type===c||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=this.reinterpretAsCoverFormalsList(e);if(n){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var s=this.context.strict,a=this.context.allowYield;this.context.allowYield=!0;var o=this.startNode(t);this.expect("=>");var p=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),h=p.type!==u.Syntax.BlockStatement;this.context.strict&&n.firstRestricted&&this.throwUnexpectedToken(n.firstRestricted,n.message),this.context.strict&&n.stricted&&this.tolerateUnexpectedToken(n.stricted,n.message),e=this.finalize(o,new l.ArrowFunctionExpression(n.params,p,h)),this.context.strict=s,this.context.allowYield=a}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var f=e;this.scanner.isRestrictedWord(f.name)&&this.tolerateUnexpectedToken(r,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(f.name)&&this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),r=this.nextToken();var d=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new l.AssignmentExpression(r.value,e,d)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);this.startMarker.index<this.scanner.length&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new l.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e=null;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===a.Token.Keyword)switch(this.lookahead.value){case"export":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.finalize(e,new l.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=this.parsePattern([],e);this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(i.Messages.StrictVarName);var s=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)):(!t.inFor&&n.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),s=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new l.VariableDeclarator(n,s))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.index,t=this.scanner.lineNumber,r=this.scanner.lineStart;this.collectComments();var n=this.scanner.lex();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=r,n.type===a.Token.Identifier||n.type===a.Token.Punctuator&&"["===n.value||n.type===a.Token.Punctuator&&"{"===n.value||n.type===a.Token.Keyword&&"let"===n.value||n.type===a.Token.Keyword&&"yield"===n.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new l.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new l.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new l.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),s=!1,o=!1;if(this.lookahead.type===a.Token.Identifier){var u=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new l.Identifier(u.value));if(this.match("=")){e.push(u),o=!0,this.nextToken();var p=this.parseAssignmentExpression();n=this.finalize(this.startNode(u),new l.AssignmentPattern(c,p))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(u),o=!0,n=c)}else s=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new l.Property("init",r,s,n,!1,o))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new l.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,i.Messages.UnexpectedToken),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new l.AssignmentPattern(n,s))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return r.type===a.Token.Keyword&&"yield"===r.value?(this.context.strict&&this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord),this.context.allowYield||this.throwUnexpectedToken(r)):r.type!==a.Token.Identifier?this.context.strict&&r.type===a.Token.Keyword&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):"module"===this.sourceType&&r.type===a.Token.Identifier&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new l.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=this.parsePattern([],"var");this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictVarName);var n=null;return this.match("=")?(this.nextToken(),n=this.isolateCoverGrammar(this.parseAssignmentExpression)):r.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new l.VariableDeclarator(r,n))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(t))},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),e=this.parseStatement(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseStatement())),this.finalize(t,new l.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return this.expect(")"),this.match(";")&&this.nextToken(),this.finalize(e,new l.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new l.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r=null,n=null,s=null,a=!0,o=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){r=this.createNode(),this.nextToken();var c=this.context.allowIn;this.context.allowIn=!1;var p=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=c,1===p.length&&this.matchKeyword("in")){var h=p[0];h.init&&(h.id.type===u.Syntax.ArrayPattern||h.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(i.Messages.ForInOfLoopInitializer,"for-in"),r=this.finalize(r,new l.VariableDeclaration(p,"var")),this.nextToken(),e=r,t=this.parseExpression(),r=null}else 1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(r=this.finalize(r,new l.VariableDeclaration(p,"var")),this.nextToken(),e=r,t=this.parseAssignmentExpression(),r=null,a=!1):(r=this.finalize(r,new l.VariableDeclaration(p,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){r=this.createNode();var f=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){c=this.context.allowIn;this.context.allowIn=!1;p=this.parseBindingList(f,{inFor:!0});this.context.allowIn=c,1===p.length&&null===p[0].init&&this.matchKeyword("in")?(r=this.finalize(r,new l.VariableDeclaration(p,f)),this.nextToken(),e=r,t=this.parseExpression(),r=null):1===p.length&&null===p[0].init&&this.matchContextualKeyword("of")?(r=this.finalize(r,new l.VariableDeclaration(p,f)),this.nextToken(),e=r,t=this.parseAssignmentExpression(),r=null,a=!1):(this.consumeSemicolon(),r=this.finalize(r,new l.VariableDeclaration(p,f)))}else r=this.finalize(r,new l.Identifier(f)),this.nextToken(),e=r,t=this.parseExpression(),r=null}else{var d=this.lookahead;c=this.context.allowIn;if(this.context.allowIn=!1,r=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=c,this.matchKeyword("in"))this.context.isAssignmentTarget&&r.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(r),e=r,t=this.parseExpression(),r=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&r.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(r),e=r,t=this.parseAssignmentExpression(),r=null,a=!1;else{if(this.match(",")){for(var m=[r];this.match(",");)this.nextToken(),m.push(this.isolateCoverGrammar(this.parseAssignmentExpression));r=this.finalize(this.startNode(d),new l.SequenceExpression(m))}this.expect(";")}}void 0===e&&(this.match(";")||(n=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression()));var y;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),y=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var g=this.context.inIteration;this.context.inIteration=!0,y=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=g}return void 0===e?this.finalize(o,new l.ForStatement(r,n,s,y)):a?this.finalize(o,new l.ForInStatement(e,t,y)):this.finalize(o,new l.ForOfStatement(e,t,y))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){var r="$"+(t=this.parseVariableIdentifier()).name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(i.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){var r="$"+(t=this.parseVariableIdentifier()).name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(i.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(i.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==a.Token.EOF?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(i.Messages.StrictModeWith);var e=this.createNode();this.expectKeyword("with"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.parseStatement();return this.finalize(e,new l.WithStatement(t,r))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];!(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"));)r.push(this.parseStatementListItem());return this.finalize(t,new l.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],s=!1;for(this.expect("{");!this.match("}");){var a=this.parseSwitchCase();null===a.test&&(s&&this.throwError(i.Messages.MultipleDefaultsInSwitch),s=!0),n.push(a)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new l.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,s="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)&&this.throwError(i.Messages.Redeclaration,"Label",n.name),this.context.labelSet[s]=!0;var a=this.parseStatement();delete this.context.labelSet[s],e=new l.LabeledStatement(n,a)}else this.consumeSemicolon(),e=new l.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(i.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},s=0;s<t.length;s++){var a="$"+t[s].value;Object.prototype.hasOwnProperty.call(n,a)&&this.tolerateError(i.Messages.DuplicateBinding,t[s].value),n[a]=!0}this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictCatchVariable),this.expect(")");var o=this.parseBlock();return this.finalize(e,new l.CatchClause(r,o))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),r=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return r||n||this.throwError(i.Messages.NoCatchOrFinally),this.finalize(e,new l.TryStatement(t,r,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new l.DebuggerStatement)},e.prototype.parseStatement=function(){var e=null;switch(this.lookahead.type){case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.StringLiteral:case a.Token.Template:case a.Token.RegularExpression:e=this.parseExpressionStatement();break;case a.Token.Punctuator:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case a.Token.Identifier:e=this.parseLabelledStatement();break;case a.Token.Keyword:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),r=this.context.labelSet,n=this.context.inIteration,i=this.context.inSwitch,s=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.startMarker.index<this.scanner.length&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=r,this.context.inIteration=n,this.context.inSwitch=i,this.context.inFunctionBody=s,this.finalize(e,new l.BlockStatement(t))},e.prototype.validateParam=function(e,t,r){var n="$"+r;this.context.strict?(this.scanner.isRestrictedWord(r)&&(e.stricted=t,e.message=i.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(r)?(e.firstRestricted=t,e.message=i.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(r)?(e.firstRestricted=t,e.message=i.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var r=this.parsePattern(e);return this.match("=")&&this.throwError(i.Messages.DefaultRestParameter),this.match(")")||this.throwError(i.Messages.ParameterAfterRestParameter),this.finalize(t,new l.RestElement(r))},e.prototype.parseFormalParameter=function(e){for(var t=[],r=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);return e.params.push(r),!this.match(")")},e.prototype.parseFormalParameters=function(e){var t;if(t={params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};this.startMarker.index<this.scanner.length&&this.parseFormalParameter(t);)this.expect(",");return this.expect(")"),{params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode();this.expectKeyword("function");var r=this.match("*");r&&this.nextToken();var n,s=null,a=null;if(!e||!this.match("(")){var o=this.lookahead;s=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(a=o,n=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(a=o,n=i.Messages.StrictReservedWord)}var u=this.context.allowYield;this.context.allowYield=!r;var c=this.parseFormalParameters(a),p=c.params,h=c.stricted;a=c.firstRestricted,c.message&&(n=c.message);var f=this.context.strict,d=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,n),this.context.strict&&h&&this.tolerateUnexpectedToken(h,n),this.context.strict=f,this.context.allowYield=u,this.finalize(t,new l.FunctionDeclaration(s,p,d,r))},e.prototype.parseFunctionExpression=function(){var e=this.createNode();this.expectKeyword("function");var t=this.match("*");t&&this.nextToken();var r,n,s=null,a=this.context.allowYield;if(this.context.allowYield=!t,!this.match("(")){var o=this.lookahead;s=this.context.strict||t||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(n=o,r=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(n=o,r=i.Messages.StrictReservedWord)}var u=this.parseFormalParameters(n),c=u.params,p=u.stricted;n=u.firstRestricted,u.message&&(r=u.message);var h=this.context.strict,f=this.parseFunctionSourceElements();return this.context.strict&&n&&this.throwUnexpectedToken(n,r),this.context.strict&&p&&this.tolerateUnexpectedToken(p,r),this.context.strict=h,this.context.allowYield=a,this.finalize(e,new l.FunctionExpression(s,c,f,t))},e.prototype.parseDirective=function(){var e=this.lookahead,t=null,r=this.createNode(),n=this.parseExpression();return n.type===u.Syntax.Literal&&(t=this.getTokenRaw(e).slice(1,-1)),this.consumeSemicolon(),this.finalize(r,t?new l.Directive(n,t):new l.ExpressionStatement(n))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var r=this.lookahead;if(r.type!==a.Token.StringLiteral)break;var n=this.parseDirective();t.push(n);var s=n.directive;if("string"!=typeof s)break;"use strict"===s?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,i.Messages.StrictOctalLiteral)):!e&&r.octal&&(e=r)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case a.Token.Identifier:case a.Token.StringLiteral:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.Keyword:return!0;case a.Token.Punctuator:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode();this.expect("("),this.expect(")");var t={params:[],stricted:null,firstRestricted:null,message:null},r=this.context.allowYield;this.context.allowYield=!1;var n=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,t.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t={params:[],firstRestricted:null,paramSet:{}},r=this.context.allowYield;this.context.allowYield=!1,this.expect("("),this.match(")")?this.tolerateUnexpectedToken(this.lookahead):this.parseFormalParameter(t),this.expect(")");var n=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,t.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case a.Token.Punctuator:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case a.Token.Keyword:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new l.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t,r,n,s=this.lookahead,o=this.createNode(),u=!1,c=!1,p=!1;if(this.match("*"))this.nextToken();else{u=this.match("[");"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(s=this.lookahead,p=!0,u=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey())}var h=this.qualifiedPropertyName(this.lookahead);return s.type===a.Token.Identifier?"get"===s.value&&h?(t="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,n=this.parseGetterMethod()):"set"===s.value&&h&&(t="set",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseSetterMethod()):s.type===a.Token.Punctuator&&"*"===s.value&&h&&(t="init",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseGeneratorMethod(),c=!0),!t&&r&&this.match("(")&&(t="init",n=this.parsePropertyMethodFunction(),c=!0),t||this.throwUnexpectedToken(this.lookahead),"init"===t&&(t="method"),u||(p&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(s,i.Messages.StaticPrototype),!p&&this.isPropertyKey(r,"constructor")&&("method"===t&&c&&!n.generator||this.throwUnexpectedToken(s,i.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(s,i.Messages.DuplicateConstructor):e.value=!0,t="constructor")),this.finalize(o,new l.MethodDefinition(r,u,n,t,p))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new l.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&this.lookahead.type!==a.Token.Identifier?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var s=this.parseClassBody();return this.context.strict=r,this.finalize(t,new l.ClassDeclaration(n,i,s))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=this.lookahead.type===a.Token.Identifier?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new l.ClassExpression(r,n,i))},e.prototype.parseProgram=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();this.startMarker.index<this.scanner.length;)t.push(this.parseStatementListItem());return this.finalize(e,new l.Program(t,this.sourceType))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==a.Token.StringLiteral&&this.throwError(i.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new l.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return this.lookahead.type===a.Token.Identifier?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new l.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new l.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(i.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new l.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var t,r=[];if(this.lookahead.type===a.Token.StringLiteral)t=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new l.ImportDeclaration(r,t))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new l.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){var r=this.parseFunctionDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(r))}else if(this.matchKeyword("class")){r=this.parseClassDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(r))}else{this.matchContextualKeyword("from")&&this.throwError(i.Messages.UnexpectedToken,this.lookahead.value);r=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new l.ExportDefaultDeclaration(r))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){var n=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken();var s=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new l.ExportAllDeclaration(s))}else if(this.lookahead.type===a.Token.Keyword){r=void 0;switch(this.lookahead.value){case"let":case"const":r=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":r=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new l.ExportNamedDeclaration(r,[],null))}else{var o=[],u=null,c=!1;for(this.expect("{");!this.match("}");)c=c||this.matchKeyword("default"),o.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),u=this.parseModuleSpecifier(),this.consumeSemicolon();else if(c){n=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new l.ExportNamedDeclaration(null,o,u))}return t},e}();t.Parser=p},function(e,t){"use strict";t.assert=function(e,t){if(!e)throw new Error("ASSERT: "+t)}},function(e,t){"use strict";t.Messages={UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer"}},function(e,t){"use strict";var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}finally{return r}},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,s=this.constructError(i,r);return s.index=e,s.lineNumber=t,s.description=n,s},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";!function(e){e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.RegularExpression=9]="RegularExpression",e[e.Template=10]="Template"}(t.Token||(t.Token={}));var r=t.Token;t.TokenName={},t.TokenName[r.BooleanLiteral]="Boolean",t.TokenName[r.EOF]="<end>",t.TokenName[r.Identifier]="Identifier",t.TokenName[r.Keyword]="Keyword",t.TokenName[r.NullLiteral]="Null",t.TokenName[r.NumericLiteral]="Numeric",t.TokenName[r.Punctuator]="Punctuator",t.TokenName[r.StringLiteral]="String",t.TokenName[r.RegularExpression]="RegularExpression",t.TokenName[r.Template]="Template"},function(e,t,r){"use strict";function n(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var s=r(4),a=r(5),o=r(9),u=r(7),l=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=a.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,a.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,r,n;for(this.trackComment&&(t=[],r=this.index-e,n={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,o.Character.isLineTerminator(i)){if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart-1};var s={multiLine:!1,slice:[r+e,this.index-1],range:[r,this.index-1],loc:n};t.push(s)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};s={multiLine:!1,slice:[r+e,this.index],range:[r,this.index],loc:n};t.push(s)}return t},e.prototype.skipMultiLineComment=function(){var e,t,r;for(this.trackComment&&(e=[],t=this.index-2,r={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(o.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:r};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:r};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(o.Character.isWhiteSpace(r))++this.index;else if(o.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;var n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2;n=this.skipMultiLineComment();this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;n=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(n))}else{if(60!==r)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;n=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===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}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);if(r>=56320&&r<=57343){t=1024*(t-55296)+r-56320+65536}}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,i=0;i<t;++i){if(this.eof()||!o.Character.isHexDigit(this.source.charCodeAt(this.index)))return"";r=16*r+n(this.source[this.index++])}return String.fromCharCode(r)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],o.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+n(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),o.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!o.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=o.Character.fromCodePoint(e);this.index+=t.length;var r;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,r=this.scanUnicodeCodePointEscape()):(e=(r=this.scanHexEscape("u")).charCodeAt(0),r&&"\\"!==r&&o.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=r);!this.eof()&&(e=this.codePointAt(this.index),o.Character.isIdentifierPart(e));)t+=r=o.Character.fromCodePoint(e),this.index+=r.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,r=this.scanUnicodeCodePointEscape()):(e=(r=this.scanHexEscape("u")).charCodeAt(0),r&&"\\"!==r&&o.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=r);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=i(e);return!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+i(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===r.length?u.Token.Identifier:this.isKeyword(r)?u.Token.Keyword:"null"===r?u.Token.NullLiteral:"true"===r||"false"===r?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&o.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(o.Character.isIdentifierStart(t)||o.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(o.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(o.Character.isIdentifierStart(this.source.charCodeAt(this.index))||o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!o.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];s.assert(o.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var r="";if("."!==t){if(r=this.source[this.index++],t=this.source[this.index],"0"===r){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&o.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(r+=this.source[this.index++];o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(r+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(r+=this.source[this.index++]),o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];else this.throwUnexpectedToken();return o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseFloat(r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];s.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var r=!1,n="";!this.eof();){var i=this.source[this.index++];if(i===t){t="";break}if("\\"===i)if((i=this.source[this.index++])&&o.Character.isLineTerminator(i.charCodeAt(0)))++this.lineNumber,"\r"===i&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(i){case"u":case"x":if("{"===this.source[this.index])++this.index,n+=this.scanUnicodeCodePointEscape();else{var a=this.scanHexEscape(i);a||this.throwUnexpectedToken(),n+=a}break;case"n":n+="\n";break;case"r":n+="\r";break;case"t":n+="\t";break;case"b":n+="\b";break;case"f":n+="\f";break;case"v":n+="\v";break;case"8":case"9":n+=i,this.tolerateUnexpectedToken();break;default:if(i&&o.Character.isOctalDigit(i.charCodeAt(0))){var l=this.octalToDecimal(i);r=l.octal||r,n+=String.fromCharCode(l.code)}else n+=i}else{if(o.Character.isLineTerminator(i.charCodeAt(0)))break;n+=i}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:u.Token.StringLiteral,value:n,octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,r=this.index,n="`"===this.source[r],i=!1,s=2;for(++this.index;!this.eof();){var l=this.source[this.index++];if("`"===l){s=1,i=!0,t=!0;break}if("$"===l){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=l}else if("\\"===l)if(l=this.source[this.index++],o.Character.isLineTerminator(l.charCodeAt(0)))++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(l){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":case"x":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var c=this.index,p=this.scanHexEscape(l);p?e+=p:(this.index=c,e+=l)}break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===l?(o.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral),e+="\0"):o.Character.isOctalDigit(l.charCodeAt(0))?this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral):e+=l}else o.Character.isLineTerminator(l.charCodeAt(0))?(++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=l}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:u.Token.Template,value:{cooked:e,raw:this.source.slice(r+1,this.index-s)},head:n,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}},e.prototype.testRegExp=function(e,t){var r=e,n=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(a.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):"ļææ"}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"ļææ"));try{RegExp(r)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];s.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,n=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],o.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),t+=e;else if(o.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){n=!0;break}"["===e&&(r=!0)}n||this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);return{value:t.substr(1,t.length-2),literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var r=this.source[this.index];if(!o.Character.isIdentifierPart(r.charCodeAt(0)))break;if(++this.index,"\\"!==r||this.eof())t+=r,e+=r;else if("u"===(r=this.source[this.index])){++this.index;var n=this.index;if(r=this.scanHexEscape("u"))for(t+=r,e+="\\u";n<this.index;++n)e+=this.source[n];else this.index=n,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken()}return{value:t,literal:e}},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),r=this.scanRegExpFlags(),n=this.testRegExp(t.value,r.value);return{type:u.Token.RegularExpression,value:n,literal:t.literal+r.literal,regex:{pattern:t.value,flags:r.value},lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:u.Token.EOF,lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return o.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?o.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():o.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&o.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=l},function(e,t){"use strict";var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";var n=r(2),i=function(){return function(e){this.type=n.Syntax.ArrayExpression,this.elements=e}}();t.ArrayExpression=i;var s=function(){return function(e){this.type=n.Syntax.ArrayPattern,this.elements=e}}();t.ArrayPattern=s;var a=function(){return function(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r}}();t.ArrowFunctionExpression=a;var o=function(){return function(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r}}();t.AssignmentExpression=o;var u=function(){return function(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t}}();t.AssignmentPattern=u;var l=function(){return function(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r}}();t.BinaryExpression=l;var c=function(){return function(e){this.type=n.Syntax.BlockStatement,this.body=e}}();t.BlockStatement=c;var p=function(){return function(e){this.type=n.Syntax.BreakStatement,this.label=e}}();t.BreakStatement=p;var h=function(){return function(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t}}();t.CallExpression=h;var f=function(){return function(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t}}();t.CatchClause=f;var d=function(){return function(e){this.type=n.Syntax.ClassBody,this.body=e}}();t.ClassBody=d;var m=function(){return function(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r}}();t.ClassDeclaration=m;var y=function(){return function(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r}}();t.ClassExpression=y;var g=function(){return function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}}();t.ComputedMemberExpression=g;var b=function(){return function(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r}}();t.ConditionalExpression=b;var v=function(){return function(e){this.type=n.Syntax.ContinueStatement,this.label=e}}();t.ContinueStatement=v;var x=function(){return function(){this.type=n.Syntax.DebuggerStatement}}();t.DebuggerStatement=x;var E=function(){return function(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t}}();t.Directive=E;var A=function(){return function(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t}}();t.DoWhileStatement=A;var D=function(){return function(){this.type=n.Syntax.EmptyStatement}}();t.EmptyStatement=D;var S=function(){return function(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e}}();t.ExportAllDeclaration=S;var C=function(){return function(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e}}();t.ExportDefaultDeclaration=C;var _=function(){return function(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r}}();t.ExportNamedDeclaration=_;var w=function(){return function(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e}}();t.ExportSpecifier=w;var k=function(){return function(e){this.type=n.Syntax.ExpressionStatement,this.expression=e}}();t.ExpressionStatement=k;var F=function(){return function(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1}}();t.ForInStatement=F;var T=function(){return function(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r}}();t.ForOfStatement=T;var P=function(){return function(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i}}();t.ForStatement=P;var B=function(){return function(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1}}();t.FunctionDeclaration=B;var O=function(){return function(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1}}();t.FunctionExpression=O;var N=function(){return function(e){this.type=n.Syntax.Identifier,this.name=e}}();t.Identifier=N;var j=function(){return function(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r}}();t.IfStatement=j;var I=function(){return function(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}}();t.ImportDeclaration=I;var L=function(){return function(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e}}();t.ImportDefaultSpecifier=L;var M=function(){return function(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e}}();t.ImportNamespaceSpecifier=M;var R=function(){return function(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t}}();t.ImportSpecifier=R;var V=function(){return function(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t}}();t.LabeledStatement=V;var U=function(){return function(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t}}();t.Literal=U;var q=function(){return function(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t}}();t.MetaProperty=q;var G=function(){return function(e,t,r,i,s){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=s}}();t.MethodDefinition=G;var X=function(){return function(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t}}();t.NewExpression=X;var J=function(){return function(e){this.type=n.Syntax.ObjectExpression,this.properties=e}}();t.ObjectExpression=J;var W=function(){return function(e){this.type=n.Syntax.ObjectPattern,this.properties=e}}();t.ObjectPattern=W;var K=function(){return function(e,t){this.type=n.Syntax.Program,this.body=e,this.sourceType=t}}();t.Program=K;var z=function(){return function(e,t,r,i,s,a){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=s,this.shorthand=a}}();t.Property=z;var Y=function(){return function(e,t,r){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex=r}}();t.RegexLiteral=Y;var H=function(){return function(e){this.type=n.Syntax.RestElement,this.argument=e}}();t.RestElement=H;var $=function(){return function(e){this.type=n.Syntax.ReturnStatement,this.argument=e}}();t.ReturnStatement=$;var Q=function(){return function(e){this.type=n.Syntax.SequenceExpression,this.expressions=e}}();t.SequenceExpression=Q;var Z=function(){return function(e){this.type=n.Syntax.SpreadElement,this.argument=e}}();t.SpreadElement=Z;var ee=function(){return function(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}}();t.StaticMemberExpression=ee;var te=function(){return function(){this.type=n.Syntax.Super}}();t.Super=te;var re=function(){return function(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t}}();t.SwitchCase=re;var ne=function(){return function(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}}();t.SwitchStatement=ne;var ie=function(){return function(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}}();t.TaggedTemplateExpression=ie;var se=function(){return function(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t}}();t.TemplateElement=se;var ae=function(){return function(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}}();t.TemplateLiteral=ae;var oe=function(){return function(){this.type=n.Syntax.ThisExpression}}();t.ThisExpression=oe;var ue=function(){return function(e){this.type=n.Syntax.ThrowStatement,this.argument=e}}();t.ThrowStatement=ue;var le=function(){return function(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r}}();t.TryStatement=le;var ce=function(){return function(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}}();t.UnaryExpression=ce;var pe=function(){return function(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r}}();t.UpdateExpression=pe;var he=function(){return function(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}}();t.VariableDeclaration=he;var fe=function(){return function(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t}}();t.VariableDeclarator=fe;var de=function(){return function(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t}}();t.WhileStatement=de;var me=function(){return function(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t}}();t.WithStatement=me;var ye=function(){return function(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t}}();t.YieldExpression=ye},function(e,t,r){"use strict";function n(e){var t;switch(e.type){case c.JSXSyntax.JSXIdentifier:t=e.name;break;case c.JSXSyntax.JSXNamespacedName:var r=e;t=n(r.namespace)+":"+n(r.name);break;case c.JSXSyntax.JSXMemberExpression:var i=e;t=n(i.object)+"."+n(i.property)}return t}var i,s=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},a=r(9),o=r(7),u=r(3),l=r(12),c=r(13),p=r(10),h=r(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),o.TokenName[i.Identifier]="JSXIdentifier",o.TokenName[i.Text]="JSXText";var f=function(e){function t(t,r,n){e.call(this,t,r,n)}return s(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var o=this.scanner.source[this.scanner.index];if(o===e)break;if(n=";"===o,t+=o,++this.scanner.index,!n)switch(t.length){case 2:i="#"===o;break;case 3:i&&(r=(s="x"===o)||a.Character.isDecimalDigit(o.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!a.Character.isDecimalDigit(o.charCodeAt(0))))&&!(s&&!a.Character.isHexDigit(o.charCodeAt(0)))}}if(r&&n&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):s&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||s||!l.XHTMLEntities[u]||(t=l.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){var t=this.scanner.source[this.scanner.index++];return{type:o.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var r=this.scanner.index,n=this.scanner.source[this.scanner.index++],s="";!this.scanner.eof();){if((c=this.scanner.source[this.scanner.index++])===n)break;s+="&"===c?this.scanXHTMLEntity(n):c}return{type:o.Token.StringLiteral,value:s,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(46===e){var u=this.scanner.source.charCodeAt(this.scanner.index+1),l=this.scanner.source.charCodeAt(this.scanner.index+2);t=46===u&&46===l?"...":".",r=this.scanner.index;return this.scanner.index+=t.length,{type:o.Token.Punctuator,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}if(96===e)return{type:o.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(a.Character.isIdentifierStart(e)&&92!==e){r=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(a.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}var p=this.scanner.source.slice(r,this.scanner.index);return{type:i.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:r,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,a.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var n={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,r=this.scanner.lineStart;this.scanner.scanComments();var n=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=r,n},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===o.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===o.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new h.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new h.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var s=this.parseJSXIdentifier();t=this.finalize(e,new h.JSXMemberExpression(i,s))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new h.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==o.Token.StringLiteral&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new p.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new h.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new h.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new h.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new h.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new h.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new h.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new h.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new h.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start<r.end){var n=this.getTokenRaw(r),i=this.finalize(t,new h.JSXText(r.value,n));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var s=this.parseJSXExpressionContainer();e.push(s)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var r=this.createJSXChildNode(),i=this.parseJSXBoundaryElement();if(i.type===c.JSXSyntax.JSXOpeningElement){var s=i;if(s.selfClosing){var a=this.finalize(r,new h.JSXElement(s,[],null));e.children.push(a)}else t.push(e),e={node:r,opening:s,closing:null,children:[]}}if(i.type===c.JSXSyntax.JSXClosingElement){e.closing=i;var o=n(e.opening.name);if(o!==n(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",o),!(t.length>0))break;a=this.finalize(e.node,new h.JSXElement(e.opening,e.children,e.closing));(e=t.pop()).children.push(a)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new h.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=f},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",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:"āŒ‹",loz:"ā—Š",spades:"ā™ ",clubs:"ā™£",hearts:"ā™„",diams:"ā™¦",lang:"āŸØ",rang:"āŸ©"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";var n=r(13),i=function(){return function(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e}}();t.JSXClosingElement=i;var s=function(){return function(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r}}();t.JSXElement=s;var a=function(){return function(){this.type=n.JSXSyntax.JSXEmptyExpression}}();t.JSXEmptyExpression=a;var o=function(){return function(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e}}();t.JSXExpressionContainer=o;var u=function(){return function(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e}}();t.JSXIdentifier=u;var l=function(){return function(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}}();t.JSXMemberExpression=l;var c=function(){return function(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t}}();t.JSXAttribute=c;var p=function(){return function(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}}();t.JSXNamespacedName=p;var h=function(){return function(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r}}();t.JSXOpeningElement=h;var f=function(){return function(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e}}();t.JSXSpreadAttribute=f;var d=function(){return function(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t}}();t.JSXText=d},function(e,t,r){"use strict";var n=r(8),i=r(6),s=r(7),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var n=this.values[this.curly-4];t=!!n&&!this.beforeFunctionExpression(n)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===s.Token.Punctuator||e.type===s.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),o=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new n.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var r=e[t],n=void 0,i=this.scanner.source.slice(r.slice[0],r.slice[1]);n={type:r.multiLine?"BlockComment":"LineComment",value:i},this.trackRange&&(n.range=r.range),this.trackLoc&&(n.loc=r.loc),this.buffer.push(n)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var o=void 0;o="/"===this.scanner.source[this.scanner.index]?this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.scanPunctuator():this.scanner.lex(),this.reader.push(o);var u=void 0;u={type:s.TokenName[o.type],value:this.scanner.source.slice(o.start,o.end)},this.trackRange&&(u.range=[o.start,o.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=a),o.regex&&(u.regex=o.regex),this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=o}])})},{}],576:[function(e,t,r){arguments[4][62][0].apply(r,arguments)},{"./util":585,dup:62}],577:[function(e,t,r){arguments[4][63][0].apply(r,arguments)},{"./base64":578,dup:63}],578:[function(e,t,r){arguments[4][64][0].apply(r,arguments)},{dup:64}],579:[function(e,t,r){arguments[4][65][0].apply(r,arguments)},{dup:65}],580:[function(e,t,r){arguments[4][66][0].apply(r,arguments)},{"./util":585,dup:66}],581:[function(e,t,r){arguments[4][67][0].apply(r,arguments)},{dup:67}],582:[function(e,t,r){arguments[4][68][0].apply(r,arguments)},{"./array-set":576,"./base64-vlq":577,"./binary-search":579,"./quick-sort":581,"./util":585,dup:68}],583:[function(e,t,r){arguments[4][69][0].apply(r,arguments)},{"./array-set":576,"./base64-vlq":577,"./mapping-list":580,"./util":585,dup:69}],584:[function(e,t,r){arguments[4][70][0].apply(r,arguments)},{"./source-map-generator":583,"./util":585,dup:70}],585:[function(e,t,r){arguments[4][71][0].apply(r,arguments)},{dup:71}],586:[function(e,t,r){arguments[4][72][0].apply(r,arguments)},{"./lib/source-map-consumer":582,"./lib/source-map-generator":583,"./lib/source-node":584,dup:72}],587:[function(e,t,r){t.exports={plugins:[e("babel-plugin-syntax-async-functions"),e("babel-plugin-syntax-async-generators"),e("babel-plugin-transform-es2015-classes"),e("babel-plugin-transform-es2015-arrow-functions"),e("babel-plugin-transform-es2015-block-scoping"),e("babel-plugin-transform-es2015-for-of"),e("regenerator-transform").default]}},{"babel-plugin-syntax-async-functions":111,"babel-plugin-syntax-async-generators":112,"babel-plugin-transform-es2015-arrow-functions":113,"babel-plugin-transform-es2015-block-scoping":114,"babel-plugin-transform-es2015-classes":116,"babel-plugin-transform-es2015-for-of":119,"regenerator-transform":593}],588:[function(e,t,r){(function(t){r.path=e("path").join(t,"runtime.js")}).call(this,"/node_modules/regenerator-runtime")},{path:546}],589:[function(e,t,r){var n=function(){return this}()||Function("return this")(),i=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,s=i&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=e("./runtime"),i)n.regeneratorRuntime=s;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}},{"./runtime":590}],590:[function(e,t,r){!function(e){"use strict";function r(e,t,r,s){var a=t&&t.prototype instanceof i?t:i,o=Object.create(a.prototype),u=new h(s||[]);return o._invoke=function(e,t,r){var i=S;return function(s,a){if(i===_)throw new Error("Generator is already running");if(i===w){if("throw"===s)throw a;return d()}for(r.method=s,r.arg=a;;){var o=r.delegate;if(o){var u=l(o,r);if(u){if(u===k)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===S)throw i=w,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=_;var c=n(e,t,r);if("normal"===c.type){if(i=r.done?w:C,c.arg===k)continue;return{value:c.arg,done:r.done}}"throw"===c.type&&(i=w,r.method="throw",r.arg=c.arg)}}}(e,r,u),o}function n(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function i(){}function s(){}function a(){}function o(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(e){function t(r,i,s,a){var o=n(e[r],e,i);if("throw"!==o.type){var u=o.arg,l=u.value;return l&&"object"==typeof l&&g.call(l,"__await")?Promise.resolve(l.__await).then(function(e){t("next",e,s,a)},function(e){t("throw",e,s,a)}):Promise.resolve(l).then(function(e){u.value=e,s(u)},a)}a(o.arg)}var r;this._invoke=function(e,n){function i(){return new Promise(function(r,i){t(e,n,r,i)})}return r=r?r.then(i,i):i()}}function l(e,t){var r=e.iterator[t.method];if(r===m){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=m,l(e,t),"throw"===t.method))return k;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return k}var i=n(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,k;var s=i.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=m),t.delegate=null,k):s:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,k)}function c(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function p(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function h(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(c,this),this.reset(!0)}function f(e){if(e){var t=e[v];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(g.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=m,t.done=!0,t};return n.next=n}}return{next:d}}function d(){return{value:m,done:!0}}var m,y=Object.prototype,g=y.hasOwnProperty,b="function"==typeof Symbol?Symbol:{},v=b.iterator||"@@iterator",x=b.asyncIterator||"@@asyncIterator",E=b.toStringTag||"@@toStringTag",A="object"==typeof t,D=e.regeneratorRuntime;if(D)A&&(t.exports=D);else{(D=e.regeneratorRuntime=A?t.exports:{}).wrap=r;var S="suspendedStart",C="suspendedYield",_="executing",w="completed",k={},F={};F[v]=function(){return this};var T=Object.getPrototypeOf,P=T&&T(T(f([])));P&&P!==y&&g.call(P,v)&&(F=P);var B=a.prototype=i.prototype=Object.create(F);s.prototype=B.constructor=a,a.constructor=s,a[E]=s.displayName="GeneratorFunction",D.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===s||"GeneratorFunction"===(t.displayName||t.name))},D.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,a):(e.__proto__=a,E in e||(e[E]="GeneratorFunction")),e.prototype=Object.create(B),e},D.awrap=function(e){return{__await:e}},o(u.prototype),u.prototype[x]=function(){return this},D.AsyncIterator=u,D.async=function(e,t,n,i){var s=new u(r(e,t,n,i));return D.isGeneratorFunction(t)?s:s.next().then(function(e){return e.done?e.value:s.next()})},o(B),B[E]="Generator",B[v]=function(){return this},B.toString=function(){return"[object Generator]"},D.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},D.values=f,h.prototype={constructor:h,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=m,this.done=!1,this.delegate=null,this.method="next",this.arg=m,this.tryEntries.forEach(p),!e)for(var t in this)"t"===t.charAt(0)&&g.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=m)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){function t(t,n){return s.type="throw",s.arg=e,r.next=t,n&&(r.method="next",r.arg=m),!!n}if(this.done)throw e;for(var r=this,n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n],s=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var a=g.call(i,"catchLoc"),o=g.call(i,"finallyLoc");if(a&&o){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&g.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,k):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),k},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),p(r),k}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;p(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:f(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=m),k}}}}(function(){return this}()||Function("return this")())},{}],591:[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){o.default.ok(this instanceof i),c.getTypes().assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=s(),this.tryEntries=[],this.leapManager=new u.LeapManager(this)}function s(){return c.getTypes().numericLiteral(-1)}function a(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+JSON.stringify(e))}var o=function(e){return e&&e.__esModule?e:{default:e}}(e("assert")),u=n(e("./leap")),l=n(e("./meta")),c=n(e("./util")),p=Object.prototype.hasOwnProperty,h=i.prototype;r.Emitter=i,h.mark=function(e){c.getTypes().assertLiteral(e);var t=this.listing.length;return-1===e.value?e.value=t:o.default.strictEqual(e.value,t),this.marked[t]=!0,e},h.emit=function(e){var t=c.getTypes();t.isExpression(e)&&(e=t.expressionStatement(e)),t.assertStatement(e),this.listing.push(e)},h.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},h.assign=function(e,t){var r=c.getTypes();return r.expressionStatement(r.assignmentExpression("=",e,t))},h.contextProperty=function(e,t){var r=c.getTypes();return r.memberExpression(this.contextId,t?r.stringLiteral(e):r.identifier(e),!!t)},h.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},h.setReturnValue=function(e){c.getTypes().assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},h.clearPendingException=function(e,t){var r=c.getTypes();r.assertLiteral(e);var n=r.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,n):this.emit(n)},h.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(c.getTypes().breakStatement())},h.jumpIf=function(e,t){var r=c.getTypes();r.assertExpression(e),r.assertLiteral(t),this.emit(r.ifStatement(e,r.blockStatement([this.assign(this.contextProperty("next"),t),r.breakStatement()])))},h.jumpIfNot=function(e,t){var r=c.getTypes();r.assertExpression(e),r.assertLiteral(t);var n=void 0;n=r.isUnaryExpression(e)&&"!"===e.operator?e.argument:r.unaryExpression("!",e),this.emit(r.ifStatement(n,r.blockStatement([this.assign(this.contextProperty("next"),t),r.breakStatement()])))},h.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},h.getContextFunction=function(e){var t=c.getTypes();return t.functionExpression(e||null,[this.contextId],t.blockStatement([this.getDispatchLoop()]),!1,!1)},h.getDispatchLoop=function(){var e=this,t=c.getTypes(),r=[],n=void 0,i=!1;return e.listing.forEach(function(s,a){e.marked.hasOwnProperty(a)&&(r.push(t.switchCase(t.numericLiteral(a),n=[])),i=!1),i||(n.push(s),t.isCompletionStatement(s)&&(i=!0))}),this.finalLoc.value=this.listing.length,r.push(t.switchCase(this.finalLoc,[]),t.switchCase(t.stringLiteral("end"),[t.returnStatement(t.callExpression(this.contextProperty("stop"),[]))])),t.whileStatement(t.numericLiteral(1),t.switchStatement(t.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),r))},h.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=c.getTypes(),t=0;return e.arrayExpression(this.tryEntries.map(function(r){var n=r.firstLoc.value;o.default.ok(n>=t,"try entries out of order"),t=n;var i=r.catchEntry,s=r.finallyEntry,a=[r.firstLoc,i?i.firstLoc:null];return s&&(a[2]=s.firstLoc,a[3]=s.afterLoc),e.arrayExpression(a)}))},h.explode=function(e,t){var r=c.getTypes(),n=e.node;if(r.assertNode(n),r.isDeclaration(n))throw a(n);if(r.isStatement(n))return this.explodeStatement(e);if(r.isExpression(n))return this.explodeExpression(e,t);switch(n.type){case"Program":return e.get("body").map(this.explodeStatement,this);case"VariableDeclarator":throw a(n);case"Property":case"SwitchCase":case"CatchClause":throw new Error(n.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+JSON.stringify(n.type))}},h.explodeStatement=function(e,t){var r=c.getTypes(),n=e.node,i=this,a=void 0,p=void 0,h=void 0;if(r.assertStatement(n),t?r.assertIdentifier(t):t=null,r.isBlockStatement(n))e.get("body").forEach(function(e){i.explodeStatement(e)});else if(l.containsLeap(n))switch(n.type){case"ExpressionStatement":i.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":p=s(),i.leapManager.withEntry(new u.LabeledEntry(p,n.label),function(){i.explodeStatement(e.get("body"),n.label)}),i.mark(p);break;case"WhileStatement":a=s(),p=s(),i.mark(a),i.jumpIfNot(i.explodeExpression(e.get("test")),p),i.leapManager.withEntry(new u.LoopEntry(p,a,t),function(){i.explodeStatement(e.get("body"))}),i.jump(a),i.mark(p);break;case"DoWhileStatement":var d=s(),m=s();p=s(),i.mark(d),i.leapManager.withEntry(new u.LoopEntry(p,m,t),function(){i.explode(e.get("body"))}),i.mark(m),i.jumpIf(i.explodeExpression(e.get("test")),d),i.mark(p);break;case"ForStatement":h=s();var y=s();p=s(),n.init&&i.explode(e.get("init"),!0),i.mark(h),n.test&&i.jumpIfNot(i.explodeExpression(e.get("test")),p),i.leapManager.withEntry(new u.LoopEntry(p,y,t),function(){i.explodeStatement(e.get("body"))}),i.mark(y),n.update&&i.explode(e.get("update"),!0),i.jump(h),i.mark(p);break;case"TypeCastExpression":return i.explodeExpression(e.get("expression"));case"ForInStatement":h=s(),p=s();var g=i.makeTempVar();i.emitAssign(g,r.callExpression(c.runtimeProperty("keys"),[i.explodeExpression(e.get("right"))])),i.mark(h);var b=i.makeTempVar();i.jumpIf(r.memberExpression(r.assignmentExpression("=",b,r.callExpression(g,[])),r.identifier("done"),!1),p),i.emitAssign(n.left,r.memberExpression(b,r.identifier("value"),!1)),i.leapManager.withEntry(new u.LoopEntry(p,h,t),function(){i.explodeStatement(e.get("body"))}),i.jump(h),i.mark(p);break;case"BreakStatement":i.emitAbruptCompletion({type:"break",target:i.leapManager.getBreakLoc(n.label)});break;case"ContinueStatement":i.emitAbruptCompletion({type:"continue",target:i.leapManager.getContinueLoc(n.label)});break;case"SwitchStatement":var v=i.emitAssign(i.makeTempVar(),i.explodeExpression(e.get("discriminant")));p=s();for(var x=s(),E=x,A=[],D=n.cases||[],S=D.length-1;S>=0;--S){var C=D[S];r.assertSwitchCase(C),C.test?E=r.conditionalExpression(r.binaryExpression("===",v,C.test),A[S]=s(),E):A[S]=x}var _=e.get("discriminant");c.replaceWithOrRemove(_,E),i.jump(i.explodeExpression(_)),i.leapManager.withEntry(new u.SwitchEntry(p),function(){e.get("cases").forEach(function(e){var t=e.key;i.mark(A[t]),e.get("consequent").forEach(function(e){i.explodeStatement(e)})})}),i.mark(p),-1===x.value&&(i.mark(x),o.default.strictEqual(p.value,x.value));break;case"IfStatement":var w=n.alternate&&s();p=s(),i.jumpIfNot(i.explodeExpression(e.get("test")),w||p),i.explodeStatement(e.get("consequent")),w&&(i.jump(p),i.mark(w),i.explodeStatement(e.get("alternate"))),i.mark(p);break;case"ReturnStatement":i.emitAbruptCompletion({type:"return",value:i.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":p=s();var k=n.handler,F=k&&s(),T=F&&new u.CatchEntry(F,k.param),P=n.finalizer&&s(),B=P&&new u.FinallyEntry(P,p),O=new u.TryEntry(i.getUnmarkedCurrentLoc(),T,B);i.tryEntries.push(O),i.updateContextPrevLoc(O.firstLoc),i.leapManager.withEntry(O,function(){if(i.explodeStatement(e.get("block")),F){P?i.jump(P):i.jump(p),i.updateContextPrevLoc(i.mark(F));var t=e.get("handler.body"),n=i.makeTempVar();i.clearPendingException(O.firstLoc,n),t.traverse(f,{safeParam:n,catchParamName:k.param.name}),i.leapManager.withEntry(T,function(){i.explodeStatement(t)})}P&&(i.updateContextPrevLoc(i.mark(P)),i.leapManager.withEntry(B,function(){i.explodeStatement(e.get("finalizer"))}),i.emit(r.returnStatement(r.callExpression(i.contextProperty("finish"),[B.firstLoc]))))}),i.mark(p);break;case"ThrowStatement":i.emit(r.throwStatement(i.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+JSON.stringify(n.type))}else i.emit(n)};var f={Identifier:function(e,t){e.node.name===t.catchParamName&&c.isReference(e)&&c.replaceWithOrRemove(e,t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};h.emitAbruptCompletion=function(e){(function(e){var t=e.type;return"normal"===t?!p.call(e,"target"):"break"===t||"continue"===t?!p.call(e,"value")&&c.getTypes().isLiteral(e.target):("return"===t||"throw"===t)&&p.call(e,"value")&&!p.call(e,"target")})(e)||o.default.ok(!1,"invalid completion record: "+JSON.stringify(e)),o.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=c.getTypes(),r=[t.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(t.assertLiteral(e.target),r[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(t.assertExpression(e.value),r[1]=e.value),this.emit(t.returnStatement(t.callExpression(this.contextProperty("abrupt"),r)))},h.getUnmarkedCurrentLoc=function(){return c.getTypes().numericLiteral(this.listing.length)},h.updateContextPrevLoc=function(e){e?(c.getTypes().assertLiteral(e),-1===e.value?e.value=this.listing.length:o.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},h.explodeExpression=function(e,t){function r(e){if(i.assertExpression(e),!t)return e;u.emit(e)}function n(e,t,r){o.default.ok(!r||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=u.explodeExpression(t,r);return r||(e||f&&!i.isLiteral(n))&&(n=u.emitAssign(e||u.makeTempVar(),n)),n}var i=c.getTypes(),a=e.node;if(!a)return a;i.assertExpression(a);var u=this,p=void 0,h=void 0;if(!l.containsLeap(a))return r(a);var f=l.containsLeap.onlyChildren(a);switch(a.type){case"MemberExpression":return r(i.memberExpression(u.explodeExpression(e.get("object")),a.computed?n(null,e.get("property")):a.property,a.computed));case"CallExpression":var d=e.get("callee"),m=e.get("arguments"),y=void 0,g=[],b=!1;if(m.forEach(function(e){b=b||l.containsLeap(e.node)}),i.isMemberExpression(d.node))if(b){var v=n(u.makeTempVar(),d.get("object")),x=d.node.computed?n(null,d.get("property")):d.node.property;g.unshift(v),y=i.memberExpression(i.memberExpression(v,x,d.node.computed),i.identifier("call"),!1)}else y=u.explodeExpression(d);else y=n(null,d),i.isMemberExpression(y)&&(y=i.sequenceExpression([i.numericLiteral(0),y]));return m.forEach(function(e){g.push(n(null,e))}),r(i.callExpression(y,g));case"NewExpression":return r(i.newExpression(n(null,e.get("callee")),e.get("arguments").map(function(e){return n(null,e)})));case"ObjectExpression":return r(i.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?i.objectProperty(e.node.key,n(null,e.get("value")),e.node.computed):e.node})));case"ArrayExpression":return r(i.arrayExpression(e.get("elements").map(function(e){return n(null,e)})));case"SequenceExpression":var E=a.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===E?p=u.explodeExpression(e,t):u.explodeExpression(e,!0)}),p;case"LogicalExpression":h=s(),t||(p=u.makeTempVar());var A=n(p,e.get("left"));return"&&"===a.operator?u.jumpIfNot(A,h):(o.default.strictEqual(a.operator,"||"),u.jumpIf(A,h)),n(p,e.get("right"),t),u.mark(h),p;case"ConditionalExpression":var D=s();h=s();var S=u.explodeExpression(e.get("test"));return u.jumpIfNot(S,D),t||(p=u.makeTempVar()),n(p,e.get("consequent"),t),u.jump(h),u.mark(D),n(p,e.get("alternate"),t),u.mark(h),p;case"UnaryExpression":return r(i.unaryExpression(a.operator,u.explodeExpression(e.get("argument")),!!a.prefix));case"BinaryExpression":return r(i.binaryExpression(a.operator,n(null,e.get("left")),n(null,e.get("right"))));case"AssignmentExpression":return r(i.assignmentExpression(a.operator,u.explodeExpression(e.get("left")),u.explodeExpression(e.get("right"))));case"UpdateExpression":return r(i.updateExpression(a.operator,u.explodeExpression(e.get("argument")),a.prefix));case"YieldExpression":h=s();var C=a.argument&&u.explodeExpression(e.get("argument"));if(C&&a.delegate){var _=u.makeTempVar();return u.emit(i.returnStatement(i.callExpression(u.contextProperty("delegateYield"),[C,i.stringLiteral(_.property.name),h]))),u.mark(h),_}return u.emitAssign(u.contextProperty("next"),h),u.emit(i.returnStatement(C||null)),u.mark(h),u.contextProperty("sent");default:throw new Error("unknown Expression of type "+JSON.stringify(a.type))}}},{"./leap":594,"./meta":595,"./util":597,assert:1}],592:[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("./util")),i=Object.prototype.hasOwnProperty;r.hoist=function(e){function t(e,t){r.assertVariableDeclaration(e);var n=[];return e.declarations.forEach(function(e){s[e.id.name]=r.identifier(e.id.name),e.init?n.push(r.assignmentExpression("=",e.id,e.init)):t&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:r.sequenceExpression(n)}var r=n.getTypes();r.assertFunction(e.node);var s={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var i=t(e.node,!1);null===i?e.remove():n.replaceWithOrRemove(e,r.expressionStatement(i)),e.skip()}},ForStatement:function(e){var i=e.node.init;r.isVariableDeclaration(i)&&n.replaceWithOrRemove(e.get("init"),t(i,!1))},ForXStatement:function(e){var r=e.get("left");r.isVariableDeclaration()&&n.replaceWithOrRemove(r,t(r.node,!0))},FunctionDeclaration:function(e){var t=e.node;s[t.id.name]=t.id;var i=r.expressionStatement(r.assignmentExpression("=",t.id,r.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",i),e.remove()):n.replaceWithOrRemove(e,i),e.skip()},FunctionExpression:function(e){e.skip()},ArrowFunctionExpression:function(e){e.skip()}});var a={};e.get("params").forEach(function(e){var t=e.node;r.isIdentifier(t)&&(a[t.name]=t)});var o=[];return Object.keys(s).forEach(function(e){i.call(a,e)||o.push(r.variableDeclarator(s[e],null))}),0===o.length?null:r.variableDeclaration("var",o)}},{"./util":597}],593:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(t){var r={visitor:e("./visit").getVisitor(t)},n=t&&t.version;return n&&parseInt(n,10)>=7&&(r.name="regenerator-transform"),r}},{"./visit":598}],594:[function(e,t,r){"use strict";function n(){h.default.ok(this instanceof n)}function i(e){n.call(this),(0,d.getTypes)().assertLiteral(e),this.returnLoc=e}function s(e,t,r){n.call(this);var i=(0,d.getTypes)();i.assertLiteral(e),i.assertLiteral(t),r?i.assertIdentifier(r):r=null,this.breakLoc=e,this.continueLoc=t,this.label=r}function a(e){n.call(this),(0,d.getTypes)().assertLiteral(e),this.breakLoc=e}function o(e,t,r){n.call(this);(0,d.getTypes)().assertLiteral(e),t?h.default.ok(t instanceof u):t=null,r?h.default.ok(r instanceof l):r=null,h.default.ok(t||r),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=r}function u(e,t){n.call(this);var r=(0,d.getTypes)();r.assertLiteral(e),r.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function l(e,t){n.call(this);var r=(0,d.getTypes)();r.assertLiteral(e),r.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){n.call(this);var r=(0,d.getTypes)();r.assertLiteral(e),r.assertIdentifier(t),this.breakLoc=e,this.label=t}function p(t){h.default.ok(this instanceof p);var r=e("./emit").Emitter;h.default.ok(t instanceof r),this.emitter=t,this.entryStack=[new i(t.finalLoc)]}var h=function(e){return e&&e.__esModule?e:{default:e}}(e("assert")),f=e("util"),d=e("./util.js");(0,f.inherits)(i,n),r.FunctionEntry=i,(0,f.inherits)(s,n),r.LoopEntry=s,(0,f.inherits)(a,n),r.SwitchEntry=a,(0,f.inherits)(o,n),r.TryEntry=o,(0,f.inherits)(u,n),r.CatchEntry=u,(0,f.inherits)(l,n),r.FinallyEntry=l,(0,f.inherits)(c,n),r.LabeledEntry=c;var m=p.prototype;r.LeapManager=p,m.withEntry=function(e,t){h.default.ok(e instanceof n),this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();h.default.strictEqual(r,e)}},m._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var n=this.entryStack[r],i=n[e];if(i)if(t){if(n.label&&n.label.name===t.name)return i}else if(!(n instanceof c))return i}return null},m.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},m.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},{"./emit":591,"./util.js":597,assert:1,util:613}],595:[function(e,t,r){"use strict";function n(e,t){function r(e){function t(e){return a||(Array.isArray(e)?e.some(t):r.isNode(e)&&(i.default.strictEqual(a,!1),a=n(e))),a}var r=(0,s.getTypes)();r.assertNode(e);var a=!1,o=r.VISITOR_KEYS[e.type];if(o)for(var u=0;u<o.length;u++){t(e[o[u]])}return a}function n(n){(0,s.getTypes)().assertNode(n);var i=a(n);return o.call(i,e)?i[e]:o.call(u,n.type)?i[e]=!1:o.call(t,n.type)?i[e]=!0:i[e]=r(n)}return n.onlyChildren=r,n}var i=function(e){return e&&e.__esModule?e:{default:e}}(e("assert")),s=e("./util.js"),a=e("private").makeAccessor(),o=Object.prototype.hasOwnProperty,u={FunctionExpression:!0,ArrowFunctionExpression:!0},l={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},c={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var p in c)o.call(c,p)&&(l[p]=c[p]);r.hasSideEffects=n("hasSideEffects",l),r.containsLeap=n("containsLeap",c)},{"./util.js":597,assert:1,private:548}],596:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){var t=n.getTypes();if(!e.node||!t.isFunction(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!t.isObjectMethod(e.node))return e;if(!e.node.generator)return e;var r=e.node.params.map(function(e){return t.cloneDeep(e)}),i=t.functionExpression(null,r,t.cloneDeep(e.node.body),e.node.generator,e.node.async);return n.replaceWithOrRemove(e,t.objectProperty(t.cloneDeep(e.node.key),i,e.node.computed,!1)),e.get("value")};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("./util"))},{"./util":597}],597:[function(e,t,r){"use strict";function n(){return i}r.__esModule=!0,r.wrapWithTypes=function(e,t){return function(){var r=i;i=e;try{for(var n=arguments.length,s=Array(n),a=0;a<n;a++)s[a]=arguments[a];return t.apply(this,s)}finally{i=r}}},r.getTypes=n,r.runtimeProperty=function(e){var t=n();return t.memberExpression(t.identifier("regeneratorRuntime"),t.identifier(e),!1)},r.isReference=function(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})},r.replaceWithOrRemove=function(e,t){t?e.replaceWith(t):e.remove()};var i=null},{}],598:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=l.getTypes(),r=e.node;return t.assertFunction(r),r.id||(r.id=e.scope.parent.generateUidIdentifier("callee")),r.generator&&t.isFunctionDeclaration(r)?function(e){var t=l.getTypes(),r=e.node;t.assertIdentifier(r.id);var n=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!n)return r.id;var i=n.node;s.default.ok(Array.isArray(i.body));var a=c(i);a.decl||(a.decl=t.variableDeclaration("var",[]),n.unshiftContainer("body",a.decl),a.declPath=n.get("body.0"));s.default.strictEqual(a.declPath.node,a.decl);var o=n.scope.generateUidIdentifier("marked"),u=t.callExpression(l.runtimeProperty("mark"),[r.id]),p=a.decl.declarations.push(t.variableDeclarator(o,u))-1,h=a.declPath.get("declarations."+p+".init");return s.default.strictEqual(h.node,u),h.addComment("leading","#__PURE__"),o}(e):r.id}var s=n(e("assert")),a=e("./hoist"),o=e("./emit"),u=n(e("./replaceShorthandObjectMethod")),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("./util"));r.getVisitor=function(e){var t=e.types;return{Function:{exit:l.wrapWithTypes(t,function(e,r){var n=e.node;if(n.generator){if(n.async){if(!1===r.opts.asyncGenerators)return}else if(!1===r.opts.generators)return}else{if(!n.async)return;if(!1===r.opts.async)return}n=(e=(0,u.default)(e)).node;var s=e.scope.generateUidIdentifier("context"),c=e.scope.generateUidIdentifier("args");e.ensureBlock();var d=e.get("body");n.async&&d.traverse(f),d.traverse(h,{context:s});var m=[],y=[];d.get("body").forEach(function(e){var r=e.node;t.isExpressionStatement(r)&&t.isStringLiteral(r.expression)?m.push(r):r&&null!=r._blockHoist?m.push(r):y.push(r)}),m.length>0&&(d.node.body=y);var g=i(e);t.assertIdentifier(n.id);var b=t.identifier(n.id.name+"$"),v=(0,a.hoist)(e);if(function(e,t){var r={didRenameArguments:!1,argsId:t};return e.traverse(p,r),r.didRenameArguments}(e,c)){v=v||t.variableDeclaration("var",[]);var x=t.identifier("arguments");x._shadowedFunctionLiteral=e,v.declarations.push(t.variableDeclarator(c,x))}var E=new o.Emitter(s);E.explode(e.get("body")),v&&v.declarations.length>0&&m.push(v);var A=[E.getContextFunction(b),n.generator?g:t.nullLiteral(),t.thisExpression()],D=E.getTryLocsList();D&&A.push(D);var S=t.callExpression(l.runtimeProperty(n.async?"async":"wrap"),A);m.push(t.returnStatement(S)),n.body=t.blockStatement(m);var C=d.node.directives;C&&(n.body.directives=C);var _=n.generator;_&&(n.generator=!1),n.async&&(n.async=!1),_&&t.isExpression(n)&&(l.replaceWithOrRemove(e,t.callExpression(l.runtimeProperty("mark"),[n])),e.addComment("leading","#__PURE__")),e.requeue()})}}};var c=e("private").makeAccessor(),p={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&l.isReference(e)&&(l.replaceWithOrRemove(e,t.argsId),t.didRenameArguments=!0)}},h={MetaProperty:function(e){var t=e.node;if("function"===t.meta.name&&"sent"===t.property.name){var r=l.getTypes();l.replaceWithOrRemove(e,r.memberExpression(this.context,r.identifier("_sent")))}}},f={Function:function(e){e.skip()},AwaitExpression:function(e){var t=l.getTypes(),r=e.node.argument;l.replaceWithOrRemove(e,t.yieldExpression(t.callExpression(l.runtimeProperty("awrap"),[r]),!1))}}},{"./emit":591,"./hoist":592,"./replaceShorthandObjectMethod":596,"./util":597,assert:1,private:548}],599:[function(e,t,r){e("assert");var n=e("recast").types,i=n.namedTypes,s=n.builders,a=Object.prototype.hasOwnProperty;r.defaults=function(e){for(var t,r=arguments.length,n=1;n<r;++n)if(t=arguments[n])for(var i in t)a.call(t,i)&&!a.call(e,i)&&(e[i]=t[i]);return e},r.runtimeProperty=function(e){return s.memberExpression(s.identifier("regeneratorRuntime"),s.identifier(e),!1)},r.isReference=function(e,t){var r=e.value;if(!i.Identifier.check(r))return!1;if(t&&r.name!==t)return!1;var n=e.parent.value;switch(n.type){case"VariableDeclarator":return"init"===e.name;case"MemberExpression":return"object"===e.name||n.computed&&"property"===e.name;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return"id"!==e.name&&("params"!==e.parentPath.name||n.params!==e.parentPath.value||n.params[e.name]!==r);case"ClassDeclaration":case"ClassExpression":return"id"!==e.name;case"CatchClause":return"param"!==e.name;case"Property":case"MethodDefinition":return"key"!==e.name;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"LabeledStatement":return!1;default:return!0}}},{assert:1,recast:574}],600:[function(e,t,r){var n=e("recast"),i=n.types.namedTypes,s=e("./util.js");r.transform=function(t,r){r=s.defaults(r||{},{includeRuntime:!1});return t=e("babel-core").transformFromAst(t,null,{presets:[e("regenerator-preset")],code:!1,ast:!0}).ast,!0===r.includeRuntime&&function(t){i.Program.assert(t);var r=e("..").runtime.path,s=fs.readFileSync(r,"utf8"),a=n.parse(s,{sourceFileName:r}).program.body,o=t.body;o.unshift.apply(o,a)}(i.File.check(t)?t.program:t),t}},{"..":"regenerator","./util.js":599,"babel-core":31,recast:574,"regenerator-preset":587}],601:[function(e,t,r){"use strict";var n=e("is-finite");t.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!n(t))throw new TypeError("Expected `count` to be a positive finite number");var r="";do{1&t&&(r+=e),e+=e}while(t>>=1);return r}},{"is-finite":320}],602:[function(e,t,r){function n(e,t){for(var r in e)t[r]=e[r]}function i(e,t,r){return a(e,t,r)}var s=e("buffer"),a=s.Buffer;a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?t.exports=s:(n(s,r),r.Buffer=i),n(a,i),i.from=function(e,t,r){if("number"==typeof e)throw new TypeError("Argument must not be a number");return a(e,t,r)},i.alloc=function(e,t,r){if("number"!=typeof e)throw new TypeError("Argument must be a number");var n=a(e);return void 0!==t?"string"==typeof r?n.fill(t,r):n.fill(t):n.fill(0),n},i.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return a(e)},i.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return s.SlowBuffer(e)}},{buffer:194}],603:[function(e,t,r){"use strict";t.exports=function(e){var t=/^\\\\\?\\/.test(e),r=/[^\x00-\x80]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},{}],604:[function(e,t,r){function n(){i.call(this)}t.exports=n;var i=e("events").EventEmitter;e("inherits")(n,i),n.Readable=e("readable-stream/readable.js"),n.Writable=e("readable-stream/writable.js"),n.Duplex=e("readable-stream/duplex.js"),n.Transform=e("readable-stream/transform.js"),n.PassThrough=e("readable-stream/passthrough.js"),n.Stream=n,n.prototype.pipe=function(e,t){function r(t){e.writable&&!1===e.write(t)&&l.pause&&l.pause()}function n(){l.readable&&l.resume&&l.resume()}function s(){c||(c=!0,e.end())}function a(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function o(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){l.removeListener("data",r),e.removeListener("drain",n),l.removeListener("end",s),l.removeListener("close",a),l.removeListener("error",o),e.removeListener("error",o),l.removeListener("end",u),l.removeListener("close",u),e.removeListener("close",u)}var l=this;l.on("data",r),e.on("drain",n),e._isStdio||t&&!1===t.end||(l.on("end",s),l.on("close",a));var c=!1;return l.on("error",o),e.on("error",o),l.on("end",u),l.on("close",u),e.on("close",u),e.emit("pipe",l),e}},{events:313,inherits:317,"readable-stream/duplex.js":551,"readable-stream/passthrough.js":560,"readable-stream/readable.js":561,"readable-stream/transform.js":562,"readable-stream/writable.js":563}],605:[function(e,t,r){"use strict";function n(e){this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(h.isEncoding===f||!f(e)))throw new Error("Unknown encoding: "+e);return t||e}(e);var t;switch(this.encoding){case"utf16le":this.text=a,this.end=o,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=u,this.end=l,t=3;break;default:return this.write=c,void(this.end=p)}this.lastNeed=0,this.lastTotal=0,this.lastChar=h.allocUnsafe(t)}function i(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function s(e){var t=this.lastTotal-this.lastNeed,r=function(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"ļæ½".repeat(r);if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"ļæ½".repeat(r+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"ļæ½".repeat(r+2)}}(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function a(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function o(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function u(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function l(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function c(e){return e.toString(this.encoding)}function p(e){return e&&e.length?this.write(e):""}var h=e("safe-buffer").Buffer,f=h.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};r.StringDecoder=n,n.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},n.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"ļæ½".repeat(this.lastTotal-this.lastNeed):t},n.prototype.text=function(e,t){var r=function(e,t,r){var n=t.length-1;if(n<r)return 0;var s=i(t[n]);return s>=0?(s>0&&(e.lastNeed=s-1),s):--n<r?0:(s=i(t[n]))>=0?(s>0&&(e.lastNeed=s-2),s):--n<r?0:(s=i(t[n]))>=0?(s>0&&(2===s?s=0:e.lastNeed=s-3),s):0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)},n.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},{"safe-buffer":602}],606:[function(e,t,r){(function(r){function n(e,t,n){function s(){for(;u.length&&!c.paused;){var e=u.shift();if(null===e)return c.emit("end");c.emit("data",e)}}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var a=!1,o=!1,u=[],l=!1,c=new i;return c.readable=c.writable=!0,c.paused=!1,c.autoDestroy=!(n&&!1===n.autoDestroy),c.write=function(t){return e.call(this,t),!c.paused},c.queue=c.push=function(e){return l?c:(null===e&&(l=!0),u.push(e),s(),c)},c.on("end",function(){c.readable=!1,!c.writable&&c.autoDestroy&&r.nextTick(function(){c.destroy()})}),c.end=function(e){if(!a)return a=!0,arguments.length&&c.write(e),c.writable=!1,t.call(c),!c.readable&&c.autoDestroy&&c.destroy(),c},c.destroy=function(){if(!o)return o=!0,a=!0,u.length=0,c.writable=c.readable=!1,c.emit("close"),c},c.pause=function(){if(!c.paused)return c.paused=!0,c},c.resume=function(){return c.paused&&(c.paused=!1,c.emit("resume")),s(),c.paused||c.emit("drain"),c},c}var i=e("stream");t.exports=n,n.through=n}).call(this,e("_process"))},{_process:550,stream:604}],607:[function(e,t,r){"use strict";t.exports=function e(t){function r(){}function n(){return typeof i.foo}r.prototype=t;var i=new r;return n(),n(),t}},{}],608:[function(e,t,r){"use strict";t.exports=function(e){for(var t=e.length;/[\s\uFEFF\u00A0]/.test(e[t-1]);)t--;return e.slice(0,t)}},{}],609:[function(e,t,r){r.isatty=function(){return!1},r.ReadStream=function(){throw new Error("tty.ReadStream is not implemented")},r.WriteStream=function(){throw new Error("tty.ReadStream is not implemented")}},{}],610:[function(e,t,r){(function(e){function r(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=function(e,t){if(r("noDeprecation"))return e;var n=!1;return function(){if(!n){if(r("throwDeprecation"))throw new Error(t);r("traceDeprecation")?console.trace(t):console.warn(t),n=!0}return e.apply(this,arguments)}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],611:[function(e,t,r){arguments[4][317][0].apply(r,arguments)},{dup:317}],612:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],613:[function(e,t,r){(function(t,n){function i(e,t){var n={seen:[],stylize:a};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),p(t)?n.showHidden=t:t&&r._extend(n,t),m(n.showHidden)&&(n.showHidden=!1),m(n.depth)&&(n.depth=2),m(n.colors)&&(n.colors=!1),m(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),o(n,e,n.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function a(e,t){return e}function o(e,t,n){if(e.customInspect&&t&&x(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return d(i)||(i=o(e,i,n)),i}var s=function(e,t){if(m(t))return e.stylize("undefined","undefined");if(d(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(f(t))return e.stylize(""+t,"number");if(p(t))return e.stylize(""+t,"boolean");if(h(t))return e.stylize("null","null")}(e,t);if(s)return s;var a=Object.keys(t),g=function(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),v(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return u(t);if(0===a.length){if(x(t)){var E=t.name?": "+t.name:"";return e.stylize("[Function"+E+"]","special")}if(y(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(b(t))return e.stylize(Date.prototype.toString.call(t),"date");if(v(t))return u(t)}var A="",S=!1,C=["{","}"];if(c(t)&&(S=!0,C=["[","]"]),x(t)){A=" [Function"+(t.name?": "+t.name:"")+"]"}if(y(t)&&(A=" "+RegExp.prototype.toString.call(t)),b(t)&&(A=" "+Date.prototype.toUTCString.call(t)),v(t)&&(A=" "+u(t)),0===a.length&&(!S||0==t.length))return C[0]+A+C[1];if(n<0)return y(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var _;return _=S?function(e,t,r,n,i){for(var s=[],a=0,o=t.length;a<o;++a)D(t,String(a))?s.push(l(e,t,r,n,String(a),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(l(e,t,r,n,i,!0))}),s}(e,t,n,g,a):a.map(function(r){return l(e,t,n,g,r,S)}),e.seen.pop(),function(e,t,r){if(e.reduce(function(e,t){return 0,t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1];return r[0]+t+" "+e.join(", ")+" "+r[1]}(_,A,C)}function u(e){return"["+Error.prototype.toString.call(e)+"]"}function l(e,t,r,n,i,s){var a,u,l;if((l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?u=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(u=e.stylize("[Setter]","special")),D(n,i)||(a="["+i+"]"),u||(e.seen.indexOf(l.value)<0?(u=h(r)?o(e,l.value,null):o(e,l.value,r-1)).indexOf("\n")>-1&&(u=s?u.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+u.split("\n").map(function(e){return" "+e}).join("\n")):u=e.stylize("[Circular]","special")),m(a)){if(s&&i.match(/^\d+$/))return u;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+u}function c(e){return Array.isArray(e)}function p(e){return"boolean"==typeof e}function h(e){return null===e}function f(e){return"number"==typeof e}function d(e){return"string"==typeof e}function m(e){return void 0===e}function y(e){return g(e)&&"[object RegExp]"===E(e)}function g(e){return"object"==typeof e&&null!==e}function b(e){return g(e)&&"[object Date]"===E(e)}function v(e){return g(e)&&("[object Error]"===E(e)||e instanceof Error)}function x(e){return"function"==typeof e}function E(e){return Object.prototype.toString.call(e)}function A(e){return e<10?"0"+e.toString(10):e.toString(10)}function D(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var S=/%[sdj%]/g;r.format=function(e){if(!d(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(i(arguments[r]));return t.join(" ")}r=1;for(var n=arguments,s=n.length,a=String(e).replace(S,function(e){if("%%"===e)return"%";if(r>=s)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),o=n[r];r<s;o=n[++r])h(o)||!g(o)?a+=" "+o:a+=" "+i(o);return a},r.deprecate=function(e,i){if(m(n.process))return function(){return r.deprecate(e,i).apply(this,arguments)};if(!0===t.noDeprecation)return e;var s=!1;return function(){if(!s){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),s=!0}return e.apply(this,arguments)}};var C,_={};r.debuglog=function(e){if(m(C)&&(C=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!_[e])if(new RegExp("\\b"+e+"\\b","i").test(C)){var n=t.pid;_[e]=function(){var t=r.format.apply(r,arguments);console.error("%s %d: %s",e,n,t)}}else _[e]=function(){};return _[e]},r.inspect=i,i.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]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=c,r.isBoolean=p,r.isNull=h,r.isNullOrUndefined=function(e){return null==e},r.isNumber=f,r.isString=d,r.isSymbol=function(e){return"symbol"==typeof e},r.isUndefined=m,r.isRegExp=y,r.isObject=g,r.isDate=b,r.isError=v,r.isFunction=x,r.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e},r.isBuffer=e("./support/isBuffer");var w=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];r.log=function(){console.log("%s - %s",function(){var e=new Date,t=[A(e.getHours()),A(e.getMinutes()),A(e.getSeconds())].join(":");return[e.getDate(),w[e.getMonth()],t].join(" ")}(),r.format.apply(r,arguments))},r.inherits=e("inherits"),r._extend=function(e,t){if(!t||!g(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":612,_process:550,inherits:611}],regenerator:[function(e,t,r){function r(e,t){var r=[];return a(function(e){r.push(e)},function(){try{this.queue(i(r.join(""),t).code),this.queue(null)}catch(e){this.emit("error",e)}})}function n(){regeneratorRuntime=e("regenerator-runtime")}function i(t,r){var i;return r=u.defaults(r||{},{includeRuntime:!1}),i=l.test(t)?e("babel-core").transform(t,p):{code:t},!0===r.includeRuntime&&(i.code=(c||(c=s.readFileSync(n.path,"utf8")))+"\n"+i.code),i}var s=e("fs"),a=e("through"),o=e("./lib/visit").transform,u=e("./lib/util"),l=/\bfunction\s*\*|\basync\b/;t.exports=r,r.runtime=n,n.path=e("regenerator-runtime/path.js").path;var c,p={presets:[e("regenerator-preset")],parserOpts:{sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,strictMode:!1,plugins:["*","jsx","flow"]}};r.types=e("recast").types,r.compile=i,r.transform=o},{"./lib/util":599,"./lib/visit":600,"babel-core":31,fs:193,recast:574,"regenerator-preset":587,"regenerator-runtime":589,"regenerator-runtime/path.js":588,through:606}]},{},[]); \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/$data.js b/deps/npm/node_modules/ajv/lib/$data.js
index 60cfc2d8de..60cfc2d8de 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/$data.js
+++ b/deps/npm/node_modules/ajv/lib/$data.js
diff --git a/deps/npm/node_modules/ajv/lib/ajv.d.ts b/deps/npm/node_modules/ajv/lib/ajv.d.ts
new file mode 100644
index 0000000000..9d0cb3cf31
--- /dev/null
+++ b/deps/npm/node_modules/ajv/lib/ajv.d.ts
@@ -0,0 +1,358 @@
+declare var ajv: {
+ (options?: ajv.Options): ajv.Ajv;
+ new (options?: ajv.Options): ajv.Ajv;
+ ValidationError: ValidationError;
+ MissingRefError: MissingRefError;
+ $dataMetaSchema: object;
+}
+
+declare namespace ajv {
+ interface Ajv {
+ /**
+ * 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 by default).
+ * @param {string|object|Boolean} 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`).
+ */
+ validate(schemaKeyRef: object | string | boolean, data: any): boolean | Thenable<any>;
+ /**
+ * Create validating function for passed schema.
+ * @param {object|Boolean} schema schema object
+ * @return {Function} validating function
+ */
+ compile(schema: object | boolean): ValidateFunction;
+ /**
+ * Creates validating function for passed schema with asynchronous loading of missing schemas.
+ * `loadSchema` option should be a function that accepts schema uri and node-style callback.
+ * @this Ajv
+ * @param {object|Boolean} schema schema object
+ * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
+ * @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function.
+ * @return {Thenable<ValidateFunction>} validating function
+ */
+ compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): Thenable<ValidateFunction>;
+ /**
+ * Adds schema to the instance.
+ * @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`.
+ * @return {Ajv} this for method chaining
+ */
+ addSchema(schema: Array<object> | object, key?: string): Ajv;
+ /**
+ * Add schema that will be used to validate other schemas
+ * options in META_IGNORE_OPTIONS are alway set to false
+ * @param {object} schema schema object
+ * @param {string} key optional schema key
+ * @return {Ajv} this for method chaining
+ */
+ addMetaSchema(schema: object, key?: string): Ajv;
+ /**
+ * Validate schema
+ * @param {object|Boolean} schema schema to validate
+ * @return {Boolean} true if schema is valid
+ */
+ validateSchema(schema: object | boolean): boolean;
+ /**
+ * Get compiled schema from the instance by `key` or `ref`.
+ * @param {string} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
+ * @return {Function} schema validating function (with property `schema`).
+ */
+ getSchema(keyRef: string): ValidateFunction;
+ /**
+ * Remove cached schema(s).
+ * If no parameter is passed all schemas but meta-schemas are removed.
+ * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
+ * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
+ * @param {string|object|RegExp|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object
+ * @return {Ajv} this for method chaining
+ */
+ removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv;
+ /**
+ * Add custom format
+ * @param {string} name format name
+ * @param {string|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
+ * @return {Ajv} this for method chaining
+ */
+ addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv;
+ /**
+ * Define custom keyword
+ * @this Ajv
+ * @param {string} keyword custom keyword, should be a valid identifier, should be 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
+ */
+ addKeyword(keyword: string, definition: KeywordDefinition): Ajv;
+ /**
+ * Get keyword definition
+ * @this Ajv
+ * @param {string} keyword pre-defined or custom keyword.
+ * @return {object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
+ */
+ getKeyword(keyword: string): object | boolean;
+ /**
+ * Remove keyword
+ * @this Ajv
+ * @param {string} keyword pre-defined or custom keyword.
+ * @return {Ajv} this for method chaining
+ */
+ removeKeyword(keyword: string): Ajv;
+ /**
+ * Convert array of error message objects to string
+ * @param {Array<object>} 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
+ */
+ errorsText(errors?: Array<ErrorObject>, options?: ErrorsTextOptions): string;
+ errors?: Array<ErrorObject>;
+ }
+
+ interface Thenable <R> {
+ then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
+ }
+
+ interface ValidateFunction {
+ (
+ data: any,
+ dataPath?: string,
+ parentData?: object | Array<any>,
+ parentDataProperty?: string | number,
+ rootData?: object | Array<any>
+ ): boolean | Thenable<any>;
+ schema?: object | boolean;
+ errors?: null | Array<ErrorObject>;
+ refs?: object;
+ refVal?: Array<any>;
+ root?: ValidateFunction | object;
+ $async?: true;
+ source?: object;
+ }
+
+ interface Options {
+ $data?: boolean;
+ allErrors?: boolean;
+ verbose?: boolean;
+ jsonPointers?: boolean;
+ uniqueItems?: boolean;
+ unicode?: boolean;
+ format?: string;
+ formats?: object;
+ unknownFormats?: true | string[] | 'ignore';
+ schemas?: Array<object> | object;
+ schemaId?: '$id' | 'id';
+ missingRefs?: true | 'ignore' | 'fail';
+ extendRefs?: true | 'ignore' | 'fail';
+ loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => Thenable<object | boolean>;
+ removeAdditional?: boolean | 'all' | 'failing';
+ useDefaults?: boolean | 'shared';
+ coerceTypes?: boolean | 'array';
+ async?: boolean | string;
+ transpile?: string | ((code: string) => string);
+ meta?: boolean | object;
+ validateSchema?: boolean | 'log';
+ addUsedSchema?: boolean;
+ inlineRefs?: boolean | number;
+ passContext?: boolean;
+ loopRequired?: number;
+ ownProperties?: boolean;
+ multipleOfPrecision?: boolean | number;
+ errorDataPath?: string,
+ messages?: boolean;
+ sourceCode?: boolean;
+ processCode?: (code: string) => string;
+ cache?: object;
+ }
+
+ type FormatValidator = string | RegExp | ((data: string) => boolean | Thenable<any>);
+
+ interface FormatDefinition {
+ validate: FormatValidator;
+ compare: (data1: string, data2: string) => number;
+ async?: boolean;
+ }
+
+ interface KeywordDefinition {
+ type?: string | Array<string>;
+ async?: boolean;
+ $data?: boolean;
+ errors?: boolean | string;
+ metaSchema?: object;
+ // schema: false makes validate not to expect schema (ValidateFunction)
+ schema?: boolean;
+ modifying?: boolean;
+ valid?: boolean;
+ // one and only one of the following properties should be present
+ validate?: SchemaValidateFunction | ValidateFunction;
+ compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction;
+ macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean;
+ inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string;
+ }
+
+ interface CompilationContext {
+ level: number;
+ dataLevel: number;
+ schema: any;
+ schemaPath: string;
+ baseId: string;
+ async: boolean;
+ opts: Options;
+ formats: {
+ [index: string]: FormatDefinition | undefined;
+ };
+ compositeRule: boolean;
+ validate: (schema: object) => boolean;
+ util: {
+ copy(obj: any, target?: any): any;
+ toHash(source: string[]): { [index: string]: true | undefined };
+ equal(obj: any, target: any): boolean;
+ getProperty(str: string): string;
+ schemaHasRules(schema: object, rules: any): string;
+ escapeQuotes(str: string): string;
+ toQuotedString(str: string): string;
+ getData(jsonPointer: string, dataLevel: number, paths: string[]): string;
+ escapeJsonPointer(str: string): string;
+ unescapeJsonPointer(str: string): string;
+ escapeFragment(str: string): string;
+ unescapeFragment(str: string): string;
+ };
+ self: Ajv;
+ }
+
+ interface SchemaValidateFunction {
+ (
+ schema: any,
+ data: any,
+ parentSchema?: object,
+ dataPath?: string,
+ parentData?: object | Array<any>,
+ parentDataProperty?: string | number,
+ rootData?: object | Array<any>
+ ): boolean | Thenable<any>;
+ errors?: Array<ErrorObject>;
+ }
+
+ interface ErrorsTextOptions {
+ separator?: string;
+ dataVar?: string;
+ }
+
+ interface ErrorObject {
+ keyword: string;
+ dataPath: string;
+ schemaPath: string;
+ params: ErrorParameters;
+ // Added to validation errors of propertyNames keyword schema
+ propertyName?: string;
+ // Excluded if messages set to false.
+ message?: string;
+ // These are added with the `verbose` option.
+ schema?: any;
+ parentSchema?: object;
+ data?: any;
+ }
+
+ type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
+ DependenciesParams | FormatParams | ComparisonParams |
+ MultipleOfParams | PatternParams | RequiredParams |
+ TypeParams | UniqueItemsParams | CustomParams |
+ PatternGroupsParams | PatternRequiredParams |
+ PropertyNamesParams | SwitchParams | NoParams | EnumParams;
+
+ interface RefParams {
+ ref: string;
+ }
+
+ interface LimitParams {
+ limit: number;
+ }
+
+ interface AdditionalPropertiesParams {
+ additionalProperty: string;
+ }
+
+ interface DependenciesParams {
+ property: string;
+ missingProperty: string;
+ depsCount: number;
+ deps: string;
+ }
+
+ interface FormatParams {
+ format: string
+ }
+
+ interface ComparisonParams {
+ comparison: string;
+ limit: number | string;
+ exclusive: boolean;
+ }
+
+ interface MultipleOfParams {
+ multipleOf: number;
+ }
+
+ interface PatternParams {
+ pattern: string;
+ }
+
+ interface RequiredParams {
+ missingProperty: string;
+ }
+
+ interface TypeParams {
+ type: string;
+ }
+
+ interface UniqueItemsParams {
+ i: number;
+ j: number;
+ }
+
+ interface CustomParams {
+ keyword: string;
+ }
+
+ interface PatternGroupsParams {
+ reason: string;
+ limit: number;
+ pattern: string;
+ }
+
+ interface PatternRequiredParams {
+ missingPattern: string;
+ }
+
+ interface PropertyNamesParams {
+ propertyName: string;
+ }
+
+ interface SwitchParams {
+ caseIndex: number;
+ }
+
+ interface NoParams {}
+
+ interface EnumParams {
+ allowedValues: Array<any>;
+ }
+}
+
+declare class ValidationError extends Error {
+ constructor(errors: Array<ajv.ErrorObject>);
+
+ message: string;
+ errors: Array<ajv.ErrorObject>;
+ ajv: true;
+ validation: true;
+}
+
+declare class MissingRefError extends Error {
+ constructor(baseId: string, ref: string, message?: string);
+ static message: (baseId: string, ref: string) => string;
+
+ message: string;
+ missingRef: string;
+ missingSchema: string;
+}
+
+export = ajv;
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.js b/deps/npm/node_modules/ajv/lib/ajv.js
index 14095599ee..3148b8e379 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.js
+++ b/deps/npm/node_modules/ajv/lib/ajv.js
@@ -4,7 +4,7 @@ var compileSchema = require('./compile')
, resolve = require('./compile/resolve')
, Cache = require('./cache')
, SchemaObject = require('./compile/schema_obj')
- , stableStringify = require('json-stable-stringify')
+ , stableStringify = require('fast-json-stable-stringify')
, formats = require('./compile/formats')
, rules = require('./compile/rules')
, $dataMetaSchema = require('./$data')
@@ -52,6 +52,7 @@ var META_SUPPORT_DATA = ['/properties'];
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 = {};
@@ -81,7 +82,7 @@ function Ajv(opts) {
/**
* Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key. [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize.
+ * 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
@@ -125,11 +126,12 @@ function compile(schema, _meta) {
* @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<schema.length; i++) this.addSchema(schema[i], undefined, _skipValidation, _meta);
- return;
+ return this;
}
var id = this._getId(schema);
if (id !== undefined && typeof id != 'string')
@@ -137,6 +139,7 @@ function addSchema(schema, key, _skipValidation, _meta) {
key = resolve.normalizeId(key || id);
checkUnique(this, key);
this._schemas[key] = this._addSchema(schema, _skipValidation, _meta, true);
+ return this;
}
@@ -147,9 +150,11 @@ function addSchema(schema, key, _skipValidation, _meta) {
* @param {Object} schema schema object
* @param {String} key optional schema key
* @param {Boolean} skipValidation true to skip schema validation, can be used to override validateSchema option for meta-schema
+ * @return {Ajv} this for method chaining
*/
function addMetaSchema(schema, key, skipValidation) {
this.addSchema(schema, key, skipValidation, true);
+ return this;
}
@@ -166,7 +171,7 @@ function validateSchema(schema, throwOrLogError) {
throw new Error('$schema must be a string');
$schema = $schema || this._opts.defaultMeta || defaultMeta(this);
if (!$schema) {
- console.warn('meta-schema not available');
+ this.logger.warn('meta-schema not available');
this.errors = null;
return true;
}
@@ -179,7 +184,7 @@ function validateSchema(schema, throwOrLogError) {
finally { this._formats.uri = currentUriFormat; }
if (!valid && throwOrLogError) {
var message = 'schema is invalid: ' + this.errorsText();
- if (this._opts.validateSchema == 'log') console.error(message);
+ if (this._opts.validateSchema == 'log') this.logger.error(message);
else throw new Error(message);
}
return valid;
@@ -246,25 +251,26 @@ function _getSchemaObj(self, keyRef) {
* Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
* @this Ajv
* @param {String|Object|RegExp} schemaKeyRef key, ref, pattern to match key/ref or schema object
+ * @return {Ajv} this for method chaining
*/
function removeSchema(schemaKeyRef) {
if (schemaKeyRef instanceof RegExp) {
_removeAllSchemas(this, this._schemas, schemaKeyRef);
_removeAllSchemas(this, this._refs, schemaKeyRef);
- return;
+ return this;
}
switch (typeof schemaKeyRef) {
case 'undefined':
_removeAllSchemas(this, this._schemas);
_removeAllSchemas(this, this._refs);
this._cache.clear();
- return;
+ return this;
case 'string':
var schemaObj = _getSchemaObj(this, schemaKeyRef);
if (schemaObj) this._cache.del(schemaObj.cacheKey);
delete this._schemas[schemaKeyRef];
delete this._refs[schemaKeyRef];
- return;
+ return this;
case 'object':
var serialize = this._opts.serialize;
var cacheKey = serialize ? serialize(schemaKeyRef) : schemaKeyRef;
@@ -276,6 +282,7 @@ function removeSchema(schemaKeyRef) {
delete this._refs[id];
}
}
+ return this;
}
@@ -378,15 +385,15 @@ function chooseGetId(opts) {
}
}
-
+/* @this Ajv */
function _getId(schema) {
- if (schema.$id) console.warn('schema $id ignored', schema.$id);
+ if (schema.$id) this.logger.warn('schema $id ignored', schema.$id);
return schema.id;
}
-
+/* @this Ajv */
function _get$Id(schema) {
- if (schema.id) console.warn('schema id ignored', schema.id);
+ if (schema.id) this.logger.warn('schema id ignored', schema.id);
return schema.$id;
}
@@ -426,10 +433,12 @@ function errorsText(errors, options) {
* @this Ajv
* @param {String} name format name
* @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
+ * @return {Ajv} this for method chaining
*/
function addFormat(name, format) {
if (typeof format == 'string') format = new RegExp(format);
this._formats[name] = format;
+ return this;
}
@@ -475,3 +484,19 @@ function getMetaSchemaOptions(self) {
delete metaOpts[META_IGNORE_OPTIONS[i]];
return metaOpts;
}
+
+
+function setLogger(self) {
+ var logger = self._opts.logger;
+ if (logger === false) {
+ self.logger = {log: noop, warn: noop, error: noop};
+ } else {
+ if (logger === undefined) logger = console;
+ if (!(typeof logger == 'object' && logger.log && logger.warn && logger.error))
+ throw new Error('logger must implement log, warn and error methods');
+ self.logger = logger;
+ }
+}
+
+
+function noop() {}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/cache.js b/deps/npm/node_modules/ajv/lib/cache.js
index 7558874c73..7558874c73 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/cache.js
+++ b/deps/npm/node_modules/ajv/lib/cache.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/_rules.js b/deps/npm/node_modules/ajv/lib/compile/_rules.js
index 3fe69973a0..3fe69973a0 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/_rules.js
+++ b/deps/npm/node_modules/ajv/lib/compile/_rules.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/async.js b/deps/npm/node_modules/ajv/lib/compile/async.js
index 6a30b8892b..6a30b8892b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/async.js
+++ b/deps/npm/node_modules/ajv/lib/compile/async.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/equal.js b/deps/npm/node_modules/ajv/lib/compile/equal.js
index 911774c855..911774c855 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/equal.js
+++ b/deps/npm/node_modules/ajv/lib/compile/equal.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/error_classes.js b/deps/npm/node_modules/ajv/lib/compile/error_classes.js
index 0b0ec4e4e3..0b0ec4e4e3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/error_classes.js
+++ b/deps/npm/node_modules/ajv/lib/compile/error_classes.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/formats.js b/deps/npm/node_modules/ajv/lib/compile/formats.js
index b3a1541a6f..b3a1541a6f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/formats.js
+++ b/deps/npm/node_modules/ajv/lib/compile/formats.js
diff --git a/deps/npm/node_modules/ajv/lib/compile/index.js b/deps/npm/node_modules/ajv/lib/compile/index.js
new file mode 100644
index 0000000000..cf4f5b86bb
--- /dev/null
+++ b/deps/npm/node_modules/ajv/lib/compile/index.js
@@ -0,0 +1,380 @@
+'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<this._compilations.length; i++) {
+ var c = this._compilations[i];
+ if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
+ }
+ return -1;
+}
+
+
+function patternCode(i, patterns) {
+ return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
+}
+
+
+function defaultCode(i) {
+ return 'var default' + i + ' = defaults[' + i + '];';
+}
+
+
+function refValCode(i, refVal) {
+ return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
+}
+
+
+function customRuleCode(i) {
+ return 'var customRule' + i + ' = customRules[' + i + '];';
+}
+
+
+function vars(arr, statement) {
+ if (!arr.length) return '';
+ var code = '';
+ for (var i=0; i<arr.length; i++)
+ code += statement(i, arr);
+ return code;
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/resolve.js b/deps/npm/node_modules/ajv/lib/compile/resolve.js
index 7d06afab8c..7d06afab8c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/resolve.js
+++ b/deps/npm/node_modules/ajv/lib/compile/resolve.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/rules.js b/deps/npm/node_modules/ajv/lib/compile/rules.js
index eaeab77faf..44830ad72d 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/rules.js
+++ b/deps/npm/node_modules/ajv/lib/compile/rules.js
@@ -20,7 +20,7 @@ module.exports = function rules() {
var ALL = [ 'type' ];
var KEYWORDS = [
- 'additionalItems', '$schema', 'id', 'title',
+ 'additionalItems', '$schema', '$id', 'id', 'title',
'description', 'default', 'definitions'
];
var TYPES = [ 'number', 'integer', 'string', 'array', 'object', 'boolean', 'null' ];
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/schema_obj.js b/deps/npm/node_modules/ajv/lib/compile/schema_obj.js
index e7903b0f46..e7903b0f46 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/schema_obj.js
+++ b/deps/npm/node_modules/ajv/lib/compile/schema_obj.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/ucs2length.js b/deps/npm/node_modules/ajv/lib/compile/ucs2length.js
index d193fb1700..d193fb1700 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/ucs2length.js
+++ b/deps/npm/node_modules/ajv/lib/compile/ucs2length.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/util.js b/deps/npm/node_modules/ajv/lib/compile/util.js
index 263891c33d..263891c33d 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/util.js
+++ b/deps/npm/node_modules/ajv/lib/compile/util.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limit.jst b/deps/npm/node_modules/ajv/lib/dot/_limit.jst
index 13e7649b34..13e7649b34 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limit.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/_limit.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitItems.jst b/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst
index a3e078e513..a3e078e513 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitItems.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/_limitItems.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitLength.jst b/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst
index cfc8dbb016..cfc8dbb016 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitLength.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/_limitLength.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitProperties.jst b/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst
index da7ea776f1..da7ea776f1 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/_limitProperties.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/_limitProperties.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/allOf.jst b/deps/npm/node_modules/ajv/lib/dot/allOf.jst
index 4c2836311b..4c2836311b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/allOf.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/allOf.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/anyOf.jst b/deps/npm/node_modules/ajv/lib/dot/anyOf.jst
index 086cf2b33c..086cf2b33c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/anyOf.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/anyOf.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/coerce.def b/deps/npm/node_modules/ajv/lib/dot/coerce.def
index 86e0e18af9..86e0e18af9 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/coerce.def
+++ b/deps/npm/node_modules/ajv/lib/dot/coerce.def
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/const.jst b/deps/npm/node_modules/ajv/lib/dot/const.jst
index 2aa22980d7..2aa22980d7 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/const.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/const.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/contains.jst b/deps/npm/node_modules/ajv/lib/dot/contains.jst
index 925d2c84b5..925d2c84b5 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/contains.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/contains.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/custom.jst b/deps/npm/node_modules/ajv/lib/dot/custom.jst
index 402028e6bb..402028e6bb 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/custom.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/custom.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/defaults.def b/deps/npm/node_modules/ajv/lib/dot/defaults.def
index 5ad8d1d2d2..5ad8d1d2d2 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/defaults.def
+++ b/deps/npm/node_modules/ajv/lib/dot/defaults.def
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/definitions.def b/deps/npm/node_modules/ajv/lib/dot/definitions.def
index cdbe140bb7..cdbe140bb7 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/definitions.def
+++ b/deps/npm/node_modules/ajv/lib/dot/definitions.def
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/dependencies.jst b/deps/npm/node_modules/ajv/lib/dot/dependencies.jst
index 1e8c18ce96..1e8c18ce96 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/dependencies.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/dependencies.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/enum.jst b/deps/npm/node_modules/ajv/lib/dot/enum.jst
index 357c2e8c08..357c2e8c08 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/enum.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/enum.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/errors.def b/deps/npm/node_modules/ajv/lib/dot/errors.def
index b79646fc2c..b79646fc2c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/errors.def
+++ b/deps/npm/node_modules/ajv/lib/dot/errors.def
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/format.jst b/deps/npm/node_modules/ajv/lib/dot/format.jst
index 074d16c318..484dddf794 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/format.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/format.jst
@@ -71,7 +71,7 @@
{{ var $format = it.formats[$schema]; }}
{{? !$format }}
{{? $unknownFormats == 'ignore' }}
- {{ console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }}
+ {{ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"'); }}
{{# def.skipFormat }}
{{?? $allowUnknown && $unknownFormats.indexOf($schema) >= 0 }}
{{# def.skipFormat }}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/items.jst b/deps/npm/node_modules/ajv/lib/dot/items.jst
index fe1be473d4..fe1be473d4 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/items.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/items.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/missing.def b/deps/npm/node_modules/ajv/lib/dot/missing.def
index a73b9f966e..a73b9f966e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/missing.def
+++ b/deps/npm/node_modules/ajv/lib/dot/missing.def
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/multipleOf.jst b/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst
index 5f8dd33b5d..5f8dd33b5d 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/multipleOf.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/multipleOf.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/not.jst b/deps/npm/node_modules/ajv/lib/dot/not.jst
index e03185ae87..e03185ae87 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/not.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/not.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/oneOf.jst b/deps/npm/node_modules/ajv/lib/dot/oneOf.jst
index 59a435549c..59a435549c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/oneOf.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/oneOf.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/pattern.jst b/deps/npm/node_modules/ajv/lib/dot/pattern.jst
index 3a37ef6cb8..3a37ef6cb8 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/pattern.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/pattern.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/properties.jst b/deps/npm/node_modules/ajv/lib/dot/properties.jst
index 8d56324b77..8d56324b77 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/properties.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/properties.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/propertyNames.jst b/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst
index 51caffc207..51caffc207 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/propertyNames.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/propertyNames.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/ref.jst b/deps/npm/node_modules/ajv/lib/dot/ref.jst
index 4a08896860..036bc29057 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/ref.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/ref.jst
@@ -27,11 +27,11 @@
{{? $refVal === undefined }}
{{ var $message = it.MissingRefError.message(it.baseId, $schema); }}
{{? it.opts.missingRefs == 'fail' }}
- {{ console.error($message); }}
+ {{ it.logger.error($message); }}
{{# def.error:'$ref' }}
{{? $breakOnError }} if (false) { {{?}}
{{?? it.opts.missingRefs == 'ignore' }}
- {{ console.warn($message); }}
+ {{ it.logger.warn($message); }}
{{? $breakOnError }} if (true) { {{?}}
{{??}}
{{ throw new it.MissingRefError(it.baseId, $schema, $message); }}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/required.jst b/deps/npm/node_modules/ajv/lib/dot/required.jst
index 80fde35e8c..80fde35e8c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/required.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/required.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/uniqueItems.jst b/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst
index dfc42b03b2..dfc42b03b2 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/uniqueItems.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/uniqueItems.jst
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/validate.jst b/deps/npm/node_modules/ajv/lib/dot/validate.jst
index 4ebc599c06..273e4c37e0 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dot/validate.jst
+++ b/deps/npm/node_modules/ajv/lib/dot/validate.jst
@@ -140,7 +140,7 @@
{{?? it.opts.extendRefs !== true }}
{{
$refKeywords = false;
- console.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
+ it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
}}
{{?}}
{{?}}
@@ -177,7 +177,7 @@
{{?}}
{{??}}
{{? it.opts.v5 && it.schema.patternGroups }}
- {{ console.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.'); }}
+ {{ it.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.'); }}
{{?}}
{{~ it.RULES:$rulesGroup }}
{{? $shouldUseGroup($rulesGroup) }}
@@ -260,10 +260,10 @@
function $shouldUseRule($rule) {
return it.schema[$rule.keyword] !== undefined ||
- ($rule.implements && $ruleImlementsSomeKeyword($rule));
+ ($rule.implements && $ruleImplementsSomeKeyword($rule));
}
- function $ruleImlementsSomeKeyword($rule) {
+ function $ruleImplementsSomeKeyword($rule) {
var impl = $rule.implements;
for (var i=0; i < impl.length; i++)
if (it.schema[impl[i]] !== undefined)
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/README.md b/deps/npm/node_modules/ajv/lib/dotjs/README.md
index 4d994846c8..4d994846c8 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/README.md
+++ b/deps/npm/node_modules/ajv/lib/dotjs/README.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limit.js b/deps/npm/node_modules/ajv/lib/dotjs/_limit.js
index 10a187fb78..10a187fb78 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limit.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/_limit.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitItems.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js
index 16e37f214e..16e37f214e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitItems.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/_limitItems.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitLength.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js
index e6927f39c6..e6927f39c6 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitLength.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/_limitLength.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitProperties.js b/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js
index a48308f8ac..a48308f8ac 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/_limitProperties.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/_limitProperties.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/allOf.js b/deps/npm/node_modules/ajv/lib/dotjs/allOf.js
index 5107b18cfc..5107b18cfc 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/allOf.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/allOf.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/anyOf.js b/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js
index 994b091230..994b091230 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/anyOf.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/anyOf.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/const.js b/deps/npm/node_modules/ajv/lib/dotjs/const.js
index d19756e145..d19756e145 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/const.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/const.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/contains.js b/deps/npm/node_modules/ajv/lib/dotjs/contains.js
index 04c6e936f7..04c6e936f7 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/contains.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/contains.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/custom.js b/deps/npm/node_modules/ajv/lib/dotjs/custom.js
index bff06d111c..bff06d111c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/custom.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/custom.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/dependencies.js b/deps/npm/node_modules/ajv/lib/dotjs/dependencies.js
index 58814c6129..58814c6129 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/dependencies.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/dependencies.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/enum.js b/deps/npm/node_modules/ajv/lib/dotjs/enum.js
index 03f3a8caae..03f3a8caae 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/enum.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/enum.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/format.js b/deps/npm/node_modules/ajv/lib/dotjs/format.js
index eb13371c14..68697f0deb 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/format.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/format.js
@@ -55,7 +55,7 @@ module.exports = function generate_format(it, $keyword, $ruleType) {
var $format = it.formats[$schema];
if (!$format) {
if ($unknownFormats == 'ignore') {
- console.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
+ it.logger.warn('unknown format "' + $schema + '" ignored in schema at path "' + it.errSchemaPath + '"');
if ($breakOnError) {
out += ' if (true) { ';
}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/items.js b/deps/npm/node_modules/ajv/lib/dotjs/items.js
index 77be5e214a..77be5e214a 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/items.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/items.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/multipleOf.js b/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js
index df5a315444..df5a315444 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/multipleOf.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/multipleOf.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/not.js b/deps/npm/node_modules/ajv/lib/dotjs/not.js
index 67add9f672..67add9f672 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/not.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/not.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/oneOf.js b/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js
index b4cd46065b..b4cd46065b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/oneOf.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/oneOf.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/pattern.js b/deps/npm/node_modules/ajv/lib/dotjs/pattern.js
index 76b7794e0e..76b7794e0e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/pattern.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/pattern.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/properties.js b/deps/npm/node_modules/ajv/lib/dotjs/properties.js
index 3c6cecf63f..3c6cecf63f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/properties.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/properties.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/propertyNames.js b/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js
index 0cedcdac9a..0cedcdac9a 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/propertyNames.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/propertyNames.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/ref.js b/deps/npm/node_modules/ajv/lib/dotjs/ref.js
index 6fb9505464..a9d7bb909b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/ref.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/ref.js
@@ -22,7 +22,7 @@ module.exports = function generate_ref(it, $keyword, $ruleType) {
if ($refVal === undefined) {
var $message = it.MissingRefError.message(it.baseId, $schema);
if (it.opts.missingRefs == 'fail') {
- console.error($message);
+ it.logger.error($message);
var $$outStack = $$outStack || [];
$$outStack.push(out);
out = ''; /* istanbul ignore else */
@@ -53,7 +53,7 @@ module.exports = function generate_ref(it, $keyword, $ruleType) {
out += ' if (false) { ';
}
} else if (it.opts.missingRefs == 'ignore') {
- console.warn($message);
+ it.logger.warn($message);
if ($breakOnError) {
out += ' if (true) { ';
}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/required.js b/deps/npm/node_modules/ajv/lib/dotjs/required.js
index 15b36bb7a7..15b36bb7a7 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/required.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/required.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/uniqueItems.js b/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js
index d9b3185fce..d9b3185fce 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/uniqueItems.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/uniqueItems.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/validate.js b/deps/npm/node_modules/ajv/lib/dotjs/validate.js
index 0ff9eda426..5ff9beee70 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/dotjs/validate.js
+++ b/deps/npm/node_modules/ajv/lib/dotjs/validate.js
@@ -123,7 +123,7 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
throw new Error('$ref: validation keywords used in schema at path "' + it.errSchemaPath + '" (see option extendRefs)');
} else if (it.opts.extendRefs !== true) {
$refKeywords = false;
- console.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
+ it.logger.warn('$ref: keywords ignored in schema at path "' + it.errSchemaPath + '"');
}
}
if ($typeSchema) {
@@ -281,7 +281,7 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
}
} else {
if (it.opts.v5 && it.schema.patternGroups) {
- console.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');
+ it.logger.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');
}
var arr2 = it.RULES;
if (arr2) {
@@ -446,10 +446,10 @@ module.exports = function generate_validate(it, $keyword, $ruleType) {
}
function $shouldUseRule($rule) {
- return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImlementsSomeKeyword($rule));
+ return it.schema[$rule.keyword] !== undefined || ($rule.implements && $ruleImplementsSomeKeyword($rule));
}
- function $ruleImlementsSomeKeyword($rule) {
+ function $ruleImplementsSomeKeyword($rule) {
var impl = $rule.implements;
for (var i = 0; i < impl.length; i++)
if (it.schema[impl[i]] !== undefined) return true;
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/keyword.js b/deps/npm/node_modules/ajv/lib/keyword.js
index 85e64c6004..5fcfb75fca 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/keyword.js
+++ b/deps/npm/node_modules/ajv/lib/keyword.js
@@ -14,6 +14,7 @@ module.exports = {
* @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 */
@@ -91,6 +92,8 @@ function addKeyword(keyword, definition) {
function checkDataType(dataType) {
if (!RULES.types[dataType]) throw new Error('Unknown type ' + dataType);
}
+
+ return this;
}
@@ -111,6 +114,7 @@ function getKeyword(keyword) {
* Remove keyword
* @this Ajv
* @param {String} keyword pre-defined or custom keyword.
+ * @return {Ajv} this for method chaining
*/
function removeKeyword(keyword) {
/* jshint validthis: true */
@@ -127,4 +131,5 @@ function removeKeyword(keyword) {
}
}
}
+ return this;
}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/patternGroups.js b/deps/npm/node_modules/ajv/lib/patternGroups.js
index 531a8d004e..531a8d004e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/patternGroups.js
+++ b/deps/npm/node_modules/ajv/lib/patternGroups.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/$data.json b/deps/npm/node_modules/ajv/lib/refs/$data.json
index 9ab8f41c2f..9ab8f41c2f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/$data.json
+++ b/deps/npm/node_modules/ajv/lib/refs/$data.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-04.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json
index 85eb502a68..85eb502a68 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-04.json
+++ b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-04.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-06.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json
index 621cc5102b..5656240b94 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-draft-06.json
+++ b/deps/npm/node_modules/ajv/lib/refs/json-schema-draft-06.json
@@ -57,6 +57,10 @@
"type": "string"
},
"default": {},
+ "examples": {
+ "type": "array",
+ "items": {}
+ },
"multipleOf": {
"type": "number",
"exclusiveMinimum": 0
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-v5.json b/deps/npm/node_modules/ajv/lib/refs/json-schema-v5.json
index 21aee97ed2..21aee97ed2 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/refs/json-schema-v5.json
+++ b/deps/npm/node_modules/ajv/lib/refs/json-schema-v5.json
diff --git a/deps/npm/node_modules/ajv/package.json b/deps/npm/node_modules/ajv/package.json
new file mode 100644
index 0000000000..813e377f81
--- /dev/null
+++ b/deps/npm/node_modules/ajv/package.json
@@ -0,0 +1,132 @@
+{
+ "_from": "ajv@^5.1.0",
+ "_id": "ajv@5.5.2",
+ "_inBundle": false,
+ "_integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "_location": "/ajv",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ajv@^5.1.0",
+ "name": "ajv",
+ "escapedName": "ajv",
+ "rawSpec": "^5.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.1.0"
+ },
+ "_requiredBy": [
+ "/eslint",
+ "/har-validator",
+ "/table"
+ ],
+ "_resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
+ "_shasum": "73b5eeca3fab653e3d3f9422b341ad42205dc965",
+ "_spec": "ajv@^5.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/har-validator",
+ "author": {
+ "name": "Evgeny Poberezkin"
+ },
+ "bugs": {
+ "url": "https://github.com/epoberezkin/ajv/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "co": "^4.6.0",
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ },
+ "deprecated": false,
+ "description": "Another JSON Schema Validator",
+ "devDependencies": {
+ "ajv-async": "^0.1.0",
+ "bluebird": "^3.1.5",
+ "brfs": "^1.4.3",
+ "browserify": "^14.1.0",
+ "chai": "^4.0.1",
+ "coveralls": "^3.0.0",
+ "del-cli": "^1.1.0",
+ "dot": "^1.0.3",
+ "eslint": "^4.1.0",
+ "gh-pages-generator": "^0.2.0",
+ "glob": "^7.0.0",
+ "if-node-version": "^1.0.0",
+ "js-beautify": "^1.7.3",
+ "jshint": "^2.9.4",
+ "json-schema-test": "^2.0.0",
+ "karma": "^1.0.0",
+ "karma-chrome-launcher": "^2.0.0",
+ "karma-mocha": "^1.1.1",
+ "karma-phantomjs-launcher": "^1.0.0",
+ "karma-sauce-launcher": "^1.1.0",
+ "mocha": "^4.0.0",
+ "nodent": "^3.0.17",
+ "nyc": "^11.0.2",
+ "phantomjs-prebuilt": "^2.1.4",
+ "pre-commit": "^1.1.1",
+ "regenerator": "^0.12.2",
+ "require-globify": "^1.3.0",
+ "typescript": "^2.6.2",
+ "uglify-js": "^3.1.5",
+ "watch": "^1.0.0"
+ },
+ "files": [
+ "lib/",
+ "dist/",
+ "scripts/",
+ "LICENSE",
+ ".tonic_example.js"
+ ],
+ "homepage": "https://github.com/epoberezkin/ajv",
+ "keywords": [
+ "JSON",
+ "schema",
+ "validator",
+ "validation",
+ "jsonschema",
+ "json-schema",
+ "json-schema-validator",
+ "json-schema-validation"
+ ],
+ "license": "MIT",
+ "main": "lib/ajv.js",
+ "name": "ajv",
+ "nyc": {
+ "exclude": [
+ "**/spec/**",
+ "node_modules"
+ ],
+ "reporter": [
+ "lcov",
+ "text-summary"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/epoberezkin/ajv.git"
+ },
+ "scripts": {
+ "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js",
+ "bundle": "node ./scripts/bundle.js . Ajv pure_getters",
+ "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent",
+ "bundle-beautify": "node ./scripts/bundle.js js-beautify",
+ "bundle-nodent": "node ./scripts/bundle.js nodent",
+ "bundle-regenerator": "node ./scripts/bundle.js regenerator",
+ "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec/*.js scripts",
+ "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*",
+ "prepublish": "npm run build && npm run bundle-all",
+ "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser",
+ "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma",
+ "test-cov": "nyc npm run test-spec",
+ "test-debug": "mocha spec/*.spec.js --debug-brk -R spec",
+ "test-fast": "AJV_FAST_TEST=true npm run test-spec",
+ "test-karma": "karma start --single-run --browsers PhantomJS",
+ "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)",
+ "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts",
+ "watch": "watch 'npm run build' ./lib/dot"
+ },
+ "tonicExampleFilename": ".tonic_example.js",
+ "typings": "lib/ajv.d.ts",
+ "version": "5.5.2"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/.eslintrc.yml b/deps/npm/node_modules/ajv/scripts/.eslintrc.yml
index 493d7d312d..493d7d312d 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/.eslintrc.yml
+++ b/deps/npm/node_modules/ajv/scripts/.eslintrc.yml
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/bundle.js b/deps/npm/node_modules/ajv/scripts/bundle.js
index e381a762d2..e381a762d2 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/bundle.js
+++ b/deps/npm/node_modules/ajv/scripts/bundle.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/compile-dots.js b/deps/npm/node_modules/ajv/scripts/compile-dots.js
index 5a21a7dddf..5a21a7dddf 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/compile-dots.js
+++ b/deps/npm/node_modules/ajv/scripts/compile-dots.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/info b/deps/npm/node_modules/ajv/scripts/info
index 77269ab5fa..77269ab5fa 100755
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/info
+++ b/deps/npm/node_modules/ajv/scripts/info
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/prepare-tests b/deps/npm/node_modules/ajv/scripts/prepare-tests
index 6f62634e23..6f62634e23 100755
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/prepare-tests
+++ b/deps/npm/node_modules/ajv/scripts/prepare-tests
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/travis-gh-pages b/deps/npm/node_modules/ajv/scripts/travis-gh-pages
index 46ded1611a..46ded1611a 100755
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/scripts/travis-gh-pages
+++ b/deps/npm/node_modules/ajv/scripts/travis-gh-pages
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/CHANGELOG.md b/deps/npm/node_modules/ansi-align/CHANGELOG.md
index 621e50a921..621e50a921 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/CHANGELOG.md
+++ b/deps/npm/node_modules/ansi-align/CHANGELOG.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/LICENSE b/deps/npm/node_modules/ansi-align/LICENSE
index ab601b657e..ab601b657e 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/LICENSE
+++ b/deps/npm/node_modules/ansi-align/LICENSE
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/README.md b/deps/npm/node_modules/ansi-align/README.md
index 3aafc67f34..3aafc67f34 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/README.md
+++ b/deps/npm/node_modules/ansi-align/README.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/index.js b/deps/npm/node_modules/ansi-align/index.js
index 67fa826d06..67fa826d06 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/index.js
+++ b/deps/npm/node_modules/ansi-align/index.js
diff --git a/deps/npm/node_modules/ansi-align/package.json b/deps/npm/node_modules/ansi-align/package.json
new file mode 100644
index 0000000000..5ca2ea2539
--- /dev/null
+++ b/deps/npm/node_modules/ansi-align/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "ansi-align@^2.0.0",
+ "_id": "ansi-align@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
+ "_location": "/ansi-align",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-align@^2.0.0",
+ "name": "ansi-align",
+ "escapedName": "ansi-align",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/boxen"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
+ "_shasum": "c36aeccba563b89ceb556f3690f0b1d9e3547f7f",
+ "_spec": "ansi-align@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/boxen",
+ "author": {
+ "name": "nexdrew"
+ },
+ "bugs": {
+ "url": "https://github.com/nexdrew/ansi-align/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "string-width": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "align-text with ANSI support for CLIs",
+ "devDependencies": {
+ "ava": "^0.19.1",
+ "chalk": "^1.1.3",
+ "coveralls": "^2.13.1",
+ "nyc": "^10.3.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/nexdrew/ansi-align#readme",
+ "keywords": [
+ "ansi",
+ "align",
+ "cli",
+ "center",
+ "pad"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "ansi-align",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/nexdrew/ansi-align.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc ava"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/ansi-regex/package.json b/deps/npm/node_modules/ansi-regex/package.json
index 2bf2bb485f..aae73cfd74 100644
--- a/deps/npm/node_modules/ansi-regex/package.json
+++ b/deps/npm/node_modules/ansi-regex/package.json
@@ -1,27 +1,32 @@
{
- "_from": "ansi-regex@latest",
+ "_args": [
+ [
+ "ansi-regex@3.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "ansi-regex@3.0.0",
"_id": "ansi-regex@3.0.0",
"_inBundle": false,
"_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
"_location": "/ansi-regex",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "ansi-regex@latest",
+ "raw": "ansi-regex@3.0.0",
"name": "ansi-regex",
"escapedName": "ansi-regex",
- "rawSpec": "latest",
+ "rawSpec": "3.0.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "3.0.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/strip-ansi"
],
"_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "_shasum": "ed0317c322064f79466c02966bddb605ab37d998",
- "_spec": "ansi-regex@latest",
+ "_spec": "3.0.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sindre Sorhus",
@@ -31,8 +36,6 @@
"bugs": {
"url": "https://github.com/chalk/ansi-regex/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "Regular expression for matching ANSI escape codes",
"devDependencies": {
"ava": "*",
diff --git a/deps/npm/node_modules/ansi-styles/index.js b/deps/npm/node_modules/ansi-styles/index.js
new file mode 100644
index 0000000000..90a871c4d7
--- /dev/null
+++ b/deps/npm/node_modules/ansi-styles/index.js
@@ -0,0 +1,165 @@
+'use strict';
+const colorConvert = require('color-convert');
+
+const wrapAnsi16 = (fn, offset) => function () {
+ const code = fn.apply(colorConvert, arguments);
+ return `\u001B[${code + offset}m`;
+};
+
+const wrapAnsi256 = (fn, offset) => function () {
+ const code = fn.apply(colorConvert, arguments);
+ return `\u001B[${38 + offset};5;${code}m`;
+};
+
+const wrapAnsi16m = (fn, offset) => function () {
+ const rgb = fn.apply(colorConvert, arguments);
+ return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
+};
+
+function assembleStyles() {
+ const codes = new Map();
+ const styles = {
+ modifier: {
+ reset: [0, 0],
+ // 21 isn't widely supported and 22 does the same thing
+ bold: [1, 22],
+ dim: [2, 22],
+ italic: [3, 23],
+ underline: [4, 24],
+ inverse: [7, 27],
+ hidden: [8, 28],
+ strikethrough: [9, 29]
+ },
+ color: {
+ 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],
+
+ // Bright color
+ redBright: [91, 39],
+ greenBright: [92, 39],
+ yellowBright: [93, 39],
+ blueBright: [94, 39],
+ magentaBright: [95, 39],
+ cyanBright: [96, 39],
+ whiteBright: [97, 39]
+ },
+ bgColor: {
+ bgBlack: [40, 49],
+ bgRed: [41, 49],
+ bgGreen: [42, 49],
+ bgYellow: [43, 49],
+ bgBlue: [44, 49],
+ bgMagenta: [45, 49],
+ bgCyan: [46, 49],
+ bgWhite: [47, 49],
+
+ // Bright color
+ bgBlackBright: [100, 49],
+ bgRedBright: [101, 49],
+ bgGreenBright: [102, 49],
+ bgYellowBright: [103, 49],
+ bgBlueBright: [104, 49],
+ bgMagentaBright: [105, 49],
+ bgCyanBright: [106, 49],
+ bgWhiteBright: [107, 49]
+ }
+ };
+
+ // Fix humans
+ styles.color.grey = styles.color.gray;
+
+ for (const groupName of Object.keys(styles)) {
+ const group = styles[groupName];
+
+ for (const styleName of Object.keys(group)) {
+ const style = group[styleName];
+
+ styles[styleName] = {
+ open: `\u001B[${style[0]}m`,
+ close: `\u001B[${style[1]}m`
+ };
+
+ group[styleName] = styles[styleName];
+
+ codes.set(style[0], style[1]);
+ }
+
+ Object.defineProperty(styles, groupName, {
+ value: group,
+ enumerable: false
+ });
+
+ Object.defineProperty(styles, 'codes', {
+ value: codes,
+ enumerable: false
+ });
+ }
+
+ const ansi2ansi = n => n;
+ const rgb2rgb = (r, g, b) => [r, g, b];
+
+ styles.color.close = '\u001B[39m';
+ styles.bgColor.close = '\u001B[49m';
+
+ styles.color.ansi = {
+ ansi: wrapAnsi16(ansi2ansi, 0)
+ };
+ styles.color.ansi256 = {
+ ansi256: wrapAnsi256(ansi2ansi, 0)
+ };
+ styles.color.ansi16m = {
+ rgb: wrapAnsi16m(rgb2rgb, 0)
+ };
+
+ styles.bgColor.ansi = {
+ ansi: wrapAnsi16(ansi2ansi, 10)
+ };
+ styles.bgColor.ansi256 = {
+ ansi256: wrapAnsi256(ansi2ansi, 10)
+ };
+ styles.bgColor.ansi16m = {
+ rgb: wrapAnsi16m(rgb2rgb, 10)
+ };
+
+ for (let key of Object.keys(colorConvert)) {
+ if (typeof colorConvert[key] !== 'object') {
+ continue;
+ }
+
+ const suite = colorConvert[key];
+
+ if (key === 'ansi16') {
+ key = 'ansi';
+ }
+
+ if ('ansi16' in suite) {
+ styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
+ styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
+ }
+
+ if ('ansi256' in suite) {
+ styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
+ styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
+ }
+
+ if ('rgb' in suite) {
+ styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
+ styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
+ }
+ }
+
+ return styles;
+}
+
+// Make the export immutable
+Object.defineProperty(module, 'exports', {
+ enumerable: true,
+ get: assembleStyles
+});
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/license b/deps/npm/node_modules/ansi-styles/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/license
+++ b/deps/npm/node_modules/ansi-styles/license
diff --git a/deps/npm/node_modules/ansi-styles/package.json b/deps/npm/node_modules/ansi-styles/package.json
new file mode 100644
index 0000000000..d89711810b
--- /dev/null
+++ b/deps/npm/node_modules/ansi-styles/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "ansi-styles@^3.2.1",
+ "_id": "ansi-styles@3.2.1",
+ "_inBundle": false,
+ "_integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "_location": "/ansi-styles",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-styles@^3.2.1",
+ "name": "ansi-styles",
+ "escapedName": "ansi-styles",
+ "rawSpec": "^3.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.2.1"
+ },
+ "_requiredBy": [
+ "/chalk"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "_shasum": "41fbb20243e50b12be0f04b8dedbf07520ce841d",
+ "_spec": "ansi-styles@^3.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/chalk",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "ava": {
+ "require": "babel-polyfill"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-styles/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "deprecated": false,
+ "description": "ANSI escape codes for styling strings in the terminal",
+ "devDependencies": {
+ "ava": "*",
+ "babel-polyfill": "^6.23.0",
+ "svg-term-cli": "^2.1.1",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-styles#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "name": "ansi-styles",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-styles.git"
+ },
+ "scripts": {
+ "screenshot": "svg-term --command='node screenshot' --out=screenshot.svg --padding=3 --width=55 --height=3 --at=1000 --no-cursor",
+ "test": "xo && ava"
+ },
+ "version": "3.2.1"
+}
diff --git a/deps/npm/node_modules/ansi-styles/readme.md b/deps/npm/node_modules/ansi-styles/readme.md
new file mode 100644
index 0000000000..3158e2df59
--- /dev/null
+++ b/deps/npm/node_modules/ansi-styles/readme.md
@@ -0,0 +1,147 @@
+# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
+
+> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
+
+You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
+
+<img src="https://cdn.rawgit.com/chalk/ansi-styles/8261697c95bf34b6c7767e2cbe9941a851d59385/screenshot.svg" width="900">
+
+
+## Install
+
+```
+$ npm install ansi-styles
+```
+
+
+## Usage
+
+```js
+const style = require('ansi-styles');
+
+console.log(`${style.green.open}Hello world!${style.green.close}`);
+
+
+// Color conversion between 16/256/truecolor
+// NOTE: If conversion goes to 16 colors or 256 colors, the original color
+// may be degraded to fit that color palette. This means terminals
+// that do not support 16 million colors will best-match the
+// original color.
+console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
+console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
+console.log(style.color.ansi16m.hex('#ABCDEF') + 'Hello world!' + style.color.close);
+```
+
+## API
+
+Each style has an `open` and `close` property.
+
+
+## Styles
+
+### Modifiers
+
+- `reset`
+- `bold`
+- `dim`
+- `italic` *(Not widely supported)*
+- `underline`
+- `inverse`
+- `hidden`
+- `strikethrough` *(Not widely supported)*
+
+### Colors
+
+- `black`
+- `red`
+- `green`
+- `yellow`
+- `blue`
+- `magenta`
+- `cyan`
+- `white`
+- `gray` ("bright black")
+- `redBright`
+- `greenBright`
+- `yellowBright`
+- `blueBright`
+- `magentaBright`
+- `cyanBright`
+- `whiteBright`
+
+### Background colors
+
+- `bgBlack`
+- `bgRed`
+- `bgGreen`
+- `bgYellow`
+- `bgBlue`
+- `bgMagenta`
+- `bgCyan`
+- `bgWhite`
+- `bgBlackBright`
+- `bgRedBright`
+- `bgGreenBright`
+- `bgYellowBright`
+- `bgBlueBright`
+- `bgMagentaBright`
+- `bgCyanBright`
+- `bgWhiteBright`
+
+
+## Advanced usage
+
+By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
+
+- `style.modifier`
+- `style.color`
+- `style.bgColor`
+
+###### Example
+
+```js
+console.log(style.color.green.open);
+```
+
+Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values.
+
+###### Example
+
+```js
+console.log(style.codes.get(36));
+//=> 39
+```
+
+
+## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728)
+
+`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.
+
+To use these, call the associated conversion function with the intended output, for example:
+
+```js
+style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
+style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code
+
+style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
+style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
+
+style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
+style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code
+```
+
+
+## Related
+
+- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
+## License
+
+MIT
diff --git a/deps/npm/node_modules/ansicolors/package.json b/deps/npm/node_modules/ansicolors/package.json
index 10e2cdbb3b..0b82cc1e4c 100644
--- a/deps/npm/node_modules/ansicolors/package.json
+++ b/deps/npm/node_modules/ansicolors/package.json
@@ -1,41 +1,41 @@
{
- "_from": "ansicolors@~0.3.2",
+ "_args": [
+ [
+ "ansicolors@0.3.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "ansicolors@0.3.2",
"_id": "ansicolors@0.3.2",
+ "_inBundle": false,
"_integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=",
"_location": "/ansicolors",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "ansicolors@~0.3.2",
+ "raw": "ansicolors@0.3.2",
"name": "ansicolors",
"escapedName": "ansicolors",
- "rawSpec": "~0.3.2",
+ "rawSpec": "0.3.2",
"saveSpec": null,
- "fetchSpec": "~0.3.2"
+ "fetchSpec": "0.3.2"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz",
- "_shasum": "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979",
- "_shrinkwrap": null,
- "_spec": "ansicolors@~0.3.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.3.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Thorsten Lorenz",
"email": "thlorenz@gmx.de",
"url": "thlorenz.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/thlorenz/ansicolors/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Functions that surround a string with ansicolor codes so it prints in color.",
- "devDependencies": {},
"gitHead": "858847ca28e8b360d9b70eee0592700fa2ab087d",
"homepage": "https://github.com/thlorenz/ansicolors#readme",
"keywords": [
@@ -47,8 +47,6 @@
"license": "MIT",
"main": "ansicolors.js",
"name": "ansicolors",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/thlorenz/ansicolors.git"
diff --git a/deps/npm/node_modules/ansistyles/package.json b/deps/npm/node_modules/ansistyles/package.json
index 6ed47c4499..a9d89e90fc 100644
--- a/deps/npm/node_modules/ansistyles/package.json
+++ b/deps/npm/node_modules/ansistyles/package.json
@@ -1,41 +1,41 @@
{
- "_from": "ansistyles@~0.1.3",
+ "_args": [
+ [
+ "ansistyles@0.1.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "ansistyles@0.1.3",
"_id": "ansistyles@0.1.3",
+ "_inBundle": false,
"_integrity": "sha1-XeYEFb2gcbs3EnhUyGT0GyMlRTk=",
"_location": "/ansistyles",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "ansistyles@~0.1.3",
+ "raw": "ansistyles@0.1.3",
"name": "ansistyles",
"escapedName": "ansistyles",
- "rawSpec": "~0.1.3",
+ "rawSpec": "0.1.3",
"saveSpec": null,
- "fetchSpec": "~0.1.3"
+ "fetchSpec": "0.1.3"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/ansistyles/-/ansistyles-0.1.3.tgz",
- "_shasum": "5de60415bda071bb37127854c864f41b23254539",
- "_shrinkwrap": null,
- "_spec": "ansistyles@~0.1.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.1.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Thorsten Lorenz",
"email": "thlorenz@gmx.de",
"url": "thlorenz.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/thlorenz/ansistyles/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Functions that surround a string with ansistyle codes so it prints in style.",
- "devDependencies": {},
"gitHead": "27bf1bc65231bcc7fd109bf13b13601b51f8cd04",
"homepage": "https://github.com/thlorenz/ansistyles#readme",
"keywords": [
@@ -47,8 +47,6 @@
"license": "MIT",
"main": "ansistyles.js",
"name": "ansistyles",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/thlorenz/ansistyles.git"
diff --git a/deps/npm/node_modules/aproba/package.json b/deps/npm/node_modules/aproba/package.json
index f3720a897a..534c6beb57 100644
--- a/deps/npm/node_modules/aproba/package.json
+++ b/deps/npm/node_modules/aproba/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "aproba@1.2.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "aproba@1.2.0",
"_id": "aproba@1.2.0",
"_inBundle": false,
@@ -16,17 +22,16 @@
"fetchSpec": "1.2.0"
},
"_requiredBy": [
- "#USER",
"/",
+ "/copy-concurrently",
+ "/gauge",
+ "/gentle-fs",
"/move-concurrently",
- "/move-concurrently/copy-concurrently",
- "/move-concurrently/run-queue",
"/npm-profile",
- "/npmlog/gauge"
+ "/run-queue"
],
"_resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "_shasum": "6802e6264efd18c790a1b0d517f0f2627bf2c94a",
- "_spec": "aproba@1.2.0",
+ "_spec": "1.2.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -35,9 +40,7 @@
"bugs": {
"url": "https://github.com/iarna/aproba/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "A ridiculously light-weight argument validator (now browser friendly)",
"devDependencies": {
"standard": "^10.0.3",
diff --git a/deps/npm/node_modules/archy/package.json b/deps/npm/node_modules/archy/package.json
index 434687c286..b78e34e3e6 100644
--- a/deps/npm/node_modules/archy/package.json
+++ b/deps/npm/node_modules/archy/package.json
@@ -1,39 +1,40 @@
{
- "_from": "archy@~1.0.0",
+ "_args": [
+ [
+ "archy@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "archy@1.0.0",
"_id": "archy@1.0.0",
+ "_inBundle": false,
"_integrity": "sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=",
"_location": "/archy",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "archy@~1.0.0",
+ "raw": "archy@1.0.0",
"name": "archy",
"escapedName": "archy",
- "rawSpec": "~1.0.0",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "~1.0.0"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "_shasum": "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40",
- "_shrinkwrap": null,
- "_spec": "archy@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
"url": "http://substack.net"
},
- "bin": null,
"bugs": {
"url": "https://github.com/substack/node-archy/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "render nested hierarchies `npm ls` style with unicode pipes",
"devDependencies": {
"tap": "~0.3.3",
@@ -50,8 +51,6 @@
"license": "MIT",
"main": "index.js",
"name": "archy",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+ssh://git@github.com/substack/node-archy.git"
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md b/deps/npm/node_modules/are-we-there-yet/CHANGES.md
index 46ad078520..46ad078520 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/CHANGES.md
+++ b/deps/npm/node_modules/are-we-there-yet/CHANGES.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE b/deps/npm/node_modules/are-we-there-yet/LICENSE
index af4588069d..af4588069d 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/LICENSE
+++ b/deps/npm/node_modules/are-we-there-yet/LICENSE
diff --git a/deps/npm/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/are-we-there-yet/README.md
new file mode 100644
index 0000000000..a927eae6be
--- /dev/null
+++ b/deps/npm/node_modules/are-we-there-yet/README.md
@@ -0,0 +1,195 @@
+are-we-there-yet
+----------------
+
+Track complex hiearchies of asynchronous task completion statuses. This is
+intended to give you a way of recording and reporting the progress of the big
+recursive fan-out and gather type workflows that are so common in async.
+
+What you do with this completion data is up to you, but the most common use case is to
+feed it to one of the many progress bar modules.
+
+Most progress bar modules include a rudamentary version of this, but my
+needs were more complex.
+
+Usage
+=====
+
+```javascript
+var TrackerGroup = require("are-we-there-yet").TrackerGroup
+
+var top = new TrackerGroup("program")
+
+var single = top.newItem("one thing", 100)
+single.completeWork(20)
+
+console.log(top.completed()) // 0.2
+
+fs.stat("file", function(er, stat) {
+ if (er) throw er
+ var stream = top.newStream("file", stat.size)
+ console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete
+ // and 50% * 20% == 10%
+ fs.createReadStream("file").pipe(stream).on("data", function (chunk) {
+ // do stuff with chunk
+ })
+ top.on("change", function (name) {
+ // called each time a chunk is read from "file"
+ // top.completed() will start at 0.1 and fill up to 0.6 as the file is read
+ })
+})
+```
+
+Shared Methods
+==============
+
+* var completed = tracker.completed()
+
+Implemented in: `Tracker`, `TrackerGroup`, `TrackerStream`
+
+Returns the ratio of completed work to work to be done. Range of 0 to 1.
+
+* tracker.finish()
+
+Implemented in: `Tracker`, `TrackerGroup`
+
+Marks the tracker as completed. With a TrackerGroup this marks all of its
+components as completed.
+
+Marks all of the components of this tracker as finished, which in turn means
+that `tracker.completed()` for this will now be 1.
+
+This will result in one or more `change` events being emitted.
+
+Events
+======
+
+All tracker objects emit `change` events with the following arguments:
+
+```
+function (name, completed, tracker)
+```
+
+`name` is the name of the tracker that originally emitted the event,
+or if it didn't have one, the first containing tracker group that had one.
+
+`completed` is the percent complete (as returned by `tracker.completed()` method).
+
+`tracker` is the tracker object that you are listening for events on.
+
+TrackerGroup
+============
+
+* var tracker = new TrackerGroup(**name**)
+
+ * **name** *(optional)* - The name of this tracker group, used in change
+ notifications if the component updating didn't have a name. Defaults to undefined.
+
+Creates a new empty tracker aggregation group. These are trackers whose
+completion status is determined by the completion status of other trackers.
+
+* tracker.addUnit(**otherTracker**, **weight**)
+
+ * **otherTracker** - Any of the other are-we-there-yet tracker objects
+ * **weight** *(optional)* - The weight to give the tracker, defaults to 1.
+
+Adds the **otherTracker** to this aggregation group. The weight determines
+how long you expect this tracker to take to complete in proportion to other
+units. So for instance, if you add one tracker with a weight of 1 and
+another with a weight of 2, you're saying the second will take twice as long
+to complete as the first. As such, the first will account for 33% of the
+completion of this tracker and the second will account for the other 67%.
+
+Returns **otherTracker**.
+
+* var subGroup = tracker.newGroup(**name**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subGroup = tracker.addUnit(new TrackerGroup(name), weight)
+```
+
+* var subItem = tracker.newItem(**name**, **todo**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subItem = tracker.addUnit(new Tracker(name, todo), weight)
+```
+
+* var subStream = tracker.newStream(**name**, **todo**, **weight**)
+
+The above is exactly equivalent to:
+
+```javascript
+ var subStream = tracker.addUnit(new TrackerStream(name, todo), weight)
+```
+
+* console.log( tracker.debug() )
+
+Returns a tree showing the completion of this tracker group and all of its
+children, including recursively entering all of the children.
+
+Tracker
+=======
+
+* var tracker = new Tracker(**name**, **todo**)
+
+ * **name** *(optional)* The name of this counter to report in change
+ events. Defaults to undefined.
+ * **todo** *(optional)* The amount of work todo (a number). Defaults to 0.
+
+Ordinarily these are constructed as a part of a tracker group (via
+`newItem`).
+
+* var completed = tracker.completed()
+
+Returns the ratio of completed work to work to be done. Range of 0 to 1. If
+total work to be done is 0 then it will return 0.
+
+* tracker.addWork(**todo**)
+
+ * **todo** A number to add to the amount of work to be done.
+
+Increases the amount of work to be done, thus decreasing the completion
+percentage. Triggers a `change` event.
+
+* tracker.completeWork(**completed**)
+
+ * **completed** A number to add to the work complete
+
+Increase the amount of work complete, thus increasing the completion percentage.
+Will never increase the work completed past the amount of work todo. That is,
+percentages > 100% are not allowed. Triggers a `change` event.
+
+* tracker.finish()
+
+Marks this tracker as finished, tracker.completed() will now be 1. Triggers
+a `change` event.
+
+TrackerStream
+=============
+
+* var tracker = new TrackerStream(**name**, **size**, **options**)
+
+ * **name** *(optional)* The name of this counter to report in change
+ events. Defaults to undefined.
+ * **size** *(optional)* The number of bytes being sent through this stream.
+ * **options** *(optional)* A hash of stream options
+
+The tracker stream object is a pass through stream that updates an internal
+tracker object each time a block passes through. It's intended to track
+downloads, file extraction and other related activities. You use it by piping
+your data source into it and then using it as your data source.
+
+If your data has a length attribute then that's used as the amount of work
+completed when the chunk is passed through. If it does not (eg, object
+streams) then each chunk counts as completing 1 unit of work, so your size
+should be the total number of objects being streamed.
+
+* tracker.addWork(**todo**)
+
+ * **todo** Increase the expected overall size by **todo** bytes.
+
+Increases the amount of work to be done, thus decreasing the completion
+percentage. Triggers a `change` event.
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js b/deps/npm/node_modules/are-we-there-yet/index.js
index 57d8743fda..57d8743fda 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/index.js
+++ b/deps/npm/node_modules/are-we-there-yet/index.js
diff --git a/deps/npm/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/are-we-there-yet/package.json
new file mode 100644
index 0000000000..29c0faceab
--- /dev/null
+++ b/deps/npm/node_modules/are-we-there-yet/package.json
@@ -0,0 +1,63 @@
+{
+ "_from": "are-we-there-yet@~1.1.2",
+ "_id": "are-we-there-yet@1.1.4",
+ "_inBundle": false,
+ "_integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
+ "_location": "/are-we-there-yet",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "are-we-there-yet@~1.1.2",
+ "name": "are-we-there-yet",
+ "escapedName": "are-we-there-yet",
+ "rawSpec": "~1.1.2",
+ "saveSpec": null,
+ "fetchSpec": "~1.1.2"
+ },
+ "_requiredBy": [
+ "/npmlog"
+ ],
+ "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
+ "_shasum": "bb5dca382bb94f05e15194373d16fd3ba1ca110d",
+ "_spec": "are-we-there-yet@~1.1.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog",
+ "author": {
+ "name": "Rebecca Turner",
+ "url": "http://re-becca.org"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/are-we-there-yet/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "delegates": "^1.0.0",
+ "readable-stream": "^2.0.6"
+ },
+ "deprecated": false,
+ "description": "Keep track of the overall completion of many disparate processes",
+ "devDependencies": {
+ "standard": "^6.0.8",
+ "tap": "^5.7.0"
+ },
+ "files": [
+ "index.js",
+ "tracker-base.js",
+ "tracker-group.js",
+ "tracker-stream.js",
+ "tracker.js",
+ "CHANGES.md"
+ ],
+ "homepage": "https://github.com/iarna/are-we-there-yet",
+ "license": "ISC",
+ "main": "index.js",
+ "name": "are-we-there-yet",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/are-we-there-yet.git"
+ },
+ "scripts": {
+ "test": "standard && tap test/*.js"
+ },
+ "version": "1.1.4"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js b/deps/npm/node_modules/are-we-there-yet/tracker-base.js
index 6f43687557..6f43687557 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-base.js
+++ b/deps/npm/node_modules/are-we-there-yet/tracker-base.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js b/deps/npm/node_modules/are-we-there-yet/tracker-group.js
index 9759e1226d..9759e1226d 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-group.js
+++ b/deps/npm/node_modules/are-we-there-yet/tracker-group.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js b/deps/npm/node_modules/are-we-there-yet/tracker-stream.js
index fb9598ed4e..fb9598ed4e 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker-stream.js
+++ b/deps/npm/node_modules/are-we-there-yet/tracker-stream.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js b/deps/npm/node_modules/are-we-there-yet/tracker.js
index 68c2339b45..68c2339b45 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/tracker.js
+++ b/deps/npm/node_modules/are-we-there-yet/tracker.js
diff --git a/deps/npm/node_modules/asap/CHANGES.md b/deps/npm/node_modules/asap/CHANGES.md
new file mode 100644
index 0000000000..ad50f0d8f1
--- /dev/null
+++ b/deps/npm/node_modules/asap/CHANGES.md
@@ -0,0 +1,69 @@
+
+## 2.0.6
+
+Version 2.0.4 adds support for React Native by clarifying in package.json that
+the browser environment does not support Node.js domains.
+Why this is necessary, we leave as an exercise for the user.
+
+## 2.0.3
+
+Version 2.0.3 fixes a bug when adjusting the capacity of the task queue.
+
+## 2.0.1-2.02
+
+Version 2.0.1 fixes a bug in the way redirects were expressed that affected the
+function of Browserify, but which Mr would tolerate.
+
+## 2.0.0
+
+Version 2 of ASAP is a full rewrite with a few salient changes.
+First, the ASAP source is CommonJS only and designed with [Browserify][] and
+[Browserify-compatible][Mr] module loaders in mind.
+
+[Browserify]: https://github.com/substack/node-browserify
+[Mr]: https://github.com/montagejs/mr
+
+The new version has been refactored in two dimensions.
+Support for Node.js and browsers have been separated, using Browserify
+redirects and ASAP has been divided into two modules.
+The "raw" layer depends on the tasks to catch thrown exceptions and unravel
+Node.js domains.
+
+The full implementation of ASAP is loadable as `require("asap")` in both Node.js
+and browsers.
+
+The raw layer that lacks exception handling overhead is loadable as
+`require("asap/raw")`.
+The interface is the same for both layers.
+
+Tasks are no longer required to be functions, but can rather be any object that
+implements `task.call()`.
+With this feature you can recycle task objects to avoid garbage collector churn
+and avoid closures in general.
+
+The implementation has been rigorously documented so that our successors can
+understand the scope of the problem that this module solves and all of its
+nuances, ensuring that the next generation of implementations know what details
+are essential.
+
+- [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js)
+- [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js)
+- [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js)
+- [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js)
+
+The new version has also been rigorously tested across a broad spectrum of
+browsers, in both the window and worker context.
+The following charts capture the browser test results for the most recent
+release.
+The first chart shows test results for ASAP running in the main window context.
+The second chart shows test results for ASAP running in a web worker context.
+Test results are inconclusive (grey) on browsers that do not support web
+workers.
+These data are captured automatically by [Continuous
+Integration][].
+
+![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)
+
+![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)
+
+[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md b/deps/npm/node_modules/asap/LICENSE.md
index 0d82d695f7..0d82d695f7 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/LICENSE.md
+++ b/deps/npm/node_modules/asap/LICENSE.md
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/README.md b/deps/npm/node_modules/asap/README.md
index d60a08a044..d60a08a044 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/README.md
+++ b/deps/npm/node_modules/asap/README.md
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js b/deps/npm/node_modules/asap/asap.js
index 3a27c8cee7..3a27c8cee7 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/asap.js
+++ b/deps/npm/node_modules/asap/asap.js
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js b/deps/npm/node_modules/asap/browser-asap.js
index 805c982460..805c982460 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-asap.js
+++ b/deps/npm/node_modules/asap/browser-asap.js
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js b/deps/npm/node_modules/asap/browser-raw.js
index 9cee7e32eb..9cee7e32eb 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/browser-raw.js
+++ b/deps/npm/node_modules/asap/browser-raw.js
diff --git a/deps/npm/node_modules/asap/package.json b/deps/npm/node_modules/asap/package.json
new file mode 100644
index 0000000000..6be177dcc4
--- /dev/null
+++ b/deps/npm/node_modules/asap/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "asap@^2.0.0",
+ "_id": "asap@2.0.6",
+ "_inBundle": false,
+ "_integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=",
+ "_location": "/asap",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "asap@^2.0.0",
+ "name": "asap",
+ "escapedName": "asap",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/dezalgo",
+ "/promise"
+ ],
+ "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
+ "_shasum": "e50347611d7e690943208bbdafebcbc2fb866d46",
+ "_spec": "asap@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/dezalgo",
+ "browser": {
+ "./asap": "./browser-asap.js",
+ "./asap.js": "./browser-asap.js",
+ "./raw": "./browser-raw.js",
+ "./raw.js": "./browser-raw.js",
+ "./test/domain.js": "./test/browser-domain.js"
+ },
+ "bugs": {
+ "url": "https://github.com/kriskowal/asap/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "High-priority task queue for Node.js and browsers",
+ "devDependencies": {
+ "benchmark": "^1.0.0",
+ "events": "^1.0.1",
+ "jshint": "^2.5.1",
+ "knox": "^0.8.10",
+ "mr": "^2.0.5",
+ "opener": "^1.3.0",
+ "q": "^2.0.3",
+ "q-io": "^2.0.3",
+ "saucelabs": "^0.1.1",
+ "wd": "^0.2.21",
+ "weak-map": "^1.0.5"
+ },
+ "files": [
+ "raw.js",
+ "asap.js",
+ "browser-raw.js",
+ "browser-asap.js"
+ ],
+ "homepage": "https://github.com/kriskowal/asap#readme",
+ "keywords": [
+ "event",
+ "task",
+ "queue"
+ ],
+ "license": "MIT",
+ "main": "./asap.js",
+ "name": "asap",
+ "react-native": {
+ "domain": false
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/kriskowal/asap.git"
+ },
+ "scripts": {
+ "benchmarks": "node benchmarks",
+ "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)",
+ "test": "npm run lint && npm run test-node",
+ "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener",
+ "test-node": "node test/asap-test.js",
+ "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy",
+ "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json",
+ "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json",
+ "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json",
+ "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json",
+ "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker"
+ },
+ "version": "2.0.6"
+}
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/raw.js b/deps/npm/node_modules/asap/raw.js
index ae3b892316..ae3b892316 100644
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/raw.js
+++ b/deps/npm/node_modules/asap/raw.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.npmignore b/deps/npm/node_modules/asn1/.npmignore
index eb03e3e1e4..eb03e3e1e4 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.npmignore
+++ b/deps/npm/node_modules/asn1/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.travis.yml b/deps/npm/node_modules/asn1/.travis.yml
index 09d3ef3784..09d3ef3784 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/.travis.yml
+++ b/deps/npm/node_modules/asn1/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/LICENSE b/deps/npm/node_modules/asn1/LICENSE
index 9b5dcdb7f5..9b5dcdb7f5 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/LICENSE
+++ b/deps/npm/node_modules/asn1/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/README.md b/deps/npm/node_modules/asn1/README.md
index 7cebf7a2e8..7cebf7a2e8 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/README.md
+++ b/deps/npm/node_modules/asn1/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js b/deps/npm/node_modules/asn1/lib/ber/errors.js
index ff21d4fab3..ff21d4fab3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/errors.js
+++ b/deps/npm/node_modules/asn1/lib/ber/errors.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js b/deps/npm/node_modules/asn1/lib/ber/index.js
index 4fb90aea9a..4fb90aea9a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/index.js
+++ b/deps/npm/node_modules/asn1/lib/ber/index.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js b/deps/npm/node_modules/asn1/lib/ber/reader.js
index 0a00e98e33..0a00e98e33 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/reader.js
+++ b/deps/npm/node_modules/asn1/lib/ber/reader.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js b/deps/npm/node_modules/asn1/lib/ber/types.js
index 8aea000137..8aea000137 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/types.js
+++ b/deps/npm/node_modules/asn1/lib/ber/types.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js b/deps/npm/node_modules/asn1/lib/ber/writer.js
index d9d99af680..d9d99af680 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/ber/writer.js
+++ b/deps/npm/node_modules/asn1/lib/ber/writer.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js b/deps/npm/node_modules/asn1/lib/index.js
index d1766e7a6d..d1766e7a6d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/lib/index.js
+++ b/deps/npm/node_modules/asn1/lib/index.js
diff --git a/deps/npm/node_modules/asn1/package.json b/deps/npm/node_modules/asn1/package.json
new file mode 100644
index 0000000000..068b57f154
--- /dev/null
+++ b/deps/npm/node_modules/asn1/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "asn1@~0.2.3",
+ "_id": "asn1@0.2.3",
+ "_inBundle": false,
+ "_integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
+ "_location": "/asn1",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "asn1@~0.2.3",
+ "name": "asn1",
+ "escapedName": "asn1",
+ "rawSpec": "~0.2.3",
+ "saveSpec": null,
+ "fetchSpec": "~0.2.3"
+ },
+ "_requiredBy": [
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
+ "_shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
+ "_spec": "asn1@~0.2.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "Mark Cavage",
+ "email": "mcavage@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mcavage/node-asn1/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "David Gwynne",
+ "email": "loki@animata.net"
+ },
+ {
+ "name": "Yunong Xiao",
+ "email": "yunong@joyent.com"
+ },
+ {
+ "name": "Alex Wilson",
+ "email": "alex.wilson@joyent.com"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Contains parsers and serializers for ASN.1 (currently BER only)",
+ "devDependencies": {
+ "tap": "0.4.8"
+ },
+ "homepage": "https://github.com/mcavage/node-asn1#readme",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "asn1",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mcavage/node-asn1.git"
+ },
+ "scripts": {
+ "test": "tap ./tst"
+ },
+ "version": "0.2.3"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/reader.test.js b/deps/npm/node_modules/asn1/tst/ber/reader.test.js
index 062fd7ee34..062fd7ee34 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/reader.test.js
+++ b/deps/npm/node_modules/asn1/tst/ber/reader.test.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/writer.test.js b/deps/npm/node_modules/asn1/tst/ber/writer.test.js
index d87cb7bc9b..d87cb7bc9b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/tst/ber/writer.test.js
+++ b/deps/npm/node_modules/asn1/tst/ber/writer.test.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/AUTHORS b/deps/npm/node_modules/assert-plus/AUTHORS
index 1923524fe4..1923524fe4 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/AUTHORS
+++ b/deps/npm/node_modules/assert-plus/AUTHORS
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/CHANGES.md b/deps/npm/node_modules/assert-plus/CHANGES.md
index 57d92bfdb9..57d92bfdb9 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/CHANGES.md
+++ b/deps/npm/node_modules/assert-plus/CHANGES.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md b/deps/npm/node_modules/assert-plus/README.md
index ec200d161e..ec200d161e 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/README.md
+++ b/deps/npm/node_modules/assert-plus/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js b/deps/npm/node_modules/assert-plus/assert.js
index 26f944eec3..26f944eec3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/assert.js
+++ b/deps/npm/node_modules/assert-plus/assert.js
diff --git a/deps/npm/node_modules/assert-plus/package.json b/deps/npm/node_modules/assert-plus/package.json
new file mode 100644
index 0000000000..b8acadcae5
--- /dev/null
+++ b/deps/npm/node_modules/assert-plus/package.json
@@ -0,0 +1,87 @@
+{
+ "_from": "assert-plus@^1.0.0",
+ "_id": "assert-plus@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+ "_location": "/assert-plus",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "assert-plus@^1.0.0",
+ "name": "assert-plus",
+ "escapedName": "assert-plus",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/dashdash",
+ "/getpass",
+ "/http-signature",
+ "/jsprim",
+ "/sshpk",
+ "/verror"
+ ],
+ "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "_shasum": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
+ "_spec": "assert-plus@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/http-signature",
+ "author": {
+ "name": "Mark Cavage",
+ "email": "mcavage@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mcavage/node-assert-plus/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Dave Eddy",
+ "email": "dave@daveeddy.com"
+ },
+ {
+ "name": "Fred Kuo",
+ "email": "fred.kuo@joyent.com"
+ },
+ {
+ "name": "Lars-Magnus Skog",
+ "email": "ralphtheninja@riseup.net"
+ },
+ {
+ "name": "Mark Cavage",
+ "email": "mcavage@gmail.com"
+ },
+ {
+ "name": "Patrick Mooney",
+ "email": "pmooney@pfmooney.com"
+ },
+ {
+ "name": "Rob Gulewich",
+ "email": "robert.gulewich@joyent.com"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Extra assertions on top of node's assert module",
+ "devDependencies": {
+ "faucet": "0.0.1",
+ "tape": "4.2.2"
+ },
+ "engines": {
+ "node": ">=0.8"
+ },
+ "homepage": "https://github.com/mcavage/node-assert-plus#readme",
+ "license": "MIT",
+ "main": "./assert.js",
+ "name": "assert-plus",
+ "optionalDependencies": {},
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mcavage/node-assert-plus.git"
+ },
+ "scripts": {
+ "test": "tape tests/*.js | ./node_modules/.bin/faucet"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/LICENSE b/deps/npm/node_modules/asynckit/LICENSE
index c9eca5dd99..c9eca5dd99 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/LICENSE
+++ b/deps/npm/node_modules/asynckit/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/README.md b/deps/npm/node_modules/asynckit/README.md
index ddcc7e6b95..ddcc7e6b95 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/README.md
+++ b/deps/npm/node_modules/asynckit/README.md
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/bench.js b/deps/npm/node_modules/asynckit/bench.js
index c612f1a55f..c612f1a55f 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/bench.js
+++ b/deps/npm/node_modules/asynckit/bench.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/index.js b/deps/npm/node_modules/asynckit/index.js
index 455f9454ee..455f9454ee 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/index.js
+++ b/deps/npm/node_modules/asynckit/index.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/abort.js b/deps/npm/node_modules/asynckit/lib/abort.js
index 114367e5fb..114367e5fb 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/abort.js
+++ b/deps/npm/node_modules/asynckit/lib/abort.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/async.js b/deps/npm/node_modules/asynckit/lib/async.js
index 7f1288a4ce..7f1288a4ce 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/async.js
+++ b/deps/npm/node_modules/asynckit/lib/async.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/defer.js b/deps/npm/node_modules/asynckit/lib/defer.js
index b67110c7ad..b67110c7ad 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/defer.js
+++ b/deps/npm/node_modules/asynckit/lib/defer.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/iterate.js b/deps/npm/node_modules/asynckit/lib/iterate.js
index 5d2839a590..5d2839a590 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/iterate.js
+++ b/deps/npm/node_modules/asynckit/lib/iterate.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_asynckit.js b/deps/npm/node_modules/asynckit/lib/readable_asynckit.js
index 78ad240f0a..78ad240f0a 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_asynckit.js
+++ b/deps/npm/node_modules/asynckit/lib/readable_asynckit.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_parallel.js b/deps/npm/node_modules/asynckit/lib/readable_parallel.js
index 5d2929f7a6..5d2929f7a6 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_parallel.js
+++ b/deps/npm/node_modules/asynckit/lib/readable_parallel.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial.js b/deps/npm/node_modules/asynckit/lib/readable_serial.js
index 7822698204..7822698204 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial.js
+++ b/deps/npm/node_modules/asynckit/lib/readable_serial.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial_ordered.js b/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js
index 3de89c4729..3de89c4729 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/readable_serial_ordered.js
+++ b/deps/npm/node_modules/asynckit/lib/readable_serial_ordered.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/state.js b/deps/npm/node_modules/asynckit/lib/state.js
index cbea7ad8f6..cbea7ad8f6 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/state.js
+++ b/deps/npm/node_modules/asynckit/lib/state.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/streamify.js b/deps/npm/node_modules/asynckit/lib/streamify.js
index f56a1c92bf..f56a1c92bf 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/streamify.js
+++ b/deps/npm/node_modules/asynckit/lib/streamify.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/terminator.js b/deps/npm/node_modules/asynckit/lib/terminator.js
index d6eb99219f..d6eb99219f 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/lib/terminator.js
+++ b/deps/npm/node_modules/asynckit/lib/terminator.js
diff --git a/deps/npm/node_modules/asynckit/package.json b/deps/npm/node_modules/asynckit/package.json
new file mode 100644
index 0000000000..4ffa4ab282
--- /dev/null
+++ b/deps/npm/node_modules/asynckit/package.json
@@ -0,0 +1,91 @@
+{
+ "_from": "asynckit@^0.4.0",
+ "_id": "asynckit@0.4.0",
+ "_inBundle": false,
+ "_integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
+ "_location": "/asynckit",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "asynckit@^0.4.0",
+ "name": "asynckit",
+ "escapedName": "asynckit",
+ "rawSpec": "^0.4.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.4.0"
+ },
+ "_requiredBy": [
+ "/form-data"
+ ],
+ "_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
+ "_spec": "asynckit@^0.4.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/form-data",
+ "author": {
+ "name": "Alex Indigo",
+ "email": "iam@alexindigo.com"
+ },
+ "bugs": {
+ "url": "https://github.com/alexindigo/asynckit/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Minimal async jobs utility library, with streams support",
+ "devDependencies": {
+ "browserify": "^13.0.0",
+ "browserify-istanbul": "^2.0.0",
+ "coveralls": "^2.11.9",
+ "eslint": "^2.9.0",
+ "istanbul": "^0.4.3",
+ "obake": "^0.1.2",
+ "phantomjs-prebuilt": "^2.1.7",
+ "pre-commit": "^1.1.3",
+ "reamde": "^1.1.0",
+ "rimraf": "^2.5.2",
+ "size-table": "^0.2.0",
+ "tap-spec": "^4.1.1",
+ "tape": "^4.5.1"
+ },
+ "homepage": "https://github.com/alexindigo/asynckit#readme",
+ "keywords": [
+ "async",
+ "jobs",
+ "parallel",
+ "serial",
+ "iterator",
+ "array",
+ "object",
+ "stream",
+ "destroy",
+ "terminate",
+ "abort"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "asynckit",
+ "pre-commit": [
+ "clean",
+ "lint",
+ "test",
+ "browser",
+ "report",
+ "size"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/alexindigo/asynckit.git"
+ },
+ "scripts": {
+ "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
+ "clean": "rimraf coverage",
+ "debug": "tape test/test-*.js",
+ "lint": "eslint *.js lib/*.js test/*.js",
+ "report": "istanbul report",
+ "size": "browserify index.js | size-table asynckit",
+ "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
+ "win-test": "tape test/test-*.js"
+ },
+ "version": "0.4.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/parallel.js b/deps/npm/node_modules/asynckit/parallel.js
index 3c50344d85..3c50344d85 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/parallel.js
+++ b/deps/npm/node_modules/asynckit/parallel.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serial.js b/deps/npm/node_modules/asynckit/serial.js
index 6cd949a677..6cd949a677 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serial.js
+++ b/deps/npm/node_modules/asynckit/serial.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serialOrdered.js b/deps/npm/node_modules/asynckit/serialOrdered.js
index 607eafea56..607eafea56 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/serialOrdered.js
+++ b/deps/npm/node_modules/asynckit/serialOrdered.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/stream.js b/deps/npm/node_modules/asynckit/stream.js
index 7b77116eba..7b77116eba 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/stream.js
+++ b/deps/npm/node_modules/asynckit/stream.js
diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE b/deps/npm/node_modules/aws-sign2/LICENSE
index a4a9aee0c2..a4a9aee0c2 100644
--- a/deps/npm/node_modules/request/node_modules/aws-sign2/LICENSE
+++ b/deps/npm/node_modules/aws-sign2/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/README.md b/deps/npm/node_modules/aws-sign2/README.md
index 763564e0aa..763564e0aa 100644
--- a/deps/npm/node_modules/request/node_modules/aws-sign2/README.md
+++ b/deps/npm/node_modules/aws-sign2/README.md
diff --git a/deps/npm/node_modules/aws-sign2/index.js b/deps/npm/node_modules/aws-sign2/index.js
new file mode 100644
index 0000000000..5efa65523d
--- /dev/null
+++ b/deps/npm/node_modules/aws-sign2/index.js
@@ -0,0 +1,212 @@
+
+/*!
+ * Copyright 2010 LearnBoost <dev@learnboost.com>
+ *
+ * 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.
+ */
+
+/**
+ * Module dependencies.
+ */
+
+var crypto = require('crypto')
+ , parse = require('url').parse
+ ;
+
+/**
+ * Valid keys.
+ */
+
+var keys =
+ [ 'acl'
+ , 'location'
+ , 'logging'
+ , 'notification'
+ , 'partNumber'
+ , 'policy'
+ , 'requestPayment'
+ , 'torrent'
+ , 'uploadId'
+ , 'uploads'
+ , 'versionId'
+ , 'versioning'
+ , 'versions'
+ , 'website'
+ ]
+
+/**
+ * Return an "Authorization" header value with the given `options`
+ * in the form of "AWS <key>:<signature>"
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function authorization (options) {
+ return 'AWS ' + options.key + ':' + sign(options)
+}
+
+module.exports = authorization
+module.exports.authorization = authorization
+
+/**
+ * Simple HMAC-SHA1 Wrapper
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function hmacSha1 (options) {
+ return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64')
+}
+
+module.exports.hmacSha1 = hmacSha1
+
+/**
+ * Create a base64 sha1 HMAC for `options`.
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function sign (options) {
+ options.message = stringToSign(options)
+ return hmacSha1(options)
+}
+module.exports.sign = sign
+
+/**
+ * Create a base64 sha1 HMAC for `options`.
+ *
+ * Specifically to be used with S3 presigned URLs
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function signQuery (options) {
+ options.message = queryStringToSign(options)
+ return hmacSha1(options)
+}
+module.exports.signQuery= signQuery
+
+/**
+ * Return a string for sign() with the given `options`.
+ *
+ * Spec:
+ *
+ * <verb>\n
+ * <md5>\n
+ * <content-type>\n
+ * <date>\n
+ * [headers\n]
+ * <resource>
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function stringToSign (options) {
+ var headers = options.amazonHeaders || ''
+ if (headers) headers += '\n'
+ var r =
+ [ options.verb
+ , options.md5
+ , options.contentType
+ , options.date ? options.date.toUTCString() : ''
+ , headers + options.resource
+ ]
+ return r.join('\n')
+}
+module.exports.stringToSign = stringToSign
+
+/**
+ * Return a string for sign() with the given `options`, but is meant exclusively
+ * for S3 presigned URLs
+ *
+ * Spec:
+ *
+ * <date>\n
+ * <resource>
+ *
+ * @param {Object} options
+ * @return {String}
+ * @api private
+ */
+
+function queryStringToSign (options){
+ return 'GET\n\n\n' + options.date + '\n' + options.resource
+}
+module.exports.queryStringToSign = queryStringToSign
+
+/**
+ * Perform the following:
+ *
+ * - ignore non-amazon headers
+ * - lowercase fields
+ * - sort lexicographically
+ * - trim whitespace between ":"
+ * - join with newline
+ *
+ * @param {Object} headers
+ * @return {String}
+ * @api private
+ */
+
+function canonicalizeHeaders (headers) {
+ var buf = []
+ , fields = Object.keys(headers)
+ ;
+ for (var i = 0, len = fields.length; i < len; ++i) {
+ var field = fields[i]
+ , val = headers[field]
+ , field = field.toLowerCase()
+ ;
+ if (0 !== field.indexOf('x-amz')) continue
+ buf.push(field + ':' + val)
+ }
+ return buf.sort().join('\n')
+}
+module.exports.canonicalizeHeaders = canonicalizeHeaders
+
+/**
+ * Perform the following:
+ *
+ * - ignore non sub-resources
+ * - sort lexicographically
+ *
+ * @param {String} resource
+ * @return {String}
+ * @api private
+ */
+
+function canonicalizeResource (resource) {
+ var url = parse(resource, true)
+ , path = url.pathname
+ , buf = []
+ ;
+
+ Object.keys(url.query).forEach(function(key){
+ if (!~keys.indexOf(key)) return
+ var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key])
+ buf.push(key + val)
+ })
+
+ return path + (buf.length ? '?' + buf.sort().join('&') : '')
+}
+module.exports.canonicalizeResource = canonicalizeResource
diff --git a/deps/npm/node_modules/aws-sign2/package.json b/deps/npm/node_modules/aws-sign2/package.json
new file mode 100644
index 0000000000..e2e71ad113
--- /dev/null
+++ b/deps/npm/node_modules/aws-sign2/package.json
@@ -0,0 +1,50 @@
+{
+ "_from": "aws-sign2@~0.7.0",
+ "_id": "aws-sign2@0.7.0",
+ "_inBundle": false,
+ "_integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+ "_location": "/aws-sign2",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "aws-sign2@~0.7.0",
+ "name": "aws-sign2",
+ "escapedName": "aws-sign2",
+ "rawSpec": "~0.7.0",
+ "saveSpec": null,
+ "fetchSpec": "~0.7.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "_shasum": "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8",
+ "_spec": "aws-sign2@~0.7.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Mikeal Rogers",
+ "email": "mikeal.rogers@gmail.com",
+ "url": "http://www.futurealoof.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mikeal/aws-sign/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.",
+ "devDependencies": {},
+ "engines": {
+ "node": "*"
+ },
+ "homepage": "https://github.com/mikeal/aws-sign#readme",
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "name": "aws-sign2",
+ "optionalDependencies": {},
+ "repository": {
+ "url": "git+https://github.com/mikeal/aws-sign.git"
+ },
+ "version": "0.7.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/aws4/.travis.yml b/deps/npm/node_modules/aws4/.travis.yml
index 61d0634045..61d0634045 100644
--- a/deps/npm/node_modules/request/node_modules/aws4/.travis.yml
+++ b/deps/npm/node_modules/aws4/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/aws4/LICENSE b/deps/npm/node_modules/aws4/LICENSE
index 4f321e5995..4f321e5995 100644
--- a/deps/npm/node_modules/request/node_modules/aws4/LICENSE
+++ b/deps/npm/node_modules/aws4/LICENSE
diff --git a/deps/npm/node_modules/aws4/README.md b/deps/npm/node_modules/aws4/README.md
new file mode 100644
index 0000000000..cb1b1bf1ef
--- /dev/null
+++ b/deps/npm/node_modules/aws4/README.md
@@ -0,0 +1,522 @@
+aws4
+----
+
+[![Build Status](https://secure.travis-ci.org/mhart/aws4.png?branch=master)](http://travis-ci.org/mhart/aws4)
+
+A small utility to sign vanilla node.js http(s) request options using Amazon's
+[AWS Signature Version 4](http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html).
+
+Can also be used [in the browser](./browser).
+
+This signature is supported by nearly all Amazon services, including
+[S3](http://docs.aws.amazon.com/AmazonS3/latest/API/),
+[EC2](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/),
+[DynamoDB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html),
+[Kinesis](http://docs.aws.amazon.com/kinesis/latest/APIReference/),
+[Lambda](http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html),
+[SQS](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/),
+[SNS](http://docs.aws.amazon.com/sns/latest/api/),
+[IAM](http://docs.aws.amazon.com/IAM/latest/APIReference/),
+[STS](http://docs.aws.amazon.com/STS/latest/APIReference/),
+[RDS](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/),
+[CloudWatch](http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/),
+[CloudWatch Logs](http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/),
+[CodeDeploy](http://docs.aws.amazon.com/codedeploy/latest/APIReference/),
+[CloudFront](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/),
+[CloudTrail](http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/),
+[ElastiCache](http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/),
+[EMR](http://docs.aws.amazon.com/ElasticMapReduce/latest/API/),
+[Glacier](http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html),
+[CloudSearch](http://docs.aws.amazon.com/cloudsearch/latest/developerguide/APIReq.html),
+[Elastic Load Balancing](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/),
+[Elastic Transcoder](http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html),
+[CloudFormation](http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/),
+[Elastic Beanstalk](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/),
+[Storage Gateway](http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html),
+[Data Pipeline](http://docs.aws.amazon.com/datapipeline/latest/APIReference/),
+[Direct Connect](http://docs.aws.amazon.com/directconnect/latest/APIReference/),
+[Redshift](http://docs.aws.amazon.com/redshift/latest/APIReference/),
+[OpsWorks](http://docs.aws.amazon.com/opsworks/latest/APIReference/),
+[SES](http://docs.aws.amazon.com/ses/latest/APIReference/),
+[SWF](http://docs.aws.amazon.com/amazonswf/latest/apireference/),
+[AutoScaling](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/),
+[Mobile Analytics](http://docs.aws.amazon.com/mobileanalytics/latest/ug/server-reference.html),
+[Cognito Identity](http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/),
+[Cognito Sync](http://docs.aws.amazon.com/cognitosync/latest/APIReference/),
+[Container Service](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/),
+[AppStream](http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-api-rest.html),
+[Key Management Service](http://docs.aws.amazon.com/kms/latest/APIReference/),
+[Config](http://docs.aws.amazon.com/config/latest/APIReference/),
+[CloudHSM](http://docs.aws.amazon.com/cloudhsm/latest/dg/api-ref.html),
+[Route53](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rest.html) and
+[Route53 Domains](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rpc.html).
+
+Indeed, the only AWS services that *don't* support v4 as of 2014-12-30 are
+[Import/Export](http://docs.aws.amazon.com/AWSImportExport/latest/DG/api-reference.html) and
+[SimpleDB](http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html)
+(they only support [AWS Signature Version 2](https://github.com/mhart/aws2)).
+
+It also provides defaults for a number of core AWS headers and
+request parameters, making it very easy to query AWS services, or
+build out a fully-featured AWS library.
+
+Example
+-------
+
+```javascript
+var http = require('http'),
+ https = require('https'),
+ aws4 = require('aws4')
+
+// given an options object you could pass to http.request
+var opts = {host: 'sqs.us-east-1.amazonaws.com', path: '/?Action=ListQueues'}
+
+// alternatively (as aws4 can infer the host):
+opts = {service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues'}
+
+// alternatively (as us-east-1 is default):
+opts = {service: 'sqs', path: '/?Action=ListQueues'}
+
+aws4.sign(opts) // assumes AWS credentials are available in process.env
+
+console.log(opts)
+/*
+{
+ host: 'sqs.us-east-1.amazonaws.com',
+ path: '/?Action=ListQueues',
+ headers: {
+ Host: 'sqs.us-east-1.amazonaws.com',
+ 'X-Amz-Date': '20121226T061030Z',
+ Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...'
+ }
+}
+*/
+
+// we can now use this to query AWS using the standard node.js http API
+http.request(opts, function(res) { res.pipe(process.stdout) }).end()
+/*
+<?xml version="1.0"?>
+<ListQueuesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
+...
+*/
+```
+
+More options
+------------
+
+```javascript
+// you can also pass AWS credentials in explicitly (otherwise taken from process.env)
+aws4.sign(opts, {accessKeyId: '', secretAccessKey: ''})
+
+// can also add the signature to query strings
+aws4.sign({service: 's3', path: '/my-bucket?X-Amz-Expires=12345', signQuery: true})
+
+// create a utility function to pipe to stdout (with https this time)
+function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
+
+// aws4 can infer the HTTP method if a body is passed in
+// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8'
+request(aws4.sign({service: 'iam', body: 'Action=ListGroups&Version=2010-05-08'}))
+/*
+<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
+...
+*/
+
+// can specify any custom option or header as per usual
+request(aws4.sign({
+ service: 'dynamodb',
+ region: 'ap-southeast-2',
+ method: 'POST',
+ path: '/',
+ headers: {
+ 'Content-Type': 'application/x-amz-json-1.0',
+ 'X-Amz-Target': 'DynamoDB_20120810.ListTables'
+ },
+ body: '{}'
+}))
+/*
+{"TableNames":[]}
+...
+*/
+
+// works with all other services that support Signature Version 4
+
+request(aws4.sign({service: 's3', path: '/', signQuery: true}))
+/*
+<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
+...
+*/
+
+request(aws4.sign({service: 'ec2', path: '/?Action=DescribeRegions&Version=2014-06-15'}))
+/*
+<DescribeRegionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-06-15/">
+...
+*/
+
+request(aws4.sign({service: 'sns', path: '/?Action=ListTopics&Version=2010-03-31'}))
+/*
+<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
+...
+*/
+
+request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
+/*
+<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
+...
+*/
+
+request(aws4.sign({service: 'cloudsearch', path: '/?Action=ListDomainNames&Version=2013-01-01'}))
+/*
+<ListDomainNamesResponse xmlns="http://cloudsearch.amazonaws.com/doc/2013-01-01/">
+...
+*/
+
+request(aws4.sign({service: 'ses', path: '/?Action=ListIdentities&Version=2010-12-01'}))
+/*
+<ListIdentitiesResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
+...
+*/
+
+request(aws4.sign({service: 'autoscaling', path: '/?Action=DescribeAutoScalingInstances&Version=2011-01-01'}))
+/*
+<DescribeAutoScalingInstancesResponse xmlns="http://autoscaling.amazonaws.com/doc/2011-01-01/">
+...
+*/
+
+request(aws4.sign({service: 'elasticloadbalancing', path: '/?Action=DescribeLoadBalancers&Version=2012-06-01'}))
+/*
+<DescribeLoadBalancersResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
+...
+*/
+
+request(aws4.sign({service: 'cloudformation', path: '/?Action=ListStacks&Version=2010-05-15'}))
+/*
+<ListStacksResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
+...
+*/
+
+request(aws4.sign({service: 'elasticbeanstalk', path: '/?Action=ListAvailableSolutionStacks&Version=2010-12-01'}))
+/*
+<ListAvailableSolutionStacksResponse xmlns="http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/">
+...
+*/
+
+request(aws4.sign({service: 'rds', path: '/?Action=DescribeDBInstances&Version=2012-09-17'}))
+/*
+<DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2012-09-17/">
+...
+*/
+
+request(aws4.sign({service: 'monitoring', path: '/?Action=ListMetrics&Version=2010-08-01'}))
+/*
+<ListMetricsResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
+...
+*/
+
+request(aws4.sign({service: 'redshift', path: '/?Action=DescribeClusters&Version=2012-12-01'}))
+/*
+<DescribeClustersResponse xmlns="http://redshift.amazonaws.com/doc/2012-12-01/">
+...
+*/
+
+request(aws4.sign({service: 'cloudfront', path: '/2014-05-31/distribution'}))
+/*
+<DistributionList xmlns="http://cloudfront.amazonaws.com/doc/2014-05-31/">
+...
+*/
+
+request(aws4.sign({service: 'elasticache', path: '/?Action=DescribeCacheClusters&Version=2014-07-15'}))
+/*
+<DescribeCacheClustersResponse xmlns="http://elasticache.amazonaws.com/doc/2014-07-15/">
+...
+*/
+
+request(aws4.sign({service: 'elasticmapreduce', path: '/?Action=DescribeJobFlows&Version=2009-03-31'}))
+/*
+<DescribeJobFlowsResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
+...
+*/
+
+request(aws4.sign({service: 'route53', path: '/2013-04-01/hostedzone'}))
+/*
+<ListHostedZonesResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
+...
+*/
+
+request(aws4.sign({service: 'appstream', path: '/applications'}))
+/*
+{"_links":{"curie":[{"href":"http://docs.aws.amazon.com/appstream/latest/...
+...
+*/
+
+request(aws4.sign({service: 'cognito-sync', path: '/identitypools'}))
+/*
+{"Count":0,"IdentityPoolUsages":[],"MaxResults":16,"NextToken":null}
+...
+*/
+
+request(aws4.sign({service: 'elastictranscoder', path: '/2012-09-25/pipelines'}))
+/*
+{"NextPageToken":null,"Pipelines":[]}
+...
+*/
+
+request(aws4.sign({service: 'lambda', path: '/2014-11-13/functions/'}))
+/*
+{"Functions":[],"NextMarker":null}
+...
+*/
+
+request(aws4.sign({service: 'ecs', path: '/?Action=ListClusters&Version=2014-11-13'}))
+/*
+<ListClustersResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/">
+...
+*/
+
+request(aws4.sign({service: 'glacier', path: '/-/vaults', headers: {'X-Amz-Glacier-Version': '2012-06-01'}}))
+/*
+{"Marker":null,"VaultList":[]}
+...
+*/
+
+request(aws4.sign({service: 'storagegateway', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'StorageGateway_20120630.ListGateways'
+}}))
+/*
+{"Gateways":[]}
+...
+*/
+
+request(aws4.sign({service: 'datapipeline', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'DataPipeline.ListPipelines'
+}}))
+/*
+{"hasMoreResults":false,"pipelineIdList":[]}
+...
+*/
+
+request(aws4.sign({service: 'opsworks', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'OpsWorks_20130218.DescribeStacks'
+}}))
+/*
+{"Stacks":[]}
+...
+*/
+
+request(aws4.sign({service: 'route53domains', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'Route53Domains_v20140515.ListDomains'
+}}))
+/*
+{"Domains":[]}
+...
+*/
+
+request(aws4.sign({service: 'kinesis', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'Kinesis_20131202.ListStreams'
+}}))
+/*
+{"HasMoreStreams":false,"StreamNames":[]}
+...
+*/
+
+request(aws4.sign({service: 'cloudtrail', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'CloudTrail_20131101.DescribeTrails'
+}}))
+/*
+{"trailList":[]}
+...
+*/
+
+request(aws4.sign({service: 'logs', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'Logs_20140328.DescribeLogGroups'
+}}))
+/*
+{"logGroups":[]}
+...
+*/
+
+request(aws4.sign({service: 'codedeploy', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'CodeDeploy_20141006.ListApplications'
+}}))
+/*
+{"applications":[]}
+...
+*/
+
+request(aws4.sign({service: 'directconnect', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'OvertureService.DescribeConnections'
+}}))
+/*
+{"connections":[]}
+...
+*/
+
+request(aws4.sign({service: 'kms', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'TrentService.ListKeys'
+}}))
+/*
+{"Keys":[],"Truncated":false}
+...
+*/
+
+request(aws4.sign({service: 'config', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'StarlingDoveService.DescribeDeliveryChannels'
+}}))
+/*
+{"DeliveryChannels":[]}
+...
+*/
+
+request(aws4.sign({service: 'cloudhsm', body: '{}', headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'CloudHsmFrontendService.ListAvailableZones'
+}}))
+/*
+{"AZList":["us-east-1a","us-east-1b","us-east-1c"]}
+...
+*/
+
+request(aws4.sign({
+ service: 'swf',
+ body: '{"registrationStatus":"REGISTERED"}',
+ headers: {
+ 'Content-Type': 'application/x-amz-json-1.0',
+ 'X-Amz-Target': 'SimpleWorkflowService.ListDomains'
+ }
+}))
+/*
+{"domainInfos":[]}
+...
+*/
+
+request(aws4.sign({
+ service: 'cognito-identity',
+ body: '{"MaxResults": 1}',
+ headers: {
+ 'Content-Type': 'application/x-amz-json-1.1',
+ 'X-Amz-Target': 'AWSCognitoIdentityService.ListIdentityPools'
+ }
+}))
+/*
+{"IdentityPools":[]}
+...
+*/
+
+request(aws4.sign({
+ service: 'mobileanalytics',
+ path: '/2014-06-05/events',
+ body: JSON.stringify({events:[{
+ eventType: 'a',
+ timestamp: new Date().toISOString(),
+ session: {},
+ }]}),
+ headers: {
+ 'Content-Type': 'application/json',
+ 'X-Amz-Client-Context': JSON.stringify({
+ client: {client_id: 'a', app_title: 'a'},
+ custom: {},
+ env: {platform: 'a'},
+ services: {},
+ }),
+ }
+}))
+/*
+(HTTP 202, empty response)
+*/
+
+// Generate CodeCommit Git access password
+var signer = new aws4.RequestSigner({
+ service: 'codecommit',
+ host: 'git-codecommit.us-east-1.amazonaws.com',
+ method: 'GIT',
+ path: '/v1/repos/MyAwesomeRepo',
+})
+var password = signer.getDateTime() + 'Z' + signer.signature()
+```
+
+API
+---
+
+### aws4.sign(requestOptions, [credentials])
+
+This calculates and populates the `Authorization` header of
+`requestOptions`, and any other necessary AWS headers and/or request
+options. Returns `requestOptions` as a convenience for chaining.
+
+`requestOptions` is an object holding the same options that the node.js
+[http.request](http://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback)
+function takes.
+
+The following properties of `requestOptions` are used in the signing or
+populated if they don't already exist:
+
+- `hostname` or `host` (will be determined from `service` and `region` if not given)
+- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`)
+- `path` (will use `'/'` if not given)
+- `body` (will use `''` if not given)
+- `service` (will be calculated from `hostname` or `host` if not given)
+- `region` (will be calculated from `hostname` or `host` or use `'us-east-1'` if not given)
+- `headers['Host']` (will use `hostname` or `host` or be calculated if not given)
+- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'`
+ if not given and there is a `body`)
+- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used)
+
+Your AWS credentials (which can be found in your
+[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials))
+can be specified in one of two ways:
+
+- As the second argument, like this:
+
+```javascript
+aws4.sign(requestOptions, {
+ secretAccessKey: "<your-secret-access-key>",
+ accessKeyId: "<your-access-key-id>",
+ sessionToken: "<your-session-token>"
+})
+```
+
+- From `process.env`, such as this:
+
+```
+export AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"
+export AWS_ACCESS_KEY_ID="<your-access-key-id>"
+export AWS_SESSION_TOKEN="<your-session-token>"
+```
+
+(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available)
+
+The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing
+with [IAM STS temporary credentials](http://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html).
+
+Installation
+------------
+
+With [npm](http://npmjs.org/) do:
+
+```
+npm install aws4
+```
+
+Can also be used [in the browser](./browser).
+
+Thanks
+------
+
+Thanks to [@jed](https://github.com/jed) for his
+[dynamo-client](https://github.com/jed/dynamo-client) lib where I first
+committed and subsequently extracted this code.
+
+Also thanks to the
+[official node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving
+me a start on implementing the v4 signature.
diff --git a/deps/npm/node_modules/request/node_modules/aws4/aws4.js b/deps/npm/node_modules/aws4/aws4.js
index 0cff0f0ea3..8e73d44b51 100644
--- a/deps/npm/node_modules/request/node_modules/aws4/aws4.js
+++ b/deps/npm/node_modules/aws4/aws4.js
@@ -233,8 +233,8 @@ RequestSigner.prototype.canonicalString = function() {
if (normalizePath && piece === '..') {
path.pop()
} else if (!normalizePath || piece !== '.') {
- if (decodePath) piece = querystring.unescape(piece)
- path.push(encodeRfc3986(querystring.escape(piece)))
+ if (decodePath) piece = decodeURIComponent(piece)
+ path.push(encodeRfc3986(encodeURIComponent(piece)))
}
return path
}, []).join('/')
@@ -303,7 +303,7 @@ RequestSigner.prototype.parsePath = function() {
// So if there are non-reserved chars (and it's not already all % encoded), just encode them all
if (/[^0-9A-Za-z!'()*\-._~%/]/.test(path)) {
path = path.split('/').map(function(piece) {
- return querystring.escape(querystring.unescape(piece))
+ return encodeURIComponent(decodeURIComponent(piece))
}).join('/')
}
diff --git a/deps/npm/node_modules/request/node_modules/aws4/lru.js b/deps/npm/node_modules/aws4/lru.js
index 333f66a443..333f66a443 100644
--- a/deps/npm/node_modules/request/node_modules/aws4/lru.js
+++ b/deps/npm/node_modules/aws4/lru.js
diff --git a/deps/npm/node_modules/aws4/package.json b/deps/npm/node_modules/aws4/package.json
new file mode 100644
index 0000000000..0ece5a9be8
--- /dev/null
+++ b/deps/npm/node_modules/aws4/package.json
@@ -0,0 +1,104 @@
+{
+ "_from": "aws4@^1.6.0",
+ "_id": "aws4@1.7.0",
+ "_inBundle": false,
+ "_integrity": "sha512-32NDda82rhwD9/JBCCkB+MRYDp0oSvlo2IL6rQWA10PQi7tDUM3eqMSltXmY+Oyl/7N3P3qNtAlv7X0d9bI28w==",
+ "_location": "/aws4",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "aws4@^1.6.0",
+ "name": "aws4",
+ "escapedName": "aws4",
+ "rawSpec": "^1.6.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.6.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.7.0.tgz",
+ "_shasum": "d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289",
+ "_spec": "aws4@^1.6.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Michael Hart",
+ "email": "michael.hart.au@gmail.com",
+ "url": "http://github.com/mhart"
+ },
+ "bugs": {
+ "url": "https://github.com/mhart/aws4/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Signs and prepares requests using AWS Signature Version 4",
+ "devDependencies": {
+ "mocha": "^2.4.5",
+ "should": "^8.2.2"
+ },
+ "homepage": "https://github.com/mhart/aws4#readme",
+ "keywords": [
+ "amazon",
+ "aws",
+ "signature",
+ "s3",
+ "ec2",
+ "autoscaling",
+ "cloudformation",
+ "elasticloadbalancing",
+ "elb",
+ "elasticbeanstalk",
+ "cloudsearch",
+ "dynamodb",
+ "kinesis",
+ "lambda",
+ "glacier",
+ "sqs",
+ "sns",
+ "iam",
+ "sts",
+ "ses",
+ "swf",
+ "storagegateway",
+ "datapipeline",
+ "directconnect",
+ "redshift",
+ "opsworks",
+ "rds",
+ "monitoring",
+ "cloudtrail",
+ "cloudfront",
+ "codedeploy",
+ "elasticache",
+ "elasticmapreduce",
+ "elastictranscoder",
+ "emr",
+ "cloudwatch",
+ "mobileanalytics",
+ "cognitoidentity",
+ "cognitosync",
+ "cognito",
+ "containerservice",
+ "ecs",
+ "appstream",
+ "keymanagementservice",
+ "kms",
+ "config",
+ "cloudhsm",
+ "route53",
+ "route53domains",
+ "logs"
+ ],
+ "license": "MIT",
+ "main": "aws4.js",
+ "name": "aws4",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mhart/aws4.git"
+ },
+ "scripts": {
+ "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list"
+ },
+ "version": "1.7.0"
+}
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/balanced-match/.npmignore
index ae5d8c36ac..ae5d8c36ac 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
+++ b/deps/npm/node_modules/balanced-match/.npmignore
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/balanced-match/LICENSE.md
index 2cdc8e4148..2cdc8e4148 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
+++ b/deps/npm/node_modules/balanced-match/LICENSE.md
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/balanced-match/README.md
index 08e918c0db..08e918c0db 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
+++ b/deps/npm/node_modules/balanced-match/README.md
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/balanced-match/index.js
index 1685a76293..1685a76293 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
+++ b/deps/npm/node_modules/balanced-match/index.js
diff --git a/deps/npm/node_modules/balanced-match/package.json b/deps/npm/node_modules/balanced-match/package.json
new file mode 100644
index 0000000000..22dfa6d647
--- /dev/null
+++ b/deps/npm/node_modules/balanced-match/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "balanced-match@^1.0.0",
+ "_id": "balanced-match@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
+ "_location": "/balanced-match",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "balanced-match@^1.0.0",
+ "name": "balanced-match",
+ "escapedName": "balanced-match",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/brace-expansion"
+ ],
+ "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+ "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
+ "_spec": "balanced-match@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/brace-expansion",
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/balanced-match/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Match balanced character pairs, like \"{\" and \"}\"",
+ "devDependencies": {
+ "matcha": "^0.7.0",
+ "tape": "^4.6.0"
+ },
+ "homepage": "https://github.com/juliangruber/balanced-match",
+ "keywords": [
+ "match",
+ "regexp",
+ "test",
+ "balanced",
+ "parse"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "balanced-match",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/balanced-match.git"
+ },
+ "scripts": {
+ "bench": "make bench",
+ "test": "make test"
+ },
+ "testling": {
+ "files": "test/*.js",
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..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.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/README.md b/deps/npm/node_modules/bcrypt-pbkdf/README.md
index 12018090bb..12018090bb 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/README.md
+++ b/deps/npm/node_modules/bcrypt-pbkdf/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/index.js b/deps/npm/node_modules/bcrypt-pbkdf/index.js
index b1b5ad4b78..b1b5ad4b78 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/index.js
+++ b/deps/npm/node_modules/bcrypt-pbkdf/index.js
diff --git a/deps/npm/node_modules/bcrypt-pbkdf/package.json b/deps/npm/node_modules/bcrypt-pbkdf/package.json
new file mode 100644
index 0000000000..592df34e24
--- /dev/null
+++ b/deps/npm/node_modules/bcrypt-pbkdf/package.json
@@ -0,0 +1,36 @@
+{
+ "_from": "bcrypt-pbkdf@^1.0.0",
+ "_id": "bcrypt-pbkdf@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
+ "_location": "/bcrypt-pbkdf",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "bcrypt-pbkdf@^1.0.0",
+ "name": "bcrypt-pbkdf",
+ "escapedName": "bcrypt-pbkdf",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
+ "_shasum": "63bc5dcb61331b92bc05fd528953c33462a06f8d",
+ "_spec": "bcrypt-pbkdf@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "bundleDependencies": false,
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ },
+ "deprecated": false,
+ "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS",
+ "devDependencies": {},
+ "license": "BSD-3-Clause",
+ "main": "index.js",
+ "name": "bcrypt-pbkdf",
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/bin-links/CHANGELOG.md b/deps/npm/node_modules/bin-links/CHANGELOG.md
index c21734b67d..fb6bd0bd1e 100644
--- a/deps/npm/node_modules/bin-links/CHANGELOG.md
+++ b/deps/npm/node_modules/bin-links/CHANGELOG.md
@@ -2,6 +2,26 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="1.1.2"></a>
+## [1.1.2](https://github.com/npm/bin-links/compare/v1.1.1...v1.1.2) (2018-03-22)
+
+
+### Bug Fixes
+
+* **linkMans:** return the promise! ([5eccc7f](https://github.com/npm/bin-links/commit/5eccc7f))
+
+
+
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/npm/bin-links/compare/v1.1.0...v1.1.1) (2018-03-07)
+
+
+### Bug Fixes
+
+* **shebangs:** only convert CR when doing CRLF -> LF ([#2](https://github.com/npm/bin-links/issues/2)) ([43bf857](https://github.com/npm/bin-links/commit/43bf857))
+
+
+
<a name="1.1.0"></a>
# [1.1.0](https://github.com/npm/bin-links/compare/v1.0.0...v1.1.0) (2017-11-20)
diff --git a/deps/npm/node_modules/bin-links/index.js b/deps/npm/node_modules/bin-links/index.js
index e6370acad5..5f86755475 100644
--- a/deps/npm/node_modules/bin-links/index.js
+++ b/deps/npm/node_modules/bin-links/index.js
@@ -2,16 +2,15 @@
const path = require('path')
const fs = require('graceful-fs')
-const linkIfExists = require('gentle-fs').linkIfExists
-const cmdShimIfExists = require('cmd-shim').ifExists
-const asyncMap = require('slide').asyncMap
const BB = require('bluebird')
+const linkIfExists = BB.promisify(require('gentle-fs').linkIfExists)
+const cmdShimIfExists = BB.promisify(require('cmd-shim').ifExists)
const open = BB.promisify(fs.open)
const close = BB.promisify(fs.close)
-const stat = BB.promisify(fs.stat)
+const read = BB.promisify(fs.read, {multiArgs: true})
const chmod = BB.promisify(fs.chmod)
-const Transform = require('stream').Transform
-const fsWriteStreamAtomic = require('fs-write-stream-atomic')
+const readFile = BB.promisify(fs.readFile)
+const writeFileAtomic = BB.promisify(require('write-file-atomic'))
module.exports = BB.promisify(binLinks)
@@ -29,63 +28,34 @@ function binLinks (pkg, folder, global, opts, cb) {
if (gnm) opts.log.silly('linkStuff', opts.pkgId, 'is installed into a global node_modules')
if (gtop) opts.log.silly('linkStuff', opts.pkgId, 'is installed into the top-level global node_modules')
- asyncMap(
- [linkBins, linkMans],
- function (fn, cb) {
- if (!fn) return cb()
- opts.log.verbose(fn.name, opts.pkgId)
- fn(pkg, folder, parent, gtop, opts, cb)
- },
- cb
- )
+ return BB.join(
+ linkBins(pkg, folder, parent, gtop, opts),
+ linkMans(pkg, folder, parent, gtop, opts)
+ ).asCallback(cb)
}
function isHashbangFile (file) {
- return open(file, 'r').then((fileHandle) => {
- return new BB((resolve, reject) => {
- fs.read(fileHandle, Buffer.from(new Array(2)), 0, 2, 0, function (err, bytesRead, buffer) {
- close(fileHandle).then(() => {
- resolve(!err && buffer.toString() === '#!')
- }).catch(reject)
- })
- })
- })
+ return open(file, 'r').then(fileHandle => {
+ return read(fileHandle, Buffer.alloc(2), 0, 2, 0).spread((_, buf) => {
+ if (!hasHashbang(buf)) return []
+ return read(fileHandle, Buffer.alloc(2048), 0, 2048, 0)
+ }).spread((_, buf) => buf && hasCR(buf), () => false)
+ .finally(() => close(fileHandle))
+ }).catch(() => false)
+}
+
+function hasHashbang (buf) {
+ const str = buf.toString()
+ return str.slice(0, 2) === '#!'
+}
+
+function hasCR (buf) {
+ return /^#![^\n]+\r\n/.test(buf)
}
function dos2Unix (file) {
- return stat(file).then((stats) => {
- let previousChunkEndedInCR = false
- return new BB((resolve, reject) => {
- fs.createReadStream(file)
- .on('error', reject)
- .pipe(new Transform({
- transform: function (chunk, encoding, done) {
- let data = chunk.toString()
- if (previousChunkEndedInCR) {
- data = '\r' + data
- }
- if (data[data.length - 1] === '\r') {
- data = data.slice(0, -1)
- previousChunkEndedInCR = true
- } else {
- previousChunkEndedInCR = false
- }
- done(null, data.replace(/\r\n/g, '\n'))
- },
- flush: function (done) {
- if (previousChunkEndedInCR) {
- this.push('\r')
- }
- done()
- }
- }))
- .on('error', reject)
- .pipe(fsWriteStreamAtomic(file))
- .on('error', reject)
- .on('finish', function () {
- resolve(chmod(file, stats.mode))
- })
- })
+ return readFile(file, 'utf8').then(content => {
+ return writeFileAtomic(file, content.replace(/^(#![^\n]+)\r\n/, '$1\n'))
})
}
@@ -93,9 +63,9 @@ function getLinkOpts (opts, gently) {
return Object.assign({}, opts, { gently: gently })
}
-function linkBins (pkg, folder, parent, gtop, opts, cb) {
+function linkBins (pkg, folder, parent, gtop, opts) {
if (!pkg.bin || (!gtop && path.basename(parent) !== 'node_modules')) {
- return cb()
+ return
}
var linkOpts = getLinkOpts(opts, gtop && folder)
var execMode = parseInt('0777', 8) & (~opts.umask)
@@ -103,53 +73,49 @@ function linkBins (pkg, folder, parent, gtop, opts, cb) {
: path.resolve(parent, '.bin')
opts.log.verbose('linkBins', [pkg.bin, binRoot, gtop])
- asyncMap(Object.keys(pkg.bin), function (bin, cb) {
+ return BB.map(Object.keys(pkg.bin), bin => {
var dest = path.resolve(binRoot, bin)
var src = path.resolve(folder, pkg.bin[bin])
- linkBin(src, dest, linkOpts, function (er) {
- if (er) return cb(er)
+ return linkBin(src, dest, linkOpts).then(() => {
// bins should always be executable.
// XXX skip chmod on windows?
- fs.chmod(src, execMode, function (er) {
- if (er && er.code === 'ENOENT' && opts.ignoreScripts) {
- return cb()
- }
- if (er) return cb(er)
- isHashbangFile(src).then((isHashbang) => {
- if (isHashbang) {
- opts.log.silly('linkBins', 'Converting line endings of hashbang file:', src)
- return dos2Unix(src)
- }
- }).then(() => {
- if (!gtop) return cb()
- var dest = path.resolve(binRoot, bin)
- var out = opts.parseable
- ? dest + '::' + src + ':BINFILE'
- : dest + ' -> ' + src
-
- if (!opts.json && !opts.parseable) {
- opts.log.clearProgress()
- console.log(out)
- opts.log.showProgress()
- }
- cb()
- }).catch(cb)
- })
+ return chmod(src, execMode)
+ }).then(() => {
+ return isHashbangFile(src)
+ }).then(isHashbang => {
+ if (!isHashbang) return
+ opts.log.silly('linkBins', 'Converting line endings of hashbang file:', src)
+ return dos2Unix(src)
+ }).then(() => {
+ if (!gtop) return
+ var dest = path.resolve(binRoot, bin)
+ var out = opts.parseable
+ ? dest + '::' + src + ':BINFILE'
+ : dest + ' -> ' + src
+
+ if (!opts.json && !opts.parseable) {
+ opts.log.clearProgress()
+ console.log(out)
+ opts.log.showProgress()
+ }
+ }).catch(err => {
+ if (err.code === 'ENOENT' && opts.ignoreScripts) return
+ throw err
})
- }, cb)
+ })
}
-function linkBin (from, to, opts, cb) {
+function linkBin (from, to, opts) {
if (process.platform !== 'win32') {
- return linkIfExists(from, to, opts, cb)
+ return linkIfExists(from, to, opts)
} else {
- return cmdShimIfExists(from, to, cb)
+ return cmdShimIfExists(from, to)
}
}
-function linkMans (pkg, folder, parent, gtop, opts, cb) {
- if (!pkg.man || !gtop || process.platform === 'win32') return cb()
+function linkMans (pkg, folder, parent, gtop, opts) {
+ if (!pkg.man || !gtop || process.platform === 'win32') return
var manRoot = path.resolve(opts.prefix, 'share', 'man')
opts.log.verbose('linkMans', 'man files are', pkg.man, 'in', manRoot)
@@ -160,20 +126,20 @@ function linkMans (pkg, folder, parent, gtop, opts, cb) {
acc[path.basename(man)] = man
return acc
}, {})
- pkg.man = pkg.man.filter(function (man) {
+ var manpages = pkg.man.filter(function (man) {
return set[path.basename(man)] === man
})
- asyncMap(pkg.man, function (man, cb) {
- if (typeof man !== 'string') return cb()
+ return BB.map(manpages, man => {
+ if (typeof man !== 'string') return
opts.log.silly('linkMans', 'preparing to link', man)
var parseMan = man.match(/(.*\.([0-9]+)(\.gz)?)$/)
if (!parseMan) {
- return cb(new Error(
+ throw new Error(
man + ' is not a valid name for a man file. ' +
'Man files must end with a number, ' +
'and optionally a .gz suffix if they are compressed.'
- ))
+ )
}
var stem = parseMan[1]
@@ -182,6 +148,6 @@ function linkMans (pkg, folder, parent, gtop, opts, cb) {
var manSrc = path.resolve(folder, man)
var manDest = path.join(manRoot, 'man' + sxn, bn)
- linkIfExists(manSrc, manDest, getLinkOpts(opts, gtop && folder), cb)
- }, cb)
+ return linkIfExists(manSrc, manDest, getLinkOpts(opts, gtop && folder))
+ })
}
diff --git a/deps/npm/node_modules/bin-links/package.json b/deps/npm/node_modules/bin-links/package.json
index 318e84e5ce..0a1af20fda 100644
--- a/deps/npm/node_modules/bin-links/package.json
+++ b/deps/npm/node_modules/bin-links/package.json
@@ -1,27 +1,32 @@
{
- "_from": "bin-links@latest",
- "_id": "bin-links@1.1.0",
+ "_args": [
+ [
+ "bin-links@1.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "bin-links@1.1.2",
+ "_id": "bin-links@1.1.2",
"_inBundle": false,
- "_integrity": "sha512-3desjIEoSt86s+BRZlkLpBPPcHhr4vyUPL/+X1cQuE96NIlkELqnb4Yq+I5gZe47gHsZztA6cm38uMrT9+FWpA==",
+ "_integrity": "sha512-8eEHVgYP03nILphilltWjeIjMbKyJo3wvp9K816pHbhP301ismzw15mxAAEVQ/USUwcP++1uNrbERbp8lOA6Fg==",
"_location": "/bin-links",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "bin-links@latest",
+ "raw": "bin-links@1.1.2",
"name": "bin-links",
"escapedName": "bin-links",
- "rawSpec": "latest",
+ "rawSpec": "1.1.2",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "1.1.2"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/libcipm"
],
- "_resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.0.tgz",
- "_shasum": "e0a92cb57f01c4dc1088bca2bae6be110b9f64f9",
- "_spec": "bin-links@latest",
+ "_resolved": "https://registry.npmjs.org/bin-links/-/bin-links-1.1.2.tgz",
+ "_spec": "1.1.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mike Sherov"
@@ -29,19 +34,18 @@
"bugs": {
"url": "https://github.com/npm/bin-links/issues"
},
- "bundleDependencies": false,
"dependencies": {
"bluebird": "^3.5.0",
"cmd-shim": "^2.0.2",
- "fs-write-stream-atomic": "^1.0.10",
"gentle-fs": "^2.0.0",
"graceful-fs": "^4.1.11",
- "slide": "^1.1.6"
+ "write-file-atomic": "^2.3.0"
},
- "deprecated": false,
"description": "JavaScript package binary linker",
"devDependencies": {
+ "mkdirp": "^0.5.1",
"nyc": "^11.1.0",
+ "rimraf": "^2.6.2",
"standard": "^10.0.3",
"standard-version": "^4.2.0",
"tap": "^10.7.2",
@@ -73,5 +77,5 @@
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "1.1.0"
+ "version": "1.1.2"
}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENCE b/deps/npm/node_modules/block-stream/LICENCE
index 74489e2e26..74489e2e26 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENCE
+++ b/deps/npm/node_modules/block-stream/LICENCE
diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE b/deps/npm/node_modules/block-stream/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/config-chain/node_modules/proto-list/LICENSE
+++ b/deps/npm/node_modules/block-stream/LICENSE
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/README.md b/deps/npm/node_modules/block-stream/README.md
index c16e9c4688..c16e9c4688 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/README.md
+++ b/deps/npm/node_modules/block-stream/README.md
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/block-stream.js b/deps/npm/node_modules/block-stream/block-stream.js
index 008de035c2..008de035c2 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/block-stream.js
+++ b/deps/npm/node_modules/block-stream/block-stream.js
diff --git a/deps/npm/node_modules/block-stream/package.json b/deps/npm/node_modules/block-stream/package.json
new file mode 100644
index 0000000000..d7d591cf90
--- /dev/null
+++ b/deps/npm/node_modules/block-stream/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "block-stream@*",
+ "_id": "block-stream@0.0.9",
+ "_inBundle": false,
+ "_integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
+ "_location": "/block-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "block-stream@*",
+ "name": "block-stream",
+ "escapedName": "block-stream",
+ "rawSpec": "*",
+ "saveSpec": null,
+ "fetchSpec": "*"
+ },
+ "_requiredBy": [
+ "/node-gyp/tar"
+ ],
+ "_resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
+ "_shasum": "13ebfe778a03205cfe03751481ebb4b3300c126a",
+ "_spec": "block-stream@*",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/tar",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/block-stream/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "inherits": "~2.0.0"
+ },
+ "deprecated": false,
+ "description": "a stream of blocks",
+ "devDependencies": {
+ "tap": "^5.7.1"
+ },
+ "engines": {
+ "node": "0.4 || >=0.5.8"
+ },
+ "files": [
+ "block-stream.js"
+ ],
+ "homepage": "https://github.com/isaacs/block-stream#readme",
+ "license": "ISC",
+ "main": "block-stream.js",
+ "name": "block-stream",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/block-stream.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js --cov"
+ },
+ "version": "0.0.9"
+}
diff --git a/deps/npm/node_modules/bluebird/package.json b/deps/npm/node_modules/bluebird/package.json
index 524230df6d..a517fb86c4 100644
--- a/deps/npm/node_modules/bluebird/package.json
+++ b/deps/npm/node_modules/bluebird/package.json
@@ -1,32 +1,41 @@
{
- "_from": "bluebird@latest",
+ "_args": [
+ [
+ "bluebird@3.5.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "bluebird@3.5.1",
"_id": "bluebird@3.5.1",
"_inBundle": false,
"_integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"_location": "/bluebird",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "bluebird@latest",
+ "raw": "bluebird@3.5.1",
"name": "bluebird",
"escapedName": "bluebird",
- "rawSpec": "latest",
+ "rawSpec": "3.5.1",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "3.5.1"
},
"_requiredBy": [
- "#USER",
"/",
"/bin-links",
"/cacache",
+ "/libcipm",
+ "/libnpmhook/npm-registry-fetch",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch",
+ "/npm-registry-fetch/cacache",
"/pacote",
"/tap"
],
"_resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
- "_shasum": "d9551f9de98f1fcda1e683d17ee91a0602ee2eb9",
- "_spec": "bluebird@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.5.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Petka Antonov",
"email": "petka_antonov@hotmail.com",
@@ -36,8 +45,6 @@
"bugs": {
"url": "http://github.com/petkaantonov/bluebird/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "Full featured Promises/A+ implementation with exceptionally good performance",
"devDependencies": {
"acorn": "~0.6.0",
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE b/deps/npm/node_modules/boom/LICENSE
index 94b91cbf09..94b91cbf09 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/LICENSE
+++ b/deps/npm/node_modules/boom/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md b/deps/npm/node_modules/boom/README.md
index 6452491b90..6452491b90 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/README.md
+++ b/deps/npm/node_modules/boom/README.md
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js b/deps/npm/node_modules/boom/lib/index.js
index 17ed0279ea..17ed0279ea 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/lib/index.js
+++ b/deps/npm/node_modules/boom/lib/index.js
diff --git a/deps/npm/node_modules/boom/package.json b/deps/npm/node_modules/boom/package.json
new file mode 100644
index 0000000000..6edb39cf28
--- /dev/null
+++ b/deps/npm/node_modules/boom/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "boom@4.x.x",
+ "_id": "boom@4.3.1",
+ "_inBundle": false,
+ "_integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
+ "_location": "/boom",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "boom@4.x.x",
+ "name": "boom",
+ "escapedName": "boom",
+ "rawSpec": "4.x.x",
+ "saveSpec": null,
+ "fetchSpec": "4.x.x"
+ },
+ "_requiredBy": [
+ "/hawk"
+ ],
+ "_resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
+ "_shasum": "4f8a3005cb4a7e3889f749030fd25b96e01d2e31",
+ "_spec": "boom@4.x.x",
+ "_where": "/Users/rebecca/code/npm/node_modules/hawk",
+ "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": "13.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": "4.3.1"
+}
diff --git a/deps/npm/node_modules/boxen/index.js b/deps/npm/node_modules/boxen/index.js
new file mode 100644
index 0000000000..b54b92dc67
--- /dev/null
+++ b/deps/npm/node_modules/boxen/index.js
@@ -0,0 +1,138 @@
+'use strict';
+const stringWidth = require('string-width');
+const chalk = require('chalk');
+const widestLine = require('widest-line');
+const cliBoxes = require('cli-boxes');
+const camelCase = require('camelcase');
+const ansiAlign = require('ansi-align');
+const termSize = require('term-size');
+
+const getObject = detail => {
+ let obj;
+
+ if (typeof detail === 'number') {
+ obj = {
+ top: detail,
+ right: detail * 3,
+ bottom: detail,
+ left: detail * 3
+ };
+ } else {
+ obj = Object.assign({
+ top: 0,
+ right: 0,
+ bottom: 0,
+ left: 0
+ }, detail);
+ }
+
+ return obj;
+};
+
+const getBorderChars = borderStyle => {
+ const sides = [
+ 'topLeft',
+ 'topRight',
+ 'bottomRight',
+ 'bottomLeft',
+ 'vertical',
+ 'horizontal'
+ ];
+
+ let chars;
+
+ if (typeof borderStyle === 'string') {
+ chars = cliBoxes[borderStyle];
+
+ if (!chars) {
+ throw new TypeError(`Invalid border style: ${borderStyle}`);
+ }
+ } else {
+ sides.forEach(key => {
+ if (!borderStyle[key] || typeof borderStyle[key] !== 'string') {
+ throw new TypeError(`Invalid border style: ${key}`);
+ }
+ });
+
+ chars = borderStyle;
+ }
+
+ return chars;
+};
+
+const getBackgroundColorName = x => camelCase('bg', x);
+
+module.exports = (text, opts) => {
+ opts = Object.assign({
+ padding: 0,
+ borderStyle: 'single',
+ dimBorder: false,
+ align: 'left',
+ float: 'left'
+ }, opts);
+
+ if (opts.backgroundColor) {
+ opts.backgroundColor = getBackgroundColorName(opts.backgroundColor);
+ }
+
+ if (opts.borderColor && !chalk[opts.borderColor]) {
+ throw new Error(`${opts.borderColor} is not a valid borderColor`);
+ }
+
+ if (opts.backgroundColor && !chalk[opts.backgroundColor]) {
+ throw new Error(`${opts.backgroundColor} is not a valid backgroundColor`);
+ }
+
+ const chars = getBorderChars(opts.borderStyle);
+ const padding = getObject(opts.padding);
+ const margin = getObject(opts.margin);
+
+ const colorizeBorder = x => {
+ const ret = opts.borderColor ? chalk[opts.borderColor](x) : x;
+ return opts.dimBorder ? chalk.dim(ret) : ret;
+ };
+
+ const colorizeContent = x => opts.backgroundColor ? chalk[opts.backgroundColor](x) : x;
+
+ text = ansiAlign(text, {align: opts.align});
+
+ const NL = '\n';
+ const PAD = ' ';
+
+ let lines = text.split(NL);
+
+ if (padding.top > 0) {
+ lines = Array(padding.top).fill('').concat(lines);
+ }
+
+ if (padding.bottom > 0) {
+ lines = lines.concat(Array(padding.bottom).fill(''));
+ }
+
+ const contentWidth = widestLine(text) + padding.left + padding.right;
+ const paddingLeft = PAD.repeat(padding.left);
+ const columns = termSize().columns;
+ let marginLeft = PAD.repeat(margin.left);
+
+ if (opts.float === 'center') {
+ const padWidth = Math.max((columns - contentWidth) / 2, 0);
+ marginLeft = PAD.repeat(padWidth);
+ } else if (opts.float === 'right') {
+ const padWidth = Math.max(columns - contentWidth - margin.right - 2, 0);
+ marginLeft = PAD.repeat(padWidth);
+ }
+
+ const horizontal = chars.horizontal.repeat(contentWidth);
+ const top = colorizeBorder(NL.repeat(margin.top) + marginLeft + chars.topLeft + horizontal + chars.topRight);
+ const bottom = colorizeBorder(marginLeft + chars.bottomLeft + horizontal + chars.bottomRight + NL.repeat(margin.bottom));
+ const side = colorizeBorder(chars.vertical);
+
+ const middle = lines.map(line => {
+ const paddingRight = PAD.repeat(contentWidth - stringWidth(line) - padding.left);
+ return marginLeft + side + colorizeContent(paddingLeft + line + paddingRight) + side;
+ }).join(NL);
+
+ return top + NL + middle + NL + bottom;
+};
+
+module.exports._borderStyles = cliBoxes;
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/license b/deps/npm/node_modules/boxen/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/license
+++ b/deps/npm/node_modules/boxen/license
diff --git a/deps/npm/node_modules/boxen/package.json b/deps/npm/node_modules/boxen/package.json
new file mode 100644
index 0000000000..51cca1d211
--- /dev/null
+++ b/deps/npm/node_modules/boxen/package.json
@@ -0,0 +1,79 @@
+{
+ "_from": "boxen@^1.2.1",
+ "_id": "boxen@1.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==",
+ "_location": "/boxen",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "boxen@^1.2.1",
+ "name": "boxen",
+ "escapedName": "boxen",
+ "rawSpec": "^1.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.1"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz",
+ "_shasum": "55c6c39a8ba58d9c61ad22cd877532deb665a20b",
+ "_spec": "boxen@^1.2.1",
+ "_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/sindresorhus/boxen/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-align": "^2.0.0",
+ "camelcase": "^4.0.0",
+ "chalk": "^2.0.1",
+ "cli-boxes": "^1.0.0",
+ "string-width": "^2.0.0",
+ "term-size": "^1.2.0",
+ "widest-line": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Create boxes in the terminal",
+ "devDependencies": {
+ "ava": "*",
+ "nyc": "^11.0.3",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/boxen#readme",
+ "keywords": [
+ "cli",
+ "box",
+ "boxes",
+ "terminal",
+ "term",
+ "console",
+ "ascii",
+ "unicode",
+ "border",
+ "text"
+ ],
+ "license": "MIT",
+ "name": "boxen",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/boxen.git"
+ },
+ "scripts": {
+ "test": "xo && nyc ava"
+ },
+ "version": "1.3.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md b/deps/npm/node_modules/boxen/readme.md
index d8db8e98a2..d8db8e98a2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/readme.md
+++ b/deps/npm/node_modules/boxen/readme.md
diff --git a/deps/npm/node_modules/brace-expansion/LICENSE b/deps/npm/node_modules/brace-expansion/LICENSE
new file mode 100644
index 0000000000..de3226673c
--- /dev/null
+++ b/deps/npm/node_modules/brace-expansion/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2013 Julian Gruber <julian@juliangruber.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/brace-expansion/README.md b/deps/npm/node_modules/brace-expansion/README.md
new file mode 100644
index 0000000000..bbfd3fcb88
--- /dev/null
+++ b/deps/npm/node_modules/brace-expansion/README.md
@@ -0,0 +1,129 @@
+# brace-expansion
+
+[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
+as known from sh/bash, in JavaScript.
+
+[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
+[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
+[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
+
+[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
+
+## Example
+
+```js
+var expand = require('brace-expansion');
+
+expand('file-{a,b,c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('-v{,,}')
+// => ['-v', '-v', '-v']
+
+expand('file{0..2}.jpg')
+// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
+
+expand('file-{a..c}.jpg')
+// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
+
+expand('file{2..0}.jpg')
+// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
+
+expand('file{0..4..2}.jpg')
+// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
+
+expand('file-{a..e..2}.jpg')
+// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
+
+expand('file{00..10..5}.jpg')
+// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
+
+expand('{{A..C},{a..c}}')
+// => ['A', 'B', 'C', 'a', 'b', 'c']
+
+expand('ppp{,config,oe{,conf}}')
+// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
+```
+
+## API
+
+```js
+var expand = require('brace-expansion');
+```
+
+### var expanded = expand(str)
+
+Return an array of all possible and valid expansions of `str`. If none are
+found, `[str]` is returned.
+
+Valid expansions are:
+
+```js
+/^(.*,)+(.+)?$/
+// {a,b,...}
+```
+
+A comma separated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+A numeric sequence from `x` to `y` inclusive, with optional increment.
+If `x` or `y` start with a leading `0`, all the numbers will be padded
+to have equal length. Negative numbers and backwards iteration work too.
+
+```js
+/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
+// {x..y[..incr]}
+```
+
+An alphabetic sequence from `x` to `y` inclusive, with optional increment.
+`x` and `y` must be exactly one character, and if given, `incr` must be a
+number.
+
+For compatibility reasons, the string `${` is not eligible for brace expansion.
+
+## Installation
+
+With [npm](https://npmjs.org) do:
+
+```bash
+npm install brace-expansion
+```
+
+## Contributors
+
+- [Julian Gruber](https://github.com/juliangruber)
+- [Isaac Z. Schlueter](https://github.com/isaacs)
+
+## Sponsors
+
+This module is proudly supported by my [Sponsors](https://github.com/juliangruber/sponsors)!
+
+Do you want to support modules like this to improve their quality, stability and weigh in on new features? Then please consider donating to my [Patreon](https://www.patreon.com/juliangruber). Not sure how much of my modules you're using? Try [feross/thanks](https://github.com/feross/thanks)!
+
+## License
+
+(MIT)
+
+Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
+
+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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/brace-expansion/index.js
index 2b6f4f85c9..2b6f4f85c9 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ b/deps/npm/node_modules/brace-expansion/index.js
diff --git a/deps/npm/node_modules/brace-expansion/package.json b/deps/npm/node_modules/brace-expansion/package.json
new file mode 100644
index 0000000000..3d8dc2b54e
--- /dev/null
+++ b/deps/npm/node_modules/brace-expansion/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "brace-expansion@^1.1.7",
+ "_id": "brace-expansion@1.1.11",
+ "_inBundle": false,
+ "_integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "_location": "/brace-expansion",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "brace-expansion@^1.1.7",
+ "name": "brace-expansion",
+ "escapedName": "brace-expansion",
+ "rawSpec": "^1.1.7",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.7"
+ },
+ "_requiredBy": [
+ "/minimatch"
+ ],
+ "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "_shasum": "3c7fcbf529d87226f3d2f52b966ff5271eb441dd",
+ "_spec": "brace-expansion@^1.1.7",
+ "_where": "/Users/rebecca/code/npm/node_modules/minimatch",
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/brace-expansion/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "deprecated": false,
+ "description": "Brace expansion as known from sh/bash",
+ "devDependencies": {
+ "matcha": "^0.7.0",
+ "tape": "^4.6.0"
+ },
+ "homepage": "https://github.com/juliangruber/brace-expansion",
+ "keywords": [],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "brace-expansion",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/brace-expansion.git"
+ },
+ "scripts": {
+ "bench": "matcha test/perf/bench.js",
+ "gentest": "bash test/generate.sh",
+ "test": "tape test/*.js"
+ },
+ "testling": {
+ "files": "test/*.js",
+ "browsers": [
+ "ie/8..latest",
+ "firefox/20..latest",
+ "firefox/nightly",
+ "chrome/25..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.1.11"
+}
diff --git a/deps/npm/node_modules/buffer-from/index.js b/deps/npm/node_modules/buffer-from/index.js
new file mode 100644
index 0000000000..d92a83d01f
--- /dev/null
+++ b/deps/npm/node_modules/buffer-from/index.js
@@ -0,0 +1,69 @@
+var toString = Object.prototype.toString
+
+var isModern = (
+ typeof Buffer.alloc === 'function' &&
+ typeof Buffer.allocUnsafe === 'function' &&
+ typeof Buffer.from === 'function'
+)
+
+function isArrayBuffer (input) {
+ return toString.call(input).slice(8, -1) === 'ArrayBuffer'
+}
+
+function fromArrayBuffer (obj, byteOffset, length) {
+ byteOffset >>>= 0
+
+ var maxLength = obj.byteLength - byteOffset
+
+ if (maxLength < 0) {
+ throw new RangeError("'offset' is out of bounds")
+ }
+
+ if (length === undefined) {
+ length = maxLength
+ } else {
+ length >>>= 0
+
+ if (length > maxLength) {
+ throw new RangeError("'length' is out of bounds")
+ }
+ }
+
+ return isModern
+ ? Buffer.from(obj.slice(byteOffset, byteOffset + length))
+ : new Buffer(new Uint8Array(obj.slice(byteOffset, byteOffset + length)))
+}
+
+function fromString (string, encoding) {
+ if (typeof encoding !== 'string' || encoding === '') {
+ encoding = 'utf8'
+ }
+
+ if (!Buffer.isEncoding(encoding)) {
+ throw new TypeError('"encoding" must be a valid string encoding')
+ }
+
+ return isModern
+ ? Buffer.from(string, encoding)
+ : new Buffer(string, encoding)
+}
+
+function bufferFrom (value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number')
+ }
+
+ if (isArrayBuffer(value)) {
+ return fromArrayBuffer(value, encodingOrOffset, length)
+ }
+
+ if (typeof value === 'string') {
+ return fromString(value, encodingOrOffset)
+ }
+
+ return isModern
+ ? Buffer.from(value)
+ : new Buffer(value)
+}
+
+module.exports = bufferFrom
diff --git a/deps/npm/node_modules/buffer-from/package.json b/deps/npm/node_modules/buffer-from/package.json
new file mode 100644
index 0000000000..4e5d22585b
--- /dev/null
+++ b/deps/npm/node_modules/buffer-from/package.json
@@ -0,0 +1,50 @@
+{
+ "_from": "buffer-from@^1.0.0",
+ "_id": "buffer-from@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==",
+ "_location": "/buffer-from",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "buffer-from@^1.0.0",
+ "name": "buffer-from",
+ "escapedName": "buffer-from",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/concat-stream",
+ "/source-map-support"
+ ],
+ "_resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
+ "_shasum": "4cb8832d23612589b0406e9e2956c17f06fdf531",
+ "_spec": "buffer-from@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/concat-stream",
+ "bugs": {
+ "url": "https://github.com/LinusU/buffer-from/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.",
+ "devDependencies": {
+ "standard": "^7.1.2"
+ },
+ "homepage": "https://github.com/LinusU/buffer-from#readme",
+ "keywords": [
+ "buffer",
+ "buffer from"
+ ],
+ "license": "MIT",
+ "name": "buffer-from",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/LinusU/buffer-from.git"
+ },
+ "scripts": {
+ "test": "standard && node test"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/buffer-from/readme.md b/deps/npm/node_modules/buffer-from/readme.md
new file mode 100644
index 0000000000..9880a558a7
--- /dev/null
+++ b/deps/npm/node_modules/buffer-from/readme.md
@@ -0,0 +1,69 @@
+# Buffer From
+
+A [ponyfill](https://ponyfill.com) for `Buffer.from`, uses native implementation if available.
+
+## Installation
+
+```sh
+npm install --save buffer-from
+```
+
+## Usage
+
+```js
+const bufferFrom = require('buffer-from')
+
+console.log(bufferFrom([1, 2, 3, 4]))
+//=> <Buffer 01 02 03 04>
+
+const arr = new Uint8Array([1, 2, 3, 4])
+console.log(bufferFrom(arr.buffer, 1, 2))
+//=> <Buffer 02 03>
+
+console.log(bufferFrom('test', 'utf8'))
+//=> <Buffer 74 65 73 74>
+
+const buf = bufferFrom('test')
+console.log(bufferFrom(buf))
+//=> <Buffer 74 65 73 74>
+```
+
+## API
+
+### bufferFrom(array)
+
+- `array` &lt;Array&gt;
+
+Allocates a new `Buffer` using an `array` of octets.
+
+### bufferFrom(arrayBuffer[, byteOffset[, length]])
+
+- `arrayBuffer` &lt;ArrayBuffer&gt; The `.buffer` property of a TypedArray or ArrayBuffer
+- `byteOffset` &lt;Integer&gt; Where to start copying from `arrayBuffer`. **Default:** `0`
+- `length` &lt;Integer&gt; How many bytes to copy from `arrayBuffer`. **Default:** `arrayBuffer.length - byteOffset`
+
+When passed a reference to the `.buffer` property of a TypedArray instance, the
+newly created `Buffer` will share the same allocated memory as the TypedArray.
+
+The optional `byteOffset` and `length` arguments specify a memory range within
+the `arrayBuffer` that will be shared by the `Buffer`.
+
+### bufferFrom(buffer)
+
+- `buffer` &lt;Buffer&gt; An existing `Buffer` to copy data from
+
+Copies the passed `buffer` data onto a new `Buffer` instance.
+
+### bufferFrom(string[, encoding])
+
+- `string` &lt;String&gt; A string to encode.
+- `encoding` &lt;String&gt; The encoding of `string`. **Default:** `'utf8'`
+
+Creates a new `Buffer` containing the given JavaScript string `string`. If
+provided, the `encoding` parameter identifies the character encoding of
+`string`.
+
+## See also
+
+- [buffer-alloc](https://github.com/LinusU/buffer-alloc) A ponyfill for `Buffer.alloc`
+- [buffer-alloc-unsafe](https://github.com/LinusU/buffer-alloc-unsafe) A ponyfill for `Buffer.allocUnsafe`
diff --git a/deps/npm/node_modules/buffer-from/test.js b/deps/npm/node_modules/buffer-from/test.js
new file mode 100644
index 0000000000..527620b6cc
--- /dev/null
+++ b/deps/npm/node_modules/buffer-from/test.js
@@ -0,0 +1,12 @@
+var bufferFrom = require('./')
+var assert = require('assert')
+
+assert.equal(bufferFrom([1, 2, 3, 4]).toString('hex'), '01020304')
+
+var arr = new Uint8Array([1, 2, 3, 4])
+assert.equal(bufferFrom(arr.buffer, 1, 2).toString('hex'), '0203')
+
+assert.equal(bufferFrom('test', 'utf8').toString('hex'), '74657374')
+
+var buf = bufferFrom('test')
+assert.equal(bufferFrom(buf).toString('hex'), '74657374')
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json b/deps/npm/node_modules/builtin-modules/builtin-modules.json
index 72670f6bf5..72670f6bf5 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/builtin-modules.json
+++ b/deps/npm/node_modules/builtin-modules/builtin-modules.json
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js b/deps/npm/node_modules/builtin-modules/index.js
index 9ef35ab069..9ef35ab069 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/index.js
+++ b/deps/npm/node_modules/builtin-modules/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/license b/deps/npm/node_modules/builtin-modules/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/license
+++ b/deps/npm/node_modules/builtin-modules/license
diff --git a/deps/npm/node_modules/builtin-modules/package.json b/deps/npm/node_modules/builtin-modules/package.json
new file mode 100644
index 0000000000..f5a40cac56
--- /dev/null
+++ b/deps/npm/node_modules/builtin-modules/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "builtin-modules@^1.0.0",
+ "_id": "builtin-modules@1.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+ "_location": "/builtin-modules",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "builtin-modules@^1.0.0",
+ "name": "builtin-modules",
+ "escapedName": "builtin-modules",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/eslint-plugin-import",
+ "/is-builtin-module"
+ ],
+ "_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+ "_shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f",
+ "_spec": "builtin-modules@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/is-builtin-module",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/builtin-modules/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "List of the Node.js builtin modules",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js",
+ "static.js",
+ "builtin-modules.json"
+ ],
+ "homepage": "https://github.com/sindresorhus/builtin-modules#readme",
+ "keywords": [
+ "builtin",
+ "built-in",
+ "builtins",
+ "node",
+ "modules",
+ "core",
+ "bundled",
+ "list",
+ "array",
+ "names"
+ ],
+ "license": "MIT",
+ "name": "builtin-modules",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/builtin-modules.git"
+ },
+ "scripts": {
+ "make": "node make.js",
+ "test": "xo && ava"
+ },
+ "version": "1.1.1"
+}
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md b/deps/npm/node_modules/builtin-modules/readme.md
index f1894b1896..f1894b1896 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/readme.md
+++ b/deps/npm/node_modules/builtin-modules/readme.md
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js b/deps/npm/node_modules/builtin-modules/static.js
index 9508f8f4ec..9508f8f4ec 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/static.js
+++ b/deps/npm/node_modules/builtin-modules/static.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/.travis.yml b/deps/npm/node_modules/builtins/.travis.yml
index cc4dba29d9..cc4dba29d9 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/.travis.yml
+++ b/deps/npm/node_modules/builtins/.travis.yml
diff --git a/deps/npm/node_modules/builtins/History.md b/deps/npm/node_modules/builtins/History.md
new file mode 100644
index 0000000000..e9837a5068
--- /dev/null
+++ b/deps/npm/node_modules/builtins/History.md
@@ -0,0 +1,39 @@
+
+0.0.7 / 2014-09-01
+==================
+
+ * update .repository
+
+0.0.6 / 2014-09-01
+==================
+
+ * add travis
+ * add test script
+ * add constants
+
+0.0.5 / 2014-06-27
+==================
+
+ * add module
+ * publish to public npm
+
+0.0.4 / 2014-04-25
+==================
+
+ * add timers
+
+0.0.3 / 2014-02-22
+==================
+
+ * add buffer
+
+0.0.2 / 2014-02-11
+==================
+
+ * add assert
+
+0.0.1 / 2014-02-11
+==================
+
+ * add main
+ * initial commit
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/License b/deps/npm/node_modules/builtins/License
index b142e5dc08..b142e5dc08 100644
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/License
+++ b/deps/npm/node_modules/builtins/License
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md b/deps/npm/node_modules/builtins/Readme.md
index 96f4b1f6c4..96f4b1f6c4 100644
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/Readme.md
+++ b/deps/npm/node_modules/builtins/Readme.md
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json b/deps/npm/node_modules/builtins/builtins.json
index 45c0522564..45c0522564 100644
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/builtins.json
+++ b/deps/npm/node_modules/builtins/builtins.json
diff --git a/deps/npm/node_modules/builtins/package.json b/deps/npm/node_modules/builtins/package.json
new file mode 100644
index 0000000000..df5c1b3fd7
--- /dev/null
+++ b/deps/npm/node_modules/builtins/package.json
@@ -0,0 +1,46 @@
+{
+ "_from": "builtins@^1.0.3",
+ "_id": "builtins@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
+ "_location": "/builtins",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "builtins@^1.0.3",
+ "name": "builtins",
+ "escapedName": "builtins",
+ "rawSpec": "^1.0.3",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.3"
+ },
+ "_requiredBy": [
+ "/validate-npm-package-name"
+ ],
+ "_resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "_shasum": "cb94faeb61c8696451db36534e1422f94f0aee88",
+ "_spec": "builtins@^1.0.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-name",
+ "bugs": {
+ "url": "https://github.com/juliangruber/builtins/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "List of node.js builtin modules",
+ "homepage": "https://github.com/juliangruber/builtins#readme",
+ "license": "MIT",
+ "main": "builtins.json",
+ "name": "builtins",
+ "publishConfig": {
+ "registry": "https://registry.npmjs.org"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/juliangruber/builtins.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/test.js b/deps/npm/node_modules/builtins/test.js
index ffbe8389c1..ffbe8389c1 100644
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/test.js
+++ b/deps/npm/node_modules/builtins/test.js
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/LICENSE b/deps/npm/node_modules/byline/LICENSE
index 68094b94af..68094b94af 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/LICENSE
+++ b/deps/npm/node_modules/byline/LICENSE
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/README.md b/deps/npm/node_modules/byline/README.md
index f5a0644095..f5a0644095 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/README.md
+++ b/deps/npm/node_modules/byline/README.md
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/lib/byline.js b/deps/npm/node_modules/byline/lib/byline.js
index 7612632048..7612632048 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/lib/byline.js
+++ b/deps/npm/node_modules/byline/lib/byline.js
diff --git a/deps/npm/node_modules/byline/package.json b/deps/npm/node_modules/byline/package.json
new file mode 100644
index 0000000000..21c319c7b3
--- /dev/null
+++ b/deps/npm/node_modules/byline/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "byline@^5.0.0",
+ "_id": "byline@5.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
+ "_location": "/byline",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "byline@^5.0.0",
+ "name": "byline",
+ "escapedName": "byline",
+ "rawSpec": "^5.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.0.0"
+ },
+ "_requiredBy": [
+ "/npm-lifecycle"
+ ],
+ "_resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
+ "_shasum": "741c5216468eadc457b03410118ad77de8c1ddb1",
+ "_spec": "byline@^5.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-lifecycle",
+ "author": {
+ "name": "John Hewson"
+ },
+ "bugs": {
+ "url": "https://github.com/jahewson/node-byline/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "simple line-by-line stream reader",
+ "devDependencies": {
+ "mocha": "~2.1.0",
+ "request": "~2.27.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/jahewson/node-byline",
+ "license": "MIT",
+ "main": "./lib/byline.js",
+ "name": "byline",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jahewson/node-byline.git"
+ },
+ "scripts": {
+ "test": "mocha -R spec --timeout 60000"
+ },
+ "version": "5.0.0"
+}
diff --git a/deps/npm/node_modules/byte-size/LICENSE b/deps/npm/node_modules/byte-size/LICENSE
new file mode 100644
index 0000000000..b95c652e2b
--- /dev/null
+++ b/deps/npm/node_modules/byte-size/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014-18 Lloyd Brookes <75pound@gmail.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/byte-size/README.hbs b/deps/npm/node_modules/byte-size/README.hbs
new file mode 100644
index 0000000000..ebf5101b37
--- /dev/null
+++ b/deps/npm/node_modules/byte-size/README.hbs
@@ -0,0 +1,12 @@
+[![view on npm](https://img.shields.io/npm/v/byte-size.svg)](https://www.npmjs.org/package/byte-size)
+[![npm module downloads](https://img.shields.io/npm/dt/byte-size.svg)](https://www.npmjs.org/package/byte-size)
+[![Build Status](https://travis-ci.org/75lb/byte-size.svg?branch=master)](https://travis-ci.org/75lb/byte-size)
+[![Coverage Status](https://coveralls.io/repos/github/75lb/byte-size/badge.svg?branch=master)](https://coveralls.io/github/75lb/byte-size?branch=master)
+[![Dependency Status](https://david-dm.org/75lb/byte-size.svg)](https://david-dm.org/75lb/byte-size)
+[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
+
+{{>main}}
+
+* * *
+
+&copy; 2014-18 Lloyd Brookes \<75pound@gmail.com\>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).
diff --git a/deps/npm/node_modules/byte-size/README.md b/deps/npm/node_modules/byte-size/README.md
new file mode 100644
index 0000000000..768f21d347
--- /dev/null
+++ b/deps/npm/node_modules/byte-size/README.md
@@ -0,0 +1,105 @@
+[![view on npm](https://img.shields.io/npm/v/byte-size.svg)](https://www.npmjs.org/package/byte-size)
+[![npm module downloads](https://img.shields.io/npm/dt/byte-size.svg)](https://www.npmjs.org/package/byte-size)
+[![Build Status](https://travis-ci.org/75lb/byte-size.svg?branch=master)](https://travis-ci.org/75lb/byte-size)
+[![Coverage Status](https://coveralls.io/repos/github/75lb/byte-size/badge.svg?branch=master)](https://coveralls.io/github/75lb/byte-size?branch=master)
+[![Dependency Status](https://david-dm.org/75lb/byte-size.svg)](https://david-dm.org/75lb/byte-size)
+[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg)](https://github.com/feross/standard)
+
+<a name="module_byte-size"></a>
+
+## byte-size
+Convert a bytes value to a more human-readable format. Choose between [metric or IEC units](https://en.wikipedia.org/wiki/Gigabyte), summarised below.
+
+Value | Metric
+----- | -------------
+1000 | kB kilobyte
+1000^2 | MB megabyte
+1000^3 | GB gigabyte
+1000^4 | TB terabyte
+1000^5 | PB petabyte
+1000^6 | EB exabyte
+1000^7 | ZB zettabyte
+1000^8 | YB yottabyte
+
+Value | IEC
+----- | ------------
+1024 | KiB kibibyte
+1024^2 | MiB mebibyte
+1024^3 | GiB gibibyte
+1024^4 | TiB tebibyte
+1024^5 | PiB pebibyte
+1024^6 | EiB exbibyte
+1024^7 | ZiB zebibyte
+1024^8 | YiB yobibyte
+
+Value | Metric (octet)
+----- | -------------
+1000 | ko kilooctet
+1000^2 | Mo megaoctet
+1000^3 | Go gigaoctet
+1000^4 | To teraoctet
+1000^5 | Po petaoctet
+1000^6 | Eo exaoctet
+1000^7 | Zo zettaoctet
+1000^8 | Yo yottaoctet
+
+Value | IEC (octet)
+----- | ------------
+1024 | Kio kilooctet
+1024^2 | Mio mebioctet
+1024^3 | Gio gibioctet
+1024^4 | Tio tebioctet
+1024^5 | Pio pebioctet
+1024^6 | Eio exbioctet
+1024^7 | Zio zebioctet
+1024^8 | Yio yobioctet
+
+**Example**
+```js
+const byteSize = require('byte-size')
+```
+<a name="exp_module_byte-size--byteSize"></a>
+
+### byteSize(bytes, [options]) ā‡’ <code>Object</code> ā
+**Kind**: Exported function
+
+| Param | Type | Default | Description |
+| --- | --- | --- | --- |
+| bytes | <code>number</code> | | the bytes value to convert. |
+| [options] | <code>object</code> | | optional config. |
+| [options.precision] | <code>number</code> | <code>1</code> | number of decimal places. |
+| [options.units] | <code>string</code> | <code>&quot;metric&quot;</code> | select `'metric'`, `'iec'`, `'metric_octet'` or `'iec_octet'` units. |
+
+**Example**
+```js
+> const byteSize = require('byte-size')
+
+> byteSize(1580)
+{ value: '1.6', unit: 'kB' }
+
+> byteSize(1580, { units: 'iec' })
+{ value: '1.5', unit: 'KiB' }
+
+> byteSize(1580, { units: 'iec', precision: 3 })
+{ value: '1.543', unit: 'KiB' }
+
+> byteSize(1580, { units: 'iec', precision: 0 })
+{ value: '2', unit: 'KiB' }
+
+> byteSize(1580, { units: 'metric_octet' })
+{ value: '1.6', unit: 'ko' }
+
+> byteSize(1580, { units: 'iec_octet' })
+{ value: '1.5', unit: 'Kio' }
+
+> byteSize(1580, { units: 'iec_octet' }).toString()
+'1.5 Kio'
+
+> const { value, unit } = byteSize(1580, { units: 'iec_octet' })
+> `${value} ${unit}`
+'1.5 Kio'
+```
+
+* * *
+
+&copy; 2014-18 Lloyd Brookes \<75pound@gmail.com\>. Documented by [jsdoc-to-markdown](https://github.com/jsdoc2md/jsdoc-to-markdown).
diff --git a/deps/npm/node_modules/byte-size/index.js b/deps/npm/node_modules/byte-size/index.js
new file mode 100644
index 0000000000..ec1a029389
--- /dev/null
+++ b/deps/npm/node_modules/byte-size/index.js
@@ -0,0 +1,143 @@
+'use strict'
+
+/**
+ * Convert a bytes value to a more human-readable format. Choose between [metric or IEC units](https://en.wikipedia.org/wiki/Gigabyte), summarised below.
+ *
+ * Value | Metric
+ * ----- | -------------
+ * 1000 | kB kilobyte
+ * 1000^2 | MB megabyte
+ * 1000^3 | GB gigabyte
+ * 1000^4 | TB terabyte
+ * 1000^5 | PB petabyte
+ * 1000^6 | EB exabyte
+ * 1000^7 | ZB zettabyte
+ * 1000^8 | YB yottabyte
+ *
+ * Value | IEC
+ * ----- | ------------
+ * 1024 | KiB kibibyte
+ * 1024^2 | MiB mebibyte
+ * 1024^3 | GiB gibibyte
+ * 1024^4 | TiB tebibyte
+ * 1024^5 | PiB pebibyte
+ * 1024^6 | EiB exbibyte
+ * 1024^7 | ZiB zebibyte
+ * 1024^8 | YiB yobibyte
+ *
+ * Value | Metric (octet)
+ * ----- | -------------
+ * 1000 | ko kilooctet
+ * 1000^2 | Mo megaoctet
+ * 1000^3 | Go gigaoctet
+ * 1000^4 | To teraoctet
+ * 1000^5 | Po petaoctet
+ * 1000^6 | Eo exaoctet
+ * 1000^7 | Zo zettaoctet
+ * 1000^8 | Yo yottaoctet
+ *
+ * Value | IEC (octet)
+ * ----- | ------------
+ * 1024 | Kio kilooctet
+ * 1024^2 | Mio mebioctet
+ * 1024^3 | Gio gibioctet
+ * 1024^4 | Tio tebioctet
+ * 1024^5 | Pio pebioctet
+ * 1024^6 | Eio exbioctet
+ * 1024^7 | Zio zebioctet
+ * 1024^8 | Yio yobioctet
+ *
+ * @module byte-size
+ * @example
+ * ```js
+ * const byteSize = require('byte-size')
+ * ```
+ */
+module.exports = byteSize
+
+class ByteSize {
+ constructor (bytes, options) {
+ options = options || {}
+ options.units = options.units || 'metric'
+ options.precision = typeof options.precision === 'undefined' ? 1 : options.precision
+
+ const table = [
+ { expFrom: 0, expTo: 1, metric: 'B', iec: 'B', metric_octet: 'o', iec_octet: 'o' },
+ { expFrom: 1, expTo: 2, metric: 'kB', iec: 'KiB', metric_octet: 'ko', iec_octet: 'Kio' },
+ { expFrom: 2, expTo: 3, metric: 'MB', iec: 'MiB', metric_octet: 'Mo', iec_octet: 'Mio' },
+ { expFrom: 3, expTo: 4, metric: 'GB', iec: 'GiB', metric_octet: 'Go', iec_octet: 'Gio' },
+ { expFrom: 4, expTo: 5, metric: 'TB', iec: 'TiB', metric_octet: 'To', iec_octet: 'Tio' },
+ { expFrom: 5, expTo: 6, metric: 'PB', iec: 'PiB', metric_octet: 'Po', iec_octet: 'Pio' },
+ { expFrom: 6, expTo: 7, metric: 'EB', iec: 'EiB', metric_octet: 'Eo', iec_octet: 'Eio' },
+ { expFrom: 7, expTo: 8, metric: 'ZB', iec: 'ZiB', metric_octet: 'Zo', iec_octet: 'Zio' },
+ { expFrom: 8, expTo: 9, metric: 'YB', iec: 'YiB', metric_octet: 'Yo', iec_octet: 'Yio' }
+ ]
+
+ const base = options.units === 'metric' || options.units === 'metric_octet' ? 1000 : 1024
+
+ for (let i = 0; i < table.length; i++) {
+ const lower = Math.pow(base, table[i].expFrom)
+ const upper = Math.pow(base, table[i].expTo)
+ if (bytes >= lower && bytes < upper) {
+ const units = table[i][options.units]
+ if (i === 0) {
+ this.value = String(bytes)
+ this.unit = units
+ return
+ } else {
+ this.value = (bytes / lower).toFixed(options.precision)
+ this.unit = units
+ return
+ }
+ }
+ }
+
+ this.value = String(bytes)
+ this.unit = ''
+ }
+
+ toString () {
+ return `${this.value} ${this.unit}`.trim()
+ }
+}
+
+/**
+ * @param {number} - the bytes value to convert.
+ * @param [options] {object} - optional config.
+ * @param [options.precision=1] {number} - number of decimal places.
+ * @param [options.units=metric] {string} - select `'metric'`, `'iec'`, `'metric_octet'` or `'iec_octet'` units.
+ * @returns {{ value: string, unit: string}}
+ * @alias module:byte-size
+ * @example
+ * ```js
+ * > const byteSize = require('byte-size')
+ *
+ * > byteSize(1580)
+ * { value: '1.6', unit: 'kB' }
+ *
+ * > byteSize(1580, { units: 'iec' })
+ * { value: '1.5', unit: 'KiB' }
+ *
+ * > byteSize(1580, { units: 'iec', precision: 3 })
+ * { value: '1.543', unit: 'KiB' }
+ *
+ * > byteSize(1580, { units: 'iec', precision: 0 })
+ * { value: '2', unit: 'KiB' }
+ *
+ * > byteSize(1580, { units: 'metric_octet' })
+ * { value: '1.6', unit: 'ko' }
+ *
+ * > byteSize(1580, { units: 'iec_octet' })
+ * { value: '1.5', unit: 'Kio' }
+ *
+ * > byteSize(1580, { units: 'iec_octet' }).toString()
+ * '1.5 Kio'
+ *
+ * > const { value, unit } = byteSize(1580, { units: 'iec_octet' })
+ * > `${value} ${unit}`
+ * '1.5 Kio'
+ * ```
+ */
+function byteSize (bytes, options) {
+ return new ByteSize(bytes, options)
+}
diff --git a/deps/npm/node_modules/byte-size/package.json b/deps/npm/node_modules/byte-size/package.json
new file mode 100644
index 0000000000..f69fc683f3
--- /dev/null
+++ b/deps/npm/node_modules/byte-size/package.json
@@ -0,0 +1,76 @@
+{
+ "_args": [
+ [
+ "byte-size@4.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "byte-size@4.0.3",
+ "_id": "byte-size@4.0.3",
+ "_inBundle": false,
+ "_integrity": "sha512-JGC3EV2bCzJH/ENSh3afyJrH4vwxbHTuO5ljLoI5+2iJOcEpMgP8T782jH9b5qGxf2mSUIp1lfGnfKNrRHpvVg==",
+ "_location": "/byte-size",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "byte-size@4.0.3",
+ "name": "byte-size",
+ "escapedName": "byte-size",
+ "rawSpec": "4.0.3",
+ "saveSpec": null,
+ "fetchSpec": "4.0.3"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/byte-size/-/byte-size-4.0.3.tgz",
+ "_spec": "4.0.3",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Lloyd Brookes",
+ "email": "75pound@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/75lb/byte-size/issues"
+ },
+ "contributors": [
+ {
+ "name": "Raul Perez",
+ "email": "repejota@gmail.com",
+ "url": "http://repejota.com"
+ }
+ ],
+ "description": "Convert a bytes (and octets) value to a more human-readable format. Choose between metric or IEC units.",
+ "devDependencies": {
+ "coveralls": "^3.0.1",
+ "jsdoc-to-markdown": "^4.0.1",
+ "test-runner": "^0.5.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/75lb/byte-size#readme",
+ "keywords": [
+ "convert",
+ "bytes",
+ "octet",
+ "size",
+ "human",
+ "readable",
+ "metric",
+ "IEC"
+ ],
+ "license": "MIT",
+ "name": "byte-size",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/75lb/byte-size.git"
+ },
+ "scripts": {
+ "cover": "istanbul cover ./node_modules/.bin/test-runner test.js && cat coverage/lcov.info | ./node_modules/.bin/coveralls",
+ "docs": "jsdoc2md -t README.hbs index.js > README.md; echo",
+ "test": "test-runner test.js"
+ },
+ "version": "4.0.3"
+}
diff --git a/deps/npm/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/cacache/CHANGELOG.md
index 0903d1d578..f04bdea0c4 100644
--- a/deps/npm/node_modules/cacache/CHANGELOG.md
+++ b/deps/npm/node_modules/cacache/CHANGELOG.md
@@ -2,6 +2,66 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="11.0.2"></a>
+## [11.0.2](https://github.com/zkat/cacache/compare/v11.0.1...v11.0.2) (2018-05-07)
+
+
+### Bug Fixes
+
+* **verify:** size param no longer lost in a verify ([#131](https://github.com/zkat/cacache/issues/131)) ([c614a19](https://github.com/zkat/cacache/commit/c614a19)), closes [#130](https://github.com/zkat/cacache/issues/130)
+
+
+
+<a name="11.0.1"></a>
+## [11.0.1](https://github.com/zkat/cacache/compare/v11.0.0...v11.0.1) (2018-04-10)
+
+
+
+<a name="11.0.0"></a>
+# [11.0.0](https://github.com/zkat/cacache/compare/v10.0.4...v11.0.0) (2018-04-09)
+
+
+### Features
+
+* **opts:** use figgy-pudding for opts ([#128](https://github.com/zkat/cacache/issues/128)) ([33d4eed](https://github.com/zkat/cacache/commit/33d4eed))
+
+
+### meta
+
+* drop support for node@4 ([529f347](https://github.com/zkat/cacache/commit/529f347))
+
+
+### BREAKING CHANGES
+
+* node@4 is no longer supported
+
+
+
+<a name="10.0.4"></a>
+## [10.0.4](https://github.com/zkat/cacache/compare/v10.0.3...v10.0.4) (2018-02-16)
+
+
+
+<a name="10.0.3"></a>
+## [10.0.3](https://github.com/zkat/cacache/compare/v10.0.2...v10.0.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/zkat/cacache/commit/fa918f5))
+
+
+
+<a name="10.0.2"></a>
+## [10.0.2](https://github.com/zkat/cacache/compare/v10.0.1...v10.0.2) (2018-01-07)
+
+
+### Bug Fixes
+
+* **ls:** deleted entries could cause a premature stream EOF ([347dc36](https://github.com/zkat/cacache/commit/347dc36))
+
+
+
<a name="10.0.1"></a>
## [10.0.1](https://github.com/zkat/cacache/compare/v10.0.0...v10.0.1) (2017-11-15)
diff --git a/deps/npm/node_modules/cacache/README.md b/deps/npm/node_modules/cacache/README.md
index ea69b8f540..4b284588a6 100644
--- a/deps/npm/node_modules/cacache/README.md
+++ b/deps/npm/node_modules/cacache/README.md
@@ -6,7 +6,7 @@ concurrency, and it will never give you corrupted data, even if cache files
get corrupted or manipulated.
It was originally written to be used as [npm](https://npm.im)'s local cache, but
-can just as easily be used on its own
+can just as easily be used on its own.
_Translations: [espaƱol](README.es.md)_
@@ -117,7 +117,7 @@ translations. To use the English API as documented in this README, use
`require('cacache')`, but may change in the future.
cacache also supports other languages! You can find the list of currently
-supported ones my looking in `./locales` in the source directory. You can use
+supported ones by looking in `./locales` in the source directory. You can use
the API in that language with `require('cacache/<lang>')`.
Want to add support for a new language? Please go ahead! You should be able to
diff --git a/deps/npm/node_modules/cacache/get.js b/deps/npm/node_modules/cacache/get.js
index 2bb3afa528..7bafe128e4 100644
--- a/deps/npm/node_modules/cacache/get.js
+++ b/deps/npm/node_modules/cacache/get.js
@@ -2,6 +2,7 @@
const BB = require('bluebird')
+const figgyPudding = require('figgy-pudding')
const fs = require('fs')
const index = require('./lib/entry-index')
const memo = require('./lib/memoization')
@@ -10,6 +11,12 @@ const pipeline = require('mississippi').pipeline
const read = require('./lib/content/read')
const through = require('mississippi').through
+const GetOpts = figgyPudding({
+ integrity: {},
+ memoize: {},
+ size: {}
+})
+
module.exports = function get (cache, key, opts) {
return getData(false, cache, key, opts)
}
@@ -17,11 +24,11 @@ module.exports.byDigest = function getByDigest (cache, digest, opts) {
return getData(true, cache, digest, opts)
}
function getData (byDigest, cache, key, opts) {
- opts = opts || {}
+ opts = GetOpts(opts)
const memoized = (
byDigest
- ? memo.get.byDigest(cache, key, opts)
- : memo.get(cache, key, opts)
+ ? memo.get.byDigest(cache, key, opts)
+ : memo.get(cache, key, opts)
)
if (memoized && opts.memoize !== false) {
return BB.resolve(byDigest ? memoized : {
@@ -58,7 +65,7 @@ function getData (byDigest, cache, key, opts) {
module.exports.stream = getStream
function getStream (cache, key, opts) {
- opts = opts || {}
+ opts = GetOpts(opts)
let stream = through()
const memoized = memo.get(cache, key, opts)
if (memoized && opts.memoize !== false) {
@@ -91,7 +98,6 @@ function getStream (cache, key, opts) {
} else {
memoStream = through()
}
- opts.size = opts.size == null ? entry.size : opts.size
stream.emit('metadata', entry.metadata)
stream.emit('integrity', entry.integrity)
stream.emit('size', entry.size)
@@ -101,7 +107,9 @@ function getStream (cache, key, opts) {
ev === 'size' && cb(entry.size)
})
pipe(
- read.readStream(cache, entry.integrity, opts),
+ read.readStream(cache, entry.integrity, opts.concat({
+ size: opts.size == null ? entry.size : opts.size
+ })),
memoStream,
stream
)
@@ -111,7 +119,7 @@ function getStream (cache, key, opts) {
module.exports.stream.byDigest = getStreamDigest
function getStreamDigest (cache, integrity, opts) {
- opts = opts || {}
+ opts = GetOpts(opts)
const memoized = memo.get.byDigest(cache, integrity, opts)
if (memoized && opts.memoize !== false) {
const stream = through()
@@ -143,7 +151,7 @@ function getStreamDigest (cache, integrity, opts) {
module.exports.info = info
function info (cache, key, opts) {
- opts = opts || {}
+ opts = GetOpts(opts)
const memoized = memo.get(cache, key, opts)
if (memoized && opts.memoize !== false) {
return BB.resolve(memoized.entry)
@@ -161,7 +169,7 @@ module.exports.copy.byDigest = function cpDigest (cache, digest, dest, opts) {
return copy(true, cache, digest, dest, opts)
}
function copy (byDigest, cache, key, dest, opts) {
- opts = opts || {}
+ opts = GetOpts(opts)
if (read.copy) {
return (
byDigest ? BB.resolve(null) : index.find(cache, key, opts)
@@ -180,11 +188,11 @@ function copy (byDigest, cache, key, dest, opts) {
} else {
return getData(byDigest, cache, key, opts).then(res => {
return fs.writeFileAsync(dest, byDigest ? res : res.data)
- .then(() => byDigest ? key : {
- metadata: res.metadata,
- size: res.size,
- integrity: res.integrity
- })
+ .then(() => byDigest ? key : {
+ metadata: res.metadata,
+ size: res.size,
+ integrity: res.integrity
+ })
})
}
}
diff --git a/deps/npm/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/cacache/lib/content/read.js
index b09ad5cb40..5c1a6f2f29 100644
--- a/deps/npm/node_modules/cacache/lib/content/read.js
+++ b/deps/npm/node_modules/cacache/lib/content/read.js
@@ -3,6 +3,7 @@
const BB = require('bluebird')
const contentPath = require('./path')
+const figgyPudding = require('figgy-pudding')
const fs = require('graceful-fs')
const PassThrough = require('stream').PassThrough
const pipe = BB.promisify(require('mississippi').pipe)
@@ -11,9 +12,13 @@ const Y = require('../util/y.js')
BB.promisifyAll(fs)
+const ReadOpts = figgyPudding({
+ size: {}
+})
+
module.exports = read
function read (cache, integrity, opts) {
- opts = opts || {}
+ opts = ReadOpts(opts)
return pickContentSri(cache, integrity).then(content => {
const sri = content.sri
const cpath = contentPath(cache, sri)
@@ -32,7 +37,7 @@ function read (cache, integrity, opts) {
module.exports.stream = readStream
module.exports.readStream = readStream
function readStream (cache, integrity, opts) {
- opts = opts || {}
+ opts = ReadOpts(opts)
const stream = new PassThrough()
pickContentSri(
cache, integrity
@@ -56,7 +61,7 @@ if (fs.copyFile) {
module.exports.copy = copy
}
function copy (cache, integrity, dest, opts) {
- opts = opts || {}
+ opts = ReadOpts(opts)
return pickContentSri(cache, integrity).then(content => {
const sri = content.sri
const cpath = contentPath(cache, sri)
@@ -68,17 +73,17 @@ module.exports.hasContent = hasContent
function hasContent (cache, integrity) {
if (!integrity) { return BB.resolve(false) }
return pickContentSri(cache, integrity)
- .catch({code: 'ENOENT'}, () => false)
- .catch({code: 'EPERM'}, err => {
- if (process.platform !== 'win32') {
- throw err
- } else {
- return false
- }
- }).then(content => {
- if (!content.sri) return false
- return ({ sri: content.sri, size: content.stat.size })
- })
+ .catch({code: 'ENOENT'}, () => false)
+ .catch({code: 'EPERM'}, err => {
+ if (process.platform !== 'win32') {
+ throw err
+ } else {
+ return false
+ }
+ }).then(content => {
+ if (!content.sri) return false
+ return ({ sri: content.sri, size: content.stat.size })
+ })
}
module.exports._pickContentSri = pickContentSri
@@ -95,6 +100,16 @@ function pickContentSri (cache, integrity) {
return BB.any(sri[sri.pickAlgorithm()].map(meta => {
return pickContentSri(cache, meta)
}))
+ .catch(err => {
+ if ([].some.call(err, e => e.code === 'ENOENT')) {
+ throw Object.assign(
+ new Error('No matching content found for ' + sri.toString()),
+ {code: 'ENOENT'}
+ )
+ } else {
+ throw err[0]
+ }
+ })
}
}
diff --git a/deps/npm/node_modules/cacache/lib/content/write.js b/deps/npm/node_modules/cacache/lib/content/write.js
index a79ae92902..c71363413c 100644
--- a/deps/npm/node_modules/cacache/lib/content/write.js
+++ b/deps/npm/node_modules/cacache/lib/content/write.js
@@ -28,7 +28,9 @@ function write (cache, data, opts) {
if (typeof opts.size === 'number' && data.length !== opts.size) {
return BB.reject(sizeError(opts.size, data.length))
}
- const sri = ssri.fromData(data, opts)
+ const sri = ssri.fromData(data, {
+ algorithms: opts.algorithms
+ })
if (opts.integrity && !ssri.checkData(data, opts.integrity, opts)) {
return BB.reject(checksumError(opts.integrity, sri))
}
diff --git a/deps/npm/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/cacache/lib/entry-index.js
index face0fe79c..43fa7b95b1 100644
--- a/deps/npm/node_modules/cacache/lib/entry-index.js
+++ b/deps/npm/node_modules/cacache/lib/entry-index.js
@@ -4,6 +4,7 @@ const BB = require('bluebird')
const contentPath = require('./content/path')
const crypto = require('crypto')
+const figgyPudding = require('figgy-pudding')
const fixOwner = require('./util/fix-owner')
const fs = require('graceful-fs')
const hashToSegments = require('./util/hash-to-segments')
@@ -29,9 +30,16 @@ module.exports.NotFoundError = class NotFoundError extends Error {
}
}
+const IndexOpts = figgyPudding({
+ metadata: {},
+ size: {},
+ uid: {},
+ gid: {}
+})
+
module.exports.insert = insert
function insert (cache, key, integrity, opts) {
- opts = opts || {}
+ opts = IndexOpts(opts)
const bucket = bucketPath(cache, key)
const entry = {
key,
@@ -116,9 +124,10 @@ function lsStream (cache) {
}, new Map())
return getKeyToEntry.then(reduced => {
- return Array.from(reduced.values()).map(
- entry => stream.push(formatEntry(cache, entry))
- )
+ for (let entry of reduced.values()) {
+ const formatted = formatEntry(cache, entry)
+ formatted && stream.push(formatted)
+ }
}).catch({code: 'ENOENT'}, nop)
})
})
@@ -196,9 +205,9 @@ function hashEntry (str) {
function hash (str, digest) {
return crypto
- .createHash(digest)
- .update(str)
- .digest('hex')
+ .createHash(digest)
+ .update(str)
+ .digest('hex')
}
function formatEntry (cache, entry) {
@@ -216,8 +225,8 @@ function formatEntry (cache, entry) {
function readdirOrEmpty (dir) {
return readdirAsync(dir)
- .catch({code: 'ENOENT'}, () => [])
- .catch({code: 'ENOTDIR'}, () => [])
+ .catch({code: 'ENOENT'}, () => [])
+ .catch({code: 'ENOTDIR'}, () => [])
}
function nop () {
diff --git a/deps/npm/node_modules/cacache/lib/util/tmp.js b/deps/npm/node_modules/cacache/lib/util/tmp.js
index 4fc4512cc8..65fc4b297e 100644
--- a/deps/npm/node_modules/cacache/lib/util/tmp.js
+++ b/deps/npm/node_modules/cacache/lib/util/tmp.js
@@ -2,14 +2,21 @@
const BB = require('bluebird')
+const figgyPudding = require('figgy-pudding')
const fixOwner = require('./fix-owner')
const path = require('path')
const rimraf = BB.promisify(require('rimraf'))
const uniqueFilename = require('unique-filename')
+const TmpOpts = figgyPudding({
+ tmpPrefix: {},
+ uid: {},
+ gid: {}
+})
+
module.exports.mkdir = mktmpdir
function mktmpdir (cache, opts) {
- opts = opts || {}
+ opts = TmpOpts(opts)
const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)
return fixOwner.mkdirfix(tmpTarget, opts.uid, opts.gid).then(() => {
return tmpTarget
@@ -22,11 +29,12 @@ function withTmp (cache, opts, cb) {
cb = opts
opts = null
}
- opts = opts || {}
+ opts = TmpOpts(opts)
return BB.using(mktmpdir(cache, opts).disposer(rimraf), cb)
}
module.exports.fix = fixtmpdir
function fixtmpdir (cache, opts) {
+ opts = TmpOpts(opts)
return fixOwner(path.join(cache, 'tmp'), opts.uid, opts.gid)
}
diff --git a/deps/npm/node_modules/cacache/lib/verify.js b/deps/npm/node_modules/cacache/lib/verify.js
index 6a01004c97..3468bc6b8e 100644
--- a/deps/npm/node_modules/cacache/lib/verify.js
+++ b/deps/npm/node_modules/cacache/lib/verify.js
@@ -3,6 +3,7 @@
const BB = require('bluebird')
const contentPath = require('./content/path')
+const figgyPudding = require('figgy-pudding')
const finished = BB.promisify(require('mississippi').finished)
const fixOwner = require('./util/fix-owner')
const fs = require('graceful-fs')
@@ -14,10 +15,22 @@ const ssri = require('ssri')
BB.promisifyAll(fs)
+const VerifyOpts = figgyPudding({
+ concurrency: {
+ default: 20
+ },
+ filter: {},
+ log: {
+ default: { silly () {} }
+ },
+ uid: {},
+ gid: {}
+})
+
module.exports = verify
function verify (cache, opts) {
- opts = opts || {}
- opts.log && opts.log.silly('verify', 'verifying cache at', cache)
+ opts = VerifyOpts(opts)
+ opts.log.silly('verify', 'verifying cache at', cache)
return BB.reduce([
markStartTime,
fixPerms,
@@ -40,7 +53,7 @@ function verify (cache, opts) {
})
}, {}).tap(stats => {
stats.runTime.total = stats.endTime - stats.startTime
- opts.log && opts.log.silly('verify', 'verification finished for', cache, 'in', `${stats.runTime.total}ms`)
+ opts.log.silly('verify', 'verification finished for', cache, 'in', `${stats.runTime.total}ms`)
})
}
@@ -53,7 +66,7 @@ function markEndTime (cache, opts) {
}
function fixPerms (cache, opts) {
- opts.log && opts.log.silly('verify', 'fixing cache permissions')
+ opts.log.silly('verify', 'fixing cache permissions')
return fixOwner.mkdirfix(cache, opts.uid, opts.gid).then(() => {
// TODO - fix file permissions too
return fixOwner.chownr(cache, opts.uid, opts.gid)
@@ -70,11 +83,11 @@ function fixPerms (cache, opts) {
// 5. If content is not marked as live, rimraf it.
//
function garbageCollect (cache, opts) {
- opts.log && opts.log.silly('verify', 'garbage collecting content')
+ opts.log.silly('verify', 'garbage collecting content')
const indexStream = index.lsStream(cache)
const liveContent = new Set()
indexStream.on('data', entry => {
- if (opts && opts.filter && !opts.filter(entry)) { return }
+ if (opts.filter && !opts.filter(entry)) { return }
liveContent.add(entry.integrity.toString())
})
return finished(indexStream).then(() => {
@@ -117,7 +130,7 @@ function garbageCollect (cache, opts) {
})
})
}
- }, {concurrency: opts.concurrency || 20}))
+ }, {concurrency: opts.concurrency}))
})
})
}
@@ -141,7 +154,7 @@ function verifyContent (filepath, sri) {
}
function rebuildIndex (cache, opts) {
- opts.log && opts.log.silly('verify', 'rebuilding index')
+ opts.log.silly('verify', 'rebuilding index')
return index.ls(cache).then(entries => {
const stats = {
missingContent: 0,
@@ -153,7 +166,7 @@ function rebuildIndex (cache, opts) {
if (entries.hasOwnProperty(k)) {
const hashed = index._hashKey(k)
const entry = entries[k]
- const excluded = opts && opts.filter && !opts.filter(entry)
+ const excluded = opts.filter && !opts.filter(entry)
excluded && stats.rejectedEntries++
if (buckets[hashed] && !excluded) {
buckets[hashed].push(entry)
@@ -170,7 +183,7 @@ function rebuildIndex (cache, opts) {
}
return BB.map(Object.keys(buckets), key => {
return rebuildBucket(cache, buckets[key], stats, opts)
- }, {concurrency: opts.concurrency || 20}).then(() => stats)
+ }, {concurrency: opts.concurrency}).then(() => stats)
})
}
@@ -184,7 +197,8 @@ function rebuildBucket (cache, bucket, stats, opts) {
return index.insert(cache, entry.key, entry.integrity, {
uid: opts.uid,
gid: opts.gid,
- metadata: entry.metadata
+ metadata: entry.metadata,
+ size: entry.size
}).then(() => { stats.totalEntries++ })
}).catch({code: 'ENOENT'}, () => {
stats.rejectedEntries++
@@ -195,13 +209,13 @@ function rebuildBucket (cache, bucket, stats, opts) {
}
function cleanTmp (cache, opts) {
- opts.log && opts.log.silly('verify', 'cleaning tmp directory')
+ opts.log.silly('verify', 'cleaning tmp directory')
return rimraf(path.join(cache, 'tmp'))
}
function writeVerifile (cache, opts) {
const verifile = path.join(cache, '_lastverified')
- opts.log && opts.log.silly('verify', 'writing verifile to ' + verifile)
+ opts.log.silly('verify', 'writing verifile to ' + verifile)
return fs.writeFileAsync(verifile, '' + (+(new Date())))
}
diff --git a/deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md
deleted file mode 100644
index 7ae2b000dc..0000000000
--- a/deps/npm/node_modules/cacache/node_modules/ssri/CHANGELOG.md
+++ /dev/null
@@ -1,190 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="5.0.0"></a>
-# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23)
-
-
-### Features
-
-* **license:** relicense to ISC (#9) ([c82983a](https://github.com/zkat/ssri/commit/c82983a))
-
-
-### BREAKING CHANGES
-
-* **license:** the license has been changed from CC0-1.0 to ISC.
-
-
-
-<a name="4.1.6"></a>
-## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07)
-
-
-### Bug Fixes
-
-* **checkStream:** make sure to pass all opts through ([0b1bcbe](https://github.com/zkat/ssri/commit/0b1bcbe))
-
-
-
-<a name="4.1.5"></a>
-## [4.1.5](https://github.com/zkat/ssri/compare/v4.1.4...v4.1.5) (2017-06-05)
-
-
-### Bug Fixes
-
-* **integrityStream:** stop crashing if opts.algorithms and opts.integrity have an algo mismatch ([fb1293e](https://github.com/zkat/ssri/commit/fb1293e))
-
-
-
-<a name="4.1.4"></a>
-## [4.1.4](https://github.com/zkat/ssri/compare/v4.1.3...v4.1.4) (2017-05-31)
-
-
-### Bug Fixes
-
-* **node:** older versions of node[@4](https://github.com/4) do not support base64buffer string parsing ([513df4e](https://github.com/zkat/ssri/commit/513df4e))
-
-
-
-<a name="4.1.3"></a>
-## [4.1.3](https://github.com/zkat/ssri/compare/v4.1.2...v4.1.3) (2017-05-24)
-
-
-### Bug Fixes
-
-* **check:** handle various bad hash corner cases better ([c2c262b](https://github.com/zkat/ssri/commit/c2c262b))
-
-
-
-<a name="4.1.2"></a>
-## [4.1.2](https://github.com/zkat/ssri/compare/v4.1.1...v4.1.2) (2017-04-18)
-
-
-### Bug Fixes
-
-* **stream:** _flush can be called multiple times. use on("end") ([b1c4805](https://github.com/zkat/ssri/commit/b1c4805))
-
-
-
-<a name="4.1.1"></a>
-## [4.1.1](https://github.com/zkat/ssri/compare/v4.1.0...v4.1.1) (2017-04-12)
-
-
-### Bug Fixes
-
-* **pickAlgorithm:** error if pickAlgorithm() is used in an empty Integrity ([fab470e](https://github.com/zkat/ssri/commit/fab470e))
-
-
-
-<a name="4.1.0"></a>
-# [4.1.0](https://github.com/zkat/ssri/compare/v4.0.0...v4.1.0) (2017-04-07)
-
-
-### Features
-
-* adding ssri.create for a crypto style interface (#2) ([96f52ad](https://github.com/zkat/ssri/commit/96f52ad))
-
-
-
-<a name="4.0.0"></a>
-# [4.0.0](https://github.com/zkat/ssri/compare/v3.0.2...v4.0.0) (2017-04-03)
-
-
-### Bug Fixes
-
-* **integrity:** should have changed the error code before. oops ([8381afa](https://github.com/zkat/ssri/commit/8381afa))
-
-
-### BREAKING CHANGES
-
-* **integrity:** EBADCHECKSUM -> EINTEGRITY for verification errors
-
-
-
-<a name="3.0.2"></a>
-## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03)
-
-
-
-<a name="3.0.1"></a>
-## [3.0.1](https://github.com/zkat/ssri/compare/v3.0.0...v3.0.1) (2017-04-03)
-
-
-### Bug Fixes
-
-* **package.json:** really should have these in the keywords because search ([a6ac6d0](https://github.com/zkat/ssri/commit/a6ac6d0))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/zkat/ssri/compare/v2.0.0...v3.0.0) (2017-04-03)
-
-
-### Bug Fixes
-
-* **hashes:** IntegrityMetadata -> Hash ([d04aa1f](https://github.com/zkat/ssri/commit/d04aa1f))
-
-
-### Features
-
-* **check:** return IntegrityMetadata on check success ([2301e74](https://github.com/zkat/ssri/commit/2301e74))
-* **fromHex:** ssri.fromHex to make it easier to generate them from hex valus ([049b89e](https://github.com/zkat/ssri/commit/049b89e))
-* **hex:** utility function for getting hex version of digest ([a9f021c](https://github.com/zkat/ssri/commit/a9f021c))
-* **hexDigest:** added hexDigest method to Integrity objects too ([85208ba](https://github.com/zkat/ssri/commit/85208ba))
-* **integrity:** add .isIntegrity and .isIntegrityMetadata ([1b29e6f](https://github.com/zkat/ssri/commit/1b29e6f))
-* **integrityStream:** new stream that can both generate and check streamed data ([fd23e1b](https://github.com/zkat/ssri/commit/fd23e1b))
-* **parse:** allow parsing straight into a single IntegrityMetadata object ([c8ddf48](https://github.com/zkat/ssri/commit/c8ddf48))
-* **pickAlgorithm:** Intergrity#pickAlgorithm() added ([b97a796](https://github.com/zkat/ssri/commit/b97a796))
-* **size:** calculate and update stream sizes ([02ed1ad](https://github.com/zkat/ssri/commit/02ed1ad))
-
-
-### BREAKING CHANGES
-
-* **hashes:** `.isIntegrityMetadata` is now `.isHash`. Also, any references to `IntegrityMetadata` now refer to `Hash`.
-* **integrityStream:** createCheckerStream has been removed and replaced with a general-purpose integrityStream.
-
-To convert existing createCheckerStream code, move the `sri` argument into `opts.integrity` in integrityStream. All other options should be the same.
-* **check:** `checkData`, `checkStream`, and `createCheckerStream` now yield a whole IntegrityMetadata instance representing the first successful hash match.
-
-
-
-<a name="2.0.0"></a>
-# [2.0.0](https://github.com/zkat/ssri/compare/v1.0.0...v2.0.0) (2017-03-24)
-
-
-### Bug Fixes
-
-* **strict-mode:** make regexes more rigid ([122a32c](https://github.com/zkat/ssri/commit/122a32c))
-
-
-### Features
-
-* **api:** added serialize alias for unparse ([999b421](https://github.com/zkat/ssri/commit/999b421))
-* **concat:** add Integrity#concat() ([cae12c7](https://github.com/zkat/ssri/commit/cae12c7))
-* **pickAlgo:** pick the strongest algorithm provided, by default ([58c18f7](https://github.com/zkat/ssri/commit/58c18f7))
-* **strict-mode:** strict SRI support ([3f0b64c](https://github.com/zkat/ssri/commit/3f0b64c))
-* **stringify:** replaced unparse/serialize with stringify ([4acad30](https://github.com/zkat/ssri/commit/4acad30))
-* **verification:** add opts.pickAlgorithm ([f72e658](https://github.com/zkat/ssri/commit/f72e658))
-
-
-### BREAKING CHANGES
-
-* **pickAlgo:** ssri will prioritize specific hashes now
-* **stringify:** serialize and unparse have been removed. Use ssri.stringify instead.
-* **strict-mode:** functions that accepted an optional `sep` argument now expect `opts.sep`.
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-03-23)
-
-
-### Features
-
-* **api:** implemented initial api ([4fbb16b](https://github.com/zkat/ssri/commit/4fbb16b))
-
-
-### BREAKING CHANGES
-
-* **api:** Initial API established.
diff --git a/deps/npm/node_modules/cacache/node_modules/ssri/README.md b/deps/npm/node_modules/cacache/node_modules/ssri/README.md
deleted file mode 100644
index f2fc035da5..0000000000
--- a/deps/npm/node_modules/cacache/node_modules/ssri/README.md
+++ /dev/null
@@ -1,462 +0,0 @@
-# ssri [![npm version](https://img.shields.io/npm/v/ssri.svg)](https://npm.im/ssri) [![license](https://img.shields.io/npm/l/ssri.svg)](https://npm.im/ssri) [![Travis](https://img.shields.io/travis/zkat/ssri.svg)](https://travis-ci.org/zkat/ssri) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/ssri?svg=true)](https://ci.appveyor.com/project/zkat/ssri) [![Coverage Status](https://coveralls.io/repos/github/zkat/ssri/badge.svg?branch=latest)](https://coveralls.io/github/zkat/ssri?branch=latest)
-
-[`ssri`](https://github.com/zkat/ssri), short for Standard Subresource
-Integrity, is a Node.js utility for parsing, manipulating, serializing,
-generating, and verifying [Subresource
-Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
-
-## Install
-
-`$ npm install --save ssri`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * Parsing & Serializing
- * [`parse`](#parse)
- * [`stringify`](#stringify)
- * [`Integrity#concat`](#integrity-concat)
- * [`Integrity#toString`](#integrity-to-string)
- * [`Integrity#toJSON`](#integrity-to-json)
- * [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
- * [`Integrity#hexDigest`](#integrity-hex-digest)
- * Integrity Generation
- * [`fromHex`](#from-hex)
- * [`fromData`](#from-data)
- * [`fromStream`](#from-stream)
- * [`create`](#create)
- * Integrity Verification
- * [`checkData`](#check-data)
- * [`checkStream`](#check-stream)
- * [`integrityStream`](#integrity-stream)
-
-### Example
-
-```javascript
-const ssri = require('ssri')
-
-const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-// Parsing and serializing
-const parsed = ssri.parse(integrity)
-ssri.stringify(parsed) // === integrity (works on non-Integrity objects)
-parsed.toString() // === integrity
-
-// Async stream functions
-ssri.checkStream(fs.createReadStream('./my-file'), integrity).then(...)
-ssri.fromStream(fs.createReadStream('./my-file')).then(sri => {
- sri.toString() === integrity
-})
-fs.createReadStream('./my-file').pipe(ssri.createCheckerStream(sri))
-
-// Sync data functions
-ssri.fromData(fs.readFileSync('./my-file')) // === parsed
-ssri.checkData(fs.readFileSync('./my-file'), integrity) // => 'sha512'
-```
-
-### Features
-
-* Parses and stringifies SRI strings.
-* Generates SRI strings from raw data or Streams.
-* Strict standard compliance.
-* `?foo` metadata option support.
-* Multiple entries for the same algorithm.
-* Object-based integrity hash manipulation.
-* Small footprint: no dependencies, concise implementation.
-* Full test coverage.
-* Customizable algorithm picker.
-
-### Contributing
-
-The ssri team enthusiastically welcomes contributions and project participation!
-There's a bunch of things you can do if you want to contribute! The [Contributor
-Guide](CONTRIBUTING.md) has all the information you need for everything from
-reporting bugs to contributing entire new features. Please don't hesitate to
-jump in if you'd like to, or even ask us questions if something isn't clear.
-
-### API
-
-#### <a name="parse"></a> `> ssri.parse(sri, [opts]) -> Integrity`
-
-Parses `sri` into an `Integrity` data structure. `sri` can be an integrity
-string, an `Hash`-like with `digest` and `algorithm` fields and an optional
-`options` field, or an `Integrity`-like object. The resulting object will be an
-`Integrity` instance that has this shape:
-
-```javascript
-{
- 'sha1': [{algorithm: 'sha1', digest: 'deadbeef', options: []}],
- 'sha512': [
- {algorithm: 'sha512', digest: 'c0ffee', options: []},
- {algorithm: 'sha512', digest: 'bad1dea', options: ['foo']}
- ],
-}
-```
-
-If `opts.single` is truthy, a single `Hash` object will be returned. That is, a
-single object that looks like `{algorithm, digest, options}`, as opposed to a
-larger object with multiple of these.
-
-If `opts.strict` is truthy, the resulting object will be filtered such that
-it strictly follows the Subresource Integrity spec, throwing away any entries
-with any invalid components. This also means a restricted set of algorithms
-will be used -- the spec limits them to `sha256`, `sha384`, and `sha512`.
-
-Strict mode is recommended if the integrity strings are intended for use in
-browsers, or in other situations where strict adherence to the spec is needed.
-
-##### Example
-
-```javascript
-ssri.parse('sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo') // -> Integrity object
-```
-
-#### <a name="stringify"></a> `> ssri.stringify(sri, [opts]) -> String`
-
-This function is identical to [`Integrity#toString()`](#integrity-to-string),
-except it can be used on _any_ object that [`parse`](#parse) can handle -- that
-is, a string, an `Hash`-like, or an `Integrity`-like.
-
-The `opts.sep` option defines the string to use when joining multiple entries
-together. To be spec-compliant, this _must_ be whitespace. The default is a
-single space (`' '`).
-
-If `opts.strict` is true, the integrity string will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-// Useful for cleaning up input SRI strings:
-ssri.stringify('\n\rsha512-foo\n\t\tsha384-bar')
-// -> 'sha512-foo sha384-bar'
-
-// Hash-like: only a single entry.
-ssri.stringify({
- algorithm: 'sha512',
- digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
- options: ['foo']
-})
-// ->
-// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-// Integrity-like: full multi-entry syntax. Similar to output of `ssri.parse`
-ssri.stringify({
- 'sha512': [
- {
- algorithm: 'sha512',
- digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
- options: ['foo']
- }
- ]
-})
-// ->
-// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-```
-
-#### <a name="integrity-concat"></a> `> Integrity#concat(otherIntegrity, [opts]) -> Integrity`
-
-Concatenates an `Integrity` object with another IntegrityLike, or an integrity
-string.
-
-This is functionally equivalent to concatenating the string format of both
-integrity arguments, and calling [`ssri.parse`](#ssri-parse) on the new string.
-
-If `opts.strict` is true, the new `Integrity` will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-// This will combine the integrity checks for two different versions of
-// your index.js file so you can use a single integrity string and serve
-// either of these to clients, from a single `<script>` tag.
-const desktopIntegrity = ssri.fromData(fs.readFileSync('./index.desktop.js'))
-const mobileIntegrity = ssri.fromData(fs.readFileSync('./index.mobile.js'))
-
-// Note that browsers (and ssri) will succeed as long as ONE of the entries
-// for the *prioritized* algorithm succeeds. That is, in order for this fallback
-// to work, both desktop and mobile *must* use the same `algorithm` values.
-desktopIntegrity.concat(mobileIntegrity)
-```
-
-#### <a name="integrity-to-string"></a> `> Integrity#toString([opts]) -> String`
-
-Returns the string representation of an `Integrity` object. All hash entries
-will be concatenated in the string by `opts.sep`, which defaults to `' '`.
-
-If you want to serialize an object that didn't from from an `ssri` function,
-use [`ssri.stringify()`](#stringify).
-
-If `opts.strict` is true, the integrity string will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-ssri.parse(integrity).toString() === integrity
-```
-
-#### <a name="integrity-to-json"></a> `> Integrity#toJSON() -> String`
-
-Returns the string representation of an `Integrity` object. All hash entries
-will be concatenated in the string by `' '`.
-
-This is a convenience method so you can pass an `Integrity` object directly to `JSON.stringify`.
-For more info check out [toJSON() behavior on mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior).
-
-##### Example
-
-```javascript
-const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo"'
-
-JSON.stringify(ssri.parse(integrity)) === integrity
-```
-
-#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
-
-Returns the "best" algorithm from those available in the integrity object.
-
-If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
-arguments. ssri will prioritize whichever of the two algorithms is returned by
-this function. Note that the function may be called multiple times, and it
-**must** return one of the two algorithms provided. By default, ssri will make
-a best-effort to pick the strongest/most reliable of the given algorithms. It
-may intentionally deprioritize algorithms with known vulnerabilities.
-
-##### Example
-
-```javascript
-ssri.parse('sha1-WEakDigEST sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1').pickAlgorithm() // sha512
-```
-
-#### <a name="integrity-hex-digest"></a> `> Integrity#hexDigest() -> String`
-
-`Integrity` is assumed to be either a single-hash `Integrity` instance, or a
-`Hash` instance. Returns its `digest`, converted to a hex representation of the
-base64 data.
-
-##### Example
-
-```javascript
-ssri.parse('sha1-deadbeef').hexDigest() // '75e69d6de79f'
-```
-
-#### <a name="from-hex"></a> `> ssri.fromHex(hexDigest, algorithm, [opts]) -> Integrity`
-
-Creates an `Integrity` object with a single entry, based on a hex-formatted
-hash. This is a utility function to help convert existing shasums to the
-Integrity format, and is roughly equivalent to something like:
-
-```javascript
-algorithm + '-' + Buffer.from(hexDigest, 'hex').toString('base64')
-```
-
-`opts.options` may optionally be passed in: it must be an array of option
-strings that will be added to all generated integrity hashes generated by
-`fromData`. This is a loosely-specified feature of SRIs, and currently has no
-specified semantics besides being `?`-separated. Use at your own risk, and
-probably avoid if your integrity strings are meant to be used with browsers.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-If `opts.single` is true, a single `Hash` object will be returned.
-
-##### Example
-
-```javascript
-ssri.fromHex('75e69d6de79f', 'sha1').toString() // 'sha1-deadbeef'
-```
-
-#### <a name="from-data"></a> `> ssri.fromData(data, [opts]) -> Integrity`
-
-Creates an `Integrity` object from either string or `Buffer` data, calculating
-all the requested hashes and adding any specified options to the object.
-
-`opts.algorithms` determines which algorithms to generate hashes for. All
-results will be included in a single `Integrity` object. The default value for
-`opts.algorithms` is `['sha512']`. All algorithm strings must be hashes listed
-in `crypto.getHashes()` for the host Node.js platform.
-
-`opts.options` may optionally be passed in: it must be an array of option
-strings that will be added to all generated integrity hashes generated by
-`fromData`. This is a loosely-specified feature of SRIs, and currently has no
-specified semantics besides being `?`-separated. Use at your own risk, and
-probably avoid if your integrity strings are meant to be used with browsers.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrityObj = ssri.fromData('foobarbaz', {
- algorithms: ['sha256', 'sha384', 'sha512']
-})
-integrity.toString('\n')
-// ->
-// sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0=
-// sha384-irnCxQ0CfQhYGlVAUdwTPC9bF3+YWLxlaDGM4xbYminxpbXEq+D+2GCEBTxcjES9
-// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
-```
-
-#### <a name="from-stream"></a> `> ssri.fromStream(stream, [opts]) -> Promise<Integrity>`
-
-Returns a Promise of an Integrity object calculated by reading data from
-a given `stream`.
-
-It accepts both `opts.algorithms` and `opts.options`, which are documented as
-part of [`ssri.fromData`](#from-data).
-
-Additionally, `opts.Promise` may be passed in to inject a Promise library of
-choice. By default, ssri will use Node's built-in Promises.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-ssri.fromStream(fs.createReadStream('index.js'), {
- algorithms: ['sha1', 'sha512']
-}).then(integrity => {
- return ssri.checkStream(fs.createReadStream('index.js'), integrity)
-}) // succeeds
-```
-
-#### <a name="create"></a> `> ssri.create([opts]) -> <Hash>`
-
-Returns a Hash object with `update(<Buffer or string>[,enc])` and `digest()` methods.
-
-
-The Hash object provides the same methods as [crypto class Hash](https://nodejs.org/dist/latest-v6.x/docs/api/crypto.html#crypto_class_hash).
-`digest()` accepts no arguments and returns an Integrity object calculated by reading data from
-calls to update.
-
-It accepts both `opts.algorithms` and `opts.options`, which are documented as
-part of [`ssri.fromData`](#from-data).
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrity = ssri.create().update('foobarbaz').digest()
-integrity.toString()
-// ->
-// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
-```
-
-#### <a name="check-data"></a> `> ssri.checkData(data, sri, [opts]) -> Hash|false`
-
-Verifies `data` integrity against an `sri` argument. `data` may be either a
-`String` or a `Buffer`, and `sri` can be any subresource integrity
-representation that [`ssri.parse`](#parse) can handle.
-
-If verification succeeds, `checkData` will return the name of the algorithm that
-was used for verification (a truthy value). Otherwise, it will return `false`.
-
-If `opts.pickAlgorithm` is provided, it will be used by
-[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
-the available digests to match against.
-
-##### Example
-
-```javascript
-const data = fs.readFileSync('index.js')
-ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
-ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
-ssri.checkData(data, 'sha1-BaDDigEST') // -> false
-```
-
-#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
-
-Verifies the contents of `stream` against an `sri` argument. `stream` will be
-consumed in its entirety by this process. `sri` can be any subresource integrity
-representation that [`ssri.parse`](#parse) can handle.
-
-`checkStream` will return a Promise that either resolves to the
-`Hash` that succeeded verification, or, if the verification fails
-or an error happens with `stream`, the Promise will be rejected.
-
-If the Promise is rejected because verification failed, the returned error will
-have `err.code` as `EINTEGRITY`.
-
-If `opts.size` is given, it will be matched against the stream size. An error
-with `err.code` `EBADSIZE` will be returned by a rejection if the expected size
-and actual size fail to match.
-
-If `opts.pickAlgorithm` is provided, it will be used by
-[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
-the available digests to match against.
-
-##### Example
-
-```javascript
-const integrity = ssri.fromData(fs.readFileSync('index.js'))
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- integrity
-)
-// ->
-// Promise<{
-// algorithm: 'sha512',
-// digest: 'sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1'
-// }>
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0'
-) // -> Promise<Hash>
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- 'sha1-BaDDigEST'
-) // -> Promise<Error<{code: 'EINTEGRITY'}>>
-```
-
-#### <a name="integrity-stream"></a> `> integrityStream(sri, [opts]) -> IntegrityStream`
-
-Returns a `Transform` stream that data can be piped through in order to generate
-and optionally check data integrity for piped data. When the stream completes
-successfully, it emits `size` and `integrity` events, containing the total
-number of bytes processed and a calculated `Integrity` instance based on stream
-data, respectively.
-
-If `opts.algorithms` is passed in, the listed algorithms will be calculated when
-generating the final `Integrity` instance. The default is `['sha512']`.
-
-If `opts.single` is passed in, a single `Hash` instance will be returned.
-
-If `opts.integrity` is passed in, it should be an `integrity` value understood
-by [`parse`](#parse) that the stream will check the data against. If
-verification succeeds, the integrity stream will emit a `verified` event whose
-value is a single `Hash` object that is the one that succeeded verification. If
-verification fails, the stream will error with an `EINTEGRITY` error code.
-
-If `opts.size` is given, it will be matched against the stream size. An error
-with `err.code` `EBADSIZE` will be emitted by the stream if the expected size
-and actual size fail to match.
-
-If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
-arguments. ssri will prioritize whichever of the two algorithms is returned by
-this function. Note that the function may be called multiple times, and it
-**must** return one of the two algorithms provided. By default, ssri will make
-a best-effort to pick the strongest/most reliable of the given algorithms. It
-may intentionally deprioritize algorithms with known vulnerabilities.
-
-##### Example
-
-```javascript
-const integrity = ssri.fromData(fs.readFileSync('index.js'))
-fs.createReadStream('index.js')
-.pipe(ssri.checkStream(integrity))
-```
diff --git a/deps/npm/node_modules/cacache/node_modules/ssri/index.js b/deps/npm/node_modules/cacache/node_modules/ssri/index.js
deleted file mode 100644
index 8ece662ba6..0000000000
--- a/deps/npm/node_modules/cacache/node_modules/ssri/index.js
+++ /dev/null
@@ -1,334 +0,0 @@
-'use strict'
-
-const Buffer = require('safe-buffer').Buffer
-
-const crypto = require('crypto')
-const Transform = require('stream').Transform
-
-const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
-
-const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
-const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
-const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/]+(?:=?=?))([?\x21-\x7E]*)$/
-const VCHAR_REGEX = /^[\x21-\x7E]+$/
-
-class Hash {
- get isHash () { return true }
- constructor (hash, opts) {
- const strict = !!(opts && opts.strict)
- this.source = hash.trim()
- // 3.1. Integrity metadata (called "Hash" by ssri)
- // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description
- const match = this.source.match(
- strict
- ? STRICT_SRI_REGEX
- : SRI_REGEX
- )
- if (!match) { return }
- if (strict && !SPEC_ALGORITHMS.some(a => a === match[1])) { return }
- this.algorithm = match[1]
- this.digest = match[2]
-
- const rawOpts = match[3]
- this.options = rawOpts ? rawOpts.slice(1).split('?') : []
- }
- hexDigest () {
- return this.digest && Buffer.from(this.digest, 'base64').toString('hex')
- }
- toJSON () {
- return this.toString()
- }
- toString (opts) {
- if (opts && opts.strict) {
- // Strict mode enforces the standard as close to the foot of the
- // letter as it can.
- if (!(
- // The spec has very restricted productions for algorithms.
- // https://www.w3.org/TR/CSP2/#source-list-syntax
- SPEC_ALGORITHMS.some(x => x === this.algorithm) &&
- // Usually, if someone insists on using a "different" base64, we
- // leave it as-is, since there's multiple standards, and the
- // specified is not a URL-safe variant.
- // https://www.w3.org/TR/CSP2/#base64_value
- this.digest.match(BASE64_REGEX) &&
- // Option syntax is strictly visual chars.
- // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression
- // https://tools.ietf.org/html/rfc5234#appendix-B.1
- (this.options || []).every(opt => opt.match(VCHAR_REGEX))
- )) {
- return ''
- }
- }
- const options = this.options && this.options.length
- ? `?${this.options.join('?')}`
- : ''
- return `${this.algorithm}-${this.digest}${options}`
- }
-}
-
-class Integrity {
- get isIntegrity () { return true }
- toJSON () {
- return this.toString()
- }
- toString (opts) {
- opts = opts || {}
- let sep = opts.sep || ' '
- if (opts.strict) {
- // Entries must be separated by whitespace, according to spec.
- sep = sep.replace(/\S+/g, ' ')
- }
- return Object.keys(this).map(k => {
- return this[k].map(hash => {
- return Hash.prototype.toString.call(hash, opts)
- }).filter(x => x.length).join(sep)
- }).filter(x => x.length).join(sep)
- }
- concat (integrity, opts) {
- const other = typeof integrity === 'string'
- ? integrity
- : stringify(integrity, opts)
- return parse(`${this.toString(opts)} ${other}`, opts)
- }
- hexDigest () {
- return parse(this, {single: true}).hexDigest()
- }
- pickAlgorithm (opts) {
- const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
- const keys = Object.keys(this)
- if (!keys.length) {
- throw new Error(`No algorithms available for ${
- JSON.stringify(this.toString())
- }`)
- }
- return keys.reduce((acc, algo) => {
- return pickAlgorithm(acc, algo) || acc
- })
- }
-}
-
-module.exports.parse = parse
-function parse (sri, opts) {
- opts = opts || {}
- if (typeof sri === 'string') {
- return _parse(sri, opts)
- } else if (sri.algorithm && sri.digest) {
- const fullSri = new Integrity()
- fullSri[sri.algorithm] = [sri]
- return _parse(stringify(fullSri, opts), opts)
- } else {
- return _parse(stringify(sri, opts), opts)
- }
-}
-
-function _parse (integrity, opts) {
- // 3.4.3. Parse metadata
- // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
- if (opts.single) {
- return new Hash(integrity, opts)
- }
- return integrity.trim().split(/\s+/).reduce((acc, string) => {
- const hash = new Hash(string, opts)
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-}
-
-module.exports.stringify = stringify
-function stringify (obj, opts) {
- if (obj.algorithm && obj.digest) {
- return Hash.prototype.toString.call(obj, opts)
- } else if (typeof obj === 'string') {
- return stringify(parse(obj, opts), opts)
- } else {
- return Integrity.prototype.toString.call(obj, opts)
- }
-}
-
-module.exports.fromHex = fromHex
-function fromHex (hexDigest, algorithm, opts) {
- const optString = (opts && opts.options && opts.options.length)
- ? `?${opts.options.join('?')}`
- : ''
- return parse(
- `${algorithm}-${
- Buffer.from(hexDigest, 'hex').toString('base64')
- }${optString}`, opts
- )
-}
-
-module.exports.fromData = fromData
-function fromData (data, opts) {
- opts = opts || {}
- const algorithms = opts.algorithms || ['sha512']
- const optString = opts.options && opts.options.length
- ? `?${opts.options.join('?')}`
- : ''
- return algorithms.reduce((acc, algo) => {
- const digest = crypto.createHash(algo).update(data).digest('base64')
- const hash = new Hash(
- `${algo}-${digest}${optString}`,
- opts
- )
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-}
-
-module.exports.fromStream = fromStream
-function fromStream (stream, opts) {
- opts = opts || {}
- const P = opts.Promise || Promise
- const istream = integrityStream(opts)
- return new P((resolve, reject) => {
- stream.pipe(istream)
- stream.on('error', reject)
- istream.on('error', reject)
- let sri
- istream.on('integrity', s => { sri = s })
- istream.on('end', () => resolve(sri))
- istream.on('data', () => {})
- })
-}
-
-module.exports.checkData = checkData
-function checkData (data, sri, opts) {
- opts = opts || {}
- sri = parse(sri, opts)
- if (!Object.keys(sri).length) { return false }
- const algorithm = sri.pickAlgorithm(opts)
- const digests = sri[algorithm] || []
- const digest = crypto.createHash(algorithm).update(data).digest('base64')
- return digests.find(hash => hash.digest === digest) || false
-}
-
-module.exports.checkStream = checkStream
-function checkStream (stream, sri, opts) {
- opts = opts || {}
- const P = opts.Promise || Promise
- const checker = integrityStream(Object.assign({}, opts, {
- integrity: sri
- }))
- return new P((resolve, reject) => {
- stream.pipe(checker)
- stream.on('error', reject)
- checker.on('error', reject)
- let sri
- checker.on('verified', s => { sri = s })
- checker.on('end', () => resolve(sri))
- checker.on('data', () => {})
- })
-}
-
-module.exports.integrityStream = integrityStream
-function integrityStream (opts) {
- opts = opts || {}
- // For verification
- const sri = opts.integrity && parse(opts.integrity, opts)
- const goodSri = sri && Object.keys(sri).length
- const algorithm = goodSri && sri.pickAlgorithm(opts)
- const digests = goodSri && sri[algorithm]
- // Calculating stream
- const algorithms = opts.algorithms || [algorithm || 'sha512']
- const hashes = algorithms.map(crypto.createHash)
- let streamSize = 0
- const stream = new Transform({
- transform (chunk, enc, cb) {
- streamSize += chunk.length
- hashes.forEach(h => h.update(chunk, enc))
- cb(null, chunk, enc)
- }
- }).on('end', () => {
- const optString = (opts.options && opts.options.length)
- ? `?${opts.options.join('?')}`
- : ''
- const newSri = parse(hashes.map((h, i) => {
- return `${algorithms[i]}-${h.digest('base64')}${optString}`
- }).join(' '), opts)
- const match = (
- // Integrity verification mode
- opts.integrity &&
- newSri[algorithm] &&
- digests &&
- digests.find(hash => {
- return newSri[algorithm].find(newhash => {
- return hash.digest === newhash.digest
- })
- })
- )
- if (typeof opts.size === 'number' && streamSize !== opts.size) {
- const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
- err.code = 'EBADSIZE'
- err.found = streamSize
- err.expected = opts.size
- err.sri = sri
- stream.emit('error', err)
- } else if (opts.integrity && !match) {
- const err = new Error(`${sri} integrity checksum failed when using ${algorithm}: wanted ${digests} but got ${newSri}. (${streamSize} bytes)`)
- err.code = 'EINTEGRITY'
- err.found = newSri
- err.expected = digests
- err.algorithm = algorithm
- err.sri = sri
- stream.emit('error', err)
- } else {
- stream.emit('size', streamSize)
- stream.emit('integrity', newSri)
- match && stream.emit('verified', match)
- }
- })
- return stream
-}
-
-module.exports.create = createIntegrity
-function createIntegrity (opts) {
- opts = opts || {}
- const algorithms = opts.algorithms || ['sha512']
- const optString = opts.options && opts.options.length
- ? `?${opts.options.join('?')}`
- : ''
-
- const hashes = algorithms.map(crypto.createHash)
-
- return {
- update: function (chunk, enc) {
- hashes.forEach(h => h.update(chunk, enc))
- return this
- },
- digest: function (enc) {
- const integrity = algorithms.reduce((acc, algo) => {
- const digest = hashes.shift().digest('base64')
- const hash = new Hash(
- `${algo}-${digest}${optString}`,
- opts
- )
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-
- return integrity
- }
- }
-}
-
-// This is a Best Effortā„¢ at a reasonable priority for hash algos
-const DEFAULT_PRIORITY = [
- 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
-]
-function getPrioritizedHash (algo1, algo2) {
- return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
- ? algo1
- : algo2
-}
diff --git a/deps/npm/node_modules/cacache/node_modules/ssri/package.json b/deps/npm/node_modules/cacache/node_modules/ssri/package.json
deleted file mode 100644
index 15b3b5648a..0000000000
--- a/deps/npm/node_modules/cacache/node_modules/ssri/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_from": "ssri@^5.0.0",
- "_id": "ssri@5.0.0",
- "_inBundle": false,
- "_integrity": "sha512-728D4yoQcQm1ooZvSbywLkV1RjfITZXh0oWrhM/lnsx3nAHx7LsRGJWB/YyvoceAYRq98xqbstiN4JBv1/wNHg==",
- "_location": "/cacache/ssri",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ssri@^5.0.0",
- "name": "ssri",
- "escapedName": "ssri",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/cacache"
- ],
- "_resolved": "https://registry.npmjs.org/ssri/-/ssri-5.0.0.tgz",
- "_shasum": "13c19390b606c821f2a10d02b351c1729b94d8cf",
- "_spec": "ssri@^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/cacache",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/ssri/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "dependencies": {
- "safe-buffer": "^5.1.0"
- },
- "deprecated": false,
- "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
- "devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/ssri#readme",
- "keywords": [
- "w3c",
- "web",
- "security",
- "integrity",
- "checksum",
- "hashing",
- "subresource integrity",
- "sri",
- "sri hash",
- "sri string",
- "sri generator",
- "html"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "ssri",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/ssri.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/cacache/node_modules/y18n/package.json b/deps/npm/node_modules/cacache/node_modules/y18n/package.json
deleted file mode 100644
index a96457708a..0000000000
--- a/deps/npm/node_modules/cacache/node_modules/y18n/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "y18n@^3.2.1",
- "_id": "y18n@3.2.1",
- "_inBundle": false,
- "_integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "_location": "/cacache/y18n",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "y18n@^3.2.1",
- "name": "y18n",
- "escapedName": "y18n",
- "rawSpec": "^3.2.1",
- "saveSpec": null,
- "fetchSpec": "^3.2.1"
- },
- "_requiredBy": [
- "/cacache"
- ],
- "_resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "_shasum": "6d15fba884c08679c0d77e88e7759e811e07fa41",
- "_spec": "y18n@^3.2.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/cacache",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/yargs/y18n/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "the bare-bones internationalization library used by yargs",
- "devDependencies": {
- "chai": "^3.4.1",
- "coveralls": "^2.11.6",
- "mocha": "^2.3.4",
- "nyc": "^6.1.1",
- "rimraf": "^2.5.0",
- "standard": "^5.4.1"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/yargs/y18n",
- "keywords": [
- "i18n",
- "internationalization",
- "yargs"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "y18n",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/y18n.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "test": "nyc mocha"
- },
- "version": "3.2.1"
-}
diff --git a/deps/npm/node_modules/cacache/package.json b/deps/npm/node_modules/cacache/package.json
index 221c605109..c9e61596f9 100644
--- a/deps/npm/node_modules/cacache/package.json
+++ b/deps/npm/node_modules/cacache/package.json
@@ -1,30 +1,34 @@
{
- "_from": "cacache@latest",
- "_id": "cacache@10.0.1",
+ "_args": [
+ [
+ "cacache@11.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "cacache@11.0.2",
+ "_id": "cacache@11.0.2",
"_inBundle": false,
- "_integrity": "sha512-dRHYcs9LvG9cHgdPzjiI+/eS7e1xRhULrcyOx04RZQsszNJXU2SL9CyG60yLnge282Qq5nwTv+ieK2fH+WPZmA==",
+ "_integrity": "sha512-hMiz7LN4w8sdfmKsvNs80ao/vf2JCGWWdpu95JyY90AJZRbZJmgE71dCefRiNf8OCqiZQDcUBfYiLlUNu4/j5A==",
"_location": "/cacache",
- "_phantomChildren": {
- "safe-buffer": "5.1.1"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "cacache@latest",
+ "raw": "cacache@11.0.2",
"name": "cacache",
"escapedName": "cacache",
- "rawSpec": "latest",
+ "rawSpec": "11.0.2",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "11.0.2"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/make-fetch-happen",
+ "/pacote"
],
- "_resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.1.tgz",
- "_shasum": "3e05f6e616117d9b54665b1b20c8aeb93ea5d36f",
- "_spec": "cacache@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/cacache/-/cacache-11.0.2.tgz",
+ "_spec": "11.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Kat MarchƔn",
"email": "kzm@sykosomatic.org"
@@ -32,7 +36,6 @@
"bugs": {
"url": "https://github.com/zkat/cacache/issues"
},
- "bundleDependencies": false,
"cache-version": {
"content": "2",
"index": "5"
@@ -56,33 +59,32 @@
}
],
"dependencies": {
- "bluebird": "^3.5.0",
+ "bluebird": "^3.5.1",
"chownr": "^1.0.1",
+ "figgy-pudding": "^3.1.0",
"glob": "^7.1.2",
"graceful-fs": "^4.1.11",
- "lru-cache": "^4.1.1",
- "mississippi": "^1.3.0",
+ "lru-cache": "^4.1.2",
+ "mississippi": "^3.0.0",
"mkdirp": "^0.5.1",
"move-concurrently": "^1.0.1",
"promise-inflight": "^1.0.1",
- "rimraf": "^2.6.1",
- "ssri": "^5.0.0",
+ "rimraf": "^2.6.2",
+ "ssri": "^6.0.0",
"unique-filename": "^1.1.0",
- "y18n": "^3.2.1"
+ "y18n": "^4.0.0"
},
- "deprecated": false,
"description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",
"devDependencies": {
"benchmark": "^2.1.4",
- "chalk": "^2.0.1",
- "cross-env": "^5.0.1",
- "nyc": "^11.1.0",
+ "chalk": "^2.3.2",
+ "cross-env": "^5.1.4",
"require-inject": "^1.4.2",
"safe-buffer": "^5.1.1",
- "standard": "^10.0.2",
- "standard-version": "^4.2.0",
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
"tacks": "^1.2.2",
- "tap": "^10.7.0",
+ "tap": "^11.1.3",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.8"
},
@@ -118,12 +120,12 @@
"benchmarks": "node test/benchmarks",
"postrelease": "npm publish && git push --follow-tags",
"prerelease": "npm t",
- "pretest": "standard lib test *.js",
+ "pretest": "standard",
"release": "standard-version -s",
- "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js",
+ "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true tap --coverage --nyc-arg=--all -J test/*.js",
"test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "10.0.1"
+ "version": "11.0.2"
}
diff --git a/deps/npm/node_modules/cacache/put.js b/deps/npm/node_modules/cacache/put.js
index fe1293e5e7..0b0ee14978 100644
--- a/deps/npm/node_modules/cacache/put.js
+++ b/deps/npm/node_modules/cacache/put.js
@@ -1,17 +1,31 @@
'use strict'
+const figgyPudding = require('figgy-pudding')
const index = require('./lib/entry-index')
const memo = require('./lib/memoization')
const write = require('./lib/content/write')
const to = require('mississippi').to
+const PutOpts = figgyPudding({
+ algorithms: {
+ default: ['sha512']
+ },
+ integrity: {},
+ memoize: {},
+ metadata: {},
+ size: {},
+ tmpPrefix: {},
+ uid: {},
+ gid: {}
+})
+
module.exports = putData
function putData (cache, key, data, opts) {
- opts = opts || {}
+ opts = PutOpts(opts)
return write(cache, data, opts).then(res => {
- // TODO - stop modifying opts
- opts.size = res.size
- return index.insert(cache, key, res.integrity, opts).then(entry => {
+ return index.insert(
+ cache, key, res.integrity, opts.concat({size: res.size})
+ ).then(entry => {
if (opts.memoize) {
memo.put(cache, entry, data, opts)
}
@@ -22,7 +36,7 @@ function putData (cache, key, data, opts) {
module.exports.stream = putStream
function putStream (cache, key, opts) {
- opts = opts || {}
+ opts = PutOpts(opts)
let integrity
let size
const contentStream = write.stream(
@@ -45,9 +59,7 @@ function putStream (cache, key, opts) {
})
}, cb => {
contentStream.end(() => {
- // TODO - stop modifying `opts`
- opts.size = size
- index.insert(cache, key, integrity, opts).then(entry => {
+ index.insert(cache, key, integrity, opts.concat({size})).then(entry => {
if (opts.memoize) {
memo.put(cache, entry, Buffer.concat(memoData, memoTotal), opts)
}
diff --git a/deps/npm/node_modules/call-limit/package.json b/deps/npm/node_modules/call-limit/package.json
index a776779a8d..e074b244eb 100644
--- a/deps/npm/node_modules/call-limit/package.json
+++ b/deps/npm/node_modules/call-limit/package.json
@@ -1,38 +1,40 @@
{
- "_from": "call-limit@~1.1.0",
+ "_args": [
+ [
+ "call-limit@1.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "call-limit@1.1.0",
"_id": "call-limit@1.1.0",
+ "_inBundle": false,
"_integrity": "sha1-b9YbA/PaQqLNDsK2DwK9DnGZH+o=",
"_location": "/call-limit",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "call-limit@~1.1.0",
+ "raw": "call-limit@1.1.0",
"name": "call-limit",
"escapedName": "call-limit",
- "rawSpec": "~1.1.0",
+ "rawSpec": "1.1.0",
"saveSpec": null,
- "fetchSpec": "~1.1.0"
+ "fetchSpec": "1.1.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/call-limit/-/call-limit-1.1.0.tgz",
- "_shasum": "6fd61b03f3da42a2cd0ec2b60f02bd0e71991fea",
- "_shrinkwrap": null,
- "_spec": "call-limit@~1.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org"
},
- "bin": null,
"bugs": {
"url": "https://github.com/iarna/call-limit/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Limit the number of simultaneous calls to an async function",
"devDependencies": {
"tap": "^1.0.0"
@@ -44,8 +46,6 @@
"license": "ISC",
"main": "call-limit.js",
"name": "call-limit",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/call-limit.git"
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/index.js b/deps/npm/node_modules/camelcase/index.js
index c8492a2286..c8492a2286 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/index.js
+++ b/deps/npm/node_modules/camelcase/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/camelcase/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ b/deps/npm/node_modules/camelcase/license
diff --git a/deps/npm/node_modules/camelcase/package.json b/deps/npm/node_modules/camelcase/package.json
new file mode 100644
index 0000000000..56d28af32d
--- /dev/null
+++ b/deps/npm/node_modules/camelcase/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "camelcase@^4.0.0",
+ "_id": "camelcase@4.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
+ "_location": "/camelcase",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "camelcase@^4.0.0",
+ "name": "camelcase",
+ "escapedName": "camelcase",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/boxen",
+ "/yargs-parser"
+ ],
+ "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
+ "_shasum": "d545635be1e33c542649c69173e5de6acfae34dd",
+ "_spec": "camelcase@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/boxen",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/camelcase/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar ā†’ fooBar",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/camelcase#readme",
+ "keywords": [
+ "camelcase",
+ "camel-case",
+ "camel",
+ "case",
+ "dash",
+ "hyphen",
+ "dot",
+ "underscore",
+ "separator",
+ "string",
+ "text",
+ "convert"
+ ],
+ "license": "MIT",
+ "name": "camelcase",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/camelcase.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "4.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/readme.md b/deps/npm/node_modules/camelcase/readme.md
index 0610dc627d..0610dc627d 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/readme.md
+++ b/deps/npm/node_modules/camelcase/readme.md
diff --git a/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 b/deps/npm/node_modules/capture-stack-trace/index.js
index 1b696c8b60..1b696c8b60 100644
--- a/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
+++ b/deps/npm/node_modules/capture-stack-trace/index.js
diff --git a/deps/npm/node_modules/capture-stack-trace/package.json b/deps/npm/node_modules/capture-stack-trace/package.json
new file mode 100644
index 0000000000..d2bc771927
--- /dev/null
+++ b/deps/npm/node_modules/capture-stack-trace/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "capture-stack-trace@^1.0.0",
+ "_id": "capture-stack-trace@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
+ "_location": "/capture-stack-trace",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "capture-stack-trace@^1.0.0",
+ "name": "capture-stack-trace",
+ "escapedName": "capture-stack-trace",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/create-error-class"
+ ],
+ "_resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
+ "_shasum": "4a6fa07399c26bba47f0b2496b4d0fb408c5550d",
+ "_spec": "capture-stack-trace@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/create-error-class",
+ "author": {
+ "name": "Vsevolod Strukchinsky",
+ "email": "floatdrop@gmail.com",
+ "url": "github.com/floatdrop"
+ },
+ "bugs": {
+ "url": "https://github.com/floatdrop/capture-stack-trace/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Error.captureStackTrace ponyfill",
+ "devDependencies": {
+ "mocha": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/floatdrop/capture-stack-trace#readme",
+ "keywords": [
+ "Error",
+ "captureStackTrace"
+ ],
+ "license": "MIT",
+ "name": "capture-stack-trace",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/floatdrop/capture-stack-trace.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "1.0.0"
+}
diff --git a/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 b/deps/npm/node_modules/capture-stack-trace/readme.md
index 061c463c42..061c463c42 100644
--- a/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
+++ b/deps/npm/node_modules/capture-stack-trace/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/caseless/LICENSE b/deps/npm/node_modules/caseless/LICENSE
index 61789f4a4f..61789f4a4f 100644
--- a/deps/npm/node_modules/request/node_modules/caseless/LICENSE
+++ b/deps/npm/node_modules/caseless/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/caseless/README.md b/deps/npm/node_modules/caseless/README.md
index e5077a2165..e5077a2165 100644
--- a/deps/npm/node_modules/request/node_modules/caseless/README.md
+++ b/deps/npm/node_modules/caseless/README.md
diff --git a/deps/npm/node_modules/request/node_modules/caseless/index.js b/deps/npm/node_modules/caseless/index.js
index b194734ee4..b194734ee4 100644
--- a/deps/npm/node_modules/request/node_modules/caseless/index.js
+++ b/deps/npm/node_modules/caseless/index.js
diff --git a/deps/npm/node_modules/caseless/package.json b/deps/npm/node_modules/caseless/package.json
new file mode 100644
index 0000000000..fa663d352d
--- /dev/null
+++ b/deps/npm/node_modules/caseless/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "caseless@~0.12.0",
+ "_id": "caseless@0.12.0",
+ "_inBundle": false,
+ "_integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
+ "_location": "/caseless",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "caseless@~0.12.0",
+ "name": "caseless",
+ "escapedName": "caseless",
+ "rawSpec": "~0.12.0",
+ "saveSpec": null,
+ "fetchSpec": "~0.12.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "_shasum": "1b681c21ff84033c826543090689420d187151dc",
+ "_spec": "caseless@~0.12.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Mikeal Rogers",
+ "email": "mikeal.rogers@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mikeal/caseless/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Caseless object set/get/has, very useful when working with HTTP headers.",
+ "devDependencies": {
+ "tape": "^2.10.2"
+ },
+ "homepage": "https://github.com/mikeal/caseless#readme",
+ "keywords": [
+ "headers",
+ "http",
+ "caseless"
+ ],
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "name": "caseless",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mikeal/caseless.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "test": "node test.js",
+ "version": "0.12.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/caseless/test.js b/deps/npm/node_modules/caseless/test.js
index f55196cc07..f55196cc07 100644
--- a/deps/npm/node_modules/request/node_modules/caseless/test.js
+++ b/deps/npm/node_modules/caseless/test.js
diff --git a/deps/npm/node_modules/chalk/index.js b/deps/npm/node_modules/chalk/index.js
new file mode 100644
index 0000000000..1cc5fa89a9
--- /dev/null
+++ b/deps/npm/node_modules/chalk/index.js
@@ -0,0 +1,228 @@
+'use strict';
+const escapeStringRegexp = require('escape-string-regexp');
+const ansiStyles = require('ansi-styles');
+const stdoutColor = require('supports-color').stdout;
+
+const template = require('./templates.js');
+
+const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
+
+// `supportsColor.level` ā†’ `ansiStyles.color[name]` mapping
+const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
+
+// `color-convert` models to exclude from the Chalk API due to conflicts and such
+const skipModels = new Set(['gray']);
+
+const styles = Object.create(null);
+
+function applyOptions(obj, options) {
+ options = options || {};
+
+ // Detect level if not set manually
+ const scLevel = stdoutColor ? stdoutColor.level : 0;
+ obj.level = options.level === undefined ? scLevel : options.level;
+ obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
+}
+
+function Chalk(options) {
+ // We check for this.template here since calling `chalk.constructor()`
+ // by itself will have a `this` of a previously constructed chalk object
+ if (!this || !(this instanceof Chalk) || this.template) {
+ const chalk = {};
+ applyOptions(chalk, options);
+
+ chalk.template = function () {
+ const args = [].slice.call(arguments);
+ return chalkTag.apply(null, [chalk.template].concat(args));
+ };
+
+ Object.setPrototypeOf(chalk, Chalk.prototype);
+ Object.setPrototypeOf(chalk.template, chalk);
+
+ chalk.template.constructor = Chalk;
+
+ return chalk.template;
+ }
+
+ applyOptions(this, options);
+}
+
+// Use bright blue on Windows as the normal blue color is illegible
+if (isSimpleWindowsTerm) {
+ ansiStyles.blue.open = '\u001B[94m';
+}
+
+for (const key of Object.keys(ansiStyles)) {
+ ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
+
+ styles[key] = {
+ get() {
+ const codes = ansiStyles[key];
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, key);
+ }
+ };
+}
+
+styles.visible = {
+ get() {
+ return build.call(this, this._styles || [], true, 'visible');
+ }
+};
+
+ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
+for (const model of Object.keys(ansiStyles.color.ansi)) {
+ if (skipModels.has(model)) {
+ continue;
+ }
+
+ styles[model] = {
+ get() {
+ const level = this.level;
+ return function () {
+ const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
+ const codes = {
+ open,
+ close: ansiStyles.color.close,
+ closeRe: ansiStyles.color.closeRe
+ };
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
+ };
+ }
+ };
+}
+
+ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
+for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
+ if (skipModels.has(model)) {
+ continue;
+ }
+
+ const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
+ styles[bgModel] = {
+ get() {
+ const level = this.level;
+ return function () {
+ const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
+ const codes = {
+ open,
+ close: ansiStyles.bgColor.close,
+ closeRe: ansiStyles.bgColor.closeRe
+ };
+ return build.call(this, this._styles ? this._styles.concat(codes) : [codes], this._empty, model);
+ };
+ }
+ };
+}
+
+const proto = Object.defineProperties(() => {}, styles);
+
+function build(_styles, _empty, key) {
+ const builder = function () {
+ return applyStyle.apply(builder, arguments);
+ };
+
+ builder._styles = _styles;
+ builder._empty = _empty;
+
+ const self = this;
+
+ Object.defineProperty(builder, 'level', {
+ enumerable: true,
+ get() {
+ return self.level;
+ },
+ set(level) {
+ self.level = level;
+ }
+ });
+
+ Object.defineProperty(builder, 'enabled', {
+ enumerable: true,
+ get() {
+ return self.enabled;
+ },
+ set(enabled) {
+ self.enabled = enabled;
+ }
+ });
+
+ // See below for fix regarding invisible grey/dim combination on Windows
+ builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
+
+ // `__proto__` is used because we must return a function, but there is
+ // no way to create a function with a different prototype
+ builder.__proto__ = proto; // eslint-disable-line no-proto
+
+ return builder;
+}
+
+function applyStyle() {
+ // Support varags, but simply cast to string in case there's only one arg
+ const args = arguments;
+ const argsLen = args.length;
+ let str = String(arguments[0]);
+
+ if (argsLen === 0) {
+ return '';
+ }
+
+ if (argsLen > 1) {
+ // Don't slice `arguments`, it prevents V8 optimizations
+ for (let a = 1; a < argsLen; a++) {
+ str += ' ' + args[a];
+ }
+ }
+
+ if (!this.enabled || this.level <= 0 || !str) {
+ return this._empty ? '' : str;
+ }
+
+ // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
+ // see https://github.com/chalk/chalk/issues/58
+ // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
+ const originalDim = ansiStyles.dim.open;
+ if (isSimpleWindowsTerm && this.hasGrey) {
+ ansiStyles.dim.open = '';
+ }
+
+ for (const code of this._styles.slice().reverse()) {
+ // Replace any instances already present with a re-opening code
+ // otherwise only the part of the string until said closing code
+ // will be colored, and the rest will simply be 'plain'.
+ str = code.open + str.replace(code.closeRe, code.open) + code.close;
+
+ // Close the styling before a linebreak and reopen
+ // after next line to fix a bleed issue on macOS
+ // https://github.com/chalk/chalk/pull/92
+ str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
+ }
+
+ // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue
+ ansiStyles.dim.open = originalDim;
+
+ return str;
+}
+
+function chalkTag(chalk, strings) {
+ if (!Array.isArray(strings)) {
+ // If chalk() was called by itself or with a string,
+ // return the string itself as a string.
+ return [].slice.call(arguments, 1).join(' ');
+ }
+
+ const args = [].slice.call(arguments, 2);
+ const parts = [strings.raw[0]];
+
+ for (let i = 1; i < strings.length; i++) {
+ parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
+ parts.push(String(strings.raw[i]));
+ }
+
+ return template(chalk, parts.join(''));
+}
+
+Object.defineProperties(Chalk.prototype, styles);
+
+module.exports = Chalk(); // eslint-disable-line new-cap
+module.exports.supportsColor = stdoutColor;
+module.exports.default = module.exports; // For TypeScript
diff --git a/deps/npm/node_modules/chalk/index.js.flow b/deps/npm/node_modules/chalk/index.js.flow
new file mode 100644
index 0000000000..872a156285
--- /dev/null
+++ b/deps/npm/node_modules/chalk/index.js.flow
@@ -0,0 +1,93 @@
+// @flow
+
+type TemplateStringsArray = $ReadOnlyArray<string>;
+
+export type Level = $Values<{
+ None: 0,
+ Basic: 1,
+ Ansi256: 2,
+ TrueColor: 3
+}>;
+
+export type ChalkOptions = {|
+ enabled?: boolean,
+ level?: Level
+|};
+
+export type ColorSupport = {|
+ level: Level,
+ hasBasic: boolean,
+ has256: boolean,
+ has16m: boolean
+|};
+
+export interface Chalk {
+ (...text: string[]): string,
+ (text: TemplateStringsArray, ...placeholders: string[]): string,
+ constructor(options?: ChalkOptions): Chalk,
+ enabled: boolean,
+ level: Level,
+ rgb(r: number, g: number, b: number): Chalk,
+ hsl(h: number, s: number, l: number): Chalk,
+ hsv(h: number, s: number, v: number): Chalk,
+ hwb(h: number, w: number, b: number): Chalk,
+ bgHex(color: string): Chalk,
+ bgKeyword(color: string): Chalk,
+ bgRgb(r: number, g: number, b: number): Chalk,
+ bgHsl(h: number, s: number, l: number): Chalk,
+ bgHsv(h: number, s: number, v: number): Chalk,
+ bgHwb(h: number, w: number, b: number): Chalk,
+ hex(color: string): Chalk,
+ keyword(color: string): Chalk,
+
+ +reset: Chalk,
+ +bold: Chalk,
+ +dim: Chalk,
+ +italic: Chalk,
+ +underline: Chalk,
+ +inverse: Chalk,
+ +hidden: Chalk,
+ +strikethrough: Chalk,
+
+ +visible: Chalk,
+
+ +black: Chalk,
+ +red: Chalk,
+ +green: Chalk,
+ +yellow: Chalk,
+ +blue: Chalk,
+ +magenta: Chalk,
+ +cyan: Chalk,
+ +white: Chalk,
+ +gray: Chalk,
+ +grey: Chalk,
+ +blackBright: Chalk,
+ +redBright: Chalk,
+ +greenBright: Chalk,
+ +yellowBright: Chalk,
+ +blueBright: Chalk,
+ +magentaBright: Chalk,
+ +cyanBright: Chalk,
+ +whiteBright: Chalk,
+
+ +bgBlack: Chalk,
+ +bgRed: Chalk,
+ +bgGreen: Chalk,
+ +bgYellow: Chalk,
+ +bgBlue: Chalk,
+ +bgMagenta: Chalk,
+ +bgCyan: Chalk,
+ +bgWhite: Chalk,
+ +bgBlackBright: Chalk,
+ +bgRedBright: Chalk,
+ +bgGreenBright: Chalk,
+ +bgYellowBright: Chalk,
+ +bgBlueBright: Chalk,
+ +bgMagentaBright: Chalk,
+ +bgCyanBright: Chalk,
+ +bgWhiteBrigh: Chalk,
+
+ supportsColor: ColorSupport
+};
+
+declare module.exports: Chalk;
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/license b/deps/npm/node_modules/chalk/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/license
+++ b/deps/npm/node_modules/chalk/license
diff --git a/deps/npm/node_modules/chalk/package.json b/deps/npm/node_modules/chalk/package.json
new file mode 100644
index 0000000000..3c16f50482
--- /dev/null
+++ b/deps/npm/node_modules/chalk/package.json
@@ -0,0 +1,107 @@
+{
+ "_from": "chalk@^2.0.1",
+ "_id": "chalk@2.4.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
+ "_location": "/chalk",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "chalk@^2.0.1",
+ "name": "chalk",
+ "escapedName": "chalk",
+ "rawSpec": "^2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.1"
+ },
+ "_requiredBy": [
+ "/boxen",
+ "/eslint",
+ "/inquirer",
+ "/table",
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
+ "_shasum": "18c49ab16a037b6eb0152cc83e3471338215b66e",
+ "_spec": "chalk@^2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "bugs": {
+ "url": "https://github.com/chalk/chalk/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "deprecated": false,
+ "description": "Terminal string styling done right",
+ "devDependencies": {
+ "ava": "*",
+ "coveralls": "^3.0.0",
+ "execa": "^0.9.0",
+ "flow-bin": "^0.68.0",
+ "import-fresh": "^2.0.0",
+ "matcha": "^0.7.0",
+ "nyc": "^11.0.2",
+ "resolve-from": "^4.0.0",
+ "typescript": "^2.5.3",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "templates.js",
+ "types/index.d.ts",
+ "index.js.flow"
+ ],
+ "homepage": "https://github.com/chalk/chalk#readme",
+ "keywords": [
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "str",
+ "ansi",
+ "style",
+ "styles",
+ "tty",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "name": "chalk",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/chalk.git"
+ },
+ "scripts": {
+ "bench": "matcha benchmark.js",
+ "coveralls": "nyc report --reporter=text-lcov | coveralls",
+ "test": "xo && tsc --project types && flow --max-warnings=0 && nyc ava"
+ },
+ "types": "types/index.d.ts",
+ "version": "2.4.1",
+ "xo": {
+ "envs": [
+ "node",
+ "mocha"
+ ],
+ "ignores": [
+ "test/_flow.js"
+ ]
+ }
+}
diff --git a/deps/npm/node_modules/chalk/readme.md b/deps/npm/node_modules/chalk/readme.md
new file mode 100644
index 0000000000..d298e2c48d
--- /dev/null
+++ b/deps/npm/node_modules/chalk/readme.md
@@ -0,0 +1,314 @@
+<h1 align="center">
+ <br>
+ <br>
+ <img width="320" src="media/logo.svg" alt="Chalk">
+ <br>
+ <br>
+ <br>
+</h1>
+
+> Terminal string styling done right
+
+[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/xojs/xo) [![Mentioned in Awesome Node.js](https://awesome.re/mentioned-badge.svg)](https://github.com/sindresorhus/awesome-nodejs)
+
+### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0)
+
+<img src="https://cdn.rawgit.com/chalk/ansi-styles/8261697c95bf34b6c7767e2cbe9941a851d59385/screenshot.svg" alt="" width="900">
+
+
+## Highlights
+
+- Expressive API
+- Highly performant
+- Ability to nest styles
+- [256/Truecolor color support](#256-and-truecolor-color-support)
+- Auto-detects color support
+- Doesn't extend `String.prototype`
+- Clean and focused
+- Actively maintained
+- [Used by ~23,000 packages](https://www.npmjs.com/browse/depended/chalk) as of December 31, 2017
+
+
+## Install
+
+```console
+$ npm install chalk
+```
+
+<a href="https://www.patreon.com/sindresorhus">
+ <img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" width="160">
+</a>
+
+
+## Usage
+
+```js
+const chalk = require('chalk');
+
+console.log(chalk.blue('Hello world!'));
+```
+
+Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
+
+```js
+const chalk = require('chalk');
+const log = console.log;
+
+// Combine styled and normal strings
+log(chalk.blue('Hello') + ' World' + chalk.red('!'));
+
+// Compose multiple styles using the chainable API
+log(chalk.blue.bgRed.bold('Hello world!'));
+
+// Pass in multiple arguments
+log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz'));
+
+// Nest styles
+log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!'));
+
+// Nest styles of the same type even (color, underline, background)
+log(chalk.green(
+ 'I am a green line ' +
+ chalk.blue.underline.bold('with a blue substring') +
+ ' that becomes green again!'
+));
+
+// ES2015 template literal
+log(`
+CPU: ${chalk.red('90%')}
+RAM: ${chalk.green('40%')}
+DISK: ${chalk.yellow('70%')}
+`);
+
+// ES2015 tagged template literal
+log(chalk`
+CPU: {red ${cpu.totalPercent}%}
+RAM: {green ${ram.used / ram.total * 100}%}
+DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
+`);
+
+// Use RGB colors in terminal emulators that support it.
+log(chalk.keyword('orange')('Yay for orange colored text!'));
+log(chalk.rgb(123, 45, 67).underline('Underlined reddish color'));
+log(chalk.hex('#DEADED').bold('Bold gray!'));
+```
+
+Easily define your own themes:
+
+```js
+const chalk = require('chalk');
+
+const error = chalk.bold.red;
+const warning = chalk.keyword('orange');
+
+console.log(error('Error!'));
+console.log(warning('Warning!'));
+```
+
+Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args):
+
+```js
+const name = 'Sindre';
+console.log(chalk.green('Hello %s'), name);
+//=> 'Hello Sindre'
+```
+
+
+## API
+
+### chalk.`<style>[.<style>...](string, [string...])`
+
+Example: `chalk.red.bold.underline('Hello', 'world');`
+
+Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
+
+Multiple arguments will be separated by space.
+
+### chalk.enabled
+
+Color support is automatically detected, as is the level (see `chalk.level`). However, if you'd like to simply enable/disable Chalk, you can do so via the `.enabled` property.
+
+Chalk is enabled by default unless explicitly disabled via the constructor or `chalk.level` is `0`.
+
+If you need to change this in a reusable module, create a new instance:
+
+```js
+const ctx = new chalk.constructor({enabled: false});
+```
+
+### chalk.level
+
+Color support is automatically detected, but you can override it by setting the `level` property. You should however only do this in your own code as it applies globally to all Chalk consumers.
+
+If you need to change this in a reusable module, create a new instance:
+
+```js
+const ctx = new chalk.constructor({level: 0});
+```
+
+Levels are as follows:
+
+0. All colors disabled
+1. Basic color support (16 colors)
+2. 256 color support
+3. Truecolor support (16 million colors)
+
+### chalk.supportsColor
+
+Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
+
+Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
+
+Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
+
+
+## Styles
+
+### Modifiers
+
+- `reset`
+- `bold`
+- `dim`
+- `italic` *(Not widely supported)*
+- `underline`
+- `inverse`
+- `hidden`
+- `strikethrough` *(Not widely supported)*
+- `visible` (Text is emitted only if enabled)
+
+### Colors
+
+- `black`
+- `red`
+- `green`
+- `yellow`
+- `blue` *(On Windows the bright version is used since normal blue is illegible)*
+- `magenta`
+- `cyan`
+- `white`
+- `gray` ("bright black")
+- `redBright`
+- `greenBright`
+- `yellowBright`
+- `blueBright`
+- `magentaBright`
+- `cyanBright`
+- `whiteBright`
+
+### Background colors
+
+- `bgBlack`
+- `bgRed`
+- `bgGreen`
+- `bgYellow`
+- `bgBlue`
+- `bgMagenta`
+- `bgCyan`
+- `bgWhite`
+- `bgBlackBright`
+- `bgRedBright`
+- `bgGreenBright`
+- `bgYellowBright`
+- `bgBlueBright`
+- `bgMagentaBright`
+- `bgCyanBright`
+- `bgWhiteBright`
+
+
+## Tagged template literal
+
+Chalk can be used as a [tagged template literal](http://exploringjs.com/es6/ch_template-literals.html#_tagged-template-literals).
+
+```js
+const chalk = require('chalk');
+
+const miles = 18;
+const calculateFeet = miles => miles * 5280;
+
+console.log(chalk`
+ There are {bold 5280 feet} in a mile.
+ In {bold ${miles} miles}, there are {green.bold ${calculateFeet(miles)} feet}.
+`);
+```
+
+Blocks are delimited by an opening curly brace (`{`), a style, some content, and a closing curly brace (`}`).
+
+Template styles are chained exactly like normal Chalk styles. The following two statements are equivalent:
+
+```js
+console.log(chalk.bold.rgb(10, 100, 200)('Hello!'));
+console.log(chalk`{bold.rgb(10,100,200) Hello!}`);
+```
+
+Note that function styles (`rgb()`, `hsl()`, `keyword()`, etc.) may not contain spaces between parameters.
+
+All interpolated values (`` chalk`${foo}` ``) are converted to strings via the `.toString()` method. All curly braces (`{` and `}`) in interpolated value strings are escaped.
+
+
+## 256 and Truecolor color support
+
+Chalk supports 256 colors and [Truecolor](https://gist.github.com/XVilka/8346728) (16 million colors) on supported terminal apps.
+
+Colors are downsampled from 16 million RGB values to an ANSI color format that is supported by the terminal emulator (or by specifying `{level: n}` as a Chalk option). For example, Chalk configured to run at level 1 (basic color support) will downsample an RGB value of #FF0000 (red) to 31 (ANSI escape for red).
+
+Examples:
+
+- `chalk.hex('#DEADED').underline('Hello, world!')`
+- `chalk.keyword('orange')('Some orange text')`
+- `chalk.rgb(15, 100, 204).inverse('Hello!')`
+
+Background versions of these models are prefixed with `bg` and the first level of the module capitalized (e.g. `keyword` for foreground colors and `bgKeyword` for background colors).
+
+- `chalk.bgHex('#DEADED').underline('Hello, world!')`
+- `chalk.bgKeyword('orange')('Some orange text')`
+- `chalk.bgRgb(15, 100, 204).inverse('Hello!')`
+
+The following color models can be used:
+
+- [`rgb`](https://en.wikipedia.org/wiki/RGB_color_model) - Example: `chalk.rgb(255, 136, 0).bold('Orange!')`
+- [`hex`](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) - Example: `chalk.hex('#FF8800').bold('Orange!')`
+- [`keyword`](https://www.w3.org/wiki/CSS/Properties/color/keywords) (CSS keywords) - Example: `chalk.keyword('orange').bold('Orange!')`
+- [`hsl`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsl(32, 100, 50).bold('Orange!')`
+- [`hsv`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsv(32, 100, 100).bold('Orange!')`
+- [`hwb`](https://en.wikipedia.org/wiki/HWB_color_model) - Example: `chalk.hwb(32, 0, 50).bold('Orange!')`
+- `ansi16`
+- `ansi256`
+
+
+## Windows
+
+If you're on Windows, do yourself a favor and use [`cmder`](http://cmder.net/) instead of `cmd.exe`.
+
+
+## Origin story
+
+[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68) and the package is unmaintained. Although there are other packages, they either do too much or not enough. Chalk is a clean and focused alternative.
+
+
+## Related
+
+- [chalk-cli](https://github.com/chalk/chalk-cli) - CLI for this module
+- [ansi-styles](https://github.com/chalk/ansi-styles) - ANSI escape codes for styling strings in the terminal
+- [supports-color](https://github.com/chalk/supports-color) - Detect whether a terminal supports color
+- [strip-ansi](https://github.com/chalk/strip-ansi) - Strip ANSI escape codes
+- [strip-ansi-stream](https://github.com/chalk/strip-ansi-stream) - Strip ANSI escape codes from a stream
+- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
+- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
+- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes
+- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes
+- [color-convert](https://github.com/qix-/color-convert) - Converts colors between different models
+- [chalk-animation](https://github.com/bokub/chalk-animation) - Animate strings in the terminal
+- [gradient-string](https://github.com/bokub/gradient-string) - Apply color gradients to strings
+- [chalk-pipe](https://github.com/LitoMore/chalk-pipe) - Create chalk style schemes with simpler style strings
+- [terminal-link](https://github.com/sindresorhus/terminal-link) - Create clickable links in the terminal
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
+## License
+
+MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js b/deps/npm/node_modules/chalk/templates.js
index 101551528a..dbdf9b2211 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/templates.js
+++ b/deps/npm/node_modules/chalk/templates.js
@@ -1,28 +1,28 @@
'use strict';
-const TEMPLATE_REGEX = /(?:\\(u[a-f0-9]{4}|x[a-f0-9]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
+const TEMPLATE_REGEX = /(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi;
const STYLE_REGEX = /(?:^|\.)(\w+)(?:\(([^)]*)\))?/g;
const STRING_REGEX = /^(['"])((?:\\.|(?!\1)[^\\])*)\1$/;
-const ESCAPE_REGEX = /\\(u[0-9a-f]{4}|x[0-9a-f]{2}|.)|([^\\])/gi;
-
-const ESCAPES = {
- n: '\n',
- r: '\r',
- t: '\t',
- b: '\b',
- f: '\f',
- v: '\v',
- 0: '\0',
- '\\': '\\',
- e: '\u001b',
- a: '\u0007'
-};
+const ESCAPE_REGEX = /\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi;
+
+const ESCAPES = new Map([
+ ['n', '\n'],
+ ['r', '\r'],
+ ['t', '\t'],
+ ['b', '\b'],
+ ['f', '\f'],
+ ['v', '\v'],
+ ['0', '\0'],
+ ['\\', '\\'],
+ ['e', '\u001B'],
+ ['a', '\u0007']
+]);
function unescape(c) {
if ((c[0] === 'u' && c.length === 5) || (c[0] === 'x' && c.length === 3)) {
return String.fromCharCode(parseInt(c.slice(1), 16));
}
- return ESCAPES[c] || c;
+ return ESCAPES.get(c) || c;
}
function parseArguments(name, args) {
diff --git a/deps/npm/node_modules/chalk/types/index.d.ts b/deps/npm/node_modules/chalk/types/index.d.ts
new file mode 100644
index 0000000000..b4e4dc57ed
--- /dev/null
+++ b/deps/npm/node_modules/chalk/types/index.d.ts
@@ -0,0 +1,97 @@
+// Type definitions for Chalk
+// Definitions by: Thomas Sauer <https://github.com/t-sauer>
+
+export const enum Level {
+ None = 0,
+ Basic = 1,
+ Ansi256 = 2,
+ TrueColor = 3
+}
+
+export interface ChalkOptions {
+ enabled?: boolean;
+ level?: Level;
+}
+
+export interface ChalkConstructor {
+ new (options?: ChalkOptions): Chalk;
+ (options?: ChalkOptions): Chalk;
+}
+
+export interface ColorSupport {
+ level: Level;
+ hasBasic: boolean;
+ has256: boolean;
+ has16m: boolean;
+}
+
+export interface Chalk {
+ (...text: string[]): string;
+ (text: TemplateStringsArray, ...placeholders: string[]): string;
+ constructor: ChalkConstructor;
+ enabled: boolean;
+ level: Level;
+ rgb(r: number, g: number, b: number): this;
+ hsl(h: number, s: number, l: number): this;
+ hsv(h: number, s: number, v: number): this;
+ hwb(h: number, w: number, b: number): this;
+ bgHex(color: string): this;
+ bgKeyword(color: string): this;
+ bgRgb(r: number, g: number, b: number): this;
+ bgHsl(h: number, s: number, l: number): this;
+ bgHsv(h: number, s: number, v: number): this;
+ bgHwb(h: number, w: number, b: number): this;
+ hex(color: string): this;
+ keyword(color: string): this;
+
+ readonly reset: this;
+ readonly bold: this;
+ readonly dim: this;
+ readonly italic: this;
+ readonly underline: this;
+ readonly inverse: this;
+ readonly hidden: this;
+ readonly strikethrough: this;
+
+ readonly visible: this;
+
+ readonly black: this;
+ readonly red: this;
+ readonly green: this;
+ readonly yellow: this;
+ readonly blue: this;
+ readonly magenta: this;
+ readonly cyan: this;
+ readonly white: this;
+ readonly gray: this;
+ readonly grey: this;
+ readonly blackBright: this;
+ readonly redBright: this;
+ readonly greenBright: this;
+ readonly yellowBright: this;
+ readonly blueBright: this;
+ readonly magentaBright: this;
+ readonly cyanBright: this;
+ readonly whiteBright: this;
+
+ readonly bgBlack: this;
+ readonly bgRed: this;
+ readonly bgGreen: this;
+ readonly bgYellow: this;
+ readonly bgBlue: this;
+ readonly bgMagenta: this;
+ readonly bgCyan: this;
+ readonly bgWhite: this;
+ readonly bgBlackBright: this;
+ readonly bgRedBright: this;
+ readonly bgGreenBright: this;
+ readonly bgYellowBright: this;
+ readonly bgBlueBright: this;
+ readonly bgMagentaBright: this;
+ readonly bgCyanBright: this;
+ readonly bgWhiteBright: this;
+}
+
+declare const chalk: Chalk & { supportsColor: ColorSupport };
+
+export default chalk
diff --git a/deps/npm/node_modules/chownr/package.json b/deps/npm/node_modules/chownr/package.json
index abdf318743..f9a67c8243 100644
--- a/deps/npm/node_modules/chownr/package.json
+++ b/deps/npm/node_modules/chownr/package.json
@@ -1,41 +1,44 @@
{
- "_from": "chownr@~1.0.1",
+ "_args": [
+ [
+ "chownr@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "chownr@1.0.1",
"_id": "chownr@1.0.1",
+ "_inBundle": false,
"_integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=",
"_location": "/chownr",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "chownr@~1.0.1",
+ "raw": "chownr@1.0.1",
"name": "chownr",
"escapedName": "chownr",
- "rawSpec": "~1.0.1",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "~1.0.1"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
"/",
"/cacache",
- "/pacote/tar-fs"
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
+ "/tar"
],
"_resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
- "_shasum": "e2a75042a9551908bebd25b8523d5f9769d79181",
- "_shrinkwrap": null,
- "_spec": "chownr@~1.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/chownr/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "like `chown -R`",
"devDependencies": {
"mkdirp": "0.3",
@@ -49,8 +52,6 @@
"license": "ISC",
"main": "chownr.js",
"name": "chownr",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/chownr.git"
diff --git a/deps/npm/node_modules/ci-info/LICENSE b/deps/npm/node_modules/ci-info/LICENSE
new file mode 100644
index 0000000000..4a59c94175
--- /dev/null
+++ b/deps/npm/node_modules/ci-info/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-2017 Thomas Watson Steen
+
+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/ci-info/README.md b/deps/npm/node_modules/ci-info/README.md
new file mode 100644
index 0000000000..2c6cccf2be
--- /dev/null
+++ b/deps/npm/node_modules/ci-info/README.md
@@ -0,0 +1,100 @@
+# ci-info
+
+Get details about the current Continuous Integration environment.
+
+Please [open an issue](https://github.com/watson/ci-info/issues) if your
+CI server isn't properly detected :)
+
+[![Build status](https://travis-ci.org/watson/ci-info.svg?branch=master)](https://travis-ci.org/watson/ci-info)
+[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)
+
+## Installation
+
+```
+npm install ci-info --save
+```
+
+## Usage
+
+```js
+var ci = require('ci-info')
+
+if (ci.isCI) {
+ console.log('The name of the CI server is:', ci.name)
+} else {
+ console.log('This program is not running on a CI server')
+}
+```
+
+## Supported CI tools
+
+Officially supported CI servers:
+
+- [AWS CodeBuild](https://aws.amazon.com/codebuild/)
+- [AppVeyor](http://www.appveyor.com)
+- [Bamboo](https://www.atlassian.com/software/bamboo) by Atlassian
+- [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines)
+- [Buildkite](https://buildkite.com)
+- [CircleCI](http://circleci.com)
+- [Codeship](https://codeship.com)
+- [Drone](https://drone.io)
+- [GitLab CI](https://about.gitlab.com/gitlab-ci/)
+- [GoCD](https://www.go.cd/)
+- [Hudson](http://hudson-ci.org)
+- [Jenkins CI](https://jenkins-ci.org)
+- [Magnum CI](https://magnum-ci.com)
+- [Semaphore](https://semaphoreci.com)
+- [TaskCluster](http://docs.taskcluster.net)
+- [Team Foundation Server](https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx) by Microsoft
+- [TeamCity](https://www.jetbrains.com/teamcity/) by JetBrains
+- [Travis CI](http://travis-ci.org)
+
+## API
+
+### `ci.name`
+
+A string. Will contain the name of the CI server the code is running on.
+If not CI server is detected, it will be `null`.
+
+Don't depend on the value of this string not to change for a specific
+vendor. If you find your self writing `ci.name === 'Travis CI'`, you
+most likely want to use `ci.TRAVIS` instead.
+
+### `ci.isCI`
+
+A boolean. Will be `true` if the code is running on a CI server.
+Otherwise `false`.
+
+Some CI servers not listed here might still trigger the `ci.isCI`
+boolean to be set to `true` if they use certain vendor neutral
+environment variables. In those cases `ci.name` will be `null` and no
+vendor specific boolean will be set to `true`.
+
+### `ci.<VENDOR-CONSTANT>`
+
+The following vendor specific boolean constants are exposed. A constant
+will be `true` if the code is determined to run on the given CI server.
+Otherwise `false`.
+
+- `ci.APPVEYOR`
+- `ci.BAMBOO`
+- `ci.BITBUCKET`
+- `ci.BUILDKITE`
+- `ci.CIRCLE`
+- `ci.CODEBUILD`
+- `ci.CODESHIP`
+- `ci.DRONE`
+- `ci.GITLAB`
+- `ci.GOCD`
+- `ci.HUDSON`
+- `ci.JENKINS`
+- `ci.MAGNUM`
+- `ci.SEMAPHORE`
+- `ci.TASKCLUSTER`
+- `ci.TEAMCITY`
+- `ci.TFS` (Team Foundation Server)
+- `ci.TRAVIS`
+
+## License
+
+MIT
diff --git a/deps/npm/node_modules/ci-info/index.js b/deps/npm/node_modules/ci-info/index.js
new file mode 100644
index 0000000000..e716e34b31
--- /dev/null
+++ b/deps/npm/node_modules/ci-info/index.js
@@ -0,0 +1,48 @@
+'use strict'
+
+var env = process.env
+
+var vendors = [
+ // Constant, Name, Envs
+ ['TRAVIS', 'Travis CI', 'TRAVIS'],
+ ['CIRCLE', 'CircleCI', 'CIRCLECI'],
+ ['GITLAB', 'GitLab CI', 'GITLAB_CI'],
+ ['APPVEYOR', 'AppVeyor', 'APPVEYOR'],
+ ['CODESHIP', 'Codeship', {CI_NAME: 'codeship'}],
+ ['DRONE', 'Drone', 'DRONE'],
+ ['MAGNUM', 'Magnum CI', 'MAGNUM'],
+ ['SEMAPHORE', 'Semaphore', 'SEMAPHORE'],
+ ['JENKINS', 'Jenkins', 'JENKINS_URL', 'BUILD_ID'],
+ ['BAMBOO', 'Bamboo', 'bamboo_planKey'],
+ ['TFS', 'Team Foundation Server', 'TF_BUILD'],
+ ['TEAMCITY', 'TeamCity', 'TEAMCITY_VERSION'],
+ ['BUILDKITE', 'Buildkite', 'BUILDKITE'],
+ ['HUDSON', 'Hudson', 'HUDSON_URL'],
+ ['TASKCLUSTER', 'TaskCluster', 'TASK_ID', 'RUN_ID'],
+ ['GOCD', 'GoCD', 'GO_PIPELINE_LABEL'],
+ ['BITBUCKET', 'Bitbucket Pipelines', 'BITBUCKET_COMMIT'],
+ ['CODEBUILD', 'AWS CodeBuild', 'CODEBUILD_BUILD_ARN']
+]
+
+exports.name = null
+
+vendors.forEach(function (vendor) {
+ var constant = vendor.shift()
+ var name = vendor.shift()
+ var isCI = vendor.every(function (obj) {
+ if (typeof obj === 'string') return !!env[obj]
+ return Object.keys(obj).every(function (k) {
+ return env[k] === obj[k]
+ })
+ })
+ exports[constant] = isCI
+ if (isCI) exports.name = name
+})
+
+exports.isCI = !!(
+ env.CI || // Travis CI, CircleCI, Gitlab CI, Appveyor, CodeShip
+ env.CONTINUOUS_INTEGRATION || // Travis CI
+ env.BUILD_NUMBER || // Jenkins, TeamCity
+ exports.name ||
+ false
+)
diff --git a/deps/npm/node_modules/ci-info/package.json b/deps/npm/node_modules/ci-info/package.json
new file mode 100644
index 0000000000..51a3ed5d22
--- /dev/null
+++ b/deps/npm/node_modules/ci-info/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "ci-info@^1.0.0",
+ "_id": "ci-info@1.1.3",
+ "_inBundle": false,
+ "_integrity": "sha512-SK/846h/Rcy8q9Z9CAwGBLfCJ6EkjJWdpelWDufQpqVDYq2Wnnv8zlSO6AMQap02jvhVruKKpEtQOufo3pFhLg==",
+ "_location": "/ci-info",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ci-info@^1.0.0",
+ "name": "ci-info",
+ "escapedName": "ci-info",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/is-ci"
+ ],
+ "_resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.1.3.tgz",
+ "_shasum": "710193264bb05c77b8c90d02f5aaf22216a667b2",
+ "_spec": "ci-info@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/is-ci",
+ "author": {
+ "name": "Thomas Watson Steen",
+ "email": "w@tson.dk",
+ "url": "https://twitter.com/wa7son"
+ },
+ "bugs": {
+ "url": "https://github.com/watson/ci-info/issues"
+ },
+ "bundleDependencies": false,
+ "coordinates": [
+ 55.777613,
+ 12.589943
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Get details about the current Continuous Integration environment",
+ "devDependencies": {
+ "clear-require": "^1.0.1",
+ "standard": "^10.0.3"
+ },
+ "homepage": "https://github.com/watson/ci-info",
+ "keywords": [
+ "ci",
+ "continuous",
+ "integration",
+ "test",
+ "detect"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "ci-info",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/watson/ci-info.git"
+ },
+ "scripts": {
+ "test": "standard && node test.js"
+ },
+ "version": "1.1.3"
+}
diff --git a/deps/npm/node_modules/cidr-regex/LICENSE b/deps/npm/node_modules/cidr-regex/LICENSE
new file mode 100644
index 0000000000..9669c20f85
--- /dev/null
+++ b/deps/npm/node_modules/cidr-regex/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) silverwind
+All rights reserved.
+
+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 OWNER 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/cidr-regex/README.md b/deps/npm/node_modules/cidr-regex/README.md
new file mode 100644
index 0000000000..d24d7071ae
--- /dev/null
+++ b/deps/npm/node_modules/cidr-regex/README.md
@@ -0,0 +1,64 @@
+# cidr-regex
+[![](https://img.shields.io/npm/v/cidr-regex.svg?style=flat)](https://www.npmjs.org/package/cidr-regex) [![](https://img.shields.io/npm/dm/cidr-regex.svg)](https://www.npmjs.org/package/cidr-regex) [![](https://api.travis-ci.org/silverwind/cidr-regex.svg?style=flat)](https://travis-ci.org/silverwind/cidr-regex)
+
+> Regular expression for matching IP addresses in CIDR notation
+
+## Install
+
+```sh
+$ npm install --save cidr-regex
+```
+
+## Usage
+
+```js
+const cidrRegex = require('cidr-regex');
+
+// Contains a CIDR IP address?
+cidrRegex().test('foo 192.168.0.1/24');
+//=> true
+
+// Is a CIDR IP address?
+cidrRegex({exact: true}).test('foo 192.168.0.1/24');
+//=> false
+
+cidrRegex.v6({exact: true}).test('1:2:3:4:5:6:7:8/64');
+//=> true
+
+'foo 192.168.0.1/24 bar 1:2:3:4:5:6:7:8/64 baz'.match(cidrRegex());
+//=> ['192.168.0.1/24', '1:2:3:4:5:6:7:8/64']
+```
+
+## API
+
+### cidrRegex([options])
+
+Returns a regex for matching both IPv4 and IPv6 CIDR IP addresses.
+
+### cidrRegex.v4([options])
+
+Returns a regex for matching IPv4 CIDR IP addresses.
+
+### cidrRegex.v6([options])
+
+Returns a regex for matching IPv6 CIDR IP addresses.
+
+#### options.exact
+
+Type: `boolean`<br>
+Default: `false` *(Matches any CIDR IP address in a string)*
+
+Only match an exact string. Useful with `RegExp#test()` to check if a string is a CIDR IP address.
+
+
+## Related
+
+- [is-cidr](https://github.com/silverwind/is-cidr) - Check if a string is an IP address in CIDR notation
+- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address
+- [ip-regex](https://github.com/sindresorhus/ip-regex) - Regular expression for matching IP addresses
+
+## License
+
+Ā© [silverwind](https://github.com/silverwind), distributed under BSD licence
+
+Based on previous work by [Felipe Apostol](https://github.com/flipjs)
diff --git a/deps/npm/node_modules/cidr-regex/index.js b/deps/npm/node_modules/cidr-regex/index.js
new file mode 100644
index 0000000000..190cefa7bf
--- /dev/null
+++ b/deps/npm/node_modules/cidr-regex/index.js
@@ -0,0 +1,13 @@
+"use strict";
+
+const ipRegex = require("ip-regex");
+
+const v4 = ipRegex.v4().source + "\\/(3[0-2]|[12]?[0-9])";
+const v6 = ipRegex.v6().source + "\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])";
+
+const ip = module.exports = opts => opts && opts.exact ?
+ new RegExp(`(?:^${v4}$)|(?:^${v6}$)`) :
+ new RegExp(`(?:${v4})|(?:${v6})`, "g");
+
+ip.v4 = opts => opts && opts.exact ? new RegExp(`^${v4}$`) : new RegExp(v4, "g");
+ip.v6 = opts => opts && opts.exact ? new RegExp(`^${v6}$`) : new RegExp(v6, "g");
diff --git a/deps/npm/node_modules/cidr-regex/package.json b/deps/npm/node_modules/cidr-regex/package.json
new file mode 100644
index 0000000000..2b84d9c194
--- /dev/null
+++ b/deps/npm/node_modules/cidr-regex/package.json
@@ -0,0 +1,78 @@
+{
+ "_from": "cidr-regex@^2.0.8",
+ "_id": "cidr-regex@2.0.8",
+ "_inBundle": false,
+ "_integrity": "sha512-3r0E5P6Oeg4SCvEERX7W5fPkPz8nKWwGzU6RJ/VvROOsqiq5g6sf43c/g+sUpA29Htc7R0SG15P/Scr5lfap4g==",
+ "_location": "/cidr-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "cidr-regex@^2.0.8",
+ "name": "cidr-regex",
+ "escapedName": "cidr-regex",
+ "rawSpec": "^2.0.8",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.8"
+ },
+ "_requiredBy": [
+ "/is-cidr"
+ ],
+ "_resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-2.0.8.tgz",
+ "_shasum": "c79bae6223d241c0860d93bfde1fb1c1c4fdcab6",
+ "_spec": "cidr-regex@^2.0.8",
+ "_where": "/Users/rebecca/code/npm/node_modules/is-cidr",
+ "author": {
+ "name": "silverwind",
+ "email": "me@silverwind.io"
+ },
+ "bugs": {
+ "url": "https://github.com/silverwind/cidr-regex/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Felipe Apostol",
+ "email": "flipjs.io@gmail.com",
+ "url": "http://flipjs.io/"
+ }
+ ],
+ "dependencies": {
+ "ip-regex": "^2.1.0"
+ },
+ "deprecated": false,
+ "description": "Regular expression for matching IP addresses in CIDR notation",
+ "devDependencies": {
+ "ava": "^0.25.0",
+ "eslint": "^4.18.2",
+ "eslint-config-silverwind": "^1.0.37",
+ "updates": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/silverwind/cidr-regex#readme",
+ "keywords": [
+ "cidr",
+ "regex",
+ "notation",
+ "cidr notation",
+ "prefix",
+ "prefixes",
+ "ip",
+ "ip address"
+ ],
+ "license": "BSD-2-Clause",
+ "name": "cidr-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/silverwind/cidr-regex.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "version": "2.0.8"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/boxes.json b/deps/npm/node_modules/cli-boxes/boxes.json
index 4a093c9a1d..4a093c9a1d 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/boxes.json
+++ b/deps/npm/node_modules/cli-boxes/boxes.json
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/index.js b/deps/npm/node_modules/cli-boxes/index.js
index 1d7c81f407..1d7c81f407 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/index.js
+++ b/deps/npm/node_modules/cli-boxes/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license b/deps/npm/node_modules/cli-boxes/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license
+++ b/deps/npm/node_modules/cli-boxes/license
diff --git a/deps/npm/node_modules/cli-boxes/package.json b/deps/npm/node_modules/cli-boxes/package.json
new file mode 100644
index 0000000000..3149738288
--- /dev/null
+++ b/deps/npm/node_modules/cli-boxes/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "cli-boxes@^1.0.0",
+ "_id": "cli-boxes@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
+ "_location": "/cli-boxes",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "cli-boxes@^1.0.0",
+ "name": "cli-boxes",
+ "escapedName": "cli-boxes",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/boxen"
+ ],
+ "_resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
+ "_shasum": "4fa917c3e59c94a004cd61f8ee509da651687143",
+ "_spec": "cli-boxes@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/boxen",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/cli-boxes/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Boxes for use in the terminal",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js",
+ "boxes.json"
+ ],
+ "homepage": "https://github.com/sindresorhus/cli-boxes#readme",
+ "keywords": [
+ "cli",
+ "box",
+ "boxes",
+ "terminal",
+ "term",
+ "console",
+ "ascii",
+ "unicode",
+ "border",
+ "text",
+ "json"
+ ],
+ "license": "MIT",
+ "name": "cli-boxes",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/cli-boxes.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/readme.md b/deps/npm/node_modules/cli-boxes/readme.md
index b81816bccd..b81816bccd 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/readme.md
+++ b/deps/npm/node_modules/cli-boxes/readme.md
diff --git a/deps/npm/node_modules/cli-columns/LICENSE b/deps/npm/node_modules/cli-columns/LICENSE
new file mode 100644
index 0000000000..67147a987e
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) Shannon Moeller <me@shannonmoeller.com> (shannonmoeller.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/cli-columns/README.md b/deps/npm/node_modules/cli-columns/README.md
new file mode 100644
index 0000000000..abcabefbd6
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/README.md
@@ -0,0 +1,69 @@
+# `cli-columns`
+
+[![NPM version][npm-img]][npm-url] [![Downloads][downloads-img]][npm-url] [![Build Status][travis-img]][travis-url] [![Coverage Status][coveralls-img]][coveralls-url] [![Chat][gitter-img]][gitter-url] [![Tip][amazon-img]][amazon-url]
+
+Columnated lists for the CLI. Unicode and ANSI safe.
+
+## Install
+
+ $ npm install --save cli-columns
+
+## Usage
+
+```js
+const chalk = require('chalk');
+const columns = require('.');
+
+const values = [
+ 'blue' + chalk.bgBlue('berry'),
+ 'ē¬”菠萝' + chalk.yellow('č‹¹ęžœē¬”'),
+ chalk.red('apple'), 'pomegranate',
+ 'durian', chalk.green('star fruit'),
+ 'ćƒ‘ć‚¤ćƒŠćƒƒćƒ—ćƒ«', 'apricot', 'banana',
+ 'pineapple', chalk.bgRed.yellow('orange')
+];
+
+console.log(columns(values));
+```
+
+<img alt="screenshot" src="https://user-images.githubusercontent.com/155164/28672800-bd415c86-72ae-11e7-855c-6f6aa108921b.png">
+
+## API
+
+### columns(values [, options]): String
+
+- `values` `{Array<String>}` Array of strings to display.
+- `options` `{Object}`
+ - `character` `{String}` (default: `' '`) Padding character.
+ - `newline` `{String}` (default: `'\n'`) Newline character.
+ - `padding` `{Number}` (default: `2`) Space between columns.
+ - `sort` `{Boolean}` (default: `true`) Whether to sort results.
+ - `width` `{Number}` (default: `process.stdout.columns`) Max width of list.
+
+Sorts and formats a list of values into columns suitable to display in a given width.
+
+## Contribute
+
+Standards for this project, including tests, code coverage, and semantics are enforced with a build tool. Pull requests must include passing tests with 100% code coverage and no linting errors.
+
+### Test
+
+ $ npm test
+
+----
+
+Ā© Shannon Moeller <me@shannonmoeller.com> (shannonmoeller.com)
+
+Licensed under [MIT](http://shannonmoeller.com/mit.txt)
+
+[amazon-img]: https://img.shields.io/badge/amazon-tip_jar-yellow.svg?style=flat-square
+[amazon-url]: https://www.amazon.com/gp/registry/wishlist/1VQM9ID04YPC5?sort=universal-price
+[coveralls-img]: http://img.shields.io/coveralls/shannonmoeller/cli-columns/master.svg?style=flat-square
+[coveralls-url]: https://coveralls.io/r/shannonmoeller/cli-columns
+[downloads-img]: http://img.shields.io/npm/dm/cli-columns.svg?style=flat-square
+[gitter-img]: http://img.shields.io/badge/gitter-join_chat-1dce73.svg?style=flat-square
+[gitter-url]: https://gitter.im/shannonmoeller/shannonmoeller
+[npm-img]: http://img.shields.io/npm/v/cli-columns.svg?style=flat-square
+[npm-url]: https://npmjs.org/package/cli-columns
+[travis-img]: http://img.shields.io/travis/shannonmoeller/cli-columns.svg?style=flat-square
+[travis-url]: https://travis-ci.org/shannonmoeller/cli-columns
diff --git a/deps/npm/node_modules/cli-columns/color.js b/deps/npm/node_modules/cli-columns/color.js
new file mode 100644
index 0000000000..82c1bef5f8
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/color.js
@@ -0,0 +1,15 @@
+const chalk = require('chalk');
+const columns = require('.');
+
+const values = [
+ 'blue' + chalk.bgBlue('berry'),
+ 'ē¬”菠萝' + chalk.yellow('č‹¹ęžœē¬”'),
+ chalk.red('apple'), 'pomegranate',
+ 'durian', chalk.green('star fruit'),
+ 'ćƒ‘ć‚¤ćƒŠćƒƒćƒ—ćƒ«', 'apricot', 'banana',
+ 'pineapple', chalk.bgRed.yellow('orange')
+];
+
+console.log('');
+console.log(columns(values));
+console.log('');
diff --git a/deps/npm/node_modules/cli-columns/index.js b/deps/npm/node_modules/cli-columns/index.js
new file mode 100644
index 0000000000..61efe981a0
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/index.js
@@ -0,0 +1,83 @@
+'use strict';
+
+const stringWidth = require('string-width');
+const stripAnsi = require('strip-ansi');
+
+const concat = Array.prototype.concat;
+const defaults = {
+ character: ' ',
+ newline: '\n',
+ padding: 2,
+ sort: true,
+ width: 0
+};
+
+function byPlainText(a, b) {
+ const plainA = stripAnsi(a);
+ const plainB = stripAnsi(b);
+
+ if (plainA === plainB) {
+ return 0;
+ }
+
+ if (plainA > plainB) {
+ return 1;
+ }
+
+ return -1;
+}
+
+function makeArray() {
+ return [];
+}
+
+function makeList(count) {
+ return Array.apply(null, Array(count));
+}
+
+function padCell(fullWidth, character, value) {
+ const valueWidth = stringWidth(value);
+ const filler = makeList(fullWidth - valueWidth + 1);
+
+ return value + filler.join(character);
+}
+
+function toRows(rows, cell, i) {
+ rows[i % rows.length].push(cell);
+
+ return rows;
+}
+
+function toString(arr) {
+ return arr.join('');
+}
+
+function columns(values, options) {
+ values = concat.apply([], values);
+ options = Object.assign({}, defaults, options);
+
+ let cells = values
+ .filter(Boolean)
+ .map(String);
+
+ if (options.sort !== false) {
+ cells = cells.sort(byPlainText);
+ }
+
+ const termWidth = options.width || process.stdout.columns;
+ const cellWidth = Math.max.apply(null, cells.map(stringWidth)) + options.padding;
+ const columnCount = Math.floor(termWidth / cellWidth) || 1;
+ const rowCount = Math.ceil(cells.length / columnCount) || 1;
+
+ if (columnCount === 1) {
+ return cells.join(options.newline);
+ }
+
+ return cells
+ .map(padCell.bind(null, cellWidth, options.character))
+ .reduce(toRows, makeList(rowCount).map(makeArray))
+ .map(toString)
+ .join(options.newline);
+}
+
+module.exports = columns;
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js
index b9574ed7e8..b9574ed7e8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/license b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/license
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..865aec1dcf
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/cli-columns/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/cli-columns/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-columns/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/readme.md
index 6a928edf0f..6a928edf0f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ b/deps/npm/node_modules/cli-columns/node_modules/ansi-regex/readme.md
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/index.js b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js
index 099480fbfc..099480fbfc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/index.js
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/license
diff --git a/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json
new file mode 100644
index 0000000000..bdfb065981
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/package.json
@@ -0,0 +1,101 @@
+{
+ "_from": "strip-ansi@^3.0.1",
+ "_id": "strip-ansi@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "_location": "/cli-columns/strip-ansi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-ansi@^3.0.1",
+ "name": "strip-ansi",
+ "escapedName": "strip-ansi",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/cli-columns"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_spec": "strip-ansi@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-columns",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "strip-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/readme.md
index cb7d9ff7ee..cb7d9ff7ee 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/readme.md
+++ b/deps/npm/node_modules/cli-columns/node_modules/strip-ansi/readme.md
diff --git a/deps/npm/node_modules/cli-columns/package.json b/deps/npm/node_modules/cli-columns/package.json
new file mode 100644
index 0000000000..f201288adc
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/package.json
@@ -0,0 +1,84 @@
+{
+ "_args": [
+ [
+ "cli-columns@3.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "cli-columns@3.1.2",
+ "_id": "cli-columns@3.1.2",
+ "_inBundle": false,
+ "_integrity": "sha1-ZzLZcpee/CrkRKHwjgj6E5yWoY4=",
+ "_location": "/cli-columns",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "cli-columns@3.1.2",
+ "name": "cli-columns",
+ "escapedName": "cli-columns",
+ "rawSpec": "3.1.2",
+ "saveSpec": null,
+ "fetchSpec": "3.1.2"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/cli-columns/-/cli-columns-3.1.2.tgz",
+ "_spec": "3.1.2",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Shannon Moeller",
+ "email": "me@shannonmoeller",
+ "url": "http://shannonmoeller.com"
+ },
+ "bugs": {
+ "url": "https://github.com/shannonmoeller/cli-columns/issues"
+ },
+ "dependencies": {
+ "string-width": "^2.0.0",
+ "strip-ansi": "^3.0.1"
+ },
+ "description": "Columnated lists for the CLI.",
+ "devDependencies": {
+ "ava": "^0.19.1",
+ "chalk": "^1.1.3",
+ "coveralls": "^2.13.1",
+ "nyc": "^11.0.2",
+ "xo": "^0.18.2"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/shannonmoeller/cli-columns#readme",
+ "keywords": [
+ "ansi",
+ "cli",
+ "column",
+ "columnate",
+ "columns",
+ "grid",
+ "list",
+ "log",
+ "ls",
+ "row",
+ "rows",
+ "unicode",
+ "unix"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "cli-columns",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/shannonmoeller/cli-columns.git"
+ },
+ "scripts": {
+ "report": "nyc report -r text-lcov | coveralls",
+ "test": "xo && nyc ava"
+ },
+ "version": "3.1.2"
+}
diff --git a/deps/npm/node_modules/cli-columns/test.js b/deps/npm/node_modules/cli-columns/test.js
new file mode 100644
index 0000000000..1ff642cd54
--- /dev/null
+++ b/deps/npm/node_modules/cli-columns/test.js
@@ -0,0 +1,78 @@
+import test from 'ava';
+import chalk from 'chalk';
+import stripAnsi from 'strip-ansi';
+import columns from './index';
+
+test('should print one column list', t => {
+ const cols = columns(['foo', ['bar', 'baz'], ['bar', 'qux']], {
+ width: 1
+ });
+
+ const expected =
+ 'bar\n' +
+ 'bar\n' +
+ 'baz\n' +
+ 'foo\n' +
+ 'qux';
+
+ t.is(cols, expected);
+});
+
+test('should print three column list', t => {
+ const cols = columns(['foo', ['bar', 'baz'], ['bat', 'qux']], {
+ width: 16
+ });
+
+ const expected =
+ 'bar baz qux \n' +
+ 'bat foo ';
+
+ t.is(cols, expected);
+});
+
+test('should print complex list', t => {
+ const cols = columns(
+ [
+ 'foo', 'bar', 'baz',
+ chalk.cyan('å¶œę†ƒę’Š') + ' 噾å™æ嚁',
+ 'blue' + chalk.bgBlue('berry'),
+ chalk.red('apple'), 'pomegranate',
+ 'durian', chalk.green('star fruit'),
+ 'apricot', 'banana pineapple'
+ ],
+ {
+ width: 80
+ }
+ );
+
+ const expected =
+ 'apple bar durian star fruit \n' +
+ 'apricot baz foo å¶œę†ƒę’Š 噾å™æ嚁 \n' +
+ 'banana pineapple blueberry pomegranate ';
+
+ t.is(stripAnsi(cols), expected);
+});
+
+test('should optionally not sort', t => {
+ const cols = columns(
+ [
+ 'foo', 'bar', 'baz',
+ chalk.cyan('å¶œę†ƒę’Š') + ' 噾å™æ嚁',
+ 'blue' + chalk.bgBlue('berry'),
+ chalk.red('apple'), 'pomegranate',
+ 'durian', chalk.green('star fruit'),
+ 'apricot', 'banana pineapple'
+ ],
+ {
+ sort: false,
+ width: 80
+ }
+ );
+
+ const expected =
+ 'foo å¶œę†ƒę’Š 噾å™æ嚁 pomegranate apricot \n' +
+ 'bar blueberry durian banana pineapple \n' +
+ 'baz apple star fruit ';
+
+ t.is(stripAnsi(cols), expected);
+});
diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/index.js
index b9574ed7e8..b9574ed7e8 100644
--- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/index.js
diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/package.json b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..2f6e64b15e
--- /dev/null
+++ b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/cli-table2/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/cli-table2/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/readme.md
index 6a928edf0f..6a928edf0f 100644
--- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ b/deps/npm/node_modules/cli-table2/node_modules/ansi-regex/readme.md
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE b/deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE
deleted file mode 100644
index 3de4e33b48..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-Original Library
- - Copyright (c) Marak Squires
-
-Additional Functionality
- - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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. \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md b/deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md
deleted file mode 100644
index 7f12859636..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/ReadMe.md
+++ /dev/null
@@ -1,178 +0,0 @@
-# colors.js [![Build Status](https://travis-ci.org/Marak/colors.js.svg?branch=master)](https://travis-ci.org/Marak/colors.js)
-
-## get color and style in your node.js console
-
-![Demo](https://raw.githubusercontent.com/Marak/colors.js/master/screenshots/colors.png)
-
-## Installation
-
- npm install colors
-
-## colors and styles!
-
-### text colors
-
- - black
- - red
- - green
- - yellow
- - blue
- - magenta
- - cyan
- - white
- - gray
- - grey
-
-### background colors
-
- - bgBlack
- - bgRed
- - bgGreen
- - bgYellow
- - bgBlue
- - bgMagenta
- - bgCyan
- - bgWhite
-
-### styles
-
- - reset
- - bold
- - dim
- - italic
- - underline
- - inverse
- - hidden
- - strikethrough
-
-### extras
-
- - rainbow
- - zebra
- - america
- - trap
- - random
-
-
-## Usage
-
-By popular demand, `colors` now ships with two types of usages!
-
-The super nifty way
-
-```js
-var colors = require('colors');
-
-console.log('hello'.green); // outputs green text
-console.log('i like cake and pies'.underline.red) // outputs red underlined text
-console.log('inverse the color'.inverse); // inverses the color
-console.log('OMG Rainbows!'.rainbow); // rainbow
-console.log('Run the trap'.trap); // Drops the bass
-
-```
-
-or a slightly less nifty way which doesn't extend `String.prototype`
-
-```js
-var colors = require('colors/safe');
-
-console.log(colors.green('hello')); // outputs green text
-console.log(colors.red.underline('i like cake and pies')) // outputs red underlined text
-console.log(colors.inverse('inverse the color')); // inverses the color
-console.log(colors.rainbow('OMG Rainbows!')); // rainbow
-console.log(colors.trap('Run the trap')); // Drops the bass
-
-```
-
-I prefer the first way. Some people seem to be afraid of extending `String.prototype` and prefer the second way.
-
-If you are writing good code you will never have an issue with the first approach. If you really don't want to touch `String.prototype`, the second usage will not touch `String` native object.
-
-## Disabling Colors
-
-To disable colors you can pass the following arguments in the command line to your application:
-
-```bash
-node myapp.js --no-color
-```
-
-## Console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data)
-
-```js
-var name = 'Marak';
-console.log(colors.green('Hello %s'), name);
-// outputs -> 'Hello Marak'
-```
-
-## Custom themes
-
-### Using standard API
-
-```js
-
-var colors = require('colors');
-
-colors.setTheme({
- silly: 'rainbow',
- input: 'grey',
- verbose: 'cyan',
- prompt: 'grey',
- info: 'green',
- data: 'grey',
- help: 'cyan',
- warn: 'yellow',
- debug: 'blue',
- error: 'red'
-});
-
-// outputs red text
-console.log("this is an error".error);
-
-// outputs yellow text
-console.log("this is a warning".warn);
-```
-
-### Using string safe API
-
-```js
-var colors = require('colors/safe');
-
-// set single property
-var error = colors.red;
-error('this is red');
-
-// set theme
-colors.setTheme({
- silly: 'rainbow',
- input: 'grey',
- verbose: 'cyan',
- prompt: 'grey',
- info: 'green',
- data: 'grey',
- help: 'cyan',
- warn: 'yellow',
- debug: 'blue',
- error: 'red'
-});
-
-// outputs red text
-console.log(colors.error("this is an error"));
-
-// outputs yellow text
-console.log(colors.warn("this is a warning"));
-
-```
-
-You can also combine them:
-
-```javascript
-var colors = require('colors');
-
-colors.setTheme({
- custom: ['red', 'underline']
-});
-
-console.log('test'.custom);
-```
-
-*Protip: There is a secret undocumented style in `colors`. If you find the style you can summon him.*
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js b/deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js
deleted file mode 100644
index 2818741e1f..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/examples/normal-usage.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var colors = require('../lib/index');
-
-console.log("First some yellow text".yellow);
-
-console.log("Underline that text".yellow.underline);
-
-console.log("Make it bold and red".red.bold);
-
-console.log(("Double Raindows All Day Long").rainbow)
-
-console.log("Drop the bass".trap)
-
-console.log("DROP THE RAINBOW BASS".trap.rainbow)
-
-
-console.log('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported
-
-console.log('So '.green + 'are'.underline + ' ' + 'inverse'.inverse + ' styles! '.yellow.bold); // styles not widely supported
-console.log("Zebras are so fun!".zebra);
-
-//
-// Remark: .strikethrough may not work with Mac OS Terminal App
-//
-console.log("This is " + "not".strikethrough + " fun.");
-
-console.log('Background color attack!'.black.bgWhite)
-console.log('Use random styles on everything!'.random)
-console.log('America, Heck Yeah!'.america)
-
-
-console.log('Setting themes is useful')
-
-//
-// Custom themes
-//
-console.log('Generic logging theme as JSON'.green.bold.underline);
-// Load theme with JSON literal
-colors.setTheme({
- silly: 'rainbow',
- input: 'grey',
- verbose: 'cyan',
- prompt: 'grey',
- info: 'green',
- data: 'grey',
- help: 'cyan',
- warn: 'yellow',
- debug: 'blue',
- error: 'red'
-});
-
-// outputs red text
-console.log("this is an error".error);
-
-// outputs yellow text
-console.log("this is a warning".warn);
-
-// outputs grey text
-console.log("this is an input".input);
-
-console.log('Generic logging theme as file'.green.bold.underline);
-
-// Load a theme from file
-colors.setTheme(__dirname + '/../themes/generic-logging.js');
-
-// outputs red text
-console.log("this is an error".error);
-
-// outputs yellow text
-console.log("this is a warning".warn);
-
-// outputs grey text
-console.log("this is an input".input);
-
-//console.log("Don't summon".zalgo) \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js b/deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js
deleted file mode 100644
index 47e5633afe..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/examples/safe-string.js
+++ /dev/null
@@ -1,73 +0,0 @@
-var colors = require('../safe');
-
-console.log(colors.yellow("First some yellow text"));
-
-console.log(colors.yellow.underline("Underline that text"));
-
-console.log(colors.red.bold("Make it bold and red"));
-
-console.log(colors.rainbow("Double Raindows All Day Long"))
-
-console.log(colors.trap("Drop the bass"))
-
-console.log(colors.rainbow(colors.trap("DROP THE RAINBOW BASS")));
-
-console.log(colors.bold.italic.underline.red('Chains are also cool.')); // styles not widely supported
-
-
-console.log(colors.green('So ') + colors.underline('are') + ' ' + colors.inverse('inverse') + colors.yellow.bold(' styles! ')); // styles not widely supported
-
-console.log(colors.zebra("Zebras are so fun!"));
-
-console.log("This is " + colors.strikethrough("not") + " fun.");
-
-
-console.log(colors.black.bgWhite('Background color attack!'));
-console.log(colors.random('Use random styles on everything!'))
-console.log(colors.america('America, Heck Yeah!'));
-
-console.log('Setting themes is useful')
-
-//
-// Custom themes
-//
-//console.log('Generic logging theme as JSON'.green.bold.underline);
-// Load theme with JSON literal
-colors.setTheme({
- silly: 'rainbow',
- input: 'grey',
- verbose: 'cyan',
- prompt: 'grey',
- info: 'green',
- data: 'grey',
- help: 'cyan',
- warn: 'yellow',
- debug: 'blue',
- error: 'red'
-});
-
-// outputs red text
-console.log(colors.error("this is an error"));
-
-// outputs yellow text
-console.log(colors.warn("this is a warning"));
-
-// outputs grey text
-console.log(colors.input("this is an input"));
-
-
-// console.log('Generic logging theme as file'.green.bold.underline);
-
-// Load a theme from file
-colors.setTheme(__dirname + '/../themes/generic-logging.js');
-
-// outputs red text
-console.log(colors.error("this is an error"));
-
-// outputs yellow text
-console.log(colors.warn("this is a warning"));
-
-// outputs grey text
-console.log(colors.input("this is an input"));
-
-// console.log(colors.zalgo("Don't summon him"))
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js
deleted file mode 100644
index 823e3ddd0d..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/colors.js
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
-
-The MIT License (MIT)
-
-Original Library
- - Copyright (c) Marak Squires
-
-Additional functionality
- - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
-
-*/
-
-var colors = {};
-module['exports'] = colors;
-
-colors.themes = {};
-
-var ansiStyles = colors.styles = require('./styles');
-var defineProps = Object.defineProperties;
-
-colors.supportsColor = require('./system/supports-colors');
-
-if (typeof colors.enabled === "undefined") {
- colors.enabled = colors.supportsColor;
-}
-
-colors.stripColors = colors.strip = function(str){
- return ("" + str).replace(/\x1B\[\d+m/g, '');
-};
-
-
-var stylize = colors.stylize = function stylize (str, style) {
- if (!colors.enabled) {
- return str+'';
- }
-
- return ansiStyles[style].open + str + ansiStyles[style].close;
-}
-
-var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
-var escapeStringRegexp = function (str) {
- if (typeof str !== 'string') {
- throw new TypeError('Expected a string');
- }
- return str.replace(matchOperatorsRe, '\\$&');
-}
-
-function build(_styles) {
- var builder = function builder() {
- return applyStyle.apply(builder, arguments);
- };
- builder._styles = _styles;
- // __proto__ is used because we must return a function, but there is
- // no way to create a function with a different prototype.
- builder.__proto__ = proto;
- return builder;
-}
-
-var styles = (function () {
- var ret = {};
- ansiStyles.grey = ansiStyles.gray;
- Object.keys(ansiStyles).forEach(function (key) {
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
- ret[key] = {
- get: function () {
- return build(this._styles.concat(key));
- }
- };
- });
- return ret;
-})();
-
-var proto = defineProps(function colors() {}, styles);
-
-function applyStyle() {
- var args = arguments;
- var argsLen = args.length;
- var str = argsLen !== 0 && String(arguments[0]);
- if (argsLen > 1) {
- for (var a = 1; a < argsLen; a++) {
- str += ' ' + args[a];
- }
- }
-
- if (!colors.enabled || !str) {
- return str;
- }
-
- var nestedStyles = this._styles;
-
- var i = nestedStyles.length;
- while (i--) {
- var code = ansiStyles[nestedStyles[i]];
- str = code.open + str.replace(code.closeRe, code.open) + code.close;
- }
-
- return str;
-}
-
-function applyTheme (theme) {
- for (var style in theme) {
- (function(style){
- colors[style] = function(str){
- if (typeof theme[style] === 'object'){
- var out = str;
- for (var i in theme[style]){
- out = colors[theme[style][i]](out);
- }
- return out;
- }
- return colors[theme[style]](str);
- };
- })(style)
- }
-}
-
-colors.setTheme = function (theme) {
- if (typeof theme === 'string') {
- try {
- colors.themes[theme] = require(theme);
- applyTheme(colors.themes[theme]);
- return colors.themes[theme];
- } catch (err) {
- console.log(err);
- return err;
- }
- } else {
- applyTheme(theme);
- }
-};
-
-function init() {
- var ret = {};
- Object.keys(styles).forEach(function (name) {
- ret[name] = {
- get: function () {
- return build([name]);
- }
- };
- });
- return ret;
-}
-
-var sequencer = function sequencer (map, str) {
- var exploded = str.split(""), i = 0;
- exploded = exploded.map(map);
- return exploded.join("");
-};
-
-// custom formatter methods
-colors.trap = require('./custom/trap');
-colors.zalgo = require('./custom/zalgo');
-
-// maps
-colors.maps = {};
-colors.maps.america = require('./maps/america');
-colors.maps.zebra = require('./maps/zebra');
-colors.maps.rainbow = require('./maps/rainbow');
-colors.maps.random = require('./maps/random')
-
-for (var map in colors.maps) {
- (function(map){
- colors[map] = function (str) {
- return sequencer(colors.maps[map], str);
- }
- })(map)
-}
-
-defineProps(colors, init()); \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js
deleted file mode 100644
index 3f09143738..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/trap.js
+++ /dev/null
@@ -1,45 +0,0 @@
-module['exports'] = function runTheTrap (text, options) {
- var result = "";
- text = text || "Run the trap, drop the bass";
- text = text.split('');
- var trap = {
- a: ["\u0040", "\u0104", "\u023a", "\u0245", "\u0394", "\u039b", "\u0414"],
- b: ["\u00df", "\u0181", "\u0243", "\u026e", "\u03b2", "\u0e3f"],
- c: ["\u00a9", "\u023b", "\u03fe"],
- d: ["\u00d0", "\u018a", "\u0500" , "\u0501" ,"\u0502", "\u0503"],
- e: ["\u00cb", "\u0115", "\u018e", "\u0258", "\u03a3", "\u03be", "\u04bc", "\u0a6c"],
- f: ["\u04fa"],
- g: ["\u0262"],
- h: ["\u0126", "\u0195", "\u04a2", "\u04ba", "\u04c7", "\u050a"],
- i: ["\u0f0f"],
- j: ["\u0134"],
- k: ["\u0138", "\u04a0", "\u04c3", "\u051e"],
- l: ["\u0139"],
- m: ["\u028d", "\u04cd", "\u04ce", "\u0520", "\u0521", "\u0d69"],
- n: ["\u00d1", "\u014b", "\u019d", "\u0376", "\u03a0", "\u048a"],
- o: ["\u00d8", "\u00f5", "\u00f8", "\u01fe", "\u0298", "\u047a", "\u05dd", "\u06dd", "\u0e4f"],
- p: ["\u01f7", "\u048e"],
- q: ["\u09cd"],
- r: ["\u00ae", "\u01a6", "\u0210", "\u024c", "\u0280", "\u042f"],
- s: ["\u00a7", "\u03de", "\u03df", "\u03e8"],
- t: ["\u0141", "\u0166", "\u0373"],
- u: ["\u01b1", "\u054d"],
- v: ["\u05d8"],
- w: ["\u0428", "\u0460", "\u047c", "\u0d70"],
- x: ["\u04b2", "\u04fe", "\u04fc", "\u04fd"],
- y: ["\u00a5", "\u04b0", "\u04cb"],
- z: ["\u01b5", "\u0240"]
- }
- text.forEach(function(c){
- c = c.toLowerCase();
- var chars = trap[c] || [" "];
- var rand = Math.floor(Math.random() * chars.length);
- if (typeof trap[c] !== "undefined") {
- result += trap[c][rand];
- } else {
- result += c;
- }
- });
- return result;
-
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js
deleted file mode 100644
index 45c89a8d30..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/custom/zalgo.js
+++ /dev/null
@@ -1,104 +0,0 @@
-// please no
-module['exports'] = function zalgo(text, options) {
- text = text || " he is here ";
- var soul = {
- "up" : [
- 'Ģ', 'ĢŽ', 'Ģ„', 'Ģ…',
- 'Ģæ', 'Ģ‘', 'Ģ†', 'Ģ',
- 'Ķ’', 'Ķ—', 'Ķ‘', 'Ģ‡',
- 'Ģˆ', 'ĢŠ', 'Ķ‚', 'Ģ“',
- 'Ģˆ', 'ĶŠ', 'Ķ‹', 'ĶŒ',
- 'Ģƒ', 'Ģ‚', 'ĢŒ', 'Ķ',
- 'Ģ€', 'Ģ', 'Ģ‹', 'Ģ',
- 'Ģ’', 'Ģ“', 'Ģ”', 'Ģ½',
- 'Ģ‰', 'Ķ£', 'Ķ¤', 'Ķ„',
- 'Ķ¦', 'Ķ§', 'ĶØ', 'Ķ©',
- 'ĶŖ', 'Ķ«', 'Ķ¬', 'Ķ­',
- 'Ķ®', 'ĶÆ', 'Ģ¾', 'Ķ›',
- 'Ķ†', 'Ģš'
- ],
- "down" : [
- 'Ģ–', 'Ģ—', 'Ģ˜', 'Ģ™',
- 'Ģœ', 'Ģ', 'Ģž', 'ĢŸ',
- 'Ģ ', 'Ģ¤', 'Ģ„', 'Ģ¦',
- 'Ģ©', 'ĢŖ', 'Ģ«', 'Ģ¬',
- 'Ģ­', 'Ģ®', 'ĢÆ', 'Ģ°',
- 'Ģ±', 'Ģ²', 'Ģ³', 'Ģ¹',
- 'Ģŗ', 'Ģ»', 'Ģ¼', 'Ķ…',
- 'Ķ‡', 'Ķˆ', 'Ķ‰', 'Ķ',
- 'ĶŽ', 'Ķ“', 'Ķ”', 'Ķ•',
- 'Ķ–', 'Ķ™', 'Ķš', 'Ģ£'
- ],
- "mid" : [
- 'Ģ•', 'Ģ›', 'Ģ€', 'Ģ',
- 'Ķ˜', 'Ģ”', 'Ģ¢', 'Ģ§',
- 'ĢØ', 'Ģ“', 'Ģµ', 'Ģ¶',
- 'Ķœ', 'Ķ', 'Ķž',
- 'ĶŸ', 'Ķ ', 'Ķ¢', 'Ģø',
- 'Ģ·', 'Ķ”', ' Ņ‰'
- ]
- },
- all = [].concat(soul.up, soul.down, soul.mid),
- zalgo = {};
-
- function randomNumber(range) {
- var r = Math.floor(Math.random() * range);
- return r;
- }
-
- function is_char(character) {
- var bool = false;
- all.filter(function (i) {
- bool = (i === character);
- });
- return bool;
- }
-
-
- function heComes(text, options) {
- var result = '', counts, l;
- options = options || {};
- options["up"] = typeof options["up"] !== 'undefined' ? options["up"] : true;
- options["mid"] = typeof options["mid"] !== 'undefined' ? options["mid"] : true;
- options["down"] = typeof options["down"] !== 'undefined' ? options["down"] : true;
- options["size"] = typeof options["size"] !== 'undefined' ? options["size"] : "maxi";
- text = text.split('');
- for (l in text) {
- if (is_char(l)) {
- continue;
- }
- result = result + text[l];
- counts = {"up" : 0, "down" : 0, "mid" : 0};
- switch (options.size) {
- case 'mini':
- counts.up = randomNumber(8);
- counts.mid = randomNumber(2);
- counts.down = randomNumber(8);
- break;
- case 'maxi':
- counts.up = randomNumber(16) + 3;
- counts.mid = randomNumber(4) + 1;
- counts.down = randomNumber(64) + 3;
- break;
- default:
- counts.up = randomNumber(8) + 1;
- counts.mid = randomNumber(6) / 2;
- counts.down = randomNumber(8) + 1;
- break;
- }
-
- var arr = ["up", "mid", "down"];
- for (var d in arr) {
- var index = arr[d];
- for (var i = 0 ; i <= counts[index]; i++) {
- if (options[index]) {
- result = result + soul[index][randomNumber(soul[index].length)];
- }
- }
- }
- }
- return result;
- }
- // don't summon him
- return heComes(text, options);
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js
deleted file mode 100644
index 67374a1c22..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/extendStringPrototype.js
+++ /dev/null
@@ -1,113 +0,0 @@
-var colors = require('./colors');
-
-module['exports'] = function () {
-
- //
- // Extends prototype of native string object to allow for "foo".red syntax
- //
- var addProperty = function (color, func) {
- String.prototype.__defineGetter__(color, func);
- };
-
- var sequencer = function sequencer (map, str) {
- return function () {
- var exploded = this.split(""), i = 0;
- exploded = exploded.map(map);
- return exploded.join("");
- }
- };
-
- addProperty('strip', function () {
- return colors.strip(this);
- });
-
- addProperty('stripColors', function () {
- return colors.strip(this);
- });
-
- addProperty("trap", function(){
- return colors.trap(this);
- });
-
- addProperty("zalgo", function(){
- return colors.zalgo(this);
- });
-
- addProperty("zebra", function(){
- return colors.zebra(this);
- });
-
- addProperty("rainbow", function(){
- return colors.rainbow(this);
- });
-
- addProperty("random", function(){
- return colors.random(this);
- });
-
- addProperty("america", function(){
- return colors.america(this);
- });
-
- //
- // Iterate through all default styles and colors
- //
- var x = Object.keys(colors.styles);
- x.forEach(function (style) {
- addProperty(style, function () {
- return colors.stylize(this, style);
- });
- });
-
- function applyTheme(theme) {
- //
- // Remark: This is a list of methods that exist
- // on String that you should not overwrite.
- //
- var stringPrototypeBlacklist = [
- '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'charAt', 'constructor',
- 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf', 'charCodeAt',
- 'indexOf', 'lastIndexof', 'length', 'localeCompare', 'match', 'replace', 'search', 'slice', 'split', 'substring',
- 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight'
- ];
-
- Object.keys(theme).forEach(function (prop) {
- if (stringPrototypeBlacklist.indexOf(prop) !== -1) {
- console.log('warn: '.red + ('String.prototype' + prop).magenta + ' is probably something you don\'t want to override. Ignoring style name');
- }
- else {
- if (typeof(theme[prop]) === 'string') {
- colors[prop] = colors[theme[prop]];
- addProperty(prop, function () {
- return colors[theme[prop]](this);
- });
- }
- else {
- addProperty(prop, function () {
- var ret = this;
- for (var t = 0; t < theme[prop].length; t++) {
- ret = colors[theme[prop][t]](ret);
- }
- return ret;
- });
- }
- }
- });
- }
-
- colors.setTheme = function (theme) {
- if (typeof theme === 'string') {
- try {
- colors.themes[theme] = require(theme);
- applyTheme(colors.themes[theme]);
- return colors.themes[theme];
- } catch (err) {
- console.log(err);
- return err;
- }
- } else {
- applyTheme(theme);
- }
- };
-
-}; \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js
deleted file mode 100644
index fd0956d03a..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/index.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var colors = require('./colors');
-module['exports'] = colors;
-
-// Remark: By default, colors will add style properties to String.prototype
-//
-// If you don't wish to extend String.prototype you can do this instead and native String will not be touched
-//
-// var colors = require('colors/safe);
-// colors.red("foo")
-//
-//
-require('./extendStringPrototype')(); \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js
deleted file mode 100644
index a07d8327ff..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/america.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var colors = require('../colors');
-
-module['exports'] = (function() {
- return function (letter, i, exploded) {
- if(letter === " ") return letter;
- switch(i%3) {
- case 0: return colors.red(letter);
- case 1: return colors.white(letter)
- case 2: return colors.blue(letter)
- }
- }
-})(); \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js
deleted file mode 100644
index 5442744369..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/rainbow.js
+++ /dev/null
@@ -1,12 +0,0 @@
-var colors = require('../colors');
-
-module['exports'] = (function () {
- var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; //RoY G BiV
- return function (letter, i, exploded) {
- if (letter === " ") {
- return letter;
- } else {
- return colors[rainbowColors[i++ % rainbowColors.length]](letter);
- }
- };
-})();
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js
deleted file mode 100644
index 5cd101fae2..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/random.js
+++ /dev/null
@@ -1,8 +0,0 @@
-var colors = require('../colors');
-
-module['exports'] = (function () {
- var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green', 'blue', 'white', 'cyan', 'magenta'];
- return function(letter, i, exploded) {
- return letter === " " ? letter : colors[available[Math.round(Math.random() * (available.length - 1))]](letter);
- };
-})(); \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js
deleted file mode 100644
index bf7dcdead0..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/maps/zebra.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var colors = require('../colors');
-
-module['exports'] = function (letter, i, exploded) {
- return i % 2 === 0 ? letter : colors.inverse(letter);
-}; \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js b/deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js
deleted file mode 100644
index 3e008aa93a..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/system/supports-colors.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
-
-*/
-
-var argv = process.argv;
-
-module.exports = (function () {
- if (argv.indexOf('--no-color') !== -1 ||
- argv.indexOf('--color=false') !== -1) {
- return false;
- }
-
- if (argv.indexOf('--color') !== -1 ||
- argv.indexOf('--color=true') !== -1 ||
- argv.indexOf('--color=always') !== -1) {
- return true;
- }
-
- if (process.stdout && !process.stdout.isTTY) {
- return false;
- }
-
- if (process.platform === 'win32') {
- return true;
- }
-
- if ('COLORTERM' in process.env) {
- return true;
- }
-
- if (process.env.TERM === 'dumb') {
- return false;
- }
-
- if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) {
- return true;
- }
-
- return false;
-})(); \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/package.json b/deps/npm/node_modules/cli-table2/node_modules/colors/package.json
deleted file mode 100644
index 71f264dbdb..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "colors@^1.1.2",
- "_id": "colors@1.1.2",
- "_inBundle": false,
- "_integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
- "_location": "/cli-table2/colors",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "colors@^1.1.2",
- "name": "colors",
- "escapedName": "colors",
- "rawSpec": "^1.1.2",
- "saveSpec": null,
- "fetchSpec": "^1.1.2"
- },
- "_requiredBy": [
- "/cli-table2"
- ],
- "_resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "_shasum": "168a4701756b6a7f51a12ce0c97bfa28c084ed63",
- "_spec": "colors@^1.1.2",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2",
- "author": {
- "name": "Marak Squires"
- },
- "bugs": {
- "url": "https://github.com/Marak/colors.js/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "get colors in your node.js console",
- "engines": {
- "node": ">=0.1.90"
- },
- "files": [
- "examples",
- "lib",
- "LICENSE",
- "safe.js",
- "themes"
- ],
- "homepage": "https://github.com/Marak/colors.js",
- "keywords": [
- "ansi",
- "terminal",
- "colors"
- ],
- "license": "MIT",
- "main": "lib",
- "name": "colors",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/Marak/colors.js.git"
- },
- "scripts": {
- "test": "node tests/basic-test.js && node tests/safe-test.js"
- },
- "version": "1.1.2"
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/safe.js b/deps/npm/node_modules/cli-table2/node_modules/colors/safe.js
deleted file mode 100644
index a6a1f3ab47..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/safe.js
+++ /dev/null
@@ -1,9 +0,0 @@
-//
-// Remark: Requiring this file will use the "safe" colors API which will not touch String.prototype
-//
-// var colors = require('colors/safe);
-// colors.red("foo")
-//
-//
-var colors = require('./lib/colors');
-module['exports'] = colors; \ No newline at end of file
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/index.js
index a7d3e3855f..a7d3e3855f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
+++ b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/index.js
diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/license b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/license
+++ b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/license
diff --git a/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..9a45effb69
--- /dev/null
+++ b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "is-fullwidth-code-point@^1.0.0",
+ "_id": "is-fullwidth-code-point@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "_location": "/cli-table2/is-fullwidth-code-point",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-fullwidth-code-point@^1.0.0",
+ "name": "is-fullwidth-code-point",
+ "escapedName": "is-fullwidth-code-point",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/cli-table2/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
+ "_spec": "is-fullwidth-code-point@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "0.0.4",
+ "code-point-at": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "is-fullwidth-code-point",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/readme.md
index 4936464b1b..4936464b1b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
+++ b/deps/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point/readme.md
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/package.json b/deps/npm/node_modules/cli-table2/node_modules/lodash/package.json
deleted file mode 100644
index d0da8a92e6..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "_from": "lodash@^3.10.1",
- "_id": "lodash@3.10.1",
- "_inBundle": false,
- "_integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
- "_location": "/cli-table2/lodash",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "lodash@^3.10.1",
- "name": "lodash",
- "escapedName": "lodash",
- "rawSpec": "^3.10.1",
- "saveSpec": null,
- "fetchSpec": "^3.10.1"
- },
- "_requiredBy": [
- "/cli-table2"
- ],
- "_resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
- "_shasum": "5bf45e8e49ba4189e17d482789dfd15bd140b7b6",
- "_spec": "lodash@^3.10.1",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Benjamin Tan",
- "email": "demoneaux@gmail.com",
- "url": "https://d10.github.io/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "http://www.iceddev.com/"
- },
- {
- "name": "Kit Cambridge",
- "email": "github@kitcambridge.be",
- "url": "http://kitcambridge.be/"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "deprecated": false,
- "description": "The modern build of lodash modular utilities.",
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "keywords": [
- "modules",
- "stdlib",
- "util"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "lodash",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.10.1"
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json b/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json
deleted file mode 100644
index 39c4e9e7c1..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "code-point-at@^1.0.0",
- "_id": "code-point-at@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "_location": "/cli-table2/string-width/code-point-at",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "code-point-at@^1.0.0",
- "name": "code-point-at",
- "escapedName": "code-point-at",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/cli-table2/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "_spec": "code-point-at@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/code-point-at/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "ES2015 `String#codePointAt()` ponyfill",
- "devDependencies": {
- "ava": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/code-point-at#readme",
- "keywords": [
- "es2015",
- "ponyfill",
- "polyfill",
- "shim",
- "string",
- "str",
- "code",
- "point",
- "at",
- "codepoint",
- "unicode"
- ],
- "license": "MIT",
- "name": "code-point-at",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/code-point-at.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json b/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json
deleted file mode 100644
index b6b9e5447a..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "_from": "number-is-nan@^1.0.0",
- "_id": "number-is-nan@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "_location": "/cli-table2/string-width/is-fullwidth-code-point/number-is-nan",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "number-is-nan@^1.0.0",
- "name": "number-is-nan",
- "escapedName": "number-is-nan",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/cli-table2/string-width/is-fullwidth-code-point"
- ],
- "_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "_shasum": "097b602b53422a522c1afb8790318336941a011d",
- "_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/number-is-nan/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "ES2015 Number.isNaN() ponyfill",
- "devDependencies": {
- "ava": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/number-is-nan#readme",
- "keywords": [
- "es2015",
- "ecmascript",
- "ponyfill",
- "polyfill",
- "shim",
- "number",
- "is",
- "nan",
- "not"
- ],
- "license": "MIT",
- "name": "number-is-nan",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/number-is-nan.git"
- },
- "scripts": {
- "test": "ava"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index 36b332ad08..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^1.0.0",
- "_id": "is-fullwidth-code-point@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "_location": "/cli-table2/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^1.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/cli-table2/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "_spec": "is-fullwidth-code-point@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "deprecated": false,
- "description": "Check if the character represented by a given Unicode code point is fullwidth",
- "devDependencies": {
- "ava": "0.0.4",
- "code-point-at": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
- "keywords": [
- "fullwidth",
- "full-width",
- "full",
- "width",
- "unicode",
- "character",
- "char",
- "string",
- "str",
- "codepoint",
- "code",
- "point",
- "is",
- "detect",
- "check"
- ],
- "license": "MIT",
- "name": "is-fullwidth-code-point",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index bcce6a9b4e..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/cli-table2/string-width/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/cli-table2/string-width/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json b/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json
deleted file mode 100644
index 37a3a809fe..0000000000
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "_from": "strip-ansi@^3.0.0",
- "_id": "strip-ansi@3.0.1",
- "_inBundle": false,
- "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "_location": "/cli-table2/string-width/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^3.0.0",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/cli-table2/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "_spec": "strip-ansi@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/strip-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "Strip ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/strip-ansi#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Boy Nicolai Appelman",
- "email": "joshua@jbna.nl",
- "url": "jbna.nl"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "strip-ansi",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/strip-ansi.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/index.js b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/index.js
index 099480fbfc..099480fbfc 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/index.js
+++ b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/license b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/license
+++ b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/license
diff --git a/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/package.json b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/package.json
new file mode 100644
index 0000000000..7a5bfd12d9
--- /dev/null
+++ b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/package.json
@@ -0,0 +1,101 @@
+{
+ "_from": "strip-ansi@^3.0.0",
+ "_id": "strip-ansi@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "_location": "/cli-table2/strip-ansi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-ansi@^3.0.0",
+ "name": "strip-ansi",
+ "escapedName": "strip-ansi",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/cli-table2/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_spec": "strip-ansi@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "strip-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/readme.md
index cb7d9ff7ee..cb7d9ff7ee 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/readme.md
+++ b/deps/npm/node_modules/cli-table2/node_modules/strip-ansi/readme.md
diff --git a/deps/npm/node_modules/cli-table2/package.json b/deps/npm/node_modules/cli-table2/package.json
index e504a667a4..c502a45cdd 100644
--- a/deps/npm/node_modules/cli-table2/package.json
+++ b/deps/npm/node_modules/cli-table2/package.json
@@ -1,27 +1,35 @@
{
- "_from": "cli-table2",
+ "_args": [
+ [
+ "cli-table2@0.2.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "cli-table2@0.2.0",
"_id": "cli-table2@0.2.0",
"_inBundle": false,
"_integrity": "sha1-LR738hig54biFFQFYtS9F3/jLZc=",
"_location": "/cli-table2",
- "_phantomChildren": {},
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "number-is-nan": "1.0.1"
+ },
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "cli-table2",
+ "raw": "cli-table2@0.2.0",
"name": "cli-table2",
"escapedName": "cli-table2",
- "rawSpec": "",
+ "rawSpec": "0.2.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "0.2.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/npm-audit-report"
],
"_resolved": "https://registry.npmjs.org/cli-table2/-/cli-table2-0.2.0.tgz",
- "_shasum": "2d1ef7f218a0e786e214540562d4bd177fe32d97",
- "_spec": "cli-table2",
+ "_spec": "0.2.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "James Talmage"
@@ -29,13 +37,11 @@
"bugs": {
"url": "https://github.com/jamestalmage/cli-table2/issues"
},
- "bundleDependencies": false,
"dependencies": {
"colors": "^1.1.2",
"lodash": "^3.10.1",
"string-width": "^1.0.1"
},
- "deprecated": false,
"description": "Pretty unicode tables for the command line. Based on the original cli-table.",
"devDependencies": {
"ansi-256-colors": "^1.1.0",
diff --git a/deps/npm/node_modules/cliui/CHANGELOG.md b/deps/npm/node_modules/cliui/CHANGELOG.md
new file mode 100644
index 0000000000..d9e6fbb9a7
--- /dev/null
+++ b/deps/npm/node_modules/cliui/CHANGELOG.md
@@ -0,0 +1,51 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/yargs/cliui/compare/v4.0.0...v4.1.0) (2018-04-23)
+
+
+### Features
+
+* add resetOutput method ([#57](https://github.com/yargs/cliui/issues/57)) ([7246902](https://github.com/yargs/cliui/commit/7246902))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/cliui/compare/v3.2.0...v4.0.0) (2017-12-18)
+
+
+### Bug Fixes
+
+* downgrades strip-ansi to version 3.0.1 ([#54](https://github.com/yargs/cliui/issues/54)) ([5764c46](https://github.com/yargs/cliui/commit/5764c46))
+* set env variable FORCE_COLOR. ([#56](https://github.com/yargs/cliui/issues/56)) ([7350e36](https://github.com/yargs/cliui/commit/7350e36))
+
+
+### Chores
+
+* drop support for node < 4 ([#53](https://github.com/yargs/cliui/issues/53)) ([b105376](https://github.com/yargs/cliui/commit/b105376))
+
+
+### Features
+
+* add fallback for window width ([#45](https://github.com/yargs/cliui/issues/45)) ([d064922](https://github.com/yargs/cliui/commit/d064922))
+
+
+### BREAKING CHANGES
+
+* officially drop support for Node < 4
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11)
+
+
+### Bug Fixes
+
+* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33))
+
+### Features
+
+* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32))
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/LICENSE.txt b/deps/npm/node_modules/cliui/LICENSE.txt
index c7e27478a3..c7e27478a3 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/LICENSE.txt
+++ b/deps/npm/node_modules/cliui/LICENSE.txt
diff --git a/deps/npm/node_modules/cliui/README.md b/deps/npm/node_modules/cliui/README.md
new file mode 100644
index 0000000000..7861976fc2
--- /dev/null
+++ b/deps/npm/node_modules/cliui/README.md
@@ -0,0 +1,115 @@
+# cliui
+
+[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui)
+[![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=)
+[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
+
+easily create complex multi-column command-line-interfaces.
+
+## Example
+
+```js
+var ui = require('cliui')()
+
+ui.div('Usage: $0 [command] [options]')
+
+ui.div({
+ text: 'Options:',
+ padding: [2, 0, 2, 0]
+})
+
+ui.div(
+ {
+ text: "-f, --file",
+ width: 20,
+ padding: [0, 4, 0, 4]
+ },
+ {
+ text: "the file to load." +
+ chalk.green("(if this description is long it wraps).")
+ ,
+ width: 20
+ },
+ {
+ text: chalk.red("[required]"),
+ align: 'right'
+ }
+)
+
+console.log(ui.toString())
+```
+
+<img width="500" src="screenshot.png">
+
+## Layout DSL
+
+cliui exposes a simple layout DSL:
+
+If you create a single `ui.row`, passing a string rather than an
+object:
+
+* `\n`: characters will be interpreted as new rows.
+* `\t`: characters will be interpreted as new columns.
+* `\s`: characters will be interpreted as padding.
+
+**as an example...**
+
+```js
+var ui = require('./')({
+ width: 60
+})
+
+ui.div(
+ 'Usage: node ./bin/foo.js\n' +
+ ' <regex>\t provide a regex\n' +
+ ' <glob>\t provide a glob\t [required]'
+)
+
+console.log(ui.toString())
+```
+
+**will output:**
+
+```shell
+Usage: node ./bin/foo.js
+ <regex> provide a regex
+ <glob> provide a glob [required]
+```
+
+## Methods
+
+```js
+cliui = require('cliui')
+```
+
+### cliui({width: integer})
+
+Specify the maximum width of the UI being generated.
+If no width is provided, cliui will try to get the current window's width and use it, and if that doesn't work, width will be set to `80`.
+
+### cliui({wrap: boolean})
+
+Enable or disable the wrapping of text in a column.
+
+### cliui.div(column, column, column)
+
+Create a row with any number of columns, a column
+can either be a string, or an object with the following
+options:
+
+* **text:** some text to place in the column.
+* **width:** the width of a column.
+* **align:** alignment, `right` or `center`.
+* **padding:** `[top, right, bottom, left]`.
+* **border:** should a border be placed around the div?
+
+### cliui.span(column, column, column)
+
+Similar to `div`, except the next row will be appended without
+a new line being created.
+
+### cliui.resetOutput()
+
+Resets the UI elements of the current cliui instance, maintaining the values
+set for `width` and `wrap`.
diff --git a/deps/npm/node_modules/cliui/index.js b/deps/npm/node_modules/cliui/index.js
new file mode 100644
index 0000000000..b42d9824e7
--- /dev/null
+++ b/deps/npm/node_modules/cliui/index.js
@@ -0,0 +1,324 @@
+var stringWidth = require('string-width')
+var stripAnsi = require('strip-ansi')
+var wrap = require('wrap-ansi')
+var align = {
+ right: alignRight,
+ center: alignCenter
+}
+var top = 0
+var right = 1
+var bottom = 2
+var left = 3
+
+function UI (opts) {
+ this.width = opts.width
+ this.wrap = opts.wrap
+ this.rows = []
+}
+
+UI.prototype.span = function () {
+ var cols = this.div.apply(this, arguments)
+ cols.span = true
+}
+
+UI.prototype.resetOutput = function () {
+ this.rows = []
+}
+
+UI.prototype.div = function () {
+ if (arguments.length === 0) this.div('')
+ if (this.wrap && this._shouldApplyLayoutDSL.apply(this, arguments)) {
+ return this._applyLayoutDSL(arguments[0])
+ }
+
+ var cols = []
+
+ for (var i = 0, arg; (arg = arguments[i]) !== undefined; i++) {
+ if (typeof arg === 'string') cols.push(this._colFromString(arg))
+ else cols.push(arg)
+ }
+
+ this.rows.push(cols)
+ return cols
+}
+
+UI.prototype._shouldApplyLayoutDSL = function () {
+ return arguments.length === 1 && typeof arguments[0] === 'string' &&
+ /[\t\n]/.test(arguments[0])
+}
+
+UI.prototype._applyLayoutDSL = function (str) {
+ var _this = this
+ var rows = str.split('\n')
+ var leftColumnWidth = 0
+
+ // simple heuristic for layout, make sure the
+ // second column lines up along the left-hand.
+ // don't allow the first column to take up more
+ // than 50% of the screen.
+ rows.forEach(function (row) {
+ var columns = row.split('\t')
+ if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
+ leftColumnWidth = Math.min(
+ Math.floor(_this.width * 0.5),
+ stringWidth(columns[0])
+ )
+ }
+ })
+
+ // generate a table:
+ // replacing ' ' with padding calculations.
+ // using the algorithmically generated width.
+ rows.forEach(function (row) {
+ var columns = row.split('\t')
+ _this.div.apply(_this, columns.map(function (r, i) {
+ return {
+ text: r.trim(),
+ padding: _this._measurePadding(r),
+ width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
+ }
+ }))
+ })
+
+ return this.rows[this.rows.length - 1]
+}
+
+UI.prototype._colFromString = function (str) {
+ return {
+ text: str,
+ padding: this._measurePadding(str)
+ }
+}
+
+UI.prototype._measurePadding = function (str) {
+ // measure padding without ansi escape codes
+ var noAnsi = stripAnsi(str)
+ return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
+}
+
+UI.prototype.toString = function () {
+ var _this = this
+ var lines = []
+
+ _this.rows.forEach(function (row, i) {
+ _this.rowToString(row, lines)
+ })
+
+ // don't display any lines with the
+ // hidden flag set.
+ lines = lines.filter(function (line) {
+ return !line.hidden
+ })
+
+ return lines.map(function (line) {
+ return line.text
+ }).join('\n')
+}
+
+UI.prototype.rowToString = function (row, lines) {
+ var _this = this
+ var padding
+ var rrows = this._rasterize(row)
+ var str = ''
+ var ts
+ var width
+ var wrapWidth
+
+ rrows.forEach(function (rrow, r) {
+ str = ''
+ rrow.forEach(function (col, c) {
+ ts = '' // temporary string used during alignment/padding.
+ width = row[c].width // the width with padding.
+ wrapWidth = _this._negatePadding(row[c]) // the width without padding.
+
+ ts += col
+
+ for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
+ ts += ' '
+ }
+
+ // align the string within its column.
+ if (row[c].align && row[c].align !== 'left' && _this.wrap) {
+ ts = align[row[c].align](ts, wrapWidth)
+ if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
+ }
+
+ // apply border and padding to string.
+ padding = row[c].padding || [0, 0, 0, 0]
+ if (padding[left]) str += new Array(padding[left] + 1).join(' ')
+ str += addBorder(row[c], ts, '| ')
+ str += ts
+ str += addBorder(row[c], ts, ' |')
+ if (padding[right]) str += new Array(padding[right] + 1).join(' ')
+
+ // if prior row is span, try to render the
+ // current row on the prior line.
+ if (r === 0 && lines.length > 0) {
+ str = _this._renderInline(str, lines[lines.length - 1])
+ }
+ })
+
+ // remove trailing whitespace.
+ lines.push({
+ text: str.replace(/ +$/, ''),
+ span: row.span
+ })
+ })
+
+ return lines
+}
+
+function addBorder (col, ts, style) {
+ if (col.border) {
+ if (/[.']-+[.']/.test(ts)) return ''
+ else if (ts.trim().length) return style
+ else return ' '
+ }
+ return ''
+}
+
+// if the full 'source' can render in
+// the target line, do so.
+UI.prototype._renderInline = function (source, previousLine) {
+ var leadingWhitespace = source.match(/^ */)[0].length
+ var target = previousLine.text
+ var targetTextWidth = stringWidth(target.trimRight())
+
+ if (!previousLine.span) return source
+
+ // if we're not applying wrapping logic,
+ // just always append to the span.
+ if (!this.wrap) {
+ previousLine.hidden = true
+ return target + source
+ }
+
+ if (leadingWhitespace < targetTextWidth) return source
+
+ previousLine.hidden = true
+
+ return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
+}
+
+UI.prototype._rasterize = function (row) {
+ var _this = this
+ var i
+ var rrow
+ var rrows = []
+ var widths = this._columnWidths(row)
+ var wrapped
+
+ // word wrap all columns, and create
+ // a data-structure that is easy to rasterize.
+ row.forEach(function (col, c) {
+ // leave room for left and right padding.
+ col.width = widths[c]
+ if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), { hard: true }).split('\n')
+ else wrapped = col.text.split('\n')
+
+ if (col.border) {
+ wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
+ wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
+ }
+
+ // add top and bottom padding.
+ if (col.padding) {
+ for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
+ for (i = 0; i < (col.padding[bottom] || 0); i++) wrapped.push('')
+ }
+
+ wrapped.forEach(function (str, r) {
+ if (!rrows[r]) rrows.push([])
+
+ rrow = rrows[r]
+
+ for (var i = 0; i < c; i++) {
+ if (rrow[i] === undefined) rrow.push('')
+ }
+ rrow.push(str)
+ })
+ })
+
+ return rrows
+}
+
+UI.prototype._negatePadding = function (col) {
+ var wrapWidth = col.width
+ if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
+ if (col.border) wrapWidth -= 4
+ return wrapWidth
+}
+
+UI.prototype._columnWidths = function (row) {
+ var _this = this
+ var widths = []
+ var unset = row.length
+ var unsetWidth
+ var remainingWidth = this.width
+
+ // column widths can be set in config.
+ row.forEach(function (col, i) {
+ if (col.width) {
+ unset--
+ widths[i] = col.width
+ remainingWidth -= col.width
+ } else {
+ widths[i] = undefined
+ }
+ })
+
+ // any unset widths should be calculated.
+ if (unset) unsetWidth = Math.floor(remainingWidth / unset)
+ widths.forEach(function (w, i) {
+ if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
+ else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
+ })
+
+ return widths
+}
+
+// calculates the minimum width of
+// a column, based on padding preferences.
+function _minWidth (col) {
+ var padding = col.padding || []
+ var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
+ if (col.border) minWidth += 4
+ return minWidth
+}
+
+function getWindowWidth () {
+ if (typeof process === 'object' && process.stdout && process.stdout.columns) return process.stdout.columns
+}
+
+function alignRight (str, width) {
+ str = str.trim()
+ var padding = ''
+ var strWidth = stringWidth(str)
+
+ if (strWidth < width) {
+ padding = new Array(width - strWidth + 1).join(' ')
+ }
+
+ return padding + str
+}
+
+function alignCenter (str, width) {
+ str = str.trim()
+ var padding = ''
+ var strWidth = stringWidth(str.trim())
+
+ if (strWidth < width) {
+ padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
+ }
+
+ return padding + str
+}
+
+module.exports = function (opts) {
+ opts = opts || {}
+
+ return new UI({
+ width: (opts || {}).width || getWindowWidth() || 80,
+ wrap: typeof opts.wrap === 'boolean' ? opts.wrap : true
+ })
+}
diff --git a/deps/npm/node_modules/cliui/package.json b/deps/npm/node_modules/cliui/package.json
new file mode 100644
index 0000000000..2571f53225
--- /dev/null
+++ b/deps/npm/node_modules/cliui/package.json
@@ -0,0 +1,99 @@
+{
+ "_from": "cliui@^4.0.0",
+ "_id": "cliui@4.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "_location": "/cliui",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "cliui@^4.0.0",
+ "name": "cliui",
+ "escapedName": "cliui",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "_shasum": "348422dbe82d800b3022eef4f6ac10bf2e4d1b49",
+ "_spec": "cliui@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/cliui/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "blanket": {
+ "pattern": [
+ "index.js"
+ ],
+ "data-cover-never": [
+ "node_modules",
+ "test"
+ ],
+ "output-reporter": "spec"
+ }
+ },
+ "dependencies": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "easily create complex multi-column command-line-interfaces",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "chalk": "^1.1.2",
+ "coveralls": "^2.11.8",
+ "mocha": "^3.0.0",
+ "nyc": "^10.0.0",
+ "standard": "^8.0.0",
+ "standard-version": "^3.0.0"
+ },
+ "engine": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/yargs/cliui#readme",
+ "keywords": [
+ "cli",
+ "command-line",
+ "layout",
+ "design",
+ "console",
+ "wrap",
+ "table"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "cliui",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/cliui.git"
+ },
+ "scripts": {
+ "coverage": "nyc --reporter=text-lcov mocha | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc mocha"
+ },
+ "standard": {
+ "ignore": [
+ "**/example/**"
+ ],
+ "globals": [
+ "it"
+ ]
+ },
+ "version": "4.1.0"
+}
diff --git a/deps/npm/node_modules/clone/.npmignore b/deps/npm/node_modules/clone/.npmignore
new file mode 100644
index 0000000000..c797cbf396
--- /dev/null
+++ b/deps/npm/node_modules/clone/.npmignore
@@ -0,0 +1,4 @@
+/node_modules/
+/test.js
+/*.html
+/.travis.yml
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE b/deps/npm/node_modules/clone/LICENSE
index cc3c87bc3b..cc3c87bc3b 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/LICENSE
+++ b/deps/npm/node_modules/clone/LICENSE
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md b/deps/npm/node_modules/clone/README.md
index 0b6cecae29..0b6cecae29 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/README.md
+++ b/deps/npm/node_modules/clone/README.md
diff --git a/deps/npm/node_modules/clone/clone.iml b/deps/npm/node_modules/clone/clone.iml
new file mode 100644
index 0000000000..30de8aee9b
--- /dev/null
+++ b/deps/npm/node_modules/clone/clone.iml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+ <component name="NewModuleRootManager" inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$" />
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="clone node_modules" level="project" />
+ </component>
+</module> \ No newline at end of file
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js b/deps/npm/node_modules/clone/clone.js
index 6263759203..ba200c2f99 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/clone.js
+++ b/deps/npm/node_modules/clone/clone.js
@@ -63,7 +63,13 @@ function clone(parent, circular, depth, prototype) {
} else if (clone.__isDate(parent)) {
child = new Date(parent.getTime());
} else if (useBuffer && Buffer.isBuffer(parent)) {
- child = new Buffer(parent.length);
+ if (Buffer.allocUnsafe) {
+ // Node.js >= 4.5.0
+ child = Buffer.allocUnsafe(parent.length);
+ } else {
+ // Older Node.js versions
+ child = new Buffer(parent.length);
+ }
parent.copy(child);
return child;
} else {
diff --git a/deps/npm/node_modules/clone/package.json b/deps/npm/node_modules/clone/package.json
new file mode 100644
index 0000000000..3937b7d08b
--- /dev/null
+++ b/deps/npm/node_modules/clone/package.json
@@ -0,0 +1,137 @@
+{
+ "_from": "clone@^1.0.2",
+ "_id": "clone@1.0.4",
+ "_inBundle": false,
+ "_integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+ "_location": "/clone",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "clone@^1.0.2",
+ "name": "clone",
+ "escapedName": "clone",
+ "rawSpec": "^1.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.2"
+ },
+ "_requiredBy": [
+ "/defaults"
+ ],
+ "_resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+ "_shasum": "da309cc263df15994c688ca902179ca3c7cd7c7e",
+ "_spec": "clone@^1.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/defaults",
+ "author": {
+ "name": "Paul Vorbach",
+ "email": "paul@vorba.ch",
+ "url": "http://paul.vorba.ch/"
+ },
+ "bugs": {
+ "url": "https://github.com/pvorb/node-clone/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Blake Miner",
+ "email": "miner.blake@gmail.com",
+ "url": "http://www.blakeminer.com/"
+ },
+ {
+ "name": "Tian You",
+ "email": "axqd001@gmail.com",
+ "url": "http://blog.axqd.net/"
+ },
+ {
+ "name": "George Stagas",
+ "email": "gstagas@gmail.com",
+ "url": "http://stagas.com/"
+ },
+ {
+ "name": "Tobiasz Cudnik",
+ "email": "tobiasz.cudnik@gmail.com",
+ "url": "https://github.com/TobiaszCudnik"
+ },
+ {
+ "name": "Pavel Lang",
+ "email": "langpavel@phpskelet.org",
+ "url": "https://github.com/langpavel"
+ },
+ {
+ "name": "Dan MacTough",
+ "url": "http://yabfog.com/"
+ },
+ {
+ "name": "w1nk",
+ "url": "https://github.com/w1nk"
+ },
+ {
+ "name": "Hugh Kennedy",
+ "url": "http://twitter.com/hughskennedy"
+ },
+ {
+ "name": "Dustin Diaz",
+ "url": "http://dustindiaz.com"
+ },
+ {
+ "name": "Ilya Shaisultanov",
+ "url": "https://github.com/diversario"
+ },
+ {
+ "name": "Nathan MacInnes",
+ "email": "nathan@macinn.es",
+ "url": "http://macinn.es/"
+ },
+ {
+ "name": "Benjamin E. Coe",
+ "email": "ben@npmjs.com",
+ "url": "https://twitter.com/benjamincoe"
+ },
+ {
+ "name": "Nathan Zadoks",
+ "url": "https://github.com/nathan7"
+ },
+ {
+ "name": "RĆ³bert Oroszi",
+ "email": "robert+gh@oroszi.net",
+ "url": "https://github.com/oroce"
+ },
+ {
+ "name": "AurƩlio A. Heckert",
+ "url": "http://softwarelivre.org/aurium"
+ },
+ {
+ "name": "Guy Ellis",
+ "url": "http://www.guyellisrocks.com/"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "deep cloning of objects and arrays",
+ "devDependencies": {
+ "nodeunit": "~0.9.0"
+ },
+ "engines": {
+ "node": ">=0.8"
+ },
+ "homepage": "https://github.com/pvorb/node-clone#readme",
+ "license": "MIT",
+ "main": "clone.js",
+ "name": "clone",
+ "optionalDependencies": {},
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/pvorb/node-clone.git"
+ },
+ "scripts": {
+ "test": "nodeunit test.js"
+ },
+ "tags": [
+ "clone",
+ "object",
+ "array",
+ "function",
+ "date"
+ ],
+ "version": "1.0.4"
+}
diff --git a/deps/npm/node_modules/cmd-shim/package.json b/deps/npm/node_modules/cmd-shim/package.json
index 959203dfeb..97e73e46fe 100644
--- a/deps/npm/node_modules/cmd-shim/package.json
+++ b/deps/npm/node_modules/cmd-shim/package.json
@@ -1,37 +1,40 @@
{
- "_from": "cmd-shim@~2.0.2",
+ "_args": [
+ [
+ "cmd-shim@2.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "cmd-shim@2.0.2",
"_id": "cmd-shim@2.0.2",
+ "_inBundle": false,
"_integrity": "sha1-b8vamUg6j9FdfTChlspp1oii79s=",
"_location": "/cmd-shim",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "cmd-shim@~2.0.2",
+ "raw": "cmd-shim@2.0.2",
"name": "cmd-shim",
"escapedName": "cmd-shim",
- "rawSpec": "~2.0.2",
+ "rawSpec": "2.0.2",
"saveSpec": null,
- "fetchSpec": "~2.0.2"
+ "fetchSpec": "2.0.2"
},
"_requiredBy": [
- "/"
+ "/",
+ "/bin-links"
],
"_resolved": "https://registry.npmjs.org/cmd-shim/-/cmd-shim-2.0.2.tgz",
- "_shasum": "6fcbda99483a8fd15d7d30a196ca69d688a2efdb",
- "_shrinkwrap": null,
- "_spec": "cmd-shim@~2.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
- "bin": null,
+ "_spec": "2.0.2",
+ "_where": "/Users/rebecca/code/npm",
"bugs": {
"url": "https://github.com/ForbesLindesay/cmd-shim/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.2",
"mkdirp": "~0.5.0"
},
- "deprecated": false,
"description": "Used in npm for command line application support",
"devDependencies": {
"rimraf": "~2.2.8",
@@ -40,8 +43,6 @@
"homepage": "https://github.com/ForbesLindesay/cmd-shim#readme",
"license": "BSD-2-Clause",
"name": "cmd-shim",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/ForbesLindesay/cmd-shim.git"
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/History.md b/deps/npm/node_modules/co/History.md
index 68fbb154d1..68fbb154d1 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/History.md
+++ b/deps/npm/node_modules/co/History.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/LICENSE b/deps/npm/node_modules/co/LICENSE
index 92faba5db3..92faba5db3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/LICENSE
+++ b/deps/npm/node_modules/co/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/Readme.md b/deps/npm/node_modules/co/Readme.md
index c1d4882a13..c1d4882a13 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/Readme.md
+++ b/deps/npm/node_modules/co/Readme.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/index.js b/deps/npm/node_modules/co/index.js
index 87ba8ba8b4..87ba8ba8b4 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/index.js
+++ b/deps/npm/node_modules/co/index.js
diff --git a/deps/npm/node_modules/co/package.json b/deps/npm/node_modules/co/package.json
new file mode 100644
index 0000000000..7a466c2aa2
--- /dev/null
+++ b/deps/npm/node_modules/co/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "co@^4.6.0",
+ "_id": "co@4.6.0",
+ "_inBundle": false,
+ "_integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
+ "_location": "/co",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "co@^4.6.0",
+ "name": "co",
+ "escapedName": "co",
+ "rawSpec": "^4.6.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.6.0"
+ },
+ "_requiredBy": [
+ "/ajv"
+ ],
+ "_resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "_shasum": "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184",
+ "_spec": "co@^4.6.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/ajv",
+ "bugs": {
+ "url": "https://github.com/tj/co/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "generator async control flow goodness",
+ "devDependencies": {
+ "browserify": "^10.0.0",
+ "istanbul-harmony": "0",
+ "mocha": "^2.0.0",
+ "mz": "^1.0.2"
+ },
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/tj/co#readme",
+ "keywords": [
+ "async",
+ "flow",
+ "generator",
+ "coro",
+ "coroutine"
+ ],
+ "license": "MIT",
+ "name": "co",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/tj/co.git"
+ },
+ "scripts": {
+ "browserify": "browserify index.js -o ./co-browser.js -s co",
+ "prepublish": "npm run browserify",
+ "test": "mocha --harmony",
+ "test-cov": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter dot",
+ "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot"
+ },
+ "version": "4.6.0"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/index.js b/deps/npm/node_modules/code-point-at/index.js
index 0432fe6a30..0432fe6a30 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/index.js
+++ b/deps/npm/node_modules/code-point-at/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/license b/deps/npm/node_modules/code-point-at/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/license
+++ b/deps/npm/node_modules/code-point-at/license
diff --git a/deps/npm/node_modules/code-point-at/package.json b/deps/npm/node_modules/code-point-at/package.json
new file mode 100644
index 0000000000..919df2bb13
--- /dev/null
+++ b/deps/npm/node_modules/code-point-at/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "code-point-at@^1.0.0",
+ "_id": "code-point-at@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+ "_location": "/code-point-at",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "code-point-at@^1.0.0",
+ "name": "code-point-at",
+ "escapedName": "code-point-at",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/cli-table2/string-width",
+ "/gauge/string-width",
+ "/tacks/string-width",
+ "/wide-align/string-width",
+ "/wrap-ansi/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
+ "_spec": "code-point-at@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/code-point-at/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "ES2015 `String#codePointAt()` ponyfill",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/code-point-at#readme",
+ "keywords": [
+ "es2015",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "string",
+ "str",
+ "code",
+ "point",
+ "at",
+ "codepoint",
+ "unicode"
+ ],
+ "license": "MIT",
+ "name": "code-point-at",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/code-point-at.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/readme.md b/deps/npm/node_modules/code-point-at/readme.md
index 4c97730e69..4c97730e69 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/code-point-at/readme.md
+++ b/deps/npm/node_modules/code-point-at/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md b/deps/npm/node_modules/color-convert/CHANGELOG.md
index 0a7bce4fd5..0a7bce4fd5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/CHANGELOG.md
+++ b/deps/npm/node_modules/color-convert/CHANGELOG.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE b/deps/npm/node_modules/color-convert/LICENSE
index 0e2e490918..0e2e490918 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/LICENSE
+++ b/deps/npm/node_modules/color-convert/LICENSE
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md b/deps/npm/node_modules/color-convert/README.md
index d4b08fc369..d4b08fc369 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/README.md
+++ b/deps/npm/node_modules/color-convert/README.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js b/deps/npm/node_modules/color-convert/conversions.js
index 19ca4a9bf5..19ca4a9bf5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/conversions.js
+++ b/deps/npm/node_modules/color-convert/conversions.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js b/deps/npm/node_modules/color-convert/index.js
index e65b5d775d..e65b5d775d 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/index.js
+++ b/deps/npm/node_modules/color-convert/index.js
diff --git a/deps/npm/node_modules/color-convert/package.json b/deps/npm/node_modules/color-convert/package.json
new file mode 100644
index 0000000000..e93e54aa94
--- /dev/null
+++ b/deps/npm/node_modules/color-convert/package.json
@@ -0,0 +1,81 @@
+{
+ "_from": "color-convert@^1.9.0",
+ "_id": "color-convert@1.9.1",
+ "_inBundle": false,
+ "_integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==",
+ "_location": "/color-convert",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "color-convert@^1.9.0",
+ "name": "color-convert",
+ "escapedName": "color-convert",
+ "rawSpec": "^1.9.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.9.0"
+ },
+ "_requiredBy": [
+ "/ansi-styles"
+ ],
+ "_resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz",
+ "_shasum": "c1261107aeb2f294ebffec9ed9ecad529a6097ed",
+ "_spec": "color-convert@^1.9.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/ansi-styles",
+ "author": {
+ "name": "Heather Arthur",
+ "email": "fayearthur@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/Qix-/color-convert/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "color-name": "^1.1.1"
+ },
+ "deprecated": false,
+ "description": "Plain color conversion functions",
+ "devDependencies": {
+ "chalk": "^1.1.1",
+ "xo": "^0.11.2"
+ },
+ "files": [
+ "index.js",
+ "conversions.js",
+ "css-keywords.js",
+ "route.js"
+ ],
+ "homepage": "https://github.com/Qix-/color-convert#readme",
+ "keywords": [
+ "color",
+ "colour",
+ "convert",
+ "converter",
+ "conversion",
+ "rgb",
+ "hsl",
+ "hsv",
+ "hwb",
+ "cmyk",
+ "ansi",
+ "ansi16"
+ ],
+ "license": "MIT",
+ "name": "color-convert",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Qix-/color-convert.git"
+ },
+ "scripts": {
+ "pretest": "xo",
+ "test": "node test/basic.js"
+ },
+ "version": "1.9.1",
+ "xo": {
+ "rules": {
+ "default-case": 0,
+ "no-inline-comments": 0,
+ "operator-linebreak": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js b/deps/npm/node_modules/color-convert/route.js
index cba36384cc..c573930d5b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/route.js
+++ b/deps/npm/node_modules/color-convert/route.js
@@ -11,11 +11,10 @@ var conversions = require('./conversions');
conversions that are not possible simply are not included.
*/
-// https://jsperf.com/object-keys-vs-for-in-with-closure/3
-var models = Object.keys(conversions);
-
function buildGraph() {
var graph = {};
+ // https://jsperf.com/object-keys-vs-for-in-with-closure/3
+ var models = Object.keys(conversions);
for (var len = models.length, i = 0; i < len; i++) {
graph[models[i]] = {
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json b/deps/npm/node_modules/color-name/.eslintrc.json
index c50c250446..c50c250446 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.eslintrc.json
+++ b/deps/npm/node_modules/color-name/.eslintrc.json
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore b/deps/npm/node_modules/color-name/.npmignore
index 3854c07dc6..3854c07dc6 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/.npmignore
+++ b/deps/npm/node_modules/color-name/.npmignore
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE b/deps/npm/node_modules/color-name/LICENSE
index 4d9802a89e..4d9802a89e 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/LICENSE
+++ b/deps/npm/node_modules/color-name/LICENSE
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md b/deps/npm/node_modules/color-name/README.md
index 3611a6b523..3611a6b523 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/README.md
+++ b/deps/npm/node_modules/color-name/README.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js b/deps/npm/node_modules/color-name/index.js
index e42aa68a54..e42aa68a54 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/index.js
+++ b/deps/npm/node_modules/color-name/index.js
diff --git a/deps/npm/node_modules/color-name/package.json b/deps/npm/node_modules/color-name/package.json
new file mode 100644
index 0000000000..c4570080cd
--- /dev/null
+++ b/deps/npm/node_modules/color-name/package.json
@@ -0,0 +1,53 @@
+{
+ "_from": "color-name@^1.1.1",
+ "_id": "color-name@1.1.3",
+ "_inBundle": false,
+ "_integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "_location": "/color-name",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "color-name@^1.1.1",
+ "name": "color-name",
+ "escapedName": "color-name",
+ "rawSpec": "^1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.1"
+ },
+ "_requiredBy": [
+ "/color-convert"
+ ],
+ "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "_shasum": "a7d0558bd89c42f795dd42328f740831ca53bc25",
+ "_spec": "color-name@^1.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/color-convert",
+ "author": {
+ "name": "DY",
+ "email": "dfcreative@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/dfcreative/color-name/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A list of color names and its values",
+ "homepage": "https://github.com/dfcreative/color-name",
+ "keywords": [
+ "color-name",
+ "color",
+ "color-keyword",
+ "keyword"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "color-name",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/dfcreative/color-name.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.1.3"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js b/deps/npm/node_modules/color-name/test.js
index 7a08746215..7a08746215 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/test.js
+++ b/deps/npm/node_modules/color-name/test.js
diff --git a/deps/npm/node_modules/colors/LICENSE b/deps/npm/node_modules/colors/LICENSE
new file mode 100644
index 0000000000..17880ff029
--- /dev/null
+++ b/deps/npm/node_modules/colors/LICENSE
@@ -0,0 +1,25 @@
+MIT License
+
+Original Library
+ - Copyright (c) Marak Squires
+
+Additional Functionality
+ - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/colors/README.md b/deps/npm/node_modules/colors/README.md
new file mode 100644
index 0000000000..c0550bdd52
--- /dev/null
+++ b/deps/npm/node_modules/colors/README.md
@@ -0,0 +1,184 @@
+# colors.js
+[![Build Status](https://travis-ci.org/Marak/colors.js.svg?branch=master)](https://travis-ci.org/Marak/colors.js)
+[![version](https://img.shields.io/npm/v/colors.svg)](https://www.npmjs.org/package/colors)
+[![dependencies](https://david-dm.org/Marak/colors.js.svg)](https://david-dm.org/Marak/colors.js)
+[![devDependencies](https://david-dm.org/Marak/colors.js/dev-status.svg)](https://david-dm.org/Marak/colors.js#info=devDependencies)
+
+Please check out the [roadmap](ROADMAP.md) for upcoming features and releases. Please open Issues to provide feedback, and check the `develop` branch for the latest bleeding-edge updates.
+
+## get color and style in your node.js console
+
+![Demo](https://raw.githubusercontent.com/Marak/colors.js/master/screenshots/colors.png)
+
+## Installation
+
+ npm install colors
+
+## colors and styles!
+
+### text colors
+
+ - black
+ - red
+ - green
+ - yellow
+ - blue
+ - magenta
+ - cyan
+ - white
+ - gray
+ - grey
+
+### background colors
+
+ - bgBlack
+ - bgRed
+ - bgGreen
+ - bgYellow
+ - bgBlue
+ - bgMagenta
+ - bgCyan
+ - bgWhite
+
+### styles
+
+ - reset
+ - bold
+ - dim
+ - italic
+ - underline
+ - inverse
+ - hidden
+ - strikethrough
+
+### extras
+
+ - rainbow
+ - zebra
+ - america
+ - trap
+ - random
+
+
+## Usage
+
+By popular demand, `colors` now ships with two types of usages!
+
+The super nifty way
+
+```js
+var colors = require('colors');
+
+console.log('hello'.green); // outputs green text
+console.log('i like cake and pies'.underline.red) // outputs red underlined text
+console.log('inverse the color'.inverse); // inverses the color
+console.log('OMG Rainbows!'.rainbow); // rainbow
+console.log('Run the trap'.trap); // Drops the bass
+
+```
+
+or a slightly less nifty way which doesn't extend `String.prototype`
+
+```js
+var colors = require('colors/safe');
+
+console.log(colors.green('hello')); // outputs green text
+console.log(colors.red.underline('i like cake and pies')) // outputs red underlined text
+console.log(colors.inverse('inverse the color')); // inverses the color
+console.log(colors.rainbow('OMG Rainbows!')); // rainbow
+console.log(colors.trap('Run the trap')); // Drops the bass
+
+```
+
+I prefer the first way. Some people seem to be afraid of extending `String.prototype` and prefer the second way.
+
+If you are writing good code you will never have an issue with the first approach. If you really don't want to touch `String.prototype`, the second usage will not touch `String` native object.
+
+## Disabling Colors
+
+To disable colors you can pass the following arguments in the command line to your application:
+
+```bash
+node myapp.js --no-color
+```
+
+## Console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data)
+
+```js
+var name = 'Marak';
+console.log(colors.green('Hello %s'), name);
+// outputs -> 'Hello Marak'
+```
+
+## Custom themes
+
+### Using standard API
+
+```js
+
+var colors = require('colors');
+
+colors.setTheme({
+ silly: 'rainbow',
+ input: 'grey',
+ verbose: 'cyan',
+ prompt: 'grey',
+ info: 'green',
+ data: 'grey',
+ help: 'cyan',
+ warn: 'yellow',
+ debug: 'blue',
+ error: 'red'
+});
+
+// outputs red text
+console.log("this is an error".error);
+
+// outputs yellow text
+console.log("this is a warning".warn);
+```
+
+### Using string safe API
+
+```js
+var colors = require('colors/safe');
+
+// set single property
+var error = colors.red;
+error('this is red');
+
+// set theme
+colors.setTheme({
+ silly: 'rainbow',
+ input: 'grey',
+ verbose: 'cyan',
+ prompt: 'grey',
+ info: 'green',
+ data: 'grey',
+ help: 'cyan',
+ warn: 'yellow',
+ debug: 'blue',
+ error: 'red'
+});
+
+// outputs red text
+console.log(colors.error("this is an error"));
+
+// outputs yellow text
+console.log(colors.warn("this is a warning"));
+
+```
+
+### Combining Colors
+
+```javascript
+var colors = require('colors');
+
+colors.setTheme({
+ custom: ['red', 'underline']
+});
+
+console.log('test'.custom);
+```
+
+*Protip: There is a secret undocumented style in `colors`. If you find the style you can summon him.*
diff --git a/deps/npm/node_modules/colors/examples/normal-usage.js b/deps/npm/node_modules/colors/examples/normal-usage.js
new file mode 100644
index 0000000000..da084886a9
--- /dev/null
+++ b/deps/npm/node_modules/colors/examples/normal-usage.js
@@ -0,0 +1,80 @@
+var colors = require('../lib/index');
+
+console.log('First some yellow text'.yellow);
+
+console.log('Underline that text'.yellow.underline);
+
+console.log('Make it bold and red'.red.bold);
+
+console.log(('Double Raindows All Day Long').rainbow);
+
+console.log('Drop the bass'.trap);
+
+console.log('DROP THE RAINBOW BASS'.trap.rainbow);
+
+// styles not widely supported
+console.log('Chains are also cool.'.bold.italic.underline.red);
+
+// styles not widely supported
+console.log('So '.green + 'are'.underline + ' ' + 'inverse'.inverse
+ + ' styles! '.yellow.bold);
+console.log('Zebras are so fun!'.zebra);
+
+//
+// Remark: .strikethrough may not work with Mac OS Terminal App
+//
+console.log('This is ' + 'not'.strikethrough + ' fun.');
+
+console.log('Background color attack!'.black.bgWhite);
+console.log('Use random styles on everything!'.random);
+console.log('America, Heck Yeah!'.america);
+
+
+console.log('Setting themes is useful');
+
+//
+// Custom themes
+//
+console.log('Generic logging theme as JSON'.green.bold.underline);
+// Load theme with JSON literal
+colors.setTheme({
+ silly: 'rainbow',
+ input: 'grey',
+ verbose: 'cyan',
+ prompt: 'grey',
+ info: 'green',
+ data: 'grey',
+ help: 'cyan',
+ warn: 'yellow',
+ debug: 'blue',
+ error: 'red',
+});
+
+// outputs red text
+console.log('this is an error'.error);
+
+// outputs yellow text
+console.log('this is a warning'.warn);
+
+// outputs grey text
+console.log('this is an input'.input);
+
+console.log('Generic logging theme as file'.green.bold.underline);
+
+// Load a theme from file
+try {
+ colors.setTheme(require(__dirname + '/../themes/generic-logging.js'));
+} catch (err) {
+ console.log(err);
+}
+
+// outputs red text
+console.log('this is an error'.error);
+
+// outputs yellow text
+console.log('this is a warning'.warn);
+
+// outputs grey text
+console.log('this is an input'.input);
+
+// console.log("Don't summon".zalgo)
diff --git a/deps/npm/node_modules/colors/examples/safe-string.js b/deps/npm/node_modules/colors/examples/safe-string.js
new file mode 100644
index 0000000000..bdce4ea6a5
--- /dev/null
+++ b/deps/npm/node_modules/colors/examples/safe-string.js
@@ -0,0 +1,75 @@
+var colors = require('../safe');
+
+console.log(colors.yellow('First some yellow text'));
+
+console.log(colors.yellow.underline('Underline that text'));
+
+console.log(colors.red.bold('Make it bold and red'));
+
+console.log(colors.rainbow('Double Raindows All Day Long'));
+
+console.log(colors.trap('Drop the bass'));
+
+console.log(colors.rainbow(colors.trap('DROP THE RAINBOW BASS')));
+
+// styles not widely supported
+console.log(colors.bold.italic.underline.red('Chains are also cool.'));
+
+// styles not widely supported
+console.log(colors.green('So ') + colors.underline('are') + ' '
+ + colors.inverse('inverse') + colors.yellow.bold(' styles! '));
+
+console.log(colors.zebra('Zebras are so fun!'));
+
+console.log('This is ' + colors.strikethrough('not') + ' fun.');
+
+
+console.log(colors.black.bgWhite('Background color attack!'));
+console.log(colors.random('Use random styles on everything!'));
+console.log(colors.america('America, Heck Yeah!'));
+
+console.log('Setting themes is useful');
+
+//
+// Custom themes
+//
+// console.log('Generic logging theme as JSON'.green.bold.underline);
+// Load theme with JSON literal
+colors.setTheme({
+ silly: 'rainbow',
+ input: 'grey',
+ verbose: 'cyan',
+ prompt: 'grey',
+ info: 'green',
+ data: 'grey',
+ help: 'cyan',
+ warn: 'yellow',
+ debug: 'blue',
+ error: 'red',
+});
+
+// outputs red text
+console.log(colors.error('this is an error'));
+
+// outputs yellow text
+console.log(colors.warn('this is a warning'));
+
+// outputs grey text
+console.log(colors.input('this is an input'));
+
+
+// console.log('Generic logging theme as file'.green.bold.underline);
+
+// Load a theme from file
+colors.setTheme(__dirname + '/../themes/generic-logging.js');
+
+// outputs red text
+console.log(colors.error('this is an error'));
+
+// outputs yellow text
+console.log(colors.warn('this is a warning'));
+
+// outputs grey text
+console.log(colors.input('this is an input'));
+
+// console.log(colors.zalgo("Don't summon him"))
diff --git a/deps/npm/node_modules/colors/index.d.ts b/deps/npm/node_modules/colors/index.d.ts
new file mode 100644
index 0000000000..faa9ab691b
--- /dev/null
+++ b/deps/npm/node_modules/colors/index.d.ts
@@ -0,0 +1,136 @@
+// Type definitions for Colors.js 1.2
+// Project: https://github.com/Marak/colors.js
+// Definitions by: Bart van der Schoor <https://github.com/Bartvds>, Staffan Eketorp <https://github.com/staeke>
+// Definitions: https://github.com/Marak/colors.js
+
+export interface Color {
+ (text: string): string;
+
+ strip: Color;
+ stripColors: Color;
+
+ black: Color;
+ red: Color;
+ green: Color;
+ yellow: Color;
+ blue: Color;
+ magenta: Color;
+ cyan: Color;
+ white: Color;
+ gray: Color;
+ grey: Color;
+
+ bgBlack: Color;
+ bgRed: Color;
+ bgGreen: Color;
+ bgYellow: Color;
+ bgBlue: Color;
+ bgMagenta: Color;
+ bgCyan: Color;
+ bgWhite: Color;
+
+ reset: Color;
+ bold: Color;
+ dim: Color;
+ italic: Color;
+ underline: Color;
+ inverse: Color;
+ hidden: Color;
+ strikethrough: Color;
+
+ rainbow: Color;
+ zebra: Color;
+ america: Color;
+ trap: Color;
+ random: Color;
+ zalgo: Color;
+}
+
+export function enable(): void;
+export function disable(): void;
+export function setTheme(theme: any): void;
+
+export let enabled: boolean;
+
+export const strip: Color;
+export const stripColors: Color;
+
+export const black: Color;
+export const red: Color;
+export const green: Color;
+export const yellow: Color;
+export const blue: Color;
+export const magenta: Color;
+export const cyan: Color;
+export const white: Color;
+export const gray: Color;
+export const grey: Color;
+
+export const bgBlack: Color;
+export const bgRed: Color;
+export const bgGreen: Color;
+export const bgYellow: Color;
+export const bgBlue: Color;
+export const bgMagenta: Color;
+export const bgCyan: Color;
+export const bgWhite: Color;
+
+export const reset: Color;
+export const bold: Color;
+export const dim: Color;
+export const italic: Color;
+export const underline: Color;
+export const inverse: Color;
+export const hidden: Color;
+export const strikethrough: Color;
+
+export const rainbow: Color;
+export const zebra: Color;
+export const america: Color;
+export const trap: Color;
+export const random: Color;
+export const zalgo: Color;
+
+declare global {
+ interface String {
+ strip: string;
+ stripColors: string;
+
+ black: string;
+ red: string;
+ green: string;
+ yellow: string;
+ blue: string;
+ magenta: string;
+ cyan: string;
+ white: string;
+ gray: string;
+ grey: string;
+
+ bgBlack: string;
+ bgRed: string;
+ bgGreen: string;
+ bgYellow: string;
+ bgBlue: string;
+ bgMagenta: string;
+ bgCyan: string;
+ bgWhite: string;
+
+ reset: string;
+ // @ts-ignore
+ bold: string;
+ dim: string;
+ italic: string;
+ underline: string;
+ inverse: string;
+ hidden: string;
+ strikethrough: string;
+
+ rainbow: string;
+ zebra: string;
+ america: string;
+ trap: string;
+ random: string;
+ zalgo: string;
+ }
+}
diff --git a/deps/npm/node_modules/colors/lib/colors.js b/deps/npm/node_modules/colors/lib/colors.js
new file mode 100644
index 0000000000..bbc5ac1262
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/colors.js
@@ -0,0 +1,199 @@
+/*
+
+The MIT License (MIT)
+
+Original Library
+ - Copyright (c) Marak Squires
+
+Additional functionality
+ - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
+
+*/
+
+var colors = {};
+module['exports'] = colors;
+
+colors.themes = {};
+
+var util = require('util');
+var ansiStyles = colors.styles = require('./styles');
+var defineProps = Object.defineProperties;
+var newLineRegex = new RegExp(/[\r\n]+/g);
+
+colors.supportsColor = require('./system/supports-colors').supportsColor;
+
+if (typeof colors.enabled === 'undefined') {
+ colors.enabled = colors.supportsColor() !== false;
+}
+
+colors.enable = function() {
+ colors.enabled = true;
+};
+
+colors.disable = function() {
+ colors.enabled = false;
+};
+
+colors.stripColors = colors.strip = function(str) {
+ return ('' + str).replace(/\x1B\[\d+m/g, '');
+};
+
+// eslint-disable-next-line no-unused-vars
+var stylize = colors.stylize = function stylize(str, style) {
+ if (!colors.enabled) {
+ return str+'';
+ }
+
+ return ansiStyles[style].open + str + ansiStyles[style].close;
+};
+
+var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g;
+var escapeStringRegexp = function(str) {
+ if (typeof str !== 'string') {
+ throw new TypeError('Expected a string');
+ }
+ return str.replace(matchOperatorsRe, '\\$&');
+};
+
+function build(_styles) {
+ var builder = function builder() {
+ return applyStyle.apply(builder, arguments);
+ };
+ builder._styles = _styles;
+ // __proto__ is used because we must return a function, but there is
+ // no way to create a function with a different prototype.
+ builder.__proto__ = proto;
+ return builder;
+}
+
+var styles = (function() {
+ var ret = {};
+ ansiStyles.grey = ansiStyles.gray;
+ Object.keys(ansiStyles).forEach(function(key) {
+ ansiStyles[key].closeRe =
+ new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
+ ret[key] = {
+ get: function() {
+ return build(this._styles.concat(key));
+ },
+ };
+ });
+ return ret;
+})();
+
+var proto = defineProps(function colors() {}, styles);
+
+function applyStyle() {
+ var args = Array.prototype.slice.call(arguments);
+
+ var str = args.map(function(arg) {
+ if (arg !== undefined && arg.constructor === String) {
+ return arg;
+ } else {
+ return util.inspect(arg);
+ }
+ }).join(' ');
+
+ if (!colors.enabled || !str) {
+ return str;
+ }
+
+ var newLinesPresent = str.indexOf('\n') != -1;
+
+ var nestedStyles = this._styles;
+
+ var i = nestedStyles.length;
+ while (i--) {
+ var code = ansiStyles[nestedStyles[i]];
+ str = code.open + str.replace(code.closeRe, code.open) + code.close;
+ if (newLinesPresent) {
+ str = str.replace(newLineRegex, code.close + '\n' + code.open);
+ }
+ }
+
+ return str;
+}
+
+colors.setTheme = function(theme) {
+ if (typeof theme === 'string') {
+ console.log('colors.setTheme now only accepts an object, not a string. ' +
+ 'If you are trying to set a theme from a file, it is now your (the ' +
+ 'caller\'s) responsibility to require the file. The old syntax ' +
+ 'looked like colors.setTheme(__dirname + ' +
+ '\'/../themes/generic-logging.js\'); The new syntax looks like '+
+ 'colors.setTheme(require(__dirname + ' +
+ '\'/../themes/generic-logging.js\'));');
+ return;
+ }
+ for (var style in theme) {
+ (function(style) {
+ colors[style] = function(str) {
+ if (typeof theme[style] === 'object') {
+ var out = str;
+ for (var i in theme[style]) {
+ out = colors[theme[style][i]](out);
+ }
+ return out;
+ }
+ return colors[theme[style]](str);
+ };
+ })(style);
+ }
+};
+
+function init() {
+ var ret = {};
+ Object.keys(styles).forEach(function(name) {
+ ret[name] = {
+ get: function() {
+ return build([name]);
+ },
+ };
+ });
+ return ret;
+}
+
+var sequencer = function sequencer(map, str) {
+ var exploded = str.split('');
+ exploded = exploded.map(map);
+ return exploded.join('');
+};
+
+// custom formatter methods
+colors.trap = require('./custom/trap');
+colors.zalgo = require('./custom/zalgo');
+
+// maps
+colors.maps = {};
+colors.maps.america = require('./maps/america');
+colors.maps.zebra = require('./maps/zebra');
+colors.maps.rainbow = require('./maps/rainbow');
+colors.maps.random = require('./maps/random');
+
+for (var map in colors.maps) {
+ (function(map) {
+ colors[map] = function(str) {
+ return sequencer(colors.maps[map], str);
+ };
+ })(map);
+}
+
+defineProps(colors, init());
diff --git a/deps/npm/node_modules/colors/lib/custom/trap.js b/deps/npm/node_modules/colors/lib/custom/trap.js
new file mode 100644
index 0000000000..1f97b2e623
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/custom/trap.js
@@ -0,0 +1,46 @@
+module['exports'] = function runTheTrap(text, options) {
+ var result = '';
+ text = text || 'Run the trap, drop the bass';
+ text = text.split('');
+ var trap = {
+ a: ['\u0040', '\u0104', '\u023a', '\u0245', '\u0394', '\u039b', '\u0414'],
+ b: ['\u00df', '\u0181', '\u0243', '\u026e', '\u03b2', '\u0e3f'],
+ c: ['\u00a9', '\u023b', '\u03fe'],
+ d: ['\u00d0', '\u018a', '\u0500', '\u0501', '\u0502', '\u0503'],
+ e: ['\u00cb', '\u0115', '\u018e', '\u0258', '\u03a3', '\u03be', '\u04bc',
+ '\u0a6c'],
+ f: ['\u04fa'],
+ g: ['\u0262'],
+ h: ['\u0126', '\u0195', '\u04a2', '\u04ba', '\u04c7', '\u050a'],
+ i: ['\u0f0f'],
+ j: ['\u0134'],
+ k: ['\u0138', '\u04a0', '\u04c3', '\u051e'],
+ l: ['\u0139'],
+ m: ['\u028d', '\u04cd', '\u04ce', '\u0520', '\u0521', '\u0d69'],
+ n: ['\u00d1', '\u014b', '\u019d', '\u0376', '\u03a0', '\u048a'],
+ o: ['\u00d8', '\u00f5', '\u00f8', '\u01fe', '\u0298', '\u047a', '\u05dd',
+ '\u06dd', '\u0e4f'],
+ p: ['\u01f7', '\u048e'],
+ q: ['\u09cd'],
+ r: ['\u00ae', '\u01a6', '\u0210', '\u024c', '\u0280', '\u042f'],
+ s: ['\u00a7', '\u03de', '\u03df', '\u03e8'],
+ t: ['\u0141', '\u0166', '\u0373'],
+ u: ['\u01b1', '\u054d'],
+ v: ['\u05d8'],
+ w: ['\u0428', '\u0460', '\u047c', '\u0d70'],
+ x: ['\u04b2', '\u04fe', '\u04fc', '\u04fd'],
+ y: ['\u00a5', '\u04b0', '\u04cb'],
+ z: ['\u01b5', '\u0240'],
+ };
+ text.forEach(function(c) {
+ c = c.toLowerCase();
+ var chars = trap[c] || [' '];
+ var rand = Math.floor(Math.random() * chars.length);
+ if (typeof trap[c] !== 'undefined') {
+ result += trap[c][rand];
+ } else {
+ result += c;
+ }
+ });
+ return result;
+};
diff --git a/deps/npm/node_modules/colors/lib/custom/zalgo.js b/deps/npm/node_modules/colors/lib/custom/zalgo.js
new file mode 100644
index 0000000000..1ab3891717
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/custom/zalgo.js
@@ -0,0 +1,109 @@
+// please no
+module['exports'] = function zalgo(text, options) {
+ text = text || ' he is here ';
+ var soul = {
+ 'up': [
+ 'Ģ', 'ĢŽ', 'Ģ„', 'Ģ…',
+ 'Ģæ', 'Ģ‘', 'Ģ†', 'Ģ',
+ 'Ķ’', 'Ķ—', 'Ķ‘', 'Ģ‡',
+ 'Ģˆ', 'ĢŠ', 'Ķ‚', 'Ģ“',
+ 'Ģˆ', 'ĶŠ', 'Ķ‹', 'ĶŒ',
+ 'Ģƒ', 'Ģ‚', 'ĢŒ', 'Ķ',
+ 'Ģ€', 'Ģ', 'Ģ‹', 'Ģ',
+ 'Ģ’', 'Ģ“', 'Ģ”', 'Ģ½',
+ 'Ģ‰', 'Ķ£', 'Ķ¤', 'Ķ„',
+ 'Ķ¦', 'Ķ§', 'ĶØ', 'Ķ©',
+ 'ĶŖ', 'Ķ«', 'Ķ¬', 'Ķ­',
+ 'Ķ®', 'ĶÆ', 'Ģ¾', 'Ķ›',
+ 'Ķ†', 'Ģš',
+ ],
+ 'down': [
+ 'Ģ–', 'Ģ—', 'Ģ˜', 'Ģ™',
+ 'Ģœ', 'Ģ', 'Ģž', 'ĢŸ',
+ 'Ģ ', 'Ģ¤', 'Ģ„', 'Ģ¦',
+ 'Ģ©', 'ĢŖ', 'Ģ«', 'Ģ¬',
+ 'Ģ­', 'Ģ®', 'ĢÆ', 'Ģ°',
+ 'Ģ±', 'Ģ²', 'Ģ³', 'Ģ¹',
+ 'Ģŗ', 'Ģ»', 'Ģ¼', 'Ķ…',
+ 'Ķ‡', 'Ķˆ', 'Ķ‰', 'Ķ',
+ 'ĶŽ', 'Ķ“', 'Ķ”', 'Ķ•',
+ 'Ķ–', 'Ķ™', 'Ķš', 'Ģ£',
+ ],
+ 'mid': [
+ 'Ģ•', 'Ģ›', 'Ģ€', 'Ģ',
+ 'Ķ˜', 'Ģ”', 'Ģ¢', 'Ģ§',
+ 'ĢØ', 'Ģ“', 'Ģµ', 'Ģ¶',
+ 'Ķœ', 'Ķ', 'Ķž',
+ 'ĶŸ', 'Ķ ', 'Ķ¢', 'Ģø',
+ 'Ģ·', 'Ķ”', ' Ņ‰',
+ ],
+ };
+ var all = [].concat(soul.up, soul.down, soul.mid);
+
+ function randomNumber(range) {
+ var r = Math.floor(Math.random() * range);
+ return r;
+ }
+
+ function isChar(character) {
+ var bool = false;
+ all.filter(function(i) {
+ bool = (i === character);
+ });
+ return bool;
+ }
+
+
+ function heComes(text, options) {
+ var result = '';
+ var counts;
+ var l;
+ options = options || {};
+ options['up'] =
+ typeof options['up'] !== 'undefined' ? options['up'] : true;
+ options['mid'] =
+ typeof options['mid'] !== 'undefined' ? options['mid'] : true;
+ options['down'] =
+ typeof options['down'] !== 'undefined' ? options['down'] : true;
+ options['size'] =
+ typeof options['size'] !== 'undefined' ? options['size'] : 'maxi';
+ text = text.split('');
+ for (l in text) {
+ if (isChar(l)) {
+ continue;
+ }
+ result = result + text[l];
+ counts = {'up': 0, 'down': 0, 'mid': 0};
+ switch (options.size) {
+ case 'mini':
+ counts.up = randomNumber(8);
+ counts.mid = randomNumber(2);
+ counts.down = randomNumber(8);
+ break;
+ case 'maxi':
+ counts.up = randomNumber(16) + 3;
+ counts.mid = randomNumber(4) + 1;
+ counts.down = randomNumber(64) + 3;
+ break;
+ default:
+ counts.up = randomNumber(8) + 1;
+ counts.mid = randomNumber(6) / 2;
+ counts.down = randomNumber(8) + 1;
+ break;
+ }
+
+ var arr = ['up', 'mid', 'down'];
+ for (var d in arr) {
+ var index = arr[d];
+ for (var i = 0; i <= counts[index]; i++) {
+ if (options[index]) {
+ result = result + soul[index][randomNumber(soul[index].length)];
+ }
+ }
+ }
+ }
+ return result;
+ }
+ // don't summon him
+ return heComes(text, options);
+};
diff --git a/deps/npm/node_modules/colors/lib/extendStringPrototype.js b/deps/npm/node_modules/colors/lib/extendStringPrototype.js
new file mode 100644
index 0000000000..0d486147ee
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/extendStringPrototype.js
@@ -0,0 +1,106 @@
+var colors = require('./colors');
+
+module['exports'] = function() {
+ //
+ // Extends prototype of native string object to allow for "foo".red syntax
+ //
+ var addProperty = function(color, func) {
+ String.prototype.__defineGetter__(color, func);
+ };
+
+ addProperty('strip', function() {
+ return colors.strip(this);
+ });
+
+ addProperty('stripColors', function() {
+ return colors.strip(this);
+ });
+
+ addProperty('trap', function() {
+ return colors.trap(this);
+ });
+
+ addProperty('zalgo', function() {
+ return colors.zalgo(this);
+ });
+
+ addProperty('zebra', function() {
+ return colors.zebra(this);
+ });
+
+ addProperty('rainbow', function() {
+ return colors.rainbow(this);
+ });
+
+ addProperty('random', function() {
+ return colors.random(this);
+ });
+
+ addProperty('america', function() {
+ return colors.america(this);
+ });
+
+ //
+ // Iterate through all default styles and colors
+ //
+ var x = Object.keys(colors.styles);
+ x.forEach(function(style) {
+ addProperty(style, function() {
+ return colors.stylize(this, style);
+ });
+ });
+
+ function applyTheme(theme) {
+ //
+ // Remark: This is a list of methods that exist
+ // on String that you should not overwrite.
+ //
+ var stringPrototypeBlacklist = [
+ '__defineGetter__', '__defineSetter__', '__lookupGetter__',
+ '__lookupSetter__', 'charAt', 'constructor', 'hasOwnProperty',
+ 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString',
+ 'valueOf', 'charCodeAt', 'indexOf', 'lastIndexOf', 'length',
+ 'localeCompare', 'match', 'repeat', 'replace', 'search', 'slice',
+ 'split', 'substring', 'toLocaleLowerCase', 'toLocaleUpperCase',
+ 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight',
+ ];
+
+ Object.keys(theme).forEach(function(prop) {
+ if (stringPrototypeBlacklist.indexOf(prop) !== -1) {
+ console.log('warn: '.red + ('String.prototype' + prop).magenta +
+ ' is probably something you don\'t want to override. ' +
+ 'Ignoring style name');
+ } else {
+ if (typeof(theme[prop]) === 'string') {
+ colors[prop] = colors[theme[prop]];
+ addProperty(prop, function() {
+ return colors[theme[prop]](this);
+ });
+ } else {
+ addProperty(prop, function() {
+ var ret = this;
+ for (var t = 0; t < theme[prop].length; t++) {
+ ret = colors[theme[prop][t]](ret);
+ }
+ return ret;
+ });
+ }
+ }
+ });
+ }
+
+ colors.setTheme = function(theme) {
+ if (typeof theme === 'string') {
+ console.log('colors.setTheme now only accepts an object, not a string. ' +
+ 'If you are trying to set a theme from a file, it is now your (the ' +
+ 'caller\'s) responsibility to require the file. The old syntax ' +
+ 'looked like colors.setTheme(__dirname + ' +
+ '\'/../themes/generic-logging.js\'); The new syntax looks like '+
+ 'colors.setTheme(require(__dirname + ' +
+ '\'/../themes/generic-logging.js\'));');
+ return;
+ } else {
+ applyTheme(theme);
+ }
+ };
+};
diff --git a/deps/npm/node_modules/colors/lib/index.js b/deps/npm/node_modules/colors/lib/index.js
new file mode 100644
index 0000000000..9df5ab7df3
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/index.js
@@ -0,0 +1,13 @@
+var colors = require('./colors');
+module['exports'] = colors;
+
+// Remark: By default, colors will add style properties to String.prototype.
+//
+// If you don't wish to extend String.prototype, you can do this instead and
+// native String will not be touched:
+//
+// var colors = require('colors/safe);
+// colors.red("foo")
+//
+//
+require('./extendStringPrototype')();
diff --git a/deps/npm/node_modules/colors/lib/maps/america.js b/deps/npm/node_modules/colors/lib/maps/america.js
new file mode 100644
index 0000000000..8670052927
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/maps/america.js
@@ -0,0 +1,12 @@
+var colors = require('../colors');
+
+module['exports'] = (function() {
+ return function(letter, i, exploded) {
+ if (letter === ' ') return letter;
+ switch (i%3) {
+ case 0: return colors.red(letter);
+ case 1: return colors.white(letter);
+ case 2: return colors.blue(letter);
+ }
+ };
+})();
diff --git a/deps/npm/node_modules/colors/lib/maps/rainbow.js b/deps/npm/node_modules/colors/lib/maps/rainbow.js
new file mode 100644
index 0000000000..42c67c220c
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/maps/rainbow.js
@@ -0,0 +1,13 @@
+var colors = require('../colors');
+
+module['exports'] = (function() {
+ // RoY G BiV
+ var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta'];
+ return function(letter, i, exploded) {
+ if (letter === ' ') {
+ return letter;
+ } else {
+ return colors[rainbowColors[i++ % rainbowColors.length]](letter);
+ }
+ };
+})();
diff --git a/deps/npm/node_modules/colors/lib/maps/random.js b/deps/npm/node_modules/colors/lib/maps/random.js
new file mode 100644
index 0000000000..88219dafeb
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/maps/random.js
@@ -0,0 +1,12 @@
+var colors = require('../colors');
+
+module['exports'] = (function() {
+ var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green',
+ 'blue', 'white', 'cyan', 'magenta'];
+ return function(letter, i, exploded) {
+ return letter === ' ' ? letter :
+ colors[
+ available[Math.round(Math.random() * (available.length - 2))]
+ ](letter);
+ };
+})();
diff --git a/deps/npm/node_modules/colors/lib/maps/zebra.js b/deps/npm/node_modules/colors/lib/maps/zebra.js
new file mode 100644
index 0000000000..28938c02d4
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/maps/zebra.js
@@ -0,0 +1,5 @@
+var colors = require('../colors');
+
+module['exports'] = function(letter, i, exploded) {
+ return i % 2 === 0 ? letter : colors.inverse(letter);
+};
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/styles.js b/deps/npm/node_modules/colors/lib/styles.js
index 067d59070c..02db9acf7c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/lib/styles.js
+++ b/deps/npm/node_modules/colors/lib/styles.js
@@ -65,13 +65,13 @@ var codes = {
blueBG: [44, 49],
magentaBG: [45, 49],
cyanBG: [46, 49],
- whiteBG: [47, 49]
+ whiteBG: [47, 49],
};
-Object.keys(codes).forEach(function (key) {
+Object.keys(codes).forEach(function(key) {
var val = codes[key];
var style = styles[key] = [];
style.open = '\u001b[' + val[0] + 'm';
style.close = '\u001b[' + val[1] + 'm';
-}); \ No newline at end of file
+});
diff --git a/deps/npm/node_modules/colors/lib/system/has-flag.js b/deps/npm/node_modules/colors/lib/system/has-flag.js
new file mode 100644
index 0000000000..a347dd4d7a
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/system/has-flag.js
@@ -0,0 +1,35 @@
+/*
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
+*/
+
+'use strict';
+
+module.exports = function(flag, argv) {
+ argv = argv || process.argv;
+
+ var terminatorPos = argv.indexOf('--');
+ var prefix = /^-{1,2}/.test(flag) ? '' : '--';
+ var pos = argv.indexOf(prefix + flag);
+
+ return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
+};
diff --git a/deps/npm/node_modules/colors/lib/system/supports-colors.js b/deps/npm/node_modules/colors/lib/system/supports-colors.js
new file mode 100644
index 0000000000..f1f9c8ff3d
--- /dev/null
+++ b/deps/npm/node_modules/colors/lib/system/supports-colors.js
@@ -0,0 +1,151 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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.
+
+*/
+
+'use strict';
+
+var os = require('os');
+var hasFlag = require('./has-flag.js');
+
+var env = process.env;
+
+var forceColor = void 0;
+if (hasFlag('no-color') || hasFlag('no-colors') || hasFlag('color=false')) {
+ forceColor = false;
+} else if (hasFlag('color') || hasFlag('colors') || hasFlag('color=true')
+ || hasFlag('color=always')) {
+ forceColor = true;
+}
+if ('FORCE_COLOR' in env) {
+ forceColor = env.FORCE_COLOR.length === 0
+ || parseInt(env.FORCE_COLOR, 10) !== 0;
+}
+
+function translateLevel(level) {
+ if (level === 0) {
+ return false;
+ }
+
+ return {
+ level: level,
+ hasBasic: true,
+ has256: level >= 2,
+ has16m: level >= 3,
+ };
+}
+
+function supportsColor(stream) {
+ if (forceColor === false) {
+ return 0;
+ }
+
+ if (hasFlag('color=16m') || hasFlag('color=full')
+ || hasFlag('color=truecolor')) {
+ return 3;
+ }
+
+ if (hasFlag('color=256')) {
+ return 2;
+ }
+
+ if (stream && !stream.isTTY && forceColor !== true) {
+ return 0;
+ }
+
+ var min = forceColor ? 1 : 0;
+
+ if (process.platform === 'win32') {
+ // Node.js 7.5.0 is the first version of Node.js to include a patch to
+ // libuv that enables 256 color output on Windows. Anything earlier and it
+ // won't work. However, here we target Node.js 8 at minimum as it is an LTS
+ // release, and Node.js 7 is not. Windows 10 build 10586 is the first
+ // Windows release that supports 256 colors. Windows 10 build 14931 is the
+ // first release that supports 16m/TrueColor.
+ var osRelease = os.release().split('.');
+ if (Number(process.versions.node.split('.')[0]) >= 8
+ && Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) {
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
+ }
+
+ return 1;
+ }
+
+ if ('CI' in env) {
+ if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(function(sign) {
+ return sign in env;
+ }) || env.CI_NAME === 'codeship') {
+ return 1;
+ }
+
+ return min;
+ }
+
+ if ('TEAMCITY_VERSION' in env) {
+ return (/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0
+ );
+ }
+
+ if ('TERM_PROGRAM' in env) {
+ var version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
+
+ switch (env.TERM_PROGRAM) {
+ case 'iTerm.app':
+ return version >= 3 ? 3 : 2;
+ case 'Hyper':
+ return 3;
+ case 'Apple_Terminal':
+ return 2;
+ // No default
+ }
+ }
+
+ if (/-256(color)?$/i.test(env.TERM)) {
+ return 2;
+ }
+
+ if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
+ return 1;
+ }
+
+ if ('COLORTERM' in env) {
+ return 1;
+ }
+
+ if (env.TERM === 'dumb') {
+ return min;
+ }
+
+ return min;
+}
+
+function getSupportLevel(stream) {
+ var level = supportsColor(stream);
+ return translateLevel(level);
+}
+
+module.exports = {
+ supportsColor: getSupportLevel,
+ stdout: getSupportLevel(process.stdout),
+ stderr: getSupportLevel(process.stderr),
+};
diff --git a/deps/npm/node_modules/colors/package.json b/deps/npm/node_modules/colors/package.json
new file mode 100644
index 0000000000..433bbb0034
--- /dev/null
+++ b/deps/npm/node_modules/colors/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "colors@^1.1.2",
+ "_id": "colors@1.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-EDpX3a7wHMWFA7PUHWPHNWqOxIIRSJetuwl0AS5Oi/5FMV8kWm69RTlgm00GKjBO1xFHMtBbL49yRtMMdticBw==",
+ "_location": "/colors",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "colors@^1.1.2",
+ "name": "colors",
+ "escapedName": "colors",
+ "rawSpec": "^1.1.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.2"
+ },
+ "_requiredBy": [
+ "/cli-table2"
+ ],
+ "_resolved": "https://registry.npmjs.org/colors/-/colors-1.3.0.tgz",
+ "_shasum": "5f20c9fef6945cb1134260aab33bfbdc8295e04e",
+ "_spec": "colors@^1.1.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2",
+ "author": {
+ "name": "Marak Squires"
+ },
+ "bugs": {
+ "url": "https://github.com/Marak/colors.js/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "get colors in your node.js console",
+ "devDependencies": {
+ "eslint": "^4.19.1",
+ "eslint-config-google": "^0.9.1"
+ },
+ "engines": {
+ "node": ">=0.1.90"
+ },
+ "files": [
+ "examples",
+ "lib",
+ "LICENSE",
+ "safe.js",
+ "themes",
+ "index.d.ts",
+ "safe.d.ts"
+ ],
+ "homepage": "https://github.com/Marak/colors.js",
+ "keywords": [
+ "ansi",
+ "terminal",
+ "colors"
+ ],
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "colors",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/Marak/colors.js.git"
+ },
+ "scripts": {
+ "lint": "eslint . --fix",
+ "test": "node tests/basic-test.js && node tests/safe-test.js"
+ },
+ "version": "1.3.0"
+}
diff --git a/deps/npm/node_modules/colors/safe.d.ts b/deps/npm/node_modules/colors/safe.d.ts
new file mode 100644
index 0000000000..2bafc27984
--- /dev/null
+++ b/deps/npm/node_modules/colors/safe.d.ts
@@ -0,0 +1,48 @@
+// Type definitions for Colors.js 1.2
+// Project: https://github.com/Marak/colors.js
+// Definitions by: Bart van der Schoor <https://github.com/Bartvds>, Staffan Eketorp <https://github.com/staeke>
+// Definitions: https://github.com/Marak/colors.js
+
+export const enabled: boolean;
+export function enable(): void;
+export function disable(): void;
+export function setTheme(theme: any): void;
+
+export function strip(str: string): string;
+export function stripColors(str: string): string;
+
+export function black(str: string): string;
+export function red(str: string): string;
+export function green(str: string): string;
+export function yellow(str: string): string;
+export function blue(str: string): string;
+export function magenta(str: string): string;
+export function cyan(str: string): string;
+export function white(str: string): string;
+export function gray(str: string): string;
+export function grey(str: string): string;
+
+export function bgBlack(str: string): string;
+export function bgRed(str: string): string;
+export function bgGreen(str: string): string;
+export function bgYellow(str: string): string;
+export function bgBlue(str: string): string;
+export function bgMagenta(str: string): string;
+export function bgCyan(str: string): string;
+export function bgWhite(str: string): string;
+
+export function reset(str: string): string;
+export function bold(str: string): string;
+export function dim(str: string): string;
+export function italic(str: string): string;
+export function underline(str: string): string;
+export function inverse(str: string): string;
+export function hidden(str: string): string;
+export function strikethrough(str: string): string;
+
+export function rainbow(str: string): string;
+export function zebra(str: string): string;
+export function america(str: string): string;
+export function trap(str: string): string;
+export function random(str: string): string;
+export function zalgo(str: string): string;
diff --git a/deps/npm/node_modules/colors/safe.js b/deps/npm/node_modules/colors/safe.js
new file mode 100644
index 0000000000..a013d54246
--- /dev/null
+++ b/deps/npm/node_modules/colors/safe.js
@@ -0,0 +1,10 @@
+//
+// Remark: Requiring this file will use the "safe" colors API,
+// which will not touch String.prototype.
+//
+// var colors = require('colors/safe');
+// colors.red("foo")
+//
+//
+var colors = require('./lib/colors');
+module['exports'] = colors;
diff --git a/deps/npm/node_modules/cli-table2/node_modules/colors/themes/generic-logging.js b/deps/npm/node_modules/colors/themes/generic-logging.js
index 571972c1ba..63adfe4ac3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/colors/themes/generic-logging.js
+++ b/deps/npm/node_modules/colors/themes/generic-logging.js
@@ -8,5 +8,5 @@ module['exports'] = {
help: 'cyan',
warn: 'yellow',
debug: 'blue',
- error: 'red'
-}; \ No newline at end of file
+ error: 'red',
+};
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/columnify/node_modules/ansi-regex/index.js
index b9574ed7e8..b9574ed7e8 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ b/deps/npm/node_modules/columnify/node_modules/ansi-regex/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/license b/deps/npm/node_modules/columnify/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/license
+++ b/deps/npm/node_modules/columnify/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/columnify/node_modules/ansi-regex/package.json b/deps/npm/node_modules/columnify/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..257bf82157
--- /dev/null
+++ b/deps/npm/node_modules/columnify/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/columnify/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/columnify/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/columnify/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/columnify/node_modules/ansi-regex/readme.md
index 6a928edf0f..6a928edf0f 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ b/deps/npm/node_modules/columnify/node_modules/ansi-regex/readme.md
diff --git a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index b5fbbd7d76..0000000000
--- a/deps/npm/node_modules/columnify/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/columnify/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/columnify/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/columnify/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE b/deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE
deleted file mode 100644
index 313ef1e888..0000000000
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/LICENSE
+++ /dev/null
@@ -1,30 +0,0 @@
-wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation
-=======================================================================
-
-Copyright (C) 2012 by Jun Woong.
-
-This package is a JavaScript porting of `wcwidth()` implementation
-[by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c).
-
-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.
-
-
-THIS SOFTWARE IS PROVIDED ``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 AUTHOR
-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/columnify/node_modules/wcwidth/docs/index.md b/deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md
deleted file mode 100644
index 5c5126d032..0000000000
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/docs/index.md
+++ /dev/null
@@ -1,65 +0,0 @@
-### Javascript porting of Markus Kuhn's wcwidth() implementation
-
-The following explanation comes from the original C implementation:
-
-This is an implementation of wcwidth() and wcswidth() (defined in
-IEEE Std 1002.1-2001) for Unicode.
-
-http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
-http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
-
-In fixed-width output devices, Latin characters all occupy a single
-"cell" position of equal width, whereas ideographic CJK characters
-occupy two such cells. Interoperability between terminal-line
-applications and (teletype-style) character terminals using the
-UTF-8 encoding requires agreement on which character should advance
-the cursor by how many cell positions. No established formal
-standards exist at present on which Unicode character shall occupy
-how many cell positions on character terminals. These routines are
-a first attempt of defining such behavior based on simple rules
-applied to data provided by the Unicode Consortium.
-
-For some graphical characters, the Unicode standard explicitly
-defines a character-cell width via the definition of the East Asian
-FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes.
-In all these cases, there is no ambiguity about which width a
-terminal shall use. For characters in the East Asian Ambiguous (A)
-class, the width choice depends purely on a preference of backward
-compatibility with either historic CJK or Western practice.
-Choosing single-width for these characters is easy to justify as
-the appropriate long-term solution, as the CJK practice of
-displaying these characters as double-width comes from historic
-implementation simplicity (8-bit encoded characters were displayed
-single-width and 16-bit ones double-width, even for Greek,
-Cyrillic, etc.) and not any typographic considerations.
-
-Much less clear is the choice of width for the Not East Asian
-(Neutral) class. Existing practice does not dictate a width for any
-of these characters. It would nevertheless make sense
-typographically to allocate two character cells to characters such
-as for instance EM SPACE or VOLUME INTEGRAL, which cannot be
-represented adequately with a single-width glyph. The following
-routines at present merely assign a single-cell width to all
-neutral characters, in the interest of simplicity. This is not
-entirely satisfactory and should be reconsidered before
-establishing a formal standard in this area. At the moment, the
-decision which Not East Asian (Neutral) characters should be
-represented by double-width glyphs cannot yet be answered by
-applying a simple rule from the Unicode database content. Setting
-up a proper standard for the behavior of UTF-8 character terminals
-will require a careful analysis not only of each Unicode character,
-but also of each presentation form, something the author of these
-routines has avoided to do so far.
-
-http://www.unicode.org/unicode/reports/tr11/
-
-Markus Kuhn -- 2007-05-26 (Unicode 5.0)
-
-Permission to use, copy, modify, and distribute this software
-for any purpose and without fee is hereby granted. The author
-disclaims all warranties with regard to this software.
-
-Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
-
-
-
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json
deleted file mode 100644
index 02b4e49018..0000000000
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/package.json
+++ /dev/null
@@ -1,139 +0,0 @@
-{
- "_from": "clone@^1.0.2",
- "_id": "clone@1.0.2",
- "_integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=",
- "_location": "/columnify/wcwidth/defaults/clone",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "clone@^1.0.2",
- "name": "clone",
- "escapedName": "clone",
- "rawSpec": "^1.0.2",
- "saveSpec": null,
- "fetchSpec": "^1.0.2"
- },
- "_requiredBy": [
- "/columnify/wcwidth/defaults"
- ],
- "_resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz",
- "_shasum": "260b7a99ebb1edfe247538175f783243cb19d149",
- "_shrinkwrap": null,
- "_spec": "clone@^1.0.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults",
- "author": {
- "name": "Paul Vorbach",
- "email": "paul@vorba.ch",
- "url": "http://paul.vorba.ch/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/pvorb/node-clone/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Blake Miner",
- "email": "miner.blake@gmail.com",
- "url": "http://www.blakeminer.com/"
- },
- {
- "name": "Tian You",
- "email": "axqd001@gmail.com",
- "url": "http://blog.axqd.net/"
- },
- {
- "name": "George Stagas",
- "email": "gstagas@gmail.com",
- "url": "http://stagas.com/"
- },
- {
- "name": "Tobiasz Cudnik",
- "email": "tobiasz.cudnik@gmail.com",
- "url": "https://github.com/TobiaszCudnik"
- },
- {
- "name": "Pavel Lang",
- "email": "langpavel@phpskelet.org",
- "url": "https://github.com/langpavel"
- },
- {
- "name": "Dan MacTough",
- "url": "http://yabfog.com/"
- },
- {
- "name": "w1nk",
- "url": "https://github.com/w1nk"
- },
- {
- "name": "Hugh Kennedy",
- "url": "http://twitter.com/hughskennedy"
- },
- {
- "name": "Dustin Diaz",
- "url": "http://dustindiaz.com"
- },
- {
- "name": "Ilya Shaisultanov",
- "url": "https://github.com/diversario"
- },
- {
- "name": "Nathan MacInnes",
- "email": "nathan@macinn.es",
- "url": "http://macinn.es/"
- },
- {
- "name": "Benjamin E. Coe",
- "email": "ben@npmjs.com",
- "url": "https://twitter.com/benjamincoe"
- },
- {
- "name": "Nathan Zadoks",
- "url": "https://github.com/nathan7"
- },
- {
- "name": "RĆ³bert Oroszi",
- "email": "robert+gh@oroszi.net",
- "url": "https://github.com/oroce"
- },
- {
- "name": "AurƩlio A. Heckert",
- "url": "http://softwarelivre.org/aurium"
- },
- {
- "name": "Guy Ellis",
- "url": "http://www.guyellisrocks.com/"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "deep cloning of objects and arrays",
- "devDependencies": {
- "nodeunit": "~0.9.0"
- },
- "engines": {
- "node": ">=0.8"
- },
- "homepage": "https://github.com/pvorb/node-clone#readme",
- "license": "MIT",
- "main": "clone.js",
- "name": "clone",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/pvorb/node-clone.git"
- },
- "scripts": {
- "test": "nodeunit test.js"
- },
- "tags": [
- "clone",
- "object",
- "array",
- "function",
- "date"
- ],
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html b/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html
deleted file mode 100644
index 4d532bb717..0000000000
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/test-apart-ctx.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<html>
- <head>
- <meta charset="utf-8">
- <title>Clone Test-Suite (Browser)</title>
- </head>
- <body>
- <script>
- var data = document.location.search.substr(1).split('&');
- try {
- ctx = parent[data[0]];
- eval(decodeURIComponent(data[1]));
- window.results = results;
- } catch(e) {
- var extra = '';
- if (e.name == 'SecurityError')
- extra = 'This test suite needs to be run on an http server.';
- alert('Apart Context iFrame Error\n' + e + '\n\n' + extra);
- throw e;
- }
- </script>
- </body>
-</html>
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 @@
-<!doctype html>
-<html>
- <head>
- <meta charset="utf-8">
- <title>Clone Test-Suite (Browser)</title>
- <script>
- var module = {};
- var tests = exports = module.exports = {};
-
- function require(moduleName) {
- if (moduleName == './') {
- return clone;
- }
- }
-
- function log(str) {
- logList.innerHTML += '<li>' + str + '</li>';
- }
- </script>
- <script src="clone.js"></script>
- <script src="test.js"></script>
- </head>
- <body>
- <h1 id="nodeunit-header">Clone Test-Suite (Browser)</h1>
- Tests started: <span id="testsStarted"></span>;
- Tests finished: <span id="testsFinished"></span>.
- <ul id="logList"></ul>
- <script>
- /* Methods copied from
- * https://github.com/caolan/nodeunit/blob/master/lib/assert.js
- */
- function isUndefinedOrNull(value) {
- return value === null || value === undefined;
- }
-
- function isArguments(object) {
- return Object.prototype.toString.call(object) == '[object Arguments]';
- }
-
- var _keys = function (obj){
- if (Object.keys) return Object.keys(obj);
- if (typeof obj != 'object' && typeof obj != 'function') {
- throw new TypeError('-');
- }
- var keys = [];
- for(var k in obj) if(obj.hasOwnProperty(k)) keys.push(k);
- return keys;
- };
-
- function objEquiv(a, b) {
- if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
- return false;
-
- if (a.prototype !== b.prototype)
- return false;
-
- if (isArguments(a)) {
- if (!isArguments(b)) return false;
- a = pSlice.call(a);
- b = pSlice.call(b);
- return _deepEqual(a, b);
- }
-
- try {
- var ka = _keys(a), kb = _keys(b), key, i;
- } catch (e) {
- return false
- }
-
- if (ka.length != kb.length)
- return false;
-
- ka.sort();
- kb.sort();
-
- for (i = ka.length - 1; i >= 0; i--) {
- if (ka[i] != kb[i]) return false;
- }
-
- for (i = ka.length - 1; i >= 0; i--) {
- key = ka[i];
- if (!_deepEqual(a[key], b[key] ))
- return false;
- }
-
- return true;
- }
- function _deepEqual(actual, expected) {
- if (actual === expected) {
- return true;
- } else if (actual instanceof Date && expected instanceof Date) {
- return actual.getTime() === expected.getTime();
- } else if (actual instanceof RegExp && expected instanceof RegExp) {
- return actual.source === expected.source &&
- actual.global === expected.global &&
- actual.ignoreCase === expected.ignoreCase &&
- actual.multiline === expected.multiline;
- } else if (typeof actual != 'object' && typeof expected != 'object') {
- return actual == expected;
- } else {
- return objEquiv(actual, expected);
- }
- }
-
- for (var testName in tests) {
- setTimeout((function (testName) {
- try {
- testsStarted.innerHTML = (parseInt(testsStarted.innerHTML) || 0) + 1;
- function incFinished() {
- testsFinished.innerHTML = (parseInt(testsFinished.innerHTML) || 0) + 1;
- }
-
- tests[testName]({
- expect: function (num) {
- this._expect = num
- },
- ok: function (val) {
- if(!val) throw new Error(val + ' is not ok.')
- },
- equal: function (a,b) {
- if (a != b) throw new Error(a + ' is not equal to ' + b)
- },
- notEqual: function (a,b) {
- if (a == b) throw new Error(a + ' is equal to ' + b)
- },
- strictEqual: function (a,b) {
- if (a !== b) throw new Error(a + ' is not strict equal to ' + b)
- },
- deepEqual: function (a,b) {
- if (!_deepEqual(a,b))
- throw new Error(JSON.stringify(a) + ' is not deep equal to ' +
- JSON.stringify(b))
- },
- done: function () {
- log(testName + ' <span style="color:blue">is ok</span>.');
- incFinished();
- }
- });
- } catch(e) {
- log(testName + ' <span style="color:red">FAIL.</span> <small>'+ e +'</small>');
- incFinished();
- console.log(e);
- }
- })(testName), 1);
- }
- </script>
- </body>
-</html>
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/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/request/node_modules/combined-stream/License b/deps/npm/node_modules/combined-stream/License
index 4804b7ab41..4804b7ab41 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/License
+++ b/deps/npm/node_modules/combined-stream/License
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/request/node_modules/combined-stream/lib/combined_stream.js b/deps/npm/node_modules/combined-stream/lib/combined_stream.js
index 6b5c21b6b4..809b3c2e7d 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/lib/combined_stream.js
+++ b/deps/npm/node_modules/combined-stream/lib/combined_stream.js
@@ -1,6 +1,7 @@
var util = require('util');
var Stream = require('stream').Stream;
var DelayedStream = require('delayed-stream');
+var defer = require('./defer.js');
module.exports = CombinedStream;
function CombinedStream() {
@@ -88,7 +89,7 @@ CombinedStream.prototype._getNext = function() {
this._handleErrors(stream);
}
- this._pipeNext(stream);
+ defer(this._pipeNext.bind(this, stream));
}.bind(this));
};
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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/concat-map/.travis.yml
index f1d0f13c8a..f1d0f13c8a 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
+++ b/deps/npm/node_modules/concat-map/.travis.yml
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/concat-map/LICENSE
index ee27ba4b44..ee27ba4b44 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
+++ b/deps/npm/node_modules/concat-map/LICENSE
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/concat-map/README.markdown
index 408f70a1be..408f70a1be 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
+++ b/deps/npm/node_modules/concat-map/README.markdown
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/concat-map/example/map.js
index 33656217b6..33656217b6 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
+++ b/deps/npm/node_modules/concat-map/example/map.js
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/concat-map/index.js
index b29a7812e5..b29a7812e5 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
+++ b/deps/npm/node_modules/concat-map/index.js
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/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/concat-map/test/map.js
index fdbd7022f6..fdbd7022f6 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
+++ b/deps/npm/node_modules/concat-map/test/map.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/LICENSE b/deps/npm/node_modules/concat-stream/LICENSE
index 1e836b4760..1e836b4760 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/LICENSE
+++ b/deps/npm/node_modules/concat-stream/LICENSE
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/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/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@gmail.com> (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/update-notifier/node_modules/configstore/readme.md b/deps/npm/node_modules/configstore/readme.md
index 6af37719bc..6af37719bc 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/readme.md
+++ b/deps/npm/node_modules/configstore/readme.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/LICENSE b/deps/npm/node_modules/console-control-strings/LICENSE
index e756052969..e756052969 100644
--- a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/LICENSE
+++ b/deps/npm/node_modules/console-control-strings/LICENSE
diff --git a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/README.md b/deps/npm/node_modules/console-control-strings/README.md
index 59cbd5639d..59cbd5639d 100644
--- a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/README.md
+++ b/deps/npm/node_modules/console-control-strings/README.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/index.js b/deps/npm/node_modules/console-control-strings/index.js
index bf890348ec..bf890348ec 100644
--- a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/index.js
+++ b/deps/npm/node_modules/console-control-strings/index.js
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/move-concurrently/node_modules/copy-concurrently/LICENSE b/deps/npm/node_modules/copy-concurrently/LICENSE
index e0040f6659..e0040f6659 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/LICENSE
+++ b/deps/npm/node_modules/copy-concurrently/LICENSE
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/README.md b/deps/npm/node_modules/copy-concurrently/README.md
index e27b016d72..e27b016d72 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/README.md
+++ b/deps/npm/node_modules/copy-concurrently/README.md
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js b/deps/npm/node_modules/copy-concurrently/copy.js
index 36ce9f46fb..36ce9f46fb 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/copy.js
+++ b/deps/npm/node_modules/copy-concurrently/copy.js
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/is-windows.js b/deps/npm/node_modules/copy-concurrently/is-windows.js
index 8a991d54f5..8a991d54f5 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/is-windows.js
+++ b/deps/npm/node_modules/copy-concurrently/is-windows.js
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/.npmignore
+++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/.npmignore
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/iferr/index.coffee b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee
index da6d00719f..da6d00719f 100644
--- a/deps/npm/node_modules/iferr/index.coffee
+++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.coffee
diff --git a/deps/npm/node_modules/iferr/index.js b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js
index 78fce3d2b0..78fce3d2b0 100644
--- a/deps/npm/node_modules/iferr/index.js
+++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/index.js
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/iferr/test/index.coffee b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee
index be0bc56fdf..be0bc56fdf 100644
--- a/deps/npm/node_modules/iferr/test/index.coffee
+++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/index.coffee
diff --git a/deps/npm/node_modules/iferr/test/mocha.opts b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts
index 019defcf15..019defcf15 100644
--- a/deps/npm/node_modules/iferr/test/mocha.opts
+++ b/deps/npm/node_modules/copy-concurrently/node_modules/iferr/test/mocha.opts
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/readable-stream/node_modules/core-util-is/LICENSE b/deps/npm/node_modules/core-util-is/LICENSE
index d8d7f9437d..d8d7f9437d 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/LICENSE
+++ b/deps/npm/node_modules/core-util-is/LICENSE
diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/core-util-is/README.md
index 5a76b4149c..5a76b4149c 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/README.md
+++ b/deps/npm/node_modules/core-util-is/README.md
diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/core-util-is/float.patch
index a06d5c05f7..a06d5c05f7 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/float.patch
+++ b/deps/npm/node_modules/core-util-is/float.patch
diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/core-util-is/lib/util.js
index ff4c851c07..ff4c851c07 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/lib/util.js
+++ b/deps/npm/node_modules/core-util-is/lib/util.js
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/readable-stream/node_modules/core-util-is/test.js b/deps/npm/node_modules/core-util-is/test.js
index 1a490c65ac..1a490c65ac 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/test.js
+++ b/deps/npm/node_modules/core-util-is/test.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/index.js b/deps/npm/node_modules/create-error-class/index.js
index e415aa7ede..e415aa7ede 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/index.js
+++ b/deps/npm/node_modules/create-error-class/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/license b/deps/npm/node_modules/create-error-class/license
index 1aeb74fd25..1aeb74fd25 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/license
+++ b/deps/npm/node_modules/create-error-class/license
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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/readme.md b/deps/npm/node_modules/create-error-class/readme.md
index 1076de88eb..1076de88eb 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/readme.md
+++ b/deps/npm/node_modules/create-error-class/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md b/deps/npm/node_modules/cross-spawn/CHANGELOG.md
index f1298a82f7..f1298a82f7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md
+++ b/deps/npm/node_modules/cross-spawn/CHANGELOG.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/LICENSE b/deps/npm/node_modules/cross-spawn/LICENSE
index db5e914de1..db5e914de1 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/LICENSE
+++ b/deps/npm/node_modules/cross-spawn/LICENSE
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/README.md b/deps/npm/node_modules/cross-spawn/README.md
index dde730df1b..dde730df1b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/README.md
+++ b/deps/npm/node_modules/cross-spawn/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/index.js b/deps/npm/node_modules/cross-spawn/index.js
index 7814a9692d..7814a9692d 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/index.js
+++ b/deps/npm/node_modules/cross-spawn/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/enoent.js b/deps/npm/node_modules/cross-spawn/lib/enoent.js
index d0a193aecd..d0a193aecd 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/enoent.js
+++ b/deps/npm/node_modules/cross-spawn/lib/enoent.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/parse.js b/deps/npm/node_modules/cross-spawn/lib/parse.js
index 10a013625b..10a013625b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/parse.js
+++ b/deps/npm/node_modules/cross-spawn/lib/parse.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js b/deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js
index 367263f669..367263f669 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
+++ b/deps/npm/node_modules/cross-spawn/lib/util/escapeArgument.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js b/deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js
index d9c25b2656..d9c25b2656 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js
+++ b/deps/npm/node_modules/cross-spawn/lib/util/escapeCommand.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js b/deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
index 9f2eba6355..9f2eba6355 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
+++ b/deps/npm/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js
index 2cf3541c99..2cf3541c99 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js
+++ b/deps/npm/node_modules/cross-spawn/lib/util/readShebang.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js b/deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js
index b7a9490974..b7a9490974 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js
+++ b/deps/npm/node_modules/cross-spawn/lib/util/resolveCommand.js
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/request/node_modules/hawk/node_modules/cryptiles/.npmignore b/deps/npm/node_modules/cryptiles/.npmignore
index adac8ad9c6..adac8ad9c6 100644
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/.npmignore
+++ b/deps/npm/node_modules/cryptiles/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE b/deps/npm/node_modules/cryptiles/LICENSE
index 4028ccd3fa..4028ccd3fa 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/LICENSE
+++ b/deps/npm/node_modules/cryptiles/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md b/deps/npm/node_modules/cryptiles/README.md
index b3df9e67ff..b3df9e67ff 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/README.md
+++ b/deps/npm/node_modules/cryptiles/README.md
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js b/deps/npm/node_modules/cryptiles/lib/index.js
index 511eab66d4..511eab66d4 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/lib/index.js
+++ b/deps/npm/node_modules/cryptiles/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/LICENSE b/deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE
index 94b91cbf09..94b91cbf09 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/LICENSE
+++ b/deps/npm/node_modules/cryptiles/node_modules/boom/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/README.md b/deps/npm/node_modules/cryptiles/node_modules/boom/README.md
index 50d5b0d7d2..50d5b0d7d2 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/README.md
+++ b/deps/npm/node_modules/cryptiles/node_modules/boom/README.md
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/lib/index.js b/deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js
index c57c79d434..c57c79d434 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/lib/index.js
+++ b/deps/npm/node_modules/cryptiles/node_modules/boom/lib/index.js
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/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/index.js b/deps/npm/node_modules/crypto-random-string/index.js
index ceaf65bfcf..ceaf65bfcf 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/index.js
+++ b/deps/npm/node_modules/crypto-random-string/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/crypto-random-string/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ b/deps/npm/node_modules/crypto-random-string/license
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/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/readme.md b/deps/npm/node_modules/crypto-random-string/readme.md
index dab5a2e9c2..dab5a2e9c2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/readme.md
+++ b/deps/npm/node_modules/crypto-random-string/readme.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/.npmignore b/deps/npm/node_modules/cyclist/.npmignore
index ba99195bae..ba99195bae 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/.npmignore
+++ b/deps/npm/node_modules/cyclist/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/README.md b/deps/npm/node_modules/cyclist/README.md
index 50c35cc5fd..50c35cc5fd 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/README.md
+++ b/deps/npm/node_modules/cyclist/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/index.js b/deps/npm/node_modules/cyclist/index.js
index baf710c3a9..baf710c3a9 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/index.js
+++ b/deps/npm/node_modules/cyclist/index.js
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/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/CHANGES.md b/deps/npm/node_modules/dashdash/CHANGES.md
index d7c8f4ebe1..d7c8f4ebe1 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/CHANGES.md
+++ b/deps/npm/node_modules/dashdash/CHANGES.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/LICENSE.txt b/deps/npm/node_modules/dashdash/LICENSE.txt
index b09f304539..b09f304539 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/LICENSE.txt
+++ b/deps/npm/node_modules/dashdash/LICENSE.txt
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/README.md b/deps/npm/node_modules/dashdash/README.md
index e47b106e63..e47b106e63 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/README.md
+++ b/deps/npm/node_modules/dashdash/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/etc/dashdash.bash_completion.in b/deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in
index dc333096c8..dc333096c8 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/etc/dashdash.bash_completion.in
+++ b/deps/npm/node_modules/dashdash/etc/dashdash.bash_completion.in
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js b/deps/npm/node_modules/dashdash/lib/dashdash.js
index adb6f13b15..adb6f13b15 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/lib/dashdash.js
+++ b/deps/npm/node_modules/dashdash/lib/dashdash.js
diff --git a/deps/npm/node_modules/dashdash/package.json b/deps/npm/node_modules/dashdash/package.json
new file mode 100644
index 0000000000..3556970faf
--- /dev/null
+++ b/deps/npm/node_modules/dashdash/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "dashdash@^1.12.0",
+ "_id": "dashdash@1.14.1",
+ "_inBundle": false,
+ "_integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+ "_location": "/dashdash",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "dashdash@^1.12.0",
+ "name": "dashdash",
+ "escapedName": "dashdash",
+ "rawSpec": "^1.12.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.12.0"
+ },
+ "_requiredBy": [
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "_shasum": "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0",
+ "_spec": "dashdash@^1.12.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "Trent Mick",
+ "email": "trentm@gmail.com",
+ "url": "http://trentm.com"
+ },
+ "bugs": {
+ "url": "https://github.com/trentm/node-dashdash/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "A light, featureful and explicit option parsing library.",
+ "devDependencies": {
+ "nodeunit": "0.9.x"
+ },
+ "engines": {
+ "node": ">=0.10"
+ },
+ "homepage": "https://github.com/trentm/node-dashdash#readme",
+ "keywords": [
+ "option",
+ "parser",
+ "parsing",
+ "cli",
+ "command",
+ "args",
+ "bash",
+ "completion"
+ ],
+ "license": "MIT",
+ "main": "./lib/dashdash.js",
+ "name": "dashdash",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/trentm/node-dashdash.git"
+ },
+ "scripts": {
+ "test": "nodeunit test/*.test.js"
+ },
+ "version": "1.14.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml b/deps/npm/node_modules/debug/.coveralls.yml
index 20a7068581..20a7068581 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml
+++ b/deps/npm/node_modules/debug/.coveralls.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore b/deps/npm/node_modules/debug/.npmignore
index 5f60eecc84..5f60eecc84 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore
+++ b/deps/npm/node_modules/debug/.npmignore
diff --git a/deps/npm/node_modules/debug/.travis.yml b/deps/npm/node_modules/debug/.travis.yml
new file mode 100644
index 0000000000..a764300377
--- /dev/null
+++ b/deps/npm/node_modules/debug/.travis.yml
@@ -0,0 +1,20 @@
+sudo: false
+
+language: node_js
+
+node_js:
+ - "4"
+ - "6"
+ - "8"
+
+install:
+ - make install
+
+script:
+ - make lint
+ - make test
+
+matrix:
+ include:
+ - node_js: '8'
+ env: BROWSER=1
diff --git a/deps/npm/node_modules/debug/CHANGELOG.md b/deps/npm/node_modules/debug/CHANGELOG.md
new file mode 100644
index 0000000000..609591bbbf
--- /dev/null
+++ b/deps/npm/node_modules/debug/CHANGELOG.md
@@ -0,0 +1,395 @@
+
+3.1.0 / 2017-09-26
+==================
+
+ * Add `DEBUG_HIDE_DATE` env var (#486)
+ * Remove ReDoS regexp in %o formatter (#504)
+ * Remove "component" from package.json
+ * Remove `component.json`
+ * Ignore package-lock.json
+ * Examples: fix colors printout
+ * Fix: browser detection
+ * Fix: spelling mistake (#496, @EdwardBetts)
+
+3.0.1 / 2017-08-24
+==================
+
+ * Fix: Disable colors in Edge and Internet Explorer (#489)
+
+3.0.0 / 2017-08-08
+==================
+
+ * Breaking: Remove DEBUG_FD (#406)
+ * Breaking: Use `Date#toISOString()` instead to `Date#toUTCString()` when output is not a TTY (#418)
+ * Breaking: Make millisecond timer namespace specific and allow 'always enabled' output (#408)
+ * Addition: document `enabled` flag (#465)
+ * Addition: add 256 colors mode (#481)
+ * Addition: `enabled()` updates existing debug instances, add `destroy()` function (#440)
+ * Update: component: update "ms" to v2.0.0
+ * Update: separate the Node and Browser tests in Travis-CI
+ * Update: refactor Readme, fixed documentation, added "Namespace Colors" section, redid screenshots
+ * Update: separate Node.js and web browser examples for organization
+ * Update: update "browserify" to v14.4.0
+ * Fix: fix Readme typo (#473)
+
+2.6.9 / 2017-09-22
+==================
+
+ * remove ReDoS regexp in %o formatter (#504)
+
+2.6.8 / 2017-05-18
+==================
+
+ * Fix: Check for undefined on browser globals (#462, @marbemac)
+
+2.6.7 / 2017-05-16
+==================
+
+ * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
+ * Fix: Inline extend function in node implementation (#452, @dougwilson)
+ * Docs: Fix typo (#455, @msasad)
+
+2.6.5 / 2017-04-27
+==================
+
+ * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
+ * Misc: clean up browser reference checks (#447, @thebigredgeek)
+ * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
+
+
+2.6.4 / 2017-04-20
+==================
+
+ * Fix: bug that would occur if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
+ * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
+ * Misc: update "ms" to v0.7.3 (@tootallnate)
+
+2.6.3 / 2017-03-13
+==================
+
+ * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
+ * Docs: Changelog fix (@thebigredgeek)
+
+2.6.2 / 2017-03-10
+==================
+
+ * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
+ * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
+ * Docs: Add Slackin invite badge (@tootallnate)
+
+2.6.1 / 2017-02-10
+==================
+
+ * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
+ * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
+ * Fix: IE8 "Expected identifier" error (#414, @vgoma)
+ * Fix: Namespaces would not disable once enabled (#409, @musikov)
+
+2.6.0 / 2016-12-28
+==================
+
+ * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
+ * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
+ * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
+
+2.5.2 / 2016-12-25
+==================
+
+ * Fix: reference error on window within webworkers (#393, @KlausTrainer)
+ * Docs: fixed README typo (#391, @lurch)
+ * Docs: added notice about v3 api discussion (@thebigredgeek)
+
+2.5.1 / 2016-12-20
+==================
+
+ * Fix: babel-core compatibility
+
+2.5.0 / 2016-12-20
+==================
+
+ * Fix: wrong reference in bower file (@thebigredgeek)
+ * Fix: webworker compatibility (@thebigredgeek)
+ * Fix: output formatting issue (#388, @kribblo)
+ * Fix: babel-loader compatibility (#383, @escwald)
+ * Misc: removed built asset from repo and publications (@thebigredgeek)
+ * Misc: moved source files to /src (#378, @yamikuronue)
+ * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
+ * Test: coveralls integration (#378, @yamikuronue)
+ * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
+
+2.4.5 / 2016-12-17
+==================
+
+ * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
+ * Fix: custom log function (#379, @hsiliev)
+ * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
+ * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
+ * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
+
+2.4.4 / 2016-12-14
+==================
+
+ * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
+
+2.4.3 / 2016-12-14
+==================
+
+ * Fix: navigation.userAgent error for react native (#364, @escwald)
+
+2.4.2 / 2016-12-14
+==================
+
+ * Fix: browser colors (#367, @tootallnate)
+ * Misc: travis ci integration (@thebigredgeek)
+ * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
+
+2.4.1 / 2016-12-13
+==================
+
+ * Fix: typo that broke the package (#356)
+
+2.4.0 / 2016-12-13
+==================
+
+ * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
+ * Fix: revert "handle regex special characters" (@tootallnate)
+ * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
+ * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
+ * Improvement: allow colors in workers (#335, @botverse)
+ * Improvement: use same color for same namespace. (#338, @lchenay)
+
+2.3.3 / 2016-11-09
+==================
+
+ * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
+ * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
+ * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
+
+2.3.2 / 2016-11-09
+==================
+
+ * Fix: be super-safe in index.js as well (@TooTallNate)
+ * Fix: should check whether process exists (Tom Newby)
+
+2.3.1 / 2016-11-09
+==================
+
+ * Fix: Added electron compatibility (#324, @paulcbetts)
+ * Improvement: Added performance optimizations (@tootallnate)
+ * Readme: Corrected PowerShell environment variable example (#252, @gimre)
+ * Misc: Removed yarn lock file from source control (#321, @fengmk2)
+
+2.3.0 / 2016-11-07
+==================
+
+ * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
+ * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
+ * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
+ * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
+ * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
+ * Package: Update "ms" to 0.7.2 (#315, @DevSide)
+ * Package: removed superfluous version property from bower.json (#207 @kkirsche)
+ * Readme: fix USE_COLORS to DEBUG_COLORS
+ * Readme: Doc fixes for format string sugar (#269, @mlucool)
+ * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
+ * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
+ * Readme: better docs for browser support (#224, @matthewmueller)
+ * Tooling: Added yarn integration for development (#317, @thebigredgeek)
+ * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
+ * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
+ * Misc: Updated contributors (@thebigredgeek)
+
+2.2.0 / 2015-05-09
+==================
+
+ * package: update "ms" to v0.7.1 (#202, @dougwilson)
+ * README: add logging to file example (#193, @DanielOchoa)
+ * README: fixed a typo (#191, @amir-s)
+ * browser: expose `storage` (#190, @stephenmathieson)
+ * Makefile: add a `distclean` target (#189, @stephenmathieson)
+
+2.1.3 / 2015-03-13
+==================
+
+ * Updated stdout/stderr example (#186)
+ * Updated example/stdout.js to match debug current behaviour
+ * Renamed example/stderr.js to stdout.js
+ * Update Readme.md (#184)
+ * replace high intensity foreground color for bold (#182, #183)
+
+2.1.2 / 2015-03-01
+==================
+
+ * dist: recompile
+ * update "ms" to v0.7.0
+ * package: update "browserify" to v9.0.3
+ * component: fix "ms.js" repo location
+ * changed bower package name
+ * updated documentation about using debug in a browser
+ * fix: security error on safari (#167, #168, @yields)
+
+2.1.1 / 2014-12-29
+==================
+
+ * browser: use `typeof` to check for `console` existence
+ * browser: check for `console.log` truthiness (fix IE 8/9)
+ * browser: add support for Chrome apps
+ * Readme: added Windows usage remarks
+ * Add `bower.json` to properly support bower install
+
+2.1.0 / 2014-10-15
+==================
+
+ * node: implement `DEBUG_FD` env variable support
+ * package: update "browserify" to v6.1.0
+ * package: add "license" field to package.json (#135, @panuhorsmalahti)
+
+2.0.0 / 2014-09-01
+==================
+
+ * package: update "browserify" to v5.11.0
+ * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
+
+1.0.4 / 2014-07-15
+==================
+
+ * dist: recompile
+ * example: remove `console.info()` log usage
+ * example: add "Content-Type" UTF-8 header to browser example
+ * browser: place %c marker after the space character
+ * browser: reset the "content" color via `color: inherit`
+ * browser: add colors support for Firefox >= v31
+ * debug: prefer an instance `log()` function over the global one (#119)
+ * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
+
+1.0.3 / 2014-07-09
+==================
+
+ * Add support for multiple wildcards in namespaces (#122, @seegno)
+ * browser: fix lint
+
+1.0.2 / 2014-06-10
+==================
+
+ * browser: update color palette (#113, @gscottolson)
+ * common: make console logging function configurable (#108, @timoxley)
+ * node: fix %o colors on old node <= 0.8.x
+ * Makefile: find node path using shell/which (#109, @timoxley)
+
+1.0.1 / 2014-06-06
+==================
+
+ * browser: use `removeItem()` to clear localStorage
+ * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
+ * package: add "contributors" section
+ * node: fix comment typo
+ * README: list authors
+
+1.0.0 / 2014-06-04
+==================
+
+ * make ms diff be global, not be scope
+ * debug: ignore empty strings in enable()
+ * node: make DEBUG_COLORS able to disable coloring
+ * *: export the `colors` array
+ * npmignore: don't publish the `dist` dir
+ * Makefile: refactor to use browserify
+ * package: add "browserify" as a dev dependency
+ * Readme: add Web Inspector Colors section
+ * node: reset terminal color for the debug content
+ * node: map "%o" to `util.inspect()`
+ * browser: map "%j" to `JSON.stringify()`
+ * debug: add custom "formatters"
+ * debug: use "ms" module for humanizing the diff
+ * Readme: add "bash" syntax highlighting
+ * browser: add Firebug color support
+ * browser: add colors for WebKit browsers
+ * node: apply log to `console`
+ * rewrite: abstract common logic for Node & browsers
+ * add .jshintrc file
+
+0.8.1 / 2014-04-14
+==================
+
+ * package: re-add the "component" section
+
+0.8.0 / 2014-03-30
+==================
+
+ * add `enable()` method for nodejs. Closes #27
+ * change from stderr to stdout
+ * remove unnecessary index.js file
+
+0.7.4 / 2013-11-13
+==================
+
+ * remove "browserify" key from package.json (fixes something in browserify)
+
+0.7.3 / 2013-10-30
+==================
+
+ * fix: catch localStorage security error when cookies are blocked (Chrome)
+ * add debug(err) support. Closes #46
+ * add .browser prop to package.json. Closes #42
+
+0.7.2 / 2013-02-06
+==================
+
+ * fix package.json
+ * fix: Mobile Safari (private mode) is broken with debug
+ * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
+
+0.7.1 / 2013-02-05
+==================
+
+ * add repository URL to package.json
+ * add DEBUG_COLORED to force colored output
+ * add browserify support
+ * fix component. Closes #24
+
+0.7.0 / 2012-05-04
+==================
+
+ * Added .component to package.json
+ * Added debug.component.js build
+
+0.6.0 / 2012-03-16
+==================
+
+ * Added support for "-" prefix in DEBUG [Vinay Pulim]
+ * Added `.enabled` flag to the node version [TooTallNate]
+
+0.5.0 / 2012-02-02
+==================
+
+ * Added: humanize diffs. Closes #8
+ * Added `debug.disable()` to the CS variant
+ * Removed padding. Closes #10
+ * Fixed: persist client-side variant again. Closes #9
+
+0.4.0 / 2012-02-01
+==================
+
+ * Added browser variant support for older browsers [TooTallNate]
+ * Added `debug.enable('project:*')` to browser variant [TooTallNate]
+ * Added padding to diff (moved it to the right)
+
+0.3.0 / 2012-01-26
+==================
+
+ * Added millisecond diff when isatty, otherwise UTC string
+
+0.2.0 / 2012-01-22
+==================
+
+ * Added wildcard support
+
+0.1.0 / 2011-12-02
+==================
+
+ * Added: remove colors unless stderr isatty [TooTallNate]
+
+0.0.1 / 2010-01-03
+==================
+
+ * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE b/deps/npm/node_modules/debug/LICENSE
index 54a5d93f4d..54a5d93f4d 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE
+++ b/deps/npm/node_modules/debug/LICENSE
diff --git a/deps/npm/node_modules/debug/Makefile b/deps/npm/node_modules/debug/Makefile
new file mode 100644
index 0000000000..3ddd1360e6
--- /dev/null
+++ b/deps/npm/node_modules/debug/Makefile
@@ -0,0 +1,58 @@
+# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
+THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
+THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
+
+# BIN directory
+BIN := $(THIS_DIR)/node_modules/.bin
+
+# Path
+PATH := node_modules/.bin:$(PATH)
+SHELL := /bin/bash
+
+# applications
+NODE ?= $(shell which node)
+YARN ?= $(shell which yarn)
+PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
+BROWSERIFY ?= $(NODE) $(BIN)/browserify
+
+install: node_modules
+
+browser: dist/debug.js
+
+node_modules: package.json
+ @NODE_ENV= $(PKG) install
+ @touch node_modules
+
+dist/debug.js: src/*.js node_modules
+ @mkdir -p dist
+ @$(BROWSERIFY) \
+ --standalone debug \
+ . > dist/debug.js
+
+lint:
+ @eslint *.js src/*.js
+
+test-node:
+ @istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
+ @cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
+
+test-browser:
+ @$(MAKE) browser
+ @karma start --single-run
+
+test-all:
+ @concurrently \
+ "make test-node" \
+ "make test-browser"
+
+test:
+ @if [ "x$(BROWSER)" = "x" ]; then \
+ $(MAKE) test-node; \
+ else \
+ $(MAKE) test-browser; \
+ fi
+
+clean:
+ rimraf dist coverage
+
+.PHONY: browser install clean lint test test-all test-node test-browser
diff --git a/deps/npm/node_modules/debug/README.md b/deps/npm/node_modules/debug/README.md
new file mode 100644
index 0000000000..8e754d17b1
--- /dev/null
+++ b/deps/npm/node_modules/debug/README.md
@@ -0,0 +1,368 @@
+# debug
+[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
+[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
+
+<img width="647" src="https://user-images.githubusercontent.com/71256/29091486-fa38524c-7c37-11e7-895f-e7ec8e1039b6.png">
+
+A tiny JavaScript debugging utility modelled after Node.js core's debugging
+technique. Works in Node.js and web browsers.
+
+## Installation
+
+```bash
+$ npm install debug
+```
+
+## Usage
+
+`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
+
+Example [_app.js_](./examples/node/app.js):
+
+```js
+var debug = require('debug')('http')
+ , http = require('http')
+ , name = 'My App';
+
+// fake app
+
+debug('booting %o', name);
+
+http.createServer(function(req, res){
+ debug(req.method + ' ' + req.url);
+ res.end('hello\n');
+}).listen(3000, function(){
+ debug('listening');
+});
+
+// fake worker of some kind
+
+require('./worker');
+```
+
+Example [_worker.js_](./examples/node/worker.js):
+
+```js
+var a = require('debug')('worker:a')
+ , b = require('debug')('worker:b');
+
+function work() {
+ a('doing lots of uninteresting work');
+ setTimeout(work, Math.random() * 1000);
+}
+
+work();
+
+function workb() {
+ b('doing some work');
+ setTimeout(workb, Math.random() * 2000);
+}
+
+workb();
+```
+
+The `DEBUG` environment variable is then used to enable these based on space or
+comma-delimited names.
+
+Here are some examples:
+
+<img width="647" alt="screen shot 2017-08-08 at 12 53 04 pm" src="https://user-images.githubusercontent.com/71256/29091703-a6302cdc-7c38-11e7-8304-7c0b3bc600cd.png">
+<img width="647" alt="screen shot 2017-08-08 at 12 53 38 pm" src="https://user-images.githubusercontent.com/71256/29091700-a62a6888-7c38-11e7-800b-db911291ca2b.png">
+<img width="647" alt="screen shot 2017-08-08 at 12 53 25 pm" src="https://user-images.githubusercontent.com/71256/29091701-a62ea114-7c38-11e7-826a-2692bedca740.png">
+
+#### Windows note
+
+On Windows the environment variable is set using the `set` command.
+
+```cmd
+set DEBUG=*,-not_this
+```
+
+Note that PowerShell uses different syntax to set environment variables.
+
+```cmd
+$env:DEBUG = "*,-not_this"
+```
+
+Then, run the program to be debugged as usual.
+
+
+## Namespace Colors
+
+Every debug instance has a color generated for it based on its namespace name.
+This helps when visually parsing the debug output to identify which debug instance
+a debug line belongs to.
+
+#### Node.js
+
+In Node.js, colors are enabled when stderr is a TTY. You also _should_ install
+the [`supports-color`](https://npmjs.org/supports-color) module alongside debug,
+otherwise debug will only use a small handful of basic colors.
+
+<img width="521" src="https://user-images.githubusercontent.com/71256/29092181-47f6a9e6-7c3a-11e7-9a14-1928d8a711cd.png">
+
+#### Web Browser
+
+Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
+option. These are WebKit web inspectors, Firefox ([since version
+31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
+and the Firebug plugin for Firefox (any version).
+
+<img width="524" src="https://user-images.githubusercontent.com/71256/29092033-b65f9f2e-7c39-11e7-8e32-f6f0d8e865c1.png">
+
+
+## Millisecond diff
+
+When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
+
+<img width="647" src="https://user-images.githubusercontent.com/71256/29091486-fa38524c-7c37-11e7-895f-e7ec8e1039b6.png">
+
+When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below:
+
+<img width="647" src="https://user-images.githubusercontent.com/71256/29091956-6bd78372-7c39-11e7-8c55-c948396d6edd.png">
+
+
+## Conventions
+
+If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output.
+
+## Wildcards
+
+The `*` character may be used as a wildcard. Suppose for example your library has
+debuggers named "connect:bodyParser", "connect:compress", "connect:session",
+instead of listing all three with
+`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do
+`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
+
+You can also exclude specific debuggers by prefixing them with a "-" character.
+For example, `DEBUG=*,-connect:*` would include all debuggers except those
+starting with "connect:".
+
+## Environment Variables
+
+When running through Node.js, you can set a few environment variables that will
+change the behavior of the debug logging:
+
+| Name | Purpose |
+|-----------|-------------------------------------------------|
+| `DEBUG` | Enables/disables specific debugging namespaces. |
+| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). |
+| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
+| `DEBUG_DEPTH` | Object inspection depth. |
+| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
+
+
+__Note:__ The environment variables beginning with `DEBUG_` end up being
+converted into an Options object that gets used with `%o`/`%O` formatters.
+See the Node.js documentation for
+[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
+for the complete list.
+
+## Formatters
+
+Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting.
+Below are the officially supported formatters:
+
+| Formatter | Representation |
+|-----------|----------------|
+| `%O` | Pretty-print an Object on multiple lines. |
+| `%o` | Pretty-print an Object all on a single line. |
+| `%s` | String. |
+| `%d` | Number (both integer and float). |
+| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
+| `%%` | Single percent sign ('%'). This does not consume an argument. |
+
+
+### Custom formatters
+
+You can add custom formatters by extending the `debug.formatters` object.
+For example, if you wanted to add support for rendering a Buffer as hex with
+`%h`, you could do something like:
+
+```js
+const createDebug = require('debug')
+createDebug.formatters.h = (v) => {
+ return v.toString('hex')
+}
+
+// ā€¦elsewhere
+const debug = createDebug('foo')
+debug('this is hex: %h', new Buffer('hello world'))
+// foo this is hex: 68656c6c6f20776f726c6421 +0ms
+```
+
+
+## Browser Support
+
+You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
+or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
+if you don't want to build it yourself.
+
+Debug's enable state is currently persisted by `localStorage`.
+Consider the situation shown below where you have `worker:a` and `worker:b`,
+and wish to debug both. You can enable this using `localStorage.debug`:
+
+```js
+localStorage.debug = 'worker:*'
+```
+
+And then refresh the page.
+
+```js
+a = debug('worker:a');
+b = debug('worker:b');
+
+setInterval(function(){
+ a('doing some work');
+}, 1000);
+
+setInterval(function(){
+ b('doing some work');
+}, 1200);
+```
+
+
+## Output streams
+
+ By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
+
+Example [_stdout.js_](./examples/node/stdout.js):
+
+```js
+var debug = require('debug');
+var error = debug('app:error');
+
+// by default stderr is used
+error('goes to stderr!');
+
+var log = debug('app:log');
+// set this namespace to log via console.log
+log.log = console.log.bind(console); // don't forget to bind to console!
+log('goes to stdout');
+error('still goes to stderr!');
+
+// set all output to go via console.info
+// overrides all per-namespace log settings
+debug.log = console.info.bind(console);
+error('now goes to stdout via console.info');
+log('still goes to stdout, but via console.info now');
+```
+
+## Checking whether a debug target is enabled
+
+After you've created a debug instance, you can determine whether or not it is
+enabled by checking the `enabled` property:
+
+```javascript
+const debug = require('debug')('http');
+
+if (debug.enabled) {
+ // do stuff...
+}
+```
+
+You can also manually toggle this property to force the debug instance to be
+enabled or disabled.
+
+
+## Authors
+
+ - TJ Holowaychuk
+ - Nathan Rajlich
+ - Andrew Rhyne
+
+## Backers
+
+Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
+
+<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
+<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
+
+
+## Sponsors
+
+Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
+
+<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
+<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
+
+## License
+
+(The MIT License)
+
+Copyright (c) 2014-2017 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
+
+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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js b/deps/npm/node_modules/debug/karma.conf.js
index 103a82d15b..103a82d15b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js
+++ b/deps/npm/node_modules/debug/karma.conf.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js b/deps/npm/node_modules/debug/node.js
index 7fc36fe6db..7fc36fe6db 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js
+++ b/deps/npm/node_modules/debug/node.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js b/deps/npm/node_modules/debug/node_modules/ms/index.js
index 6a522b16b3..6a522b16b3 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js
+++ b/deps/npm/node_modules/debug/node_modules/ms/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md b/deps/npm/node_modules/debug/node_modules/ms/license.md
index 69b61253a3..69b61253a3 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md
+++ b/deps/npm/node_modules/debug/node_modules/ms/license.md
diff --git a/deps/npm/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/debug/node_modules/ms/package.json
new file mode 100644
index 0000000000..0ed6cf2502
--- /dev/null
+++ b/deps/npm/node_modules/debug/node_modules/ms/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "ms@2.0.0",
+ "_id": "ms@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
+ "_location": "/debug/ms",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "ms@2.0.0",
+ "name": "ms",
+ "escapedName": "ms",
+ "rawSpec": "2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "2.0.0"
+ },
+ "_requiredBy": [
+ "/debug"
+ ],
+ "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
+ "_spec": "ms@2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/debug",
+ "bugs": {
+ "url": "https://github.com/zeit/ms/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Tiny milisecond conversion utility",
+ "devDependencies": {
+ "eslint": "3.19.0",
+ "expect.js": "0.3.1",
+ "husky": "0.13.3",
+ "lint-staged": "3.4.1",
+ "mocha": "3.4.1"
+ },
+ "eslintConfig": {
+ "extends": "eslint:recommended",
+ "env": {
+ "node": true,
+ "es6": true
+ }
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/zeit/ms#readme",
+ "license": "MIT",
+ "lint-staged": {
+ "*.js": [
+ "npm run lint",
+ "prettier --single-quote --write",
+ "git add"
+ ]
+ },
+ "main": "./index",
+ "name": "ms",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zeit/ms.git"
+ },
+ "scripts": {
+ "lint": "eslint lib/* bin/*",
+ "precommit": "lint-staged",
+ "test": "mocha tests.js"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md b/deps/npm/node_modules/debug/node_modules/ms/readme.md
index 84a9974ccc..84a9974ccc 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md
+++ b/deps/npm/node_modules/debug/node_modules/ms/readme.md
diff --git a/deps/npm/node_modules/debug/package.json b/deps/npm/node_modules/debug/package.json
new file mode 100644
index 0000000000..ca32e3b8f5
--- /dev/null
+++ b/deps/npm/node_modules/debug/package.json
@@ -0,0 +1,85 @@
+{
+ "_from": "debug@3.1.0",
+ "_id": "debug@3.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "_location": "/debug",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "debug@3.1.0",
+ "name": "debug",
+ "escapedName": "debug",
+ "rawSpec": "3.1.0",
+ "saveSpec": null,
+ "fetchSpec": "3.1.0"
+ },
+ "_requiredBy": [
+ "/cloudant-follow",
+ "/eslint",
+ "/http-proxy-agent",
+ "/https-proxy-agent"
+ ],
+ "_resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "_shasum": "5bb5a0672628b64149566ba16819e61518c67261",
+ "_spec": "debug@3.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/http-proxy-agent",
+ "author": {
+ "name": "TJ Holowaychuk",
+ "email": "tj@vision-media.ca"
+ },
+ "browser": "./src/browser.js",
+ "bugs": {
+ "url": "https://github.com/visionmedia/debug/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io"
+ },
+ {
+ "name": "Andrew Rhyne",
+ "email": "rhyneandrew@gmail.com"
+ }
+ ],
+ "dependencies": {
+ "ms": "2.0.0"
+ },
+ "deprecated": false,
+ "description": "small debugging utility",
+ "devDependencies": {
+ "browserify": "14.4.0",
+ "chai": "^3.5.0",
+ "concurrently": "^3.1.0",
+ "coveralls": "^2.11.15",
+ "eslint": "^3.12.1",
+ "istanbul": "^0.4.5",
+ "karma": "^1.3.0",
+ "karma-chai": "^0.1.0",
+ "karma-mocha": "^1.3.0",
+ "karma-phantomjs-launcher": "^1.0.2",
+ "karma-sinon": "^1.0.5",
+ "mocha": "^3.2.0",
+ "mocha-lcov-reporter": "^1.2.0",
+ "rimraf": "^2.5.4",
+ "sinon": "^1.17.6",
+ "sinon-chai": "^2.8.0"
+ },
+ "homepage": "https://github.com/visionmedia/debug#readme",
+ "keywords": [
+ "debug",
+ "log",
+ "debugger"
+ ],
+ "license": "MIT",
+ "main": "./src/index.js",
+ "name": "debug",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/visionmedia/debug.git"
+ },
+ "version": "3.1.0"
+}
diff --git a/deps/npm/node_modules/debug/src/browser.js b/deps/npm/node_modules/debug/src/browser.js
new file mode 100644
index 0000000000..f5149ff529
--- /dev/null
+++ b/deps/npm/node_modules/debug/src/browser.js
@@ -0,0 +1,195 @@
+/**
+ * This is the web browser implementation of `debug()`.
+ *
+ * Expose `debug()` as the module.
+ */
+
+exports = module.exports = require('./debug');
+exports.log = log;
+exports.formatArgs = formatArgs;
+exports.save = save;
+exports.load = load;
+exports.useColors = useColors;
+exports.storage = 'undefined' != typeof chrome
+ && 'undefined' != typeof chrome.storage
+ ? chrome.storage.local
+ : localstorage();
+
+/**
+ * Colors.
+ */
+
+exports.colors = [
+ '#0000CC', '#0000FF', '#0033CC', '#0033FF', '#0066CC', '#0066FF', '#0099CC',
+ '#0099FF', '#00CC00', '#00CC33', '#00CC66', '#00CC99', '#00CCCC', '#00CCFF',
+ '#3300CC', '#3300FF', '#3333CC', '#3333FF', '#3366CC', '#3366FF', '#3399CC',
+ '#3399FF', '#33CC00', '#33CC33', '#33CC66', '#33CC99', '#33CCCC', '#33CCFF',
+ '#6600CC', '#6600FF', '#6633CC', '#6633FF', '#66CC00', '#66CC33', '#9900CC',
+ '#9900FF', '#9933CC', '#9933FF', '#99CC00', '#99CC33', '#CC0000', '#CC0033',
+ '#CC0066', '#CC0099', '#CC00CC', '#CC00FF', '#CC3300', '#CC3333', '#CC3366',
+ '#CC3399', '#CC33CC', '#CC33FF', '#CC6600', '#CC6633', '#CC9900', '#CC9933',
+ '#CCCC00', '#CCCC33', '#FF0000', '#FF0033', '#FF0066', '#FF0099', '#FF00CC',
+ '#FF00FF', '#FF3300', '#FF3333', '#FF3366', '#FF3399', '#FF33CC', '#FF33FF',
+ '#FF6600', '#FF6633', '#FF9900', '#FF9933', '#FFCC00', '#FFCC33'
+];
+
+/**
+ * Currently only WebKit-based Web Inspectors, Firefox >= v31,
+ * and the Firebug extension (any Firefox version) are known
+ * to support "%c" CSS customizations.
+ *
+ * TODO: add a `localStorage` variable to explicitly enable/disable colors
+ */
+
+function useColors() {
+ // NB: In an Electron preload script, document will be defined but not fully
+ // initialized. Since we know we're in Chrome, we'll just detect this case
+ // explicitly
+ if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
+ return true;
+ }
+
+ // Internet Explorer and Edge do not support colors.
+ if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
+ return false;
+ }
+
+ // is webkit? http://stackoverflow.com/a/16459606/376773
+ // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
+ return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
+ // is firebug? http://stackoverflow.com/a/398120/376773
+ (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
+ // is firefox >= v31?
+ // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
+ // double check webkit in userAgent just in case we are in a worker
+ (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
+}
+
+/**
+ * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
+ */
+
+exports.formatters.j = function(v) {
+ try {
+ return JSON.stringify(v);
+ } catch (err) {
+ return '[UnexpectedJSONParseError]: ' + err.message;
+ }
+};
+
+
+/**
+ * Colorize log arguments if enabled.
+ *
+ * @api public
+ */
+
+function formatArgs(args) {
+ var useColors = this.useColors;
+
+ args[0] = (useColors ? '%c' : '')
+ + this.namespace
+ + (useColors ? ' %c' : ' ')
+ + args[0]
+ + (useColors ? '%c ' : ' ')
+ + '+' + exports.humanize(this.diff);
+
+ if (!useColors) return;
+
+ var c = 'color: ' + this.color;
+ args.splice(1, 0, c, 'color: inherit')
+
+ // the final "%c" is somewhat tricky, because there could be other
+ // arguments passed either before or after the %c, so we need to
+ // figure out the correct index to insert the CSS into
+ var index = 0;
+ var lastC = 0;
+ args[0].replace(/%[a-zA-Z%]/g, function(match) {
+ if ('%%' === match) return;
+ index++;
+ if ('%c' === match) {
+ // we only are interested in the *last* %c
+ // (the user may have provided their own)
+ lastC = index;
+ }
+ });
+
+ args.splice(lastC, 0, c);
+}
+
+/**
+ * Invokes `console.log()` when available.
+ * No-op when `console.log` is not a "function".
+ *
+ * @api public
+ */
+
+function log() {
+ // this hackery is required for IE8/9, where
+ // the `console.log` function doesn't have 'apply'
+ return 'object' === typeof console
+ && console.log
+ && Function.prototype.apply.call(console.log, console, arguments);
+}
+
+/**
+ * Save `namespaces`.
+ *
+ * @param {String} namespaces
+ * @api private
+ */
+
+function save(namespaces) {
+ try {
+ if (null == namespaces) {
+ exports.storage.removeItem('debug');
+ } else {
+ exports.storage.debug = namespaces;
+ }
+ } catch(e) {}
+}
+
+/**
+ * Load `namespaces`.
+ *
+ * @return {String} returns the previously persisted debug modes
+ * @api private
+ */
+
+function load() {
+ var r;
+ try {
+ r = exports.storage.debug;
+ } catch(e) {}
+
+ // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
+ if (!r && typeof process !== 'undefined' && 'env' in process) {
+ r = process.env.DEBUG;
+ }
+
+ return r;
+}
+
+/**
+ * Enable namespaces listed in `localStorage.debug` initially.
+ */
+
+exports.enable(load());
+
+/**
+ * Localstorage attempts to return the localstorage.
+ *
+ * This is necessary because safari throws
+ * when a user disables cookies/localstorage
+ * and you attempt to access it.
+ *
+ * @return {LocalStorage}
+ * @api private
+ */
+
+function localstorage() {
+ try {
+ return window.localStorage;
+ } catch (e) {}
+}
diff --git a/deps/npm/node_modules/debug/src/debug.js b/deps/npm/node_modules/debug/src/debug.js
new file mode 100644
index 0000000000..77e6384a33
--- /dev/null
+++ b/deps/npm/node_modules/debug/src/debug.js
@@ -0,0 +1,225 @@
+
+/**
+ * This is the common logic for both the Node.js and web browser
+ * implementations of `debug()`.
+ *
+ * Expose `debug()` as the module.
+ */
+
+exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
+exports.coerce = coerce;
+exports.disable = disable;
+exports.enable = enable;
+exports.enabled = enabled;
+exports.humanize = require('ms');
+
+/**
+ * Active `debug` instances.
+ */
+exports.instances = [];
+
+/**
+ * The currently active debug mode names, and names to skip.
+ */
+
+exports.names = [];
+exports.skips = [];
+
+/**
+ * Map of special "%n" handling functions, for the debug "format" argument.
+ *
+ * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
+ */
+
+exports.formatters = {};
+
+/**
+ * Select a color.
+ * @param {String} namespace
+ * @return {Number}
+ * @api private
+ */
+
+function selectColor(namespace) {
+ var hash = 0, i;
+
+ for (i in namespace) {
+ hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
+ hash |= 0; // Convert to 32bit integer
+ }
+
+ return exports.colors[Math.abs(hash) % exports.colors.length];
+}
+
+/**
+ * Create a debugger with the given `namespace`.
+ *
+ * @param {String} namespace
+ * @return {Function}
+ * @api public
+ */
+
+function createDebug(namespace) {
+
+ var prevTime;
+
+ function debug() {
+ // disabled?
+ if (!debug.enabled) return;
+
+ var self = debug;
+
+ // set `diff` timestamp
+ var curr = +new Date();
+ var ms = curr - (prevTime || curr);
+ self.diff = ms;
+ self.prev = prevTime;
+ self.curr = curr;
+ prevTime = curr;
+
+ // turn the `arguments` into a proper Array
+ var args = new Array(arguments.length);
+ for (var i = 0; i < args.length; i++) {
+ args[i] = arguments[i];
+ }
+
+ args[0] = exports.coerce(args[0]);
+
+ if ('string' !== typeof args[0]) {
+ // anything else let's inspect with %O
+ args.unshift('%O');
+ }
+
+ // apply any `formatters` transformations
+ var index = 0;
+ args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
+ // if we encounter an escaped % then don't increase the array index
+ if (match === '%%') return match;
+ index++;
+ var formatter = exports.formatters[format];
+ if ('function' === typeof formatter) {
+ var val = args[index];
+ match = formatter.call(self, val);
+
+ // now we need to remove `args[index]` since it's inlined in the `format`
+ args.splice(index, 1);
+ index--;
+ }
+ return match;
+ });
+
+ // apply env-specific formatting (colors, etc.)
+ exports.formatArgs.call(self, args);
+
+ var logFn = debug.log || exports.log || console.log.bind(console);
+ logFn.apply(self, args);
+ }
+
+ debug.namespace = namespace;
+ debug.enabled = exports.enabled(namespace);
+ debug.useColors = exports.useColors();
+ debug.color = selectColor(namespace);
+ debug.destroy = destroy;
+
+ // env-specific initialization logic for debug instances
+ if ('function' === typeof exports.init) {
+ exports.init(debug);
+ }
+
+ exports.instances.push(debug);
+
+ return debug;
+}
+
+function destroy () {
+ var index = exports.instances.indexOf(this);
+ if (index !== -1) {
+ exports.instances.splice(index, 1);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+/**
+ * Enables a debug mode by namespaces. This can include modes
+ * separated by a colon and wildcards.
+ *
+ * @param {String} namespaces
+ * @api public
+ */
+
+function enable(namespaces) {
+ exports.save(namespaces);
+
+ exports.names = [];
+ exports.skips = [];
+
+ var i;
+ var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
+ var len = split.length;
+
+ for (i = 0; i < len; i++) {
+ if (!split[i]) continue; // ignore empty strings
+ namespaces = split[i].replace(/\*/g, '.*?');
+ if (namespaces[0] === '-') {
+ exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
+ } else {
+ exports.names.push(new RegExp('^' + namespaces + '$'));
+ }
+ }
+
+ for (i = 0; i < exports.instances.length; i++) {
+ var instance = exports.instances[i];
+ instance.enabled = exports.enabled(instance.namespace);
+ }
+}
+
+/**
+ * Disable debug output.
+ *
+ * @api public
+ */
+
+function disable() {
+ exports.enable('');
+}
+
+/**
+ * Returns true if the given mode name is enabled, false otherwise.
+ *
+ * @param {String} name
+ * @return {Boolean}
+ * @api public
+ */
+
+function enabled(name) {
+ if (name[name.length - 1] === '*') {
+ return true;
+ }
+ var i, len;
+ for (i = 0, len = exports.skips.length; i < len; i++) {
+ if (exports.skips[i].test(name)) {
+ return false;
+ }
+ }
+ for (i = 0, len = exports.names.length; i < len; i++) {
+ if (exports.names[i].test(name)) {
+ return true;
+ }
+ }
+ return false;
+}
+
+/**
+ * Coerce `val`.
+ *
+ * @param {Mixed} val
+ * @return {Mixed}
+ * @api private
+ */
+
+function coerce(val) {
+ if (val instanceof Error) return val.stack || val.message;
+ return val;
+}
diff --git a/deps/npm/node_modules/debug/src/index.js b/deps/npm/node_modules/debug/src/index.js
new file mode 100644
index 0000000000..cabcbcda13
--- /dev/null
+++ b/deps/npm/node_modules/debug/src/index.js
@@ -0,0 +1,10 @@
+/**
+ * Detect Electron renderer process, which is node, but we should
+ * treat as a browser.
+ */
+
+if (typeof process === 'undefined' || process.type === 'renderer') {
+ module.exports = require('./browser.js');
+} else {
+ module.exports = require('./node.js');
+}
diff --git a/deps/npm/node_modules/debug/src/node.js b/deps/npm/node_modules/debug/src/node.js
new file mode 100644
index 0000000000..d666fb9c00
--- /dev/null
+++ b/deps/npm/node_modules/debug/src/node.js
@@ -0,0 +1,186 @@
+/**
+ * Module dependencies.
+ */
+
+var tty = require('tty');
+var util = require('util');
+
+/**
+ * This is the Node.js implementation of `debug()`.
+ *
+ * Expose `debug()` as the module.
+ */
+
+exports = module.exports = require('./debug');
+exports.init = init;
+exports.log = log;
+exports.formatArgs = formatArgs;
+exports.save = save;
+exports.load = load;
+exports.useColors = useColors;
+
+/**
+ * Colors.
+ */
+
+exports.colors = [ 6, 2, 3, 4, 5, 1 ];
+
+try {
+ var supportsColor = require('supports-color');
+ if (supportsColor && supportsColor.level >= 2) {
+ exports.colors = [
+ 20, 21, 26, 27, 32, 33, 38, 39, 40, 41, 42, 43, 44, 45, 56, 57, 62, 63, 68,
+ 69, 74, 75, 76, 77, 78, 79, 80, 81, 92, 93, 98, 99, 112, 113, 128, 129, 134,
+ 135, 148, 149, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
+ 172, 173, 178, 179, 184, 185, 196, 197, 198, 199, 200, 201, 202, 203, 204,
+ 205, 206, 207, 208, 209, 214, 215, 220, 221
+ ];
+ }
+} catch (err) {
+ // swallow - we only care if `supports-color` is available; it doesn't have to be.
+}
+
+/**
+ * Build up the default `inspectOpts` object from the environment variables.
+ *
+ * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
+ */
+
+exports.inspectOpts = Object.keys(process.env).filter(function (key) {
+ return /^debug_/i.test(key);
+}).reduce(function (obj, key) {
+ // camel-case
+ var prop = key
+ .substring(6)
+ .toLowerCase()
+ .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
+
+ // coerce string value into JS value
+ var val = process.env[key];
+ if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
+ else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
+ else if (val === 'null') val = null;
+ else val = Number(val);
+
+ obj[prop] = val;
+ return obj;
+}, {});
+
+/**
+ * Is stdout a TTY? Colored output is enabled when `true`.
+ */
+
+function useColors() {
+ return 'colors' in exports.inspectOpts
+ ? Boolean(exports.inspectOpts.colors)
+ : tty.isatty(process.stderr.fd);
+}
+
+/**
+ * Map %o to `util.inspect()`, all on a single line.
+ */
+
+exports.formatters.o = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts)
+ .split('\n').map(function(str) {
+ return str.trim()
+ }).join(' ');
+};
+
+/**
+ * Map %o to `util.inspect()`, allowing multiple lines if needed.
+ */
+
+exports.formatters.O = function(v) {
+ this.inspectOpts.colors = this.useColors;
+ return util.inspect(v, this.inspectOpts);
+};
+
+/**
+ * Adds ANSI color escape codes if enabled.
+ *
+ * @api public
+ */
+
+function formatArgs(args) {
+ var name = this.namespace;
+ var useColors = this.useColors;
+
+ if (useColors) {
+ var c = this.color;
+ var colorCode = '\u001b[3' + (c < 8 ? c : '8;5;' + c);
+ var prefix = ' ' + colorCode + ';1m' + name + ' ' + '\u001b[0m';
+
+ args[0] = prefix + args[0].split('\n').join('\n' + prefix);
+ args.push(colorCode + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
+ } else {
+ args[0] = getDate() + name + ' ' + args[0];
+ }
+}
+
+function getDate() {
+ if (exports.inspectOpts.hideDate) {
+ return '';
+ } else {
+ return new Date().toISOString() + ' ';
+ }
+}
+
+/**
+ * Invokes `util.format()` with the specified arguments and writes to stderr.
+ */
+
+function log() {
+ return process.stderr.write(util.format.apply(util, arguments) + '\n');
+}
+
+/**
+ * Save `namespaces`.
+ *
+ * @param {String} namespaces
+ * @api private
+ */
+
+function save(namespaces) {
+ if (null == namespaces) {
+ // If you set a process.env field to null or undefined, it gets cast to the
+ // string 'null' or 'undefined'. Just delete instead.
+ delete process.env.DEBUG;
+ } else {
+ process.env.DEBUG = namespaces;
+ }
+}
+
+/**
+ * Load `namespaces`.
+ *
+ * @return {String} returns the previously persisted debug modes
+ * @api private
+ */
+
+function load() {
+ return process.env.DEBUG;
+}
+
+/**
+ * Init logic for `debug` instances.
+ *
+ * Create a new `inspectOpts` object in case `useColors` is set
+ * differently for a particular `debug` instance.
+ */
+
+function init (debug) {
+ debug.inspectOpts = {};
+
+ var keys = Object.keys(exports.inspectOpts);
+ for (var i = 0; i < keys.length; i++) {
+ debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
+ }
+}
+
+/**
+ * Enable namespaces listed in `process.env.DEBUG` initially.
+ */
+
+exports.enable(load());
diff --git a/deps/npm/node_modules/debuglog/package.json b/deps/npm/node_modules/debuglog/package.json
index ed2cc073a4..15158994ff 100644
--- a/deps/npm/node_modules/debuglog/package.json
+++ b/deps/npm/node_modules/debuglog/package.json
@@ -1,18 +1,25 @@
{
- "_from": "debuglog@*",
+ "_args": [
+ [
+ "debuglog@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "debuglog@1.0.1",
"_id": "debuglog@1.0.1",
+ "_inBundle": false,
"_integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=",
"_location": "/debuglog",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "debuglog@*",
+ "raw": "debuglog@1.0.1",
"name": "debuglog",
"escapedName": "debuglog",
- "rawSpec": "*",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
"/",
@@ -21,26 +28,19 @@
"/readdir-scoped-modules"
],
"_resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz",
- "_shasum": "aa24ffb9ac3df9a2351837cfb2d279360cd78492",
- "_shrinkwrap": null,
- "_spec": "debuglog@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sam Roberts",
"email": "sam@strongloop.com"
},
- "bin": null,
"browser": {
"util": false
},
"bugs": {
"url": "https://github.com/sam-github/node-debuglog/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "backport of util.debuglog from node v0.11",
- "devDependencies": {},
"engines": {
"node": "*"
},
@@ -48,8 +48,6 @@
"license": "MIT",
"main": "debuglog.js",
"name": "debuglog",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sam-github/node-debuglog.git"
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/index.js b/deps/npm/node_modules/decamelize/index.js
index 8d5bab7e46..8d5bab7e46 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/index.js
+++ b/deps/npm/node_modules/decamelize/index.js
diff --git a/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 b/deps/npm/node_modules/decamelize/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/decamelize/license
diff --git a/deps/npm/node_modules/decamelize/package.json b/deps/npm/node_modules/decamelize/package.json
new file mode 100644
index 0000000000..7ea1d497a0
--- /dev/null
+++ b/deps/npm/node_modules/decamelize/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "decamelize@^1.1.1",
+ "_id": "decamelize@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "_location": "/decamelize",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "decamelize@^1.1.1",
+ "name": "decamelize",
+ "escapedName": "decamelize",
+ "rawSpec": "^1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.1"
+ },
+ "_requiredBy": [
+ "/tacks/yargs",
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "_shasum": "f6534d15148269b20352e7bee26f501f9a191290",
+ "_spec": "decamelize@^1.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/decamelize/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Convert a camelized string into a lowercased one with a custom separator: unicornRainbow ā†’ unicorn_rainbow",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/decamelize#readme",
+ "keywords": [
+ "decamelize",
+ "decamelcase",
+ "camelcase",
+ "lowercase",
+ "case",
+ "dash",
+ "hyphen",
+ "string",
+ "str",
+ "text",
+ "convert"
+ ],
+ "license": "MIT",
+ "name": "decamelize",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/decamelize.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/readme.md b/deps/npm/node_modules/decamelize/readme.md
index 624c7ee5ed..624c7ee5ed 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/readme.md
+++ b/deps/npm/node_modules/decamelize/readme.md
diff --git a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/index.js b/deps/npm/node_modules/decode-uri-component/index.js
index 691499b0e8..691499b0e8 100644
--- a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/index.js
+++ b/deps/npm/node_modules/decode-uri-component/index.js
diff --git a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/license b/deps/npm/node_modules/decode-uri-component/license
index 78b08554a3..78b08554a3 100644
--- a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/license
+++ b/deps/npm/node_modules/decode-uri-component/license
diff --git a/deps/npm/node_modules/decode-uri-component/package.json b/deps/npm/node_modules/decode-uri-component/package.json
new file mode 100644
index 0000000000..4af5d4c04f
--- /dev/null
+++ b/deps/npm/node_modules/decode-uri-component/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "decode-uri-component@^0.2.0",
+ "_id": "decode-uri-component@0.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
+ "_location": "/decode-uri-component",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "decode-uri-component@^0.2.0",
+ "name": "decode-uri-component",
+ "escapedName": "decode-uri-component",
+ "rawSpec": "^0.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.2.0"
+ },
+ "_requiredBy": [
+ "/query-string"
+ ],
+ "_resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "_shasum": "eb3913333458775cb84cd1a1fae062106bb87545",
+ "_spec": "decode-uri-component@^0.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/query-string",
+ "author": {
+ "name": "Sam Verschueren",
+ "email": "sam.verschueren@gmail.com",
+ "url": "github.com/SamVerschueren"
+ },
+ "bugs": {
+ "url": "https://github.com/SamVerschueren/decode-uri-component/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A better decodeURIComponent",
+ "devDependencies": {
+ "ava": "^0.17.0",
+ "coveralls": "^2.13.1",
+ "nyc": "^10.3.2",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/SamVerschueren/decode-uri-component#readme",
+ "keywords": [
+ "decode",
+ "uri",
+ "component",
+ "decodeuricomponent",
+ "components",
+ "decoder",
+ "url"
+ ],
+ "license": "MIT",
+ "name": "decode-uri-component",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/SamVerschueren/decode-uri-component.git"
+ },
+ "scripts": {
+ "coveralls": "nyc report --reporter=text-lcov | coveralls",
+ "test": "xo && nyc ava"
+ },
+ "version": "0.2.0"
+}
diff --git a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/readme.md b/deps/npm/node_modules/decode-uri-component/readme.md
index 795c87ff77..795c87ff77 100644
--- a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/readme.md
+++ b/deps/npm/node_modules/decode-uri-component/readme.md
diff --git a/deps/npm/node_modules/deep-extend/CHANGELOG.md b/deps/npm/node_modules/deep-extend/CHANGELOG.md
new file mode 100644
index 0000000000..3932f8f024
--- /dev/null
+++ b/deps/npm/node_modules/deep-extend/CHANGELOG.md
@@ -0,0 +1,38 @@
+Changelog
+=========
+
+v0.5.1
+------
+
+- Fix prototype pollution vulnerability (thanks to @mwakerman for the PR)
+- Avoid using deprecated Buffer API (thanks to @ChALkeR for the PR)
+
+v0.5.0
+------
+
+- Auto-testing provided by Travis CI;
+- Support older Node.JS versions (`v0.11.x` and `v0.10.x`);
+- Removed tests files from npm package.
+
+v0.4.2
+------
+
+- Fix for `null` as an argument.
+
+v0.4.1
+------
+
+- Removed test code from <b>npm</b> package
+ ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21));
+- Increased minimal version of Node from `0.4.0` to `0.12.0`
+ (because can't run tests on lesser version anyway).
+
+v0.4.0
+------
+
+- **WARNING!** Broken backward compatibility with `v0.3.x`;
+- Fixed bug with extending arrays instead of cloning;
+- Deep cloning for arrays;
+- Check for own property;
+- Fixed some documentation issues;
+- Strict JS mode.
diff --git a/deps/npm/node_modules/deep-extend/LICENSE b/deps/npm/node_modules/deep-extend/LICENSE
new file mode 100644
index 0000000000..5c58916f2f
--- /dev/null
+++ b/deps/npm/node_modules/deep-extend/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-2018, Viacheslav Lotsmanov
+
+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/deep-extend/README.md b/deps/npm/node_modules/deep-extend/README.md
new file mode 100644
index 0000000000..cf84f70ded
--- /dev/null
+++ b/deps/npm/node_modules/deep-extend/README.md
@@ -0,0 +1,93 @@
+Deep Extend
+===========
+
+Recursive object extending.
+
+[![Build Status](https://api.travis-ci.org/unclechu/node-deep-extend.svg?branch=master)](https://travis-ci.org/unclechu/node-deep-extend)
+
+[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/)
+
+[![NPM](https://nodei.co/npm-dl/deep-extend.png?height=3)](https://nodei.co/npm/deep-extend/)
+
+Install
+-------
+
+```bash
+$ npm install deep-extend
+```
+
+Usage
+-----
+
+```javascript
+var deepExtend = require('deep-extend');
+var obj1 = {
+ a: 1,
+ b: 2,
+ d: {
+ a: 1,
+ b: [],
+ c: { test1: 123, test2: 321 }
+ },
+ f: 5,
+ g: 123,
+ i: 321,
+ j: [1, 2]
+};
+var obj2 = {
+ b: 3,
+ c: 5,
+ d: {
+ b: { first: 'one', second: 'two' },
+ c: { test2: 222 }
+ },
+ e: { one: 1, two: 2 },
+ f: [],
+ g: (void 0),
+ h: /abc/g,
+ i: null,
+ j: [3, 4]
+};
+
+deepExtend(obj1, obj2);
+
+console.log(obj1);
+/*
+{ a: 1,
+ b: 3,
+ d:
+ { a: 1,
+ b: { first: 'one', second: 'two' },
+ c: { test1: 123, test2: 222 } },
+ f: [],
+ g: undefined,
+ c: 5,
+ e: { one: 1, two: 2 },
+ h: /abc/g,
+ i: null,
+ j: [3, 4] }
+*/
+```
+
+Unit testing
+------------
+
+```bash
+$ npm test
+```
+
+Changelog
+---------
+
+[CHANGELOG.md](./CHANGELOG.md)
+
+Any issues?
+-----------
+
+Please, report about issues
+[here](https://github.com/unclechu/node-deep-extend/issues).
+
+License
+-------
+
+[MIT](./LICENSE)
diff --git a/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 b/deps/npm/node_modules/deep-extend/index.js
index 762d81e954..762d81e954 100644
--- a/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
+++ b/deps/npm/node_modules/deep-extend/index.js
diff --git a/deps/npm/node_modules/deep-extend/lib/deep-extend.js b/deps/npm/node_modules/deep-extend/lib/deep-extend.js
new file mode 100644
index 0000000000..651fd8d3e1
--- /dev/null
+++ b/deps/npm/node_modules/deep-extend/lib/deep-extend.js
@@ -0,0 +1,150 @@
+/*!
+ * @description Recursive object extending
+ * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
+ * @license MIT
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2013-2018 Viacheslav Lotsmanov
+ *
+ * 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';
+
+function isSpecificValue(val) {
+ return (
+ val instanceof Buffer
+ || val instanceof Date
+ || val instanceof RegExp
+ ) ? true : false;
+}
+
+function cloneSpecificValue(val) {
+ if (val instanceof Buffer) {
+ var x = Buffer.alloc
+ ? Buffer.alloc(val.length)
+ : new Buffer(val.length);
+ val.copy(x);
+ return x;
+ } else if (val instanceof Date) {
+ return new Date(val.getTime());
+ } else if (val instanceof RegExp) {
+ return new RegExp(val);
+ } else {
+ throw new Error('Unexpected situation');
+ }
+}
+
+/**
+ * Recursive cloning array.
+ */
+function deepCloneArray(arr) {
+ var clone = [];
+ arr.forEach(function (item, index) {
+ if (typeof item === 'object' && item !== null) {
+ if (Array.isArray(item)) {
+ clone[index] = deepCloneArray(item);
+ } else if (isSpecificValue(item)) {
+ clone[index] = cloneSpecificValue(item);
+ } else {
+ clone[index] = deepExtend({}, item);
+ }
+ } else {
+ clone[index] = item;
+ }
+ });
+ return clone;
+}
+
+function safeGetProperty(object, property) {
+ return property === '__proto__' ? undefined : object[property];
+}
+
+/**
+ * Extening object that entered in first argument.
+ *
+ * Returns extended object or false if have no target object or incorrect type.
+ *
+ * If you wish to clone source object (without modify it), just use empty new
+ * object as first argument, like this:
+ * deepExtend({}, yourObj_1, [yourObj_N]);
+ */
+var deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) {
+ if (arguments.length < 1 || typeof arguments[0] !== 'object') {
+ return false;
+ }
+
+ if (arguments.length < 2) {
+ return arguments[0];
+ }
+
+ var target = arguments[0];
+
+ // convert arguments to array and cut off target object
+ var args = Array.prototype.slice.call(arguments, 1);
+
+ var val, src, clone;
+
+ args.forEach(function (obj) {
+ // skip argument if isn't an object, is null, or is an array
+ if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
+ return;
+ }
+
+ Object.keys(obj).forEach(function (key) {
+ src = safeGetProperty(target, key); // source value
+ val = safeGetProperty(obj, key); // new value
+
+ // recursion prevention
+ if (val === target) {
+ return;
+
+ /**
+ * if new value isn't object then just overwrite by new value
+ * instead of extending.
+ */
+ } else if (typeof val !== 'object' || val === null) {
+ target[key] = val;
+ return;
+
+ // just clone arrays (and recursive clone objects inside)
+ } else if (Array.isArray(val)) {
+ target[key] = deepCloneArray(val);
+ return;
+
+ // custom cloning and overwrite for specific objects
+ } else if (isSpecificValue(val)) {
+ target[key] = cloneSpecificValue(val);
+ return;
+
+ // overwrite by new value if source isn't object or array
+ } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {
+ target[key] = deepExtend({}, val);
+ return;
+
+ // source value and new value is objects both, extending...
+ } else {
+ target[key] = deepExtend(src, val);
+ return;
+ }
+ });
+ });
+
+ return target;
+};
diff --git a/deps/npm/node_modules/deep-extend/package.json b/deps/npm/node_modules/deep-extend/package.json
new file mode 100644
index 0000000000..3aaa6742ff
--- /dev/null
+++ b/deps/npm/node_modules/deep-extend/package.json
@@ -0,0 +1,93 @@
+{
+ "_from": "deep-extend@^0.5.1",
+ "_id": "deep-extend@0.5.1",
+ "_inBundle": false,
+ "_integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==",
+ "_location": "/deep-extend",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "deep-extend@^0.5.1",
+ "name": "deep-extend",
+ "escapedName": "deep-extend",
+ "rawSpec": "^0.5.1",
+ "saveSpec": null,
+ "fetchSpec": "^0.5.1"
+ },
+ "_requiredBy": [
+ "/rc"
+ ],
+ "_resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz",
+ "_shasum": "b894a9dd90d3023fbf1c55a394fb858eb2066f1f",
+ "_spec": "deep-extend@^0.5.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/rc",
+ "author": {
+ "name": "Viacheslav Lotsmanov",
+ "email": "lotsmanov89@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/unclechu/node-deep-extend/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Romain Prieto",
+ "url": "https://github.com/rprieto"
+ },
+ {
+ "name": "Max Maximov",
+ "url": "https://github.com/maxmaximov"
+ },
+ {
+ "name": "Marshall Bowers",
+ "url": "https://github.com/maxdeviant"
+ },
+ {
+ "name": "Misha Wakerman",
+ "url": "https://github.com/mwakerman"
+ }
+ ],
+ "deprecated": false,
+ "description": "Recursive object extending",
+ "devDependencies": {
+ "mocha": "2.2.1",
+ "should": "5.2.0"
+ },
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js",
+ "lib/"
+ ],
+ "homepage": "https://github.com/unclechu/node-deep-extend",
+ "keywords": [
+ "deep-extend",
+ "extend",
+ "deep",
+ "recursive",
+ "xtend",
+ "clone",
+ "merge",
+ "json"
+ ],
+ "license": "MIT",
+ "licenses": [
+ {
+ "type": "MIT",
+ "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE"
+ }
+ ],
+ "main": "lib/deep-extend.js",
+ "name": "deep-extend",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/unclechu/node-deep-extend.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "0.5.1"
+}
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore b/deps/npm/node_modules/defaults/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/.npmignore
+++ b/deps/npm/node_modules/defaults/.npmignore
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE b/deps/npm/node_modules/defaults/LICENSE
index d88b072078..d88b072078 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/LICENSE
+++ b/deps/npm/node_modules/defaults/LICENSE
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md b/deps/npm/node_modules/defaults/README.md
index 1a4a2ea9c9..1a4a2ea9c9 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/README.md
+++ b/deps/npm/node_modules/defaults/README.md
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js b/deps/npm/node_modules/defaults/index.js
index cb7d75c9c6..cb7d75c9c6 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/index.js
+++ b/deps/npm/node_modules/defaults/index.js
diff --git a/deps/npm/node_modules/defaults/package.json b/deps/npm/node_modules/defaults/package.json
new file mode 100644
index 0000000000..b9fa531466
--- /dev/null
+++ b/deps/npm/node_modules/defaults/package.json
@@ -0,0 +1,57 @@
+{
+ "_from": "defaults@^1.0.3",
+ "_id": "defaults@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+ "_location": "/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": [
+ "/wcwidth"
+ ],
+ "_resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+ "_shasum": "c656051e9817d9ff08ed881477f3fe4019f3ef7d",
+ "_spec": "defaults@^1.0.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/wcwidth",
+ "author": {
+ "name": "Elijah Insua",
+ "email": "tmpvar@gmail.com"
+ },
+ "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",
+ "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/defaults/test.js b/deps/npm/node_modules/defaults/test.js
new file mode 100644
index 0000000000..eab79ff71f
--- /dev/null
+++ b/deps/npm/node_modules/defaults/test.js
@@ -0,0 +1,33 @@
+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/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore b/deps/npm/node_modules/delayed-stream/.npmignore
index 9daeafb986..9daeafb986 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/.npmignore
+++ b/deps/npm/node_modules/delayed-stream/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License b/deps/npm/node_modules/delayed-stream/License
index 4804b7ab41..4804b7ab41 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/License
+++ b/deps/npm/node_modules/delayed-stream/License
diff --git a/deps/npm/node_modules/delayed-stream/Makefile b/deps/npm/node_modules/delayed-stream/Makefile
new file mode 100644
index 0000000000..2d7580746d
--- /dev/null
+++ b/deps/npm/node_modules/delayed-stream/Makefile
@@ -0,0 +1,6 @@
+SHELL := /bin/bash
+
+test:
+ @./test/run.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md b/deps/npm/node_modules/delayed-stream/Readme.md
index aca36f9f0b..aca36f9f0b 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Readme.md
+++ b/deps/npm/node_modules/delayed-stream/Readme.md
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js b/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js
index b38fc85ff4..b38fc85ff4 100644
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/lib/delayed_stream.js
+++ b/deps/npm/node_modules/delayed-stream/lib/delayed_stream.js
diff --git a/deps/npm/node_modules/delayed-stream/package.json b/deps/npm/node_modules/delayed-stream/package.json
new file mode 100644
index 0000000000..5531c4ace8
--- /dev/null
+++ b/deps/npm/node_modules/delayed-stream/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "delayed-stream@~1.0.0",
+ "_id": "delayed-stream@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+ "_location": "/delayed-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "delayed-stream@~1.0.0",
+ "name": "delayed-stream",
+ "escapedName": "delayed-stream",
+ "rawSpec": "~1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~1.0.0"
+ },
+ "_requiredBy": [
+ "/combined-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "_shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619",
+ "_spec": "delayed-stream@~1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/combined-stream",
+ "author": {
+ "name": "Felix Geisendƶrfer",
+ "email": "felix@debuggable.com",
+ "url": "http://debuggable.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/felixge/node-delayed-stream/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Mike Atkins",
+ "email": "apeherder@gmail.com"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Buffers events from a stream until you are ready to handle them.",
+ "devDependencies": {
+ "fake": "0.2.0",
+ "far": "0.0.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ },
+ "homepage": "https://github.com/felixge/node-delayed-stream",
+ "license": "MIT",
+ "main": "./lib/delayed_stream",
+ "name": "delayed-stream",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/felixge/node-delayed-stream.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore b/deps/npm/node_modules/delegates/.npmignore
index c2658d7d1b..c2658d7d1b 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.npmignore
+++ b/deps/npm/node_modules/delegates/.npmignore
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md b/deps/npm/node_modules/delegates/History.md
index 25959eab67..25959eab67 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/History.md
+++ b/deps/npm/node_modules/delegates/History.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License b/deps/npm/node_modules/delegates/License
index 60de60addb..60de60addb 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/License
+++ b/deps/npm/node_modules/delegates/License
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile b/deps/npm/node_modules/delegates/Makefile
index a9dcfd50db..a9dcfd50db 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Makefile
+++ b/deps/npm/node_modules/delegates/Makefile
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md b/deps/npm/node_modules/delegates/Readme.md
index ab8cf4ace1..ab8cf4ace1 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/Readme.md
+++ b/deps/npm/node_modules/delegates/Readme.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js b/deps/npm/node_modules/delegates/index.js
index 17c222d529..17c222d529 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/index.js
+++ b/deps/npm/node_modules/delegates/index.js
diff --git a/deps/npm/node_modules/delegates/package.json b/deps/npm/node_modules/delegates/package.json
new file mode 100644
index 0000000000..380496ecb2
--- /dev/null
+++ b/deps/npm/node_modules/delegates/package.json
@@ -0,0 +1,48 @@
+{
+ "_from": "delegates@^1.0.0",
+ "_id": "delegates@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
+ "_location": "/delegates",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "delegates@^1.0.0",
+ "name": "delegates",
+ "escapedName": "delegates",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/are-we-there-yet"
+ ],
+ "_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "_shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
+ "_spec": "delegates@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/are-we-there-yet",
+ "bugs": {
+ "url": "https://github.com/visionmedia/node-delegates/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "delegate methods and accessors to another property",
+ "devDependencies": {
+ "mocha": "*",
+ "should": "*"
+ },
+ "homepage": "https://github.com/visionmedia/node-delegates#readme",
+ "keywords": [
+ "delegate",
+ "delegation"
+ ],
+ "license": "MIT",
+ "name": "delegates",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/visionmedia/node-delegates.git"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js b/deps/npm/node_modules/delegates/test/index.js
index 7b6e3d4df1..7b6e3d4df1 100644
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/test/index.js
+++ b/deps/npm/node_modules/delegates/test/index.js
diff --git a/deps/npm/node_modules/detect-indent/package.json b/deps/npm/node_modules/detect-indent/package.json
index 0477e31bc7..7e8c16a887 100644
--- a/deps/npm/node_modules/detect-indent/package.json
+++ b/deps/npm/node_modules/detect-indent/package.json
@@ -1,40 +1,40 @@
{
- "_from": "detect-indent",
+ "_args": [
+ [
+ "detect-indent@5.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "detect-indent@5.0.0",
"_id": "detect-indent@5.0.0",
+ "_inBundle": false,
"_integrity": "sha1-OHHMCmoALow+Wzz38zYmRnXwa50=",
"_location": "/detect-indent",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "detect-indent",
+ "raw": "detect-indent@5.0.0",
"name": "detect-indent",
"escapedName": "detect-indent",
- "rawSpec": "",
+ "rawSpec": "5.0.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "5.0.0"
},
"_requiredBy": [
- "#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-5.0.0.tgz",
- "_shasum": "3871cc0a6a002e8c3e5b3cf7f336264675f06b9d",
- "_shrinkwrap": null,
- "_spec": "detect-indent",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "5.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
"url": "sindresorhus.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/sindresorhus/detect-indent/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Detect the indentation of code",
"devDependencies": {
"ava": "*",
@@ -62,8 +62,6 @@
],
"license": "MIT",
"name": "detect-indent",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/sindresorhus/detect-indent.git"
diff --git a/deps/npm/node_modules/detect-newline/index.js b/deps/npm/node_modules/detect-newline/index.js
new file mode 100644
index 0000000000..940329e5ac
--- /dev/null
+++ b/deps/npm/node_modules/detect-newline/index.js
@@ -0,0 +1,24 @@
+'use strict';
+module.exports = function (str) {
+ if (typeof str !== 'string') {
+ throw new TypeError('Expected a string');
+ }
+
+ var newlines = (str.match(/(?:\r?\n)/g) || []);
+
+ if (newlines.length === 0) {
+ return null;
+ }
+
+ var crlf = newlines.filter(function (el) {
+ return el === '\r\n';
+ }).length;
+
+ var lf = newlines.length - crlf;
+
+ return crlf > lf ? '\r\n' : '\n';
+};
+
+module.exports.graceful = function (str) {
+ return module.exports(str) || '\n';
+};
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/license b/deps/npm/node_modules/detect-newline/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/license
+++ b/deps/npm/node_modules/detect-newline/license
diff --git a/deps/npm/node_modules/detect-newline/package.json b/deps/npm/node_modules/detect-newline/package.json
new file mode 100644
index 0000000000..088e60c07c
--- /dev/null
+++ b/deps/npm/node_modules/detect-newline/package.json
@@ -0,0 +1,72 @@
+{
+ "_args": [
+ [
+ "detect-newline@2.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "detect-newline@2.1.0",
+ "_id": "detect-newline@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=",
+ "_location": "/detect-newline",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "detect-newline@2.1.0",
+ "name": "detect-newline",
+ "escapedName": "detect-newline",
+ "rawSpec": "2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "2.1.0"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz",
+ "_spec": "2.1.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/detect-newline/issues"
+ },
+ "description": "Detect the dominant newline character of a string",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/detect-newline#readme",
+ "keywords": [
+ "newline",
+ "linebreak",
+ "line-break",
+ "line",
+ "lf",
+ "crlf",
+ "eol",
+ "linefeed",
+ "character",
+ "char"
+ ],
+ "license": "MIT",
+ "name": "detect-newline",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/detect-newline.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/detect-newline/readme.md b/deps/npm/node_modules/detect-newline/readme.md
new file mode 100644
index 0000000000..ec5a479e76
--- /dev/null
+++ b/deps/npm/node_modules/detect-newline/readme.md
@@ -0,0 +1,42 @@
+# detect-newline [![Build Status](https://travis-ci.org/sindresorhus/detect-newline.svg?branch=master)](https://travis-ci.org/sindresorhus/detect-newline)
+
+> Detect the dominant newline character of a string
+
+
+## Install
+
+```
+$ npm install --save detect-newline
+```
+
+
+## Usage
+
+```js
+const detectNewline = require('detect-newline');
+
+detectNewline('foo\nbar\nbaz\r\n');
+//=> '\n'
+```
+
+
+## API
+
+### detectNewline(input)
+
+Returns detected newline or `null` when no newline character is found.
+
+### detectNewline.graceful(input)
+
+Returns detected newline or `\n` when no newline character is found.
+
+
+## Related
+
+- [detect-newline-cli](https://github.com/sindresorhus/detect-newline-cli) - CLI for this module
+- [detect-indent](https://github.com/sindresorhus/detect-indent) - Detect the indentation of code
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md b/deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md
deleted file mode 100644
index 8e6202305a..0000000000
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/CHANGES.md
+++ /dev/null
@@ -1,63 +0,0 @@
-
-## 2.0.3
-
-Version 2.0.3 fixes a bug when adjusting the capacity of the task queue.
-
-## 2.0.1-2.02
-
-Version 2.0.1 fixes a bug in the way redirects were expressed that affected the
-function of Browserify, but which Mr would tolerate.
-
-## 2.0.0
-
-Version 2 of ASAP is a full rewrite with a few salient changes.
-First, the ASAP source is CommonJS only and designed with [Browserify][] and
-[Browserify-compatible][Mr] module loaders in mind.
-
-[Browserify]: https://github.com/substack/node-browserify
-[Mr]: https://github.com/montagejs/mr
-
-The new version has been refactored in two dimensions.
-Support for Node.js and browsers have been separated, using Browserify
-redirects and ASAP has been divided into two modules.
-The "raw" layer depends on the tasks to catch thrown exceptions and unravel
-Node.js domains.
-
-The full implementation of ASAP is loadable as `require("asap")` in both Node.js
-and browsers.
-
-The raw layer that lacks exception handling overhead is loadable as
-`require("asap/raw")`.
-The interface is the same for both layers.
-
-Tasks are no longer required to be functions, but can rather be any object that
-implements `task.call()`.
-With this feature you can recycle task objects to avoid garbage collector churn
-and avoid closures in general.
-
-The implementation has been rigorously documented so that our successors can
-understand the scope of the problem that this module solves and all of its
-nuances, ensuring that the next generation of implementations know what details
-are essential.
-
-- [asap.js](https://github.com/kriskowal/asap/blob/master/asap.js)
-- [raw.js](https://github.com/kriskowal/asap/blob/master/raw.js)
-- [browser-asap.js](https://github.com/kriskowal/asap/blob/master/browser-asap.js)
-- [browser-raw.js](https://github.com/kriskowal/asap/blob/master/browser-raw.js)
-
-The new version has also been rigorously tested across a broad spectrum of
-browsers, in both the window and worker context.
-The following charts capture the browser test results for the most recent
-release.
-The first chart shows test results for ASAP running in the main window context.
-The second chart shows test results for ASAP running in a web worker context.
-Test results are inconclusive (grey) on browsers that do not support web
-workers.
-These data are captured automatically by [Continuous
-Integration][].
-
-![Browser Compatibility](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-results-matrix.svg)
-
-![Compatibility in Web Workers](http://kriskowal-asap.s3-website-us-west-2.amazonaws.com/train/integration-2/saucelabs-worker-results-matrix.svg)
-
-[Continuous Integration]: https://github.com/kriskowal/asap/blob/master/CONTRIBUTING.md
diff --git a/deps/npm/node_modules/dezalgo/node_modules/asap/package.json b/deps/npm/node_modules/dezalgo/node_modules/asap/package.json
deleted file mode 100644
index 3d97233886..0000000000
--- a/deps/npm/node_modules/dezalgo/node_modules/asap/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "asap@^2.0.0",
- "_id": "asap@2.0.5",
- "_integrity": "sha1-UidltQw1EEkOUtfc/ghe+bqWlY8=",
- "_location": "/dezalgo/asap",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asap@^2.0.0",
- "name": "asap",
- "escapedName": "asap",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/dezalgo"
- ],
- "_resolved": "https://registry.npmjs.org/asap/-/asap-2.0.5.tgz",
- "_shasum": "522765b50c3510490e52d7dcfe085ef9ba96958f",
- "_shrinkwrap": null,
- "_spec": "asap@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/dezalgo",
- "bin": null,
- "browser": {
- "./asap": "./browser-asap.js",
- "./asap.js": "./browser-asap.js",
- "./raw": "./browser-raw.js",
- "./raw.js": "./browser-raw.js",
- "./test/domain.js": "./test/browser-domain.js"
- },
- "bugs": {
- "url": "https://github.com/kriskowal/asap/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "High-priority task queue for Node.js and browsers",
- "devDependencies": {
- "benchmark": "^1.0.0",
- "events": "^1.0.1",
- "jshint": "^2.5.1",
- "knox": "^0.8.10",
- "mr": "^2.0.5",
- "opener": "^1.3.0",
- "q": "^2.0.3",
- "q-io": "^2.0.3",
- "saucelabs": "^0.1.1",
- "wd": "^0.2.21",
- "weak-map": "^1.0.5"
- },
- "files": [
- "raw.js",
- "asap.js",
- "browser-raw.js",
- "browser-asap.js"
- ],
- "homepage": "https://github.com/kriskowal/asap#readme",
- "keywords": [
- "event",
- "task",
- "queue"
- ],
- "license": "MIT",
- "main": "./asap.js",
- "name": "asap",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kriskowal/asap.git"
- },
- "scripts": {
- "benchmarks": "node benchmarks",
- "lint": "jshint raw.js asap.js browser-raw.js browser-asap.js $(find scripts -name '*.js' | grep -v gauntlet)",
- "test": "npm run lint && npm run test-node",
- "test-browser": "node scripts/publish-bundle.js test/asap-test.js | xargs opener",
- "test-node": "node test/asap-test.js",
- "test-publish": "node scripts/publish-bundle.js test/asap-test.js | pbcopy",
- "test-saucelabs": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-spot-configurations.json",
- "test-saucelabs-all": "node scripts/saucelabs.js test/asap-test.js scripts/saucelabs-all-configurations.json",
- "test-saucelabs-worker": "node scripts/saucelabs-worker-test.js scripts/saucelabs-spot-configurations.json",
- "test-saucelabs-worker-all": "node scripts/saucelabs-worker-test.js scripts/saucelabs-all-configurations.json",
- "test-travis": "npm run lint && npm run test-node && npm run test-saucelabs && npm run test-saucelabs-worker"
- },
- "version": "2.0.5"
-}
diff --git a/deps/npm/node_modules/dezalgo/package.json b/deps/npm/node_modules/dezalgo/package.json
index 41ca347412..7c6a935a46 100644
--- a/deps/npm/node_modules/dezalgo/package.json
+++ b/deps/npm/node_modules/dezalgo/package.json
@@ -1,18 +1,25 @@
{
- "_from": "dezalgo@~1.0.3",
+ "_args": [
+ [
+ "dezalgo@1.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "dezalgo@1.0.3",
"_id": "dezalgo@1.0.3",
+ "_inBundle": false,
"_integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=",
"_location": "/dezalgo",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "dezalgo@~1.0.3",
+ "raw": "dezalgo@1.0.3",
"name": "dezalgo",
"escapedName": "dezalgo",
- "rawSpec": "~1.0.3",
+ "rawSpec": "1.0.3",
"saveSpec": null,
- "fetchSpec": "~1.0.3"
+ "fetchSpec": "1.0.3"
},
"_requiredBy": [
"/",
@@ -20,25 +27,20 @@
"/readdir-scoped-modules"
],
"_resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz",
- "_shasum": "7f742de066fc748bc8db820569dddce49bf0d456",
- "_shrinkwrap": null,
- "_spec": "dezalgo@~1.0.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/dezalgo/issues"
},
- "bundleDependencies": false,
"dependencies": {
"asap": "^2.0.0",
"wrappy": "1"
},
- "deprecated": false,
"description": "Contain async insanity so that the dark pony lord doesn't eat souls",
"devDependencies": {
"tap": "^1.2.0"
@@ -63,8 +65,6 @@
"license": "ISC",
"main": "dezalgo.js",
"name": "dezalgo",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/dezalgo.git"
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js b/deps/npm/node_modules/dot-prop/index.js
index 15282bb392..15282bb392 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/index.js
+++ b/deps/npm/node_modules/dot-prop/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/dot-prop/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/dot-prop/license
diff --git a/deps/npm/node_modules/dot-prop/package.json b/deps/npm/node_modules/dot-prop/package.json
new file mode 100644
index 0000000000..40fefa363d
--- /dev/null
+++ b/deps/npm/node_modules/dot-prop/package.json
@@ -0,0 +1,80 @@
+{
+ "_from": "dot-prop@^4.1.0",
+ "_id": "dot-prop@4.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
+ "_location": "/dot-prop",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "dot-prop@^4.1.0",
+ "name": "dot-prop",
+ "escapedName": "dot-prop",
+ "rawSpec": "^4.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.1.0"
+ },
+ "_requiredBy": [
+ "/configstore"
+ ],
+ "_resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
+ "_shasum": "1f19e0c2e1aa0e32797c49799f2837ac6af69c57",
+ "_spec": "dot-prop@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/configstore",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/dot-prop/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "is-obj": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Get, set, or delete a property from a nested object using a dot path",
+ "devDependencies": {
+ "ava": "*",
+ "matcha": "^0.7.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/dot-prop#readme",
+ "keywords": [
+ "obj",
+ "object",
+ "prop",
+ "property",
+ "dot",
+ "path",
+ "get",
+ "set",
+ "delete",
+ "del",
+ "access",
+ "notation",
+ "dotty"
+ ],
+ "license": "MIT",
+ "name": "dot-prop",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/dot-prop.git"
+ },
+ "scripts": {
+ "bench": "matcha bench.js",
+ "test": "xo && ava"
+ },
+ "version": "4.2.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md b/deps/npm/node_modules/dot-prop/readme.md
index fab3b7afe0..fab3b7afe0 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/readme.md
+++ b/deps/npm/node_modules/dot-prop/readme.md
diff --git a/deps/npm/node_modules/dotenv/CHANGELOG.md b/deps/npm/node_modules/dotenv/CHANGELOG.md
new file mode 100644
index 0000000000..1cfa04fa4f
--- /dev/null
+++ b/deps/npm/node_modules/dotenv/CHANGELOG.md
@@ -0,0 +1,96 @@
+# Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## [Unreleased]
+
+## [5.0.0] - 2018-01-29
+
+### Added
+
+- Testing against Node v8 and v9
+- Documentation on trim behavior of values
+- Documentation on how to use with `import`
+
+### Changed
+
+- *Breaking*: default `path` is now `path.resolve(process.cwd(), '.env')`
+- *Breaking*: does not write over keys already in `process.env` if the key has a falsy value
+- using `const` and `let` instead of `var`
+
+### Removed
+
+- Testing aginst Node v7
+
+
+## [4.0.0] - 2016-12-23
+### Changed
+
+- Return Object with parsed content or error instead of false ([#165](https://github.com/motdotla/dotenv/pull/165)).
+
+
+### Removed
+
+- `verbose` option removed in favor of returning result.
+
+
+## [3.0.0] - 2016-12-20
+### Added
+
+- `verbose` option will log any error messages. Off by default.
+- parses email addresses correctly
+- allow importing config method directly in ES6
+
+### Changed
+
+- Suppress error messages by default ([#154](https://github.com/motdotla/dotenv/pull/154))
+- Ignoring more files for NPM to make package download smaller
+
+### Fixed
+
+- False positive test due to case-sensitive variable ([#124](https://github.com/motdotla/dotenv/pull/124))
+
+### Removed
+
+- `silent` option removed in favor of `verbose`
+
+## [2.0.0] - 2016-01-20
+### Added
+- CHANGELOG to ["make it easier for users and contributors to see precisely what notable changes have been made between each release"](http://keepachangelog.com/). Linked to from README
+- LICENSE to be more explicit about what was defined in `package.json`. Linked to from README
+- Testing nodejs v4 on travis-ci
+- added examples of how to use dotenv in different ways
+- return parsed object on success rather than boolean true
+
+### Changed
+- README has shorter description not referencing ruby gem since we don't have or want feature parity
+
+### Removed
+- Variable expansion and escaping so environment variables are encouraged to be fully orthogonal
+
+## [1.2.0] - 2015-06-20
+### Added
+- Preload hook to require dotenv without including it in your code
+
+### Changed
+- clarified license to be "BSD-2-Clause" in `package.json`
+
+### Fixed
+- retain spaces in string vars
+
+## [1.1.0] - 2015-03-31
+### Added
+- Silent option to silence `console.log` when `.env` missing
+
+## [1.0.0] - 2015-03-13
+### Removed
+- support for multiple `.env` files. should always use one `.env` file for the current environment
+
+[Unreleased]: https://github.com/motdotla/dotenv/compare/v5.0.0...HEAD
+[5.0.0]: https://github.com/motdotla/dotenv/compare/v4.0.0...v5.0.0
+[4.0.0]: https://github.com/motdotla/dotenv/compare/v3.0.0...v4.0.0
+[3.0.0]: https://github.com/motdotla/dotenv/compare/v2.0.0...v3.0.0
+[2.0.0]: https://github.com/motdotla/dotenv/compare/v1.2.0...v2.0.0
+[1.2.0]: https://github.com/motdotla/dotenv/compare/v1.1.0...v1.2.0
+[1.1.0]: https://github.com/motdotla/dotenv/compare/v1.0.0...v1.1.0
+[1.0.0]: https://github.com/motdotla/dotenv/compare/v0.4.0...v1.0.0
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE b/deps/npm/node_modules/dotenv/LICENSE
index c430ad8bd0..c430ad8bd0 100644
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/LICENSE
+++ b/deps/npm/node_modules/dotenv/LICENSE
diff --git a/deps/npm/node_modules/dotenv/README.md b/deps/npm/node_modules/dotenv/README.md
new file mode 100644
index 0000000000..4665fd3962
--- /dev/null
+++ b/deps/npm/node_modules/dotenv/README.md
@@ -0,0 +1,257 @@
+# dotenv
+
+<img src="https://raw.githubusercontent.com/motdotla/dotenv/master/dotenv.png" alt="dotenv" align="right" />
+
+Dotenv is a zero-dependency module that loads environment variables from a `.env` file into [`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env). Storing configuration in the environment separate from code is based on [The Twelve-Factor App](http://12factor.net/config) methodology.
+
+[![BuildStatus](https://img.shields.io/travis/motdotla/dotenv/master.svg?style=flat-square)](https://travis-ci.org/motdotla/dotenv)
+[![Build status](https://ci.appveyor.com/api/projects/status/rnba2pyi87hgc8xw/branch/master?svg=true)](https://ci.appveyor.com/project/maxbeatty/dotenv/branch/master)
+[![NPM version](https://img.shields.io/npm/v/dotenv.svg?style=flat-square)](https://www.npmjs.com/package/dotenv)
+[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)
+[![Coverage Status](https://img.shields.io/coveralls/motdotla/dotenv/master.svg?style=flat-square)](https://coveralls.io/github/motdotla/dotenv?branch=coverall-intergration)
+
+## Install
+
+```bash
+npm install dotenv --save
+```
+
+## Usage
+
+As early as possible in your application, require and configure dotenv.
+
+```javascript
+require('dotenv').config()
+```
+
+Create a `.env` file in the root directory of your project. Add
+environment-specific variables on new lines in the form of `NAME=VALUE`.
+For example:
+
+```dosini
+DB_HOST=localhost
+DB_USER=root
+DB_PASS=s1mpl3
+```
+
+That's it.
+
+`process.env` now has the keys and values you defined in your `.env` file.
+
+```javascript
+const db = require('db')
+db.connect({
+ host: process.env.DB_HOST,
+ username: process.env.DB_USER,
+ password: process.env.DB_PASS
+})
+```
+
+### Preload
+
+You can use the `--require` (`-r`) command line option to preload dotenv. By doing this, you do not need to require and load dotenv in your application code. This is the preferred approach when using `import` instead of `require`.
+
+```bash
+$ node -r dotenv/config your_script.js
+```
+
+The configuration options below are supported as command line arguments in the format `dotenv_config_<option>=value`
+
+```bash
+$ node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/your/env/vars
+```
+
+## Config
+
+_Alias: `load`_
+
+`config` will read your .env file, parse the contents, assign it to
+[`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env),
+and return an Object with a `parsed` key containing the loaded content or an `error` key if it failed.
+
+```js
+const result = dotenv.config()
+
+if (result.error) {
+ throw result.error
+}
+
+console.log(result.parsed)
+```
+
+You can additionally, pass options to `config`.
+
+### Options
+
+#### Path
+
+Default: `path.resolve(process.cwd(), '.env')`
+
+You can specify a custom path if your file containing environment variables is
+named or located differently.
+
+```js
+require('dotenv').config({path: '/full/custom/path/to/your/env/vars'})
+```
+
+#### Encoding
+
+Default: `utf8`
+
+You may specify the encoding of your file containing environment variables
+using this option.
+
+```js
+require('dotenv').config({encoding: 'base64'})
+```
+
+## Parse
+
+The engine which parses the contents of your file containing environment
+variables is available to use. It accepts a String or Buffer and will return
+an Object with the parsed keys and values.
+
+```js
+const dotenv = require('dotenv')
+const buf = new Buffer('BASIC=basic')
+const config = dotenv.parse(buf) // will return an object
+console.log(typeof config, config) // object { BASIC : 'basic' }
+```
+
+### Rules
+
+The parsing engine currently supports the following rules:
+
+- `BASIC=basic` becomes `{BASIC: 'basic'}`
+- empty lines are skipped
+- lines beginning with `#` are treated as comments
+- empty values become empty strings (`EMPTY=` becomes `{EMPTY: ''}`)
+- single and double quoted values are escaped (`SINGLE_QUOTE='quoted'` becomes `{SINGLE_QUOTE: "quoted"}`)
+- new lines are expanded if in double quotes (`MULTILINE="new\nline"` becomes
+
+```
+{MULTILINE: 'new
+line'}
+```
+- inner quotes are maintained (think JSON) (`JSON={"foo": "bar"}` becomes `{JSON:"{\"foo\": \"bar\"}"`)
+- whitespace is removed from both ends of the value (see more on [`trim`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim)) (`FOO=" some value "` becomes `{FOO: 'some value'}`)
+
+## FAQ
+
+### Should I commit my `.env` file?
+
+No. We **strongly** recommend against committing your `.env` file to version
+control. It should only include environment-specific values such as database
+passwords or API keys. Your production database should have a different
+password than your development database.
+
+### Should I have multiple `.env` files?
+
+No. We **strongly** recommend against having a "main" `.env` file and an "environment" `.env` file like `.env.test`. Your config should vary between deploys, and you should not be sharing values between environments.
+
+> In a twelve-factor app, env vars are granular controls, each fully orthogonal to other env vars. They are never grouped together as ā€œenvironmentsā€, but instead are independently managed for each deploy. This is a model that scales up smoothly as the app naturally expands into more deploys over its lifetime.
+>
+> ā€“ [The Twelve-Factor App](http://12factor.net/config)
+
+### What happens to environment variables that were already set?
+
+We will never modify any environment variables that have already been set. In particular, if there is a variable in your `.env` file which collides with one that already exists in your environment, then that variable will be skipped. This behavior allows you to override all `.env` configurations with a machine-specific environment, although it is not recommended.
+
+If you want to override `process.env` you can do something like this:
+
+```javascript
+const fs = require('fs')
+const dotenv = require('dotenv')
+const envConfig = dotenv.parse(fs.readFileSync('.env.override'))
+for (var k in envConfig) {
+ process.env[k] = envConfig[k]
+}
+```
+
+### Can I customize/write plugins for dotenv?
+
+For `dotenv@2.x.x`: Yes. `dotenv.config()` now returns an object representing
+the parsed `.env` file. This gives you everything you need to continue
+setting values on `process.env`. For example:
+
+```js
+var dotenv = require('dotenv')
+var variableExpansion = require('dotenv-expand')
+const myEnv = dotenv.config()
+variableExpansion(myEnv)
+```
+
+### What about variable expansion?
+
+For `dotenv@2.x.x`: Use [dotenv-expand](https://github.com/motdotla/dotenv-expand).
+
+For `dotenv@1.x.x`: We haven't been presented with a compelling use case for expanding variables and believe it leads to env vars that are not "fully orthogonal" as [The Twelve-Factor App](http://12factor.net/config) outlines.<sup>[[1](https://github.com/motdotla/dotenv/issues/39)][[2](https://github.com/motdotla/dotenv/pull/97)]</sup> Please open an issue if you have a compelling use case.
+
+### How do I use dotenv with `import`?
+
+ES2015 and beyond offers modules that allow you to `export` any top-level `function`, `class`, `var`, `let`, or `const`.
+
+> When you run a module containing an `import` declaration, the modules it imports are loaded first, then each module body is executed in a depth-first traversal of the dependency graph, avoiding cycles by skipping anything already executed.
+>
+> ā€“ [ES6 In Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/)
+
+You must run `dotenv.config()` before referencing any environment variables. Here's an example of problematic code:
+
+`errorReporter.js`:
+
+```js
+import { Client } from 'best-error-reporting-service'
+
+export const client = new Client(process.env.BEST_API_KEY)
+```
+
+`index.js`:
+
+```js
+import dotenv from 'dotenv'
+dotenv.config()
+
+import errorReporter from './errorReporter'
+errorReporter.client.report(new Error('faq example'))
+```
+
+`client` will not be configured correctly because it was constructed before `dotenv.config()` was executed. There are (at least) 3 ways to make this work.
+
+1. Preload dotenv: `node --require dotenv/config index.js` (_Note: you do not need to `import` dotenv with this approach_)
+2. Import `dotenv/config` instead of `dotenv` (_Note: you do not need to call `dotenv.config()` and must pass options via the command line with this approach_)
+3. Create a separate file that will execute `config` first as outlined in [this comment on #133](https://github.com/motdotla/dotenv/issues/133#issuecomment-255298822)
+
+## Contributing Guide
+
+See [CONTRIBUTING.md](CONTRIBUTING.md)
+
+## Change Log
+
+See [CHANGELOG.md](CHANGELOG.md)
+
+## License
+
+See [LICENSE](LICENSE)
+
+## Who's using dotenv
+
+Here's just a few of many repositories using dotenv:
+
+* [jaws](https://github.com/jaws-framework/jaws-core-js)
+* [node-lambda](https://github.com/motdotla/node-lambda)
+* [resume-cli](https://www.npmjs.com/package/resume-cli)
+* [phant](https://www.npmjs.com/package/phant)
+* [adafruit-io-node](https://github.com/adafruit/adafruit-io-node)
+* [mockbin](https://www.npmjs.com/package/mockbin)
+* [and many more...](https://www.npmjs.com/browse/depended/dotenv)
+
+## Go well with dotenv
+
+Here's some projects that expand on dotenv. Check them out.
+
+* [require-environment-variables](https://github.com/bjoshuanoah/require-environment-variables)
+* [dotenv-safe](https://github.com/rolodato/dotenv-safe)
+* [envalid](https://github.com/af/envalid)
+* [lookenv](https://github.com/RodrigoEspinosa/lookenv)
+* [run.env](https://www.npmjs.com/package/run.env)
+* [dotenv-webpack](https://github.com/mrsteele/dotenv-webpack)
diff --git a/deps/npm/node_modules/dotenv/appveyor.yml b/deps/npm/node_modules/dotenv/appveyor.yml
new file mode 100644
index 0000000000..f55b8a4b6e
--- /dev/null
+++ b/deps/npm/node_modules/dotenv/appveyor.yml
@@ -0,0 +1,13 @@
+version: "{build}"
+build: off
+environment:
+ matrix:
+ - nodejs_version: "4"
+ - nodejs_version: "6"
+ - nodejs_version: "8"
+ - nodejs_version: "9"
+install:
+ - ps: Install-Product node $env:nodejs_version
+ - npm install
+test_script:
+ - npm test
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/config.js b/deps/npm/node_modules/dotenv/config.js
index 86d6fa5fa7..86d6fa5fa7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/config.js
+++ b/deps/npm/node_modules/dotenv/config.js
diff --git a/deps/npm/node_modules/dotenv/lib/main.js b/deps/npm/node_modules/dotenv/lib/main.js
new file mode 100644
index 0000000000..1f0df92719
--- /dev/null
+++ b/deps/npm/node_modules/dotenv/lib/main.js
@@ -0,0 +1,79 @@
+'use strict'
+
+const fs = require('fs')
+const path = require('path')
+
+/*
+ * Parses a string or buffer into an object
+ * @param {(string|Buffer)} src - source to be parsed
+ * @returns {Object} keys and values from src
+*/
+function parse (src) {
+ const obj = {}
+
+ // convert Buffers before splitting into lines and processing
+ src.toString().split('\n').forEach(function (line) {
+ // matching "KEY' and 'VAL' in 'KEY=VAL'
+ const keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/)
+ // matched?
+ if (keyValueArr != null) {
+ const key = keyValueArr[1]
+
+ // default undefined or missing values to empty string
+ let value = keyValueArr[2] || ''
+
+ // expand newlines in quoted values
+ const len = value ? value.length : 0
+ if (len > 0 && value.charAt(0) === '"' && value.charAt(len - 1) === '"') {
+ value = value.replace(/\\n/gm, '\n')
+ }
+
+ // remove any surrounding quotes and extra spaces
+ value = value.replace(/(^['"]|['"]$)/g, '').trim()
+
+ obj[key] = value
+ }
+ })
+
+ return obj
+}
+
+/*
+ * Main entry point into dotenv. Allows configuration before loading .env
+ * @param {Object} options - options for parsing .env file
+ * @param {string} [options.path=.env] - path to .env file
+ * @param {string} [options.encoding=utf8] - encoding of .env file
+ * @returns {Object} parsed object or error
+*/
+function config (options) {
+ let dotenvPath = path.resolve(process.cwd(), '.env')
+ let encoding = 'utf8'
+
+ if (options) {
+ if (options.path) {
+ dotenvPath = options.path
+ }
+ if (options.encoding) {
+ encoding = options.encoding
+ }
+ }
+
+ try {
+ // specifying an encoding returns a string instead of a buffer
+ const parsed = parse(fs.readFileSync(dotenvPath, { encoding }))
+
+ Object.keys(parsed).forEach(function (key) {
+ if (!process.env.hasOwnProperty(key)) {
+ process.env[key] = parsed[key]
+ }
+ })
+
+ return { parsed }
+ } catch (e) {
+ return { error: e }
+ }
+}
+
+module.exports.config = config
+module.exports.load = config
+module.exports.parse = parse
diff --git a/deps/npm/node_modules/dotenv/package.json b/deps/npm/node_modules/dotenv/package.json
new file mode 100644
index 0000000000..bc07f36006
--- /dev/null
+++ b/deps/npm/node_modules/dotenv/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "dotenv@^5.0.1",
+ "_id": "dotenv@5.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow==",
+ "_location": "/dotenv",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "dotenv@^5.0.1",
+ "name": "dotenv",
+ "escapedName": "dotenv",
+ "rawSpec": "^5.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^5.0.1"
+ },
+ "_requiredBy": [
+ "/libnpx"
+ ],
+ "_resolved": "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz",
+ "_shasum": "a5317459bd3d79ab88cff6e44057a6a3fbb1fcef",
+ "_spec": "dotenv@^5.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/libnpx",
+ "author": {
+ "name": "scottmotte"
+ },
+ "bugs": {
+ "url": "https://github.com/motdotla/dotenv/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Loads environment variables from .env file",
+ "devDependencies": {
+ "babel": "5.8.23",
+ "coveralls": "^2.11.9",
+ "lab": "^14.3.2",
+ "should": "11.1.1",
+ "sinon": "1.17.6",
+ "standard": "8.4.0",
+ "standard-markdown": "2.2.0"
+ },
+ "engines": {
+ "node": ">=4.6.0"
+ },
+ "homepage": "https://github.com/motdotla/dotenv#readme",
+ "keywords": [
+ "dotenv",
+ "env",
+ ".env",
+ "environment",
+ "variables",
+ "config",
+ "settings"
+ ],
+ "license": "BSD-2-Clause",
+ "main": "lib/main.js",
+ "name": "dotenv",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/motdotla/dotenv.git"
+ },
+ "scripts": {
+ "ci:coverage": "lab test/* -r lcov | coveralls",
+ "lint": "standard",
+ "lint-md": "standard-markdown",
+ "postlint": "npm run lint-md",
+ "pretest": "npm run lint",
+ "test": "lab"
+ },
+ "version": "5.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/LICENSE.md b/deps/npm/node_modules/duplexer3/LICENSE.md
index 75a50f3014..75a50f3014 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/LICENSE.md
+++ b/deps/npm/node_modules/duplexer3/LICENSE.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/README.md b/deps/npm/node_modules/duplexer3/README.md
index 9f95ddf530..9f95ddf530 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/README.md
+++ b/deps/npm/node_modules/duplexer3/README.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/index.js b/deps/npm/node_modules/duplexer3/index.js
index 1339ffc51c..1339ffc51c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/index.js
+++ b/deps/npm/node_modules/duplexer3/index.js
diff --git a/deps/npm/node_modules/duplexer3/package.json b/deps/npm/node_modules/duplexer3/package.json
new file mode 100644
index 0000000000..fe28d33591
--- /dev/null
+++ b/deps/npm/node_modules/duplexer3/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "duplexer3@^0.1.4",
+ "_id": "duplexer3@0.1.4",
+ "_inBundle": false,
+ "_integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
+ "_location": "/duplexer3",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "duplexer3@^0.1.4",
+ "name": "duplexer3",
+ "escapedName": "duplexer3",
+ "rawSpec": "^0.1.4",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.4"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
+ "_shasum": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
+ "_spec": "duplexer3@^0.1.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "author": {
+ "name": "Conrad Pankoff",
+ "email": "deoxxa@fknsrs.biz",
+ "url": "http://www.fknsrs.biz/"
+ },
+ "bugs": {
+ "url": "https://github.com/floatdrop/duplexer3/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Like duplexer but using streams3",
+ "devDependencies": {
+ "mocha": "^2.2.5"
+ },
+ "engine": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/floatdrop/duplexer3#readme",
+ "keywords": [
+ "duplex",
+ "duplexer",
+ "stream",
+ "stream3",
+ "join",
+ "combine"
+ ],
+ "license": "BSD-3-Clause",
+ "name": "duplexer3",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/floatdrop/duplexer3.git"
+ },
+ "scripts": {
+ "test": "mocha -R tap"
+ },
+ "version": "0.1.4"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/.travis.yml b/deps/npm/node_modules/duplexify/.travis.yml
index ecd4193f60..ecd4193f60 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/.travis.yml
+++ b/deps/npm/node_modules/duplexify/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/LICENSE b/deps/npm/node_modules/duplexify/LICENSE
index 757562ec59..757562ec59 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/LICENSE
+++ b/deps/npm/node_modules/duplexify/LICENSE
diff --git a/deps/npm/node_modules/duplexify/README.md b/deps/npm/node_modules/duplexify/README.md
new file mode 100644
index 0000000000..8352900fc6
--- /dev/null
+++ b/deps/npm/node_modules/duplexify/README.md
@@ -0,0 +1,97 @@
+# duplexify
+
+Turn a writeable and readable stream into a single streams2 duplex stream.
+
+Similar to [duplexer2](https://github.com/deoxxa/duplexer2) except it supports both streams2 and streams1 as input
+and it allows you to set the readable and writable part asynchronously using `setReadable(stream)` and `setWritable(stream)`
+
+```
+npm install duplexify
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/duplexify.svg?style=flat)](http://travis-ci.org/mafintosh/duplexify)
+
+## Usage
+
+Use `duplexify(writable, readable, streamOptions)` (or `duplexify.obj(writable, readable)` to create an object stream)
+
+``` js
+var duplexify = require('duplexify')
+
+// turn writableStream and readableStream into a single duplex stream
+var dup = duplexify(writableStream, readableStream)
+
+dup.write('hello world') // will write to writableStream
+dup.on('data', function(data) {
+ // will read from readableStream
+})
+```
+
+You can also set the readable and writable parts asynchronously
+
+``` js
+var dup = duplexify()
+
+dup.write('hello world') // write will buffer until the writable
+ // part has been set
+
+// wait a bit ...
+dup.setReadable(readableStream)
+
+// maybe wait some more?
+dup.setWritable(writableStream)
+```
+
+If you call `setReadable` or `setWritable` multiple times it will unregister the previous readable/writable stream.
+To disable the readable or writable part call `setReadable` or `setWritable` with `null`.
+
+If the readable or writable streams emits an error or close it will destroy both streams and bubble up the event.
+You can also explicitly destroy the streams by calling `dup.destroy()`. The `destroy` method optionally takes an
+error object as argument, in which case the error is emitted as part of the `error` event.
+
+``` js
+dup.on('error', function(err) {
+ console.log('readable or writable emitted an error - close will follow')
+})
+
+dup.on('close', function() {
+ console.log('the duplex stream is destroyed')
+})
+
+dup.destroy() // calls destroy on the readable and writable part (if present)
+```
+
+## HTTP request example
+
+Turn a node core http request into a duplex stream is as easy as
+
+``` js
+var duplexify = require('duplexify')
+var http = require('http')
+
+var request = function(opts) {
+ var req = http.request(opts)
+ var dup = duplexify(req)
+ req.on('response', function(res) {
+ dup.setReadable(res)
+ })
+ return dup
+}
+
+var req = request({
+ method: 'GET',
+ host: 'www.google.com',
+ port: 80
+})
+
+req.end()
+req.pipe(process.stdout)
+```
+
+## License
+
+MIT
+
+## Related
+
+`duplexify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/example.js b/deps/npm/node_modules/duplexify/example.js
index 5585c19756..5585c19756 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/example.js
+++ b/deps/npm/node_modules/duplexify/example.js
diff --git a/deps/npm/node_modules/duplexify/index.js b/deps/npm/node_modules/duplexify/index.js
new file mode 100644
index 0000000000..ad36962c54
--- /dev/null
+++ b/deps/npm/node_modules/duplexify/index.js
@@ -0,0 +1,235 @@
+var stream = require('readable-stream')
+var eos = require('end-of-stream')
+var inherits = require('inherits')
+var shift = require('stream-shift')
+
+var SIGNAL_FLUSH = (Buffer.from && Buffer.from !== Uint8Array.from)
+ ? Buffer.from([0])
+ : new Buffer([0])
+
+var onuncork = function(self, fn) {
+ if (self._corked) self.once('uncork', fn)
+ else fn()
+}
+
+var autoDestroy = function (self, err) {
+ if (self._autoDestroy) self.destroy(err)
+}
+
+var destroyer = function(self, end) {
+ return function(err) {
+ if (err) autoDestroy(self, err.message === 'premature close' ? null : err)
+ else if (end && !self._ended) self.end()
+ }
+}
+
+var end = function(ws, fn) {
+ if (!ws) return fn()
+ if (ws._writableState && ws._writableState.finished) return fn()
+ if (ws._writableState) return ws.end(fn)
+ ws.end()
+ fn()
+}
+
+var toStreams2 = function(rs) {
+ return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)
+}
+
+var Duplexify = function(writable, readable, opts) {
+ if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)
+ stream.Duplex.call(this, opts)
+
+ this._writable = null
+ this._readable = null
+ this._readable2 = null
+
+ this._autoDestroy = !opts || opts.autoDestroy !== false
+ this._forwardDestroy = !opts || opts.destroy !== false
+ this._forwardEnd = !opts || opts.end !== false
+ this._corked = 1 // start corked
+ this._ondrain = null
+ this._drained = false
+ this._forwarding = false
+ this._unwrite = null
+ this._unread = null
+ this._ended = false
+
+ this.destroyed = false
+
+ if (writable) this.setWritable(writable)
+ if (readable) this.setReadable(readable)
+}
+
+inherits(Duplexify, stream.Duplex)
+
+Duplexify.obj = function(writable, readable, opts) {
+ if (!opts) opts = {}
+ opts.objectMode = true
+ opts.highWaterMark = 16
+ return new Duplexify(writable, readable, opts)
+}
+
+Duplexify.prototype.cork = function() {
+ if (++this._corked === 1) this.emit('cork')
+}
+
+Duplexify.prototype.uncork = function() {
+ if (this._corked && --this._corked === 0) this.emit('uncork')
+}
+
+Duplexify.prototype.setWritable = function(writable) {
+ if (this._unwrite) this._unwrite()
+
+ if (this.destroyed) {
+ if (writable && writable.destroy) writable.destroy()
+ return
+ }
+
+ if (writable === null || writable === false) {
+ this.end()
+ return
+ }
+
+ var self = this
+ var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))
+
+ var ondrain = function() {
+ var ondrain = self._ondrain
+ self._ondrain = null
+ if (ondrain) ondrain()
+ }
+
+ var clear = function() {
+ self._writable.removeListener('drain', ondrain)
+ unend()
+ }
+
+ if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks
+
+ this._writable = writable
+ this._writable.on('drain', ondrain)
+ this._unwrite = clear
+
+ this.uncork() // always uncork setWritable
+}
+
+Duplexify.prototype.setReadable = function(readable) {
+ if (this._unread) this._unread()
+
+ if (this.destroyed) {
+ if (readable && readable.destroy) readable.destroy()
+ return
+ }
+
+ if (readable === null || readable === false) {
+ this.push(null)
+ this.resume()
+ return
+ }
+
+ var self = this
+ var unend = eos(readable, {writable:false, readable:true}, destroyer(this))
+
+ var onreadable = function() {
+ self._forward()
+ }
+
+ var onend = function() {
+ self.push(null)
+ }
+
+ var clear = function() {
+ self._readable2.removeListener('readable', onreadable)
+ self._readable2.removeListener('end', onend)
+ unend()
+ }
+
+ this._drained = true
+ this._readable = readable
+ this._readable2 = readable._readableState ? readable : toStreams2(readable)
+ this._readable2.on('readable', onreadable)
+ this._readable2.on('end', onend)
+ this._unread = clear
+
+ this._forward()
+}
+
+Duplexify.prototype._read = function() {
+ this._drained = true
+ this._forward()
+}
+
+Duplexify.prototype._forward = function() {
+ if (this._forwarding || !this._readable2 || !this._drained) return
+ this._forwarding = true
+
+ var data
+
+ while (this._drained && (data = shift(this._readable2)) !== null) {
+ if (this.destroyed) continue
+ this._drained = this.push(data)
+ }
+
+ this._forwarding = false
+}
+
+Duplexify.prototype.destroy = function(err) {
+ if (this.destroyed) return
+ this.destroyed = true
+
+ var self = this
+ process.nextTick(function() {
+ self._destroy(err)
+ })
+}
+
+Duplexify.prototype._destroy = function(err) {
+ if (err) {
+ var ondrain = this._ondrain
+ this._ondrain = null
+ if (ondrain) ondrain(err)
+ else this.emit('error', err)
+ }
+
+ if (this._forwardDestroy) {
+ if (this._readable && this._readable.destroy) this._readable.destroy()
+ if (this._writable && this._writable.destroy) this._writable.destroy()
+ }
+
+ this.emit('close')
+}
+
+Duplexify.prototype._write = function(data, enc, cb) {
+ if (this.destroyed) return cb()
+ if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))
+ if (data === SIGNAL_FLUSH) return this._finish(cb)
+ if (!this._writable) return cb()
+
+ if (this._writable.write(data) === false) this._ondrain = cb
+ else cb()
+}
+
+
+Duplexify.prototype._finish = function(cb) {
+ var self = this
+ this.emit('preend')
+ onuncork(this, function() {
+ end(self._forwardEnd && self._writable, function() {
+ // haxx to not emit prefinish twice
+ if (self._writableState.prefinished === false) self._writableState.prefinished = true
+ self.emit('prefinish')
+ onuncork(self, cb)
+ })
+ })
+}
+
+Duplexify.prototype.end = function(data, enc, cb) {
+ if (typeof data === 'function') return this.end(null, null, data)
+ if (typeof enc === 'function') return this.end(data, null, enc)
+ this._ended = true
+ if (data) this.write(data)
+ if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
+ return stream.Writable.prototype.end.call(this, cb)
+}
+
+module.exports = Duplexify
diff --git a/deps/npm/node_modules/duplexify/package.json b/deps/npm/node_modules/duplexify/package.json
new file mode 100644
index 0000000000..1e7f31277e
--- /dev/null
+++ b/deps/npm/node_modules/duplexify/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "duplexify@^3.4.2",
+ "_id": "duplexify@3.6.0",
+ "_inBundle": false,
+ "_integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==",
+ "_location": "/duplexify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "duplexify@^3.4.2",
+ "name": "duplexify",
+ "escapedName": "duplexify",
+ "rawSpec": "^3.4.2",
+ "saveSpec": null,
+ "fetchSpec": "^3.4.2"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi",
+ "/pumpify"
+ ],
+ "_resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz",
+ "_shasum": "592903f5d80b38d037220541264d69a198fb3410",
+ "_spec": "duplexify@^3.4.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/duplexify/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.0.0",
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0",
+ "stream-shift": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input",
+ "devDependencies": {
+ "concat-stream": "^1.5.2",
+ "tape": "^4.0.0",
+ "through2": "^2.0.0"
+ },
+ "homepage": "https://github.com/mafintosh/duplexify",
+ "keywords": [
+ "duplex",
+ "streams2",
+ "streams",
+ "stream",
+ "writable",
+ "readable",
+ "async"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "duplexify",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/duplexify.git"
+ },
+ "scripts": {
+ "test": "tape test.js"
+ },
+ "version": "3.6.0"
+}
diff --git a/deps/npm/node_modules/duplexify/test.js b/deps/npm/node_modules/duplexify/test.js
new file mode 100644
index 0000000000..4330e93cf0
--- /dev/null
+++ b/deps/npm/node_modules/duplexify/test.js
@@ -0,0 +1,291 @@
+var tape = require('tape')
+var through = require('through2')
+var concat = require('concat-stream')
+var net = require('net')
+var duplexify = require('./')
+
+tape('passthrough', function(t) {
+ t.plan(2)
+
+ var pt = through()
+ var dup = duplexify(pt, pt)
+
+ dup.end('hello world')
+ dup.on('finish', function() {
+ t.ok(true, 'should finish')
+ })
+ dup.pipe(concat(function(data) {
+ t.same(data.toString(), 'hello world', 'same in as out')
+ }))
+})
+
+tape('passthrough + double end', function(t) {
+ t.plan(2)
+
+ var pt = through()
+ var dup = duplexify(pt, pt)
+
+ dup.end('hello world')
+ dup.end()
+
+ dup.on('finish', function() {
+ t.ok(true, 'should finish')
+ })
+ dup.pipe(concat(function(data) {
+ t.same(data.toString(), 'hello world', 'same in as out')
+ }))
+})
+
+tape('async passthrough + end', function(t) {
+ t.plan(2)
+
+ var pt = through.obj({highWaterMark:1}, function(data, enc, cb) {
+ setTimeout(function() {
+ cb(null, data)
+ }, 100)
+ })
+
+ var dup = duplexify(pt, pt)
+
+ dup.write('hello ')
+ dup.write('world')
+ dup.end()
+
+ dup.on('finish', function() {
+ t.ok(true, 'should finish')
+ })
+ dup.pipe(concat(function(data) {
+ t.same(data.toString(), 'hello world', 'same in as out')
+ }))
+})
+
+tape('duplex', function(t) {
+ var readExpected = ['read-a', 'read-b', 'read-c']
+ var writeExpected = ['write-a', 'write-b', 'write-c']
+
+ t.plan(readExpected.length+writeExpected.length+2)
+
+ var readable = through.obj()
+ var writable = through.obj(function(data, enc, cb) {
+ t.same(data, writeExpected.shift(), 'onwrite should match')
+ cb()
+ })
+
+ var dup = duplexify.obj(writable, readable)
+
+ readExpected.slice().forEach(function(data) {
+ readable.write(data)
+ })
+ readable.end()
+
+ writeExpected.slice().forEach(function(data) {
+ dup.write(data)
+ })
+ dup.end()
+
+ dup.on('data', function(data) {
+ t.same(data, readExpected.shift(), 'ondata should match')
+ })
+ dup.on('end', function() {
+ t.ok(true, 'should end')
+ })
+ dup.on('finish', function() {
+ t.ok(true, 'should finish')
+ })
+})
+
+tape('async', function(t) {
+ var dup = duplexify()
+ var pt = through()
+
+ dup.pipe(concat(function(data) {
+ t.same(data.toString(), 'i was async', 'same in as out')
+ t.end()
+ }))
+
+ dup.write('i')
+ dup.write(' was ')
+ dup.end('async')
+
+ setTimeout(function() {
+ dup.setWritable(pt)
+ setTimeout(function() {
+ dup.setReadable(pt)
+ }, 50)
+ }, 50)
+})
+
+tape('destroy', function(t) {
+ t.plan(2)
+
+ var write = through()
+ var read = through()
+ var dup = duplexify(write, read)
+
+ write.destroy = function() {
+ t.ok(true, 'write destroyed')
+ }
+
+ dup.on('close', function() {
+ t.ok(true, 'close emitted')
+ })
+
+ dup.destroy()
+ dup.destroy() // should only work once
+})
+
+tape('destroy both', function(t) {
+ t.plan(3)
+
+ var write = through()
+ var read = through()
+ var dup = duplexify(write, read)
+
+ write.destroy = function() {
+ t.ok(true, 'write destroyed')
+ }
+
+ read.destroy = function() {
+ t.ok(true, 'read destroyed')
+ }
+
+ dup.on('close', function() {
+ t.ok(true, 'close emitted')
+ })
+
+ dup.destroy()
+ dup.destroy() // should only work once
+})
+
+tape('bubble read errors', function(t) {
+ t.plan(2)
+
+ var write = through()
+ var read = through()
+ var dup = duplexify(write, read)
+
+ dup.on('error', function(err) {
+ t.same(err.message, 'read-error', 'received read error')
+ })
+ dup.on('close', function() {
+ t.ok(true, 'close emitted')
+ })
+
+ read.emit('error', new Error('read-error'))
+ write.emit('error', new Error('write-error')) // only emit first error
+})
+
+tape('bubble write errors', function(t) {
+ t.plan(2)
+
+ var write = through()
+ var read = through()
+ var dup = duplexify(write, read)
+
+ dup.on('error', function(err) {
+ t.same(err.message, 'write-error', 'received write error')
+ })
+ dup.on('close', function() {
+ t.ok(true, 'close emitted')
+ })
+
+ write.emit('error', new Error('write-error'))
+ read.emit('error', new Error('read-error')) // only emit first error
+})
+
+tape('reset writable / readable', function(t) {
+ t.plan(3)
+
+ var toUpperCase = function(data, enc, cb) {
+ cb(null, data.toString().toUpperCase())
+ }
+
+ var passthrough = through()
+ var upper = through(toUpperCase)
+ var dup = duplexify(passthrough, passthrough)
+
+ dup.once('data', function(data) {
+ t.same(data.toString(), 'hello')
+ dup.setWritable(upper)
+ dup.setReadable(upper)
+ dup.once('data', function(data) {
+ t.same(data.toString(), 'HELLO')
+ dup.once('data', function(data) {
+ t.same(data.toString(), 'HI')
+ t.end()
+ })
+ })
+ dup.write('hello')
+ dup.write('hi')
+ })
+ dup.write('hello')
+})
+
+tape('cork', function(t) {
+ var passthrough = through()
+ var dup = duplexify(passthrough, passthrough)
+ var ok = false
+
+ dup.on('prefinish', function() {
+ dup.cork()
+ setTimeout(function() {
+ ok = true
+ dup.uncork()
+ }, 100)
+ })
+ dup.on('finish', function() {
+ t.ok(ok)
+ t.end()
+ })
+ dup.end()
+})
+
+tape('prefinish not twice', function(t) {
+ var passthrough = through()
+ var dup = duplexify(passthrough, passthrough)
+ var prefinished = false
+
+ dup.on('prefinish', function() {
+ t.ok(!prefinished, 'only prefinish once')
+ prefinished = true
+ })
+
+ dup.on('finish', function() {
+ t.end()
+ })
+
+ dup.end()
+})
+
+tape('close', function(t) {
+ var passthrough = through()
+ var dup = duplexify(passthrough, passthrough)
+
+ passthrough.emit('close')
+ dup.on('close', function() {
+ t.ok(true, 'should forward close')
+ t.end()
+ })
+})
+
+tape('works with node native streams (net)', function(t) {
+ t.plan(1)
+
+ var server = net.createServer(function(socket) {
+ var dup = duplexify(socket, socket)
+
+ dup.once('data', function(chunk) {
+ t.same(chunk, Buffer('hello world'))
+ server.close()
+ socket.end()
+ t.end()
+ })
+ })
+
+ server.listen(0, function () {
+ var socket = net.connect(server.address().port)
+ var dup = duplexify(socket, socket)
+
+ dup.write(Buffer('hello world'))
+ })
+})
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/.npmignore b/deps/npm/node_modules/ecc-jsbn/.npmignore
index a72b52ebe8..a72b52ebe8 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/.npmignore
+++ b/deps/npm/node_modules/ecc-jsbn/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/LICENSE b/deps/npm/node_modules/ecc-jsbn/LICENSE
index f668fefc62..f668fefc62 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/LICENSE
+++ b/deps/npm/node_modules/ecc-jsbn/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/README.md b/deps/npm/node_modules/ecc-jsbn/README.md
index b5d0b9de96..b5d0b9de96 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/README.md
+++ b/deps/npm/node_modules/ecc-jsbn/README.md
diff --git a/deps/npm/node_modules/ecc-jsbn/index.js b/deps/npm/node_modules/ecc-jsbn/index.js
new file mode 100644
index 0000000000..371b545c53
--- /dev/null
+++ b/deps/npm/node_modules/ecc-jsbn/index.js
@@ -0,0 +1,56 @@
+var crypto = require("crypto");
+var BigInteger = require("jsbn").BigInteger;
+var ECPointFp = require("./lib/ec.js").ECPointFp;
+exports.ECCurves = require("./lib/sec.js");
+
+// zero prepad
+function unstupid(hex,len)
+{
+ return (hex.length >= len) ? hex : unstupid("0"+hex,len);
+}
+
+exports.ECKey = function(curve, key, isPublic)
+{
+ var priv;
+ var c = curve();
+ var n = c.getN();
+ var bytes = Math.floor(n.bitLength()/8);
+
+ if(key)
+ {
+ if(isPublic)
+ {
+ var curve = c.getCurve();
+// var x = key.slice(1,bytes+1); // skip the 04 for uncompressed format
+// var y = key.slice(bytes+1);
+// this.P = new ECPointFp(curve,
+// curve.fromBigInteger(new BigInteger(x.toString("hex"), 16)),
+// curve.fromBigInteger(new BigInteger(y.toString("hex"), 16)));
+ this.P = curve.decodePointHex(key.toString("hex"));
+ }else{
+ if(key.length != bytes) return false;
+ priv = new BigInteger(key.toString("hex"), 16);
+ }
+ }else{
+ var n1 = n.subtract(BigInteger.ONE);
+ var r = new BigInteger(crypto.randomBytes(n.bitLength()));
+ priv = r.mod(n1).add(BigInteger.ONE);
+ this.P = c.getG().multiply(priv);
+ }
+ if(this.P)
+ {
+// var pubhex = unstupid(this.P.getX().toBigInteger().toString(16),bytes*2)+unstupid(this.P.getY().toBigInteger().toString(16),bytes*2);
+// this.PublicKey = new Buffer("04"+pubhex,"hex");
+ this.PublicKey = new Buffer(c.getCurve().encodeCompressedPointHex(this.P),"hex");
+ }
+ if(priv)
+ {
+ this.PrivateKey = new Buffer(unstupid(priv.toString(16),bytes*2),"hex");
+ this.deriveSharedSecret = function(key)
+ {
+ if(!key || !key.P) return false;
+ var S = key.P.multiply(priv);
+ return new Buffer(unstupid(S.getX().toBigInteger().toString(16),bytes*2),"hex");
+ }
+ }
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn b/deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn
index 24502a9cf7..c769b38bea 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/LICENSE-jsbn
+++ b/deps/npm/node_modules/ecc-jsbn/lib/LICENSE-jsbn
@@ -18,9 +18,9 @@ This software is covered under the following copyright:
* 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
*
* IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
* INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/ec.js b/deps/npm/node_modules/ecc-jsbn/lib/ec.js
index 3852671eca..38dc523caa 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/ec.js
+++ b/deps/npm/node_modules/ecc-jsbn/lib/ec.js
@@ -434,7 +434,7 @@ ECFieldElementFp.prototype.modReduce = function(x)
{
u = u.multiply(this.getR());
}
- x = u.add(v);
+ x = u.add(v);
}
while (x.compareTo(q) >= 0)
{
@@ -454,8 +454,8 @@ ECFieldElementFp.prototype.sqrt = function()
// p mod 4 == 3
if (this.q.testBit(1))
{
- var z = new ECFieldElementFp(this.q,this.x.modPow(this.q.shiftRight(2).add(BigInteger.ONE),this.q));
- return z.square().equals(this) ? z : null;
+ var z = new ECFieldElementFp(this.q,this.x.modPow(this.q.shiftRight(2).add(BigInteger.ONE),this.q));
+ return z.square().equals(this) ? z : null;
}
// p mod 4 == 1
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/sec.js b/deps/npm/node_modules/ecc-jsbn/lib/sec.js
index 5eec8179ff..5eec8179ff 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/lib/sec.js
+++ b/deps/npm/node_modules/ecc-jsbn/lib/sec.js
diff --git a/deps/npm/node_modules/ecc-jsbn/package.json b/deps/npm/node_modules/ecc-jsbn/package.json
new file mode 100644
index 0000000000..265608aebe
--- /dev/null
+++ b/deps/npm/node_modules/ecc-jsbn/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "ecc-jsbn@~0.1.1",
+ "_id": "ecc-jsbn@0.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
+ "_location": "/ecc-jsbn",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ecc-jsbn@~0.1.1",
+ "name": "ecc-jsbn",
+ "escapedName": "ecc-jsbn",
+ "rawSpec": "~0.1.1",
+ "saveSpec": null,
+ "fetchSpec": "~0.1.1"
+ },
+ "_requiredBy": [
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
+ "_shasum": "0fc73a9ed5f0d53c38193398523ef7e543777505",
+ "_spec": "ecc-jsbn@~0.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "Jeremie Miller",
+ "email": "jeremie@jabber.org",
+ "url": "http://jeremie.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/quartzjer/ecc-jsbn/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "jsbn": "~0.1.0"
+ },
+ "deprecated": false,
+ "description": "ECC JS code based on JSBN",
+ "homepage": "https://github.com/quartzjer/ecc-jsbn",
+ "keywords": [
+ "jsbn",
+ "ecc",
+ "browserify"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "name": "Jeremie Miller",
+ "email": "jeremie@jabber.org",
+ "url": "http://jeremie.com/"
+ },
+ {
+ "name": "Ryan Bennett",
+ "url": "https://github.com/rynomad"
+ }
+ ],
+ "name": "ecc-jsbn",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/quartzjer/ecc-jsbn.git"
+ },
+ "version": "0.1.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/test.js b/deps/npm/node_modules/ecc-jsbn/test.js
index bd52abfd9d..bd52abfd9d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/test.js
+++ b/deps/npm/node_modules/ecc-jsbn/test.js
diff --git a/deps/npm/node_modules/editor/package.json b/deps/npm/node_modules/editor/package.json
index e2813d2410..e7dd7f32cb 100644
--- a/deps/npm/node_modules/editor/package.json
+++ b/deps/npm/node_modules/editor/package.json
@@ -1,39 +1,41 @@
{
- "_from": "editor@~1.0.0",
+ "_args": [
+ [
+ "editor@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "editor@1.0.0",
"_id": "editor@1.0.0",
+ "_inBundle": false,
"_integrity": "sha1-YMf4e9YrzGqJT6jM1q+3gjok90I=",
"_location": "/editor",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "editor@~1.0.0",
+ "raw": "editor@1.0.0",
"name": "editor",
"escapedName": "editor",
- "rawSpec": "~1.0.0",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "~1.0.0"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/editor/-/editor-1.0.0.tgz",
- "_shasum": "60c7f87bd62bcc6a894fa8ccd6afb7823a24f742",
- "_shrinkwrap": null,
- "_spec": "editor@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
"url": "http://substack.net"
},
- "bin": null,
"bugs": {
"url": "https://github.com/substack/node-editor/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "launch $EDITOR in your program",
"devDependencies": {
"tap": "~0.4.4"
@@ -54,8 +56,6 @@
"license": "MIT",
"main": "index.js",
"name": "editor",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/substack/node-editor.git"
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore b/deps/npm/node_modules/encoding/.npmignore
index b512c09d47..b512c09d47 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/.npmignore
+++ b/deps/npm/node_modules/encoding/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml b/deps/npm/node_modules/encoding/.travis.yml
index abc4f48cdd..abc4f48cdd 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml
+++ b/deps/npm/node_modules/encoding/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE b/deps/npm/node_modules/encoding/LICENSE
index 33f5a9a366..33f5a9a366 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE
+++ b/deps/npm/node_modules/encoding/LICENSE
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md b/deps/npm/node_modules/encoding/README.md
index 62e6bf88f7..62e6bf88f7 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md
+++ b/deps/npm/node_modules/encoding/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js b/deps/npm/node_modules/encoding/lib/encoding.js
index cbea3ced28..cbea3ced28 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js
+++ b/deps/npm/node_modules/encoding/lib/encoding.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js b/deps/npm/node_modules/encoding/lib/iconv-loader.js
index 8e925fd8e0..8e925fd8e0 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js
+++ b/deps/npm/node_modules/encoding/lib/iconv-loader.js
diff --git a/deps/npm/node_modules/encoding/package.json b/deps/npm/node_modules/encoding/package.json
new file mode 100644
index 0000000000..94bdb81525
--- /dev/null
+++ b/deps/npm/node_modules/encoding/package.json
@@ -0,0 +1,54 @@
+{
+ "_from": "encoding@^0.1.11",
+ "_id": "encoding@0.1.12",
+ "_inBundle": false,
+ "_integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
+ "_location": "/encoding",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "encoding@^0.1.11",
+ "name": "encoding",
+ "escapedName": "encoding",
+ "rawSpec": "^0.1.11",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.11"
+ },
+ "_requiredBy": [
+ "/node-fetch",
+ "/node-fetch-npm"
+ ],
+ "_resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
+ "_shasum": "538b66f3ee62cd1ab51ec323829d1f9480c74beb",
+ "_spec": "encoding@^0.1.11",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-fetch-npm",
+ "author": {
+ "name": "Andris Reinman"
+ },
+ "bugs": {
+ "url": "https://github.com/andris9/encoding/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "iconv-lite": "~0.4.13"
+ },
+ "deprecated": false,
+ "description": "Convert encodings, uses iconv by default and fallbacks to iconv-lite if needed",
+ "devDependencies": {
+ "iconv": "~2.1.11",
+ "nodeunit": "~0.9.1"
+ },
+ "homepage": "https://github.com/andris9/encoding#readme",
+ "license": "MIT",
+ "main": "lib/encoding.js",
+ "name": "encoding",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/andris9/encoding.git"
+ },
+ "scripts": {
+ "test": "nodeunit test"
+ },
+ "version": "0.1.12"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js b/deps/npm/node_modules/encoding/test/test.js
index 0de4dcb175..0de4dcb175 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js
+++ b/deps/npm/node_modules/encoding/test/test.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/LICENSE b/deps/npm/node_modules/end-of-stream/LICENSE
index 757562ec59..757562ec59 100644
--- a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/LICENSE
+++ b/deps/npm/node_modules/end-of-stream/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/README.md b/deps/npm/node_modules/end-of-stream/README.md
index f2560c939d..f2560c939d 100644
--- a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/README.md
+++ b/deps/npm/node_modules/end-of-stream/README.md
diff --git a/deps/npm/node_modules/end-of-stream/index.js b/deps/npm/node_modules/end-of-stream/index.js
new file mode 100644
index 0000000000..be426c227c
--- /dev/null
+++ b/deps/npm/node_modules/end-of-stream/index.js
@@ -0,0 +1,87 @@
+var once = require('once');
+
+var noop = function() {};
+
+var isRequest = function(stream) {
+ return stream.setHeader && typeof stream.abort === 'function';
+};
+
+var isChildProcess = function(stream) {
+ return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3
+};
+
+var eos = function(stream, opts, callback) {
+ if (typeof opts === 'function') return eos(stream, null, opts);
+ if (!opts) opts = {};
+
+ callback = once(callback || noop);
+
+ var ws = stream._writableState;
+ var rs = stream._readableState;
+ var readable = opts.readable || (opts.readable !== false && stream.readable);
+ var writable = opts.writable || (opts.writable !== false && stream.writable);
+
+ var onlegacyfinish = function() {
+ if (!stream.writable) onfinish();
+ };
+
+ var onfinish = function() {
+ writable = false;
+ if (!readable) callback.call(stream);
+ };
+
+ var onend = function() {
+ readable = false;
+ if (!writable) callback.call(stream);
+ };
+
+ var onexit = function(exitCode) {
+ callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);
+ };
+
+ var onerror = function(err) {
+ callback.call(stream, err);
+ };
+
+ var onclose = function() {
+ if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close'));
+ if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close'));
+ };
+
+ var onrequest = function() {
+ stream.req.on('finish', onfinish);
+ };
+
+ if (isRequest(stream)) {
+ stream.on('complete', onfinish);
+ stream.on('abort', onclose);
+ if (stream.req) onrequest();
+ else stream.on('request', onrequest);
+ } else if (writable && !ws) { // legacy streams
+ stream.on('end', onlegacyfinish);
+ stream.on('close', onlegacyfinish);
+ }
+
+ if (isChildProcess(stream)) stream.on('exit', onexit);
+
+ stream.on('end', onend);
+ stream.on('finish', onfinish);
+ if (opts.error !== false) stream.on('error', onerror);
+ stream.on('close', onclose);
+
+ return function() {
+ stream.removeListener('complete', onfinish);
+ stream.removeListener('abort', onclose);
+ stream.removeListener('request', onrequest);
+ if (stream.req) stream.req.removeListener('finish', onfinish);
+ stream.removeListener('end', onlegacyfinish);
+ stream.removeListener('close', onlegacyfinish);
+ stream.removeListener('finish', onfinish);
+ stream.removeListener('exit', onexit);
+ stream.removeListener('end', onend);
+ stream.removeListener('error', onerror);
+ stream.removeListener('close', onclose);
+ };
+};
+
+module.exports = eos;
diff --git a/deps/npm/node_modules/end-of-stream/package.json b/deps/npm/node_modules/end-of-stream/package.json
new file mode 100644
index 0000000000..428a97f5df
--- /dev/null
+++ b/deps/npm/node_modules/end-of-stream/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "end-of-stream@^1.1.0",
+ "_id": "end-of-stream@1.4.1",
+ "_inBundle": false,
+ "_integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+ "_location": "/end-of-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "end-of-stream@^1.1.0",
+ "name": "end-of-stream",
+ "escapedName": "end-of-stream",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/duplexify",
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-profile/mississippi/pump",
+ "/npm-profile/pump",
+ "/npm-registry-fetch/cacache/mississippi",
+ "/npm-registry-fetch/pump",
+ "/pump",
+ "/pumpify/pump",
+ "/stream-each"
+ ],
+ "_resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
+ "_shasum": "ed29634d19baba463b6ce6b80a37213eab71ec43",
+ "_spec": "end-of-stream@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/end-of-stream/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "once": "^1.4.0"
+ },
+ "deprecated": false,
+ "description": "Call a callback when a readable/writable/duplex stream has completed or failed.",
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/mafintosh/end-of-stream",
+ "keywords": [
+ "stream",
+ "streams",
+ "callback",
+ "finish",
+ "close",
+ "end",
+ "wait"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "end-of-stream",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/end-of-stream.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.4.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.editorconfig b/deps/npm/node_modules/err-code/.editorconfig
index 829280bee1..829280bee1 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.editorconfig
+++ b/deps/npm/node_modules/err-code/.editorconfig
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.eslintrc.json b/deps/npm/node_modules/err-code/.eslintrc.json
index f34b41d96c..f34b41d96c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.eslintrc.json
+++ b/deps/npm/node_modules/err-code/.eslintrc.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.npmignore b/deps/npm/node_modules/err-code/.npmignore
index a22dcdd470..a22dcdd470 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.npmignore
+++ b/deps/npm/node_modules/err-code/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.travis.yml b/deps/npm/node_modules/err-code/.travis.yml
index f85680370f..f85680370f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.travis.yml
+++ b/deps/npm/node_modules/err-code/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/README.md b/deps/npm/node_modules/err-code/README.md
index 19a390df08..19a390df08 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/README.md
+++ b/deps/npm/node_modules/err-code/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/bower.json b/deps/npm/node_modules/err-code/bower.json
index a39cb702ce..a39cb702ce 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/bower.json
+++ b/deps/npm/node_modules/err-code/bower.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.js b/deps/npm/node_modules/err-code/index.js
index 1a0a69f626..1a0a69f626 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.js
+++ b/deps/npm/node_modules/err-code/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.umd.js b/deps/npm/node_modules/err-code/index.umd.js
index d1dbdf7335..d1dbdf7335 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/index.umd.js
+++ b/deps/npm/node_modules/err-code/index.umd.js
diff --git a/deps/npm/node_modules/err-code/package.json b/deps/npm/node_modules/err-code/package.json
new file mode 100644
index 0000000000..254e00a723
--- /dev/null
+++ b/deps/npm/node_modules/err-code/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "err-code@^1.0.0",
+ "_id": "err-code@1.1.2",
+ "_inBundle": false,
+ "_integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
+ "_location": "/err-code",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "err-code@^1.0.0",
+ "name": "err-code",
+ "escapedName": "err-code",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/promise-retry"
+ ],
+ "_resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
+ "_shasum": "06e0116d3028f6aef4806849eb0ea6a748ae6960",
+ "_spec": "err-code@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/promise-retry",
+ "author": {
+ "name": "IndigoUnited",
+ "email": "hello@indigounited.com",
+ "url": "http://indigounited.com"
+ },
+ "bugs": {
+ "url": "https://github.com/IndigoUnited/js-err-code/issues/"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Create an error with a code",
+ "devDependencies": {
+ "@satazor/eslint-config": "^3.0.0",
+ "browserify": "^14.0.0",
+ "eslint": "^3.0.0",
+ "expect.js": "^0.3.1",
+ "mocha": "^3.0.2"
+ },
+ "homepage": "https://github.com/IndigoUnited/js-err-code#readme",
+ "keywords": [
+ "error",
+ "err",
+ "code",
+ "properties",
+ "property"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "err-code",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/IndigoUnited/js-err-code.git"
+ },
+ "scripts": {
+ "browserify": "browserify -s err-code index.js > index.umd.js",
+ "lint": "eslint '{*.js,test/**/*.js}' --ignore-pattern *.umd.js",
+ "test": "mocha --bail"
+ },
+ "version": "1.1.2"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json b/deps/npm/node_modules/err-code/test/.eslintrc.json
index f9fbb2d6ce..f9fbb2d6ce 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json
+++ b/deps/npm/node_modules/err-code/test/.eslintrc.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/test.js b/deps/npm/node_modules/err-code/test/test.js
index 81b2b26d37..81b2b26d37 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/test/test.js
+++ b/deps/npm/node_modules/err-code/test/test.js
diff --git a/deps/npm/node_modules/errno/.travis.yml b/deps/npm/node_modules/errno/.travis.yml
new file mode 100644
index 0000000000..f996821c51
--- /dev/null
+++ b/deps/npm/node_modules/errno/.travis.yml
@@ -0,0 +1,11 @@
+sudo: false
+
+language: node_js
+
+node_js:
+ - 9
+ - 8
+ - 7
+ - 6
+ - 5
+ - 4
diff --git a/deps/npm/node_modules/errno/README.md b/deps/npm/node_modules/errno/README.md
new file mode 100644
index 0000000000..a4d0fb542d
--- /dev/null
+++ b/deps/npm/node_modules/errno/README.md
@@ -0,0 +1,145 @@
+# node-errno
+
+> Better [libuv](https://github.com/libuv/libuv)/[Node.js](https://nodejs.org)/[io.js](https://iojs.org) error handling & reporting. Available in npm as *errno*.
+
+[![npm](https://img.shields.io/npm/v/errno.svg)](https://www.npmjs.com/package/errno)
+[![Build Status](https://secure.travis-ci.org/rvagg/node-errno.png)](http://travis-ci.org/rvagg/node-errno)
+[![npm](https://img.shields.io/npm/dm/errno.svg)](https://www.npmjs.com/package/errno)
+
+* [errno exposed](#errnoexposed)
+* [Custom errors](#customerrors)
+
+<a name="errnoexposed"></a>
+## errno exposed
+
+Ever find yourself needing more details about Node.js errors? Me too, so *node-errno* contains the errno mappings direct from libuv so you can use them in your code.
+
+**By errno:**
+
+```js
+require('errno').errno[3]
+// ā†’ {
+// "errno": 3,
+// "code": "EACCES",
+// "description": "permission denied"
+// }
+```
+
+**By code:**
+
+```js
+require('errno').code.ENOTEMPTY
+// ā†’ {
+// "errno": 53,
+// "code": "ENOTEMPTY",
+// "description": "directory not empty"
+// }
+```
+
+**Make your errors more descriptive:**
+
+```js
+var errno = require('errno')
+
+function errmsg(err) {
+ var str = 'Error: '
+ // if it's a libuv error then get the description from errno
+ if (errno.errno[err.errno])
+ str += errno.errno[err.errno].description
+ else
+ str += err.message
+
+ // if it's a `fs` error then it'll have a 'path' property
+ if (err.path)
+ str += ' [' + err.path + ']'
+
+ return str
+}
+
+var fs = require('fs')
+
+fs.readFile('thisisnotarealfile.txt', function (err, data) {
+ if (err)
+ console.log(errmsg(err))
+})
+```
+
+**Use as a command line tool:**
+
+```
+~ $ errno 53
+{
+ "errno": 53,
+ "code": "ENOTEMPTY",
+ "description": "directory not empty"
+}
+~ $ errno EROFS
+{
+ "errno": 56,
+ "code": "EROFS",
+ "description": "read-only file system"
+}
+~ $ errno foo
+No such errno/code: "foo"
+```
+
+Supply no arguments for the full list. Error codes are processed case-insensitive.
+
+You will need to install with `npm install errno -g` if you want the `errno` command to be available without supplying a full path to the node_modules installation.
+
+<a name="customerrors"></a>
+## Custom errors
+
+Use `errno.custom.createError()` to create custom `Error` objects to throw around in your Node.js library. Create error hierarchies so `instanceof` becomes a useful tool in tracking errors. Call-stack is correctly captured at the time you create an instance of the error object, plus a `cause` property will make available the original error object if you pass one in to the constructor.
+
+```js
+var create = require('errno').custom.createError
+var MyError = create('MyError') // inherits from Error
+var SpecificError = create('SpecificError', MyError) // inherits from MyError
+var OtherError = create('OtherError', MyError)
+
+// use them!
+if (condition) throw new SpecificError('Eeek! Something bad happened')
+
+if (err) return callback(new OtherError(err))
+```
+
+Also available is a `errno.custom.FilesystemError` with in-built access to errno properties:
+
+```js
+fs.readFile('foo', function (err, data) {
+ if (err) return callback(new errno.custom.FilesystemError(err))
+ // do something else
+})
+```
+
+The resulting error object passed through the callback will have the following properties: `code`, `errno`, `path` and `message` will contain a descriptive human-readable message.
+
+## Contributors
+
+* [bahamas10](https://github.com/bahamas10) (Dave Eddy) - Added CLI
+* [ralphtheninja](https://github.com/ralphtheninja) (Lars-Magnus Skog)
+
+## Copyright & Licence
+
+*Copyright (c) 2012-2015 [Rod Vagg](https://github.com/rvagg) ([@rvagg](https://twitter.com/rvagg))*
+
+Made available under the MIT licence:
+
+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/worker-farm/node_modules/errno/build.js b/deps/npm/node_modules/errno/build.js
index fce89260c1..fce89260c1 100755
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/build.js
+++ b/deps/npm/node_modules/errno/build.js
diff --git a/deps/npm/node_modules/errno/cli.js b/deps/npm/node_modules/errno/cli.js
new file mode 100755
index 0000000000..61d179bbe6
--- /dev/null
+++ b/deps/npm/node_modules/errno/cli.js
@@ -0,0 +1,22 @@
+#!/usr/bin/env node
+
+var errno = require('./')
+ , arg = process.argv[2]
+ , data, code
+
+if (arg === undefined) {
+ console.log(JSON.stringify(errno.code, null, 2))
+ process.exit(0)
+}
+
+if ((code = +arg) == arg)
+ data = errno.errno[code]
+else
+ data = errno.code[arg] || errno.code[arg.toUpperCase()]
+
+if (data)
+ console.log(JSON.stringify(data, null, 2))
+else {
+ console.error('No such errno/code: "' + arg + '"')
+ process.exit(1)
+}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/custom.js b/deps/npm/node_modules/errno/custom.js
index 7be16c1e4d..ca8c1d8dcd 100644
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/custom.js
+++ b/deps/npm/node_modules/errno/custom.js
@@ -1,13 +1,15 @@
var prr = require('prr')
function init (type, message, cause) {
+ if (!!message && typeof message != 'string') {
+ message = message.message || message.name
+ }
prr(this, {
type : type
, name : type
// can be passed just a 'cause'
, cause : typeof message != 'string' ? message : cause
- , message : !!message && typeof message != 'string' ? message.message : message
-
+ , message : message
}, 'ewr')
}
@@ -15,7 +17,7 @@ function init (type, message, cause) {
function CustomError (message, cause) {
Error.call(this)
if (Error.captureStackTrace)
- Error.captureStackTrace(this, arguments.callee)
+ Error.captureStackTrace(this, this.constructor)
init.call(this, 'CustomError', message, cause)
}
@@ -37,7 +39,7 @@ function createError (errno, type, proto) {
}
Error.call(this)
if (Error.captureStackTrace)
- Error.captureStackTrace(this, arguments.callee)
+ Error.captureStackTrace(this, err)
}
err.prototype = !!proto ? new proto() : new CustomError()
return err
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/errno.js b/deps/npm/node_modules/errno/errno.js
index efb79d41b1..efb79d41b1 100644
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/errno.js
+++ b/deps/npm/node_modules/errno/errno.js
diff --git a/deps/npm/node_modules/errno/package.json b/deps/npm/node_modules/errno/package.json
new file mode 100644
index 0000000000..2b2d0078de
--- /dev/null
+++ b/deps/npm/node_modules/errno/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "errno@~0.1.7",
+ "_id": "errno@0.1.7",
+ "_inBundle": false,
+ "_integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==",
+ "_location": "/errno",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "errno@~0.1.7",
+ "name": "errno",
+ "escapedName": "errno",
+ "rawSpec": "~0.1.7",
+ "saveSpec": null,
+ "fetchSpec": "~0.1.7"
+ },
+ "_requiredBy": [
+ "/worker-farm"
+ ],
+ "_resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
+ "_shasum": "4684d71779ad39af177e3f007996f7c67c852618",
+ "_spec": "errno@~0.1.7",
+ "_where": "/Users/rebecca/code/npm/node_modules/worker-farm",
+ "authors": [
+ "Rod Vagg @rvagg <rod@vagg.org> (https://github.com/rvagg)"
+ ],
+ "bin": {
+ "errno": "./cli.js"
+ },
+ "bugs": {
+ "url": "https://github.com/rvagg/node-errno/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "prr": "~1.0.1"
+ },
+ "deprecated": false,
+ "description": "libuv errno details exposed",
+ "devDependencies": {
+ "error-stack-parser": "^2.0.1",
+ "inherits": "^2.0.3",
+ "tape": "~4.8.0"
+ },
+ "homepage": "https://github.com/rvagg/node-errno#readme",
+ "keywords": [
+ "errors",
+ "errno",
+ "libuv"
+ ],
+ "license": "MIT",
+ "main": "errno.js",
+ "name": "errno",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rvagg/node-errno.git"
+ },
+ "scripts": {
+ "test": "node --use_strict test.js"
+ },
+ "version": "0.1.7"
+}
diff --git a/deps/npm/node_modules/errno/test.js b/deps/npm/node_modules/errno/test.js
new file mode 100644
index 0000000000..1c046357bc
--- /dev/null
+++ b/deps/npm/node_modules/errno/test.js
@@ -0,0 +1,88 @@
+var test = require('tape')
+ , inherits = require('inherits')
+ , ErrorStackParser = require('error-stack-parser')
+ , errno = require('./')
+
+test('sanity checks', function (t) {
+ t.ok(errno.all, 'errno.all not found')
+ t.ok(errno.errno, 'errno.errno not found')
+ t.ok(errno.code, 'errno.code not found')
+
+ t.equal(errno.all.length, 60, 'found ' + errno.all.length + ', expected 60')
+ t.equal(errno.errno['-1'], errno.all[1], 'errno -1 not second element')
+
+ t.equal(errno.code['UNKNOWN'], errno.all[1], 'code UNKNOWN not second element')
+
+ t.equal(errno.errno[1], errno.all[3], 'errno 1 not fourth element')
+
+ t.equal(errno.code['EOF'], errno.all[3], 'code EOF not fourth element')
+ t.end()
+})
+
+test('custom errors', function (t) {
+ const Cust = errno.create('FooNotBarError')
+ const cust = new Cust('foo is not bar')
+
+ t.equal(cust.name, 'FooNotBarError', 'correct custom name')
+ t.equal(cust.type, 'FooNotBarError', 'correct custom type')
+ t.equal(cust.message, 'foo is not bar', 'correct custom message')
+ t.notOk(cust.cause, 'no cause')
+ t.end()
+})
+
+test('callstack', function (t) {
+ const MyError = errno.create('MyError')
+
+ function lastFunction (ErrorType, cb) {
+ process.nextTick(cb, new ErrorType('oh noes!'))
+ }
+
+ function secondLastFunction (ErrorType, cb) {
+ lastFunction(ErrorType, cb)
+ }
+
+ function testFrames (t) {
+ return function (err) {
+ const stack = ErrorStackParser.parse(err)
+ t.same(stack[0].functionName, 'lastFunction', 'last stack frame ok')
+ t.same(stack[1].functionName, 'secondLastFunction', 'second last stack frame ok')
+ t.end()
+ }
+ }
+
+ t.test('custom error, default prototype', function (t) {
+ secondLastFunction(MyError, testFrames(t))
+ })
+
+ t.test('custom error, custom prototype', function (t) {
+ const MyError2 = errno.create('MyError2', MyError)
+ secondLastFunction(MyError2, testFrames(t))
+ })
+
+ t.test('custom error, using inheritance', function (t) {
+ const CustomError = errno.custom.CustomError
+
+ function MyError3 (message, cause) {
+ CustomError.call(this, message, cause)
+ }
+
+ inherits(MyError3, CustomError)
+
+ secondLastFunction(MyError3, testFrames(t))
+ })
+})
+
+test('error without message', function (t) {
+ const Cust = errno.create('WriteError')
+ const cust = new Cust({
+ code: 22,
+ message: '',
+ name: 'QuotaExceededError'
+ })
+
+ t.equal(cust.name, 'WriteError', 'correct custom name')
+ t.equal(cust.type, 'WriteError', 'correct custom type')
+ t.equal(cust.message, 'QuotaExceededError', 'message is the name')
+ t.notOk(cust.cause, 'no cause')
+ t.end()
+})
diff --git a/deps/npm/node_modules/es6-promise/CHANGELOG.md b/deps/npm/node_modules/es6-promise/CHANGELOG.md
new file mode 100644
index 0000000000..51582059f9
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/CHANGELOG.md
@@ -0,0 +1,151 @@
+# Master
+
+# 4.2.4
+
+* [Fixes #305] Confuse webpack
+
+# 4.2.3
+
+* Cleanup testem related build configuration
+* Use `prepublishOnly` instead of `prepublish` (thanks @rhysd)
+* Add Node.js 9, 8 to testing matrix
+* drop now unused s3 deployment files
+* internal cleanup (thanks to @bekzod, @mariusschulz)
+* Fixup Changelog
+
+# 4.2.2
+
+* Ensure PROMISE_ID works correctly
+* internal cleanup (thanks yo @mariusschulz)
+
+# 4.2.1
+
+* drop bower support
+
+# 4.2.0
+
+* drop `dist` from git repo
+* add `Promise.prototype.finally`
+* update various build related dependencies
+* add CDN links
+
+# 4.1.0
+
+* [BUGFIX] Fix memory leak [#269]
+* [BUGFIX] Auto Bundles within an AMD Environment [#263]
+
+# 4.0.5
+
+* fix require('es6-promise/auto') for Node < 4
+
+# 4.0.4
+
+* fix asap when using https://github.com/Kinvey/titanium-sdk
+
+# 4.0.3
+
+* fix Readme links
+
+# 4.0.2
+
+* fix require('es6-promise/auto');
+
+# 4.0.0
+
+* no longer polyfill automatically, if needed one can still invoke
+ `require('es6-promise/auto')` directly.
+
+# 3.3.1
+
+* fix links in readme
+
+# 3.3.0
+
+* support polyfil on WebMAF (playstation env)
+* fix tampering related bug global `constructor` was referenced by mistake.
+* provide TS Typings
+* increase compatibliity with sinon.useFakeTimers();
+* update build tools (use rollup)
+* directly export promise;
+
+# 3.2.2
+
+* IE8: use isArray
+* update build dependencies
+
+# 3.2.1
+
+* fix race tampering issue
+* use eslint
+* fix Promise.all tampering
+* remove unused code
+* fix issues with NWJS/electron
+
+# 3.2.0
+
+* improve tamper resistence of Promise.all Promise.race and
+ Promise.prototype.then (note, this isn't complete, but addresses an exception
+ when used \w core-js, follow up work will address entirely)
+* remove spec incompatible then chaining fast-path
+* add eslint
+* update build deps
+
+# 3.1.2
+
+* fix node detection issues with NWJS/electron
+
+# 3.1.0
+
+* improve performance of Promise.all when it encounters a non-promise input object input
+* then/resolve tamper protection
+* reduce AST size of promise constructor, to facilitate more inlining
+* Update README.md with details about PhantomJS requirement for running tests
+* Mangle and compress the minified version
+
+# 3.0.2
+
+* correctly bump both bower and package.json versions
+
+# 3.0.1
+
+* no longer include dist/test in npm releases
+
+# 3.0.0
+
+* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
+ nodes are not affected as they were already using nextTick(). Note that using nextTick() might
+ trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
+ The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
+ instead of a microtask and might result in a different scheduling.
+ If needed you can revert to the former behavior as follow:
+
+ var Promise = require('es6-promise').Promise;
+ Promise._setScheduler(setImmediate);
+
+# 2.3.0
+
+* #121: Ability to override the internal asap implementation
+* #120: Use an ascii character for an apostrophe, for source maps
+
+# 2.2.0
+
+* #116: Expose asap() and a way to override the scheduling mechanism on Promise
+* Lock to v0.2.3 of ember-cli
+
+# 2.1.1
+
+* Fix #100 via #105: tell browserify to ignore vertx require
+* Fix #101 via #102: "follow thenable state, not own state"
+
+# 2.1.0
+
+* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
+* ... (see the commit log)
+
+# 2.0.0
+
+* re-sync with RSVP. Many large performance improvements and bugfixes.
+
+# 1.0.0
+
+* first subset of RSVP
diff --git a/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 b/deps/npm/node_modules/es6-promise/LICENSE
index 954ec5992d..954ec5992d 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/LICENSE
diff --git a/deps/npm/node_modules/es6-promise/README.md b/deps/npm/node_modules/es6-promise/README.md
new file mode 100644
index 0000000000..5bc88d3a64
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/README.md
@@ -0,0 +1,97 @@
+# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
+
+This is a polyfill of the [ES6 Promise](http://www.ecma-international.org/ecma-262/6.0/#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
+
+For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
+
+## Downloads
+
+* [es6-promise 27.86 KB (7.33 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js)
+* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
+* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.min.js)
+* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
+
+## CDN
+
+To use via a CDN include this in your html:
+
+```html
+<!-- Automatically provides/replaces `Promise` if missing or broken. -->
+<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script>
+
+<!-- Minified version of `es6-promise-auto` below. -->
+<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
+<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script>
+
+```
+
+## Node.js
+
+To install:
+
+```sh
+yarn add es6-promise
+```
+
+or
+
+```sh
+npm install es6-promise
+```
+
+To use:
+
+```js
+var Promise = require('es6-promise').Promise;
+```
+
+
+## Usage in IE<9
+
+`catch` and `finally` are reserved keywords in IE<9, meaning
+`promise.catch(func)` or `promise.finally(func)` throw a syntax error. To work
+around this, you can use a string to access the property as shown in the
+following example.
+
+However most minifiers will automatically fix this for you, making the
+resulting code safe for old browsers and production:
+
+```js
+promise['catch'](function(err) {
+ // ...
+});
+```
+
+```js
+promise['finally'](function() {
+ // ...
+});
+```
+
+## Auto-polyfill
+
+To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
+
+```js
+require('es6-promise').polyfill();
+```
+
+Alternatively
+
+```js
+require('es6-promise/auto');
+```
+
+Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
+
+## Building & Testing
+
+You will need to have PhantomJS installed globally in order to run the tests.
+
+`npm install -g phantomjs`
+
+* `npm run build` to build
+* `npm test` to run tests
+* `npm start` to run a build watcher, and webserver to test
+* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/deps/npm/node_modules/es6-promise/auto.js
index 92bbf36e58..92bbf36e58 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/auto.js
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.js b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.js
new file mode 100644
index 0000000000..9e5e513f56
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.js
@@ -0,0 +1,1181 @@
+/*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license Licensed under MIT license
+ * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+ * @version v4.2.4+314e4831
+ */
+
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global.ES6Promise = factory());
+}(this, (function () { 'use strict';
+
+function objectOrFunction(x) {
+ var type = typeof x;
+ return x !== null && (type === 'object' || type === 'function');
+}
+
+function isFunction(x) {
+ return typeof x === 'function';
+}
+
+
+
+var _isArray = void 0;
+if (Array.isArray) {
+ _isArray = Array.isArray;
+} else {
+ _isArray = function (x) {
+ return Object.prototype.toString.call(x) === '[object Array]';
+ };
+}
+
+var isArray = _isArray;
+
+var len = 0;
+var vertxNext = void 0;
+var customSchedulerFn = void 0;
+
+var asap = function asap(callback, arg) {
+ queue[len] = callback;
+ queue[len + 1] = arg;
+ len += 2;
+ if (len === 2) {
+ // If len is 2, that means that we need to schedule an async flush.
+ // If additional callbacks are queued before the queue is flushed, they
+ // will be processed by this flush that we are scheduling.
+ if (customSchedulerFn) {
+ customSchedulerFn(flush);
+ } else {
+ scheduleFlush();
+ }
+ }
+};
+
+function setScheduler(scheduleFn) {
+ customSchedulerFn = scheduleFn;
+}
+
+function setAsap(asapFn) {
+ asap = asapFn;
+}
+
+var browserWindow = typeof window !== 'undefined' ? window : undefined;
+var browserGlobal = browserWindow || {};
+var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+
+// test for web worker but not in IE10
+var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
+
+// node
+function useNextTick() {
+ // node version 0.10.x displays a deprecation warning when nextTick is used recursively
+ // see https://github.com/cujojs/when/issues/410 for details
+ return function () {
+ return process.nextTick(flush);
+ };
+}
+
+// vertx
+function useVertxTimer() {
+ if (typeof vertxNext !== 'undefined') {
+ return function () {
+ vertxNext(flush);
+ };
+ }
+
+ return useSetTimeout();
+}
+
+function useMutationObserver() {
+ var iterations = 0;
+ var observer = new BrowserMutationObserver(flush);
+ var node = document.createTextNode('');
+ observer.observe(node, { characterData: true });
+
+ return function () {
+ node.data = iterations = ++iterations % 2;
+ };
+}
+
+// web worker
+function useMessageChannel() {
+ var channel = new MessageChannel();
+ channel.port1.onmessage = flush;
+ return function () {
+ return channel.port2.postMessage(0);
+ };
+}
+
+function useSetTimeout() {
+ // Store setTimeout reference so es6-promise will be unaffected by
+ // other code modifying setTimeout (like sinon.useFakeTimers())
+ var globalSetTimeout = setTimeout;
+ return function () {
+ return globalSetTimeout(flush, 1);
+ };
+}
+
+var queue = new Array(1000);
+function flush() {
+ for (var i = 0; i < len; i += 2) {
+ var callback = queue[i];
+ var arg = queue[i + 1];
+
+ callback(arg);
+
+ queue[i] = undefined;
+ queue[i + 1] = undefined;
+ }
+
+ len = 0;
+}
+
+function attemptVertx() {
+ try {
+ var vertx = Function('return this')().require('vertx');
+ vertxNext = vertx.runOnLoop || vertx.runOnContext;
+ return useVertxTimer();
+ } catch (e) {
+ return useSetTimeout();
+ }
+}
+
+var scheduleFlush = void 0;
+// Decide what async method to use to triggering processing of queued callbacks:
+if (isNode) {
+ scheduleFlush = useNextTick();
+} else if (BrowserMutationObserver) {
+ scheduleFlush = useMutationObserver();
+} else if (isWorker) {
+ scheduleFlush = useMessageChannel();
+} else if (browserWindow === undefined && typeof require === 'function') {
+ scheduleFlush = attemptVertx();
+} else {
+ scheduleFlush = useSetTimeout();
+}
+
+function then(onFulfillment, onRejection) {
+ var parent = this;
+
+ var child = new this.constructor(noop);
+
+ if (child[PROMISE_ID] === undefined) {
+ makePromise(child);
+ }
+
+ var _state = parent._state;
+
+
+ if (_state) {
+ var callback = arguments[_state - 1];
+ asap(function () {
+ return invokeCallback(_state, child, callback, parent._result);
+ });
+ } else {
+ subscribe(parent, child, onFulfillment, onRejection);
+ }
+
+ return child;
+}
+
+/**
+ `Promise.resolve` returns a promise that will become resolved with the
+ passed `value`. It is shorthand for the following:
+
+ ```javascript
+ let promise = new Promise(function(resolve, reject){
+ resolve(1);
+ });
+
+ promise.then(function(value){
+ // value === 1
+ });
+ ```
+
+ Instead of writing the above, your code now simply becomes the following:
+
+ ```javascript
+ let promise = Promise.resolve(1);
+
+ promise.then(function(value){
+ // value === 1
+ });
+ ```
+
+ @method resolve
+ @static
+ @param {Any} value value that the returned promise will be resolved with
+ Useful for tooling.
+ @return {Promise} a promise that will become fulfilled with the given
+ `value`
+*/
+function resolve$1(object) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ if (object && typeof object === 'object' && object.constructor === Constructor) {
+ return object;
+ }
+
+ var promise = new Constructor(noop);
+ resolve(promise, object);
+ return promise;
+}
+
+var PROMISE_ID = Math.random().toString(36).substring(2);
+
+function noop() {}
+
+var PENDING = void 0;
+var FULFILLED = 1;
+var REJECTED = 2;
+
+var TRY_CATCH_ERROR = { error: null };
+
+function selfFulfillment() {
+ return new TypeError("You cannot resolve a promise with itself");
+}
+
+function cannotReturnOwn() {
+ return new TypeError('A promises callback cannot return that same promise.');
+}
+
+function getThen(promise) {
+ try {
+ return promise.then;
+ } catch (error) {
+ TRY_CATCH_ERROR.error = error;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
+ try {
+ then$$1.call(value, fulfillmentHandler, rejectionHandler);
+ } catch (e) {
+ return e;
+ }
+}
+
+function handleForeignThenable(promise, thenable, then$$1) {
+ asap(function (promise) {
+ var sealed = false;
+ var error = tryThen(then$$1, thenable, function (value) {
+ if (sealed) {
+ return;
+ }
+ sealed = true;
+ if (thenable !== value) {
+ resolve(promise, value);
+ } else {
+ fulfill(promise, value);
+ }
+ }, function (reason) {
+ if (sealed) {
+ return;
+ }
+ sealed = true;
+
+ reject(promise, reason);
+ }, 'Settle: ' + (promise._label || ' unknown promise'));
+
+ if (!sealed && error) {
+ sealed = true;
+ reject(promise, error);
+ }
+ }, promise);
+}
+
+function handleOwnThenable(promise, thenable) {
+ if (thenable._state === FULFILLED) {
+ fulfill(promise, thenable._result);
+ } else if (thenable._state === REJECTED) {
+ reject(promise, thenable._result);
+ } else {
+ subscribe(thenable, undefined, function (value) {
+ return resolve(promise, value);
+ }, function (reason) {
+ return reject(promise, reason);
+ });
+ }
+}
+
+function handleMaybeThenable(promise, maybeThenable, then$$1) {
+ if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
+ handleOwnThenable(promise, maybeThenable);
+ } else {
+ if (then$$1 === TRY_CATCH_ERROR) {
+ reject(promise, TRY_CATCH_ERROR.error);
+ TRY_CATCH_ERROR.error = null;
+ } else if (then$$1 === undefined) {
+ fulfill(promise, maybeThenable);
+ } else if (isFunction(then$$1)) {
+ handleForeignThenable(promise, maybeThenable, then$$1);
+ } else {
+ fulfill(promise, maybeThenable);
+ }
+ }
+}
+
+function resolve(promise, value) {
+ if (promise === value) {
+ reject(promise, selfFulfillment());
+ } else if (objectOrFunction(value)) {
+ handleMaybeThenable(promise, value, getThen(value));
+ } else {
+ fulfill(promise, value);
+ }
+}
+
+function publishRejection(promise) {
+ if (promise._onerror) {
+ promise._onerror(promise._result);
+ }
+
+ publish(promise);
+}
+
+function fulfill(promise, value) {
+ if (promise._state !== PENDING) {
+ return;
+ }
+
+ promise._result = value;
+ promise._state = FULFILLED;
+
+ if (promise._subscribers.length !== 0) {
+ asap(publish, promise);
+ }
+}
+
+function reject(promise, reason) {
+ if (promise._state !== PENDING) {
+ return;
+ }
+ promise._state = REJECTED;
+ promise._result = reason;
+
+ asap(publishRejection, promise);
+}
+
+function subscribe(parent, child, onFulfillment, onRejection) {
+ var _subscribers = parent._subscribers;
+ var length = _subscribers.length;
+
+
+ parent._onerror = null;
+
+ _subscribers[length] = child;
+ _subscribers[length + FULFILLED] = onFulfillment;
+ _subscribers[length + REJECTED] = onRejection;
+
+ if (length === 0 && parent._state) {
+ asap(publish, parent);
+ }
+}
+
+function publish(promise) {
+ var subscribers = promise._subscribers;
+ var settled = promise._state;
+
+ if (subscribers.length === 0) {
+ return;
+ }
+
+ var child = void 0,
+ callback = void 0,
+ detail = promise._result;
+
+ for (var i = 0; i < subscribers.length; i += 3) {
+ child = subscribers[i];
+ callback = subscribers[i + settled];
+
+ if (child) {
+ invokeCallback(settled, child, callback, detail);
+ } else {
+ callback(detail);
+ }
+ }
+
+ promise._subscribers.length = 0;
+}
+
+function tryCatch(callback, detail) {
+ try {
+ return callback(detail);
+ } catch (e) {
+ TRY_CATCH_ERROR.error = e;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function invokeCallback(settled, promise, callback, detail) {
+ var hasCallback = isFunction(callback),
+ value = void 0,
+ error = void 0,
+ succeeded = void 0,
+ failed = void 0;
+
+ if (hasCallback) {
+ value = tryCatch(callback, detail);
+
+ if (value === TRY_CATCH_ERROR) {
+ failed = true;
+ error = value.error;
+ value.error = null;
+ } else {
+ succeeded = true;
+ }
+
+ if (promise === value) {
+ reject(promise, cannotReturnOwn());
+ return;
+ }
+ } else {
+ value = detail;
+ succeeded = true;
+ }
+
+ if (promise._state !== PENDING) {
+ // noop
+ } else if (hasCallback && succeeded) {
+ resolve(promise, value);
+ } else if (failed) {
+ reject(promise, error);
+ } else if (settled === FULFILLED) {
+ fulfill(promise, value);
+ } else if (settled === REJECTED) {
+ reject(promise, value);
+ }
+}
+
+function initializePromise(promise, resolver) {
+ try {
+ resolver(function resolvePromise(value) {
+ resolve(promise, value);
+ }, function rejectPromise(reason) {
+ reject(promise, reason);
+ });
+ } catch (e) {
+ reject(promise, e);
+ }
+}
+
+var id = 0;
+function nextId() {
+ return id++;
+}
+
+function makePromise(promise) {
+ promise[PROMISE_ID] = id++;
+ promise._state = undefined;
+ promise._result = undefined;
+ promise._subscribers = [];
+}
+
+function validationError() {
+ return new Error('Array Methods must be provided an Array');
+}
+
+var Enumerator = function () {
+ function Enumerator(Constructor, input) {
+ this._instanceConstructor = Constructor;
+ this.promise = new Constructor(noop);
+
+ if (!this.promise[PROMISE_ID]) {
+ makePromise(this.promise);
+ }
+
+ if (isArray(input)) {
+ this.length = input.length;
+ this._remaining = input.length;
+
+ this._result = new Array(this.length);
+
+ if (this.length === 0) {
+ fulfill(this.promise, this._result);
+ } else {
+ this.length = this.length || 0;
+ this._enumerate(input);
+ if (this._remaining === 0) {
+ fulfill(this.promise, this._result);
+ }
+ }
+ } else {
+ reject(this.promise, validationError());
+ }
+ }
+
+ Enumerator.prototype._enumerate = function _enumerate(input) {
+ for (var i = 0; this._state === PENDING && i < input.length; i++) {
+ this._eachEntry(input[i], i);
+ }
+ };
+
+ Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {
+ var c = this._instanceConstructor;
+ var resolve$$1 = c.resolve;
+
+
+ if (resolve$$1 === resolve$1) {
+ var _then = getThen(entry);
+
+ if (_then === then && entry._state !== PENDING) {
+ this._settledAt(entry._state, i, entry._result);
+ } else if (typeof _then !== 'function') {
+ this._remaining--;
+ this._result[i] = entry;
+ } else if (c === Promise$2) {
+ var promise = new c(noop);
+ handleMaybeThenable(promise, entry, _then);
+ this._willSettleAt(promise, i);
+ } else {
+ this._willSettleAt(new c(function (resolve$$1) {
+ return resolve$$1(entry);
+ }), i);
+ }
+ } else {
+ this._willSettleAt(resolve$$1(entry), i);
+ }
+ };
+
+ Enumerator.prototype._settledAt = function _settledAt(state, i, value) {
+ var promise = this.promise;
+
+
+ if (promise._state === PENDING) {
+ this._remaining--;
+
+ if (state === REJECTED) {
+ reject(promise, value);
+ } else {
+ this._result[i] = value;
+ }
+ }
+
+ if (this._remaining === 0) {
+ fulfill(promise, this._result);
+ }
+ };
+
+ Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {
+ var enumerator = this;
+
+ subscribe(promise, undefined, function (value) {
+ return enumerator._settledAt(FULFILLED, i, value);
+ }, function (reason) {
+ return enumerator._settledAt(REJECTED, i, reason);
+ });
+ };
+
+ return Enumerator;
+}();
+
+/**
+ `Promise.all` accepts an array of promises, and returns a new promise which
+ is fulfilled with an array of fulfillment values for the passed promises, or
+ rejected with the reason of the first passed promise to be rejected. It casts all
+ elements of the passed iterable to promises as it runs this algorithm.
+
+ Example:
+
+ ```javascript
+ let promise1 = resolve(1);
+ let promise2 = resolve(2);
+ let promise3 = resolve(3);
+ let promises = [ promise1, promise2, promise3 ];
+
+ Promise.all(promises).then(function(array){
+ // The array here would be [ 1, 2, 3 ];
+ });
+ ```
+
+ If any of the `promises` given to `all` are rejected, the first promise
+ that is rejected will be given as an argument to the returned promises's
+ rejection handler. For example:
+
+ Example:
+
+ ```javascript
+ let promise1 = resolve(1);
+ let promise2 = reject(new Error("2"));
+ let promise3 = reject(new Error("3"));
+ let promises = [ promise1, promise2, promise3 ];
+
+ Promise.all(promises).then(function(array){
+ // Code here never runs because there are rejected promises!
+ }, function(error) {
+ // error.message === "2"
+ });
+ ```
+
+ @method all
+ @static
+ @param {Array} entries array of promises
+ @param {String} label optional string for labeling the promise.
+ Useful for tooling.
+ @return {Promise} promise that is fulfilled when all `promises` have been
+ fulfilled, or rejected if any of them become rejected.
+ @static
+*/
+function all(entries) {
+ return new Enumerator(this, entries).promise;
+}
+
+/**
+ `Promise.race` returns a new promise which is settled in the same way as the
+ first passed promise to settle.
+
+ Example:
+
+ ```javascript
+ let promise1 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 1');
+ }, 200);
+ });
+
+ let promise2 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 2');
+ }, 100);
+ });
+
+ Promise.race([promise1, promise2]).then(function(result){
+ // result === 'promise 2' because it was resolved before promise1
+ // was resolved.
+ });
+ ```
+
+ `Promise.race` is deterministic in that only the state of the first
+ settled promise matters. For example, even if other promises given to the
+ `promises` array argument are resolved, but the first settled promise has
+ become rejected before the other promises became fulfilled, the returned
+ promise will become rejected:
+
+ ```javascript
+ let promise1 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 1');
+ }, 200);
+ });
+
+ let promise2 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ reject(new Error('promise 2'));
+ }, 100);
+ });
+
+ Promise.race([promise1, promise2]).then(function(result){
+ // Code here never runs
+ }, function(reason){
+ // reason.message === 'promise 2' because promise 2 became rejected before
+ // promise 1 became fulfilled
+ });
+ ```
+
+ An example real-world use case is implementing timeouts:
+
+ ```javascript
+ Promise.race([ajax('foo.json'), timeout(5000)])
+ ```
+
+ @method race
+ @static
+ @param {Array} promises array of promises to observe
+ Useful for tooling.
+ @return {Promise} a promise which settles in the same way as the first passed
+ promise to settle.
+*/
+function race(entries) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ if (!isArray(entries)) {
+ return new Constructor(function (_, reject) {
+ return reject(new TypeError('You must pass an array to race.'));
+ });
+ } else {
+ return new Constructor(function (resolve, reject) {
+ var length = entries.length;
+ for (var i = 0; i < length; i++) {
+ Constructor.resolve(entries[i]).then(resolve, reject);
+ }
+ });
+ }
+}
+
+/**
+ `Promise.reject` returns a promise rejected with the passed `reason`.
+ It is shorthand for the following:
+
+ ```javascript
+ let promise = new Promise(function(resolve, reject){
+ reject(new Error('WHOOPS'));
+ });
+
+ promise.then(function(value){
+ // Code here doesn't run because the promise is rejected!
+ }, function(reason){
+ // reason.message === 'WHOOPS'
+ });
+ ```
+
+ Instead of writing the above, your code now simply becomes the following:
+
+ ```javascript
+ let promise = Promise.reject(new Error('WHOOPS'));
+
+ promise.then(function(value){
+ // Code here doesn't run because the promise is rejected!
+ }, function(reason){
+ // reason.message === 'WHOOPS'
+ });
+ ```
+
+ @method reject
+ @static
+ @param {Any} reason value that the returned promise will be rejected with.
+ Useful for tooling.
+ @return {Promise} a promise rejected with the given `reason`.
+*/
+function reject$1(reason) {
+ /*jshint validthis:true */
+ var Constructor = this;
+ var promise = new Constructor(noop);
+ reject(promise, reason);
+ return promise;
+}
+
+function needsResolver() {
+ throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
+}
+
+function needsNew() {
+ throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
+}
+
+/**
+ Promise objects represent the eventual result of an asynchronous operation. The
+ primary way of interacting with a promise is through its `then` method, which
+ registers callbacks to receive either a promise's eventual value or the reason
+ why the promise cannot be fulfilled.
+
+ Terminology
+ -----------
+
+ - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
+ - `thenable` is an object or function that defines a `then` method.
+ - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
+ - `exception` is a value that is thrown using the throw statement.
+ - `reason` is a value that indicates why a promise was rejected.
+ - `settled` the final resting state of a promise, fulfilled or rejected.
+
+ A promise can be in one of three states: pending, fulfilled, or rejected.
+
+ Promises that are fulfilled have a fulfillment value and are in the fulfilled
+ state. Promises that are rejected have a rejection reason and are in the
+ rejected state. A fulfillment value is never a thenable.
+
+ Promises can also be said to *resolve* a value. If this value is also a
+ promise, then the original promise's settled state will match the value's
+ settled state. So a promise that *resolves* a promise that rejects will
+ itself reject, and a promise that *resolves* a promise that fulfills will
+ itself fulfill.
+
+
+ Basic Usage:
+ ------------
+
+ ```js
+ let promise = new Promise(function(resolve, reject) {
+ // on success
+ resolve(value);
+
+ // on failure
+ reject(reason);
+ });
+
+ promise.then(function(value) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Advanced Usage:
+ ---------------
+
+ Promises shine when abstracting away asynchronous interactions such as
+ `XMLHttpRequest`s.
+
+ ```js
+ function getJSON(url) {
+ return new Promise(function(resolve, reject){
+ let xhr = new XMLHttpRequest();
+
+ xhr.open('GET', url);
+ xhr.onreadystatechange = handler;
+ xhr.responseType = 'json';
+ xhr.setRequestHeader('Accept', 'application/json');
+ xhr.send();
+
+ function handler() {
+ if (this.readyState === this.DONE) {
+ if (this.status === 200) {
+ resolve(this.response);
+ } else {
+ reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
+ }
+ }
+ };
+ });
+ }
+
+ getJSON('/posts.json').then(function(json) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Unlike callbacks, promises are great composable primitives.
+
+ ```js
+ Promise.all([
+ getJSON('/posts'),
+ getJSON('/comments')
+ ]).then(function(values){
+ values[0] // => postsJSON
+ values[1] // => commentsJSON
+
+ return values;
+ });
+ ```
+
+ @class Promise
+ @param {Function} resolver
+ Useful for tooling.
+ @constructor
+*/
+
+var Promise$2 = function () {
+ function Promise(resolver) {
+ this[PROMISE_ID] = nextId();
+ this._result = this._state = undefined;
+ this._subscribers = [];
+
+ if (noop !== resolver) {
+ typeof resolver !== 'function' && needsResolver();
+ this instanceof Promise ? initializePromise(this, resolver) : needsNew();
+ }
+ }
+
+ /**
+ The primary way of interacting with a promise is through its `then` method,
+ which registers callbacks to receive either a promise's eventual value or the
+ reason why the promise cannot be fulfilled.
+ ```js
+ findUser().then(function(user){
+ // user is available
+ }, function(reason){
+ // user is unavailable, and you are given the reason why
+ });
+ ```
+ Chaining
+ --------
+ The return value of `then` is itself a promise. This second, 'downstream'
+ promise is resolved with the return value of the first promise's fulfillment
+ or rejection handler, or rejected if the handler throws an exception.
+ ```js
+ findUser().then(function (user) {
+ return user.name;
+ }, function (reason) {
+ return 'default name';
+ }).then(function (userName) {
+ // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
+ // will be `'default name'`
+ });
+ findUser().then(function (user) {
+ throw new Error('Found user, but still unhappy');
+ }, function (reason) {
+ throw new Error('`findUser` rejected and we're unhappy');
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
+ // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
+ });
+ ```
+ If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
+ ```js
+ findUser().then(function (user) {
+ throw new PedagogicalException('Upstream error');
+ }).then(function (value) {
+ // never reached
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // The `PedgagocialException` is propagated all the way down to here
+ });
+ ```
+ Assimilation
+ ------------
+ Sometimes the value you want to propagate to a downstream promise can only be
+ retrieved asynchronously. This can be achieved by returning a promise in the
+ fulfillment or rejection handler. The downstream promise will then be pending
+ until the returned promise is settled. This is called *assimilation*.
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // The user's comments are now available
+ });
+ ```
+ If the assimliated promise rejects, then the downstream promise will also reject.
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // If `findCommentsByAuthor` fulfills, we'll have the value here
+ }, function (reason) {
+ // If `findCommentsByAuthor` rejects, we'll have the reason here
+ });
+ ```
+ Simple Example
+ --------------
+ Synchronous Example
+ ```javascript
+ let result;
+ try {
+ result = findResult();
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+ Errback Example
+ ```js
+ findResult(function(result, err){
+ if (err) {
+ // failure
+ } else {
+ // success
+ }
+ });
+ ```
+ Promise Example;
+ ```javascript
+ findResult().then(function(result){
+ // success
+ }, function(reason){
+ // failure
+ });
+ ```
+ Advanced Example
+ --------------
+ Synchronous Example
+ ```javascript
+ let author, books;
+ try {
+ author = findAuthor();
+ books = findBooksByAuthor(author);
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+ Errback Example
+ ```js
+ function foundBooks(books) {
+ }
+ function failure(reason) {
+ }
+ findAuthor(function(author, err){
+ if (err) {
+ failure(err);
+ // failure
+ } else {
+ try {
+ findBoooksByAuthor(author, function(books, err) {
+ if (err) {
+ failure(err);
+ } else {
+ try {
+ foundBooks(books);
+ } catch(reason) {
+ failure(reason);
+ }
+ }
+ });
+ } catch(error) {
+ failure(err);
+ }
+ // success
+ }
+ });
+ ```
+ Promise Example;
+ ```javascript
+ findAuthor().
+ then(findBooksByAuthor).
+ then(function(books){
+ // found books
+ }).catch(function(reason){
+ // something went wrong
+ });
+ ```
+ @method then
+ @param {Function} onFulfilled
+ @param {Function} onRejected
+ Useful for tooling.
+ @return {Promise}
+ */
+
+ /**
+ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
+ as the catch block of a try/catch statement.
+ ```js
+ function findAuthor(){
+ throw new Error('couldn't find that author');
+ }
+ // synchronous
+ try {
+ findAuthor();
+ } catch(reason) {
+ // something went wrong
+ }
+ // async with promises
+ findAuthor().catch(function(reason){
+ // something went wrong
+ });
+ ```
+ @method catch
+ @param {Function} onRejection
+ Useful for tooling.
+ @return {Promise}
+ */
+
+
+ Promise.prototype.catch = function _catch(onRejection) {
+ return this.then(null, onRejection);
+ };
+
+ /**
+ `finally` will be invoked regardless of the promise's fate just as native
+ try/catch/finally behaves
+
+ Synchronous example:
+
+ ```js
+ findAuthor() {
+ if (Math.random() > 0.5) {
+ throw new Error();
+ }
+ return new Author();
+ }
+
+ try {
+ return findAuthor(); // succeed or fail
+ } catch(error) {
+ return findOtherAuther();
+ } finally {
+ // always runs
+ // doesn't affect the return value
+ }
+ ```
+
+ Asynchronous example:
+
+ ```js
+ findAuthor().catch(function(reason){
+ return findOtherAuther();
+ }).finally(function(){
+ // author was either found, or not
+ });
+ ```
+
+ @method finally
+ @param {Function} callback
+ @return {Promise}
+ */
+
+
+ Promise.prototype.finally = function _finally(callback) {
+ var promise = this;
+ var constructor = promise.constructor;
+
+ return promise.then(function (value) {
+ return constructor.resolve(callback()).then(function () {
+ return value;
+ });
+ }, function (reason) {
+ return constructor.resolve(callback()).then(function () {
+ throw reason;
+ });
+ });
+ };
+
+ return Promise;
+}();
+
+Promise$2.prototype.then = then;
+Promise$2.all = all;
+Promise$2.race = race;
+Promise$2.resolve = resolve$1;
+Promise$2.reject = reject$1;
+Promise$2._setScheduler = setScheduler;
+Promise$2._setAsap = setAsap;
+Promise$2._asap = asap;
+
+/*global self*/
+function polyfill() {
+ var local = void 0;
+
+ if (typeof global !== 'undefined') {
+ local = global;
+ } else if (typeof self !== 'undefined') {
+ local = self;
+ } else {
+ try {
+ local = Function('return this')();
+ } catch (e) {
+ throw new Error('polyfill failed because global object is unavailable in this environment');
+ }
+ }
+
+ var P = local.Promise;
+
+ if (P) {
+ var promiseToString = null;
+ try {
+ promiseToString = Object.prototype.toString.call(P.resolve());
+ } catch (e) {
+ // silently ignored
+ }
+
+ if (promiseToString === '[object Promise]' && !P.cast) {
+ return;
+ }
+ }
+
+ local.Promise = Promise$2;
+}
+
+// Strange compat..
+Promise$2.polyfill = polyfill;
+Promise$2.Promise = Promise$2;
+
+Promise$2.polyfill();
+
+return Promise$2;
+
+})));
+
+
+
+//# sourceMappingURL=es6-promise.auto.map
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.map b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.map
new file mode 100644
index 0000000000..bff203c5fa
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.map
@@ -0,0 +1 @@
+{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n","export function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n\nexport function isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nexport var isArray = _isArray;","var len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nexport var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nexport function setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","import { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\n\nexport default function then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","import { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nexport default function resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","import { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nexport var PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isArray, isMaybeThenable } from './utils';\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\nexport default Enumerator;\n;","import Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nexport default function all(entries) {\n return new Enumerator(this, entries).promise;\n}","import { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nexport default function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","import { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nexport default function reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isFunction } from './utils';\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise.prototype.then = then;\nexport default Promise;\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;","/*global self*/\nimport Promise from './promise';\n\nexport default function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","import Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","import Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Promise","reject","_reject","Resolve","Reject"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACNO,SAAS,gBAAgB,CAAC,CAAC,EAAE;EAClC,IAAI,IAAI,GAAG,OAAO,CAAC,CAAC;EACpB,OAAO,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC;CACjE;;AAED,AAAO,SAAS,UAAU,CAAC,CAAC,EAAE;EAC5B,OAAO,OAAO,CAAC,KAAK,UAAU,CAAC;CAChC;;AAED,AAEC;;AAED,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC;AACtB,IAAI,KAAK,CAAC,OAAO,EAAE;EACjB,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC;CAC1B,MAAM;EACL,QAAQ,GAAG,UAAU,CAAC,EAAE;IACtB,OAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC;GAC/D,CAAC;CACH;;AAED,AAAO,IAAI,OAAO,GAAG,QAAQ;;ACtB7B,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,IAAI,SAAS,GAAG,KAAK,CAAC,CAAC;AACvB,IAAI,iBAAiB,GAAG,KAAK,CAAC,CAAC;;AAE/B,AAAO,IAAI,IAAI,GAAG,SAAS,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;EAC7C,KAAK,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;EACtB,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;EACrB,GAAG,IAAI,CAAC,CAAC;EACT,IAAI,GAAG,KAAK,CAAC,EAAE;;;;IAIb,IAAI,iBAAiB,EAAE;MACrB,iBAAiB,CAAC,KAAK,CAAC,CAAC;KAC1B,MAAM;MACL,aAAa,EAAE,CAAC;KACjB;GACF;CACF,CAAC;;AAEF,AAAO,SAAS,YAAY,CAAC,UAAU,EAAE;EACvC,iBAAiB,GAAG,UAAU,CAAC;CAChC;;AAED,AAAO,SAAS,OAAO,CAAC,MAAM,EAAE;EAC9B,IAAI,GAAG,MAAM,CAAC;CACf;;AAED,IAAI,aAAa,GAAG,OAAO,MAAM,KAAK,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AACvE,IAAI,aAAa,GAAG,aAAa,IAAI,EAAE,CAAC;AACxC,IAAI,uBAAuB,GAAG,aAAa,CAAC,gBAAgB,IAAI,aAAa,CAAC,sBAAsB,CAAC;AACrG,IAAI,MAAM,GAAG,OAAO,IAAI,KAAK,WAAW,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,kBAAkB,CAAC;;;AAG/H,IAAI,QAAQ,GAAG,OAAO,iBAAiB,KAAK,WAAW,IAAI,OAAO,aAAa,KAAK,WAAW,IAAI,OAAO,cAAc,KAAK,WAAW,CAAC;;;AAGzI,SAAS,WAAW,GAAG;;;EAGrB,OAAO,YAAY;IACjB,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;GAChC,CAAC;CACH;;;AAGD,SAAS,aAAa,GAAG;EACvB,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE;IACpC,OAAO,YAAY;MACjB,SAAS,CAAC,KAAK,CAAC,CAAC;KAClB,CAAC;GACH;;EAED,OAAO,aAAa,EAAE,CAAC;CACxB;;AAED,SAAS,mBAAmB,GAAG;EAC7B,IAAI,UAAU,GAAG,CAAC,CAAC;EACnB,IAAI,QAAQ,GAAG,IAAI,uBAAuB,CAAC,KAAK,CAAC,CAAC;EAClD,IAAI,IAAI,GAAG,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;EACvC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;;EAEhD,OAAO,YAAY;IACjB,IAAI,CAAC,IAAI,GAAG,UAAU,GAAG,EAAE,UAAU,GAAG,CAAC,CAAC;GAC3C,CAAC;CACH;;;AAGD,SAAS,iBAAiB,GAAG;EAC3B,IAAI,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;EACnC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;EAChC,OAAO,YAAY;IACjB,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;GACrC,CAAC;CACH;;AAED,SAAS,aAAa,GAAG;;;EAGvB,IAAI,gBAAgB,GAAG,UAAU,CAAC;EAClC,OAAO,YAAY;IACjB,OAAO,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;GACnC,CAAC;CACH;;AAED,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAS,KAAK,GAAG;EACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE;IAC/B,IAAI,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;;IAEvB,QAAQ,CAAC,GAAG,CAAC,CAAC;;IAEd,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IACrB,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;GAC1B;;EAED,GAAG,GAAG,CAAC,CAAC;CACT;;AAED,SAAS,YAAY,GAAG;EACtB,IAAI;IACF,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACvD,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,YAAY,CAAC;IAClD,OAAO,aAAa,EAAE,CAAC;GACxB,CAAC,OAAO,CAAC,EAAE;IACV,OAAO,aAAa,EAAE,CAAC;GACxB;CACF;;AAED,IAAI,aAAa,GAAG,KAAK,CAAC,CAAC;;AAE3B,IAAI,MAAM,EAAE;EACV,aAAa,GAAG,WAAW,EAAE,CAAC;CAC/B,MAAM,IAAI,uBAAuB,EAAE;EAClC,aAAa,GAAG,mBAAmB,EAAE,CAAC;CACvC,MAAM,IAAI,QAAQ,EAAE;EACnB,aAAa,GAAG,iBAAiB,EAAE,CAAC;CACrC,MAAM,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE;EACvE,aAAa,GAAG,YAAY,EAAE,CAAC;CAChC,MAAM;EACL,aAAa,GAAG,aAAa,EAAE,CAAC;;;CACjC,DCtHc,SAAS,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE;EACvD,IAAI,MAAM,GAAG,IAAI,CAAC;;EAElB,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;;EAEvC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS,EAAE;IACnC,WAAW,CAAC,KAAK,CAAC,CAAC;GACpB;;EAED,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;;;EAG3B,IAAI,MAAM,EAAE;IACV,IAAI,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACrC,IAAI,CAAC,YAAY;MACf,OAAO,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;KAChE,CAAC,CAAC;GACJ,MAAM;IACL,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;GACtD;;EAED,OAAO,KAAK,CAAC;;;CACd,DCxBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,AAAe,SAASA,SAAO,CAAC,MAAM,EAAE;;EAEtC,IAAI,WAAW,GAAG,IAAI,CAAC;;EAEvB,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,WAAW,KAAK,WAAW,EAAE;IAC9E,OAAO,MAAM,CAAC;GACf;;EAED,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;EACpCC,OAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;EAC1B,OAAO,OAAO,CAAC;;;CAChB,DCrCM,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;;AAEhE,SAAS,IAAI,GAAG,EAAE;;AAElB,IAAI,OAAO,GAAG,KAAK,CAAC,CAAC;AACrB,IAAI,SAAS,GAAG,CAAC,CAAC;AAClB,IAAI,QAAQ,GAAG,CAAC,CAAC;;AAEjB,IAAI,eAAe,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;AAEtC,SAAS,eAAe,GAAG;EACzB,OAAO,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;CAClE;;AAED,SAAS,eAAe,GAAG;EACzB,OAAO,IAAI,SAAS,CAAC,sDAAsD,CAAC,CAAC;CAC9E;;AAED,SAAS,OAAO,CAAC,OAAO,EAAE;EACxB,IAAI;IACF,OAAO,OAAO,CAAC,IAAI,CAAC;GACrB,CAAC,OAAO,KAAK,EAAE;IACd,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,OAAO,eAAe,CAAC;GACxB;CACF;;AAED,SAAS,OAAO,CAACC,OAAI,EAAE,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE;EAClE,IAAI;IACFA,OAAI,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;GACxD,CAAC,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,CAAC;GACV;CACF;;AAED,SAAS,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAEA,OAAI,EAAE;EACtD,IAAI,CAAC,UAAU,OAAO,EAAE;IACtB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,KAAK,GAAG,OAAO,CAACA,OAAI,EAAE,QAAQ,EAAE,UAAU,KAAK,EAAE;MACnD,IAAI,MAAM,EAAE;QACV,OAAO;OACR;MACD,MAAM,GAAG,IAAI,CAAC;MACd,IAAI,QAAQ,KAAK,KAAK,EAAE;QACtB,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;OACzB,MAAM;QACL,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;OACzB;KACF,EAAE,UAAU,MAAM,EAAE;MACnB,IAAI,MAAM,EAAE;QACV,OAAO;OACR;MACD,MAAM,GAAG,IAAI,CAAC;;MAEd,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACzB,EAAE,UAAU,IAAI,OAAO,CAAC,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC;;IAExD,IAAI,CAAC,MAAM,IAAI,KAAK,EAAE;MACpB,MAAM,GAAG,IAAI,CAAC;MACd,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACxB;GACF,EAAE,OAAO,CAAC,CAAC;CACb;;AAED,SAAS,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE;EAC5C,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE;IACjC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;GACpC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,EAAE;IACvC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;GACnC,MAAM;IACL,SAAS,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,KAAK,EAAE;MAC9C,OAAO,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KAChC,EAAE,UAAU,MAAM,EAAE;MACnB,OAAO,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAChC,CAAC,CAAC;GACJ;CACF;;AAED,SAAS,mBAAmB,CAAC,OAAO,EAAE,aAAa,EAAEA,OAAI,EAAE;EACzD,IAAI,aAAa,CAAC,WAAW,KAAK,OAAO,CAAC,WAAW,IAAIA,OAAI,KAAKC,IAAY,IAAI,aAAa,CAAC,WAAW,CAAC,OAAO,KAAKC,SAAe,EAAE;IACvI,iBAAiB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;GAC3C,MAAM;IACL,IAAIF,OAAI,KAAK,eAAe,EAAE;MAC5B,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;MACvC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC;KAC9B,MAAM,IAAIA,OAAI,KAAK,SAAS,EAAE;MAC7B,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KACjC,MAAM,IAAI,UAAU,CAACA,OAAI,CAAC,EAAE;MAC3B,qBAAqB,CAAC,OAAO,EAAE,aAAa,EAAEA,OAAI,CAAC,CAAC;KACrD,MAAM;MACL,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;KACjC;GACF;CACF;;AAED,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE;EAC/B,IAAI,OAAO,KAAK,KAAK,EAAE;IACrB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;GACpC,MAAM,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE;IAClC,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;GACrD,MAAM;IACL,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACzB;CACF;;AAED,SAAS,gBAAgB,CAAC,OAAO,EAAE;EACjC,IAAI,OAAO,CAAC,QAAQ,EAAE;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACnC;;EAED,OAAO,CAAC,OAAO,CAAC,CAAC;CAClB;;AAED,SAAS,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE;EAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;IAC9B,OAAO;GACR;;EAED,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;EACxB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;;EAE3B,IAAI,OAAO,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;IACrC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;GACxB;CACF;;AAED,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE;EAC/B,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;IAC9B,OAAO;GACR;EACD,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;EAC1B,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;;EAEzB,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;CACjC;;AAED,SAAS,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE;EAC5D,IAAI,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;EACvC,IAAI,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;;;EAGjC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;;EAEvB,YAAY,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;EAC7B,YAAY,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,aAAa,CAAC;EACjD,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,WAAW,CAAC;;EAE9C,IAAI,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE;IACjC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;GACvB;CACF;;AAED,SAAS,OAAO,CAAC,OAAO,EAAE;EACxB,IAAI,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;EACvC,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;;EAE7B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;IAC5B,OAAO;GACR;;EAED,IAAI,KAAK,GAAG,KAAK,CAAC;MACd,QAAQ,GAAG,KAAK,CAAC;MACjB,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;;EAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;IAC9C,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,GAAG,WAAW,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;;IAEpC,IAAI,KAAK,EAAE;MACT,cAAc,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;KAClD,MAAM;MACL,QAAQ,CAAC,MAAM,CAAC,CAAC;KAClB;GACF;;EAED,OAAO,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;CACjC;;AAED,SAAS,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE;EAClC,IAAI;IACF,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;GACzB,CAAC,OAAO,CAAC,EAAE;IACV,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B,OAAO,eAAe,CAAC;GACxB;CACF;;AAED,SAAS,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE;EAC1D,IAAI,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC;MAClC,KAAK,GAAG,KAAK,CAAC;MACd,KAAK,GAAG,KAAK,CAAC;MACd,SAAS,GAAG,KAAK,CAAC;MAClB,MAAM,GAAG,KAAK,CAAC,CAAC;;EAEpB,IAAI,WAAW,EAAE;IACf,KAAK,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;IAEnC,IAAI,KAAK,KAAK,eAAe,EAAE;MAC7B,MAAM,GAAG,IAAI,CAAC;MACd,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;MACpB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;KACpB,MAAM;MACL,SAAS,GAAG,IAAI,CAAC;KAClB;;IAED,IAAI,OAAO,KAAK,KAAK,EAAE;MACrB,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;MACnC,OAAO;KACR;GACF,MAAM;IACL,KAAK,GAAG,MAAM,CAAC;IACf,SAAS,GAAG,IAAI,CAAC;GAClB;;EAED,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;;GAE/B,MAAM,IAAI,WAAW,IAAI,SAAS,EAAE;IACnC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACzB,MAAM,IAAI,MAAM,EAAE;IACjB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACxB,MAAM,IAAI,OAAO,KAAK,SAAS,EAAE;IAChC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACzB,MAAM,IAAI,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACxB;CACF;;AAED,SAAS,iBAAiB,CAAC,OAAO,EAAE,QAAQ,EAAE;EAC5C,IAAI;IACF,QAAQ,CAAC,SAAS,cAAc,CAAC,KAAK,EAAE;MACtC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;KACzB,EAAE,SAAS,aAAa,CAAC,MAAM,EAAE;MAChC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KACzB,CAAC,CAAC;GACJ,CAAC,OAAO,CAAC,EAAE;IACV,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;GACpB;CACF;;AAED,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,SAAS,MAAM,GAAG;EAChB,OAAO,EAAE,EAAE,CAAC;CACb;;AAED,SAAS,WAAW,CAAC,OAAO,EAAE;EAC5B,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC;EAC3B,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;EAC3B,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC;EAC5B,OAAO,CAAC,YAAY,GAAG,EAAE,CAAC;CAC3B;;ACrPD,SAAS,eAAe,GAAG;EACzB,OAAO,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;CAC7D,AAAC;;AAEF,IAAI,UAAU,GAAG,YAAY;EAC3B,SAAS,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE;IACtC,IAAI,CAAC,oBAAoB,GAAG,WAAW,CAAC;IACxC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;;IAErC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;MAC7B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC3B;;IAED,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;MAClB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;MAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;;MAE/B,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;MAEtC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;QACrB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;OACrC,MAAM;QACL,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACvB,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;UACzB,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SACrC;OACF;KACF,MAAM;MACL,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;KACzC;GACF;;EAED,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE;IAC3D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAChE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;GACF,CAAC;;EAEF,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE;IAC9D,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC;IAClC,IAAIF,UAAO,GAAG,CAAC,CAAC,OAAO,CAAC;;;IAGxB,IAAIA,UAAO,KAAKI,SAAe,EAAE;MAC/B,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;;MAE3B,IAAI,KAAK,KAAKD,IAAY,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE;QACtD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;OACjD,MAAM,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;OACzB,MAAM,IAAI,CAAC,KAAKE,SAAO,EAAE;QACxB,IAAI,OAAO,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1B,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;OAChC,MAAM;QACL,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,UAAUL,UAAO,EAAE;UAC1C,OAAOA,UAAO,CAAC,KAAK,CAAC,CAAC;SACvB,CAAC,EAAE,CAAC,CAAC,CAAC;OACR;KACF,MAAM;MACL,IAAI,CAAC,aAAa,CAACA,UAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;KACvC;GACF,CAAC;;EAEF,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,SAAS,UAAU,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;IACrE,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;;;IAG3B,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE;MAC9B,IAAI,CAAC,UAAU,EAAE,CAAC;;MAElB,IAAI,KAAK,KAAK,QAAQ,EAAE;QACtB,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;OACxB,MAAM;QACL,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;OACzB;KACF;;IAED,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;MACzB,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KAChC;GACF,CAAC;;EAEF,UAAU,CAAC,SAAS,CAAC,aAAa,GAAG,SAAS,aAAa,CAAC,OAAO,EAAE,CAAC,EAAE;IACtE,IAAI,UAAU,GAAG,IAAI,CAAC;;IAEtB,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,KAAK,EAAE;MAC7C,OAAO,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;KACnD,EAAE,UAAU,MAAM,EAAE;MACnB,OAAO,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;KACnD,CAAC,CAAC;GACJ,CAAC;;EAEF,OAAO,UAAU,CAAC;CACnB,EAAE;;ACzGH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,AAAe,SAAS,GAAG,CAAC,OAAO,EAAE;EACnC,OAAO,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC;;;CAC9C,DCjDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,AAAe,SAAS,IAAI,CAAC,OAAO,EAAE;;EAEpC,IAAI,WAAW,GAAG,IAAI,CAAC;;EAEvB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IACrB,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE;MAC1C,OAAO,MAAM,CAAC,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC,CAAC;KACjE,CAAC,CAAC;GACJ,MAAM;IACL,OAAO,IAAI,WAAW,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE;MAChD,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;MAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;QAC/B,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;OACvD;KACF,CAAC,CAAC;GACJ;;;CACF,DCjFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkCA,AAAe,SAASM,QAAM,CAAC,MAAM,EAAE;;EAErC,IAAI,WAAW,GAAG,IAAI,CAAC;EACvB,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;EACpCC,MAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;EACzB,OAAO,OAAO,CAAC;;;CAChB,DC9BD,SAAS,aAAa,GAAG;EACvB,MAAM,IAAI,SAAS,CAAC,oFAAoF,CAAC,CAAC;CAC3G;;AAED,SAAS,QAAQ,GAAG;EAClB,MAAM,IAAI,SAAS,CAAC,uHAAuH,CAAC,CAAC;CAC9I;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0GD,IAAIF,SAAO,GAAG,YAAY;EACxB,SAAS,OAAO,CAAC,QAAQ,EAAE;IACzB,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,EAAE,CAAC;IAC5B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;IACvC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;;IAEvB,IAAI,IAAI,KAAK,QAAQ,EAAE;MACrB,OAAO,QAAQ,KAAK,UAAU,IAAI,aAAa,EAAE,CAAC;MAClD,IAAI,YAAY,OAAO,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAE,CAAC;KAC1E;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4LD,OAAO,CAAC,SAAS,CAAC,KAAK,GAAG,SAAS,MAAM,CAAC,WAAW,EAAE;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;GACrC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0CF,OAAO,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,QAAQ,CAAC,QAAQ,EAAE;IACtD,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;;IAEtC,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE;MACnC,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY;QACtD,OAAO,KAAK,CAAC;OACd,CAAC,CAAC;KACJ,EAAE,UAAU,MAAM,EAAE;MACnB,OAAO,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY;QACtD,MAAM,MAAM,CAAC;OACd,CAAC,CAAC;KACJ,CAAC,CAAC;GACJ,CAAC;;EAEF,OAAO,OAAO,CAAC;CAChB,EAAE,CAAC;;AAEJA,SAAO,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;AAC9B,AACAA,SAAO,CAAC,GAAG,GAAG,GAAG,CAAC;AAClBA,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;AACpBA,SAAO,CAAC,OAAO,GAAGG,SAAO,CAAC;AAC1BH,SAAO,CAAC,MAAM,GAAGI,QAAM,CAAC;AACxBJ,SAAO,CAAC,aAAa,GAAG,YAAY,CAAC;AACrCA,SAAO,CAAC,QAAQ,GAAG,OAAO,CAAC;AAC3BA,SAAO,CAAC,KAAK,GAAG,IAAI;;ACxYpB;AACA,AAEe,SAAS,QAAQ,GAAG;EACjC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC;;EAEnB,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IACjC,KAAK,GAAG,MAAM,CAAC;GAChB,MAAM,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;IACtC,KAAK,GAAG,IAAI,CAAC;GACd,MAAM;IACL,IAAI;MACF,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;KACnC,CAAC,OAAO,CAAC,EAAE;MACV,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAC;KAC7F;GACF;;EAED,IAAI,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC;;EAEtB,IAAI,CAAC,EAAE;IACL,IAAI,eAAe,GAAG,IAAI,CAAC;IAC3B,IAAI;MACF,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KAC/D,CAAC,OAAO,CAAC,EAAE;;KAEX;;IAED,IAAI,eAAe,KAAK,kBAAkB,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE;MACrD,OAAO;KACR;GACF;;EAED,KAAK,CAAC,OAAO,GAAGA,SAAO,CAAC;;;CACzB,DC/BD;AACAA,SAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC5BA,SAAO,CAAC,OAAO,GAAGA,SAAO,CAAC;;ACJ1BA,SAAO,CAAC,QAAQ,EAAE,CAAC;;;;;;;;","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.js b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.js
new file mode 100644
index 0000000000..fdf8bff267
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){B=t}function r(t){G=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof z?function(){z(a)}:c()}function s(){var t=0,e=new J(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<W;t+=2){var e=V[t],n=V[t+1];e(n),V[t]=void 0,V[t+1]=void 0}W=0}function f(){try{var t=Function("return this")().require("vertx");return z=t.runOnLoop||t.runOnContext,i()}catch(e){return c()}}function l(t,e){var n=this,r=new this.constructor(p);void 0===r[Z]&&O(r);var o=n._state;if(o){var i=arguments[o-1];G(function(){return P(o,r,i,n._result)})}else E(n,r,t,e);return r}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return nt.error=e,nt}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){G(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===tt?S(t,e._result):e._state===et?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===nt?(j(t,nt.error),nt.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===$&&(t._result=e,t._state=tt,0!==t._subscribers.length&&G(T,t))}function j(t,e){t._state===$&&(t._state=et,t._result=e,G(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+tt]=n,o[i+et]=r,0===i&&t._state&&G(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?P(n,r,o,i):o(i);t._subscribers.length=0}}function M(t,e){try{return t(e)}catch(n){return nt.error=n,nt}}function P(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=M(r,o),s===nt?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==$||(i&&c?g(n,s):a?j(n,u):t===tt?S(n,s):t===et&&j(n,s))}function x(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function C(){return rt++}function O(t){t[Z]=rt++,t._state=void 0,t._result=void 0,t._subscribers=[]}function k(){return new Error("Array Methods must be provided an Array")}function F(t){return new ot(this,t).promise}function Y(t){var e=this;return new e(U(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function q(t){var e=this,n=new e(p);return j(n,t),n}function D(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function K(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function L(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=it}var N=void 0;N=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var U=N,W=0,z=void 0,B=void 0,G=function(t,e){V[W]=t,V[W+1]=e,W+=2,2===W&&(B?B(a):X())},H="undefined"!=typeof window?window:void 0,I=H||{},J=I.MutationObserver||I.WebKitMutationObserver,Q="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),R="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,V=new Array(1e3),X=void 0;X=Q?o():J?s():R?u():void 0===H&&"function"==typeof require?f():c();var Z=Math.random().toString(36).substring(2),$=void 0,tt=1,et=2,nt={error:null},rt=0,ot=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[Z]||O(this.promise),U(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,k())}return t.prototype._enumerate=function(t){for(var e=0;this._state===$&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==$)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===it){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===$&&(this._remaining--,t===et?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(tt,e,t)},function(t){return n._settledAt(et,e,t)})},t}(),it=function(){function t(e){this[Z]=C(),this._result=this._state=void 0,this._subscribers=[],p!==e&&("function"!=typeof e&&D(),this instanceof t?x(this,e):K())}return t.prototype["catch"]=function(t){return this.then(null,t)},t.prototype["finally"]=function(t){var e=this,n=e.constructor;return e.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})})},t}();return it.prototype.then=l,it.all=F,it.race=Y,it.resolve=h,it.reject=q,it._setScheduler=n,it._setAsap=r,it._asap=G,it.polyfill=L,it.Promise=it,it.polyfill(),it}); \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.map b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.map
new file mode 100644
index 0000000000..aaa7536787
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.auto.min.map
@@ -0,0 +1 @@
+{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n","export function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n\nexport function isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nexport var isArray = _isArray;","var len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nexport var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nexport function setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","import { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\n\nexport default function then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","import { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nexport default function resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","import { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nexport var PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isArray, isMaybeThenable } from './utils';\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\nexport default Enumerator;\n;","import Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nexport default function all(entries) {\n return new Enumerator(this, entries).promise;\n}","import { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nexport default function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","import { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nexport default function reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isFunction } from './utils';\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise.prototype.then = then;\nexport default Promise;\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;","/*global self*/\nimport Promise from './promise';\n\nexport default function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","import Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","import Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Promise","reject","_reject","Resolve","Reject"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.js b/deps/npm/node_modules/es6-promise/dist/es6-promise.js
new file mode 100644
index 0000000000..80d4645c34
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.js
@@ -0,0 +1,1179 @@
+/*!
+ * @overview es6-promise - a tiny implementation of Promises/A+.
+ * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
+ * @license Licensed under MIT license
+ * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
+ * @version v4.2.4+314e4831
+ */
+
+(function (global, factory) {
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global.ES6Promise = factory());
+}(this, (function () { 'use strict';
+
+function objectOrFunction(x) {
+ var type = typeof x;
+ return x !== null && (type === 'object' || type === 'function');
+}
+
+function isFunction(x) {
+ return typeof x === 'function';
+}
+
+
+
+var _isArray = void 0;
+if (Array.isArray) {
+ _isArray = Array.isArray;
+} else {
+ _isArray = function (x) {
+ return Object.prototype.toString.call(x) === '[object Array]';
+ };
+}
+
+var isArray = _isArray;
+
+var len = 0;
+var vertxNext = void 0;
+var customSchedulerFn = void 0;
+
+var asap = function asap(callback, arg) {
+ queue[len] = callback;
+ queue[len + 1] = arg;
+ len += 2;
+ if (len === 2) {
+ // If len is 2, that means that we need to schedule an async flush.
+ // If additional callbacks are queued before the queue is flushed, they
+ // will be processed by this flush that we are scheduling.
+ if (customSchedulerFn) {
+ customSchedulerFn(flush);
+ } else {
+ scheduleFlush();
+ }
+ }
+};
+
+function setScheduler(scheduleFn) {
+ customSchedulerFn = scheduleFn;
+}
+
+function setAsap(asapFn) {
+ asap = asapFn;
+}
+
+var browserWindow = typeof window !== 'undefined' ? window : undefined;
+var browserGlobal = browserWindow || {};
+var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+
+// test for web worker but not in IE10
+var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
+
+// node
+function useNextTick() {
+ // node version 0.10.x displays a deprecation warning when nextTick is used recursively
+ // see https://github.com/cujojs/when/issues/410 for details
+ return function () {
+ return process.nextTick(flush);
+ };
+}
+
+// vertx
+function useVertxTimer() {
+ if (typeof vertxNext !== 'undefined') {
+ return function () {
+ vertxNext(flush);
+ };
+ }
+
+ return useSetTimeout();
+}
+
+function useMutationObserver() {
+ var iterations = 0;
+ var observer = new BrowserMutationObserver(flush);
+ var node = document.createTextNode('');
+ observer.observe(node, { characterData: true });
+
+ return function () {
+ node.data = iterations = ++iterations % 2;
+ };
+}
+
+// web worker
+function useMessageChannel() {
+ var channel = new MessageChannel();
+ channel.port1.onmessage = flush;
+ return function () {
+ return channel.port2.postMessage(0);
+ };
+}
+
+function useSetTimeout() {
+ // Store setTimeout reference so es6-promise will be unaffected by
+ // other code modifying setTimeout (like sinon.useFakeTimers())
+ var globalSetTimeout = setTimeout;
+ return function () {
+ return globalSetTimeout(flush, 1);
+ };
+}
+
+var queue = new Array(1000);
+function flush() {
+ for (var i = 0; i < len; i += 2) {
+ var callback = queue[i];
+ var arg = queue[i + 1];
+
+ callback(arg);
+
+ queue[i] = undefined;
+ queue[i + 1] = undefined;
+ }
+
+ len = 0;
+}
+
+function attemptVertx() {
+ try {
+ var vertx = Function('return this')().require('vertx');
+ vertxNext = vertx.runOnLoop || vertx.runOnContext;
+ return useVertxTimer();
+ } catch (e) {
+ return useSetTimeout();
+ }
+}
+
+var scheduleFlush = void 0;
+// Decide what async method to use to triggering processing of queued callbacks:
+if (isNode) {
+ scheduleFlush = useNextTick();
+} else if (BrowserMutationObserver) {
+ scheduleFlush = useMutationObserver();
+} else if (isWorker) {
+ scheduleFlush = useMessageChannel();
+} else if (browserWindow === undefined && typeof require === 'function') {
+ scheduleFlush = attemptVertx();
+} else {
+ scheduleFlush = useSetTimeout();
+}
+
+function then(onFulfillment, onRejection) {
+ var parent = this;
+
+ var child = new this.constructor(noop);
+
+ if (child[PROMISE_ID] === undefined) {
+ makePromise(child);
+ }
+
+ var _state = parent._state;
+
+
+ if (_state) {
+ var callback = arguments[_state - 1];
+ asap(function () {
+ return invokeCallback(_state, child, callback, parent._result);
+ });
+ } else {
+ subscribe(parent, child, onFulfillment, onRejection);
+ }
+
+ return child;
+}
+
+/**
+ `Promise.resolve` returns a promise that will become resolved with the
+ passed `value`. It is shorthand for the following:
+
+ ```javascript
+ let promise = new Promise(function(resolve, reject){
+ resolve(1);
+ });
+
+ promise.then(function(value){
+ // value === 1
+ });
+ ```
+
+ Instead of writing the above, your code now simply becomes the following:
+
+ ```javascript
+ let promise = Promise.resolve(1);
+
+ promise.then(function(value){
+ // value === 1
+ });
+ ```
+
+ @method resolve
+ @static
+ @param {Any} value value that the returned promise will be resolved with
+ Useful for tooling.
+ @return {Promise} a promise that will become fulfilled with the given
+ `value`
+*/
+function resolve$1(object) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ if (object && typeof object === 'object' && object.constructor === Constructor) {
+ return object;
+ }
+
+ var promise = new Constructor(noop);
+ resolve(promise, object);
+ return promise;
+}
+
+var PROMISE_ID = Math.random().toString(36).substring(2);
+
+function noop() {}
+
+var PENDING = void 0;
+var FULFILLED = 1;
+var REJECTED = 2;
+
+var TRY_CATCH_ERROR = { error: null };
+
+function selfFulfillment() {
+ return new TypeError("You cannot resolve a promise with itself");
+}
+
+function cannotReturnOwn() {
+ return new TypeError('A promises callback cannot return that same promise.');
+}
+
+function getThen(promise) {
+ try {
+ return promise.then;
+ } catch (error) {
+ TRY_CATCH_ERROR.error = error;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
+ try {
+ then$$1.call(value, fulfillmentHandler, rejectionHandler);
+ } catch (e) {
+ return e;
+ }
+}
+
+function handleForeignThenable(promise, thenable, then$$1) {
+ asap(function (promise) {
+ var sealed = false;
+ var error = tryThen(then$$1, thenable, function (value) {
+ if (sealed) {
+ return;
+ }
+ sealed = true;
+ if (thenable !== value) {
+ resolve(promise, value);
+ } else {
+ fulfill(promise, value);
+ }
+ }, function (reason) {
+ if (sealed) {
+ return;
+ }
+ sealed = true;
+
+ reject(promise, reason);
+ }, 'Settle: ' + (promise._label || ' unknown promise'));
+
+ if (!sealed && error) {
+ sealed = true;
+ reject(promise, error);
+ }
+ }, promise);
+}
+
+function handleOwnThenable(promise, thenable) {
+ if (thenable._state === FULFILLED) {
+ fulfill(promise, thenable._result);
+ } else if (thenable._state === REJECTED) {
+ reject(promise, thenable._result);
+ } else {
+ subscribe(thenable, undefined, function (value) {
+ return resolve(promise, value);
+ }, function (reason) {
+ return reject(promise, reason);
+ });
+ }
+}
+
+function handleMaybeThenable(promise, maybeThenable, then$$1) {
+ if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
+ handleOwnThenable(promise, maybeThenable);
+ } else {
+ if (then$$1 === TRY_CATCH_ERROR) {
+ reject(promise, TRY_CATCH_ERROR.error);
+ TRY_CATCH_ERROR.error = null;
+ } else if (then$$1 === undefined) {
+ fulfill(promise, maybeThenable);
+ } else if (isFunction(then$$1)) {
+ handleForeignThenable(promise, maybeThenable, then$$1);
+ } else {
+ fulfill(promise, maybeThenable);
+ }
+ }
+}
+
+function resolve(promise, value) {
+ if (promise === value) {
+ reject(promise, selfFulfillment());
+ } else if (objectOrFunction(value)) {
+ handleMaybeThenable(promise, value, getThen(value));
+ } else {
+ fulfill(promise, value);
+ }
+}
+
+function publishRejection(promise) {
+ if (promise._onerror) {
+ promise._onerror(promise._result);
+ }
+
+ publish(promise);
+}
+
+function fulfill(promise, value) {
+ if (promise._state !== PENDING) {
+ return;
+ }
+
+ promise._result = value;
+ promise._state = FULFILLED;
+
+ if (promise._subscribers.length !== 0) {
+ asap(publish, promise);
+ }
+}
+
+function reject(promise, reason) {
+ if (promise._state !== PENDING) {
+ return;
+ }
+ promise._state = REJECTED;
+ promise._result = reason;
+
+ asap(publishRejection, promise);
+}
+
+function subscribe(parent, child, onFulfillment, onRejection) {
+ var _subscribers = parent._subscribers;
+ var length = _subscribers.length;
+
+
+ parent._onerror = null;
+
+ _subscribers[length] = child;
+ _subscribers[length + FULFILLED] = onFulfillment;
+ _subscribers[length + REJECTED] = onRejection;
+
+ if (length === 0 && parent._state) {
+ asap(publish, parent);
+ }
+}
+
+function publish(promise) {
+ var subscribers = promise._subscribers;
+ var settled = promise._state;
+
+ if (subscribers.length === 0) {
+ return;
+ }
+
+ var child = void 0,
+ callback = void 0,
+ detail = promise._result;
+
+ for (var i = 0; i < subscribers.length; i += 3) {
+ child = subscribers[i];
+ callback = subscribers[i + settled];
+
+ if (child) {
+ invokeCallback(settled, child, callback, detail);
+ } else {
+ callback(detail);
+ }
+ }
+
+ promise._subscribers.length = 0;
+}
+
+function tryCatch(callback, detail) {
+ try {
+ return callback(detail);
+ } catch (e) {
+ TRY_CATCH_ERROR.error = e;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function invokeCallback(settled, promise, callback, detail) {
+ var hasCallback = isFunction(callback),
+ value = void 0,
+ error = void 0,
+ succeeded = void 0,
+ failed = void 0;
+
+ if (hasCallback) {
+ value = tryCatch(callback, detail);
+
+ if (value === TRY_CATCH_ERROR) {
+ failed = true;
+ error = value.error;
+ value.error = null;
+ } else {
+ succeeded = true;
+ }
+
+ if (promise === value) {
+ reject(promise, cannotReturnOwn());
+ return;
+ }
+ } else {
+ value = detail;
+ succeeded = true;
+ }
+
+ if (promise._state !== PENDING) {
+ // noop
+ } else if (hasCallback && succeeded) {
+ resolve(promise, value);
+ } else if (failed) {
+ reject(promise, error);
+ } else if (settled === FULFILLED) {
+ fulfill(promise, value);
+ } else if (settled === REJECTED) {
+ reject(promise, value);
+ }
+}
+
+function initializePromise(promise, resolver) {
+ try {
+ resolver(function resolvePromise(value) {
+ resolve(promise, value);
+ }, function rejectPromise(reason) {
+ reject(promise, reason);
+ });
+ } catch (e) {
+ reject(promise, e);
+ }
+}
+
+var id = 0;
+function nextId() {
+ return id++;
+}
+
+function makePromise(promise) {
+ promise[PROMISE_ID] = id++;
+ promise._state = undefined;
+ promise._result = undefined;
+ promise._subscribers = [];
+}
+
+function validationError() {
+ return new Error('Array Methods must be provided an Array');
+}
+
+var Enumerator = function () {
+ function Enumerator(Constructor, input) {
+ this._instanceConstructor = Constructor;
+ this.promise = new Constructor(noop);
+
+ if (!this.promise[PROMISE_ID]) {
+ makePromise(this.promise);
+ }
+
+ if (isArray(input)) {
+ this.length = input.length;
+ this._remaining = input.length;
+
+ this._result = new Array(this.length);
+
+ if (this.length === 0) {
+ fulfill(this.promise, this._result);
+ } else {
+ this.length = this.length || 0;
+ this._enumerate(input);
+ if (this._remaining === 0) {
+ fulfill(this.promise, this._result);
+ }
+ }
+ } else {
+ reject(this.promise, validationError());
+ }
+ }
+
+ Enumerator.prototype._enumerate = function _enumerate(input) {
+ for (var i = 0; this._state === PENDING && i < input.length; i++) {
+ this._eachEntry(input[i], i);
+ }
+ };
+
+ Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {
+ var c = this._instanceConstructor;
+ var resolve$$1 = c.resolve;
+
+
+ if (resolve$$1 === resolve$1) {
+ var _then = getThen(entry);
+
+ if (_then === then && entry._state !== PENDING) {
+ this._settledAt(entry._state, i, entry._result);
+ } else if (typeof _then !== 'function') {
+ this._remaining--;
+ this._result[i] = entry;
+ } else if (c === Promise$1) {
+ var promise = new c(noop);
+ handleMaybeThenable(promise, entry, _then);
+ this._willSettleAt(promise, i);
+ } else {
+ this._willSettleAt(new c(function (resolve$$1) {
+ return resolve$$1(entry);
+ }), i);
+ }
+ } else {
+ this._willSettleAt(resolve$$1(entry), i);
+ }
+ };
+
+ Enumerator.prototype._settledAt = function _settledAt(state, i, value) {
+ var promise = this.promise;
+
+
+ if (promise._state === PENDING) {
+ this._remaining--;
+
+ if (state === REJECTED) {
+ reject(promise, value);
+ } else {
+ this._result[i] = value;
+ }
+ }
+
+ if (this._remaining === 0) {
+ fulfill(promise, this._result);
+ }
+ };
+
+ Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {
+ var enumerator = this;
+
+ subscribe(promise, undefined, function (value) {
+ return enumerator._settledAt(FULFILLED, i, value);
+ }, function (reason) {
+ return enumerator._settledAt(REJECTED, i, reason);
+ });
+ };
+
+ return Enumerator;
+}();
+
+/**
+ `Promise.all` accepts an array of promises, and returns a new promise which
+ is fulfilled with an array of fulfillment values for the passed promises, or
+ rejected with the reason of the first passed promise to be rejected. It casts all
+ elements of the passed iterable to promises as it runs this algorithm.
+
+ Example:
+
+ ```javascript
+ let promise1 = resolve(1);
+ let promise2 = resolve(2);
+ let promise3 = resolve(3);
+ let promises = [ promise1, promise2, promise3 ];
+
+ Promise.all(promises).then(function(array){
+ // The array here would be [ 1, 2, 3 ];
+ });
+ ```
+
+ If any of the `promises` given to `all` are rejected, the first promise
+ that is rejected will be given as an argument to the returned promises's
+ rejection handler. For example:
+
+ Example:
+
+ ```javascript
+ let promise1 = resolve(1);
+ let promise2 = reject(new Error("2"));
+ let promise3 = reject(new Error("3"));
+ let promises = [ promise1, promise2, promise3 ];
+
+ Promise.all(promises).then(function(array){
+ // Code here never runs because there are rejected promises!
+ }, function(error) {
+ // error.message === "2"
+ });
+ ```
+
+ @method all
+ @static
+ @param {Array} entries array of promises
+ @param {String} label optional string for labeling the promise.
+ Useful for tooling.
+ @return {Promise} promise that is fulfilled when all `promises` have been
+ fulfilled, or rejected if any of them become rejected.
+ @static
+*/
+function all(entries) {
+ return new Enumerator(this, entries).promise;
+}
+
+/**
+ `Promise.race` returns a new promise which is settled in the same way as the
+ first passed promise to settle.
+
+ Example:
+
+ ```javascript
+ let promise1 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 1');
+ }, 200);
+ });
+
+ let promise2 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 2');
+ }, 100);
+ });
+
+ Promise.race([promise1, promise2]).then(function(result){
+ // result === 'promise 2' because it was resolved before promise1
+ // was resolved.
+ });
+ ```
+
+ `Promise.race` is deterministic in that only the state of the first
+ settled promise matters. For example, even if other promises given to the
+ `promises` array argument are resolved, but the first settled promise has
+ become rejected before the other promises became fulfilled, the returned
+ promise will become rejected:
+
+ ```javascript
+ let promise1 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ resolve('promise 1');
+ }, 200);
+ });
+
+ let promise2 = new Promise(function(resolve, reject){
+ setTimeout(function(){
+ reject(new Error('promise 2'));
+ }, 100);
+ });
+
+ Promise.race([promise1, promise2]).then(function(result){
+ // Code here never runs
+ }, function(reason){
+ // reason.message === 'promise 2' because promise 2 became rejected before
+ // promise 1 became fulfilled
+ });
+ ```
+
+ An example real-world use case is implementing timeouts:
+
+ ```javascript
+ Promise.race([ajax('foo.json'), timeout(5000)])
+ ```
+
+ @method race
+ @static
+ @param {Array} promises array of promises to observe
+ Useful for tooling.
+ @return {Promise} a promise which settles in the same way as the first passed
+ promise to settle.
+*/
+function race(entries) {
+ /*jshint validthis:true */
+ var Constructor = this;
+
+ if (!isArray(entries)) {
+ return new Constructor(function (_, reject) {
+ return reject(new TypeError('You must pass an array to race.'));
+ });
+ } else {
+ return new Constructor(function (resolve, reject) {
+ var length = entries.length;
+ for (var i = 0; i < length; i++) {
+ Constructor.resolve(entries[i]).then(resolve, reject);
+ }
+ });
+ }
+}
+
+/**
+ `Promise.reject` returns a promise rejected with the passed `reason`.
+ It is shorthand for the following:
+
+ ```javascript
+ let promise = new Promise(function(resolve, reject){
+ reject(new Error('WHOOPS'));
+ });
+
+ promise.then(function(value){
+ // Code here doesn't run because the promise is rejected!
+ }, function(reason){
+ // reason.message === 'WHOOPS'
+ });
+ ```
+
+ Instead of writing the above, your code now simply becomes the following:
+
+ ```javascript
+ let promise = Promise.reject(new Error('WHOOPS'));
+
+ promise.then(function(value){
+ // Code here doesn't run because the promise is rejected!
+ }, function(reason){
+ // reason.message === 'WHOOPS'
+ });
+ ```
+
+ @method reject
+ @static
+ @param {Any} reason value that the returned promise will be rejected with.
+ Useful for tooling.
+ @return {Promise} a promise rejected with the given `reason`.
+*/
+function reject$1(reason) {
+ /*jshint validthis:true */
+ var Constructor = this;
+ var promise = new Constructor(noop);
+ reject(promise, reason);
+ return promise;
+}
+
+function needsResolver() {
+ throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
+}
+
+function needsNew() {
+ throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
+}
+
+/**
+ Promise objects represent the eventual result of an asynchronous operation. The
+ primary way of interacting with a promise is through its `then` method, which
+ registers callbacks to receive either a promise's eventual value or the reason
+ why the promise cannot be fulfilled.
+
+ Terminology
+ -----------
+
+ - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
+ - `thenable` is an object or function that defines a `then` method.
+ - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
+ - `exception` is a value that is thrown using the throw statement.
+ - `reason` is a value that indicates why a promise was rejected.
+ - `settled` the final resting state of a promise, fulfilled or rejected.
+
+ A promise can be in one of three states: pending, fulfilled, or rejected.
+
+ Promises that are fulfilled have a fulfillment value and are in the fulfilled
+ state. Promises that are rejected have a rejection reason and are in the
+ rejected state. A fulfillment value is never a thenable.
+
+ Promises can also be said to *resolve* a value. If this value is also a
+ promise, then the original promise's settled state will match the value's
+ settled state. So a promise that *resolves* a promise that rejects will
+ itself reject, and a promise that *resolves* a promise that fulfills will
+ itself fulfill.
+
+
+ Basic Usage:
+ ------------
+
+ ```js
+ let promise = new Promise(function(resolve, reject) {
+ // on success
+ resolve(value);
+
+ // on failure
+ reject(reason);
+ });
+
+ promise.then(function(value) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Advanced Usage:
+ ---------------
+
+ Promises shine when abstracting away asynchronous interactions such as
+ `XMLHttpRequest`s.
+
+ ```js
+ function getJSON(url) {
+ return new Promise(function(resolve, reject){
+ let xhr = new XMLHttpRequest();
+
+ xhr.open('GET', url);
+ xhr.onreadystatechange = handler;
+ xhr.responseType = 'json';
+ xhr.setRequestHeader('Accept', 'application/json');
+ xhr.send();
+
+ function handler() {
+ if (this.readyState === this.DONE) {
+ if (this.status === 200) {
+ resolve(this.response);
+ } else {
+ reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
+ }
+ }
+ };
+ });
+ }
+
+ getJSON('/posts.json').then(function(json) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Unlike callbacks, promises are great composable primitives.
+
+ ```js
+ Promise.all([
+ getJSON('/posts'),
+ getJSON('/comments')
+ ]).then(function(values){
+ values[0] // => postsJSON
+ values[1] // => commentsJSON
+
+ return values;
+ });
+ ```
+
+ @class Promise
+ @param {Function} resolver
+ Useful for tooling.
+ @constructor
+*/
+
+var Promise$1 = function () {
+ function Promise(resolver) {
+ this[PROMISE_ID] = nextId();
+ this._result = this._state = undefined;
+ this._subscribers = [];
+
+ if (noop !== resolver) {
+ typeof resolver !== 'function' && needsResolver();
+ this instanceof Promise ? initializePromise(this, resolver) : needsNew();
+ }
+ }
+
+ /**
+ The primary way of interacting with a promise is through its `then` method,
+ which registers callbacks to receive either a promise's eventual value or the
+ reason why the promise cannot be fulfilled.
+ ```js
+ findUser().then(function(user){
+ // user is available
+ }, function(reason){
+ // user is unavailable, and you are given the reason why
+ });
+ ```
+ Chaining
+ --------
+ The return value of `then` is itself a promise. This second, 'downstream'
+ promise is resolved with the return value of the first promise's fulfillment
+ or rejection handler, or rejected if the handler throws an exception.
+ ```js
+ findUser().then(function (user) {
+ return user.name;
+ }, function (reason) {
+ return 'default name';
+ }).then(function (userName) {
+ // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
+ // will be `'default name'`
+ });
+ findUser().then(function (user) {
+ throw new Error('Found user, but still unhappy');
+ }, function (reason) {
+ throw new Error('`findUser` rejected and we're unhappy');
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
+ // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
+ });
+ ```
+ If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
+ ```js
+ findUser().then(function (user) {
+ throw new PedagogicalException('Upstream error');
+ }).then(function (value) {
+ // never reached
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // The `PedgagocialException` is propagated all the way down to here
+ });
+ ```
+ Assimilation
+ ------------
+ Sometimes the value you want to propagate to a downstream promise can only be
+ retrieved asynchronously. This can be achieved by returning a promise in the
+ fulfillment or rejection handler. The downstream promise will then be pending
+ until the returned promise is settled. This is called *assimilation*.
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // The user's comments are now available
+ });
+ ```
+ If the assimliated promise rejects, then the downstream promise will also reject.
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // If `findCommentsByAuthor` fulfills, we'll have the value here
+ }, function (reason) {
+ // If `findCommentsByAuthor` rejects, we'll have the reason here
+ });
+ ```
+ Simple Example
+ --------------
+ Synchronous Example
+ ```javascript
+ let result;
+ try {
+ result = findResult();
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+ Errback Example
+ ```js
+ findResult(function(result, err){
+ if (err) {
+ // failure
+ } else {
+ // success
+ }
+ });
+ ```
+ Promise Example;
+ ```javascript
+ findResult().then(function(result){
+ // success
+ }, function(reason){
+ // failure
+ });
+ ```
+ Advanced Example
+ --------------
+ Synchronous Example
+ ```javascript
+ let author, books;
+ try {
+ author = findAuthor();
+ books = findBooksByAuthor(author);
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+ Errback Example
+ ```js
+ function foundBooks(books) {
+ }
+ function failure(reason) {
+ }
+ findAuthor(function(author, err){
+ if (err) {
+ failure(err);
+ // failure
+ } else {
+ try {
+ findBoooksByAuthor(author, function(books, err) {
+ if (err) {
+ failure(err);
+ } else {
+ try {
+ foundBooks(books);
+ } catch(reason) {
+ failure(reason);
+ }
+ }
+ });
+ } catch(error) {
+ failure(err);
+ }
+ // success
+ }
+ });
+ ```
+ Promise Example;
+ ```javascript
+ findAuthor().
+ then(findBooksByAuthor).
+ then(function(books){
+ // found books
+ }).catch(function(reason){
+ // something went wrong
+ });
+ ```
+ @method then
+ @param {Function} onFulfilled
+ @param {Function} onRejected
+ Useful for tooling.
+ @return {Promise}
+ */
+
+ /**
+ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
+ as the catch block of a try/catch statement.
+ ```js
+ function findAuthor(){
+ throw new Error('couldn't find that author');
+ }
+ // synchronous
+ try {
+ findAuthor();
+ } catch(reason) {
+ // something went wrong
+ }
+ // async with promises
+ findAuthor().catch(function(reason){
+ // something went wrong
+ });
+ ```
+ @method catch
+ @param {Function} onRejection
+ Useful for tooling.
+ @return {Promise}
+ */
+
+
+ Promise.prototype.catch = function _catch(onRejection) {
+ return this.then(null, onRejection);
+ };
+
+ /**
+ `finally` will be invoked regardless of the promise's fate just as native
+ try/catch/finally behaves
+
+ Synchronous example:
+
+ ```js
+ findAuthor() {
+ if (Math.random() > 0.5) {
+ throw new Error();
+ }
+ return new Author();
+ }
+
+ try {
+ return findAuthor(); // succeed or fail
+ } catch(error) {
+ return findOtherAuther();
+ } finally {
+ // always runs
+ // doesn't affect the return value
+ }
+ ```
+
+ Asynchronous example:
+
+ ```js
+ findAuthor().catch(function(reason){
+ return findOtherAuther();
+ }).finally(function(){
+ // author was either found, or not
+ });
+ ```
+
+ @method finally
+ @param {Function} callback
+ @return {Promise}
+ */
+
+
+ Promise.prototype.finally = function _finally(callback) {
+ var promise = this;
+ var constructor = promise.constructor;
+
+ return promise.then(function (value) {
+ return constructor.resolve(callback()).then(function () {
+ return value;
+ });
+ }, function (reason) {
+ return constructor.resolve(callback()).then(function () {
+ throw reason;
+ });
+ });
+ };
+
+ return Promise;
+}();
+
+Promise$1.prototype.then = then;
+Promise$1.all = all;
+Promise$1.race = race;
+Promise$1.resolve = resolve$1;
+Promise$1.reject = reject$1;
+Promise$1._setScheduler = setScheduler;
+Promise$1._setAsap = setAsap;
+Promise$1._asap = asap;
+
+/*global self*/
+function polyfill() {
+ var local = void 0;
+
+ if (typeof global !== 'undefined') {
+ local = global;
+ } else if (typeof self !== 'undefined') {
+ local = self;
+ } else {
+ try {
+ local = Function('return this')();
+ } catch (e) {
+ throw new Error('polyfill failed because global object is unavailable in this environment');
+ }
+ }
+
+ var P = local.Promise;
+
+ if (P) {
+ var promiseToString = null;
+ try {
+ promiseToString = Object.prototype.toString.call(P.resolve());
+ } catch (e) {
+ // silently ignored
+ }
+
+ if (promiseToString === '[object Promise]' && !P.cast) {
+ return;
+ }
+ }
+
+ local.Promise = Promise$1;
+}
+
+// Strange compat..
+Promise$1.polyfill = polyfill;
+Promise$1.Promise = Promise$1;
+
+return Promise$1;
+
+})));
+
+
+
+//# sourceMappingURL=es6-promise.map
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.map b/deps/npm/node_modules/es6-promise/dist/es6-promise.map
new file mode 100644
index 0000000000..bbe71e43fc
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.map
@@ -0,0 +1 @@
+{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n","export function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n\nexport function isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nexport var isArray = _isArray;","var len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nexport var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nexport function setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","import { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\n\nexport default function then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","import { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nexport default function resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","import { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nexport var PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isArray, isMaybeThenable } from './utils';\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\nexport default Enumerator;\n;","import Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nexport default function all(entries) {\n return new Enumerator(this, entries).promise;\n}","import { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nexport default function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","import { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nexport default function reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isFunction } from './utils';\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise.prototype.then = then;\nexport default Promise;\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;","/*global self*/\nimport Promise from './promise';\n\nexport default function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","import Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Promise","reject","_reject","Resolve","Reject"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.min.js b/deps/npm/node_modules/es6-promise/dist/es6-promise.min.js
new file mode 100644
index 0000000000..1d9dc4877a
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.min.js
@@ -0,0 +1 @@
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){B=t}function r(t){G=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof z?function(){z(a)}:c()}function s(){var t=0,e=new J(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<W;t+=2){var e=V[t],n=V[t+1];e(n),V[t]=void 0,V[t+1]=void 0}W=0}function f(){try{var t=Function("return this")().require("vertx");return z=t.runOnLoop||t.runOnContext,i()}catch(e){return c()}}function l(t,e){var n=this,r=new this.constructor(p);void 0===r[Z]&&O(r);var o=n._state;if(o){var i=arguments[o-1];G(function(){return P(o,r,i,n._result)})}else E(n,r,t,e);return r}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return nt.error=e,nt}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){G(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===tt?S(t,e._result):e._state===et?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===nt?(j(t,nt.error),nt.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===$&&(t._result=e,t._state=tt,0!==t._subscribers.length&&G(T,t))}function j(t,e){t._state===$&&(t._state=et,t._result=e,G(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+tt]=n,o[i+et]=r,0===i&&t._state&&G(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?P(n,r,o,i):o(i);t._subscribers.length=0}}function M(t,e){try{return t(e)}catch(n){return nt.error=n,nt}}function P(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=M(r,o),s===nt?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==$||(i&&c?g(n,s):a?j(n,u):t===tt?S(n,s):t===et&&j(n,s))}function x(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function C(){return rt++}function O(t){t[Z]=rt++,t._state=void 0,t._result=void 0,t._subscribers=[]}function k(){return new Error("Array Methods must be provided an Array")}function F(t){return new ot(this,t).promise}function Y(t){var e=this;return new e(U(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function q(t){var e=this,n=new e(p);return j(n,t),n}function D(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function K(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function L(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=it}var N=void 0;N=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var U=N,W=0,z=void 0,B=void 0,G=function(t,e){V[W]=t,V[W+1]=e,W+=2,2===W&&(B?B(a):X())},H="undefined"!=typeof window?window:void 0,I=H||{},J=I.MutationObserver||I.WebKitMutationObserver,Q="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),R="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,V=new Array(1e3),X=void 0;X=Q?o():J?s():R?u():void 0===H&&"function"==typeof require?f():c();var Z=Math.random().toString(36).substring(2),$=void 0,tt=1,et=2,nt={error:null},rt=0,ot=function(){function t(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[Z]||O(this.promise),U(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,k())}return t.prototype._enumerate=function(t){for(var e=0;this._state===$&&e<t.length;e++)this._eachEntry(t[e],e)},t.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==$)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===it){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},t.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===$&&(this._remaining--,t===et?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},t.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(tt,e,t)},function(t){return n._settledAt(et,e,t)})},t}(),it=function(){function t(e){this[Z]=C(),this._result=this._state=void 0,this._subscribers=[],p!==e&&("function"!=typeof e&&D(),this instanceof t?x(this,e):K())}return t.prototype["catch"]=function(t){return this.then(null,t)},t.prototype["finally"]=function(t){var e=this,n=e.constructor;return e.then(function(e){return n.resolve(t()).then(function(){return e})},function(e){return n.resolve(t()).then(function(){throw e})})},t}();return it.prototype.then=l,it.all=F,it.race=Y,it.resolve=h,it.reject=q,it._setScheduler=n,it._setAsap=r,it._asap=G,it.polyfill=L,it.Promise=it,it}); \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/dist/es6-promise.min.map b/deps/npm/node_modules/es6-promise/dist/es6-promise.min.map
new file mode 100644
index 0000000000..0488c1d80c
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/dist/es6-promise.min.map
@@ -0,0 +1 @@
+{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.4+314e4831\n */\n","export function objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nexport function isFunction(x) {\n return typeof x === 'function';\n}\n\nexport function isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nexport var isArray = _isArray;","var len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nexport var asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport function setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nexport function setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","import { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\n\nexport default function then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","import { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nexport default function resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","import { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nexport var PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar TRY_CATCH_ERROR = { error: null };\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n TRY_CATCH_ERROR.error = error;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === TRY_CATCH_ERROR) {\n reject(promise, TRY_CATCH_ERROR.error);\n TRY_CATCH_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = void 0,\n failed = void 0;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isArray, isMaybeThenable } from './utils';\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\nexport default Enumerator;\n;","import Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nexport default function all(entries) {\n return new Enumerator(this, entries).promise;\n}","import { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nexport default function race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","import { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nexport default function reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { isFunction } from './utils';\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n };\n\n return Promise;\n}();\n\nPromise.prototype.then = then;\nexport default Promise;\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;","/*global self*/\nimport Promise from './promise';\n\nexport default function polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","import Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Promise","reject","_reject","Resolve","Reject"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/es6-promise/es6-promise.d.ts b/deps/npm/node_modules/es6-promise/es6-promise.d.ts
new file mode 100644
index 0000000000..cce5b36071
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/es6-promise.d.ts
@@ -0,0 +1,81 @@
+export interface Thenable <R> {
+ then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
+ then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
+}
+
+export class Promise <R> implements Thenable <R> {
+ /**
+ * If you call resolve in the body of the callback passed to the constructor,
+ * your promise is fulfilled with result object passed to resolve.
+ * If you call reject your promise is rejected with the object passed to resolve.
+ * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
+ * Any errors thrown in the constructor callback will be implicitly passed to reject().
+ */
+ constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
+
+ /**
+ * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
+ * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
+ * Both callbacks have a single parameter , the fulfillment value or rejection reason.
+ * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
+ * If an error is thrown in the callback, the returned promise rejects with that error.
+ *
+ * @param onFulfilled called when/if "promise" resolves
+ * @param onRejected called when/if "promise" rejects
+ */
+ then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
+ then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
+
+ /**
+ * Sugar for promise.then(undefined, onRejected)
+ *
+ * @param onRejected called when/if "promise" rejects
+ */
+ catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
+
+ /**
+ * onSettled is invoked when/if the "promise" settles (either rejects or fulfills);
+ *
+ * @param onFinally called when/if "promise" settles
+ */
+ finally <U> (onFinally?: (callback: any) => U | Thenable<U>): Promise<U>;
+
+ /**
+ * Make a new promise from the thenable.
+ * A thenable is promise-like in as far as it has a "then" method.
+ */
+ static resolve (): Promise<void>;
+ static resolve <R> (value: R | Thenable<R>): Promise<R>;
+
+ /**
+ * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
+ */
+ static reject <R> (error: any): Promise<R>;
+
+ /**
+ * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
+ * the array passed to all can be a mixture of promise-like objects and other objects.
+ * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
+ */
+ static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
+ static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
+ static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
+ static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
+ static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
+ static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
+ static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
+ static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
+ static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
+ static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
+ static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
+
+ /**
+ * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
+ */
+ static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
+}
+
+/**
+ * The polyfill method will patch the global environment (in this case to the Promise name) when called.
+ */
+export function polyfill (): void;
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise.auto.js
index 77997866f8..77997866f8 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise.auto.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise.js
index 4f4d840d09..4f4d840d09 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise.js
diff --git a/deps/npm/node_modules/es6-promise/lib/es6-promise/-internal.js b/deps/npm/node_modules/es6-promise/lib/es6-promise/-internal.js
new file mode 100644
index 0000000000..925776f55f
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/-internal.js
@@ -0,0 +1,266 @@
+import {
+ objectOrFunction,
+ isFunction
+} from './utils';
+
+import {
+ asap
+} from './asap';
+
+import originalThen from './then';
+import originalResolve from './promise/resolve';
+
+export const PROMISE_ID = Math.random().toString(36).substring(2);
+
+function noop() {}
+
+const PENDING = void 0;
+const FULFILLED = 1;
+const REJECTED = 2;
+
+const TRY_CATCH_ERROR = { error: null };
+
+function selfFulfillment() {
+ return new TypeError("You cannot resolve a promise with itself");
+}
+
+function cannotReturnOwn() {
+ return new TypeError('A promises callback cannot return that same promise.');
+}
+
+function getThen(promise) {
+ try {
+ return promise.then;
+ } catch(error) {
+ TRY_CATCH_ERROR.error = error;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
+ try {
+ then.call(value, fulfillmentHandler, rejectionHandler);
+ } catch(e) {
+ return e;
+ }
+}
+
+function handleForeignThenable(promise, thenable, then) {
+ asap(promise => {
+ var sealed = false;
+ var error = tryThen(then, thenable, value => {
+ if (sealed) { return; }
+ sealed = true;
+ if (thenable !== value) {
+ resolve(promise, value);
+ } else {
+ fulfill(promise, value);
+ }
+ }, reason => {
+ if (sealed) { return; }
+ sealed = true;
+
+ reject(promise, reason);
+ }, 'Settle: ' + (promise._label || ' unknown promise'));
+
+ if (!sealed && error) {
+ sealed = true;
+ reject(promise, error);
+ }
+ }, promise);
+}
+
+function handleOwnThenable(promise, thenable) {
+ if (thenable._state === FULFILLED) {
+ fulfill(promise, thenable._result);
+ } else if (thenable._state === REJECTED) {
+ reject(promise, thenable._result);
+ } else {
+ subscribe(thenable, undefined, value => resolve(promise, value),
+ reason => reject(promise, reason))
+ }
+}
+
+function handleMaybeThenable(promise, maybeThenable, then) {
+ if (maybeThenable.constructor === promise.constructor &&
+ then === originalThen &&
+ maybeThenable.constructor.resolve === originalResolve) {
+ handleOwnThenable(promise, maybeThenable);
+ } else {
+ if (then === TRY_CATCH_ERROR) {
+ reject(promise, TRY_CATCH_ERROR.error);
+ TRY_CATCH_ERROR.error = null;
+ } else if (then === undefined) {
+ fulfill(promise, maybeThenable);
+ } else if (isFunction(then)) {
+ handleForeignThenable(promise, maybeThenable, then);
+ } else {
+ fulfill(promise, maybeThenable);
+ }
+ }
+}
+
+function resolve(promise, value) {
+ if (promise === value) {
+ reject(promise, selfFulfillment());
+ } else if (objectOrFunction(value)) {
+ handleMaybeThenable(promise, value, getThen(value));
+ } else {
+ fulfill(promise, value);
+ }
+}
+
+function publishRejection(promise) {
+ if (promise._onerror) {
+ promise._onerror(promise._result);
+ }
+
+ publish(promise);
+}
+
+function fulfill(promise, value) {
+ if (promise._state !== PENDING) { return; }
+
+ promise._result = value;
+ promise._state = FULFILLED;
+
+ if (promise._subscribers.length !== 0) {
+ asap(publish, promise);
+ }
+}
+
+function reject(promise, reason) {
+ if (promise._state !== PENDING) { return; }
+ promise._state = REJECTED;
+ promise._result = reason;
+
+ asap(publishRejection, promise);
+}
+
+function subscribe(parent, child, onFulfillment, onRejection) {
+ let { _subscribers } = parent;
+ let { length } = _subscribers;
+
+ parent._onerror = null;
+
+ _subscribers[length] = child;
+ _subscribers[length + FULFILLED] = onFulfillment;
+ _subscribers[length + REJECTED] = onRejection;
+
+ if (length === 0 && parent._state) {
+ asap(publish, parent);
+ }
+}
+
+function publish(promise) {
+ let subscribers = promise._subscribers;
+ let settled = promise._state;
+
+ if (subscribers.length === 0) { return; }
+
+ let child, callback, detail = promise._result;
+
+ for (let i = 0; i < subscribers.length; i += 3) {
+ child = subscribers[i];
+ callback = subscribers[i + settled];
+
+ if (child) {
+ invokeCallback(settled, child, callback, detail);
+ } else {
+ callback(detail);
+ }
+ }
+
+ promise._subscribers.length = 0;
+}
+
+
+function tryCatch(callback, detail) {
+ try {
+ return callback(detail);
+ } catch(e) {
+ TRY_CATCH_ERROR.error = e;
+ return TRY_CATCH_ERROR;
+ }
+}
+
+function invokeCallback(settled, promise, callback, detail) {
+ let hasCallback = isFunction(callback),
+ value, error, succeeded, failed;
+
+ if (hasCallback) {
+ value = tryCatch(callback, detail);
+
+ if (value === TRY_CATCH_ERROR) {
+ failed = true;
+ error = value.error;
+ value.error = null;
+ } else {
+ succeeded = true;
+ }
+
+ if (promise === value) {
+ reject(promise, cannotReturnOwn());
+ return;
+ }
+
+ } else {
+ value = detail;
+ succeeded = true;
+ }
+
+ if (promise._state !== PENDING) {
+ // noop
+ } else if (hasCallback && succeeded) {
+ resolve(promise, value);
+ } else if (failed) {
+ reject(promise, error);
+ } else if (settled === FULFILLED) {
+ fulfill(promise, value);
+ } else if (settled === REJECTED) {
+ reject(promise, value);
+ }
+}
+
+function initializePromise(promise, resolver) {
+ try {
+ resolver(function resolvePromise(value){
+ resolve(promise, value);
+ }, function rejectPromise(reason) {
+ reject(promise, reason);
+ });
+ } catch(e) {
+ reject(promise, e);
+ }
+}
+
+let id = 0;
+function nextId() {
+ return id++;
+}
+
+function makePromise(promise) {
+ promise[PROMISE_ID] = id++;
+ promise._state = undefined;
+ promise._result = undefined;
+ promise._subscribers = [];
+}
+
+export {
+ nextId,
+ makePromise,
+ getThen,
+ noop,
+ resolve,
+ reject,
+ fulfill,
+ subscribe,
+ publish,
+ publishRejection,
+ initializePromise,
+ invokeCallback,
+ FULFILLED,
+ REJECTED,
+ PENDING,
+ handleMaybeThenable
+};
diff --git a/deps/npm/node_modules/es6-promise/lib/es6-promise/asap.js b/deps/npm/node_modules/es6-promise/lib/es6-promise/asap.js
new file mode 100644
index 0000000000..0483201dc9
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/asap.js
@@ -0,0 +1,119 @@
+let len = 0;
+let vertxNext;
+let customSchedulerFn;
+
+export var asap = function asap(callback, arg) {
+ queue[len] = callback;
+ queue[len + 1] = arg;
+ len += 2;
+ if (len === 2) {
+ // If len is 2, that means that we need to schedule an async flush.
+ // If additional callbacks are queued before the queue is flushed, they
+ // will be processed by this flush that we are scheduling.
+ if (customSchedulerFn) {
+ customSchedulerFn(flush);
+ } else {
+ scheduleFlush();
+ }
+ }
+}
+
+export function setScheduler(scheduleFn) {
+ customSchedulerFn = scheduleFn;
+}
+
+export function setAsap(asapFn) {
+ asap = asapFn;
+}
+
+const browserWindow = (typeof window !== 'undefined') ? window : undefined;
+const browserGlobal = browserWindow || {};
+const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
+const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
+
+// test for web worker but not in IE10
+const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
+ typeof importScripts !== 'undefined' &&
+ typeof MessageChannel !== 'undefined';
+
+// node
+function useNextTick() {
+ // node version 0.10.x displays a deprecation warning when nextTick is used recursively
+ // see https://github.com/cujojs/when/issues/410 for details
+ return () => process.nextTick(flush);
+}
+
+// vertx
+function useVertxTimer() {
+ if (typeof vertxNext !== 'undefined') {
+ return function() {
+ vertxNext(flush);
+ };
+ }
+
+ return useSetTimeout();
+}
+
+function useMutationObserver() {
+ let iterations = 0;
+ const observer = new BrowserMutationObserver(flush);
+ const node = document.createTextNode('');
+ observer.observe(node, { characterData: true });
+
+ return () => {
+ node.data = (iterations = ++iterations % 2);
+ };
+}
+
+// web worker
+function useMessageChannel() {
+ const channel = new MessageChannel();
+ channel.port1.onmessage = flush;
+ return () => channel.port2.postMessage(0);
+}
+
+function useSetTimeout() {
+ // Store setTimeout reference so es6-promise will be unaffected by
+ // other code modifying setTimeout (like sinon.useFakeTimers())
+ const globalSetTimeout = setTimeout;
+ return () => globalSetTimeout(flush, 1);
+}
+
+const queue = new Array(1000);
+function flush() {
+ for (let i = 0; i < len; i+=2) {
+ let callback = queue[i];
+ let arg = queue[i+1];
+
+ callback(arg);
+
+ queue[i] = undefined;
+ queue[i+1] = undefined;
+ }
+
+ len = 0;
+}
+
+function attemptVertx() {
+ try {
+ const vertx = Function('return this')().require('vertx');
+ vertxNext = vertx.runOnLoop || vertx.runOnContext;
+ return useVertxTimer();
+ } catch(e) {
+ return useSetTimeout();
+ }
+}
+
+let scheduleFlush;
+// Decide what async method to use to triggering processing of queued callbacks:
+if (isNode) {
+ scheduleFlush = useNextTick();
+} else if (BrowserMutationObserver) {
+ scheduleFlush = useMutationObserver();
+} else if (isWorker) {
+ scheduleFlush = useMessageChannel();
+} else if (browserWindow === undefined && typeof require === 'function') {
+ scheduleFlush = attemptVertx();
+} else {
+ scheduleFlush = useSetTimeout();
+}
diff --git a/deps/npm/node_modules/es6-promise/lib/es6-promise/enumerator.js b/deps/npm/node_modules/es6-promise/lib/es6-promise/enumerator.js
new file mode 100644
index 0000000000..b0eaa9300e
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/enumerator.js
@@ -0,0 +1,113 @@
+import {
+ isArray,
+ isMaybeThenable
+} from './utils';
+import {
+ noop,
+ reject,
+ fulfill,
+ subscribe,
+ FULFILLED,
+ REJECTED,
+ PENDING,
+ getThen,
+ handleMaybeThenable
+} from './-internal';
+
+import then from './then';
+import Promise from './promise';
+import originalResolve from './promise/resolve';
+import originalThen from './then';
+import { makePromise, PROMISE_ID } from './-internal';
+
+function validationError() {
+ return new Error('Array Methods must be provided an Array');
+};
+
+export default class Enumerator {
+ constructor(Constructor, input) {
+ this._instanceConstructor = Constructor;
+ this.promise = new Constructor(noop);
+
+ if (!this.promise[PROMISE_ID]) {
+ makePromise(this.promise);
+ }
+
+ if (isArray(input)) {
+ this.length = input.length;
+ this._remaining = input.length;
+
+ this._result = new Array(this.length);
+
+ if (this.length === 0) {
+ fulfill(this.promise, this._result);
+ } else {
+ this.length = this.length || 0;
+ this._enumerate(input);
+ if (this._remaining === 0) {
+ fulfill(this.promise, this._result);
+ }
+ }
+ } else {
+ reject(this.promise, validationError());
+ }
+ }
+ _enumerate(input) {
+ for (let i = 0; this._state === PENDING && i < input.length; i++) {
+ this._eachEntry(input[i], i);
+ }
+ }
+
+ _eachEntry(entry, i) {
+ let c = this._instanceConstructor;
+ let { resolve } = c;
+
+ if (resolve === originalResolve) {
+ let then = getThen(entry);
+
+ if (then === originalThen &&
+ entry._state !== PENDING) {
+ this._settledAt(entry._state, i, entry._result);
+ } else if (typeof then !== 'function') {
+ this._remaining--;
+ this._result[i] = entry;
+ } else if (c === Promise) {
+ let promise = new c(noop);
+ handleMaybeThenable(promise, entry, then);
+ this._willSettleAt(promise, i);
+ } else {
+ this._willSettleAt(new c(resolve => resolve(entry)), i);
+ }
+ } else {
+ this._willSettleAt(resolve(entry), i);
+ }
+ }
+
+ _settledAt(state, i, value) {
+ let { promise } = this;
+
+ if (promise._state === PENDING) {
+ this._remaining--;
+
+ if (state === REJECTED) {
+ reject(promise, value);
+ } else {
+ this._result[i] = value;
+ }
+ }
+
+ if (this._remaining === 0) {
+ fulfill(promise, this._result);
+ }
+ }
+
+ _willSettleAt(promise, i) {
+ let enumerator = this;
+
+ subscribe(
+ promise, undefined,
+ value => enumerator._settledAt(FULFILLED, i, value),
+ reason => enumerator._settledAt(REJECTED, i, reason)
+ );
+ }
+};
diff --git a/deps/npm/node_modules/es6-promise/lib/es6-promise/polyfill.js b/deps/npm/node_modules/es6-promise/lib/es6-promise/polyfill.js
new file mode 100644
index 0000000000..30db73c9d0
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/polyfill.js
@@ -0,0 +1,35 @@
+/*global self*/
+import Promise from './promise';
+
+export default function polyfill() {
+ let local;
+
+ if (typeof global !== 'undefined') {
+ local = global;
+ } else if (typeof self !== 'undefined') {
+ local = self;
+ } else {
+ try {
+ local = Function('return this')();
+ } catch (e) {
+ throw new Error('polyfill failed because global object is unavailable in this environment');
+ }
+ }
+
+ let P = local.Promise;
+
+ if (P) {
+ var promiseToString = null;
+ try {
+ promiseToString = Object.prototype.toString.call(P.resolve());
+ } catch(e) {
+ // silently ignored
+ }
+
+ if (promiseToString === '[object Promise]' && !P.cast){
+ return;
+ }
+ }
+
+ local.Promise = Promise;
+}
diff --git a/deps/npm/node_modules/es6-promise/lib/es6-promise/promise.js b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise.js
new file mode 100644
index 0000000000..8d8f829c5e
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise.js
@@ -0,0 +1,426 @@
+import {
+ isFunction
+} from './utils';
+import {
+ noop,
+ nextId,
+ PROMISE_ID,
+ initializePromise
+} from './-internal';
+import {
+ asap,
+ setAsap,
+ setScheduler
+} from './asap';
+
+import all from './promise/all';
+import race from './promise/race';
+import Resolve from './promise/resolve';
+import Reject from './promise/reject';
+import then from './then';
+
+function needsResolver() {
+ throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
+}
+
+function needsNew() {
+ throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
+}
+
+/**
+ Promise objects represent the eventual result of an asynchronous operation. The
+ primary way of interacting with a promise is through its `then` method, which
+ registers callbacks to receive either a promise's eventual value or the reason
+ why the promise cannot be fulfilled.
+
+ Terminology
+ -----------
+
+ - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
+ - `thenable` is an object or function that defines a `then` method.
+ - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
+ - `exception` is a value that is thrown using the throw statement.
+ - `reason` is a value that indicates why a promise was rejected.
+ - `settled` the final resting state of a promise, fulfilled or rejected.
+
+ A promise can be in one of three states: pending, fulfilled, or rejected.
+
+ Promises that are fulfilled have a fulfillment value and are in the fulfilled
+ state. Promises that are rejected have a rejection reason and are in the
+ rejected state. A fulfillment value is never a thenable.
+
+ Promises can also be said to *resolve* a value. If this value is also a
+ promise, then the original promise's settled state will match the value's
+ settled state. So a promise that *resolves* a promise that rejects will
+ itself reject, and a promise that *resolves* a promise that fulfills will
+ itself fulfill.
+
+
+ Basic Usage:
+ ------------
+
+ ```js
+ let promise = new Promise(function(resolve, reject) {
+ // on success
+ resolve(value);
+
+ // on failure
+ reject(reason);
+ });
+
+ promise.then(function(value) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Advanced Usage:
+ ---------------
+
+ Promises shine when abstracting away asynchronous interactions such as
+ `XMLHttpRequest`s.
+
+ ```js
+ function getJSON(url) {
+ return new Promise(function(resolve, reject){
+ let xhr = new XMLHttpRequest();
+
+ xhr.open('GET', url);
+ xhr.onreadystatechange = handler;
+ xhr.responseType = 'json';
+ xhr.setRequestHeader('Accept', 'application/json');
+ xhr.send();
+
+ function handler() {
+ if (this.readyState === this.DONE) {
+ if (this.status === 200) {
+ resolve(this.response);
+ } else {
+ reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
+ }
+ }
+ };
+ });
+ }
+
+ getJSON('/posts.json').then(function(json) {
+ // on fulfillment
+ }, function(reason) {
+ // on rejection
+ });
+ ```
+
+ Unlike callbacks, promises are great composable primitives.
+
+ ```js
+ Promise.all([
+ getJSON('/posts'),
+ getJSON('/comments')
+ ]).then(function(values){
+ values[0] // => postsJSON
+ values[1] // => commentsJSON
+
+ return values;
+ });
+ ```
+
+ @class Promise
+ @param {Function} resolver
+ Useful for tooling.
+ @constructor
+*/
+
+class Promise {
+ constructor(resolver) {
+ this[PROMISE_ID] = nextId();
+ this._result = this._state = undefined;
+ this._subscribers = [];
+
+ if (noop !== resolver) {
+ typeof resolver !== 'function' && needsResolver();
+ this instanceof Promise ? initializePromise(this, resolver) : needsNew();
+ }
+ }
+
+ /**
+ The primary way of interacting with a promise is through its `then` method,
+ which registers callbacks to receive either a promise's eventual value or the
+ reason why the promise cannot be fulfilled.
+
+ ```js
+ findUser().then(function(user){
+ // user is available
+ }, function(reason){
+ // user is unavailable, and you are given the reason why
+ });
+ ```
+
+ Chaining
+ --------
+
+ The return value of `then` is itself a promise. This second, 'downstream'
+ promise is resolved with the return value of the first promise's fulfillment
+ or rejection handler, or rejected if the handler throws an exception.
+
+ ```js
+ findUser().then(function (user) {
+ return user.name;
+ }, function (reason) {
+ return 'default name';
+ }).then(function (userName) {
+ // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
+ // will be `'default name'`
+ });
+
+ findUser().then(function (user) {
+ throw new Error('Found user, but still unhappy');
+ }, function (reason) {
+ throw new Error('`findUser` rejected and we're unhappy');
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
+ // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
+ });
+ ```
+ If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
+
+ ```js
+ findUser().then(function (user) {
+ throw new PedagogicalException('Upstream error');
+ }).then(function (value) {
+ // never reached
+ }).then(function (value) {
+ // never reached
+ }, function (reason) {
+ // The `PedgagocialException` is propagated all the way down to here
+ });
+ ```
+
+ Assimilation
+ ------------
+
+ Sometimes the value you want to propagate to a downstream promise can only be
+ retrieved asynchronously. This can be achieved by returning a promise in the
+ fulfillment or rejection handler. The downstream promise will then be pending
+ until the returned promise is settled. This is called *assimilation*.
+
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // The user's comments are now available
+ });
+ ```
+
+ If the assimliated promise rejects, then the downstream promise will also reject.
+
+ ```js
+ findUser().then(function (user) {
+ return findCommentsByAuthor(user);
+ }).then(function (comments) {
+ // If `findCommentsByAuthor` fulfills, we'll have the value here
+ }, function (reason) {
+ // If `findCommentsByAuthor` rejects, we'll have the reason here
+ });
+ ```
+
+ Simple Example
+ --------------
+
+ Synchronous Example
+
+ ```javascript
+ let result;
+
+ try {
+ result = findResult();
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+
+ Errback Example
+
+ ```js
+ findResult(function(result, err){
+ if (err) {
+ // failure
+ } else {
+ // success
+ }
+ });
+ ```
+
+ Promise Example;
+
+ ```javascript
+ findResult().then(function(result){
+ // success
+ }, function(reason){
+ // failure
+ });
+ ```
+
+ Advanced Example
+ --------------
+
+ Synchronous Example
+
+ ```javascript
+ let author, books;
+
+ try {
+ author = findAuthor();
+ books = findBooksByAuthor(author);
+ // success
+ } catch(reason) {
+ // failure
+ }
+ ```
+
+ Errback Example
+
+ ```js
+
+ function foundBooks(books) {
+
+ }
+
+ function failure(reason) {
+
+ }
+
+ findAuthor(function(author, err){
+ if (err) {
+ failure(err);
+ // failure
+ } else {
+ try {
+ findBoooksByAuthor(author, function(books, err) {
+ if (err) {
+ failure(err);
+ } else {
+ try {
+ foundBooks(books);
+ } catch(reason) {
+ failure(reason);
+ }
+ }
+ });
+ } catch(error) {
+ failure(err);
+ }
+ // success
+ }
+ });
+ ```
+
+ Promise Example;
+
+ ```javascript
+ findAuthor().
+ then(findBooksByAuthor).
+ then(function(books){
+ // found books
+ }).catch(function(reason){
+ // something went wrong
+ });
+ ```
+
+ @method then
+ @param {Function} onFulfilled
+ @param {Function} onRejected
+ Useful for tooling.
+ @return {Promise}
+ */
+
+ /**
+ `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
+ as the catch block of a try/catch statement.
+
+ ```js
+ function findAuthor(){
+ throw new Error('couldn't find that author');
+ }
+
+ // synchronous
+ try {
+ findAuthor();
+ } catch(reason) {
+ // something went wrong
+ }
+
+ // async with promises
+ findAuthor().catch(function(reason){
+ // something went wrong
+ });
+ ```
+
+ @method catch
+ @param {Function} onRejection
+ Useful for tooling.
+ @return {Promise}
+ */
+ catch(onRejection) {
+ return this.then(null, onRejection);
+ }
+
+/**
+ `finally` will be invoked regardless of the promise's fate just as native
+ try/catch/finally behaves
+
+ Synchronous example:
+
+ ```js
+ findAuthor() {
+ if (Math.random() > 0.5) {
+ throw new Error();
+ }
+ return new Author();
+ }
+
+ try {
+ return findAuthor(); // succeed or fail
+ } catch(error) {
+ return findOtherAuther();
+ } finally {
+ // always runs
+ // doesn't affect the return value
+ }
+ ```
+
+ Asynchronous example:
+
+ ```js
+ findAuthor().catch(function(reason){
+ return findOtherAuther();
+ }).finally(function(){
+ // author was either found, or not
+ });
+ ```
+
+ @method finally
+ @param {Function} callback
+ @return {Promise}
+*/
+ finally(callback) {
+ let promise = this;
+ let constructor = promise.constructor;
+
+ return promise.then(value => constructor.resolve(callback()).then(() => value),
+ reason => constructor.resolve(callback()).then(() => { throw reason; }));
+ }
+}
+
+Promise.prototype.then = then;
+export default Promise;
+Promise.all = all;
+Promise.race = race;
+Promise.resolve = Resolve;
+Promise.reject = Reject;
+Promise._setScheduler = setScheduler;
+Promise._setAsap = setAsap;
+Promise._asap = asap;
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/all.js
index 9ca3c063aa..9ca3c063aa 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/all.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/race.js
index 166dc820b5..166dc820b5 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/race.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/reject.js
index cd55faabf5..cd55faabf5 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/reject.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/resolve.js
index f4642b630e..f4642b630e 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/promise/resolve.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/then.js
index b2b79f0a14..b2b79f0a14 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/then.js
diff --git a/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 b/deps/npm/node_modules/es6-promise/lib/es6-promise/utils.js
index 72545c5e97..72545c5e97 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promise/lib/es6-promise/utils.js
diff --git a/deps/npm/node_modules/es6-promise/package.json b/deps/npm/node_modules/es6-promise/package.json
new file mode 100644
index 0000000000..5fe4bcbbfb
--- /dev/null
+++ b/deps/npm/node_modules/es6-promise/package.json
@@ -0,0 +1,104 @@
+{
+ "_from": "es6-promise@^4.0.3",
+ "_id": "es6-promise@4.2.4",
+ "_inBundle": false,
+ "_integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==",
+ "_location": "/es6-promise",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "es6-promise@^4.0.3",
+ "name": "es6-promise",
+ "escapedName": "es6-promise",
+ "rawSpec": "^4.0.3",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.3"
+ },
+ "_requiredBy": [
+ "/es6-promisify"
+ ],
+ "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
+ "_shasum": "dc4221c2b16518760bd8c39a52d8f356fc00ed29",
+ "_spec": "es6-promise@^4.0.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/es6-promisify",
+ "author": {
+ "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
+ "url": "Conversion to ES6 API by Jake Archibald"
+ },
+ "browser": {
+ "vertx": false
+ },
+ "bugs": {
+ "url": "https://github.com/stefanpenner/es6-promise/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "A lightweight library that provides tools for organizing asynchronous code",
+ "devDependencies": {
+ "babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
+ "babel-plugin-transform-es2015-block-scoping": "^6.24.1",
+ "babel-plugin-transform-es2015-classes": "^6.24.1",
+ "babel-plugin-transform-es2015-computed-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-constants": "^6.1.4",
+ "babel-plugin-transform-es2015-destructuring": "^6.23.0",
+ "babel-plugin-transform-es2015-parameters": "^6.24.1",
+ "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1",
+ "babel-plugin-transform-es2015-spread": "^6.22.0",
+ "babel-plugin-transform-es2015-template-literals": "^6.22.0",
+ "babel6-plugin-strip-class-callcheck": "^6.0.0",
+ "broccoli-babel-transpiler": "^6.0.0",
+ "broccoli-concat": "^3.1.0",
+ "broccoli-merge-trees": "^2.0.0",
+ "broccoli-rollup": "^2.0.0",
+ "broccoli-stew": "^1.5.0",
+ "broccoli-uglify-js": "^0.2.0",
+ "broccoli-watchify": "^1.0.1",
+ "ember-cli": "2.18.0-beta.2",
+ "ember-cli-dependency-checker": "^2.1.0",
+ "git-repo-version": "1.0.1",
+ "json3": "^3.3.2",
+ "mocha": "^4.0.1",
+ "promises-aplus-tests-phantom": "^2.1.0-revise"
+ },
+ "directories": {
+ "lib": "lib"
+ },
+ "files": [
+ "dist",
+ "lib",
+ "es6-promise.d.ts",
+ "auto.js",
+ "!dist/test"
+ ],
+ "homepage": "https://github.com/stefanpenner/es6-promise#readme",
+ "keywords": [
+ "promises",
+ "promise",
+ "polyfill",
+ "futures"
+ ],
+ "license": "MIT",
+ "main": "dist/es6-promise.js",
+ "name": "es6-promise",
+ "namespace": "es6-promise",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/stefanpenner/es6-promise.git"
+ },
+ "scripts": {
+ "build": "ember build --environment production",
+ "prepublishOnly": "ember build --environment production",
+ "start": "ember s",
+ "test": "ember test",
+ "test:browser": "ember test --launch PhantomJS",
+ "test:node": "ember test --launch Mocha",
+ "test:server": "ember test --server"
+ },
+ "spm": {
+ "main": "dist/es6-promise.js"
+ },
+ "typings": "es6-promise.d.ts",
+ "version": "4.2.4"
+}
diff --git a/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 b/deps/npm/node_modules/es6-promisify/README.md
index 4141cc840f..4141cc840f 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promisify/README.md
diff --git a/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 b/deps/npm/node_modules/es6-promisify/dist/promise.js
index 2fe5c6103b..2fe5c6103b 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promisify/dist/promise.js
diff --git a/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 b/deps/npm/node_modules/es6-promisify/dist/promisify.js
index ce38041b07..ce38041b07 100644
--- a/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
+++ b/deps/npm/node_modules/es6-promisify/dist/promisify.js
diff --git a/deps/npm/node_modules/es6-promisify/package.json b/deps/npm/node_modules/es6-promisify/package.json
new file mode 100644
index 0000000000..c66b9667f6
--- /dev/null
+++ b/deps/npm/node_modules/es6-promisify/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "es6-promisify@^5.0.0",
+ "_id": "es6-promisify@5.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
+ "_location": "/es6-promisify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "es6-promisify@^5.0.0",
+ "name": "es6-promisify",
+ "escapedName": "es6-promisify",
+ "rawSpec": "^5.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.0.0"
+ },
+ "_requiredBy": [
+ "/agent-base"
+ ],
+ "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
+ "_spec": "es6-promisify@^5.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/agent-base",
+ "author": {
+ "name": "Mike Hall",
+ "email": "mikehall314@gmail.com"
+ },
+ "bugs": {
+ "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "es6-promise": "^4.0.3"
+ },
+ "deprecated": false,
+ "description": "Converts callback-based functions to ES6 Promises",
+ "devDependencies": {
+ "babel-preset-es2015": "^6.9.0",
+ "eslint": "^2.13.1",
+ "gulp": "^3.9.1",
+ "gulp-babel": "^6.1.2",
+ "nodeunit": "^0.10.0"
+ },
+ "files": [
+ "dist/promisify.js",
+ "dist/promise.js"
+ ],
+ "greenkeeper": {
+ "ignore": [
+ "eslint"
+ ]
+ },
+ "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
+ "keywords": [
+ "promises",
+ "es6",
+ "promisify"
+ ],
+ "license": "MIT",
+ "main": "dist/promisify.js",
+ "name": "es6-promisify",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
+ },
+ "scripts": {
+ "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
+ "test": "gulp && nodeunit tests"
+ },
+ "version": "5.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/index.js b/deps/npm/node_modules/escape-string-regexp/index.js
index 7834bf9b24..7834bf9b24 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/index.js
+++ b/deps/npm/node_modules/escape-string-regexp/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/license b/deps/npm/node_modules/escape-string-regexp/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/license
+++ b/deps/npm/node_modules/escape-string-regexp/license
diff --git a/deps/npm/node_modules/escape-string-regexp/package.json b/deps/npm/node_modules/escape-string-regexp/package.json
new file mode 100644
index 0000000000..154bce30d9
--- /dev/null
+++ b/deps/npm/node_modules/escape-string-regexp/package.json
@@ -0,0 +1,84 @@
+{
+ "_from": "escape-string-regexp@^1.0.5",
+ "_id": "escape-string-regexp@1.0.5",
+ "_inBundle": false,
+ "_integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "_location": "/escape-string-regexp",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "escape-string-regexp@^1.0.5",
+ "name": "escape-string-regexp",
+ "escapedName": "escape-string-regexp",
+ "rawSpec": "^1.0.5",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.5"
+ },
+ "_requiredBy": [
+ "/babel-code-frame/chalk",
+ "/chalk",
+ "/figures",
+ "/tap-mocha-reporter"
+ ],
+ "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "_shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
+ "_spec": "escape-string-regexp@^1.0.5",
+ "_where": "/Users/rebecca/code/npm/node_modules/chalk",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/escape-string-regexp/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Escape RegExp special characters",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/escape-string-regexp#readme",
+ "keywords": [
+ "escape",
+ "regex",
+ "regexp",
+ "re",
+ "regular",
+ "expression",
+ "string",
+ "str",
+ "special",
+ "characters"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ }
+ ],
+ "name": "escape-string-regexp",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/escape-string-regexp.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.5"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/readme.md b/deps/npm/node_modules/escape-string-regexp/readme.md
index 87ac82d5ef..87ac82d5ef 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/readme.md
+++ b/deps/npm/node_modules/escape-string-regexp/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/index.js b/deps/npm/node_modules/execa/index.js
index 74ba8ee2de..74ba8ee2de 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/index.js
+++ b/deps/npm/node_modules/execa/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/errname.js b/deps/npm/node_modules/execa/lib/errname.js
index 328f3e35da..328f3e35da 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/errname.js
+++ b/deps/npm/node_modules/execa/lib/errname.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/stdio.js b/deps/npm/node_modules/execa/lib/stdio.js
index a82d46838a..a82d46838a 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/lib/stdio.js
+++ b/deps/npm/node_modules/execa/lib/stdio.js
diff --git a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/execa/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/execa/license
diff --git a/deps/npm/node_modules/execa/package.json b/deps/npm/node_modules/execa/package.json
new file mode 100644
index 0000000000..632267d116
--- /dev/null
+++ b/deps/npm/node_modules/execa/package.json
@@ -0,0 +1,109 @@
+{
+ "_from": "execa@^0.7.0",
+ "_id": "execa@0.7.0",
+ "_inBundle": false,
+ "_integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
+ "_location": "/execa",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "execa@^0.7.0",
+ "name": "execa",
+ "escapedName": "execa",
+ "rawSpec": "^0.7.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.7.0"
+ },
+ "_requiredBy": [
+ "/os-locale",
+ "/term-size"
+ ],
+ "_resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
+ "_shasum": "944becd34cc41ee32a63a9faf27ad5a65fc59777",
+ "_spec": "execa@^0.7.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/term-size",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/execa/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "cross-spawn": "^5.0.1",
+ "get-stream": "^3.0.0",
+ "is-stream": "^1.1.0",
+ "npm-run-path": "^2.0.0",
+ "p-finally": "^1.0.0",
+ "signal-exit": "^3.0.0",
+ "strip-eof": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "A better `child_process`",
+ "devDependencies": {
+ "ava": "*",
+ "cat-names": "^1.0.2",
+ "coveralls": "^2.11.9",
+ "delay": "^2.0.0",
+ "is-running": "^2.0.0",
+ "nyc": "^11.0.2",
+ "tempfile": "^2.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/sindresorhus/execa#readme",
+ "keywords": [
+ "exec",
+ "child",
+ "process",
+ "execute",
+ "fork",
+ "execfile",
+ "spawn",
+ "file",
+ "shell",
+ "bin",
+ "binary",
+ "binaries",
+ "npm",
+ "path",
+ "local"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "James Talmage",
+ "email": "james@talmage.io",
+ "url": "github.com/jamestalmage"
+ }
+ ],
+ "name": "execa",
+ "nyc": {
+ "reporter": [
+ "text",
+ "lcov"
+ ],
+ "exclude": [
+ "**/fixtures/**",
+ "**/test.js",
+ "**/test/**"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/execa.git"
+ },
+ "scripts": {
+ "test": "xo && nyc ava"
+ },
+ "version": "0.7.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/readme.md b/deps/npm/node_modules/execa/readme.md
index 18c808aa69..18c808aa69 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/readme.md
+++ b/deps/npm/node_modules/execa/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/extend/.jscs.json b/deps/npm/node_modules/extend/.jscs.json
index 0284c86daa..b1c6a99f97 100644
--- a/deps/npm/node_modules/request/node_modules/extend/.jscs.json
+++ b/deps/npm/node_modules/extend/.jscs.json
@@ -172,4 +172,3 @@
"requireUseStrict": true
}
-
diff --git a/deps/npm/node_modules/request/node_modules/extend/.npmignore b/deps/npm/node_modules/extend/.npmignore
index 30d74d2584..30d74d2584 100644
--- a/deps/npm/node_modules/request/node_modules/extend/.npmignore
+++ b/deps/npm/node_modules/extend/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/extend/.travis.yml b/deps/npm/node_modules/extend/.travis.yml
index 6bf696c87b..6bf696c87b 100644
--- a/deps/npm/node_modules/request/node_modules/extend/.travis.yml
+++ b/deps/npm/node_modules/extend/.travis.yml
diff --git a/deps/npm/node_modules/extend/CHANGELOG.md b/deps/npm/node_modules/extend/CHANGELOG.md
new file mode 100644
index 0000000000..7d2e5f3a50
--- /dev/null
+++ b/deps/npm/node_modules/extend/CHANGELOG.md
@@ -0,0 +1,76 @@
+3.0.1 / 2017-04-27
+==================
+ * [Fix] deep extending should work with a non-object (#46)
+ * [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`
+ * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; improve matrix
+ * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG.
+ * [Docs] Add example to readme (#34)
+
+3.0.0 / 2015-07-01
+==================
+ * [Possible breaking change] Use global "strict" directive (#32)
+ * [Tests] `int` is an ES3 reserved word
+ * [Tests] Test up to `io.js` `v2.3`
+ * [Tests] Add `npm run eslint`
+ * [Dev Deps] Update `covert`, `jscs`
+
+2.0.1 / 2015-04-25
+==================
+ * Use an inline `isArray` check, for ES3 browsers. (#27)
+ * Some old browsers fail when an identifier is `toString`
+ * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds
+ * Add license info to package.json (#25)
+ * Update `tape`, `jscs`
+ * Adding a CHANGELOG
+
+2.0.0 / 2014-10-01
+==================
+ * Increase code coverage to 100%; run code coverage as part of tests
+ * Add `npm run lint`; Run linter as part of tests
+ * Remove nodeType and setInterval checks in isPlainObject
+ * Updating `tape`, `jscs`, `covert`
+ * General style and README cleanup
+
+1.3.0 / 2014-06-20
+==================
+ * Add component.json for browser support (#18)
+ * Use SVG for badges in README (#16)
+ * Updating `tape`, `covert`
+ * Updating travis-ci to work with multiple node versions
+ * Fix `deep === false` bug (returning target as {}) (#14)
+ * Fixing constructor checks in isPlainObject
+ * Adding additional test coverage
+ * Adding `npm run coverage`
+ * Add LICENSE (#13)
+ * Adding a warning about `false`, per #11
+ * General style and whitespace cleanup
+
+1.2.1 / 2013-09-14
+==================
+ * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8
+ * Updating `tape`
+
+1.2.0 / 2013-09-02
+==================
+ * Updating the README: add badges
+ * Adding a missing variable reference.
+ * Using `tape` instead of `buster` for tests; add more tests (#7)
+ * Adding node 0.10 to Travis CI (#6)
+ * Enabling "npm test" and cleaning up package.json (#5)
+ * Add Travis CI.
+
+1.1.3 / 2012-12-06
+==================
+ * Added unit tests.
+ * Ensure extend function is named. (Looks nicer in a stack trace.)
+ * README cleanup.
+
+1.1.1 / 2012-11-07
+==================
+ * README cleanup.
+ * Added installation instructions.
+ * Added a missing semicolon
+
+1.0.0 / 2012-04-08
+==================
+ * Initial commit
diff --git a/deps/npm/node_modules/extend/LICENSE b/deps/npm/node_modules/extend/LICENSE
new file mode 100644
index 0000000000..92d41503d3
--- /dev/null
+++ b/deps/npm/node_modules/extend/LICENSE
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Stefan Thomas
+
+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/extend/README.md b/deps/npm/node_modules/extend/README.md
new file mode 100644
index 0000000000..947dda6aeb
--- /dev/null
+++ b/deps/npm/node_modules/extend/README.md
@@ -0,0 +1,80 @@
+[![Build Status][travis-svg]][travis-url]
+[![dependency status][deps-svg]][deps-url]
+[![dev dependency status][dev-deps-svg]][dev-deps-url]
+
+# extend() for Node.js <sup>[![Version Badge][npm-version-png]][npm-url]</sup>
+
+`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true.
+
+Notes:
+
+* Since Node.js >= 4,
+ [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
+ now offers the same functionality natively (but without the "deep copy" option).
+ See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6).
+* Some native implementations of `Object.assign` in both Node.js and many
+ browsers (since NPM modules are for the browser too) may not be fully
+ spec-compliant.
+ Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for
+ a compliant candidate.
+
+## Installation
+
+This package is available on [npm][npm-url] as: `extend`
+
+``` sh
+npm install extend
+```
+
+## Usage
+
+**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)**
+
+*Extend one object with one or more others, returning the modified object.*
+
+**Example:**
+
+``` js
+var extend = require('extend');
+extend(targetObject, object1, object2);
+```
+
+Keep in mind that the target object will be modified, and will be returned from extend().
+
+If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).
+Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over.
+Warning: passing `false` as the first argument is not supported.
+
+### Arguments
+
+* `deep` *Boolean* (optional)
+If set, the merge becomes recursive (i.e. deep copy).
+* `target` *Object*
+The object to extend.
+* `object1` *Object*
+The object that will be merged into the first.
+* `objectN` *Object* (Optional)
+More objects to merge into the first.
+
+## License
+
+`node-extend` is licensed under the [MIT License][mit-license-url].
+
+## Acknowledgements
+
+All credit to the jQuery authors for perfecting this amazing utility.
+
+Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb].
+
+[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg
+[travis-url]: https://travis-ci.org/justmoon/node-extend
+[npm-url]: https://npmjs.org/package/extend
+[mit-license-url]: http://opensource.org/licenses/MIT
+[github-justmoon]: https://github.com/justmoon
+[github-insin]: https://github.com/insin
+[github-ljharb]: https://github.com/ljharb
+[npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg
+[deps-svg]: https://david-dm.org/justmoon/node-extend.svg
+[deps-url]: https://david-dm.org/justmoon/node-extend
+[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg
+[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies
diff --git a/deps/npm/node_modules/extend/component.json b/deps/npm/node_modules/extend/component.json
new file mode 100644
index 0000000000..0f76b59305
--- /dev/null
+++ b/deps/npm/node_modules/extend/component.json
@@ -0,0 +1,31 @@
+{
+ "name": "extend",
+ "author": "Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)",
+ "version": "3.0.0",
+ "description": "Port of jQuery.extend for node.js and the browser.",
+ "scripts": [
+ "index.js"
+ ],
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "url": "https://github.com/ljharb"
+ }
+ ],
+ "keywords": [
+ "extend",
+ "clone",
+ "merge"
+ ],
+ "repository" : {
+ "type": "git",
+ "url": "https://github.com/justmoon/node-extend.git"
+ },
+ "dependencies": {
+ },
+ "devDependencies": {
+ "tape" : "~3.0.0",
+ "covert": "~0.4.0",
+ "jscs": "~1.6.2"
+ }
+}
diff --git a/deps/npm/node_modules/request/node_modules/extend/index.js b/deps/npm/node_modules/extend/index.js
index bbe53f6608..bbe53f6608 100644
--- a/deps/npm/node_modules/request/node_modules/extend/index.js
+++ b/deps/npm/node_modules/extend/index.js
diff --git a/deps/npm/node_modules/extend/package.json b/deps/npm/node_modules/extend/package.json
new file mode 100644
index 0000000000..fe23ab65bb
--- /dev/null
+++ b/deps/npm/node_modules/extend/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "extend@~3.0.1",
+ "_id": "extend@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
+ "_location": "/extend",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "extend@~3.0.1",
+ "name": "extend",
+ "escapedName": "extend",
+ "rawSpec": "~3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~3.0.1"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
+ "_shasum": "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444",
+ "_spec": "extend@~3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Stefan Thomas",
+ "email": "justmoon@members.fsf.org",
+ "url": "http://www.justmoon.net"
+ },
+ "bugs": {
+ "url": "https://github.com/justmoon/node-extend/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "url": "https://github.com/ljharb"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Port of jQuery.extend for node.js and the browser",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^11.0.0",
+ "covert": "^1.1.0",
+ "eslint": "^3.19.0",
+ "jscs": "^3.0.7",
+ "tape": "^4.6.3"
+ },
+ "homepage": "https://github.com/justmoon/node-extend#readme",
+ "keywords": [
+ "extend",
+ "clone",
+ "merge"
+ ],
+ "license": "MIT",
+ "main": "index",
+ "name": "extend",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/justmoon/node-extend.git"
+ },
+ "scripts": {
+ "coverage": "covert test/index.js",
+ "coverage-quiet": "covert test/index.js --quiet",
+ "eslint": "eslint *.js */*.js",
+ "jscs": "jscs *.js */*.js",
+ "lint": "npm run jscs && npm run eslint",
+ "posttest": "npm run coverage-quiet",
+ "pretest": "npm run lint",
+ "test": "npm run tests-only",
+ "tests-only": "node test"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.gitmodules b/deps/npm/node_modules/extsprintf/.gitmodules
index e69de29bb2..e69de29bb2 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.gitmodules
+++ b/deps/npm/node_modules/extsprintf/.gitmodules
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.npmignore b/deps/npm/node_modules/extsprintf/.npmignore
index 6ed1ae9750..6ed1ae9750 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/.npmignore
+++ b/deps/npm/node_modules/extsprintf/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/LICENSE b/deps/npm/node_modules/extsprintf/LICENSE
index cbc0bb3ba3..cbc0bb3ba3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/LICENSE
+++ b/deps/npm/node_modules/extsprintf/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile b/deps/npm/node_modules/extsprintf/Makefile
index db845189ad..db845189ad 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile
+++ b/deps/npm/node_modules/extsprintf/Makefile
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile.targ b/deps/npm/node_modules/extsprintf/Makefile.targ
index 2a64fe7e95..2a64fe7e95 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/Makefile.targ
+++ b/deps/npm/node_modules/extsprintf/Makefile.targ
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/README.md b/deps/npm/node_modules/extsprintf/README.md
index b22998d63a..b22998d63a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/README.md
+++ b/deps/npm/node_modules/extsprintf/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/jsl.node.conf b/deps/npm/node_modules/extsprintf/jsl.node.conf
index 03f787ffbd..eabe9650f5 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/jsl.node.conf
+++ b/deps/npm/node_modules/extsprintf/jsl.node.conf
@@ -1,5 +1,5 @@
#
-# Configuration File for JavaScript Lint
+# Configuration File for JavaScript Lint
#
# This configuration file can be used to lint a collection of scripts, or to enable
# or disable warnings for scripts that are linted via the command line.
@@ -134,4 +134,3 @@
# To add a set of files, use "+process FileName", "+process Folder\Path\*.js",
# or "+process Folder\Path\*.htm".
#
-
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js b/deps/npm/node_modules/extsprintf/lib/extsprintf.js
index ed883d32b9..ed883d32b9 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/lib/extsprintf.js
+++ b/deps/npm/node_modules/extsprintf/lib/extsprintf.js
diff --git a/deps/npm/node_modules/extsprintf/package.json b/deps/npm/node_modules/extsprintf/package.json
new file mode 100644
index 0000000000..c96db9bb20
--- /dev/null
+++ b/deps/npm/node_modules/extsprintf/package.json
@@ -0,0 +1,44 @@
+{
+ "_from": "extsprintf@1.3.0",
+ "_id": "extsprintf@1.3.0",
+ "_inBundle": false,
+ "_integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+ "_location": "/extsprintf",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "extsprintf@1.3.0",
+ "name": "extsprintf",
+ "escapedName": "extsprintf",
+ "rawSpec": "1.3.0",
+ "saveSpec": null,
+ "fetchSpec": "1.3.0"
+ },
+ "_requiredBy": [
+ "/jsprim",
+ "/verror"
+ ],
+ "_resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "_shasum": "96918440e3041a7a414f8c52e3c574eb3c3e1e05",
+ "_spec": "extsprintf@1.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/jsprim",
+ "bugs": {
+ "url": "https://github.com/davepacheco/node-extsprintf/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "extended POSIX-style sprintf",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "homepage": "https://github.com/davepacheco/node-extsprintf#readme",
+ "license": "MIT",
+ "main": "./lib/extsprintf.js",
+ "name": "extsprintf",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/davepacheco/node-extsprintf.git"
+ },
+ "version": "1.3.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/LICENSE b/deps/npm/node_modules/fast-deep-equal/LICENSE
index 7f1543566f..7f1543566f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/LICENSE
+++ b/deps/npm/node_modules/fast-deep-equal/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/README.md b/deps/npm/node_modules/fast-deep-equal/README.md
index ee83edd454..ee83edd454 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/README.md
+++ b/deps/npm/node_modules/fast-deep-equal/README.md
diff --git a/deps/npm/node_modules/fast-deep-equal/index.d.ts b/deps/npm/node_modules/fast-deep-equal/index.d.ts
new file mode 100644
index 0000000000..3c042caa7d
--- /dev/null
+++ b/deps/npm/node_modules/fast-deep-equal/index.d.ts
@@ -0,0 +1,4 @@
+declare module 'fast-deep-equal' {
+ const equal: (a: any, b: any) => boolean;
+ export = equal;
+}
diff --git a/deps/npm/node_modules/fast-deep-equal/index.js b/deps/npm/node_modules/fast-deep-equal/index.js
new file mode 100644
index 0000000000..7aaaba3f6c
--- /dev/null
+++ b/deps/npm/node_modules/fast-deep-equal/index.js
@@ -0,0 +1,55 @@
+'use strict';
+
+var isArray = Array.isArray;
+var keyList = Object.keys;
+var hasProp = Object.prototype.hasOwnProperty;
+
+module.exports = function equal(a, b) {
+ if (a === b) return true;
+
+ var arrA = isArray(a)
+ , arrB = isArray(b)
+ , i
+ , length
+ , key;
+
+ if (arrA && arrB) {
+ length = a.length;
+ if (length != b.length) return false;
+ for (i = 0; i < length; i++)
+ if (!equal(a[i], b[i])) return false;
+ return true;
+ }
+
+ if (arrA != arrB) return false;
+
+ var dateA = a instanceof Date
+ , dateB = b instanceof Date;
+ if (dateA != dateB) return false;
+ if (dateA && dateB) return a.getTime() == b.getTime();
+
+ var regexpA = a instanceof RegExp
+ , regexpB = b instanceof RegExp;
+ if (regexpA != regexpB) return false;
+ if (regexpA && regexpB) return a.toString() == b.toString();
+
+ if (a instanceof Object && b instanceof Object) {
+ var keys = keyList(a);
+ length = keys.length;
+
+ if (length !== keyList(b).length)
+ return false;
+
+ for (i = 0; i < length; i++)
+ if (!hasProp.call(b, keys[i])) return false;
+
+ for (i = 0; i < length; i++) {
+ key = keys[i];
+ if (!equal(a[key], b[key])) return false;
+ }
+
+ return true;
+ }
+
+ return false;
+};
diff --git a/deps/npm/node_modules/fast-deep-equal/package.json b/deps/npm/node_modules/fast-deep-equal/package.json
new file mode 100644
index 0000000000..d084012d2d
--- /dev/null
+++ b/deps/npm/node_modules/fast-deep-equal/package.json
@@ -0,0 +1,85 @@
+{
+ "_from": "fast-deep-equal@^1.0.0",
+ "_id": "fast-deep-equal@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
+ "_location": "/fast-deep-equal",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "fast-deep-equal@^1.0.0",
+ "name": "fast-deep-equal",
+ "escapedName": "fast-deep-equal",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/ajv"
+ ],
+ "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
+ "_shasum": "c053477817c86b51daa853c81e059b733d023614",
+ "_spec": "fast-deep-equal@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/ajv",
+ "author": {
+ "name": "Evgeny Poberezkin"
+ },
+ "bugs": {
+ "url": "https://github.com/epoberezkin/fast-deep-equal/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Fast deep equal",
+ "devDependencies": {
+ "benchmark": "^2.1.4",
+ "coveralls": "^2.13.1",
+ "deep-eql": "^2.0.2",
+ "deep-equal": "^1.0.1",
+ "eslint": "^4.0.0",
+ "lodash": "^4.17.4",
+ "mocha": "^3.4.2",
+ "nano-equal": "^1.0.1",
+ "nyc": "^11.0.2",
+ "pre-commit": "^1.2.2",
+ "shallow-equal-fuzzy": "0.0.2",
+ "typescript": "^2.6.1",
+ "underscore": "^1.8.3"
+ },
+ "files": [
+ "index.js",
+ "index.d.ts"
+ ],
+ "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme",
+ "keywords": [
+ "fast",
+ "equal",
+ "deep-equal"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "fast-deep-equal",
+ "nyc": {
+ "exclude": [
+ "**/spec/**",
+ "node_modules"
+ ],
+ "reporter": [
+ "lcov",
+ "text-summary"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/epoberezkin/fast-deep-equal.git"
+ },
+ "scripts": {
+ "eslint": "eslint *.js benchmark spec",
+ "test": "npm run eslint && npm run test-ts && npm run test-cov",
+ "test-cov": "nyc npm run test-spec",
+ "test-spec": "mocha spec/*.spec.js -R spec",
+ "test-ts": "tsc --target ES5 --noImplicitAny index.d.ts"
+ },
+ "types": "index.d.ts",
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml b/deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml
new file mode 100644
index 0000000000..1c77b0d479
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/.eslintrc.yml
@@ -0,0 +1,26 @@
+extends: eslint:recommended
+env:
+ node: true
+ browser: true
+rules:
+ block-scoped-var: 2
+ callback-return: 2
+ dot-notation: 2
+ indent: 2
+ linebreak-style: [2, unix]
+ new-cap: 2
+ no-console: [2, allow: [warn, error]]
+ no-else-return: 2
+ no-eq-null: 2
+ no-fallthrough: 2
+ no-invalid-this: 2
+ no-return-assign: 2
+ no-shadow: 1
+ no-trailing-spaces: 2
+ no-use-before-define: [2, nofunc]
+ quotes: [2, single, avoid-escape]
+ semi: [2, always]
+ strict: [2, global]
+ valid-jsdoc: [2, requireReturn: false]
+ no-control-regex: 0
+ no-useless-escape: 2
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/.npmignore b/deps/npm/node_modules/fast-json-stable-stringify/.npmignore
new file mode 100644
index 0000000000..899d7360ba
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/.npmignore
@@ -0,0 +1,4 @@
+node_modules
+.nyc_output/
+coverage/
+.DS_Store
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.travis.yml b/deps/npm/node_modules/fast-json-stable-stringify/.travis.yml
index 7ddce74b84..7ddce74b84 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.travis.yml
+++ b/deps/npm/node_modules/fast-json-stable-stringify/.travis.yml
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE b/deps/npm/node_modules/fast-json-stable-stringify/LICENSE
index ee27ba4b44..ee27ba4b44 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/LICENSE
+++ b/deps/npm/node_modules/fast-json-stable-stringify/LICENSE
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/README.md b/deps/npm/node_modules/fast-json-stable-stringify/README.md
new file mode 100644
index 0000000000..0f43b4a7e0
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/README.md
@@ -0,0 +1,119 @@
+# fast-json-stable-stringify
+
+Deterministic `JSON.stringify()` - a faster version of [@substack](https://github.com/substack)'s json-stable-strigify without [jsonify](https://github.com/substack/jsonify).
+
+You can also pass in a custom comparison function.
+
+[![Build Status](https://travis-ci.org/epoberezkin/fast-json-stable-stringify.svg?branch=master)](https://travis-ci.org/epoberezkin/fast-json-stable-stringify)
+[![Coverage Status](https://coveralls.io/repos/github/epoberezkin/fast-json-stable-stringify/badge.svg?branch=master)](https://coveralls.io/github/epoberezkin/fast-json-stable-stringify?branch=master)
+
+# example
+
+``` js
+var stringify = require('fast-json-stable-stringify');
+var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
+console.log(stringify(obj));
+```
+
+output:
+
+```
+{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}
+```
+
+
+# methods
+
+``` js
+var stringify = require('fast-json-stable-stringify')
+```
+
+## var str = stringify(obj, opts)
+
+Return a deterministic stringified string `str` from the object `obj`.
+
+
+## options
+
+### cmp
+
+If `opts` is given, you can supply an `opts.cmp` to have a custom comparison
+function for object keys. Your function `opts.cmp` is called with these
+parameters:
+
+``` js
+opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue })
+```
+
+For example, to sort on the object key names in reverse order you could write:
+
+``` js
+var stringify = require('fast-json-stable-stringify');
+
+var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
+var s = stringify(obj, function (a, b) {
+ return a.key < b.key ? 1 : -1;
+});
+console.log(s);
+```
+
+which results in the output string:
+
+```
+{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}
+```
+
+Or if you wanted to sort on the object values in reverse order, you could write:
+
+```
+var stringify = require('fast-json-stable-stringify');
+
+var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
+var s = stringify(obj, function (a, b) {
+ return a.value < b.value ? 1 : -1;
+});
+console.log(s);
+```
+
+which outputs:
+
+```
+{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10}
+```
+
+### cycles
+
+Pass `true` in `opts.cycles` to stringify circular property as `__cycle__` - the result will not be a valid JSON string in this case.
+
+TypeError will be thrown in case of circular object without this option.
+
+
+# install
+
+With [npm](https://npmjs.org) do:
+
+```
+npm install fast-json-stable-stringify
+```
+
+
+# benchmark
+
+To run benchmark (requires Node.js 6+):
+```
+node benchmark
+```
+
+Results:
+```
+fast-json-stable-stringify x 17,189 ops/sec Ā±1.43% (83 runs sampled)
+json-stable-stringify x 13,634 ops/sec Ā±1.39% (85 runs sampled)
+fast-stable-stringify x 20,212 ops/sec Ā±1.20% (84 runs sampled)
+faster-stable-stringify x 15,549 ops/sec Ā±1.12% (84 runs sampled)
+The fastest is fast-stable-stringify
+```
+
+
+# license
+
+[MIT](https://github.com/epoberezkin/fast-json-stable-stringify/blob/master/LICENSE)
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js
new file mode 100644
index 0000000000..e725f9fc5f
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/index.js
@@ -0,0 +1,31 @@
+'use strict';
+
+const Benchmark = require('benchmark');
+const suite = new Benchmark.Suite;
+const testData = require('./test.json');
+
+
+const stringifyPackages = {
+ // 'JSON.stringify': JSON.stringify,
+ 'fast-json-stable-stringify': require('../index'),
+ 'json-stable-stringify': true,
+ 'fast-stable-stringify': true,
+ 'faster-stable-stringify': true
+};
+
+
+for (const name in stringifyPackages) {
+ let func = stringifyPackages[name];
+ if (func === true) func = require(name);
+
+ suite.add(name, function() {
+ func(testData);
+ });
+}
+
+suite
+ .on('cycle', (event) => console.log(String(event.target)))
+ .on('complete', function () {
+ console.log('The fastest is ' + this.filter('fastest').map('name'));
+ })
+ .run({async: true});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json
new file mode 100644
index 0000000000..c9118c11f5
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/benchmark/test.json
@@ -0,0 +1,137 @@
+[
+ {
+ "_id": "59ef4a83ee8364808d761beb",
+ "index": 0,
+ "guid": "e50ffae9-7128-4148-9ee5-40c3fc523c5d",
+ "isActive": false,
+ "balance": "$2,341.81",
+ "picture": "http://placehold.it/32x32",
+ "age": 28,
+ "eyeColor": "brown",
+ "name": "Carey Savage",
+ "gender": "female",
+ "company": "VERAQ",
+ "email": "careysavage@veraq.com",
+ "phone": "+1 (897) 574-3014",
+ "address": "458 Willow Street, Henrietta, California, 7234",
+ "about": "Nisi reprehenderit nulla ad officia pariatur non dolore laboris irure cupidatat laborum. Minim eu ex Lorem adipisicing exercitation irure minim sunt est enim mollit incididunt voluptate nulla. Ut mollit anim reprehenderit et aliqua ex esse aliquip. Aute sit duis deserunt do incididunt consequat minim qui dolor commodo deserunt et voluptate.\r\n",
+ "registered": "2014-05-21T01:56:51 -01:00",
+ "latitude": 63.89502,
+ "longitude": 62.369807,
+ "tags": [
+ "nostrud",
+ "nisi",
+ "consectetur",
+ "ullamco",
+ "cupidatat",
+ "culpa",
+ "commodo"
+ ],
+ "friends": [
+ {
+ "id": 0,
+ "name": "Henry Walls"
+ },
+ {
+ "id": 1,
+ "name": "Janice Baker"
+ },
+ {
+ "id": 2,
+ "name": "Russell Bush"
+ }
+ ],
+ "greeting": "Hello, Carey Savage! You have 4 unread messages.",
+ "favoriteFruit": "banana"
+ },
+ {
+ "_id": "59ef4a83ff5774a691454e89",
+ "index": 1,
+ "guid": "2bee9efc-4095-4c2e-87ef-d08c8054c89d",
+ "isActive": true,
+ "balance": "$1,618.15",
+ "picture": "http://placehold.it/32x32",
+ "age": 35,
+ "eyeColor": "blue",
+ "name": "Elinor Pearson",
+ "gender": "female",
+ "company": "FLEXIGEN",
+ "email": "elinorpearson@flexigen.com",
+ "phone": "+1 (923) 548-3751",
+ "address": "600 Bayview Avenue, Draper, Montana, 3088",
+ "about": "Mollit commodo ea sit Lorem velit. Irure anim esse Lorem sint quis officia ut. Aliqua nisi dolore in aute deserunt mollit ex ea in mollit.\r\n",
+ "registered": "2017-04-22T07:58:41 -01:00",
+ "latitude": -87.824919,
+ "longitude": 69.538927,
+ "tags": [
+ "fugiat",
+ "labore",
+ "proident",
+ "quis",
+ "eiusmod",
+ "qui",
+ "est"
+ ],
+ "friends": [
+ {
+ "id": 0,
+ "name": "Massey Wagner"
+ },
+ {
+ "id": 1,
+ "name": "Marcella Ferrell"
+ },
+ {
+ "id": 2,
+ "name": "Evans Mckee"
+ }
+ ],
+ "greeting": "Hello, Elinor Pearson! You have 3 unread messages.",
+ "favoriteFruit": "strawberry"
+ },
+ {
+ "_id": "59ef4a839ec8a4be4430b36b",
+ "index": 2,
+ "guid": "ddd6e8c0-95bd-416d-8b46-a768d6363809",
+ "isActive": false,
+ "balance": "$2,046.95",
+ "picture": "http://placehold.it/32x32",
+ "age": 40,
+ "eyeColor": "green",
+ "name": "Irwin Davidson",
+ "gender": "male",
+ "company": "DANJA",
+ "email": "irwindavidson@danja.com",
+ "phone": "+1 (883) 537-2041",
+ "address": "439 Cook Street, Chapin, Kentucky, 7398",
+ "about": "Irure velit non commodo aliqua exercitation ut nostrud minim magna. Dolor ad ad ut irure eu. Non pariatur dolor eiusmod ipsum do et exercitation cillum. Et amet laboris minim eiusmod ullamco magna ea reprehenderit proident sunt.\r\n",
+ "registered": "2016-09-01T07:49:08 -01:00",
+ "latitude": -49.803812,
+ "longitude": 104.93279,
+ "tags": [
+ "consequat",
+ "enim",
+ "quis",
+ "magna",
+ "est",
+ "culpa",
+ "tempor"
+ ],
+ "friends": [
+ {
+ "id": 0,
+ "name": "Ruth Hansen"
+ },
+ {
+ "id": 1,
+ "name": "Kathrine Austin"
+ },
+ {
+ "id": 2,
+ "name": "Rivera Munoz"
+ }
+ ],
+ "greeting": "Hello, Irwin Davidson! You have 2 unread messages.",
+ "favoriteFruit": "banana"
+ }
+]
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/key_cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js
index d5f66752d8..d5f66752d8 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/key_cmp.js
+++ b/deps/npm/node_modules/fast-json-stable-stringify/example/key_cmp.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/nested.js b/deps/npm/node_modules/fast-json-stable-stringify/example/nested.js
index 9a672fc65f..9a672fc65f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/nested.js
+++ b/deps/npm/node_modules/fast-json-stable-stringify/example/nested.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/str.js b/deps/npm/node_modules/fast-json-stable-stringify/example/str.js
index 9b4b3cd289..9b4b3cd289 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/str.js
+++ b/deps/npm/node_modules/fast-json-stable-stringify/example/str.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/value_cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js
index 09f1c5f79b..09f1c5f79b 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/example/value_cmp.js
+++ b/deps/npm/node_modules/fast-json-stable-stringify/example/value_cmp.js
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/index.js b/deps/npm/node_modules/fast-json-stable-stringify/index.js
new file mode 100644
index 0000000000..c44e6a4137
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/index.js
@@ -0,0 +1,59 @@
+'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);
+};
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/package.json b/deps/npm/node_modules/fast-json-stable-stringify/package.json
new file mode 100644
index 0000000000..965546480e
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/package.json
@@ -0,0 +1,78 @@
+{
+ "_from": "fast-json-stable-stringify@^2.0.0",
+ "_id": "fast-json-stable-stringify@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
+ "_location": "/fast-json-stable-stringify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "fast-json-stable-stringify@^2.0.0",
+ "name": "fast-json-stable-stringify",
+ "escapedName": "fast-json-stable-stringify",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/ajv"
+ ],
+ "_resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
+ "_shasum": "d5142c0caee6b1189f87d3a76111064f86c8bbf2",
+ "_spec": "fast-json-stable-stringify@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/ajv",
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/epoberezkin/fast-json-stable-stringify/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "deterministic `JSON.stringify()` - a faster version of substack's json-stable-strigify without jsonify",
+ "devDependencies": {
+ "benchmark": "^2.1.4",
+ "coveralls": "^3.0.0",
+ "eslint": "^4.9.0",
+ "fast-stable-stringify": "latest",
+ "faster-stable-stringify": "latest",
+ "json-stable-stringify": "latest",
+ "nyc": "^11.2.1",
+ "pre-commit": "^1.2.2",
+ "tape": "~1.0.4"
+ },
+ "homepage": "https://github.com/epoberezkin/fast-json-stable-stringify",
+ "keywords": [
+ "json",
+ "stringify",
+ "deterministic",
+ "hash",
+ "stable"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "fast-json-stable-stringify",
+ "nyc": {
+ "exclude": [
+ "test",
+ "node_modules"
+ ],
+ "reporter": [
+ "lcov",
+ "text-summary"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/epoberezkin/fast-json-stable-stringify.git"
+ },
+ "scripts": {
+ "eslint": "eslint index.js test",
+ "test": "npm run eslint && nyc npm run test-spec",
+ "test-spec": "tape test/*.js"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/cmp.js b/deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js
index 2dbb39355c..4efd6b5972 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/cmp.js
+++ b/deps/npm/node_modules/fast-json-stable-stringify/test/cmp.js
@@ -1,3 +1,5 @@
+'use strict';
+
var test = require('tape');
var stringify = require('../');
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js b/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js
new file mode 100644
index 0000000000..167a358e09
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/test/nested.js
@@ -0,0 +1,44 @@
+'use strict';
+
+var test = require('tape');
+var stringify = require('../');
+
+test('nested', function (t) {
+ t.plan(1);
+ var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
+ t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}');
+});
+
+test('cyclic (default)', function (t) {
+ t.plan(1);
+ var one = { a: 1 };
+ var two = { a: 2, one: one };
+ one.two = two;
+ try {
+ stringify(one);
+ } catch (ex) {
+ t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON');
+ }
+});
+
+test('cyclic (specifically allowed)', function (t) {
+ t.plan(1);
+ var one = { a: 1 };
+ var two = { a: 2, one: one };
+ one.two = two;
+ t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}');
+});
+
+test('repeated non-cyclic value', function(t) {
+ t.plan(1);
+ var one = { x: 1 };
+ var two = { a: one, b: one };
+ t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}');
+});
+
+test('acyclic but with reused obj-property pointers', function (t) {
+ t.plan(1);
+ var x = { a: 1 };
+ var y = { b: x, c: x };
+ t.equal(stringify(y), '{"b":{"a":1},"c":{"a":1}}');
+});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/str.js b/deps/npm/node_modules/fast-json-stable-stringify/test/str.js
new file mode 100644
index 0000000000..99a9ade18b
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/test/str.js
@@ -0,0 +1,46 @@
+'use strict';
+
+var test = require('tape');
+var stringify = require('../');
+
+test('simple object', function (t) {
+ t.plan(1);
+ var obj = { c: 6, b: [4,5], a: 3, z: null };
+ t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}');
+});
+
+test('object with undefined', function (t) {
+ t.plan(1);
+ var obj = { a: 3, z: undefined };
+ t.equal(stringify(obj), '{"a":3}');
+});
+
+test('object with null', function (t) {
+ t.plan(1);
+ var obj = { a: 3, z: null };
+ t.equal(stringify(obj), '{"a":3,"z":null}');
+});
+
+test('object with NaN and Infinity', function (t) {
+ t.plan(1);
+ var obj = { a: 3, b: NaN, c: Infinity };
+ t.equal(stringify(obj), '{"a":3,"b":null,"c":null}');
+});
+
+test('array with undefined', function (t) {
+ t.plan(1);
+ var obj = [4, undefined, 6];
+ t.equal(stringify(obj), '[4,null,6]');
+});
+
+test('object with empty string', function (t) {
+ t.plan(1);
+ var obj = { a: 3, z: '' };
+ t.equal(stringify(obj), '{"a":3,"z":""}');
+});
+
+test('array with empty string', function (t) {
+ t.plan(1);
+ var obj = [4, '', 6];
+ t.equal(stringify(obj), '[4,"",6]');
+});
diff --git a/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js b/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js
new file mode 100644
index 0000000000..2fb2cfa3e8
--- /dev/null
+++ b/deps/npm/node_modules/fast-json-stable-stringify/test/to-json.js
@@ -0,0 +1,22 @@
+'use strict';
+
+var test = require('tape');
+var stringify = require('../');
+
+test('toJSON function', function (t) {
+ t.plan(1);
+ var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } };
+ t.equal(stringify(obj), '{"one":1}' );
+});
+
+test('toJSON returns string', function (t) {
+ t.plan(1);
+ var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } };
+ t.equal(stringify(obj), '"one"');
+});
+
+test('toJSON returns array', function (t) {
+ t.plan(1);
+ var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } };
+ t.equal(stringify(obj), '["one"]');
+});
diff --git a/deps/npm/node_modules/figgy-pudding/CHANGELOG.md b/deps/npm/node_modules/figgy-pudding/CHANGELOG.md
new file mode 100644
index 0000000000..02cf10f494
--- /dev/null
+++ b/deps/npm/node_modules/figgy-pudding/CHANGELOG.md
@@ -0,0 +1,66 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.1.0"></a>
+# [3.1.0](https://github.com/zkat/figgy-pudding/compare/v3.0.0...v3.1.0) (2018-04-08)
+
+
+### Features
+
+* **opts:** allow direct option fetching without .get() ([ca77aad](https://github.com/zkat/figgy-pudding/commit/ca77aad))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/zkat/figgy-pudding/compare/v2.0.1...v3.0.0) (2018-04-06)
+
+
+### Bug Fixes
+
+* **ci:** oops -- forgot to update CI config ([7a40563](https://github.com/zkat/figgy-pudding/commit/7a40563))
+* **get:** make provider lookup order like Object.assign ([33ff89b](https://github.com/zkat/figgy-pudding/commit/33ff89b))
+
+
+### Features
+
+* **concat:** add .concat() method to opts ([d310fce](https://github.com/zkat/figgy-pudding/commit/d310fce))
+
+
+### meta
+
+* drop support for node@4 and node@7 ([9f8a61c](https://github.com/zkat/figgy-pudding/commit/9f8a61c))
+
+
+### BREAKING CHANGES
+
+* node@4 and node@7 are no longer supported
+* **get:** shadow order for properties in providers is reversed
+
+
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/zkat/figgy-pudding/compare/v2.0.0...v2.0.1) (2018-03-16)
+
+
+### Bug Fixes
+
+* **opts:** ignore non-object providers ([7b9c0f8](https://github.com/zkat/figgy-pudding/commit/7b9c0f8))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/figgy-pudding/compare/v1.0.0...v2.0.0) (2018-03-16)
+
+
+### Features
+
+* **api:** overhauled API with new opt handling concept ([e6cc929](https://github.com/zkat/figgy-pudding/commit/e6cc929))
+* **license:** relicense to ISC ([87479aa](https://github.com/zkat/figgy-pudding/commit/87479aa))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+* **api:** this is a completely different approach than previously
+used by this library. See the readme for the new API and an explanation.
diff --git a/deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md b/deps/npm/node_modules/figgy-pudding/LICENSE.md
index 8d28acf866..8d28acf866 100644
--- a/deps/npm/node_modules/cacache/node_modules/ssri/LICENSE.md
+++ b/deps/npm/node_modules/figgy-pudding/LICENSE.md
diff --git a/deps/npm/node_modules/figgy-pudding/README.md b/deps/npm/node_modules/figgy-pudding/README.md
new file mode 100644
index 0000000000..8fbc9e15a0
--- /dev/null
+++ b/deps/npm/node_modules/figgy-pudding/README.md
@@ -0,0 +1,149 @@
+# figgy-pudding [![npm version](https://img.shields.io/npm/v/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![license](https://img.shields.io/npm/l/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![Travis](https://img.shields.io/travis/zkat/figgy-pudding.svg)](https://travis-ci.org/zkat/figgy-pudding) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/figgy-pudding?svg=true)](https://ci.appveyor.com/project/zkat/figgy-pudding) [![Coverage Status](https://coveralls.io/repos/github/zkat/figgy-pudding/badge.svg?branch=latest)](https://coveralls.io/github/zkat/figgy-pudding?branch=latest)
+
+# Death to the God Object! Now Bring Us Some Figgy Pudding!
+
+[`figgy-pudding`](https://github.com/zkat/figgy-pudding) is a simple JavaScript library for managing and composing cascading options objects -- hiding what needs to be hidden from each layer, without having to do a lot of manual munging and passing of options.
+
+## Install
+
+`$ npm install figgy-pudding`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [API](#api)
+ * [`figgyPudding(spec)`](#figgy-pudding)
+ * [`Opts(values)`](#opts)
+ * [`opts.get()`](#opts-get)
+ * [`opts.concat()`](#opts-concat)
+
+### Example
+
+```javascript
+const puddin = require('figgyPudding')
+
+const RequestOpts = puddin({
+ follow: {
+ default: true
+ },
+ streaming: {
+ default: false
+ },
+ log: {
+ default: require('npmlog')
+ }
+})
+
+const MyAppOpts = puddin({
+ log: {
+ default: require('npmlog')
+ },
+ cache: {
+ default: './cache'
+ }
+})
+
+function start (opts) {
+ opts = MyAppOpts(opts)
+ initCache(opts.get('cache'))
+ opts.get('streaming') // => undefined
+ reqStuff('https://npm.im/figgy-pudding', opts)
+}
+
+function reqStuff (uri, opts) {
+ opts = RequestOpts(opts)
+ require('request').get(uri, opts) // can't see `cache`
+}
+```
+
+### Features
+
+* Hide options from layer that didn't ask for it
+* Shared multi-layer options
+
+### API
+
+#### <a name="figgy-pudding"></a> `> figgyPudding({ key: { default: val } | String }, [opts])`
+
+Defines an Options constructor that can be used to collect only the needed
+options.
+
+An optional `default` property for specs can be used to specify default values
+if nothing was passed in.
+
+If the value for a spec is a string, it will be treated as an alias to that
+other key.
+
+##### Example
+
+```javascript
+const MyAppOpts = figgyPudding({
+ lg: 'log',
+ log: {
+ default: () => require('npmlog')
+ },
+ cache: {}
+})
+```
+
+#### <a name="opts"></a> `> Opts(...providers)`
+
+Instantiates an options object defined by `figgyPudding()`, which uses
+`providers`, in order, to find requested properties.
+
+Each provider can be either a plain object, a `Map`-like object (that is, one
+with a `.get()` method) or another figgyPudding `Opts` object.
+
+When nesting `Opts` objects, their properties will not become available to the
+new object, but any further nested `Opts` that reference that property _will_ be
+able to read from their grandparent, as long as they define that key. Default
+values for nested `Opts` parents will be used, if found.
+
+##### Example
+
+```javascript
+const ReqOpts = figgyPudding({
+ follow: {}
+})
+
+const opts = ReqOpts({
+ follow: true,
+ log: require('npmlog')
+})
+
+opts.get('follow') // => true
+opts.get('log') // => Error: ReqOpts does not define `log`
+
+const MoreOpts = figgyPudding({
+ log: {}
+})
+MoreOpts(opts).get('log') // => npmlog object (passed in from original plain obj)
+MoreOpts(opts).get('follow') // => Error: MoreOpts does not define `follow`
+```
+
+#### <a name="opts-get"></a> `> opts.get(key)`
+
+Gets a value from the options object.
+
+##### Example
+
+```js
+const opts = MyOpts(config)
+opts.get('foo') // value of `foo`
+```
+
+#### <a name="opts-concat"></a> `> opts.concat(...moreProviders)`
+
+Creates a new opts object of the same type as `opts` with additional providers.
+Providers further to the right shadow providers to the left, with properties in
+the original `opts` being shadows by the new providers.
+
+##### Example
+
+```js
+const opts = MyOpts({x: 1})
+opts.get('x') // 1
+opts.concat({x: 2}).get('x') // 2
+opts.get('x') // 1 (original opts object left intact)
+```
diff --git a/deps/npm/node_modules/figgy-pudding/index.js b/deps/npm/node_modules/figgy-pudding/index.js
new file mode 100644
index 0000000000..a3c9c94ebf
--- /dev/null
+++ b/deps/npm/node_modules/figgy-pudding/index.js
@@ -0,0 +1,101 @@
+'use strict'
+
+class FiggyPudding {
+ constructor (specs, opts, providers) {
+ this.__specs = specs || {}
+ this.__opts = opts || (() => false)
+ this.__providers = reverse((providers || []).filter(
+ x => x != null && typeof x === 'object'
+ ))
+ this.__isFiggyPudding = true
+ }
+ get (key) {
+ return pudGet(this, key, true)
+ }
+ concat (...moreConfig) {
+ return new FiggyPudding(
+ this.__specs,
+ this.__opts,
+ reverse(this.__providers).concat(moreConfig)
+ )
+ }
+}
+
+function pudGet (pud, key, validate) {
+ let spec = pud.__specs[key]
+ if (typeof spec === 'string') {
+ key = spec
+ spec = pud.__specs[key]
+ }
+ if (validate && !spec && (!pud.__opts.other || !pud.__opts.other(key))) {
+ throw new Error(`invalid config key requested: ${key}`)
+ } else {
+ if (!spec) { spec = {} }
+ let ret
+ for (let p of pud.__providers) {
+ if (p.__isFiggyPudding) {
+ ret = pudGet(p, key, false)
+ } else if (typeof p.get === 'function') {
+ ret = p.get(key)
+ } else {
+ ret = p[key]
+ }
+ if (ret !== undefined) {
+ break
+ }
+ }
+ if (ret === undefined && spec.default !== undefined) {
+ if (typeof spec.default === 'function') {
+ return spec.default()
+ } else {
+ return spec.default
+ }
+ } else {
+ return ret
+ }
+ }
+}
+
+const proxyHandler = {
+ has (obj, prop) {
+ return pudGet(obj, prop, false) !== undefined
+ },
+ get (obj, prop) {
+ if (
+ prop === 'concat' ||
+ prop === 'get' ||
+ prop.slice(0, 2) === '__'
+ ) {
+ return obj[prop]
+ }
+ return obj.get(prop)
+ },
+ set (obj, prop, value) {
+ if (prop.slice(0, 2) === '__') {
+ obj[prop] = value
+ } else {
+ throw new Error('figgyPudding options cannot be modified. Use .concat() instead.')
+ }
+ },
+ delete () {
+ throw new Error('figgyPudding options cannot be deleted. Use .concat() and shadow them instead.')
+ }
+}
+
+module.exports = figgyPudding
+function figgyPudding (specs, opts) {
+ function factory (...providers) {
+ return new Proxy(new FiggyPudding(
+ specs,
+ opts,
+ providers
+ ), proxyHandler)
+ }
+ return factory
+}
+
+function reverse (arr) {
+ const ret = []
+ arr.forEach(x => ret.unshift(x))
+ return ret
+}
diff --git a/deps/npm/node_modules/figgy-pudding/package.json b/deps/npm/node_modules/figgy-pudding/package.json
new file mode 100644
index 0000000000..cf6ee25471
--- /dev/null
+++ b/deps/npm/node_modules/figgy-pudding/package.json
@@ -0,0 +1,76 @@
+{
+ "_args": [
+ [
+ "figgy-pudding@3.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "figgy-pudding@3.1.0",
+ "_id": "figgy-pudding@3.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-Gi2vIue0ec6P/7LNpueGhLuvfF2ztuterl8YFBQn1yKgIS46noGxCbi+vviPdObNYtgUSh5FpHy5q0Cw9XhxKQ==",
+ "_location": "/figgy-pudding",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "figgy-pudding@3.1.0",
+ "name": "figgy-pudding",
+ "escapedName": "figgy-pudding",
+ "rawSpec": "3.1.0",
+ "saveSpec": null,
+ "fetchSpec": "3.1.0"
+ },
+ "_requiredBy": [
+ "/",
+ "/cacache",
+ "/libnpmhook",
+ "/libnpmhook/npm-registry-fetch"
+ ],
+ "_resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.1.0.tgz",
+ "_spec": "3.1.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/figgy-pudding/issues"
+ },
+ "dependencies": {},
+ "description": "Delicious, festive, cascading config/opts definitions",
+ "devDependencies": {
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.2",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/zkat/figgy-pudding#readme",
+ "keywords": [
+ "config",
+ "options",
+ "yummy"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "figgy-pudding",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/figgy-pudding.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "3.1.0"
+}
diff --git a/deps/npm/node_modules/find-npm-prefix/find-prefix.js b/deps/npm/node_modules/find-npm-prefix/find-prefix.js
index 089572ec11..d5e271322b 100644
--- a/deps/npm/node_modules/find-npm-prefix/find-prefix.js
+++ b/deps/npm/node_modules/find-npm-prefix/find-prefix.js
@@ -5,11 +5,9 @@ module.exports = findPrefix
const fs = require('fs')
const path = require('path')
-const Bluebird = require('bluebird')
-const readdir = Bluebird.promisify(fs.readdir)
function findPrefix (dir) {
- return Bluebird.try(() => {
+ return new Promise((resolve, reject) => {
dir = path.resolve(dir)
// this is a weird special case where an infinite recurse of
@@ -20,9 +18,11 @@ function findPrefix (dir) {
dir = path.dirname(dir)
walkedUp = true
}
- if (walkedUp) return dir
-
- return findPrefix_(dir)
+ if (walkedUp) {
+ resolve(dir)
+ } else {
+ resolve(findPrefix_(dir))
+ }
})
}
@@ -32,23 +32,25 @@ function findPrefix_ (dir, original) {
const parent = path.dirname(dir)
// this is a platform independent way of checking if we're in the root
// directory
- if (parent === dir) return original
-
- return readdir(dir).then(files => {
- if (files.indexOf('node_modules') !== -1 ||
- files.indexOf('package.json') !== -1) {
- return dir
- }
-
- return findPrefix_(parent, original)
- }, er => {
- // an error right away is a bad sign.
- // unless the prefix was simply a non
- // existent directory.
- if (er && dir === original && er.code !== 'ENOENT') {
- throw er
- } else {
- return original
- }
+ if (parent === dir) return Promise.resolve(original)
+
+ return new Promise((resolve, reject) => {
+ fs.readdir(dir, (err, files) => {
+ if (err) {
+ // an error right away is a bad sign.
+ // unless the prefix was simply a non
+ // existent directory.
+ if (err && dir === original && err.code !== 'ENOENT') {
+ reject(err)
+ } else {
+ resolve(original)
+ }
+ } else if (files.indexOf('node_modules') !== -1 ||
+ files.indexOf('package.json') !== -1) {
+ resolve(dir)
+ } else {
+ resolve(findPrefix_(parent, original))
+ }
+ })
})
}
diff --git a/deps/npm/node_modules/find-npm-prefix/package.json b/deps/npm/node_modules/find-npm-prefix/package.json
index 4007b90c3c..e9344afe54 100644
--- a/deps/npm/node_modules/find-npm-prefix/package.json
+++ b/deps/npm/node_modules/find-npm-prefix/package.json
@@ -1,27 +1,32 @@
{
- "_from": "find-npm-prefix@latest",
- "_id": "find-npm-prefix@1.0.1",
+ "_args": [
+ [
+ "find-npm-prefix@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "find-npm-prefix@1.0.2",
+ "_id": "find-npm-prefix@1.0.2",
"_inBundle": false,
- "_integrity": "sha512-I9R7ZnsjlKRvXBJjA1PE4wAkSc24YChoomWdEPTZgeB4DHxf87OutNGV5McFj6WwPghH97nZRejH58XvY6ga6Q==",
+ "_integrity": "sha512-KEftzJ+H90x6pcKtdXZEPsQse8/y/UnvzRKrOSQFprnrGaFuJ62fVkP34Iu2IYuMvyauCyoLTNkJZgrrGA2wkA==",
"_location": "/find-npm-prefix",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "find-npm-prefix@latest",
+ "raw": "find-npm-prefix@1.0.2",
"name": "find-npm-prefix",
"escapedName": "find-npm-prefix",
- "rawSpec": "latest",
+ "rawSpec": "1.0.2",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "1.0.2"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/libcipm"
],
- "_resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.1.tgz",
- "_shasum": "af0faa74e19294b3c8634bae0e91017bb5adfac2",
- "_spec": "find-npm-prefix@latest",
+ "_resolved": "https://registry.npmjs.org/find-npm-prefix/-/find-npm-prefix-1.0.2.tgz",
+ "_spec": "1.0.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -31,9 +36,7 @@
"bugs": {
"url": "https://github.com/npm/find-npm-prefix/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Find the npm project directory associated with for a given directory",
"devDependencies": {
"require-inject": "^1.4.2",
@@ -55,5 +58,5 @@
"scripts": {
"test": "standard && tap --100 test"
},
- "version": "1.0.1"
+ "version": "1.0.2"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/index.js b/deps/npm/node_modules/find-up/index.js
index 939c9553dc..939c9553dc 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/index.js
+++ b/deps/npm/node_modules/find-up/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/license b/deps/npm/node_modules/find-up/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/license
+++ b/deps/npm/node_modules/find-up/license
diff --git a/deps/npm/node_modules/find-up/package.json b/deps/npm/node_modules/find-up/package.json
new file mode 100644
index 0000000000..3647cbf41f
--- /dev/null
+++ b/deps/npm/node_modules/find-up/package.json
@@ -0,0 +1,87 @@
+{
+ "_from": "find-up@^2.1.0",
+ "_id": "find-up@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
+ "_location": "/find-up",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "find-up@^2.1.0",
+ "name": "find-up",
+ "escapedName": "find-up",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/pkg-conf",
+ "/read-pkg-up",
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "_shasum": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
+ "_spec": "find-up@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/find-up/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "locate-path": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Find a file by walking up parent directories",
+ "devDependencies": {
+ "ava": "*",
+ "tempfile": "^1.1.1",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/find-up#readme",
+ "keywords": [
+ "find",
+ "up",
+ "find-up",
+ "findup",
+ "look-up",
+ "look",
+ "file",
+ "search",
+ "match",
+ "package",
+ "resolve",
+ "parent",
+ "parents",
+ "folder",
+ "directory",
+ "dir",
+ "walk",
+ "walking",
+ "path"
+ ],
+ "license": "MIT",
+ "name": "find-up",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/find-up.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/readme.md b/deps/npm/node_modules/find-up/readme.md
index b5ad694552..b5ad694552 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/readme.md
+++ b/deps/npm/node_modules/find-up/readme.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.travis.yml b/deps/npm/node_modules/flush-write-stream/.travis.yml
index c042821703..c042821703 100644
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.travis.yml
+++ b/deps/npm/node_modules/flush-write-stream/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/LICENSE b/deps/npm/node_modules/flush-write-stream/LICENSE
index 66a4d2a149..66a4d2a149 100644
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/LICENSE
+++ b/deps/npm/node_modules/flush-write-stream/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/README.md b/deps/npm/node_modules/flush-write-stream/README.md
index 7ea7b699b8..7ea7b699b8 100644
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/README.md
+++ b/deps/npm/node_modules/flush-write-stream/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/example.js b/deps/npm/node_modules/flush-write-stream/example.js
index fa6b5dab25..fa6b5dab25 100644
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/example.js
+++ b/deps/npm/node_modules/flush-write-stream/example.js
diff --git a/deps/npm/node_modules/flush-write-stream/index.js b/deps/npm/node_modules/flush-write-stream/index.js
new file mode 100644
index 0000000000..d7c6209562
--- /dev/null
+++ b/deps/npm/node_modules/flush-write-stream/index.js
@@ -0,0 +1,54 @@
+var stream = require('readable-stream')
+var inherits = require('inherits')
+
+var SIGNAL_FLUSH =(Buffer.from && Buffer.from !== Uint8Array.from)
+ ? Buffer.from([0])
+ : new Buffer([0])
+
+module.exports = WriteStream
+
+function WriteStream (opts, write, flush) {
+ if (!(this instanceof WriteStream)) return new WriteStream(opts, write, flush)
+
+ if (typeof opts === 'function') {
+ flush = write
+ write = opts
+ opts = {}
+ }
+
+ stream.Writable.call(this, opts)
+
+ this.destroyed = false
+ this._worker = write || null
+ this._flush = flush || null
+}
+
+inherits(WriteStream, stream.Writable)
+
+WriteStream.obj = function (opts, worker, flush) {
+ if (typeof opts === 'function') return WriteStream.obj(null, opts, worker)
+ if (!opts) opts = {}
+ opts.objectMode = true
+ return new WriteStream(opts, worker, flush)
+}
+
+WriteStream.prototype._write = function (data, enc, cb) {
+ if (SIGNAL_FLUSH === data) this._flush(cb)
+ else this._worker(data, enc, cb)
+}
+
+WriteStream.prototype.end = function (data, enc, cb) {
+ if (!this._flush) return stream.Writable.prototype.end.apply(this, arguments)
+ if (typeof data === 'function') return this.end(null, null, data)
+ if (typeof enc === 'function') return this.end(data, null, enc)
+ if (data) this.write(data)
+ if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
+ return stream.Writable.prototype.end.call(this, cb)
+}
+
+WriteStream.prototype.destroy = function (err) {
+ if (this.destroyed) return
+ this.destroyed = true
+ if (err) this.emit('error', err)
+ this.emit('close')
+}
diff --git a/deps/npm/node_modules/flush-write-stream/package.json b/deps/npm/node_modules/flush-write-stream/package.json
new file mode 100644
index 0000000000..408f39da35
--- /dev/null
+++ b/deps/npm/node_modules/flush-write-stream/package.json
@@ -0,0 +1,57 @@
+{
+ "_from": "flush-write-stream@^1.0.0",
+ "_id": "flush-write-stream@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==",
+ "_location": "/flush-write-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "flush-write-stream@^1.0.0",
+ "name": "flush-write-stream",
+ "escapedName": "flush-write-stream",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz",
+ "_shasum": "c5d586ef38af6097650b49bc41b55fabb19f35bd",
+ "_spec": "flush-write-stream@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus",
+ "url": "@mafintosh"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/flush-write-stream/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.4"
+ },
+ "deprecated": false,
+ "description": "A write stream constructor that supports a flush function that is called before finish is emitted",
+ "devDependencies": {
+ "tape": "^4.2.2"
+ },
+ "homepage": "https://github.com/mafintosh/flush-write-stream",
+ "license": "MIT",
+ "main": "index.js",
+ "name": "flush-write-stream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mafintosh/flush-write-stream.git"
+ },
+ "scripts": {
+ "test": "tape test.js"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/test.js b/deps/npm/node_modules/flush-write-stream/test.js
index 6cd0c20e1f..6cd0c20e1f 100644
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/test.js
+++ b/deps/npm/node_modules/flush-write-stream/test.js
diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/LICENSE b/deps/npm/node_modules/forever-agent/LICENSE
index a4a9aee0c2..a4a9aee0c2 100644
--- a/deps/npm/node_modules/request/node_modules/forever-agent/LICENSE
+++ b/deps/npm/node_modules/forever-agent/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/README.md b/deps/npm/node_modules/forever-agent/README.md
index 9d5b66343c..9d5b66343c 100644
--- a/deps/npm/node_modules/request/node_modules/forever-agent/README.md
+++ b/deps/npm/node_modules/forever-agent/README.md
diff --git a/deps/npm/node_modules/forever-agent/index.js b/deps/npm/node_modules/forever-agent/index.js
new file mode 100644
index 0000000000..d7276fd973
--- /dev/null
+++ b/deps/npm/node_modules/forever-agent/index.js
@@ -0,0 +1,138 @@
+module.exports = ForeverAgent
+ForeverAgent.SSL = ForeverAgentSSL
+
+var util = require('util')
+ , Agent = require('http').Agent
+ , net = require('net')
+ , tls = require('tls')
+ , AgentSSL = require('https').Agent
+
+function getConnectionName(host, port) {
+ var name = ''
+ if (typeof host === 'string') {
+ name = host + ':' + port
+ } else {
+ // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name.
+ name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':')
+ }
+ return name
+}
+
+function ForeverAgent(options) {
+ var self = this
+ self.options = options || {}
+ self.requests = {}
+ self.sockets = {}
+ self.freeSockets = {}
+ self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets
+ self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets
+ self.on('free', function(socket, host, port) {
+ var name = getConnectionName(host, port)
+
+ if (self.requests[name] && self.requests[name].length) {
+ self.requests[name].shift().onSocket(socket)
+ } else if (self.sockets[name].length < self.minSockets) {
+ if (!self.freeSockets[name]) self.freeSockets[name] = []
+ self.freeSockets[name].push(socket)
+
+ // if an error happens while we don't use the socket anyway, meh, throw the socket away
+ var onIdleError = function() {
+ socket.destroy()
+ }
+ socket._onIdleError = onIdleError
+ socket.on('error', onIdleError)
+ } else {
+ // If there are no pending requests just destroy the
+ // socket and it will get removed from the pool. This
+ // gets us out of timeout issues and allows us to
+ // default to Connection:keep-alive.
+ socket.destroy()
+ }
+ })
+
+}
+util.inherits(ForeverAgent, Agent)
+
+ForeverAgent.defaultMinSockets = 5
+
+
+ForeverAgent.prototype.createConnection = net.createConnection
+ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest
+ForeverAgent.prototype.addRequest = function(req, host, port) {
+ var name = getConnectionName(host, port)
+
+ if (typeof host !== 'string') {
+ var options = host
+ port = options.port
+ host = options.host
+ }
+
+ if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) {
+ var idleSocket = this.freeSockets[name].pop()
+ idleSocket.removeListener('error', idleSocket._onIdleError)
+ delete idleSocket._onIdleError
+ req._reusedSocket = true
+ req.onSocket(idleSocket)
+ } else {
+ this.addRequestNoreuse(req, host, port)
+ }
+}
+
+ForeverAgent.prototype.removeSocket = function(s, name, host, port) {
+ if (this.sockets[name]) {
+ var index = this.sockets[name].indexOf(s)
+ if (index !== -1) {
+ this.sockets[name].splice(index, 1)
+ }
+ } else if (this.sockets[name] && this.sockets[name].length === 0) {
+ // don't leak
+ delete this.sockets[name]
+ delete this.requests[name]
+ }
+
+ if (this.freeSockets[name]) {
+ var index = this.freeSockets[name].indexOf(s)
+ if (index !== -1) {
+ this.freeSockets[name].splice(index, 1)
+ if (this.freeSockets[name].length === 0) {
+ delete this.freeSockets[name]
+ }
+ }
+ }
+
+ if (this.requests[name] && this.requests[name].length) {
+ // If we have pending requests and a socket gets closed a new one
+ // needs to be created to take over in the pool for the one that closed.
+ this.createSocket(name, host, port).emit('free')
+ }
+}
+
+function ForeverAgentSSL (options) {
+ ForeverAgent.call(this, options)
+}
+util.inherits(ForeverAgentSSL, ForeverAgent)
+
+ForeverAgentSSL.prototype.createConnection = createConnectionSSL
+ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest
+
+function createConnectionSSL (port, host, options) {
+ if (typeof port === 'object') {
+ options = port;
+ } else if (typeof host === 'object') {
+ options = host;
+ } else if (typeof options === 'object') {
+ options = options;
+ } else {
+ options = {};
+ }
+
+ if (typeof port === 'number') {
+ options.port = port;
+ }
+
+ if (typeof host === 'string') {
+ options.host = host;
+ }
+
+ return tls.connect(options);
+}
diff --git a/deps/npm/node_modules/forever-agent/package.json b/deps/npm/node_modules/forever-agent/package.json
new file mode 100644
index 0000000000..e338b5721c
--- /dev/null
+++ b/deps/npm/node_modules/forever-agent/package.json
@@ -0,0 +1,50 @@
+{
+ "_from": "forever-agent@~0.6.1",
+ "_id": "forever-agent@0.6.1",
+ "_inBundle": false,
+ "_integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+ "_location": "/forever-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "forever-agent@~0.6.1",
+ "name": "forever-agent",
+ "escapedName": "forever-agent",
+ "rawSpec": "~0.6.1",
+ "saveSpec": null,
+ "fetchSpec": "~0.6.1"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "_shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91",
+ "_spec": "forever-agent@~0.6.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Mikeal Rogers",
+ "email": "mikeal.rogers@gmail.com",
+ "url": "http://www.futurealoof.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mikeal/forever-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.",
+ "devDependencies": {},
+ "engines": {
+ "node": "*"
+ },
+ "homepage": "https://github.com/mikeal/forever-agent#readme",
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "name": "forever-agent",
+ "optionalDependencies": {},
+ "repository": {
+ "url": "git+https://github.com/mikeal/forever-agent.git"
+ },
+ "version": "0.6.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/License b/deps/npm/node_modules/form-data/License
index c7ff12a2f8..c7ff12a2f8 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/License
+++ b/deps/npm/node_modules/form-data/License
diff --git a/deps/npm/node_modules/form-data/README.md b/deps/npm/node_modules/form-data/README.md
new file mode 100644
index 0000000000..cb421fbb40
--- /dev/null
+++ b/deps/npm/node_modules/form-data/README.md
@@ -0,0 +1,234 @@
+# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data)
+
+A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.
+
+The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].
+
+[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface
+
+[![Linux Build](https://img.shields.io/travis/form-data/form-data/v2.3.2.svg?label=linux:4.x-9.x)](https://travis-ci.org/form-data/form-data)
+[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v2.3.2.svg?label=macos:4.x-9.x)](https://travis-ci.org/form-data/form-data)
+[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/v2.3.2.svg?label=windows:4.x-9.x)](https://ci.appveyor.com/project/alexindigo/form-data)
+
+[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v2.3.2.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master)
+[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data)
+[![bitHound Overall Score](https://www.bithound.io/github/form-data/form-data/badges/score.svg)](https://www.bithound.io/github/form-data/form-data)
+
+## Install
+
+```
+npm install --save form-data
+```
+
+## Usage
+
+In this example we are constructing a form with 3 fields that contain a string,
+a buffer and a file stream.
+
+``` javascript
+var FormData = require('form-data');
+var fs = require('fs');
+
+var form = new FormData();
+form.append('my_field', 'my value');
+form.append('my_buffer', new Buffer(10));
+form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
+```
+
+Also you can use http-response stream:
+
+``` javascript
+var FormData = require('form-data');
+var http = require('http');
+
+var form = new FormData();
+
+http.request('http://nodejs.org/images/logo.png', function(response) {
+ form.append('my_field', 'my value');
+ form.append('my_buffer', new Buffer(10));
+ form.append('my_logo', response);
+});
+```
+
+Or @mikeal's [request](https://github.com/request/request) stream:
+
+``` javascript
+var FormData = require('form-data');
+var request = require('request');
+
+var form = new FormData();
+
+form.append('my_field', 'my value');
+form.append('my_buffer', new Buffer(10));
+form.append('my_logo', request('http://nodejs.org/images/logo.png'));
+```
+
+In order to submit this form to a web application, call ```submit(url, [callback])``` method:
+
+``` javascript
+form.submit('http://example.org/', function(err, res) {
+ // res ā€“ response object (http.IncomingMessage) //
+ res.resume();
+});
+
+```
+
+For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.
+
+### Custom options
+
+You can provide custom options, such as `maxDataSize`:
+
+``` javascript
+var FormData = require('form-data');
+
+var form = new FormData({ maxDataSize: 20971520 });
+form.append('my_field', 'my value');
+form.append('my_buffer', /* something big */);
+```
+
+List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15)
+
+### Alternative submission methods
+
+You can use node's http client interface:
+
+``` javascript
+var http = require('http');
+
+var request = http.request({
+ method: 'post',
+ host: 'example.org',
+ path: '/upload',
+ headers: form.getHeaders()
+});
+
+form.pipe(request);
+
+request.on('response', function(res) {
+ console.log(res.statusCode);
+});
+```
+
+Or if you would prefer the `'Content-Length'` header to be set for you:
+
+``` javascript
+form.submit('example.org/upload', function(err, res) {
+ console.log(res.statusCode);
+});
+```
+
+To use custom headers and pre-known length in parts:
+
+``` javascript
+var CRLF = '\r\n';
+var form = new FormData();
+
+var options = {
+ header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,
+ knownLength: 1
+};
+
+form.append('my_buffer', buffer, options);
+
+form.submit('http://example.com/', function(err, res) {
+ if (err) throw err;
+ console.log('Done');
+});
+```
+
+Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually:
+
+``` javascript
+someModule.stream(function(err, stdout, stderr) {
+ if (err) throw err;
+
+ var form = new FormData();
+
+ form.append('file', stdout, {
+ filename: 'unicycle.jpg', // ... or:
+ filepath: 'photos/toys/unicycle.jpg',
+ contentType: 'image/jpeg',
+ knownLength: 19806
+ });
+
+ form.submit('http://example.com/', function(err, res) {
+ if (err) throw err;
+ console.log('Done');
+ });
+});
+```
+
+The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory).
+
+For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:
+
+``` javascript
+form.submit({
+ host: 'example.com',
+ path: '/probably.php?extra=params',
+ auth: 'username:password'
+}, function(err, res) {
+ console.log(res.statusCode);
+});
+```
+
+In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:
+
+``` javascript
+form.submit({
+ host: 'example.com',
+ path: '/surelynot.php',
+ headers: {'x-test-header': 'test-header-value'}
+}, function(err, res) {
+ console.log(res.statusCode);
+});
+```
+
+### Integration with other libraries
+
+#### Request
+
+Form submission using [request](https://github.com/request/request):
+
+```javascript
+var formData = {
+ my_field: 'my_value',
+ my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
+};
+
+request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {
+ if (err) {
+ return console.error('upload failed:', err);
+ }
+ console.log('Upload successful! Server responded with:', body);
+});
+```
+
+For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads).
+
+#### node-fetch
+
+You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch):
+
+```javascript
+var form = new FormData();
+
+form.append('a', 1);
+
+fetch('http://example.com', { method: 'POST', body: form })
+ .then(function(res) {
+ return res.json();
+ }).then(function(json) {
+ console.log(json);
+ });
+```
+
+## Notes
+
+- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround.
+- Starting version `2.x` FormData has dropped support for `node@0.10.x`.
+
+## License
+
+Form-Data is released under the [MIT](License) license.
diff --git a/deps/npm/node_modules/request/node_modules/form-data/README.md.bak b/deps/npm/node_modules/form-data/README.md.bak
index 927d08289d..0524d60288 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/README.md.bak
+++ b/deps/npm/node_modules/form-data/README.md.bak
@@ -6,9 +6,9 @@ The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface]
[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface
-[![Linux Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=linux:0.12-8.x)](https://travis-ci.org/form-data/form-data)
-[![MacOS Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=macos:0.12-8.x)](https://travis-ci.org/form-data/form-data)
-[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/master.svg?label=windows:0.12-8.x)](https://ci.appveyor.com/project/alexindigo/form-data)
+[![Linux Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=linux:4.x-9.x)](https://travis-ci.org/form-data/form-data)
+[![MacOS Build](https://img.shields.io/travis/form-data/form-data/master.svg?label=macos:4.x-9.x)](https://travis-ci.org/form-data/form-data)
+[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/master.svg?label=windows:4.x-9.x)](https://ci.appveyor.com/project/alexindigo/form-data)
[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/master.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master)
[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data)
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js b/deps/npm/node_modules/form-data/lib/browser.js
index 09e7c70e6e..09e7c70e6e 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/browser.js
+++ b/deps/npm/node_modules/form-data/lib/browser.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js b/deps/npm/node_modules/form-data/lib/form_data.js
index 3a1bb82b11..3a1bb82b11 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/form_data.js
+++ b/deps/npm/node_modules/form-data/lib/form_data.js
diff --git a/deps/npm/node_modules/request/node_modules/form-data/lib/populate.js b/deps/npm/node_modules/form-data/lib/populate.js
index 4d35738dd5..4d35738dd5 100644
--- a/deps/npm/node_modules/request/node_modules/form-data/lib/populate.js
+++ b/deps/npm/node_modules/form-data/lib/populate.js
diff --git a/deps/npm/node_modules/form-data/package.json b/deps/npm/node_modules/form-data/package.json
new file mode 100644
index 0000000000..f5ac03c1bb
--- /dev/null
+++ b/deps/npm/node_modules/form-data/package.json
@@ -0,0 +1,98 @@
+{
+ "_from": "form-data@~2.3.1",
+ "_id": "form-data@2.3.2",
+ "_inBundle": false,
+ "_integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
+ "_location": "/form-data",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "form-data@~2.3.1",
+ "name": "form-data",
+ "escapedName": "form-data",
+ "rawSpec": "~2.3.1",
+ "saveSpec": null,
+ "fetchSpec": "~2.3.1"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
+ "_shasum": "4970498be604c20c005d4f5c23aecd21d6b49099",
+ "_spec": "form-data@~2.3.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Felix Geisendƶrfer",
+ "email": "felix@debuggable.com",
+ "url": "http://debuggable.com/"
+ },
+ "browser": "./lib/browser",
+ "bugs": {
+ "url": "https://github.com/form-data/form-data/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "deprecated": false,
+ "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
+ "devDependencies": {
+ "browserify": "^13.1.1",
+ "browserify-istanbul": "^2.0.0",
+ "coveralls": "^2.11.14",
+ "cross-spawn": "^4.0.2",
+ "eslint": "^3.9.1",
+ "fake": "^0.2.2",
+ "far": "^0.0.7",
+ "formidable": "^1.0.17",
+ "in-publish": "^2.0.0",
+ "is-node-modern": "^1.0.0",
+ "istanbul": "^0.4.5",
+ "obake": "^0.1.2",
+ "phantomjs-prebuilt": "^2.1.13",
+ "pkgfiles": "^2.3.0",
+ "pre-commit": "^1.1.3",
+ "request": "2.76.0",
+ "rimraf": "^2.5.4",
+ "tape": "^4.6.2"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ },
+ "homepage": "https://github.com/form-data/form-data#readme",
+ "license": "MIT",
+ "main": "./lib/form_data",
+ "name": "form-data",
+ "pre-commit": [
+ "lint",
+ "ci-test",
+ "check"
+ ],
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/form-data/form-data.git"
+ },
+ "scripts": {
+ "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage",
+ "check": "istanbul check-coverage coverage/coverage*.json",
+ "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6",
+ "ci-test": "npm run test && npm run browser && npm run report",
+ "debug": "verbose=1 ./test/run.js",
+ "files": "pkgfiles --sort=name",
+ "get-version": "node -e \"console.log(require('./package.json').version)\"",
+ "lint": "eslint lib/*.js test/*.js test/integration/*.js",
+ "postpublish": "npm run restore-readme",
+ "posttest": "istanbul report lcov text",
+ "predebug": "rimraf coverage test/tmp",
+ "prepublish": "in-publish && npm run update-readme || not-in-publish",
+ "pretest": "rimraf coverage test/tmp",
+ "report": "istanbul report lcov text",
+ "restore-readme": "mv README.md.bak README.md",
+ "test": "istanbul cover test/run.js",
+ "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md"
+ },
+ "version": "2.3.2"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/.travis.yml b/deps/npm/node_modules/from2/.travis.yml
index b03ffabcab..b03ffabcab 100644
--- a/deps/npm/node_modules/mississippi/node_modules/from2/.travis.yml
+++ b/deps/npm/node_modules/from2/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/LICENSE.md b/deps/npm/node_modules/from2/LICENSE.md
index 146cb32a7d..146cb32a7d 100644
--- a/deps/npm/node_modules/mississippi/node_modules/from2/LICENSE.md
+++ b/deps/npm/node_modules/from2/LICENSE.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/README.md b/deps/npm/node_modules/from2/README.md
index 3e041a412a..3e041a412a 100644
--- a/deps/npm/node_modules/mississippi/node_modules/from2/README.md
+++ b/deps/npm/node_modules/from2/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/index.js b/deps/npm/node_modules/from2/index.js
index cb200c610a..cb200c610a 100644
--- a/deps/npm/node_modules/mississippi/node_modules/from2/index.js
+++ b/deps/npm/node_modules/from2/index.js
diff --git a/deps/npm/node_modules/from2/package.json b/deps/npm/node_modules/from2/package.json
new file mode 100644
index 0000000000..d5431768f0
--- /dev/null
+++ b/deps/npm/node_modules/from2/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "from2@^2.1.0",
+ "_id": "from2@2.3.0",
+ "_inBundle": false,
+ "_integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
+ "_location": "/from2",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "from2@^2.1.0",
+ "name": "from2",
+ "escapedName": "from2",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
+ "_shasum": "8bfb5502bde4a4d36cfdeea007fcca21d7e382af",
+ "_spec": "from2@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Hugh Kennedy",
+ "email": "hughskennedy@gmail.com",
+ "url": "http://hughsk.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/hughsk/from2/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Mathias Buus",
+ "email": "mathiasbuus@gmail.com"
+ }
+ ],
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Convenience wrapper for ReadableStream, with an API lifted from \"from\" and \"through2\"",
+ "devDependencies": {
+ "tape": "^4.0.0"
+ },
+ "homepage": "https://github.com/hughsk/from2",
+ "keywords": [
+ "from",
+ "stream",
+ "readable",
+ "pull",
+ "convenience",
+ "wrapper"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "from2",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/hughsk/from2.git"
+ },
+ "scripts": {
+ "test": "node test"
+ },
+ "version": "2.3.0"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/test.js b/deps/npm/node_modules/from2/test.js
index 150429b0f7..150429b0f7 100644
--- a/deps/npm/node_modules/mississippi/node_modules/from2/test.js
+++ b/deps/npm/node_modules/from2/test.js
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/LICENSE b/deps/npm/node_modules/fs-minipass/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/LICENSE
+++ b/deps/npm/node_modules/fs-minipass/LICENSE
diff --git a/deps/npm/node_modules/fs-minipass/README.md b/deps/npm/node_modules/fs-minipass/README.md
new file mode 100644
index 0000000000..1e61241cf0
--- /dev/null
+++ b/deps/npm/node_modules/fs-minipass/README.md
@@ -0,0 +1,70 @@
+# fs-minipass
+
+Filesystem streams based on [minipass](http://npm.im/minipass).
+
+4 classes are exported:
+
+- ReadStream
+- ReadStreamSync
+- WriteStream
+- WriteStreamSync
+
+When using `ReadStreamSync`, all of the data is made available
+immediately upon consuming the stream. Nothing is buffered in memory
+when the stream is constructed. If the stream is piped to a writer,
+then it will synchronously `read()` and emit data into the writer as
+fast as the writer can consume it. (That is, it will respect
+backpressure.) If you call `stream.read()` then it will read the
+entire file and return the contents.
+
+When using `WriteStreamSync`, every write is flushed to the file
+synchronously. If your writes all come in a single tick, then it'll
+write it all out in a single tick. It's as synchronous as you are.
+
+The async versions work much like their node builtin counterparts,
+with the exception of introducing significantly less Stream machinery
+overhead.
+
+## USAGE
+
+It's just streams, you pipe them or read() them or write() to them.
+
+```js
+const fsm = require('fs-minipass')
+const readStream = new fsm.ReadStream('file.txt')
+const writeStream = new fsm.WriteStream('output.txt')
+writeStream.write('some file header or whatever\n')
+readStream.pipe(writeStream)
+```
+
+## ReadStream(path, options)
+
+Path string is required, but somewhat irrelevant if an open file
+descriptor is passed in as an option.
+
+Options:
+
+- `fd` Pass in a numeric file descriptor, if the file is already open.
+- `readSize` The size of reads to do, defaults to 16MB
+- `size` The size of the file, if known. Prevents zero-byte read()
+ call at the end.
+- `autoClose` Set to `false` to prevent the file descriptor from being
+ closed when the file is done being read.
+
+## WriteStream(path, options)
+
+Path string is required, but somewhat irrelevant if an open file
+descriptor is passed in as an option.
+
+Options:
+
+- `fd` Pass in a numeric file descriptor, if the file is already open.
+- `mode` The mode to create the file with. Defaults to `0o666`.
+- `start` The position in the file to start reading. If not
+ specified, then the file will start writing at position zero, and be
+ truncated by default.
+- `autoClose` Set to `false` to prevent the file descriptor from being
+ closed when the stream is ended.
+- `flags` Flags to use when opening the file. Irrelevant if `fd` is
+ passed in, since file won't be opened in that case. Defaults to
+ `'a'` if a `pos` is specified, or `'w'` otherwise.
diff --git a/deps/npm/node_modules/fs-minipass/index.js b/deps/npm/node_modules/fs-minipass/index.js
new file mode 100644
index 0000000000..0f15c810eb
--- /dev/null
+++ b/deps/npm/node_modules/fs-minipass/index.js
@@ -0,0 +1,386 @@
+'use strict'
+const MiniPass = require('minipass')
+const EE = require('events').EventEmitter
+const fs = require('fs')
+
+// for writev
+const binding = process.binding('fs')
+const writeBuffers = binding.writeBuffers
+const FSReqWrap = binding.FSReqWrap
+
+const _autoClose = Symbol('_autoClose')
+const _close = Symbol('_close')
+const _ended = Symbol('_ended')
+const _fd = Symbol('_fd')
+const _finished = Symbol('_finished')
+const _flags = Symbol('_flags')
+const _flush = Symbol('_flush')
+const _handleChunk = Symbol('_handleChunk')
+const _makeBuf = Symbol('_makeBuf')
+const _mode = Symbol('_mode')
+const _needDrain = Symbol('_needDrain')
+const _onerror = Symbol('_onerror')
+const _onopen = Symbol('_onopen')
+const _onread = Symbol('_onread')
+const _onwrite = Symbol('_onwrite')
+const _open = Symbol('_open')
+const _path = Symbol('_path')
+const _pos = Symbol('_pos')
+const _queue = Symbol('_queue')
+const _read = Symbol('_read')
+const _readSize = Symbol('_readSize')
+const _reading = Symbol('_reading')
+const _remain = Symbol('_remain')
+const _size = Symbol('_size')
+const _write = Symbol('_write')
+const _writing = Symbol('_writing')
+const _defaultFlag = Symbol('_defaultFlag')
+
+class ReadStream extends MiniPass {
+ constructor (path, opt) {
+ opt = opt || {}
+ super(opt)
+
+ this.writable = false
+
+ if (typeof path !== 'string')
+ throw new TypeError('path must be a string')
+
+ this[_fd] = typeof opt.fd === 'number' ? opt.fd : null
+ this[_path] = path
+ this[_readSize] = opt.readSize || 16*1024*1024
+ this[_reading] = false
+ this[_size] = typeof opt.size === 'number' ? opt.size : Infinity
+ this[_remain] = this[_size]
+ this[_autoClose] = typeof opt.autoClose === 'boolean' ?
+ opt.autoClose : true
+
+ if (typeof this[_fd] === 'number')
+ this[_read]()
+ else
+ this[_open]()
+ }
+
+ get fd () { return this[_fd] }
+ get path () { return this[_path] }
+
+ write () {
+ throw new TypeError('this is a readable stream')
+ }
+
+ end () {
+ throw new TypeError('this is a readable stream')
+ }
+
+ [_open] () {
+ fs.open(this[_path], 'r', (er, fd) => this[_onopen](er, fd))
+ }
+
+ [_onopen] (er, fd) {
+ if (er)
+ this[_onerror](er)
+ else {
+ this[_fd] = fd
+ this.emit('open', fd)
+ this[_read]()
+ }
+ }
+
+ [_makeBuf] () {
+ return Buffer.allocUnsafe(Math.min(this[_readSize], this[_remain]))
+ }
+
+ [_read] () {
+ if (!this[_reading]) {
+ this[_reading] = true
+ const buf = this[_makeBuf]()
+ /* istanbul ignore if */
+ if (buf.length === 0) return process.nextTick(() => this[_onread](null, 0, buf))
+ fs.read(this[_fd], buf, 0, buf.length, null, (er, br, buf) =>
+ this[_onread](er, br, buf))
+ }
+ }
+
+ [_onread] (er, br, buf) {
+ this[_reading] = false
+ if (er)
+ this[_onerror](er)
+ else if (this[_handleChunk](br, buf))
+ this[_read]()
+ }
+
+ [_close] () {
+ if (this[_autoClose] && typeof this[_fd] === 'number') {
+ fs.close(this[_fd], _ => this.emit('close'))
+ this[_fd] = null
+ }
+ }
+
+ [_onerror] (er) {
+ this[_reading] = true
+ this[_close]()
+ this.emit('error', er)
+ }
+
+ [_handleChunk] (br, buf) {
+ let ret = false
+ // no effect if infinite
+ this[_remain] -= br
+ if (br > 0)
+ ret = super.write(br < buf.length ? buf.slice(0, br) : buf)
+
+ if (br === 0 || this[_remain] <= 0) {
+ ret = false
+ this[_close]()
+ super.end()
+ }
+
+ return ret
+ }
+
+ emit (ev, data) {
+ switch (ev) {
+ case 'prefinish':
+ case 'finish':
+ break
+
+ case 'drain':
+ if (typeof this[_fd] === 'number')
+ this[_read]()
+ break
+
+ default:
+ return super.emit(ev, data)
+ }
+ }
+}
+
+class ReadStreamSync extends ReadStream {
+ [_open] () {
+ let threw = true
+ try {
+ this[_onopen](null, fs.openSync(this[_path], 'r'))
+ threw = false
+ } finally {
+ if (threw)
+ this[_close]()
+ }
+ }
+
+ [_read] () {
+ let threw = true
+ try {
+ if (!this[_reading]) {
+ this[_reading] = true
+ do {
+ const buf = this[_makeBuf]()
+ /* istanbul ignore next */
+ const br = buf.length === 0 ? 0 : fs.readSync(this[_fd], buf, 0, buf.length, null)
+ if (!this[_handleChunk](br, buf))
+ break
+ } while (true)
+ this[_reading] = false
+ }
+ threw = false
+ } finally {
+ if (threw)
+ this[_close]()
+ }
+ }
+
+ [_close] () {
+ if (this[_autoClose] && typeof this[_fd] === 'number') {
+ try {
+ fs.closeSync(this[_fd])
+ } catch (er) {}
+ this[_fd] = null
+ this.emit('close')
+ }
+ }
+}
+
+class WriteStream extends EE {
+ constructor (path, opt) {
+ opt = opt || {}
+ super(opt)
+ this.readable = false
+ this[_writing] = false
+ this[_ended] = false
+ this[_needDrain] = false
+ this[_queue] = []
+ this[_path] = path
+ this[_fd] = typeof opt.fd === 'number' ? opt.fd : null
+ this[_mode] = opt.mode === undefined ? 0o666 : opt.mode
+ this[_pos] = typeof opt.start === 'number' ? opt.start : null
+ this[_autoClose] = typeof opt.autoClose === 'boolean' ?
+ opt.autoClose : true
+
+ // truncating makes no sense when writing into the middle
+ const defaultFlag = this[_pos] !== null ? 'r+' : 'w'
+ this[_defaultFlag] = opt.flags === undefined
+ this[_flags] = this[_defaultFlag] ? defaultFlag : opt.flags
+
+ if (this[_fd] === null)
+ this[_open]()
+ }
+
+ get fd () { return this[_fd] }
+ get path () { return this[_path] }
+
+ [_onerror] (er) {
+ this[_close]()
+ this[_writing] = true
+ this.emit('error', er)
+ }
+
+ [_open] () {
+ fs.open(this[_path], this[_flags], this[_mode],
+ (er, fd) => this[_onopen](er, fd))
+ }
+
+ [_onopen] (er, fd) {
+ if (this[_defaultFlag] &&
+ this[_flags] === 'r+' &&
+ er && er.code === 'ENOENT') {
+ this[_flags] = 'w'
+ this[_open]()
+ } else if (er)
+ this[_onerror](er)
+ else {
+ this[_fd] = fd
+ this.emit('open', fd)
+ this[_flush]()
+ }
+ }
+
+ end (buf, enc) {
+ if (buf)
+ this.write(buf, enc)
+
+ this[_ended] = true
+
+ // synthetic after-write logic, where drain/finish live
+ if (!this[_writing] && !this[_queue].length &&
+ typeof this[_fd] === 'number')
+ this[_onwrite](null, 0)
+ }
+
+ write (buf, enc) {
+ if (typeof buf === 'string')
+ buf = new Buffer(buf, enc)
+
+ if (this[_ended]) {
+ this.emit('error', new Error('write() after end()'))
+ return false
+ }
+
+ if (this[_fd] === null || this[_writing] || this[_queue].length) {
+ this[_queue].push(buf)
+ this[_needDrain] = true
+ return false
+ }
+
+ this[_writing] = true
+ this[_write](buf)
+ return true
+ }
+
+ [_write] (buf) {
+ fs.write(this[_fd], buf, 0, buf.length, this[_pos], (er, bw) =>
+ this[_onwrite](er, bw))
+ }
+
+ [_onwrite] (er, bw) {
+ if (er)
+ this[_onerror](er)
+ else {
+ if (this[_pos] !== null)
+ this[_pos] += bw
+ if (this[_queue].length)
+ this[_flush]()
+ else {
+ this[_writing] = false
+
+ if (this[_ended] && !this[_finished]) {
+ this[_finished] = true
+ this[_close]()
+ this.emit('finish')
+ } else if (this[_needDrain]) {
+ this[_needDrain] = false
+ this.emit('drain')
+ }
+ }
+ }
+ }
+
+ [_flush] () {
+ if (this[_queue].length === 0) {
+ if (this[_ended])
+ this[_onwrite](null, 0)
+ } else if (this[_queue].length === 1)
+ this[_write](this[_queue].pop())
+ else {
+ const iovec = this[_queue]
+ this[_queue] = []
+ writev(this[_fd], iovec, this[_pos],
+ (er, bw) => this[_onwrite](er, bw))
+ }
+ }
+
+ [_close] () {
+ if (this[_autoClose] && typeof this[_fd] === 'number') {
+ fs.close(this[_fd], _ => this.emit('close'))
+ this[_fd] = null
+ }
+ }
+}
+
+class WriteStreamSync extends WriteStream {
+ [_open] () {
+ let fd
+ try {
+ fd = fs.openSync(this[_path], this[_flags], this[_mode])
+ } catch (er) {
+ if (this[_defaultFlag] &&
+ this[_flags] === 'r+' &&
+ er && er.code === 'ENOENT') {
+ this[_flags] = 'w'
+ return this[_open]()
+ } else
+ throw er
+ }
+ this[_onopen](null, fd)
+ }
+
+ [_close] () {
+ if (this[_autoClose] && typeof this[_fd] === 'number') {
+ try {
+ fs.closeSync(this[_fd])
+ } catch (er) {}
+ this[_fd] = null
+ this.emit('close')
+ }
+ }
+
+ [_write] (buf) {
+ try {
+ this[_onwrite](null,
+ fs.writeSync(this[_fd], buf, 0, buf.length, this[_pos]))
+ } catch (er) {
+ this[_onwrite](er, 0)
+ }
+ }
+}
+
+const writev = (fd, iovec, pos, cb) => {
+ const done = (er, bw) => cb(er, bw, iovec)
+ const req = new FSReqWrap()
+ req.oncomplete = done
+ binding.writeBuffers(fd, iovec, pos, req)
+}
+
+exports.ReadStream = ReadStream
+exports.ReadStreamSync = ReadStreamSync
+
+exports.WriteStream = WriteStream
+exports.WriteStreamSync = WriteStreamSync
diff --git a/deps/npm/node_modules/fs-minipass/package.json b/deps/npm/node_modules/fs-minipass/package.json
new file mode 100644
index 0000000000..c2f925e889
--- /dev/null
+++ b/deps/npm/node_modules/fs-minipass/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "fs-minipass@^1.2.5",
+ "_id": "fs-minipass@1.2.5",
+ "_inBundle": false,
+ "_integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
+ "_location": "/fs-minipass",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "fs-minipass@^1.2.5",
+ "name": "fs-minipass",
+ "escapedName": "fs-minipass",
+ "rawSpec": "^1.2.5",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.5"
+ },
+ "_requiredBy": [
+ "/tar"
+ ],
+ "_resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
+ "_shasum": "06c277218454ec288df77ada54a03b8702aacb9d",
+ "_spec": "fs-minipass@^1.2.5",
+ "_where": "/Users/rebecca/code/npm/node_modules/tar",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/fs-minipass/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "minipass": "^2.2.1"
+ },
+ "deprecated": false,
+ "description": "fs read and write streams based on minipass",
+ "devDependencies": {
+ "mutate-fs": "^2.0.1",
+ "tap": "^10.7.2"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/npm/fs-minipass#readme",
+ "keywords": [],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "fs-minipass",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/fs-minipass.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100 -J"
+ },
+ "version": "1.2.5"
+}
diff --git a/deps/npm/node_modules/fs-vacuum/package.json b/deps/npm/node_modules/fs-vacuum/package.json
index e05972ae68..69529764dd 100644
--- a/deps/npm/node_modules/fs-vacuum/package.json
+++ b/deps/npm/node_modules/fs-vacuum/package.json
@@ -1,42 +1,45 @@
{
- "_from": "fs-vacuum@~1.2.10",
+ "_args": [
+ [
+ "fs-vacuum@1.2.10",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "fs-vacuum@1.2.10",
"_id": "fs-vacuum@1.2.10",
+ "_inBundle": false,
"_integrity": "sha1-t2Kb7AekAxolSP35n17PHMizHjY=",
"_location": "/fs-vacuum",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "fs-vacuum@~1.2.10",
+ "raw": "fs-vacuum@1.2.10",
"name": "fs-vacuum",
"escapedName": "fs-vacuum",
- "rawSpec": "~1.2.10",
+ "rawSpec": "1.2.10",
"saveSpec": null,
- "fetchSpec": "~1.2.10"
+ "fetchSpec": "1.2.10"
},
"_requiredBy": [
- "/"
+ "/",
+ "/gentle-fs"
],
"_resolved": "https://registry.npmjs.org/fs-vacuum/-/fs-vacuum-1.2.10.tgz",
- "_shasum": "b7629bec07a4031a2548fdf99f5ecf1cc8b31e36",
- "_shrinkwrap": null,
- "_spec": "fs-vacuum@~1.2.10",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.2.10",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Forrest L Norvell",
"email": "ogd@aoaioxxysz.net"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/fs-vacuum/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.2",
"path-is-inside": "^1.0.1",
"rimraf": "^2.5.2"
},
- "deprecated": false,
"description": "recursively remove empty directories -- to a point",
"devDependencies": {
"errno": "~0.1.0",
@@ -55,8 +58,6 @@
"license": "ISC",
"main": "vacuum.js",
"name": "fs-vacuum",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/fs-vacuum.git"
diff --git a/deps/npm/node_modules/iferr/.npmignore b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/iferr/.npmignore
+++ b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/.npmignore
diff --git a/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/LICENSE b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/LICENSE
new file mode 100644
index 0000000000..19d5f4bce5
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/node_modules/iferr/README.md b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/README.md
new file mode 100644
index 0000000000..0940763fa9
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/node_modules/iferr/index.coffee b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.coffee
new file mode 100644
index 0000000000..da6d00719f
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/node_modules/iferr/index.js b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/index.js
new file mode 100644
index 0000000000..78fce3d2b0
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/node_modules/iferr/package.json b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/package.json
new file mode 100644
index 0000000000..5ac59fc8ee
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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": "/fs-write-stream-atomic/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": [
+ "/fs-write-stream-atomic"
+ ],
+ "_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/fs-write-stream-atomic",
+ "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/fs-write-stream-atomic/node_modules/iferr/test/index.coffee b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/index.coffee
new file mode 100644
index 0000000000..be0bc56fdf
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/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/fs-write-stream-atomic/node_modules/iferr/test/mocha.opts b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/mocha.opts
new file mode 100644
index 0000000000..019defcf15
--- /dev/null
+++ b/deps/npm/node_modules/fs-write-stream-atomic/node_modules/iferr/test/mocha.opts
@@ -0,0 +1,2 @@
+--compilers coffee:coffee-script/register
+--reporter spec
diff --git a/deps/npm/node_modules/fs-write-stream-atomic/package.json b/deps/npm/node_modules/fs-write-stream-atomic/package.json
index 2e43e5d327..d690123975 100644
--- a/deps/npm/node_modules/fs-write-stream-atomic/package.json
+++ b/deps/npm/node_modules/fs-write-stream-atomic/package.json
@@ -1,46 +1,48 @@
{
- "_from": "fs-write-stream-atomic@~1.0.10",
+ "_args": [
+ [
+ "fs-write-stream-atomic@1.0.10",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "fs-write-stream-atomic@1.0.10",
"_id": "fs-write-stream-atomic@1.0.10",
+ "_inBundle": false,
"_integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=",
"_location": "/fs-write-stream-atomic",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "fs-write-stream-atomic@~1.0.10",
+ "raw": "fs-write-stream-atomic@1.0.10",
"name": "fs-write-stream-atomic",
"escapedName": "fs-write-stream-atomic",
- "rawSpec": "~1.0.10",
+ "rawSpec": "1.0.10",
"saveSpec": null,
- "fetchSpec": "~1.0.10"
+ "fetchSpec": "1.0.10"
},
"_requiredBy": [
"/",
- "/move-concurrently",
- "/move-concurrently/copy-concurrently"
+ "/copy-concurrently",
+ "/move-concurrently"
],
"_resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz",
- "_shasum": "b47df53493ef911df75731e70a9ded0189db40c9",
- "_shrinkwrap": null,
- "_spec": "fs-write-stream-atomic@~1.0.10",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.10",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/fs-write-stream-atomic/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.2",
"iferr": "^0.1.5",
"imurmurhash": "^0.1.4",
"readable-stream": "1 || 2"
},
- "deprecated": false,
"description": "Like `fs.createWriteStream(...)`, but atomic.",
"devDependencies": {
"rimraf": "^2.4.4",
@@ -54,8 +56,6 @@
"license": "ISC",
"main": "index.js",
"name": "fs-write-stream-atomic",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/fs-write-stream-atomic.git"
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE b/deps/npm/node_modules/fs.realpath/LICENSE
index 5bd884c252..5bd884c252 100644
--- a/deps/npm/node_modules/glob/node_modules/fs.realpath/LICENSE
+++ b/deps/npm/node_modules/fs.realpath/LICENSE
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md b/deps/npm/node_modules/fs.realpath/README.md
index a42ceac626..a42ceac626 100644
--- a/deps/npm/node_modules/glob/node_modules/fs.realpath/README.md
+++ b/deps/npm/node_modules/fs.realpath/README.md
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js b/deps/npm/node_modules/fs.realpath/index.js
index b09c7c7e63..b09c7c7e63 100644
--- a/deps/npm/node_modules/glob/node_modules/fs.realpath/index.js
+++ b/deps/npm/node_modules/fs.realpath/index.js
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js b/deps/npm/node_modules/fs.realpath/old.js
index b40305e73f..b40305e73f 100644
--- a/deps/npm/node_modules/glob/node_modules/fs.realpath/old.js
+++ b/deps/npm/node_modules/fs.realpath/old.js
diff --git a/deps/npm/node_modules/fs.realpath/package.json b/deps/npm/node_modules/fs.realpath/package.json
new file mode 100644
index 0000000000..4550e22bdc
--- /dev/null
+++ b/deps/npm/node_modules/fs.realpath/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "fs.realpath@^1.0.0",
+ "_id": "fs.realpath@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "_location": "/fs.realpath",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "fs.realpath@^1.0.0",
+ "name": "fs.realpath",
+ "escapedName": "fs.realpath",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/glob"
+ ],
+ "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
+ "_spec": "fs.realpath@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/glob",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/fs.realpath/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
+ "devDependencies": {},
+ "files": [
+ "old.js",
+ "index.js"
+ ],
+ "homepage": "https://github.com/isaacs/fs.realpath#readme",
+ "keywords": [
+ "realpath",
+ "fs",
+ "polyfill"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "fs.realpath",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/fs.realpath.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js --cov"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/.npmignore b/deps/npm/node_modules/fstream/.npmignore
index 494272a81a..494272a81a 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/.npmignore
+++ b/deps/npm/node_modules/fstream/.npmignore
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/.travis.yml b/deps/npm/node_modules/fstream/.travis.yml
index 9f5972ab5a..9f5972ab5a 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/.travis.yml
+++ b/deps/npm/node_modules/fstream/.travis.yml
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/LICENSE b/deps/npm/node_modules/fstream/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/LICENSE
+++ b/deps/npm/node_modules/fstream/LICENSE
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/README.md b/deps/npm/node_modules/fstream/README.md
index 9d8cb77e5c..9d8cb77e5c 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/README.md
+++ b/deps/npm/node_modules/fstream/README.md
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/filter-pipe.js b/deps/npm/node_modules/fstream/examples/filter-pipe.js
index 83dadef8a6..83dadef8a6 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/filter-pipe.js
+++ b/deps/npm/node_modules/fstream/examples/filter-pipe.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/pipe.js b/deps/npm/node_modules/fstream/examples/pipe.js
index 3de42ef32b..3de42ef32b 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/pipe.js
+++ b/deps/npm/node_modules/fstream/examples/pipe.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/reader.js b/deps/npm/node_modules/fstream/examples/reader.js
index 19affbe7e6..19affbe7e6 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/reader.js
+++ b/deps/npm/node_modules/fstream/examples/reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/symlink-write.js b/deps/npm/node_modules/fstream/examples/symlink-write.js
index 19e81eea9f..19e81eea9f 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/examples/symlink-write.js
+++ b/deps/npm/node_modules/fstream/examples/symlink-write.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/fstream.js b/deps/npm/node_modules/fstream/fstream.js
index c0eb3bea78..c0eb3bea78 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/fstream.js
+++ b/deps/npm/node_modules/fstream/fstream.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/abstract.js b/deps/npm/node_modules/fstream/lib/abstract.js
index 97c120e1d5..97c120e1d5 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/abstract.js
+++ b/deps/npm/node_modules/fstream/lib/abstract.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/collect.js b/deps/npm/node_modules/fstream/lib/collect.js
index e5d4f35833..e5d4f35833 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/collect.js
+++ b/deps/npm/node_modules/fstream/lib/collect.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-reader.js b/deps/npm/node_modules/fstream/lib/dir-reader.js
index 820cdc85a8..820cdc85a8 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-reader.js
+++ b/deps/npm/node_modules/fstream/lib/dir-reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-writer.js b/deps/npm/node_modules/fstream/lib/dir-writer.js
index ec50dca900..ec50dca900 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/dir-writer.js
+++ b/deps/npm/node_modules/fstream/lib/dir-writer.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-reader.js b/deps/npm/node_modules/fstream/lib/file-reader.js
index baa01f4b3d..baa01f4b3d 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-reader.js
+++ b/deps/npm/node_modules/fstream/lib/file-reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-writer.js b/deps/npm/node_modules/fstream/lib/file-writer.js
index 4c803d8d68..4c803d8d68 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/file-writer.js
+++ b/deps/npm/node_modules/fstream/lib/file-writer.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/get-type.js b/deps/npm/node_modules/fstream/lib/get-type.js
index 19f6a657db..19f6a657db 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/get-type.js
+++ b/deps/npm/node_modules/fstream/lib/get-type.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-reader.js b/deps/npm/node_modules/fstream/lib/link-reader.js
index fb4cc67a98..fb4cc67a98 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-reader.js
+++ b/deps/npm/node_modules/fstream/lib/link-reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-writer.js b/deps/npm/node_modules/fstream/lib/link-writer.js
index af54284008..af54284008 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/link-writer.js
+++ b/deps/npm/node_modules/fstream/lib/link-writer.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-reader.js b/deps/npm/node_modules/fstream/lib/proxy-reader.js
index 4f431c9d9e..4f431c9d9e 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-reader.js
+++ b/deps/npm/node_modules/fstream/lib/proxy-reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-writer.js b/deps/npm/node_modules/fstream/lib/proxy-writer.js
index a6544621bf..a6544621bf 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/proxy-writer.js
+++ b/deps/npm/node_modules/fstream/lib/proxy-writer.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/reader.js b/deps/npm/node_modules/fstream/lib/reader.js
index be4f570eeb..be4f570eeb 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/reader.js
+++ b/deps/npm/node_modules/fstream/lib/reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/socket-reader.js b/deps/npm/node_modules/fstream/lib/socket-reader.js
index e0456ba890..e0456ba890 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/socket-reader.js
+++ b/deps/npm/node_modules/fstream/lib/socket-reader.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/writer.js b/deps/npm/node_modules/fstream/lib/writer.js
index 140e449e06..140e449e06 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/lib/writer.js
+++ b/deps/npm/node_modules/fstream/lib/writer.js
diff --git a/deps/npm/node_modules/fstream/package.json b/deps/npm/node_modules/fstream/package.json
new file mode 100644
index 0000000000..25418b6709
--- /dev/null
+++ b/deps/npm/node_modules/fstream/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "fstream@^1.0.0",
+ "_id": "fstream@1.0.11",
+ "_inBundle": false,
+ "_integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
+ "_location": "/fstream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "fstream@^1.0.0",
+ "name": "fstream",
+ "escapedName": "fstream",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/node-gyp",
+ "/node-gyp/tar"
+ ],
+ "_resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
+ "_shasum": "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171",
+ "_spec": "fstream@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/fstream/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "deprecated": false,
+ "description": "Advanced file system stream things",
+ "devDependencies": {
+ "standard": "^4.0.0",
+ "tap": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "homepage": "https://github.com/npm/fstream#readme",
+ "license": "ISC",
+ "main": "fstream.js",
+ "name": "fstream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/fstream.git"
+ },
+ "scripts": {
+ "test": "standard && tap examples/*.js"
+ },
+ "version": "1.0.11"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/CHANGELOG.md b/deps/npm/node_modules/gauge/CHANGELOG.md
index 407bc192e7..407bc192e7 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/CHANGELOG.md
+++ b/deps/npm/node_modules/gauge/CHANGELOG.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE b/deps/npm/node_modules/gauge/LICENSE
index e756052969..e756052969 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/LICENSE
+++ b/deps/npm/node_modules/gauge/LICENSE
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md b/deps/npm/node_modules/gauge/README.md
index bdd60e38c2..bdd60e38c2 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/README.md
+++ b/deps/npm/node_modules/gauge/README.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/base-theme.js b/deps/npm/node_modules/gauge/base-theme.js
index 0b67638e02..0b67638e02 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/base-theme.js
+++ b/deps/npm/node_modules/gauge/base-theme.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/error.js b/deps/npm/node_modules/gauge/error.js
index d9914ba533..d9914ba533 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/error.js
+++ b/deps/npm/node_modules/gauge/error.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/has-color.js b/deps/npm/node_modules/gauge/has-color.js
index e283a256f2..e283a256f2 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/has-color.js
+++ b/deps/npm/node_modules/gauge/has-color.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/index.js b/deps/npm/node_modules/gauge/index.js
index c55324008c..c55324008c 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/index.js
+++ b/deps/npm/node_modules/gauge/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/gauge/node_modules/ansi-regex/index.js
index b9574ed7e8..b9574ed7e8 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ b/deps/npm/node_modules/gauge/node_modules/ansi-regex/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/license b/deps/npm/node_modules/gauge/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/license
+++ b/deps/npm/node_modules/gauge/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/gauge/node_modules/ansi-regex/package.json b/deps/npm/node_modules/gauge/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..9a902d5bf4
--- /dev/null
+++ b/deps/npm/node_modules/gauge/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/gauge/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/gauge/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/gauge/node_modules/ansi-regex/readme.md
index 6a928edf0f..6a928edf0f 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ b/deps/npm/node_modules/gauge/node_modules/ansi-regex/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/index.js
index a7d3e3855f..a7d3e3855f 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
+++ b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/index.js
diff --git a/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 b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/license
diff --git a/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..08f31e91e2
--- /dev/null
+++ b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "is-fullwidth-code-point@^1.0.0",
+ "_id": "is-fullwidth-code-point@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "_location": "/gauge/is-fullwidth-code-point",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-fullwidth-code-point@^1.0.0",
+ "name": "is-fullwidth-code-point",
+ "escapedName": "is-fullwidth-code-point",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/gauge/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
+ "_spec": "is-fullwidth-code-point@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "0.0.4",
+ "code-point-at": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "is-fullwidth-code-point",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/readme.md
index 4936464b1b..4936464b1b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
+++ b/deps/npm/node_modules/gauge/node_modules/is-fullwidth-code-point/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js b/deps/npm/node_modules/gauge/node_modules/string-width/index.js
index b9bec62440..b9bec62440 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/index.js
+++ b/deps/npm/node_modules/gauge/node_modules/string-width/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/license b/deps/npm/node_modules/gauge/node_modules/string-width/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/license
+++ b/deps/npm/node_modules/gauge/node_modules/string-width/license
diff --git a/deps/npm/node_modules/gauge/node_modules/string-width/package.json b/deps/npm/node_modules/gauge/node_modules/string-width/package.json
new file mode 100644
index 0000000000..8b450344af
--- /dev/null
+++ b/deps/npm/node_modules/gauge/node_modules/string-width/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "string-width@^1.0.1",
+ "_id": "string-width@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "_location": "/gauge/string-width",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string-width@^1.0.1",
+ "name": "string-width",
+ "escapedName": "string-width",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_spec": "string-width@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "name": "string-width",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md b/deps/npm/node_modules/gauge/node_modules/string-width/readme.md
index 1ab42c9358..1ab42c9358 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/readme.md
+++ b/deps/npm/node_modules/gauge/node_modules/string-width/readme.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/index.js b/deps/npm/node_modules/gauge/node_modules/strip-ansi/index.js
index 099480fbfc..099480fbfc 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/index.js
+++ b/deps/npm/node_modules/gauge/node_modules/strip-ansi/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/license b/deps/npm/node_modules/gauge/node_modules/strip-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/license
+++ b/deps/npm/node_modules/gauge/node_modules/strip-ansi/license
diff --git a/deps/npm/node_modules/gauge/node_modules/strip-ansi/package.json b/deps/npm/node_modules/gauge/node_modules/strip-ansi/package.json
new file mode 100644
index 0000000000..cc7b988613
--- /dev/null
+++ b/deps/npm/node_modules/gauge/node_modules/strip-ansi/package.json
@@ -0,0 +1,102 @@
+{
+ "_from": "strip-ansi@^3.0.1",
+ "_id": "strip-ansi@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "_location": "/gauge/strip-ansi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-ansi@^3.0.1",
+ "name": "strip-ansi",
+ "escapedName": "strip-ansi",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/gauge",
+ "/gauge/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_spec": "strip-ansi@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "strip-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/gauge/node_modules/strip-ansi/readme.md
index cb7d9ff7ee..cb7d9ff7ee 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/readme.md
+++ b/deps/npm/node_modules/gauge/node_modules/strip-ansi/readme.md
diff --git a/deps/npm/node_modules/gauge/package.json b/deps/npm/node_modules/gauge/package.json
new file mode 100644
index 0000000000..9900ba9dd5
--- /dev/null
+++ b/deps/npm/node_modules/gauge/package.json
@@ -0,0 +1,94 @@
+{
+ "_from": "gauge@~2.7.3",
+ "_id": "gauge@2.7.4",
+ "_inBundle": false,
+ "_integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
+ "_location": "/gauge",
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "number-is-nan": "1.0.1"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "gauge@~2.7.3",
+ "name": "gauge",
+ "escapedName": "gauge",
+ "rawSpec": "~2.7.3",
+ "saveSpec": null,
+ "fetchSpec": "~2.7.3"
+ },
+ "_requiredBy": [
+ "/npmlog"
+ ],
+ "_resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "_shasum": "2c03405c7538c39d7eb37b317022e325fb018bf7",
+ "_spec": "gauge@~2.7.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog",
+ "author": {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/gauge/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "aproba": "^1.0.3",
+ "console-control-strings": "^1.0.0",
+ "has-unicode": "^2.0.0",
+ "object-assign": "^4.1.0",
+ "signal-exit": "^3.0.0",
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1",
+ "wide-align": "^1.1.0"
+ },
+ "deprecated": false,
+ "description": "A terminal based horizontal guage",
+ "devDependencies": {
+ "readable-stream": "^2.0.6",
+ "require-inject": "^1.4.0",
+ "standard": "^7.1.2",
+ "tap": "^5.7.2",
+ "through2": "^2.0.0"
+ },
+ "files": [
+ "base-theme.js",
+ "CHANGELOG.md",
+ "error.js",
+ "has-color.js",
+ "index.js",
+ "LICENSE",
+ "package.json",
+ "plumbing.js",
+ "process.js",
+ "progress-bar.js",
+ "README.md",
+ "render-template.js",
+ "set-immediate.js",
+ "set-interval.js",
+ "spin.js",
+ "template-item.js",
+ "theme-set.js",
+ "themes.js",
+ "wide-truncate.js"
+ ],
+ "homepage": "https://github.com/iarna/gauge",
+ "keywords": [
+ "progressbar",
+ "progress",
+ "gauge"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "gauge",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/gauge.git"
+ },
+ "scripts": {
+ "prepublish": "rm -f *~",
+ "test": "standard && tap test/*.js --coverage"
+ },
+ "version": "2.7.4"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/plumbing.js b/deps/npm/node_modules/gauge/plumbing.js
index 1afb4af6d5..1afb4af6d5 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/plumbing.js
+++ b/deps/npm/node_modules/gauge/plumbing.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/process.js b/deps/npm/node_modules/gauge/process.js
index 05e85694d7..05e85694d7 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/process.js
+++ b/deps/npm/node_modules/gauge/process.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js b/deps/npm/node_modules/gauge/progress-bar.js
index 7f8dd68be2..7f8dd68be2 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/progress-bar.js
+++ b/deps/npm/node_modules/gauge/progress-bar.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/render-template.js b/deps/npm/node_modules/gauge/render-template.js
index 3261bfbe6f..3261bfbe6f 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/render-template.js
+++ b/deps/npm/node_modules/gauge/render-template.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js b/deps/npm/node_modules/gauge/set-immediate.js
index 6650a485c4..6650a485c4 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/set-immediate.js
+++ b/deps/npm/node_modules/gauge/set-immediate.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/set-interval.js b/deps/npm/node_modules/gauge/set-interval.js
index 576198793c..576198793c 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/set-interval.js
+++ b/deps/npm/node_modules/gauge/set-interval.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/spin.js b/deps/npm/node_modules/gauge/spin.js
index 34142ee31a..34142ee31a 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/spin.js
+++ b/deps/npm/node_modules/gauge/spin.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/template-item.js b/deps/npm/node_modules/gauge/template-item.js
index 4f02fefaa2..4f02fefaa2 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/template-item.js
+++ b/deps/npm/node_modules/gauge/template-item.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/theme-set.js b/deps/npm/node_modules/gauge/theme-set.js
index c022d61cf1..c022d61cf1 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/theme-set.js
+++ b/deps/npm/node_modules/gauge/theme-set.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/themes.js b/deps/npm/node_modules/gauge/themes.js
index eb5a4f5b5e..eb5a4f5b5e 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/themes.js
+++ b/deps/npm/node_modules/gauge/themes.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js b/deps/npm/node_modules/gauge/wide-truncate.js
index c531bc491f..c531bc491f 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/wide-truncate.js
+++ b/deps/npm/node_modules/gauge/wide-truncate.js
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/CHANGELOG.md b/deps/npm/node_modules/genfun/CHANGELOG.md
index c72d719ea3..c72d719ea3 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/CHANGELOG.md
+++ b/deps/npm/node_modules/genfun/CHANGELOG.md
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/README.md b/deps/npm/node_modules/genfun/README.md
index 01417ff879..01417ff879 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/README.md
+++ b/deps/npm/node_modules/genfun/README.md
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js b/deps/npm/node_modules/genfun/lib/genfun.js
index c6ba01ca54..c6ba01ca54 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/genfun.js
+++ b/deps/npm/node_modules/genfun/lib/genfun.js
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/method.js b/deps/npm/node_modules/genfun/lib/method.js
index 5a9d9f788e..5a9d9f788e 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/method.js
+++ b/deps/npm/node_modules/genfun/lib/method.js
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/role.js b/deps/npm/node_modules/genfun/lib/role.js
index 69e35c2e58..69e35c2e58 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/role.js
+++ b/deps/npm/node_modules/genfun/lib/role.js
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/util.js b/deps/npm/node_modules/genfun/lib/util.js
index 23770629d3..23770629d3 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/lib/util.js
+++ b/deps/npm/node_modules/genfun/lib/util.js
diff --git a/deps/npm/node_modules/genfun/package.json b/deps/npm/node_modules/genfun/package.json
new file mode 100644
index 0000000000..60295ade5d
--- /dev/null
+++ b/deps/npm/node_modules/genfun/package.json
@@ -0,0 +1,79 @@
+{
+ "_from": "genfun@^4.0.1",
+ "_id": "genfun@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=",
+ "_location": "/genfun",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "genfun@^4.0.1",
+ "name": "genfun",
+ "escapedName": "genfun",
+ "rawSpec": "^4.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.1"
+ },
+ "_requiredBy": [
+ "/protoduck"
+ ],
+ "_resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz",
+ "_shasum": "ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1",
+ "_spec": "genfun@^4.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/protoduck",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/genfun/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Fast, prototype-friendly multimethods.",
+ "devDependencies": {
+ "mocha": "^3.2.0",
+ "nyc": "^10.2.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0",
+ "weallbehave": "^1.0.3",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "lib/*.js"
+ ],
+ "homepage": "http://github.com/zkat/genfun",
+ "keywords": [
+ "clos",
+ "functional",
+ "oop",
+ "util",
+ "object oriented",
+ "prototypes",
+ "multimethod",
+ "generic functions",
+ "multiple dispatch",
+ "polymorphism",
+ "polymorphic",
+ "protocols"
+ ],
+ "license": "CC0-1.0",
+ "main": "lib/genfun.js",
+ "name": "genfun",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/zkat/genfun.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard lib",
+ "release": "standard-version -s",
+ "test": "nyc -- mocha --reporter spec",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/.npmignore b/deps/npm/node_modules/gentle-fs/node_modules/iferr/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/.npmignore
+++ b/deps/npm/node_modules/gentle-fs/node_modules/iferr/.npmignore
diff --git a/deps/npm/node_modules/gentle-fs/node_modules/iferr/LICENSE b/deps/npm/node_modules/gentle-fs/node_modules/iferr/LICENSE
new file mode 100644
index 0000000000..19d5f4bce5
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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/gentle-fs/node_modules/iferr/README.md b/deps/npm/node_modules/gentle-fs/node_modules/iferr/README.md
new file mode 100644
index 0000000000..0940763fa9
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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/gentle-fs/node_modules/iferr/index.coffee b/deps/npm/node_modules/gentle-fs/node_modules/iferr/index.coffee
new file mode 100644
index 0000000000..da6d00719f
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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/gentle-fs/node_modules/iferr/index.js b/deps/npm/node_modules/gentle-fs/node_modules/iferr/index.js
new file mode 100644
index 0000000000..78fce3d2b0
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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/gentle-fs/node_modules/iferr/package.json b/deps/npm/node_modules/gentle-fs/node_modules/iferr/package.json
new file mode 100644
index 0000000000..fcddb23246
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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": "/gentle-fs/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": [
+ "/gentle-fs"
+ ],
+ "_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/gentle-fs",
+ "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/gentle-fs/node_modules/iferr/test/index.coffee b/deps/npm/node_modules/gentle-fs/node_modules/iferr/test/index.coffee
new file mode 100644
index 0000000000..be0bc56fdf
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/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/gentle-fs/node_modules/iferr/test/mocha.opts b/deps/npm/node_modules/gentle-fs/node_modules/iferr/test/mocha.opts
new file mode 100644
index 0000000000..019defcf15
--- /dev/null
+++ b/deps/npm/node_modules/gentle-fs/node_modules/iferr/test/mocha.opts
@@ -0,0 +1,2 @@
+--compilers coffee:coffee-script/register
+--reporter spec
diff --git a/deps/npm/node_modules/gentle-fs/package.json b/deps/npm/node_modules/gentle-fs/package.json
index ea08e40c43..55bc6bd40e 100644
--- a/deps/npm/node_modules/gentle-fs/package.json
+++ b/deps/npm/node_modules/gentle-fs/package.json
@@ -1,36 +1,39 @@
{
- "_from": "gentle-fs@latest",
+ "_args": [
+ [
+ "gentle-fs@2.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "gentle-fs@2.0.1",
"_id": "gentle-fs@2.0.1",
"_inBundle": false,
"_integrity": "sha512-cEng5+3fuARewXktTEGbwsktcldA+YsnUEaXZwcK/3pjSE1X9ObnTs+/8rYf8s+RnIcQm2D5x3rwpN7Zom8Bew==",
"_location": "/gentle-fs",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "gentle-fs@latest",
+ "raw": "gentle-fs@2.0.1",
"name": "gentle-fs",
"escapedName": "gentle-fs",
- "rawSpec": "latest",
+ "rawSpec": "2.0.1",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "2.0.1"
},
"_requiredBy": [
- "#USER",
"/",
"/bin-links"
],
"_resolved": "https://registry.npmjs.org/gentle-fs/-/gentle-fs-2.0.1.tgz",
- "_shasum": "585cfd612bfc5cd52471fdb42537f016a5ce3687",
- "_spec": "gentle-fs@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "2.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mike Sherov"
},
"bugs": {
"url": "https://github.com/npm/gentle-fs/issues"
},
- "bundleDependencies": false,
"dependencies": {
"aproba": "^1.1.2",
"fs-vacuum": "^1.2.10",
@@ -41,7 +44,6 @@
"read-cmd-shim": "^1.0.1",
"slide": "^1.1.6"
},
- "deprecated": false,
"description": "Gentle Filesystem operations",
"devDependencies": {
"dezalgo": "^1.0.3",
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/README.md b/deps/npm/node_modules/get-caller-file/README.md
index c32df54c39..c32df54c39 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/README.md
+++ b/deps/npm/node_modules/get-caller-file/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/index.js b/deps/npm/node_modules/get-caller-file/index.js
index 03e7dfc39b..03e7dfc39b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/index.js
+++ b/deps/npm/node_modules/get-caller-file/index.js
diff --git a/deps/npm/node_modules/get-caller-file/package.json b/deps/npm/node_modules/get-caller-file/package.json
new file mode 100644
index 0000000000..d5c90d52fc
--- /dev/null
+++ b/deps/npm/node_modules/get-caller-file/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "get-caller-file@^1.0.1",
+ "_id": "get-caller-file@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
+ "_location": "/get-caller-file",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "get-caller-file@^1.0.1",
+ "name": "get-caller-file",
+ "escapedName": "get-caller-file",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
+ "_shasum": "f702e63127e7e231c160a80c1554acb70d5047e5",
+ "_spec": "get-caller-file@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Stefan Penner"
+ },
+ "bugs": {
+ "url": "https://github.com/stefanpenner/get-caller-file/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "[![Build Status](https://travis-ci.org/ember-cli/ember-cli.svg?branch=master)](https://travis-ci.org/ember-cli/ember-cli) [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)",
+ "devDependencies": {
+ "chai": "^3.4.1",
+ "ensure-posix-path": "^1.0.1",
+ "mocha": "^2.3.4"
+ },
+ "directories": {
+ "test": "tests"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/stefanpenner/get-caller-file#readme",
+ "license": "ISC",
+ "main": "index.js",
+ "name": "get-caller-file",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/stefanpenner/get-caller-file.git"
+ },
+ "scripts": {
+ "test": "mocha test",
+ "test:debug": "mocha test"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/buffer-stream.js b/deps/npm/node_modules/get-stream/buffer-stream.js
index ae45d3d9e7..ae45d3d9e7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/buffer-stream.js
+++ b/deps/npm/node_modules/get-stream/buffer-stream.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/index.js b/deps/npm/node_modules/get-stream/index.js
index 2dc5ee96af..2dc5ee96af 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/index.js
+++ b/deps/npm/node_modules/get-stream/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/license b/deps/npm/node_modules/get-stream/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/license
+++ b/deps/npm/node_modules/get-stream/license
diff --git a/deps/npm/node_modules/get-stream/package.json b/deps/npm/node_modules/get-stream/package.json
new file mode 100644
index 0000000000..3042176e14
--- /dev/null
+++ b/deps/npm/node_modules/get-stream/package.json
@@ -0,0 +1,82 @@
+{
+ "_from": "get-stream@^3.0.0",
+ "_id": "get-stream@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
+ "_location": "/get-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "get-stream@^3.0.0",
+ "name": "get-stream",
+ "escapedName": "get-stream",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/execa",
+ "/got",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
+ "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
+ "_spec": "get-stream@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/pacote",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/get-stream/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Get a stream as a string, buffer, or array",
+ "devDependencies": {
+ "ava": "*",
+ "into-stream": "^3.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "buffer-stream.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/get-stream#readme",
+ "keywords": [
+ "get",
+ "stream",
+ "promise",
+ "concat",
+ "string",
+ "str",
+ "text",
+ "buffer",
+ "read",
+ "data",
+ "consume",
+ "readable",
+ "readablestream",
+ "array",
+ "object",
+ "obj"
+ ],
+ "license": "MIT",
+ "name": "get-stream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/get-stream.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/readme.md b/deps/npm/node_modules/get-stream/readme.md
index 73b188fb42..73b188fb42 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/readme.md
+++ b/deps/npm/node_modules/get-stream/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.npmignore b/deps/npm/node_modules/getpass/.npmignore
index a4261fc06f..a4261fc06f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.npmignore
+++ b/deps/npm/node_modules/getpass/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.travis.yml b/deps/npm/node_modules/getpass/.travis.yml
index d8b5833a71..d8b5833a71 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/.travis.yml
+++ b/deps/npm/node_modules/getpass/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/LICENSE b/deps/npm/node_modules/getpass/LICENSE
index f6d947d2f6..f6d947d2f6 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/LICENSE
+++ b/deps/npm/node_modules/getpass/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/README.md b/deps/npm/node_modules/getpass/README.md
index 6e4a50f63f..6e4a50f63f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/README.md
+++ b/deps/npm/node_modules/getpass/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/lib/index.js b/deps/npm/node_modules/getpass/lib/index.js
index 55a7718c0f..55a7718c0f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/lib/index.js
+++ b/deps/npm/node_modules/getpass/lib/index.js
diff --git a/deps/npm/node_modules/getpass/package.json b/deps/npm/node_modules/getpass/package.json
new file mode 100644
index 0000000000..51e481a227
--- /dev/null
+++ b/deps/npm/node_modules/getpass/package.json
@@ -0,0 +1,50 @@
+{
+ "_from": "getpass@^0.1.1",
+ "_id": "getpass@0.1.7",
+ "_inBundle": false,
+ "_integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+ "_location": "/getpass",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "getpass@^0.1.1",
+ "name": "getpass",
+ "escapedName": "getpass",
+ "rawSpec": "^0.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.1"
+ },
+ "_requiredBy": [
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "_shasum": "5eff8e3e684d569ae4cb2b1282604e8ba62149fa",
+ "_spec": "getpass@^0.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "Alex Wilson",
+ "email": "alex.wilson@joyent.com"
+ },
+ "bugs": {
+ "url": "https://github.com/arekinath/node-getpass/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "getpass for node.js",
+ "homepage": "https://github.com/arekinath/node-getpass#readme",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "getpass",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/arekinath/node-getpass.git"
+ },
+ "scripts": {
+ "test": "tape test/*.test.js"
+ },
+ "version": "0.1.7"
+}
diff --git a/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json b/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json
deleted file mode 100644
index 3aa9a5eb53..0000000000
--- a/deps/npm/node_modules/glob/node_modules/fs.realpath/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "fs.realpath@^1.0.0",
- "_id": "fs.realpath@1.0.0",
- "_integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
- "_location": "/glob/fs.realpath",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "fs.realpath@^1.0.0",
- "name": "fs.realpath",
- "escapedName": "fs.realpath",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/glob"
- ],
- "_resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "_shasum": "1504ad2523158caa40db4a2787cb01411994ea4f",
- "_shrinkwrap": null,
- "_spec": "fs.realpath@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/glob",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/fs.realpath/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Use node's fs.realpath, but fall back to the JS implementation if the native one fails",
- "devDependencies": {},
- "files": [
- "old.js",
- "index.js"
- ],
- "homepage": "https://github.com/isaacs/fs.realpath#readme",
- "keywords": [
- "realpath",
- "fs",
- "polyfill"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "fs.realpath",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/fs.realpath.git"
- },
- "scripts": {
- "test": "tap test/*.js --cov"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
deleted file mode 100644
index ed2ec1fdd7..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# brace-expansion
-
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
-as known from sh/bash, in JavaScript.
-
-[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
-[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
-[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
-
-[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
-
-## Example
-
-```js
-var expand = require('brace-expansion');
-
-expand('file-{a,b,c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('-v{,,}')
-// => ['-v', '-v', '-v']
-
-expand('file{0..2}.jpg')
-// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
-
-expand('file-{a..c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('file{2..0}.jpg')
-// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
-
-expand('file{0..4..2}.jpg')
-// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
-
-expand('file-{a..e..2}.jpg')
-// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
-
-expand('file{00..10..5}.jpg')
-// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
-
-expand('{{A..C},{a..c}}')
-// => ['A', 'B', 'C', 'a', 'b', 'c']
-
-expand('ppp{,config,oe{,conf}}')
-// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
-```
-
-## API
-
-```js
-var expand = require('brace-expansion');
-```
-
-### var expanded = expand(str)
-
-Return an array of all possible and valid expansions of `str`. If none are
-found, `[str]` is returned.
-
-Valid expansions are:
-
-```js
-/^(.*,)+(.+)?$/
-// {a,b,...}
-```
-
-A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-A numeric sequence from `x` to `y` inclusive, with optional increment.
-If `x` or `y` start with a leading `0`, all the numbers will be padded
-to have equal length. Negative numbers and backwards iteration work too.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-An alphabetic sequence from `x` to `y` inclusive, with optional increment.
-`x` and `y` must be exactly one character, and if given, `incr` must be a
-number.
-
-For compatibility reasons, the string `${` is not eligible for brace expansion.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install brace-expansion
-```
-
-## Contributors
-
-- [Julian Gruber](https://github.com/juliangruber)
-- [Isaac Z. Schlueter](https://github.com/isaacs)
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/glob/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
deleted file mode 100644
index 0478be81ea..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ /dev/null
@@ -1,201 +0,0 @@
-var concatMap = require('concat-map');
-var balanced = require('balanced-match');
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
-}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- // I don't know why Bash 4.3 does this, but it does.
- // Anything starting with {} will have the first two bytes preserved
- // but *only* at the top level, so {},a}b will not expand to anything,
- // but a{},b}c will be expanded to [a}c,abc].
- // One could argue that this is a bug in Bash, but since the goal of
- // this module is to match Bash's rules, we escape a leading {}
- if (str.substr(0, 2) === '{}') {
- str = '\\{\\}' + str.substr(2);
- }
-
- return expand(escapeBraces(str), true).map(unescapeBraces);
-}
-
-function identity(e) {
- return e;
-}
-
-function embrace(str) {
- return '{' + str + '}';
-}
-function isPadded(el) {
- return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
- return i <= y;
-}
-function gte(i, y) {
- return i >= y;
-}
-
-function expand(str, isTop) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(',') >= 0;
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*\}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
- }
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0], false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
-
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
-
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
-
- var N;
-
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) { return expand(el, false) });
- }
-
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
-
- return expansions;
-}
-
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
deleted file mode 100644
index 23f4e2cc69..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "balanced-match@^1.0.0",
- "_id": "balanced-match@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "_location": "/glob/minimatch/brace-expansion/balanced-match",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "balanced-match@^1.0.0",
- "name": "balanced-match",
- "escapedName": "balanced-match",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/glob/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
- "_spec": "balanced-match@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/balanced-match/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Match balanced character pairs, like \"{\" and \"}\"",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/balanced-match",
- "keywords": [
- "match",
- "regexp",
- "test",
- "balanced",
- "parse"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "balanced-match",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/balanced-match.git"
- },
- "scripts": {
- "bench": "make bench",
- "test": "make test"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.0.0"
-}
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
deleted file mode 100644
index 69797016b2..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "_from": "concat-map@0.0.1",
- "_id": "concat-map@0.0.1",
- "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "_location": "/glob/minimatch/brace-expansion/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": [
- "/glob/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "_shrinkwrap": null,
- "_spec": "concat-map@0.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/node-concat-map/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/glob/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
deleted file mode 100644
index e7c21ffc56..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "brace-expansion@^1.1.7",
- "_id": "brace-expansion@1.1.8",
- "_inBundle": false,
- "_integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "_location": "/glob/minimatch/brace-expansion",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "brace-expansion@^1.1.7",
- "name": "brace-expansion",
- "escapedName": "brace-expansion",
- "rawSpec": "^1.1.7",
- "saveSpec": null,
- "fetchSpec": "^1.1.7"
- },
- "_requiredBy": [
- "/glob/minimatch"
- ],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "_shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
- "_spec": "brace-expansion@^1.1.7",
- "_where": "/Users/rebecca/code/npm/node_modules/glob/node_modules/minimatch",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/brace-expansion/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- },
- "deprecated": false,
- "description": "Brace expansion as known from sh/bash",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/brace-expansion",
- "keywords": [],
- "license": "MIT",
- "main": "index.js",
- "name": "brace-expansion",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/brace-expansion.git"
- },
- "scripts": {
- "bench": "matcha test/perf/bench.js",
- "gentest": "bash test/generate.sh",
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.1.8"
-}
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/package.json b/deps/npm/node_modules/glob/node_modules/minimatch/package.json
deleted file mode 100644
index c329ba0534..0000000000
--- a/deps/npm/node_modules/glob/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "minimatch@^3.0.4",
- "_id": "minimatch@3.0.4",
- "_inBundle": false,
- "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "_location": "/glob/minimatch",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimatch@^3.0.4",
- "name": "minimatch",
- "escapedName": "minimatch",
- "rawSpec": "^3.0.4",
- "saveSpec": null,
- "fetchSpec": "^3.0.4"
- },
- "_requiredBy": [
- "/glob"
- ],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
- "_spec": "minimatch@^3.0.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/glob",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minimatch/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "deprecated": false,
- "description": "a glob matcher in javascript",
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "minimatch.js"
- ],
- "homepage": "https://github.com/isaacs/minimatch#readme",
- "license": "ISC",
- "main": "minimatch.js",
- "name": "minimatch",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --cov"
- },
- "version": "3.0.4"
-}
diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json
deleted file mode 100644
index 39ea93a966..0000000000
--- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "path-is-absolute@^1.0.0",
- "_id": "path-is-absolute@1.0.1",
- "_integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "_location": "/glob/path-is-absolute",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "path-is-absolute@^1.0.0",
- "name": "path-is-absolute",
- "escapedName": "path-is-absolute",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/glob"
- ],
- "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
- "_shrinkwrap": null,
- "_spec": "path-is-absolute@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/glob",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/path-is-absolute/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Node.js 0.12 path.isAbsolute() ponyfill",
- "devDependencies": {
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/path-is-absolute#readme",
- "keywords": [
- "path",
- "paths",
- "file",
- "dir",
- "absolute",
- "isabsolute",
- "is-absolute",
- "built-in",
- "util",
- "utils",
- "core",
- "ponyfill",
- "polyfill",
- "shim",
- "is",
- "detect",
- "check"
- ],
- "license": "MIT",
- "name": "path-is-absolute",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/path-is-absolute.git"
- },
- "scripts": {
- "test": "xo && node test.js"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/glob/package.json b/deps/npm/node_modules/glob/package.json
index afa4b50f16..480fdff5da 100644
--- a/deps/npm/node_modules/glob/package.json
+++ b/deps/npm/node_modules/glob/package.json
@@ -1,36 +1,44 @@
{
- "_from": "glob@~7.1.2",
+ "_args": [
+ [
+ "glob@7.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "glob@7.1.2",
"_id": "glob@7.1.2",
"_inBundle": false,
"_integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
"_location": "/glob",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "glob@~7.1.2",
+ "raw": "glob@7.1.2",
"name": "glob",
"escapedName": "glob",
- "rawSpec": "~7.1.2",
+ "rawSpec": "7.1.2",
"saveSpec": null,
- "fetchSpec": "~7.1.2"
+ "fetchSpec": "7.1.2"
},
"_requiredBy": [
- "#USER",
"/",
"/cacache",
+ "/deglob",
+ "/eslint",
+ "/globby",
"/init-package-json",
"/node-gyp",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
"/pacote",
"/read-package-json",
"/rimraf",
- "/standard/standard-engine/deglob",
"/tap",
- "/tap/tap-mocha-reporter"
+ "/tap-mocha-reporter"
],
"_resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "_shasum": "c19c9df9a028702d678612384a6552404c636d15",
- "_spec": "glob@~7.1.2",
+ "_spec": "7.1.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -40,7 +48,6 @@
"bugs": {
"url": "https://github.com/isaacs/node-glob/issues"
},
- "bundleDependencies": false,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -49,7 +56,6 @@
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
- "deprecated": false,
"description": "a little globber",
"devDependencies": {
"mkdirp": "0",
diff --git a/deps/npm/node_modules/global-dirs/index.js b/deps/npm/node_modules/global-dirs/index.js
new file mode 100644
index 0000000000..2b61d4eae2
--- /dev/null
+++ b/deps/npm/node_modules/global-dirs/index.js
@@ -0,0 +1,90 @@
+'use strict';
+const path = require('path');
+const os = require('os');
+const fs = require('fs');
+const ini = require('ini');
+
+const readRc = fp => {
+ try {
+ return ini.parse(fs.readFileSync(fp, 'utf8')).prefix;
+ } catch (err) {}
+};
+
+const defaultNpmPrefix = (() => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ if (process.platform === 'win32') {
+ // `c:\node\node.exe` ā†’ `prefix=c:\node\`
+ return path.dirname(process.execPath);
+ }
+
+ // `/usr/local/bin/node` ā†’ `prefix=/usr/local`
+ return path.dirname(path.dirname(process.execPath));
+})();
+
+const getNpmPrefix = () => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ const homePrefix = readRc(path.join(os.homedir(), '.npmrc'));
+ if (homePrefix) {
+ return homePrefix;
+ }
+
+ const globalConfigPrefix = readRc(path.resolve(defaultNpmPrefix, 'etc', 'npmrc'));
+ if (globalConfigPrefix) {
+ return globalConfigPrefix;
+ }
+
+ if (process.platform === 'win32' && process.env.APPDATA) {
+ // Hardcoded contents of `c:\Program Files\nodejs\node_modules\npm\.npmrc`
+ const prefix = path.join(process.env.APPDATA, 'npm');
+ if (fs.existsSync(prefix)) {
+ return prefix;
+ }
+ }
+
+ return defaultNpmPrefix;
+};
+
+const npmPrefix = path.resolve(getNpmPrefix());
+
+const getYarnPrefix = () => {
+ if (process.env.PREFIX) {
+ return process.env.PREFIX;
+ }
+
+ if (process.platform === 'win32' && process.env.LOCALAPPDATA) {
+ const prefix = path.join(process.env.LOCALAPPDATA, 'Yarn');
+ if (fs.existsSync(prefix)) {
+ return prefix;
+ }
+ }
+
+ const configPrefix = path.join(os.homedir(), '.config/yarn');
+ if (fs.existsSync(configPrefix)) {
+ return configPrefix;
+ }
+
+ const homePrefix = path.join(os.homedir(), '.yarn-config');
+ if (fs.existsSync(homePrefix)) {
+ return homePrefix;
+ }
+
+ // Yarn supports the npm conventions but the inverse is not true
+ return npmPrefix;
+};
+
+exports.npm = {};
+exports.npm.prefix = npmPrefix;
+exports.npm.packages = path.join(npmPrefix, process.platform === 'win32' ? 'node_modules' : 'lib/node_modules');
+exports.npm.binaries = process.platform === 'win32' ? npmPrefix : path.join(npmPrefix, 'bin');
+
+const yarnPrefix = path.resolve(getYarnPrefix());
+exports.yarn = {};
+exports.yarn.prefix = yarnPrefix;
+exports.yarn.packages = path.join(yarnPrefix, process.platform === 'win32' ? 'config/global/node_modules' : 'global/node_modules');
+exports.yarn.binaries = path.join(exports.yarn.packages, '.bin');
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/license b/deps/npm/node_modules/global-dirs/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/license
+++ b/deps/npm/node_modules/global-dirs/license
diff --git a/deps/npm/node_modules/global-dirs/package.json b/deps/npm/node_modules/global-dirs/package.json
new file mode 100644
index 0000000000..41f0a2e2d3
--- /dev/null
+++ b/deps/npm/node_modules/global-dirs/package.json
@@ -0,0 +1,84 @@
+{
+ "_from": "global-dirs@^0.1.0",
+ "_id": "global-dirs@0.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=",
+ "_location": "/global-dirs",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "global-dirs@^0.1.0",
+ "name": "global-dirs",
+ "escapedName": "global-dirs",
+ "rawSpec": "^0.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.0"
+ },
+ "_requiredBy": [
+ "/is-installed-globally"
+ ],
+ "_resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz",
+ "_shasum": "b319c0dd4607f353f3be9cca4c72fc148c49f445",
+ "_spec": "global-dirs@^0.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/is-installed-globally",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/global-dirs/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ini": "^1.3.4"
+ },
+ "deprecated": false,
+ "description": "Get the directory of globally installed packages and binaries",
+ "devDependencies": {
+ "ava": "*",
+ "execa": "^0.7.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/global-dirs#readme",
+ "keywords": [
+ "global",
+ "prefix",
+ "path",
+ "paths",
+ "npm",
+ "yarn",
+ "node",
+ "modules",
+ "node-modules",
+ "package",
+ "packages",
+ "binary",
+ "binaries",
+ "bin",
+ "directory",
+ "directories",
+ "npmrc",
+ "rc",
+ "config",
+ "root",
+ "resolve"
+ ],
+ "license": "MIT",
+ "name": "global-dirs",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/global-dirs.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "0.1.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md b/deps/npm/node_modules/global-dirs/readme.md
index 1acea6d739..1acea6d739 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/readme.md
+++ b/deps/npm/node_modules/global-dirs/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js b/deps/npm/node_modules/got/index.js
index 31a64dd08b..31a64dd08b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/index.js
+++ b/deps/npm/node_modules/got/index.js
diff --git a/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 b/deps/npm/node_modules/got/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/got/license
diff --git a/deps/npm/node_modules/got/package.json b/deps/npm/node_modules/got/package.json
new file mode 100644
index 0000000000..67a0cedf56
--- /dev/null
+++ b/deps/npm/node_modules/got/package.json
@@ -0,0 +1,110 @@
+{
+ "_from": "got@^6.7.1",
+ "_id": "got@6.7.1",
+ "_inBundle": false,
+ "_integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
+ "_location": "/got",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "got@^6.7.1",
+ "name": "got",
+ "escapedName": "got",
+ "rawSpec": "^6.7.1",
+ "saveSpec": null,
+ "fetchSpec": "^6.7.1"
+ },
+ "_requiredBy": [
+ "/package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
+ "_shasum": "240cd05785a9a18e561dc1b44b41c763ef1e8db0",
+ "_spec": "got@^6.7.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/package-json",
+ "ava": {
+ "concurrency": 4
+ },
+ "browser": {
+ "unzip-response": false
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/got/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "create-error-class": "^3.0.0",
+ "duplexer3": "^0.1.4",
+ "get-stream": "^3.0.0",
+ "is-redirect": "^1.0.0",
+ "is-retry-allowed": "^1.0.0",
+ "is-stream": "^1.0.0",
+ "lowercase-keys": "^1.0.0",
+ "safe-buffer": "^5.0.1",
+ "timed-out": "^4.0.0",
+ "unzip-response": "^2.0.1",
+ "url-parse-lax": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Simplified HTTP requests",
+ "devDependencies": {
+ "ava": "^0.17.0",
+ "coveralls": "^2.11.4",
+ "form-data": "^2.1.1",
+ "get-port": "^2.0.0",
+ "into-stream": "^3.0.0",
+ "nyc": "^10.0.0",
+ "pem": "^1.4.4",
+ "pify": "^2.3.0",
+ "tempfile": "^1.1.1",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/got#readme",
+ "keywords": [
+ "http",
+ "https",
+ "get",
+ "got",
+ "url",
+ "uri",
+ "request",
+ "util",
+ "utility",
+ "simple",
+ "curl",
+ "wget",
+ "fetch"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Vsevolod Strukchinsky",
+ "email": "floatdrop@gmail.com",
+ "url": "github.com/floatdrop"
+ }
+ ],
+ "name": "got",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/got.git"
+ },
+ "scripts": {
+ "coveralls": "nyc report --reporter=text-lcov | coveralls",
+ "test": "xo && nyc ava"
+ },
+ "version": "6.7.1",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/readme.md b/deps/npm/node_modules/got/readme.md
index bfab067679..bfab067679 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/readme.md
+++ b/deps/npm/node_modules/got/readme.md
diff --git a/deps/npm/node_modules/graceful-fs/package.json b/deps/npm/node_modules/graceful-fs/package.json
index dada1f56f0..d5b0bf01db 100644
--- a/deps/npm/node_modules/graceful-fs/package.json
+++ b/deps/npm/node_modules/graceful-fs/package.json
@@ -1,50 +1,59 @@
{
- "_from": "graceful-fs@~4.1.11",
+ "_args": [
+ [
+ "graceful-fs@4.1.11",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "graceful-fs@4.1.11",
"_id": "graceful-fs@4.1.11",
+ "_inBundle": false,
"_integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
"_location": "/graceful-fs",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "graceful-fs@~4.1.11",
+ "raw": "graceful-fs@4.1.11",
"name": "graceful-fs",
"escapedName": "graceful-fs",
- "rawSpec": "~4.1.11",
+ "rawSpec": "4.1.11",
"saveSpec": null,
- "fetchSpec": "~4.1.11"
+ "fetchSpec": "4.1.11"
},
"_requiredBy": [
"/",
+ "/bin-links",
"/cacache",
"/cmd-shim",
+ "/configstore",
+ "/flat-cache",
"/fs-vacuum",
"/fs-write-stream-atomic",
"/fstream",
+ "/gentle-fs",
+ "/libcipm",
+ "/load-json-file",
"/node-gyp",
+ "/npm-lifecycle",
+ "/npm-profile/cacache",
"/npm-registry-client",
+ "/npm-registry-fetch/cacache",
+ "/pkg-conf/load-json-file",
"/read-cmd-shim",
"/read-installed",
"/read-package-json",
"/readdir-scoped-modules",
"/sha",
- "/standard/eslint/file-entry-cache/flat-cache",
"/tacks",
- "/update-notifier/configstore",
"/write-file-atomic"
],
"_resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
- "_shasum": "0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658",
- "_shrinkwrap": null,
- "_spec": "graceful-fs@~4.1.11",
- "_where": "/Users/zkat/Documents/code/npm",
- "bin": null,
+ "_spec": "4.1.11",
+ "_where": "/Users/rebecca/code/npm",
"bugs": {
"url": "https://github.com/isaacs/node-graceful-fs/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "A drop-in replacement for fs, making various improvements.",
"devDependencies": {
"mkdirp": "^0.5.0",
@@ -83,8 +92,6 @@
"license": "ISC",
"main": "graceful-fs.js",
"name": "graceful-fs",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/isaacs/node-graceful-fs.git"
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/LICENSE b/deps/npm/node_modules/har-schema/LICENSE
index ca55c91af4..ca55c91af4 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/LICENSE
+++ b/deps/npm/node_modules/har-schema/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/README.md b/deps/npm/node_modules/har-schema/README.md
index cd0a28e1a7..cd0a28e1a7 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/README.md
+++ b/deps/npm/node_modules/har-schema/README.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/afterRequest.json b/deps/npm/node_modules/har-schema/lib/afterRequest.json
index 5f52581549..5f52581549 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/afterRequest.json
+++ b/deps/npm/node_modules/har-schema/lib/afterRequest.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/beforeRequest.json b/deps/npm/node_modules/har-schema/lib/beforeRequest.json
index c7b5c1016a..c7b5c1016a 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/beforeRequest.json
+++ b/deps/npm/node_modules/har-schema/lib/beforeRequest.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/browser.json b/deps/npm/node_modules/har-schema/lib/browser.json
index d6869f75ac..d6869f75ac 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/browser.json
+++ b/deps/npm/node_modules/har-schema/lib/browser.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cache.json b/deps/npm/node_modules/har-schema/lib/cache.json
index 30a7182eb9..30a7182eb9 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cache.json
+++ b/deps/npm/node_modules/har-schema/lib/cache.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/content.json b/deps/npm/node_modules/har-schema/lib/content.json
index 43944bfa18..43944bfa18 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/content.json
+++ b/deps/npm/node_modules/har-schema/lib/content.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cookie.json b/deps/npm/node_modules/har-schema/lib/cookie.json
index 661f7f32ac..661f7f32ac 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/cookie.json
+++ b/deps/npm/node_modules/har-schema/lib/cookie.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/creator.json b/deps/npm/node_modules/har-schema/lib/creator.json
index 71a75cd414..71a75cd414 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/creator.json
+++ b/deps/npm/node_modules/har-schema/lib/creator.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/entry.json b/deps/npm/node_modules/har-schema/lib/entry.json
index 18025f4337..18025f4337 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/entry.json
+++ b/deps/npm/node_modules/har-schema/lib/entry.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/har.json b/deps/npm/node_modules/har-schema/lib/har.json
index d1a1de551c..d1a1de551c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/har.json
+++ b/deps/npm/node_modules/har-schema/lib/har.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/header.json b/deps/npm/node_modules/har-schema/lib/header.json
index 103d949a33..103d949a33 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/header.json
+++ b/deps/npm/node_modules/har-schema/lib/header.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/index.js b/deps/npm/node_modules/har-schema/lib/index.js
index 244c08e04e..244c08e04e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/index.js
+++ b/deps/npm/node_modules/har-schema/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/log.json b/deps/npm/node_modules/har-schema/lib/log.json
index c353b40f13..c353b40f13 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/log.json
+++ b/deps/npm/node_modules/har-schema/lib/log.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/page.json b/deps/npm/node_modules/har-schema/lib/page.json
index e24a3cee68..e24a3cee68 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/page.json
+++ b/deps/npm/node_modules/har-schema/lib/page.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/pageTimings.json b/deps/npm/node_modules/har-schema/lib/pageTimings.json
index 130411fee6..130411fee6 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/pageTimings.json
+++ b/deps/npm/node_modules/har-schema/lib/pageTimings.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/postData.json b/deps/npm/node_modules/har-schema/lib/postData.json
index 3aa6294a43..3aa6294a43 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/postData.json
+++ b/deps/npm/node_modules/har-schema/lib/postData.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/query.json b/deps/npm/node_modules/har-schema/lib/query.json
index f82d8d8dac..f82d8d8dac 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/query.json
+++ b/deps/npm/node_modules/har-schema/lib/query.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/request.json b/deps/npm/node_modules/har-schema/lib/request.json
index 0e2566dedc..0e2566dedc 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/request.json
+++ b/deps/npm/node_modules/har-schema/lib/request.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/response.json b/deps/npm/node_modules/har-schema/lib/response.json
index ec30f802ba..ec30f802ba 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/response.json
+++ b/deps/npm/node_modules/har-schema/lib/response.json
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/timings.json b/deps/npm/node_modules/har-schema/lib/timings.json
index 5fe7dc7a5e..5fe7dc7a5e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/lib/timings.json
+++ b/deps/npm/node_modules/har-schema/lib/timings.json
diff --git a/deps/npm/node_modules/har-schema/package.json b/deps/npm/node_modules/har-schema/package.json
new file mode 100644
index 0000000000..ddb3608ab1
--- /dev/null
+++ b/deps/npm/node_modules/har-schema/package.json
@@ -0,0 +1,86 @@
+{
+ "_from": "har-schema@^2.0.0",
+ "_id": "har-schema@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+ "_location": "/har-schema",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "har-schema@^2.0.0",
+ "name": "har-schema",
+ "escapedName": "har-schema",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/har-validator"
+ ],
+ "_resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "_shasum": "a94c2224ebcac04782a0d9035521f24735b7ec92",
+ "_spec": "har-schema@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/har-validator",
+ "author": {
+ "name": "Ahmad Nassri",
+ "email": "ahmad@ahmadnassri.com",
+ "url": "https://www.ahmadnassri.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/ahmadnassri/har-schema/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "commitizen": {
+ "path": "./node_modules/cz-conventional-changelog"
+ }
+ },
+ "contributors": [
+ {
+ "name": "Evgeny Poberezkin",
+ "email": "e.poberezkin@me.com"
+ }
+ ],
+ "deprecated": false,
+ "description": "JSON Schema for HTTP Archive (HAR)",
+ "devDependencies": {
+ "ajv": "^5.0.0",
+ "codeclimate-test-reporter": "^0.4.0",
+ "cz-conventional-changelog": "^1.2.0",
+ "echint": "^2.1.0",
+ "semantic-release": "^6.3.2",
+ "snazzy": "^5.0.0",
+ "tap": "^8.0.1"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/ahmadnassri/har-schema",
+ "keywords": [
+ "har",
+ "http",
+ "archive",
+ "JSON",
+ "schema",
+ "JSON-schema"
+ ],
+ "license": "ISC",
+ "main": "lib/index.js",
+ "name": "har-schema",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ahmadnassri/har-schema.git"
+ },
+ "scripts": {
+ "codeclimate": "tap --coverage-report=text-lcov | codeclimate-test-reporter",
+ "coverage": "tap test --reporter silent --coverage",
+ "pretest": "snazzy && echint",
+ "semantic-release": "semantic-release pre && npm publish && semantic-release post",
+ "test": "tap test --reporter spec"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/LICENSE b/deps/npm/node_modules/har-validator/LICENSE
index ca55c91af4..ca55c91af4 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/LICENSE
+++ b/deps/npm/node_modules/har-validator/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/README.md b/deps/npm/node_modules/har-validator/README.md
index fc696349e4..fc696349e4 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/README.md
+++ b/deps/npm/node_modules/har-validator/README.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/async.js b/deps/npm/node_modules/har-validator/lib/async.js
index fc41667e81..fc41667e81 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/lib/async.js
+++ b/deps/npm/node_modules/har-validator/lib/async.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/error.js b/deps/npm/node_modules/har-validator/lib/error.js
index f2618dc4f3..f2618dc4f3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/lib/error.js
+++ b/deps/npm/node_modules/har-validator/lib/error.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/lib/promise.js b/deps/npm/node_modules/har-validator/lib/promise.js
index 1ab308cf71..1ab308cf71 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/lib/promise.js
+++ b/deps/npm/node_modules/har-validator/lib/promise.js
diff --git a/deps/npm/node_modules/har-validator/package.json b/deps/npm/node_modules/har-validator/package.json
new file mode 100644
index 0000000000..544692d733
--- /dev/null
+++ b/deps/npm/node_modules/har-validator/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "har-validator@~5.0.3",
+ "_id": "har-validator@5.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "_location": "/har-validator",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "har-validator@~5.0.3",
+ "name": "har-validator",
+ "escapedName": "har-validator",
+ "rawSpec": "~5.0.3",
+ "saveSpec": null,
+ "fetchSpec": "~5.0.3"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
+ "_shasum": "ba402c266194f15956ef15e0fcf242993f6a7dfd",
+ "_spec": "har-validator@~5.0.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Ahmad Nassri",
+ "email": "ahmad@ahmadnassri.com",
+ "url": "https://www.ahmadnassri.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/ahmadnassri/har-validator/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ajv": "^5.1.0",
+ "har-schema": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema",
+ "devDependencies": {
+ "echint": "^4.0.1",
+ "standard": "^10.0.2",
+ "tap": "^10.3.2"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/ahmadnassri/har-validator",
+ "keywords": [
+ "har",
+ "cli",
+ "ajv",
+ "http",
+ "archive",
+ "validate",
+ "validator"
+ ],
+ "license": "ISC",
+ "main": "lib/promise.js",
+ "name": "har-validator",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ahmadnassri/har-validator.git"
+ },
+ "scripts": {
+ "coverage": "tap test --reporter silent --coverage",
+ "lint": "standard && echint",
+ "pretest": "npm run lint",
+ "test": "tap test"
+ },
+ "version": "5.0.3"
+}
diff --git a/deps/npm/node_modules/has-flag/index.js b/deps/npm/node_modules/has-flag/index.js
new file mode 100644
index 0000000000..5139728fba
--- /dev/null
+++ b/deps/npm/node_modules/has-flag/index.js
@@ -0,0 +1,8 @@
+'use strict';
+module.exports = (flag, argv) => {
+ argv = argv || process.argv;
+ const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');
+ const pos = argv.indexOf(prefix + flag);
+ const terminatorPos = argv.indexOf('--');
+ return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/license b/deps/npm/node_modules/has-flag/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/license
+++ b/deps/npm/node_modules/has-flag/license
diff --git a/deps/npm/node_modules/has-flag/package.json b/deps/npm/node_modules/has-flag/package.json
new file mode 100644
index 0000000000..4bcd2125a8
--- /dev/null
+++ b/deps/npm/node_modules/has-flag/package.json
@@ -0,0 +1,76 @@
+{
+ "_from": "has-flag@^3.0.0",
+ "_id": "has-flag@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "_location": "/has-flag",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "has-flag@^3.0.0",
+ "name": "has-flag",
+ "escapedName": "has-flag",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/supports-color"
+ ],
+ "_resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "_shasum": "b5d454dc2199ae225699f3467e5a07f3b955bafd",
+ "_spec": "has-flag@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/supports-color",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/has-flag/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if argv has a specific flag",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/has-flag#readme",
+ "keywords": [
+ "has",
+ "check",
+ "detect",
+ "contains",
+ "find",
+ "flag",
+ "cli",
+ "command-line",
+ "argv",
+ "process",
+ "arg",
+ "args",
+ "argument",
+ "arguments",
+ "getopt",
+ "minimist",
+ "optimist"
+ ],
+ "license": "MIT",
+ "name": "has-flag",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/has-flag.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/has-flag/readme.md b/deps/npm/node_modules/has-flag/readme.md
new file mode 100644
index 0000000000..677893c278
--- /dev/null
+++ b/deps/npm/node_modules/has-flag/readme.md
@@ -0,0 +1,70 @@
+# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag)
+
+> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag
+
+Correctly stops looking after an `--` argument terminator.
+
+
+## Install
+
+```
+$ npm install has-flag
+```
+
+
+## Usage
+
+```js
+// foo.js
+const hasFlag = require('has-flag');
+
+hasFlag('unicorn');
+//=> true
+
+hasFlag('--unicorn');
+//=> true
+
+hasFlag('f');
+//=> true
+
+hasFlag('-f');
+//=> true
+
+hasFlag('foo=bar');
+//=> true
+
+hasFlag('foo');
+//=> false
+
+hasFlag('rainbow');
+//=> false
+```
+
+```
+$ node foo.js -f --unicorn --foo=bar -- --rainbow
+```
+
+
+## API
+
+### hasFlag(flag, [argv])
+
+Returns a boolean for whether the flag exists.
+
+#### flag
+
+Type: `string`
+
+CLI flag to look for. The `--` prefix is optional.
+
+#### argv
+
+Type: `string[]`<br>
+Default: `process.argv`
+
+CLI arguments.
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/has-unicode/package.json b/deps/npm/node_modules/has-unicode/package.json
index d6794e54b3..b57ffd53d0 100644
--- a/deps/npm/node_modules/has-unicode/package.json
+++ b/deps/npm/node_modules/has-unicode/package.json
@@ -1,39 +1,40 @@
{
- "_from": "has-unicode@~2.0.1",
+ "_args": [
+ [
+ "has-unicode@2.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "has-unicode@2.0.1",
"_id": "has-unicode@2.0.1",
+ "_inBundle": false,
"_integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"_location": "/has-unicode",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "has-unicode@~2.0.1",
+ "raw": "has-unicode@2.0.1",
"name": "has-unicode",
"escapedName": "has-unicode",
- "rawSpec": "~2.0.1",
+ "rawSpec": "2.0.1",
"saveSpec": null,
- "fetchSpec": "~2.0.1"
+ "fetchSpec": "2.0.1"
},
"_requiredBy": [
"/",
- "/npmlog/gauge"
+ "/gauge"
],
"_resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "_shasum": "e0e6fe6a28cf51138855e086d1691e771de2a8b9",
- "_shrinkwrap": null,
- "_spec": "has-unicode@~2.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "2.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org"
},
- "bin": null,
"bugs": {
"url": "https://github.com/iarna/has-unicode/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Try to guess if your terminal supports unicode",
"devDependencies": {
"require-inject": "^1.3.0",
@@ -50,8 +51,6 @@
"license": "ISC",
"main": "index.js",
"name": "has-unicode",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/has-unicode.git"
diff --git a/deps/npm/node_modules/request/node_modules/hawk/.npmignore b/deps/npm/node_modules/hawk/.npmignore
index 20f7f7b790..20f7f7b790 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/.npmignore
+++ b/deps/npm/node_modules/hawk/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/hawk/LICENSE b/deps/npm/node_modules/hawk/LICENSE
index b43dce1106..b43dce1106 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/LICENSE
+++ b/deps/npm/node_modules/hawk/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/hawk/README.md b/deps/npm/node_modules/hawk/README.md
index fc5dd6deb1..fc5dd6deb1 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/README.md
+++ b/deps/npm/node_modules/hawk/README.md
diff --git a/deps/npm/node_modules/request/node_modules/hawk/client.js b/deps/npm/node_modules/hawk/client.js
index c7ff470ddd..c7ff470ddd 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/client.js
+++ b/deps/npm/node_modules/hawk/client.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/dist/browser.js b/deps/npm/node_modules/hawk/dist/browser.js
index 4bb9b95640..4bb9b95640 100644
--- a/deps/npm/node_modules/request/node_modules/hawk/dist/browser.js
+++ b/deps/npm/node_modules/hawk/dist/browser.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/browser.js b/deps/npm/node_modules/hawk/lib/browser.js
index 6635ce52ba..6635ce52ba 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/browser.js
+++ b/deps/npm/node_modules/hawk/lib/browser.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/client.js b/deps/npm/node_modules/hawk/lib/client.js
index 13bd77b359..13bd77b359 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/client.js
+++ b/deps/npm/node_modules/hawk/lib/client.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js b/deps/npm/node_modules/hawk/lib/crypto.js
index bfa4586c8b..bfa4586c8b 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/crypto.js
+++ b/deps/npm/node_modules/hawk/lib/crypto.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/index.js b/deps/npm/node_modules/hawk/lib/index.js
index d491eaec25..d491eaec25 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/index.js
+++ b/deps/npm/node_modules/hawk/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/server.js b/deps/npm/node_modules/hawk/lib/server.js
index c5b02ae0c5..c5b02ae0c5 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/server.js
+++ b/deps/npm/node_modules/hawk/lib/server.js
diff --git a/deps/npm/node_modules/request/node_modules/hawk/lib/utils.js b/deps/npm/node_modules/hawk/lib/utils.js
index 565b1c7a7b..565b1c7a7b 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/lib/utils.js
+++ b/deps/npm/node_modules/hawk/lib/utils.js
diff --git a/deps/npm/node_modules/hawk/package.json b/deps/npm/node_modules/hawk/package.json
new file mode 100755
index 0000000000..f9c37bb7d8
--- /dev/null
+++ b/deps/npm/node_modules/hawk/package.json
@@ -0,0 +1,78 @@
+{
+ "_from": "hawk@~6.0.2",
+ "_id": "hawk@6.0.2",
+ "_inBundle": false,
+ "_integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
+ "_location": "/hawk",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "hawk@~6.0.2",
+ "name": "hawk",
+ "escapedName": "hawk",
+ "rawSpec": "~6.0.2",
+ "saveSpec": null,
+ "fetchSpec": "~6.0.2"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
+ "_shasum": "af4d914eb065f9b5ce4d9d11c1cb2126eecc3038",
+ "_spec": "hawk@~6.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Eran Hammer",
+ "email": "eran@hammer.io",
+ "url": "http://hueniverse.com"
+ },
+ "babel": {
+ "presets": [
+ "es2015"
+ ]
+ },
+ "browser": "dist/browser.js",
+ "bugs": {
+ "url": "https://github.com/hueniverse/hawk/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "boom": "4.x.x",
+ "cryptiles": "3.x.x",
+ "hoek": "4.x.x",
+ "sntp": "2.x.x"
+ },
+ "deprecated": false,
+ "description": "HTTP Hawk Authentication Scheme",
+ "devDependencies": {
+ "babel-cli": "^6.1.2",
+ "babel-preset-es2015": "^6.1.2",
+ "code": "4.x.x",
+ "lab": "14.x.x"
+ },
+ "engines": {
+ "node": ">=4.5.0"
+ },
+ "homepage": "https://github.com/hueniverse/hawk#readme",
+ "keywords": [
+ "http",
+ "authentication",
+ "scheme",
+ "hawk"
+ ],
+ "license": "BSD-3-Clause",
+ "main": "lib/index.js",
+ "name": "hawk",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/hueniverse/hawk.git"
+ },
+ "scripts": {
+ "build-client": "mkdir -p dist; babel lib/browser.js --out-file dist/browser.js",
+ "prepublish": "npm run-script build-client",
+ "test": "lab -a code -t 100 -L",
+ "test-cov-html": "lab -a code -r html -o coverage.html"
+ },
+ "version": "6.0.2"
+}
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore b/deps/npm/node_modules/hoek/.npmignore
index adac8ad9c6..adac8ad9c6 100644
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/.npmignore
+++ b/deps/npm/node_modules/hoek/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE b/deps/npm/node_modules/hoek/LICENSE
index 133cbdd9ef..133cbdd9ef 100644
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/LICENSE
+++ b/deps/npm/node_modules/hoek/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md b/deps/npm/node_modules/hoek/README.md
index ec7bc2538d..ec7bc2538d 100644
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/README.md
+++ b/deps/npm/node_modules/hoek/README.md
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js b/deps/npm/node_modules/hoek/lib/escape.js
index 28d90ba479..28d90ba479 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/escape.js
+++ b/deps/npm/node_modules/hoek/lib/escape.js
diff --git a/deps/npm/node_modules/hoek/lib/index.js b/deps/npm/node_modules/hoek/lib/index.js
new file mode 100755
index 0000000000..75bbeb7c57
--- /dev/null
+++ b/deps/npm/node_modules/hoek/lib/index.js
@@ -0,0 +1,978 @@
+'use strict';
+
+// Load modules
+
+const Crypto = require('crypto');
+const Path = require('path');
+const Util = require('util');
+const Escape = require('./escape');
+
+
+// Declare internals
+
+const internals = {};
+
+
+// Clone object or array
+
+exports.clone = function (obj, seen) {
+
+ if (typeof obj !== 'object' ||
+ obj === null) {
+
+ return obj;
+ }
+
+ seen = seen || new Map();
+
+ const lookup = seen.get(obj);
+ if (lookup) {
+ return lookup;
+ }
+
+ let newObj;
+ let cloneDeep = false;
+
+ if (!Array.isArray(obj)) {
+ if (Buffer.isBuffer(obj)) {
+ newObj = new Buffer(obj);
+ }
+ else if (obj instanceof Date) {
+ newObj = new Date(obj.getTime());
+ }
+ else if (obj instanceof RegExp) {
+ newObj = new RegExp(obj);
+ }
+ else {
+ const proto = Object.getPrototypeOf(obj);
+ if (proto &&
+ proto.isImmutable) {
+
+ newObj = obj;
+ }
+ else {
+ newObj = Object.create(proto);
+ cloneDeep = true;
+ }
+ }
+ }
+ else {
+ newObj = [];
+ cloneDeep = true;
+ }
+
+ seen.set(obj, newObj);
+
+ if (cloneDeep) {
+ const keys = Object.getOwnPropertyNames(obj);
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ const descriptor = Object.getOwnPropertyDescriptor(obj, key);
+ if (descriptor &&
+ (descriptor.get ||
+ descriptor.set)) {
+
+ Object.defineProperty(newObj, key, descriptor);
+ }
+ else {
+ newObj[key] = exports.clone(obj[key], seen);
+ }
+ }
+ }
+
+ return newObj;
+};
+
+
+// Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied
+
+/*eslint-disable */
+exports.merge = function (target, source, isNullOverride /* = true */, isMergeArrays /* = true */) {
+/*eslint-enable */
+
+ exports.assert(target && typeof target === 'object', 'Invalid target value: must be an object');
+ exports.assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object');
+
+ if (!source) {
+ return target;
+ }
+
+ if (Array.isArray(source)) {
+ exports.assert(Array.isArray(target), 'Cannot merge array onto an object');
+ if (isMergeArrays === false) { // isMergeArrays defaults to true
+ target.length = 0; // Must not change target assignment
+ }
+
+ for (let i = 0; i < source.length; ++i) {
+ target.push(exports.clone(source[i]));
+ }
+
+ return target;
+ }
+
+ const keys = Object.keys(source);
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ if (key === '__proto__') {
+ continue;
+ }
+
+ const value = source[key];
+ if (value &&
+ typeof value === 'object') {
+
+ if (!target[key] ||
+ typeof target[key] !== 'object' ||
+ (Array.isArray(target[key]) !== Array.isArray(value)) ||
+ value instanceof Date ||
+ Buffer.isBuffer(value) ||
+ value instanceof RegExp) {
+
+ target[key] = exports.clone(value);
+ }
+ else {
+ exports.merge(target[key], value, isNullOverride, isMergeArrays);
+ }
+ }
+ else {
+ if (value !== null &&
+ value !== undefined) { // Explicit to preserve empty strings
+
+ target[key] = value;
+ }
+ else if (isNullOverride !== false) { // Defaults to true
+ target[key] = value;
+ }
+ }
+ }
+
+ return target;
+};
+
+
+// Apply options to a copy of the defaults
+
+exports.applyToDefaults = function (defaults, options, isNullOverride) {
+
+ exports.assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object');
+ exports.assert(!options || options === true || typeof options === 'object', 'Invalid options value: must be true, falsy or an object');
+
+ if (!options) { // If no options, return null
+ return null;
+ }
+
+ const copy = exports.clone(defaults);
+
+ if (options === true) { // If options is set to true, use defaults
+ return copy;
+ }
+
+ return exports.merge(copy, options, isNullOverride === true, false);
+};
+
+
+// Clone an object except for the listed keys which are shallow copied
+
+exports.cloneWithShallow = function (source, keys) {
+
+ if (!source ||
+ typeof source !== 'object') {
+
+ return source;
+ }
+
+ const storage = internals.store(source, keys); // Move shallow copy items to storage
+ const copy = exports.clone(source); // Deep copy the rest
+ internals.restore(copy, source, storage); // Shallow copy the stored items and restore
+ return copy;
+};
+
+
+internals.store = function (source, keys) {
+
+ const storage = {};
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ const value = exports.reach(source, key);
+ if (value !== undefined) {
+ storage[key] = value;
+ internals.reachSet(source, key, undefined);
+ }
+ }
+
+ return storage;
+};
+
+
+internals.restore = function (copy, source, storage) {
+
+ const keys = Object.keys(storage);
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ internals.reachSet(copy, key, storage[key]);
+ internals.reachSet(source, key, storage[key]);
+ }
+};
+
+
+internals.reachSet = function (obj, key, value) {
+
+ const path = key.split('.');
+ let ref = obj;
+ for (let i = 0; i < path.length; ++i) {
+ const segment = path[i];
+ if (i + 1 === path.length) {
+ ref[segment] = value;
+ }
+
+ ref = ref[segment];
+ }
+};
+
+
+// Apply options to defaults except for the listed keys which are shallow copied from option without merging
+
+exports.applyToDefaultsWithShallow = function (defaults, options, keys) {
+
+ exports.assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object');
+ exports.assert(!options || options === true || typeof options === 'object', 'Invalid options value: must be true, falsy or an object');
+ exports.assert(keys && Array.isArray(keys), 'Invalid keys');
+
+ if (!options) { // If no options, return null
+ return null;
+ }
+
+ const copy = exports.cloneWithShallow(defaults, keys);
+
+ if (options === true) { // If options is set to true, use defaults
+ return copy;
+ }
+
+ const storage = internals.store(options, keys); // Move shallow copy items to storage
+ exports.merge(copy, options, false, false); // Deep copy the rest
+ internals.restore(copy, options, storage); // Shallow copy the stored items and restore
+ return copy;
+};
+
+
+// Deep object or array comparison
+
+exports.deepEqual = function (obj, ref, options, seen) {
+
+ options = options || { prototype: true };
+
+ const type = typeof obj;
+
+ if (type !== typeof ref) {
+ return false;
+ }
+
+ if (type !== 'object' ||
+ obj === null ||
+ ref === null) {
+
+ if (obj === ref) { // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql
+ return obj !== 0 || 1 / obj === 1 / ref; // -0 / +0
+ }
+
+ return obj !== obj && ref !== ref; // NaN
+ }
+
+ seen = seen || [];
+ if (seen.indexOf(obj) !== -1) {
+ return true; // If previous comparison failed, it would have stopped execution
+ }
+
+ seen.push(obj);
+
+ if (Array.isArray(obj)) {
+ if (!Array.isArray(ref)) {
+ return false;
+ }
+
+ if (!options.part && obj.length !== ref.length) {
+ return false;
+ }
+
+ for (let i = 0; i < obj.length; ++i) {
+ if (options.part) {
+ let found = false;
+ for (let j = 0; j < ref.length; ++j) {
+ if (exports.deepEqual(obj[i], ref[j], options)) {
+ found = true;
+ break;
+ }
+ }
+
+ return found;
+ }
+
+ if (!exports.deepEqual(obj[i], ref[i], options)) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ if (Buffer.isBuffer(obj)) {
+ if (!Buffer.isBuffer(ref)) {
+ return false;
+ }
+
+ if (obj.length !== ref.length) {
+ return false;
+ }
+
+ for (let i = 0; i < obj.length; ++i) {
+ if (obj[i] !== ref[i]) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ if (obj instanceof Date) {
+ return (ref instanceof Date && obj.getTime() === ref.getTime());
+ }
+
+ if (obj instanceof RegExp) {
+ return (ref instanceof RegExp && obj.toString() === ref.toString());
+ }
+
+ if (options.prototype) {
+ if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {
+ return false;
+ }
+ }
+
+ const keys = Object.getOwnPropertyNames(obj);
+
+ if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {
+ return false;
+ }
+
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ const descriptor = Object.getOwnPropertyDescriptor(obj, key);
+ if (descriptor.get) {
+ if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {
+ return false;
+ }
+ }
+ else if (!exports.deepEqual(obj[key], ref[key], options, seen)) {
+ return false;
+ }
+ }
+
+ return true;
+};
+
+
+// Remove duplicate items from array
+
+exports.unique = (array, key) => {
+
+ let result;
+ if (key) {
+ result = [];
+ const index = new Set();
+ array.forEach((item) => {
+
+ const identifier = item[key];
+ if (!index.has(identifier)) {
+ index.add(identifier);
+ result.push(item);
+ }
+ });
+ }
+ else {
+ result = Array.from(new Set(array));
+ }
+
+ return result;
+};
+
+
+// Convert array into object
+
+exports.mapToObject = function (array, key) {
+
+ if (!array) {
+ return null;
+ }
+
+ const obj = {};
+ for (let i = 0; i < array.length; ++i) {
+ if (key) {
+ if (array[i][key]) {
+ obj[array[i][key]] = true;
+ }
+ }
+ else {
+ obj[array[i]] = true;
+ }
+ }
+
+ return obj;
+};
+
+
+// Find the common unique items in two arrays
+
+exports.intersect = function (array1, array2, justFirst) {
+
+ if (!array1 || !array2) {
+ return [];
+ }
+
+ const common = [];
+ const hash = (Array.isArray(array1) ? exports.mapToObject(array1) : array1);
+ const found = {};
+ for (let i = 0; i < array2.length; ++i) {
+ if (hash[array2[i]] && !found[array2[i]]) {
+ if (justFirst) {
+ return array2[i];
+ }
+
+ common.push(array2[i]);
+ found[array2[i]] = true;
+ }
+ }
+
+ return (justFirst ? null : common);
+};
+
+
+// Test if the reference contains the values
+
+exports.contain = function (ref, values, options) {
+
+ /*
+ string -> string(s)
+ array -> item(s)
+ object -> key(s)
+ object -> object (key:value)
+ */
+
+ let valuePairs = null;
+ if (typeof ref === 'object' &&
+ typeof values === 'object' &&
+ !Array.isArray(ref) &&
+ !Array.isArray(values)) {
+
+ valuePairs = values;
+ values = Object.keys(values);
+ }
+ else {
+ values = [].concat(values);
+ }
+
+ options = options || {}; // deep, once, only, part
+
+ exports.assert(arguments.length >= 2, 'Insufficient arguments');
+ exports.assert(typeof ref === 'string' || typeof ref === 'object', 'Reference must be string or an object');
+ exports.assert(values.length, 'Values array cannot be empty');
+
+ let compare;
+ let compareFlags;
+ if (options.deep) {
+ compare = exports.deepEqual;
+
+ const hasOnly = options.hasOwnProperty('only');
+ const hasPart = options.hasOwnProperty('part');
+
+ compareFlags = {
+ prototype: hasOnly ? options.only : hasPart ? !options.part : false,
+ part: hasOnly ? !options.only : hasPart ? options.part : true
+ };
+ }
+ else {
+ compare = (a, b) => a === b;
+ }
+
+ let misses = false;
+ const matches = new Array(values.length);
+ for (let i = 0; i < matches.length; ++i) {
+ matches[i] = 0;
+ }
+
+ if (typeof ref === 'string') {
+ let pattern = '(';
+ for (let i = 0; i < values.length; ++i) {
+ const value = values[i];
+ exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');
+ pattern += (i ? '|' : '') + exports.escapeRegex(value);
+ }
+
+ const regex = new RegExp(pattern + ')', 'g');
+ const leftovers = ref.replace(regex, ($0, $1) => {
+
+ const index = values.indexOf($1);
+ ++matches[index];
+ return ''; // Remove from string
+ });
+
+ misses = !!leftovers;
+ }
+ else if (Array.isArray(ref)) {
+ for (let i = 0; i < ref.length; ++i) {
+ let matched = false;
+ for (let j = 0; j < values.length && matched === false; ++j) {
+ matched = compare(values[j], ref[i], compareFlags) && j;
+ }
+
+ if (matched !== false) {
+ ++matches[matched];
+ }
+ else {
+ misses = true;
+ }
+ }
+ }
+ else {
+ const keys = Object.getOwnPropertyNames(ref);
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ const pos = values.indexOf(key);
+ if (pos !== -1) {
+ if (valuePairs &&
+ !compare(valuePairs[key], ref[key], compareFlags)) {
+
+ return false;
+ }
+
+ ++matches[pos];
+ }
+ else {
+ misses = true;
+ }
+ }
+ }
+
+ let result = false;
+ for (let i = 0; i < matches.length; ++i) {
+ result = result || !!matches[i];
+ if ((options.once && matches[i] > 1) ||
+ (!options.part && !matches[i])) {
+
+ return false;
+ }
+ }
+
+ if (options.only &&
+ misses) {
+
+ return false;
+ }
+
+ return result;
+};
+
+
+// Flatten array
+
+exports.flatten = function (array, target) {
+
+ const result = target || [];
+
+ for (let i = 0; i < array.length; ++i) {
+ if (Array.isArray(array[i])) {
+ exports.flatten(array[i], result);
+ }
+ else {
+ result.push(array[i]);
+ }
+ }
+
+ return result;
+};
+
+
+// Convert an object key chain string ('a.b.c') to reference (object[a][b][c])
+
+exports.reach = function (obj, chain, options) {
+
+ if (chain === false ||
+ chain === null ||
+ typeof chain === 'undefined') {
+
+ return obj;
+ }
+
+ options = options || {};
+ if (typeof options === 'string') {
+ options = { separator: options };
+ }
+
+ const path = chain.split(options.separator || '.');
+ let ref = obj;
+ for (let i = 0; i < path.length; ++i) {
+ let key = path[i];
+ if (key[0] === '-' && Array.isArray(ref)) {
+ key = key.slice(1, key.length);
+ key = ref.length - key;
+ }
+
+ if (!ref ||
+ !((typeof ref === 'object' || typeof ref === 'function') && key in ref) ||
+ (typeof ref !== 'object' && options.functions === false)) { // Only object and function can have properties
+
+ exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);
+ exports.assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);
+ ref = options.default;
+ break;
+ }
+
+ ref = ref[key];
+ }
+
+ return ref;
+};
+
+
+exports.reachTemplate = function (obj, template, options) {
+
+ return template.replace(/{([^}]+)}/g, ($0, chain) => {
+
+ const value = exports.reach(obj, chain, options);
+ return (value === undefined || value === null ? '' : value);
+ });
+};
+
+
+exports.formatStack = function (stack) {
+
+ const trace = [];
+ for (let i = 0; i < stack.length; ++i) {
+ const item = stack[i];
+ trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);
+ }
+
+ return trace;
+};
+
+
+exports.formatTrace = function (trace) {
+
+ const display = [];
+
+ for (let i = 0; i < trace.length; ++i) {
+ const row = trace[i];
+ display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');
+ }
+
+ return display;
+};
+
+
+exports.callStack = function (slice) {
+
+ // http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
+
+ const v8 = Error.prepareStackTrace;
+ Error.prepareStackTrace = function (_, stack) {
+
+ return stack;
+ };
+
+ const capture = {};
+ Error.captureStackTrace(capture, this); // arguments.callee is not supported in strict mode so we use this and slice the trace of this off the result
+ const stack = capture.stack;
+
+ Error.prepareStackTrace = v8;
+
+ const trace = exports.formatStack(stack);
+
+ return trace.slice(1 + slice);
+};
+
+
+exports.displayStack = function (slice) {
+
+ const trace = exports.callStack(slice === undefined ? 1 : slice + 1);
+
+ return exports.formatTrace(trace);
+};
+
+
+exports.abortThrow = false;
+
+
+exports.abort = function (message, hideStack) {
+
+ if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) {
+ throw new Error(message || 'Unknown error');
+ }
+
+ let stack = '';
+ if (!hideStack) {
+ stack = exports.displayStack(1).join('\n\t');
+ }
+ console.log('ABORT: ' + message + '\n\t' + stack);
+ process.exit(1);
+};
+
+
+exports.assert = function (condition /*, msg1, msg2, msg3 */) {
+
+ if (condition) {
+ return;
+ }
+
+ if (arguments.length === 2 && arguments[1] instanceof Error) {
+ throw arguments[1];
+ }
+
+ let msgs = [];
+ for (let i = 1; i < arguments.length; ++i) {
+ if (arguments[i] !== '') {
+ msgs.push(arguments[i]); // Avoids Array.slice arguments leak, allowing for V8 optimizations
+ }
+ }
+
+ msgs = msgs.map((msg) => {
+
+ return typeof msg === 'string' ? msg : msg instanceof Error ? msg.message : exports.stringify(msg);
+ });
+
+ throw new Error(msgs.join(' ') || 'Unknown error');
+};
+
+
+exports.Timer = function () {
+
+ this.ts = 0;
+ this.reset();
+};
+
+
+exports.Timer.prototype.reset = function () {
+
+ this.ts = Date.now();
+};
+
+
+exports.Timer.prototype.elapsed = function () {
+
+ return Date.now() - this.ts;
+};
+
+
+exports.Bench = function () {
+
+ this.ts = 0;
+ this.reset();
+};
+
+
+exports.Bench.prototype.reset = function () {
+
+ this.ts = exports.Bench.now();
+};
+
+
+exports.Bench.prototype.elapsed = function () {
+
+ return exports.Bench.now() - this.ts;
+};
+
+
+exports.Bench.now = function () {
+
+ const ts = process.hrtime();
+ return (ts[0] * 1e3) + (ts[1] / 1e6);
+};
+
+
+// Escape string for Regex construction
+
+exports.escapeRegex = function (string) {
+
+ // Escape ^$.*+-?=!:|\/()[]{},
+ return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&');
+};
+
+
+// Base64url (RFC 4648) encode
+
+exports.base64urlEncode = function (value, encoding) {
+
+ exports.assert(typeof value === 'string' || Buffer.isBuffer(value), 'value must be string or buffer');
+ const buf = (Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary'));
+ return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '');
+};
+
+
+// Base64url (RFC 4648) decode
+
+exports.base64urlDecode = function (value, encoding) {
+
+ if (typeof value !== 'string') {
+
+ return new Error('Value not a string');
+ }
+
+ if (!/^[\w\-]*$/.test(value)) {
+
+ return new Error('Invalid character');
+ }
+
+ const buf = new Buffer(value, 'base64');
+ return (encoding === 'buffer' ? buf : buf.toString(encoding || 'binary'));
+};
+
+
+// Escape attribute value for use in HTTP header
+
+exports.escapeHeaderAttribute = function (attribute) {
+
+ // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \, "
+
+ exports.assert(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');
+
+ return attribute.replace(/\\/g, '\\\\').replace(/\"/g, '\\"'); // Escape quotes and slash
+};
+
+
+exports.escapeHtml = function (string) {
+
+ return Escape.escapeHtml(string);
+};
+
+
+exports.escapeJavaScript = function (string) {
+
+ return Escape.escapeJavaScript(string);
+};
+
+exports.escapeJson = function (string) {
+
+ return Escape.escapeJson(string);
+};
+
+exports.nextTick = function (callback) {
+
+ return function () {
+
+ const args = arguments;
+ process.nextTick(() => {
+
+ callback.apply(null, args);
+ });
+ };
+};
+
+
+exports.once = function (method) {
+
+ if (method._hoekOnce) {
+ return method;
+ }
+
+ let once = false;
+ const wrapped = function () {
+
+ if (!once) {
+ once = true;
+ method.apply(null, arguments);
+ }
+ };
+
+ wrapped._hoekOnce = true;
+
+ return wrapped;
+};
+
+
+exports.isInteger = Number.isSafeInteger;
+
+
+exports.ignore = function () { };
+
+
+exports.inherits = Util.inherits;
+
+
+exports.format = Util.format;
+
+
+exports.transform = function (source, transform, options) {
+
+ exports.assert(source === null || source === undefined || typeof source === 'object' || Array.isArray(source), 'Invalid source object: must be null, undefined, an object, or an array');
+ const separator = (typeof options === 'object' && options !== null) ? (options.separator || '.') : '.';
+
+ if (Array.isArray(source)) {
+ const results = [];
+ for (let i = 0; i < source.length; ++i) {
+ results.push(exports.transform(source[i], transform, options));
+ }
+ return results;
+ }
+
+ const result = {};
+ const keys = Object.keys(transform);
+
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ const path = key.split(separator);
+ const sourcePath = transform[key];
+
+ exports.assert(typeof sourcePath === 'string', 'All mappings must be "." delineated strings');
+
+ let segment;
+ let res = result;
+
+ while (path.length > 1) {
+ segment = path.shift();
+ if (!res[segment]) {
+ res[segment] = {};
+ }
+ res = res[segment];
+ }
+ segment = path.shift();
+ res[segment] = exports.reach(source, sourcePath, options);
+ }
+
+ return result;
+};
+
+
+exports.uniqueFilename = function (path, extension) {
+
+ if (extension) {
+ extension = extension[0] !== '.' ? '.' + extension : extension;
+ }
+ else {
+ extension = '';
+ }
+
+ path = Path.resolve(path);
+ const name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;
+ return Path.join(path, name);
+};
+
+
+exports.stringify = function () {
+
+ try {
+ return JSON.stringify.apply(null, arguments);
+ }
+ catch (err) {
+ return '[Cannot display object: ' + err.message + ']';
+ }
+};
+
+
+exports.shallow = function (source) {
+
+ const target = {};
+ const keys = Object.keys(source);
+ for (let i = 0; i < keys.length; ++i) {
+ const key = keys[i];
+ target[key] = source[key];
+ }
+
+ return target;
+};
diff --git a/deps/npm/node_modules/hoek/package.json b/deps/npm/node_modules/hoek/package.json
new file mode 100644
index 0000000000..8d36bdcd59
--- /dev/null
+++ b/deps/npm/node_modules/hoek/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "hoek@4.x.x",
+ "_id": "hoek@4.2.1",
+ "_inBundle": false,
+ "_integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==",
+ "_location": "/hoek",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "hoek@4.x.x",
+ "name": "hoek",
+ "escapedName": "hoek",
+ "rawSpec": "4.x.x",
+ "saveSpec": null,
+ "fetchSpec": "4.x.x"
+ },
+ "_requiredBy": [
+ "/boom",
+ "/cryptiles/boom",
+ "/hawk",
+ "/sntp"
+ ],
+ "_resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz",
+ "_shasum": "9634502aa12c445dd5a7c5734b572bb8738aacbb",
+ "_spec": "hoek@4.x.x",
+ "_where": "/Users/rebecca/code/npm/node_modules/hawk",
+ "bugs": {
+ "url": "https://github.com/hapijs/hoek/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "General purpose node utilities",
+ "devDependencies": {
+ "code": "4.x.x",
+ "lab": "13.x.x"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ },
+ "homepage": "https://github.com/hapijs/hoek#readme",
+ "keywords": [
+ "utilities"
+ ],
+ "license": "BSD-3-Clause",
+ "main": "lib/index.js",
+ "name": "hoek",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/hapijs/hoek.git"
+ },
+ "scripts": {
+ "test": "lab -a code -t 100 -L",
+ "test-cov-html": "lab -a code -t 100 -L -r html -o coverage.html"
+ },
+ "version": "4.2.1"
+}
diff --git a/deps/npm/node_modules/hosted-git-info/CHANGELOG.md b/deps/npm/node_modules/hosted-git-info/CHANGELOG.md
new file mode 100644
index 0000000000..d450f74a92
--- /dev/null
+++ b/deps/npm/node_modules/hosted-git-info/CHANGELOG.md
@@ -0,0 +1,17 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="2.6.0"></a>
+# [2.6.0](https://github.com/npm/hosted-git-info/compare/v2.5.0...v2.6.0) (2018-03-07)
+
+
+### Bug Fixes
+
+* **compat:** remove Object.assign fallback ([#25](https://github.com/npm/hosted-git-info/issues/25)) ([627ab55](https://github.com/npm/hosted-git-info/commit/627ab55))
+* **git-host:** fix forgotten extend() ([eba1f7b](https://github.com/npm/hosted-git-info/commit/eba1f7b))
+
+
+### Features
+
+* **browse:** fragment support for browse() ([#28](https://github.com/npm/hosted-git-info/issues/28)) ([cd5e5bb](https://github.com/npm/hosted-git-info/commit/cd5e5bb))
diff --git a/deps/npm/node_modules/hosted-git-info/README.md b/deps/npm/node_modules/hosted-git-info/README.md
index 503090d934..7b723f6b9e 100644
--- a/deps/npm/node_modules/hosted-git-info/README.md
+++ b/deps/npm/node_modules/hosted-git-info/README.md
@@ -77,9 +77,11 @@ would return `https://raw.githubusercontent.com/npm/hosted-git-info/v1.0.0/packa
eg, `github:npm/hosted-git-info`
-* info.browse(opts)
+* info.browse(path, fragment, opts)
-eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0`
+eg, `https://github.com/npm/hosted-git-info/tree/v1.2.0`,
+`https://github.com/npm/hosted-git-info/tree/v1.2.0/package.json`,
+`https://github.com/npm/hosted-git-info/tree/v1.2.0/REAMDE.md#supported-hosts`
* info.bugs(opts)
diff --git a/deps/npm/node_modules/hosted-git-info/git-host-info.js b/deps/npm/node_modules/hosted-git-info/git-host-info.js
index 93cf617440..6d6c109de7 100644
--- a/deps/npm/node_modules/hosted-git-info/git-host-info.js
+++ b/deps/npm/node_modules/hosted-git-info/git-host-info.js
@@ -36,11 +36,15 @@ var gitHosts = module.exports = {
'sshtemplate': 'git@{domain}:/{project}.git{#committish}',
'sshurltemplate': 'git+ssh://git@{domain}/{project}.git{#committish}',
'browsetemplate': 'https://{domain}/{project}{/committish}',
+ 'browsefiletemplate': 'https://{domain}/{project}{/committish}{#path}',
'docstemplate': 'https://{domain}/{project}{/committish}',
'httpstemplate': 'git+https://{domain}/{project}.git{#committish}',
'shortcuttemplate': '{type}:{project}{#committish}',
'pathtemplate': '{project}{#committish}',
- 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz'
+ 'tarballtemplate': 'https://{domain}/{user}/{project}/archive/{committish}.tar.gz',
+ 'hashformat': function (fragment) {
+ return 'file-' + formatHashFragment(fragment)
+ }
}
}
@@ -48,12 +52,14 @@ var gitHostDefaults = {
'sshtemplate': 'git@{domain}:{user}/{project}.git{#committish}',
'sshurltemplate': 'git+ssh://git@{domain}/{user}/{project}.git{#committish}',
'browsetemplate': 'https://{domain}/{user}/{project}{/tree/committish}',
+ 'browsefiletemplate': 'https://{domain}/{user}/{project}/{treepath}/{committish}/{path}{#fragment}',
'docstemplate': 'https://{domain}/{user}/{project}{/tree/committish}#readme',
'httpstemplate': 'git+https://{auth@}{domain}/{user}/{project}.git{#committish}',
'filetemplate': 'https://{domain}/{user}/{project}/raw/{committish}/{path}',
'shortcuttemplate': '{type}:{user}/{project}{#committish}',
'pathtemplate': '{user}/{project}{#committish}',
- 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/
+ 'pathmatch': /^[/]([^/]+)[/]([^/]+?)(?:[.]git|[/])?$/,
+ 'hashformat': formatHashFragment
}
Object.keys(gitHosts).forEach(function (name) {
@@ -66,3 +72,7 @@ Object.keys(gitHosts).forEach(function (name) {
return protocol.replace(/([\\+*{}()[\]$^|])/g, '\\$1')
}).join('|') + '):$')
})
+
+function formatHashFragment (fragment) {
+ return fragment.toLowerCase().replace(/^\W+|\/|\W+$/g, '').replace(/\W+/g, '-')
+}
diff --git a/deps/npm/node_modules/hosted-git-info/git-host.js b/deps/npm/node_modules/hosted-git-info/git-host.js
index 4c6641bbf7..6b97531ad6 100644
--- a/deps/npm/node_modules/hosted-git-info/git-host.js
+++ b/deps/npm/node_modules/hosted-git-info/git-host.js
@@ -1,6 +1,5 @@
'use strict'
var gitHosts = require('./git-host-info.js')
-var extend = Object.assign || require('util')._extend
var GitHost = module.exports = function (type, user, auth, project, committish, defaultRepresentation, opts) {
var gitHostInfo = this
@@ -23,18 +22,25 @@ GitHost.prototype.hash = function () {
GitHost.prototype._fill = function (template, opts) {
if (!template) return
- var vars = extend({}, opts)
- opts = extend(extend({}, this.opts), opts)
+ var vars = Object.assign({}, opts)
+ vars.path = vars.path ? vars.path.replace(/^[/]+/g, '') : ''
+ opts = Object.assign({}, this.opts, opts)
var self = this
Object.keys(this).forEach(function (key) {
if (self[key] != null && vars[key] == null) vars[key] = self[key]
})
var rawAuth = vars.auth
var rawComittish = vars.committish
+ var rawFragment = vars.fragment
+ var rawPath = vars.path
Object.keys(vars).forEach(function (key) {
vars[key] = encodeURIComponent(vars[key])
})
vars['auth@'] = rawAuth ? rawAuth + '@' : ''
+ vars['#fragment'] = rawFragment ? '#' + this.hashformat(rawFragment) : ''
+ vars.fragment = vars.fragment ? vars.fragment : ''
+ vars['#path'] = rawPath ? '#' + this.hashformat(rawPath) : ''
+ vars['/path'] = vars.path ? '/' + vars.path : ''
if (opts.noCommittish) {
vars['#committish'] = ''
vars['/tree/committish'] = ''
@@ -67,8 +73,19 @@ GitHost.prototype.sshurl = function (opts) {
return this._fill(this.sshurltemplate, opts)
}
-GitHost.prototype.browse = function (opts) {
- return this._fill(this.browsetemplate, opts)
+GitHost.prototype.browse = function (P, F, opts) {
+ if (typeof P === 'string') {
+ if (typeof F !== 'string') {
+ opts = F
+ F = null
+ }
+ return this._fill(this.browsefiletemplate, Object.assign({
+ fragment: F,
+ path: P
+ }, opts))
+ } else {
+ return this._fill(this.browsetemplate, P)
+ }
}
GitHost.prototype.docs = function (opts) {
@@ -100,9 +117,7 @@ GitHost.prototype.tarball = function (opts) {
}
GitHost.prototype.file = function (P, opts) {
- return this._fill(this.filetemplate, extend({
- path: P.replace(/^[/]+/g, '')
- }, opts))
+ return this._fill(this.filetemplate, Object.assign({ path: P }, opts))
}
GitHost.prototype.getDefaultRepresentation = function () {
diff --git a/deps/npm/node_modules/hosted-git-info/package.json b/deps/npm/node_modules/hosted-git-info/package.json
index de691a86c0..d176266cca 100644
--- a/deps/npm/node_modules/hosted-git-info/package.json
+++ b/deps/npm/node_modules/hosted-git-info/package.json
@@ -1,29 +1,33 @@
{
- "_from": "hosted-git-info@2.5.0",
- "_id": "hosted-git-info@2.5.0",
+ "_args": [
+ [
+ "hosted-git-info@2.6.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "hosted-git-info@2.6.0",
+ "_id": "hosted-git-info@2.6.0",
"_inBundle": false,
- "_integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
+ "_integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==",
"_location": "/hosted-git-info",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "hosted-git-info@2.5.0",
+ "raw": "hosted-git-info@2.6.0",
"name": "hosted-git-info",
"escapedName": "hosted-git-info",
- "rawSpec": "2.5.0",
+ "rawSpec": "2.6.0",
"saveSpec": null,
- "fetchSpec": "2.5.0"
+ "fetchSpec": "2.6.0"
},
"_requiredBy": [
- "#USER",
"/",
"/normalize-package-data",
"/npm-package-arg"
],
- "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "_shasum": "6d60e34b3abbc8313062c3b798ef8d901a07af3c",
- "_spec": "hosted-git-info@2.5.0",
+ "_resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz",
+ "_spec": "2.6.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -33,13 +37,15 @@
"bugs": {
"url": "https://github.com/npm/hosted-git-info/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "Provides metadata and conversions from repository urls for Github, Bitbucket and Gitlab",
"devDependencies": {
"standard": "^9.0.2",
+ "standard-version": "^4.3.0",
"tap": "^10.3.0"
},
+ "engines": {
+ "node": ">=4"
+ },
"files": [
"index.js",
"git-host.js",
@@ -60,7 +66,11 @@
"url": "git+https://github.com/npm/hosted-git-info.git"
},
"scripts": {
- "test": "standard && tap -J --coverage test/*.js"
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --nyc-arg=--all --coverage test"
},
- "version": "2.5.0"
+ "version": "2.6.0"
}
diff --git a/deps/npm/node_modules/http-cache-semantics/README.md b/deps/npm/node_modules/http-cache-semantics/README.md
new file mode 100644
index 0000000000..99069fc8d7
--- /dev/null
+++ b/deps/npm/node_modules/http-cache-semantics/README.md
@@ -0,0 +1,177 @@
+# Can I cache this? [![Build Status](https://travis-ci.org/pornel/http-cache-semantics.svg?branch=master)](https://travis-ci.org/pornel/http-cache-semantics)
+
+`CachePolicy` tells when responses can be reused from a cache, taking into account [HTTP RFC 7234](http://httpwg.org/specs/rfc7234.html) rules for user agents and shared caches. It's aware of many tricky details such as the `Vary` header, proxy revalidation, and authenticated responses.
+
+## Usage
+
+Cacheability of an HTTP response depends on how it was requested, so both `request` and `response` are required to create the policy.
+
+```js
+const policy = new CachePolicy(request, response, options);
+
+if (!policy.storable()) {
+ // throw the response away, it's not usable at all
+ return;
+}
+
+// Cache the data AND the policy object in your cache
+// (this is pseudocode, roll your own cache (lru-cache package works))
+letsPretendThisIsSomeCache.set(request.url, {policy, response}, policy.timeToLive());
+```
+
+```js
+// And later, when you receive a new request:
+const {policy, response} = letsPretendThisIsSomeCache.get(newRequest.url);
+
+// It's not enough that it exists in the cache, it has to match the new request, too:
+if (policy && policy.satisfiesWithoutRevalidation(newRequest)) {
+ // OK, the previous response can be used to respond to the `newRequest`.
+ // Response headers have to be updated, e.g. to add Age and remove uncacheable headers.
+ response.headers = policy.responseHeaders();
+ return response;
+}
+```
+
+It may be surprising, but it's not enough for an HTTP response to be [fresh](#yo-fresh) to satisfy a request. It may need to match request headers specified in `Vary`. Even a matching fresh response may still not be usable if the new request restricted cacheability, etc.
+
+The key method is `satisfiesWithoutRevalidation(newRequest)`, which checks whether the `newRequest` is compatible with the original request and whether all caching conditions are met.
+
+### Constructor options
+
+Request and response must have a `headers` property with all header names in lower case. `url`, `status` and `method` are optional (defaults are any URL, status `200`, and `GET` method).
+
+```js
+const request = {
+ url: '/',
+ method: 'GET',
+ headers: {
+ accept: '*/*',
+ },
+};
+
+const response = {
+ status: 200,
+ headers: {
+ 'cache-control': 'public, max-age=7234',
+ },
+};
+
+const options = {
+ shared: true,
+ cacheHeuristic: 0.1,
+ immutableMinTimeToLive: 24*3600*1000, // 24h
+ ignoreCargoCult: false,
+};
+```
+
+If `options.shared` is `true` (default), then the response is evaluated from a perspective of a shared cache (i.e. `private` is not cacheable and `s-maxage` is respected). If `options.shared` is `false`, then the response is evaluated from a perspective of a single-user cache (i.e. `private` is cacheable and `s-maxage` is ignored).
+
+`options.cacheHeuristic` is a fraction of response's age that is used as a fallback cache duration. The default is 0.1 (10%), e.g. if a file hasn't been modified for 100 days, it'll be cached for 100*0.1 = 10 days.
+
+`options.immutableMinTimeToLive` is a number of milliseconds to assume as the default time to cache responses with `Cache-Control: immutable`. Note that [per RFC](http://httpwg.org/http-extensions/immutable.html) these can become stale, so `max-age` still overrides the default.
+
+If `options.ignoreCargoCult` is true, common anti-cache directives will be completely ignored if the non-standard `pre-check` and `post-check` directives are present. These two useless directives are most commonly found in bad StackOverflow answers and PHP's "session limiter" defaults.
+
+### `storable()`
+
+Returns `true` if the response can be stored in a cache. If it's `false` then you MUST NOT store either the request or the response.
+
+### `satisfiesWithoutRevalidation(newRequest)`
+
+This is the most important method. Use this method to check whether the cached response is still fresh in the context of the new request.
+
+If it returns `true`, then the given `request` matches the original response this cache policy has been created with, and the response can be reused without contacting the server. Note that the old response can't be returned without being updated, see `responseHeaders()`.
+
+If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), or may require to be refreshed first (see `revalidationHeaders()`).
+
+### `responseHeaders()`
+
+Returns updated, filtered set of response headers to return to clients receiving the cached response. This function is necessary, because proxies MUST always remove hop-by-hop headers (such as `TE` and `Connection`) and update response's `Age` to avoid doubling cache time.
+
+```js
+cachedResponse.headers = cachePolicy.responseHeaders(cachedResponse);
+```
+
+### `timeToLive()`
+
+Returns approximate time in *milliseconds* until the response becomes stale (i.e. not fresh).
+
+After that time (when `timeToLive() <= 0`) the response might not be usable without revalidation. However, there are exceptions, e.g. a client can explicitly allow stale responses, so always check with `satisfiesWithoutRevalidation()`.
+
+### `toObject()`/`fromObject(json)`
+
+Chances are you'll want to store the `CachePolicy` object along with the cached response. `obj = policy.toObject()` gives a plain JSON-serializable object. `policy = CachePolicy.fromObject(obj)` creates an instance from it.
+
+### Refreshing stale cache (revalidation)
+
+When a cached response has expired, it can be made fresh again by making a request to the origin server. The server may respond with status 304 (Not Modified) without sending the response body again, saving bandwidth.
+
+The following methods help perform the update efficiently and correctly.
+
+#### `revalidationHeaders(newRequest)`
+
+Returns updated, filtered set of request headers to send to the origin server to check if the cached response can be reused. These headers allow the origin server to return status 304 indicating the response is still fresh. All headers unrelated to caching are passed through as-is.
+
+Use this method when updating cache from the origin server.
+
+```js
+updateRequest.headers = cachePolicy.revalidationHeaders(updateRequest);
+```
+
+#### `revalidatedPolicy(revalidationRequest, revalidationResponse)`
+
+Use this method to update the cache after receiving a new response from the origin server. It returns an object with two keys:
+
+* `policy` ā€” A new `CachePolicy` with HTTP headers updated from `revalidationResponse`. You can always replace the old cached `CachePolicy` with the new one.
+* `modified` ā€” Boolean indicating whether the response body has changed.
+ * If `false`, then a valid 304 Not Modified response has been received, and you can reuse the old cached response body.
+ * If `true`, you should use new response's body (if present), or make another request to the origin server without any conditional headers (i.e. don't use `revalidationHeaders()` this time) to get the new resource.
+
+```js
+// When serving requests from cache:
+const {oldPolicy, oldResponse} = letsPretendThisIsSomeCache.get(newRequest.url);
+
+if (!oldPolicy.satisfiesWithoutRevalidation(newRequest)) {
+ // Change the request to ask the origin server if the cached response can be used
+ newRequest.headers = oldPolicy.revalidationHeaders(newRequest);
+
+ // Send request to the origin server. The server may respond with status 304
+ const newResponse = await makeRequest(newResponse);
+
+ // Create updated policy and combined response from the old and new data
+ const {policy, modified} = oldPolicy.revalidatedPolicy(newRequest, newResponse);
+ const response = modified ? newResponse : oldResponse;
+
+ // Update the cache with the newer/fresher response
+ letsPretendThisIsSomeCache.set(newRequest.url, {policy, response}, policy.timeToLive());
+
+ // And proceed returning cached response as usual
+ response.headers = policy.responseHeaders();
+ return response;
+}
+```
+
+# Yo, FRESH
+
+![satisfiesWithoutRevalidation](fresh.jpg)
+
+## Used by
+
+* [ImageOptim API](https://imageoptim.com/api), [make-fetch-happen](https://github.com/zkat/make-fetch-happen), [cacheable-request](https://www.npmjs.com/package/cacheable-request), [npm/registry-fetch](https://github.com/npm/registry-fetch), [etc.](https://github.com/pornel/http-cache-semantics/network/dependents)
+
+## Implemented
+
+* `Cache-Control` response header with all the quirks.
+* `Expires` with check for bad clocks.
+* `Pragma` response header.
+* `Age` response header.
+* `Vary` response header.
+* Default cacheability of statuses and methods.
+* Requests for stale data.
+* Filtering of hop-by-hop headers.
+* Basic revalidation request
+
+## Unimplemented
+
+* Merging of range requests, If-Range (but correctly supports them as non-cacheable)
+* Revalidation of multiple representations
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js b/deps/npm/node_modules/http-cache-semantics/node4/index.js
index bcdaebe80f..bcdaebe80f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js
+++ b/deps/npm/node_modules/http-cache-semantics/node4/index.js
diff --git a/deps/npm/node_modules/http-cache-semantics/package.json b/deps/npm/node_modules/http-cache-semantics/package.json
new file mode 100644
index 0000000000..000f357a83
--- /dev/null
+++ b/deps/npm/node_modules/http-cache-semantics/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "http-cache-semantics@^3.8.1",
+ "_id": "http-cache-semantics@3.8.1",
+ "_inBundle": false,
+ "_integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==",
+ "_location": "/http-cache-semantics",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "http-cache-semantics@^3.8.1",
+ "name": "http-cache-semantics",
+ "escapedName": "http-cache-semantics",
+ "rawSpec": "^3.8.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.8.1"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz",
+ "_shasum": "39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2",
+ "_spec": "http-cache-semantics@^3.8.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Kornel Lesiński",
+ "email": "kornel@geekhood.net",
+ "url": "https://kornel.ski/"
+ },
+ "bugs": {
+ "url": "https://github.com/pornel/http-cache-semantics/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Parses Cache-Control and other headers. Helps building correct HTTP caches and proxies",
+ "devDependencies": {
+ "babel-cli": "^6.24.1",
+ "babel-preset-env": "^1.6.1",
+ "mocha": "^3.4.2"
+ },
+ "files": [
+ "node4/index.js"
+ ],
+ "homepage": "https://github.com/pornel/http-cache-semantics#readme",
+ "license": "BSD-2-Clause",
+ "main": "node4/index.js",
+ "name": "http-cache-semantics",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/pornel/http-cache-semantics.git"
+ },
+ "scripts": {
+ "compile": "babel -d node4/ index.js; babel -d node4/test test",
+ "prepublish": "npm run compile",
+ "test": "npm run compile; mocha node4/test"
+ },
+ "version": "3.8.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml b/deps/npm/node_modules/http-proxy-agent/.travis.yml
index 805d3d50d2..805d3d50d2 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml
+++ b/deps/npm/node_modules/http-proxy-agent/.travis.yml
diff --git a/deps/npm/node_modules/http-proxy-agent/History.md b/deps/npm/node_modules/http-proxy-agent/History.md
new file mode 100644
index 0000000000..7e3e1e7836
--- /dev/null
+++ b/deps/npm/node_modules/http-proxy-agent/History.md
@@ -0,0 +1,101 @@
+
+2.1.0 / 2018-03-03
+==================
+
+ * Add "engines" to package.json
+ * Use `Buffer.from()`
+ * Update package.json - outdated debug version (#7)
+
+2.0.0 / 2017-06-27
+==================
+
+ * drop support for Node.js < v4
+ * update "mocha" to v3
+ * update to "agent-base" v4
+ * rename http-proxy-agent.js to index.js
+ * remove `extend` dependency
+ * test Node.js 4, 5, 6, 7 and 8 on Travis-CI
+
+1.0.0 / 2015-07-10
+==================
+
+ * http-proxy-agent: use %o debug() formatter
+ * http-proxy-agent: remove `defaults` merging logic
+ * package: update "agent-base" to v2
+ * test: add an assert() call
+ * test: use ssl-cert-snakeoil self-signed SSL certs
+ * README: add note about node-https-proxy-agent
+
+0.2.7 / 2015-07-06
+==================
+
+ * travis: ensure latest npm before testing
+ * travis: test node v0.8, v0.10, and v0.12
+ * README: use SVG for Travis-CI badge
+ * package: update "extend" to v3
+ * package: update "mocha" to v2
+ * package: update "debug" to v2
+
+0.2.6 / 2014-06-11
+==================
+
+ * package: update "debug" to v1.0.0
+
+0.2.5 / 2014-04-09
+==================
+
+ * package: update outdated deps
+
+0.2.4 / 2014-01-12
+==================
+
+ * http-proxy-agent: fix using the agent after the first tick of creating the ClientRequest
+ * http-proxy-agent: use "debug" module
+ * History: fix whitespace
+
+0.2.3 / 2013-11-18
+==================
+
+ * https-proxy-agent: allow "https" without trailing colon
+
+0.2.2 / 2013-11-16
+==================
+
+ * http-proxy-agent: delete the `port` if it matches default port
+ * http-proxy-agent: don't mix in the `proxy` opts to the endpoint opts
+ * http-proxy-agent: delete `pathname` from the proxy opts as well
+
+0.2.1 / 2013-10-28
+==================
+
+ * http-proxy-agent: properly proxy the query-string on request URLs (GH-1)
+
+0.2.0 / 2013-09-16
+==================
+
+ * http-proxy-agent: update to `agent-base` v1.0.0 API
+ * http-proxy-agent: rename `secure` option to `secureProxy`
+ * http-proxy-agent: default the "port" to 80 if not set
+ * http-proxy-agent: use "extend" module
+ * test: refactor tests
+ * test: add 407 auth test
+ * test: add bad proxy info test
+ * test: add "secureProxy" option tests
+
+0.1.0 / 2013-09-03
+==================
+
+ * Add initial "Proxy-Authorization" Basic authentication support
+
+0.0.2 / 2013-07-11
+==================
+
+ * test: make tests pass, ensure valid IP addresses are returned
+ * test: add tests
+ * throw an Error when no proxy info is given
+ * add support for passing options to net/tls .connect()
+
+0.0.1 / 2013-07-09
+==================
+
+ * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md b/deps/npm/node_modules/http-proxy-agent/README.md
index 4f1fc372bd..4f1fc372bd 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md
+++ b/deps/npm/node_modules/http-proxy-agent/README.md
diff --git a/deps/npm/node_modules/http-proxy-agent/index.js b/deps/npm/node_modules/http-proxy-agent/index.js
new file mode 100644
index 0000000000..f90a5297ca
--- /dev/null
+++ b/deps/npm/node_modules/http-proxy-agent/index.js
@@ -0,0 +1,111 @@
+
+/**
+ * Module dependencies.
+ */
+
+var net = require('net');
+var tls = require('tls');
+var url = require('url');
+var Agent = require('agent-base');
+var inherits = require('util').inherits;
+var debug = require('debug')('http-proxy-agent');
+
+/**
+ * Module exports.
+ */
+
+module.exports = HttpProxyAgent;
+
+/**
+ * The `HttpProxyAgent` implements an HTTP Agent subclass that connects to the
+ * specified "HTTP proxy server" in order to proxy HTTP requests.
+ *
+ * @api public
+ */
+
+function HttpProxyAgent (opts) {
+ if (!(this instanceof HttpProxyAgent)) return new HttpProxyAgent(opts);
+ if ('string' == typeof opts) opts = url.parse(opts);
+ if (!opts) throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');
+ debug('creating new HttpProxyAgent instance: %o', opts);
+ Agent.call(this, opts);
+
+ var proxy = Object.assign({}, opts);
+
+ // if `true`, then connect to the proxy server over TLS. defaults to `false`.
+ this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
+
+ // prefer `hostname` over `host`, and set the `port` if needed
+ proxy.host = proxy.hostname || proxy.host;
+ proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
+
+ if (proxy.host && proxy.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 proxy.path;
+ delete proxy.pathname;
+ }
+
+ this.proxy = proxy;
+}
+inherits(HttpProxyAgent, Agent);
+
+/**
+ * Called when the node-core HTTP client library is creating a new HTTP request.
+ *
+ * @api public
+ */
+
+HttpProxyAgent.prototype.callback = function connect (req, opts, fn) {
+ var proxy = this.proxy;
+
+ // change the `http.ClientRequest` instance's "path" field
+ // to the absolute path of the URL that will be requested
+ var parsed = url.parse(req.path);
+ if (null == parsed.protocol) parsed.protocol = 'http:';
+ if (null == parsed.hostname) parsed.hostname = opts.hostname || opts.host;
+ if (null == parsed.port) parsed.port = opts.port;
+ if (parsed.port == 80) {
+ // if port is 80, then we can remove the port so that the
+ // ":80" portion is not on the produced URL
+ delete parsed.port;
+ }
+ var absolute = url.format(parsed);
+ req.path = absolute;
+
+ // inject the `Proxy-Authorization` header if necessary
+ if (proxy.auth) {
+ req.setHeader(
+ 'Proxy-Authorization',
+ 'Basic ' + Buffer.from(proxy.auth).toString('base64')
+ );
+ }
+
+ // create a socket connection to the proxy server
+ var socket;
+ if (this.secureProxy) {
+ socket = tls.connect(proxy);
+ } else {
+ socket = net.connect(proxy);
+ }
+
+ // at this point, the http ClientRequest's internal `_header` field might have
+ // already been set. If this is the case then we'll need to re-generate the
+ // string since we just changed the `req.path`
+ if (req._header) {
+ debug('regenerating stored HTTP header string for request');
+ req._header = null;
+ req._implicitHeader();
+ if (req.output && req.output.length > 0) {
+ debug('patching connection write() output buffer with updated header');
+ // the _header has already been queued to be written to the socket
+ var first = req.output[0];
+ var endOfHeaders = first.indexOf('\r\n\r\n') + 4;
+ req.output[0] = req._header + first.substring(endOfHeaders);
+ debug('output buffer: %o', req.output);
+ }
+ }
+
+ fn(null, socket);
+};
diff --git a/deps/npm/node_modules/http-proxy-agent/package.json b/deps/npm/node_modules/http-proxy-agent/package.json
new file mode 100644
index 0000000000..99e28fdc6a
--- /dev/null
+++ b/deps/npm/node_modules/http-proxy-agent/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "http-proxy-agent@^2.1.0",
+ "_id": "http-proxy-agent@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
+ "_location": "/http-proxy-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "http-proxy-agent@^2.1.0",
+ "name": "http-proxy-agent",
+ "escapedName": "http-proxy-agent",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
+ "_shasum": "e4821beef5b2142a2026bd73926fe537631c5405",
+ "_spec": "http-proxy-agent@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-http-proxy-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agent-base": "4",
+ "debug": "3.1.0"
+ },
+ "deprecated": false,
+ "description": "An HTTP(s) proxy `http.Agent` implementation for HTTP",
+ "devDependencies": {
+ "mocha": "3",
+ "proxy": "~0.2.3"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ },
+ "homepage": "https://github.com/TooTallNate/node-http-proxy-agent#readme",
+ "keywords": [
+ "http",
+ "proxy",
+ "endpoint",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "http-proxy-agent",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-http-proxy-agent.git"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key
+++ b/deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem
+++ b/deps/npm/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js b/deps/npm/node_modules/http-proxy-agent/test/test.js
index cc320c7fc2..cc320c7fc2 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js
+++ b/deps/npm/node_modules/http-proxy-agent/test/test.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el b/deps/npm/node_modules/http-signature/.dir-locals.el
index 3bc9235f25..3bc9235f25 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/.dir-locals.el
+++ b/deps/npm/node_modules/http-signature/.dir-locals.el
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/.npmignore b/deps/npm/node_modules/http-signature/.npmignore
index c143fb3a46..c143fb3a46 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/.npmignore
+++ b/deps/npm/node_modules/http-signature/.npmignore
diff --git a/deps/npm/node_modules/http-signature/CHANGES.md b/deps/npm/node_modules/http-signature/CHANGES.md
new file mode 100644
index 0000000000..3e4b13881e
--- /dev/null
+++ b/deps/npm/node_modules/http-signature/CHANGES.md
@@ -0,0 +1,46 @@
+# node-http-signature changelog
+
+## 1.1.1
+
+- Version of dependency `assert-plus` updated: old version was missing
+ some license information
+- Corrected examples in `http_signing.md`, added auto-tests to
+ automatically validate these examples
+
+## 1.1.0
+
+- Bump version of `sshpk` dependency, remove peerDependency on it since
+ it now supports exchanging objects between multiple versions of itself
+ where possible
+
+## 1.0.2
+
+- Bump min version of `jsprim` dependency, to include fixes for using
+ http-signature with `browserify`
+
+## 1.0.1
+
+- Bump minimum version of `sshpk` dependency, to include fixes for
+ whitespace tolerance in key parsing.
+
+## 1.0.0
+
+- First semver release.
+- #36: Ensure verifySignature does not leak useful timing information
+- #42: Bring the library up to the latest version of the spec (including the
+ request-target changes)
+- Support for ECDSA keys and signatures.
+- Now uses `sshpk` for key parsing, validation and conversion.
+- Fixes for #21, #47, #39 and compatibility with node 0.8
+
+## 0.11.0
+
+- Split up HMAC and Signature verification to avoid vulnerabilities where a
+ key intended for use with one can be validated against the other method
+ instead.
+
+## 0.10.2
+
+- Updated versions of most dependencies.
+- Utility functions exported for PEM => SSH-RSA conversion.
+- Improvements to tests and examples.
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/LICENSE b/deps/npm/node_modules/http-signature/LICENSE
index f6d947d2f6..f6d947d2f6 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/LICENSE
+++ b/deps/npm/node_modules/http-signature/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/README.md b/deps/npm/node_modules/http-signature/README.md
index de487d3236..de487d3236 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/README.md
+++ b/deps/npm/node_modules/http-signature/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/http_signing.md b/deps/npm/node_modules/http-signature/http_signing.md
index 4f24d28c3c..4f24d28c3c 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/http_signing.md
+++ b/deps/npm/node_modules/http-signature/http_signing.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/index.js b/deps/npm/node_modules/http-signature/lib/index.js
index 54d46030f1..54d46030f1 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/lib/index.js
+++ b/deps/npm/node_modules/http-signature/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js b/deps/npm/node_modules/http-signature/lib/parser.js
index 5994a7e987..5994a7e987 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/lib/parser.js
+++ b/deps/npm/node_modules/http-signature/lib/parser.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js b/deps/npm/node_modules/http-signature/lib/signer.js
index deb5878679..deb5878679 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/lib/signer.js
+++ b/deps/npm/node_modules/http-signature/lib/signer.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/utils.js b/deps/npm/node_modules/http-signature/lib/utils.js
index bbf2aa895a..bbf2aa895a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/lib/utils.js
+++ b/deps/npm/node_modules/http-signature/lib/utils.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js b/deps/npm/node_modules/http-signature/lib/verify.js
index b053fd6bfb..b053fd6bfb 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/lib/verify.js
+++ b/deps/npm/node_modules/http-signature/lib/verify.js
diff --git a/deps/npm/node_modules/http-signature/package.json b/deps/npm/node_modules/http-signature/package.json
new file mode 100644
index 0000000000..0b26544060
--- /dev/null
+++ b/deps/npm/node_modules/http-signature/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "http-signature@~1.2.0",
+ "_id": "http-signature@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+ "_location": "/http-signature",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "http-signature@~1.2.0",
+ "name": "http-signature",
+ "escapedName": "http-signature",
+ "rawSpec": "~1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "~1.2.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "_shasum": "9aecd925114772f3d95b65a60abb8f7c18fbace1",
+ "_spec": "http-signature@~1.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Joyent, Inc"
+ },
+ "bugs": {
+ "url": "https://github.com/joyent/node-http-signature/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Mark Cavage",
+ "email": "mcavage@gmail.com"
+ },
+ {
+ "name": "David I. Lehn",
+ "email": "dil@lehn.org"
+ },
+ {
+ "name": "Patrick Mooney",
+ "email": "patrick.f.mooney@gmail.com"
+ }
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "deprecated": false,
+ "description": "Reference implementation of Joyent's HTTP Signature scheme.",
+ "devDependencies": {
+ "tap": "0.4.2",
+ "uuid": "^2.0.2"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
+ },
+ "homepage": "https://github.com/joyent/node-http-signature/",
+ "keywords": [
+ "https",
+ "request"
+ ],
+ "license": "MIT",
+ "main": "lib/index.js",
+ "name": "http-signature",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/joyent/node-http-signature.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/https-proxy-agent/.travis.yml
index 805d3d50d2..805d3d50d2 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.travis.yml
+++ b/deps/npm/node_modules/https-proxy-agent/.travis.yml
diff --git a/deps/npm/node_modules/https-proxy-agent/History.md b/deps/npm/node_modules/https-proxy-agent/History.md
new file mode 100644
index 0000000000..f723812312
--- /dev/null
+++ b/deps/npm/node_modules/https-proxy-agent/History.md
@@ -0,0 +1,124 @@
+
+2.2.0 / 2018-03-03
+==================
+
+ * Add "engines" to package.json - requires Node.js >= 4.5.0
+ * Use `Buffer.from()`
+
+2.1.1 / 2017-11-28
+==================
+
+ * Update `debug` - Security Problems with Previous Version (#38)
+
+2.1.0 / 2017-08-08
+==================
+
+ * only include the port number in the Host header when non-default port (#22)
+ * set ALPN to "http 1.1" by default when using tlsproxy (#25)
+ * only set `ALPNProtocols` when the property does not already exist
+ * support SNI (#14)
+
+2.0.0 / 2017-06-26
+==================
+
+ * rename https-proxy-agent.js to index.js
+ * update dependencies and remove semver-specific test case
+ * update `agent-base` to v4
+ * remove `extend` dependency
+ * :arrow_up: update minimum version of debug dependency
+ * opts/options
+ * drop Node versions < v4 from Travis-CI
+ * test Node.js 5, 6, 7 and 8 on Travis-CI
+ * README: remove outdated `secureEndpoint` reference
+ * README: remove `secureEndpoint` docs, add `headers`
+ * https-proxy-agent: add support for proxy "headers"
+
+1.0.0 / 2015-07-10
+==================
+
+ * upgrade to "agent-base" v2 API
+ * test: test case is fixed
+ * use %o debug() formatter
+ * README: use SVG for Travis-CI badge
+
+0.3.6 / 2015-07-06
+==================
+
+ * package: update "extend" to v3
+ * package: update "mocha" to v2
+ * package: update "debug" to v2
+ * travis: test node v0.8, v0.10, and v0.12
+ * test: use ssl-cert-snakeoil self-signed SSL certs
+
+0.3.5 / 2014-06-11
+==================
+
+ * package: update "debug" to v1.0.0
+
+0.3.4 / 2014-04-09
+==================
+
+ * gitignore: ignore root level ?.js files
+ * package: update outdated dependencies
+
+0.3.3 / 2014-01-13
+==================
+
+ * https-proxy-agnet: use debug() instead of console.error()
+ * https-proxy-agent: fix debug() call
+ * History: fix whitespace
+
+0.3.2 / 2013-11-18
+==================
+
+ * https-proxy-agent: allow "https" without trailing colon
+ * README: fix typo
+
+0.3.1 / 2013-11-16
+==================
+
+ * test: enable the HTTPS over HTTPS test on node v0.11.8
+ * https-proxy-agent: create the proxy socket connection first
+ * https-proxy-agent: delete `pathname` from the proxy opts as well
+ * https-proxy-agent: remove dead "end"-emitting code
+
+0.3.0 / 2013-09-16
+==================
+
+ * https-proxy-agent: use "debug" module
+ * https-proxy-agent: update to the "agent-base" v1 API
+ * https-proxy-agent: default the "port" to 443 if not set
+ * https-proxy-agent: augment the `opts` object for the `tls.connect` function
+ * https-proxy-agent: use "extend" module
+ * https-proxy-agent: remove use of `this` as much as possible
+ * https-proxy-agent: listen for the "error" event of the socket
+ * test: refactor of tests to use "proxy" module
+ * test: add "error" event catching test
+ * test: add 407 proxy response test
+ * test: use "semver" module, disable the HTTPS over HTTPS test for node >= v0.11.3
+
+0.2.0 / 2013-09-03
+==================
+
+ * Add initial "Proxy-Authorization" Basic authentication support
+
+0.1.0 / 2013-07-21
+==================
+
+ * rename `secure` to `secureProxy`
+ * added `secureEndpoint` option
+ * various optimizations
+ * README improvements
+
+0.0.2 / 2013-07-11
+==================
+
+ * test: add mocha tests
+ * don't use `socket.ondata`, use the official API instead
+ * throw an Error when no proxy info is given
+ * add support for passing options to net/tls .connect()
+
+0.0.1 / 2013-07-09
+==================
+
+ * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md b/deps/npm/node_modules/https-proxy-agent/README.md
index 5e0419cf9c..5e0419cf9c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md
+++ b/deps/npm/node_modules/https-proxy-agent/README.md
diff --git a/deps/npm/node_modules/https-proxy-agent/index.js b/deps/npm/node_modules/https-proxy-agent/index.js
new file mode 100644
index 0000000000..0a2fdabe8d
--- /dev/null
+++ b/deps/npm/node_modules/https-proxy-agent/index.js
@@ -0,0 +1,229 @@
+/**
+ * Module dependencies.
+ */
+
+var net = require('net');
+var tls = require('tls');
+var url = require('url');
+var Agent = require('agent-base');
+var inherits = require('util').inherits;
+var debug = require('debug')('https-proxy-agent');
+
+/**
+ * Module exports.
+ */
+
+module.exports = HttpsProxyAgent;
+
+/**
+ * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to the
+ * specified "HTTP(s) proxy server" in order to proxy HTTPS requests.
+ *
+ * @api public
+ */
+
+function HttpsProxyAgent(opts) {
+ if (!(this instanceof HttpsProxyAgent)) return new HttpsProxyAgent(opts);
+ if ('string' == typeof opts) opts = url.parse(opts);
+ if (!opts)
+ throw new Error(
+ 'an HTTP(S) proxy server `host` and `port` must be specified!'
+ );
+ debug('creating new HttpsProxyAgent instance: %o', opts);
+ Agent.call(this, opts);
+
+ var proxy = Object.assign({}, opts);
+
+ // if `true`, then connect to the proxy server over TLS. defaults to `false`.
+ this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
+
+ // prefer `hostname` over `host`, and set the `port` if needed
+ proxy.host = proxy.hostname || proxy.host;
+ proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
+
+ // ALPN is supported by Node.js >= v5.
+ // attempt to negotiate http/1.1 for proxy servers that support http/2
+ if (this.secureProxy && !('ALPNProtocols' in proxy)) {
+ proxy.ALPNProtocols = ['http 1.1']
+ }
+
+ if (proxy.host && proxy.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 proxy.path;
+ delete proxy.pathname;
+ }
+
+ this.proxy = proxy;
+ this.defaultPort = 443;
+}
+inherits(HttpsProxyAgent, Agent);
+
+/**
+ * Called when the node-core HTTP client library is creating a new HTTP request.
+ *
+ * @api public
+ */
+
+HttpsProxyAgent.prototype.callback = function connect(req, opts, fn) {
+ var proxy = this.proxy;
+
+ // create a socket connection to the proxy server
+ var socket;
+ if (this.secureProxy) {
+ socket = tls.connect(proxy);
+ } else {
+ socket = net.connect(proxy);
+ }
+
+ // we need to buffer any HTTP traffic that happens with the proxy before we get
+ // the CONNECT response, so that if the response is anything other than an "200"
+ // response code, then we can re-play the "data" events on the socket once the
+ // HTTP parser is hooked up...
+ var buffers = [];
+ var buffersLength = 0;
+
+ function read() {
+ var b = socket.read();
+ if (b) ondata(b);
+ else socket.once('readable', read);
+ }
+
+ function cleanup() {
+ socket.removeListener('data', ondata);
+ socket.removeListener('end', onend);
+ socket.removeListener('error', onerror);
+ socket.removeListener('close', onclose);
+ socket.removeListener('readable', read);
+ }
+
+ function onclose(err) {
+ debug('onclose had error %o', err);
+ }
+
+ function onend() {
+ debug('onend');
+ }
+
+ function onerror(err) {
+ cleanup();
+ fn(err);
+ }
+
+ function ondata(b) {
+ buffers.push(b);
+ buffersLength += b.length;
+ var buffered = Buffer.concat(buffers, buffersLength);
+ var str = buffered.toString('ascii');
+
+ if (!~str.indexOf('\r\n\r\n')) {
+ // keep buffering
+ debug('have not received end of HTTP headers yet...');
+ if (socket.read) {
+ read();
+ } else {
+ socket.once('data', ondata);
+ }
+ return;
+ }
+
+ var firstLine = str.substring(0, str.indexOf('\r\n'));
+ var statusCode = +firstLine.split(' ')[1];
+ debug('got proxy server response: %o', firstLine);
+
+ if (200 == statusCode) {
+ // 200 Connected status code!
+ var sock = socket;
+
+ // nullify the buffered data since we won't be needing it
+ buffers = buffered = null;
+
+ if (opts.secureEndpoint) {
+ // since the proxy is connecting to an SSL server, we have
+ // to upgrade this socket connection to an SSL connection
+ debug(
+ 'upgrading proxy-connected socket to TLS connection: %o',
+ opts.host
+ );
+ opts.socket = socket;
+ opts.servername = opts.servername || opts.host;
+ opts.host = null;
+ opts.hostname = null;
+ opts.port = null;
+ sock = tls.connect(opts);
+ }
+
+ cleanup();
+ fn(null, sock);
+ } else {
+ // some other status code that's not 200... need to re-play the HTTP header
+ // "data" events onto the socket once the HTTP machinery is attached so that
+ // the user can parse and handle the error status code
+ cleanup();
+
+ // save a reference to the concat'd Buffer for the `onsocket` callback
+ buffers = buffered;
+
+ // need to wait for the "socket" event to re-play the "data" events
+ req.once('socket', onsocket);
+ fn(null, socket);
+ }
+ }
+
+ function onsocket(socket) {
+ // replay the "buffers" Buffer onto the `socket`, since at this point
+ // the HTTP module machinery has been hooked up for the user
+ if ('function' == typeof socket.ondata) {
+ // node <= v0.11.3, the `ondata` function is set on the socket
+ socket.ondata(buffers, 0, buffers.length);
+ } else if (socket.listeners('data').length > 0) {
+ // node > v0.11.3, the "data" event is listened for directly
+ socket.emit('data', buffers);
+ } else {
+ // never?
+ throw new Error('should not happen...');
+ }
+
+ // nullify the cached Buffer instance
+ buffers = null;
+ }
+
+ socket.on('error', onerror);
+ socket.on('close', onclose);
+ socket.on('end', onend);
+
+ if (socket.read) {
+ read();
+ } else {
+ socket.once('data', ondata);
+ }
+
+ var hostname = opts.host + ':' + opts.port;
+ var msg = 'CONNECT ' + hostname + ' HTTP/1.1\r\n';
+
+ var headers = Object.assign({}, proxy.headers);
+ if (proxy.auth) {
+ headers['Proxy-Authorization'] =
+ 'Basic ' + Buffer.from(proxy.auth).toString('base64');
+ }
+
+ // the Host header should only include the port
+ // number when it is a non-standard port
+ var host = opts.host;
+ if (!isDefaultPort(opts.port, opts.secureEndpoint)) {
+ host += ':' + opts.port;
+ }
+ headers['Host'] = host;
+
+ headers['Connection'] = 'close';
+ Object.keys(headers).forEach(function(name) {
+ msg += name + ': ' + headers[name] + '\r\n';
+ });
+
+ socket.write(msg + '\r\n');
+};
+
+function isDefaultPort(port, secure) {
+ return Boolean((!secure && port === 80) || (secure && port === 443));
+}
diff --git a/deps/npm/node_modules/https-proxy-agent/package.json b/deps/npm/node_modules/https-proxy-agent/package.json
new file mode 100644
index 0000000000..538782a862
--- /dev/null
+++ b/deps/npm/node_modules/https-proxy-agent/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "https-proxy-agent@^2.2.1",
+ "_id": "https-proxy-agent@2.2.1",
+ "_inBundle": false,
+ "_integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+ "_location": "/https-proxy-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "https-proxy-agent@^2.2.1",
+ "name": "https-proxy-agent",
+ "escapedName": "https-proxy-agent",
+ "rawSpec": "^2.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.2.1"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
+ "_shasum": "51552970fa04d723e04c56d04178c3f92592bbc0",
+ "_spec": "https-proxy-agent@^2.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-https-proxy-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agent-base": "^4.1.0",
+ "debug": "^3.1.0"
+ },
+ "deprecated": false,
+ "description": "An HTTP(s) proxy `http.Agent` implementation for HTTPS",
+ "devDependencies": {
+ "mocha": "^3.4.2",
+ "proxy": "^0.2.4"
+ },
+ "engines": {
+ "node": ">= 4.5.0"
+ },
+ "homepage": "https://github.com/TooTallNate/node-https-proxy-agent#readme",
+ "keywords": [
+ "https",
+ "proxy",
+ "endpoint",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "https-proxy-agent",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-https-proxy-agent.git"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec"
+ },
+ "version": "2.2.1"
+}
diff --git a/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 b/deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/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
+++ b/deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key
diff --git a/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 b/deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/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
+++ b/deps/npm/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem
diff --git a/deps/npm/node_modules/https-proxy-agent/test/test.js b/deps/npm/node_modules/https-proxy-agent/test/test.js
new file mode 100644
index 0000000000..b368495821
--- /dev/null
+++ b/deps/npm/node_modules/https-proxy-agent/test/test.js
@@ -0,0 +1,342 @@
+
+/**
+ * Module dependencies.
+ */
+
+var fs = require('fs');
+var url = require('url');
+var http = require('http');
+var https = require('https');
+var assert = require('assert');
+var Proxy = require('proxy');
+var HttpsProxyAgent = require('../');
+
+describe('HttpsProxyAgent', function () {
+
+ var server;
+ var serverPort;
+
+ var sslServer;
+ var sslServerPort;
+
+ var proxy;
+ var proxyPort;
+
+ var sslProxy;
+ var sslProxyPort;
+
+ before(function (done) {
+ // setup target HTTP server
+ server = http.createServer();
+ server.listen(function () {
+ serverPort = server.address().port;
+ done();
+ });
+ });
+
+ before(function (done) {
+ // setup HTTP proxy server
+ proxy = Proxy();
+ proxy.listen(function () {
+ proxyPort = proxy.address().port;
+ done();
+ });
+ });
+
+ before(function (done) {
+ // setup target HTTPS server
+ var options = {
+ key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
+ cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
+ };
+ sslServer = https.createServer(options);
+ sslServer.listen(function () {
+ sslServerPort = sslServer.address().port;
+ done();
+ });
+ });
+
+ before(function (done) {
+ // setup SSL HTTP proxy server
+ var options = {
+ key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
+ cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
+ };
+ sslProxy = Proxy(https.createServer(options));
+ sslProxy.listen(function () {
+ sslProxyPort = sslProxy.address().port;
+ done();
+ });
+ });
+
+ // shut down test HTTP server
+ after(function (done) {
+ server.once('close', function () { done(); });
+ server.close();
+ });
+
+ after(function (done) {
+ proxy.once('close', function () { done(); });
+ proxy.close();
+ });
+
+ after(function (done) {
+ sslServer.once('close', function () { done(); });
+ sslServer.close();
+ });
+
+ after(function (done) {
+ sslProxy.once('close', function () { done(); });
+ sslProxy.close();
+ });
+
+ describe('constructor', function () {
+ it('should throw an Error if no "proxy" argument is given', function () {
+ assert.throws(function () {
+ new HttpsProxyAgent();
+ });
+ });
+ it('should accept a "string" proxy argument', function () {
+ var agent = new HttpsProxyAgent('http://127.0.0.1:' + proxyPort);
+ assert.equal('127.0.0.1', agent.proxy.host);
+ assert.equal(proxyPort, agent.proxy.port);
+ });
+ it('should accept a `url.parse()` result object argument', function () {
+ var opts = url.parse('http://127.0.0.1:' + proxyPort);
+ var agent = new HttpsProxyAgent(opts);
+ assert.equal('127.0.0.1', agent.proxy.host);
+ assert.equal(proxyPort, agent.proxy.port);
+ });
+ it('should set a `defaultPort` property', function () {
+ var opts = url.parse("http://127.0.0.1:" + proxyPort);
+ var agent = new HttpsProxyAgent(opts);
+ assert.equal(443, agent.defaultPort);
+ });
+ describe('secureProxy', function () {
+ it('should default to `false`', function () {
+ var agent = new HttpsProxyAgent({ port: proxyPort });
+ assert.equal(false, agent.secureProxy);
+ });
+ it('should be `false` when "http:" protocol is used', function () {
+ var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'http:' });
+ assert.equal(false, agent.secureProxy);
+ });
+ it('should be `true` when "https:" protocol is used', function () {
+ var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https:' });
+ assert.equal(true, agent.secureProxy);
+ });
+ it('should be `true` when "https" protocol is used', function () {
+ var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https' });
+ assert.equal(true, agent.secureProxy);
+ });
+ });
+ });
+
+ describe('"http" module', function () {
+
+ beforeEach(function () {
+ delete proxy.authenticate;
+ });
+
+ it('should work over an HTTP proxy', function (done) {
+ server.once('request', function (req, res) {
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
+ var agent = new HttpsProxyAgent(proxy);
+
+ var opts = url.parse('http://127.0.0.1:' + serverPort);
+ opts.agent = agent;
+
+ var req = http.get(opts, function (res) {
+ var data = '';
+ res.setEncoding('utf8');
+ res.on('data', function (b) {
+ data += b;
+ });
+ res.on('end', function () {
+ data = JSON.parse(data);
+ assert.equal('127.0.0.1:' + serverPort, data.host);
+ done();
+ });
+ });
+ req.once('error', done);
+ });
+ it('should work over an HTTPS proxy', function (done) {
+ server.once('request', function (req, res) {
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
+ proxy = url.parse(proxy);
+ proxy.rejectUnauthorized = false;
+ var agent = new HttpsProxyAgent(proxy);
+
+ var opts = url.parse('http://127.0.0.1:' + serverPort);
+ opts.agent = agent;
+
+ http.get(opts, function (res) {
+ var data = '';
+ res.setEncoding('utf8');
+ res.on('data', function (b) {
+ data += b;
+ });
+ res.on('end', function () {
+ data = JSON.parse(data);
+ assert.equal('127.0.0.1:' + serverPort, data.host);
+ done();
+ });
+ });
+ });
+ it('should receive the 407 authorization code on the `http.ClientResponse`', function (done) {
+ // set a proxy authentication function for this test
+ proxy.authenticate = function (req, fn) {
+ // reject all requests
+ fn(null, false);
+ };
+
+ var proxyUri = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
+ var agent = new HttpsProxyAgent(proxyUri);
+
+ var opts = {};
+ // `host` and `port` don't really matter since the proxy will reject anyways
+ opts.host = '127.0.0.1';
+ opts.port = 80;
+ opts.agent = agent;
+
+ var req = http.get(opts, function (res) {
+ assert.equal(407, res.statusCode);
+ assert('proxy-authenticate' in res.headers);
+ done();
+ });
+ });
+ it('should emit an "error" event on the `http.ClientRequest` if the proxy does not exist', function (done) {
+ // port 4 is a reserved, but "unassigned" port
+ var proxyUri = 'http://127.0.0.1:4';
+ var agent = new HttpsProxyAgent(proxyUri);
+
+ var opts = url.parse('http://nodejs.org');
+ opts.agent = agent;
+
+ var req = http.get(opts);
+ req.once('error', function (err) {
+ assert.equal('ECONNREFUSED', err.code);
+ req.abort();
+ done();
+ });
+ });
+
+ it('should allow custom proxy "headers"', function (done) {
+ server.once('connect', function (req, socket, head) {
+ assert.equal('CONNECT', req.method);
+ assert.equal('bar', req.headers.foo);
+ socket.destroy();
+ done();
+ });
+
+ var uri = 'http://127.0.0.1:' + serverPort;
+ var proxyOpts = url.parse(uri);
+ proxyOpts.headers = {
+ 'Foo': 'bar'
+ };
+ var agent = new HttpsProxyAgent(proxyOpts);
+
+ var opts = {};
+ // `host` and `port` don't really matter since the proxy will reject anyways
+ opts.host = '127.0.0.1';
+ opts.port = 80;
+ opts.agent = agent;
+
+ http.get(opts);
+ });
+
+ });
+
+ describe('"https" module', function () {
+ it('should work over an HTTP proxy', function (done) {
+ sslServer.once('request', function (req, res) {
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
+ var agent = new HttpsProxyAgent(proxy);
+
+ var opts = url.parse('https://127.0.0.1:' + sslServerPort);
+ opts.rejectUnauthorized = false;
+ opts.agent = agent;
+
+ https.get(opts, function (res) {
+ var data = '';
+ res.setEncoding('utf8');
+ res.on('data', function (b) {
+ data += b;
+ });
+ res.on('end', function () {
+ data = JSON.parse(data);
+ assert.equal('127.0.0.1:' + sslServerPort, data.host);
+ done();
+ });
+ });
+ });
+
+ it('should work over an HTTPS proxy', function (done) {
+ sslServer.once('request', function (req, res) {
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
+ proxy = url.parse(proxy);
+ proxy.rejectUnauthorized = false;
+ var agent = new HttpsProxyAgent(proxy);
+
+ var opts = url.parse('https://127.0.0.1:' + sslServerPort);
+ opts.agent = agent;
+ opts.rejectUnauthorized = false;
+
+ https.get(opts, function (res) {
+ var data = '';
+ res.setEncoding('utf8');
+ res.on('data', function (b) {
+ data += b;
+ });
+ res.on('end', function () {
+ data = JSON.parse(data);
+ assert.equal('127.0.0.1:' + sslServerPort, data.host);
+ done();
+ });
+ });
+ });
+
+ it('should not send a port number for the default port', function (done) {
+ sslServer.once('request', function (req, res) {
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || "https://127.0.0.1:" + sslProxyPort;
+ proxy = url.parse(proxy);
+ proxy.rejectUnauthorized = false;
+ var agent = new HttpsProxyAgent(proxy);
+ agent.defaultPort = sslServerPort;
+
+ var opts = url.parse("https://127.0.0.1:" + sslServerPort);
+ opts.agent = agent;
+ opts.rejectUnauthorized = false;
+
+ https.get(opts, function(res) {
+ var data = "";
+ res.setEncoding("utf8");
+ res.on("data", function(b) {
+ data += b;
+ });
+ res.on("end", function() {
+ data = JSON.parse(data);
+ assert.equal("127.0.0.1", data.host);
+ done();
+ });
+ });
+ });
+
+ });
+
+});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md b/deps/npm/node_modules/humanize-ms/History.md
index b159587050..b159587050 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md
+++ b/deps/npm/node_modules/humanize-ms/History.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE b/deps/npm/node_modules/humanize-ms/LICENSE
index 89de354795..89de354795 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE
+++ b/deps/npm/node_modules/humanize-ms/LICENSE
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md b/deps/npm/node_modules/humanize-ms/README.md
index 20a2ca35b8..20a2ca35b8 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md
+++ b/deps/npm/node_modules/humanize-ms/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js b/deps/npm/node_modules/humanize-ms/index.js
index 660df81def..660df81def 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js
+++ b/deps/npm/node_modules/humanize-ms/index.js
diff --git a/deps/npm/node_modules/humanize-ms/package.json b/deps/npm/node_modules/humanize-ms/package.json
new file mode 100644
index 0000000000..7cb9c4aa83
--- /dev/null
+++ b/deps/npm/node_modules/humanize-ms/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "humanize-ms@^1.2.1",
+ "_id": "humanize-ms@1.2.1",
+ "_inBundle": false,
+ "_integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
+ "_location": "/humanize-ms",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "humanize-ms@^1.2.1",
+ "name": "humanize-ms",
+ "escapedName": "humanize-ms",
+ "rawSpec": "^1.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.1"
+ },
+ "_requiredBy": [
+ "/agentkeepalive"
+ ],
+ "_resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "_shasum": "c46e3159a293f6b896da29316d8b6fe8bb79bbed",
+ "_spec": "humanize-ms@^1.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/agentkeepalive",
+ "author": {
+ "name": "dead-horse",
+ "email": "dead_horse@qq.com",
+ "url": "http://deadhorse.me"
+ },
+ "bugs": {
+ "url": "https://github.com/node-modules/humanize-ms/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ms": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "transform humanize time to ms",
+ "devDependencies": {
+ "autod": "*",
+ "beautify-benchmark": "~0.2.4",
+ "benchmark": "~1.0.0",
+ "istanbul": "*",
+ "mocha": "*",
+ "should": "*"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/node-modules/humanize-ms#readme",
+ "keywords": [
+ "humanize",
+ "ms"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "humanize-ms",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/node-modules/humanize-ms.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "version": "1.2.1"
+}
diff --git a/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 b/deps/npm/node_modules/iconv-lite/.travis.yml
index 636d8d9123..636d8d9123 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/.travis.yml
diff --git a/deps/npm/node_modules/iconv-lite/Changelog.md b/deps/npm/node_modules/iconv-lite/Changelog.md
new file mode 100644
index 0000000000..6425e27c38
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/Changelog.md
@@ -0,0 +1,156 @@
+
+# 0.4.23 / 2018-05-07
+
+ * Fix deprecation warning in Node v10 due to the last usage of `new Buffer` (#185, by @felixbuenemann)
+ * Switched from NodeBuffer to Buffer in typings (#155 by @felixfbecker, #186 by @larssn)
+
+
+# 0.4.22 / 2018-05-05
+
+ * Use older semver style for dependencies to be compatible with Node version 0.10 (#182, by @dougwilson)
+ * Fix tests to accomodate fixes in Node v10 (#182, by @dougwilson)
+
+
+# 0.4.21 / 2018-04-06
+
+ * Fix encoding canonicalization (#156)
+ * Fix the paths in the "browser" field in package.json (#174 by @LMLB)
+ * Removed "contributors" section in package.json - see Git history instead.
+
+
+# 0.4.20 / 2018-04-06
+
+ * Updated `new Buffer()` usages with recommended replacements as it's being deprecated in Node v10 (#176, #178 by @ChALkeR)
+
+
+# 0.4.19 / 2017-09-09
+
+ * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147)
+ * Re-generated windows1255 codec, because it was updated in iconv project
+ * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8
+
+
+# 0.4.18 / 2017-06-13
+
+ * Fixed CESU-8 regression in Node v8.
+
+
+# 0.4.17 / 2017-04-22
+
+ * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn)
+
+
+# 0.4.16 / 2017-04-22
+
+ * Added support for React Native (#150)
+ * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex)
+ * Fixed typo in Readme (#138 by @jiangzhuo)
+ * Fixed build for Node v6.10+ by making correct version comparison
+ * Added a warning if iconv-lite is loaded not as utf-8 (see #142)
+
+
+# 0.4.15 / 2016-11-21
+
+ * Fixed typescript type definition (#137)
+
+
+# 0.4.14 / 2016-11-20
+
+ * Preparation for v1.0
+ * Added Node v6 and latest Node versions to Travis CI test rig
+ * Deprecated Node v0.8 support
+ * Typescript typings (@larssn)
+ * Fix encoding of Euro character in GB 18030 (inspired by @lygstate)
+ * Add ms prefix to dbcs windows encodings (@rokoroku)
+
+
+# 0.4.13 / 2015-10-01
+
+ * Fix silly mistake in deprecation notice.
+
+
+# 0.4.12 / 2015-09-26
+
+ * Node v4 support:
+ * Added CESU-8 decoding (#106)
+ * Added deprecation notice for `extendNodeEncodings`
+ * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol)
+
+
+# 0.4.11 / 2015-07-03
+
+ * Added CESU-8 encoding.
+
+
+# 0.4.10 / 2015-05-26
+
+ * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not
+ just spaces. This should minimize the importance of "default" endianness.
+
+
+# 0.4.9 / 2015-05-24
+
+ * Streamlined BOM handling: strip BOM by default, add BOM when encoding if
+ addBOM: true. Added docs to Readme.
+ * UTF16 now uses UTF16-LE by default.
+ * Fixed minor issue with big5 encoding.
+ * Added io.js testing on Travis; updated node-iconv version to test against.
+ Now we just skip testing SBCS encodings that node-iconv doesn't support.
+ * (internal refactoring) Updated codec interface to use classes.
+ * Use strict mode in all files.
+
+
+# 0.4.8 / 2015-04-14
+
+ * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94)
+
+
+# 0.4.7 / 2015-02-05
+
+ * stop official support of Node.js v0.8. Should still work, but no guarantees.
+ reason: Packages needed for testing are hard to get on Travis CI.
+ * work in environment where Object.prototype is monkey patched with enumerable
+ props (#89).
+
+
+# 0.4.6 / 2015-01-12
+
+ * fix rare aliases of single-byte encodings (thanks @mscdex)
+ * double the timeout for dbcs tests to make them less flaky on travis
+
+
+# 0.4.5 / 2014-11-20
+
+ * fix windows-31j and x-sjis encoding support (@nleush)
+ * minor fix: undefined variable reference when internal error happens
+
+
+# 0.4.4 / 2014-07-16
+
+ * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3)
+ * fixed streaming base64 encoding
+
+
+# 0.4.3 / 2014-06-14
+
+ * added encodings UTF-16BE and UTF-16 with BOM
+
+
+# 0.4.2 / 2014-06-12
+
+ * don't throw exception if `extendNodeEncodings()` is called more than once
+
+
+# 0.4.1 / 2014-06-11
+
+ * codepage 808 added
+
+
+# 0.4.0 / 2014-06-10
+
+ * code is rewritten from scratch
+ * all widespread encodings are supported
+ * streaming interface added
+ * browserify compatibility added
+ * (optional) extend core primitive encodings to make usage even simpler
+ * moved from vows to mocha as the testing framework
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE b/deps/npm/node_modules/iconv-lite/LICENSE
index e3c1f8d36c..e3c1f8d36c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE
+++ b/deps/npm/node_modules/iconv-lite/LICENSE
diff --git a/deps/npm/node_modules/iconv-lite/README.md b/deps/npm/node_modules/iconv-lite/README.md
new file mode 100644
index 0000000000..1d61f9e84d
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/README.md
@@ -0,0 +1,156 @@
+## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite)
+
+ * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io).
+ * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser),
+ [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others.
+ * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison).
+ * Intuitive encode/decode API
+ * Streaming support for Node v0.10+
+ * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings.
+ * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included).
+ * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included.
+ * React Native is supported (need to explicitly `npm install` two more modules: `buffer` and `stream`).
+ * License: MIT.
+
+[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/)
+
+## Usage
+### Basic API
+```javascript
+var iconv = require('iconv-lite');
+
+// Convert from an encoded buffer to js string.
+str = iconv.decode(Buffer.from([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251');
+
+// Convert from js string to an encoded buffer.
+buf = iconv.encode("Sample input string", 'win1251');
+
+// Check if encoding is supported
+iconv.encodingExists("us-ascii")
+```
+
+### Streaming API (Node v0.10+)
+```javascript
+
+// Decode stream (from binary stream to js strings)
+http.createServer(function(req, res) {
+ var converterStream = iconv.decodeStream('win1251');
+ req.pipe(converterStream);
+
+ converterStream.on('data', function(str) {
+ console.log(str); // Do something with decoded strings, chunk-by-chunk.
+ });
+});
+
+// Convert encoding streaming example
+fs.createReadStream('file-in-win1251.txt')
+ .pipe(iconv.decodeStream('win1251'))
+ .pipe(iconv.encodeStream('ucs2'))
+ .pipe(fs.createWriteStream('file-in-ucs2.txt'));
+
+// Sugar: all encode/decode streams have .collect(cb) method to accumulate data.
+http.createServer(function(req, res) {
+ req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) {
+ assert(typeof body == 'string');
+ console.log(body); // full request body string
+ });
+});
+```
+
+### [Deprecated] Extend Node.js own encodings
+> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility).
+
+```javascript
+// After this call all Node basic primitives will understand iconv-lite encodings.
+iconv.extendNodeEncodings();
+
+// Examples:
+buf = new Buffer(str, 'win1251');
+buf.write(str, 'gbk');
+str = buf.toString('latin1');
+assert(Buffer.isEncoding('iso-8859-15'));
+Buffer.byteLength(str, 'us-ascii');
+
+http.createServer(function(req, res) {
+ req.setEncoding('big5');
+ req.collect(function(err, body) {
+ console.log(body);
+ });
+});
+
+fs.createReadStream("file.txt", "shift_jis");
+
+// External modules are also supported (if they use Node primitives, which they probably do).
+request = require('request');
+request({
+ url: "http://github.com/",
+ encoding: "cp932"
+});
+
+// To remove extensions
+iconv.undoExtendNodeEncodings();
+```
+
+## Supported encodings
+
+ * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex.
+ * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap.
+ * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family,
+ IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library.
+ Aliases like 'latin1', 'us-ascii' also supported.
+ * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP.
+
+See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings).
+
+Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors!
+
+Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors!
+
+
+## Encoding/decoding speed
+
+Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0).
+Note: your results may vary, so please always check on your hardware.
+
+ operation iconv@2.1.4 iconv-lite@0.4.7
+ ----------------------------------------------------------
+ encode('win1251') ~96 Mb/s ~320 Mb/s
+ decode('win1251') ~95 Mb/s ~246 Mb/s
+
+## BOM handling
+
+ * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options
+ (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`).
+ A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found.
+ * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module.
+ * Encoding: No BOM added, unless overridden by `addBOM: true` option.
+
+## UTF-16 Encodings
+
+This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be
+smart about endianness in the following ways:
+ * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be
+ overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`.
+ * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override.
+
+## Other notes
+
+When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding).
+Untranslatable characters are set to ļæ½ or ?. No transliteration is currently supported.
+Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77).
+
+## Testing
+
+```bash
+$ git clone git@github.com:ashtuchkin/iconv-lite.git
+$ cd iconv-lite
+$ npm install
+$ npm test
+
+$ # To view performance:
+$ node test/performance.js
+
+$ # To view test coverage:
+$ npm run coverage
+$ open coverage/lcov-report/index.html
+```
diff --git a/deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js b/deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js
new file mode 100644
index 0000000000..7a8559824e
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/encodings/dbcs-codec.js
@@ -0,0 +1,554 @@
+"use strict";
+var Buffer = require("safer-buffer").Buffer;
+
+// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
+// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
+// To save memory and loading time, we read table files only when requested.
+
+exports._dbcs = DBCSCodec;
+
+var UNASSIGNED = -1,
+ GB18030_CODE = -2,
+ SEQ_START = -10,
+ NODE_START = -1000,
+ UNASSIGNED_NODE = new Array(0x100),
+ DEF_CHAR = -1;
+
+for (var i = 0; i < 0x100; i++)
+ UNASSIGNED_NODE[i] = UNASSIGNED;
+
+
+// Class DBCSCodec reads and initializes mapping tables.
+function DBCSCodec(codecOptions, iconv) {
+ this.encodingName = codecOptions.encodingName;
+ if (!codecOptions)
+ throw new Error("DBCS codec is called without the data.")
+ if (!codecOptions.table)
+ throw new Error("Encoding '" + this.encodingName + "' has no data.");
+
+ // Load tables.
+ var mappingTable = codecOptions.table();
+
+
+ // Decode tables: MBCS -> Unicode.
+
+ // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
+ // Trie root is decodeTables[0].
+ // Values: >= 0 -> unicode character code. can be > 0xFFFF
+ // == UNASSIGNED -> unknown/unassigned sequence.
+ // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
+ // <= NODE_START -> index of the next node in our trie to process next byte.
+ // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
+ this.decodeTables = [];
+ this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
+
+ // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
+ this.decodeTableSeq = [];
+
+ // Actual mapping tables consist of chunks. Use them to fill up decode tables.
+ for (var i = 0; i < mappingTable.length; i++)
+ this._addDecodeChunk(mappingTable[i]);
+
+ this.defaultCharUnicode = iconv.defaultCharUnicode;
+
+
+ // Encode tables: Unicode -> DBCS.
+
+ // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
+ // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
+ // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
+ // == UNASSIGNED -> no conversion found. Output a default char.
+ // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
+ this.encodeTable = [];
+
+ // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
+ // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
+ // means end of sequence (needed when one sequence is a strict subsequence of another).
+ // Objects are kept separately from encodeTable to increase performance.
+ this.encodeTableSeq = [];
+
+ // Some chars can be decoded, but need not be encoded.
+ var skipEncodeChars = {};
+ if (codecOptions.encodeSkipVals)
+ for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
+ var val = codecOptions.encodeSkipVals[i];
+ if (typeof val === 'number')
+ skipEncodeChars[val] = true;
+ else
+ for (var j = val.from; j <= val.to; j++)
+ skipEncodeChars[j] = true;
+ }
+
+ // Use decode trie to recursively fill out encode tables.
+ this._fillEncodeTable(0, 0, skipEncodeChars);
+
+ // Add more encoding pairs when needed.
+ if (codecOptions.encodeAdd) {
+ for (var uChar in codecOptions.encodeAdd)
+ if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
+ this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
+ }
+
+ this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
+ if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
+ if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
+
+
+ // Load & create GB18030 tables when needed.
+ if (typeof codecOptions.gb18030 === 'function') {
+ this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
+
+ // Add GB18030 decode tables.
+ var thirdByteNodeIdx = this.decodeTables.length;
+ var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
+
+ var fourthByteNodeIdx = this.decodeTables.length;
+ var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
+
+ for (var i = 0x81; i <= 0xFE; i++) {
+ var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
+ var secondByteNode = this.decodeTables[secondByteNodeIdx];
+ for (var j = 0x30; j <= 0x39; j++)
+ secondByteNode[j] = NODE_START - thirdByteNodeIdx;
+ }
+ for (var i = 0x81; i <= 0xFE; i++)
+ thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
+ for (var i = 0x30; i <= 0x39; i++)
+ fourthByteNode[i] = GB18030_CODE
+ }
+}
+
+DBCSCodec.prototype.encoder = DBCSEncoder;
+DBCSCodec.prototype.decoder = DBCSDecoder;
+
+// Decoder helpers
+DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
+ var bytes = [];
+ for (; addr > 0; addr >>= 8)
+ bytes.push(addr & 0xFF);
+ if (bytes.length == 0)
+ bytes.push(0);
+
+ var node = this.decodeTables[0];
+ for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
+ var val = node[bytes[i]];
+
+ if (val == UNASSIGNED) { // Create new node.
+ node[bytes[i]] = NODE_START - this.decodeTables.length;
+ this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
+ }
+ else if (val <= NODE_START) { // Existing node.
+ node = this.decodeTables[NODE_START - val];
+ }
+ else
+ throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
+ }
+ return node;
+}
+
+
+DBCSCodec.prototype._addDecodeChunk = function(chunk) {
+ // First element of chunk is the hex mbcs code where we start.
+ var curAddr = parseInt(chunk[0], 16);
+
+ // Choose the decoding node where we'll write our chars.
+ var writeTable = this._getDecodeTrieNode(curAddr);
+ curAddr = curAddr & 0xFF;
+
+ // Write all other elements of the chunk to the table.
+ for (var k = 1; k < chunk.length; k++) {
+ var part = chunk[k];
+ if (typeof part === "string") { // String, write as-is.
+ for (var l = 0; l < part.length;) {
+ var code = part.charCodeAt(l++);
+ if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
+ var codeTrail = part.charCodeAt(l++);
+ if (0xDC00 <= codeTrail && codeTrail < 0xE000)
+ writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
+ else
+ throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
+ }
+ else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
+ var len = 0xFFF - code + 2;
+ var seq = [];
+ for (var m = 0; m < len; m++)
+ seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
+
+ writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
+ this.decodeTableSeq.push(seq);
+ }
+ else
+ writeTable[curAddr++] = code; // Basic char
+ }
+ }
+ else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
+ var charCode = writeTable[curAddr - 1] + 1;
+ for (var l = 0; l < part; l++)
+ writeTable[curAddr++] = charCode++;
+ }
+ else
+ throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
+ }
+ if (curAddr > 0xFF)
+ throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
+}
+
+// Encoder helpers
+DBCSCodec.prototype._getEncodeBucket = function(uCode) {
+ var high = uCode >> 8; // This could be > 0xFF because of astral characters.
+ if (this.encodeTable[high] === undefined)
+ this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
+ return this.encodeTable[high];
+}
+
+DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
+ var bucket = this._getEncodeBucket(uCode);
+ var low = uCode & 0xFF;
+ if (bucket[low] <= SEQ_START)
+ this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
+ else if (bucket[low] == UNASSIGNED)
+ bucket[low] = dbcsCode;
+}
+
+DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
+
+ // Get the root of character tree according to first character of the sequence.
+ var uCode = seq[0];
+ var bucket = this._getEncodeBucket(uCode);
+ var low = uCode & 0xFF;
+
+ var node;
+ if (bucket[low] <= SEQ_START) {
+ // There's already a sequence with - use it.
+ node = this.encodeTableSeq[SEQ_START-bucket[low]];
+ }
+ else {
+ // There was no sequence object - allocate a new one.
+ node = {};
+ if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
+ bucket[low] = SEQ_START - this.encodeTableSeq.length;
+ this.encodeTableSeq.push(node);
+ }
+
+ // Traverse the character tree, allocating new nodes as needed.
+ for (var j = 1; j < seq.length-1; j++) {
+ var oldVal = node[uCode];
+ if (typeof oldVal === 'object')
+ node = oldVal;
+ else {
+ node = node[uCode] = {}
+ if (oldVal !== undefined)
+ node[DEF_CHAR] = oldVal
+ }
+ }
+
+ // Set the leaf to given dbcsCode.
+ uCode = seq[seq.length-1];
+ node[uCode] = dbcsCode;
+}
+
+DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
+ var node = this.decodeTables[nodeIdx];
+ for (var i = 0; i < 0x100; i++) {
+ var uCode = node[i];
+ var mbCode = prefix + i;
+ if (skipEncodeChars[mbCode])
+ continue;
+
+ if (uCode >= 0)
+ this._setEncodeChar(uCode, mbCode);
+ else if (uCode <= NODE_START)
+ this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
+ else if (uCode <= SEQ_START)
+ this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
+ }
+}
+
+
+
+// == Encoder ==================================================================
+
+function DBCSEncoder(options, codec) {
+ // Encoder state
+ this.leadSurrogate = -1;
+ this.seqObj = undefined;
+
+ // Static data
+ this.encodeTable = codec.encodeTable;
+ this.encodeTableSeq = codec.encodeTableSeq;
+ this.defaultCharSingleByte = codec.defCharSB;
+ this.gb18030 = codec.gb18030;
+}
+
+DBCSEncoder.prototype.write = function(str) {
+ var newBuf = Buffer.alloc(str.length * (this.gb18030 ? 4 : 3)),
+ leadSurrogate = this.leadSurrogate,
+ seqObj = this.seqObj, nextChar = -1,
+ i = 0, j = 0;
+
+ while (true) {
+ // 0. Get next character.
+ if (nextChar === -1) {
+ if (i == str.length) break;
+ var uCode = str.charCodeAt(i++);
+ }
+ else {
+ var uCode = nextChar;
+ nextChar = -1;
+ }
+
+ // 1. Handle surrogates.
+ if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
+ if (uCode < 0xDC00) { // We've got lead surrogate.
+ if (leadSurrogate === -1) {
+ leadSurrogate = uCode;
+ continue;
+ } else {
+ leadSurrogate = uCode;
+ // Double lead surrogate found.
+ uCode = UNASSIGNED;
+ }
+ } else { // We've got trail surrogate.
+ if (leadSurrogate !== -1) {
+ uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
+ leadSurrogate = -1;
+ } else {
+ // Incomplete surrogate pair - only trail surrogate found.
+ uCode = UNASSIGNED;
+ }
+
+ }
+ }
+ else if (leadSurrogate !== -1) {
+ // Incomplete surrogate pair - only lead surrogate found.
+ nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
+ leadSurrogate = -1;
+ }
+
+ // 2. Convert uCode character.
+ var dbcsCode = UNASSIGNED;
+ if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
+ var resCode = seqObj[uCode];
+ if (typeof resCode === 'object') { // Sequence continues.
+ seqObj = resCode;
+ continue;
+
+ } else if (typeof resCode == 'number') { // Sequence finished. Write it.
+ dbcsCode = resCode;
+
+ } else if (resCode == undefined) { // Current character is not part of the sequence.
+
+ // Try default character for this sequence
+ resCode = seqObj[DEF_CHAR];
+ if (resCode !== undefined) {
+ dbcsCode = resCode; // Found. Write it.
+ nextChar = uCode; // Current character will be written too in the next iteration.
+
+ } else {
+ // TODO: What if we have no default? (resCode == undefined)
+ // Then, we should write first char of the sequence as-is and try the rest recursively.
+ // Didn't do it for now because no encoding has this situation yet.
+ // Currently, just skip the sequence and write current char.
+ }
+ }
+ seqObj = undefined;
+ }
+ else if (uCode >= 0) { // Regular character
+ var subtable = this.encodeTable[uCode >> 8];
+ if (subtable !== undefined)
+ dbcsCode = subtable[uCode & 0xFF];
+
+ if (dbcsCode <= SEQ_START) { // Sequence start
+ seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
+ continue;
+ }
+
+ if (dbcsCode == UNASSIGNED && this.gb18030) {
+ // Use GB18030 algorithm to find character(s) to write.
+ var idx = findIdx(this.gb18030.uChars, uCode);
+ if (idx != -1) {
+ var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
+ newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
+ newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
+ newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
+ newBuf[j++] = 0x30 + dbcsCode;
+ continue;
+ }
+ }
+ }
+
+ // 3. Write dbcsCode character.
+ if (dbcsCode === UNASSIGNED)
+ dbcsCode = this.defaultCharSingleByte;
+
+ if (dbcsCode < 0x100) {
+ newBuf[j++] = dbcsCode;
+ }
+ else if (dbcsCode < 0x10000) {
+ newBuf[j++] = dbcsCode >> 8; // high byte
+ newBuf[j++] = dbcsCode & 0xFF; // low byte
+ }
+ else {
+ newBuf[j++] = dbcsCode >> 16;
+ newBuf[j++] = (dbcsCode >> 8) & 0xFF;
+ newBuf[j++] = dbcsCode & 0xFF;
+ }
+ }
+
+ this.seqObj = seqObj;
+ this.leadSurrogate = leadSurrogate;
+ return newBuf.slice(0, j);
+}
+
+DBCSEncoder.prototype.end = function() {
+ if (this.leadSurrogate === -1 && this.seqObj === undefined)
+ return; // All clean. Most often case.
+
+ var newBuf = Buffer.alloc(10), j = 0;
+
+ if (this.seqObj) { // We're in the sequence.
+ var dbcsCode = this.seqObj[DEF_CHAR];
+ if (dbcsCode !== undefined) { // Write beginning of the sequence.
+ if (dbcsCode < 0x100) {
+ newBuf[j++] = dbcsCode;
+ }
+ else {
+ newBuf[j++] = dbcsCode >> 8; // high byte
+ newBuf[j++] = dbcsCode & 0xFF; // low byte
+ }
+ } else {
+ // See todo above.
+ }
+ this.seqObj = undefined;
+ }
+
+ if (this.leadSurrogate !== -1) {
+ // Incomplete surrogate pair - only lead surrogate found.
+ newBuf[j++] = this.defaultCharSingleByte;
+ this.leadSurrogate = -1;
+ }
+
+ return newBuf.slice(0, j);
+}
+
+// Export for testing
+DBCSEncoder.prototype.findIdx = findIdx;
+
+
+// == Decoder ==================================================================
+
+function DBCSDecoder(options, codec) {
+ // Decoder state
+ this.nodeIdx = 0;
+ this.prevBuf = Buffer.alloc(0);
+
+ // Static data
+ this.decodeTables = codec.decodeTables;
+ this.decodeTableSeq = codec.decodeTableSeq;
+ this.defaultCharUnicode = codec.defaultCharUnicode;
+ this.gb18030 = codec.gb18030;
+}
+
+DBCSDecoder.prototype.write = function(buf) {
+ var newBuf = Buffer.alloc(buf.length*2),
+ nodeIdx = this.nodeIdx,
+ prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
+ seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
+ uCode;
+
+ if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
+ prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
+
+ for (var i = 0, j = 0; i < buf.length; i++) {
+ var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];
+
+ // Lookup in current trie node.
+ var uCode = this.decodeTables[nodeIdx][curByte];
+
+ if (uCode >= 0) {
+ // Normal character, just use it.
+ }
+ else if (uCode === UNASSIGNED) { // Unknown char.
+ // TODO: Callback with seq.
+ //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
+ i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
+ uCode = this.defaultCharUnicode.charCodeAt(0);
+ }
+ else if (uCode === GB18030_CODE) {
+ var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
+ var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
+ var idx = findIdx(this.gb18030.gbChars, ptr);
+ uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
+ }
+ else if (uCode <= NODE_START) { // Go to next trie node.
+ nodeIdx = NODE_START - uCode;
+ continue;
+ }
+ else if (uCode <= SEQ_START) { // Output a sequence of chars.
+ var seq = this.decodeTableSeq[SEQ_START - uCode];
+ for (var k = 0; k < seq.length - 1; k++) {
+ uCode = seq[k];
+ newBuf[j++] = uCode & 0xFF;
+ newBuf[j++] = uCode >> 8;
+ }
+ uCode = seq[seq.length-1];
+ }
+ else
+ throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
+
+ // Write the character to buffer, handling higher planes using surrogate pair.
+ if (uCode > 0xFFFF) {
+ uCode -= 0x10000;
+ var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
+ newBuf[j++] = uCodeLead & 0xFF;
+ newBuf[j++] = uCodeLead >> 8;
+
+ uCode = 0xDC00 + uCode % 0x400;
+ }
+ newBuf[j++] = uCode & 0xFF;
+ newBuf[j++] = uCode >> 8;
+
+ // Reset trie node.
+ nodeIdx = 0; seqStart = i+1;
+ }
+
+ this.nodeIdx = nodeIdx;
+ this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
+ return newBuf.slice(0, j).toString('ucs2');
+}
+
+DBCSDecoder.prototype.end = function() {
+ var ret = '';
+
+ // Try to parse all remaining chars.
+ while (this.prevBuf.length > 0) {
+ // Skip 1 character in the buffer.
+ ret += this.defaultCharUnicode;
+ var buf = this.prevBuf.slice(1);
+
+ // Parse remaining as usual.
+ this.prevBuf = Buffer.alloc(0);
+ this.nodeIdx = 0;
+ if (buf.length > 0)
+ ret += this.write(buf);
+ }
+
+ this.nodeIdx = 0;
+ return ret;
+}
+
+// Binary search for GB18030. Returns largest i such that table[i] <= val.
+function findIdx(table, val) {
+ if (table[0] > val)
+ return -1;
+
+ var l = 0, r = table.length;
+ while (l < r-1) { // always table[l] <= val < table[r]
+ var mid = l + Math.floor((r-l+1)/2);
+ if (table[mid] <= val)
+ l = mid;
+ else
+ r = mid;
+ }
+ return l;
+}
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/dbcs-data.js
index 53cb75bd1b..53cb75bd1b 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/dbcs-data.js
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/index.js
index 55144bd227..55144bd227 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/index.js
diff --git a/deps/npm/node_modules/iconv-lite/encodings/internal.js b/deps/npm/node_modules/iconv-lite/encodings/internal.js
new file mode 100644
index 0000000000..fc23066bc9
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/encodings/internal.js
@@ -0,0 +1,188 @@
+"use strict";
+var Buffer = require("safer-buffer").Buffer;
+
+// Export Node.js internal encodings.
+
+module.exports = {
+ // Encodings
+ utf8: { type: "_internal", bomAware: true},
+ cesu8: { type: "_internal", bomAware: true},
+ unicode11utf8: "utf8",
+
+ ucs2: { type: "_internal", bomAware: true},
+ utf16le: "ucs2",
+
+ binary: { type: "_internal" },
+ base64: { type: "_internal" },
+ hex: { type: "_internal" },
+
+ // Codec.
+ _internal: InternalCodec,
+};
+
+//------------------------------------------------------------------------------
+
+function InternalCodec(codecOptions, iconv) {
+ this.enc = codecOptions.encodingName;
+ this.bomAware = codecOptions.bomAware;
+
+ if (this.enc === "base64")
+ this.encoder = InternalEncoderBase64;
+ else if (this.enc === "cesu8") {
+ this.enc = "utf8"; // Use utf8 for decoding.
+ this.encoder = InternalEncoderCesu8;
+
+ // Add decoder for versions of Node not supporting CESU-8
+ if (Buffer.from('eda0bdedb2a9', 'hex').toString() !== 'šŸ’©') {
+ this.decoder = InternalDecoderCesu8;
+ this.defaultCharUnicode = iconv.defaultCharUnicode;
+ }
+ }
+}
+
+InternalCodec.prototype.encoder = InternalEncoder;
+InternalCodec.prototype.decoder = InternalDecoder;
+
+//------------------------------------------------------------------------------
+
+// We use node.js internal decoder. Its signature is the same as ours.
+var StringDecoder = require('string_decoder').StringDecoder;
+
+if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
+ StringDecoder.prototype.end = function() {};
+
+
+function InternalDecoder(options, codec) {
+ StringDecoder.call(this, codec.enc);
+}
+
+InternalDecoder.prototype = StringDecoder.prototype;
+
+
+//------------------------------------------------------------------------------
+// Encoder is mostly trivial
+
+function InternalEncoder(options, codec) {
+ this.enc = codec.enc;
+}
+
+InternalEncoder.prototype.write = function(str) {
+ return Buffer.from(str, this.enc);
+}
+
+InternalEncoder.prototype.end = function() {
+}
+
+
+//------------------------------------------------------------------------------
+// Except base64 encoder, which must keep its state.
+
+function InternalEncoderBase64(options, codec) {
+ this.prevStr = '';
+}
+
+InternalEncoderBase64.prototype.write = function(str) {
+ str = this.prevStr + str;
+ var completeQuads = str.length - (str.length % 4);
+ this.prevStr = str.slice(completeQuads);
+ str = str.slice(0, completeQuads);
+
+ return Buffer.from(str, "base64");
+}
+
+InternalEncoderBase64.prototype.end = function() {
+ return Buffer.from(this.prevStr, "base64");
+}
+
+
+//------------------------------------------------------------------------------
+// CESU-8 encoder is also special.
+
+function InternalEncoderCesu8(options, codec) {
+}
+
+InternalEncoderCesu8.prototype.write = function(str) {
+ var buf = Buffer.alloc(str.length * 3), bufIdx = 0;
+ for (var i = 0; i < str.length; i++) {
+ var charCode = str.charCodeAt(i);
+ // Naive implementation, but it works because CESU-8 is especially easy
+ // to convert from UTF-16 (which all JS strings are encoded in).
+ if (charCode < 0x80)
+ buf[bufIdx++] = charCode;
+ else if (charCode < 0x800) {
+ buf[bufIdx++] = 0xC0 + (charCode >>> 6);
+ buf[bufIdx++] = 0x80 + (charCode & 0x3f);
+ }
+ else { // charCode will always be < 0x10000 in javascript.
+ buf[bufIdx++] = 0xE0 + (charCode >>> 12);
+ buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
+ buf[bufIdx++] = 0x80 + (charCode & 0x3f);
+ }
+ }
+ return buf.slice(0, bufIdx);
+}
+
+InternalEncoderCesu8.prototype.end = function() {
+}
+
+//------------------------------------------------------------------------------
+// CESU-8 decoder is not implemented in Node v4.0+
+
+function InternalDecoderCesu8(options, codec) {
+ this.acc = 0;
+ this.contBytes = 0;
+ this.accBytes = 0;
+ this.defaultCharUnicode = codec.defaultCharUnicode;
+}
+
+InternalDecoderCesu8.prototype.write = function(buf) {
+ var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes,
+ res = '';
+ for (var i = 0; i < buf.length; i++) {
+ var curByte = buf[i];
+ if ((curByte & 0xC0) !== 0x80) { // Leading byte
+ if (contBytes > 0) { // Previous code is invalid
+ res += this.defaultCharUnicode;
+ contBytes = 0;
+ }
+
+ if (curByte < 0x80) { // Single-byte code
+ res += String.fromCharCode(curByte);
+ } else if (curByte < 0xE0) { // Two-byte code
+ acc = curByte & 0x1F;
+ contBytes = 1; accBytes = 1;
+ } else if (curByte < 0xF0) { // Three-byte code
+ acc = curByte & 0x0F;
+ contBytes = 2; accBytes = 1;
+ } else { // Four or more are not supported for CESU-8.
+ res += this.defaultCharUnicode;
+ }
+ } else { // Continuation byte
+ if (contBytes > 0) { // We're waiting for it.
+ acc = (acc << 6) | (curByte & 0x3f);
+ contBytes--; accBytes++;
+ if (contBytes === 0) {
+ // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
+ if (accBytes === 2 && acc < 0x80 && acc > 0)
+ res += this.defaultCharUnicode;
+ else if (accBytes === 3 && acc < 0x800)
+ res += this.defaultCharUnicode;
+ else
+ // Actually add character.
+ res += String.fromCharCode(acc);
+ }
+ } else { // Unexpected continuation byte
+ res += this.defaultCharUnicode;
+ }
+ }
+ }
+ this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
+ return res;
+}
+
+InternalDecoderCesu8.prototype.end = function() {
+ var res = 0;
+ if (this.contBytes > 0)
+ res += this.defaultCharUnicode;
+ return res;
+}
diff --git a/deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js b/deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js
new file mode 100644
index 0000000000..798497d2d5
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/encodings/sbcs-codec.js
@@ -0,0 +1,72 @@
+"use strict";
+var Buffer = require("safer-buffer").Buffer;
+
+// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
+// correspond to encoded bytes (if 128 - then lower half is ASCII).
+
+exports._sbcs = SBCSCodec;
+function SBCSCodec(codecOptions, iconv) {
+ if (!codecOptions)
+ throw new Error("SBCS codec is called without the data.")
+
+ // Prepare char buffer for decoding.
+ if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
+ throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
+
+ if (codecOptions.chars.length === 128) {
+ var asciiString = "";
+ for (var i = 0; i < 128; i++)
+ asciiString += String.fromCharCode(i);
+ codecOptions.chars = asciiString + codecOptions.chars;
+ }
+
+ this.decodeBuf = new Buffer.from(codecOptions.chars, 'ucs2');
+
+ // Encoding buffer.
+ var encodeBuf = new Buffer.alloc(65536, iconv.defaultCharSingleByte.charCodeAt(0));
+
+ for (var i = 0; i < codecOptions.chars.length; i++)
+ encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
+
+ this.encodeBuf = encodeBuf;
+}
+
+SBCSCodec.prototype.encoder = SBCSEncoder;
+SBCSCodec.prototype.decoder = SBCSDecoder;
+
+
+function SBCSEncoder(options, codec) {
+ this.encodeBuf = codec.encodeBuf;
+}
+
+SBCSEncoder.prototype.write = function(str) {
+ var buf = Buffer.alloc(str.length);
+ for (var i = 0; i < str.length; i++)
+ buf[i] = this.encodeBuf[str.charCodeAt(i)];
+
+ return buf;
+}
+
+SBCSEncoder.prototype.end = function() {
+}
+
+
+function SBCSDecoder(options, codec) {
+ this.decodeBuf = codec.decodeBuf;
+}
+
+SBCSDecoder.prototype.write = function(buf) {
+ // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
+ var decodeBuf = this.decodeBuf;
+ var newBuf = Buffer.alloc(buf.length*2);
+ var idx1 = 0, idx2 = 0;
+ for (var i = 0; i < buf.length; i++) {
+ idx1 = buf[i]*2; idx2 = i*2;
+ newBuf[idx2] = decodeBuf[idx1];
+ newBuf[idx2+1] = decodeBuf[idx1+1];
+ }
+ return newBuf.toString('ucs2');
+}
+
+SBCSDecoder.prototype.end = function() {
+}
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/sbcs-data-generated.js
index 9b4823607b..9b4823607b 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/sbcs-data-generated.js
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/sbcs-data.js
index 1009ad9901..1009ad9901 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/sbcs-data.js
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/big5-added.json
index 3c3d3c2f7b..3c3d3c2f7b 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/big5-added.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/cp936.json
index 49ddb9a1d6..49ddb9a1d6 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/cp936.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/cp949.json
index 2022a007ff..2022a007ff 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/cp949.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/cp950.json
index d8bc87178d..d8bc87178d 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/cp950.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/eucjp.json
index 4fa61ca116..4fa61ca116 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/eucjp.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
index 85c6934757..85c6934757 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/gbk-added.json
index 8abfa9f7b9..8abfa9f7b9 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/gbk-added.json
diff --git a/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 b/deps/npm/node_modules/iconv-lite/encodings/tables/shiftjis.json
index 5a3a43cf8c..5a3a43cf8c 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/encodings/tables/shiftjis.json
diff --git a/deps/npm/node_modules/iconv-lite/encodings/utf16.js b/deps/npm/node_modules/iconv-lite/encodings/utf16.js
new file mode 100644
index 0000000000..0b183cf9e7
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/encodings/utf16.js
@@ -0,0 +1,175 @@
+"use strict";
+var Buffer = require("safer-buffer").Buffer;
+
+// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
+
+// == UTF16-BE codec. ==========================================================
+
+exports.utf16be = Utf16BECodec;
+function Utf16BECodec() {
+}
+
+Utf16BECodec.prototype.encoder = Utf16BEEncoder;
+Utf16BECodec.prototype.decoder = Utf16BEDecoder;
+Utf16BECodec.prototype.bomAware = true;
+
+
+// -- Encoding
+
+function Utf16BEEncoder() {
+}
+
+Utf16BEEncoder.prototype.write = function(str) {
+ var buf = Buffer.from(str, 'ucs2');
+ for (var i = 0; i < buf.length; i += 2) {
+ var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
+ }
+ return buf;
+}
+
+Utf16BEEncoder.prototype.end = function() {
+}
+
+
+// -- Decoding
+
+function Utf16BEDecoder() {
+ this.overflowByte = -1;
+}
+
+Utf16BEDecoder.prototype.write = function(buf) {
+ if (buf.length == 0)
+ return '';
+
+ var buf2 = Buffer.alloc(buf.length + 1),
+ i = 0, j = 0;
+
+ if (this.overflowByte !== -1) {
+ buf2[0] = buf[0];
+ buf2[1] = this.overflowByte;
+ i = 1; j = 2;
+ }
+
+ for (; i < buf.length-1; i += 2, j+= 2) {
+ buf2[j] = buf[i+1];
+ buf2[j+1] = buf[i];
+ }
+
+ this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
+
+ return buf2.slice(0, j).toString('ucs2');
+}
+
+Utf16BEDecoder.prototype.end = function() {
+}
+
+
+// == UTF-16 codec =============================================================
+// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
+// Defaults to UTF-16LE, as it's prevalent and default in Node.
+// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
+// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
+
+// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
+
+exports.utf16 = Utf16Codec;
+function Utf16Codec(codecOptions, iconv) {
+ this.iconv = iconv;
+}
+
+Utf16Codec.prototype.encoder = Utf16Encoder;
+Utf16Codec.prototype.decoder = Utf16Decoder;
+
+
+// -- Encoding (pass-through)
+
+function Utf16Encoder(options, codec) {
+ options = options || {};
+ if (options.addBOM === undefined)
+ options.addBOM = true;
+ this.encoder = codec.iconv.getEncoder('utf-16le', options);
+}
+
+Utf16Encoder.prototype.write = function(str) {
+ return this.encoder.write(str);
+}
+
+Utf16Encoder.prototype.end = function() {
+ return this.encoder.end();
+}
+
+
+// -- Decoding
+
+function Utf16Decoder(options, codec) {
+ this.decoder = null;
+ this.initialBytes = [];
+ this.initialBytesLen = 0;
+
+ this.options = options || {};
+ this.iconv = codec.iconv;
+}
+
+Utf16Decoder.prototype.write = function(buf) {
+ if (!this.decoder) {
+ // Codec is not chosen yet. Accumulate initial bytes.
+ this.initialBytes.push(buf);
+ this.initialBytesLen += buf.length;
+
+ if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
+ return '';
+
+ // We have enough bytes -> detect endianness.
+ var buf = Buffer.concat(this.initialBytes),
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
+ this.initialBytes.length = this.initialBytesLen = 0;
+ }
+
+ return this.decoder.write(buf);
+}
+
+Utf16Decoder.prototype.end = function() {
+ if (!this.decoder) {
+ var buf = Buffer.concat(this.initialBytes),
+ encoding = detectEncoding(buf, this.options.defaultEncoding);
+ this.decoder = this.iconv.getDecoder(encoding, this.options);
+
+ var res = this.decoder.write(buf),
+ trail = this.decoder.end();
+
+ return trail ? (res + trail) : res;
+ }
+ return this.decoder.end();
+}
+
+function detectEncoding(buf, defaultEncoding) {
+ var enc = defaultEncoding || 'utf-16le';
+
+ if (buf.length >= 2) {
+ // Check BOM.
+ if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
+ enc = 'utf-16be';
+ else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
+ enc = 'utf-16le';
+ else {
+ // No BOM found. Try to deduce encoding from initial content.
+ // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
+ // So, we count ASCII as if it was LE or BE, and decide from that.
+ var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
+ _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
+
+ for (var i = 0; i < _len; i += 2) {
+ if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
+ if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
+ }
+
+ if (asciiCharsBE > asciiCharsLE)
+ enc = 'utf-16be';
+ else if (asciiCharsBE < asciiCharsLE)
+ enc = 'utf-16le';
+ }
+ }
+
+ return enc;
+}
diff --git a/deps/npm/node_modules/iconv-lite/encodings/utf7.js b/deps/npm/node_modules/iconv-lite/encodings/utf7.js
new file mode 100644
index 0000000000..3f776a87fa
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/encodings/utf7.js
@@ -0,0 +1,288 @@
+"use strict";
+var Buffer = require("safer-buffer").Buffer;
+
+// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
+// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
+
+exports.utf7 = Utf7Codec;
+exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
+function Utf7Codec(codecOptions, iconv) {
+ this.iconv = iconv;
+};
+
+Utf7Codec.prototype.encoder = Utf7Encoder;
+Utf7Codec.prototype.decoder = Utf7Decoder;
+Utf7Codec.prototype.bomAware = true;
+
+
+// -- Encoding
+
+var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
+
+function Utf7Encoder(options, codec) {
+ this.iconv = codec.iconv;
+}
+
+Utf7Encoder.prototype.write = function(str) {
+ // Naive implementation.
+ // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
+ return Buffer.from(str.replace(nonDirectChars, function(chunk) {
+ return "+" + (chunk === '+' ? '' :
+ this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
+ + "-";
+ }.bind(this)));
+}
+
+Utf7Encoder.prototype.end = function() {
+}
+
+
+// -- Decoding
+
+function Utf7Decoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = '';
+}
+
+var base64Regex = /[A-Za-z0-9\/+]/;
+var base64Chars = [];
+for (var i = 0; i < 256; i++)
+ base64Chars[i] = base64Regex.test(String.fromCharCode(i));
+
+var plusChar = '+'.charCodeAt(0),
+ minusChar = '-'.charCodeAt(0),
+ andChar = '&'.charCodeAt(0);
+
+Utf7Decoder.prototype.write = function(buf) {
+ var res = "", lastI = 0,
+ inBase64 = this.inBase64,
+ base64Accum = this.base64Accum;
+
+ // The decoder is more involved as we must handle chunks in stream.
+
+ for (var i = 0; i < buf.length; i++) {
+ if (!inBase64) { // We're in direct mode.
+ // Write direct chars until '+'
+ if (buf[i] == plusChar) {
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
+ lastI = i+1;
+ inBase64 = true;
+ }
+ } else { // We decode base64.
+ if (!base64Chars[buf[i]]) { // Base64 ended.
+ if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
+ res += "+";
+ } else {
+ var b64str = base64Accum + buf.slice(lastI, i).toString();
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
+ }
+
+ if (buf[i] != minusChar) // Minus is absorbed after base64.
+ i--;
+
+ lastI = i+1;
+ inBase64 = false;
+ base64Accum = '';
+ }
+ }
+ }
+
+ if (!inBase64) {
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
+ } else {
+ var b64str = base64Accum + buf.slice(lastI).toString();
+
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
+ b64str = b64str.slice(0, canBeDecoded);
+
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
+ }
+
+ this.inBase64 = inBase64;
+ this.base64Accum = base64Accum;
+
+ return res;
+}
+
+Utf7Decoder.prototype.end = function() {
+ var res = "";
+ if (this.inBase64 && this.base64Accum.length > 0)
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
+
+ this.inBase64 = false;
+ this.base64Accum = '';
+ return res;
+}
+
+
+// UTF-7-IMAP codec.
+// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
+// Differences:
+// * Base64 part is started by "&" instead of "+"
+// * Direct characters are 0x20-0x7E, except "&" (0x26)
+// * In Base64, "," is used instead of "/"
+// * Base64 must not be used to represent direct characters.
+// * No implicit shift back from Base64 (should always end with '-')
+// * String must end in non-shifted position.
+// * "-&" while in base64 is not allowed.
+
+
+exports.utf7imap = Utf7IMAPCodec;
+function Utf7IMAPCodec(codecOptions, iconv) {
+ this.iconv = iconv;
+};
+
+Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
+Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
+Utf7IMAPCodec.prototype.bomAware = true;
+
+
+// -- Encoding
+
+function Utf7IMAPEncoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = Buffer.alloc(6);
+ this.base64AccumIdx = 0;
+}
+
+Utf7IMAPEncoder.prototype.write = function(str) {
+ var inBase64 = this.inBase64,
+ base64Accum = this.base64Accum,
+ base64AccumIdx = this.base64AccumIdx,
+ buf = Buffer.alloc(str.length*5 + 10), bufIdx = 0;
+
+ for (var i = 0; i < str.length; i++) {
+ var uChar = str.charCodeAt(i);
+ if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
+ if (inBase64) {
+ if (base64AccumIdx > 0) {
+ bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
+ base64AccumIdx = 0;
+ }
+
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
+ inBase64 = false;
+ }
+
+ if (!inBase64) {
+ buf[bufIdx++] = uChar; // Write direct character
+
+ if (uChar === andChar) // Ampersand -> '&-'
+ buf[bufIdx++] = minusChar;
+ }
+
+ } else { // Non-direct character
+ if (!inBase64) {
+ buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
+ inBase64 = true;
+ }
+ if (inBase64) {
+ base64Accum[base64AccumIdx++] = uChar >> 8;
+ base64Accum[base64AccumIdx++] = uChar & 0xFF;
+
+ if (base64AccumIdx == base64Accum.length) {
+ bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
+ base64AccumIdx = 0;
+ }
+ }
+ }
+ }
+
+ this.inBase64 = inBase64;
+ this.base64AccumIdx = base64AccumIdx;
+
+ return buf.slice(0, bufIdx);
+}
+
+Utf7IMAPEncoder.prototype.end = function() {
+ var buf = Buffer.alloc(10), bufIdx = 0;
+ if (this.inBase64) {
+ if (this.base64AccumIdx > 0) {
+ bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
+ this.base64AccumIdx = 0;
+ }
+
+ buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
+ this.inBase64 = false;
+ }
+
+ return buf.slice(0, bufIdx);
+}
+
+
+// -- Decoding
+
+function Utf7IMAPDecoder(options, codec) {
+ this.iconv = codec.iconv;
+ this.inBase64 = false;
+ this.base64Accum = '';
+}
+
+var base64IMAPChars = base64Chars.slice();
+base64IMAPChars[','.charCodeAt(0)] = true;
+
+Utf7IMAPDecoder.prototype.write = function(buf) {
+ var res = "", lastI = 0,
+ inBase64 = this.inBase64,
+ base64Accum = this.base64Accum;
+
+ // The decoder is more involved as we must handle chunks in stream.
+ // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
+
+ for (var i = 0; i < buf.length; i++) {
+ if (!inBase64) { // We're in direct mode.
+ // Write direct chars until '&'
+ if (buf[i] == andChar) {
+ res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
+ lastI = i+1;
+ inBase64 = true;
+ }
+ } else { // We decode base64.
+ if (!base64IMAPChars[buf[i]]) { // Base64 ended.
+ if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
+ res += "&";
+ } else {
+ var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
+ }
+
+ if (buf[i] != minusChar) // Minus may be absorbed after base64.
+ i--;
+
+ lastI = i+1;
+ inBase64 = false;
+ base64Accum = '';
+ }
+ }
+ }
+
+ if (!inBase64) {
+ res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
+ } else {
+ var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
+
+ var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
+ base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
+ b64str = b64str.slice(0, canBeDecoded);
+
+ res += this.iconv.decode(Buffer.from(b64str, 'base64'), "utf16-be");
+ }
+
+ this.inBase64 = inBase64;
+ this.base64Accum = base64Accum;
+
+ return res;
+}
+
+Utf7IMAPDecoder.prototype.end = function() {
+ var res = "";
+ if (this.inBase64 && this.base64Accum.length > 0)
+ res = this.iconv.decode(Buffer.from(this.base64Accum, 'base64'), "utf16-be");
+
+ this.inBase64 = false;
+ this.base64Accum = '';
+ return res;
+}
diff --git a/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 b/deps/npm/node_modules/iconv-lite/lib/bom-handling.js
index b2b1e426d6..b2b1e426d6 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/lib/bom-handling.js
diff --git a/deps/npm/node_modules/iconv-lite/lib/extend-node.js b/deps/npm/node_modules/iconv-lite/lib/extend-node.js
new file mode 100644
index 0000000000..3f422f761d
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/lib/extend-node.js
@@ -0,0 +1,217 @@
+"use strict";
+var Buffer = require("buffer").Buffer;
+// Note: not polyfilled with safer-buffer on a purpose, as overrides Buffer
+
+// == Extend Node primitives to use iconv-lite =================================
+
+module.exports = function (iconv) {
+ var original = undefined; // Place to keep original methods.
+
+ // Node authors rewrote Buffer internals to make it compatible with
+ // Uint8Array and we cannot patch key functions since then.
+ // Note: this does use older Buffer API on a purpose
+ iconv.supportsNodeEncodingsExtension = !(Buffer.from || new Buffer(0) instanceof Uint8Array);
+
+ iconv.extendNodeEncodings = function extendNodeEncodings() {
+ if (original) return;
+ original = {};
+
+ if (!iconv.supportsNodeEncodingsExtension) {
+ console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
+ console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
+ return;
+ }
+
+ var nodeNativeEncodings = {
+ 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
+ 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
+ };
+
+ Buffer.isNativeEncoding = function(enc) {
+ return enc && nodeNativeEncodings[enc.toLowerCase()];
+ }
+
+ // -- SlowBuffer -----------------------------------------------------------
+ var SlowBuffer = require('buffer').SlowBuffer;
+
+ original.SlowBufferToString = SlowBuffer.prototype.toString;
+ SlowBuffer.prototype.toString = function(encoding, start, end) {
+ encoding = String(encoding || 'utf8').toLowerCase();
+
+ // Use native conversion when possible
+ if (Buffer.isNativeEncoding(encoding))
+ return original.SlowBufferToString.call(this, encoding, start, end);
+
+ // Otherwise, use our decoding method.
+ if (typeof start == 'undefined') start = 0;
+ if (typeof end == 'undefined') end = this.length;
+ return iconv.decode(this.slice(start, end), encoding);
+ }
+
+ original.SlowBufferWrite = SlowBuffer.prototype.write;
+ SlowBuffer.prototype.write = function(string, offset, length, encoding) {
+ // Support both (string, offset, length, encoding)
+ // and the legacy (string, encoding, offset, length)
+ if (isFinite(offset)) {
+ if (!isFinite(length)) {
+ encoding = length;
+ length = undefined;
+ }
+ } else { // legacy
+ var swap = encoding;
+ encoding = offset;
+ offset = length;
+ length = swap;
+ }
+
+ offset = +offset || 0;
+ var remaining = this.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = +length;
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+ encoding = String(encoding || 'utf8').toLowerCase();
+
+ // Use native conversion when possible
+ if (Buffer.isNativeEncoding(encoding))
+ return original.SlowBufferWrite.call(this, string, offset, length, encoding);
+
+ if (string.length > 0 && (length < 0 || offset < 0))
+ throw new RangeError('attempt to write beyond buffer bounds');
+
+ // Otherwise, use our encoding method.
+ var buf = iconv.encode(string, encoding);
+ if (buf.length < length) length = buf.length;
+ buf.copy(this, offset, 0, length);
+ return length;
+ }
+
+ // -- Buffer ---------------------------------------------------------------
+
+ original.BufferIsEncoding = Buffer.isEncoding;
+ Buffer.isEncoding = function(encoding) {
+ return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
+ }
+
+ original.BufferByteLength = Buffer.byteLength;
+ Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
+ encoding = String(encoding || 'utf8').toLowerCase();
+
+ // Use native conversion when possible
+ if (Buffer.isNativeEncoding(encoding))
+ return original.BufferByteLength.call(this, str, encoding);
+
+ // Slow, I know, but we don't have a better way yet.
+ return iconv.encode(str, encoding).length;
+ }
+
+ original.BufferToString = Buffer.prototype.toString;
+ Buffer.prototype.toString = function(encoding, start, end) {
+ encoding = String(encoding || 'utf8').toLowerCase();
+
+ // Use native conversion when possible
+ if (Buffer.isNativeEncoding(encoding))
+ return original.BufferToString.call(this, encoding, start, end);
+
+ // Otherwise, use our decoding method.
+ if (typeof start == 'undefined') start = 0;
+ if (typeof end == 'undefined') end = this.length;
+ return iconv.decode(this.slice(start, end), encoding);
+ }
+
+ original.BufferWrite = Buffer.prototype.write;
+ Buffer.prototype.write = function(string, offset, length, encoding) {
+ var _offset = offset, _length = length, _encoding = encoding;
+ // Support both (string, offset, length, encoding)
+ // and the legacy (string, encoding, offset, length)
+ if (isFinite(offset)) {
+ if (!isFinite(length)) {
+ encoding = length;
+ length = undefined;
+ }
+ } else { // legacy
+ var swap = encoding;
+ encoding = offset;
+ offset = length;
+ length = swap;
+ }
+
+ encoding = String(encoding || 'utf8').toLowerCase();
+
+ // Use native conversion when possible
+ if (Buffer.isNativeEncoding(encoding))
+ return original.BufferWrite.call(this, string, _offset, _length, _encoding);
+
+ offset = +offset || 0;
+ var remaining = this.length - offset;
+ if (!length) {
+ length = remaining;
+ } else {
+ length = +length;
+ if (length > remaining) {
+ length = remaining;
+ }
+ }
+
+ if (string.length > 0 && (length < 0 || offset < 0))
+ throw new RangeError('attempt to write beyond buffer bounds');
+
+ // Otherwise, use our encoding method.
+ var buf = iconv.encode(string, encoding);
+ if (buf.length < length) length = buf.length;
+ buf.copy(this, offset, 0, length);
+ return length;
+
+ // TODO: Set _charsWritten.
+ }
+
+
+ // -- Readable -------------------------------------------------------------
+ if (iconv.supportsStreams) {
+ var Readable = require('stream').Readable;
+
+ original.ReadableSetEncoding = Readable.prototype.setEncoding;
+ Readable.prototype.setEncoding = function setEncoding(enc, options) {
+ // Use our own decoder, it has the same interface.
+ // We cannot use original function as it doesn't handle BOM-s.
+ this._readableState.decoder = iconv.getDecoder(enc, options);
+ this._readableState.encoding = enc;
+ }
+
+ Readable.prototype.collect = iconv._collect;
+ }
+ }
+
+ // Remove iconv-lite Node primitive extensions.
+ iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
+ if (!iconv.supportsNodeEncodingsExtension)
+ return;
+ if (!original)
+ throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
+
+ delete Buffer.isNativeEncoding;
+
+ var SlowBuffer = require('buffer').SlowBuffer;
+
+ SlowBuffer.prototype.toString = original.SlowBufferToString;
+ SlowBuffer.prototype.write = original.SlowBufferWrite;
+
+ Buffer.isEncoding = original.BufferIsEncoding;
+ Buffer.byteLength = original.BufferByteLength;
+ Buffer.prototype.toString = original.BufferToString;
+ Buffer.prototype.write = original.BufferWrite;
+
+ if (iconv.supportsStreams) {
+ var Readable = require('stream').Readable;
+
+ Readable.prototype.setEncoding = original.ReadableSetEncoding;
+ delete Readable.prototype.collect;
+ }
+
+ original = undefined;
+ }
+}
diff --git a/deps/npm/node_modules/iconv-lite/lib/index.d.ts b/deps/npm/node_modules/iconv-lite/lib/index.d.ts
new file mode 100644
index 0000000000..0547eb346b
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/lib/index.d.ts
@@ -0,0 +1,24 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License.
+ * REQUIREMENT: This definition is dependent on the @types/node definition.
+ * Install with `npm install @types/node --save-dev`
+ *--------------------------------------------------------------------------------------------*/
+
+declare module 'iconv-lite' {
+ export function decode(buffer: Buffer, encoding: string, options?: Options): string;
+
+ export function encode(content: string, encoding: string, options?: Options): Buffer;
+
+ export function encodingExists(encoding: string): boolean;
+
+ export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
+
+ export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
+}
+
+export interface Options {
+ stripBOM?: boolean;
+ addBOM?: boolean;
+ defaultEncoding?: string;
+}
diff --git a/deps/npm/node_modules/iconv-lite/lib/index.js b/deps/npm/node_modules/iconv-lite/lib/index.js
new file mode 100644
index 0000000000..270c1d86b0
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/lib/index.js
@@ -0,0 +1,153 @@
+"use strict";
+
+// Some environments don't have global Buffer (e.g. React Native).
+// Solution would be installing npm modules "buffer" and "stream" explicitly.
+var Buffer = require("safer-buffer").Buffer;
+
+var bomHandling = require("./bom-handling"),
+ iconv = module.exports;
+
+// All codecs and aliases are kept here, keyed by encoding name/alias.
+// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
+iconv.encodings = null;
+
+// Characters emitted in case of error.
+iconv.defaultCharUnicode = 'ļæ½';
+iconv.defaultCharSingleByte = '?';
+
+// Public API.
+iconv.encode = function encode(str, encoding, options) {
+ str = "" + (str || ""); // Ensure string.
+
+ var encoder = iconv.getEncoder(encoding, options);
+
+ var res = encoder.write(str);
+ var trail = encoder.end();
+
+ return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
+}
+
+iconv.decode = function decode(buf, encoding, options) {
+ if (typeof buf === 'string') {
+ if (!iconv.skipDecodeWarning) {
+ console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
+ iconv.skipDecodeWarning = true;
+ }
+
+ buf = Buffer.from("" + (buf || ""), "binary"); // Ensure buffer.
+ }
+
+ var decoder = iconv.getDecoder(encoding, options);
+
+ var res = decoder.write(buf);
+ var trail = decoder.end();
+
+ return trail ? (res + trail) : res;
+}
+
+iconv.encodingExists = function encodingExists(enc) {
+ try {
+ iconv.getCodec(enc);
+ return true;
+ } catch (e) {
+ return false;
+ }
+}
+
+// Legacy aliases to convert functions
+iconv.toEncoding = iconv.encode;
+iconv.fromEncoding = iconv.decode;
+
+// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
+iconv._codecDataCache = {};
+iconv.getCodec = function getCodec(encoding) {
+ if (!iconv.encodings)
+ iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
+
+ // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
+ var enc = iconv._canonicalizeEncoding(encoding);
+
+ // Traverse iconv.encodings to find actual codec.
+ var codecOptions = {};
+ while (true) {
+ var codec = iconv._codecDataCache[enc];
+ if (codec)
+ return codec;
+
+ var codecDef = iconv.encodings[enc];
+
+ switch (typeof codecDef) {
+ case "string": // Direct alias to other encoding.
+ enc = codecDef;
+ break;
+
+ case "object": // Alias with options. Can be layered.
+ for (var key in codecDef)
+ codecOptions[key] = codecDef[key];
+
+ if (!codecOptions.encodingName)
+ codecOptions.encodingName = enc;
+
+ enc = codecDef.type;
+ break;
+
+ case "function": // Codec itself.
+ if (!codecOptions.encodingName)
+ codecOptions.encodingName = enc;
+
+ // The codec function must load all tables and return object with .encoder and .decoder methods.
+ // It'll be called only once (for each different options object).
+ codec = new codecDef(codecOptions, iconv);
+
+ iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
+ return codec;
+
+ default:
+ throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
+ }
+ }
+}
+
+iconv._canonicalizeEncoding = function(encoding) {
+ // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
+ return (''+encoding).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g, "");
+}
+
+iconv.getEncoder = function getEncoder(encoding, options) {
+ var codec = iconv.getCodec(encoding),
+ encoder = new codec.encoder(options, codec);
+
+ if (codec.bomAware && options && options.addBOM)
+ encoder = new bomHandling.PrependBOM(encoder, options);
+
+ return encoder;
+}
+
+iconv.getDecoder = function getDecoder(encoding, options) {
+ var codec = iconv.getCodec(encoding),
+ decoder = new codec.decoder(options, codec);
+
+ if (codec.bomAware && !(options && options.stripBOM === false))
+ decoder = new bomHandling.StripBOM(decoder, options);
+
+ return decoder;
+}
+
+
+// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
+var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
+if (nodeVer) {
+
+ // Load streaming support in Node v0.10+
+ var nodeVerArr = nodeVer.split(".").map(Number);
+ if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
+ require("./streams")(iconv);
+ }
+
+ // Load Node primitive extensions.
+ require("./extend-node")(iconv);
+}
+
+if ("Ā" != "\u0100") {
+ console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
+}
diff --git a/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 b/deps/npm/node_modules/iconv-lite/lib/streams.js
index bb4dbdaf4a..bb4dbdaf4a 100644
--- a/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
+++ b/deps/npm/node_modules/iconv-lite/lib/streams.js
diff --git a/deps/npm/node_modules/iconv-lite/package.json b/deps/npm/node_modules/iconv-lite/package.json
new file mode 100644
index 0000000000..07f6f1a8e7
--- /dev/null
+++ b/deps/npm/node_modules/iconv-lite/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "iconv-lite@~0.4.13",
+ "_id": "iconv-lite@0.4.23",
+ "_inBundle": false,
+ "_integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
+ "_location": "/iconv-lite",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "iconv-lite@~0.4.13",
+ "name": "iconv-lite",
+ "escapedName": "iconv-lite",
+ "rawSpec": "~0.4.13",
+ "saveSpec": null,
+ "fetchSpec": "~0.4.13"
+ },
+ "_requiredBy": [
+ "/encoding",
+ "/external-editor"
+ ],
+ "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
+ "_shasum": "297871f63be507adcfbfca715d0cd0eed84e9a63",
+ "_spec": "iconv-lite@~0.4.13",
+ "_where": "/Users/rebecca/code/npm/node_modules/encoding",
+ "author": {
+ "name": "Alexander Shtuchkin",
+ "email": "ashtuchkin@gmail.com"
+ },
+ "browser": {
+ "./lib/extend-node": false,
+ "./lib/streams": false
+ },
+ "bugs": {
+ "url": "https://github.com/ashtuchkin/iconv-lite/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "deprecated": false,
+ "description": "Convert character encodings in pure javascript.",
+ "devDependencies": {
+ "async": "*",
+ "errto": "*",
+ "iconv": "*",
+ "istanbul": "*",
+ "mocha": "^3.1.0",
+ "request": "~2.81.0",
+ "semver": "*",
+ "unorm": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "homepage": "https://github.com/ashtuchkin/iconv-lite",
+ "keywords": [
+ "iconv",
+ "convert",
+ "charset",
+ "icu"
+ ],
+ "license": "MIT",
+ "main": "./lib/index.js",
+ "name": "iconv-lite",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/ashtuchkin/iconv-lite.git"
+ },
+ "scripts": {
+ "coverage": "istanbul cover _mocha -- --grep .",
+ "coverage-open": "open coverage/lcov-report/index.html",
+ "test": "mocha --reporter spec --grep ."
+ },
+ "typings": "./lib/index.d.ts",
+ "version": "0.4.23"
+}
diff --git a/deps/npm/node_modules/iferr/iferr.js b/deps/npm/node_modules/iferr/iferr.js
new file mode 100644
index 0000000000..028f0e24a3
--- /dev/null
+++ b/deps/npm/node_modules/iferr/iferr.js
@@ -0,0 +1,23 @@
+// Delegates to `succ` on sucecss or to `fail` on error
+// ex: Thing.load(123, iferr(cb, thing => ...))
+const iferr = (fail, succ) => (err, ...a) => err ? fail(err) : succ(...a)
+
+// Like iferr, but also catches errors thrown from `succ` and passes to `fail`
+const tiferr = (fail, succ) => iferr(fail, (...a) => {
+ try { succ(...a) }
+ catch (err) { fail(err) }
+})
+
+// Delegate to the success function on success, throws the error otherwise
+// ex: Thing.load(123, throwerr(thing => ...))
+const throwerr = iferr.bind(null, err => { throw err })
+
+// Prints errors when one is passed, or does nothing otherwise
+// ex: Thing.load(123, printerr)
+const printerr = iferr(err => console.error(err), () => {})
+
+module.exports = exports = iferr
+exports.iferr = iferr
+exports.tiferr = tiferr
+exports.throwerr = throwerr
+exports.printerr = printerr
diff --git a/deps/npm/node_modules/iferr/package.json b/deps/npm/node_modules/iferr/package.json
index 6a935da827..69833649d6 100644
--- a/deps/npm/node_modules/iferr/package.json
+++ b/deps/npm/node_modules/iferr/package.json
@@ -1,43 +1,45 @@
{
- "_from": "iferr@~0.1.5",
- "_id": "iferr@0.1.5",
- "_integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=",
+ "_args": [
+ [
+ "iferr@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "iferr@1.0.0",
+ "_id": "iferr@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-0+ecqiP/cxgnNBIPi+TgJlaxE7sFp2N3kBFg17klQUdf24YKiaEV6b9QgEqOlD5vCVCE0U7OV9lPSN2OfS4zoQ==",
"_location": "/iferr",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "iferr@~0.1.5",
+ "raw": "iferr@1.0.0",
"name": "iferr",
"escapedName": "iferr",
- "rawSpec": "~0.1.5",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "~0.1.5"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
- "/",
- "/fs-write-stream-atomic",
- "/move-concurrently/copy-concurrently"
+ "/"
],
- "_resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz",
- "_shasum": "c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501",
- "_shrinkwrap": null,
- "_spec": "iferr@~0.1.5",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/iferr/-/iferr-1.0.0.tgz",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Nadav Ivgi"
},
- "bin": null,
"bugs": {
"url": "https://github.com/shesek/iferr/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Higher-order functions for easier error handling",
"devDependencies": {
- "coffee-script": "^1.7.1",
- "mocha": "^1.18.2"
+ "coffee-script": "^1.12.7",
+ "mocha": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=6.0.0"
},
"homepage": "https://github.com/shesek/iferr",
"keywords": [
@@ -45,17 +47,14 @@
"errors"
],
"license": "MIT",
- "main": "index.js",
+ "main": "iferr.js",
"name": "iferr",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/shesek/iferr.git"
},
"scripts": {
- "prepublish": "coffee -c index.coffee",
"test": "mocha"
},
- "version": "0.1.5"
+ "version": "1.0.0"
}
diff --git a/deps/npm/node_modules/lru-cache/node_modules/yallist/LICENSE b/deps/npm/node_modules/ignore-walk/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/yallist/LICENSE
+++ b/deps/npm/node_modules/ignore-walk/LICENSE
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/README.md b/deps/npm/node_modules/ignore-walk/README.md
index 66b69e894b..66b69e894b 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/README.md
+++ b/deps/npm/node_modules/ignore-walk/README.md
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/index.js b/deps/npm/node_modules/ignore-walk/index.js
index abfd9ece57..abfd9ece57 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/index.js
+++ b/deps/npm/node_modules/ignore-walk/index.js
diff --git a/deps/npm/node_modules/ignore-walk/package.json b/deps/npm/node_modules/ignore-walk/package.json
new file mode 100644
index 0000000000..cc041a55e4
--- /dev/null
+++ b/deps/npm/node_modules/ignore-walk/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "ignore-walk@^3.0.1",
+ "_id": "ignore-walk@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
+ "_location": "/ignore-walk",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ignore-walk@^3.0.1",
+ "name": "ignore-walk",
+ "escapedName": "ignore-walk",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/npm-packlist"
+ ],
+ "_resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+ "_shasum": "a83e62e7d272ac0e3b551aaa82831a19b69f82f8",
+ "_spec": "ignore-walk@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/ignore-walk/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ },
+ "deprecated": false,
+ "description": "Nested/recursive `.gitignore`/`.npmignore` parsing and filtering.",
+ "devDependencies": {
+ "mkdirp": "^0.5.1",
+ "mutate-fs": "^1.1.0",
+ "rimraf": "^2.6.1",
+ "tap": "^10.7.2"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/isaacs/ignore-walk#readme",
+ "keywords": [
+ "ignorefile",
+ "ignore",
+ "file",
+ ".gitignore",
+ ".npmignore",
+ "glob"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "ignore-walk",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/ignore-walk.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/index.js b/deps/npm/node_modules/import-lazy/index.js
index 307f08f393..307f08f393 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/index.js
+++ b/deps/npm/node_modules/import-lazy/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/license b/deps/npm/node_modules/import-lazy/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/license
+++ b/deps/npm/node_modules/import-lazy/license
diff --git a/deps/npm/node_modules/import-lazy/package.json b/deps/npm/node_modules/import-lazy/package.json
new file mode 100644
index 0000000000..e0a2a3a2c6
--- /dev/null
+++ b/deps/npm/node_modules/import-lazy/package.json
@@ -0,0 +1,76 @@
+{
+ "_from": "import-lazy@^2.1.0",
+ "_id": "import-lazy@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
+ "_location": "/import-lazy",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "import-lazy@^2.1.0",
+ "name": "import-lazy",
+ "escapedName": "import-lazy",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
+ "_shasum": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43",
+ "_spec": "import-lazy@^2.1.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/sindresorhus/import-lazy/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Jorge Bucaran",
+ "email": "jbucaran@me.com"
+ }
+ ],
+ "deprecated": false,
+ "description": "Import modules lazily",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/import-lazy#readme",
+ "keywords": [
+ "import",
+ "require",
+ "load",
+ "module",
+ "modules",
+ "lazy",
+ "lazily",
+ "defer",
+ "deferred",
+ "proxy",
+ "proxies"
+ ],
+ "license": "MIT",
+ "name": "import-lazy",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/import-lazy.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/readme.md b/deps/npm/node_modules/import-lazy/readme.md
index 233e42e23b..233e42e23b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/readme.md
+++ b/deps/npm/node_modules/import-lazy/readme.md
diff --git a/deps/npm/node_modules/imurmurhash/package.json b/deps/npm/node_modules/imurmurhash/package.json
index 10b98d1e5b..b84f0ddf96 100644
--- a/deps/npm/node_modules/imurmurhash/package.json
+++ b/deps/npm/node_modules/imurmurhash/package.json
@@ -1,42 +1,45 @@
{
- "_from": "imurmurhash@*",
+ "_args": [
+ [
+ "imurmurhash@0.1.4",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "imurmurhash@0.1.4",
"_id": "imurmurhash@0.1.4",
+ "_inBundle": false,
"_integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"_location": "/imurmurhash",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "imurmurhash@*",
+ "raw": "imurmurhash@0.1.4",
"name": "imurmurhash",
"escapedName": "imurmurhash",
- "rawSpec": "*",
+ "rawSpec": "0.1.4",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "0.1.4"
},
"_requiredBy": [
"/",
+ "/eslint",
"/fs-write-stream-atomic",
- "/unique-filename/unique-slug",
+ "/unique-slug",
"/write-file-atomic"
],
"_resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "_shasum": "9218b9b2b928a238b13dc4fb6b6d576f231453ea",
- "_shrinkwrap": null,
- "_spec": "imurmurhash@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.1.4",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Jens Taylor",
"email": "jensyt@gmail.com",
"url": "https://github.com/homebrewing"
},
- "bin": null,
"bugs": {
"url": "https://github.com/jensyt/imurmurhash-js/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "An incremental implementation of MurmurHash3",
"devDependencies": {},
"engines": {
@@ -59,8 +62,6 @@
"license": "MIT",
"main": "imurmurhash.js",
"name": "imurmurhash",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/jensyt/imurmurhash-js.git"
diff --git a/deps/npm/node_modules/inflight/package.json b/deps/npm/node_modules/inflight/package.json
index 84199ee5a7..d31d230a28 100644
--- a/deps/npm/node_modules/inflight/package.json
+++ b/deps/npm/node_modules/inflight/package.json
@@ -1,45 +1,45 @@
{
- "_from": "inflight@~1.0.6",
+ "_args": [
+ [
+ "inflight@1.0.6",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "inflight@1.0.6",
"_id": "inflight@1.0.6",
+ "_inBundle": false,
"_integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"_location": "/inflight",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "inflight@~1.0.6",
+ "raw": "inflight@1.0.6",
"name": "inflight",
"escapedName": "inflight",
- "rawSpec": "~1.0.6",
+ "rawSpec": "1.0.6",
"saveSpec": null,
- "fetchSpec": "~1.0.6"
+ "fetchSpec": "1.0.6"
},
"_requiredBy": [
"/",
- "/glob",
- "/standard/eslint/file-entry-cache/flat-cache/del/globby/glob",
- "/standard/eslint/glob"
+ "/glob"
],
"_resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "_shasum": "49bd6331d7d02d0c09bc910a1075ba8165b56df9",
- "_shrinkwrap": null,
- "_spec": "inflight@~1.0.6",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.6",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/inflight/issues"
},
- "bundleDependencies": false,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
},
- "deprecated": false,
"description": "Add callbacks to requests in flight to avoid async duplication",
"devDependencies": {
"tap": "^7.1.2"
@@ -51,8 +51,6 @@
"license": "ISC",
"main": "inflight.js",
"name": "inflight",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/inflight.git"
diff --git a/deps/npm/node_modules/inherits/package.json b/deps/npm/node_modules/inherits/package.json
index f5304235d3..0ae0875ff4 100644
--- a/deps/npm/node_modules/inherits/package.json
+++ b/deps/npm/node_modules/inherits/package.json
@@ -1,55 +1,49 @@
{
- "_from": "inherits@~2.0.3",
+ "_args": [
+ [
+ "inherits@2.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "inherits@2.0.3",
"_id": "inherits@2.0.3",
+ "_inBundle": false,
"_integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"_location": "/inherits",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "inherits@~2.0.3",
+ "raw": "inherits@2.0.3",
"name": "inherits",
"escapedName": "inherits",
- "rawSpec": "~2.0.3",
+ "rawSpec": "2.0.3",
"saveSpec": null,
- "fetchSpec": "~2.0.3"
+ "fetchSpec": "2.0.3"
},
"_requiredBy": [
"/",
+ "/block-stream",
+ "/concat-stream",
+ "/duplexify",
+ "/flush-write-stream",
+ "/from2",
"/fstream",
- "/fstream-npm",
- "/fstream-npm/fstream-ignore",
"/glob",
- "/mississippi/concat-stream",
- "/mississippi/duplexify",
- "/mississippi/flush-write-stream",
- "/mississippi/from2",
- "/mississippi/parallel-transform",
- "/mississippi/pumpify",
- "/npm-registry-client/concat-stream",
- "/npm-registry-couchapp/couchapp/nano/follow/request/bl/readable-stream",
+ "/node-gyp/tar",
+ "/parallel-transform",
+ "/pumpify",
"/readable-stream",
"/sorted-union-stream/from2",
- "/sorted-union-stream/from2/readable-stream",
- "/standard/eslint/concat-stream",
- "/standard/eslint/file-entry-cache/flat-cache/del/globby/glob",
- "/standard/eslint/glob",
- "/tar",
- "/tar/block-stream"
+ "/sorted-union-stream/readable-stream"
],
"_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "_shasum": "633c2c83e3da42a502f52466022480f4208261de",
- "_shrinkwrap": null,
- "_spec": "inherits@~2.0.3",
- "_where": "/Users/zkat/Documents/code/npm",
- "bin": null,
+ "_spec": "2.0.3",
+ "_where": "/Users/rebecca/code/npm",
"browser": "./inherits_browser.js",
"bugs": {
"url": "https://github.com/isaacs/inherits/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Browser-friendly inheritance fully compatible with standard node.js inherits()",
"devDependencies": {
"tap": "^7.1.0"
@@ -72,8 +66,6 @@
"license": "ISC",
"main": "./inherits.js",
"name": "inherits",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/inherits.git"
diff --git a/deps/npm/node_modules/ini/ini.js b/deps/npm/node_modules/ini/ini.js
index ddf5bd9cc6..590195dd31 100644
--- a/deps/npm/node_modules/ini/ini.js
+++ b/deps/npm/node_modules/ini/ini.js
@@ -1,17 +1,18 @@
-
exports.parse = exports.decode = decode
+
exports.stringify = exports.encode = encode
exports.safe = safe
exports.unsafe = unsafe
-var eol = process.platform === "win32" ? "\r\n" : "\n"
+var eol = typeof process !== 'undefined' &&
+ process.platform === 'win32' ? '\r\n' : '\n'
function encode (obj, opt) {
var children = []
- , out = ""
+ var out = ''
- if (typeof opt === "string") {
+ if (typeof opt === 'string') {
opt = {
section: opt,
whitespace: false
@@ -21,16 +22,15 @@ function encode (obj, opt) {
opt.whitespace = opt.whitespace === true
}
- var separator = opt.whitespace ? " = " : "="
+ var separator = opt.whitespace ? ' = ' : '='
Object.keys(obj).forEach(function (k, _, __) {
var val = obj[k]
if (val && Array.isArray(val)) {
- val.forEach(function(item) {
- out += safe(k + "[]") + separator + safe(item) + "\n"
- })
- }
- else if (val && typeof val === "object") {
+ val.forEach(function (item) {
+ out += safe(k + '[]') + separator + safe(item) + '\n'
+ })
+ } else if (val && typeof val === 'object') {
children.push(k)
} else {
out += safe(k) + separator + safe(val) + eol
@@ -38,12 +38,12 @@ function encode (obj, opt) {
})
if (opt.section && out.length) {
- out = "[" + safe(opt.section) + "]" + eol + out
+ out = '[' + safe(opt.section) + ']' + eol + out
}
children.forEach(function (k, _, __) {
var nk = dotSplit(k).join('\\.')
- var section = (opt.section ? opt.section + "." : "") + nk
+ var section = (opt.section ? opt.section + '.' : '') + nk
var child = encode(obj[k], {
section: section,
whitespace: opt.whitespace
@@ -59,22 +59,20 @@ function encode (obj, opt) {
function dotSplit (str) {
return str.replace(/\1/g, '\u0002LITERAL\\1LITERAL\u0002')
- .replace(/\\\./g, '\u0001')
- .split(/\./).map(function (part) {
- return part.replace(/\1/g, '\\.')
- .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001')
- })
+ .replace(/\\\./g, '\u0001')
+ .split(/\./).map(function (part) {
+ return part.replace(/\1/g, '\\.')
+ .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001')
+ })
}
function decode (str) {
var out = {}
- , p = out
- , section = null
- , state = "START"
- // section |key = value
- , re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i
- , lines = str.split(/[\r\n]+/g)
- , section = null
+ var p = out
+ var section = null
+ // section |key = value
+ var re = /^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i
+ var lines = str.split(/[\r\n]+/g)
lines.forEach(function (line, _, __) {
if (!line || line.match(/^\s*[;#]/)) return
@@ -86,7 +84,7 @@ function decode (str) {
return
}
var key = unsafe(match[2])
- , value = match[3] ? unsafe((match[4] || "")) : true
+ var value = match[3] ? unsafe(match[4]) : true
switch (value) {
case 'true':
case 'false':
@@ -94,22 +92,20 @@ function decode (str) {
}
// Convert keys with '[]' suffix to an array
- if (key.length > 2 && key.slice(-2) === "[]") {
- key = key.substring(0, key.length - 2)
- if (!p[key]) {
- p[key] = []
- }
- else if (!Array.isArray(p[key])) {
- p[key] = [p[key]]
- }
+ if (key.length > 2 && key.slice(-2) === '[]') {
+ key = key.substring(0, key.length - 2)
+ if (!p[key]) {
+ p[key] = []
+ } else if (!Array.isArray(p[key])) {
+ p[key] = [p[key]]
+ }
}
// safeguard against resetting a previously defined
// array by accidentally forgetting the brackets
if (Array.isArray(p[key])) {
p[key].push(value)
- }
- else {
+ } else {
p[key] = value
}
})
@@ -117,18 +113,24 @@ function decode (str) {
// {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}}
// use a filter to return the keys that have to be deleted.
Object.keys(out).filter(function (k, _, __) {
- if (!out[k] || typeof out[k] !== "object" || Array.isArray(out[k])) return false
+ if (!out[k] ||
+ typeof out[k] !== 'object' ||
+ Array.isArray(out[k])) {
+ return false
+ }
// see if the parent section is also an object.
// if so, add it to that, and mark this one for deletion
var parts = dotSplit(k)
- , p = out
- , l = parts.pop()
- , nl = l.replace(/\\\./g, '.')
+ var p = out
+ var l = parts.pop()
+ var nl = l.replace(/\\\./g, '.')
parts.forEach(function (part, _, __) {
- if (!p[part] || typeof p[part] !== "object") p[part] = {}
+ if (!p[part] || typeof p[part] !== 'object') p[part] = {}
p = p[part]
})
- if (p === out && nl === l) return false
+ if (p === out && nl === l) {
+ return false
+ }
p[nl] = out[k]
return true
}).forEach(function (del, _, __) {
@@ -139,52 +141,54 @@ function decode (str) {
}
function isQuoted (val) {
- return (val.charAt(0) === "\"" && val.slice(-1) === "\"")
- || (val.charAt(0) === "'" && val.slice(-1) === "'")
+ return (val.charAt(0) === '"' && val.slice(-1) === '"') ||
+ (val.charAt(0) === "'" && val.slice(-1) === "'")
}
function safe (val) {
- return ( typeof val !== "string"
- || val.match(/[=\r\n]/)
- || val.match(/^\[/)
- || (val.length > 1
- && isQuoted(val))
- || val !== val.trim() )
- ? JSON.stringify(val)
- : val.replace(/;/g, '\\;').replace(/#/g, "\\#")
+ return (typeof val !== 'string' ||
+ val.match(/[=\r\n]/) ||
+ val.match(/^\[/) ||
+ (val.length > 1 &&
+ isQuoted(val)) ||
+ val !== val.trim())
+ ? JSON.stringify(val)
+ : val.replace(/;/g, '\\;').replace(/#/g, '\\#')
}
function unsafe (val, doUnesc) {
- val = (val || "").trim()
+ val = (val || '').trim()
if (isQuoted(val)) {
// remove the single quotes before calling JSON.parse
if (val.charAt(0) === "'") {
- val = val.substr(1, val.length - 2);
+ val = val.substr(1, val.length - 2)
}
try { val = JSON.parse(val) } catch (_) {}
} else {
// walk the val to find the first not-escaped ; character
var esc = false
- var unesc = "";
+ var unesc = ''
for (var i = 0, l = val.length; i < l; i++) {
var c = val.charAt(i)
if (esc) {
- if ("\\;#".indexOf(c) !== -1)
+ if ('\\;#'.indexOf(c) !== -1) {
unesc += c
- else
- unesc += "\\" + c
+ } else {
+ unesc += '\\' + c
+ }
esc = false
- } else if (";#".indexOf(c) !== -1) {
+ } else if (';#'.indexOf(c) !== -1) {
break
- } else if (c === "\\") {
+ } else if (c === '\\') {
esc = true
} else {
unesc += c
}
}
- if (esc)
- unesc += "\\"
- return unesc
+ if (esc) {
+ unesc += '\\'
+ }
+ return unesc.trim()
}
return val
}
diff --git a/deps/npm/node_modules/ini/package.json b/deps/npm/node_modules/ini/package.json
index 8e13a10d4f..e2d4423dcf 100644
--- a/deps/npm/node_modules/ini/package.json
+++ b/deps/npm/node_modules/ini/package.json
@@ -1,45 +1,48 @@
{
- "_from": "ini@~1.3.4",
- "_id": "ini@1.3.4",
- "_integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=",
+ "_args": [
+ [
+ "ini@1.3.5",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "ini@1.3.5",
+ "_id": "ini@1.3.5",
+ "_inBundle": false,
+ "_integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
"_location": "/ini",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "ini@~1.3.4",
+ "raw": "ini@1.3.5",
"name": "ini",
"escapedName": "ini",
- "rawSpec": "~1.3.4",
+ "rawSpec": "1.3.5",
"saveSpec": null,
- "fetchSpec": "~1.3.4"
+ "fetchSpec": "1.3.5"
},
"_requiredBy": [
"/",
"/config-chain",
- "/update-notifier/latest-version/package-json/registry-auth-token/rc",
- "/update-notifier/latest-version/package-json/registry-url/rc"
+ "/global-dirs",
+ "/rc"
],
- "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz",
- "_shasum": "0537cb79daf59b59a1a517dff706c86ec039162e",
- "_shrinkwrap": null,
- "_spec": "ini@~1.3.4",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+ "_spec": "1.3.5",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/ini/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "An ini encoder/decoder for node",
"devDependencies": {
- "tap": "^1.2.0"
+ "standard": "^10.0.3",
+ "tap": "^10.7.3 || 11"
},
"engines": {
"node": "*"
@@ -51,14 +54,16 @@
"license": "ISC",
"main": "ini.js",
"name": "ini",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/ini.git"
},
"scripts": {
- "test": "tap test/*.js"
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "pretest": "standard ini.js",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100 -J"
},
- "version": "1.3.4"
+ "version": "1.3.5"
}
diff --git a/deps/npm/node_modules/init-package-json/CHANGELOG.md b/deps/npm/node_modules/init-package-json/CHANGELOG.md
new file mode 100644
index 0000000000..35096f4abb
--- /dev/null
+++ b/deps/npm/node_modules/init-package-json/CHANGELOG.md
@@ -0,0 +1,17 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.10.3"></a>
+## [1.10.3](https://github.com/npm/init-package-json/compare/v1.10.2...v1.10.3) (2018-03-07)
+
+
+
+<a name="1.10.2"></a>
+## [1.10.2](https://github.com/npm/init-package-json/compare/v1.10.1...v1.10.2) (2018-03-07)
+
+
+### Bug Fixes
+
+* **default-input:** Catch errors from npa ([#71](https://github.com/npm/init-package-json/issues/71)) ([11aee1e](https://github.com/npm/init-package-json/commit/11aee1e))
+* **grammar:** Fix minor style issue in final prompt ([#76](https://github.com/npm/init-package-json/issues/76)) ([ba259ce](https://github.com/npm/init-package-json/commit/ba259ce))
diff --git a/deps/npm/node_modules/init-package-json/default-input.js b/deps/npm/node_modules/init-package-json/default-input.js
index 06a3de477e..7d859a0d9b 100644
--- a/deps/npm/node_modules/init-package-json/default-input.js
+++ b/deps/npm/node_modules/init-package-json/default-input.js
@@ -12,7 +12,7 @@ function isTestPkg (p) {
}
function niceName (n) {
- return n.replace(/^node-|[.-]js$/g, '').toLowerCase()
+ return n.replace(/^node-|[.-]js$/g, '').replace(' ', '-').toLowerCase()
}
function readDeps (test, excluded) { return function (cb) {
@@ -46,7 +46,12 @@ function readDeps (test, excluded) { return function (cb) {
}}
var name = package.name || basename
-var spec = npa(name)
+var spec
+try {
+ spec = npa(name)
+} catch (e) {
+ spec = {}
+}
var scope = config.get('scope')
if (scope) {
if (scope.charAt(0) !== '@') scope = '@' + scope
diff --git a/deps/npm/node_modules/init-package-json/init-package-json.js b/deps/npm/node_modules/init-package-json/init-package-json.js
index 31758281d6..5b2889e55d 100644
--- a/deps/npm/node_modules/init-package-json/init-package-json.js
+++ b/deps/npm/node_modules/init-package-json/init-package-json.js
@@ -116,7 +116,7 @@ function init (dir, input, config, cb) {
return write(true)
}
console.log('About to write to %s:\n\n%s\n', packageFile, d)
- read({prompt:'Is this ok? ', default: 'yes'}, function (er, ok) {
+ read({prompt:'Is this OK? ', default: 'yes'}, function (er, ok) {
if (er) {
return cb(er)
}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md b/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md
deleted file mode 100644
index d45032dc74..0000000000
--- a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# npm-package-arg
-
-Parses package name and specifier passed to commands like `npm install` or
-`npm cache add`, or as found in `package.json` dependency sections.
-
-## EXAMPLES
-
-```javascript
-var assert = require("assert")
-var npa = require("npm-package-arg")
-
-// Pass in the descriptor, and it'll return an object
-try {
- var parsed = npa("@bar/foo@1.2")
-} catch (ex) {
- ā€¦
-}
-```
-
-## USING
-
-`var npa = require('npm-package-arg')`
-
-### var result = npa(*arg*[, *where*])
-
-* *arg* - a string that you might pass to `npm install`, like:
-`foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`,
-`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz`,
-`../foo/bar/` or `bar`. If the *arg* you provide doesn't have a specifier
-part, eg `foo` then the specifier will default to `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-### var result = npa.resolve(*name*, *spec*[, *where*])
-
-* *name* - The name of the module you want to install. For example: `foo` or `@bar/foo`.
-* *spec* - The specifier indicating where and how you can get this module. Something like:
-`1.2`, `^1.7.17`, `http://x.com/foo.tgz`, `git+https://github.com/user/foo`,
-`bitbucket:user/foo`, `file:foo.tar.gz` or `file:../foo/bar/`. If not
-included then the default is `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-## RESULT OBJECT
-
-The objects that are returned by npm-package-arg contain the following
-keys:
-
-* `type` - One of the following strings:
- * `git` - A git repo
- * `tag` - A tagged version, like `"foo@latest"`
- * `version` - A specific version number, like `"foo@1.2.3"`
- * `range` - A version range, like `"foo@2.x"`
- * `file` - A local `.tar.gz`, `.tar` or `.tgz` file.
- * `directory` - A local directory.
- * `remote` - An http url (presumably to a tgz)
-* `registry` - If true this specifier refers to a resource hosted on a
- registry. This is true for `tag`, `version` and `range` types.
-* `name` - If known, the `name` field expected in the resulting pkg.
-* `scope` - If a name is something like `@org/module` then the `scope`
- field will be set to `@org`. If it doesn't have a scoped name, then
- scope is `null`.
-* `escapedName` - A version of `name` escaped to match the npm scoped packages
- specification. Mostly used when making requests against a registry. When
- `name` is `null`, `escapedName` will also be `null`.
-* `rawSpec` - The specifier part that was parsed out in calls to `npa(arg)`,
- or the value of `spec` in calls to `npa.resolve(name, spec).
-* `saveSpec` - The normalized specifier, for saving to package.json files.
- `null` for registry dependencies.
-* `fetchSpec` - The version of the specifier to be used to fetch this
- resource. `null` for shortcuts to hosted git dependencies as there isn't
- just one URL to try with them.
-* `gitRange` - If set, this is a semver specifier to match against git tags with
-* `gitCommittish` - If set, this is the specific committish to use with a git dependency.
-* `hosted` - If `from === 'hosted'` then this will be a `hosted-git-info`
- object. This property is not included when serializing the object as
- JSON.
-* `raw` - The original un-modified string that was provided. If called as
- `npa.resolve(name, spec)` then this will be `name + '@' + spec`.
diff --git a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js b/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js
deleted file mode 100644
index a61c057429..0000000000
--- a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/npa.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict'
-module.exports = npa
-module.exports.resolve = resolve
-module.exports.Result = Result
-
-let url
-let HostedGit
-let semver
-let path
-let validatePackageName
-let osenv
-
-const isWindows = process.platform === 'win32' || global.FAKE_WINDOWS
-const hasSlashes = isWindows ? /\\|[/]/ : /[/]/
-const isURL = /^(?:git[+])?[a-z]+:/i
-const isFilename = /[.](?:tgz|tar.gz|tar)$/i
-
-function npa (arg, where) {
- let name
- let spec
- const nameEndsAt = arg[0] === '@' ? arg.slice(1).indexOf('@') + 1 : arg.indexOf('@')
- const namePart = nameEndsAt > 0 ? arg.slice(0, nameEndsAt) : arg
- if (isURL.test(arg)) {
- spec = arg
- } else if (namePart[0] !== '@' && (hasSlashes.test(namePart) || isFilename.test(namePart))) {
- spec = arg
- } else if (nameEndsAt > 0) {
- name = namePart
- spec = arg.slice(nameEndsAt + 1)
- } else {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(arg)
- if (valid.validForOldPackages) {
- name = arg
- } else {
- spec = arg
- }
- }
- return resolve(name, spec, where, arg)
-}
-
-const isFilespec = isWindows ? /^(?:[.]|~[/]|[/\\]|[a-zA-Z]:)/ : /^(?:[.]|~[/]|[/]|[a-zA-Z]:)/
-
-function resolve (name, spec, where, arg) {
- const res = new Result({
- raw: arg,
- name: name,
- rawSpec: spec,
- fromArgument: arg != null
- })
-
- if (name) res.setName(name)
-
- if (spec && (isFilespec.test(spec) || /^file:/i.test(spec))) {
- return fromFile(res, where)
- }
- if (!HostedGit) HostedGit = require('hosted-git-info')
- const hosted = HostedGit.fromUrl(spec, {noGitPlus: true, noCommittish: true})
- if (hosted) {
- return fromHostedGit(res, hosted)
- } else if (spec && isURL.test(spec)) {
- return fromURL(res)
- } else if (spec && (hasSlashes.test(spec) || isFilename.test(spec))) {
- return fromFile(res, where)
- } else {
- return fromRegistry(res)
- }
-}
-
-function invalidPackageName (name, valid) {
- const err = new Error(`Invalid package name "${name}": ${valid.errors.join('; ')}`)
- err.code = 'EINVALIDPACKAGENAME'
- return err
-}
-function invalidTagName (name) {
- const err = new Error(`Invalid tag name "${name}": Tags may not have any characters that encodeURIComponent encodes.`)
- err.code = 'EINVALIDTAGNAME'
- return err
-}
-
-function Result (opts) {
- this.type = opts.type
- this.registry = opts.registry
- this.where = opts.where
- if (opts.raw == null) {
- this.raw = opts.name ? opts.name + '@' + opts.rawSpec : opts.rawSpec
- } else {
- this.raw = opts.raw
- }
- this.name = undefined
- this.escapedName = undefined
- this.scope = undefined
- this.rawSpec = opts.rawSpec == null ? '' : opts.rawSpec
- this.saveSpec = opts.saveSpec
- this.fetchSpec = opts.fetchSpec
- if (opts.name) this.setName(opts.name)
- this.gitRange = opts.gitRange
- this.gitCommittish = opts.gitCommittish
- this.hosted = opts.hosted
-}
-Result.prototype = {}
-
-Result.prototype.setName = function (name) {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(name)
- if (!valid.validForOldPackages) {
- throw invalidPackageName(name, valid)
- }
- this.name = name
- this.scope = name[0] === '@' ? name.slice(0, name.indexOf('/')) : undefined
- // scoped packages in couch must have slash url-encoded, e.g. @foo%2Fbar
- this.escapedName = name.replace('/', '%2f')
- return this
-}
-
-Result.prototype.toString = function () {
- const full = []
- if (this.name != null && this.name !== '') full.push(this.name)
- const spec = this.saveSpec || this.fetchSpec || this.rawSpec
- if (spec != null && spec !== '') full.push(spec)
- return full.length ? full.join('@') : this.raw
-}
-
-Result.prototype.toJSON = function () {
- const result = Object.assign({}, this)
- delete result.hosted
- return result
-}
-
-function setGitCommittish (res, committish) {
- if (committish != null && committish.length >= 7 && committish.slice(0, 7) === 'semver:') {
- res.gitRange = decodeURIComponent(committish.slice(7))
- res.gitCommittish = null
- } else if (committish == null || committish === '') {
- res.gitCommittish = 'master'
- } else {
- res.gitCommittish = committish
- }
- return res
-}
-
-const isAbsolutePath = /^[/]|^[A-Za-z]:/
-
-function resolvePath (where, spec) {
- if (isAbsolutePath.test(spec)) return spec
- if (!path) path = require('path')
- return path.resolve(where, spec)
-}
-
-function isAbsolute (dir) {
- if (dir[0] === '/') return true
- if (/^[A-Za-z]:/.test(dir)) return true
- return false
-}
-
-function fromFile (res, where) {
- if (!where) where = process.cwd()
- res.type = isFilename.test(res.rawSpec) ? 'file' : 'directory'
- res.where = where
-
- const spec = res.rawSpec.replace(/\\/g, '/')
- .replace(/^file:[/]*([A-Za-z]:)/, '$1') // drive name paths on windows
- .replace(/^file:(?:[/]*([~./]))?/, '$1')
- if (/^~[/]/.test(spec)) {
- // this is needed for windows and for file:~/foo/bar
- if (!osenv) osenv = require('osenv')
- res.fetchSpec = resolvePath(osenv.home(), spec.slice(2))
- res.saveSpec = 'file:' + spec
- } else {
- res.fetchSpec = resolvePath(where, spec)
- if (isAbsolute(spec)) {
- res.saveSpec = 'file:' + spec
- } else {
- if (!path) path = require('path')
- res.saveSpec = 'file:' + path.relative(where, res.fetchSpec)
- }
- }
- return res
-}
-
-function fromHostedGit (res, hosted) {
- res.type = 'git'
- res.hosted = hosted
- res.saveSpec = hosted.toString({noGitPlus: false, noCommittish: false})
- res.fetchSpec = hosted.getDefaultRepresentation() === 'shortcut' ? null : hosted.toString()
- return setGitCommittish(res, hosted.committish)
-}
-
-function unsupportedURLType (protocol, spec) {
- const err = new Error(`Unsupported URL Type "${protocol}": ${spec}`)
- err.code = 'EUNSUPPORTEDPROTOCOL'
- return err
-}
-
-function matchGitScp (spec) {
- // git ssh specifiers are overloaded to also use scp-style git
- // specifiers, so we have to parse those out and treat them special.
- // They are NOT true URIs, so we can't hand them to `url.parse`.
- //
- // This regex looks for things that look like:
- // git+ssh://git@my.custom.git.com:username/project.git#deadbeef
- //
- // ...and various combinations. The username in the beginning is *required*.
- const matched = spec.match(/^git\+ssh:\/\/([^:#]+:[^#]+(?:\.git)?)(?:#(.*))?$/i)
- return matched && !matched[1].match(/:[0-9]+\/?.*$/i) && {
- fetchSpec: matched[1],
- gitCommittish: matched[2] || 'master'
- }
-}
-
-function fromURL (res) {
- if (!url) url = require('url')
- const urlparse = url.parse(res.rawSpec)
- res.saveSpec = res.rawSpec
- // check the protocol, and then see if it's git or not
- switch (urlparse.protocol) {
- case 'git:':
- case 'git+http:':
- case 'git+https:':
- case 'git+rsync:':
- case 'git+ftp:':
- case 'git+file:':
- case 'git+ssh:':
- res.type = 'git'
- const match = urlparse.protocol === 'git+ssh:' && matchGitScp(res.rawSpec)
- if (match) {
- res.fetchSpec = match.fetchSpec
- res.gitCommittish = match.gitCommittish
- } else {
- setGitCommittish(res, urlparse.hash != null ? urlparse.hash.slice(1) : '')
- urlparse.protocol = urlparse.protocol.replace(/^git[+]/, '')
- delete urlparse.hash
- res.fetchSpec = url.format(urlparse)
- }
- break
- case 'http:':
- case 'https:':
- res.type = 'remote'
- res.fetchSpec = res.saveSpec
- break
-
- default:
- throw unsupportedURLType(urlparse.protocol, res.rawSpec)
- }
-
- return res
-}
-
-function fromRegistry (res) {
- res.registry = true
- const spec = res.rawSpec === '' ? 'latest' : res.rawSpec
- // no save spec for registry components as we save based on the fetched
- // version, not on the argument so this can't compute that.
- res.saveSpec = null
- res.fetchSpec = spec
- if (!semver) semver = require('semver')
- const version = semver.valid(spec, true)
- const range = semver.validRange(spec, true)
- if (version) {
- res.type = 'version'
- } else if (range) {
- res.type = 'range'
- } else {
- if (encodeURIComponent(spec) !== spec) {
- throw invalidTagName(spec)
- }
- res.type = 'tag'
- }
- return res
-}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json
deleted file mode 100644
index 61a2c444aa..0000000000
--- a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "npm-package-arg@^4.0.0 || ^5.0.0",
- "_id": "npm-package-arg@5.1.2",
- "_inBundle": false,
- "_integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==",
- "_location": "/init-package-json/npm-package-arg",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-package-arg@^4.0.0 || ^5.0.0",
- "name": "npm-package-arg",
- "escapedName": "npm-package-arg",
- "rawSpec": "^4.0.0 || ^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0 || ^5.0.0"
- },
- "_requiredBy": [
- "/init-package-json"
- ],
- "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz",
- "_shasum": "fb18d17bb61e60900d6312619919bd753755ab37",
- "_spec": "npm-package-arg@^4.0.0 || ^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/init-package-json",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/npm-package-arg/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "hosted-git-info": "^2.4.2",
- "osenv": "^0.1.4",
- "semver": "^5.1.0",
- "validate-npm-package-name": "^3.0.0"
- },
- "deprecated": false,
- "description": "Parse the things that can be arguments to `npm install`",
- "devDependencies": {
- "standard": "9.0.2",
- "tap": "^10.3.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "npa.js"
- ],
- "homepage": "https://github.com/npm/npm-package-arg",
- "license": "ISC",
- "main": "npa.js",
- "name": "npm-package-arg",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/npm-package-arg.git"
- },
- "scripts": {
- "test": "standard && tap -J --coverage test/*.js"
- },
- "version": "5.1.2"
-}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE b/deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE
deleted file mode 100644
index 05eeeb88c2..0000000000
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-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/init-package-json/node_modules/promzard/package.json b/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
deleted file mode 100644
index a7e3521005..0000000000
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "promzard@^0.3.0",
- "_id": "promzard@0.3.0",
- "_integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
- "_location": "/init-package-json/promzard",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "promzard@^0.3.0",
- "name": "promzard",
- "escapedName": "promzard",
- "rawSpec": "^0.3.0",
- "saveSpec": null,
- "fetchSpec": "^0.3.0"
- },
- "_requiredBy": [
- "/init-package-json"
- ],
- "_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
- "_shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee",
- "_shrinkwrap": null,
- "_spec": "promzard@^0.3.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/init-package-json",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/promzard/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "read": "1"
- },
- "deprecated": false,
- "description": "prompting wizardly",
- "devDependencies": {
- "tap": "~0.2.5"
- },
- "homepage": "https://github.com/isaacs/promzard#readme",
- "license": "ISC",
- "main": "promzard.js",
- "name": "promzard",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "url": "git://github.com/isaacs/promzard.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "0.3.0"
-}
diff --git a/deps/npm/node_modules/init-package-json/package.json b/deps/npm/node_modules/init-package-json/package.json
index 7a6373a695..bd1b8743a8 100644
--- a/deps/npm/node_modules/init-package-json/package.json
+++ b/deps/npm/node_modules/init-package-json/package.json
@@ -1,42 +1,43 @@
{
- "_from": "init-package-json@~1.10.1",
- "_id": "init-package-json@1.10.1",
- "_integrity": "sha1-zYc6FneWvvuZYSsodioLY5P9j2o=",
+ "_args": [
+ [
+ "init-package-json@1.10.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "init-package-json@1.10.3",
+ "_id": "init-package-json@1.10.3",
+ "_inBundle": false,
+ "_integrity": "sha512-zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==",
"_location": "/init-package-json",
- "_phantomChildren": {
- "read": "1.0.7"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "init-package-json@~1.10.1",
+ "raw": "init-package-json@1.10.3",
"name": "init-package-json",
"escapedName": "init-package-json",
- "rawSpec": "~1.10.1",
+ "rawSpec": "1.10.3",
"saveSpec": null,
- "fetchSpec": "~1.10.1"
+ "fetchSpec": "1.10.3"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.1.tgz",
- "_shasum": "cd873a167796befb99612b28762a0b6393fd8f6a",
- "_shrinkwrap": null,
- "_spec": "init-package-json@~1.10.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/init-package-json/-/init-package-json-1.10.3.tgz",
+ "_spec": "1.10.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/init-package-json/issues"
},
- "bundleDependencies": false,
"dependencies": {
"glob": "^7.1.1",
- "npm-package-arg": "^4.0.0 || ^5.0.0",
+ "npm-package-arg": "^4.0.0 || ^5.0.0 || ^6.0.0",
"promzard": "^0.3.0",
"read": "~1.0.1",
"read-package-json": "1 || 2",
@@ -44,13 +45,13 @@
"validate-npm-package-license": "^3.0.1",
"validate-npm-package-name": "^3.0.0"
},
- "deprecated": false,
"description": "A node module to get your node module started",
"devDependencies": {
"mkdirp": "^0.5.1",
- "npm": "^4.3.0",
+ "npm": "^5.7.1",
"rimraf": "^2.1.4",
- "tap": "^10.3.0"
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.2"
},
"files": [
"default-input.js",
@@ -70,14 +71,15 @@
"license": "ISC",
"main": "init-package-json.js",
"name": "init-package-json",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/init-package-json.git"
},
"scripts": {
- "test": "tap test/*.js"
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "release": "standard-version -s",
+ "test": "tap --nyc-arg=--all --coverage test"
},
- "version": "1.10.1"
+ "version": "1.10.3"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/index.js b/deps/npm/node_modules/invert-kv/index.js
index 61e2196112..61e2196112 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/index.js
+++ b/deps/npm/node_modules/invert-kv/index.js
diff --git a/deps/npm/node_modules/invert-kv/package.json b/deps/npm/node_modules/invert-kv/package.json
new file mode 100644
index 0000000000..c38e09e5d9
--- /dev/null
+++ b/deps/npm/node_modules/invert-kv/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "invert-kv@^1.0.0",
+ "_id": "invert-kv@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+ "_location": "/invert-kv",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "invert-kv@^1.0.0",
+ "name": "invert-kv",
+ "escapedName": "invert-kv",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/lcid"
+ ],
+ "_resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+ "_shasum": "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6",
+ "_spec": "invert-kv@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/lcid",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "http://sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/invert-kv/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Invert the key/value of an object. Example: {foo: 'bar'} ā†’ {bar: 'foo'}",
+ "devDependencies": {
+ "mocha": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/invert-kv#readme",
+ "keywords": [
+ "object",
+ "obj",
+ "key",
+ "value",
+ "val",
+ "kv",
+ "invert"
+ ],
+ "license": "MIT",
+ "name": "invert-kv",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/invert-kv.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/readme.md b/deps/npm/node_modules/invert-kv/readme.md
index 039fc7cfa2..039fc7cfa2 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/readme.md
+++ b/deps/npm/node_modules/invert-kv/readme.md
diff --git a/deps/npm/node_modules/ip-regex/index.js b/deps/npm/node_modules/ip-regex/index.js
new file mode 100644
index 0000000000..973e5f41c2
--- /dev/null
+++ b/deps/npm/node_modules/ip-regex/index.js
@@ -0,0 +1,24 @@
+'use strict';
+
+const v4 = '(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}';
+
+const v6seg = '[0-9a-fA-F]{1,4}';
+const v6 = `
+(
+(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8
+(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4
+(?:${v6seg}:){5}(?::${v4}|(:${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4
+(?:${v6seg}:){4}(?:(:${v6seg}){0,1}:${v4}|(:${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4
+(?:${v6seg}:){3}(?:(:${v6seg}){0,2}:${v4}|(:${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4
+(?:${v6seg}:){2}(?:(:${v6seg}){0,3}:${v4}|(:${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4
+(?:${v6seg}:){1}(?:(:${v6seg}){0,4}:${v4}|(:${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4
+(?::((?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4
+)(%[0-9a-zA-Z]{1,})? // %eth0 %1
+`.replace(/\s*\/\/.*$/gm, '').replace(/\n/g, '').trim();
+
+const ip = module.exports = opts => opts && opts.exact ?
+ new RegExp(`(?:^${v4}$)|(?:^${v6}$)`) :
+ new RegExp(`(?:${v4})|(?:${v6})`, 'g');
+
+ip.v4 = opts => opts && opts.exact ? new RegExp(`^${v4}$`) : new RegExp(v4, 'g');
+ip.v6 = opts => opts && opts.exact ? new RegExp(`^${v6}$`) : new RegExp(v6, 'g');
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/license b/deps/npm/node_modules/ip-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/license
+++ b/deps/npm/node_modules/ip-regex/license
diff --git a/deps/npm/node_modules/ip-regex/package.json b/deps/npm/node_modules/ip-regex/package.json
new file mode 100644
index 0000000000..4d71de6458
--- /dev/null
+++ b/deps/npm/node_modules/ip-regex/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "ip-regex@^2.1.0",
+ "_id": "ip-regex@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=",
+ "_location": "/ip-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ip-regex@^2.1.0",
+ "name": "ip-regex",
+ "escapedName": "ip-regex",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/cidr-regex"
+ ],
+ "_resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz",
+ "_shasum": "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9",
+ "_spec": "ip-regex@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cidr-regex",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/ip-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching IP addresses (IPv4 & IPv6)",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/ip-regex#readme",
+ "keywords": [
+ "ip",
+ "ipv6",
+ "ipv4",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "text",
+ "pattern",
+ "internet",
+ "protocol",
+ "address",
+ "validate"
+ ],
+ "license": "MIT",
+ "name": "ip-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/ip-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/ip-regex/readme.md b/deps/npm/node_modules/ip-regex/readme.md
new file mode 100644
index 0000000000..66bc7f2731
--- /dev/null
+++ b/deps/npm/node_modules/ip-regex/readme.md
@@ -0,0 +1,63 @@
+# ip-regex [![Build Status](https://travis-ci.org/sindresorhus/ip-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/ip-regex)
+
+> Regular expression for matching IP addresses
+
+
+## Install
+
+```
+$ npm install --save ip-regex
+```
+
+
+## Usage
+
+```js
+const ipRegex = require('ip-regex');
+
+// Contains an IP address?
+ipRegex().test('unicorn 192.168.0.1');
+//=> true
+
+// Is an IP address?
+ipRegex({exact: true}).test('unicorn 192.168.0.1');
+//=> false
+
+ipRegex.v6({exact: true}).test('1:2:3:4:5:6:7:8');
+//=> true
+
+'unicorn 192.168.0.1 cake 1:2:3:4:5:6:7:8 rainbow'.match(ipRegex());
+//=> ['192.168.0.1', '1:2:3:4:5:6:7:8']
+```
+
+
+## API
+
+### ipRegex([options])
+
+Returns a regex for matching both IPv4 and IPv6.
+
+### ipRegex.v4([options])
+
+Returns a regex for matching IPv4.
+
+### ipRegex.v6([options])
+
+Returns a regex for matching IPv6.
+
+#### options.exact
+
+Type: `boolean`<br>
+Default: `false` *(Matches any IP address in a string)*
+
+Only match an exact string. Useful with `RegExp#test()` to check if a string is an IP address.
+
+
+## Related
+
+- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc b/deps/npm/node_modules/ip/.jscsrc
index dbaae20574..dbaae20574 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc
+++ b/deps/npm/node_modules/ip/.jscsrc
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore b/deps/npm/node_modules/ip/.npmignore
index 1ca957177f..1ca957177f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore
+++ b/deps/npm/node_modules/ip/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml b/deps/npm/node_modules/ip/.travis.yml
index a3a8fad6b6..a3a8fad6b6 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml
+++ b/deps/npm/node_modules/ip/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md b/deps/npm/node_modules/ip/README.md
index 9035fd71b1..9035fd71b1 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md
+++ b/deps/npm/node_modules/ip/README.md
diff --git a/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 b/deps/npm/node_modules/ip/lib/ip.js
index c1799a8c50..c1799a8c50 100644
--- a/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
+++ b/deps/npm/node_modules/ip/lib/ip.js
diff --git a/deps/npm/node_modules/ip/package.json b/deps/npm/node_modules/ip/package.json
new file mode 100644
index 0000000000..fb58d8c049
--- /dev/null
+++ b/deps/npm/node_modules/ip/package.json
@@ -0,0 +1,55 @@
+{
+ "_from": "ip@^1.1.5",
+ "_id": "ip@1.1.5",
+ "_inBundle": false,
+ "_integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
+ "_location": "/ip",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ip@^1.1.5",
+ "name": "ip",
+ "escapedName": "ip",
+ "rawSpec": "^1.1.5",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.5"
+ },
+ "_requiredBy": [
+ "/npm-profile/socks",
+ "/npm-registry-fetch/socks",
+ "/socks"
+ ],
+ "_resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
+ "_shasum": "bdded70114290828c0a039e72ef25f5aaec4354a",
+ "_spec": "ip@^1.1.5",
+ "_where": "/Users/rebecca/code/npm/node_modules/socks",
+ "author": {
+ "name": "Fedor Indutny",
+ "email": "fedor@indutny.com"
+ },
+ "bugs": {
+ "url": "https://github.com/indutny/node-ip/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip)",
+ "devDependencies": {
+ "jscs": "^2.1.1",
+ "jshint": "^2.8.0",
+ "mocha": "~1.3.2"
+ },
+ "homepage": "https://github.com/indutny/node-ip",
+ "license": "MIT",
+ "main": "lib/ip",
+ "name": "ip",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/indutny/node-ip.git"
+ },
+ "scripts": {
+ "fix": "jscs lib/*.js test/*.js --fix",
+ "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js"
+ },
+ "version": "1.1.5"
+}
diff --git a/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 b/deps/npm/node_modules/ip/test/api-test.js
index 2e390f986d..2e390f986d 100644
--- a/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
+++ b/deps/npm/node_modules/ip/test/api-test.js
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js b/deps/npm/node_modules/is-builtin-module/index.js
index b6cfa616ae..b6cfa616ae 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/index.js
+++ b/deps/npm/node_modules/is-builtin-module/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/license b/deps/npm/node_modules/is-builtin-module/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/license
+++ b/deps/npm/node_modules/is-builtin-module/license
diff --git a/deps/npm/node_modules/is-builtin-module/package.json b/deps/npm/node_modules/is-builtin-module/package.json
new file mode 100644
index 0000000000..d1cd899d9a
--- /dev/null
+++ b/deps/npm/node_modules/is-builtin-module/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "is-builtin-module@^1.0.0",
+ "_id": "is-builtin-module@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
+ "_location": "/is-builtin-module",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-builtin-module@^1.0.0",
+ "name": "is-builtin-module",
+ "escapedName": "is-builtin-module",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/normalize-package-data"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
+ "_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe",
+ "_spec": "is-builtin-module@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/normalize-package-data",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-builtin-module/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "builtin-modules": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if a string matches the name of a Node.js builtin module",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-builtin-module#readme",
+ "keywords": [
+ "builtin",
+ "built-in",
+ "builtins",
+ "node",
+ "modules",
+ "core",
+ "bundled",
+ "list",
+ "array",
+ "names",
+ "is",
+ "detect",
+ "check",
+ "match"
+ ],
+ "license": "MIT",
+ "name": "is-builtin-module",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-builtin-module.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md b/deps/npm/node_modules/is-builtin-module/readme.md
index 798dcf4371..798dcf4371 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/readme.md
+++ b/deps/npm/node_modules/is-builtin-module/readme.md
diff --git a/deps/npm/node_modules/is-ci/.travis.yml b/deps/npm/node_modules/is-ci/.travis.yml
new file mode 100644
index 0000000000..21f7210509
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/.travis.yml
@@ -0,0 +1,7 @@
+language: node_js
+node_js:
+- '6'
+- '5'
+- '4'
+- '0.12'
+- '0.10'
diff --git a/deps/npm/node_modules/is-ci/LICENSE b/deps/npm/node_modules/is-ci/LICENSE
new file mode 100644
index 0000000000..67846832ec
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016-2018 Thomas Watson Steen
+
+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/is-ci/README.md b/deps/npm/node_modules/is-ci/README.md
new file mode 100644
index 0000000000..0e49db91bb
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/README.md
@@ -0,0 +1,69 @@
+# is-ci
+
+Returns `true` if the current environment is a Continuous Integration
+server.
+
+Please [open an issue](https://github.com/watson/is-ci/issues) if your
+CI server isn't properly detected :)
+
+[![Build status](https://travis-ci.org/watson/is-ci.svg?branch=master)](https://travis-ci.org/watson/is-ci)
+[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://github.com/feross/standard)
+
+## Installation
+
+```
+npm install is-ci --save
+```
+
+## Programmatic Usage
+
+```js
+const isCI = require('is-ci')
+
+if (isCI) {
+ console.log('The code is running on a CI server')
+}
+```
+
+## CLI Usage
+
+For CLI usage you need to have the `is-ci` executable in your `PATH`.
+There's a few ways to do that:
+
+- Either install the module globally using `npm install is-ci -g`
+- Or add the module as a dependency to your app in which case it can be
+ used inside your package.json scripts as is
+- Or provide the full path to the executable, e.g.
+ `./node_modules/.bin/is-ci`
+
+```
+is-ci && echo "This is a CI server"
+```
+
+## Supported CI tools
+
+Officially supported CI servers:
+
+- [Travis CI](http://travis-ci.org)
+- [CircleCI](http://circleci.com)
+- [Jenkins CI](https://jenkins-ci.org)
+- [Hudson](http://hudson-ci.org)
+- [Bamboo](https://www.atlassian.com/software/bamboo)
+- [TeamCity](https://www.jetbrains.com/teamcity/)
+- [Team Foundation Server](https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx)
+- [GitLab CI](https://about.gitlab.com/gitlab-ci/)
+- [Codeship](https://codeship.com)
+- [Drone.io](https://drone.io)
+- [Magnum CI](https://magnum-ci.com)
+- [Semaphore](https://semaphoreci.com)
+- [AppVeyor](http://www.appveyor.com)
+- [Buildkite](https://buildkite.com)
+- [TaskCluster](http://docs.taskcluster.net)
+- [GoCD](https://www.go.cd/)
+- [Bitbucket Pipelines](https://bitbucket.org/product/features/pipelines)
+
+Other CI tools using environment variables like `BUILD_ID` or `CI` would be detected as well.
+
+## License
+
+MIT
diff --git a/deps/npm/node_modules/is-ci/bin.js b/deps/npm/node_modules/is-ci/bin.js
new file mode 100755
index 0000000000..0c56c01f26
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/bin.js
@@ -0,0 +1,4 @@
+#!/usr/bin/env node
+'use strict'
+
+process.exit(require('./') ? 0 : 1)
diff --git a/deps/npm/node_modules/is-ci/index.js b/deps/npm/node_modules/is-ci/index.js
new file mode 100644
index 0000000000..d4cb67aa9b
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/index.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = require('ci-info').isCI
diff --git a/deps/npm/node_modules/is-ci/package.json b/deps/npm/node_modules/is-ci/package.json
new file mode 100644
index 0000000000..e87ba5d7fd
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "is-ci@^1.0.10",
+ "_id": "is-ci@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==",
+ "_location": "/is-ci",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-ci@^1.0.10",
+ "name": "is-ci",
+ "escapedName": "is-ci",
+ "rawSpec": "^1.0.10",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.10"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.1.0.tgz",
+ "_shasum": "247e4162e7860cebbdaf30b774d6b0ac7dcfe7a5",
+ "_spec": "is-ci@^1.0.10",
+ "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "author": {
+ "name": "Thomas Watson Steen",
+ "email": "w@tson.dk",
+ "url": "https://twitter.com/wa7son"
+ },
+ "bin": {
+ "is-ci": "bin.js"
+ },
+ "bugs": {
+ "url": "https://github.com/watson/is-ci/issues"
+ },
+ "bundleDependencies": false,
+ "coordinates": [
+ 56.0093252,
+ 11.9592058
+ ],
+ "dependencies": {
+ "ci-info": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Detect if your code is running on a CI server",
+ "devDependencies": {
+ "clear-require": "^1.0.1",
+ "standard": "^10.0.3"
+ },
+ "homepage": "https://github.com/watson/is-ci",
+ "keywords": [
+ "ci",
+ "continuous",
+ "integration",
+ "test",
+ "detect"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "is-ci",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/watson/is-ci.git"
+ },
+ "scripts": {
+ "test": "standard && node test.js"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/is-ci/test.js b/deps/npm/node_modules/is-ci/test.js
new file mode 100644
index 0000000000..a9938bbdb8
--- /dev/null
+++ b/deps/npm/node_modules/is-ci/test.js
@@ -0,0 +1,19 @@
+'use strict'
+
+var assert = require('assert')
+var clearRequire = require('clear-require')
+
+process.env.CI = 'true'
+
+var isCI = require('./')
+assert(isCI)
+
+delete process.env.CI
+delete process.env.CONTINUOUS_INTEGRATION
+delete process.env.BUILD_NUMBER
+delete process.env.TRAVIS
+
+clearRequire('./')
+clearRequire('ci-info')
+isCI = require('./')
+assert(!isCI)
diff --git a/deps/npm/node_modules/is-cidr/.npmignore b/deps/npm/node_modules/is-cidr/.npmignore
deleted file mode 100644
index 8eba6c8dd4..0000000000
--- a/deps/npm/node_modules/is-cidr/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-src/
diff --git a/deps/npm/node_modules/is-cidr/.travis.yml b/deps/npm/node_modules/is-cidr/.travis.yml
deleted file mode 100644
index 6eeec8aa94..0000000000
--- a/deps/npm/node_modules/is-cidr/.travis.yml
+++ /dev/null
@@ -1,21 +0,0 @@
-sudo: false
-language: node_js
-cache:
- directories:
- - node_modules
-notifications:
- email: false
-node_js:
- - '4'
-before_install:
- - npm i -g npm@^3.0.0
-before_script:
- - npm prune
-script:
- - npm run test
- - npm run build
-after_success:
- - npm run semantic-release
-branches:
- except:
- - "/^v\\d+\\.\\d+\\.\\d+$/"
diff --git a/deps/npm/node_modules/is-cidr/LICENSE b/deps/npm/node_modules/is-cidr/LICENSE
new file mode 100644
index 0000000000..9669c20f85
--- /dev/null
+++ b/deps/npm/node_modules/is-cidr/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) silverwind
+All rights reserved.
+
+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 OWNER 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/is-cidr/README.md b/deps/npm/node_modules/is-cidr/README.md
index 403071bba8..64ea8f5722 100644
--- a/deps/npm/node_modules/is-cidr/README.md
+++ b/deps/npm/node_modules/is-cidr/README.md
@@ -1,57 +1,55 @@
# is-cidr
-Check if a string is a valid CIDR
+[![](https://img.shields.io/npm/v/is-cidr.svg?style=flat)](https://www.npmjs.org/package/is-cidr) [![](https://img.shields.io/npm/dm/is-cidr.svg)](https://www.npmjs.org/package/is-cidr) [![](https://api.travis-ci.org/silverwind/is-cidr.svg?style=flat)](https://travis-ci.org/silverwind/is-cidr)
-[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=flat-square)](https://github.com/semantic-release/semantic-release)
-[![version](https://img.shields.io/npm/v/is-cidr.svg?style=flat-square)](http://npm.im/is-cidr)
-[![MIT License](https://img.shields.io/npm/l/is-cidr.svg?style=flat-square)](http://opensource.org/licenses/MIT)
-[![travis build](https://img.shields.io/travis/flipjs/is-cidr.svg?style=flat-square)](https://travis-ci.org/flipjs/is-cidr)
-[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)
-[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=flat-square)](http://commitizen.github.io/cz-cli/)
-[![downloads](https://img.shields.io/npm/dm/is-cidr.svg?style=flat-square)](http://npm-stat.com/charts.html?package=is-cidr&from=2016-03-24)
+> Check if a string is an IP address in CIDR notation
## Install
-```sh
+```
$ npm install --save is-cidr
```
+
## Usage
```js
-import isCidr from 'is-cidr' // default is isCidrV4
-import { isCidrV4, isCidrV6 } from 'is-cidr'
-// OR
-var isCidrV4 = require('is-cidr').isCidrV4
-var isCidrV6 = require('is-cidr').isCidrV6
+const isCidr = require('is-cidr');
-// is a CIDR v4
-isCidr('18.101.25.153/24') // true
+isCidr('192.168.0.1/24');
+//=> true
-// is not a CIDR v4
-isCidrV4('999.999.999.999/12') // false
+isCidr('1:2:3:4:5:6:7:8/64');
+//=> true
-// is a CIDR v6
-isCidrV6('fe80:0000:0000:0000:0204:61ff:fe9d:f156') // true
-
-// is not a CIDR v6
-isCidrV6('fe80:0000:0000:0000:0204:61ff:fe9d:f156/a') // false
+isCidr.v4('1:2:3:4:5:6:7:8/64');
+//=> false
```
+
## API
-### isCidr(string)
+### isCidr(input)
-Check if a string is CIDR IPv4.
+Check if `input` is a IPv4 or IPv6 CIDR address.
-### isCidrV4(string)
+### isCidr.v4(input)
-Check if a string is CIDR IPv4.
+Check if `input` is IPv4 CIDR address.
-### isCidrV6(string)
+### isCidr.v6(input)
-Check if a string is CIDR IPv6.
+Check if `input` is IPv6 CIDR address.
+
+
+## Related
+
+- [cidr-regex](https://github.com/silverwind/cidr-regex) - Regular expression for matching IP addresses in CIDR notation
+- [is-ip](https://github.com/sindresorhus/is-ip) - Check if a string is an IP address
+- [ip-regex](https://github.com/sindresorhus/ip-regex) - Regular expression for matching IP addresses
## License
-MIT Ā© [Felipe Apostol](https://github.com/flipjs)
+Ā© [silverwind](https://github.com/silverwind), distributed under BSD licence
+
+Based on previous work by [Felipe Apostol](https://github.com/flipjs)
diff --git a/deps/npm/node_modules/is-cidr/example/example.js b/deps/npm/node_modules/is-cidr/example/example.js
deleted file mode 100644
index d64bb9176d..0000000000
--- a/deps/npm/node_modules/is-cidr/example/example.js
+++ /dev/null
@@ -1,13 +0,0 @@
-var r = require('../lib')
-
-var v4true = r.isCidrV4('1.1.1.1/24')
-console.log('cidrv4 true is', v4true)
-
-var v4false = r.isCidrV4('1.1.1.256/24')
-console.log('cidrv4 false is', v4false)
-
-var v6true = r.isCidrV6('fe80:0000:0000:0000:0204:61ff:fe9d:f156')
-console.log('cidrv6 true is', v6true)
-
-var v6false = r.isCidrV6('fe80:0000:0000:0000:0204:61ff:fe9d:f156/sdfsdfs')
-console.log('cidrv6 false is', v6false)
diff --git a/deps/npm/node_modules/is-cidr/index.js b/deps/npm/node_modules/is-cidr/index.js
new file mode 100644
index 0000000000..b5a5026439
--- /dev/null
+++ b/deps/npm/node_modules/is-cidr/index.js
@@ -0,0 +1,6 @@
+"use strict";
+const cidrRegex = require("cidr-regex");
+
+const isCidr = module.exports = string => cidrRegex({exact: true}).test(string);
+isCidr.v4 = string => cidrRegex.v4({exact: true}).test(string);
+isCidr.v6 = string => cidrRegex.v6({exact: true}).test(string);
diff --git a/deps/npm/node_modules/is-cidr/lib/index.js b/deps/npm/node_modules/is-cidr/lib/index.js
deleted file mode 100644
index a367060491..0000000000
--- a/deps/npm/node_modules/is-cidr/lib/index.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-exports.isCidrV6 = exports.isCidrV4 = undefined;
-
-var _cidrRegex = require('cidr-regex');
-
-var isCidrV4 = exports.isCidrV4 = function isCidrV4(str) {
- return _cidrRegex.cidrv4.test(str);
-};
-
-var isCidrV6 = exports.isCidrV6 = function isCidrV6(str) {
- return _cidrRegex.cidrv6.test(str);
-};
-
-exports.default = isCidrV4; \ No newline at end of file
diff --git a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore b/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore
deleted file mode 100644
index 8eba6c8dd4..0000000000
--- a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-src/
diff --git a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md b/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md
deleted file mode 100644
index df715efc2b..0000000000
--- a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# cidr-regex
-Regular expression for matching CIDR (Classless Inter-Domain Routing)
-
-## Install
-
-```sh
-$ npm install --save cidr-regex
-```
-
-## Usage
-
-```js
-import cidr from 'cidr-regex' // default regex is cidr v4
-import { cidrv4, cidrv6 } from 'cidr-regex'
-// OR
-var cidrv4 = require('cidr-regex').cidrv4
-var cidrv6 = require('cidr-regex').cidrv6
-
-// is a CIDR v4
-cidr.test('18.101.25.153/24') // true
-
-// is not a CIDR v4
-cidrv4.test('999.999.999.999/12') // false
-
-// is a CIDR v6
-cidrv6.test('fe80:0000:0000:0000:0204:61ff:fe9d:f156') // true
-
-// is not a CIDR v6
-cidrv6.test('fe80:0000:0000:0000:0204:61ff:fe9d:f156/a') // false
-```
-
-## API
-
-### cidr
-
-A regex for matching CIDR IPv4
-
-### cidrv4
-
-A regex for matching CIDR IPv4
-
-### cidrv6
-
-A regex for matching CIDR IPv6
-
-## License
-
-MIT Ā© [Felipe Apostol](https://github.com/flipjs)
diff --git a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js b/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js
deleted file mode 100644
index 44533ae3a4..0000000000
--- a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/lib/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-Object.defineProperty(exports, "__esModule", {
- value: true
-});
-var cidrv4 = exports.cidrv4 = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([0-9]|[1-2][0-9]|3[0-2]))$/;
-
-var cidrv6 = exports.cidrv6 = /^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$/;
-
-exports.default = cidrv4; \ No newline at end of file
diff --git a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json b/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json
deleted file mode 100644
index 0c23adf200..0000000000
--- a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "cidr-regex@1.0.6",
- "_id": "cidr-regex@1.0.6",
- "_inBundle": false,
- "_integrity": "sha1-dKv9YZ3zcLnVSrFEdVaOl91kwME=",
- "_location": "/is-cidr/cidr-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "cidr-regex@1.0.6",
- "name": "cidr-regex",
- "escapedName": "cidr-regex",
- "rawSpec": "1.0.6",
- "saveSpec": null,
- "fetchSpec": "1.0.6"
- },
- "_requiredBy": [
- "/is-cidr"
- ],
- "_resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-1.0.6.tgz",
- "_shasum": "74abfd619df370b9d54ab14475568e97dd64c0c1",
- "_spec": "cidr-regex@1.0.6",
- "_where": "/Users/rebecca/code/npm/node_modules/is-cidr",
- "author": {
- "name": "Felipe Apostol",
- "email": "flipjs.io@gmail.com",
- "url": "http://flipjs.io/"
- },
- "babel": {
- "presets": [
- "es2015"
- ]
- },
- "bugs": {
- "url": "https://github.com/flipjs/cidr-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching CIDR (Classless Inter-Domain Routing)",
- "devDependencies": {
- "ava": "0.13.0",
- "babel-cli": "6.6.5",
- "babel-preset-es2015": "6.6.0",
- "babel-register": "6.7.2"
- },
- "homepage": "https://github.com/flipjs/cidr-regex#readme",
- "keywords": [
- "ip",
- "ip address",
- "cidr",
- "netblock",
- "regex"
- ],
- "license": "MIT",
- "main": "lib/index.js",
- "name": "cidr-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/flipjs/cidr-regex.git"
- },
- "scripts": {
- "compile": "babel --presets es2015 -d lib/ src/",
- "prepublish": "npm run compile",
- "test": "ava --require babel-register"
- },
- "version": "1.0.6"
-}
diff --git a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js b/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js
deleted file mode 100644
index 8442b67ec8..0000000000
--- a/deps/npm/node_modules/is-cidr/node_modules/cidr-regex/test.js
+++ /dev/null
@@ -1,199 +0,0 @@
-'use strict'
-
-import test from 'ava'
-import cidr, { cidrv4, cidrv6 } from './src'
-
-const v4 = [
- '0.0.0.0/16',
- '8.8.8.8/17',
- '127.0.0.1/18',
- '100.100.100.100/19',
- '192.168.0.1/20',
- '18.101.25.153/24',
- '123.23.34.2/25',
- '172.26.168.134/26',
- '212.58.241.131/27',
- '128.0.0.0/28',
- '23.71.254.72/29',
- '223.255.255.255/30',
- '192.0.2.235/31',
- '99.198.122.146/32',
- '46.51.197.88/8',
- '173.194.34.134/12'
-]
-
-const v4not = [
- '.100.100.100.100/16',
- '100..100.100.100./24',
- '100.100.100.100./32',
- '999.999.999.999/12',
- '256.256.256.256/30',
- '256.100.100.100.100/26',
- '123.123.123/31',
- 'http://123.123.123/28',
- '1000.2.3.4/14',
- '999.2.3.4/8'
-]
-
-const v6 = [
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/0',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/1',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/2',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/3',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/5',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/6',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/7',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/8',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/9',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/11',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/12',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/13',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/14',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/15',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/16',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/17',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/18',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/19',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/20',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/21',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/22',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/23',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/24',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/25',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/26',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/27',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/28',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/29',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/30',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/31',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/32',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/33',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/34',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/35',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/36',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/37',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/38',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/39',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/40',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/41',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/42',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/43',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/44',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/45',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/46',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/47',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/48',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/49',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/50',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/51',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/52',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/53',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/54',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/55',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/56',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/57',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/58',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/59',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/60',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/61',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/62',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/63',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/64',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/65',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/66',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/67',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/68',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/69',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/70',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/71',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/72',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/73',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/74',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/75',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/76',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/77',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/78',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/79',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/80',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/81',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/82',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/83',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/84',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/85',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/86',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/87',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/88',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/89',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/90',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/91',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/92',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/93',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/94',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/95',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/96',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/97',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/98',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/99',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/100',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/101',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/102',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/103',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/104',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/105',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/106',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/107',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/108',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/109',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/110',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/111',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/112',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/113',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/114',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/115',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/116',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/117',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/118',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/119',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/120',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/121',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/122',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/123',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/124',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/125',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/126',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/127',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/128',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156'
-]
-
-const v6not = [
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/129',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/a',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/āˆš',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/00',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/03',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/sdfsdfs',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/'
-]
-
-test('cidr v4', (t) => {
- v4.forEach((string) => {
- t.true(cidr.test(string))
- })
-
- v4not.forEach((string) => {
- t.false(cidrv4.test(string))
- })
-})
-
-test('cidr v6', (t) => {
- v6.forEach((string) => {
- t.true(cidrv6.test(string))
- })
-
- v6not.forEach((string) => {
- t.false(cidrv6.test(string))
- })
-})
diff --git a/deps/npm/node_modules/is-cidr/package.json b/deps/npm/node_modules/is-cidr/package.json
index 982863d837..5499a0dca1 100644
--- a/deps/npm/node_modules/is-cidr/package.json
+++ b/deps/npm/node_modules/is-cidr/package.json
@@ -1,94 +1,81 @@
{
- "_from": "is-cidr",
- "_id": "is-cidr@1.0.0",
+ "_args": [
+ [
+ "is-cidr@2.0.5",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "is-cidr@2.0.5",
+ "_id": "is-cidr@2.0.5",
"_inBundle": false,
- "_integrity": "sha1-+1qs9lklUxA1naMsrgPkDGocKvw=",
+ "_integrity": "sha512-KUGux04sdwBgpr/YREUyuefs4s1Ib4mRmOCIX1KdPnxjUCZMg13BXEp68Uw5IiDl3N4ZZtStDgPu4MWJxNBpKQ==",
"_location": "/is-cidr",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "is-cidr",
+ "raw": "is-cidr@2.0.5",
"name": "is-cidr",
"escapedName": "is-cidr",
- "rawSpec": "",
+ "rawSpec": "2.0.5",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "2.0.5"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-1.0.0.tgz",
- "_shasum": "fb5aacf659255310359da32cae03e40c6a1c2afc",
- "_spec": "is-cidr",
+ "_resolved": "https://registry.npmjs.org/is-cidr/-/is-cidr-2.0.5.tgz",
+ "_spec": "2.0.5",
"_where": "/Users/rebecca/code/npm",
"author": {
- "name": "Felipe Apostol",
- "email": "flipjs.io@gmail.com",
- "url": "http://flipjs.io/"
- },
- "babel": {
- "presets": [
- "es2015"
- ]
+ "name": "silverwind",
+ "email": "me@silverwind.io"
},
"bugs": {
- "url": "https://github.com/flipjs/is-cidr/issues"
+ "url": "https://github.com/silverwind/is-cidr/issues"
},
- "bundleDependencies": false,
- "config": {
- "commitizen": {
- "path": "node_modules/cz-conventional-changelog"
- },
- "ghooks": {
- "pre-commit": "npm run test && npm run build"
+ "contributors": [
+ {
+ "name": "Felipe Apostol",
+ "email": "flipjs.io@gmail.com",
+ "url": "http://flipjs.io/"
}
- },
+ ],
"dependencies": {
- "cidr-regex": "1.0.6"
+ "cidr-regex": "^2.0.8"
},
- "deprecated": false,
- "description": "Check if a string is a valid CIDR",
+ "description": "Check if a string is an IP address in CIDR notation",
"devDependencies": {
- "ava": "0.13.0",
- "babel-cli": "6.6.5",
- "babel-preset-es2015": "6.6.0",
- "babel-register": "6.7.2",
- "commitizen": "2.7.3",
- "cz-conventional-changelog": "1.1.5",
- "eslint": "2.4.0",
- "eslint-config-standard": "5.1.0",
- "eslint-plugin-babel": "3.1.0",
- "eslint-plugin-promise": "1.1.0",
- "eslint-plugin-standard": "1.3.2",
- "ghooks": "1.0.3",
- "rimraf": "2.5.2",
- "semantic-release": "4.3.5"
+ "ava": "^0.25.0",
+ "eslint": "^4.18.2",
+ "eslint-config-silverwind": "^1.0.37",
+ "updates": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=4"
},
- "homepage": "https://github.com/flipjs/is-cidr#readme",
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/silverwind/is-cidr#readme",
"keywords": [
- "ip",
- "ip address",
"cidr",
- "netblock",
- "regex"
+ "regex",
+ "notation",
+ "cidr notation",
+ "prefix",
+ "prefixes",
+ "ip",
+ "ip address"
],
- "license": "MIT",
- "main": "lib/index.js",
+ "license": "BSD-2-Clause",
"name": "is-cidr",
"repository": {
"type": "git",
- "url": "git+https://github.com/flipjs/is-cidr.git"
+ "url": "git+https://github.com/silverwind/is-cidr.git"
},
"scripts": {
- "build": "babel --presets es2015 -d lib/ src/",
- "clean": "rimraf lib && mkdir lib",
- "commit": "git-cz",
- "lint": "eslint src/ test/",
- "prebuild": "npm run lint && npm run clean",
- "semantic-release": "semantic-release pre && npm publish && semantic-release post",
- "test": "ava --require babel-register"
+ "test": "make test"
},
- "version": "1.0.0"
+ "version": "2.0.5"
}
diff --git a/deps/npm/node_modules/is-cidr/test/index.test.js b/deps/npm/node_modules/is-cidr/test/index.test.js
deleted file mode 100644
index 4804bb02b4..0000000000
--- a/deps/npm/node_modules/is-cidr/test/index.test.js
+++ /dev/null
@@ -1,199 +0,0 @@
-'use strict'
-
-import test from 'ava'
-import isCidr, { isCidrV4, isCidrV6 } from '../src'
-
-const v4 = [
- '0.0.0.0/16',
- '8.8.8.8/17',
- '127.0.0.1/18',
- '100.100.100.100/19',
- '192.168.0.1/20',
- '18.101.25.153/24',
- '123.23.34.2/25',
- '172.26.168.134/26',
- '212.58.241.131/27',
- '128.0.0.0/28',
- '23.71.254.72/29',
- '223.255.255.255/30',
- '192.0.2.235/31',
- '99.198.122.146/32',
- '46.51.197.88/8',
- '173.194.34.134/12'
-]
-
-const v4not = [
- '.100.100.100.100/16',
- '100..100.100.100./24',
- '100.100.100.100./32',
- '999.999.999.999/12',
- '256.256.256.256/30',
- '256.100.100.100.100/26',
- '123.123.123/31',
- 'http://123.123.123/28',
- '1000.2.3.4/14',
- '999.2.3.4/8'
-]
-
-const v6 = [
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/0',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/1',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/2',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/3',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/5',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/6',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/7',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/8',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/9',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/11',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/12',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/13',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/14',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/15',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/16',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/17',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/18',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/19',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/20',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/21',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/22',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/23',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/24',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/25',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/26',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/27',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/28',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/29',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/30',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/31',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/32',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/33',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/34',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/35',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/36',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/37',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/38',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/39',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/40',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/41',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/42',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/43',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/44',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/45',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/46',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/47',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/48',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/49',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/50',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/51',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/52',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/53',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/54',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/55',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/56',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/57',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/58',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/59',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/60',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/61',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/62',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/63',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/64',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/65',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/66',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/67',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/68',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/69',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/70',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/71',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/72',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/73',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/74',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/75',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/76',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/77',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/78',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/79',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/80',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/81',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/82',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/83',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/84',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/85',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/86',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/87',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/88',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/89',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/90',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/91',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/92',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/93',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/94',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/95',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/96',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/97',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/98',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/99',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/100',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/101',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/102',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/103',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/104',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/105',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/106',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/107',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/108',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/109',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/110',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/111',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/112',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/113',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/114',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/115',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/116',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/117',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/118',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/119',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/120',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/121',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/122',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/123',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/124',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/125',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/126',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/127',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/128',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156'
-]
-
-const v6not = [
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/129',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/a',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/āˆš',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/00',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/03',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/sdfsdfs',
- 'fe80:0000:0000:0000:0204:61ff:fe9d:f156/'
-]
-
-test('cidr v4', (t) => {
- v4.forEach((string) => {
- t.true(isCidr(string))
- })
-
- v4not.forEach((string) => {
- t.false(isCidrV4(string))
- })
-})
-
-test('cidr v6', (t) => {
- v6.forEach((string) => {
- t.true(isCidrV6(string))
- })
-
- v6not.forEach((string) => {
- t.false(isCidrV6(string))
- })
-})
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/is-fullwidth-code-point/index.js
index d506327c3e..d506327c3e 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
+++ b/deps/npm/node_modules/is-fullwidth-code-point/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/license b/deps/npm/node_modules/is-fullwidth-code-point/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/license
+++ b/deps/npm/node_modules/is-fullwidth-code-point/license
diff --git a/deps/npm/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..1e2f373437
--- /dev/null
+++ b/deps/npm/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,78 @@
+{
+ "_from": "is-fullwidth-code-point@^2.0.0",
+ "_id": "is-fullwidth-code-point@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
+ "_location": "/is-fullwidth-code-point",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-fullwidth-code-point@^2.0.0",
+ "name": "is-fullwidth-code-point",
+ "escapedName": "is-fullwidth-code-point",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/slice-ansi",
+ "/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
+ "_spec": "is-fullwidth-code-point@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "is-fullwidth-code-point",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/deps/npm/node_modules/is-fullwidth-code-point/readme.md
index 093b0281b2..093b0281b2 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
+++ b/deps/npm/node_modules/is-fullwidth-code-point/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js b/deps/npm/node_modules/is-installed-globally/index.js
index 5092c2b2da..5092c2b2da 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/index.js
+++ b/deps/npm/node_modules/is-installed-globally/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license b/deps/npm/node_modules/is-installed-globally/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/license
+++ b/deps/npm/node_modules/is-installed-globally/license
diff --git a/deps/npm/node_modules/is-installed-globally/package.json b/deps/npm/node_modules/is-installed-globally/package.json
new file mode 100644
index 0000000000..04cdf676ff
--- /dev/null
+++ b/deps/npm/node_modules/is-installed-globally/package.json
@@ -0,0 +1,80 @@
+{
+ "_from": "is-installed-globally@^0.1.0",
+ "_id": "is-installed-globally@0.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
+ "_location": "/is-installed-globally",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-installed-globally@^0.1.0",
+ "name": "is-installed-globally",
+ "escapedName": "is-installed-globally",
+ "rawSpec": "^0.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.1.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
+ "_shasum": "0dfd98f5a9111716dd535dda6492f67bf3d25a80",
+ "_spec": "is-installed-globally@^0.1.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/sindresorhus/is-installed-globally/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "global-dirs": "^0.1.0",
+ "is-path-inside": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if your package was installed globally",
+ "devDependencies": {
+ "ava": "*",
+ "execa": "^0.7.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-installed-globally#readme",
+ "keywords": [
+ "global",
+ "package",
+ "globally",
+ "module",
+ "install",
+ "installed",
+ "npm",
+ "yarn",
+ "is",
+ "check",
+ "detect",
+ "local",
+ "locally",
+ "cli",
+ "bin",
+ "binary"
+ ],
+ "license": "MIT",
+ "name": "is-installed-globally",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-installed-globally.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "0.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md b/deps/npm/node_modules/is-installed-globally/readme.md
index f3c93386d3..f3c93386d3 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/readme.md
+++ b/deps/npm/node_modules/is-installed-globally/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-npm/index.js b/deps/npm/node_modules/is-npm/index.js
index b5f3c27ab3..b5f3c27ab3 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-npm/index.js
+++ b/deps/npm/node_modules/is-npm/index.js
diff --git a/deps/npm/node_modules/is-npm/package.json b/deps/npm/node_modules/is-npm/package.json
new file mode 100644
index 0000000000..9e2018a122
--- /dev/null
+++ b/deps/npm/node_modules/is-npm/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "is-npm@^1.0.0",
+ "_id": "is-npm@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
+ "_location": "/is-npm",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-npm@^1.0.0",
+ "name": "is-npm",
+ "escapedName": "is-npm",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
+ "_shasum": "f2fb63a65e4905b406c86072765a1a4dc793b9f4",
+ "_spec": "is-npm@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "http://sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-npm/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if your code is running as an npm script",
+ "devDependencies": {
+ "ava": "0.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-npm#readme",
+ "keywords": [
+ "npm",
+ "is",
+ "check",
+ "detect",
+ "env",
+ "environment"
+ ],
+ "license": "MIT",
+ "name": "is-npm",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-npm.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-npm/readme.md b/deps/npm/node_modules/is-npm/readme.md
index 84833ec65b..84833ec65b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-npm/readme.md
+++ b/deps/npm/node_modules/is-npm/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/index.js b/deps/npm/node_modules/is-obj/index.js
index 4d023bc690..4d023bc690 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/index.js
+++ b/deps/npm/node_modules/is-obj/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/license b/deps/npm/node_modules/is-obj/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/license
+++ b/deps/npm/node_modules/is-obj/license
diff --git a/deps/npm/node_modules/is-obj/package.json b/deps/npm/node_modules/is-obj/package.json
new file mode 100644
index 0000000000..d9180dbab2
--- /dev/null
+++ b/deps/npm/node_modules/is-obj/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "is-obj@^1.0.0",
+ "_id": "is-obj@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
+ "_location": "/is-obj",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-obj@^1.0.0",
+ "name": "is-obj",
+ "escapedName": "is-obj",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/dot-prop"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "_shasum": "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f",
+ "_spec": "is-obj@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/dot-prop",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-obj/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if a value is an object",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-obj#readme",
+ "keywords": [
+ "obj",
+ "object",
+ "is",
+ "check",
+ "test",
+ "type"
+ ],
+ "license": "MIT",
+ "name": "is-obj",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-obj.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/readme.md b/deps/npm/node_modules/is-obj/readme.md
index d311026430..d311026430 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/readme.md
+++ b/deps/npm/node_modules/is-obj/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js b/deps/npm/node_modules/is-path-inside/index.js
index 0a4d2fd1e5..0a4d2fd1e5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/index.js
+++ b/deps/npm/node_modules/is-path-inside/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/license b/deps/npm/node_modules/is-path-inside/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/license
+++ b/deps/npm/node_modules/is-path-inside/license
diff --git a/deps/npm/node_modules/is-path-inside/package.json b/deps/npm/node_modules/is-path-inside/package.json
new file mode 100644
index 0000000000..c76d7e04df
--- /dev/null
+++ b/deps/npm/node_modules/is-path-inside/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "is-path-inside@^1.0.0",
+ "_id": "is-path-inside@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=",
+ "_location": "/is-path-inside",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-path-inside@^1.0.0",
+ "name": "is-path-inside",
+ "escapedName": "is-path-inside",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/is-installed-globally",
+ "/is-path-in-cwd"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz",
+ "_shasum": "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036",
+ "_spec": "is-path-inside@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/is-installed-globally",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-path-inside/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "path-is-inside": "^1.0.1"
+ },
+ "deprecated": false,
+ "description": "Check if a path is inside another path",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-path-inside#readme",
+ "keywords": [
+ "path",
+ "inside",
+ "folder",
+ "directory",
+ "dir",
+ "file",
+ "resolve"
+ ],
+ "license": "MIT",
+ "name": "is-path-inside",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-path-inside.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/is-path-inside/readme.md b/deps/npm/node_modules/is-path-inside/readme.md
new file mode 100644
index 0000000000..cc5f51625d
--- /dev/null
+++ b/deps/npm/node_modules/is-path-inside/readme.md
@@ -0,0 +1,34 @@
+# is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside)
+
+> Check if a path is inside another path
+
+
+## Install
+
+```
+$ npm install --save is-path-inside
+```
+
+
+## Usage
+
+```js
+var isPathInside = require('is-path-inside');
+
+isPathInside('a/b/c', 'a/b');
+//=> true
+
+isPathInside('a/b/c', 'x/y');
+//=> false
+
+isPathInside('a/b/c', 'a/b/c');
+//=> false
+
+isPathInside('/Users/sindresorhus/dev/unicorn', '/Users/sindresorhus');
+//=> true
+```
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/index.js b/deps/npm/node_modules/is-redirect/index.js
index 75ec0090ef..75ec0090ef 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/index.js
+++ b/deps/npm/node_modules/is-redirect/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/license b/deps/npm/node_modules/is-redirect/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/license
+++ b/deps/npm/node_modules/is-redirect/license
diff --git a/deps/npm/node_modules/is-redirect/package.json b/deps/npm/node_modules/is-redirect/package.json
new file mode 100644
index 0000000000..4cfb345731
--- /dev/null
+++ b/deps/npm/node_modules/is-redirect/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "is-redirect@^1.0.0",
+ "_id": "is-redirect@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
+ "_location": "/is-redirect",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-redirect@^1.0.0",
+ "name": "is-redirect",
+ "escapedName": "is-redirect",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
+ "_shasum": "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24",
+ "_spec": "is-redirect@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-redirect/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if a number is a redirect HTTP status code",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-redirect#readme",
+ "keywords": [
+ "redirect",
+ "http",
+ "https",
+ "status",
+ "code",
+ "codes",
+ "is",
+ "check",
+ "detect"
+ ],
+ "license": "MIT",
+ "name": "is-redirect",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-redirect.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/readme.md b/deps/npm/node_modules/is-redirect/readme.md
index e9f0a393d2..e9f0a393d2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/readme.md
+++ b/deps/npm/node_modules/is-redirect/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/index.js b/deps/npm/node_modules/is-retry-allowed/index.js
index 663ee338fc..663ee338fc 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/index.js
+++ b/deps/npm/node_modules/is-retry-allowed/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/license b/deps/npm/node_modules/is-retry-allowed/license
index 1aeb74fd25..1aeb74fd25 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/license
+++ b/deps/npm/node_modules/is-retry-allowed/license
diff --git a/deps/npm/node_modules/is-retry-allowed/package.json b/deps/npm/node_modules/is-retry-allowed/package.json
new file mode 100644
index 0000000000..e494bb3f78
--- /dev/null
+++ b/deps/npm/node_modules/is-retry-allowed/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "is-retry-allowed@^1.0.0",
+ "_id": "is-retry-allowed@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
+ "_location": "/is-retry-allowed",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-retry-allowed@^1.0.0",
+ "name": "is-retry-allowed",
+ "escapedName": "is-retry-allowed",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
+ "_shasum": "11a060568b67339444033d0125a61a20d564fb34",
+ "_spec": "is-retry-allowed@^1.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/is-retry-allowed/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "My prime module",
+ "devDependencies": {
+ "ava": "^0.8.0",
+ "xo": "^0.12.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/floatdrop/is-retry-allowed#readme",
+ "keywords": [],
+ "license": "MIT",
+ "name": "is-retry-allowed",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/floatdrop/is-retry-allowed.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/readme.md b/deps/npm/node_modules/is-retry-allowed/readme.md
index 4212d099b5..4212d099b5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/readme.md
+++ b/deps/npm/node_modules/is-retry-allowed/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/index.js b/deps/npm/node_modules/is-stream/index.js
index 6f7ec91a40..6f7ec91a40 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/index.js
+++ b/deps/npm/node_modules/is-stream/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/license b/deps/npm/node_modules/is-stream/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/license
+++ b/deps/npm/node_modules/is-stream/license
diff --git a/deps/npm/node_modules/is-stream/package.json b/deps/npm/node_modules/is-stream/package.json
new file mode 100644
index 0000000000..b97097f0de
--- /dev/null
+++ b/deps/npm/node_modules/is-stream/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "is-stream@^1.1.0",
+ "_id": "is-stream@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
+ "_location": "/is-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-stream@^1.1.0",
+ "name": "is-stream",
+ "escapedName": "is-stream",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/execa",
+ "/got",
+ "/node-fetch"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "_shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
+ "_spec": "is-stream@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-stream/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if something is a Node.js stream",
+ "devDependencies": {
+ "ava": "*",
+ "tempfile": "^1.1.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-stream#readme",
+ "keywords": [
+ "stream",
+ "type",
+ "streams",
+ "writable",
+ "readable",
+ "duplex",
+ "transform",
+ "check",
+ "detect",
+ "is"
+ ],
+ "license": "MIT",
+ "name": "is-stream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-stream.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/readme.md b/deps/npm/node_modules/is-stream/readme.md
index d8afce81d2..d8afce81d2 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/readme.md
+++ b/deps/npm/node_modules/is-stream/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md b/deps/npm/node_modules/is-typedarray/LICENSE.md
index ee27ba4b44..ee27ba4b44 100644
--- a/deps/npm/node_modules/request/node_modules/is-typedarray/LICENSE.md
+++ b/deps/npm/node_modules/is-typedarray/LICENSE.md
diff --git a/deps/npm/node_modules/request/node_modules/is-typedarray/README.md b/deps/npm/node_modules/is-typedarray/README.md
index 2752863919..2752863919 100644
--- a/deps/npm/node_modules/request/node_modules/is-typedarray/README.md
+++ b/deps/npm/node_modules/is-typedarray/README.md
diff --git a/deps/npm/node_modules/request/node_modules/is-typedarray/index.js b/deps/npm/node_modules/is-typedarray/index.js
index 58596036cd..58596036cd 100644
--- a/deps/npm/node_modules/request/node_modules/is-typedarray/index.js
+++ b/deps/npm/node_modules/is-typedarray/index.js
diff --git a/deps/npm/node_modules/is-typedarray/package.json b/deps/npm/node_modules/is-typedarray/package.json
new file mode 100644
index 0000000000..56e9107077
--- /dev/null
+++ b/deps/npm/node_modules/is-typedarray/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "is-typedarray@~1.0.0",
+ "_id": "is-typedarray@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
+ "_location": "/is-typedarray",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-typedarray@~1.0.0",
+ "name": "is-typedarray",
+ "escapedName": "is-typedarray",
+ "rawSpec": "~1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~1.0.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "_shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a",
+ "_spec": "is-typedarray@~1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Hugh Kennedy",
+ "email": "hughskennedy@gmail.com",
+ "url": "http://hughsk.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/hughsk/is-typedarray/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Detect whether or not an object is a Typed Array",
+ "devDependencies": {
+ "tape": "^2.13.1"
+ },
+ "homepage": "https://github.com/hughsk/is-typedarray",
+ "keywords": [
+ "typed",
+ "array",
+ "detect",
+ "is",
+ "util"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "is-typedarray",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/hughsk/is-typedarray.git"
+ },
+ "scripts": {
+ "test": "node test"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/is-typedarray/test.js b/deps/npm/node_modules/is-typedarray/test.js
index b0c176fa30..b0c176fa30 100644
--- a/deps/npm/node_modules/request/node_modules/is-typedarray/test.js
+++ b/deps/npm/node_modules/is-typedarray/test.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/.npmignore b/deps/npm/node_modules/isarray/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/.npmignore
+++ b/deps/npm/node_modules/isarray/.npmignore
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml b/deps/npm/node_modules/isarray/.travis.yml
index cc4dba29d9..cc4dba29d9 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/.travis.yml
+++ b/deps/npm/node_modules/isarray/.travis.yml
diff --git a/deps/npm/node_modules/isarray/Makefile b/deps/npm/node_modules/isarray/Makefile
new file mode 100644
index 0000000000..0ecc29c402
--- /dev/null
+++ b/deps/npm/node_modules/isarray/Makefile
@@ -0,0 +1,5 @@
+
+test:
+ @node_modules/.bin/tape test.js
+
+.PHONY: test
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/isarray/README.md
index 16d2c59c61..16d2c59c61 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/README.md
+++ b/deps/npm/node_modules/isarray/README.md
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/isarray/component.json
index 9e31b68388..9e31b68388 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/component.json
+++ b/deps/npm/node_modules/isarray/component.json
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/isarray/index.js
index a57f634959..a57f634959 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/index.js
+++ b/deps/npm/node_modules/isarray/index.js
diff --git a/deps/npm/node_modules/isarray/package.json b/deps/npm/node_modules/isarray/package.json
new file mode 100644
index 0000000000..f9a5ecd5f3
--- /dev/null
+++ b/deps/npm/node_modules/isarray/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "isarray@~1.0.0",
+ "_id": "isarray@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
+ "_location": "/isarray",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "isarray@~1.0.0",
+ "name": "isarray",
+ "escapedName": "isarray",
+ "rawSpec": "~1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~1.0.0"
+ },
+ "_requiredBy": [
+ "/eslint-plugin-import/doctrine",
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
+ "_spec": "isarray@~1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/isarray/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Array#isArray for older browsers",
+ "devDependencies": {
+ "tape": "~2.13.4"
+ },
+ "homepage": "https://github.com/juliangruber/isarray",
+ "keywords": [
+ "browser",
+ "isarray",
+ "array"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "isarray",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/isarray.git"
+ },
+ "scripts": {
+ "test": "tape test.js"
+ },
+ "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.0.0"
+}
diff --git a/deps/npm/node_modules/isarray/test.js b/deps/npm/node_modules/isarray/test.js
new file mode 100644
index 0000000000..f7f7bcd19f
--- /dev/null
+++ b/deps/npm/node_modules/isarray/test.js
@@ -0,0 +1,19 @@
+var isArray = require('./');
+var test = require('tape');
+
+test('is array', function(t){
+ t.ok(isArray([]));
+ t.notOk(isArray({}));
+ t.notOk(isArray(null));
+ t.notOk(isArray(false));
+
+ var obj = {};
+ obj[0] = true;
+ t.notOk(isArray(obj));
+
+ var arr = [];
+ arr.foo = 'bar';
+ t.ok(isArray(arr));
+
+ t.end();
+});
diff --git a/deps/npm/node_modules/which/node_modules/isexe/.npmignore b/deps/npm/node_modules/isexe/.npmignore
index c1cb757acf..c1cb757acf 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/.npmignore
+++ b/deps/npm/node_modules/isexe/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE b/deps/npm/node_modules/isexe/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/LICENSE
+++ b/deps/npm/node_modules/isexe/LICENSE
diff --git a/deps/npm/node_modules/which/node_modules/isexe/README.md b/deps/npm/node_modules/isexe/README.md
index 35769e8440..35769e8440 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/README.md
+++ b/deps/npm/node_modules/isexe/README.md
diff --git a/deps/npm/node_modules/which/node_modules/isexe/index.js b/deps/npm/node_modules/isexe/index.js
index 553fb32b11..553fb32b11 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/index.js
+++ b/deps/npm/node_modules/isexe/index.js
diff --git a/deps/npm/node_modules/which/node_modules/isexe/mode.js b/deps/npm/node_modules/isexe/mode.js
index 1995ea4a06..1995ea4a06 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/mode.js
+++ b/deps/npm/node_modules/isexe/mode.js
diff --git a/deps/npm/node_modules/isexe/package.json b/deps/npm/node_modules/isexe/package.json
new file mode 100644
index 0000000000..681a27a495
--- /dev/null
+++ b/deps/npm/node_modules/isexe/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "isexe@^2.0.0",
+ "_id": "isexe@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "_location": "/isexe",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "isexe@^2.0.0",
+ "name": "isexe",
+ "escapedName": "isexe",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/tap",
+ "/which"
+ ],
+ "_resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "_shasum": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
+ "_spec": "isexe@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/which",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/isexe/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Minimal module to check if a file is executable.",
+ "devDependencies": {
+ "mkdirp": "^0.5.1",
+ "rimraf": "^2.5.0",
+ "tap": "^10.3.0"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "homepage": "https://github.com/isaacs/isexe#readme",
+ "keywords": [],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "isexe",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/isexe.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/which/node_modules/isexe/test/basic.js b/deps/npm/node_modules/isexe/test/basic.js
index d926df64b9..d926df64b9 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/test/basic.js
+++ b/deps/npm/node_modules/isexe/test/basic.js
diff --git a/deps/npm/node_modules/which/node_modules/isexe/windows.js b/deps/npm/node_modules/isexe/windows.js
index 34996734d8..34996734d8 100644
--- a/deps/npm/node_modules/which/node_modules/isexe/windows.js
+++ b/deps/npm/node_modules/isexe/windows.js
diff --git a/deps/npm/node_modules/request/node_modules/isstream/.npmignore b/deps/npm/node_modules/isstream/.npmignore
index aa1ec1ea06..aa1ec1ea06 100644
--- a/deps/npm/node_modules/request/node_modules/isstream/.npmignore
+++ b/deps/npm/node_modules/isstream/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/isstream/.travis.yml b/deps/npm/node_modules/isstream/.travis.yml
index 1fec2ab9af..1fec2ab9af 100644
--- a/deps/npm/node_modules/request/node_modules/isstream/.travis.yml
+++ b/deps/npm/node_modules/isstream/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/isstream/LICENSE.md b/deps/npm/node_modules/isstream/LICENSE.md
index 43f7153f9f..43f7153f9f 100644
--- a/deps/npm/node_modules/request/node_modules/isstream/LICENSE.md
+++ b/deps/npm/node_modules/isstream/LICENSE.md
diff --git a/deps/npm/node_modules/request/node_modules/isstream/README.md b/deps/npm/node_modules/isstream/README.md
index 06770e82f2..06770e82f2 100644
--- a/deps/npm/node_modules/request/node_modules/isstream/README.md
+++ b/deps/npm/node_modules/isstream/README.md
diff --git a/deps/npm/node_modules/request/node_modules/isstream/isstream.js b/deps/npm/node_modules/isstream/isstream.js
index a1d104a7ac..a1d104a7ac 100644
--- a/deps/npm/node_modules/request/node_modules/isstream/isstream.js
+++ b/deps/npm/node_modules/isstream/isstream.js
diff --git a/deps/npm/node_modules/isstream/package.json b/deps/npm/node_modules/isstream/package.json
new file mode 100644
index 0000000000..2a74102f67
--- /dev/null
+++ b/deps/npm/node_modules/isstream/package.json
@@ -0,0 +1,61 @@
+{
+ "_from": "isstream@~0.1.2",
+ "_id": "isstream@0.1.2",
+ "_inBundle": false,
+ "_integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
+ "_location": "/isstream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "isstream@~0.1.2",
+ "name": "isstream",
+ "escapedName": "isstream",
+ "rawSpec": "~0.1.2",
+ "saveSpec": null,
+ "fetchSpec": "~0.1.2"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a",
+ "_spec": "isstream@~0.1.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Rod Vagg",
+ "email": "rod@vagg.org"
+ },
+ "bugs": {
+ "url": "https://github.com/rvagg/isstream/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Determine if an object is a Stream",
+ "devDependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x",
+ "tape": "~2.12.3"
+ },
+ "homepage": "https://github.com/rvagg/isstream",
+ "keywords": [
+ "stream",
+ "type",
+ "streams",
+ "readable-stream",
+ "hippo"
+ ],
+ "license": "MIT",
+ "main": "isstream.js",
+ "name": "isstream",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rvagg/isstream.git"
+ },
+ "scripts": {
+ "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/"
+ },
+ "version": "0.1.2"
+}
diff --git a/deps/npm/node_modules/isstream/test.js b/deps/npm/node_modules/isstream/test.js
new file mode 100644
index 0000000000..881e70b309
--- /dev/null
+++ b/deps/npm/node_modules/isstream/test.js
@@ -0,0 +1,165 @@
+var tape = require('tape')
+ , EE = require('events').EventEmitter
+ , util = require('util')
+
+
+ , isStream = require('./')
+ , isReadable = require('./').isReadable
+ , isWritable = require('./').isWritable
+ , isDuplex = require('./').isDuplex
+
+ , CoreStreams = require('stream')
+ , ReadableStream10 = require('./readable-stream-1.0/')
+ , ReadableStream11 = require('./readable-stream-1.1/')
+
+
+function test (pass, type, stream) {
+ tape('isStream(' + type + ')', function (t) {
+ t.plan(1)
+ t.ok(pass === isStream(stream), type)
+ })
+}
+
+
+function testReadable (pass, type, stream) {
+ tape('isReadable(' + type + ')', function (t) {
+ t.plan(1)
+ t.ok(pass === isReadable(stream), type)
+ })
+}
+
+
+function testWritable (pass, type, stream) {
+ tape('isWritable(' + type + ')', function (t) {
+ t.plan(1)
+ t.ok(pass === isWritable(stream), type)
+ })
+}
+
+
+function testDuplex (pass, type, stream) {
+ tape('isDuplex(' + type + ')', function (t) {
+ t.plan(1)
+ t.ok(pass === isDuplex(stream), type)
+ })
+}
+
+
+[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) {
+ test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o)
+})
+
+
+test(false, 'fake stream obj', { pipe: function () {} })
+
+
+;(function () {
+
+ // looks like a stream!
+
+ function Stream () {
+ EE.call(this)
+ }
+ util.inherits(Stream, EE)
+ Stream.prototype.pipe = function () {}
+ Stream.Stream = Stream
+
+ test(false, 'fake stream "new Stream()"', new Stream())
+
+}())
+
+
+test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)())
+test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
+test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
+test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
+test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
+test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
+
+test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
+test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
+test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
+test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
+test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
+
+test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
+test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
+test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
+test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
+test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
+
+
+testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
+testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
+testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
+testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
+testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
+testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
+
+testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
+testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
+testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
+testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
+testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
+
+testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
+testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
+testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
+testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
+testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
+
+
+testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
+testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
+testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
+testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
+testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
+testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
+
+testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
+testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
+testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
+testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
+testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
+
+testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
+testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
+testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
+testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
+testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
+
+
+testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
+testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
+testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
+testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
+testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
+testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
+
+testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
+testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
+testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
+testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
+testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
+
+testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
+testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
+testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
+testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
+testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
+
+
+;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) {
+ [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) {
+ if (!p[k])
+ return
+
+ function SubStream () {
+ p[k].call(this)
+ }
+ util.inherits(SubStream, p[k])
+
+ test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream())
+
+ })
+})
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/.npmignore b/deps/npm/node_modules/jsbn/.npmignore
index 28f1ba7565..28f1ba7565 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/.npmignore
+++ b/deps/npm/node_modules/jsbn/.npmignore
diff --git a/deps/npm/node_modules/jsbn/LICENSE b/deps/npm/node_modules/jsbn/LICENSE
new file mode 100644
index 0000000000..7ccbf5073c
--- /dev/null
+++ b/deps/npm/node_modules/jsbn/LICENSE
@@ -0,0 +1,40 @@
+Licensing
+---------
+
+This software is covered under the following copyright:
+
+/*
+ * Copyright (c) 2003-2005 Tom Wu
+ * 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" AND WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
+ * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
+ * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * In addition, the following condition applies:
+ *
+ * All redistributions must retain an intact copy of this copyright notice
+ * and disclaimer.
+ */
+
+Address all questions regarding this license to:
+
+ Tom Wu
+ tjw@cs.Stanford.EDU \ No newline at end of file
diff --git a/deps/npm/node_modules/jsbn/README.md b/deps/npm/node_modules/jsbn/README.md
new file mode 100644
index 0000000000..9686611db7
--- /dev/null
+++ b/deps/npm/node_modules/jsbn/README.md
@@ -0,0 +1,173 @@
+# jsbn: javascript big number
+
+[Tom Wu's Original Website](http://www-cs-students.stanford.edu/~tjw/jsbn/)
+
+I felt compelled to put this on github and publish to npm. I haven't tested every other big integer library out there, but the few that I have tested in comparison to this one have not even come close in performance. I am aware of the `bi` module on npm, however it has been modified and I wanted to publish the original without modifications. This is jsbn and jsbn2 from Tom Wu's original website above, with the modular pattern applied to prevent global leaks and to allow for use with node.js on the server side.
+
+## usage
+
+ var BigInteger = require('jsbn');
+
+ var a = new BigInteger('91823918239182398123');
+ alert(a.bitLength()); // 67
+
+
+## API
+
+### bi.toString()
+
+returns the base-10 number as a string
+
+### bi.negate()
+
+returns a new BigInteger equal to the negation of `bi`
+
+### bi.abs
+
+returns new BI of absolute value
+
+### bi.compareTo
+
+
+
+### bi.bitLength
+
+
+
+### bi.mod
+
+
+
+### bi.modPowInt
+
+
+
+### bi.clone
+
+
+
+### bi.intValue
+
+
+
+### bi.byteValue
+
+
+
+### bi.shortValue
+
+
+
+### bi.signum
+
+
+
+### bi.toByteArray
+
+
+
+### bi.equals
+
+
+
+### bi.min
+
+
+
+### bi.max
+
+
+
+### bi.and
+
+
+
+### bi.or
+
+
+
+### bi.xor
+
+
+
+### bi.andNot
+
+
+
+### bi.not
+
+
+
+### bi.shiftLeft
+
+
+
+### bi.shiftRight
+
+
+
+### bi.getLowestSetBit
+
+
+
+### bi.bitCount
+
+
+
+### bi.testBit
+
+
+
+### bi.setBit
+
+
+
+### bi.clearBit
+
+
+
+### bi.flipBit
+
+
+
+### bi.add
+
+
+
+### bi.subtract
+
+
+
+### bi.multiply
+
+
+
+### bi.divide
+
+
+
+### bi.remainder
+
+
+
+### bi.divideAndRemainder
+
+
+
+### bi.modPow
+
+
+
+### bi.modInverse
+
+
+
+### bi.pow
+
+
+
+### bi.gcd
+
+
+
+### bi.isProbablePrime
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.html b/deps/npm/node_modules/jsbn/example.html
index 7c26a5665c..ea180b8cc4 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.html
+++ b/deps/npm/node_modules/jsbn/example.html
@@ -5,8 +5,8 @@
<title></title>
</head>
<body>
-
-
+
+
<script src="index.js"></script>
</body>
</html> \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js b/deps/npm/node_modules/jsbn/example.js
index 664c1b455b..664c1b455b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/example.js
+++ b/deps/npm/node_modules/jsbn/example.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js b/deps/npm/node_modules/jsbn/index.js
index 973226ddf9..973226ddf9 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/index.js
+++ b/deps/npm/node_modules/jsbn/index.js
diff --git a/deps/npm/node_modules/jsbn/package.json b/deps/npm/node_modules/jsbn/package.json
new file mode 100644
index 0000000000..765736fea6
--- /dev/null
+++ b/deps/npm/node_modules/jsbn/package.json
@@ -0,0 +1,53 @@
+{
+ "_from": "jsbn@~0.1.0",
+ "_id": "jsbn@0.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
+ "_location": "/jsbn",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "jsbn@~0.1.0",
+ "name": "jsbn",
+ "escapedName": "jsbn",
+ "rawSpec": "~0.1.0",
+ "saveSpec": null,
+ "fetchSpec": "~0.1.0"
+ },
+ "_requiredBy": [
+ "/ecc-jsbn",
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "_shasum": "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513",
+ "_spec": "jsbn@~0.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "Tom Wu"
+ },
+ "bugs": {
+ "url": "https://github.com/andyperlitch/jsbn/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.",
+ "homepage": "https://github.com/andyperlitch/jsbn#readme",
+ "keywords": [
+ "biginteger",
+ "bignumber",
+ "big",
+ "integer"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "jsbn",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/andyperlitch/jsbn.git"
+ },
+ "scripts": {
+ "test": "mocha test.js"
+ },
+ "version": "0.1.1"
+}
diff --git a/deps/npm/node_modules/json-parse-better-errors/CHANGELOG.md b/deps/npm/node_modules/json-parse-better-errors/CHANGELOG.md
new file mode 100644
index 0000000000..b1d212de43
--- /dev/null
+++ b/deps/npm/node_modules/json-parse-better-errors/CHANGELOG.md
@@ -0,0 +1,46 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.0.2"></a>
+## [1.0.2](https://github.com/zkat/json-parse-better-errors/compare/v1.0.1...v1.0.2) (2018-03-30)
+
+
+### Bug Fixes
+
+* **messages:** More friendly messages for non-string ([#1](https://github.com/zkat/json-parse-better-errors/issues/1)) ([a476d42](https://github.com/zkat/json-parse-better-errors/commit/a476d42))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/zkat/json-parse-better-errors/compare/v1.0.0...v1.0.1) (2017-08-16)
+
+
+### Bug Fixes
+
+* **license:** oops. Forgot to update license.md ([efe2958](https://github.com/zkat/json-parse-better-errors/commit/efe2958))
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-08-15)
+
+
+### Features
+
+* **init:** Initial Commit ([562c977](https://github.com/zkat/json-parse-better-errors/commit/562c977))
+
+
+### BREAKING CHANGES
+
+* **init:** This is the first commit!
+
+
+
+<a name="0.1.0"></a>
+# 0.1.0 (2017-08-15)
+
+
+### Features
+
+* **init:** Initial Commit ([9dd1a19](https://github.com/zkat/json-parse-better-errors/commit/9dd1a19))
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md b/deps/npm/node_modules/json-parse-better-errors/LICENSE.md
index c51842cc4a..c51842cc4a 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md
+++ b/deps/npm/node_modules/json-parse-better-errors/LICENSE.md
diff --git a/deps/npm/node_modules/json-parse-better-errors/README.md b/deps/npm/node_modules/json-parse-better-errors/README.md
new file mode 100644
index 0000000000..a1f0f0a592
--- /dev/null
+++ b/deps/npm/node_modules/json-parse-better-errors/README.md
@@ -0,0 +1,46 @@
+# json-parse-better-errors [![npm version](https://img.shields.io/npm/v/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![license](https://img.shields.io/npm/l/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![Travis](https://img.shields.io/travis/zkat/json-parse-better-errors.svg)](https://travis-ci.org/zkat/json-parse-better-errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/json-parse-better-errors?svg=true)](https://ci.appveyor.com/project/zkat/json-parse-better-errors) [![Coverage Status](https://coveralls.io/repos/github/zkat/json-parse-better-errors/badge.svg?branch=latest)](https://coveralls.io/github/zkat/json-parse-better-errors?branch=latest)
+
+[`json-parse-better-errors`](https://github.com/zkat/json-parse-better-errors) is a Node.js library for
+getting nicer errors out of `JSON.parse()`, including context and position of the parse errors.
+
+## Install
+
+`$ npm install --save json-parse-better-errors`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`parse`](#parse)
+
+### Example
+
+```javascript
+const parseJson = require('json-parse-better-errors')
+
+parseJson('"foo"')
+parseJson('garbage') // more useful error message
+```
+
+### Features
+
+* Like JSON.parse, but the errors are better.
+
+### Contributing
+
+The npm team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="parse"></a> `> parse(txt, ?reviver, ?context=20)`
+
+Works just like `JSON.parse`, but will include a bit more information when an
+error happens.
diff --git a/deps/npm/node_modules/json-parse-better-errors/index.js b/deps/npm/node_modules/json-parse-better-errors/index.js
new file mode 100644
index 0000000000..14644c2f1a
--- /dev/null
+++ b/deps/npm/node_modules/json-parse-better-errors/index.js
@@ -0,0 +1,38 @@
+'use strict'
+
+module.exports = parseJson
+function parseJson (txt, reviver, context) {
+ context = context || 20
+ try {
+ return JSON.parse(txt, reviver)
+ } catch (e) {
+ if (typeof txt !== 'string') {
+ const isEmptyArray = Array.isArray(txt) && txt.length === 0
+ const errorMessage = 'Cannot parse ' +
+ (isEmptyArray ? 'an empty array' : String(txt))
+ throw new TypeError(errorMessage)
+ }
+ const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i)
+ const errIdx = syntaxErr
+ ? +syntaxErr[1]
+ : e.message.match(/^Unexpected end of JSON.*/i)
+ ? txt.length - 1
+ : null
+ if (errIdx != null) {
+ const start = errIdx <= context
+ ? 0
+ : errIdx - context
+ const end = errIdx + context >= txt.length
+ ? txt.length
+ : errIdx + context
+ e.message += ` while parsing near '${
+ start === 0 ? '' : '...'
+ }${txt.slice(start, end)}${
+ end === txt.length ? '' : '...'
+ }'`
+ } else {
+ e.message += ` while parsing '${txt.slice(0, context * 2)}'`
+ }
+ throw e
+ }
+}
diff --git a/deps/npm/node_modules/json-parse-better-errors/package.json b/deps/npm/node_modules/json-parse-better-errors/package.json
new file mode 100644
index 0000000000..e63bf6b0bf
--- /dev/null
+++ b/deps/npm/node_modules/json-parse-better-errors/package.json
@@ -0,0 +1,82 @@
+{
+ "_args": [
+ [
+ "json-parse-better-errors@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "json-parse-better-errors@1.0.2",
+ "_id": "json-parse-better-errors@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
+ "_location": "/json-parse-better-errors",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "json-parse-better-errors@1.0.2",
+ "name": "json-parse-better-errors",
+ "escapedName": "json-parse-better-errors",
+ "rawSpec": "1.0.2",
+ "saveSpec": null,
+ "fetchSpec": "1.0.2"
+ },
+ "_requiredBy": [
+ "/",
+ "/node-fetch-npm",
+ "/pkg-conf/parse-json",
+ "/read-package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz",
+ "_spec": "1.0.2",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@zkat.tech"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/json-parse-better-errors/issues"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "description": "JSON.parse with context information on error",
+ "devDependencies": {
+ "nyc": "^10.3.2",
+ "standard": "^9.0.2",
+ "standard-version": "^4.1.0",
+ "tap": "^10.3.3",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/zkat/json-parse-better-errors#readme",
+ "keywords": [
+ "JSON",
+ "parser"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "json-parse-better-errors",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/json-parse-better-errors.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.eslintrc.yml b/deps/npm/node_modules/json-schema-traverse/.eslintrc.yml
index ab1762da9c..ab1762da9c 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.eslintrc.yml
+++ b/deps/npm/node_modules/json-schema-traverse/.eslintrc.yml
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.npmignore b/deps/npm/node_modules/json-schema-traverse/.npmignore
index d093557930..d093557930 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.npmignore
+++ b/deps/npm/node_modules/json-schema-traverse/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.travis.yml b/deps/npm/node_modules/json-schema-traverse/.travis.yml
index 7ddce74b84..7ddce74b84 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.travis.yml
+++ b/deps/npm/node_modules/json-schema-traverse/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/LICENSE b/deps/npm/node_modules/json-schema-traverse/LICENSE
index 7f1543566f..7f1543566f 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/LICENSE
+++ b/deps/npm/node_modules/json-schema-traverse/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/README.md b/deps/npm/node_modules/json-schema-traverse/README.md
index d4286a23b3..d4286a23b3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/README.md
+++ b/deps/npm/node_modules/json-schema-traverse/README.md
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/index.js b/deps/npm/node_modules/json-schema-traverse/index.js
index 79eeb6a05e..79eeb6a05e 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/index.js
+++ b/deps/npm/node_modules/json-schema-traverse/index.js
diff --git a/deps/npm/node_modules/json-schema-traverse/package.json b/deps/npm/node_modules/json-schema-traverse/package.json
new file mode 100644
index 0000000000..70b1256a3c
--- /dev/null
+++ b/deps/npm/node_modules/json-schema-traverse/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "json-schema-traverse@^0.3.0",
+ "_id": "json-schema-traverse@0.3.1",
+ "_inBundle": false,
+ "_integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
+ "_location": "/json-schema-traverse",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "json-schema-traverse@^0.3.0",
+ "name": "json-schema-traverse",
+ "escapedName": "json-schema-traverse",
+ "rawSpec": "^0.3.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.3.0"
+ },
+ "_requiredBy": [
+ "/ajv"
+ ],
+ "_resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
+ "_shasum": "349a6d44c53a51de89b40805c5d5e59b417d3340",
+ "_spec": "json-schema-traverse@^0.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/ajv",
+ "author": {
+ "name": "Evgeny Poberezkin"
+ },
+ "bugs": {
+ "url": "https://github.com/epoberezkin/json-schema-traverse/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Traverse JSON Schema passing each schema object to callback",
+ "devDependencies": {
+ "coveralls": "^2.13.1",
+ "eslint": "^3.19.0",
+ "mocha": "^3.4.2",
+ "nyc": "^11.0.2",
+ "pre-commit": "^1.2.2"
+ },
+ "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme",
+ "keywords": [
+ "JSON-Schema",
+ "traverse",
+ "iterate"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "json-schema-traverse",
+ "nyc": {
+ "exclude": [
+ "**/spec/**",
+ "node_modules"
+ ],
+ "reporter": [
+ "lcov",
+ "text-summary"
+ ]
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/epoberezkin/json-schema-traverse.git"
+ },
+ "scripts": {
+ "eslint": "eslint index.js spec",
+ "test": "npm run eslint && nyc npm run test-spec",
+ "test-spec": "mocha spec -R spec"
+ },
+ "version": "0.3.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/.eslintrc.yml b/deps/npm/node_modules/json-schema-traverse/spec/.eslintrc.yml
index 3344da7eb3..3344da7eb3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/.eslintrc.yml
+++ b/deps/npm/node_modules/json-schema-traverse/spec/.eslintrc.yml
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/fixtures/schema.js b/deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js
index c51430cdc3..c51430cdc3 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/fixtures/schema.js
+++ b/deps/npm/node_modules/json-schema-traverse/spec/fixtures/schema.js
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/index.spec.js b/deps/npm/node_modules/json-schema-traverse/spec/index.spec.js
index 7e66143d39..7e66143d39 100644
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/spec/index.spec.js
+++ b/deps/npm/node_modules/json-schema-traverse/spec/index.spec.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/README.md b/deps/npm/node_modules/json-schema/README.md
index 78b81d3968..78b81d3968 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/README.md
+++ b/deps/npm/node_modules/json-schema/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/hyper-schema b/deps/npm/node_modules/json-schema/draft-00/hyper-schema
index 36a85ccd24..36a85ccd24 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/hyper-schema
+++ b/deps/npm/node_modules/json-schema/draft-00/hyper-schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/json-ref b/deps/npm/node_modules/json-schema/draft-00/json-ref
index 5d1f76b6a6..5d1f76b6a6 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/json-ref
+++ b/deps/npm/node_modules/json-schema/draft-00/json-ref
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/links b/deps/npm/node_modules/json-schema/draft-00/links
index cbef326dd3..cbef326dd3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/links
+++ b/deps/npm/node_modules/json-schema/draft-00/links
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/schema b/deps/npm/node_modules/json-schema/draft-00/schema
index d452b023ee..d452b023ee 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-00/schema
+++ b/deps/npm/node_modules/json-schema/draft-00/schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/hyper-schema b/deps/npm/node_modules/json-schema/draft-01/hyper-schema
index b0fb5e157e..b0fb5e157e 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/hyper-schema
+++ b/deps/npm/node_modules/json-schema/draft-01/hyper-schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/json-ref b/deps/npm/node_modules/json-schema/draft-01/json-ref
index cbac1ba2e5..cbac1ba2e5 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/json-ref
+++ b/deps/npm/node_modules/json-schema/draft-01/json-ref
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/links b/deps/npm/node_modules/json-schema/draft-01/links
index ebc7b7b58b..ebc7b7b58b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/links
+++ b/deps/npm/node_modules/json-schema/draft-01/links
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/schema b/deps/npm/node_modules/json-schema/draft-01/schema
index a0f3801f84..a0f3801f84 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-01/schema
+++ b/deps/npm/node_modules/json-schema/draft-01/schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/hyper-schema b/deps/npm/node_modules/json-schema/draft-02/hyper-schema
index 0771e2b31e..0771e2b31e 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/hyper-schema
+++ b/deps/npm/node_modules/json-schema/draft-02/hyper-schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/json-ref b/deps/npm/node_modules/json-schema/draft-02/json-ref
index 1a6c56d04b..1a6c56d04b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/json-ref
+++ b/deps/npm/node_modules/json-schema/draft-02/json-ref
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/links b/deps/npm/node_modules/json-schema/draft-02/links
index dacc53a1a4..dacc53a1a4 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/links
+++ b/deps/npm/node_modules/json-schema/draft-02/links
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/schema b/deps/npm/node_modules/json-schema/draft-02/schema
index a4998abea2..a4998abea2 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-02/schema
+++ b/deps/npm/node_modules/json-schema/draft-02/schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/address b/deps/npm/node_modules/json-schema/draft-03/examples/address
index 074d34e82b..074d34e82b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/address
+++ b/deps/npm/node_modules/json-schema/draft-03/examples/address
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/calendar b/deps/npm/node_modules/json-schema/draft-03/examples/calendar
index d8fb5335f0..d8fb5335f0 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/calendar
+++ b/deps/npm/node_modules/json-schema/draft-03/examples/calendar
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/card b/deps/npm/node_modules/json-schema/draft-03/examples/card
index 89287a40d3..89287a40d3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/card
+++ b/deps/npm/node_modules/json-schema/draft-03/examples/card
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/geo b/deps/npm/node_modules/json-schema/draft-03/examples/geo
index 73ac7e538f..73ac7e538f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/geo
+++ b/deps/npm/node_modules/json-schema/draft-03/examples/geo
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/interfaces b/deps/npm/node_modules/json-schema/draft-03/examples/interfaces
index 84ebf83a99..84ebf83a99 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/examples/interfaces
+++ b/deps/npm/node_modules/json-schema/draft-03/examples/interfaces
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/hyper-schema b/deps/npm/node_modules/json-schema/draft-03/hyper-schema
index 623055c359..623055c359 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/hyper-schema
+++ b/deps/npm/node_modules/json-schema/draft-03/hyper-schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/json-ref b/deps/npm/node_modules/json-schema/draft-03/json-ref
index 388476323a..388476323a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/json-ref
+++ b/deps/npm/node_modules/json-schema/draft-03/json-ref
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/links b/deps/npm/node_modules/json-schema/draft-03/links
index 3dbcdba73c..3dbcdba73c 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/links
+++ b/deps/npm/node_modules/json-schema/draft-03/links
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/schema b/deps/npm/node_modules/json-schema/draft-03/schema
index 361456d8a7..361456d8a7 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-03/schema
+++ b/deps/npm/node_modules/json-schema/draft-03/schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/hyper-schema b/deps/npm/node_modules/json-schema/draft-04/hyper-schema
index f96d1ac6a5..f96d1ac6a5 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/hyper-schema
+++ b/deps/npm/node_modules/json-schema/draft-04/hyper-schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/links b/deps/npm/node_modules/json-schema/draft-04/links
index 7cf7c92c20..7cf7c92c20 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/links
+++ b/deps/npm/node_modules/json-schema/draft-04/links
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/schema b/deps/npm/node_modules/json-schema/draft-04/schema
index e9c90699fd..e9c90699fd 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-04/schema
+++ b/deps/npm/node_modules/json-schema/draft-04/schema
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-03.xml b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml
index 1cf715910b..1cf715910b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-03.xml
+++ b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-03.xml
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-04.xml b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml
index 22fb3290df..22fb3290df 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/draft-zyp-json-schema-04.xml
+++ b/deps/npm/node_modules/json-schema/draft-zyp-json-schema-04.xml
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/links.js b/deps/npm/node_modules/json-schema/lib/links.js
index 2ef3f9fb7d..2ef3f9fb7d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/links.js
+++ b/deps/npm/node_modules/json-schema/lib/links.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js b/deps/npm/node_modules/json-schema/lib/validate.js
index 4b6108800a..4b6108800a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/lib/validate.js
+++ b/deps/npm/node_modules/json-schema/lib/validate.js
diff --git a/deps/npm/node_modules/json-schema/package.json b/deps/npm/node_modules/json-schema/package.json
new file mode 100644
index 0000000000..18e1c75089
--- /dev/null
+++ b/deps/npm/node_modules/json-schema/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "json-schema@0.2.3",
+ "_id": "json-schema@0.2.3",
+ "_inBundle": false,
+ "_integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
+ "_location": "/json-schema",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "json-schema@0.2.3",
+ "name": "json-schema",
+ "escapedName": "json-schema",
+ "rawSpec": "0.2.3",
+ "saveSpec": null,
+ "fetchSpec": "0.2.3"
+ },
+ "_requiredBy": [
+ "/jsprim"
+ ],
+ "_resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+ "_shasum": "b480c892e59a2f05954ce727bd3f2a4e882f9e13",
+ "_spec": "json-schema@0.2.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/jsprim",
+ "author": {
+ "name": "Kris Zyp"
+ },
+ "bugs": {
+ "url": "https://github.com/kriszyp/json-schema/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "JSON Schema validation and specifications",
+ "devDependencies": {
+ "vows": "*"
+ },
+ "directories": {
+ "lib": "./lib"
+ },
+ "homepage": "https://github.com/kriszyp/json-schema#readme",
+ "keywords": [
+ "json",
+ "schema"
+ ],
+ "licenses": [
+ {
+ "type": "AFLv2.1",
+ "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43"
+ },
+ {
+ "type": "BSD",
+ "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13"
+ }
+ ],
+ "main": "./lib/validate.js",
+ "maintainers": [
+ {
+ "name": "Kris Zyp",
+ "email": "kriszyp@gmail.com"
+ }
+ ],
+ "name": "json-schema",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/kriszyp/json-schema.git"
+ },
+ "scripts": {
+ "test": "echo TESTS DISABLED vows --spec test/*.js"
+ },
+ "version": "0.2.3"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/test/tests.js b/deps/npm/node_modules/json-schema/test/tests.js
index 40eeda5d9f..40eeda5d9f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/test/tests.js
+++ b/deps/npm/node_modules/json-schema/test/tests.js
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore b/deps/npm/node_modules/json-stringify-safe/.npmignore
index 17d6b3677f..17d6b3677f 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/.npmignore
+++ b/deps/npm/node_modules/json-stringify-safe/.npmignore
diff --git a/deps/npm/node_modules/json-stringify-safe/CHANGELOG.md b/deps/npm/node_modules/json-stringify-safe/CHANGELOG.md
new file mode 100644
index 0000000000..c5147d77f6
--- /dev/null
+++ b/deps/npm/node_modules/json-stringify-safe/CHANGELOG.md
@@ -0,0 +1,14 @@
+## Unreleased
+- Fixes stringify to only take ancestors into account when checking
+ circularity.
+ It previously assumed every visited object was circular which led to [false
+ positives][issue9].
+ Uses the tiny serializer I wrote for [Must.js][must] a year and a half ago.
+- Fixes calling the `replacer` function in the proper context (`thisArg`).
+- Fixes calling the `cycleReplacer` function in the proper context (`thisArg`).
+- Speeds serializing by a factor of
+ Big-O(h-my-god-it-linearly-searched-every-object) it had ever seen. Searching
+ only the ancestors for a circular references speeds up things considerably.
+
+[must]: https://github.com/moll/js-must
+[issue9]: https://github.com/isaacs/json-stringify-safe/issues/9
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/LICENSE b/deps/npm/node_modules/json-stringify-safe/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/LICENSE
+++ b/deps/npm/node_modules/json-stringify-safe/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile b/deps/npm/node_modules/json-stringify-safe/Makefile
index 36088c723a..36088c723a 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/Makefile
+++ b/deps/npm/node_modules/json-stringify-safe/Makefile
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md b/deps/npm/node_modules/json-stringify-safe/README.md
index a11f302a33..a11f302a33 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/README.md
+++ b/deps/npm/node_modules/json-stringify-safe/README.md
diff --git a/deps/npm/node_modules/json-stringify-safe/package.json b/deps/npm/node_modules/json-stringify-safe/package.json
new file mode 100644
index 0000000000..cafc4c9a28
--- /dev/null
+++ b/deps/npm/node_modules/json-stringify-safe/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "json-stringify-safe@~5.0.1",
+ "_id": "json-stringify-safe@5.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
+ "_location": "/json-stringify-safe",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "json-stringify-safe@~5.0.1",
+ "name": "json-stringify-safe",
+ "escapedName": "json-stringify-safe",
+ "rawSpec": "~5.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~5.0.1"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb",
+ "_spec": "json-stringify-safe@~5.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/json-stringify-safe/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Andri Mƶll",
+ "email": "andri@dot.ee",
+ "url": "http://themoll.com"
+ }
+ ],
+ "deprecated": false,
+ "description": "Like JSON.stringify, but doesn't blow up on circular refs.",
+ "devDependencies": {
+ "mocha": ">= 2.1.0 < 3",
+ "must": ">= 0.12 < 0.13",
+ "sinon": ">= 1.12.2 < 2"
+ },
+ "homepage": "https://github.com/isaacs/json-stringify-safe",
+ "keywords": [
+ "json",
+ "stringify",
+ "circular",
+ "safe"
+ ],
+ "license": "ISC",
+ "main": "stringify.js",
+ "name": "json-stringify-safe",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/json-stringify-safe.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "5.0.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js b/deps/npm/node_modules/json-stringify-safe/stringify.js
index 124a452181..124a452181 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/stringify.js
+++ b/deps/npm/node_modules/json-stringify-safe/stringify.js
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts b/deps/npm/node_modules/json-stringify-safe/test/mocha.opts
index 2544e5861e..2544e5861e 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/mocha.opts
+++ b/deps/npm/node_modules/json-stringify-safe/test/mocha.opts
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js b/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js
index 5b32583176..5b32583176 100644
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/test/stringify_test.js
+++ b/deps/npm/node_modules/json-stringify-safe/test/stringify_test.js
diff --git a/deps/npm/node_modules/mississippi/.npmignore b/deps/npm/node_modules/jsonparse/.npmignore
index b512c09d47..b512c09d47 100644
--- a/deps/npm/node_modules/mississippi/.npmignore
+++ b/deps/npm/node_modules/jsonparse/.npmignore
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE b/deps/npm/node_modules/jsonparse/LICENSE
index ed1e50c3d3..ed1e50c3d3 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/LICENSE
+++ b/deps/npm/node_modules/jsonparse/LICENSE
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown b/deps/npm/node_modules/jsonparse/README.markdown
index c5425f8c3a..c5425f8c3a 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/README.markdown
+++ b/deps/npm/node_modules/jsonparse/README.markdown
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js b/deps/npm/node_modules/jsonparse/bench.js
index b36d92f7e3..b36d92f7e3 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/bench.js
+++ b/deps/npm/node_modules/jsonparse/bench.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js b/deps/npm/node_modules/jsonparse/examples/twitterfeed.js
index 10210d470b..10210d470b 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/examples/twitterfeed.js
+++ b/deps/npm/node_modules/jsonparse/examples/twitterfeed.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js b/deps/npm/node_modules/jsonparse/jsonparse.js
index 39910608b3..39910608b3 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js
+++ b/deps/npm/node_modules/jsonparse/jsonparse.js
diff --git a/deps/npm/node_modules/jsonparse/package.json b/deps/npm/node_modules/jsonparse/package.json
new file mode 100644
index 0000000000..b4136f11e6
--- /dev/null
+++ b/deps/npm/node_modules/jsonparse/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "jsonparse@^1.2.0",
+ "_id": "jsonparse@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=",
+ "_location": "/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/jsonparse/samplejson/basic.json
index 950dff9e9d..950dff9e9d 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic.json
+++ b/deps/npm/node_modules/jsonparse/samplejson/basic.json
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json b/deps/npm/node_modules/jsonparse/samplejson/basic2.json
index 3a6919b2ea..3a6919b2ea 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/samplejson/basic2.json
+++ b/deps/npm/node_modules/jsonparse/samplejson/basic2.json
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js b/deps/npm/node_modules/jsonparse/test/big-token.js
index 36046317ee..36046317ee 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/big-token.js
+++ b/deps/npm/node_modules/jsonparse/test/big-token.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js b/deps/npm/node_modules/jsonparse/test/boundary.js
index 6671f5f930..6671f5f930 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/boundary.js
+++ b/deps/npm/node_modules/jsonparse/test/boundary.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js b/deps/npm/node_modules/jsonparse/test/offset.js
index 9a552ab059..9a552ab059 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/offset.js
+++ b/deps/npm/node_modules/jsonparse/test/offset.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js b/deps/npm/node_modules/jsonparse/test/primitives.js
index 33cae169a2..33cae169a2 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/primitives.js
+++ b/deps/npm/node_modules/jsonparse/test/primitives.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js b/deps/npm/node_modules/jsonparse/test/surrogate.js
index 33351c73cc..33351c73cc 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/surrogate.js
+++ b/deps/npm/node_modules/jsonparse/test/surrogate.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js b/deps/npm/node_modules/jsonparse/test/unvalid.js
index 7715cc0ef1..7715cc0ef1 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/unvalid.js
+++ b/deps/npm/node_modules/jsonparse/test/unvalid.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js b/deps/npm/node_modules/jsonparse/test/utf8.js
index 6cb842f3e7..6cb842f3e7 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/jsonparse/test/utf8.js
+++ b/deps/npm/node_modules/jsonparse/test/utf8.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CHANGES.md b/deps/npm/node_modules/jsprim/CHANGES.md
index c52d39d687..c52d39d687 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CHANGES.md
+++ b/deps/npm/node_modules/jsprim/CHANGES.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CONTRIBUTING.md b/deps/npm/node_modules/jsprim/CONTRIBUTING.md
index 750cef8dfd..750cef8dfd 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/CONTRIBUTING.md
+++ b/deps/npm/node_modules/jsprim/CONTRIBUTING.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/LICENSE b/deps/npm/node_modules/jsprim/LICENSE
index cbc0bb3ba3..cbc0bb3ba3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/LICENSE
+++ b/deps/npm/node_modules/jsprim/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/README.md b/deps/npm/node_modules/jsprim/README.md
index b3f28a46c9..b3f28a46c9 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/README.md
+++ b/deps/npm/node_modules/jsprim/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js b/deps/npm/node_modules/jsprim/lib/jsprim.js
index f7d0d81c3f..f7d0d81c3f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/lib/jsprim.js
+++ b/deps/npm/node_modules/jsprim/lib/jsprim.js
diff --git a/deps/npm/node_modules/jsprim/package.json b/deps/npm/node_modules/jsprim/package.json
new file mode 100644
index 0000000000..d83416b2f5
--- /dev/null
+++ b/deps/npm/node_modules/jsprim/package.json
@@ -0,0 +1,49 @@
+{
+ "_from": "jsprim@^1.2.2",
+ "_id": "jsprim@1.4.1",
+ "_inBundle": false,
+ "_integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "_location": "/jsprim",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "jsprim@^1.2.2",
+ "name": "jsprim",
+ "escapedName": "jsprim",
+ "rawSpec": "^1.2.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.2"
+ },
+ "_requiredBy": [
+ "/http-signature"
+ ],
+ "_resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+ "_shasum": "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2",
+ "_spec": "jsprim@^1.2.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/http-signature",
+ "bugs": {
+ "url": "https://github.com/joyent/node-jsprim/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.2.3",
+ "verror": "1.10.0"
+ },
+ "deprecated": false,
+ "description": "utilities for primitive JavaScript types",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "homepage": "https://github.com/joyent/node-jsprim#readme",
+ "license": "MIT",
+ "main": "./lib/jsprim.js",
+ "name": "jsprim",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/joyent/node-jsprim.git"
+ },
+ "version": "1.4.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/index.js b/deps/npm/node_modules/latest-version/index.js
index bfb79d1c51..bfb79d1c51 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/index.js
+++ b/deps/npm/node_modules/latest-version/index.js
diff --git a/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 b/deps/npm/node_modules/latest-version/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/latest-version/license
diff --git a/deps/npm/node_modules/latest-version/package.json b/deps/npm/node_modules/latest-version/package.json
new file mode 100644
index 0000000000..1f663b9867
--- /dev/null
+++ b/deps/npm/node_modules/latest-version/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "latest-version@^3.0.0",
+ "_id": "latest-version@3.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
+ "_location": "/latest-version",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "latest-version@^3.0.0",
+ "name": "latest-version",
+ "escapedName": "latest-version",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
+ "_shasum": "a205383fea322b33b5ae3b18abee0dc2f356ee15",
+ "_spec": "latest-version@^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/sindresorhus/latest-version/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "package-json": "^4.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the latest version of an npm package",
+ "devDependencies": {
+ "ava": "*",
+ "semver-regex": "^1.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/latest-version#readme",
+ "keywords": [
+ "latest",
+ "version",
+ "npm",
+ "pkg",
+ "package",
+ "package.json",
+ "current",
+ "module"
+ ],
+ "license": "MIT",
+ "name": "latest-version",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/latest-version.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/readme.md b/deps/npm/node_modules/latest-version/readme.md
index 3fcffdd0d1..3fcffdd0d1 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/readme.md
+++ b/deps/npm/node_modules/latest-version/readme.md
diff --git a/deps/npm/node_modules/lazy-property/package.json b/deps/npm/node_modules/lazy-property/package.json
index f921ada2ec..3c36554297 100644
--- a/deps/npm/node_modules/lazy-property/package.json
+++ b/deps/npm/node_modules/lazy-property/package.json
@@ -1,37 +1,39 @@
{
- "_from": "lazy-property@~1.0.0",
+ "_args": [
+ [
+ "lazy-property@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lazy-property@1.0.0",
"_id": "lazy-property@1.0.0",
+ "_inBundle": false,
"_integrity": "sha1-hN3Es3Bnm6i9TNz6TAa0PVcREUc=",
"_location": "/lazy-property",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lazy-property@~1.0.0",
+ "raw": "lazy-property@1.0.0",
"name": "lazy-property",
"escapedName": "lazy-property",
- "rawSpec": "~1.0.0",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "~1.0.0"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lazy-property/-/lazy-property-1.0.0.tgz",
- "_shasum": "84ddc4b370679ba8bd4cdcfa4c06b43d57111147",
- "_shrinkwrap": null,
- "_spec": "lazy-property@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mikola Lysenko"
},
- "bin": null,
"bugs": {
"url": "https://github.com/mikolalysenko/lazy-property/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Lazily initialized properties for objects",
"devDependencies": {
"tape": "^2.12.3"
@@ -52,8 +54,6 @@
"license": "MIT",
"main": "lazyProperty.js",
"name": "lazy-property",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/mikolalysenko/lazy-property.git"
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/index.js b/deps/npm/node_modules/lcid/index.js
index 69bd3d231e..69bd3d231e 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/index.js
+++ b/deps/npm/node_modules/lcid/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/lcid.json b/deps/npm/node_modules/lcid/lcid.json
index 9c89f6a496..9c89f6a496 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/lcid.json
+++ b/deps/npm/node_modules/lcid/lcid.json
diff --git a/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 b/deps/npm/node_modules/lcid/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/lcid/license
diff --git a/deps/npm/node_modules/lcid/package.json b/deps/npm/node_modules/lcid/package.json
new file mode 100644
index 0000000000..6ab09a0881
--- /dev/null
+++ b/deps/npm/node_modules/lcid/package.json
@@ -0,0 +1,79 @@
+{
+ "_from": "lcid@^1.0.0",
+ "_id": "lcid@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+ "_location": "/lcid",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lcid@^1.0.0",
+ "name": "lcid",
+ "escapedName": "lcid",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/os-locale",
+ "/tacks/os-locale"
+ ],
+ "_resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+ "_shasum": "308accafa0bc483a3867b4b6f2b9506251d1b835",
+ "_spec": "lcid@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/os-locale",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/lcid/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "invert-kv": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Mapping between standard locale identifiers and Windows locale identifiers (LCID)",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js",
+ "lcid.json"
+ ],
+ "homepage": "https://github.com/sindresorhus/lcid#readme",
+ "keywords": [
+ "lcid",
+ "locale",
+ "string",
+ "str",
+ "id",
+ "identifier",
+ "windows",
+ "language",
+ "lang",
+ "map",
+ "mapping",
+ "convert",
+ "json",
+ "bcp47",
+ "ietf",
+ "tag"
+ ],
+ "license": "MIT",
+ "name": "lcid",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/lcid.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/readme.md b/deps/npm/node_modules/lcid/readme.md
index bee4a70166..bee4a70166 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/readme.md
+++ b/deps/npm/node_modules/lcid/readme.md
diff --git a/deps/npm/node_modules/libcipm/CHANGELOG.md b/deps/npm/node_modules/libcipm/CHANGELOG.md
new file mode 100644
index 0000000000..28a4189c4d
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/CHANGELOG.md
@@ -0,0 +1,382 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/cipm/compare/v1.6.3...v2.0.0) (2018-05-24)
+
+
+### meta
+
+* update node version support ([694b4d3](https://github.com/zkat/cipm/commit/694b4d3))
+
+
+### BREAKING CHANGES
+
+* node@4 is no longer supported
+
+
+
+<a name="1.6.3"></a>
+## [1.6.3](https://github.com/zkat/cipm/compare/v1.6.2...v1.6.3) (2018-05-24)
+
+
+
+<a name="1.6.2"></a>
+## [1.6.2](https://github.com/zkat/cipm/compare/v1.6.1...v1.6.2) (2018-04-08)
+
+
+### Bug Fixes
+
+* **lifecycle:** detect binding.gyp for default install lifecycle ([#46](https://github.com/zkat/cipm/issues/46)) ([9149631](https://github.com/zkat/cipm/commit/9149631)), closes [#45](https://github.com/zkat/cipm/issues/45)
+
+
+
+<a name="1.6.1"></a>
+## [1.6.1](https://github.com/zkat/cipm/compare/v1.6.0...v1.6.1) (2018-03-13)
+
+
+### Bug Fixes
+
+* **bin:** Set non-zero exit code on error ([#41](https://github.com/zkat/cipm/issues/41)) ([54d0106](https://github.com/zkat/cipm/commit/54d0106))
+* **lifecycle:** defer to lifecycleā€™s internal logic as to whether or not to execute a run-script ([#42](https://github.com/zkat/cipm/issues/42)) ([7f27a52](https://github.com/zkat/cipm/commit/7f27a52)), closes [npm/npm#19258](https://github.com/npm/npm/issues/19258)
+* **prefix:** don't reference prefix before computing it ([#40](https://github.com/zkat/cipm/issues/40)) ([08ed1cc](https://github.com/zkat/cipm/commit/08ed1cc))
+* **prefix:** Resolve to promise when passing --prefix to npm ci ([#43](https://github.com/zkat/cipm/issues/43)) ([401d466](https://github.com/zkat/cipm/commit/401d466))
+
+
+
+<a name="1.6.0"></a>
+# [1.6.0](https://github.com/zkat/cipm/compare/v1.5.1...v1.6.0) (2018-03-01)
+
+
+### Bug Fixes
+
+* **bin:** cli.js was being excluded ([d62668e](https://github.com/zkat/cipm/commit/d62668e))
+
+
+### Features
+
+* **libcipm:** working standalone cipm release! ([a3383fd](https://github.com/zkat/cipm/commit/a3383fd))
+
+
+
+<a name="1.5.1"></a>
+## [1.5.1](https://github.com/zkat/cipm/compare/v1.5.0...v1.5.1) (2018-03-01)
+
+
+### Bug Fixes
+
+* **_from:** do not add _from to directory deps ([7405360](https://github.com/zkat/cipm/commit/7405360))
+
+
+
+<a name="1.5.0"></a>
+# [1.5.0](https://github.com/zkat/cipm/compare/v1.4.1...v1.5.0) (2018-03-01)
+
+
+### Bug Fixes
+
+* **errors:** handle aggregate errors better ([6239499](https://github.com/zkat/cipm/commit/6239499))
+
+
+### Features
+
+* **logger:** rudimentary progress bar update ([c5d9dc7](https://github.com/zkat/cipm/commit/c5d9dc7))
+
+
+
+<a name="1.4.1"></a>
+## [1.4.1](https://github.com/zkat/cipm/compare/v1.4.0...v1.4.1) (2018-02-27)
+
+
+### Bug Fixes
+
+* **buildTree:** linking in parallel causes hoist-clobbering ([5ffbc0e](https://github.com/zkat/cipm/commit/5ffbc0e)), closes [#39](https://github.com/zkat/cipm/issues/39)
+* **buildTree:** use checkDepEnv here too ([41a4634](https://github.com/zkat/cipm/commit/41a4634))
+* **perf:** split up updateJson and buildTree ([df5aba0](https://github.com/zkat/cipm/commit/df5aba0))
+* **perf:** stop using the readPackageJson version to update packages ([8da3d5a](https://github.com/zkat/cipm/commit/8da3d5a))
+
+
+
+<a name="1.4.0"></a>
+# [1.4.0](https://github.com/zkat/cipm/compare/v1.3.3...v1.4.0) (2018-02-21)
+
+
+### Features
+
+* **extract:** add support for --only and --also ([ad143ae](https://github.com/zkat/cipm/commit/ad143ae))
+
+
+
+<a name="1.3.3"></a>
+## [1.3.3](https://github.com/zkat/cipm/compare/v1.3.2...v1.3.3) (2018-02-21)
+
+
+### Bug Fixes
+
+* **extract:** stop extracting deps before parent :\ ([c6847dc](https://github.com/zkat/cipm/commit/c6847dc))
+
+
+
+<a name="1.3.2"></a>
+## [1.3.2](https://github.com/zkat/cipm/compare/v1.3.1...v1.3.2) (2018-02-15)
+
+
+
+<a name="1.3.1"></a>
+## [1.3.1](https://github.com/zkat/cipm/compare/v1.3.0...v1.3.1) (2018-02-15)
+
+
+
+<a name="1.3.0"></a>
+# [1.3.0](https://github.com/zkat/cipm/compare/v1.2.0...v1.3.0) (2018-02-13)
+
+
+### Features
+
+* **extract:** link directory deps and install missing bundle deps ([8334e9e](https://github.com/zkat/cipm/commit/8334e9e))
+
+
+
+<a name="1.2.0"></a>
+# [1.2.0](https://github.com/zkat/cipm/compare/v1.1.2...v1.2.0) (2018-02-07)
+
+
+### Features
+
+* **metadata:** add _resolved, _integrity, and _from on install ([36642dc](https://github.com/zkat/cipm/commit/36642dc))
+
+
+
+<a name="1.1.2"></a>
+## [1.1.2](https://github.com/zkat/cipm/compare/v1.1.1...v1.1.2) (2018-01-19)
+
+
+
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/zkat/cipm/compare/v1.1.0...v1.1.1) (2018-01-19)
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/zkat/cipm/compare/v1.0.1...v1.1.0) (2018-01-07)
+
+
+### Features
+
+* **log:** add some helpful log output ([f443f03](https://github.com/zkat/cipm/commit/f443f03))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/zkat/cipm/compare/v1.0.0...v1.0.1) (2018-01-07)
+
+
+### Bug Fixes
+
+* **deps:** added protoduck to pkgjson ([ecbe719](https://github.com/zkat/cipm/commit/ecbe719))
+
+
+
+<a name="1.0.0"></a>
+# [1.0.0](https://github.com/zkat/cipm/compare/v0.9.1...v1.0.0) (2018-01-07)
+
+
+### Features
+
+* **cli:** splitting off CLI into a separate tool ([cff65c1](https://github.com/zkat/cipm/commit/cff65c1))
+
+
+### BREAKING CHANGES
+
+* **cli:** libcipm is its own library now,
+
+
+
+<a name="0.9.1"></a>
+## [0.9.1](https://github.com/zkat/cipm/compare/v0.9.0...v0.9.1) (2018-01-07)
+
+
+### Bug Fixes
+
+* **prefix:** oops @ prefix ([cc5adac](https://github.com/zkat/cipm/commit/cc5adac))
+
+
+
+<a name="0.9.0"></a>
+# [0.9.0](https://github.com/zkat/cipm/compare/v0.8.0...v0.9.0) (2018-01-07)
+
+
+### Bug Fixes
+
+* **package:** add pacote to bundleDependencies ([#36](https://github.com/zkat/cipm/issues/36)) ([a69742e](https://github.com/zkat/cipm/commit/a69742e))
+
+
+### Features
+
+* **config:** allow injection of npm configs ([#35](https://github.com/zkat/cipm/issues/35)) ([1f5694b](https://github.com/zkat/cipm/commit/1f5694b))
+
+
+
+<a name="0.8.0"></a>
+# [0.8.0](https://github.com/zkat/cipm/compare/v0.7.2...v0.8.0) (2017-11-28)
+
+
+### Features
+
+* **gyp:** new npm-lifecycle[@2](https://github.com/2) with included node-gyp ([a4ed938](https://github.com/zkat/cipm/commit/a4ed938))
+
+
+
+<a name="0.7.2"></a>
+## [0.7.2](https://github.com/zkat/cipm/compare/v0.7.1...v0.7.2) (2017-10-13)
+
+
+### Bug Fixes
+
+* **extract:** idk why this was breaking. Seriously. ([433a2be](https://github.com/zkat/cipm/commit/433a2be))
+* **tree:** pass through a custom Promise to logiTree ([2d29efb](https://github.com/zkat/cipm/commit/2d29efb))
+
+
+### Performance Improvements
+
+* zoomzoom. Even more concurrency! ([db9c2e0](https://github.com/zkat/cipm/commit/db9c2e0))
+
+
+
+<a name="0.7.1"></a>
+## [0.7.1](https://github.com/zkat/cipm/compare/v0.7.0...v0.7.1) (2017-10-13)
+
+
+### Bug Fixes
+
+* **scripts:** separate extract and build and fix ordering ([eb072a5](https://github.com/zkat/cipm/commit/eb072a5))
+
+
+
+<a name="0.7.0"></a>
+# [0.7.0](https://github.com/zkat/cipm/compare/v0.6.0...v0.7.0) (2017-10-12)
+
+
+### Bug Fixes
+
+* **lockfile:** npm-shrinkwrap takes precedence over package-lock (#28) ([3b98fb3](https://github.com/zkat/cipm/commit/3b98fb3))
+
+
+### Features
+
+* **optional:** ignore failed optional deps (#27) ([a654629](https://github.com/zkat/cipm/commit/a654629))
+
+
+
+<a name="0.6.0"></a>
+# [0.6.0](https://github.com/zkat/cipm/compare/v0.5.1...v0.6.0) (2017-10-09)
+
+
+### Features
+
+* **scripts:** run prepare and prepublish scripts in the root (#26) ([e0e35a3](https://github.com/zkat/cipm/commit/e0e35a3))
+
+
+
+<a name="0.5.1"></a>
+## [0.5.1](https://github.com/zkat/cipm/compare/v0.5.0...v0.5.1) (2017-10-09)
+
+
+
+<a name="0.5.0"></a>
+# [0.5.0](https://github.com/zkat/cipm/compare/v0.4.0...v0.5.0) (2017-10-09)
+
+
+### Bug Fixes
+
+* **output:** npm does not punctuate this ([e7ba976](https://github.com/zkat/cipm/commit/e7ba976))
+* **shutdown:** make sure workers close ([7ab57d0](https://github.com/zkat/cipm/commit/7ab57d0))
+
+
+### Features
+
+* **bin:** link bins and run scripts (#25) ([fab74bf](https://github.com/zkat/cipm/commit/fab74bf))
+* **lifecycle:** run scripts in dep order (#23) ([68ecfac](https://github.com/zkat/cipm/commit/68ecfac))
+
+
+
+<a name="0.4.0"></a>
+# [0.4.0](https://github.com/zkat/cipm/compare/v0.3.2...v0.4.0) (2017-10-04)
+
+
+### Features
+
+* **opts:** support full range of relevant CLI opts (#19) ([6f2bd51](https://github.com/zkat/cipm/commit/6f2bd51))
+
+
+
+<a name="0.3.2"></a>
+## [0.3.2](https://github.com/zkat/cipm/compare/v0.3.1...v0.3.2) (2017-09-06)
+
+
+### Bug Fixes
+
+* **bin:** make cli executable by default (#13) ([14a9a5f](https://github.com/zkat/cipm/commit/14a9a5f))
+* **config:** use npm.cmd on win32 and fix tests (#12) ([d912d16](https://github.com/zkat/cipm/commit/d912d16)), closes [#12](https://github.com/zkat/cipm/issues/12)
+* **json:** strip BOM when reading JSON files (#8) ([2529149](https://github.com/zkat/cipm/commit/2529149))
+
+
+
+<a name="0.3.1"></a>
+## [0.3.1](https://github.com/zkat/cipm/compare/v0.3.0...v0.3.1) (2017-09-05)
+
+
+
+<a name="0.3.0"></a>
+# [0.3.0](https://github.com/zkat/cipm/compare/v0.2.0...v0.3.0) (2017-09-05)
+
+
+### Features
+
+* **lockfile:** verify that lockfile matches package.json (#5) ([f631203](https://github.com/zkat/cipm/commit/f631203))
+* **scripts:** support --ignore-scripts option (#9) ([213ca02](https://github.com/zkat/cipm/commit/213ca02))
+
+
+
+<a name="0.2.0"></a>
+# [0.2.0](https://github.com/zkat/cipm/compare/v0.1.1...v0.2.0) (2017-09-01)
+
+
+### Bug Fixes
+
+* **main:** default --prefix ([ff06a31](https://github.com/zkat/cipm/commit/ff06a31))
+
+
+### Features
+
+* **lifecycle:** actually run lifecycle scripts correctly ([7f8933e](https://github.com/zkat/cipm/commit/7f8933e))
+
+
+
+<a name="0.1.1"></a>
+## [0.1.1](https://github.com/zkat/cipm/compare/v0.1.0...v0.1.1) (2017-08-30)
+
+
+### Bug Fixes
+
+* **files:** oops. forgot to include new files in tarball ([1ee85c9](https://github.com/zkat/cipm/commit/1ee85c9))
+
+
+
+<a name="0.1.0"></a>
+# 0.1.0 (2017-08-30)
+
+
+### Bug Fixes
+
+* **config:** pipe stdout ([08e6af8](https://github.com/zkat/cipm/commit/08e6af8))
+* **extract:** make sure to extract properly ([9643583](https://github.com/zkat/cipm/commit/9643583))
+* **license:** switch to MIT ([0d10d0d](https://github.com/zkat/cipm/commit/0d10d0d))
+
+
+### Features
+
+* **impl:** rough prototype ([2970e43](https://github.com/zkat/cipm/commit/2970e43))
+* **lifecycle:** Run lifecycle events, implement prefix option, add unit tests (#1) ([d6629be](https://github.com/zkat/cipm/commit/d6629be)), closes [#1](https://github.com/zkat/cipm/issues/1)
+* **opts:** add usage string and --help ([efcc48d](https://github.com/zkat/cipm/commit/efcc48d))
diff --git a/deps/npm/node_modules/libcipm/LICENSE.md b/deps/npm/node_modules/libcipm/LICENSE.md
new file mode 100644
index 0000000000..409d7d5a9c
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/LICENSE.md
@@ -0,0 +1,7 @@
+Copyright 2017 Kat MarchƔn and 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.
diff --git a/deps/npm/node_modules/libcipm/README.md b/deps/npm/node_modules/libcipm/README.md
new file mode 100644
index 0000000000..00f9b81619
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/README.md
@@ -0,0 +1,37 @@
+[![npm](https://img.shields.io/npm/v/libcipm.svg)](https://npm.im/libcipm) [![license](https://img.shields.io/npm/l/libcipm.svg)](https://npm.im/libcipm) [![Travis](https://img.shields.io/travis/zkat/cipm.svg)](https://travis-ci.org/zkat/cipm) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cipm?svg=true)](https://ci.appveyor.com/project/zkat/cipm) [![Coverage Status](https://coveralls.io/repos/github/zkat/cipm/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cipm?branch=latest)
+
+[`libcipm`](https://github.com/zkat/cipm) installs npm projects in a way that's
+optimized for continuous integration/deployment/etc scenarios. It gives up
+the ability to build its own trees or install packages individually, as well
+as other user-oriented features, in exchange for speed, and being more strict
+about project state.
+
+For documentation about the associated command-line tool, see
+[`cipm`](https://npm.im/cipm).
+
+## Install
+
+`$ npm install libcipm`
+
+## Table of Contents
+
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+
+### Features
+
+* npm-compatible project installation
+* lifecycle script support
+* blazing fast
+* npm-compatible caching
+* errors if `package.json` and `package-lock.json` are out of sync, instead of fixing it like npm does. Essentially provides a `--frozen` install.
+
+### Contributing
+
+The libcipm team enthusiastically welcomes contributions and project
+participation! There's a bunch of things you can do if you want to contribute!
+The [Contributor Guide](CONTRIBUTING.md) has all the information you need for
+everything from reporting bugs to contributing entire new features. Please don't
+hesitate to jump in if you'd like to, or even ask us questions if something
+isn't clear.
diff --git a/deps/npm/node_modules/libcipm/index.js b/deps/npm/node_modules/libcipm/index.js
new file mode 100644
index 0000000000..9061ec4b18
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/index.js
@@ -0,0 +1,402 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const binLink = require('bin-links')
+const buildLogicalTree = require('npm-logical-tree')
+const extract = require('./lib/extract.js')
+const fs = require('graceful-fs')
+const getPrefix = require('find-npm-prefix')
+const lifecycle = require('npm-lifecycle')
+const lockVerify = require('lock-verify')
+const mkdirp = BB.promisify(require('mkdirp'))
+const npa = require('npm-package-arg')
+const path = require('path')
+const readPkgJson = BB.promisify(require('read-package-json'))
+const rimraf = BB.promisify(require('rimraf'))
+
+const readFileAsync = BB.promisify(fs.readFile)
+const statAsync = BB.promisify(fs.stat)
+const symlinkAsync = BB.promisify(fs.symlink)
+const writeFileAsync = BB.promisify(fs.writeFile)
+
+class Installer {
+ constructor (opts) {
+ this.opts = opts
+ this.config = opts.config
+
+ // Stats
+ this.startTime = Date.now()
+ this.runTime = 0
+ this.timings = { scripts: 0 }
+ this.pkgCount = 0
+
+ // Misc
+ this.log = this.opts.log || require('./lib/silentlog.js')
+ this.pkg = null
+ this.tree = null
+ this.failedDeps = new Set()
+ }
+
+ timedStage (name) {
+ const start = Date.now()
+ return BB.resolve(this[name].apply(this, [].slice.call(arguments, 1)))
+ .tap(() => {
+ this.timings[name] = Date.now() - start
+ this.log.info(name, `Done in ${this.timings[name] / 1000}s`)
+ })
+ }
+
+ run () {
+ return this.timedStage('prepare')
+ .then(() => this.timedStage('extractTree', this.tree))
+ .then(() => this.timedStage('updateJson', this.tree))
+ .then(pkgJsons => this.timedStage('buildTree', this.tree, pkgJsons))
+ .then(() => this.timedStage('garbageCollect', this.tree))
+ .then(() => this.timedStage('runScript', 'prepublish', this.pkg, this.prefix))
+ .then(() => this.timedStage('runScript', 'prepare', this.pkg, this.prefix))
+ .then(() => this.timedStage('teardown'))
+ .then(() => {
+ this.runTime = Date.now() - this.startTime
+ this.log.info(
+ 'run-scripts',
+ `total script time: ${this.timings.scripts / 1000}s`
+ )
+ this.log.info(
+ 'run-time',
+ `total run time: ${this.runTime / 1000}s`
+ )
+ })
+ .catch(err => {
+ this.timedStage('teardown')
+ if (err.message.match(/aggregate error/)) {
+ throw err[0]
+ } else {
+ throw err
+ }
+ })
+ .then(() => this)
+ }
+
+ prepare () {
+ this.log.info('prepare', 'initializing installer')
+ this.log.level = this.config.get('loglevel')
+ this.log.verbose('prepare', 'starting workers')
+ extract.startWorkers()
+
+ return (
+ this.config.get('prefix') && this.config.get('global')
+ ? BB.resolve(this.config.get('prefix'))
+ // There's some Specialā„¢ logic around the `--prefix` config when it
+ // comes from a config file or env vs when it comes from the CLI
+ : process.argv.some(arg => arg.match(/^\s*--prefix\s*/i))
+ ? BB.resolve(this.config.get('prefix'))
+ : getPrefix(process.cwd())
+ )
+ .then(prefix => {
+ this.prefix = prefix
+ this.log.verbose('prepare', 'installation prefix: ' + prefix)
+ return BB.join(
+ readJson(prefix, 'package.json'),
+ readJson(prefix, 'package-lock.json', true),
+ readJson(prefix, 'npm-shrinkwrap.json', true),
+ (pkg, lock, shrink) => {
+ if (shrink) {
+ this.log.verbose('prepare', 'using npm-shrinkwrap.json')
+ } else if (lock) {
+ this.log.verbose('prepare', 'using package-lock.json')
+ }
+ pkg._shrinkwrap = shrink || lock
+ this.pkg = pkg
+ }
+ )
+ })
+ .then(() => statAsync(
+ path.join(this.prefix, 'node_modules')
+ ).catch(err => { if (err.code !== 'ENOENT') { throw err } }))
+ .then(stat => {
+ stat && this.log.warn(
+ 'prepare', 'removing existing node_modules/ before installation'
+ )
+ return BB.join(
+ this.checkLock(),
+ stat && rimraf(path.join(this.prefix, 'node_modules'))
+ )
+ }).then(() => {
+ // This needs to happen -after- we've done checkLock()
+ this.tree = buildLogicalTree(this.pkg, this.pkg._shrinkwrap)
+ this.log.silly('tree', this.tree)
+ this.expectedTotal = 0
+ this.tree.forEach((dep, next) => {
+ this.expectedTotal++
+ next()
+ })
+ })
+ }
+
+ teardown () {
+ this.log.verbose('teardown', 'shutting down workers.')
+ return extract.stopWorkers()
+ }
+
+ checkLock () {
+ this.log.verbose('checkLock', 'verifying package-lock data')
+ const pkg = this.pkg
+ const prefix = this.prefix
+ if (!pkg._shrinkwrap || !pkg._shrinkwrap.lockfileVersion) {
+ return BB.reject(
+ new Error(`cipm can only install packages with an existing package-lock.json or npm-shrinkwrap.json with lockfileVersion >= 1. Run an install with npm@5 or later to generate it, then try again.`)
+ )
+ }
+ return lockVerify(prefix).then(result => {
+ if (result.status) {
+ result.warnings.forEach(w => this.log.warn('lockfile', w))
+ } else {
+ throw new Error(
+ 'cipm can only install packages when your package.json and package-lock.json or ' +
+ 'npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` ' +
+ 'before continuing.\n\n' +
+ result.warnings.map(w => 'Warning: ' + w).join('\n') + '\n' +
+ result.errors.join('\n') + '\n'
+ )
+ }
+ }).catch(err => {
+ throw err
+ })
+ }
+
+ extractTree (tree) {
+ this.log.verbose('extractTree', 'extracting dependencies to node_modules/')
+ const cg = this.log.newItem('extractTree', this.expectedTotal)
+ return tree.forEachAsync((dep, next) => {
+ if (!this.checkDepEnv(dep)) { return }
+ const depPath = dep.path(this.prefix)
+ const spec = npa.resolve(dep.name, dep.version, this.prefix)
+ if (dep.isRoot) {
+ return next()
+ } else if (spec.type === 'directory') {
+ const relative = path.relative(path.dirname(depPath), spec.fetchSpec)
+ this.log.silly('extractTree', `${dep.name}@${spec.fetchSpec} -> ${depPath} (symlink)`)
+ return mkdirp(path.dirname(depPath))
+ .then(() => symlinkAsync(relative, depPath, 'junction'))
+ .catch(
+ () => rimraf(depPath)
+ .then(() => symlinkAsync(relative, depPath, 'junction'))
+ ).then(() => next())
+ .then(() => {
+ this.pkgCount++
+ cg.completeWork(1)
+ })
+ } else {
+ this.log.silly('extractTree', `${dep.name}@${dep.version} -> ${depPath}`)
+ return (
+ dep.bundled
+ ? statAsync(path.join(depPath, 'package.json')).catch(err => {
+ if (err.code !== 'ENOENT') { throw err }
+ })
+ : BB.resolve(false)
+ )
+ .then(wasBundled => {
+ // Don't extract if a bundled dep is actually present
+ if (wasBundled) {
+ cg.completeWork(1)
+ return next()
+ } else {
+ return BB.resolve(extract.child(
+ dep.name, dep, depPath, this.config, this.opts
+ ))
+ .then(() => cg.completeWork(1))
+ .then(() => { this.pkgCount++ })
+ .then(next)
+ }
+ })
+ }
+ }, {concurrency: 50, Promise: BB})
+ .then(() => cg.finish())
+ }
+
+ checkDepEnv (dep) {
+ const includeDev = (
+ // Covers --dev and --development (from npm config itself)
+ this.config.get('dev') ||
+ (
+ !/^prod(uction)?$/.test(this.config.get('only')) &&
+ !this.config.get('production')
+ ) ||
+ /^dev(elopment)?$/.test(this.config.get('only')) ||
+ /^dev(elopment)?$/.test(this.config.get('also'))
+ )
+ const includeProd = !/^dev(elopment)?$/.test(this.config.get('only'))
+ return (dep.dev && includeDev) || (!dep.dev && includeProd)
+ }
+
+ updateJson (tree) {
+ this.log.verbose('updateJson', 'updating json deps to include _from')
+ const pkgJsons = new Map()
+ return tree.forEachAsync((dep, next) => {
+ if (!this.checkDepEnv(dep)) { return }
+ const spec = npa.resolve(dep.name, dep.version)
+ const depPath = dep.path(this.prefix)
+ return next()
+ .then(() => readJson(depPath, 'package.json'))
+ .then(pkg => (spec.registry || spec.type === 'directory')
+ ? pkg
+ : this.updateFromField(dep, pkg).then(() => pkg)
+ )
+ .then(pkg => (pkg.scripts && pkg.scripts.install)
+ ? pkg
+ : this.updateInstallScript(dep, pkg).then(() => pkg)
+ )
+ .tap(pkg => { pkgJsons.set(dep, pkg) })
+ }, {concurrency: 100, Promise: BB})
+ .then(() => pkgJsons)
+ }
+
+ buildTree (tree, pkgJsons) {
+ this.log.verbose('buildTree', 'finalizing tree and running scripts')
+ return tree.forEachAsync((dep, next) => {
+ if (!this.checkDepEnv(dep)) { return }
+ const spec = npa.resolve(dep.name, dep.version)
+ const depPath = dep.path(this.prefix)
+ const pkg = pkgJsons.get(dep)
+ this.log.silly('buildTree', `linking ${spec}`)
+ return this.runScript('preinstall', pkg, depPath)
+ .then(next) // build children between preinstall and binLink
+ // Don't link root bins
+ .then(() => {
+ if (
+ dep.isRoot ||
+ !(pkg.bin || pkg.man || (pkg.directories && pkg.directories.bin))
+ ) {
+ // We skip the relatively expensive readPkgJson if there's no way
+ // we'll actually be linking any bins or mans
+ return
+ }
+ return readPkgJson(path.join(depPath, 'package.json'))
+ .then(pkg => binLink(pkg, depPath, false, {
+ force: this.config.get('force'),
+ ignoreScripts: this.config.get('ignore-scripts'),
+ log: Object.assign({}, this.log, { info: () => {} }),
+ name: pkg.name,
+ pkgId: pkg.name + '@' + pkg.version,
+ prefix: this.prefix,
+ prefixes: [this.prefix],
+ umask: this.config.get('umask')
+ }), e => {
+ this.log.verbose('buildTree', `error linking ${spec}: ${e.message} ${e.stack}`)
+ })
+ })
+ .then(() => this.runScript('install', pkg, depPath))
+ .then(() => this.runScript('postinstall', pkg, depPath))
+ .then(() => this)
+ .catch(e => {
+ if (dep.optional) {
+ this.failedDeps.add(dep)
+ } else {
+ throw e
+ }
+ })
+ }, {concurrency: 1, Promise: BB})
+ }
+
+ updateFromField (dep, pkg) {
+ const depPath = dep.path(this.prefix)
+ const depPkgPath = path.join(depPath, 'package.json')
+ const parent = dep.requiredBy.values().next().value
+ return readJson(parent.path(this.prefix), 'package.json')
+ .then(ppkg =>
+ (ppkg.dependencies && ppkg.dependencies[dep.name]) ||
+ (ppkg.devDependencies && ppkg.devDependencies[dep.name]) ||
+ (ppkg.optionalDependencies && ppkg.optionalDependencies[dep.name])
+ )
+ .then(from => npa.resolve(dep.name, from))
+ .then(from => { pkg._from = from.toString() })
+ .then(() => writeFileAsync(depPkgPath, JSON.stringify(pkg, null, 2)))
+ .then(pkg)
+ }
+
+ updateInstallScript (dep, pkg) {
+ const depPath = dep.path(this.prefix)
+ return statAsync(path.join(depPath, 'binding.gyp'))
+ .catch(err => { if (err.code !== 'ENOENT') { throw err } })
+ .then(stat => {
+ if (stat) {
+ if (!pkg.scripts) {
+ pkg.scripts = {}
+ }
+ pkg.scripts.install = 'node-gyp rebuild'
+ }
+ })
+ .then(pkg)
+ }
+
+ // A cute little mark-and-sweep collector!
+ garbageCollect (tree) {
+ if (!this.failedDeps.size) { return }
+ return sweep(
+ tree,
+ this.prefix,
+ mark(tree, this.failedDeps)
+ )
+ .then(purged => {
+ this.purgedDeps = purged
+ this.pkgCount -= purged.size
+ })
+ }
+
+ runScript (stage, pkg, pkgPath) {
+ const start = Date.now()
+ if (!this.config.get('ignore-scripts')) {
+ // TODO(mikesherov): remove pkg._id when npm-lifecycle no longer relies on it
+ pkg._id = pkg.name + '@' + pkg.version
+ const opts = this.config.toLifecycle()
+ return BB.resolve(lifecycle(pkg, stage, pkgPath, opts))
+ .tap(() => { this.timings.scripts += Date.now() - start })
+ }
+ return BB.resolve()
+ }
+}
+module.exports = Installer
+module.exports.CipmConfig = require('./lib/config/npm-config.js').CipmConfig
+
+function mark (tree, failed) {
+ const liveDeps = new Set()
+ tree.forEach((dep, next) => {
+ if (!failed.has(dep)) {
+ liveDeps.add(dep)
+ next()
+ }
+ })
+ return liveDeps
+}
+
+function sweep (tree, prefix, liveDeps) {
+ const purged = new Set()
+ return tree.forEachAsync((dep, next) => {
+ return next().then(() => {
+ if (
+ !dep.isRoot && // never purge root! šŸ™ˆ
+ !liveDeps.has(dep) &&
+ !purged.has(dep)
+ ) {
+ purged.add(dep)
+ return rimraf(dep.path(prefix))
+ }
+ })
+ }, {concurrency: 50, Promise: BB}).then(() => purged)
+}
+
+function stripBOM (str) {
+ return str.replace(/^\uFEFF/, '')
+}
+
+module.exports._readJson = readJson
+function readJson (jsonPath, name, ignoreMissing) {
+ return readFileAsync(path.join(jsonPath, name), 'utf8')
+ .then(str => JSON.parse(stripBOM(str)))
+ .catch({code: 'ENOENT'}, err => {
+ if (!ignoreMissing) {
+ throw err
+ }
+ })
+}
diff --git a/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js b/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js
new file mode 100644
index 0000000000..7d57459779
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/config/lifecycle-opts.js
@@ -0,0 +1,29 @@
+'use strict'
+
+const log = require('npmlog')
+
+module.exports = lifecycleOpts
+function lifecycleOpts (opts) {
+ const objConfig = {}
+ for (const key of opts.keys()) {
+ const val = opts.get(key)
+ if (val != null) {
+ objConfig[key] = val
+ }
+ }
+ return {
+ config: objConfig,
+ scriptShell: opts.get('script-shell'),
+ force: opts.get('force'),
+ user: opts.get('user'),
+ group: opts.get('group'),
+ ignoreScripts: opts.get('ignore-scripts'),
+ ignorePrepublish: opts.get('ignore-prepublish'),
+ scriptsPrependNodePath: opts.get('scripts-prepend-node-path'),
+ unsafePerm: opts.get('unsafe-perm'),
+ log,
+ dir: opts.get('prefix'),
+ failOk: false,
+ production: opts.get('production')
+ }
+}
diff --git a/deps/npm/node_modules/libcipm/lib/config/npm-config.js b/deps/npm/node_modules/libcipm/lib/config/npm-config.js
new file mode 100644
index 0000000000..76b4054eef
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/config/npm-config.js
@@ -0,0 +1,72 @@
+'use strict'
+
+const BB = require('bluebird')
+const lifecycleOpts = require('./lifecycle-opts.js')
+const pacoteOpts = require('./pacote-opts.js')
+const protoduck = require('protoduck')
+const spawn = require('child_process').spawn
+
+class NpmConfig extends Map {}
+
+const CipmConfig = protoduck.define({
+ get: [],
+ set: [],
+ toPacote: [],
+ toLifecycle: []
+}, {
+ name: 'CipmConfig'
+})
+module.exports.CipmConfig = CipmConfig
+
+CipmConfig.impl(NpmConfig, {
+ get: Map.prototype.get,
+ set: Map.prototype.set,
+ toPacote (opts) {
+ return pacoteOpts(this, opts)
+ },
+ toLifecycle () {
+ return lifecycleOpts(this)
+ }
+})
+
+module.exports.fromObject = fromObj
+function fromObj (obj) {
+ const map = new NpmConfig()
+ Object.keys(obj).forEach(k => map.set(k, obj[k]))
+ return map
+}
+
+module.exports.fromNpm = getNpmConfig
+function getNpmConfig (argv) {
+ return new BB((resolve, reject) => {
+ const npmBin = process.platform === 'win32' ? 'npm.cmd' : 'npm'
+ const child = spawn(npmBin, [
+ 'config', 'ls', '--json', '-l'
+ // We add argv here to get npm to parse those options for us :D
+ ].concat(argv || []), {
+ env: process.env,
+ cwd: process.cwd(),
+ stdio: [0, 'pipe', 2]
+ })
+
+ let stdout = ''
+ if (child.stdout) {
+ child.stdout.on('data', (chunk) => {
+ stdout += chunk
+ })
+ }
+
+ child.on('error', reject)
+ child.on('close', (code) => {
+ if (code === 127) {
+ reject(new Error('`npm` command not found. Please ensure you have npm@5.4.0 or later installed.'))
+ } else {
+ try {
+ resolve(fromObj(JSON.parse(stdout)))
+ } catch (e) {
+ reject(new Error('`npm config ls --json` failed to output json. Please ensure you have npm@5.4.0 or later installed.'))
+ }
+ }
+ })
+ })
+}
diff --git a/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js b/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js
new file mode 100644
index 0000000000..234ed1352a
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/config/pacote-opts.js
@@ -0,0 +1,135 @@
+'use strict'
+
+const Buffer = require('safe-buffer').Buffer
+
+const crypto = require('crypto')
+const path = require('path')
+
+let effectiveOwner
+
+const npmSession = crypto.randomBytes(8).toString('hex')
+
+module.exports = pacoteOpts
+function pacoteOpts (npmOpts, moreOpts) {
+ const ownerStats = calculateOwner()
+ const opts = {
+ cache: path.join(npmOpts.get('cache'), '_cacache'),
+ ca: npmOpts.get('ca'),
+ cert: npmOpts.get('cert'),
+ git: npmOpts.get('git'),
+ key: npmOpts.get('key'),
+ localAddress: npmOpts.get('local-address'),
+ loglevel: npmOpts.get('loglevel'),
+ maxSockets: +(npmOpts.get('maxsockets') || 15),
+ npmSession: npmSession,
+ offline: npmOpts.get('offline'),
+ projectScope: moreOpts.rootPkg && getProjectScope(moreOpts.rootPkg.name),
+ proxy: npmOpts.get('https-proxy') || npmOpts.get('proxy'),
+ refer: 'cipm',
+ registry: npmOpts.get('registry'),
+ retry: {
+ retries: npmOpts.get('fetch-retries'),
+ factor: npmOpts.get('fetch-retry-factor'),
+ minTimeout: npmOpts.get('fetch-retry-mintimeout'),
+ maxTimeout: npmOpts.get('fetch-retry-maxtimeout')
+ },
+ strictSSL: npmOpts.get('strict-ssl'),
+ userAgent: npmOpts.get('user-agent'),
+
+ dmode: parseInt('0777', 8) & (~npmOpts.get('umask')),
+ fmode: parseInt('0666', 8) & (~npmOpts.get('umask')),
+ umask: npmOpts.get('umask')
+ }
+
+ if (ownerStats.uid != null || ownerStats.gid != null) {
+ Object.assign(opts, ownerStats)
+ }
+
+ (npmOpts.forEach ? Array.from(npmOpts.keys()) : npmOpts.keys).forEach(k => {
+ const authMatchGlobal = k.match(
+ /^(_authToken|username|_password|password|email|always-auth|_auth)$/
+ )
+ const authMatchScoped = k[0] === '/' && k.match(
+ /(.*):(_authToken|username|_password|password|email|always-auth|_auth)$/
+ )
+
+ // if it matches scoped it will also match global
+ if (authMatchGlobal || authMatchScoped) {
+ let nerfDart = null
+ let key = null
+ let val = null
+
+ if (!opts.auth) { opts.auth = {} }
+
+ if (authMatchScoped) {
+ nerfDart = authMatchScoped[1]
+ key = authMatchScoped[2]
+ val = npmOpts.get(k)
+ if (!opts.auth[nerfDart]) {
+ opts.auth[nerfDart] = {
+ alwaysAuth: !!npmOpts.get('always-auth')
+ }
+ }
+ } else {
+ key = authMatchGlobal[1]
+ val = npmOpts.get(k)
+ opts.auth.alwaysAuth = !!npmOpts.get('always-auth')
+ }
+
+ const auth = authMatchScoped ? opts.auth[nerfDart] : opts.auth
+ if (key === '_authToken') {
+ auth.token = val
+ } else if (key.match(/password$/i)) {
+ auth.password =
+ // the config file stores password auth already-encoded. pacote expects
+ // the actual username/password pair.
+ Buffer.from(val, 'base64').toString('utf8')
+ } else if (key === 'always-auth') {
+ auth.alwaysAuth = val === 'false' ? false : !!val
+ } else {
+ auth[key] = val
+ }
+ }
+
+ if (k[0] === '@') {
+ if (!opts.scopeTargets) { opts.scopeTargets = {} }
+ opts.scopeTargets[k.replace(/:registry$/, '')] = npmOpts.get(k)
+ }
+ })
+
+ Object.keys(moreOpts || {}).forEach((k) => {
+ opts[k] = moreOpts[k]
+ })
+
+ return opts
+}
+
+function calculateOwner () {
+ if (!effectiveOwner) {
+ effectiveOwner = { uid: 0, gid: 0 }
+
+ // Pretty much only on windows
+ if (!process.getuid) {
+ return effectiveOwner
+ }
+
+ effectiveOwner.uid = +process.getuid()
+ effectiveOwner.gid = +process.getgid()
+
+ if (effectiveOwner.uid === 0) {
+ if (process.env.SUDO_UID) effectiveOwner.uid = +process.env.SUDO_UID
+ if (process.env.SUDO_GID) effectiveOwner.gid = +process.env.SUDO_GID
+ }
+ }
+
+ return effectiveOwner
+}
+
+function getProjectScope (pkgName) {
+ const sep = pkgName.indexOf('/')
+ if (sep === -1) {
+ return ''
+ } else {
+ return pkgName.slice(0, sep)
+ }
+}
diff --git a/deps/npm/node_modules/libcipm/lib/extract.js b/deps/npm/node_modules/libcipm/lib/extract.js
new file mode 100644
index 0000000000..1967308112
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/extract.js
@@ -0,0 +1,53 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const npa = require('npm-package-arg')
+const workerFarm = require('worker-farm')
+
+const extractionWorker = require('./worker.js')
+const WORKER_PATH = require.resolve('./worker.js')
+
+module.exports = {
+ startWorkers () {
+ this._workers = workerFarm({
+ maxConcurrentCallsPerWorker: 20,
+ maxRetries: 1
+ }, WORKER_PATH)
+ },
+
+ stopWorkers () {
+ workerFarm.end(this._workers)
+ },
+
+ child (name, child, childPath, config, opts) {
+ const spec = npa.resolve(name, child.version)
+ const childOpts = config.toPacote(Object.assign({
+ integrity: child.integrity,
+ resolved: child.resolved
+ }, {
+ dirPacker: opts.dirPacker
+ }))
+ const args = [spec, childPath, childOpts]
+ return BB.fromNode((cb) => {
+ let launcher = extractionWorker
+ let msg = args
+ const spec = typeof args[0] === 'string' ? npa(args[0]) : args[0]
+ childOpts.loglevel = opts.log.level
+ if (spec.registry || spec.type === 'remote') {
+ // We can't serialize these options
+ childOpts.config = null
+ childOpts.log = null
+ childOpts.dirPacker = null
+ // workers will run things in parallel!
+ launcher = this._workers
+ try {
+ msg = JSON.stringify(msg)
+ } catch (e) {
+ return cb(e)
+ }
+ }
+ launcher(msg, cb)
+ })
+ }
+}
diff --git a/deps/npm/node_modules/libcipm/lib/silentlog.js b/deps/npm/node_modules/libcipm/lib/silentlog.js
new file mode 100644
index 0000000000..4c9d6c57e8
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/silentlog.js
@@ -0,0 +1,13 @@
+'use strict'
+
+const noop = Function.prototype
+module.exports = {
+ error: noop,
+ warn: noop,
+ info: noop,
+ verbose: noop,
+ silly: noop,
+ http: noop,
+ pause: noop,
+ resume: noop
+}
diff --git a/deps/npm/node_modules/libcipm/lib/worker.js b/deps/npm/node_modules/libcipm/lib/worker.js
new file mode 100644
index 0000000000..ac61b06236
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/lib/worker.js
@@ -0,0 +1,16 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const log = require('npmlog')
+const pacote = require('pacote')
+
+module.exports = (args, cb) => {
+ const parsed = typeof args === 'string' ? JSON.parse(args) : args
+ const spec = parsed[0]
+ const extractTo = parsed[1]
+ const opts = parsed[2]
+ opts.log = log
+ log.level = opts.loglevel
+ return BB.resolve(pacote.extract(spec, extractTo, opts)).nodeify(cb)
+}
diff --git a/deps/npm/node_modules/libcipm/package.json b/deps/npm/node_modules/libcipm/package.json
new file mode 100644
index 0000000000..53a40741fc
--- /dev/null
+++ b/deps/npm/node_modules/libcipm/package.json
@@ -0,0 +1,101 @@
+{
+ "_args": [
+ [
+ "libcipm@2.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "libcipm@2.0.0",
+ "_id": "libcipm@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-yTWR7Ch7Mg891KZj+1yhcWhztO6tuAcBLdmCvBXv2pbCzV5/DOEDjDQdZmmYn5mFwI96kOSu+OIMRTmLsxrNZw==",
+ "_location": "/libcipm",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "libcipm@2.0.0",
+ "name": "libcipm",
+ "escapedName": "libcipm",
+ "rawSpec": "2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "2.0.0"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/libcipm/-/libcipm-2.0.0.tgz",
+ "_spec": "2.0.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/cipm/issues"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "bin-links": "^1.1.2",
+ "bluebird": "^3.5.1",
+ "find-npm-prefix": "^1.0.2",
+ "graceful-fs": "^4.1.11",
+ "lock-verify": "^2.0.2",
+ "npm-lifecycle": "^2.0.3",
+ "npm-logical-tree": "^1.2.1",
+ "npm-package-arg": "^6.1.0",
+ "pacote": "^8.1.6",
+ "protoduck": "^5.0.0",
+ "read-package-json": "^2.0.13",
+ "rimraf": "^2.6.2",
+ "worker-farm": "^1.6.0"
+ },
+ "description": "programmatic API for cipm: a ci-oriented package installer for npm",
+ "devDependencies": {
+ "mkdirp": "^0.5.1",
+ "npmlog": "^4.1.2",
+ "nyc": "^11.8.0",
+ "require-inject": "^1.4.3",
+ "standard": "^11.0.1",
+ "standard-version": "^4.4.0",
+ "tacks": "^1.2.6",
+ "tap": "^12.0.1",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/zkat/cipm#readme",
+ "keywords": [
+ "npm",
+ "package manager",
+ "caching",
+ "downloader"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "libcipm",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/cipm.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --nyc-arg=--all --coverage test/specs",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/libnpmhook/CHANGELOG.md b/deps/npm/node_modules/libnpmhook/CHANGELOG.md
new file mode 100644
index 0000000000..6fe3e05b5e
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/CHANGELOG.md
@@ -0,0 +1,66 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="4.0.1"></a>
+## [4.0.1](https://github.com/npm/libnpmhook/compare/v4.0.0...v4.0.1) (2018-04-09)
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/npm/libnpmhook/compare/v3.0.1...v4.0.0) (2018-04-08)
+
+
+### meta
+
+* drop support for node 4 and 7 ([f2a301e](https://github.com/npm/libnpmhook/commit/f2a301e))
+
+
+### BREAKING CHANGES
+
+* node@4 and node@7 are no longer supported
+
+
+
+<a name="3.0.1"></a>
+## [3.0.1](https://github.com/npm/libnpmhook/compare/v3.0.0...v3.0.1) (2018-04-08)
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/npm/libnpmhook/compare/v2.0.1...v3.0.0) (2018-04-04)
+
+
+### add
+
+* guess type based on name ([9418224](https://github.com/npm/libnpmhook/commit/9418224))
+
+
+### BREAKING CHANGES
+
+* hook type is now based on name prefix
+
+
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/npm/libnpmhook/compare/v2.0.0...v2.0.1) (2018-03-16)
+
+
+### Bug Fixes
+
+* **urls:** was hitting the wrong URL endpoints ([10171a9](https://github.com/npm/libnpmhook/commit/10171a9))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/npm/libnpmhook/compare/v1.0.0...v2.0.0) (2018-03-16)
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2018-03-16)
+
+
+### Features
+
+* **api:** baseline working api ([122658e](https://github.com/npm/npm-hooks/commit/122658e))
diff --git a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/LICENSE.md b/deps/npm/node_modules/libnpmhook/LICENSE.md
index 8d28acf866..8d28acf866 100644
--- a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/LICENSE.md
+++ b/deps/npm/node_modules/libnpmhook/LICENSE.md
diff --git a/deps/npm/node_modules/libnpmhook/README.md b/deps/npm/node_modules/libnpmhook/README.md
new file mode 100644
index 0000000000..0e2f018f2a
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/README.md
@@ -0,0 +1,23 @@
+# libnpmhook [![npm version](https://img.shields.io/npm/v/libnpmhook.svg)](https://npm.im/libnpmhook) [![license](https://img.shields.io/npm/l/libnpmhook.svg)](https://npm.im/libnpmhook) [![Travis](https://img.shields.io/travis/npm/libnpmhook.svg)](https://travis-ci.org/npm/libnpmhook) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/libnpmhook?svg=true)](https://ci.appveyor.com/project/npm/libnpmhook) [![Coverage Status](https://coveralls.io/repos/github/npm/libnpmhook/badge.svg?branch=latest)](https://coveralls.io/github/npm/libnpmhook?branch=latest)
+
+[`libnpmhook`](https://github.com/npm/libnpmhook) is a Node.js library for
+programmatically managing the npm registry's server-side hooks.
+
+## Install
+
+`$ npm install libnpmhook`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [API](#api)
+
+### Example
+
+```javascript
+```
+
+### Features
+
+### API
diff --git a/deps/npm/node_modules/libnpmhook/config.js b/deps/npm/node_modules/libnpmhook/config.js
new file mode 100644
index 0000000000..864e1ede6a
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/config.js
@@ -0,0 +1,13 @@
+'use strict'
+
+const pudding = require('figgy-pudding')
+
+const NpmHooksConfig = pudding()
+
+module.exports = config
+function config (opts) {
+ return NpmHooksConfig.apply(
+ null,
+ [opts, opts.config].concat([].slice.call(arguments, 1))
+ )
+}
diff --git a/deps/npm/node_modules/libnpmhook/index.js b/deps/npm/node_modules/libnpmhook/index.js
new file mode 100644
index 0000000000..b59ff842e2
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/index.js
@@ -0,0 +1,41 @@
+'use strict'
+
+const config = require('./config')
+const fetch = require('npm-registry-fetch')
+
+module.exports = {
+ add (name, endpoint, secret, opts) {
+ let type = 'package'
+ if (name && name.match(/^@[^/]+$/)) {
+ type = 'scope'
+ }
+ if (name && name[0] === '~') {
+ type = 'owner'
+ name = name.substr(1)
+ }
+
+ opts = config({
+ method: 'POST',
+ body: { type, name, endpoint, secret }
+ }, opts)
+ return fetch.json('/-/npm/v1/hooks/hook', opts)
+ },
+
+ rm (id, opts) {
+ return fetch.json(`/-/npm/v1/hooks/hook/${encodeURIComponent(id)}`, config({
+ method: 'DELETE'
+ }, opts))
+ },
+
+ ls (pkg, opts) {
+ return fetch.json('/-/npm/v1/hooks', config({query: pkg && {package: pkg}}, opts))
+ .then(json => json.objects)
+ },
+
+ update (id, endpoint, secret, opts) {
+ return fetch.json(`/-/npm/v1/hooks/hook/${encodeURIComponent(id)}`, config({
+ method: 'PUT',
+ body: {endpoint, secret}
+ }, opts))
+ }
+}
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md
new file mode 100644
index 0000000000..8f9366551f
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/CHANGELOG.md
@@ -0,0 +1,104 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.1.1"></a>
+## [3.1.1](https://github.com/npm/registry-fetch/compare/v3.1.0...v3.1.1) (2018-04-09)
+
+
+
+<a name="3.1.0"></a>
+# [3.1.0](https://github.com/npm/registry-fetch/compare/v3.0.0...v3.1.0) (2018-04-09)
+
+
+### Features
+
+* **config:** support no-proxy and https-proxy options ([9aa906b](https://github.com/npm/registry-fetch/commit/9aa906b))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/npm/registry-fetch/compare/v2.1.0...v3.0.0) (2018-04-09)
+
+
+### Bug Fixes
+
+* **api:** pacote integration-related fixes ([a29de4f](https://github.com/npm/registry-fetch/commit/a29de4f))
+* **config:** stop caring about opts.config ([5856a6f](https://github.com/npm/registry-fetch/commit/5856a6f))
+
+
+### BREAKING CHANGES
+
+* **config:** opts.config is no longer supported. Pass the options down in opts itself.
+
+
+
+<a name="2.1.0"></a>
+# [2.1.0](https://github.com/npm/registry-fetch/compare/v2.0.0...v2.1.0) (2018-04-08)
+
+
+### Features
+
+* **token:** accept opts.token for opts._authToken ([108c9f0](https://github.com/npm/registry-fetch/commit/108c9f0))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/npm/registry-fetch/compare/v1.1.1...v2.0.0) (2018-04-08)
+
+
+### meta
+
+* drop support for node@4 ([758536e](https://github.com/npm/registry-fetch/commit/758536e))
+
+
+### BREAKING CHANGES
+
+* node@4 is no longer supported
+
+
+
+<a name="1.1.1"></a>
+## [1.1.1](https://github.com/npm/registry-fetch/compare/v1.1.0...v1.1.1) (2018-04-06)
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/npm/registry-fetch/compare/v1.0.1...v1.1.0) (2018-03-16)
+
+
+### Features
+
+* **specs:** can use opts.spec to trigger pickManifest ([85c4ac9](https://github.com/npm/registry-fetch/commit/85c4ac9))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/npm/registry-fetch/compare/v1.0.0...v1.0.1) (2018-03-16)
+
+
+### Bug Fixes
+
+* **query:** oops console.log ([870e4f5](https://github.com/npm/registry-fetch/commit/870e4f5))
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2018-03-16)
+
+
+### Bug Fixes
+
+* **auth:** get auth working with all the little details ([84b94ba](https://github.com/npm/registry-fetch/commit/84b94ba))
+* **deps:** add bluebird as an actual dep ([1286e31](https://github.com/npm/registry-fetch/commit/1286e31))
+* **errors:** Unknown auth errors use default code ([#1](https://github.com/npm/registry-fetch/issues/1)) ([3d91b93](https://github.com/npm/registry-fetch/commit/3d91b93))
+* **standard:** remove args from invocation ([9620a0a](https://github.com/npm/registry-fetch/commit/9620a0a))
+
+
+### Features
+
+* **api:** baseline kinda-working API impl ([bf91f9f](https://github.com/npm/registry-fetch/commit/bf91f9f))
+* **body:** automatic handling of different opts.body values ([f3b97db](https://github.com/npm/registry-fetch/commit/f3b97db))
+* **config:** nicer input config input handling ([b9ce21d](https://github.com/npm/registry-fetch/commit/b9ce21d))
+* **opts:** use figgy-pudding for opts handling ([0abd527](https://github.com/npm/registry-fetch/commit/0abd527))
+* **query:** add query utility support ([65ea8b1](https://github.com/npm/registry-fetch/commit/65ea8b1))
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/libnpmhook/node_modules/npm-registry-fetch/README.md b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md
new file mode 100644
index 0000000000..3d55eef6de
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/README.md
@@ -0,0 +1,549 @@
+# npm-registry-fetch [![npm version](https://img.shields.io/npm/v/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![license](https://img.shields.io/npm/l/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![Travis](https://img.shields.io/travis/npm/npm-registry-fetch/latest.svg)](https://travis-ci.org/npm/npm-registry-fetch) [![AppVeyor](https://img.shields.io/appveyor/ci/zkat/npm-registry-fetch/latest.svg)](https://ci.appveyor.com/project/npm/npm-registry-fetch) [![Coverage Status](https://coveralls.io/repos/github/npm/npm-registry-fetch/badge.svg?branch=latest)](https://coveralls.io/github/npm/npm-registry-fetch?branch=latest)
+
+[`npm-registry-fetch`](https://github.com/npm/npm-registry-fetch) is a Node.js
+library that implements a `fetch`-like API for accessing npm registry APIs
+consistently. It's able to consume npm-style configuration values and has all
+the necessary logic for picking registries, handling scopes, and dealing with
+authentication details built-in.
+
+This package is meant to replace the older
+[`npm-registry-client`](https://npm.im/npm-registry-client).
+
+## Example
+
+```javascript
+const npmFetch = require('npm-registry-fetch')
+
+console.log(
+ await npmFetch.json('/-/ping')
+)
+```
+
+## Table of Contents
+
+* [Installing](#install)
+* [Example](#example)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`fetch`](#fetch)
+ * [`fetch.json`](#fetch-json)
+ * [`fetch` options](#fetch-opts)
+
+### Install
+
+`$ npm install npm-registry-fetch`
+
+### Contributing
+
+The npm team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of
+Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="fetch"></a> `> fetch(url, [opts]) -> Promise<Response>`
+
+Performs a request to a given URL.
+
+The URL can be either a full URL, or a path to one. The appropriate registry
+will be automatically picked if only a URL path is given.
+
+For available options, please see the section on [`fetch` options](#fetch-opts).
+
+##### Example
+
+```javascript
+const res = await fetch('/-/ping')
+console.log(res.headers)
+res.on('data', d => console.log(d.toString('utf8')))
+```
+
+#### <a name="fetch-json"></a> `> fetch.json(url, [opts]) -> Promise<ResponseJSON>`
+
+Performs a request to a given registry URL, parses the body of the response as
+JSON, and returns it as its final value. This is a utility shorthand for
+`fetch(url).then(res => res.json())`.
+
+For available options, please see the section on [`fetch` options](#fetch-opts).
+
+##### Example
+
+```javascript
+const res = await fetch.json('/-/ping')
+console.log(res) // Body parsed as JSON
+```
+
+#### <a name="fetch-opts"></a> `fetch` Options
+
+Fetch options are optional, and can be passed in as either a Map-like object
+(one with a `.get()` method), a plain javascript object, or a
+[`figgy-pudding`](https://npm.im/figgy-pudding) instance.
+
+##### <a name="opts-agent"></a> `opts.agent`
+
+* Type: http.Agent
+* Default: an appropriate agent based on URL protocol and proxy settings
+
+An [`Agent`](https://nodejs.org/api/http.html#http_class_http_agent) instance to
+be shared across requests. This allows multiple concurrent `fetch` requests to
+happen on the same socket.
+
+You do _not_ need to provide this option unless you want something particularly
+specialized, since proxy configurations and http/https agents are already
+automatically managed internally when this option is not passed through.
+
+##### <a name="opts-body"></a> `opts.body`
+
+* Type: Buffer | Stream | Object
+* Default: null
+
+Request body to send through the outgoing request. Buffers and Streams will be
+passed through as-is, with a default `content-type` of
+`application/octet-stream`. Plain JavaScript objects will be `JSON.stringify`ed
+and the `content-type` will default to `application/json`.
+
+Use [`opts.headers`](#opts-headers) to set the content-type to something else.
+
+##### <a name="opts-ca"></a> `opts.ca`
+
+* Type: String, Array, or null
+* Default: null
+
+The Certificate Authority signing certificate that is trusted for SSL
+connections to the registry. Values should be in PEM format (Windows calls it
+"Base-64 encoded X.509 (.CER)") with newlines replaced by the string `'\n'`. For
+example:
+
+```
+{
+ ca: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----'
+}
+```
+
+Set to `null` to only allow "known" registrars, or to a specific CA cert
+to trust only that specific signing authority.
+
+Multiple CAs can be trusted by specifying an array of certificates instead of a
+single string.
+
+See also [`opts.strict-ssl`](#opts-strict-ssl), [`opts.ca`](#opts-ca) and
+[`opts.key`](#opts-key)
+
+##### <a name="opts-cache"></a> `opts.cache`
+
+* Type: path
+* Default: null
+
+The location of the http cache directory. If provided, certain cachable requests
+will be cached according to [IETF RFC 7234](https://tools.ietf.org/html/rfc7234)
+rules. This will speed up future requests, as well as make the cached data
+available offline if necessary/requested.
+
+See also [`offline`](#opts-offline), [`prefer-offline`](#opts-prefer-offline),
+and [`prefer-online`](#opts-prefer-online).
+
+##### <a name="opts-cert"></a> `opts.cert`
+
+* Type: String
+* Default: null
+
+A client certificate to pass when accessing the registry. Values should be in
+PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines
+replaced by the string `'\n'`. For example:
+
+```
+{
+ cert: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----'
+}
+```
+
+It is _not_ the path to a certificate file (and there is no "certfile" option).
+
+See also: [`opts.ca`](#opts-ca) and [`opts.key`](#opts-key)
+
+##### <a name="opts-fetch-retries"></a> `opts.fetch-retries`
+
+* Type: Number
+* Default: 2
+
+The "retries" config for [`retry`](https://npm.im/retry) to use when fetching
+packages from the registry.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-factor"></a> `opts.fetch-retry-factor`
+
+* Type: Number
+* Default: 10
+
+The "factor" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-mintimeout"></a> `opts.fetch-retry-mintimeout`
+
+* Type: Number
+* Default: 10000 (10 seconds)
+
+The "minTimeout" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-maxtimeout"></a> `opts.fetch-retry-maxtimeout`
+
+* Type: Number
+* Default: 60000 (1 minute)
+
+The "maxTimeout" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-headers"></a> `opts.headers`
+
+* Type: Object
+* Default: null
+
+Additional headers for the outgoing request. This option can also be used to
+override headers automatically generated by `npm-registry-fetch`, such as
+`Content-Type`.
+
+##### <a name="opts-integrity"></a> `opts.integrity`
+
+* Type: String | [SRI object](https://npm.im/ssri)
+* Default: null
+
+If provided, the response body's will be verified against this integrity string,
+using [`ssri`](https://npm.im/ssri). If verification succeeds, the response will
+complete as normal. If verification fails, the response body will error with an
+`EINTEGRITY` error.
+
+Body integrity is only verified if the body is actually consumed to completion --
+that is, if you use `res.json()`/`res.buffer()`, or if you consume the default
+`res` stream data to its end.
+
+Cached data will have its integrity automatically verified using the
+previously-generated integrity hash for the saved request information, so
+`EINTEGRITY` errors can happen if [`opts.cache`](#opts-cache) is used, even if
+`opts.integrity` is not passed in.
+
+##### <a name='opts-is-from-ci'></a> `opts.is-from-ci`
+
+* Alias: `opts.isFromCI`
+* Type: Boolean
+* Default: Based on environment variables
+
+This is used to populate the `npm-in-ci` request header sent to the registry.
+
+##### <a name="opts-key"></a> `opts.key`
+
+* Type: String
+* Default: null
+
+A client key to pass when accessing the registry. Values should be in PEM
+format with newlines replaced by the string `'\n'`. For example:
+
+```
+{
+ key: '-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----'
+}
+```
+
+It is _not_ the path to a key file (and there is no "keyfile" option).
+
+See also: [`opts.ca`](#opts-ca) and [`opts.cert`](#opts-cert)
+
+##### <a name="opts-local-address"></a> `opts.local-address`
+
+* Type: IP Address String
+* Default: null
+
+The IP address of the local interface to use when making connections
+to the registry.
+
+See also [`opts.proxy`](#opts-proxy)
+
+##### <a name="opts-log"></a> `opts.log`
+
+* Type: [`npmlog`](https://npm.im/npmlog)-like
+* Default: null
+
+Logger object to use for logging operation details. Must have the same methods
+as `npmlog`.
+
+##### <a name="opts-maxsockets"></a> `opts.maxsockets`
+
+* Alias: `opts.max-sockets`
+* Type: Integer
+* Default: 12
+
+Maximum number of sockets to keep open during requests. Has no effect if
+[`opts.agent`](#opts-agent) is used.
+
+##### <a name="opts-method"></a> `opts.method`
+
+* Type: String
+* Default: 'GET'
+
+HTTP method to use for the outgoing request. Case-insensitive.
+
+##### <a name="opts-noproxy"></a> `opts.noproxy`
+
+* Type: Boolean
+* Default: process.env.NOPROXY
+
+If true, proxying will be disabled even if [`opts.proxy`](#opts-proxy) is used.
+
+##### <a name="opts-npm-session"></a> `opts.npm-session`
+
+* Alias: `opts.npmSession`
+* Type: String
+* Default: null
+
+If provided, will be sent in the `npm-session` header. This header is used by
+the npm registry to identify individual user sessions (usually individual
+invocations of the CLI).
+
+##### <a name="opts-offline"></a> `opts.offline`
+
+* Type: Boolean
+* Default: false
+
+Force offline mode: no network requests will be done during install. To allow
+`npm-registry-fetch` to fill in missing cache data, see
+[`opts.prefer-offline`](#opts-prefer-offline).
+
+This option is only really useful if you're also using
+[`opts.cache`](#opts-cache).
+
+##### <a name="opts-otp"></a> `opts.otp`
+
+* Type: Number | String
+* Default: null
+
+This is a one-time password from a two-factor authenticator. It is required for
+certain registry interactions when two-factor auth is enabled for a user
+account.
+
+##### <a name="opts-password"></a> `opts.password`
+
+* Alias: _password
+* Type: String
+* Default: null
+
+Password used for basic authentication. For the more modern authentication
+method, please use the (more secure) [`opts.token`](#opts-token)
+
+Can optionally be scoped to a registry by using a "nerf dart" for that registry.
+That is:
+
+```
+{
+ '//registry.npmjs.org/:password': 't0k3nH34r'
+}
+```
+
+See also [`opts.username`](#opts-username)
+
+##### <a name="opts-prefer-offline"></a> `opts.prefer-offline`
+
+* Type: Boolean
+* Default: false
+
+If true, staleness checks for cached data will be bypassed, but missing data
+will be requested from the server. To force full offline mode, use
+[`opts.offline`](#opts-offline).
+
+This option is generally only useful if you're also using
+[`opts.cache`](#opts-cache).
+
+##### <a name="opts-prefer-online"></a> `opts.prefer-online`
+
+* Type: Boolean
+* Default: false
+
+If true, staleness checks for cached data will be forced, making the CLI look
+for updates immediately even for fresh package data.
+
+This option is generally only useful if you're also using
+[`opts.cache`](#opts-cache).
+
+
+##### <a name="opts-project-scope"></a> `opts.project-scope`
+
+* Alias: `opts.projectScope`
+* Type: String
+* Default: null
+
+If provided, will be sent in the `npm-scope` header. This header is used by the
+npm registry to identify the toplevel package scope that a particular project
+installation is using.
+
+##### <a name="opts-proxy"></a> `opts.proxy`
+
+* Type: url
+* Default: null
+
+A proxy to use for outgoing http requests. If not passed in, the `HTTP(S)_PROXY`
+environment variable will be used.
+
+##### <a name="opts-query"></a> `opts.query`
+
+* Type: String | Object
+* Default: null
+
+If provided, the request URI will have a query string appended to it using this
+query. If `opts.query` is an object, it will be converted to a query string
+using
+[`querystring.stringify()`](https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options).
+
+If the request URI already has a query string, it will be merged with
+`opts.query`, preferring `opts.query` values.
+
+##### <a name="opts-refer"></a> `opts.refer`
+
+* Alias: `opts.referer`
+* Type: String
+* Default: null
+
+Value to use for the `Referer` header. The npm CLI itself uses this to serialize
+the npm command line using the given request.
+
+##### <a name="opts-registry"></a> `opts.registry`
+
+* Type: URL
+* Default: `'https://registry.npmjs.org'`
+
+Registry configuration for a request. If a request URL only includes the URL
+path, this registry setting will be prepended. This configuration is also used
+to determine authentication details, so even if the request URL references a
+completely different host, `opts.registry` will be used to find the auth details
+for that request.
+
+See also [`opts.scope`](#opts-scope), [`opts.spec`](#opts-spec), and
+[`opts.<scope>:registry`](#opts-scope-registry) which can all affect the actual
+registry URL used by the outgoing request.
+
+##### <a name="opts-retry"></a> `opts.retry`
+
+* Type: Object
+* Default: null
+
+Single-object configuration for request retry settings. If passed in, will
+override individually-passed `fetch-retry-*` settings.
+
+##### <a name="opts-scope"></a> `opts.scope`
+
+* Type: String
+* Default: null
+
+Associate an operation with a scope for a scoped registry. This option can force
+lookup of scope-specific registries and authentication.
+
+See also [`opts.<scope>:registry`](#opts-scope-registry) and
+[`opts.spec`](#opts-spec) for interactions with this option.
+
+##### <a name="opts-scope-registry"></a> `opts.<scope>:registry`
+
+* Type: String
+* Default: null
+
+This option type can be used to configure the registry used for requests
+involving a particular scope. For example, `opts['@myscope:registry'] =
+'https://scope-specific.registry/'` will make it so requests go out to this
+registry instead of [`opts.registry`](#opts-registry) when
+[`opts.scope`](#opts-scope) is used, or when [`opts.spec`](#opts-spec) is a
+scoped package spec.
+
+The `@` before the scope name is optional, but recommended.
+
+##### <a name="opts-spec"></a> `opts.spec`
+
+* Type: String | [`npm-registry-arg`](https://npm.im/npm-registry-arg) object.
+* Default: null
+
+If provided, can be used to automatically configure [`opts.scope`](#opts-scope)
+based on a specific package name. Non-registry package specs will throw an
+error.
+
+##### <a name="opts-strict-ssl"></a> `opts.strict-ssl`
+
+* Type: Boolean
+* Default: true
+
+Whether or not to do SSL key validation when making requests to the
+registry via https.
+
+See also [`opts.ca`](#opts-ca).
+
+##### <a name="opts-timeout"></a> `opts.timeout`
+
+* Type: Milliseconds
+* Default: 30000 (30 seconds)
+
+Time before a hanging request times out.
+
+##### <a name="opts-token"></a> `opts.token`
+
+* Alias: `opts._authToken`
+* Type: String
+* Default: null
+
+Authentication token string.
+
+Can be scoped to a registry by using a "nerf dart" for that registry. That is:
+
+```
+{
+ '//registry.npmjs.org/:token': 't0k3nH34r'
+}
+```
+
+##### <a name="opts-user-agent"></a> `opts.user-agent`
+
+* Type: String
+* Default: `'npm-registry-fetch@<version>/node@<node-version>+<arch> (<platform>)'`
+
+User agent string to send in the `User-Agent` header.
+
+##### <a name="opts-username"></a> `opts.username`
+
+* Type: String
+* Default: null
+
+Username used for basic authentication. For the more modern authentication
+method, please use the (more secure) [`opts.token`](#opts-token)
+
+Can optionally be scoped to a registry by using a "nerf dart" for that registry.
+That is:
+
+```
+{
+ '//registry.npmjs.org/:username': 't0k3nH34r'
+}
+```
+
+See also [`opts.password`](#opts-password)
+
+##### <a name="opts-auth"></a> `opts._auth`
+
+* Type: String
+* Default: null
+
+** DEPRECATED ** This is a legacy authentication token supported only for
+*compatibility. Please use [`opts.token`](#opts-token) instead.
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js
new file mode 100644
index 0000000000..9532341db1
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/auth.js
@@ -0,0 +1,48 @@
+'use strict'
+
+const config = require('./config.js')
+const url = require('url')
+
+module.exports = getAuth
+function getAuth (registry, opts) {
+ if (!registry) { throw new Error('registry is required') }
+ opts = config(opts)
+ let AUTH = {}
+ const regKey = registry && registryKey(registry)
+ const doKey = (key, alias) => addKey(opts, AUTH, regKey, key, alias)
+ doKey('token')
+ doKey('_authToken', 'token')
+ doKey('username')
+ doKey('password')
+ doKey('_password', 'password')
+ doKey('email')
+ doKey('_auth')
+ doKey('otp')
+ doKey('always-auth', 'alwaysAuth')
+ if (AUTH.password) {
+ AUTH.password = Buffer.from(AUTH.password, 'base64').toString('utf8')
+ }
+ AUTH.alwaysAuth = AUTH.alwaysAuth === 'false' ? false : !!AUTH.alwaysAuth
+ return AUTH
+}
+
+function addKey (opts, obj, scope, key, objKey) {
+ if (opts.get(key)) {
+ obj[objKey || key] = opts.get(key)
+ }
+ if (scope && opts.get(`${scope}:${key}`)) {
+ obj[objKey || key] = opts.get(`${scope}:${key}`)
+ }
+}
+
+// Called a nerf dart in the main codebase. Used as a "safe"
+// key when fetching registry info from config.
+function registryKey (registry) {
+ const parsed = url.parse(registry)
+ const formatted = url.format({
+ host: parsed.host,
+ pathname: parsed.pathname,
+ slashes: parsed.slashes
+ })
+ return url.resolve(formatted, '.')
+}
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js
new file mode 100644
index 0000000000..407a80e4ce
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/check-response.js
@@ -0,0 +1,99 @@
+'use strict'
+
+const config = require('./config.js')
+const errors = require('./errors.js')
+const LRU = require('lru-cache')
+
+module.exports = checkResponse
+function checkResponse (method, res, registry, startTime, opts) {
+ opts = config(opts)
+ if (res.headers.has('npm-notice') && !res.headers.has('x-local-cache')) {
+ opts.get('log').notice('', res.headers.get('npm-notice'))
+ }
+ checkWarnings(res, registry, opts)
+ if (res.status >= 400) {
+ logRequest(method, res, startTime, opts)
+ return checkErrors(method, res, startTime, opts)
+ } else {
+ res.body.on('end', () => logRequest(method, res, startTime, opts))
+ return res
+ }
+}
+
+function logRequest (method, res, startTime, opts) {
+ const elapsedTime = Date.now() - startTime
+ const attempt = res.headers.get('x-fetch-attempts')
+ const attemptStr = attempt && attempt > 1 ? ` attempt #${attempt}` : ''
+ const cacheStr = res.headers.get('x-local-cache') ? ' (from cache)' : ''
+ opts.get('log').http(
+ 'fetch',
+ `${method.toUpperCase()} ${res.status} ${res.url} ${elapsedTime}ms${attemptStr}${cacheStr}`
+ )
+}
+
+const WARNING_REGEXP = /^\s*(\d{3})\s+(\S+)\s+"(.*)"\s+"([^"]+)"/
+const BAD_HOSTS = new LRU({ max: 50 })
+
+function checkWarnings (res, registry, opts) {
+ if (res.headers.has('warning') && !BAD_HOSTS.has(registry)) {
+ const warnings = {}
+ res.headers.raw()['warning'].forEach(w => {
+ const match = w.match(WARNING_REGEXP)
+ if (match) {
+ warnings[match[1]] = {
+ code: match[1],
+ host: match[2],
+ message: match[3],
+ date: new Date(match[4])
+ }
+ }
+ })
+ BAD_HOSTS.set(registry, true)
+ if (warnings['199']) {
+ if (warnings['199'].message.match(/ENOTFOUND/)) {
+ opts.get('log').warn('registry', `Using stale data from ${registry} because the host is inaccessible -- are you offline?`)
+ } else {
+ opts.get('log').warn('registry', `Unexpected warning for ${registry}: ${warnings['199'].message}`)
+ }
+ }
+ if (warnings['111']) {
+ // 111 Revalidation failed -- we're using stale data
+ opts.get('log').warn(
+ 'registry',
+ `Using stale data from ${registry} due to a request error during revalidation.`
+ )
+ }
+ }
+}
+
+function checkErrors (method, res, startTime, opts) {
+ return res.buffer()
+ .catch(() => null)
+ .then(body => {
+ try {
+ body = JSON.parse(body.toString('utf8'))
+ } catch (e) {}
+ if (res.status === 401 && res.headers.get('www-authenticate')) {
+ const auth = res.headers.get('www-authenticate')
+ .split(/,\s*/)
+ .map(s => s.toLowerCase())
+ if (auth.indexOf('ipaddress') !== -1) {
+ throw new errors.HttpErrorAuthIPAddress(
+ method, res, body, opts.spec
+ )
+ } else if (auth.indexOf('otp') !== -1) {
+ throw new errors.HttpErrorAuthOTP(
+ method, res, body, opts.spec
+ )
+ } else {
+ throw new errors.HttpErrorAuthUnknown(
+ method, res, body, opts.spec
+ )
+ }
+ } else {
+ throw new errors.HttpErrorGeneral(
+ method, res, body, opts.spec
+ )
+ }
+ })
+}
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js
new file mode 100644
index 0000000000..db08c1e470
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/config.js
@@ -0,0 +1,90 @@
+'use strict'
+
+const pkg = require('./package.json')
+const figgyPudding = require('figgy-pudding')
+const silentLog = require('./silentlog.js')
+
+const AUTH_REGEX = /^(?:.*:)?(token|_authToken|username|_password|password|email|always-auth|_auth|otp)$/
+const SCOPE_REGISTRY_REGEX = /@.*:registry$/gi
+module.exports = figgyPudding({
+ 'agent': {},
+ 'algorithms': {},
+ 'body': {},
+ 'ca': {},
+ 'cache': {},
+ 'cert': {},
+ 'fetch-retries': {},
+ 'fetch-retry-factor': {},
+ 'fetch-retry-maxtimeout': {},
+ 'fetch-retry-mintimeout': {},
+ 'gid': {},
+ 'headers': {},
+ 'https-proxy': {},
+ 'integrity': {},
+ 'is-from-ci': 'isFromCI',
+ 'isFromCI': {
+ default () {
+ return (
+ process.env['CI'] === 'true' ||
+ process.env['TDDIUM'] ||
+ process.env['JENKINS_URL'] ||
+ process.env['bamboo.buildKey'] ||
+ process.env['GO_PIPELINE_NAME']
+ )
+ }
+ },
+ 'key': {},
+ 'local-address': {},
+ 'log': {
+ default: silentLog
+ },
+ 'max-sockets': 'maxsockets',
+ 'maxsockets': {
+ default: 12
+ },
+ 'memoize': {},
+ 'method': {
+ default: 'GET'
+ },
+ 'no-proxy': {},
+ 'noproxy': {},
+ 'npm-session': 'npmSession',
+ 'npmSession': {},
+ 'offline': {},
+ 'otp': {},
+ 'prefer-offline': {},
+ 'prefer-online': {},
+ 'projectScope': {},
+ 'project-scope': 'projectScope',
+ 'Promise': {},
+ 'proxy': {},
+ 'query': {},
+ 'refer': {},
+ 'referer': 'refer',
+ 'registry': {
+ default: 'https://registry.npmjs.org/'
+ },
+ 'retry': {},
+ 'scope': {},
+ 'spec': {},
+ 'strict-ssl': {},
+ 'timeout': {},
+ 'uid': {},
+ 'user-agent': {
+ default: `${
+ pkg.name
+ }@${
+ pkg.version
+ }/node@${
+ process.version
+ }+${
+ process.arch
+ } (${
+ process.platform
+ })`
+ }
+}, {
+ other (key) {
+ return key.match(AUTH_REGEX) || key.match(SCOPE_REGISTRY_REGEX)
+ }
+})
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js
new file mode 100644
index 0000000000..217f46f977
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/errors.js
@@ -0,0 +1,58 @@
+'use strict'
+
+class HttpErrorBase extends Error {
+ constructor (method, res, body, spec) {
+ super()
+ this.headers = res.headers.raw()
+ this.statusCode = res.status
+ this.code = `E${res.status}`
+ this.method = method
+ this.uri = res.url
+ this.body = body
+ }
+}
+module.exports.HttpErrorBase = HttpErrorBase
+
+class HttpErrorGeneral extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = `${res.status} ${res.statusText} - ${
+ this.method.toUpperCase()
+ } ${
+ this.spec || this.uri
+ }${
+ (body && body.error) ? ' - ' + body.error : ''
+ }`
+ Error.captureStackTrace(this, HttpErrorGeneral)
+ }
+}
+module.exports.HttpErrorGeneral = HttpErrorGeneral
+
+class HttpErrorAuthOTP extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'OTP required for authentication'
+ this.code = 'EOTP'
+ Error.captureStackTrace(this, HttpErrorAuthOTP)
+ }
+}
+module.exports.HttpErrorAuthOTP = HttpErrorAuthOTP
+
+class HttpErrorAuthIPAddress extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'Login is not allowed from your IP address'
+ this.code = 'EAUTHIP'
+ Error.captureStackTrace(this, HttpErrorAuthIPAddress)
+ }
+}
+module.exports.HttpErrorAuthIPAddress = HttpErrorAuthIPAddress
+
+class HttpErrorAuthUnknown extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'Unable to authenticate, need: ' + res.headers.get('www-authenticate')
+ Error.captureStackTrace(this, HttpErrorAuthUnknown)
+ }
+}
+module.exports.HttpErrorAuthUnknown = HttpErrorAuthUnknown
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js
new file mode 100644
index 0000000000..bb6ddeaee0
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/index.js
@@ -0,0 +1,160 @@
+'use strict'
+
+const Buffer = require('safe-buffer').Buffer
+
+const checkResponse = require('./check-response.js')
+const config = require('./config.js')
+const getAuth = require('./auth.js')
+const fetch = require('make-fetch-happen')
+const npa = require('npm-package-arg')
+const qs = require('querystring')
+const url = require('url')
+
+module.exports = regFetch
+function regFetch (uri, opts) {
+ opts = config(opts)
+ const registry = (
+ (opts.get('spec') && pickRegistry(opts.get('spec'), opts)) ||
+ opts.get('registry') ||
+ 'https://registry.npmjs.org/'
+ )
+ uri = url.parse(uri).protocol
+ ? uri
+ : `${
+ registry.trim().replace(/\/?$/g, '')
+ }/${
+ uri.trim().replace(/^\//, '')
+ }`
+ // through that takes into account the scope, the prefix of `uri`, etc
+ const startTime = Date.now()
+ const headers = getHeaders(registry, uri, opts)
+ let body = opts.get('body')
+ const bodyIsStream = body &&
+ typeof body === 'object' &&
+ typeof body.pipe === 'function'
+ if (body && !bodyIsStream && typeof body !== 'string' && !Buffer.isBuffer(body)) {
+ headers['content-type'] = headers['content-type'] || 'application/json'
+ body = JSON.stringify(body)
+ } else if (body && !headers['content-type']) {
+ headers['content-type'] = 'application/octet-stream'
+ }
+ if (opts.get('query')) {
+ let q = opts.get('query')
+ if (typeof q === 'string') {
+ q = qs.parse(q)
+ }
+ const parsed = url.parse(uri)
+ parsed.search = '?' + qs.stringify(
+ parsed.query
+ ? Object.assign(qs.parse(parsed.query), q)
+ : q
+ )
+ uri = url.format(parsed)
+ }
+ return fetch(uri, {
+ agent: opts.get('agent'),
+ algorithms: opts.get('algorithms'),
+ body,
+ cache: getCacheMode(opts),
+ cacheManager: opts.get('cache'),
+ ca: opts.get('ca'),
+ cert: opts.get('cert'),
+ headers,
+ integrity: opts.get('integrity'),
+ key: opts.get('key'),
+ localAddress: opts.get('local-address'),
+ maxSockets: opts.get('maxsockets'),
+ memoize: opts.get('memoize'),
+ method: opts.get('method') || 'GET',
+ noProxy: opts.get('no-proxy') || opts.get('noproxy'),
+ Promise: opts.get('Promise'),
+ proxy: opts.get('https-proxy') || opts.get('proxy'),
+ referer: opts.get('refer'),
+ retry: opts.get('retry') || {
+ retries: opts.get('fetch-retries'),
+ factor: opts.get('fetch-retry-factor'),
+ minTimeout: opts.get('fetch-retry-mintimeout'),
+ maxTimeout: opts.get('fetch-retry-maxtimeout')
+ },
+ strictSSL: !!opts.get('strict-ssl'),
+ timeout: opts.get('timeout'),
+ uid: opts.get('uid'),
+ gid: opts.get('gid')
+ }).then(res => checkResponse(
+ opts.get('method') || 'GET', res, registry, startTime, opts
+ ))
+}
+
+module.exports.json = fetchJSON
+function fetchJSON (uri, opts) {
+ return regFetch(uri, opts).then(res => res.json())
+}
+
+module.exports.pickRegistry = pickRegistry
+function pickRegistry (spec, opts) {
+ spec = npa(spec)
+ opts = config(opts)
+ let registry = spec.scope &&
+ opts.get(spec.scope.replace(/^@?/, '@') + ':registry')
+
+ if (!registry && opts.get('scope')) {
+ registry = opts.get(
+ opts.get('scope').replace(/^@?/, '@') + ':registry'
+ )
+ }
+
+ if (!registry) {
+ registry = opts.get('registry') || 'https://registry.npmjs.org/'
+ }
+
+ return registry
+}
+
+function getCacheMode (opts) {
+ return opts.get('offline')
+ ? 'only-if-cached'
+ : opts.get('prefer-offline')
+ ? 'force-cache'
+ : opts.get('prefer-online')
+ ? 'no-cache'
+ : 'default'
+}
+
+function getHeaders (registry, uri, opts) {
+ const headers = Object.assign({
+ 'npm-in-ci': !!(
+ opts.get('is-from-ci') ||
+ process.env['CI'] === 'true' ||
+ process.env['TDDIUM'] ||
+ process.env['JENKINS_URL'] ||
+ process.env['bamboo.buildKey'] ||
+ process.env['GO_PIPELINE_NAME']
+ ),
+ 'npm-scope': opts.get('project-scope'),
+ 'npm-session': opts.get('npm-session'),
+ 'user-agent': opts.get('user-agent'),
+ 'referer': opts.get('refer')
+ }, opts.get('headers'))
+
+ const auth = getAuth(registry, opts)
+ // If a tarball is hosted on a different place than the manifest, only send
+ // credentials on `alwaysAuth`
+ const shouldAuth = (
+ auth.alwaysAuth ||
+ url.parse(uri).host === url.parse(registry).host
+ )
+ if (shouldAuth && auth.token) {
+ headers.authorization = `Bearer ${auth.token}`
+ } else if (shouldAuth && auth.username && auth.password) {
+ const encoded = Buffer.from(
+ `${auth.username}:${auth.password}`, 'utf8'
+ ).toString('base64')
+ headers.authorization = `Basic ${encoded}`
+ } else if (shouldAuth && auth._auth) {
+ headers.authorization = `Basic ${auth._auth}`
+ }
+ if (shouldAuth && auth.otp) {
+ headers['npm-otp'] = auth.otp
+ }
+ return headers
+}
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json
new file mode 100644
index 0000000000..f17636c6cf
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/package.json
@@ -0,0 +1,90 @@
+{
+ "_from": "npm-registry-fetch@^3.0.0",
+ "_id": "npm-registry-fetch@3.1.1",
+ "_inBundle": false,
+ "_integrity": "sha512-xBobENeenvjIG8PgQ1dy77AXTI25IbYhmA3DusMIfw/4EL5BaQ5e1V9trkPrqHvyjR3/T0cnH6o0Wt/IzcI5Ag==",
+ "_location": "/libnpmhook/npm-registry-fetch",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "npm-registry-fetch@^3.0.0",
+ "name": "npm-registry-fetch",
+ "escapedName": "npm-registry-fetch",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/libnpmhook"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.1.1.tgz",
+ "_shasum": "e96bae698afdd45d4a01aca29e881fc0bc55206c",
+ "_spec": "npm-registry-fetch@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/libnpmhook",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/registry-fetch/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "bluebird": "^3.5.1",
+ "figgy-pudding": "^3.1.0",
+ "lru-cache": "^4.1.2",
+ "make-fetch-happen": "^4.0.0",
+ "npm-package-arg": "^6.0.0"
+ },
+ "deprecated": false,
+ "description": "Fetch-based http client for use with npm registry APIs",
+ "devDependencies": {
+ "cacache": "^11.0.0",
+ "mkdirp": "^0.5.1",
+ "nock": "^9.2.3",
+ "npmlog": "^4.1.2",
+ "rimraf": "^2.6.2",
+ "ssri": "^6.0.0",
+ "standard": "^11.0.1",
+ "standard-version": "^4.2.0",
+ "tap": "^11.1.3",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/npm/registry-fetch#readme",
+ "keywords": [
+ "npm",
+ "registry",
+ "fetch"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-registry-fetch",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/registry-fetch.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "3.1.1"
+}
diff --git a/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js
new file mode 100644
index 0000000000..886c5d55b2
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/node_modules/npm-registry-fetch/silentlog.js
@@ -0,0 +1,14 @@
+'use strict'
+
+const noop = Function.prototype
+module.exports = {
+ error: noop,
+ warn: noop,
+ notice: noop,
+ info: noop,
+ verbose: noop,
+ silly: noop,
+ http: noop,
+ pause: noop,
+ resume: noop
+}
diff --git a/deps/npm/node_modules/libnpmhook/package.json b/deps/npm/node_modules/libnpmhook/package.json
new file mode 100644
index 0000000000..2f06e7a6b5
--- /dev/null
+++ b/deps/npm/node_modules/libnpmhook/package.json
@@ -0,0 +1,84 @@
+{
+ "_args": [
+ [
+ "libnpmhook@4.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "libnpmhook@4.0.1",
+ "_id": "libnpmhook@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-3qqpfqvBD1712WA6iGe0stkG40WwAeoWcujA6BlC0Be1JArQbqwabnEnZ0CRcD05Tf1fPYJYdCbSfcfedEJCOg==",
+ "_location": "/libnpmhook",
+ "_phantomChildren": {
+ "bluebird": "3.5.1",
+ "figgy-pudding": "3.1.0",
+ "lru-cache": "4.1.3",
+ "make-fetch-happen": "4.0.1",
+ "npm-package-arg": "6.1.0"
+ },
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "libnpmhook@4.0.1",
+ "name": "libnpmhook",
+ "escapedName": "libnpmhook",
+ "rawSpec": "4.0.1",
+ "saveSpec": null,
+ "fetchSpec": "4.0.1"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/libnpmhook/-/libnpmhook-4.0.1.tgz",
+ "_spec": "4.0.1",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/libnpmhook/issues"
+ },
+ "dependencies": {
+ "figgy-pudding": "^3.1.0",
+ "npm-registry-fetch": "^3.0.0"
+ },
+ "description": "programmatic API for managing npm registry hooks",
+ "devDependencies": {
+ "nock": "^9.2.3",
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.3",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/npm/libnpmhook#readme",
+ "keywords": [
+ "npm",
+ "hooks",
+ "registry",
+ "npm api"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "libnpmhook",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/libnpmhook.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/libnpx/CHANGELOG.md b/deps/npm/node_modules/libnpx/CHANGELOG.md
index 802f840689..5fa91fac96 100644
--- a/deps/npm/node_modules/libnpx/CHANGELOG.md
+++ b/deps/npm/node_modules/libnpx/CHANGELOG.md
@@ -2,6 +2,69 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="10.2.0"></a>
+# [10.2.0](https://github.com/zkat/npx/compare/v10.1.1...v10.2.0) (2018-04-13)
+
+
+### Bug Fixes
+
+* **i18n:** fix korean; ģ‰˜ -> ģ…ø ([#163](https://github.com/zkat/npx/issues/163)) ([11d9fe0](https://github.com/zkat/npx/commit/11d9fe0))
+* **spawn:** spawn child processes with node without relying on the shebang. ([#174](https://github.com/zkat/npx/issues/174)) ([cba97bb](https://github.com/zkat/npx/commit/cba97bb))
+* **windows:** Allow spaces in the node path when using --node-arg ([#173](https://github.com/zkat/npx/issues/173)) ([fe0d48a](https://github.com/zkat/npx/commit/fe0d48a)), closes [#170](https://github.com/zkat/npx/issues/170)
+
+
+### Features
+
+* **i18n:** add translation ([#159](https://github.com/zkat/npx/issues/159)) ([5da008b](https://github.com/zkat/npx/commit/5da008b))
+
+
+
+<a name="10.1.1"></a>
+## [10.1.1](https://github.com/zkat/npx/compare/v10.1.0...v10.1.1) (2018-04-12)
+
+
+
+<a name="10.1.0"></a>
+# [10.1.0](https://github.com/zkat/npx/compare/v10.0.1...v10.1.0) (2018-04-12)
+
+
+### Features
+
+* **spawn:** add --always-spawn to opt out of process takeover optimization feature ([#172](https://github.com/zkat/npx/issues/172)) ([c0d6abc](https://github.com/zkat/npx/commit/c0d6abc))
+
+
+
+<a name="10.0.1"></a>
+## [10.0.1](https://github.com/zkat/npx/compare/v10.0.0...v10.0.1) (2018-03-08)
+
+
+### Bug Fixes
+
+* **i18n:** Improve French localization ([#158](https://github.com/zkat/npx/issues/158)) ([c88823e](https://github.com/zkat/npx/commit/c88823e))
+* **windows:** on Windows, throw useful error when package contains no binaries([#142](https://github.com/zkat/npx/issues/142)) ([a69276e](https://github.com/zkat/npx/commit/a69276e)), closes [#137](https://github.com/zkat/npx/issues/137)
+
+
+
+<a name="10.0.0"></a>
+# [10.0.0](https://github.com/zkat/npx/compare/v9.7.1...v10.0.0) (2018-03-08)
+
+
+### Bug Fixes
+
+* **i18n:** Fix Korean locale ([#130](https://github.com/zkat/npx/issues/130)) ([752db48](https://github.com/zkat/npx/commit/752db48))
+* **index:** remove extraneous logging on Windows ([#136](https://github.com/zkat/npx/issues/136)) ([357e6ab](https://github.com/zkat/npx/commit/357e6ab)), closes [#131](https://github.com/zkat/npx/issues/131)
+* **license:** change npx license to ISC ([a617d7b](https://github.com/zkat/npx/commit/a617d7b))
+* **parse-args:** fix version thing for yargs ([30677ed](https://github.com/zkat/npx/commit/30677ed))
+* **prefix:** Handle node_modules without package.json ([#128](https://github.com/zkat/npx/issues/128)) ([f64ae43](https://github.com/zkat/npx/commit/f64ae43)), closes [/github.com/babel/babel/issues/4066#issuecomment-336705199](https://github.com//github.com/babel/babel/issues/4066/issues/issuecomment-336705199)
+* **standard:** get things in line with standard 11 ([6cf8e88](https://github.com/zkat/npx/commit/6cf8e88))
+
+
+### BREAKING CHANGES
+
+* **license:** This moves the code over from CC0-1.0 to the ISC license.
+
+
+
<a name="9.7.1"></a>
## [9.7.1](https://github.com/zkat/npx/compare/v9.7.0...v9.7.1) (2017-10-19)
diff --git a/deps/npm/node_modules/libnpx/LICENSE.md b/deps/npm/node_modules/libnpx/LICENSE.md
index c05cb09586..8d28acf866 100644
--- a/deps/npm/node_modules/libnpx/LICENSE.md
+++ b/deps/npm/node_modules/libnpx/LICENSE.md
@@ -1,3 +1,16 @@
-To the extent possible under law, maintainers for this project have waived all copyright and related or neighboring rights to this project.
+ISC License
-For more information on this waiver, see: https://creativecommons.org/publicdomain/zero/1.0/
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/libnpx/README.md b/deps/npm/node_modules/libnpx/README.md
index 436bdd0240..130f1bc3fd 100644
--- a/deps/npm/node_modules/libnpx/README.md
+++ b/deps/npm/node_modules/libnpx/README.md
@@ -98,6 +98,12 @@ $ npx --node-arg=--inspect cowsay
Debugger listening on ws://127.0.0.1:9229/....
```
+### Specify a node version to run npm scripts (or anything else!)
+
+```
+npx -p node@8 npm run build
+```
+
## SHELL AUTO FALLBACK
You can configure `npx` to run as your default fallback command when you type something in the command line with an `@` but the command is not found. This includes installing packages that were not found in the local prefix either.
diff --git a/deps/npm/node_modules/libnpx/child.js b/deps/npm/node_modules/libnpx/child.js
index 1b7c4c6215..cabc715d5b 100644
--- a/deps/npm/node_modules/libnpx/child.js
+++ b/deps/npm/node_modules/libnpx/child.js
@@ -74,13 +74,13 @@ function exec (cmd, args, opts) {
module.exports.escapeArg = escapeArg
function escapeArg (str, asPath) {
return process.platform === 'win32' && asPath
- ? path.normalize(str)
- .split(/\\/)
- .map(s => s.match(/\s+/) ? `"${s}"` : s)
- .join('\\')
- : process.platform === 'win32'
- ? `"${str}"`
- : str.match(/[^-_.~/\w]/)
- ? `'${str.replace(/'/g, "'\"'\"'")}'`
- : str
+ ? path.normalize(str)
+ .split(/\\/)
+ .map(s => s.match(/\s+/) ? `"${s}"` : s)
+ .join('\\')
+ : process.platform === 'win32'
+ ? `"${str}"`
+ : str.match(/[^-_.~/\w]/)
+ ? `'${str.replace(/'/g, "'\"'\"'")}'`
+ : str
}
diff --git a/deps/npm/node_modules/libnpx/get-prefix.js b/deps/npm/node_modules/libnpx/get-prefix.js
index 71bedffc58..3fef7f7eb9 100644
--- a/deps/npm/node_modules/libnpx/get-prefix.js
+++ b/deps/npm/node_modules/libnpx/get-prefix.js
@@ -6,21 +6,22 @@ const path = require('path')
const statAsync = promisify(require('fs').stat)
module.exports = getPrefix
-function getPrefix (current, root) {
- if (!root) {
- const original = root = path.resolve(current)
- while (path.basename(root) === 'node_modules') {
- root = path.dirname(root)
- }
- if (original !== root) {
- return Promise.resolve(root)
- } else {
- return getPrefix(root, root)
- }
+function getPrefix (root) {
+ const original = root = path.resolve(root)
+ while (path.basename(root) === 'node_modules') {
+ root = path.dirname(root)
}
- if (isRootPath(current, process.platform)) {
+ if (original !== root) {
return Promise.resolve(root)
} else {
+ return Promise.resolve(getPrefixFromTree(root))
+ }
+}
+
+function getPrefixFromTree (current) {
+ if (isRootPath(current, process.platform)) {
+ return false
+ } else {
return Promise.all([
fileExists(path.join(current, 'package.json')),
fileExists(path.join(current, 'node_modules'))
@@ -30,8 +31,7 @@ function getPrefix (current, root) {
if (hasPkg || hasModules) {
return current
} else {
- const parent = path.dirname(current)
- return getPrefix(parent, root)
+ return getPrefixFromTree(path.dirname(current))
}
})
}
@@ -49,6 +49,6 @@ function fileExists (f) {
module.exports._isRootPath = isRootPath
function isRootPath (p, platform) {
return platform === 'win32'
- ? p.match(/^[a-z]+:[/\\]?$/i)
- : p === '/'
+ ? p.match(/^[a-z]+:[/\\]?$/i)
+ : p === '/'
}
diff --git a/deps/npm/node_modules/libnpx/index.js b/deps/npm/node_modules/libnpx/index.js
index 3033e9cd06..21f44b3710 100644
--- a/deps/npm/node_modules/libnpx/index.js
+++ b/deps/npm/node_modules/libnpx/index.js
@@ -86,6 +86,9 @@ function npx (argv) {
if (process.platform === 'win32') {
bins = bins.filter(b => b !== 'etc' && b !== 'node_modules')
}
+ if (bins.length < 1) {
+ throw new Error(Y()`command not found: ${argv.command}`)
+ }
const cmd = new RegExp(`^${argv.command}(?:\\.cmd)?$`, 'i')
const matching = bins.find(b => b.match(cmd))
return path.resolve(results.bin, bins[matching] || bins[0])
@@ -116,11 +119,7 @@ function npx (argv) {
module.exports._localBinPath = localBinPath
function localBinPath (cwd) {
return require('./get-prefix.js')(cwd).then(prefix => {
- const pkgjson = path.join(prefix, 'package.json')
- return promisify(fs.stat)(pkgjson).then(
- () => path.join(prefix, 'node_modules', '.bin'),
- err => { if (err.code !== 'ENOENT') throw err }
- )
+ return prefix && path.join(prefix, 'node_modules', '.bin')
})
}
@@ -146,8 +145,8 @@ function ensurePackages (specs, opts) {
).then(cache => {
const prefix = path.join(cache, '_npx', process.pid.toString())
const bins = process.platform === 'win32'
- ? prefix
- : path.join(prefix, 'bin')
+ ? prefix
+ : path.join(prefix, 'bin')
const rimraf = require('rimraf')
process.on('exit', () => rimraf.sync(prefix))
return promisify(rimraf)(bins).then(() => {
@@ -224,8 +223,8 @@ function installPackages (specs, prefix, opts) {
if (npmPath) {
args.unshift(
process.platform === 'win32'
- ? child.escapeArg(opts.npm)
- : opts.npm
+ ? child.escapeArg(opts.npm)
+ : opts.npm
)
return process.argv[0]
} else {
@@ -254,7 +253,8 @@ function installPackages (specs, prefix, opts) {
module.exports._execCommand = execCommand
function execCommand (_existing, argv) {
return findNodeScript(_existing, argv).then(existing => {
- if (existing && !argv.nodeArg && !argv.shell && existing !== process.argv[1]) {
+ const argvCmdOpts = argv.cmdOpts || []
+ if (existing && !argv.alwaysSpawn && !argv.nodeArg && !argv.shell && existing !== process.argv[1]) {
const Module = require('module')
// let it take over the process. This means we can skip node startup!
if (!argv.noYargs) {
@@ -264,31 +264,35 @@ function execCommand (_existing, argv) {
process.argv = [
process.argv[0], // Current node binary
existing // node script path. `runMain()` will set this as the new main
- ].concat(argv.cmdOpts) // options for the cmd itself
+ ].concat(argvCmdOpts) // options for the cmd itself
Module.runMain() // āœØMAGICāœØ. Sorry-not-sorry
} else if (!existing && argv.nodeArg && argv.nodeArg.length) {
throw new Error(Y()`ERROR: --node-arg/-n can only be used on packages with node scripts.`)
} else {
let cmd = existing
- let opts = argv
- if (existing && argv.nodeArg && argv.nodeArg.length) {
+ let cmdOpts = argvCmdOpts
+ if (existing) {
+ cmd = process.argv[0]
+ if (process.platform === 'win32') {
+ cmd = child.escapeArg(cmd, true)
+ }
// If we know we're running a run script and we got a --node-arg,
// we need to fudge things a bit to get them working right.
- let nargs = argv.nodeArg
- if (typeof nargs === 'string') {
- nargs = [nargs]
+ cmdOpts = argv.nodeArg
+ if (cmdOpts) {
+ cmdOpts = Array.isArray(cmdOpts) ? cmdOpts : [cmdOpts]
+ } else {
+ cmdOpts = []
}
// It's valid for a single arg to be a string of multiple
// space-separated node args.
// Example: `$ npx -n '--inspect --harmony --debug' ...`
- nargs = nargs.reduce((acc, arg) => {
+ cmdOpts = cmdOpts.reduce((acc, arg) => {
return acc.concat(arg.split(/\s+/))
}, [])
- cmd = process.argv[0]
- opts = Object.assign({}, argv, {
- cmdOpts: nargs.concat([existing], argv.cmdOpts || [])
- })
+ cmdOpts = cmdOpts.concat(existing, argvCmdOpts)
}
+ const opts = Object.assign({}, argv, { cmdOpts })
return child.runCommand(cmd, opts).catch(err => {
if (err.isOperational && err.exitCode) {
// At this point, we want to treat errors from the child as if
@@ -355,7 +359,7 @@ function findNodeScript (existing, opts) {
return str.match(cmd) || str.match(mingw)
}).then(match => {
return match && path.join(path.dirname(existing), match[1])
- }).then(x => console.log(x) || x)
+ })
}
})
}
diff --git a/deps/npm/node_modules/libnpx/libnpx.1 b/deps/npm/node_modules/libnpx/libnpx.1
index e8049194bc..8fb05f222d 100644
--- a/deps/npm/node_modules/libnpx/libnpx.1
+++ b/deps/npm/node_modules/libnpx/libnpx.1
@@ -1,4 +1,4 @@
-.TH "NPX" "1" "October 2017" "libnpx@9.7.0" "User Commands"
+.TH "NPX" "1" "April 2018" "libnpx@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/node_modules/libnpx/locales/ar.json b/deps/npm/node_modules/libnpx/locales/ar.json
deleted file mode 100644
index 8ca0fcc66e..0000000000
--- a/deps/npm/node_modules/libnpx/locales/ar.json
+++ /dev/null
@@ -1,29 +0,0 @@
-{
- "Execute binaries from npm packages.\n%s": ".npm Ų§Ł„Ų«Ł†Ų§Ų¦ŁŠŲ© Ł…Ł† Ų­Ų²Ł… node ŲŖŁ†ŁŁŠŲ° Ł…Ł„ŁŲ§ŲŖ \n %s ",
- "Package to be installed.": ".Ų§Ł„Ų­Ų²Ł…Ų© Ų§Ł„ŲŖŁŠ Ų³ŁŠŲŖŁ… ŲŖŲ«ŲØŁŠŲŖŁ‡Ų§",
- "Location of the npm cache.": ".npm Ł…ŁˆŁ‚Ų¹ Ų§Ł„Ų°Ų§ŁƒŲ±Ų© Ų§Ł„Ł…Ų®ŲØŲ£Ų© Ł„",
- "Skip installation if a package is missing.": "ŲŖŲ®Ų·ŁŠ Ų§Ł„ŲŖŲ«ŲØŁŠŲŖ ŁŁŠ Ų­Ų§Ł„ ŁˆŲ¬ŁˆŲÆ Ų­Ų²Ł…Ų© Ł…ŁŁ‚ŁˆŲÆŲ©.",
- "Path to user npmrc.": "Ł…Ų³Ų§Ų± Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… Ų„Ł„Ł‰ npmrc.",
- "Execute string as if inside `npm run-script`.": ".`npm run-script` Ł†Ųµ Ų§Ł„Ų§Ł…Ų± Ų§Ł„ŲŖŁ†ŁŁŠŲ°ŁŠ ŁƒŁ…Ų§ ŁŁŠ",
- "Shell to execute the command with, if any.": "ŁˆŲ§Ų¬Ł‡Ų© ŲŖŁ†ŁŁŠŲ° Ų§Ł„Ų£ŁˆŲ§Ł…Ų± Ų§Ł„Ł…Ų±ŲŗŁˆŲØ Ų§Ų³ŲŖŲ®ŲÆŲ§Ł…Ł‡Ų§ ŁŁŠ Ų­Ų§Ł„ ŁˆŲ¬ŁˆŲÆŁ‡Ų§.",
- "Generate shell code to use npx as the \"command not found\" fallback.": ".npx Ų§Ł„Ų§Ł…Ų±Ų§Ł„Ł…ŲŖŁˆŁ„ŲÆ Ł„Ų§Ų³ŲŖŲÆŲ¹Ų§Ų” ŁƒŲ­Ł„ ŲØŲÆŁŠŁ„ ŁŁŠ Ų­Ų§Ł„Ų© \"Ł„Ł… ŁŠŲŖŁ… Ų§Ł„Ų¹Ų«ŁˆŲ± Ų¹Ł„Ł‰ Ų§Ł„Ų§Ł…Ų±\" Ł…Ł† Ł‚ŲØŁ„ ",
- "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": " .npx Ų³ŁŠŲŖŁ… Ł‚Ų³Ų±ŁŠŲ§Ł‹ Ų§Ł„ŲŖŲ«ŲØŁŠŲŖ ŲØŲ“ŁƒŁ„ Ł…Ų¤Ł‚ŲŖ Ł„Ł„Ų§ŲµŲÆŲ§Ų± Ų§Ł„Ų§Ų­ŲÆŲ« Ł…Ł† Ł‚ŲØŁ„ .$PATH ŲŖŲ¬Ų§Ł‡Ł„ Ų§Ł„Ł…Ł„ŁŲ§ŲŖ Ų§Ł„ŲŖŁ†ŁŁŠŲ°ŁŠŲ© Ų§Ł„Ų«Ł†Ų§Ų¦ŁŠŲ© Ų§Ł„Ų­Ų§Ł„ŁŠŲ© ŁŁŠ Ų§Ł„Ł…Ų³Ų§Ų± ",
- "npm binary to use for internal operations.": ".Ų§Ł„ŲŖŁ†ŁŁŠŲ°ŁŠ Ų§Ł„Ų«Ł†Ų§Ų¦ŁŠ Ų§Ł„Ų°ŁŠ Ų³ŁŠŲŖŁ… Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„Ł‡ Ł„Ł„Ų¹Ł…Ł„ŁŠŲ§ŲŖ Ų§Ł„ŲÆŲ§Ų®Ł„ŁŠŲ© npm Ł…Ł„Ł",
- "For the full documentation, see the manual page for npx(1).": ".npx(1) Ł„Ł„ŁˆŲµŁˆŁ„ Ł„Ł„Ł…Ų³ŲŖŁ†ŲÆŲ§ŲŖ Ų§Ł„Ł…Ų³Ų§Ų¹ŲÆŲ© Ų§Ł„ŁƒŲ§Ł…Ł„Ų©, Ų§ŲØŲ­Ų« ŁŁŠ ŲµŁŲ­Ų© Ų§Ł„ŲÆŁ„ŁŠŁ„ Ų¹Ł†",
- "Unable to guess a binary name from %s. Please use --package.": ". --package Ų§Ł„Ų±Ų¬Ų§Ų” Ų§Ų³ŲŖŲ¹Ł…Ų§Ł„ .%s Ł„Ł… ŁŠŲŖŁ…ŁƒŁ† ŲŖŲ®Ł…ŁŠŁ† Ų§Ų³Ł… Ų§Ł„ŲŖŲ·ŲØŁŠŁ‚ Ų§Ł„Ų«Ł†Ų§Ų¦ŁŠ Ł…Ł† ",
- "\nERROR: You must supply a command.\n": "\n.Ų®Ų·Ų£ : ŁŠŲŖŁˆŲ¬ŲØ Ų¹Ł„Ł‰ Ų§Ł„Ł…Ų³ŲŖŲ®ŲÆŁ… Ų§ŲÆŲ®Ų§Ł„ Ų§Ł…Ų±\n",
- "Command failed: %s %s": "%s %s :ŁŲ“Ł„ Ų§Ł„Ų§Ł…Ų± ",
- "Install for %s failed with code %s": "%s ŲØŲ§Ł„ŁƒŁˆŲÆ %s ŲŖŁ… ŁŲ“Ł„ ŲŖŲ«ŲØŁŠŲŖ",
- "%s not found. Trying with npx...": "...npx Ų³ŁŠŲŖŁ… Ų§Ų¹Ų§ŲÆŲ© Ų§Ł„Ł…Ų­Ų§ŁˆŁ„Ų© ŲØŲ§Ų³ŲŖŲ¹Ł…Ų§Ł„ .%s Ł„Ł… ŁŠŲŖŁ… Ų§Ł„Ų¹Ų«ŁˆŲ± Ų¹Ł„Ł‰",
- "command not found: %s": "%s :Ł„Ł… ŁŠŲŖŁ… Ų§Ł„Ų¹Ų«ŁˆŲ± Ų¹Ł„Ł‰ Ų§Ł„Ų£Ł…Ų±",
- "options": "Ų®ŁŠŲ§Ų±Ų§ŲŖ",
- "command": "Ų£Ł…Ų±",
- "version": "Ų§Ł„Ų„ŲµŲÆŲ§Ų±",
- "command-arg": "ŲØŲ§Ų±Ų§Ł…ŲŖŲ± Ų§Ł„Ų£Ł…Ų±",
- "command-string": "Ł†Ųµ Ų§Ł„Ų£Ł…Ų±",
- "shell": "ŁˆŲ§Ų¬Ł‡Ų© ŲŖŁ†ŁŁŠŲ° Ų§Ł„Ų£ŁˆŲ§Ł…Ų±",
- "package": "Ų§Ł„Ų­Ų²Ł…Ų©",
- "npx: installed %s in %ss": "%ss ŁŁŠ %s ŲŖŁ… ŲŖŲ«ŲØŁŠŲŖ ",
- "Suppress output from npx itself. Subcommands will not be affected.": "Ų§Ł„Ų§ŁˆŲ§Ł…Ų± Ų§Ł„ŁŲ±Ų¹ŁŠŲ© Ł„Ł† ŲŖŲŖŲ§Ų«Ų± ŲØŲ§Ł„ŲŖŲ¹ŲÆŁŠŁ„.npx Ų„Ų®ŁŲ§Ų”Ų§Ł„Ų®Ų±Ų¬ Ł…Ł†",
- "Extra node argument when calling a node binary.": ".node Ų§Ł„ŲØŲ§Ų±Ų§Ł…ŲŖŲ± Ų§Ł„Ų§Ų¶Ų§ŁŁŠ Ų¹Ł†ŲÆ Ų§Ų³ŲŖŲÆŲ¹Ų§Ų”"
-}
diff --git a/deps/npm/node_modules/libnpx/locales/en.json b/deps/npm/node_modules/libnpx/locales/en.json
index 358e343421..d3463ae315 100644
--- a/deps/npm/node_modules/libnpx/locales/en.json
+++ b/deps/npm/node_modules/libnpx/locales/en.json
@@ -25,5 +25,6 @@
"package": "package",
"npx: installed %s in %ss": "npx: installed %s in %ss",
"Suppress output from npx itself. Subcommands will not be affected.": "Suppress output from npx itself. Subcommands will not be affected.",
- "Extra node argument when calling a node binary.": "Extra node argument when calling a node binary."
+ "Extra node argument when calling a node binary.": "Extra node argument when calling a node binary.",
+ "Always spawn a child process to execute the command.": "Always spawn a child process to execute the command."
} \ No newline at end of file
diff --git a/deps/npm/node_modules/libnpx/locales/fr.json b/deps/npm/node_modules/libnpx/locales/fr.json
index a6ddf60e6f..949ba9bb8e 100644
--- a/deps/npm/node_modules/libnpx/locales/fr.json
+++ b/deps/npm/node_modules/libnpx/locales/fr.json
@@ -1,28 +1,28 @@
{
- "Execute binaries from npm packages.\n%s": "ExƩcutez des binaires Ơ partir de paquets de npm.\n%s",
+ "Execute binaries from npm packages.\n%s": "ExƩcutez des binaires Ơ partir de paquets npm.\n%s",
"Package to be installed.": "Paquet Ć  installer.",
- "Location of the npm cache.": "Endroit oĆ¹ est situĆ© le cache de npm.",
- "Skip installation if a package is missing.": "Sauter l'installation si un paquet est manquant.",
- "Path to user npmrc.": "Chemin du npmrc de l'utilisateur(-trice).",
+ "Location of the npm cache.": "Chemin oĆ¹ est situĆ© le cache de npm.",
+ "Skip installation if a package is missing.": "Passer l'installation si un paquet est manquant.",
+ "Path to user npmrc.": "Chemin du fichier npmrc de l'utilisateur(-trice).",
"Execute string as if inside `npm run-script`.": "ExĆ©cuter la chaine de caractĆØre comme avec `npm run-script`.",
- "Shell to execute the command with, if any.": "Shell a utiliser pour exƩcuter la commande, s'il y en a un.",
- "Generate shell code to use npx as the \"command not found\" fallback.": "GƩnƩrer le code du shell pour utiliser npx comme solution de rechange Ơ \"command not found\"",
- "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorer les binaires dans le $PATH ou dans le projet local. Cela force npm Ć  faire une installation temporaire et utiliser la derniĆØre version.",
+ "Shell to execute the command with, if any.": "Shell Ơ utiliser pour exƩcuter la commande, s'il y en a un.",
+ "Generate shell code to use npx as the \"command not found\" fallback.": "GƩnƩrer le code du shell pour utiliser npx comme solution de rechange Ơ \"command not found\".",
+ "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignorer les binaires dans le $PATH ou dans le projet local. Cela force npm Ć  rĆ©aliser une installation temporaire et Ć  utiliser la derniĆØre version.",
"npm binary to use for internal operations.": "Binaire de npm Ơ utiliser pour les opƩrations internes.",
- "For the full documentation, see the manual page for npx(1).": "Pour la documentation complĆØte, regarder la page du manuel pour npx(1).",
+ "For the full documentation, see the manual page for npx(1).": "Pour la documentation complĆØte, consultez la page du manuel pour npx(1).",
"Unable to guess a binary name from %s. Please use --package.": "Impossible de deviner le nom du binaire de %s, utilisez --package s'il vous plaƮt.",
- "\nERROR: You must supply a command.\n": "\nERROR: Vous devez fournir une commande.\n",
- "Command failed: %s %s": "La commande a ƩchouƩ: %s %s",
+ "\nERROR: You must supply a command.\n": "\nERREUR : Vous devez fournir une commande.\n",
+ "Command failed: %s %s": "La commande a ƩchouƩ : %s %s",
"Install for %s failed with code %s": "L'installation de %s a ƩchouƩ avec le code %s",
"%s not found. Trying with npx...": "%s n'a pas ƩtƩ trouvƩ. Essai avec npx...",
- "command not found: %s": "Commande non trouvƩe: %s",
+ "command not found: %s": "Commande non trouvƩe : %s",
"options": "options",
"command": "commande",
"version": "version",
"command-arg": "arguments-de-la-commande",
- "command-string": "chaine-de-caractĆØres-de-la-commande",
+ "command-string": "chaĆ®ne-de-caractĆØres-de-la-commande",
"shell": "shell",
"package": "paquet",
- "npx: installed %s in %ss": "npx: %s installƩ(s) en %ss",
- "Suppress output from npx itself. Subcommands will not be affected.": "Supprimer les sorties gƩnƩrƩes par npx. Les sous-commandes ne seront pas affectƩes."
+ "npx: installed %s in %ss": "npx : %s installƩ(s) en %ss",
+ "Suppress output from npx itself. Subcommands will not be affected.": "Supprimer la sortie gƩnƩrƩe par npx. Les sous-commandes ne seront pas affectƩes."
}
diff --git a/deps/npm/node_modules/libnpx/locales/ko.json b/deps/npm/node_modules/libnpx/locales/ko.json
index 790537a29a..0e9917df99 100644
--- a/deps/npm/node_modules/libnpx/locales/ko.json
+++ b/deps/npm/node_modules/libnpx/locales/ko.json
@@ -1,29 +1,29 @@
{
"Execute binaries from npm packages.\n%s": "npm ķŒØķ‚¤ģ§€ģ—ģ„œ ė°”ģ“ė„ˆė¦¬ė„¼ ģ‹¤ķ–‰ķ•©ė‹ˆė‹¤.\n%s",
- "Package to be installed.": "ķŒØķ‚¤ģ§€ź°€ ģ„¤ģ¹˜ė˜ģ—ˆģŠµė‹ˆė‹¤.",
+ "Package to be installed.": "ģ„¤ģ¹˜ķ•  ķŒØķ‚¤ģ§€.",
"Location of the npm cache.": "npm ģŗģ‹œģ˜ ģœ„ģ¹˜.",
"Skip installation if a package is missing.": "ķŒØķ‚¤ģ§€ź°€ ģ—†ģœ¼ė©“ ģ„¤ģ¹˜ė„¼ ź±“ė„ˆėœė‹ˆė‹¤.",
"Path to user npmrc.": "ģ‚¬ģš©ģž npmrcģ˜ ź²½ė”œ.",
"Execute string as if inside `npm run-script`.": "ė¬øģžģ—“ģ“ `npm run-script`ģ•ˆģ— ģžˆėŠ” ź²ƒģ²˜ėŸ¼ ģ‹¤ķ–‰ķ•©ė‹ˆė‹¤.",
- "Shell to execute the command with, if any.": "ėŖ…ė ¹ģ„ ģ‹¤ķ–‰ķ•  ģ‰˜(ģ”“ģž¬ķ•˜ėŠ” ź²½ģš°).",
- "Generate shell code to use npx as the \"command not found\" fallback.": "\"ėŖ…ė ¹ģ„ ģ°¾ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤\"ģ˜ ėŒ€ģ•ˆģœ¼ė”œ npxź°€ ģ‚¬ģš©ķ•˜ė„ė” ģ‰˜ ģ½”ė“œė„¼ ģƒģ„±ķ•©ė‹ˆė‹¤.",
+ "Shell to execute the command with, if any.": "ėŖ…ė ¹ģ„ ģ‹¤ķ–‰ķ•  ģ…ø (ģ”“ģž¬ķ•˜ėŠ” ź²½ģš°).",
+ "Generate shell code to use npx as the \"command not found\" fallback.": "\"ėŖ…ė ¹ģ„ ģ°¾ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤\" ėŒ€ģ‹  npxź°€ ģ‚¬ģš©ė˜ė„ė” ģ…ø ģ½”ė“œė„¼ ģƒģ„±ķ•©ė‹ˆė‹¤.",
"Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "$PATHė‚˜ ė”œģ»¬ ķ”„ė”œģ ķŠøģ— ģžˆėŠ” ė°”ģ“ė„ˆė¦¬ė„¼ ė¬“ģ‹œķ•©ė‹ˆė‹¤. ģ“ėŠ” npxź°€ ģµœģ‹  ė²„ģ „ģ„ ģž„ģ‹œė”œ ģ„¤ģ¹˜ķ•“ģ„œ ģ‚¬ģš©ķ•˜ė„ė” ź°•ģ œķ•©ė‹ˆė‹¤.",
"npm binary to use for internal operations.": "ė‚“ė¶€ ģž‘ģ—…ģ— ģ‚¬ģš©ķ•  npm ė°”ģ“ė„ˆė¦¬.",
"For the full documentation, see the manual page for npx(1).": "ģ „ģ²“ ė¬øģ„œėŠ” npx(1) ė§¤ė‰“ģ–¼ ķŽ˜ģ“ģ§€ė„¼ ė³“ģ„øģš”.",
- "Unable to guess a binary name from %s. Please use --package.": "%s ģ—ģ„œ ė°”ģ“ė„ˆė¦¬ ģ“ė¦„ģ„ ģ¶”ģø”ķ•  ģˆ˜ ģ—†ģŠµė‹ˆė‹¤. --package ė„¼ ģ‚¬ģš©ķ•“ ģ£¼ģ„øģš”.",
+ "Unable to guess a binary name from %s. Please use --package.": "%sģ—ģ„œ ė°”ģ“ė„ˆė¦¬ ģ“ė¦„ģ„ ģ¶”ģø”ķ•  ģˆ˜ ģ—†ģŠµė‹ˆė‹¤. --packageė„¼ ģ‚¬ģš©ķ•“ ģ£¼ģ„øģš”.",
"\nERROR: You must supply a command.\n": "\nERROR: ėŖ…ė ¹ģ„ ģ œź³µķ•“ģ•¼ ķ•©ė‹ˆė‹¤.\n",
"Command failed: %s %s": "ėŖ…ė ¹ģ“ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤: %s %s",
- "Install for %s failed with code %s": "%s ģ„¤ģ¹˜ź°€ %s ģ½”ė“œė”œ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤",
- "%s not found. Trying with npx...": "%s ģ„ ģ°¾ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤. npxė”œ ģ‹œė„ķ•“ ė³“ģ„øģš”...",
+ "Install for %s failed with code %s": "%s ģ„¤ģ¹˜ź°€ ģ˜¤ė„˜ ģ½”ė“œ %sė”œ ģ‹¤ķŒØķ–ˆģŠµė‹ˆė‹¤",
+ "%s not found. Trying with npx...": "%s ģ„ ģ°¾ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤. npxė”œ ģ‹œė„ķ•©ė‹ˆė‹¤...",
"command not found: %s": "ėŖ…ė ¹ģ„ ģ°¾ģ„ ģˆ˜ ģ—†ģŠµė‹ˆė‹¤: %s",
"options": "ģ˜µģ…˜",
"command": "ėŖ…ė ¹",
"version": "ė²„ģ „",
"command-arg": "ėŖ…ė ¹-ģøģž",
"command-string": "ėŖ…ė ¹-ė¬øģžģ—“",
- "shell": "ģ‰˜",
+ "shell": "ģ…ø",
"package": "ķŒØķ‚¤ģ§€",
- "npx: installed %s in %ss": "%ss ģ— %s ė„¼ ģ„¤ģ¹˜ķ–ˆģŠµė‹ˆė‹¤",
+ "npx: installed %s in %ss": "npx: %sź°œģ˜ ķŒØķ‚¤ģ§€ė„¼ %sģ“ˆė§Œģ— ģ„¤ģ¹˜ķ–ˆģŠµė‹ˆė‹¤.",
"Suppress output from npx itself. Subcommands will not be affected.": "npxģ˜ ģ¶œė „ģ„ ź°ģ¶„ė‹ˆė‹¤. ķ•˜ģœ„ ėŖ…ė ¹ģ€ ģ˜ķ–„ģ„ ė°›ģ§€ ģ•ŠģŠµė‹ˆė‹¤.",
- "Extra node argument when calling a node binary.": "node ė°”ģ“ė„ˆė¦¬ė„¼ ķ˜øģ¶œķ•  ė•Œ ģ‚¬ģš©ķ•˜ėŠ” ģ¶”ź°€ node ģøģž"
+ "Extra node argument when calling a node binary.": "node ė°”ģ“ė„ˆė¦¬ė„¼ ķ˜øģ¶œķ•  ė•Œ ģ‚¬ģš©ķ•˜ėŠ” ģ¶”ź°€ node ģøģž."
}
diff --git a/deps/npm/node_modules/libnpx/locales/pt_BR.json b/deps/npm/node_modules/libnpx/locales/pt_BR.json
index d61f8f58f8..b44f4e0260 100644
--- a/deps/npm/node_modules/libnpx/locales/pt_BR.json
+++ b/deps/npm/node_modules/libnpx/locales/pt_BR.json
@@ -1,28 +1,28 @@
{
- "Execute binaries from npm packages.\n%s": "Execute binƔrios de pacotes npm.\n%s",
- "Package to be installed.": "Pacote a ser instalado.",
- "Location of the npm cache.": "LocalizaĆ§Ć£o da cache do npm.",
- "Skip installation if a package is missing.": "Pule a instalaĆ§Ć£o se estiver faltando um pacote.",
- "Path to user npmrc.": "Caminho para o npmrc do usuƔrio.",
- "Execute string as if inside `npm run-script`.": "Execute a string como se estivesse dentro de `npm run-script`.",
- "Shell to execute the command with, if any.": "Terminal para executar o comando, se houver.",
- "Generate shell code to use npx as the \"command not found\" fallback.": "Gere cĆ³digo de terminal para usar o npx quando o comando nĆ£o existir (\"command not found\").",
- "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignora binĆ”rios existentes no $PATH ou no projeto atual. Isso obriga o npx a fazer uma instalaĆ§Ć£o temporĆ”ria e usar a Ćŗltima versĆ£o.",
- "npm binary to use for internal operations.": "BinƔrio npm usado para operaƧƵes internas.",
- "For the full documentation, see the manual page for npx(1).": "Para a documentaĆ§Ć£o completa, veja a pĆ”gina do manual do npx(1).",
- "Unable to guess a binary name from %s. Please use --package.": "NĆ£o foi possĆ­vel encontrar um binĆ”rio a partir de %s. Por favor, use --package.",
- "\nERROR: You must supply a command.\n": "\nERRO: VocĆŖ deve fornecer um comando.\n",
- "Command failed: %s %s": "Comando falhou: %s %s",
+ "Execute binaries from npm packages.\n%s": "Executa comandos de mĆ³dulos npm.\n%s",
+ "Package to be installed.": "Pacote para ser instalado.",
+ "Location of the npm cache.": "LocalizaĆ§Ć£o da cache npm.",
+ "Skip installation if a package is missing.": "Pular instalaĆ§Ć£o se um pacote estĆ” faltando.",
+ "Path to user npmrc.": "LocalizaĆ§Ć£o do npmrc do usuĆ”rio.",
+ "Execute string as if inside `npm run-script`.": "Executa string como se estivesse dentro de `npm run-script`.",
+ "Shell to execute the command with, if any.": "Terminal para executar o comando, se tiver.",
+ "Generate shell code to use npx as the \"command not found\" fallback.": "Gera cĆ³digo de terminal para usar npx no lugar quando comando nĆ£o existir (\"command not found\").",
+ "Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.": "Ignora comandos no $PATH ou no projeto atual. Isto obriga npx a fazer uma instalaĆ§Ć£o temporĆ”ria e usar a Ćŗltima versĆ£o.",
+ "npm binary to use for internal operations.": "Comando npm usado para operaƧƵes internas.",
+ "For the full documentation, see the manual page for npx(1).": "Para documentaĆ§Ć£o completa, veja a pĆ”gina do manual npx(1).",
+ "Unable to guess a binary name from %s. Please use --package.": "NĆ£o foi possĆ­vel advinhar o nome do comando usando %s. Por favor, use --package.",
+ "\nERROR: You must supply a command.\n": "\nERRO: VocĆŖ deve suprir um comando.\n",
+ "Command failed: %s %s": "Comando fracassou: %s %s",
"Install for %s failed with code %s": "InstalaĆ§Ć£o de %s falhou com cĆ³digo %s",
- "%s not found. Trying with npx...": "%s nĆ£o encontrado. Tentando com npx...",
- "command not found: %s": "comando nĆ£o encontrado: %s",
+ "%s not found. Trying with npx...": "%s nĆ£o existe. Tentando com npx...",
+ "command not found: %s": "comando nĆ£o existe: %s",
"options": "opƧƵes",
"command": "comando",
"version": "versĆ£o",
- "command-arg": "argumento-do-comando",
+ "command-arg": "argumento-de-comando",
"command-string": "string-de-comando",
"shell": "terminal",
"package": "pacote",
- "npx: installed %s in %ss": "npx: %s instalado em %ss",
- "Suppress output from npx itself. Subcommands will not be affected.": "Suprimir resultados de npx. Sub-comandos nĆ£o serĆ£o afetados."
+ "npx: installed %s in %ss": "npx: instalou %s em %ss",
+ "Suppress output from npx itself. Subcommands will not be affected.": "Omitir resultado de npx. Sub-comandos nĆ£o serĆ£o afetados."
}
diff --git a/deps/npm/node_modules/libnpx/locales/zh_CN.json b/deps/npm/node_modules/libnpx/locales/zh_CN.json
index 6cf64629f1..92b61186cb 100644
--- a/deps/npm/node_modules/libnpx/locales/zh_CN.json
+++ b/deps/npm/node_modules/libnpx/locales/zh_CN.json
@@ -24,5 +24,6 @@
"shell": "å‘½ä»¤č”Œč§£é‡Šå™Ø",
"package": "包",
"npx: installed %s in %ss": "npx: %s å®‰č£…ęˆåŠŸļ¼Œē”Øę—¶ %s ē§’",
- "Suppress output from npx itself. Subcommands will not be affected.": "隐藏 npx ēš„č¾“å‡ŗļ¼Œå­å‘½ä»¤äøä¼šå—到影响"
+ "Suppress output from npx itself. Subcommands will not be affected.": "隐藏 npx ēš„č¾“å‡ŗļ¼Œå­å‘½ä»¤äøä¼šå—到影响",
+ "Extra node argument when calling a node binary.": "调ē”Ø node äŗŒčæ›åˆ¶ę—¶ä½æē”Ø额外ēš„ node å‚ę•°ć€‚"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md b/deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md
deleted file mode 100644
index 2fcf56b902..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/CHANGELOG.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Change Log
-All notable changes to this project will be documented in this file.
-This project adheres to [Semantic Versioning](http://semver.org/).
-
-## [Unreleased]
-
-## [4.0.0] - 2016-12-23
-### Changed
-
-- Return Object with parsed content or error instead of false ([#165](https://github.com/motdotla/dotenv/pull/165)).
-
-
-### Removed
-
-- `verbose` option removed in favor of returning result.
-
-
-## [3.0.0] - 2016-12-20
-### Added
-
-- `verbose` option will log any error messages. Off by default.
-- parses email addresses correctly
-- allow importing config method directly in ES6
-
-### Changed
-
-- Suppress error messages by default ([#154](https://github.com/motdotla/dotenv/pull/154))
-- Ignoring more files for NPM to make package download smaller
-
-### Fixed
-
-- False positive test due to case-sensitive variable ([#124](https://github.com/motdotla/dotenv/pull/124))
-
-### Removed
-
-- `silent` option removed in favor of `verbose`
-
-## [2.0.0] - 2016-01-20
-### Added
-- CHANGELOG to ["make it easier for users and contributors to see precisely what notable changes have been made between each release"](http://keepachangelog.com/). Linked to from README
-- LICENSE to be more explicit about what was defined in `package.json`. Linked to from README
-- Testing nodejs v4 on travis-ci
-- added examples of how to use dotenv in different ways
-- return parsed object on success rather than boolean true
-
-### Changed
-- README has shorter description not referencing ruby gem since we don't have or want feature parity
-
-### Removed
-- Variable expansion and escaping so environment variables are encouraged to be fully orthogonal
-
-## [1.2.0] - 2015-06-20
-### Added
-- Preload hook to require dotenv without including it in your code
-
-### Changed
-- clarified license to be "BSD-2-Clause" in `package.json`
-
-### Fixed
-- retain spaces in string vars
-
-## [1.1.0] - 2015-03-31
-### Added
-- Silent option to silence `console.log` when `.env` missing
-
-## [1.0.0] - 2015-03-13
-### Removed
-- support for multiple `.env` files. should always use one `.env` file for the current environment
-
-[Unreleased]: https://github.com/motdotla/dotenv/compare/v4.0.0...HEAD
-[4.0.0]: https://github.com/motdotla/dotenv/compare/v3.0.0...v4.0.0
-[3.0.0]: https://github.com/motdotla/dotenv/compare/v2.0.0...v3.0.0
-[2.0.0]: https://github.com/motdotla/dotenv/compare/v1.2.0...v2.0.0
-[1.2.0]: https://github.com/motdotla/dotenv/compare/v1.1.0...v1.2.0
-[1.1.0]: https://github.com/motdotla/dotenv/compare/v1.0.0...v1.1.0
-[1.0.0]: https://github.com/motdotla/dotenv/compare/v0.4.0...v1.0.0
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/README.md b/deps/npm/node_modules/libnpx/node_modules/dotenv/README.md
deleted file mode 100644
index 90836a34b7..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/README.md
+++ /dev/null
@@ -1,208 +0,0 @@
-# dotenv
-
-<img src="https://raw.githubusercontent.com/motdotla/dotenv/master/dotenv.png" alt="dotenv" align="right" />
-
-Dotenv is a zero-dependency module that loads environment variables from a `.env` file into [`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env). Storing configuration in the environment separate from code is based on [The Twelve-Factor App](http://12factor.net/config) methodology.
-
-[![BuildStatus](https://img.shields.io/travis/motdotla/dotenv/master.svg?style=flat-square)](https://travis-ci.org/motdotla/dotenv)
-[![NPM version](https://img.shields.io/npm/v/dotenv.svg?style=flat-square)](https://www.npmjs.com/package/dotenv)
-[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/feross/standard)
-[![Coverage Status](https://img.shields.io/coveralls/motdotla/dotenv/master.svg?style=flat-square)](https://coveralls.io/github/motdotla/dotenv?branch=coverall-intergration)
-
-## Install
-
-```bash
-npm install dotenv --save
-```
-
-## Usage
-
-As early as possible in your application, require and configure dotenv.
-
-```javascript
-require('dotenv').config()
-```
-
-Create a `.env` file in the root directory of your project. Add
-environment-specific variables on new lines in the form of `NAME=VALUE`.
-For example:
-
-```
-DB_HOST=localhost
-DB_USER=root
-DB_PASS=s1mpl3
-```
-
-That's it.
-
-`process.env` now has the keys and values you defined in your `.env` file.
-
-```javascript
-var db = require('db')
-db.connect({
- host: process.env.DB_HOST,
- username: process.env.DB_USER,
- password: process.env.DB_PASS
-})
-```
-
-### Preload
-
-If you are using iojs-v1.6.0 or later, you can use the `--require` (`-r`) command line option to preload dotenv. By doing this, you do not need to require and load dotenv in your application code.
-
-
-```bash
-$ node -r dotenv/config your_script.js
-```
-
-The configuration options below are supported as command line arguments in the format `dotenv_config_<option>=value`
-
-```bash
-$ node -r dotenv/config your_script.js dotenv_config_path=/custom/path/to/your/env/vars
-```
-
-## Config
-
-_Alias: `load`_
-
-`config` will read your .env file, parse the contents, assign it to
-[`process.env`](https://nodejs.org/docs/latest/api/process.html#process_process_env),
-and return an Object with a _parsed_ key containing the loaded content or an _error_ key if it failed.
-You can additionally, pass options to `config`.
-
-### Options
-
-#### Path
-
-Default: `.env`
-
-You can specify a custom path if your file containing environment variables is
-named or located differently.
-
-```js
-require('dotenv').config({path: '/custom/path/to/your/env/vars'})
-```
-
-#### Encoding
-
-Default: `utf8`
-
-You may specify the encoding of your file containing environment variables
-using this option.
-
-```js
-require('dotenv').config({encoding: 'base64'})
-```
-
-## Parse
-
-The engine which parses the contents of your file containing environment
-variables is available to use. It accepts a String or Buffer and will return
-an Object with the parsed keys and values.
-
-```js
-var dotenv = require('dotenv')
-var buf = new Buffer('BASIC=basic')
-var config = dotenv.parse(buf) // will return an object
-console.log(typeof config, config) // object { BASIC : 'basic' }
-```
-
-### Rules
-
-The parsing engine currently supports the following rules:
-
-- `BASIC=basic` becomes `{BASIC: 'basic'}`
-- empty lines are skipped
-- lines beginning with `#` are treated as comments
-- empty values become empty strings (`EMPTY=` becomes `{EMPTY: ''}`)
-- single and double quoted values are escaped (`SINGLE_QUOTE='quoted'` becomes `{SINGLE_QUOTE: "quoted"}`)
-- new lines are expanded if in double quotes (`MULTILINE="new\nline"` becomes
-
-```
-{MULTILINE: 'new
-line'}
-```
-- inner quotes are maintained (think JSON) (`JSON={"foo": "bar"}` becomes `{JSON:"{\"foo\": \"bar\"}"`)
-
-## FAQ
-
-### Should I commit my `.env` file?
-
-No. We **strongly** recommend against committing your `.env` file to version
-control. It should only include environment-specific values such as database
-passwords or API keys. Your production database should have a different
-password than your development database.
-
-### Should I have multiple `.env` files?
-
-No. We **strongly** recommend against having a "main" `.env` file and an "environment" `.env` file like `.env.test`. Your config should vary between deploys, and you should not be sharing values between environments.
-
-> In a twelve-factor app, env vars are granular controls, each fully orthogonal to other env vars. They are never grouped together as ā€œenvironmentsā€, but instead are independently managed for each deploy. This is a model that scales up smoothly as the app naturally expands into more deploys over its lifetime.
->
-> ā€“ [The Twelve-Factor App](http://12factor.net/config)
-
-### What happens to environment variables that were already set?
-
-We will never modify any environment variables that have already been set. In particular, if there is a variable in your `.env` file which collides with one that already exists in your environment, then that variable will be skipped. This behavior allows you to override all `.env` configurations with a machine-specific environment, although it is not recommended.
-
-If you want to override `process.env` you can do something like this:
-
-```javascript
-const fs = require('fs')
-const dotenv = require('dotenv')
-const envConfig = dotenv.parse(fs.readFileSync('.env.override'))
-for (var k in envConfig) {
- process.env[k] = envConfig[k]
-}
-```
-
-### Can I customize/write plugins for dotenv?
-
-For `dotenv@2.x.x`: Yes. `dotenv.config()` now returns an object representing
-the parsed `.env` file. This gives you everything you need to continue
-setting values on `process.env`. For example:
-
-```js
-var dotenv = require('dotenv')
-var variableExpansion = require('dotenv-expand')
-const myEnv = dotenv.config()
-variableExpansion(myEnv)
-```
-
-### What about variable expansion?
-
-For `dotenv@2.x.x`: Use [dotenv-expand](https://github.com/motdotla/dotenv-expand).
-
-For `dotenv@1.x.x`: We haven't been presented with a compelling use case for expanding variables and believe it leads to env vars that are not "fully orthogonal" as [The Twelve-Factor App](http://12factor.net/config) outlines.<sup>[[1](https://github.com/motdotla/dotenv/issues/39)][[2](https://github.com/motdotla/dotenv/pull/97)]</sup> Please open an issue if you have a compelling use case.
-
-## Contributing Guide
-
-See [CONTRIBUTING.md](CONTRIBUTING.md)
-
-## Change Log
-
-See [CHANGELOG.md](CHANGELOG.md)
-
-## License
-
-See [LICENSE](LICENSE)
-
-## Who's using dotenv
-
-Here's just a few of many repositories using dotenv:
-
-* [jaws](https://github.com/jaws-framework/jaws-core-js)
-* [node-lambda](https://github.com/motdotla/node-lambda)
-* [resume-cli](https://www.npmjs.com/package/resume-cli)
-* [phant](https://www.npmjs.com/package/phant)
-* [adafruit-io-node](https://github.com/adafruit/adafruit-io-node)
-* [mockbin](https://www.npmjs.com/package/mockbin)
-* [and many more...](https://www.npmjs.com/browse/depended/dotenv)
-
-## Go well with dotenv
-
-Here's some projects that expand on dotenv. Check them out.
-
-* [require-environment-variables](https://github.com/bjoshuanoah/require-environment-variables)
-* [dotenv-safe](https://github.com/rolodato/dotenv-safe)
-* [envalid](https://github.com/af/envalid)
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js b/deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js
deleted file mode 100644
index eb96e7fd56..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/lib/main.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict'
-
-var fs = require('fs')
-
-/*
- * Parses a string or buffer into an object
- * @param {String|Buffer} src - source to be parsed
- * @returns {Object}
-*/
-function parse (src) {
- var obj = {}
-
- // convert Buffers before splitting into lines and processing
- src.toString().split('\n').forEach(function (line) {
- // matching "KEY' and 'VAL' in 'KEY=VAL'
- var keyValueArr = line.match(/^\s*([\w\.\-]+)\s*=\s*(.*)?\s*$/)
- // matched?
- if (keyValueArr != null) {
- var key = keyValueArr[1]
-
- // default undefined or missing values to empty string
- var value = keyValueArr[2] ? keyValueArr[2] : ''
-
- // expand newlines in quoted values
- var len = value ? value.length : 0
- if (len > 0 && value.charAt(0) === '"' && value.charAt(len - 1) === '"') {
- value = value.replace(/\\n/gm, '\n')
- }
-
- // remove any surrounding quotes and extra spaces
- value = value.replace(/(^['"]|['"]$)/g, '').trim()
-
- obj[key] = value
- }
- })
-
- return obj
-}
-
-/*
- * Main entry point into dotenv. Allows configuration before loading .env
- * @param {Object} options - valid options: path ('.env'), encoding ('utf8')
- * @returns {Boolean}
-*/
-function config (options) {
- var path = '.env'
- var encoding = 'utf8'
-
- if (options) {
- if (options.path) {
- path = options.path
- }
- if (options.encoding) {
- encoding = options.encoding
- }
- }
-
- try {
- // specifying an encoding returns a string instead of a buffer
- var parsedObj = parse(fs.readFileSync(path, { encoding: encoding }))
-
- Object.keys(parsedObj).forEach(function (key) {
- process.env[key] = process.env[key] || parsedObj[key]
- })
-
- return { parsed: parsedObj }
- } catch (e) {
- return { error: e }
- }
-}
-
-module.exports.config = config
-module.exports.load = config
-module.exports.parse = parse
diff --git a/deps/npm/node_modules/libnpx/node_modules/dotenv/package.json b/deps/npm/node_modules/libnpx/node_modules/dotenv/package.json
deleted file mode 100644
index 19c25a8886..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/dotenv/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_args": [
- [
- "dotenv@4.0.0",
- "/Users/zkat/Documents/code/npx"
- ]
- ],
- "_from": "dotenv@4.0.0",
- "_id": "dotenv@4.0.0",
- "_inBundle": true,
- "_integrity": "sha1-hk7xN5rO1Vzm+V3r7NzhefegzR0=",
- "_location": "/libnpx/dotenv",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "dotenv@4.0.0",
- "name": "dotenv",
- "escapedName": "dotenv",
- "rawSpec": "4.0.0",
- "saveSpec": null,
- "fetchSpec": "4.0.0"
- },
- "_requiredBy": [
- "/libnpx"
- ],
- "_resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz",
- "_spec": "4.0.0",
- "_where": "/Users/zkat/Documents/code/npx",
- "author": {
- "name": "scottmotte"
- },
- "bugs": {
- "url": "https://github.com/motdotla/dotenv/issues"
- },
- "dependencies": {},
- "description": "Loads environment variables from .env file",
- "devDependencies": {
- "babel": "5.8.23",
- "coveralls": "^2.11.9",
- "lab": "11.1.0",
- "semver": "5.3.0",
- "should": "11.1.1",
- "sinon": "1.17.6",
- "standard": "8.4.0",
- "standard-markdown": "2.2.0"
- },
- "engines": {
- "node": ">=4.6.0"
- },
- "homepage": "https://github.com/motdotla/dotenv#readme",
- "keywords": [
- "dotenv",
- "env",
- ".env",
- "environment",
- "variables",
- "config",
- "settings"
- ],
- "license": "BSD-2-Clause",
- "main": "lib/main.js",
- "name": "dotenv",
- "repository": {
- "type": "git",
- "url": "git://github.com/motdotla/dotenv.git"
- },
- "scripts": {
- "lint": "standard",
- "lint-md": "standard-markdown",
- "postlint": "npm run lint-md",
- "pretest": "npm run lint",
- "test": "lab test/* -r lcov | coveralls"
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE b/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE
deleted file mode 100644
index 05eeeb88c2..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-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/libnpx/node_modules/npm-package-arg/README.md b/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/README.md
deleted file mode 100644
index d45032dc74..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# npm-package-arg
-
-Parses package name and specifier passed to commands like `npm install` or
-`npm cache add`, or as found in `package.json` dependency sections.
-
-## EXAMPLES
-
-```javascript
-var assert = require("assert")
-var npa = require("npm-package-arg")
-
-// Pass in the descriptor, and it'll return an object
-try {
- var parsed = npa("@bar/foo@1.2")
-} catch (ex) {
- ā€¦
-}
-```
-
-## USING
-
-`var npa = require('npm-package-arg')`
-
-### var result = npa(*arg*[, *where*])
-
-* *arg* - a string that you might pass to `npm install`, like:
-`foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`,
-`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz`,
-`../foo/bar/` or `bar`. If the *arg* you provide doesn't have a specifier
-part, eg `foo` then the specifier will default to `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-### var result = npa.resolve(*name*, *spec*[, *where*])
-
-* *name* - The name of the module you want to install. For example: `foo` or `@bar/foo`.
-* *spec* - The specifier indicating where and how you can get this module. Something like:
-`1.2`, `^1.7.17`, `http://x.com/foo.tgz`, `git+https://github.com/user/foo`,
-`bitbucket:user/foo`, `file:foo.tar.gz` or `file:../foo/bar/`. If not
-included then the default is `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-## RESULT OBJECT
-
-The objects that are returned by npm-package-arg contain the following
-keys:
-
-* `type` - One of the following strings:
- * `git` - A git repo
- * `tag` - A tagged version, like `"foo@latest"`
- * `version` - A specific version number, like `"foo@1.2.3"`
- * `range` - A version range, like `"foo@2.x"`
- * `file` - A local `.tar.gz`, `.tar` or `.tgz` file.
- * `directory` - A local directory.
- * `remote` - An http url (presumably to a tgz)
-* `registry` - If true this specifier refers to a resource hosted on a
- registry. This is true for `tag`, `version` and `range` types.
-* `name` - If known, the `name` field expected in the resulting pkg.
-* `scope` - If a name is something like `@org/module` then the `scope`
- field will be set to `@org`. If it doesn't have a scoped name, then
- scope is `null`.
-* `escapedName` - A version of `name` escaped to match the npm scoped packages
- specification. Mostly used when making requests against a registry. When
- `name` is `null`, `escapedName` will also be `null`.
-* `rawSpec` - The specifier part that was parsed out in calls to `npa(arg)`,
- or the value of `spec` in calls to `npa.resolve(name, spec).
-* `saveSpec` - The normalized specifier, for saving to package.json files.
- `null` for registry dependencies.
-* `fetchSpec` - The version of the specifier to be used to fetch this
- resource. `null` for shortcuts to hosted git dependencies as there isn't
- just one URL to try with them.
-* `gitRange` - If set, this is a semver specifier to match against git tags with
-* `gitCommittish` - If set, this is the specific committish to use with a git dependency.
-* `hosted` - If `from === 'hosted'` then this will be a `hosted-git-info`
- object. This property is not included when serializing the object as
- JSON.
-* `raw` - The original un-modified string that was provided. If called as
- `npa.resolve(name, spec)` then this will be `name + '@' + spec`.
diff --git a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js b/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js
deleted file mode 100644
index a61c057429..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/npa.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict'
-module.exports = npa
-module.exports.resolve = resolve
-module.exports.Result = Result
-
-let url
-let HostedGit
-let semver
-let path
-let validatePackageName
-let osenv
-
-const isWindows = process.platform === 'win32' || global.FAKE_WINDOWS
-const hasSlashes = isWindows ? /\\|[/]/ : /[/]/
-const isURL = /^(?:git[+])?[a-z]+:/i
-const isFilename = /[.](?:tgz|tar.gz|tar)$/i
-
-function npa (arg, where) {
- let name
- let spec
- const nameEndsAt = arg[0] === '@' ? arg.slice(1).indexOf('@') + 1 : arg.indexOf('@')
- const namePart = nameEndsAt > 0 ? arg.slice(0, nameEndsAt) : arg
- if (isURL.test(arg)) {
- spec = arg
- } else if (namePart[0] !== '@' && (hasSlashes.test(namePart) || isFilename.test(namePart))) {
- spec = arg
- } else if (nameEndsAt > 0) {
- name = namePart
- spec = arg.slice(nameEndsAt + 1)
- } else {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(arg)
- if (valid.validForOldPackages) {
- name = arg
- } else {
- spec = arg
- }
- }
- return resolve(name, spec, where, arg)
-}
-
-const isFilespec = isWindows ? /^(?:[.]|~[/]|[/\\]|[a-zA-Z]:)/ : /^(?:[.]|~[/]|[/]|[a-zA-Z]:)/
-
-function resolve (name, spec, where, arg) {
- const res = new Result({
- raw: arg,
- name: name,
- rawSpec: spec,
- fromArgument: arg != null
- })
-
- if (name) res.setName(name)
-
- if (spec && (isFilespec.test(spec) || /^file:/i.test(spec))) {
- return fromFile(res, where)
- }
- if (!HostedGit) HostedGit = require('hosted-git-info')
- const hosted = HostedGit.fromUrl(spec, {noGitPlus: true, noCommittish: true})
- if (hosted) {
- return fromHostedGit(res, hosted)
- } else if (spec && isURL.test(spec)) {
- return fromURL(res)
- } else if (spec && (hasSlashes.test(spec) || isFilename.test(spec))) {
- return fromFile(res, where)
- } else {
- return fromRegistry(res)
- }
-}
-
-function invalidPackageName (name, valid) {
- const err = new Error(`Invalid package name "${name}": ${valid.errors.join('; ')}`)
- err.code = 'EINVALIDPACKAGENAME'
- return err
-}
-function invalidTagName (name) {
- const err = new Error(`Invalid tag name "${name}": Tags may not have any characters that encodeURIComponent encodes.`)
- err.code = 'EINVALIDTAGNAME'
- return err
-}
-
-function Result (opts) {
- this.type = opts.type
- this.registry = opts.registry
- this.where = opts.where
- if (opts.raw == null) {
- this.raw = opts.name ? opts.name + '@' + opts.rawSpec : opts.rawSpec
- } else {
- this.raw = opts.raw
- }
- this.name = undefined
- this.escapedName = undefined
- this.scope = undefined
- this.rawSpec = opts.rawSpec == null ? '' : opts.rawSpec
- this.saveSpec = opts.saveSpec
- this.fetchSpec = opts.fetchSpec
- if (opts.name) this.setName(opts.name)
- this.gitRange = opts.gitRange
- this.gitCommittish = opts.gitCommittish
- this.hosted = opts.hosted
-}
-Result.prototype = {}
-
-Result.prototype.setName = function (name) {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(name)
- if (!valid.validForOldPackages) {
- throw invalidPackageName(name, valid)
- }
- this.name = name
- this.scope = name[0] === '@' ? name.slice(0, name.indexOf('/')) : undefined
- // scoped packages in couch must have slash url-encoded, e.g. @foo%2Fbar
- this.escapedName = name.replace('/', '%2f')
- return this
-}
-
-Result.prototype.toString = function () {
- const full = []
- if (this.name != null && this.name !== '') full.push(this.name)
- const spec = this.saveSpec || this.fetchSpec || this.rawSpec
- if (spec != null && spec !== '') full.push(spec)
- return full.length ? full.join('@') : this.raw
-}
-
-Result.prototype.toJSON = function () {
- const result = Object.assign({}, this)
- delete result.hosted
- return result
-}
-
-function setGitCommittish (res, committish) {
- if (committish != null && committish.length >= 7 && committish.slice(0, 7) === 'semver:') {
- res.gitRange = decodeURIComponent(committish.slice(7))
- res.gitCommittish = null
- } else if (committish == null || committish === '') {
- res.gitCommittish = 'master'
- } else {
- res.gitCommittish = committish
- }
- return res
-}
-
-const isAbsolutePath = /^[/]|^[A-Za-z]:/
-
-function resolvePath (where, spec) {
- if (isAbsolutePath.test(spec)) return spec
- if (!path) path = require('path')
- return path.resolve(where, spec)
-}
-
-function isAbsolute (dir) {
- if (dir[0] === '/') return true
- if (/^[A-Za-z]:/.test(dir)) return true
- return false
-}
-
-function fromFile (res, where) {
- if (!where) where = process.cwd()
- res.type = isFilename.test(res.rawSpec) ? 'file' : 'directory'
- res.where = where
-
- const spec = res.rawSpec.replace(/\\/g, '/')
- .replace(/^file:[/]*([A-Za-z]:)/, '$1') // drive name paths on windows
- .replace(/^file:(?:[/]*([~./]))?/, '$1')
- if (/^~[/]/.test(spec)) {
- // this is needed for windows and for file:~/foo/bar
- if (!osenv) osenv = require('osenv')
- res.fetchSpec = resolvePath(osenv.home(), spec.slice(2))
- res.saveSpec = 'file:' + spec
- } else {
- res.fetchSpec = resolvePath(where, spec)
- if (isAbsolute(spec)) {
- res.saveSpec = 'file:' + spec
- } else {
- if (!path) path = require('path')
- res.saveSpec = 'file:' + path.relative(where, res.fetchSpec)
- }
- }
- return res
-}
-
-function fromHostedGit (res, hosted) {
- res.type = 'git'
- res.hosted = hosted
- res.saveSpec = hosted.toString({noGitPlus: false, noCommittish: false})
- res.fetchSpec = hosted.getDefaultRepresentation() === 'shortcut' ? null : hosted.toString()
- return setGitCommittish(res, hosted.committish)
-}
-
-function unsupportedURLType (protocol, spec) {
- const err = new Error(`Unsupported URL Type "${protocol}": ${spec}`)
- err.code = 'EUNSUPPORTEDPROTOCOL'
- return err
-}
-
-function matchGitScp (spec) {
- // git ssh specifiers are overloaded to also use scp-style git
- // specifiers, so we have to parse those out and treat them special.
- // They are NOT true URIs, so we can't hand them to `url.parse`.
- //
- // This regex looks for things that look like:
- // git+ssh://git@my.custom.git.com:username/project.git#deadbeef
- //
- // ...and various combinations. The username in the beginning is *required*.
- const matched = spec.match(/^git\+ssh:\/\/([^:#]+:[^#]+(?:\.git)?)(?:#(.*))?$/i)
- return matched && !matched[1].match(/:[0-9]+\/?.*$/i) && {
- fetchSpec: matched[1],
- gitCommittish: matched[2] || 'master'
- }
-}
-
-function fromURL (res) {
- if (!url) url = require('url')
- const urlparse = url.parse(res.rawSpec)
- res.saveSpec = res.rawSpec
- // check the protocol, and then see if it's git or not
- switch (urlparse.protocol) {
- case 'git:':
- case 'git+http:':
- case 'git+https:':
- case 'git+rsync:':
- case 'git+ftp:':
- case 'git+file:':
- case 'git+ssh:':
- res.type = 'git'
- const match = urlparse.protocol === 'git+ssh:' && matchGitScp(res.rawSpec)
- if (match) {
- res.fetchSpec = match.fetchSpec
- res.gitCommittish = match.gitCommittish
- } else {
- setGitCommittish(res, urlparse.hash != null ? urlparse.hash.slice(1) : '')
- urlparse.protocol = urlparse.protocol.replace(/^git[+]/, '')
- delete urlparse.hash
- res.fetchSpec = url.format(urlparse)
- }
- break
- case 'http:':
- case 'https:':
- res.type = 'remote'
- res.fetchSpec = res.saveSpec
- break
-
- default:
- throw unsupportedURLType(urlparse.protocol, res.rawSpec)
- }
-
- return res
-}
-
-function fromRegistry (res) {
- res.registry = true
- const spec = res.rawSpec === '' ? 'latest' : res.rawSpec
- // no save spec for registry components as we save based on the fetched
- // version, not on the argument so this can't compute that.
- res.saveSpec = null
- res.fetchSpec = spec
- if (!semver) semver = require('semver')
- const version = semver.valid(spec, true)
- const range = semver.validRange(spec, true)
- if (version) {
- res.type = 'version'
- } else if (range) {
- res.type = 'range'
- } else {
- if (encodeURIComponent(spec) !== spec) {
- throw invalidTagName(spec)
- }
- res.type = 'tag'
- }
- return res
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json
deleted file mode 100644
index 550a575a9f..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/npm-package-arg/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "npm-package-arg@^5.1.2",
- "_id": "npm-package-arg@5.1.2",
- "_inBundle": false,
- "_integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==",
- "_location": "/libnpx/npm-package-arg",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-package-arg@^5.1.2",
- "name": "npm-package-arg",
- "escapedName": "npm-package-arg",
- "rawSpec": "^5.1.2",
- "saveSpec": null,
- "fetchSpec": "^5.1.2"
- },
- "_requiredBy": [
- "/libnpx"
- ],
- "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz",
- "_shasum": "fb18d17bb61e60900d6312619919bd753755ab37",
- "_spec": "npm-package-arg@^5.1.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/npm-package-arg/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "hosted-git-info": "^2.4.2",
- "osenv": "^0.1.4",
- "semver": "^5.1.0",
- "validate-npm-package-name": "^3.0.0"
- },
- "deprecated": false,
- "description": "Parse the things that can be arguments to `npm install`",
- "devDependencies": {
- "standard": "9.0.2",
- "tap": "^10.3.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "npa.js"
- ],
- "homepage": "https://github.com/npm/npm-package-arg",
- "license": "ISC",
- "main": "npa.js",
- "name": "npm-package-arg",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/npm-package-arg.git"
- },
- "scripts": {
- "test": "standard && tap -J --coverage test/*.js"
- },
- "version": "5.1.2"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/y18n/README.md b/deps/npm/node_modules/libnpx/node_modules/y18n/README.md
deleted file mode 100644
index 9859458f20..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/y18n/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# y18n
-
-[![Build Status][travis-image]][travis-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-[![NPM version][npm-image]][npm-url]
-[![js-standard-style][standard-image]][standard-url]
-
-The bare-bones internationalization library used by yargs.
-
-Inspired by [i18n](https://www.npmjs.com/package/i18n).
-
-## Examples
-
-_simple string translation:_
-
-```js
-var __ = require('y18n').__
-
-console.log(__('my awesome string %s', 'foo'))
-```
-
-output:
-
-`my awesome string foo`
-
-_pluralization support:_
-
-```js
-var __n = require('y18n').__n
-
-console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'))
-```
-
-output:
-
-`2 fishes foo`
-
-## JSON Language Files
-
-The JSON language files should be stored in a `./locales` folder.
-File names correspond to locales, e.g., `en.json`, `pirate.json`.
-
-When strings are observed for the first time they will be
-added to the JSON file corresponding to the current locale.
-
-## Methods
-
-### require('y18n')(config)
-
-Create an instance of y18n with the config provided, options include:
-
-* `directory`: the locale directory, default `./locales`.
-* `updateFiles`: should newly observed strings be updated in file, default `true`.
-* `locale`: what locale should be used.
-* `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`)
- be allowed if a file matching the locale does not exist (e.g. `en_US.json`),
- default `true`.
-
-### y18n.\_\_(str, arg, arg, arg)
-
-Print a localized string, `%s` will be replaced with `arg`s.
-
-### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg)
-
-Print a localized string with appropriate pluralization. If `%d` is provided
-in the string, the `count` will replace this placeholder.
-
-### y18n.setLocale(str)
-
-Set the current locale being used.
-
-### y18n.getLocale()
-
-What locale is currently being used?
-
-### y18n.updateLocale(obj)
-
-Update the current locale with the key value pairs in `obj`.
-
-## License
-
-ISC
-
-[travis-url]: https://travis-ci.org/yargs/y18n
-[travis-image]: https://img.shields.io/travis/yargs/y18n.svg
-[coveralls-url]: https://coveralls.io/github/yargs/y18n
-[coveralls-image]: https://img.shields.io/coveralls/yargs/y18n.svg
-[npm-url]: https://npmjs.org/package/y18n
-[npm-image]: https://img.shields.io/npm/v/y18n.svg
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
-[standard-url]: https://github.com/feross/standard
diff --git a/deps/npm/node_modules/libnpx/node_modules/y18n/index.js b/deps/npm/node_modules/libnpx/node_modules/y18n/index.js
deleted file mode 100644
index 91b159e342..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/y18n/index.js
+++ /dev/null
@@ -1,172 +0,0 @@
-var fs = require('fs')
-var path = require('path')
-var util = require('util')
-
-function Y18N (opts) {
- // configurable options.
- opts = opts || {}
- this.directory = opts.directory || './locales'
- this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true
- this.locale = opts.locale || 'en'
- this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true
-
- // internal stuff.
- this.cache = {}
- this.writeQueue = []
-}
-
-Y18N.prototype.__ = function () {
- var args = Array.prototype.slice.call(arguments)
- var str = args.shift()
- var cb = function () {} // start with noop.
-
- if (typeof args[args.length - 1] === 'function') cb = args.pop()
- cb = cb || function () {} // noop.
-
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- // we've observed a new string, update the language file.
- if (!this.cache[this.locale][str] && this.updateFiles) {
- this.cache[this.locale][str] = str
-
- // include the current directory and locale,
- // since these values could change before the
- // write is performed.
- this._enqueueWrite([this.directory, this.locale, cb])
- } else {
- cb()
- }
-
- return util.format.apply(util, [this.cache[this.locale][str] || str].concat(args))
-}
-
-Y18N.prototype._enqueueWrite = function (work) {
- this.writeQueue.push(work)
- if (this.writeQueue.length === 1) this._processWriteQueue()
-}
-
-Y18N.prototype._processWriteQueue = function () {
- var _this = this
- var work = this.writeQueue[0]
-
- // destructure the enqueued work.
- var directory = work[0]
- var locale = work[1]
- var cb = work[2]
-
- var languageFile = this._resolveLocaleFile(directory, locale)
- var serializedLocale = JSON.stringify(this.cache[locale], null, 2)
-
- fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
- _this.writeQueue.shift()
- if (_this.writeQueue.length > 0) _this._processWriteQueue()
- cb(err)
- })
-}
-
-Y18N.prototype._readLocaleFile = function () {
- var localeLookup = {}
- var languageFile = this._resolveLocaleFile(this.directory, this.locale)
-
- try {
- localeLookup = JSON.parse(fs.readFileSync(languageFile, 'utf-8'))
- } catch (err) {
- if (err instanceof SyntaxError) {
- err.message = 'syntax error in ' + languageFile
- }
-
- if (err.code === 'ENOENT') localeLookup = {}
- else throw err
- }
-
- this.cache[this.locale] = localeLookup
-}
-
-Y18N.prototype._resolveLocaleFile = function (directory, locale) {
- var file = path.resolve(directory, './', locale + '.json')
- if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
- // attempt fallback to language only
- var languageFile = path.resolve(directory, './', locale.split('_')[0] + '.json')
- if (this._fileExistsSync(languageFile)) file = languageFile
- }
- return file
-}
-
-// this only exists because fs.existsSync() "will be deprecated"
-// see https://nodejs.org/api/fs.html#fs_fs_existssync_path
-Y18N.prototype._fileExistsSync = function (file) {
- try {
- return fs.statSync(file).isFile()
- } catch (err) {
- return false
- }
-}
-
-Y18N.prototype.__n = function () {
- var args = Array.prototype.slice.call(arguments)
- var singular = args.shift()
- var plural = args.shift()
- var quantity = args.shift()
-
- var cb = function () {} // start with noop.
- if (typeof args[args.length - 1] === 'function') cb = args.pop()
-
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- var str = quantity === 1 ? singular : plural
- if (this.cache[this.locale][singular]) {
- str = this.cache[this.locale][singular][quantity === 1 ? 'one' : 'other']
- }
-
- // we've observed a new string, update the language file.
- if (!this.cache[this.locale][singular] && this.updateFiles) {
- this.cache[this.locale][singular] = {
- one: singular,
- other: plural
- }
-
- // include the current directory and locale,
- // since these values could change before the
- // write is performed.
- this._enqueueWrite([this.directory, this.locale, cb])
- } else {
- cb()
- }
-
- // if a %d placeholder is provided, add quantity
- // to the arguments expanded by util.format.
- var values = [str]
- if (~str.indexOf('%d')) values.push(quantity)
-
- return util.format.apply(util, values.concat(args))
-}
-
-Y18N.prototype.setLocale = function (locale) {
- this.locale = locale
-}
-
-Y18N.prototype.getLocale = function () {
- return this.locale
-}
-
-Y18N.prototype.updateLocale = function (obj) {
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- for (var key in obj) {
- this.cache[this.locale][key] = obj[key]
- }
-}
-
-module.exports = function (opts) {
- var y18n = new Y18N(opts)
-
- // bind all functions to y18n, so that
- // they can be used in isolation.
- for (var key in y18n) {
- if (typeof y18n[key] === 'function') {
- y18n[key] = y18n[key].bind(y18n)
- }
- }
-
- return y18n
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/y18n/package.json b/deps/npm/node_modules/libnpx/node_modules/y18n/package.json
deleted file mode 100644
index 78945dc782..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/y18n/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_args": [
- [
- "y18n@3.2.1",
- "/Users/zkat/Documents/code/npx"
- ]
- ],
- "_from": "y18n@3.2.1",
- "_id": "y18n@3.2.1",
- "_inBundle": true,
- "_integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "_location": "/libnpx/y18n",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "y18n@3.2.1",
- "name": "y18n",
- "escapedName": "y18n",
- "rawSpec": "3.2.1",
- "saveSpec": null,
- "fetchSpec": "3.2.1"
- },
- "_requiredBy": [
- "/libnpx",
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "_spec": "3.2.1",
- "_where": "/Users/zkat/Documents/code/npx",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/yargs/y18n/issues"
- },
- "description": "the bare-bones internationalization library used by yargs",
- "devDependencies": {
- "chai": "^3.4.1",
- "coveralls": "^2.11.6",
- "mocha": "^2.3.4",
- "nyc": "^6.1.1",
- "rimraf": "^2.5.0",
- "standard": "^5.4.1"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/yargs/y18n",
- "keywords": [
- "i18n",
- "internationalization",
- "yargs"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "y18n",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/y18n.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "test": "nyc mocha"
- },
- "version": "3.2.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md b/deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md
deleted file mode 100644
index 95f4141253..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/CHANGELOG.md
+++ /dev/null
@@ -1,961 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="8.0.2"></a>
-## [8.0.2](https://github.com/yargs/yargs/compare/v8.0.1...v8.0.2) (2017-06-12)
-
-
-
-<a name="8.0.1"></a>
-## [8.0.1](https://github.com/yargs/yargs/compare/v8.0.0...v8.0.1) (2017-05-02)
-
-
-
-<a name="8.0.0"></a>
-# [8.0.0](https://github.com/yargs/yargs/compare/v7.1.0...v8.0.0) (2017-05-01)
-
-
-### Bug Fixes
-
-* commands are now applied in order, from left to right ([#857](https://github.com/yargs/yargs/issues/857)) ([baba863](https://github.com/yargs/yargs/commit/baba863))
-* help now takes precedence over command recommendation ([#866](https://github.com/yargs/yargs/issues/866)) ([17e3567](https://github.com/yargs/yargs/commit/17e3567))
-* positional arguments now work if no handler is provided to inner command ([#864](https://github.com/yargs/yargs/issues/864)) ([e28ded3](https://github.com/yargs/yargs/commit/e28ded3))
-
-
-### Chores
-
-* upgrade yargs-parser ([#867](https://github.com/yargs/yargs/issues/867)) ([8f9c6c6](https://github.com/yargs/yargs/commit/8f9c6c6))
-
-
-### Features
-
-* allow extends to inherit from a module ([#865](https://github.com/yargs/yargs/issues/865)) ([89456d9](https://github.com/yargs/yargs/commit/89456d9))
-* allow strict mode to be disabled ([#840](https://github.com/yargs/yargs/issues/840)) ([6f78c05](https://github.com/yargs/yargs/commit/6f78c05))
-
-
-### BREAKING CHANGES
-
-* extends functionality now always loads the JSON provided, rather than reading from a specific key
-* Node 4+ is now required; this will allow us to start updating our dependencies.
-* the first argument to strict() is now used to enable/disable its functionality, rather than controlling whether or not it is global.
-
-
-
-<a name="7.1.0"></a>
-# [7.1.0](https://github.com/yargs/yargs/compare/v7.0.2...v7.1.0) (2017-04-13)
-
-
-### Bug Fixes
-
-* fix demandOption no longer treats 'false' as truthy ([#829](https://github.com/yargs/yargs/issues/829)) ([c748dd2](https://github.com/yargs/yargs/commit/c748dd2))
-* get terminalWidth in non interactive mode no longer causes a validation exception ([#837](https://github.com/yargs/yargs/issues/837)) ([360e301](https://github.com/yargs/yargs/commit/360e301))
-* we shouldn't output help if we've printed a prior help-like message ([#847](https://github.com/yargs/yargs/issues/847)) ([17e89bd](https://github.com/yargs/yargs/commit/17e89bd))
-
-
-### Features
-
-* add support for numeric commands ([#825](https://github.com/yargs/yargs/issues/825)) ([fde0564](https://github.com/yargs/yargs/commit/fde0564))
-
-
-
-<a name="7.0.2"></a>
-## [7.0.2](https://github.com/yargs/yargs/compare/v7.0.1...v7.0.2) (2017-03-10)
-
-
-### Bug Fixes
-
-* populating placeholder arguments broke validation ([b3eb2fe](https://github.com/yargs/yargs/commit/b3eb2fe))
-
-
-
-<a name="7.0.1"></a>
-## [7.0.1](https://github.com/yargs/yargs/compare/v7.0.0...v7.0.1) (2017-03-03)
-
-
-### Bug Fixes
-
-* --help with default command should print top-level help ([#810](https://github.com/yargs/yargs/issues/810)) ([9c03fa4](https://github.com/yargs/yargs/commit/9c03fa4))
-
-
-
-<a name="7.0.0"></a>
-# [7.0.0](https://github.com/yargs/yargs/compare/v6.6.0...v7.0.0) (2017-02-26)
-
-
-### Bug Fixes
-
-* address min/max validation message regression ([#750](https://github.com/yargs/yargs/issues/750)) ([2e5ce0f](https://github.com/yargs/yargs/commit/2e5ce0f))
-* address positional argument strict() bug introduced in [#766](https://github.com/yargs/yargs/issues/766) ([#784](https://github.com/yargs/yargs/issues/784)) ([a8528e6](https://github.com/yargs/yargs/commit/a8528e6))
-* console.warn() rather than throwing errors when api signatures are incorrect ([#804](https://github.com/yargs/yargs/issues/804)) ([a607061](https://github.com/yargs/yargs/commit/a607061))
-* context should override parsed argv ([#786](https://github.com/yargs/yargs/issues/786)) ([0997288](https://github.com/yargs/yargs/commit/0997288))
-* context variables are now recognized in strict() mode ([#796](https://github.com/yargs/yargs/issues/796)) ([48575cd](https://github.com/yargs/yargs/commit/48575cd))
-* errors were not bubbling appropriately from sub-commands to top-level ([#802](https://github.com/yargs/yargs/issues/802)) ([8a992f5](https://github.com/yargs/yargs/commit/8a992f5))
-* positional arguments of sub-commands threw strict() exception ([#805](https://github.com/yargs/yargs/issues/805)) ([f3f074b](https://github.com/yargs/yargs/commit/f3f074b))
-* pull in yargs-parser with modified env precedence ([#787](https://github.com/yargs/yargs/issues/787)) ([e0fbbe5](https://github.com/yargs/yargs/commit/e0fbbe5))
-* running parse() multiple times on the same yargs instance caused exception if help() enabled ([#790](https://github.com/yargs/yargs/issues/790)) ([07e39b7](https://github.com/yargs/yargs/commit/07e39b7))
-* use path.resolve() to support node 0.10 ([#797](https://github.com/yargs/yargs/issues/797)) ([49a93fc](https://github.com/yargs/yargs/commit/49a93fc))
-
-
-### Features
-
-* add conflicts and implies shorthands. ([#753](https://github.com/yargs/yargs/issues/753)) ([bd1472b](https://github.com/yargs/yargs/commit/bd1472b))
-* add traditional Chinese translation ([#780](https://github.com/yargs/yargs/issues/780)) ([6ab6a95](https://github.com/yargs/yargs/commit/6ab6a95))
-* allow provided config object to extend other configs ([#779](https://github.com/yargs/yargs/issues/779)) ([3280dd0](https://github.com/yargs/yargs/commit/3280dd0))
-* function argument validation ([#773](https://github.com/yargs/yargs/issues/773)) ([22ed9bb](https://github.com/yargs/yargs/commit/22ed9bb))
-* if only one column is provided for examples, allow it to take up the entire line ([#749](https://github.com/yargs/yargs/issues/749)) ([7931652](https://github.com/yargs/yargs/commit/7931652))
-* introduce custom yargs error object ([#765](https://github.com/yargs/yargs/issues/765)) ([8308efa](https://github.com/yargs/yargs/commit/8308efa))
-* introduces support for default commands, using the '*' identifier ([#785](https://github.com/yargs/yargs/issues/785)) ([d78a0f5](https://github.com/yargs/yargs/commit/d78a0f5))
-* rethink how options are inherited by commands ([#766](https://github.com/yargs/yargs/issues/766)) ([ab1fa4b](https://github.com/yargs/yargs/commit/ab1fa4b))
-
-
-### BREAKING CHANGES
-
-* `extends` key in config file is now used for extending other config files
-* environment variables now take precedence over config files.
-* context now takes precedence over argv and defaults
-* the arguments passed to functions are now validated, there's a good chance this will throw exceptions for a few folks who are using the API in an unexpected way.
-* by default options, and many of yargs' parsing helpers will now default to being applied globally; such that they are no-longer reset before being passed into commands.
-* yargs will no longer aggressively suppress errors, allowing errors that are not generated internally to bubble.
-
-
-
-<a name="6.6.0"></a>
-# [6.6.0](https://github.com/yargs/yargs/compare/v6.5.0...v6.6.0) (2016-12-29)
-
-
-### Bug Fixes
-
-* [object Object] was accidentally being populated on options object ([#736](https://github.com/yargs/yargs/issues/736)) ([f755e27](https://github.com/yargs/yargs/commit/f755e27))
-* do not use cwd when resolving package.json for yargs parsing config ([#726](https://github.com/yargs/yargs/issues/726)) ([9bdaab7](https://github.com/yargs/yargs/commit/9bdaab7))
-
-
-### Features
-
-* implement conflicts() for defining mutually exclusive arguments; thanks [@madcampos](https://github.com/madcampos)! ([#741](https://github.com/yargs/yargs/issues/741)) ([5883779](https://github.com/yargs/yargs/commit/5883779))
-* split demand() into demandCommand()/demandOption() ([#740](https://github.com/yargs/yargs/issues/740)) ([66573c8](https://github.com/yargs/yargs/commit/66573c8))
-* support for positional argument aliases ([#727](https://github.com/yargs/yargs/issues/727)) ([27e1a57](https://github.com/yargs/yargs/commit/27e1a57))
-
-
-
-<a name="6.5.0"></a>
-# [6.5.0](https://github.com/yargs/yargs/compare/v6.4.0...v6.5.0) (2016-12-01)
-
-
-### Bug Fixes
-
-* still freeze/unfreeze if parse() is called in isolation ([#717](https://github.com/yargs/yargs/issues/717)) ([30a9492](https://github.com/yargs/yargs/commit/30a9492))
-
-
-### Features
-
-* pull in yargs-parser introducing additional settings ([#688](https://github.com/yargs/yargs/issues/688)), and fixing [#716](https://github.com/yargs/yargs/issues/716) ([#722](https://github.com/yargs/yargs/issues/722)) ([702995a](https://github.com/yargs/yargs/commit/702995a))
-
-
-
-<a name="6.4.0"></a>
-# [6.4.0](https://github.com/yargs/yargs/compare/v6.3.0...v6.4.0) (2016-11-13)
-
-
-### Bug Fixes
-
-* **locales:** correct some Russian translations ([#691](https://github.com/yargs/yargs/issues/691)) ([a980671](https://github.com/yargs/yargs/commit/a980671))
-
-
-### Features
-
-* **locales:** Added Belarusian translation ([#690](https://github.com/yargs/yargs/issues/690)) ([68dac1f](https://github.com/yargs/yargs/commit/68dac1f))
-* **locales:** Create nl.json ([#687](https://github.com/yargs/yargs/issues/687)) ([46ce1bb](https://github.com/yargs/yargs/commit/46ce1bb))
-* update to yargs-parser that addresses [#598](https://github.com/yargs/yargs/issues/598), [#617](https://github.com/yargs/yargs/issues/617) ([#700](https://github.com/yargs/yargs/issues/700)) ([54cb31d](https://github.com/yargs/yargs/commit/54cb31d))
-* yargs is now passed as the third-argument to fail handler ([#613](https://github.com/yargs/yargs/issues/613)) ([21b74f9](https://github.com/yargs/yargs/commit/21b74f9))
-
-
-### Performance Improvements
-
-* normalizing package data is an expensive operation ([#705](https://github.com/yargs/yargs/issues/705)) ([49cf533](https://github.com/yargs/yargs/commit/49cf533))
-
-
-
-<a name="6.3.0"></a>
-# [6.3.0](https://github.com/yargs/yargs/compare/v6.2.0...v6.3.0) (2016-10-19)
-
-
-### Bug Fixes
-
-* **command:** subcommands via commandDir() now supported for parse(msg, cb) ([#678](https://github.com/yargs/yargs/issues/678)) ([6b85cc6](https://github.com/yargs/yargs/commit/6b85cc6))
-
-
-### Features
-
-* **locales:** Add Thai locale file ([#679](https://github.com/yargs/yargs/issues/679)) ([c05e36b](https://github.com/yargs/yargs/commit/c05e36b))
-
-
-
-<a name="6.2.0"></a>
-# [6.2.0](https://github.com/yargs/yargs/compare/v6.1.1...v6.2.0) (2016-10-16)
-
-
-### Bug Fixes
-
-* stop applying parser to context object ([#675](https://github.com/yargs/yargs/issues/675)) ([3fe9b8f](https://github.com/yargs/yargs/commit/3fe9b8f))
-
-
-### Features
-
-* add new pt_BR translations ([#674](https://github.com/yargs/yargs/issues/674)) ([5615a82](https://github.com/yargs/yargs/commit/5615a82))
-* Italian translations for 'did you mean' and 'aliases' ([#673](https://github.com/yargs/yargs/issues/673)) ([81984e6](https://github.com/yargs/yargs/commit/81984e6))
-
-
-
-<a name="6.1.1"></a>
-## [6.1.1](https://github.com/yargs/yargs/compare/v6.1.0...v6.1.1) (2016-10-15)
-
-
-### Bug Fixes
-
-* freeze was not resetting configObjects to initial state; addressed performance issue raised by [@nexdrew](https://github.com/nexdrew). ([#670](https://github.com/yargs/yargs/issues/670)) ([ae4bcd4](https://github.com/yargs/yargs/commit/ae4bcd4))
-
-
-
-<a name="6.1.0"></a>
-# [6.1.0](https://github.com/yargs/yargs/compare/v6.0.0...v6.1.0) (2016-10-15)
-
-
-### Bug Fixes
-
-* **locales:** change some translations ([#667](https://github.com/yargs/yargs/issues/667)) ([aa966c5](https://github.com/yargs/yargs/commit/aa966c5))
-* **locales:** conform hi locale to y18n.__n expectations ([#666](https://github.com/yargs/yargs/issues/666)) ([22adb18](https://github.com/yargs/yargs/commit/22adb18))
-
-
-### Features
-
-* initial support for command aliases ([#647](https://github.com/yargs/yargs/issues/647)) ([127a040](https://github.com/yargs/yargs/commit/127a040))
-* **command:** add camelcase commands to argv ([#658](https://github.com/yargs/yargs/issues/658)) ([b1cabae](https://github.com/yargs/yargs/commit/b1cabae))
-* **locales:** add Hindi translations ([9290912](https://github.com/yargs/yargs/commit/9290912))
-* **locales:** add Hungarian translations ([be92327](https://github.com/yargs/yargs/commit/be92327))
-* **locales:** Japanese translations for 'did you mean' and 'aliases' ([#651](https://github.com/yargs/yargs/issues/651)) ([5eb78fc](https://github.com/yargs/yargs/commit/5eb78fc))
-* **locales:** Polish translations for 'did you mean' and 'aliases' ([#650](https://github.com/yargs/yargs/issues/650)) ([c951c0e](https://github.com/yargs/yargs/commit/c951c0e))
-* reworking yargs API to make it easier to run in headless environments, e.g., Slack ([#646](https://github.com/yargs/yargs/issues/646)) ([f284c29](https://github.com/yargs/yargs/commit/f284c29))
-* Turkish translations for 'did you mean' and 'aliases' ([#660](https://github.com/yargs/yargs/issues/660)) ([072fd45](https://github.com/yargs/yargs/commit/072fd45))
-
-
-
-<a name="6.0.0"></a>
-# [6.0.0](https://github.com/yargs/yargs/compare/v5.0.0...v6.0.0) (2016-09-30)
-
-
-### Bug Fixes
-
-* changed parsing of the command string to ignore extra spaces ([#600](https://github.com/yargs/yargs/issues/600)) ([e8e5a72](https://github.com/yargs/yargs/commit/e8e5a72))
-* drop lodash.assign ([#641](https://github.com/yargs/yargs/issues/641)) ([ad3146f](https://github.com/yargs/yargs/commit/ad3146f))
-* for args that have skipValidation set to `true`, check if the parsed arg is `true` ([#619](https://github.com/yargs/yargs/issues/619)) ([658a34c](https://github.com/yargs/yargs/commit/658a34c))
-* upgrade standard, and fix appveyor config so that it works with newest standard ([#607](https://github.com/yargs/yargs/issues/607)) ([c301f42](https://github.com/yargs/yargs/commit/c301f42))
-
-
-### Chores
-
-* upgrade yargs-parser ([#633](https://github.com/yargs/yargs/issues/633)) ([cc1224e](https://github.com/yargs/yargs/commit/cc1224e))
-
-
-### Features
-
-* make opts object optional for .option() ([#624](https://github.com/yargs/yargs/issues/624)) ([4f29de6](https://github.com/yargs/yargs/commit/4f29de6))
-
-
-### Performance Improvements
-
-* defer windowWidth() to improve perf for non-help usage ([#610](https://github.com/yargs/yargs/issues/610)) ([cbc3636](https://github.com/yargs/yargs/commit/cbc3636))
-
-
-### BREAKING CHANGES
-
-* coerce is now applied as a final step after other parsing is complete
-
-
-
-<a name="5.0.0"></a>
-# [5.0.0](https://github.com/yargs/yargs/compare/v4.8.1...v5.0.0) (2016-08-14)
-
-
-### Bug Fixes
-
-* **default:** Remove undocumented alias of default() ([#469](https://github.com/yargs/yargs/issues/469)) ([b8591b2](https://github.com/yargs/yargs/commit/b8591b2))
-* remove deprecated zh.json ([#578](https://github.com/yargs/yargs/issues/578)) ([317c62c](https://github.com/yargs/yargs/commit/317c62c))
-
-
-### Features
-
-* .help() API can now enable implicit help command ([#574](https://github.com/yargs/yargs/issues/574)) ([7645019](https://github.com/yargs/yargs/commit/7645019))
-* **command:** builder function no longer needs to return the yargs instance ([#549](https://github.com/yargs/yargs/issues/549)) ([eaa2873](https://github.com/yargs/yargs/commit/eaa2873))
-* add coerce api ([#586](https://github.com/yargs/yargs/issues/586)) ([1d53ccb](https://github.com/yargs/yargs/commit/1d53ccb))
-* adds recommendCommands() for command suggestions ([#580](https://github.com/yargs/yargs/issues/580)) ([59474dc](https://github.com/yargs/yargs/commit/59474dc))
-* apply .env() globally ([#553](https://github.com/yargs/yargs/issues/553)) ([be65728](https://github.com/yargs/yargs/commit/be65728))
-* apply default builder to command() and apply fail() handlers globally ([#583](https://github.com/yargs/yargs/issues/583)) ([0aaa68b](https://github.com/yargs/yargs/commit/0aaa68b))
-* update yargs-parser to version 3.1.0 ([#581](https://github.com/yargs/yargs/issues/581)) ([882a127](https://github.com/yargs/yargs/commit/882a127))
-
-
-### Performance Improvements
-
-* defer requiring most external libs until needed ([#584](https://github.com/yargs/yargs/issues/584)) ([f9b0ed4](https://github.com/yargs/yargs/commit/f9b0ed4))
-
-
-### BREAKING CHANGES
-
-* fail is now applied globally.
-* we now default to an empty builder function when command is executed with no builder.
-* yargs-parser now better handles negative integer values, at the cost of handling numeric option names, e.g., -1 hello
-* default: removed undocumented `defaults` alias for `default`.
-* introduces a default `help` command which outputs help, as an alternative to a help flag.
-* interpret demand() numbers as relative to executing command ([#582](https://github.com/yargs/yargs/issues/582)) ([927810c](https://github.com/yargs/yargs/commit/927810c))
-
-
-
-<a name="4.8.1"></a>
-## [4.8.1](https://github.com/yargs/yargs/compare/v4.8.0...v4.8.1) (2016-07-16)
-
-
-### Bug Fixes
-
-* **commandDir:** make dir relative to caller instead of require.main.filename ([#548](https://github.com/yargs/yargs/issues/548)) ([3c2e479](https://github.com/yargs/yargs/commit/3c2e479))
-* add config lookup for .implies() ([#556](https://github.com/yargs/yargs/issues/556)) ([8d7585c](https://github.com/yargs/yargs/commit/8d7585c))
-* cache pkg lookups by path to avoid returning the wrong one ([#552](https://github.com/yargs/yargs/issues/552)) ([fea7e0b](https://github.com/yargs/yargs/commit/fea7e0b))
-* positional arguments were not being handled appropriately by parse() ([#559](https://github.com/yargs/yargs/issues/559)) ([063a866](https://github.com/yargs/yargs/commit/063a866))
-* pull in [@nexdrew](https://github.com/nexdrew)'s fixes to yargs-parser ([#560](https://github.com/yargs/yargs/issues/560)) ([c77c080](https://github.com/yargs/yargs/commit/c77c080)), closes [#560](https://github.com/yargs/yargs/issues/560)
-
-
-
-<a name="4.8.0"></a>
-# [4.8.0](https://github.com/yargs/yargs/compare/v4.7.1...v4.8.0) (2016-07-09)
-
-
-### Bug Fixes
-
-* drop unused camelcase dependency fixes [#516](https://github.com/yargs/yargs/issues/516) ([#525](https://github.com/yargs/yargs/issues/525)) ([365fb9a](https://github.com/yargs/yargs/commit/365fb9a)), closes [#516](https://github.com/yargs/yargs/issues/516) [#525](https://github.com/yargs/yargs/issues/525)
-* fake a tty in tests, so that we can use the new set-blocking ([#512](https://github.com/yargs/yargs/issues/512)) ([a54c742](https://github.com/yargs/yargs/commit/a54c742))
-* ignore invalid package.json during read-pkg-up ([#546](https://github.com/yargs/yargs/issues/546)) ([e058c87](https://github.com/yargs/yargs/commit/e058c87))
-* keep both zh and zh_CN until yargs[@5](https://github.com/5).x ([0f8faa7](https://github.com/yargs/yargs/commit/0f8faa7))
-* lazy-load package.json and cache. get rid of pkg-conf dependency. ([#544](https://github.com/yargs/yargs/issues/544)) ([2609b2e](https://github.com/yargs/yargs/commit/2609b2e))
-* we now respect the order of _ when applying commands ([#537](https://github.com/yargs/yargs/issues/537)) ([ed86b78](https://github.com/yargs/yargs/commit/ed86b78))
-
-
-### Features
-
-* add .commandDir(dir) to API to apply all command modules from a relative directory ([#494](https://github.com/yargs/yargs/issues/494)) ([b299dff](https://github.com/yargs/yargs/commit/b299dff))
-* **command:** derive missing command string from module filename ([#527](https://github.com/yargs/yargs/issues/527)) ([20d4b8a](https://github.com/yargs/yargs/commit/20d4b8a))
-* builder is now optional for a command module ([#545](https://github.com/yargs/yargs/issues/545)) ([8d6ad6e](https://github.com/yargs/yargs/commit/8d6ad6e))
-
-
-
-<a name="4.7.1"></a>
-## [4.7.1](https://github.com/yargs/yargs/compare/v4.7.0...v4.7.1) (2016-05-15)
-
-
-### Bug Fixes
-
-* switch to using `const` rather than `var` ([#499](https://github.com/yargs/yargs/pull/499))
-* make stdout flush on newer versions of Node.js ([#501](https://github.com/yargs/yargs/issues/501)) ([9f8c6f4](https://github.com/yargs/yargs/commit/9f8c6f4))
-
-
-
-<a name="4.7.0"></a>
-# [4.7.0](https://github.com/yargs/yargs/compare/v4.6.0...v4.7.0) (2016-05-02)
-
-
-### Bug Fixes
-
-* **pkgConf:** fix aliases issues in .pkgConf() ([#478](https://github.com/yargs/yargs/issues/478))([b900502](https://github.com/yargs/yargs/commit/b900502))
-
-
-### Features
-
-* **completion:** allow to get completions for any string, not just process.argv ([#470](https://github.com/yargs/yargs/issues/470))([74fcfbc](https://github.com/yargs/yargs/commit/74fcfbc))
-* **configuration:** Allow to directly pass a configuration object to .config() ([#480](https://github.com/yargs/yargs/issues/480))([e0a7e05](https://github.com/yargs/yargs/commit/e0a7e05))
-* **validation:** Add .skipValidation() method ([#471](https://github.com/yargs/yargs/issues/471))([d72badb](https://github.com/yargs/yargs/commit/d72badb))
-
-
-
-<a name="4.6.0"></a>
-# [4.6.0](https://github.com/yargs/yargs/compare/v4.5.0...v4.6.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* **my brand!:** I agree with [@osher](https://github.com/osher) lightweight isn't a huge selling point of ours any longer, see [#468](https://github.com/yargs/yargs/issues/468) ([c46d7e1](https://github.com/yargs/yargs/commit/c46d7e1))
-
-### Features
-
-* switch to standard-version for release management ([f70f801](https://github.com/yargs/yargs/commit/f70f801))
-* upgrade to version of yargs-parser that introduces some slick new features, great work [@elas7](https://github.com/elas7). update cliui, replace win-spawn, replace badge. ([#475](https://github.com/yargs/yargs/issues/475)) ([f915dd4](https://github.com/yargs/yargs/commit/f915dd4))
-
-
-
-<a name="4.5.0"></a>
-# [4.5.0](https://github.com/yargs/yargs/compare/v4.4.0...v4.5.0) (2016-04-05)
-
-
-### Bug Fixes
-
-* **windows:** handle $0 better on Windows platforms ([eb6e03f](https://github.com/yargs/yargs/commit/eb6e03f))
-
-### Features
-
-* **commands:** implemented variadic positional arguments ([51d926e](https://github.com/yargs/yargs/commit/51d926e))
-* **completion:** completion now better handles aliases, and avoids duplicating keys. ([86416c8](https://github.com/yargs/yargs/commit/86416c8))
-* **config:** If invoking .config() without parameters, set a default option ([0413dd1](https://github.com/yargs/yargs/commit/0413dd1))
-* **conventional-changelog:** switching to using conventional-changelog for generating the changelog ([a2b5a2a](https://github.com/yargs/yargs/commit/a2b5a2a))
-
-
-
-### v4.4.0 (2016/04/03 21:10 +07:00)
-
-- [#454](https://github.com/yargs/yargs/pull/454) fix demand() when second argument is an array (@elas7)
-- [#452](https://github.com/yargs/yargs/pull/452) fix code example for `.help()` docs (@maxrimue)
-- [#450](https://github.com/yargs/yargs/pull/450) fix for bash completion trailing space edge-case (@elas7)
-- [#448](https://github.com/yargs/yargs/pull/448) allow a method to be passed to `showHelp`, rather than a log-level (@osher)
-- [#446](https://github.com/yargs/yargs/pull/446) update yargs-parser, y18n, nyc, cliui, pkg-conf (@bcoe)
-- [#436](https://github.com/yargs/yargs/pull/436) the rebase method is only used by tests, do not export it in two places (@elas7)
-- [#428](https://github.com/yargs/yargs/pull/428) initial support for subcommands (@nexdrew)
-
-### v4.3.2 (2016/3/20 15:07 +07:00)
-
-- [#445](https://github.com/yargs/yargs/pull/445) strict mode was failing if no commands were registered (@nexdrew)
-- [#443](https://github.com/yargs/yargs/pull/443) adds Italian translation \o/ (@madrisan)
-- [#441](https://github.com/yargs/yargs/pull/441) remove duplicate keys from array options configuration (@elas7)
-- [#437](https://github.com/yargs/yargs/pull/437) standardize tests for .command() (@lrlna)
-
-### v4.3.0 (2016/3/12 14:19 +07:00)
-
-- [#432](https://github.com/yargs/yargs/pull/432) non-singleton version of yargs (@bcoe)
-- [#422, #425, #420] translations for number (@zkat, @rilut, @maxrimue, @watilde)
-- [#414](https://github.com/yargs/yargs/pull/414) all command options can be defined in module now (@nexdrew)
-
-### v4.2.0 (2016/2/22 11:02 +07:00)
-
-- [#395](https://github.com/yargs/yargs/pull/395) do not reset groups if they contain
- global keys (@novemberborn)
-- [#393](https://github.com/yargs/yargs/pull/393) use sane default for usage strings (@nexdrew)
-- [#392](https://github.com/yargs/yargs/pull/392) resetting wrap() was causing layout issues
- with commands (@nexdrew)
-- [#391](https://github.com/yargs/yargs/pull/391) commands were being added multiple times (@nexdrew)
-
-### v4.0.0 (2016/2/14 1:27 +07:00)
-
-- [#384](https://github.com/bcoe/yargs/pull/384) add new number type to yargs (@lrlna, @maxrimue)
-- [#382](https://github.com/bcoe/yargs/pull/382) pass error as extra parameter to fail (@gajus)
-- [#378](https://github.com/bcoe/yargs/pull/378) introduces the pkgConf feature, which tells
- yargs to load default argument values from a key on a project's package.json (@bcoe)
-- [#376](https://github.com/bcoe/yargs/pull/376) **breaking change**, make help() method signature
- more consistent with other commands (@maxrimue)
-- [#368](https://github.com/bcoe/yargs/pull/368) **breaking change**, overhaul to command handling API:
- introducing named positional arguments, commands as modules, introduces the concept of global options (options that don't reset). (@nexdrew, @bcoe).
-- [#364](https://github.com/bcoe/yargs/pull/364) add the slick new yargs website to the package.json (@iarna).
-- [#357](https://github.com/bcoe/yargs/pull/357) .strict() now requires that a valid command is provided (@lrlna)
-- [#356](https://github.com/bcoe/yargs/pull/356) pull the parsing bits of yargs into the separate module yargs-parser. Various parsing options can now be turned on and off using configuration (@bcoe).
-- [#330](https://github.com/bcoe/yargs/pull/330) **breaking change**, fix inconsistencies with `.version()` API. (@maxrimue).
-
-### v3.32.0 (2016/1/14 10:13 +07:00)
-
-- [#344](https://github.com/bcoe/yargs/pull/344) yargs now has a code of conduct and contributor guidelines (@bcoe)
-- [#341](https://github.com/bcoe/yargs/issues/341) Fix edge-case with camel-case arguments (@davibe)
-- [#331](https://github.com/bcoe/yargs/pull/331) Handle parsing a raw argument string (@kellyselden)
-- [#325](https://github.com/bcoe/yargs/pull/325) Tweaks to make tests pass again on Windows (@isaacs)
-- [#321](https://github.com/bcoe/yargs/pull/321) Custom config parsing function (@bcoe)
-
-### v3.31.0 (2015/12/03 10:15 +07:00)
-
-- [#239](https://github.com/bcoe/yargs/pull/239) Pass argv to commands (@bcoe)
-- [#308](https://github.com/bcoe/yargs/pull/308) Yargs now handles environment variables (@nexdrew)
-- [#302](https://github.com/bcoe/yargs/pull/302) Add Indonesian translation (@rilut)
-- [#300](https://github.com/bcoe/yargs/pull/300) Add Turkish translation (@feyzo)
-- [#298](https://github.com/bcoe/yargs/pull/298) Add Norwegian BokmaĢŠl translation (@sindresorhus)
-- [#297](https://github.com/bcoe/yargs/pull/297) Fix for layout of cjk characters (@disjukr)
-- [#296](https://github.com/bcoe/yargs/pull/296) Add Korean translation (@disjukr)
-
-### v3.30.0 (2015/11/13 16:29 +07:00)
-
-- [#293](https://github.com/bcoe/yargs/pull/293) Polish language support (@kamilogorek)
-- [#291](https://github.com/bcoe/yargs/pull/291) fix edge-cases with `.alias()` (@bcoe)
-- [#289](https://github.com/bcoe/yargs/pull/289) group options in custom groups (@bcoe)
-
-### v3.29.0 (2015/10/16 21:51 +07:00)
-
-- [#282](https://github.com/bcoe/yargs/pull/282) completions now accept promises (@LinusU)
-- [#281](https://github.com/bcoe/yargs/pull/281) fix parsing issues with dot notation (@bcoe)
-
-### v3.28.0 (2015/10/16 1:55 +07:00)
-
-- [#277](https://github.com/bcoe/yargs/pull/277) adds support for ansi escape codes (@bcoe)
-
-### v3.27.0 (2015/10/08 1:55 +00:00)
-
-- [#271](https://github.com/bcoe/yargs/pull/273) skips validation for help or version flags with exitProcess(false) (@tepez)
-- [#273](https://github.com/bcoe/yargs/pull/273) implements single output for errors with exitProcess(false) (@nexdrew)
-- [#269](https://github.com/bcoe/yargs/pull/269) verifies single output for errors with exitProcess(false) (@tepez)
-- [#268](https://github.com/bcoe/yargs/pull/268) adds Chinese translation (@qiu8310)
-- [#266](https://github.com/bcoe/yargs/pull/266) adds case for -- after -- in parser test (@geophree)
-
-### v3.26.0 (2015/09/25 2:14 +00:00)
-
-- [#263](https://github.com/bcoe/yargs/pull/263) document count() and option() object keys (@nexdrew)
-- [#259](https://github.com/bcoe/yargs/pull/259) remove util in readme (@38elements)
-- [#258](https://github.com/bcoe/yargs/pull/258) node v4 builds, update deps (@nexdrew)
-- [#257](https://github.com/bcoe/yargs/pull/257) fix spelling errors (@dkoleary88)
-
-### v3.25.0 (2015/09/13 7:38 -07:00)
-
-- [#254](https://github.com/bcoe/yargs/pull/254) adds Japanese translation (@oti)
-- [#253](https://github.com/bcoe/yargs/pull/253) fixes for tests on Windows (@bcoe)
-
-### v3.24.0 (2015/09/04 12:02 +00:00)
-
-- [#248](https://github.com/bcoe/yargs/pull/248) reinstate os-locale, no spawning (@nexdrew)
-- [#249](https://github.com/bcoe/yargs/pull/249) use travis container-based infrastructure (@nexdrew)
-- [#247](https://github.com/bcoe/yargs/pull/247) upgrade standard (@nexdrew)
-
-### v3.23.0 (2015/08/30 23:00 +00:00)
-
-- [#246](https://github.com/bcoe/yargs/pull/246) detect locale based only on environment variables (@bcoe)
-- [#244](https://github.com/bcoe/yargs/pull/244) adds Windows CI testing (@bcoe)
-- [#245](https://github.com/bcoe/yargs/pull/245) adds OSX CI testing (@bcoe, @nexdrew)
-
-### v3.22.0 (2015/08/28 22:26 +00:00)
-- [#242](https://github.com/bcoe/yargs/pull/242) adds detectLocale config option (@bcoe)
-
-### v3.21.1 (2015/08/28 20:58 +00:00)
-- [#240](https://github.com/bcoe/yargs/pull/240) hot-fix for Atom on Windows (@bcoe)
-
-### v3.21.0 (2015/08/21 21:20 +00:00)
-- [#238](https://github.com/bcoe/yargs/pull/238) upgrade camelcase, window-size, chai, mocha (@nexdrew)
-- [#237](https://github.com/bcoe/yargs/pull/237) adds defaultDescription to option() (@nexdrew)
-
-### v3.20.0 (2015/08/20 01:29 +00:00)
-- [#231](https://github.com/bcoe/yargs/pull/231) Merge pull request #231 from bcoe/detect-locale (@sindresorhus)
-- [#235](https://github.com/bcoe/yargs/pull/235) adds german translation to yargs (@maxrimue)
-
-### v3.19.0 (2015/08/14 05:12 +00:00)
-- [#224](https://github.com/bcoe/yargs/pull/224) added Portuguese translation (@codemonkey3045)
-
-### v3.18.1 (2015/08/12 05:53 +00:00)
-
-- [#228](https://github.com/bcoe/yargs/pull/228) notes about embedding yargs in Electron (@etiktin)
-- [#223](https://github.com/bcoe/yargs/pull/223) make booleans work in config files (@sgentle)
-
-### v3.18.0 (2015/08/06 20:05 +00:00)
-- [#222](https://github.com/bcoe/yargs/pull/222) updates fr locale (@nexdrew)
-- [#221](https://github.com/bcoe/yargs/pull/221) adds missing locale strings (@nexdrew)
-- [#220](https://github.com/bcoe/yargs/pull/220) adds es locale (@zkat)
-
-### v3.17.1 (2015/08/02 19:35 +00:00)
-- [#218](https://github.com/bcoe/yargs/pull/218) upgrades nyc (@bcoe)
-
-### v3.17.0 (2015/08/02 18:39 +00:00)
-- [#217](https://github.com/bcoe/yargs/pull/217) sort methods in README.md (@nexdrew)
-- [#215](https://github.com/bcoe/yargs/pull/215) adds fr locale (@LoicMahieu)
-
-### v3.16.0 (2015/07/30 04:35 +00:00)
-- [#210](https://github.com/bcoe/yargs/pull/210) adds i18n support to yargs (@bcoe)
-- [#209](https://github.com/bcoe/yargs/pull/209) adds choices type to yargs (@nexdrew)
-- [#207](https://github.com/bcoe/yargs/pull/207) pretty new shields from shields.io (@SimenB)
-- [#208](https://github.com/bcoe/yargs/pull/208) improvements to README.md (@nexdrew)
-- [#205](https://github.com/bcoe/yargs/pull/205) faster build times on Travis (@ChristianMurphy)
-
-### v3.15.0 (2015/07/06 06:01 +00:00)
-- [#197](https://github.com/bcoe/yargs/pull/197) tweaks to how errors bubble up from parser.js (@bcoe)
-- [#193](https://github.com/bcoe/yargs/pull/193) upgraded nyc, reporting now happens by default (@bcoe)
-
-### v3.14.0 (2015/06/28 02:12 +00:00)
-
-- [#192](https://github.com/bcoe/yargs/pull/192) standard style nits (@bcoe)
-- [#190](https://github.com/bcoe/yargs/pull/190) allow for hidden commands, e.g.,
- .completion('completion', false) (@tschaub)
-
-### v3.13.0 (2015/06/24 04:12 +00:00)
-
-- [#187](https://github.com/bcoe/yargs/pull/187) completion now behaves differently
- if it is being run in the context of a command (@tschaub)
-- [#186](https://github.com/bcoe/yargs/pull/186) if no matches are found for a completion
- default to filename completion (@tschaub)
-
-### v3.12.0 (2015/06/19 03:23 +00:00)
-- [#183](https://github.com/bcoe/yargs/pull/183) don't complete commands if they've already been completed (@tschaub)
-- [#181](https://github.com/bcoe/yargs/pull/181) various fixes for completion. (@bcoe, @tschaub)
-- [#182](https://github.com/bcoe/yargs/pull/182) you can now set a maximum # of of required arguments (@bcoe)
-
-### v3.11.0 (2015/06/15 05:15 +00:00)
-
-- [#173](https://github.com/bcoe/yargs/pull/173) update standard, window-size, chai (@bcoe)
-- [#171](https://github.com/bcoe/yargs/pull/171) a description can now be set
- when providing a config option. (@5c077yP)
-
-### v3.10.0 (2015/05/29 04:25 +00:00)
-
-- [#165](https://github.com/bcoe/yargs/pull/165) expose yargs.terminalWidth() thanks @ensonic (@bcoe)
-- [#164](https://github.com/bcoe/yargs/pull/164) better array handling thanks @getify (@bcoe)
-
-### v3.9.1 (2015/05/20 05:14 +00:00)
-- [b6662b6](https://github.com/bcoe/yargs/commit/b6662b6774cfeab4876f41ec5e2f67b7698f4e2f) clarify .config() docs (@linclark)
-- [0291360](https://github.com/bcoe/yargs/commit/02913606285ce31ce81d7f12c48d8a3029776ec7) fixed tests, switched to nyc for coverage, fixed security issue, added Lin as collaborator (@bcoe)
-
-### v3.9.0 (2015/05/10 18:32 +00:00)
-- [#157](https://github.com/bcoe/yargs/pull/157) Merge pull request #157 from bcoe/command-yargs. allows handling of command specific arguments. Thanks for the suggestion @ohjames (@bcoe)
-- [#158](https://github.com/bcoe/yargs/pull/158) Merge pull request #158 from kemitchell/spdx-license. Update license format (@kemitchell)
-
-### v3.8.0 (2015/04/24 23:10 +00:00)
-- [#154](https://github.com/bcoe/yargs/pull/154) showHelp's method signature was misleading fixes #153 (@bcoe)
-- [#151](https://github.com/bcoe/yargs/pull/151) refactor yargs' table layout logic to use new helper library (@bcoe)
-- [#150](https://github.com/bcoe/yargs/pull/150) Fix README example in argument requirements (@annonymouse)
-
-### v3.7.2 (2015/04/13 11:52 -07:00)
-
-* [679fbbf](https://github.com/bcoe/yargs/commit/679fbbf55904030ccee8a2635e8e5f46551ab2f0) updated yargs to use the [standard](https://github.com/feross/standard) style guide (agokjr)
-* [22382ee](https://github.com/bcoe/yargs/commit/22382ee9f5b495bc2586c1758cd1091cec3647f9 various bug fixes for $0 (@nylen)
-
-### v3.7.1 (2015/04/10 11:06 -07:00)
-
-* [89e1992](https://github.com/bcoe/yargs/commit/89e1992a004ba73609b5f9ee6890c4060857aba4) detect iojs bin along with node bin. (@bcoe)
-* [755509e](https://github.com/bcoe/yargs/commit/755509ea90041e5f7833bba3b8c5deffe56f0aab) improvements to example documentation in README.md (@rstacruz)
-* [0d2dfc8](https://github.com/bcoe/yargs/commit/0d2dfc822a43418242908ad97ddd5291a1b35dc6) showHelp() no longer requires that .argv has been called (@bcoe)
-
-### v3.7.0 (2015/04/04 02:29 -07:00)
-
-* [56cbe2d](https://github.com/bcoe/yargs/commit/56cbe2ddd33dc176dcbf97ba40559864a9f114e4) make .requiresArg() work with type hints. (@bcoe).
-* [2f5d562](https://github.com/bcoe/yargs/commit/2f5d5624f736741deeedf6a664d57bc4d857bdd0) serialize arrays and objects in usage strings. (@bcoe).
-* [5126304](https://github.com/bcoe/yargs/commit/5126304dd18351fc28f10530616fdd9361e0af98) be more lenient about alias/primary key ordering in chaining API. (@bcoe)
-
-### v3.6.0 (2015/03/21 01:00 +00:00)
-- [4e24e22](https://github.com/bcoe/yargs/commit/4e24e22e6a195e55ab943ede704a0231ac33b99c) support for .js configuration files. (@pirxpilot)
-
-### v3.5.4 (2015/03/12 05:56 +00:00)
-- [c16cc08](https://github.com/bcoe/yargs/commit/c16cc085501155cf7fd853ccdf8584b05ab92b78) message for non-option arguments is now optional, thanks to (@raine)
-
-### v3.5.3 (2015/03/09 06:14 +00:00)
-- [870b428](https://github.com/bcoe/yargs/commit/870b428cf515d560926ca392555b7ad57dba9e3d) completion script was missing in package.json (@bcoe)
-
-### v3.5.2 (2015/03/09 06:11 +00:00)
-- [58a4b24](https://github.com/bcoe/yargs/commit/58a4b2473ebbb326713d522be53e32d3aabb08d2) parse was being called multiple times, resulting in strange behavior (@bcoe)
-
-### v3.5.1 (2015/03/09 04:55 +00:00)
-- [4e588e0](https://github.com/bcoe/yargs/commit/4e588e055afbeb9336533095f051496e3977f515) accidentally left testing logic in (@bcoe)
-
-### v3.5.0 (2015/03/09 04:49 +00:00)
-- [718bacd](https://github.com/bcoe/yargs/commit/718bacd81b9b44f786af76b2afe491fe06274f19) added support for bash completions see #4 (@bcoe)
-- [a192882](https://github.com/bcoe/yargs/commit/a19288270fc431396c42af01125eeb4443664528) downgrade to mocha 2.1.0 until https://github.com/mochajs/mocha/issues/1585 can be sorted out (@bcoe)
-
-### v3.4.7 (2015/03/09 04:09 +00:00)
-- [9845e5c](https://github.com/bcoe/yargs/commit/9845e5c1a9c684ba0be3f0bfb40e7b62ab49d9c8) the Argv singleton was not being updated when manually parsing arguments, fixes #114 (@bcoe)
-
-### v3.4.6 (2015/03/09 04:01 +00:00)
-- [45b4c80](https://github.com/bcoe/yargs/commit/45b4c80b890d02770b0a94f326695a8a566e8fe9) set placeholders for all keys fixes #115 (@bcoe)
-
-### v3.4.5 (2015/03/01 20:31 +00:00)
-- [a758e0b](https://github.com/bcoe/yargs/commit/a758e0b2556184f067cf3d9c4ef886d39817ebd2) fix for count consuming too many arguments (@bcoe)
-
-### v3.4.4 (2015/02/28 04:52 +00:00)
-- [0476af7](https://github.com/bcoe/yargs/commit/0476af757966acf980d998b45108221d4888cfcb) added nargs feature, allowing you to specify the number of arguments after an option (@bcoe)
-- [092477d](https://github.com/bcoe/yargs/commit/092477d7ab3efbf0ba11cede57f7d8cfc70b024f) updated README with full example of v3.0 API (@bcoe)
-
-### v3.3.3 (2015/02/28 04:23 +00:00)
-- [0c4b769](https://github.com/bcoe/yargs/commit/0c4b769516cd8d93a7c4e5e675628ae0049aa9a8) remove string dependency, which conflicted with other libraries see #106 (@bcoe)
-
-### v3.3.2 (2015/02/28 04:11 +00:00)
-- [2a98906](https://github.com/bcoe/yargs/commit/2a9890675821c0e7a12f146ce008b0562cb8ec9a) add $0 to epilog (@schnittstabil)
-
-### v3.3.1 (2015/02/24 03:28 +00:00)
-- [ad485ce](https://github.com/bcoe/yargs/commit/ad485ce748ebdfce25b88ef9d6e83d97a2f68987) fix for applying defaults to camel-case args (@bcoe)
-
-### v3.3.0 (2015/02/24 00:49 +00:00)
-- [8bfe36d](https://github.com/bcoe/yargs/commit/8bfe36d7fb0f93a799ea3f4c756a7467c320f8c0) fix and document restart() command, as a tool for building nested CLIs (@bcoe)
-
-### v3.2.1 (2015/02/22 05:45 +00:00)
-- [49a6d18](https://github.com/bcoe/yargs/commit/49a6d1822a4ef9b1ea6f90cc366be60912628885) you can now provide a function that generates a default value (@bcoe)
-
-### v3.2.0 (2015/02/22 05:24 +00:00)
-- [7a55886](https://github.com/bcoe/yargs/commit/7a55886c9343cf71a20744ca5cdd56d2ea7412d5) improvements to yargs two-column text layout (@bcoe)
-- [b6ab513](https://github.com/bcoe/yargs/commit/b6ab5136a4c3fa6aa496f6b6360382e403183989) Tweak NPM version badge (@nylen)
-
-### v3.1.0 (2015/02/19 19:37 +00:00)
-- [9bd2379](https://github.com/bcoe/yargs/commit/9bd237921cf1b61fd9f32c0e6d23f572fc225861) version now accepts a function, making it easy to load version #s from a package.json (@bcoe)
-
-### v3.0.4 (2015/02/14 01:40 +00:00)
-- [0b7c19b](https://github.com/bcoe/yargs/commit/0b7c19beaecb747267ca4cc10e5cb2a8550bc4b7) various fixes for dot-notation handling (@bcoe)
-
-### v3.0.3 (2015/02/14 00:59 +00:00)
-- [c3f35e9](https://github.com/bcoe/yargs/commit/c3f35e99bd5a0d278073fcadd95e2d778616cc17) make sure dot-notation is applied to aliases (@bcoe)
-
-### 3.0.2 (2015/02/13 16:50 +00:00)
-- [74c8967](https://github.com/bcoe/yargs/commit/74c8967c340c204a0a7edf8a702b6f46c2705435) document epilog shorthand of epilogue. (@bcoe)
-- [670110f](https://github.com/bcoe/yargs/commit/670110fc01bedc4831b6fec6afac54517d5a71bc) any non-truthy value now causes check to fail see #76 (@bcoe)
-- [0d8f791](https://github.com/bcoe/yargs/commit/0d8f791a33c11ced4cd431ea8d3d3a337d456b56) finished implementing my wish-list of fetures for yargs 3.0. see #88 (@bcoe)
-- [5768447](https://github.com/bcoe/yargs/commit/5768447447c4c8e8304f178846206ce86540f063) fix coverage. (@bcoe)
-- [82e793f](https://github.com/bcoe/yargs/commit/82e793f3f61c41259eaacb67f0796aea2cf2aaa0) detect console width and perform word-wrapping. (@bcoe)
-- [67476b3](https://github.com/bcoe/yargs/commit/67476b37eea07fee55f23f35b9e0c7d76682b86d) refactor two-column table layout so that we can use it for examples and usage (@bcoe)
-- [4724cdf](https://github.com/bcoe/yargs/commit/4724cdfcc8e37ae1ca3dcce9d762f476e9ef4bb4) major refactor of index.js, in prep for 3.x release. (@bcoe)
-
-### v2.3.0 (2015/02/08 20:41 +00:00)
-- [d824620](https://github.com/bcoe/yargs/commit/d824620493df4e63664af1fe320764dd1a9244e6) allow for undefined boolean defaults (@ashi009)
-
-### v2.2.0 (2015/02/08 20:07 +00:00)
-- [d6edd98](https://github.com/bcoe/yargs/commit/d6edd9848826e7389ed1393858c45d03961365fd) in-prep for further refactoring, and a 3.x release I've shuffled some things around and gotten test-coverage to 100%. (@bcoe)
-
-### v2.1.2 (2015/02/08 06:05 +00:00)
-- [d640745](https://github.com/bcoe/yargs/commit/d640745a7b9f8d476e0223879d056d18d9c265c4) switch to path.relative (@bcoe)
-- [3bfd41f](https://github.com/bcoe/yargs/commit/3bfd41ff262a041f29d828b88936a79c63cad594) remove mocha.opts. (@bcoe)
-- [47a2f35](https://github.com/bcoe/yargs/commit/47a2f357091db70903a402d6765501c1d63f15fe) document using .string('_') for string ids. see #56 (@bcoe)
-- [#57](https://github.com/bcoe/yargs/pull/57) Merge pull request #57 from eush77/option-readme (@eush77)
-
-### v2.1.1 (2015/02/06 08:08 +00:00)
-- [01c6c61](https://github.com/bcoe/yargs/commit/01c6c61d67b4ebf88f41f0b32a345ec67f0ac17d) fix for #71, 'newAliases' of undefined (@bcoe)
-
-### v2.1.0 (2015/02/06 07:59 +00:00)
-- [6a1a3fa](https://github.com/bcoe/yargs/commit/6a1a3fa731958e26ccd56885f183dd8985cc828f) try to guess argument types, and apply sensible defaults see #73 (@bcoe)
-
-### v2.0.1 (2015/02/06 07:54 +00:00)
-- [96a06b2](https://github.com/bcoe/yargs/commit/96a06b2650ff1d085a52b7328d8bba614c20cc12) Fix for strange behavior with --sort option, see #51 (@bcoe)
-
-### v2.0.0 (2015/02/06 07:45 +00:00)
-- [0250517](https://github.com/bcoe/yargs/commit/0250517c9643e53f431b824e8ccfa54937414011) - [108fb84](https://github.com/bcoe/yargs/commit/108fb8409a3a63dcaf99d917fe4dfcfaa1de236d) fixed bug with boolean parsing, when bools separated by = see #66 (@bcoe)
-- [a465a59](https://github.com/bcoe/yargs/commit/a465a5915f912715738de890982e4f8395958b10) Add `files` field to the package.json (@shinnn)
-- [31043de](https://github.com/bcoe/yargs/commit/31043de7a38a17c4c97711f1099f5fb164334db3) fix for yargs.argv having the same keys added multiple times see #63 (@bcoe)
-- [2d68c5b](https://github.com/bcoe/yargs/commit/2d68c5b91c976431001c4863ce47c9297850f1ad) Disable process.exit calls using .exitProcess(false) (@cianclarke)
-- [45da9ec](https://github.com/bcoe/yargs/commit/45da9ec4c55a7bd394721bc6a1db0dabad7bc52a) Mention .option in README (@eush77)
-
-### v1.3.2 (2014/10/06 21:56 +00:00)
-- [b8d3472](https://github.com/bcoe/yargs/commit/b8d34725482e5821a3cc809c0df71378f282f526) 1.3.2 (@chevex)
-
-### list (2014/08/30 18:41 +00:00)
-- [fbc777f](https://github.com/bcoe/yargs/commit/fbc777f416eeefd37c84e44d27d7dfc7c1925721) Now that yargs is the successor to optimist, I'm changing the README language to be more universal. Pirate speak isn't very accessible to non-native speakers. (@chevex)
-- [a54d068](https://github.com/bcoe/yargs/commit/a54d0682ae2efc2394d407ab171cc8a8bbd135ea) version output will not print extra newline (@boneskull)
-- [1cef5d6](https://github.com/bcoe/yargs/commit/1cef5d62a9d6d61a3948a49574892e01932cc6ae) Added contributors section to package.json (@chrisn)
-- [cc295c0](https://github.com/bcoe/yargs/commit/cc295c0a80a2de267e0155b60d315fc4b6f7c709) Added 'require' and 'required' as synonyms for 'demand' (@chrisn)
-- [d0bf951](https://github.com/bcoe/yargs/commit/d0bf951d949066b6280101ed606593d079ee15c8) Updating minimist. (@chevex)
-- [c15f8e7](https://github.com/bcoe/yargs/commit/c15f8e7f245b261e542cf205ce4f4313630cbdb4) Fix #31 (bad interaction between camelCase options and strict mode) (@nylen)
-- [d991b9b](https://github.com/bcoe/yargs/commit/d991b9be687a68812dee1e3b185ba64b7778b82d) Added .help() and .version() methods (@chrisn)
-- [e8c8aa4](https://github.com/bcoe/yargs/commit/e8c8aa46268379357cb11e9fc34b8c403037724b) Added .showHelpOnFail() method (@chrisn)
-- [e855af4](https://github.com/bcoe/yargs/commit/e855af4a933ea966b5bbdd3c4c6397a4bac1a053) Allow boolean flag with .demand() (@chrisn)
-- [14dbec2](https://github.com/bcoe/yargs/commit/14dbec24fb7380683198e2b20c4deb8423e64bea) Fixes issue #22. Arguments are no longer printed to the console when using .config. (@chevex)
-- [bef74fc](https://github.com/bcoe/yargs/commit/bef74fcddc1544598a804f80d0a3728459f196bf) Informing users that Yargs is the official optimist successor. (@chevex)
-- [#24](https://github.com/bcoe/yargs/pull/24) Merge pull request #24 from chrisn/strict (@chrisn)
-- [889a2b2](https://github.com/bcoe/yargs/commit/889a2b28eb9768801b05163360a470d0fd6c8b79) Added requiresArg option, for options that require values (@chrisn)
-- [eb16369](https://github.com/bcoe/yargs/commit/eb163692262be1fe80b992fd8803d5923c5a9b18) Added .strict() method, to report error if unknown arguments are given (@chrisn)
-- [0471c3f](https://github.com/bcoe/yargs/commit/0471c3fd999e1ad4e6cded88b8aa02013b66d14f) Changed optimist to yargs in usage-options.js example (@chrisn)
-- [5c88f74](https://github.com/bcoe/yargs/commit/5c88f74e3cf031b17c54b4b6606c83e485ff520e) Change optimist to yargs in examples (@chrisn)
-- [66f12c8](https://github.com/bcoe/yargs/commit/66f12c82ba3c943e4de8ca862980e835da8ecb3a) Fix a couple of bad interactions between aliases and defaults (@nylen)
-- [8fa1d80](https://github.com/bcoe/yargs/commit/8fa1d80f14b03eb1f2898863a61f1d1615bceb50) Document second argument of usage(message, opts) (@Gobie)
-- [56e6528](https://github.com/bcoe/yargs/commit/56e6528cf674ff70d63083fb044ff240f608448e) For "--some-option", also set argv.someOption (@nylen)
-- [ed5f6d3](https://github.com/bcoe/yargs/commit/ed5f6d33f57ad1086b11c91b51100f7c6c7fa8ee) Finished porting unit tests to Mocha. (@chevex)
-
-### v1.0.15 (2014/02/05 23:18 +00:00)
-- [e2b1fc0](https://github.com/bcoe/yargs/commit/e2b1fc0c4a59cf532ae9b01b275e1ef57eeb64d2) 1.0.15 update to badges (@chevex)
-
-### v1.0.14 (2014/02/05 23:17 +00:00)
-- [f33bbb0](https://github.com/bcoe/yargs/commit/f33bbb0f00fe18960f849cc8e15a7428a4cd59b8) Revert "Fixed issue which caused .demand function not to work correctly." (@chevex)
-
-### v1.0.13 (2014/02/05 22:13 +00:00)
-- [6509e5e](https://github.com/bcoe/yargs/commit/6509e5e7dee6ef1a1f60eea104be0faa1a045075) Fixed issue which caused .demand function not to work correctly. (@chevex)
-
-### v1.0.12 (2013/12/13 00:09 +00:00)
-- [05eb267](https://github.com/bcoe/yargs/commit/05eb26741c9ce446b33ff006e5d33221f53eaceb) 1.0.12 (@chevex)
-
-### v1.0.11 (2013/12/13 00:07 +00:00)
-- [c1bde46](https://github.com/bcoe/yargs/commit/c1bde46e37318a68b87d17a50c130c861d6ce4a9) 1.0.11 (@chevex)
-
-### v1.0.10 (2013/12/12 23:57 +00:00)
-- [dfebf81](https://github.com/bcoe/yargs/commit/dfebf8164c25c650701528ee581ca483a99dc21c) Fixed formatting in README (@chevex)
-
-### v1.0.9 (2013/12/12 23:47 +00:00)
-- [0b4e34a](https://github.com/bcoe/yargs/commit/0b4e34af5e6d84a9dbb3bb6d02cd87588031c182) Update README.md (@chevex)
-
-### v1.0.8 (2013/12/06 16:36 +00:00)
-- [#1](https://github.com/bcoe/yargs/pull/1) fix error caused by check() see #1 (@martinheidegger)
-
-### v1.0.7 (2013/11/24 18:01 +00:00)
-- [a247d88](https://github.com/bcoe/yargs/commit/a247d88d6e46644cbb7303c18b1bb678fc132d72) Modified Pirate Joe image. (@chevex)
-
-### v1.0.6 (2013/11/23 19:21 +00:00)
-- [d7f69e1](https://github.com/bcoe/yargs/commit/d7f69e1d34bc929736a8bdccdc724583e21b7eab) Updated Pirate Joe image. (@chevex)
-
-### v1.0.5 (2013/11/23 19:09 +00:00)
-- [ece809c](https://github.com/bcoe/yargs/commit/ece809cf317cc659175e1d66d87f3ca68c2760be) Updated readme notice again. (@chevex)
-
-### v1.0.4 (2013/11/23 19:05 +00:00)
-- [9e81e81](https://github.com/bcoe/yargs/commit/9e81e81654028f83ba86ffc3ac772a0476084e5e) Updated README with a notice about yargs being a fork of optimist and what that implies. (@chevex)
-
-### v1.0.3 (2013/11/23 17:43 +00:00)
-- [65e7a78](https://github.com/bcoe/yargs/commit/65e7a782c86764944d63d084416aba9ee6019c5f) Changed some small wording in README.md. (@chevex)
-- [459e20e](https://github.com/bcoe/yargs/commit/459e20e539b366b85128dd281ccd42221e96c7da) Fix a bug in the options function, when string and boolean options weren't applied to aliases. (@shockone)
-
-### v1.0.2 (2013/11/23 09:46 +00:00)
-- [3d80ebe](https://github.com/bcoe/yargs/commit/3d80ebed866d3799224b6f7d596247186a3898a9) 1.0.2 (@chevex)
-
-### v1.0.1 (2013/11/23 09:39 +00:00)
-- [f80ff36](https://github.com/bcoe/yargs/commit/f80ff3642d580d4b68bf9f5a94277481bd027142) Updated image. (@chevex)
-
-### v1.0.0 (2013/11/23 09:33 +00:00)
-- [54e31d5](https://github.com/bcoe/yargs/commit/54e31d505f820b80af13644e460894b320bf25a3) Rebranded from optimist to yargs in the spirit of the fork :D (@chevex)
-- [4ebb6c5](https://github.com/bcoe/yargs/commit/4ebb6c59f44787db7c24c5b8fe2680f01a23f498) Added documentation for demandCount(). (@chevex)
-- [4561ce6](https://github.com/bcoe/yargs/commit/4561ce66dcffa95f49e8b4449b25b94cd68acb25) Simplified the error messages returned by .check(). (@chevex)
-- [661c678](https://github.com/bcoe/yargs/commit/661c67886f479b16254a830b7e1db3be29e6b7a6) Fixed an issue with demand not accepting a zero value. (@chevex)
-- [731dd3c](https://github.com/bcoe/yargs/commit/731dd3c37624790490bd6df4d5f1da8f4348279e) Add .fail(fn) so death isn't the only option. Should fix issue #39. (@chevex)
-- [fa15417](https://github.com/bcoe/yargs/commit/fa15417ff9e70dace0d726627a5818654824c1d8) Added a few missing 'return self' (@chevex)
-- [e655e4d](https://github.com/bcoe/yargs/commit/e655e4d99d1ae1d3695ef755d51c2de08d669761) Fix showing help in certain JS environments. (@chevex)
-- [a746a31](https://github.com/bcoe/yargs/commit/a746a31cd47c87327028e6ea33762d6187ec5c87) Better string representation of default values. (@chevex)
-- [6134619](https://github.com/bcoe/yargs/commit/6134619a7e90b911d5443230b644c5d447c1a68c) Implies: conditional demands (@chevex)
-- [046b93b](https://github.com/bcoe/yargs/commit/046b93b5d40a27367af4cb29726e4d781d934639) Added support for JSON config files. (@chevex)
-- [a677ec0](https://github.com/bcoe/yargs/commit/a677ec0a0ecccd99c75e571d03323f950688da03) Add .example(cmd, desc) feature. (@chevex)
-- [1bd4375](https://github.com/bcoe/yargs/commit/1bd4375e11327ba1687d4bb6e5e9f3c30c1be2af) Added 'defaults' as alias to 'default' so as to avoid usage of a reserved keyword. (@chevex)
-- [6b753c1](https://github.com/bcoe/yargs/commit/6b753c16ca09e723060e70b773b430323b29c45c) add .normalize(args..) support for normalizing paths (@chevex)
-- [33d7d59](https://github.com/bcoe/yargs/commit/33d7d59341d364f03d3a25f0a55cb99004dbbe4b) Customize error messages with demand(key, msg) (@chevex)
-- [647d37f](https://github.com/bcoe/yargs/commit/647d37f164c20f4bafbf67dd9db6cd6e2cd3b49f) Merge branch 'rewrite-duplicate-test' of github.com:isbadawi/node-optimist (@chevex)
-- [9059d1a](https://github.com/bcoe/yargs/commit/9059d1ad5e8aea686c2a01c89a23efdf929fff2e) Pass aliases object to check functions for greater versatility. (@chevex)
-- [623dc26](https://github.com/bcoe/yargs/commit/623dc26c7331abff2465ef8532e3418996d42fe6) Added ability to count boolean options and rolled minimist library back into project. (@chevex)
-- [49f0dce](https://github.com/bcoe/yargs/commit/49f0dcef35de4db544c3966350d36eb5838703f6) Fixed small typo. (@chevex)
-- [79ec980](https://github.com/bcoe/yargs/commit/79ec9806d9ca6eb0014cfa4b6d1849f4f004baf2) Removed dependency on wordwrap module. (@chevex)
-- [ea14630](https://github.com/bcoe/yargs/commit/ea14630feddd69d1de99dd8c0e08948f4c91f00a) Merge branch 'master' of github.com:chbrown/node-optimist (@chevex)
-- [2b75da2](https://github.com/bcoe/yargs/commit/2b75da2624061e0f4f3107d20303c06ec9054906) Merge branch 'master' of github.com:seanzhou1023/node-optimist (@chevex)
-- [d9bda11](https://github.com/bcoe/yargs/commit/d9bda1116e26f3b40e833ca9ca19263afea53565) Merge branch 'patch-1' of github.com:thefourtheye/node-optimist (@chevex)
-- [d6cc606](https://github.com/bcoe/yargs/commit/d6cc6064a4f1bea38a16a4430b8a1334832fbeff) Renamed README. (@chevex)
-- [9498d3f](https://github.com/bcoe/yargs/commit/9498d3f59acfb5e102826503e681623c3a64b178) Renamed readme and added .gitignore. (@chevex)
-- [bbd1fe3](https://github.com/bcoe/yargs/commit/bbd1fe37fefa366dde0fb3dc44d91fe8b28f57f5) Included examples for ```help``` and ```showHelp``` functions and fixed few formatting issues (@thefourtheye)
-- [37fea04](https://github.com/bcoe/yargs/commit/37fea0470a5796a0294c1dcfff68d8041650e622) .alias({}) behaves differently based on mapping direction when generating descriptions (@chbrown)
-- [855b20d](https://github.com/bcoe/yargs/commit/855b20d0be567ca121d06b30bea64001b74f3d6d) Documented function signatures are useful for dynamically typed languages. (@chbrown)
-
-### 0.6.0 (2013/06/25 08:48 +00:00)
-- [d37bfe0](https://github.com/bcoe/yargs/commit/d37bfe05ae6d295a0ab481efe4881222412791f4) all tests passing using minimist (@substack)
-- [76f1352](https://github.com/bcoe/yargs/commit/76f135270399d01f2bbc621e524a5966e5c422fd) all parse tests now passing (@substack)
-- [a7b6754](https://github.com/bcoe/yargs/commit/a7b6754276c38d1565479a5685c3781aeb947816) using minimist, some tests passing (@substack)
-- [6655688](https://github.com/bcoe/yargs/commit/66556882aa731cbbbe16cc4d42c85740a2e98099) Give credit where its due (@DeadAlready)
-- [602a2a9](https://github.com/bcoe/yargs/commit/602a2a92a459f93704794ad51b115bbb08b535ce) v0.5.3 - Remove wordwrap as dependency (@DeadAlready)
-
-### 0.5.2 (2013/05/31 03:46 +00:00)
-- [4497ca5](https://github.com/bcoe/yargs/commit/4497ca55e332760a37b866ec119ded347ca27a87) fixed the whitespace bug without breaking anything else (@substack)
-- [5a3dd1a](https://github.com/bcoe/yargs/commit/5a3dd1a4e0211a38613c6e02f61328e1031953fa) failing test for whitespace arg (@substack)
-
-### 0.5.1 (2013/05/30 07:17 +00:00)
-- [a20228f](https://github.com/bcoe/yargs/commit/a20228f62a454755dd07f628a7c5759113918327) fix parse() to work with functions before it (@substack)
-- [b13bd4c](https://github.com/bcoe/yargs/commit/b13bd4cac856a9821d42fa173bdb58f089365a7d) failing test for parse() with modifiers (@substack)
-
-### 0.5.0 (2013/05/18 21:59 +00:00)
-- [c474a64](https://github.com/bcoe/yargs/commit/c474a649231527915c222156e3b40806d365a87c) fixes for dash (@substack)
-
-### 0.4.0 (2013/04/13 19:03 +00:00)
-- [dafe3e1](https://github.com/bcoe/yargs/commit/dafe3e18d7c6e7c2d68e06559df0e5cbea3adb14) failing short test (@substack)
-
-### 0.3.7 (2013/04/04 04:07 +00:00)
-- [6c7a0ec](https://github.com/bcoe/yargs/commit/6c7a0ec94ce4199a505f0518b4d6635d4e47cc81) Fix for windows. On windows there is no _ in environment. (@hdf)
-
-### 0.3.6 (2013/04/04 04:04 +00:00)
-- [e72346a](https://github.com/bcoe/yargs/commit/e72346a727b7267af5aa008b418db89970873f05) Add support for newlines in -a="" arguments (@danielbeardsley)
-- [71e1fb5](https://github.com/bcoe/yargs/commit/71e1fb55ea9987110a669ac6ec12338cfff3821c) drop 0.4, add 0.8 to travis (@substack)
-
-### 0.3.5 (2012/10/10 11:09 +00:00)
-- [ee692b3](https://github.com/bcoe/yargs/commit/ee692b37554c70a0bb16389a50a26b66745cbbea) Fix parsing booleans (@vojtajina)
-- [5045122](https://github.com/bcoe/yargs/commit/5045122664c3f5b4805addf1be2148d5856f7ce8) set $0 properly in the tests (@substack)
-
-### 0.3.4 (2012/04/30 06:54 +00:00)
-- [f28c0e6](https://github.com/bcoe/yargs/commit/f28c0e62ca94f6e0bb2e6d82fc3d91a55e69b903) bump for string "true" params (@substack)
-- [8f44aeb](https://github.com/bcoe/yargs/commit/8f44aeb74121ddd689580e2bf74ef86a605e9bf2) Fix failing test for aliased booleans. (@coderarity)
-- [b9f7b61](https://github.com/bcoe/yargs/commit/b9f7b613b1e68e11e6c23fbda9e555a517dcc976) Add failing test for short aliased booleans. (@coderarity)
-
-### 0.3.3 (2012/04/30 06:45 +00:00)
-- [541bac8](https://github.com/bcoe/yargs/commit/541bac8dd787a5f1a5d28f6d8deb1627871705e7) Fixes #37.
-
-### 0.3.2 (2012/04/12 20:28 +00:00)
-- [3a0f014](https://github.com/bcoe/yargs/commit/3a0f014c1451280ac1c9caa1f639d31675586eec) travis badge (@substack)
-- [4fb60bf](https://github.com/bcoe/yargs/commit/4fb60bf17845f4ce3293f8ca49c9a1a7c736cfce) Fix boolean aliases. (@coderarity)
-- [f14dda5](https://github.com/bcoe/yargs/commit/f14dda546efc4fe06ace04d36919bfbb7634f79b) Adjusted package.json to use tap (@jfhbrook)
-- [88e5d32](https://github.com/bcoe/yargs/commit/88e5d32295be6e544c8d355ff84e355af38a1c74) test/usage.js no longer hangs (@jfhbrook)
-- [e1e740c](https://github.com/bcoe/yargs/commit/e1e740c27082f3ce84deca2093d9db2ef735d0e5) two tests for combined boolean/alias opts parsing (@jfhbrook)
-
-### 0.3.1 (2011/12/31 08:44 +00:00)
-- [d09b719](https://github.com/bcoe/yargs/commit/d09b71980ef711b6cf3918cd19beec8257e40e82) If "default" is set to false it was not passed on, fixed. (@wolframkriesing)
-
-### 0.3.0 (2011/12/09 06:03 +00:00)
-- [6e74aa7](https://github.com/bcoe/yargs/commit/6e74aa7b46a65773e20c0cb68d2d336d4a0d553d) bump and documented dot notation (@substack)
-
-### 0.2.7 (2011/10/20 02:25 +00:00)
-- [94adee2](https://github.com/bcoe/yargs/commit/94adee20e17b58d0836f80e8b9cdbe9813800916) argv._ can be told 'Hey! argv._! Don't be messing with my args.', and it WILL obey (@colinta)
-- [c46fdd5](https://github.com/bcoe/yargs/commit/c46fdd56a05410ae4a1e724a4820c82e77ff5469) optimistic critter image (@substack)
-- [5c95c73](https://github.com/bcoe/yargs/commit/5c95c73aedf4c7482bd423e10c545e86d7c8a125) alias options() to option() (@substack)
-- [f7692ea](https://github.com/bcoe/yargs/commit/f7692ea8da342850af819367833abb685fde41d8) [fix] Fix for parsing boolean edge case (@indexzero)
-- [d1f92d1](https://github.com/bcoe/yargs/commit/d1f92d1425bd7f356055e78621b30cdf9741a3c2)
-- [b01bda8](https://github.com/bcoe/yargs/commit/b01bda8d86e455bbf74ce497864cb8ab5b9fb847) [fix test] Update to ensure optimist is aware of default booleans. Associated tests included (@indexzero)
-- [aa753e7](https://github.com/bcoe/yargs/commit/aa753e7c54fb3a12f513769a0ff6d54aa0f63943) [dist test] Update devDependencies in package.json. Update test pathing to be more npm and require.paths future-proof (@indexzero)
-- [7bfce2f](https://github.com/bcoe/yargs/commit/7bfce2f3b3c98e6539e7549d35fbabced7e9341e) s/sys/util/ (@substack)
-- [d420a7a](https://github.com/bcoe/yargs/commit/d420a7a9c890d2cdb11acfaf3ea3f43bc3e39f41) update usage output (@substack)
-- [cf86eed](https://github.com/bcoe/yargs/commit/cf86eede2e5fc7495b6ec15e6d137d9ac814f075) some sage readme protips about parsing rules (@substack)
-- [5da9f7a](https://github.com/bcoe/yargs/commit/5da9f7a5c0e1758ec7c5801fb3e94d3f6e970513) documented all the methods finally (@substack)
-- [8ca6879](https://github.com/bcoe/yargs/commit/8ca6879311224b25933642987300f6a29de5c21b) fenced syntax highlighting (@substack)
-- [b72bacf](https://github.com/bcoe/yargs/commit/b72bacf1d02594778c1935405bc8137eb61761dc) right-alignment of wrapped extra params (@substack)
-- [2b980bf](https://github.com/bcoe/yargs/commit/2b980bf2656b4ee8fc5134dc5f56a48855c35198) now with .wrap() (@substack)
-- [d614f63](https://github.com/bcoe/yargs/commit/d614f639654057d1b7e35e3f5a306e88ec2ad1e4) don't show 'Options:' when there aren't any (@substack)
-- [691eda3](https://github.com/bcoe/yargs/commit/691eda354df97b5a86168317abcbcaabdc08a0fb) failing test for multi-aliasing (@substack)
-- [0826c9f](https://github.com/bcoe/yargs/commit/0826c9f462109feab2bc7a99346d22e72bf774b7) "Options:" > "options:" (@substack)
-- [72f7490](https://github.com/bcoe/yargs/commit/72f749025d01b7f295738ed370a669d885fbada0) [minor] Update formatting for `.showHelp()` (@indexzero)
-- [75aecce](https://github.com/bcoe/yargs/commit/75aeccea74329094072f95800e02c275e7d999aa) options works again, too lazy to write a proper test right now (@substack)
-- [f742e54](https://github.com/bcoe/yargs/commit/f742e5439817c662dc3bd8734ddd6467e6018cfd) line_count_options example, which breaks (@substack)
-- [4ca06b8](https://github.com/bcoe/yargs/commit/4ca06b8b4ea99b5d5714b315a2a8576bee6e5537) line count example (@substack)
-- [eeb8423](https://github.com/bcoe/yargs/commit/eeb8423e0a5ecc9dc3eb1e6df9f3f8c1c88f920b) remove self.argv setting in boolean (@substack)
-- [6903412](https://github.com/bcoe/yargs/commit/69034126804660af9cc20ea7f4457b50338ee3d7) removed camel case for now (@substack)
-- [5a0d88b](https://github.com/bcoe/yargs/commit/5a0d88bf23e9fa79635dd034e2a1aa992acc83cd) remove dead longest checking code (@substack)
-- [d782170](https://github.com/bcoe/yargs/commit/d782170babf7284b1aa34f5350df0dd49c373fa8) .help() too (@substack)
-- [622ec17](https://github.com/bcoe/yargs/commit/622ec17379bb5374fdbb190404c82bc600975791) rm old help generator (@substack)
-- [7c8baac](https://github.com/bcoe/yargs/commit/7c8baac4d66195e9f5158503ea9ebfb61153dab7) nub keys (@substack)
-- [8197785](https://github.com/bcoe/yargs/commit/8197785ad4762465084485b041abd722f69bf344) generate help message based on the previous calls, todo: nub (@substack)
-- [3ffbdc3](https://github.com/bcoe/yargs/commit/3ffbdc33c8f5e83d4ea2ac60575ce119570c7ede) stub out new showHelp, better checks (@substack)
-- [d4e21f5](https://github.com/bcoe/yargs/commit/d4e21f56a4830f7de841900d3c79756fb9886184) let .options() take single options too (@substack)
-- [3c4cf29](https://github.com/bcoe/yargs/commit/3c4cf2901a29bac119cca8e983028d8669230ec6) .options() is now heaps simpler (@substack)
-- [89f0d04](https://github.com/bcoe/yargs/commit/89f0d043cbccd302f10ab30c2069e05d2bf817c9) defaults work again, all tests pass (@substack)
-- [dd87333](https://github.com/bcoe/yargs/commit/dd8733365423006a6e4156372ebb55f98323af58) update test error messages, down to 2 failing tests (@substack)
-- [53f7bc6](https://github.com/bcoe/yargs/commit/53f7bc626b9875f2abdfc5dd7a80bde7f14143a3) fix for bools doubling up, passes the parse test again, others fail (@substack)
-- [2213e2d](https://github.com/bcoe/yargs/commit/2213e2ddc7263226fba717fb041dc3fde9bc2ee4) refactored for an argv getter, failing several tests (@substack)
-- [d1e7379](https://github.com/bcoe/yargs/commit/d1e737970f15c6c006bebdd8917706827ff2f0f2) just rescan for now, alias test passes (@substack)
-- [b2f8c99](https://github.com/bcoe/yargs/commit/b2f8c99cc477a8eb0fdf4cf178e1785b63185cfd) failing alias test (@substack)
-- [d0c0174](https://github.com/bcoe/yargs/commit/d0c0174daa144bfb6dc7290fdc448c393c475e15) .alias() (@substack)
-- [d85f431](https://github.com/bcoe/yargs/commit/d85f431ad7d07b058af3f2a57daa51495576c164) [api] Remove `.describe()` in favor of building upon the existing `.usage()` API (@indexzero)
-- [edbd527](https://github.com/bcoe/yargs/commit/edbd5272a8e213e71acd802782135c7f9699913a) [doc api] Add `.describe()`, `.options()`, and `.showHelp()` methods along with example. (@indexzero)
-- [be4902f](https://github.com/bcoe/yargs/commit/be4902ff0961ae8feb9093f2c0a4066463ded2cf) updates for coffee since it now does argv the node way (@substack)
-- [e24cb23](https://github.com/bcoe/yargs/commit/e24cb23798ee64e53b60815e7fda78b87f42390c) more general coffeescript detection (@substack)
-- [78ac753](https://github.com/bcoe/yargs/commit/78ac753e5d0ec32a96d39d893272afe989e42a4d) Don't trigger the CoffeeScript hack when running under node_g. (@papandreou)
-- [bcfe973](https://github.com/bcoe/yargs/commit/bcfe9731d7f90d4632281b8a52e8d76eb0195ae6) .string() but failing test (@substack)
-- [1987aca](https://github.com/bcoe/yargs/commit/1987aca28c7ba4e8796c07bbc547cb984804c826) test hex strings (@substack)
-- [ef36db3](https://github.com/bcoe/yargs/commit/ef36db32259b0b0d62448dc907c760e5554fb7e7) more keywords (@substack)
-- [cc53c56](https://github.com/bcoe/yargs/commit/cc53c56329960bed6ab077a79798e991711ba01d) Added camelCase function that converts --multi-word-option to camel case (so it becomes argv.multiWordOption). (@papandreou)
-- [60b57da](https://github.com/bcoe/yargs/commit/60b57da36797716e5783a633c6d5c79099016d45) fixed boolean bug by rescanning (@substack)
-- [dff6d07](https://github.com/bcoe/yargs/commit/dff6d078d97f8ac503c7d18dcc7b7a8c364c2883) boolean examples (@substack)
-- [0e380b9](https://github.com/bcoe/yargs/commit/0e380b92c4ef4e3c8dac1da18b5c31d85b1d02c9) boolean() with passing test (@substack)
-- [62644d4](https://github.com/bcoe/yargs/commit/62644d4bffbb8d1bbf0c2baf58a1d14a6359ef07) coffee compatibility with node regex for versions too (@substack)
-- [430fafc](https://github.com/bcoe/yargs/commit/430fafcf1683d23774772826581acff84b456827) argv._ fixed by fixing the coffee detection (@substack)
-- [343b8af](https://github.com/bcoe/yargs/commit/343b8afefd98af274ebe21b5a16b3a949ec5429f) whichNodeArgs test fails too (@substack)
-- [63df2f3](https://github.com/bcoe/yargs/commit/63df2f371f31e63d7f1dec2cbf0022a5f08da9d2) replicated mnot's bug in whichNodeEmpty test (@substack)
-- [35473a4](https://github.com/bcoe/yargs/commit/35473a4d93a45e5e7e512af8bb54ebb532997ae1) test for ./bin usage (@substack)
-- [13df151](https://github.com/bcoe/yargs/commit/13df151e44228eed10e5441c7cd163e086c458a4) don't coerce booleans to numbers (@substack)
-- [85f8007](https://github.com/bcoe/yargs/commit/85f8007e93b8be7124feea64b1f1916d8ba1894a) package bump for automatic number conversion (@substack)
-- [8f17014](https://github.com/bcoe/yargs/commit/8f170141cded4ccc0c6d67a849c5bf996aa29643) updated readme and examples with new auto-numberification goodness (@substack)
-- [73dc901](https://github.com/bcoe/yargs/commit/73dc9011ac968e39b55e19e916084a839391b506) auto number conversion works yay (@substack)
-- [bcec56b](https://github.com/bcoe/yargs/commit/bcec56b3d031e018064cbb691539ccc4f28c14ad) failing test for not-implemented auto numification (@substack)
-- [ebd2844](https://github.com/bcoe/yargs/commit/ebd2844d683feeac583df79af0e5124a7a7db04e) odd that eql doesn't check types careflly (@substack)
-- [fd854b0](https://github.com/bcoe/yargs/commit/fd854b02e512ce854b76386d395672a7969c1bc4) package author + keywords (@substack)
-- [656a1d5](https://github.com/bcoe/yargs/commit/656a1d5a1b7c0e49d72e80cb13f20671d56f76c6) updated readme with .default() stuff (@substack)
-- [cd7f8c5](https://github.com/bcoe/yargs/commit/cd7f8c55f0b82b79b690d14c5f806851236998a1) passing tests for new .default() behavior (@substack)
-- [932725e](https://github.com/bcoe/yargs/commit/932725e39ce65bc91a0385a5fab659a5fa976ac2) new default() thing for setting default key/values (@substack)
-- [4e6c7ab](https://github.com/bcoe/yargs/commit/4e6c7aba6374ac9ebc6259ecf91f13af7bce40e3) test for coffee usage (@substack)
-- [d54ffcc](https://github.com/bcoe/yargs/commit/d54ffccf2a5a905f51ed5108f7c647f35d64ae23) new --key value style with passing tests. NOTE: changes existing behavior (@substack)
-- [ed2a2d5](https://github.com/bcoe/yargs/commit/ed2a2d5d828100ebeef6385c0fb88d146a5cfe9b) package bump for summatix's coffee script fix (@substack)
-- [75a975e](https://github.com/bcoe/yargs/commit/75a975eed8430d28e2a79dc9e6d819ad545f4587) Added support for CoffeeScript (@summatix)
-- [56b2b1d](https://github.com/bcoe/yargs/commit/56b2b1de8d11f8a2b91979d8ae2d6db02d8fe64d) test coverage for the falsy check() usage (@substack)
-- [a4843a9](https://github.com/bcoe/yargs/commit/a4843a9f0e69ffb4afdf6a671d89eb6f218be35d) check bug fixed plus a handy string (@substack)
-- [857bd2d](https://github.com/bcoe/yargs/commit/857bd2db933a5aaa9cfecba0ced2dc9b415f8111) tests for demandCount, back up to 100% coverage (@substack)
-- [073b776](https://github.com/bcoe/yargs/commit/073b7768ebd781668ef05c13f9003aceca2f5c35) call demandCount from demand (@substack)
-- [4bd4b7a](https://github.com/bcoe/yargs/commit/4bd4b7a085c8b6ce1d885a0f486cc9865cee2db1) add demandCount to check for the number of arguments in the _ list (@marshall)
-- [b8689ac](https://github.com/bcoe/yargs/commit/b8689ac68dacf248119d242bba39a41cb0adfa07) Rebase checks. That will be its own module eventually. (@substack)
-- [e688370](https://github.com/bcoe/yargs/commit/e688370b576f0aa733c3f46183df69e1b561668e) a $0 like in perl (@substack)
-- [2e5e196](https://github.com/bcoe/yargs/commit/2e5e1960fc19afb21fb3293752316eaa8bcd3609) usage test hacking around process and console (@substack)
-- [fcc3521](https://github.com/bcoe/yargs/commit/fcc352163fbec6a1dfe8caf47a0df39de24fe016) description pun (@substack)
-- [87a1fe2](https://github.com/bcoe/yargs/commit/87a1fe29037ca2ca5fefda85141aaeb13e8ce761) mit/x11 license (@substack)
-- [8d089d2](https://github.com/bcoe/yargs/commit/8d089d24cd687c0bde3640a96c09b78f884900dd) bool example is more consistent and also shows off short option grouping (@substack)
-- [448d747](https://github.com/bcoe/yargs/commit/448d7473ac68e8e03d8befc9457b0d9e21725be0) start of the readme and examples (@substack)
-- [da74dea](https://github.com/bcoe/yargs/commit/da74dea799a9b59dbf022cbb8001bfdb0d52eec9) more tests for long and short captures (@substack)
-- [ab6387e](https://github.com/bcoe/yargs/commit/ab6387e6769ca4af82ca94c4c67c7319f0d9fcfa) silly bug in the tests with s/not/no/, all tests pass now (@substack)
-- [102496a](https://github.com/bcoe/yargs/commit/102496a319e8e06f6550d828fc2f72992c7d9ecc) hack an instance for process.argv onto Argv so the export can be called to create an instance or used for argv, which is the most common case (@substack)
-- [a01caeb](https://github.com/bcoe/yargs/commit/a01caeb532546d19f68f2b2b87f7036cfe1aaedd) divide example (@substack)
-- [443da55](https://github.com/bcoe/yargs/commit/443da55736acbaf8ff8b04d1b9ce19ab016ddda2) start of the lib with a package.json (@substack)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/README.md b/deps/npm/node_modules/libnpx/node_modules/yargs/README.md
deleted file mode 100644
index 20a18da2ca..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/README.md
+++ /dev/null
@@ -1,103 +0,0 @@
-# Yargs
-
-[![Build Status][travis-image]][travis-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-[![NPM version][npm-image]][npm-url]
-[![Windows Tests][windows-image]][windows-url]
-[![js-standard-style][standard-image]][standard-url]
-[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
-[![Gitter][gitter-image]][gitter-url]
-
-> Yargs be a node.js library fer hearties tryin' ter parse optstrings.
-
-<img width="250" src="/yargs-logo.png">
-
-Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. It gives you:
-
-* commands and (grouped) options (`my-program.js serve --port=5000`).
-* a dynamically generated help menu based on your arguments.
-
-> <img width="400" src="/screen.png">
-
-* bash-completion shortcuts for commands and options.
-* and [tons more](/docs/api.md).
-
-## Installation
-
-```bash
-npm i yargs --save
-```
-
-## Simple Example
-
-````javascript
-#!/usr/bin/env node
-const argv = require('yargs').argv
-
-if (argv.ships > 3 && argv.distance < 53.5) {
- console.log('Plunder more riffiwobbles!')
-} else {
- console.log('Retreat from the xupptumblers!')
-}
-````
-
-```bash
-$ ./plunder.js --ships=4 --distance=22
-Plunder more riffiwobbles!
-
-$ ./plunder.js --ships 12 --distance 98.7
-Retreat from the xupptumblers!
-```
-
-## Complex Example
-
-```js
-#!/usr/bin/env node
-const yargs = require('yargs') // eslint-disable-line
- .command('serve', 'start the server', (yargs) => {
- yargs.option('port', {
- describe: 'port to bind on',
- default: 5000
- })
- }, (argv) => {
- if (argv.verbose) console.info(`start server on :${argv.port}`)
- serve(argv.port)
- })
- .option('verbose', {
- alias: 'v',
- default: false
- })
- .help()
- .argv
-```
-
-## Table of Contents
-
-* [Yargs' API](/docs/api.md)
-* [Examples](/docs/examples.md)
-* [Parsing Tricks](/docs/tricks.md)
- * [Stop the Parser](/docs/tricks.md#stop)
- * [Negating Boolean Arguments](/docs/tricks.md#negate)
- * [Numbers](/docs/tricks.md#numbers)
- * [Arrays](/docs/tricks.md#arrays)
- * [Objects](/docs/tricks.md#objects)
-* [Advanced Topics](/docs/advanced.md)
- * [Composing Your App Using Commands](/docs/advanced.md#commands)
- * [Building Configurable CLI Apps](/docs/advanced.md#configuration)
- * [Customizing Yargs' Parser](/docs/advanced.md#customizing)
-* [Contributing](/contributing.md)
-
-[travis-url]: https://travis-ci.org/yargs/yargs
-[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg
-[coveralls-url]: https://coveralls.io/github/yargs/yargs
-[coveralls-image]: https://img.shields.io/coveralls/yargs/yargs.svg
-[npm-url]: https://www.npmjs.com/package/yargs
-[npm-image]: https://img.shields.io/npm/v/yargs.svg
-[windows-url]: https://ci.appveyor.com/project/bcoe/yargs-ljwvf
-[windows-image]: https://img.shields.io/appveyor/ci/bcoe/yargs-ljwvf/master.svg?label=Windows%20Tests
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
-[standard-url]: http://standardjs.com/
-[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg
-[conventional-commits-url]: https://conventionalcommits.org/
-[gitter-image]: https://img.shields.io/gitter/room/nwjs/nw.js.svg?maxAge=2592000
-[gitter-url]: https://gitter.im/yargs/Lobby?utm_source=share-link&utm_medium=link&utm_campaign=share-link
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/index.js
deleted file mode 100644
index 37450cf7a6..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/index.js
+++ /dev/null
@@ -1,31 +0,0 @@
-// classic singleton yargs API, to use yargs
-// without running as a singleton do:
-// require('yargs/yargs')(process.argv.slice(2))
-const yargs = require('./yargs')
-
-Argv(process.argv.slice(2))
-
-module.exports = Argv
-
-function Argv (processArgs, cwd) {
- const argv = yargs(processArgs, cwd, require)
- singletonify(argv)
- return argv
-}
-
-/* Hack an instance of Argv with process.argv into Argv
- so people can do
- require('yargs')(['--beeble=1','-z','zizzle']).argv
- to parse a list of args and
- require('yargs').argv
- to get a parsed version of process.argv.
-*/
-function singletonify (inst) {
- Object.keys(inst).forEach(function (key) {
- if (key === 'argv') {
- Argv.__defineGetter__(key, inst.__lookupGetter__(key))
- } else {
- Argv[key] = typeof inst[key] === 'function' ? inst[key].bind(inst) : inst[key]
- }
- })
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js
deleted file mode 100644
index d3e72fce57..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/argsert.js
+++ /dev/null
@@ -1,72 +0,0 @@
-const command = require('./command')()
-const YError = require('./yerror')
-
-const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']
-
-module.exports = function (expected, callerArguments, length) {
- // TODO: should this eventually raise an exception.
- try {
- // preface the argument description with "cmd", so
- // that we can run it through yargs' command parser.
- var position = 0
- var parsed = {demanded: [], optional: []}
- if (typeof expected === 'object') {
- length = callerArguments
- callerArguments = expected
- } else {
- parsed = command.parseCommand('cmd ' + expected)
- }
- const args = [].slice.call(callerArguments)
-
- while (args.length && args[args.length - 1] === undefined) args.pop()
- length = length || args.length
-
- if (length < parsed.demanded.length) {
- throw new YError('Not enough arguments provided. Expected ' + parsed.demanded.length +
- ' but received ' + args.length + '.')
- }
-
- const totalCommands = parsed.demanded.length + parsed.optional.length
- if (length > totalCommands) {
- throw new YError('Too many arguments provided. Expected max ' + totalCommands +
- ' but received ' + length + '.')
- }
-
- parsed.demanded.forEach(function (demanded) {
- const arg = args.shift()
- const observedType = guessType(arg)
- const matchingTypes = demanded.cmd.filter(function (type) {
- return type === observedType || type === '*'
- })
- if (matchingTypes.length === 0) argumentTypeError(observedType, demanded.cmd, position, false)
- position += 1
- })
-
- parsed.optional.forEach(function (optional) {
- if (args.length === 0) return
- const arg = args.shift()
- const observedType = guessType(arg)
- const matchingTypes = optional.cmd.filter(function (type) {
- return type === observedType || type === '*'
- })
- if (matchingTypes.length === 0) argumentTypeError(observedType, optional.cmd, position, true)
- position += 1
- })
- } catch (err) {
- console.warn(err.stack)
- }
-}
-
-function guessType (arg) {
- if (Array.isArray(arg)) {
- return 'array'
- } else if (arg === null) {
- return 'null'
- }
- return typeof arg
-}
-
-function argumentTypeError (observedType, allowedTypes, position, optional) {
- throw new YError('Invalid ' + (positionName[position] || 'manyith') + ' argument.' +
- ' Expected ' + allowedTypes.join(' or ') + ' but received ' + observedType + '.')
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js
deleted file mode 100644
index 7d5a3cef24..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/assign.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// lazy Object.assign logic that only works for merging
-// two objects; eventually we should replace this with Object.assign.
-module.exports = function assign (defaults, configuration) {
- var o = {}
- configuration = configuration || {}
-
- Object.keys(defaults).forEach(function (k) {
- o[k] = defaults[k]
- })
- Object.keys(configuration).forEach(function (k) {
- o[k] = configuration[k]
- })
-
- return o
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js
deleted file mode 100644
index 3567cf9532..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/command.js
+++ /dev/null
@@ -1,336 +0,0 @@
-const path = require('path')
-const inspect = require('util').inspect
-const camelCase = require('camelcase')
-
-const DEFAULT_MARKER = '*'
-
-// handles parsing positional arguments,
-// and populating argv with said positional
-// arguments.
-module.exports = function (yargs, usage, validation) {
- const self = {}
-
- var handlers = {}
- var aliasMap = {}
- var defaultCommand
- self.addHandler = function (cmd, description, builder, handler) {
- var aliases = []
- handler = handler || function () {}
-
- if (Array.isArray(cmd)) {
- aliases = cmd.slice(1)
- cmd = cmd[0]
- } else if (typeof cmd === 'object') {
- var command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd)
- if (cmd.aliases) command = [].concat(command).concat(cmd.aliases)
- self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler)
- return
- }
-
- // allow a module to be provided instead of separate builder and handler
- if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') {
- self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler)
- return
- }
-
- // parse positionals out of cmd string
- var parsedCommand = self.parseCommand(cmd)
-
- // remove positional args from aliases only
- aliases = aliases.map(function (alias) {
- return self.parseCommand(alias).cmd
- })
-
- // check for default and filter out '*''
- var isDefault = false
- var parsedAliases = [parsedCommand.cmd].concat(aliases).filter(function (c) {
- if (c === DEFAULT_MARKER) {
- isDefault = true
- return false
- }
- return true
- })
-
- // short-circuit if default with no aliases
- if (isDefault && parsedAliases.length === 0) {
- defaultCommand = {
- original: cmd.replace(DEFAULT_MARKER, '').trim(),
- handler: handler,
- builder: builder || {},
- demanded: parsedCommand.demanded,
- optional: parsedCommand.optional
- }
- return
- }
-
- // shift cmd and aliases after filtering out '*'
- if (isDefault) {
- parsedCommand.cmd = parsedAliases[0]
- aliases = parsedAliases.slice(1)
- cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd)
- }
-
- // populate aliasMap
- aliases.forEach(function (alias) {
- aliasMap[alias] = parsedCommand.cmd
- })
-
- if (description !== false) {
- usage.command(cmd, description, isDefault, aliases)
- }
-
- handlers[parsedCommand.cmd] = {
- original: cmd,
- handler: handler,
- builder: builder || {},
- demanded: parsedCommand.demanded,
- optional: parsedCommand.optional
- }
-
- if (isDefault) defaultCommand = handlers[parsedCommand.cmd]
- }
-
- self.addDirectory = function (dir, context, req, callerFile, opts) {
- opts = opts || {}
- // disable recursion to support nested directories of subcommands
- if (typeof opts.recurse !== 'boolean') opts.recurse = false
- // exclude 'json', 'coffee' from require-directory defaults
- if (!Array.isArray(opts.extensions)) opts.extensions = ['js']
- // allow consumer to define their own visitor function
- const parentVisit = typeof opts.visit === 'function' ? opts.visit : function (o) { return o }
- // call addHandler via visitor function
- opts.visit = function (obj, joined, filename) {
- const visited = parentVisit(obj, joined, filename)
- // allow consumer to skip modules with their own visitor
- if (visited) {
- // check for cyclic reference
- // each command file path should only be seen once per execution
- if (~context.files.indexOf(joined)) return visited
- // keep track of visited files in context.files
- context.files.push(joined)
- self.addHandler(visited)
- }
- return visited
- }
- require('require-directory')({ require: req, filename: callerFile }, dir, opts)
- }
-
- // lookup module object from require()d command and derive name
- // if module was not require()d and no name given, throw error
- function moduleName (obj) {
- const mod = require('which-module')(obj)
- if (!mod) throw new Error('No command name given for module: ' + inspect(obj))
- return commandFromFilename(mod.filename)
- }
-
- // derive command name from filename
- function commandFromFilename (filename) {
- return path.basename(filename, path.extname(filename))
- }
-
- function extractDesc (obj) {
- for (var keys = ['describe', 'description', 'desc'], i = 0, l = keys.length, test; i < l; i++) {
- test = obj[keys[i]]
- if (typeof test === 'string' || typeof test === 'boolean') return test
- }
- return false
- }
-
- self.parseCommand = function (cmd) {
- var extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ')
- var splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/)
- var bregex = /\.*[\][<>]/g
- var parsedCommand = {
- cmd: (splitCommand.shift()).replace(bregex, ''),
- demanded: [],
- optional: []
- }
- splitCommand.forEach(function (cmd, i) {
- var variadic = false
- cmd = cmd.replace(/\s/g, '')
- if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) variadic = true
- if (/^\[/.test(cmd)) {
- parsedCommand.optional.push({
- cmd: cmd.replace(bregex, '').split('|'),
- variadic: variadic
- })
- } else {
- parsedCommand.demanded.push({
- cmd: cmd.replace(bregex, '').split('|'),
- variadic: variadic
- })
- }
- })
- return parsedCommand
- }
-
- self.getCommands = function () {
- return Object.keys(handlers).concat(Object.keys(aliasMap))
- }
-
- self.getCommandHandlers = function () {
- return handlers
- }
-
- self.hasDefaultCommand = function () {
- return !!defaultCommand
- }
-
- self.runCommand = function (command, yargs, parsed, commandIndex) {
- var aliases = parsed.aliases
- var commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand
- var currentContext = yargs.getContext()
- var numFiles = currentContext.files.length
- var parentCommands = currentContext.commands.slice()
-
- // what does yargs look like after the buidler is run?
- var innerArgv = parsed.argv
- var innerYargs = null
- var positionalMap = {}
-
- if (command) currentContext.commands.push(command)
- if (typeof commandHandler.builder === 'function') {
- // a function can be provided, which builds
- // up a yargs chain and possibly returns it.
- innerYargs = commandHandler.builder(yargs.reset(parsed.aliases))
- // if the builder function did not yet parse argv with reset yargs
- // and did not explicitly set a usage() string, then apply the
- // original command string as usage() for consistent behavior with
- // options object below.
- if (yargs.parsed === false) {
- if (typeof yargs.getUsageInstance().getUsage() === 'undefined') {
- yargs.usage('$0 ' + (parentCommands.length ? parentCommands.join(' ') + ' ' : '') + commandHandler.original)
- }
- innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true, commandIndex) : yargs._parseArgs(null, null, true, commandIndex)
- } else {
- innerArgv = yargs.parsed.argv
- }
-
- if (innerYargs && yargs.parsed === false) aliases = innerYargs.parsed.aliases
- else aliases = yargs.parsed.aliases
- } else if (typeof commandHandler.builder === 'object') {
- // as a short hand, an object can instead be provided, specifying
- // the options that a command takes.
- innerYargs = yargs.reset(parsed.aliases)
- innerYargs.usage('$0 ' + (parentCommands.length ? parentCommands.join(' ') + ' ' : '') + commandHandler.original)
- Object.keys(commandHandler.builder).forEach(function (key) {
- innerYargs.option(key, commandHandler.builder[key])
- })
- innerArgv = innerYargs._parseArgs(null, null, true, commandIndex)
- aliases = innerYargs.parsed.aliases
- }
-
- if (!yargs._hasOutput()) {
- positionalMap = populatePositionals(commandHandler, innerArgv, currentContext, yargs)
- }
-
- // we apply validation post-hoc, so that custom
- // checks get passed populated positional arguments.
- if (!yargs._hasOutput()) yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error)
-
- if (commandHandler.handler && !yargs._hasOutput()) {
- yargs._setHasOutput()
- commandHandler.handler(innerArgv)
- }
-
- if (command) currentContext.commands.pop()
- numFiles = currentContext.files.length - numFiles
- if (numFiles > 0) currentContext.files.splice(numFiles * -1, numFiles)
-
- return innerArgv
- }
-
- // transcribe all positional arguments "command <foo> <bar> [apple]"
- // onto argv.
- function populatePositionals (commandHandler, argv, context, yargs) {
- argv._ = argv._.slice(context.commands.length) // nuke the current commands
- var demanded = commandHandler.demanded.slice(0)
- var optional = commandHandler.optional.slice(0)
- var positionalMap = {}
-
- validation.positionalCount(demanded.length, argv._.length)
-
- while (demanded.length) {
- var demand = demanded.shift()
- populatePositional(demand, argv, yargs, positionalMap)
- }
-
- while (optional.length) {
- var maybe = optional.shift()
- populatePositional(maybe, argv, yargs, positionalMap)
- }
-
- argv._ = context.commands.concat(argv._)
- return positionalMap
- }
-
- // populate a single positional argument and its
- // aliases onto argv.
- function populatePositional (positional, argv, yargs, positionalMap) {
- // "positional" consists of the positional.cmd, an array representing
- // the positional's name and aliases, and positional.variadic
- // indicating whether or not it is a variadic array.
- var variadics = null
- var value = null
- for (var i = 0, cmd; (cmd = positional.cmd[i]) !== undefined; i++) {
- if (positional.variadic) {
- if (variadics) argv[cmd] = variadics.slice(0)
- else argv[cmd] = variadics = argv._.splice(0)
- } else {
- if (!value && !argv._.length) continue
- if (value) argv[cmd] = value
- else argv[cmd] = value = argv._.shift()
- }
- positionalMap[cmd] = true
- postProcessPositional(yargs, argv, cmd)
- addCamelCaseExpansions(argv, cmd)
- }
- }
-
- // TODO move positional arg logic to yargs-parser and remove this duplication
- function postProcessPositional (yargs, argv, key) {
- var coerce = yargs.getOptions().coerce[key]
- if (typeof coerce === 'function') {
- try {
- argv[key] = coerce(argv[key])
- } catch (err) {
- yargs.getUsageInstance().fail(err.message, err)
- }
- }
- }
-
- function addCamelCaseExpansions (argv, option) {
- if (/-/.test(option)) {
- const cc = camelCase(option)
- if (typeof argv[option] === 'object') argv[cc] = argv[option].slice(0)
- else argv[cc] = argv[option]
- }
- }
-
- self.reset = function () {
- handlers = {}
- aliasMap = {}
- defaultCommand = undefined
- return self
- }
-
- // used by yargs.parse() to freeze
- // the state of commands such that
- // we can apply .parse() multiple times
- // with the same yargs instance.
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.handlers = handlers
- frozen.aliasMap = aliasMap
- frozen.defaultCommand = defaultCommand
- }
- self.unfreeze = function () {
- handlers = frozen.handlers
- aliasMap = frozen.aliasMap
- defaultCommand = frozen.defaultCommand
- frozen = undefined
- }
-
- return self
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js
deleted file mode 100644
index 5cd9a18a03..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/completion.js
+++ /dev/null
@@ -1,104 +0,0 @@
-const fs = require('fs')
-const path = require('path')
-
-// add bash completions to your
-// yargs-powered applications.
-module.exports = function (yargs, usage, command) {
- const self = {
- completionKey: 'get-yargs-completions'
- }
-
- // get a list of completion commands.
- // 'args' is the array of strings from the line to be completed
- self.getCompletion = function (args, done) {
- const completions = []
- const current = args.length ? args[args.length - 1] : ''
- const argv = yargs.parse(args, true)
- const aliases = yargs.parsed.aliases
-
- // a custom completion function can be provided
- // to completion().
- if (completionFunction) {
- if (completionFunction.length < 3) {
- var result = completionFunction(current, argv)
-
- // promise based completion function.
- if (typeof result.then === 'function') {
- return result.then(function (list) {
- process.nextTick(function () { done(list) })
- }).catch(function (err) {
- process.nextTick(function () { throw err })
- })
- }
-
- // synchronous completion function.
- return done(result)
- } else {
- // asynchronous completion function
- return completionFunction(current, argv, function (completions) {
- done(completions)
- })
- }
- }
-
- var handlers = command.getCommandHandlers()
- for (var i = 0, ii = args.length; i < ii; ++i) {
- if (handlers[args[i]] && handlers[args[i]].builder) {
- const builder = handlers[args[i]].builder
- if (typeof builder === 'function') {
- const y = yargs.reset()
- builder(y)
- return y.argv
- }
- }
- }
-
- if (!current.match(/^-/)) {
- usage.getCommands().forEach(function (command) {
- if (args.indexOf(command[0]) === -1) {
- completions.push(command[0])
- }
- })
- }
-
- if (current.match(/^-/)) {
- Object.keys(yargs.getOptions().key).forEach(function (key) {
- // If the key and its aliases aren't in 'args', add the key to 'completions'
- var keyAndAliases = [key].concat(aliases[key] || [])
- var notInArgs = keyAndAliases.every(function (val) {
- return args.indexOf('--' + val) === -1
- })
- if (notInArgs) {
- completions.push('--' + key)
- }
- })
- }
-
- done(completions)
- }
-
- // generate the completion script to add to your .bashrc.
- self.generateCompletionScript = function ($0) {
- var script = fs.readFileSync(
- path.resolve(__dirname, '../completion.sh.hbs'),
- 'utf-8'
- )
- var name = path.basename($0)
-
- // add ./to applications not yet installed as bin.
- if ($0.match(/\.js$/)) $0 = './' + $0
-
- script = script.replace(/{{app_name}}/g, name)
- return script.replace(/{{app_path}}/g, $0)
- }
-
- // register a function to perform your own custom
- // completions., this function can be either
- // synchrnous or asynchronous.
- var completionFunction = null
- self.registerFunction = function (fn) {
- completionFunction = fn
- }
-
- return self
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js
deleted file mode 100644
index 42cb9961ee..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/obj-filter.js
+++ /dev/null
@@ -1,10 +0,0 @@
-module.exports = function (original, filter) {
- const obj = {}
- filter = filter || function (k, v) { return true }
- Object.keys(original || {}).forEach(function (key) {
- if (filter(key, original[key])) {
- obj[key] = original[key]
- }
- })
- return obj
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js
deleted file mode 100644
index 43f71225c3..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/usage.js
+++ /dev/null
@@ -1,489 +0,0 @@
-// this file handles outputting usage instructions,
-// failures, etc. keeps logging in one place.
-const stringWidth = require('string-width')
-const objFilter = require('./obj-filter')
-const setBlocking = require('set-blocking')
-const YError = require('./yerror')
-
-module.exports = function (yargs, y18n) {
- const __ = y18n.__
- const self = {}
-
- // methods for ouputting/building failure message.
- var fails = []
- self.failFn = function (f) {
- fails.push(f)
- }
-
- var failMessage = null
- var showHelpOnFail = true
- self.showHelpOnFail = function (enabled, message) {
- if (typeof enabled === 'string') {
- message = enabled
- enabled = true
- } else if (typeof enabled === 'undefined') {
- enabled = true
- }
- failMessage = message
- showHelpOnFail = enabled
- return self
- }
-
- var failureOutput = false
- self.fail = function (msg, err) {
- const logger = yargs._getLoggerInstance()
-
- if (fails.length) {
- for (var i = fails.length - 1; i >= 0; --i) {
- fails[i](msg, err, self)
- }
- } else {
- if (yargs.getExitProcess()) setBlocking(true)
-
- // don't output failure message more than once
- if (!failureOutput) {
- failureOutput = true
- if (showHelpOnFail) yargs.showHelp('error')
- if (msg) logger.error(msg)
- if (failMessage) {
- if (msg) logger.error('')
- logger.error(failMessage)
- }
- }
-
- err = err || new YError(msg)
- if (yargs.getExitProcess()) {
- return yargs.exit(1)
- } else if (yargs._hasParseCallback()) {
- return yargs.exit(1, err)
- } else {
- throw err
- }
- }
- }
-
- // methods for ouputting/building help (usage) message.
- var usage
- self.usage = function (msg) {
- usage = msg
- }
- self.getUsage = function () {
- return usage
- }
-
- var examples = []
- self.example = function (cmd, description) {
- examples.push([cmd, description || ''])
- }
-
- var commands = []
- self.command = function (cmd, description, isDefault, aliases) {
- // the last default wins, so cancel out any previously set default
- if (isDefault) {
- commands = commands.map(function (cmdArray) {
- cmdArray[2] = false
- return cmdArray
- })
- }
- commands.push([cmd, description || '', isDefault, aliases])
- }
- self.getCommands = function () {
- return commands
- }
-
- var descriptions = {}
- self.describe = function (key, desc) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.describe(k, key[k])
- })
- } else {
- descriptions[key] = desc
- }
- }
- self.getDescriptions = function () {
- return descriptions
- }
-
- var epilog
- self.epilog = function (msg) {
- epilog = msg
- }
-
- var wrapSet = false
- var wrap
- self.wrap = function (cols) {
- wrapSet = true
- wrap = cols
- }
-
- function getWrap () {
- if (!wrapSet) {
- wrap = windowWidth()
- wrapSet = true
- }
-
- return wrap
- }
-
- var deferY18nLookupPrefix = '__yargsString__:'
- self.deferY18nLookup = function (str) {
- return deferY18nLookupPrefix + str
- }
-
- var defaultGroup = 'Options:'
- self.help = function () {
- normalizeAliases()
-
- // handle old demanded API
- var demandedOptions = yargs.getDemandedOptions()
- var demandedCommands = yargs.getDemandedCommands()
- var groups = yargs.getGroups()
- var options = yargs.getOptions()
- var keys = Object.keys(
- Object.keys(descriptions)
- .concat(Object.keys(demandedOptions))
- .concat(Object.keys(demandedCommands))
- .concat(Object.keys(options.default))
- .reduce(function (acc, key) {
- if (key !== '_') acc[key] = true
- return acc
- }, {})
- )
-
- var theWrap = getWrap()
- var ui = require('cliui')({
- width: theWrap,
- wrap: !!theWrap
- })
-
- // the usage string.
- if (usage) {
- var u = usage.replace(/\$0/g, yargs.$0)
- ui.div(u + '\n')
- }
-
- // your application's commands, i.e., non-option
- // arguments populated in '_'.
- if (commands.length) {
- ui.div(__('Commands:'))
-
- commands.forEach(function (command) {
- ui.span(
- {text: command[0], padding: [0, 2, 0, 2], width: maxWidth(commands, theWrap) + 4},
- {text: command[1]}
- )
- var hints = []
- if (command[2]) hints.push('[' + __('default:').slice(0, -1) + ']') // TODO hacking around i18n here
- if (command[3] && command[3].length) {
- hints.push('[' + __('aliases:') + ' ' + command[3].join(', ') + ']')
- }
- if (hints.length) {
- ui.div({text: hints.join(' '), padding: [0, 0, 0, 2], align: 'right'})
- } else {
- ui.div()
- }
- })
-
- ui.div()
- }
-
- // perform some cleanup on the keys array, making it
- // only include top-level keys not their aliases.
- var aliasKeys = (Object.keys(options.alias) || [])
- .concat(Object.keys(yargs.parsed.newAliases) || [])
-
- keys = keys.filter(function (key) {
- return !yargs.parsed.newAliases[key] && aliasKeys.every(function (alias) {
- return (options.alias[alias] || []).indexOf(key) === -1
- })
- })
-
- // populate 'Options:' group with any keys that have not
- // explicitly had a group set.
- if (!groups[defaultGroup]) groups[defaultGroup] = []
- addUngroupedKeys(keys, options.alias, groups)
-
- // display 'Options:' table along with any custom tables:
- Object.keys(groups).forEach(function (groupName) {
- if (!groups[groupName].length) return
-
- ui.div(__(groupName))
-
- // if we've grouped the key 'f', but 'f' aliases 'foobar',
- // normalizedKeys should contain only 'foobar'.
- var normalizedKeys = groups[groupName].map(function (key) {
- if (~aliasKeys.indexOf(key)) return key
- for (var i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {
- if (~(options.alias[aliasKey] || []).indexOf(key)) return aliasKey
- }
- return key
- })
-
- // actually generate the switches string --foo, -f, --bar.
- var switches = normalizedKeys.reduce(function (acc, key) {
- acc[key] = [ key ].concat(options.alias[key] || [])
- .map(function (sw) {
- return (sw.length > 1 ? '--' : '-') + sw
- })
- .join(', ')
-
- return acc
- }, {})
-
- normalizedKeys.forEach(function (key) {
- var kswitch = switches[key]
- var desc = descriptions[key] || ''
- var type = null
-
- if (~desc.lastIndexOf(deferY18nLookupPrefix)) desc = __(desc.substring(deferY18nLookupPrefix.length))
-
- if (~options.boolean.indexOf(key)) type = '[' + __('boolean') + ']'
- if (~options.count.indexOf(key)) type = '[' + __('count') + ']'
- if (~options.string.indexOf(key)) type = '[' + __('string') + ']'
- if (~options.normalize.indexOf(key)) type = '[' + __('string') + ']'
- if (~options.array.indexOf(key)) type = '[' + __('array') + ']'
- if (~options.number.indexOf(key)) type = '[' + __('number') + ']'
-
- var extra = [
- type,
- (key in demandedOptions) ? '[' + __('required') + ']' : null,
- options.choices && options.choices[key] ? '[' + __('choices:') + ' ' +
- self.stringifiedValues(options.choices[key]) + ']' : null,
- defaultString(options.default[key], options.defaultDescription[key])
- ].filter(Boolean).join(' ')
-
- ui.span(
- {text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4},
- desc
- )
-
- if (extra) ui.div({text: extra, padding: [0, 0, 0, 2], align: 'right'})
- else ui.div()
- })
-
- ui.div()
- })
-
- // describe some common use-cases for your application.
- if (examples.length) {
- ui.div(__('Examples:'))
-
- examples.forEach(function (example) {
- example[0] = example[0].replace(/\$0/g, yargs.$0)
- })
-
- examples.forEach(function (example) {
- if (example[1] === '') {
- ui.div(
- {
- text: example[0],
- padding: [0, 2, 0, 2]
- }
- )
- } else {
- ui.div(
- {
- text: example[0],
- padding: [0, 2, 0, 2],
- width: maxWidth(examples, theWrap) + 4
- }, {
- text: example[1]
- }
- )
- }
- })
-
- ui.div()
- }
-
- // the usage string.
- if (epilog) {
- var e = epilog.replace(/\$0/g, yargs.$0)
- ui.div(e + '\n')
- }
-
- return ui.toString()
- }
-
- // return the maximum width of a string
- // in the left-hand column of a table.
- function maxWidth (table, theWrap) {
- var width = 0
-
- // table might be of the form [leftColumn],
- // or {key: leftColumn}
- if (!Array.isArray(table)) {
- table = Object.keys(table).map(function (key) {
- return [table[key]]
- })
- }
-
- table.forEach(function (v) {
- width = Math.max(stringWidth(v[0]), width)
- })
-
- // if we've enabled 'wrap' we should limit
- // the max-width of the left-column.
- if (theWrap) width = Math.min(width, parseInt(theWrap * 0.5, 10))
-
- return width
- }
-
- // make sure any options set for aliases,
- // are copied to the keys being aliased.
- function normalizeAliases () {
- // handle old demanded API
- var demandedOptions = yargs.getDemandedOptions()
- var options = yargs.getOptions()
-
- ;(Object.keys(options.alias) || []).forEach(function (key) {
- options.alias[key].forEach(function (alias) {
- // copy descriptions.
- if (descriptions[alias]) self.describe(key, descriptions[alias])
- // copy demanded.
- if (alias in demandedOptions) yargs.demandOption(key, demandedOptions[alias])
- // type messages.
- if (~options.boolean.indexOf(alias)) yargs.boolean(key)
- if (~options.count.indexOf(alias)) yargs.count(key)
- if (~options.string.indexOf(alias)) yargs.string(key)
- if (~options.normalize.indexOf(alias)) yargs.normalize(key)
- if (~options.array.indexOf(alias)) yargs.array(key)
- if (~options.number.indexOf(alias)) yargs.number(key)
- })
- })
- }
-
- // given a set of keys, place any keys that are
- // ungrouped under the 'Options:' grouping.
- function addUngroupedKeys (keys, aliases, groups) {
- var groupedKeys = []
- var toCheck = null
- Object.keys(groups).forEach(function (group) {
- groupedKeys = groupedKeys.concat(groups[group])
- })
-
- keys.forEach(function (key) {
- toCheck = [key].concat(aliases[key])
- if (!toCheck.some(function (k) {
- return groupedKeys.indexOf(k) !== -1
- })) {
- groups[defaultGroup].push(key)
- }
- })
- return groupedKeys
- }
-
- self.showHelp = function (level) {
- const logger = yargs._getLoggerInstance()
- if (!level) level = 'error'
- var emit = typeof level === 'function' ? level : logger[level]
- emit(self.help())
- }
-
- self.functionDescription = function (fn) {
- var description = fn.name ? require('decamelize')(fn.name, '-') : __('generated-value')
- return ['(', description, ')'].join('')
- }
-
- self.stringifiedValues = function (values, separator) {
- var string = ''
- var sep = separator || ', '
- var array = [].concat(values)
-
- if (!values || !array.length) return string
-
- array.forEach(function (value) {
- if (string.length) string += sep
- string += JSON.stringify(value)
- })
-
- return string
- }
-
- // format the default-value-string displayed in
- // the right-hand column.
- function defaultString (value, defaultDescription) {
- var string = '[' + __('default:') + ' '
-
- if (value === undefined && !defaultDescription) return null
-
- if (defaultDescription) {
- string += defaultDescription
- } else {
- switch (typeof value) {
- case 'string':
- string += JSON.stringify(value)
- break
- case 'object':
- string += JSON.stringify(value)
- break
- default:
- string += value
- }
- }
-
- return string + ']'
- }
-
- // guess the width of the console window, max-width 80.
- function windowWidth () {
- var maxWidth = 80
- if (typeof process === 'object' && process.stdout && process.stdout.columns) {
- return Math.min(maxWidth, process.stdout.columns)
- } else {
- return maxWidth
- }
- }
-
- // logic for displaying application version.
- var version = null
- self.version = function (ver) {
- version = ver
- }
-
- self.showVersion = function () {
- const logger = yargs._getLoggerInstance()
- if (typeof version === 'function') logger.log(version())
- else logger.log(version)
- }
-
- self.reset = function (localLookup) {
- // do not reset wrap here
- // do not reset fails here
- failMessage = null
- failureOutput = false
- usage = undefined
- epilog = undefined
- examples = []
- commands = []
- descriptions = objFilter(descriptions, function (k, v) {
- return !localLookup[k]
- })
- return self
- }
-
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.failMessage = failMessage
- frozen.failureOutput = failureOutput
- frozen.usage = usage
- frozen.epilog = epilog
- frozen.examples = examples
- frozen.commands = commands
- frozen.descriptions = descriptions
- }
- self.unfreeze = function () {
- failMessage = frozen.failMessage
- failureOutput = frozen.failureOutput
- usage = frozen.usage
- epilog = frozen.epilog
- examples = frozen.examples
- commands = frozen.commands
- descriptions = frozen.descriptions
- frozen = undefined
- }
-
- return self
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js b/deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js
deleted file mode 100644
index 2f9ff8e6cf..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/validation.js
+++ /dev/null
@@ -1,364 +0,0 @@
-const objFilter = require('./obj-filter')
-const specialKeys = ['$0', '--', '_']
-
-// validation-type-stuff, missing params,
-// bad implications, custom checks.
-module.exports = function (yargs, usage, y18n) {
- const __ = y18n.__
- const __n = y18n.__n
- const self = {}
-
- // validate appropriate # of non-option
- // arguments were provided, i.e., '_'.
- self.nonOptionCount = function (argv) {
- const demandedCommands = yargs.getDemandedCommands()
- // don't count currently executing commands
- const _s = argv._.length - yargs.getContext().commands.length
-
- if (demandedCommands._ && (_s < demandedCommands._.min || _s > demandedCommands._.max)) {
- if (_s < demandedCommands._.min) {
- if (demandedCommands._.minMsg !== undefined) {
- usage.fail(
- // replace $0 with observed, $1 with expected.
- demandedCommands._.minMsg ? demandedCommands._.minMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.min) : null
- )
- } else {
- usage.fail(
- __('Not enough non-option arguments: got %s, need at least %s', _s, demandedCommands._.min)
- )
- }
- } else if (_s > demandedCommands._.max) {
- if (demandedCommands._.maxMsg !== undefined) {
- usage.fail(
- // replace $0 with observed, $1 with expected.
- demandedCommands._.maxMsg ? demandedCommands._.maxMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.max) : null
- )
- } else {
- usage.fail(
- __('Too many non-option arguments: got %s, maximum of %s', _s, demandedCommands._.max)
- )
- }
- }
- }
- }
-
- // validate the appropriate # of <required>
- // positional arguments were provided:
- self.positionalCount = function (required, observed) {
- if (observed < required) {
- usage.fail(
- __('Not enough non-option arguments: got %s, need at least %s', observed, required)
- )
- }
- }
-
- // make sure that any args that require an
- // value (--foo=bar), have a value.
- self.missingArgumentValue = function (argv) {
- const defaultValues = [true, false, '']
- const options = yargs.getOptions()
-
- if (options.requiresArg.length > 0) {
- const missingRequiredArgs = []
-
- options.requiresArg.forEach(function (key) {
- const value = argv[key]
-
- // if a value is explicitly requested,
- // flag argument as missing if it does not
- // look like foo=bar was entered.
- if (~defaultValues.indexOf(value) ||
- (Array.isArray(value) && !value.length)) {
- missingRequiredArgs.push(key)
- }
- })
-
- if (missingRequiredArgs.length > 0) {
- usage.fail(__n(
- 'Missing argument value: %s',
- 'Missing argument values: %s',
- missingRequiredArgs.length,
- missingRequiredArgs.join(', ')
- ))
- }
- }
- }
-
- // make sure all the required arguments are present.
- self.requiredArguments = function (argv) {
- const demandedOptions = yargs.getDemandedOptions()
- var missing = null
-
- Object.keys(demandedOptions).forEach(function (key) {
- if (!argv.hasOwnProperty(key) || typeof argv[key] === 'undefined') {
- missing = missing || {}
- missing[key] = demandedOptions[key]
- }
- })
-
- if (missing) {
- const customMsgs = []
- Object.keys(missing).forEach(function (key) {
- const msg = missing[key]
- if (msg && customMsgs.indexOf(msg) < 0) {
- customMsgs.push(msg)
- }
- })
-
- const customMsg = customMsgs.length ? '\n' + customMsgs.join('\n') : ''
-
- usage.fail(__n(
- 'Missing required argument: %s',
- 'Missing required arguments: %s',
- Object.keys(missing).length,
- Object.keys(missing).join(', ') + customMsg
- ))
- }
- }
-
- // check for unknown arguments (strict-mode).
- self.unknownArguments = function (argv, aliases, positionalMap) {
- const aliasLookup = {}
- const descriptions = usage.getDescriptions()
- const demandedOptions = yargs.getDemandedOptions()
- const commandKeys = yargs.getCommandInstance().getCommands()
- const unknown = []
- const currentContext = yargs.getContext()
-
- Object.keys(aliases).forEach(function (key) {
- aliases[key].forEach(function (alias) {
- aliasLookup[alias] = key
- })
- })
-
- Object.keys(argv).forEach(function (key) {
- if (specialKeys.indexOf(key) === -1 &&
- !descriptions.hasOwnProperty(key) &&
- !demandedOptions.hasOwnProperty(key) &&
- !positionalMap.hasOwnProperty(key) &&
- !yargs._getParseContext().hasOwnProperty(key) &&
- !aliasLookup.hasOwnProperty(key)) {
- unknown.push(key)
- }
- })
-
- if (commandKeys.length > 0) {
- argv._.slice(currentContext.commands.length).forEach(function (key) {
- if (commandKeys.indexOf(key) === -1) {
- unknown.push(key)
- }
- })
- }
-
- if (unknown.length > 0) {
- usage.fail(__n(
- 'Unknown argument: %s',
- 'Unknown arguments: %s',
- unknown.length,
- unknown.join(', ')
- ))
- }
- }
-
- // validate arguments limited to enumerated choices
- self.limitedChoices = function (argv) {
- const options = yargs.getOptions()
- const invalid = {}
-
- if (!Object.keys(options.choices).length) return
-
- Object.keys(argv).forEach(function (key) {
- if (specialKeys.indexOf(key) === -1 &&
- options.choices.hasOwnProperty(key)) {
- [].concat(argv[key]).forEach(function (value) {
- // TODO case-insensitive configurability
- if (options.choices[key].indexOf(value) === -1) {
- invalid[key] = (invalid[key] || []).concat(value)
- }
- })
- }
- })
-
- const invalidKeys = Object.keys(invalid)
-
- if (!invalidKeys.length) return
-
- var msg = __('Invalid values:')
- invalidKeys.forEach(function (key) {
- msg += '\n ' + __(
- 'Argument: %s, Given: %s, Choices: %s',
- key,
- usage.stringifiedValues(invalid[key]),
- usage.stringifiedValues(options.choices[key])
- )
- })
- usage.fail(msg)
- }
-
- // custom checks, added using the `check` option on yargs.
- var checks = []
- self.check = function (f, global) {
- checks.push({
- func: f,
- global: global
- })
- }
-
- self.customChecks = function (argv, aliases) {
- for (var i = 0, f; (f = checks[i]) !== undefined; i++) {
- var func = f.func
- var result = null
- try {
- result = func(argv, aliases)
- } catch (err) {
- usage.fail(err.message ? err.message : err, err)
- continue
- }
-
- if (!result) {
- usage.fail(__('Argument check failed: %s', func.toString()))
- } else if (typeof result === 'string' || result instanceof Error) {
- usage.fail(result.toString(), result)
- }
- }
- }
-
- // check implications, argument foo implies => argument bar.
- var implied = {}
- self.implies = function (key, value) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.implies(k, key[k])
- })
- } else {
- yargs.global(key)
- implied[key] = value
- }
- }
- self.getImplied = function () {
- return implied
- }
-
- self.implications = function (argv) {
- const implyFail = []
-
- Object.keys(implied).forEach(function (key) {
- var num
- const origKey = key
- var value = implied[key]
-
- // convert string '1' to number 1
- num = Number(key)
- key = isNaN(num) ? key : num
-
- if (typeof key === 'number') {
- // check length of argv._
- key = argv._.length >= key
- } else if (key.match(/^--no-.+/)) {
- // check if key doesn't exist
- key = key.match(/^--no-(.+)/)[1]
- key = !argv[key]
- } else {
- // check if key exists
- key = argv[key]
- }
-
- num = Number(value)
- value = isNaN(num) ? value : num
-
- if (typeof value === 'number') {
- value = argv._.length >= value
- } else if (value.match(/^--no-.+/)) {
- value = value.match(/^--no-(.+)/)[1]
- value = !argv[value]
- } else {
- value = argv[value]
- }
-
- if (key && !value) {
- implyFail.push(origKey)
- }
- })
-
- if (implyFail.length) {
- var msg = __('Implications failed:') + '\n'
-
- implyFail.forEach(function (key) {
- msg += (' ' + key + ' -> ' + implied[key])
- })
-
- usage.fail(msg)
- }
- }
-
- var conflicting = {}
- self.conflicts = function (key, value) {
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.conflicts(k, key[k])
- })
- } else {
- yargs.global(key)
- conflicting[key] = value
- }
- }
- self.getConflicting = function () {
- return conflicting
- }
-
- self.conflicting = function (argv) {
- var args = Object.getOwnPropertyNames(argv)
-
- args.forEach(function (arg) {
- if (conflicting[arg] && args.indexOf(conflicting[arg]) !== -1) {
- usage.fail(__('Arguments %s and %s are mutually exclusive', arg, conflicting[arg]))
- }
- })
- }
-
- self.recommendCommands = function (cmd, potentialCommands) {
- const distance = require('./levenshtein')
- const threshold = 3 // if it takes more than three edits, let's move on.
- potentialCommands = potentialCommands.sort(function (a, b) { return b.length - a.length })
-
- var recommended = null
- var bestDistance = Infinity
- for (var i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {
- var d = distance(cmd, candidate)
- if (d <= threshold && d < bestDistance) {
- bestDistance = d
- recommended = candidate
- }
- }
- if (recommended) usage.fail(__('Did you mean %s?', recommended))
- }
-
- self.reset = function (localLookup) {
- implied = objFilter(implied, function (k, v) {
- return !localLookup[k]
- })
- conflicting = objFilter(conflicting, function (k, v) {
- return !localLookup[k]
- })
- checks = checks.filter(function (c) {
- return c.global
- })
- return self
- }
-
- var frozen
- self.freeze = function () {
- frozen = {}
- frozen.implied = implied
- frozen.checks = checks
- frozen.conflicting = conflicting
- }
- self.unfreeze = function () {
- implied = frozen.implied
- checks = frozen.checks
- conflicting = frozen.conflicting
- frozen = undefined
- }
-
- return self
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json b/deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json
deleted file mode 100644
index 4a618e7054..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/en.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "Commands:": "Commands:",
- "Options:": "Options:",
- "Examples:": "Examples:",
- "boolean": "boolean",
- "count": "count",
- "string": "string",
- "number": "number",
- "array": "array",
- "required": "required",
- "default:": "default:",
- "choices:": "choices:",
- "aliases:": "aliases:",
- "generated-value": "generated-value",
- "Not enough non-option arguments: got %s, need at least %s": "Not enough non-option arguments: got %s, need at least %s",
- "Too many non-option arguments: got %s, maximum of %s": "Too many non-option arguments: got %s, maximum of %s",
- "Missing argument value: %s": {
- "one": "Missing argument value: %s",
- "other": "Missing argument values: %s"
- },
- "Missing required argument: %s": {
- "one": "Missing required argument: %s",
- "other": "Missing required arguments: %s"
- },
- "Unknown argument: %s": {
- "one": "Unknown argument: %s",
- "other": "Unknown arguments: %s"
- },
- "Invalid values:": "Invalid values:",
- "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s",
- "Argument check failed: %s": "Argument check failed: %s",
- "Implications failed:": "Implications failed:",
- "Not enough arguments following: %s": "Not enough arguments following: %s",
- "Invalid JSON config file: %s": "Invalid JSON config file: %s",
- "Path to JSON config file": "Path to JSON config file",
- "Show help": "Show help",
- "Show version number": "Show version number",
- "Did you mean %s?": "Did you mean %s?",
- "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json
deleted file mode 100644
index a174878a6f..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/camelcase/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "camelcase@^4.1.0",
- "_id": "camelcase@4.1.0",
- "_inBundle": false,
- "_integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "_location": "/libnpx/yargs/camelcase",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "camelcase@^4.1.0",
- "name": "camelcase",
- "escapedName": "camelcase",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/libnpx/yargs",
- "/libnpx/yargs/yargs-parser"
- ],
- "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "_shasum": "d545635be1e33c542649c69173e5de6acfae34dd",
- "_shrinkwrap": null,
- "_spec": "camelcase@^4.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` ā†’ `fooBar`",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "camelcase",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "4.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md
deleted file mode 100644
index ef6a35ef41..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/CHANGELOG.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/yargs/cliui/compare/v3.1.2...v3.2.0) (2016-04-11)
-
-
-### Bug Fixes
-
-* reduces tarball size ([acc6c33](https://github.com/yargs/cliui/commit/acc6c33))
-
-### Features
-
-* adds standard-version for release management ([ff84e32](https://github.com/yargs/cliui/commit/ff84e32))
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md
deleted file mode 100644
index 028392c263..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/README.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# cliui
-
-[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui)
-[![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=)
-[![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-easily create complex multi-column command-line-interfaces.
-
-## Example
-
-```js
-var ui = require('cliui')({
- width: 80
-})
-
-ui.div('Usage: $0 [command] [options]')
-
-ui.div({
- text: 'Options:',
- padding: [2, 0, 2, 0]
-})
-
-ui.div(
- {
- text: "-f, --file",
- width: 20,
- padding: [0, 4, 0, 4]
- },
- {
- text: "the file to load." +
- chalk.green("(if this description is long it wraps).")
- ,
- width: 20
- },
- {
- text: chalk.red("[required]"),
- align: 'right'
- }
-)
-
-console.log(ui.toString())
-```
-
-<img width="500" src="screenshot.png">
-
-## Layout DSL
-
-cliui exposes a simple layout DSL:
-
-If you create a single `ui.row`, passing a string rather than an
-object:
-
-* `\n`: characters will be interpreted as new rows.
-* `\t`: characters will be interpreted as new columns.
-* `\s`: characters will be interpreted as padding.
-
-**as an example...**
-
-```js
-var ui = require('./')({
- width: 60
-})
-
-ui.div(
- 'Usage: node ./bin/foo.js\n' +
- ' <regex>\t provide a regex\n' +
- ' <glob>\t provide a glob\t [required]'
-)
-
-console.log(ui.toString())
-```
-
-**will output:**
-
-```shell
-Usage: node ./bin/foo.js
- <regex> provide a regex
- <glob> provide a glob [required]
-```
-
-## Methods
-
-```js
-cliui = require('cliui')
-```
-
-### cliui({width: integer})
-
-Specify the maximum width of the UI being generated.
-
-### cliui({wrap: boolean})
-
-Enable or disable the wrapping of text in a column.
-
-### cliui.div(column, column, column)
-
-Create a row with any number of columns, a column
-can either be a string, or an object with the following
-options:
-
-* **width:** the width of a column.
-* **align:** alignment, `right` or `center`.
-* **padding:** `[top, right, bottom, left]`.
-* **border:** should a border be placed around the div?
-
-### cliui.span(column, column, column)
-
-Similar to `div`, except the next row will be appended without
-a new line being created.
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js
deleted file mode 100644
index e501e78fd7..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/index.js
+++ /dev/null
@@ -1,316 +0,0 @@
-var stringWidth = require('string-width')
-var stripAnsi = require('strip-ansi')
-var wrap = require('wrap-ansi')
-var align = {
- right: alignRight,
- center: alignCenter
-}
-var top = 0
-var right = 1
-var bottom = 2
-var left = 3
-
-function UI (opts) {
- this.width = opts.width
- this.wrap = opts.wrap
- this.rows = []
-}
-
-UI.prototype.span = function () {
- var cols = this.div.apply(this, arguments)
- cols.span = true
-}
-
-UI.prototype.div = function () {
- if (arguments.length === 0) this.div('')
- if (this.wrap && this._shouldApplyLayoutDSL.apply(this, arguments)) {
- return this._applyLayoutDSL(arguments[0])
- }
-
- var cols = []
-
- for (var i = 0, arg; (arg = arguments[i]) !== undefined; i++) {
- if (typeof arg === 'string') cols.push(this._colFromString(arg))
- else cols.push(arg)
- }
-
- this.rows.push(cols)
- return cols
-}
-
-UI.prototype._shouldApplyLayoutDSL = function () {
- return arguments.length === 1 && typeof arguments[0] === 'string' &&
- /[\t\n]/.test(arguments[0])
-}
-
-UI.prototype._applyLayoutDSL = function (str) {
- var _this = this
- var rows = str.split('\n')
- var leftColumnWidth = 0
-
- // simple heuristic for layout, make sure the
- // second column lines up along the left-hand.
- // don't allow the first column to take up more
- // than 50% of the screen.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- if (columns.length > 1 && stringWidth(columns[0]) > leftColumnWidth) {
- leftColumnWidth = Math.min(
- Math.floor(_this.width * 0.5),
- stringWidth(columns[0])
- )
- }
- })
-
- // generate a table:
- // replacing ' ' with padding calculations.
- // using the algorithmically generated width.
- rows.forEach(function (row) {
- var columns = row.split('\t')
- _this.div.apply(_this, columns.map(function (r, i) {
- return {
- text: r.trim(),
- padding: _this._measurePadding(r),
- width: (i === 0 && columns.length > 1) ? leftColumnWidth : undefined
- }
- }))
- })
-
- return this.rows[this.rows.length - 1]
-}
-
-UI.prototype._colFromString = function (str) {
- return {
- text: str,
- padding: this._measurePadding(str)
- }
-}
-
-UI.prototype._measurePadding = function (str) {
- // measure padding without ansi escape codes
- var noAnsi = stripAnsi(str)
- return [0, noAnsi.match(/\s*$/)[0].length, 0, noAnsi.match(/^\s*/)[0].length]
-}
-
-UI.prototype.toString = function () {
- var _this = this
- var lines = []
-
- _this.rows.forEach(function (row, i) {
- _this.rowToString(row, lines)
- })
-
- // don't display any lines with the
- // hidden flag set.
- lines = lines.filter(function (line) {
- return !line.hidden
- })
-
- return lines.map(function (line) {
- return line.text
- }).join('\n')
-}
-
-UI.prototype.rowToString = function (row, lines) {
- var _this = this
- var padding
- var rrows = this._rasterize(row)
- var str = ''
- var ts
- var width
- var wrapWidth
-
- rrows.forEach(function (rrow, r) {
- str = ''
- rrow.forEach(function (col, c) {
- ts = '' // temporary string used during alignment/padding.
- width = row[c].width // the width with padding.
- wrapWidth = _this._negatePadding(row[c]) // the width without padding.
-
- ts += col
-
- for (var i = 0; i < wrapWidth - stringWidth(col); i++) {
- ts += ' '
- }
-
- // align the string within its column.
- if (row[c].align && row[c].align !== 'left' && _this.wrap) {
- ts = align[row[c].align](ts, wrapWidth)
- if (stringWidth(ts) < wrapWidth) ts += new Array(width - stringWidth(ts)).join(' ')
- }
-
- // apply border and padding to string.
- padding = row[c].padding || [0, 0, 0, 0]
- if (padding[left]) str += new Array(padding[left] + 1).join(' ')
- str += addBorder(row[c], ts, '| ')
- str += ts
- str += addBorder(row[c], ts, ' |')
- if (padding[right]) str += new Array(padding[right] + 1).join(' ')
-
- // if prior row is span, try to render the
- // current row on the prior line.
- if (r === 0 && lines.length > 0) {
- str = _this._renderInline(str, lines[lines.length - 1])
- }
- })
-
- // remove trailing whitespace.
- lines.push({
- text: str.replace(/ +$/, ''),
- span: row.span
- })
- })
-
- return lines
-}
-
-function addBorder (col, ts, style) {
- if (col.border) {
- if (/[.']-+[.']/.test(ts)) return ''
- else if (ts.trim().length) return style
- else return ' '
- }
- return ''
-}
-
-// if the full 'source' can render in
-// the target line, do so.
-UI.prototype._renderInline = function (source, previousLine) {
- var leadingWhitespace = source.match(/^ */)[0].length
- var target = previousLine.text
- var targetTextWidth = stringWidth(target.trimRight())
-
- if (!previousLine.span) return source
-
- // if we're not applying wrapping logic,
- // just always append to the span.
- if (!this.wrap) {
- previousLine.hidden = true
- return target + source
- }
-
- if (leadingWhitespace < targetTextWidth) return source
-
- previousLine.hidden = true
-
- return target.trimRight() + new Array(leadingWhitespace - targetTextWidth + 1).join(' ') + source.trimLeft()
-}
-
-UI.prototype._rasterize = function (row) {
- var _this = this
- var i
- var rrow
- var rrows = []
- var widths = this._columnWidths(row)
- var wrapped
-
- // word wrap all columns, and create
- // a data-structure that is easy to rasterize.
- row.forEach(function (col, c) {
- // leave room for left and right padding.
- col.width = widths[c]
- if (_this.wrap) wrapped = wrap(col.text, _this._negatePadding(col), {hard: true}).split('\n')
- else wrapped = col.text.split('\n')
-
- if (col.border) {
- wrapped.unshift('.' + new Array(_this._negatePadding(col) + 3).join('-') + '.')
- wrapped.push("'" + new Array(_this._negatePadding(col) + 3).join('-') + "'")
- }
-
- // add top and bottom padding.
- if (col.padding) {
- for (i = 0; i < (col.padding[top] || 0); i++) wrapped.unshift('')
- for (i = 0; i < (col.padding[bottom] || 0); i++) wrapped.push('')
- }
-
- wrapped.forEach(function (str, r) {
- if (!rrows[r]) rrows.push([])
-
- rrow = rrows[r]
-
- for (var i = 0; i < c; i++) {
- if (rrow[i] === undefined) rrow.push('')
- }
- rrow.push(str)
- })
- })
-
- return rrows
-}
-
-UI.prototype._negatePadding = function (col) {
- var wrapWidth = col.width
- if (col.padding) wrapWidth -= (col.padding[left] || 0) + (col.padding[right] || 0)
- if (col.border) wrapWidth -= 4
- return wrapWidth
-}
-
-UI.prototype._columnWidths = function (row) {
- var _this = this
- var widths = []
- var unset = row.length
- var unsetWidth
- var remainingWidth = this.width
-
- // column widths can be set in config.
- row.forEach(function (col, i) {
- if (col.width) {
- unset--
- widths[i] = col.width
- remainingWidth -= col.width
- } else {
- widths[i] = undefined
- }
- })
-
- // any unset widths should be calculated.
- if (unset) unsetWidth = Math.floor(remainingWidth / unset)
- widths.forEach(function (w, i) {
- if (!_this.wrap) widths[i] = row[i].width || stringWidth(row[i].text)
- else if (w === undefined) widths[i] = Math.max(unsetWidth, _minWidth(row[i]))
- })
-
- return widths
-}
-
-// calculates the minimum width of
-// a column, based on padding preferences.
-function _minWidth (col) {
- var padding = col.padding || []
- var minWidth = 1 + (padding[left] || 0) + (padding[right] || 0)
- if (col.border) minWidth += 4
- return minWidth
-}
-
-function alignRight (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str)
-
- if (strWidth < width) {
- padding = new Array(width - strWidth + 1).join(' ')
- }
-
- return padding + str
-}
-
-function alignCenter (str, width) {
- str = str.trim()
- var padding = ''
- var strWidth = stringWidth(str.trim())
-
- if (strWidth < width) {
- padding = new Array(parseInt((width - strWidth) / 2, 10) + 1).join(' ')
- }
-
- return padding + str
-}
-
-module.exports = function (opts) {
- opts = opts || {}
-
- return new UI({
- width: (opts || {}).width || 80,
- wrap: typeof opts.wrap === 'boolean' ? opts.wrap : true
- })
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js
deleted file mode 100644
index 0432fe6a30..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* eslint-disable babel/new-cap, xo/throw-new-error */
-'use strict';
-module.exports = function (str, pos) {
- if (str === null || str === undefined) {
- throw TypeError();
- }
-
- str = String(str);
-
- var size = str.length;
- var i = pos ? Number(pos) : 0;
-
- if (Number.isNaN(i)) {
- i = 0;
- }
-
- if (i < 0 || i >= size) {
- return undefined;
- }
-
- var first = str.charCodeAt(i);
-
- if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {
- var second = str.charCodeAt(i + 1);
-
- if (second >= 0xDC00 && second <= 0xDFFF) {
- return ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;
- }
- }
-
- return first;
-};
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json
deleted file mode 100644
index 75b7ae6b15..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "code-point-at@^1.0.0",
- "_id": "code-point-at@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "_location": "/libnpx/yargs/cliui/string-width/code-point-at",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "code-point-at@^1.0.0",
- "name": "code-point-at",
- "escapedName": "code-point-at",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "_shrinkwrap": null,
- "_spec": "code-point-at@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com)",
- "devDependencies": {
- "ava": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "code-point-at",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md
deleted file mode 100644
index 4c97730e69..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/code-point-at/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# code-point-at [![Build Status](https://travis-ci.org/sindresorhus/code-point-at.svg?branch=master)](https://travis-ci.org/sindresorhus/code-point-at)
-
-> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save code-point-at
-```
-
-
-## Usage
-
-```js
-var codePointAt = require('code-point-at');
-
-codePointAt('šŸ“');
-//=> 128052
-
-codePointAt('abc', 2);
-//=> 99
-```
-
-## API
-
-### codePointAt(input, [position])
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index 79be4b9cb8..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = Number.isNaN || function (x) {
- return x !== x;
-};
diff --git a/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 b/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
deleted file mode 100644
index 9f82a47ba7..0000000000
--- a/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
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "_from": "number-is-nan@^1.0.0",
- "_id": "number-is-nan@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "_location": "/libnpx/yargs/cliui/string-width/is-fullwidth-code-point/number-is-nan",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "number-is-nan@^1.0.0",
- "name": "number-is-nan",
- "escapedName": "number-is-nan",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui/string-width/is-fullwidth-code-point"
- ],
- "_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "_shasum": "097b602b53422a522c1afb8790318336941a011d",
- "_shrinkwrap": null,
- "_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> ES2015 [`Number.isNaN()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) [ponyfill](https://ponyfill.com)",
- "devDependencies": {
- "ava": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "number-is-nan",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 2463508712..0000000000
--- a/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
+++ /dev/null
@@ -1,28 +0,0 @@
-# number-is-nan [![Build Status](https://travis-ci.org/sindresorhus/number-is-nan.svg?branch=master)](https://travis-ci.org/sindresorhus/number-is-nan)
-
-> ES2015 [`Number.isNaN()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save number-is-nan
-```
-
-
-## Usage
-
-```js
-var numberIsNan = require('number-is-nan');
-
-numberIsNan(NaN);
-//=> true
-
-numberIsNan('unicorn');
-//=> false
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index 32957f6932..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^1.0.0",
- "_id": "is-fullwidth-code-point@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "_location": "/libnpx/yargs/cliui/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^1.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "_shrinkwrap": null,
- "_spec": "is-fullwidth-code-point@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "deprecated": false,
- "description": "> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)",
- "devDependencies": {
- "ava": "0.0.4",
- "code-point-at": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "is-fullwidth-code-point",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json
deleted file mode 100644
index 277962789d..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/string-width/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "_from": "string-width@^1.0.1",
- "_id": "string-width@1.0.2",
- "_inBundle": false,
- "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "_location": "/libnpx/yargs/cliui/string-width",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string-width@^1.0.1",
- "name": "string-width",
- "escapedName": "string-width",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui",
- "/libnpx/yargs/cliui/wrap-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "_shrinkwrap": null,
- "_spec": "string-width@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "deprecated": false,
- "description": "> Get the visual width of a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "string-width",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index 6e890f17e8..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/libnpx/yargs/cliui/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_shrinkwrap": null,
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "ansi-regex",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.1.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json
deleted file mode 100644
index 5e00cb0e20..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "_from": "strip-ansi@^3.0.1",
- "_id": "strip-ansi@3.0.1",
- "_inBundle": false,
- "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "_location": "/libnpx/yargs/cliui/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^3.0.1",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^3.0.1",
- "saveSpec": null,
- "fetchSpec": "^3.0.1"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui",
- "/libnpx/yargs/cliui/string-width",
- "/libnpx/yargs/cliui/wrap-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "_shrinkwrap": null,
- "_spec": "strip-ansi@^3.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "strip-ansi",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json
deleted file mode 100644
index b419a63167..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "wrap-ansi@^2.0.0",
- "_id": "wrap-ansi@2.1.0",
- "_inBundle": false,
- "_integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "_location": "/libnpx/yargs/cliui/wrap-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "wrap-ansi@^2.0.0",
- "name": "wrap-ansi",
- "escapedName": "wrap-ansi",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/cliui"
- ],
- "_resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "_shasum": "d8fc3d284dd05794fe84973caecdd1cf824fdd85",
- "_shrinkwrap": null,
- "_spec": "wrap-ansi@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "deprecated": false,
- "description": "> Wordwrap a string with [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles)",
- "devDependencies": {
- "ava": "^0.16.0",
- "chalk": "^1.1.0",
- "coveralls": "^2.11.4",
- "has-ansi": "^2.0.0",
- "nyc": "^6.2.1",
- "strip-ansi": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "wrap-ansi",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json
deleted file mode 100644
index 05ae56ab79..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "_from": "cliui@^3.2.0",
- "_id": "cliui@3.2.0",
- "_inBundle": false,
- "_integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "_location": "/libnpx/yargs/cliui",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "cliui@^3.2.0",
- "name": "cliui",
- "escapedName": "cliui",
- "rawSpec": "^3.2.0",
- "saveSpec": null,
- "fetchSpec": "^3.2.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "_shasum": "120601537a916d29940f934da3b48d585a39213d",
- "_shrinkwrap": null,
- "_spec": "cliui@^3.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- },
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/yargs/cliui.svg)](https://travis-ci.org/yargs/cliui) [![Coverage Status](https://coveralls.io/repos/yargs/cliui/badge.svg?branch=)](https://coveralls.io/r/yargs/cliui?branch=) [![NPM version](https://img.shields.io/npm/v/cliui.svg)](https://www.npmjs.com/package/cliui) [![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)",
- "devDependencies": {
- "chai": "^3.5.0",
- "chalk": "^1.1.2",
- "coveralls": "^2.11.8",
- "mocha": "^2.4.5",
- "nyc": "^6.4.0",
- "standard": "^6.0.8",
- "standard-version": "^2.1.2"
- },
- "name": "cliui",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "3.2.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json
deleted file mode 100644
index c815395d58..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/decamelize/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "decamelize@^1.1.1",
- "_id": "decamelize@1.2.0",
- "_inBundle": false,
- "_integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "_location": "/libnpx/yargs/decamelize",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "decamelize@^1.1.1",
- "name": "decamelize",
- "escapedName": "decamelize",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "_shasum": "f6534d15148269b20352e7bee26f501f9a191290",
- "_shrinkwrap": null,
- "_spec": "decamelize@^1.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Convert a camelized string into a lowercased one with a custom separator<br> > Example: `unicornRainbow` ā†’ `unicorn_rainbow`",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "decamelize",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.2.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json
deleted file mode 100644
index 51e9d02ff1..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/get-caller-file/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "_from": "get-caller-file@^1.0.1",
- "_id": "get-caller-file@1.0.2",
- "_inBundle": false,
- "_integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=",
- "_location": "/libnpx/yargs/get-caller-file",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-caller-file@^1.0.1",
- "name": "get-caller-file",
- "escapedName": "get-caller-file",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
- "_shasum": "f702e63127e7e231c160a80c1554acb70d5047e5",
- "_shrinkwrap": null,
- "_spec": "get-caller-file@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/ember-cli/ember-cli.svg?branch=master)](https://travis-ci.org/ember-cli/ember-cli) [![Build status](https://ci.appveyor.com/api/projects/status/ol2q94g1932cy14a/branch/master?svg=true)](https://ci.appveyor.com/project/embercli/get-caller-file/branch/master)",
- "devDependencies": {
- "chai": "^3.4.1",
- "ensure-posix-path": "^1.0.1",
- "mocha": "^2.3.4"
- },
- "name": "get-caller-file",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.2"
-}
diff --git a/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 b/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
deleted file mode 100644
index f462aa5893..0000000000
--- a/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
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "shebang-regex@^1.0.0",
- "_id": "shebang-regex@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "_location": "/libnpx/yargs/os-locale/execa/cross-spawn/shebang-command/shebang-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "shebang-regex@^1.0.0",
- "name": "shebang-regex",
- "escapedName": "shebang-regex",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa/cross-spawn/shebang-command"
- ],
- "_resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "_shasum": "da42f49740c0b42db2ca9728571cb190c98efea3",
- "_spec": "shebang-regex@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/shebang-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching a shebang",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/shebang-regex#readme",
- "keywords": [
- "re",
- "regex",
- "regexp",
- "shebang",
- "match",
- "test"
- ],
- "license": "MIT",
- "name": "shebang-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/shebang-regex.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index ab0bf5ea1c..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "shebang-command@^1.2.0",
- "_id": "shebang-command@1.2.0",
- "_inBundle": false,
- "_integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "_location": "/libnpx/yargs/os-locale/execa/cross-spawn/shebang-command",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "shebang-command@^1.2.0",
- "name": "shebang-command",
- "escapedName": "shebang-command",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa/cross-spawn"
- ],
- "_resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "_shasum": "44aac65b695b03398968c39f363fee5deafdf1ea",
- "_spec": "shebang-command@^1.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn",
- "author": {
- "name": "Kevin Martensson",
- "email": "kevinmartensson@gmail.com",
- "url": "github.com/kevva"
- },
- "bugs": {
- "url": "https://github.com/kevva/shebang-command/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "shebang-regex": "^1.0.0"
- },
- "deprecated": false,
- "description": "Get the command from a shebang",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/kevva/shebang-command#readme",
- "keywords": [
- "cmd",
- "command",
- "parse",
- "shebang"
- ],
- "license": "MIT",
- "name": "shebang-command",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kevva/shebang-command.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.2.0",
- "xo": {
- "ignores": [
- "test.js"
- ]
- }
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json
deleted file mode 100644
index 77b39f96c2..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "_from": "cross-spawn@^5.0.1",
- "_id": "cross-spawn@5.1.0",
- "_inBundle": false,
- "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "_location": "/libnpx/yargs/os-locale/execa/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": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "_shasum": "e8bd0efee58fcff6f8f94510a0a554bbfa235449",
- "_spec": "cross-spawn@^5.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/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/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json
deleted file mode 100644
index 1b817c9ee6..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/get-stream/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "get-stream@^3.0.0",
- "_id": "get-stream@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "_location": "/libnpx/yargs/os-locale/execa/get-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-stream@^3.0.0",
- "name": "get-stream",
- "escapedName": "get-stream",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
- "_spec": "get-stream@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/get-stream/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Get a stream as a string, buffer, or array",
- "devDependencies": {
- "ava": "*",
- "into-stream": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "buffer-stream.js"
- ],
- "homepage": "https://github.com/sindresorhus/get-stream#readme",
- "keywords": [
- "get",
- "stream",
- "promise",
- "concat",
- "string",
- "str",
- "text",
- "buffer",
- "read",
- "data",
- "consume",
- "readable",
- "readablestream",
- "array",
- "object",
- "obj"
- ],
- "license": "MIT",
- "name": "get-stream",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/get-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json
deleted file mode 100644
index 71d370718e..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/is-stream/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "is-stream@^1.1.0",
- "_id": "is-stream@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "_location": "/libnpx/yargs/os-locale/execa/is-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-stream@^1.1.0",
- "name": "is-stream",
- "escapedName": "is-stream",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "_shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "_shrinkwrap": null,
- "_spec": "is-stream@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html)",
- "devDependencies": {
- "ava": "*",
- "tempfile": "^1.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "is-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.1.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 520f68ad04..0000000000
--- a/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
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "path-key@^2.0.0",
- "_id": "path-key@2.0.1",
- "_inBundle": false,
- "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "_location": "/libnpx/yargs/os-locale/execa/npm-run-path/path-key",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "path-key@^2.0.0",
- "name": "path-key",
- "escapedName": "path-key",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa/npm-run-path"
- ],
- "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "_shrinkwrap": null,
- "_spec": "path-key@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "path-key",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json
deleted file mode 100644
index 3dce00f964..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "_from": "npm-run-path@^2.0.0",
- "_id": "npm-run-path@2.0.2",
- "_inBundle": false,
- "_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "_location": "/libnpx/yargs/os-locale/execa/npm-run-path",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-run-path@^2.0.0",
- "name": "npm-run-path",
- "escapedName": "npm-run-path",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "_shrinkwrap": null,
- "_spec": "npm-run-path@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "path-key": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "npm-run-path",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.2"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json
deleted file mode 100644
index 5d8ef077e9..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "p-finally@^1.0.0",
- "_id": "p-finally@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "_location": "/libnpx/yargs/os-locale/execa/p-finally",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "p-finally@^1.0.0",
- "name": "p-finally",
- "escapedName": "p-finally",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "_shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "_shrinkwrap": null,
- "_spec": "p-finally@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> [`Promise#finally()`](https://github.com/tc39/proposal-promise-finally) [ponyfill](https://ponyfill.com) - Invoked when the promise is settled regardless of outcome",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "p-finally",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json
deleted file mode 100644
index 4e31d03fc0..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "signal-exit@^3.0.0",
- "_id": "signal-exit@3.0.2",
- "_inBundle": false,
- "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "_location": "/libnpx/yargs/os-locale/execa/signal-exit",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "signal-exit@^3.0.0",
- "name": "signal-exit",
- "escapedName": "signal-exit",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
- "_shrinkwrap": null,
- "_spec": "signal-exit@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/tapjs/signal-exit.png)](https://travis-ci.org/tapjs/signal-exit) [![Coverage](https://coveralls.io/repos/tapjs/signal-exit/badge.svg?branch=master)](https://coveralls.io/r/tapjs/signal-exit?branch=master) [![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit) [![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/signal-exit/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/signal-exit) [![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.10",
- "nyc": "^8.1.0",
- "standard": "^7.1.2",
- "standard-version": "^2.3.0",
- "tap": "^8.0.1"
- },
- "name": "signal-exit",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "3.0.2"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json
deleted file mode 100644
index 2a5c766d73..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "strip-eof@^1.0.0",
- "_id": "strip-eof@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "_location": "/libnpx/yargs/os-locale/execa/strip-eof",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-eof@^1.0.0",
- "name": "strip-eof",
- "escapedName": "strip-eof",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/execa"
- ],
- "_resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "_shasum": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "_shrinkwrap": null,
- "_spec": "strip-eof@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "strip-eof",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json
deleted file mode 100644
index e448f7b6ac..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "_from": "execa@^0.7.0",
- "_id": "execa@0.7.0",
- "_inBundle": false,
- "_integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "_location": "/libnpx/yargs/os-locale/execa",
- "_phantomChildren": {
- "lru-cache": "4.1.1",
- "which": "1.2.14"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "execa@^0.7.0",
- "name": "execa",
- "escapedName": "execa",
- "rawSpec": "^0.7.0",
- "saveSpec": null,
- "fetchSpec": "^0.7.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale"
- ],
- "_resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "_shasum": "944becd34cc41ee32a63a9faf27ad5a65fc59777",
- "_spec": "execa@^0.7.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/execa/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "deprecated": false,
- "description": "A better `child_process`",
- "devDependencies": {
- "ava": "*",
- "cat-names": "^1.0.2",
- "coveralls": "^2.11.9",
- "delay": "^2.0.0",
- "is-running": "^2.0.0",
- "nyc": "^11.0.2",
- "tempfile": "^2.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "lib"
- ],
- "homepage": "https://github.com/sindresorhus/execa#readme",
- "keywords": [
- "exec",
- "child",
- "process",
- "execute",
- "fork",
- "execfile",
- "spawn",
- "file",
- "shell",
- "bin",
- "binary",
- "binaries",
- "npm",
- "path",
- "local"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "James Talmage",
- "email": "james@talmage.io",
- "url": "github.com/jamestalmage"
- }
- ],
- "name": "execa",
- "nyc": {
- "reporter": [
- "text",
- "lcov"
- ],
- "exclude": [
- "**/fixtures/**",
- "**/test.js",
- "**/test/**"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/execa.git"
- },
- "scripts": {
- "test": "xo && nyc ava"
- },
- "version": "0.7.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json
deleted file mode 100644
index f21e865eff..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/node_modules/invert-kv/package.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- "_from": "invert-kv@^1.0.0",
- "_id": "invert-kv@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
- "_location": "/libnpx/yargs/os-locale/lcid/invert-kv",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "invert-kv@^1.0.0",
- "name": "invert-kv",
- "escapedName": "invert-kv",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/lcid"
- ],
- "_resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "_shasum": "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6",
- "_shrinkwrap": null,
- "_spec": "invert-kv@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Invert the key/value of an object. Example: `{foo: 'bar'}` ā†’ `{bar: 'foo'}`",
- "devDependencies": {
- "mocha": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "invert-kv",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json
deleted file mode 100644
index 6aa2fabe96..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/lcid/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "lcid@^1.0.0",
- "_id": "lcid@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "_location": "/libnpx/yargs/os-locale/lcid",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "lcid@^1.0.0",
- "name": "lcid",
- "escapedName": "lcid",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale"
- ],
- "_resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "_shasum": "308accafa0bc483a3867b4b6f2b9506251d1b835",
- "_shrinkwrap": null,
- "_spec": "lcid@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "invert-kv": "^1.0.0"
- },
- "deprecated": false,
- "description": "> Mapping between [standard locale identifiers](http://en.wikipedia.org/wiki/Locale) and [Windows locale identifiers (LCID)](http://en.wikipedia.org/wiki/Locale#Specifics_for_Microsoft_platforms)",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "lcid",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js
deleted file mode 100644
index 9bf1763673..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-'use strict';
-module.exports = (to, from) => {
- // TODO: use `Reflect.ownKeys()` when targeting Node.js 6
- for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) {
- Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
- }
-};
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json
deleted file mode 100644
index f3099fa5f1..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "mimic-fn@^1.0.0",
- "_id": "mimic-fn@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=",
- "_location": "/libnpx/yargs/os-locale/mem/mimic-fn",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "mimic-fn@^1.0.0",
- "name": "mimic-fn",
- "escapedName": "mimic-fn",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale/mem"
- ],
- "_resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz",
- "_shasum": "e667783d92e89dbd342818b5230b9d62a672ad18",
- "_shrinkwrap": null,
- "_spec": "mimic-fn@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Make a function mimic another one",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "mimic-fn",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md
deleted file mode 100644
index 672c79eb3a..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/node_modules/mimic-fn/readme.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# mimic-fn [![Build Status](https://travis-ci.org/sindresorhus/mimic-fn.svg?branch=master)](https://travis-ci.org/sindresorhus/mimic-fn)
-
-> Make a function mimic another one
-
-Useful when you wrap a function in another function and like to preserve the original name and other properties.
-
-
-## Install
-
-```
-$ npm install --save mimic-fn
-```
-
-
-## Usage
-
-```js
-const mimicFn = require('mimic-fn');
-
-function foo() {}
-foo.unicorn = 'šŸ¦„';
-
-function wrapper() {
- return foo() {};
-}
-
-console.log(wrapper.name);
-//=> 'wrapper'
-
-mimicFn(wrapper, foo);
-
-console.log(wrapper.name);
-//=> 'foo'
-
-console.log(wrapper.unicorn);
-//=> 'šŸ¦„'
-```
-
-
-## API
-
-It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
-
-### mimicFn(to, from)
-
-#### to
-
-Type: `Function`
-
-Mimicking function.
-
-#### from
-
-Type: `Function`
-
-Function to mimic.
-
-
-## Related
-
-- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json
deleted file mode 100644
index b0badad600..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "_from": "mem@^1.1.0",
- "_id": "mem@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
- "_location": "/libnpx/yargs/os-locale/mem",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "mem@^1.1.0",
- "name": "mem",
- "escapedName": "mem",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/os-locale"
- ],
- "_resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
- "_shasum": "5edd52b485ca1d900fe64895505399a0dfa45f76",
- "_shrinkwrap": null,
- "_spec": "mem@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "mimic-fn": "^1.0.0"
- },
- "deprecated": false,
- "description": "> [Memoize](https://en.wikipedia.org/wiki/Memoization) functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input",
- "devDependencies": {
- "ava": "*",
- "delay": "^1.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "mem",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json
deleted file mode 100644
index bda5c72d19..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "os-locale@^2.0.0",
- "_id": "os-locale@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
- "_location": "/libnpx/yargs/os-locale",
- "_phantomChildren": {
- "lru-cache": "4.1.1",
- "which": "1.2.14"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "os-locale@^2.0.0",
- "name": "os-locale",
- "escapedName": "os-locale",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
- "_shasum": "42bc2900a6b5b8bd17376c8e882b65afccf24bf2",
- "_spec": "os-locale@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/os-locale/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "execa": "^0.7.0",
- "lcid": "^1.0.0",
- "mem": "^1.1.0"
- },
- "deprecated": false,
- "description": "Get the system locale",
- "devDependencies": {
- "ava": "*",
- "import-fresh": "^2.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/os-locale#readme",
- "keywords": [
- "locale",
- "lang",
- "language",
- "system",
- "os",
- "string",
- "str",
- "user",
- "country",
- "id",
- "identifier",
- "region"
- ],
- "license": "MIT",
- "name": "os-locale",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/os-locale.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js
deleted file mode 100644
index 26079760f3..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-const findUp = require('find-up');
-const readPkg = require('read-pkg');
-
-module.exports = opts => {
- return findUp('package.json', opts).then(fp => {
- if (!fp) {
- return {};
- }
-
- return readPkg(fp, opts).then(pkg => ({pkg, path: fp}));
- });
-};
-
-module.exports.sync = opts => {
- const fp = findUp.sync('package.json', opts);
-
- if (!fp) {
- return {};
- }
-
- return {
- pkg: readPkg.sync(fp, opts),
- path: fp
- };
-};
diff --git a/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 b/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
deleted file mode 100644
index bfafd2688a..0000000000
--- a/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
+++ /dev/null
@@ -1,40 +0,0 @@
-'use strict';
-module.exports = concurrency => {
- if (concurrency < 1) {
- throw new TypeError('Expected `concurrency` to be a number from 1 and up');
- }
-
- const queue = [];
- let activeCount = 0;
-
- const next = () => {
- activeCount--;
-
- if (queue.length > 0) {
- queue.shift()();
- }
- };
-
- return fn => new Promise((resolve, reject) => {
- const run = () => {
- activeCount++;
-
- fn().then(
- val => {
- resolve(val);
- next();
- },
- err => {
- reject(err);
- next();
- }
- );
- };
-
- if (activeCount < concurrency) {
- run();
- } else {
- queue.push(run);
- }
- });
-};
diff --git a/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 b/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
deleted file mode 100644
index afb27e6ab9..0000000000
--- a/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
+++ /dev/null
@@ -1,47 +0,0 @@
-{
- "_from": "p-limit@^1.1.0",
- "_id": "p-limit@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=",
- "_location": "/libnpx/yargs/read-pkg-up/find-up/locate-path/p-locate/p-limit",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "p-limit@^1.1.0",
- "name": "p-limit",
- "escapedName": "p-limit",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/find-up/locate-path/p-locate"
- ],
- "_resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz",
- "_shasum": "b07ff2d9a5d88bec806035895a2bab66a27988bc",
- "_shrinkwrap": null,
- "_spec": "p-limit@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/node_modules/p-locate",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Run multiple promise-returning & async functions with limited concurrency",
- "devDependencies": {
- "ava": "*",
- "delay": "^1.3.1",
- "in-range": "^1.0.0",
- "random-int": "^1.0.0",
- "time-span": "^1.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "p-limit",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.1.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index c7a10deb68..0000000000
--- a/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
+++ /dev/null
@@ -1,68 +0,0 @@
-# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit)
-
-> Run multiple promise-returning & async functions with limited concurrency
-
-
-## Install
-
-```
-$ npm install --save p-limit
-```
-
-
-## Usage
-
-```js
-const pLimit = require('p-limit');
-
-const limit = pLimit(1);
-
-const input = [
- limit(() => fetchSomething('foo')),
- limit(() => fetchSomething('bar')),
- limit(() => doSomething())
-];
-
-// only one promise is run at once
-Promise.all(input).then(result => {
- console.log(result);
-});
-```
-
-
-## API
-
-### pLimit(concurrency)
-
-Returns a `limit` function.
-
-#### concurrency
-
-Type: `number`<br>
-Minimum: `1`
-
-Concurrency limit.
-
-### limit(fn)
-
-Returns the promise returned by calling `fn`.
-
-#### fn
-
-Type: `Function`
-
-Promise-returning/async function.
-
-
-## Related
-
-- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control
-- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions
-- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
-- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency
-- [Moreā€¦](https://github.com/sindresorhus/promise-fun)
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index bf1139823b..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "_from": "p-locate@^2.0.0",
- "_id": "p-locate@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
- "_location": "/libnpx/yargs/read-pkg-up/find-up/locate-path/p-locate",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "p-locate@^2.0.0",
- "name": "p-locate",
- "escapedName": "p-locate",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/find-up/locate-path"
- ],
- "_resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
- "_shasum": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
- "_shrinkwrap": null,
- "_spec": "p-locate@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "p-limit": "^1.1.0"
- },
- "deprecated": false,
- "description": "> Get the first fulfilled promise that satisfies the provided testing function",
- "devDependencies": {
- "ava": "*",
- "delay": "^1.3.1",
- "in-range": "^1.0.0",
- "time-span": "^1.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "p-locate",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index a7e85b7ff0..0000000000
--- a/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
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "path-exists@^3.0.0",
- "_id": "path-exists@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
- "_location": "/libnpx/yargs/read-pkg-up/find-up/locate-path/path-exists",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "path-exists@^3.0.0",
- "name": "path-exists",
- "escapedName": "path-exists",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/find-up/locate-path"
- ],
- "_resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "_shasum": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
- "_shrinkwrap": null,
- "_spec": "path-exists@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Check if a path exists",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "path-exists",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json
deleted file mode 100644
index a9531e7a63..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "_from": "locate-path@^2.0.0",
- "_id": "locate-path@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
- "_location": "/libnpx/yargs/read-pkg-up/find-up/locate-path",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "locate-path@^2.0.0",
- "name": "locate-path",
- "escapedName": "locate-path",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/find-up"
- ],
- "_resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
- "_shasum": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
- "_shrinkwrap": null,
- "_spec": "locate-path@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "p-locate": "^2.0.0",
- "path-exists": "^3.0.0"
- },
- "deprecated": false,
- "description": "> Get the first path that exists on disk of multiple paths",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "locate-path",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json
deleted file mode 100644
index 8cd3948e88..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "_from": "find-up@^2.0.0",
- "_id": "find-up@2.1.0",
- "_inBundle": false,
- "_integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=",
- "_location": "/libnpx/yargs/read-pkg-up/find-up",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "find-up@^2.0.0",
- "name": "find-up",
- "escapedName": "find-up",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up"
- ],
- "_resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
- "_shasum": "45d1b7e506c717ddd482775a2b77920a3c0c57a7",
- "_shrinkwrap": null,
- "_spec": "find-up@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "locate-path": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Find a file by walking up parent directories",
- "devDependencies": {
- "ava": "*",
- "tempfile": "^1.1.1",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "find-up",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js
deleted file mode 100644
index dff948b691..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/index.js
+++ /dev/null
@@ -1,47 +0,0 @@
-'use strict';
-const path = require('path');
-const loadJsonFile = require('load-json-file');
-const pathType = require('path-type');
-
-module.exports = (fp, opts) => {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
-
- return pathType.dir(fp)
- .then(isDir => {
- if (isDir) {
- fp = path.join(fp, 'package.json');
- }
-
- return loadJsonFile(fp);
- })
- .then(x => {
- if (opts.normalize !== false) {
- require('normalize-package-data')(x);
- }
-
- return x;
- });
-};
-
-module.exports.sync = (fp, opts) => {
- if (typeof fp !== 'string') {
- opts = fp;
- fp = '.';
- }
-
- opts = opts || {};
- fp = pathType.dirSync(fp) ? path.join(fp, 'package.json') : fp;
-
- const x = loadJsonFile.sync(fp);
-
- if (opts.normalize !== false) {
- require('normalize-package-data')(x);
- }
-
- return x;
-};
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js
deleted file mode 100644
index b2767e3023..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/index.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-const path = require('path');
-const fs = require('graceful-fs');
-const stripBom = require('strip-bom');
-const parseJson = require('parse-json');
-const pify = require('pify');
-
-const parse = (data, fp) => parseJson(stripBom(data), path.relative('.', fp));
-
-module.exports = fp => pify(fs.readFile)(fp, 'utf8').then(data => parse(data, fp));
-module.exports.sync = fp => parse(fs.readFileSync(fp, 'utf8'), fp);
diff --git a/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 b/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
deleted file mode 100644
index 04add8ae27..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict';
-var errorEx = require('error-ex');
-var fallback = require('./vendor/parse');
-
-var JSONError = errorEx('JSONError', {
- fileName: errorEx.append('in %s')
-});
-
-module.exports = function (x, reviver, filename) {
- if (typeof reviver === 'string') {
- filename = reviver;
- reviver = null;
- }
-
- try {
- try {
- return JSON.parse(x, reviver);
- } catch (err) {
- fallback.parse(x, {
- mode: 'json',
- reviver: reviver
- });
-
- throw err;
- }
- } catch (err) {
- var jsonErr = new JSONError(err);
-
- if (filename) {
- jsonErr.fileName = filename;
- }
-
- throw jsonErr;
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 0a5f461a69..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 JD Ballard
-
-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/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 b/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
deleted file mode 100644
index 97f744af89..0000000000
--- a/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
+++ /dev/null
@@ -1,144 +0,0 @@
-# node-error-ex [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-error-ex.svg?style=flat-square)](https://travis-ci.org/Qix-/node-error-ex) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-error-ex.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-error-ex)
-> Easily subclass and customize new Error types
-
-## Examples
-To include in your project:
-```javascript
-var errorEx = require('error-ex');
-```
-
-To create an error message type with a specific name (note, that `ErrorFn.name`
-will not reflect this):
-```javascript
-var JSONError = errorEx('JSONError');
-
-var err = new JSONError('error');
-err.name; //-> JSONError
-throw err; //-> JSONError: error
-```
-
-To add a stack line:
-```javascript
-var JSONError = errorEx('JSONError', {fileName: errorEx.line('in %s')});
-
-var err = new JSONError('error')
-err.fileName = '/a/b/c/foo.json';
-throw err; //-> (line 2)-> in /a/b/c/foo.json
-```
-
-To append to the error message:
-```javascript
-var JSONError = errorEx('JSONError', {fileName: errorEx.append('in %s')});
-
-var err = new JSONError('error');
-err.fileName = '/a/b/c/foo.json';
-throw err; //-> JSONError: error in /a/b/c/foo.json
-```
-
-## API
-
-#### `errorEx([name], [properties])`
-Creates a new ErrorEx error type
-
-- `name`: the name of the new type (appears in the error message upon throw;
- defaults to `Error.name`)
-- `properties`: if supplied, used as a key/value dictionary of properties to
- use when building up the stack message. Keys are property names that are
- looked up on the error message, and then passed to function values.
- - `line`: if specified and is a function, return value is added as a stack
- entry (error-ex will indent for you). Passed the property value given
- the key.
- - `stack`: if specified and is a function, passed the value of the property
- using the key, and the raw stack lines as a second argument. Takes no
- return value (but the stack can be modified directly).
- - `message`: if specified and is a function, return value is used as new
- `.message` value upon get. Passed the property value of the property named
- by key, and the existing message is passed as the second argument as an
- array of lines (suitable for multi-line messages).
-
-Returns a constructor (Function) that can be used just like the regular Error
-constructor.
-
-```javascript
-var errorEx = require('error-ex');
-
-var BasicError = errorEx();
-
-var NamedError = errorEx('NamedError');
-
-// --
-
-var AdvancedError = errorEx('AdvancedError', {
- foo: {
- line: function (value, stack) {
- if (value) {
- return 'bar ' + value;
- }
- return null;
- }
- }
-}
-
-var err = new AdvancedError('hello, world');
-err.foo = 'baz';
-throw err;
-
-/*
- AdvancedError: hello, world
- bar baz
- at tryReadme() (readme.js:20:1)
-*/
-```
-
-#### `errorEx.line(str)`
-Creates a stack line using a delimiter
-
-> This is a helper function. It is to be used in lieu of writing a value object
-> for `properties` values.
-
-- `str`: The string to create
- - Use the delimiter `%s` to specify where in the string the value should go
-
-```javascript
-var errorEx = require('error-ex');
-
-var FileError = errorEx('FileError', {fileName: errorEx.line('in %s')});
-
-var err = new FileError('problem reading file');
-err.fileName = '/a/b/c/d/foo.js';
-throw err;
-
-/*
- FileError: problem reading file
- in /a/b/c/d/foo.js
- at tryReadme() (readme.js:7:1)
-*/
-```
-
-#### `errorEx.append(str)`
-Appends to the `error.message` string
-
-> This is a helper function. It is to be used in lieu of writing a value object
-> for `properties` values.
-
-- `str`: The string to append
- - Use the delimiter `%s` to specify where in the string the value should go
-
-```javascript
-var errorEx = require('error-ex');
-
-var SyntaxError = errorEx('SyntaxError', {fileName: errorEx.append('in %s')});
-
-var err = new SyntaxError('improper indentation');
-err.fileName = '/a/b/c/d/foo.js';
-throw err;
-
-/*
- SyntaxError: improper indentation in /a/b/c/d/foo.js
- at tryReadme() (readme.js:7:1)
-*/
-```
-
-## License
-Licensed under the [MIT License](http://opensource.org/licenses/MIT).
-You can find a copy of it in [LICENSE](LICENSE).
diff --git a/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 b/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
deleted file mode 100644
index 43641b08ff..0000000000
--- a/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
+++ /dev/null
@@ -1,133 +0,0 @@
-'use strict';
-
-var util = require('util');
-var isArrayish = require('is-arrayish');
-
-var errorEx = function errorEx(name, properties) {
- if (!name || name.constructor !== String) {
- properties = name || {};
- name = Error.name;
- }
-
- var errorExError = function ErrorEXError(message) {
- if (!this) {
- return new ErrorEXError(message);
- }
-
- message = message instanceof Error
- ? message.message
- : (message || this.message);
-
- Error.call(this, message);
- Error.captureStackTrace(this, errorExError);
-
- this.name = name;
-
- Object.defineProperty(this, 'message', {
- configurable: true,
- enumerable: false,
- get: function () {
- var newMessage = message.split(/\r?\n/g);
-
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
-
- var modifier = properties[key];
-
- if ('message' in modifier) {
- newMessage = modifier.message(this[key], newMessage) || newMessage;
- if (!isArrayish(newMessage)) {
- newMessage = [newMessage];
- }
- }
- }
-
- return newMessage.join('\n');
- },
- set: function (v) {
- message = v;
- }
- });
-
- var stackDescriptor = Object.getOwnPropertyDescriptor(this, 'stack');
- var stackGetter = stackDescriptor.get;
- var stackValue = stackDescriptor.value;
- delete stackDescriptor.value;
- delete stackDescriptor.writable;
-
- stackDescriptor.get = function () {
- var stack = (stackGetter)
- ? stackGetter.call(this).split(/\r?\n+/g)
- : stackValue.split(/\r?\n+/g);
-
- // starting in Node 7, the stack builder caches the message.
- // just replace it.
- stack[0] = this.name + ': ' + this.message;
-
- var lineCount = 1;
- for (var key in properties) {
- if (!properties.hasOwnProperty(key)) {
- continue;
- }
-
- var modifier = properties[key];
-
- if ('line' in modifier) {
- var line = modifier.line(this[key]);
- if (line) {
- stack.splice(lineCount++, 0, ' ' + line);
- }
- }
-
- if ('stack' in modifier) {
- modifier.stack(this[key], stack);
- }
- }
-
- return stack.join('\n');
- };
-
- Object.defineProperty(this, 'stack', stackDescriptor);
- };
-
- if (Object.setPrototypeOf) {
- Object.setPrototypeOf(errorExError.prototype, Error.prototype);
- Object.setPrototypeOf(errorExError, Error);
- } else {
- util.inherits(errorExError, Error);
- }
-
- return errorExError;
-};
-
-errorEx.append = function (str, def) {
- return {
- message: function (v, message) {
- v = v || def;
-
- if (v) {
- message[0] += ' ' + str.replace('%s', v.toString());
- }
-
- return message;
- }
- };
-};
-
-errorEx.line = function (str, def) {
- return {
- line: function (v) {
- v = v || def;
-
- if (v) {
- return str.replace('%s', v.toString());
- }
-
- return null;
- }
- };
-};
-
-module.exports = errorEx;
diff --git a/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 b/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
deleted file mode 100644
index 4c017f8ad2..0000000000
--- a/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
+++ /dev/null
@@ -1,18 +0,0 @@
-root = true
-
-[*]
-indent_style = tab
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.coffee]
-indent_style = space
-
-[{package.json,*.yml}]
-indent_style = space
-indent_size = 2
-
-[*.md]
-trim_trailing_whitespace = false
diff --git a/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 b/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
deleted file mode 100644
index 19fbec32b8..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-instrumentation:
- excludes:
- - test.js
- - test/**/*
diff --git a/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 b/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
deleted file mode 100644
index 8d5eacb3ef..0000000000
--- a/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
+++ /dev/null
@@ -1,5 +0,0 @@
-/coverage/
-/test.js
-/test/
-*.sw[a-p]
-/node_modules/
diff --git a/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 b/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
deleted file mode 100644
index 5a0424350e..0000000000
--- a/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
+++ /dev/null
@@ -1,17 +0,0 @@
-language: node_js
-
-script:
- - node_modules/.bin/istanbul cover node_modules/.bin/_mocha -- --compilers coffee:coffee-script/register
- - cat coverage/lcov.info | node_modules/.bin/coveralls
-node_js:
- - "0.10"
- - "0.11"
- - "0.12"
- - "iojs"
-os:
- - linux
- - osx
-
-notifications:
- slack:
- secure: oOt8QGzdrPDsTMcyahtIq5Q+0U1iwfgJgFCxBLsomQ0bpIMn+y5m4viJydA2UinHPGc944HS3LMZS9iKQyv+DjTgbhUyNXqeVjtxCwRe37f5rKQlXVvdfmjHk2kln4H8DcK3r5Qd/+2hd9BeMsp2GImTrkRSud1CZQlhhe5IgZOboSoWpGVMMy1iazWT06tAtiB2LRVhmsdUaFZDWAhGZ+UAvCPf+mnBOAylIj+U0GDrofhfTi25RK0gddG2f/p2M1HCu49O6wECGWkt2hVei233DkNJyLLLJVcvmhf+aXkV5TjMyaoxh/HdcV4DrA7KvYuWmWWKsINa9hlwAsdd/FYmJ6PjRkKWas2JoQ1C+qOzDxyQvn3CaUZFKD99pdsq0rBBZujqXQKZZ/hWb/CE74BI6fKmqQkiEPaD/7uADj04FEg6HVBZaMCyauOaK5b3VC97twbALZ1qVxYV6mU+zSEvnUbpnjjvRO0fSl9ZHA+rzkW73kX3GmHY0wAozEZbSy7QLuZlQ2QtHmBLr+APaGMdL1sFF9qFfzqKy0WDbSE0WS6hpAEJpTsjYmeBrnI8UmK3m++iEgyQPvZoH9LhUT+ek7XIfHZMe04BmC6wuO24/RfpmR6bQK9VMarFCYlBiWxg/z30vkP0KTpUi3o/cqFm7/Noxc0i2LVqM3E0Sy4=
diff --git a/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 b/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
deleted file mode 100644
index 0a5f461a69..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 JD Ballard
-
-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/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 b/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
deleted file mode 100644
index 7d360724c0..0000000000
--- a/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
+++ /dev/null
@@ -1,16 +0,0 @@
-# node-is-arrayish [![Travis-CI.org Build Status](https://img.shields.io/travis/Qix-/node-is-arrayish.svg?style=flat-square)](https://travis-ci.org/Qix-/node-is-arrayish) [![Coveralls.io Coverage Rating](https://img.shields.io/coveralls/Qix-/node-is-arrayish.svg?style=flat-square)](https://coveralls.io/r/Qix-/node-is-arrayish)
-> Determines if an object can be used like an Array
-
-## Example
-```javascript
-var isArrayish = require('is-arrayish');
-
-isArrayish([]); // true
-isArrayish({__proto__: []}); // true
-isArrayish({}); // false
-isArrayish({length:10}); // false
-```
-
-## License
-Licensed under the [MIT License](http://opensource.org/licenses/MIT).
-You can find a copy of it in [LICENSE](LICENSE).
diff --git a/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 b/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
deleted file mode 100644
index 5b971868b6..0000000000
--- a/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
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-module.exports = function isArrayish(obj) {
- if (!obj) {
- return false;
- }
-
- return obj instanceof Array || Array.isArray(obj) ||
- (obj.length >= 0 && obj.splice instanceof Function);
-};
diff --git a/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 b/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
deleted file mode 100644
index f191d1f3fa..0000000000
--- a/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
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "is-arrayish@^0.2.1",
- "_id": "is-arrayish@0.2.1",
- "_inBundle": false,
- "_integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/parse-json/error-ex/is-arrayish",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-arrayish@^0.2.1",
- "name": "is-arrayish",
- "escapedName": "is-arrayish",
- "rawSpec": "^0.2.1",
- "saveSpec": null,
- "fetchSpec": "^0.2.1"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/parse-json/error-ex"
- ],
- "_resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "_shasum": "77c99840527aa8ecb1a8ba697b80645a7a926a9d",
- "_shrinkwrap": null,
- "_spec": "is-arrayish@^0.2.1",
- "_where": "/Users/zkat/Documents/code/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",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Determines if an object can be used like an Array",
- "devDependencies": {
- "coffee-script": "^1.9.3",
- "coveralls": "^2.11.2",
- "istanbul": "^0.3.17",
- "mocha": "^2.2.5",
- "should": "^7.0.1",
- "xo": "^0.6.1"
- },
- "name": "is-arrayish",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "0.2.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 12985c9fee..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "_from": "error-ex@^1.2.0",
- "_id": "error-ex@1.3.1",
- "_inBundle": false,
- "_integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/parse-json/error-ex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "error-ex@^1.2.0",
- "name": "error-ex",
- "escapedName": "error-ex",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/parse-json"
- ],
- "_resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
- "_shasum": "f855a86ce61adc4e8621c3cda21e7a7612c3a8dc",
- "_shrinkwrap": null,
- "_spec": "error-ex@^1.2.0",
- "_where": "/Users/zkat/Documents/code/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",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- },
- "deprecated": false,
- "description": "> Easily subclass and customize new Error types",
- "devDependencies": {
- "coffee-script": "^1.9.3",
- "coveralls": "^2.11.2",
- "istanbul": "^0.3.17",
- "mocha": "^2.2.5",
- "should": "^7.0.1",
- "xo": "^0.7.1"
- },
- "name": "error-ex",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.3.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index a5ce0ea9db..0000000000
--- a/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
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "_from": "parse-json@^2.2.0",
- "_id": "parse-json@2.2.0",
- "_inBundle": false,
- "_integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/parse-json",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "parse-json@^2.2.0",
- "name": "parse-json",
- "escapedName": "parse-json",
- "rawSpec": "^2.2.0",
- "saveSpec": null,
- "fetchSpec": "^2.2.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file"
- ],
- "_resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
- "_shasum": "f480f40434ef80741f8469099f8dea18f55a4dc9",
- "_shrinkwrap": null,
- "_spec": "parse-json@^2.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "error-ex": "^1.2.0"
- },
- "deprecated": false,
- "description": "> Parse JSON with more helpful errors",
- "devDependencies": {
- "ava": "0.0.4",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "parse-json",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.2.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index ca96e60a69..0000000000
--- a/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
+++ /dev/null
@@ -1,83 +0,0 @@
-# parse-json [![Build Status](https://travis-ci.org/sindresorhus/parse-json.svg?branch=master)](https://travis-ci.org/sindresorhus/parse-json)
-
-> Parse JSON with more helpful errors
-
-
-## Install
-
-```
-$ npm install --save parse-json
-```
-
-
-## Usage
-
-```js
-var parseJson = require('parse-json');
-var json = '{\n\t"foo": true,\n}';
-
-
-JSON.parse(json);
-/*
-undefined:3
-}
-^
-SyntaxError: Unexpected token }
-*/
-
-
-parseJson(json);
-/*
-JSONError: Trailing comma in object at 3:1
-}
-^
-*/
-
-
-parseJson(json, 'foo.json');
-/*
-JSONError: Trailing comma in object at 3:1 in foo.json
-}
-^
-*/
-
-
-// you can also add the filename at a later point
-try {
- parseJson(json);
-} catch (err) {
- err.fileName = 'foo.json';
- throw err;
-}
-/*
-JSONError: Trailing comma in object at 3:1 in foo.json
-}
-^
-*/
-```
-
-## API
-
-### parseJson(input, [reviver], [filename])
-
-#### input
-
-Type: `string`
-
-#### reviver
-
-Type: `function`
-
-Prescribes how the value originally produced by parsing is transformed, before being returned. See [`JSON.parse` docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter
-) for more.
-
-#### filename
-
-Type: `string`
-
-Filename displayed in the error message.
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index 2b78949378..0000000000
--- a/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
+++ /dev/null
@@ -1,751 +0,0 @@
-/*
- * Author: Alex Kocharin <alex@kocharin.ru>
- * GIT: https://github.com/rlidwka/jju
- * License: WTFPL, grab your copy here: http://www.wtfpl.net/txt/copying/
- */
-
-// RTFM: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
-
-var Uni = require('./unicode')
-
-function isHexDigit(x) {
- return (x >= '0' && x <= '9')
- || (x >= 'A' && x <= 'F')
- || (x >= 'a' && x <= 'f')
-}
-
-function isOctDigit(x) {
- return x >= '0' && x <= '7'
-}
-
-function isDecDigit(x) {
- return x >= '0' && x <= '9'
-}
-
-var unescapeMap = {
- '\'': '\'',
- '"' : '"',
- '\\': '\\',
- 'b' : '\b',
- 'f' : '\f',
- 'n' : '\n',
- 'r' : '\r',
- 't' : '\t',
- 'v' : '\v',
- '/' : '/',
-}
-
-function formatError(input, msg, position, lineno, column, json5) {
- var result = msg + ' at ' + (lineno + 1) + ':' + (column + 1)
- , tmppos = position - column - 1
- , srcline = ''
- , underline = ''
-
- var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON
-
- // output no more than 70 characters before the wrong ones
- if (tmppos < position - 70) {
- tmppos = position - 70
- }
-
- while (1) {
- var chr = input[++tmppos]
-
- if (isLineTerminator(chr) || tmppos === input.length) {
- if (position >= tmppos) {
- // ending line error, so show it after the last char
- underline += '^'
- }
- break
- }
- srcline += chr
-
- if (position === tmppos) {
- underline += '^'
- } else if (position > tmppos) {
- underline += input[tmppos] === '\t' ? '\t' : ' '
- }
-
- // output no more than 78 characters on the string
- if (srcline.length > 78) break
- }
-
- return result + '\n' + srcline + '\n' + underline
-}
-
-function parse(input, options) {
- // parse as a standard JSON mode
- var json5 = !(options.mode === 'json' || options.legacy)
- var isLineTerminator = json5 ? Uni.isLineTerminator : Uni.isLineTerminatorJSON
- var isWhiteSpace = json5 ? Uni.isWhiteSpace : Uni.isWhiteSpaceJSON
-
- var length = input.length
- , lineno = 0
- , linestart = 0
- , position = 0
- , stack = []
-
- var tokenStart = function() {}
- var tokenEnd = function(v) {return v}
-
- /* tokenize({
- raw: '...',
- type: 'whitespace'|'comment'|'key'|'literal'|'separator'|'newline',
- value: 'number'|'string'|'whatever',
- path: [...],
- })
- */
- if (options._tokenize) {
- ;(function() {
- var start = null
- tokenStart = function() {
- if (start !== null) throw Error('internal error, token overlap')
- start = position
- }
-
- tokenEnd = function(v, type) {
- if (start != position) {
- var hash = {
- raw: input.substr(start, position-start),
- type: type,
- stack: stack.slice(0),
- }
- if (v !== undefined) hash.value = v
- options._tokenize.call(null, hash)
- }
- start = null
- return v
- }
- })()
- }
-
- function fail(msg) {
- var column = position - linestart
-
- if (!msg) {
- if (position < length) {
- var token = '\'' +
- JSON
- .stringify(input[position])
- .replace(/^"|"$/g, '')
- .replace(/'/g, "\\'")
- .replace(/\\"/g, '"')
- + '\''
-
- if (!msg) msg = 'Unexpected token ' + token
- } else {
- if (!msg) msg = 'Unexpected end of input'
- }
- }
-
- var error = SyntaxError(formatError(input, msg, position, lineno, column, json5))
- error.row = lineno + 1
- error.column = column + 1
- throw error
- }
-
- function newline(chr) {
- // account for <cr><lf>
- if (chr === '\r' && input[position] === '\n') position++
- linestart = position
- lineno++
- }
-
- function parseGeneric() {
- var result
-
- while (position < length) {
- tokenStart()
- var chr = input[position++]
-
- if (chr === '"' || (chr === '\'' && json5)) {
- return tokenEnd(parseString(chr), 'literal')
-
- } else if (chr === '{') {
- tokenEnd(undefined, 'separator')
- return parseObject()
-
- } else if (chr === '[') {
- tokenEnd(undefined, 'separator')
- return parseArray()
-
- } else if (chr === '-'
- || chr === '.'
- || isDecDigit(chr)
- // + number Infinity NaN
- || (json5 && (chr === '+' || chr === 'I' || chr === 'N'))
- ) {
- return tokenEnd(parseNumber(), 'literal')
-
- } else if (chr === 'n') {
- parseKeyword('null')
- return tokenEnd(null, 'literal')
-
- } else if (chr === 't') {
- parseKeyword('true')
- return tokenEnd(true, 'literal')
-
- } else if (chr === 'f') {
- parseKeyword('false')
- return tokenEnd(false, 'literal')
-
- } else {
- position--
- return tokenEnd(undefined)
- }
- }
- }
-
- function parseKey() {
- var result
-
- while (position < length) {
- tokenStart()
- var chr = input[position++]
-
- if (chr === '"' || (chr === '\'' && json5)) {
- return tokenEnd(parseString(chr), 'key')
-
- } else if (chr === '{') {
- tokenEnd(undefined, 'separator')
- return parseObject()
-
- } else if (chr === '[') {
- tokenEnd(undefined, 'separator')
- return parseArray()
-
- } else if (chr === '.'
- || isDecDigit(chr)
- ) {
- return tokenEnd(parseNumber(true), 'key')
-
- } else if (json5
- && Uni.isIdentifierStart(chr) || (chr === '\\' && input[position] === 'u')) {
- // unicode char or a unicode sequence
- var rollback = position - 1
- var result = parseIdentifier()
-
- if (result === undefined) {
- position = rollback
- return tokenEnd(undefined)
- } else {
- return tokenEnd(result, 'key')
- }
-
- } else {
- position--
- return tokenEnd(undefined)
- }
- }
- }
-
- function skipWhiteSpace() {
- tokenStart()
- while (position < length) {
- var chr = input[position++]
-
- if (isLineTerminator(chr)) {
- position--
- tokenEnd(undefined, 'whitespace')
- tokenStart()
- position++
- newline(chr)
- tokenEnd(undefined, 'newline')
- tokenStart()
-
- } else if (isWhiteSpace(chr)) {
- // nothing
-
- } else if (chr === '/'
- && json5
- && (input[position] === '/' || input[position] === '*')
- ) {
- position--
- tokenEnd(undefined, 'whitespace')
- tokenStart()
- position++
- skipComment(input[position++] === '*')
- tokenEnd(undefined, 'comment')
- tokenStart()
-
- } else {
- position--
- break
- }
- }
- return tokenEnd(undefined, 'whitespace')
- }
-
- function skipComment(multi) {
- while (position < length) {
- var chr = input[position++]
-
- if (isLineTerminator(chr)) {
- // LineTerminator is an end of singleline comment
- if (!multi) {
- // let parent function deal with newline
- position--
- return
- }
-
- newline(chr)
-
- } else if (chr === '*' && multi) {
- // end of multiline comment
- if (input[position] === '/') {
- position++
- return
- }
-
- } else {
- // nothing
- }
- }
-
- if (multi) {
- fail('Unclosed multiline comment')
- }
- }
-
- function parseKeyword(keyword) {
- // keyword[0] is not checked because it should've checked earlier
- var _pos = position
- var len = keyword.length
- for (var i=1; i<len; i++) {
- if (position >= length || keyword[i] != input[position]) {
- position = _pos-1
- fail()
- }
- position++
- }
- }
-
- function parseObject() {
- var result = options.null_prototype ? Object.create(null) : {}
- , empty_object = {}
- , is_non_empty = false
-
- while (position < length) {
- skipWhiteSpace()
- var item1 = parseKey()
- skipWhiteSpace()
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (chr === '}' && item1 === undefined) {
- if (!json5 && is_non_empty) {
- position--
- fail('Trailing comma in object')
- }
- return result
-
- } else if (chr === ':' && item1 !== undefined) {
- skipWhiteSpace()
- stack.push(item1)
- var item2 = parseGeneric()
- stack.pop()
-
- if (item2 === undefined) fail('No value found for key ' + item1)
- if (typeof(item1) !== 'string') {
- if (!json5 || typeof(item1) !== 'number') {
- fail('Wrong key type: ' + item1)
- }
- }
-
- if ((item1 in empty_object || empty_object[item1] != null) && options.reserved_keys !== 'replace') {
- if (options.reserved_keys === 'throw') {
- fail('Reserved key: ' + item1)
- } else {
- // silently ignore it
- }
- } else {
- if (typeof(options.reviver) === 'function') {
- item2 = options.reviver.call(null, item1, item2)
- }
-
- if (item2 !== undefined) {
- is_non_empty = true
- Object.defineProperty(result, item1, {
- value: item2,
- enumerable: true,
- configurable: true,
- writable: true,
- })
- }
- }
-
- skipWhiteSpace()
-
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (chr === ',') {
- continue
-
- } else if (chr === '}') {
- return result
-
- } else {
- fail()
- }
-
- } else {
- position--
- fail()
- }
- }
-
- fail()
- }
-
- function parseArray() {
- var result = []
-
- while (position < length) {
- skipWhiteSpace()
- stack.push(result.length)
- var item = parseGeneric()
- stack.pop()
- skipWhiteSpace()
- tokenStart()
- var chr = input[position++]
- tokenEnd(undefined, 'separator')
-
- if (item !== undefined) {
- if (typeof(options.reviver) === 'function') {
- item = options.reviver.call(null, String(result.length), item)
- }
- if (item === undefined) {
- result.length++
- item = true // hack for check below, not included into result
- } else {
- result.push(item)
- }
- }
-
- if (chr === ',') {
- if (item === undefined) {
- fail('Elisions are not supported')
- }
-
- } else if (chr === ']') {
- if (!json5 && item === undefined && result.length) {
- position--
- fail('Trailing comma in array')
- }
- return result
-
- } else {
- position--
- fail()
- }
- }
- }
-
- function parseNumber() {
- // rewind because we don't know first char
- position--
-
- var start = position
- , chr = input[position++]
- , t
-
- var to_num = function(is_octal) {
- var str = input.substr(start, position - start)
-
- if (is_octal) {
- var result = parseInt(str.replace(/^0o?/, ''), 8)
- } else {
- var result = Number(str)
- }
-
- if (Number.isNaN(result)) {
- position--
- fail('Bad numeric literal - "' + input.substr(start, position - start + 1) + '"')
- } else if (!json5 && !str.match(/^-?(0|[1-9][0-9]*)(\.[0-9]+)?(e[+-]?[0-9]+)?$/i)) {
- // additional restrictions imposed by json
- position--
- fail('Non-json numeric literal - "' + input.substr(start, position - start + 1) + '"')
- } else {
- return result
- }
- }
-
- // ex: -5982475.249875e+29384
- // ^ skipping this
- if (chr === '-' || (chr === '+' && json5)) chr = input[position++]
-
- if (chr === 'N' && json5) {
- parseKeyword('NaN')
- return NaN
- }
-
- if (chr === 'I' && json5) {
- parseKeyword('Infinity')
-
- // returning +inf or -inf
- return to_num()
- }
-
- if (chr >= '1' && chr <= '9') {
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- // special case for leading zero: 0.123456
- if (chr === '0') {
- chr = input[position++]
-
- // new syntax, "0o777" old syntax, "0777"
- var is_octal = chr === 'o' || chr === 'O' || isOctDigit(chr)
- var is_hex = chr === 'x' || chr === 'X'
-
- if (json5 && (is_octal || is_hex)) {
- while (position < length
- && (is_hex ? isHexDigit : isOctDigit)( input[position] )
- ) position++
-
- var sign = 1
- if (input[start] === '-') {
- sign = -1
- start++
- } else if (input[start] === '+') {
- start++
- }
-
- return sign * to_num(is_octal)
- }
- }
-
- if (chr === '.') {
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- if (chr === 'e' || chr === 'E') {
- chr = input[position++]
- if (chr === '-' || chr === '+') position++
- // ex: -5982475.249875e+29384
- // ^^^ skipping these
- while (position < length && isDecDigit(input[position])) position++
- chr = input[position++]
- }
-
- // we have char in the buffer, so count for it
- position--
- return to_num()
- }
-
- function parseIdentifier() {
- // rewind because we don't know first char
- position--
-
- var result = ''
-
- while (position < length) {
- var chr = input[position++]
-
- if (chr === '\\'
- && input[position] === 'u'
- && isHexDigit(input[position+1])
- && isHexDigit(input[position+2])
- && isHexDigit(input[position+3])
- && isHexDigit(input[position+4])
- ) {
- // UnicodeEscapeSequence
- chr = String.fromCharCode(parseInt(input.substr(position+1, 4), 16))
- position += 5
- }
-
- if (result.length) {
- // identifier started
- if (Uni.isIdentifierPart(chr)) {
- result += chr
- } else {
- position--
- return result
- }
-
- } else {
- if (Uni.isIdentifierStart(chr)) {
- result += chr
- } else {
- return undefined
- }
- }
- }
-
- fail()
- }
-
- function parseString(endChar) {
- // 7.8.4 of ES262 spec
- var result = ''
-
- while (position < length) {
- var chr = input[position++]
-
- if (chr === endChar) {
- return result
-
- } else if (chr === '\\') {
- if (position >= length) fail()
- chr = input[position++]
-
- if (unescapeMap[chr] && (json5 || (chr != 'v' && chr != "'"))) {
- result += unescapeMap[chr]
-
- } else if (json5 && isLineTerminator(chr)) {
- // line continuation
- newline(chr)
-
- } else if (chr === 'u' || (chr === 'x' && json5)) {
- // unicode/character escape sequence
- var off = chr === 'u' ? 4 : 2
-
- // validation for \uXXXX
- for (var i=0; i<off; i++) {
- if (position >= length) fail()
- if (!isHexDigit(input[position])) fail('Bad escape sequence')
- position++
- }
-
- result += String.fromCharCode(parseInt(input.substr(position-off, off), 16))
- } else if (json5 && isOctDigit(chr)) {
- if (chr < '4' && isOctDigit(input[position]) && isOctDigit(input[position+1])) {
- // three-digit octal
- var digits = 3
- } else if (isOctDigit(input[position])) {
- // two-digit octal
- var digits = 2
- } else {
- var digits = 1
- }
- position += digits - 1
- result += String.fromCharCode(parseInt(input.substr(position-digits, digits), 8))
- /*if (!isOctDigit(input[position])) {
- // \0 is allowed still
- result += '\0'
- } else {
- fail('Octal literals are not supported')
- }*/
-
- } else if (json5) {
- // \X -> x
- result += chr
-
- } else {
- position--
- fail()
- }
-
- } else if (isLineTerminator(chr)) {
- fail()
-
- } else {
- if (!json5 && chr.charCodeAt(0) < 32) {
- position--
- fail('Unexpected control character')
- }
-
- // SourceCharacter but not one of " or \ or LineTerminator
- result += chr
- }
- }
-
- fail()
- }
-
- skipWhiteSpace()
- var return_value = parseGeneric()
- if (return_value !== undefined || position < length) {
- skipWhiteSpace()
-
- if (position >= length) {
- if (typeof(options.reviver) === 'function') {
- return_value = options.reviver.call(null, '', return_value)
- }
- return return_value
- } else {
- fail()
- }
-
- } else {
- if (position) {
- fail('No data, only a whitespace')
- } else {
- fail('No data, empty input')
- }
- }
-}
-
-/*
- * parse(text, options)
- * or
- * parse(text, reviver)
- *
- * where:
- * text - string
- * options - object
- * reviver - function
- */
-module.exports.parse = function parseJSON(input, options) {
- // support legacy functions
- if (typeof(options) === 'function') {
- options = {
- reviver: options
- }
- }
-
- if (input === undefined) {
- // parse(stringify(x)) should be equal x
- // with JSON functions it is not 'cause of undefined
- // so we're fixing it
- return undefined
- }
-
- // JSON.parse compat
- if (typeof(input) !== 'string') input = String(input)
- if (options == null) options = {}
- if (options.reserved_keys == null) options.reserved_keys = 'ignore'
-
- if (options.reserved_keys === 'throw' || options.reserved_keys === 'ignore') {
- if (options.null_prototype == null) {
- options.null_prototype = true
- }
- }
-
- try {
- return parse(input, options)
- } catch(err) {
- // jju is a recursive parser, so JSON.parse("{{{{{{{") could blow up the stack
- //
- // this catch is used to skip all those internal calls
- if (err instanceof SyntaxError && err.row != null && err.column != null) {
- var old_err = err
- err = SyntaxError(old_err.message)
- err.column = old_err.column
- err.row = old_err.row
- }
- throw err
- }
-}
-
-module.exports.tokenize = function tokenizeJSON(input, options) {
- if (options == null) options = {}
-
- options._tokenize = function(smth) {
- if (options._addstack) smth.stack.unshift.apply(smth.stack, options._addstack)
- tokens.push(smth)
- }
-
- var tokens = []
- tokens.data = module.exports.parse(input, options)
- return tokens
-}
diff --git a/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 b/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
deleted file mode 100644
index 1a29143c2d..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-
-// This is autogenerated with esprima tools, see:
-// https://github.com/ariya/esprima/blob/master/esprima.js
-//
-// PS: oh God, I hate Unicode
-
-// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierStart:
-
-var Uni = module.exports
-
-module.exports.isWhiteSpace = function isWhiteSpace(x) {
- // section 7.2, table 2
- return x === '\u0020'
- || x === '\u00A0'
- || x === '\uFEFF' // <-- this is not a Unicode WS, only a JS one
- || (x >= '\u0009' && x <= '\u000D') // 9 A B C D
-
- // + whitespace characters from unicode, category Zs
- || x === '\u1680'
- || x === '\u180E'
- || (x >= '\u2000' && x <= '\u200A') // 0 1 2 3 4 5 6 7 8 9 A
- || x === '\u2028'
- || x === '\u2029'
- || x === '\u202F'
- || x === '\u205F'
- || x === '\u3000'
-}
-
-module.exports.isWhiteSpaceJSON = function isWhiteSpaceJSON(x) {
- return x === '\u0020'
- || x === '\u0009'
- || x === '\u000A'
- || x === '\u000D'
-}
-
-module.exports.isLineTerminator = function isLineTerminator(x) {
- // ok, here is the part when JSON is wrong
- // section 7.3, table 3
- return x === '\u000A'
- || x === '\u000D'
- || x === '\u2028'
- || x === '\u2029'
-}
-
-module.exports.isLineTerminatorJSON = function isLineTerminatorJSON(x) {
- return x === '\u000A'
- || x === '\u000D'
-}
-
-module.exports.isIdentifierStart = function isIdentifierStart(x) {
- return x === '$'
- || x === '_'
- || (x >= 'A' && x <= 'Z')
- || (x >= 'a' && x <= 'z')
- || (x >= '\u0080' && Uni.NonAsciiIdentifierStart.test(x))
-}
-
-module.exports.isIdentifierPart = function isIdentifierPart(x) {
- return x === '$'
- || x === '_'
- || (x >= 'A' && x <= 'Z')
- || (x >= 'a' && x <= 'z')
- || (x >= '0' && x <= '9') // <-- addition to Start
- || (x >= '\u0080' && Uni.NonAsciiIdentifierPart.test(x))
-}
-
-module.exports.NonAsciiIdentifierStart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
-
-// ECMAScript 5.1/Unicode v6.3.0 NonAsciiIdentifierPart:
-
-module.exports.NonAsciiIdentifierPart = /[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u0527\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0\u08A2-\u08AC\u08E4-\u08FE\u0900-\u0963\u0966-\u096F\u0971-\u0977\u0979-\u097F\u0981-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F0\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191C\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1D00-\u1DE6\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA697\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7B\uAA80-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE26\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/
diff --git a/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 b/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
deleted file mode 100644
index 7c720ebee8..0000000000
--- a/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
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-var processFn = function (fn, P, opts) {
- return function () {
- var that = this;
- var args = new Array(arguments.length);
-
- for (var i = 0; i < arguments.length; i++) {
- args[i] = arguments[i];
- }
-
- return new P(function (resolve, reject) {
- args.push(function (err, result) {
- if (err) {
- reject(err);
- } else if (opts.multiArgs) {
- var results = new Array(arguments.length - 1);
-
- for (var i = 1; i < arguments.length; i++) {
- results[i - 1] = arguments[i];
- }
-
- resolve(results);
- } else {
- resolve(result);
- }
- });
-
- fn.apply(that, args);
- });
- };
-};
-
-var pify = module.exports = function (obj, P, opts) {
- if (typeof P !== 'function') {
- opts = P;
- P = Promise;
- }
-
- opts = opts || {};
- opts.exclude = opts.exclude || [/.+Sync$/];
-
- var filter = function (key) {
- var match = function (pattern) {
- return typeof pattern === 'string' ? key === pattern : pattern.test(key);
- };
-
- return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
- };
-
- var ret = typeof obj === 'function' ? function () {
- if (opts.excludeMain) {
- return obj.apply(this, arguments);
- }
-
- return processFn(obj, P, opts).apply(this, arguments);
- } : {};
-
- return Object.keys(obj).reduce(function (ret, key) {
- var x = obj[key];
-
- ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x;
-
- return ret;
- }, ret);
-};
-
-pify.all = pify;
diff --git a/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 b/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
deleted file mode 100644
index 70d5b2ff2f..0000000000
--- a/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
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "_from": "pify@^2.0.0",
- "_id": "pify@2.3.0",
- "_inBundle": false,
- "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/pify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pify@^2.0.0",
- "name": "pify",
- "escapedName": "pify",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file"
- ],
- "_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c",
- "_shrinkwrap": null,
- "_spec": "pify@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Promisify a callback-style function",
- "devDependencies": {
- "ava": "*",
- "pinkie-promise": "^1.0.0",
- "v8-natives": "0.0.2",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "pify",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.3.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 97aeeb628b..0000000000
--- a/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
+++ /dev/null
@@ -1,119 +0,0 @@
-# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify)
-
-> Promisify a callback-style function
-
-
-## Install
-
-```
-$ npm install --save pify
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const pify = require('pify');
-
-// promisify a single function
-
-pify(fs.readFile)('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-
-// or promisify all methods in a module
-
-pify(fs).readFile('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-```
-
-
-## API
-
-### pify(input, [promiseModule], [options])
-
-Returns a promise wrapped version of the supplied function or module.
-
-#### input
-
-Type: `function`, `object`
-
-Callback-style function or module whose methods you want to promisify.
-
-#### promiseModule
-
-Type: `function`
-
-Custom promise module to use instead of the native one.
-
-Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill.
-
-#### options
-
-##### multiArgs
-
-Type: `boolean`
-Default: `false`
-
-By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument.
-
-```js
-const request = require('request');
-const pify = require('pify');
-
-pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => {
- const [httpResponse, body] = result;
-});
-```
-
-##### include
-
-Type: `array` of (`string`|`regex`)
-
-Methods in a module to promisify. Remaining methods will be left untouched.
-
-##### exclude
-
-Type: `array` of (`string`|`regex`)
-Default: `[/.+Sync$/]`
-
-Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default.
-
-##### excludeMain
-
-Type: `boolean`
-Default: `false`
-
-By default, if given module is a function itself, this function will be promisified. Turn this option on if you want to promisify only methods of the module.
-
-```js
-const pify = require('pify');
-
-function fn() {
- return true;
-}
-
-fn.method = (data, callback) => {
- setImmediate(() => {
- callback(data, null);
- });
-};
-
-// promisify methods but not fn()
-const promiseFn = pify(fn, {excludeMain: true});
-
-if (promiseFn()) {
- promiseFn.method('hi').then(data => {
- console.log(data);
- });
-}
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index b00feb9a44..0000000000
--- a/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
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-module.exports = x => {
- if (typeof x !== 'string') {
- throw new TypeError('Expected a string, got ' + typeof x);
- }
-
- // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string
- // conversion translates it to FEFF (UTF-16 BOM)
- if (x.charCodeAt(0) === 0xFEFF) {
- return x.slice(1);
- }
-
- return x;
-};
diff --git a/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 b/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
deleted file mode 100644
index 408a730a02..0000000000
--- a/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
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "strip-bom@^3.0.0",
- "_id": "strip-bom@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file/strip-bom",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-bom@^3.0.0",
- "name": "strip-bom",
- "escapedName": "strip-bom",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file"
- ],
- "_resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "_shasum": "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3",
- "_shrinkwrap": null,
- "_spec": "strip-bom@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "strip-bom",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "3.0.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 812a98071f..0000000000
--- a/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
+++ /dev/null
@@ -1,36 +0,0 @@
-# strip-bom [![Build Status](https://travis-ci.org/sindresorhus/strip-bom.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-bom)
-
-> Strip UTF-8 [byte order mark](http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8) (BOM) from a string
-
-From Wikipedia:
-
-> The Unicode Standard permits the BOM in UTF-8, but does not require nor recommend its use. Byte order has no meaning in UTF-8.
-
-
-## Install
-
-```
-$ npm install --save strip-bom
-```
-
-
-## Usage
-
-```js
-const stripBom = require('strip-bom');
-
-stripBom('\uFEFFunicorn');
-//=> 'unicorn'
-```
-
-
-## Related
-
-- [strip-bom-cli](https://github.com/sindresorhus/strip-bom-cli) - CLI for this module
-- [strip-bom-buf](https://github.com/sindresorhus/strip-bom-buf) - Buffer version of this module
-- [strip-bom-stream](https://github.com/sindresorhus/strip-bom-stream) - Stream version of this module
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json
deleted file mode 100644
index c09c606cec..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/package.json
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "_from": "load-json-file@^2.0.0",
- "_id": "load-json-file@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/load-json-file",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "load-json-file@^2.0.0",
- "name": "load-json-file",
- "escapedName": "load-json-file",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg"
- ],
- "_resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
- "_shasum": "7947e42149af80d696cbf797bcaabcfe1fe29ca8",
- "_shrinkwrap": null,
- "_spec": "load-json-file@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^2.2.0",
- "pify": "^2.0.0",
- "strip-bom": "^3.0.0"
- },
- "deprecated": false,
- "description": "> Read and parse a JSON file",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "load-json-file",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md
deleted file mode 100644
index 3319c266c6..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/readme.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# load-json-file [![Build Status](https://travis-ci.org/sindresorhus/load-json-file.svg?branch=master)](https://travis-ci.org/sindresorhus/load-json-file)
-
-> Read and parse a JSON file
-
-[Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom), uses [`graceful-fs`](https://github.com/isaacs/node-graceful-fs), and throws more [helpful JSON errors](https://github.com/sindresorhus/parse-json).
-
-
-## Install
-
-```
-$ npm install --save load-json-file
-```
-
-
-## Usage
-
-```js
-const loadJsonFile = require('load-json-file');
-
-loadJsonFile('foo.json').then(json => {
- console.log(json);
- //=> {foo: true}
-});
-```
-
-
-## API
-
-### loadJsonFile(filepath)
-
-Returns a promise for the parsed JSON.
-
-### loadJsonFile.sync(filepath)
-
-Returns the parsed JSON.
-
-
-## Related
-
-- [write-json-file](https://github.com/sindresorhus/write-json-file) - Stringify and write JSON to a file atomically
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js
deleted file mode 100644
index 4ac9dd9679..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/index.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'use strict';
-const fs = require('fs');
-const pify = require('pify');
-
-function type(fn, fn2, fp) {
- if (typeof fp !== 'string') {
- return Promise.reject(new TypeError(`Expected a string, got ${typeof fp}`));
- }
-
- return pify(fs[fn])(fp).then(stats => stats[fn2]());
-}
-
-function typeSync(fn, fn2, fp) {
- if (typeof fp !== 'string') {
- throw new TypeError(`Expected a string, got ${typeof fp}`);
- }
-
- return fs[fn](fp)[fn2]();
-}
-
-exports.file = type.bind(null, 'stat', 'isFile');
-exports.dir = type.bind(null, 'stat', 'isDirectory');
-exports.symlink = type.bind(null, 'lstat', 'isSymbolicLink');
-exports.fileSync = typeSync.bind(null, 'statSync', 'isFile');
-exports.dirSync = typeSync.bind(null, 'statSync', 'isDirectory');
-exports.symlinkSync = typeSync.bind(null, 'lstatSync', 'isSymbolicLink');
diff --git a/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 b/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
deleted file mode 100644
index 7c720ebee8..0000000000
--- a/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
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-var processFn = function (fn, P, opts) {
- return function () {
- var that = this;
- var args = new Array(arguments.length);
-
- for (var i = 0; i < arguments.length; i++) {
- args[i] = arguments[i];
- }
-
- return new P(function (resolve, reject) {
- args.push(function (err, result) {
- if (err) {
- reject(err);
- } else if (opts.multiArgs) {
- var results = new Array(arguments.length - 1);
-
- for (var i = 1; i < arguments.length; i++) {
- results[i - 1] = arguments[i];
- }
-
- resolve(results);
- } else {
- resolve(result);
- }
- });
-
- fn.apply(that, args);
- });
- };
-};
-
-var pify = module.exports = function (obj, P, opts) {
- if (typeof P !== 'function') {
- opts = P;
- P = Promise;
- }
-
- opts = opts || {};
- opts.exclude = opts.exclude || [/.+Sync$/];
-
- var filter = function (key) {
- var match = function (pattern) {
- return typeof pattern === 'string' ? key === pattern : pattern.test(key);
- };
-
- return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
- };
-
- var ret = typeof obj === 'function' ? function () {
- if (opts.excludeMain) {
- return obj.apply(this, arguments);
- }
-
- return processFn(obj, P, opts).apply(this, arguments);
- } : {};
-
- return Object.keys(obj).reduce(function (ret, key) {
- var x = obj[key];
-
- ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x;
-
- return ret;
- }, ret);
-};
-
-pify.all = pify;
diff --git a/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 b/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
deleted file mode 100644
index 3c234828b3..0000000000
--- a/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
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "pify@^2.0.0",
- "_id": "pify@2.3.0",
- "_inBundle": false,
- "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/path-type/pify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pify@^2.0.0",
- "name": "pify",
- "escapedName": "pify",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg/path-type"
- ],
- "_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c",
- "_spec": "pify@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/pify/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Promisify a callback-style function",
- "devDependencies": {
- "ava": "*",
- "pinkie-promise": "^1.0.0",
- "v8-natives": "0.0.2",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/pify#readme",
- "keywords": [
- "promise",
- "promises",
- "promisify",
- "denodify",
- "denodeify",
- "callback",
- "cb",
- "node",
- "then",
- "thenify",
- "convert",
- "transform",
- "wrap",
- "wrapper",
- "bind",
- "to",
- "async",
- "es2015"
- ],
- "license": "MIT",
- "name": "pify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/pify.git"
- },
- "scripts": {
- "optimization-test": "node --allow-natives-syntax optimization-test.js",
- "test": "xo && ava && npm run optimization-test"
- },
- "version": "2.3.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 97aeeb628b..0000000000
--- a/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
+++ /dev/null
@@ -1,119 +0,0 @@
-# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify)
-
-> Promisify a callback-style function
-
-
-## Install
-
-```
-$ npm install --save pify
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const pify = require('pify');
-
-// promisify a single function
-
-pify(fs.readFile)('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-
-// or promisify all methods in a module
-
-pify(fs).readFile('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-```
-
-
-## API
-
-### pify(input, [promiseModule], [options])
-
-Returns a promise wrapped version of the supplied function or module.
-
-#### input
-
-Type: `function`, `object`
-
-Callback-style function or module whose methods you want to promisify.
-
-#### promiseModule
-
-Type: `function`
-
-Custom promise module to use instead of the native one.
-
-Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill.
-
-#### options
-
-##### multiArgs
-
-Type: `boolean`
-Default: `false`
-
-By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument.
-
-```js
-const request = require('request');
-const pify = require('pify');
-
-pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => {
- const [httpResponse, body] = result;
-});
-```
-
-##### include
-
-Type: `array` of (`string`|`regex`)
-
-Methods in a module to promisify. Remaining methods will be left untouched.
-
-##### exclude
-
-Type: `array` of (`string`|`regex`)
-Default: `[/.+Sync$/]`
-
-Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default.
-
-##### excludeMain
-
-Type: `boolean`
-Default: `false`
-
-By default, if given module is a function itself, this function will be promisified. Turn this option on if you want to promisify only methods of the module.
-
-```js
-const pify = require('pify');
-
-function fn() {
- return true;
-}
-
-fn.method = (data, callback) => {
- setImmediate(() => {
- callback(data, null);
- });
-};
-
-// promisify methods but not fn()
-const promiseFn = pify(fn, {excludeMain: true});
-
-if (promiseFn()) {
- promiseFn.method('hi').then(data => {
- console.log(data);
- });
-}
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json
deleted file mode 100644
index 4aa3ee1c79..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/package.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "_from": "path-type@^2.0.0",
- "_id": "path-type@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg/path-type",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "path-type@^2.0.0",
- "name": "path-type",
- "escapedName": "path-type",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up/read-pkg"
- ],
- "_resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz",
- "_shasum": "f012ccb8415b7096fc2daa1054c3d72389594c73",
- "_shrinkwrap": null,
- "_spec": "path-type@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "pify": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Check if a path is a file, directory, or symlink",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "path-type",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md
deleted file mode 100644
index b1ea61fe92..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# path-type [![Build Status](https://travis-ci.org/sindresorhus/path-type.svg?branch=master)](https://travis-ci.org/sindresorhus/path-type)
-
-> Check if a path is a file, directory, or symlink
-
-
-## Install
-
-```
-$ npm install --save path-type
-```
-
-
-## Usage
-
-```js
-const pathType = require('path-type');
-
-pathType.file('package.json').then(isFile => {
- console.log(isFile);
- //=> true
-})
-```
-
-
-## API
-
-### .file(path)
-### .dir(path)
-### .symlink(path)
-
-Returns a `Promise` for a `boolean` of whether the path is the checked type.
-
-### .fileSync(path)
-### .dirSync(path)
-### .symlinkSync(path)
-
-Returns a `boolean` of whether the path is the checked type.
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json
deleted file mode 100644
index 994de8c34a..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "_from": "read-pkg@^2.0.0",
- "_id": "read-pkg@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=",
- "_location": "/libnpx/yargs/read-pkg-up/read-pkg",
- "_phantomChildren": {
- "graceful-fs": "4.1.11"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "read-pkg@^2.0.0",
- "name": "read-pkg",
- "escapedName": "read-pkg",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/read-pkg-up"
- ],
- "_resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
- "_shasum": "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8",
- "_shrinkwrap": null,
- "_spec": "read-pkg@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "load-json-file": "^2.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Read a package.json file",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "read-pkg",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md
deleted file mode 100644
index 5796008b8e..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/readme.md
+++ /dev/null
@@ -1,79 +0,0 @@
-# read-pkg [![Build Status](https://travis-ci.org/sindresorhus/read-pkg.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg)
-
-> Read a package.json file
-
-
-## Why
-
-- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
-- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
-- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
-- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
-
-
-## Install
-
-```
-$ npm install --save read-pkg
-```
-
-
-## Usage
-
-```js
-const readPkg = require('read-pkg');
-
-readPkg().then(pkg => {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-
-readPkg(__dirname).then(pkg => {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-
-readPkg(path.join('unicorn', 'package.json')).then(pkg => {
- console.log(pkg);
- //=> {name: 'read-pkg', ...}
-});
-```
-
-
-## API
-
-### readPkg([path], [options])
-
-Returns a `Promise` for the parsed JSON.
-
-### readPkg.sync([path], [options])
-
-Returns the parsed JSON.
-
-#### path
-
-Type: `string`<br>
-Default: `.`
-
-Path to a `package.json` file or its directory.
-
-#### options
-
-##### normalize
-
-Type: `boolean`<br>
-Default: `true`
-
-[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
-
-
-## Related
-
-- [read-pkg-up](https://github.com/sindresorhus/read-pkg-up) - Read the closest package.json file
-- [write-pkg](https://github.com/sindresorhus/write-pkg) - Write a `package.json` file
-- [load-json-file](https://github.com/sindresorhus/load-json-file) - Read and parse a JSON file
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json
deleted file mode 100644
index 1958e74e2e..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "_from": "read-pkg-up@^2.0.0",
- "_id": "read-pkg-up@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=",
- "_location": "/libnpx/yargs/read-pkg-up",
- "_phantomChildren": {
- "graceful-fs": "4.1.11",
- "normalize-package-data": "2.4.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "read-pkg-up@^2.0.0",
- "name": "read-pkg-up",
- "escapedName": "read-pkg-up",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz",
- "_shasum": "6b72a8048984e0c41e79510fd5e9fa99b3b549be",
- "_shrinkwrap": null,
- "_spec": "read-pkg-up@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "find-up": "^2.0.0",
- "read-pkg": "^2.0.0"
- },
- "deprecated": false,
- "description": "> Read the closest package.json file",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "read-pkg-up",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md
deleted file mode 100644
index ba18780f90..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/readme.md
+++ /dev/null
@@ -1,80 +0,0 @@
-# read-pkg-up [![Build Status](https://travis-ci.org/sindresorhus/read-pkg-up.svg?branch=master)](https://travis-ci.org/sindresorhus/read-pkg-up)
-
-> Read the closest package.json file
-
-
-## Why
-
-- [Finds the closest package.json](https://github.com/sindresorhus/find-up)
-- [Gracefully handles filesystem issues](https://github.com/isaacs/node-graceful-fs)
-- [Strips UTF-8 BOM](https://github.com/sindresorhus/strip-bom)
-- [Throws more helpful JSON errors](https://github.com/sindresorhus/parse-json)
-- [Normalizes the data](https://github.com/npm/normalize-package-data#what-normalization-currently-entails)
-
-
-## Install
-
-```
-$ npm install --save read-pkg-up
-```
-
-
-## Usage
-
-```js
-const readPkgUp = require('read-pkg-up');
-
-readPkgUp().then(result => {
- console.log(result);
- /*
- {
- pkg: {
- name: 'awesome-package',
- version: '1.0.0',
- ...
- },
- path: '/Users/sindresorhus/dev/awesome-package/package.json'
- }
- */
-});
-```
-
-
-## API
-
-### readPkgUp([options])
-
-Returns a `Promise` for the result object.
-
-### readPkgUp.sync([options])
-
-Returns the result object.
-
-#### options
-
-##### cwd
-
-Type: `string`<br>
-Default: `.`
-
-Directory to start looking for a package.json file.
-
-##### normalize
-
-Type: `boolean`<br>
-Default: `true`
-
-[Normalize](https://github.com/npm/normalize-package-data#what-normalization-currently-entails) the package data.
-
-
-## Related
-
-- [read-pkg](https://github.com/sindresorhus/read-pkg) - Read a package.json file
-- [pkg-up](https://github.com/sindresorhus/pkg-up) - Find the closest package.json file
-- [find-up](https://github.com/sindresorhus/find-up) - Find a file by walking up parent directories
-- [pkg-conf](https://github.com/sindresorhus/pkg-conf) - Get namespaced config from the closest package.json
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml
deleted file mode 100644
index 20fd86b6a5..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - 0.10
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json
deleted file mode 100644
index 54759de7c4..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "require-directory@^2.1.1",
- "_id": "require-directory@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "_location": "/libnpx/yargs/require-directory",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "require-directory@^2.1.1",
- "name": "require-directory",
- "escapedName": "require-directory",
- "rawSpec": "^2.1.1",
- "saveSpec": null,
- "fetchSpec": "^2.1.1"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "_shasum": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
- "_shrinkwrap": null,
- "_spec": "require-directory@^2.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Recursively iterates over specified directory, `require()`'ing each file, and returning a nested hash structure containing those modules.",
- "devDependencies": {
- "jshint": "^2.6.0",
- "mocha": "^2.1.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "name": "require-directory",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.1.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json
deleted file mode 100644
index b63fca165a..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/package.json
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- "_from": "require-main-filename@^1.0.1",
- "_id": "require-main-filename@1.0.1",
- "_inBundle": false,
- "_integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
- "_location": "/libnpx/yargs/require-main-filename",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "require-main-filename@^1.0.1",
- "name": "require-main-filename",
- "escapedName": "require-main-filename",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
- "_shasum": "97f717b69d48784f5f526a6c5aa8ffdda055a4d1",
- "_shrinkwrap": null,
- "_spec": "require-main-filename@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/yargs/require-main-filename.png)](https://travis-ci.org/yargs/require-main-filename) [![Coverage Status](https://coveralls.io/repos/yargs/require-main-filename/badge.svg?branch=master)](https://coveralls.io/r/yargs/require-main-filename?branch=master) [![NPM version](https://img.shields.io/npm/v/require-main-filename.svg)](https://www.npmjs.com/package/require-main-filename)",
- "devDependencies": {
- "chai": "^3.5.0",
- "standard": "^6.0.5",
- "tap": "^5.2.0"
- },
- "name": "require-main-filename",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json
deleted file mode 100644
index d7e2d7c6e1..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "set-blocking@^2.0.0",
- "_id": "set-blocking@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "_location": "/libnpx/yargs/set-blocking",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "set-blocking@^2.0.0",
- "name": "set-blocking",
- "escapedName": "set-blocking",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7",
- "_shrinkwrap": null,
- "_spec": "set-blocking@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/yargs/set-blocking.svg)](https://travis-ci.org/yargs/set-blocking) [![NPM version](https://img.shields.io/npm/v/set-blocking.svg)](https://www.npmjs.com/package/set-blocking) [![Coverage Status](https://coveralls.io/repos/yargs/set-blocking/badge.svg?branch=)](https://coveralls.io/r/yargs/set-blocking?branch=master) [![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.9",
- "mocha": "^2.4.5",
- "nyc": "^6.4.4",
- "standard": "^7.0.1",
- "standard-version": "^2.2.1"
- },
- "name": "set-blocking",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index d95c8aea5a..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^2.0.0",
- "_id": "is-fullwidth-code-point@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "_location": "/libnpx/yargs/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^2.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "_shrinkwrap": null,
- "_spec": "is-fullwidth-code-point@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "name": "is-fullwidth-code-point",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json
deleted file mode 100644
index 3bc2c04b62..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "string-width@^2.0.0",
- "_id": "string-width@2.1.1",
- "_inBundle": false,
- "_integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "_location": "/libnpx/yargs/string-width",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string-width@^2.0.0",
- "name": "string-width",
- "escapedName": "string-width",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "_shasum": "ab93f27a8dc13d28cac815c462143a6d9012ae9e",
- "_spec": "string-width@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/string-width/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "deprecated": false,
- "description": "Get the visual width of a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/string-width#readme",
- "keywords": [
- "string",
- "str",
- "character",
- "char",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "license": "MIT",
- "name": "string-width",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/string-width.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.1.1"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json
deleted file mode 100644
index ea827910e9..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "which-module@^2.0.0",
- "_id": "which-module@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
- "_location": "/libnpx/yargs/which-module",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "which-module@^2.0.0",
- "name": "which-module",
- "escapedName": "which-module",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "_shasum": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
- "_shrinkwrap": null,
- "_spec": "which-module@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "> Find the module object for something that was require()d",
- "devDependencies": {
- "ava": "^0.19.1",
- "coveralls": "^2.13.1",
- "nyc": "^10.3.0",
- "standard": "^10.0.2",
- "standard-version": "^4.0.0"
- },
- "name": "which-module",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
deleted file mode 100644
index 3ad3df821e..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/CHANGELOG.md
+++ /dev/null
@@ -1,223 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="7.0.0"></a>
-# [7.0.0](https://github.com/yargs/yargs-parser/compare/v6.0.1...v7.0.0) (2017-05-02)
-
-
-### Chores
-
-* revert populate-- logic ([#91](https://github.com/yargs/yargs-parser/issues/91)) ([6003e6d](https://github.com/yargs/yargs-parser/commit/6003e6d))
-
-
-### BREAKING CHANGES
-
-* populate-- now defaults to false.
-
-
-
-<a name="6.0.1"></a>
-## [6.0.1](https://github.com/yargs/yargs-parser/compare/v6.0.0...v6.0.1) (2017-05-01)
-
-
-### Bug Fixes
-
-* default '--' to undefined when not provided; this is closer to the array API ([#90](https://github.com/yargs/yargs-parser/issues/90)) ([4e739cc](https://github.com/yargs/yargs-parser/commit/4e739cc))
-
-
-
-<a name="6.0.0"></a>
-# [6.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v6.0.0) (2017-05-01)
-
-
-### Bug Fixes
-
-* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
-* parsing hints should apply for dot notation keys ([#86](https://github.com/yargs/yargs-parser/issues/86)) ([3e47d62](https://github.com/yargs/yargs-parser/commit/3e47d62))
-
-
-### Chores
-
-* upgrade to newest version of camelcase ([#87](https://github.com/yargs/yargs-parser/issues/87)) ([f1903aa](https://github.com/yargs/yargs-parser/commit/f1903aa))
-
-
-### Features
-
-* add -- option which allows arguments after the -- flag to be returned separated from positional arguments ([#84](https://github.com/yargs/yargs-parser/issues/84)) ([2572ca8](https://github.com/yargs/yargs-parser/commit/2572ca8))
-* when parsing stops, we now populate "--" by default ([#88](https://github.com/yargs/yargs-parser/issues/88)) ([cd666db](https://github.com/yargs/yargs-parser/commit/cd666db))
-
-
-### BREAKING CHANGES
-
-* rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
-* camelcase now requires Node 4+.
-* environment variables will now override config files (args, env, config-file, config-object)
-
-
-
-<a name="5.0.0"></a>
-# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
-
-
-### Bug Fixes
-
-* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
-
-
-### BREAKING CHANGES
-
-* environment variables will now override config files (args, env, config-file, config-object)
-
-
-
-<a name="4.2.1"></a>
-## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
-
-
-### Bug Fixes
-
-* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0))
-
-
-
-<a name="4.2.0"></a>
-# [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01)
-
-
-### Bug Fixes
-
-* inner objects in configs had their keys appended to top-level key when dot-notation was disabled ([#72](https://github.com/yargs/yargs-parser/issues/72)) ([0b1b5f9](https://github.com/yargs/yargs-parser/commit/0b1b5f9))
-
-
-### Features
-
-* allow multiple arrays to be provided, rather than always combining ([#71](https://github.com/yargs/yargs-parser/issues/71)) ([0f0fb2d](https://github.com/yargs/yargs-parser/commit/0f0fb2d))
-
-
-
-<a name="4.1.0"></a>
-# [4.1.0](https://github.com/yargs/yargs-parser/compare/v4.0.2...v4.1.0) (2016-11-07)
-
-
-### Features
-
-* apply coercions to default options ([#65](https://github.com/yargs/yargs-parser/issues/65)) ([c79052b](https://github.com/yargs/yargs-parser/commit/c79052b))
-* handle dot notation boolean options ([#63](https://github.com/yargs/yargs-parser/issues/63)) ([02c3545](https://github.com/yargs/yargs-parser/commit/02c3545))
-
-
-
-<a name="4.0.2"></a>
-## [4.0.2](https://github.com/yargs/yargs-parser/compare/v4.0.1...v4.0.2) (2016-09-30)
-
-
-### Bug Fixes
-
-* whoops, let's make the assign not change the Object key order ([29d069a](https://github.com/yargs/yargs-parser/commit/29d069a))
-
-
-
-<a name="4.0.1"></a>
-## [4.0.1](https://github.com/yargs/yargs-parser/compare/v4.0.0...v4.0.1) (2016-09-30)
-
-
-### Bug Fixes
-
-* lodash.assign was deprecated ([#59](https://github.com/yargs/yargs-parser/issues/59)) ([5e7eb11](https://github.com/yargs/yargs-parser/commit/5e7eb11))
-
-
-
-<a name="4.0.0"></a>
-# [4.0.0](https://github.com/yargs/yargs-parser/compare/v3.2.0...v4.0.0) (2016-09-26)
-
-
-### Bug Fixes
-
-* coerce should be applied to the final objects and arrays created ([#57](https://github.com/yargs/yargs-parser/issues/57)) ([4ca69da](https://github.com/yargs/yargs-parser/commit/4ca69da))
-
-
-### BREAKING CHANGES
-
-* coerce is no longer applied to individual arguments in an implicit array.
-
-
-
-<a name="3.2.0"></a>
-# [3.2.0](https://github.com/yargs/yargs-parser/compare/v3.1.0...v3.2.0) (2016-08-13)
-
-
-### Features
-
-* coerce full array instead of each element ([#51](https://github.com/yargs/yargs-parser/issues/51)) ([cc4dc56](https://github.com/yargs/yargs-parser/commit/cc4dc56))
-
-
-
-<a name="3.1.0"></a>
-# [3.1.0](https://github.com/yargs/yargs-parser/compare/v3.0.0...v3.1.0) (2016-08-09)
-
-
-### Bug Fixes
-
-* address pkgConf parsing bug outlined in [#37](https://github.com/yargs/yargs-parser/issues/37) ([#45](https://github.com/yargs/yargs-parser/issues/45)) ([be76ee6](https://github.com/yargs/yargs-parser/commit/be76ee6))
-* better parsing of negative values ([#44](https://github.com/yargs/yargs-parser/issues/44)) ([2e43692](https://github.com/yargs/yargs-parser/commit/2e43692))
-* check aliases when guessing defaults for arguments fixes [#41](https://github.com/yargs/yargs-parser/issues/41) ([#43](https://github.com/yargs/yargs-parser/issues/43)) ([f3e4616](https://github.com/yargs/yargs-parser/commit/f3e4616))
-
-
-### Features
-
-* added coerce option, for providing specialized argument parsing ([#42](https://github.com/yargs/yargs-parser/issues/42)) ([7b49cd2](https://github.com/yargs/yargs-parser/commit/7b49cd2))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/yargs/yargs-parser/compare/v2.4.1...v3.0.0) (2016-08-07)
-
-
-### Bug Fixes
-
-* parsing issue with numeric character in group of options ([#19](https://github.com/yargs/yargs-parser/issues/19)) ([f743236](https://github.com/yargs/yargs-parser/commit/f743236))
-* upgraded lodash.assign ([5d7fdf4](https://github.com/yargs/yargs-parser/commit/5d7fdf4))
-
-### BREAKING CHANGES
-
-* subtle change to how values are parsed in a group of single-character arguments.
-* _first released in 3.1.0, better handling of negative values should be considered a breaking change._
-
-
-
-<a name="2.4.1"></a>
-## [2.4.1](https://github.com/yargs/yargs-parser/compare/v2.4.0...v2.4.1) (2016-07-16)
-
-
-### Bug Fixes
-
-* **count:** do not increment a default value ([#39](https://github.com/yargs/yargs-parser/issues/39)) ([b04a189](https://github.com/yargs/yargs-parser/commit/b04a189))
-
-
-
-<a name="2.4.0"></a>
-# [2.4.0](https://github.com/yargs/yargs-parser/compare/v2.3.0...v2.4.0) (2016-04-11)
-
-
-### Features
-
-* **environment:** Support nested options in environment variables ([#26](https://github.com/yargs/yargs-parser/issues/26)) thanks [@elas7](https://github.com/elas7) \o/ ([020778b](https://github.com/yargs/yargs-parser/commit/020778b))
-
-
-
-<a name="2.3.0"></a>
-# [2.3.0](https://github.com/yargs/yargs-parser/compare/v2.2.0...v2.3.0) (2016-04-09)
-
-
-### Bug Fixes
-
-* **boolean:** fix for boolean options with non boolean defaults (#20) ([2dbe86b](https://github.com/yargs/yargs-parser/commit/2dbe86b)), closes [(#20](https://github.com/(/issues/20)
-* **package:** remove tests from tarball ([0353c0d](https://github.com/yargs/yargs-parser/commit/0353c0d))
-* **parsing:** handle calling short option with an empty string as the next value. ([a867165](https://github.com/yargs/yargs-parser/commit/a867165))
-* boolean flag when next value contains the strings 'true' or 'false'. ([69941a6](https://github.com/yargs/yargs-parser/commit/69941a6))
-* update dependencies; add standard-version bin for next release (#24) ([822d9d5](https://github.com/yargs/yargs-parser/commit/822d9d5))
-
-### Features
-
-* **configuration:** Allow to pass configuration objects to yargs-parser ([0780900](https://github.com/yargs/yargs-parser/commit/0780900))
-* **normalize:** allow normalize to work with arrays ([e0eaa1a](https://github.com/yargs/yargs-parser/commit/e0eaa1a))
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md
deleted file mode 100644
index d1817fccc4..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/README.md
+++ /dev/null
@@ -1,281 +0,0 @@
-# yargs-parser
-
-[![Build Status](https://travis-ci.org/yargs/yargs-parser.png)](https://travis-ci.org/yargs/yargs-parser)
-[![Coverage Status](https://coveralls.io/repos/yargs/yargs-parser/badge.svg?branch=)](https://coveralls.io/r/yargs/yargs-parser?branch=master)
-[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser)
-[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/yargs-parser/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/yargs-parser)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-
-The mighty option parser used by [yargs](https://github.com/yargs/yargs).
-
-visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.
-
-<img width="250" src="https://raw.githubusercontent.com/yargs/yargs-parser/master/yargs-logo.png">
-
-## Example
-
-```sh
-npm i yargs-parser --save
-```
-
-```js
-var argv = require('yargs-parser')(process.argv.slice(2))
-console.log(argv)
-```
-
-```sh
-node example.js --foo=33 --bar hello
-{ _: [], foo: 33, bar: 'hello' }
-```
-
-_or parse a string!_
-
-```js
-var argv = require('./')('--foo=99 --bar=33')
-console.log(argv)
-```
-
-```sh
-{ _: [], foo: 99, bar: 33 }
-```
-
-Convert an array of mixed types before passing to `yargs-parser`:
-
-```js
-var parse = require('yargs-parser')
-parse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string
-parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings
-```
-
-## API
-
-### require('yargs-parser')(args, opts={})
-
-Parses command line arguments returning a simple mapping of keys and values.
-
-**expects:**
-
-* `args`: a string or array of strings representing the options to parse.
-* `opts`: provide a set of hints indicating how `args` should be parsed:
- * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`.
- * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.
- * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`.
- * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).
- * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided
- (or throws an error), e.g. `{coerce: {foo: function (arg) {return modifiedArg}}}`.
- * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`.
- * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`.
- * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed.
- * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`.
- * `opts.normalize`: `path.normalize()` will be applied to values set to this key.
- * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`).
- * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)).
- * `opts.number`: keys should be treated as numbers.
- * `opts['--']`: arguments after the end-of-options flag `--` will be set to the `argv.['--']` array instead of being set to the `argv._` array.
-
-**returns:**
-
-* `obj`: an object representing the parsed value of `args`
- * `key/value`: key value pairs for each argument and their aliases.
- * `_`: an array representing the positional arguments.
- * [optional] `--`: an array with arguments after the end-of-options flag `--`.
-
-### require('yargs-parser').detailed(args, opts={})
-
-Parses a command line string, returning detailed information required by the
-yargs engine.
-
-**expects:**
-
-* `args`: a string or array of strings representing options to parse.
-* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`.
-
-**returns:**
-
-* `argv`: an object representing the parsed value of `args`
- * `key/value`: key value pairs for each argument and their aliases.
- * `_`: an array representing the positional arguments.
-* `error`: populated with an error object if an exception occurred during parsing.
-* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`.
-* `newAliases`: any new aliases added via camel-case expansion.
-* `configuration`: the configuration loaded from the `yargs` stanza in package.json.
-
-<a name="configuration"></a>
-
-### Configuration
-
-The yargs-parser applies several automated transformations on the keys provided
-in `args`. These features can be turned on and off using the `configuration` field
-of `opts`.
-
-```js
-var parsed = parser(['--no-dice'], {
- configuration: {
- 'boolean-negation': false
- }
-})
-```
-
-### short option groups
-
-* default: `true`.
-* key: `short-option-groups`.
-
-Should a group of short-options be treated as boolean flags?
-
-```sh
-node example.js -abc
-{ _: [], a: true, b: true, c: true }
-```
-
-_if disabled:_
-
-```sh
-node example.js -abc
-{ _: [], abc: true }
-```
-
-### camel-case expansion
-
-* default: `true`.
-* key: `camel-case-expansion`.
-
-Should hyphenated arguments be expanded into camel-case aliases?
-
-```sh
-node example.js --foo-bar
-{ _: [], 'foo-bar': true, fooBar: true }
-```
-
-_if disabled:_
-
-```sh
-node example.js --foo-bar
-{ _: [], 'foo-bar': true }
-```
-
-### dot-notation
-
-* default: `true`
-* key: `dot-notation`
-
-Should keys that contain `.` be treated as objects?
-
-```sh
-node example.js --foo.bar
-{ _: [], foo: { bar: true } }
-```
-
-_if disabled:_
-
-```sh
-node example.js --foo.bar
-{ _: [], "foo.bar": true }
-```
-
-### parse numbers
-
-* default: `true`
-* key: `parse-numbers`
-
-Should keys that look like numbers be treated as such?
-
-```sh
-node example.js --foo=99.3
-{ _: [], foo: 99.3 }
-```
-
-_if disabled:_
-
-```sh
-node example.js --foo=99.3
-{ _: [], foo: "99.3" }
-```
-
-### boolean negation
-
-* default: `true`
-* key: `boolean-negation`
-
-Should variables prefixed with `--no` be treated as negations?
-
-```sh
-node example.js --no-foo
-{ _: [], foo: false }
-```
-
-_if disabled:_
-
-```sh
-node example.js --no-foo
-{ _: [], "no-foo": true }
-```
-
-### duplicate arguments array
-
-* default: `true`
-* key: `duplicate-arguments-array`
-
-Should arguments be coerced into an array when duplicated:
-
-```sh
-node example.js -x 1 -x 2
-{ _: [], x: [1, 2] }
-```
-
-_if disabled:_
-
-```sh
-node example.js -x 1 -x 2
-{ _: [], x: 2 }
-```
-
-### flatten duplicate arrays
-
-* default: `true`
-* key: `flatten-duplicate-arrays`
-
-Should array arguments be coerced into a single array when duplicated:
-
-```sh
-node example.js -x 1 2 -x 3 4
-{ _: [], x: [1, 2, 3, 4] }
-```
-
-_if disabled:_
-
-```sh
-node example.js -x 1 2 -x 3 4
-{ _: [], x: [[1, 2], [3, 4]] }
-```
-
-### populate --
-
-* default: `false`.
-* key: `populate--`
-
-Should unparsed flags be stored in `--` or `_`.
-
-_If disabled:_
-
-```sh
-node example.js a -b -- x y
-{ _: [ 'a', 'x', 'y' ], b: true }
-```
-
-_If enabled:_
-
-```sh
-node example.js a -b -- x y
-{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true }
-```
-
-## Special Thanks
-
-The yargs project evolves from optimist and minimist. It owes its
-existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/
-
-## License
-
-ISC
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js
deleted file mode 100644
index 73154066f7..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/index.js
+++ /dev/null
@@ -1,764 +0,0 @@
-var camelCase = require('camelcase')
-var path = require('path')
-var tokenizeArgString = require('./lib/tokenize-arg-string')
-var util = require('util')
-
-function parse (args, opts) {
- if (!opts) opts = {}
- // allow a string argument to be passed in rather
- // than an argv array.
- args = tokenizeArgString(args)
- // aliases might have transitive relationships, normalize this.
- var aliases = combineAliases(opts.alias || {})
- var configuration = assign({
- 'short-option-groups': true,
- 'camel-case-expansion': true,
- 'dot-notation': true,
- 'parse-numbers': true,
- 'boolean-negation': true,
- 'duplicate-arguments-array': true,
- 'flatten-duplicate-arrays': true,
- 'populate--': false
- }, opts.configuration)
- var defaults = opts.default || {}
- var configObjects = opts.configObjects || []
- var envPrefix = opts.envPrefix
- var notFlagsOption = configuration['populate--']
- var notFlagsArgv = notFlagsOption ? '--' : '_'
- var newAliases = {}
- // allow a i18n handler to be passed in, default to a fake one (util.format).
- var __ = opts.__ || function (str) {
- return util.format.apply(util, Array.prototype.slice.call(arguments))
- }
- var error = null
- var flags = {
- aliases: {},
- arrays: {},
- bools: {},
- strings: {},
- numbers: {},
- counts: {},
- normalize: {},
- configs: {},
- defaulted: {},
- nargs: {},
- coercions: {}
- }
- var negative = /^-[0-9]+(\.[0-9]+)?/
-
- ;[].concat(opts.array).filter(Boolean).forEach(function (key) {
- flags.arrays[key] = true
- })
-
- ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
- flags.bools[key] = true
- })
-
- ;[].concat(opts.string).filter(Boolean).forEach(function (key) {
- flags.strings[key] = true
- })
-
- ;[].concat(opts.number).filter(Boolean).forEach(function (key) {
- flags.numbers[key] = true
- })
-
- ;[].concat(opts.count).filter(Boolean).forEach(function (key) {
- flags.counts[key] = true
- })
-
- ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) {
- flags.normalize[key] = true
- })
-
- Object.keys(opts.narg || {}).forEach(function (k) {
- flags.nargs[k] = opts.narg[k]
- })
-
- Object.keys(opts.coerce || {}).forEach(function (k) {
- flags.coercions[k] = opts.coerce[k]
- })
-
- if (Array.isArray(opts.config) || typeof opts.config === 'string') {
- ;[].concat(opts.config).filter(Boolean).forEach(function (key) {
- flags.configs[key] = true
- })
- } else {
- Object.keys(opts.config || {}).forEach(function (k) {
- flags.configs[k] = opts.config[k]
- })
- }
-
- // create a lookup table that takes into account all
- // combinations of aliases: {f: ['foo'], foo: ['f']}
- extendAliases(opts.key, aliases, opts.default, flags.arrays)
-
- // apply default values to all aliases.
- Object.keys(defaults).forEach(function (key) {
- (flags.aliases[key] || []).forEach(function (alias) {
- defaults[alias] = defaults[key]
- })
- })
-
- var argv = { _: [] }
-
- Object.keys(flags.bools).forEach(function (key) {
- setArg(key, !(key in defaults) ? false : defaults[key])
- setDefaulted(key)
- })
-
- var notFlags = []
- if (args.indexOf('--') !== -1) {
- notFlags = args.slice(args.indexOf('--') + 1)
- args = args.slice(0, args.indexOf('--'))
- }
-
- for (var i = 0; i < args.length; i++) {
- var arg = args[i]
- var broken
- var key
- var letters
- var m
- var next
- var value
-
- // -- seperated by =
- if (arg.match(/^--.+=/) || (
- !configuration['short-option-groups'] && arg.match(/^-.+=/)
- )) {
- // Using [\s\S] instead of . because js doesn't support the
- // 'dotall' regex modifier. See:
- // http://stackoverflow.com/a/1068308/13216
- m = arg.match(/^--?([^=]+)=([\s\S]*)$/)
-
- // nargs format = '--f=monkey washing cat'
- if (checkAllAliases(m[1], flags.nargs)) {
- args.splice(i + 1, 0, m[2])
- i = eatNargs(i, m[1], args)
- // arrays format = '--f=a b c'
- } else if (checkAllAliases(m[1], flags.arrays) && args.length > i + 1) {
- args.splice(i + 1, 0, m[2])
- i = eatArray(i, m[1], args)
- } else {
- setArg(m[1], m[2])
- }
- } else if (arg.match(/^--no-.+/) && configuration['boolean-negation']) {
- key = arg.match(/^--no-(.+)/)[1]
- setArg(key, false)
-
- // -- seperated by space.
- } else if (arg.match(/^--.+/) || (
- !configuration['short-option-groups'] && arg.match(/^-.+/)
- )) {
- key = arg.match(/^--?(.+)/)[1]
-
- // nargs format = '--foo a b c'
- if (checkAllAliases(key, flags.nargs)) {
- i = eatNargs(i, key, args)
- // array format = '--foo a b c'
- } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
- i = eatArray(i, key, args)
- } else {
- next = args[i + 1]
-
- if (next !== undefined && (!next.match(/^-/) ||
- next.match(negative)) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next)
- i++
- } else if (/^(true|false)$/.test(next)) {
- setArg(key, next)
- i++
- } else {
- setArg(key, defaultForType(guessType(key, flags)))
- }
- }
-
- // dot-notation flag seperated by '='.
- } else if (arg.match(/^-.\..+=/)) {
- m = arg.match(/^-([^=]+)=([\s\S]*)$/)
- setArg(m[1], m[2])
-
- // dot-notation flag seperated by space.
- } else if (arg.match(/^-.\..+/)) {
- next = args[i + 1]
- key = arg.match(/^-(.\..+)/)[1]
-
- if (next !== undefined && !next.match(/^-/) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next)
- i++
- } else {
- setArg(key, defaultForType(guessType(key, flags)))
- }
- } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
- letters = arg.slice(1, -1).split('')
- broken = false
-
- for (var j = 0; j < letters.length; j++) {
- next = arg.slice(j + 2)
-
- if (letters[j + 1] && letters[j + 1] === '=') {
- value = arg.slice(j + 3)
- key = letters[j]
-
- // nargs format = '-f=monkey washing cat'
- if (checkAllAliases(key, flags.nargs)) {
- args.splice(i + 1, 0, value)
- i = eatNargs(i, key, args)
- // array format = '-f=a b c'
- } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
- args.splice(i + 1, 0, value)
- i = eatArray(i, key, args)
- } else {
- setArg(key, value)
- }
-
- broken = true
- break
- }
-
- if (next === '-') {
- setArg(letters[j], next)
- continue
- }
-
- // current letter is an alphabetic character and next value is a number
- if (/[A-Za-z]/.test(letters[j]) &&
- /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
- setArg(letters[j], next)
- broken = true
- break
- }
-
- if (letters[j + 1] && letters[j + 1].match(/\W/)) {
- setArg(letters[j], next)
- broken = true
- break
- } else {
- setArg(letters[j], defaultForType(guessType(letters[j], flags)))
- }
- }
-
- key = arg.slice(-1)[0]
-
- if (!broken && key !== '-') {
- // nargs format = '-f a b c'
- if (checkAllAliases(key, flags.nargs)) {
- i = eatNargs(i, key, args)
- // array format = '-f a b c'
- } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
- i = eatArray(i, key, args)
- } else {
- next = args[i + 1]
-
- if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
- next.match(negative)) &&
- !checkAllAliases(key, flags.bools) &&
- !checkAllAliases(key, flags.counts)) {
- setArg(key, next)
- i++
- } else if (/^(true|false)$/.test(next)) {
- setArg(key, next)
- i++
- } else {
- setArg(key, defaultForType(guessType(key, flags)))
- }
- }
- }
- } else {
- argv._.push(
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
- )
- }
- }
-
- // order of precedence:
- // 1. command line arg
- // 2. value from env var
- // 3. value from config file
- // 4. value from config objects
- // 5. configured default value
- applyEnvVars(argv, true) // special case: check env vars that point to config file
- applyEnvVars(argv, false)
- setConfig(argv)
- setConfigObjects()
- applyDefaultsAndAliases(argv, flags.aliases, defaults)
- applyCoercions(argv)
-
- // for any counts either not in args or without an explicit default, set to 0
- Object.keys(flags.counts).forEach(function (key) {
- if (!hasKey(argv, key.split('.'))) setArg(key, 0)
- })
-
- // '--' defaults to undefined.
- if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []
- notFlags.forEach(function (key) {
- argv[notFlagsArgv].push(key)
- })
-
- // how many arguments should we consume, based
- // on the nargs option?
- function eatNargs (i, key, args) {
- var toEat = checkAllAliases(key, flags.nargs)
-
- if (args.length - (i + 1) < toEat) error = Error(__('Not enough arguments following: %s', key))
-
- for (var ii = i + 1; ii < (toEat + i + 1); ii++) {
- setArg(key, args[ii])
- }
-
- return (i + toEat)
- }
-
- // if an option is an array, eat all non-hyphenated arguments
- // following it... YUM!
- // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"]
- function eatArray (i, key, args) {
- var start = i + 1
- var argsToSet = []
- var multipleArrayFlag = i > 0
- for (var ii = i + 1; ii < args.length; ii++) {
- if (/^-/.test(args[ii]) && !negative.test(args[ii])) {
- if (ii === start) {
- setArg(key, defaultForType('array'))
- }
- multipleArrayFlag = true
- break
- }
- i = ii
- argsToSet.push(args[ii])
- }
- if (multipleArrayFlag) {
- setArg(key, argsToSet.map(function (arg) {
- return processValue(key, arg)
- }))
- } else {
- argsToSet.forEach(function (arg) {
- setArg(key, arg)
- })
- }
-
- return i
- }
-
- function setArg (key, val) {
- unsetDefaulted(key)
-
- if (/-/.test(key) && !(flags.aliases[key] && flags.aliases[key].length) && configuration['camel-case-expansion']) {
- var c = camelCase(key)
- flags.aliases[key] = [c]
- newAliases[c] = true
- }
-
- var value = processValue(key, val)
-
- var splitKey = key.split('.')
- setKey(argv, splitKey, value)
-
- // handle populating aliases of the full key
- if (flags.aliases[key]) {
- flags.aliases[key].forEach(function (x) {
- x = x.split('.')
- setKey(argv, x, value)
- })
- }
-
- // handle populating aliases of the first element of the dot-notation key
- if (splitKey.length > 1 && configuration['dot-notation']) {
- ;(flags.aliases[splitKey[0]] || []).forEach(function (x) {
- x = x.split('.')
-
- // expand alias with nested objects in key
- var a = [].concat(splitKey)
- a.shift() // nuke the old key.
- x = x.concat(a)
-
- setKey(argv, x, value)
- })
- }
-
- // Set normalize getter and setter when key is in 'normalize' but isn't an array
- if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
- var keys = [key].concat(flags.aliases[key] || [])
- keys.forEach(function (key) {
- argv.__defineSetter__(key, function (v) {
- val = path.normalize(v)
- })
-
- argv.__defineGetter__(key, function () {
- return typeof val === 'string' ? path.normalize(val) : val
- })
- })
- }
- }
-
- function processValue (key, val) {
- // handle parsing boolean arguments --foo=true --bar false.
- if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
- if (typeof val === 'string') val = val === 'true'
- }
-
- var value = val
- if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) {
- if (isNumber(val)) value = Number(val)
- if (!isUndefined(val) && !isNumber(val) && checkAllAliases(key, flags.numbers)) value = NaN
- }
-
- // increment a count given as arg (either no value or value parsed as boolean)
- if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
- value = increment
- }
-
- // Set normalized value when key is in 'normalize' and in 'arrays'
- if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
- if (Array.isArray(val)) value = val.map(path.normalize)
- else value = path.normalize(val)
- }
- return value
- }
-
- // set args from config.json file, this should be
- // applied last so that defaults can be applied.
- function setConfig (argv) {
- var configLookup = {}
-
- // expand defaults/aliases, in-case any happen to reference
- // the config.json file.
- applyDefaultsAndAliases(configLookup, flags.aliases, defaults)
-
- Object.keys(flags.configs).forEach(function (configKey) {
- var configPath = argv[configKey] || configLookup[configKey]
- if (configPath) {
- try {
- var config = null
- var resolvedConfigPath = path.resolve(process.cwd(), configPath)
-
- if (typeof flags.configs[configKey] === 'function') {
- try {
- config = flags.configs[configKey](resolvedConfigPath)
- } catch (e) {
- config = e
- }
- if (config instanceof Error) {
- error = config
- return
- }
- } else {
- config = require(resolvedConfigPath)
- }
-
- setConfigObject(config)
- } catch (ex) {
- if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath))
- }
- }
- })
- }
-
- // set args from config object.
- // it recursively checks nested objects.
- function setConfigObject (config, prev) {
- Object.keys(config).forEach(function (key) {
- var value = config[key]
- var fullKey = prev ? prev + '.' + key : key
-
- // if the value is an inner object and we have dot-notation
- // enabled, treat inner objects in config the same as
- // heavily nested dot notations (foo.bar.apple).
- if (typeof value === 'object' && !Array.isArray(value) && configuration['dot-notation']) {
- // if the value is an object but not an array, check nested object
- setConfigObject(value, fullKey)
- } else {
- // setting arguments via CLI takes precedence over
- // values within the config file.
- if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey])) {
- setArg(fullKey, value)
- }
- }
- })
- }
-
- // set all config objects passed in opts
- function setConfigObjects () {
- if (typeof configObjects === 'undefined') return
- configObjects.forEach(function (configObject) {
- setConfigObject(configObject)
- })
- }
-
- function applyEnvVars (argv, configOnly) {
- if (typeof envPrefix === 'undefined') return
-
- var prefix = typeof envPrefix === 'string' ? envPrefix : ''
- Object.keys(process.env).forEach(function (envVar) {
- if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
- // get array of nested keys and convert them to camel case
- var keys = envVar.split('__').map(function (key, i) {
- if (i === 0) {
- key = key.substring(prefix.length)
- }
- return camelCase(key)
- })
-
- if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && (!hasKey(argv, keys) || flags.defaulted[keys.join('.')])) {
- setArg(keys.join('.'), process.env[envVar])
- }
- }
- })
- }
-
- function applyCoercions (argv) {
- var coerce
- Object.keys(argv).forEach(function (key) {
- coerce = checkAllAliases(key, flags.coercions)
- if (typeof coerce === 'function') {
- try {
- argv[key] = coerce(argv[key])
- } catch (err) {
- error = err
- }
- }
- })
- }
-
- function applyDefaultsAndAliases (obj, aliases, defaults) {
- Object.keys(defaults).forEach(function (key) {
- if (!hasKey(obj, key.split('.'))) {
- setKey(obj, key.split('.'), defaults[key])
-
- ;(aliases[key] || []).forEach(function (x) {
- if (hasKey(obj, x.split('.'))) return
- setKey(obj, x.split('.'), defaults[key])
- })
- }
- })
- }
-
- function hasKey (obj, keys) {
- var o = obj
-
- if (!configuration['dot-notation']) keys = [keys.join('.')]
-
- keys.slice(0, -1).forEach(function (key) {
- o = (o[key] || {})
- })
-
- var key = keys[keys.length - 1]
-
- if (typeof o !== 'object') return false
- else return key in o
- }
-
- function setKey (obj, keys, value) {
- var o = obj
-
- if (!configuration['dot-notation']) keys = [keys.join('.')]
-
- keys.slice(0, -1).forEach(function (key) {
- if (o[key] === undefined) o[key] = {}
- o = o[key]
- })
-
- var key = keys[keys.length - 1]
-
- var isTypeArray = checkAllAliases(keys.join('.'), flags.arrays)
- var isValueArray = Array.isArray(value)
- var duplicate = configuration['duplicate-arguments-array']
-
- if (value === increment) {
- o[key] = increment(o[key])
- } else if (Array.isArray(o[key])) {
- if (duplicate && isTypeArray && isValueArray) {
- o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : [o[key]].concat([value])
- } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
- o[key] = value
- } else {
- o[key] = o[key].concat([value])
- }
- } else if (o[key] === undefined && isTypeArray) {
- o[key] = isValueArray ? value : [value]
- } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) {
- o[key] = [ o[key], value ]
- } else {
- o[key] = value
- }
- }
-
- // extend the aliases list with inferred aliases.
- function extendAliases () {
- Array.prototype.slice.call(arguments).forEach(function (obj) {
- Object.keys(obj || {}).forEach(function (key) {
- // short-circuit if we've already added a key
- // to the aliases array, for example it might
- // exist in both 'opts.default' and 'opts.key'.
- if (flags.aliases[key]) return
-
- flags.aliases[key] = [].concat(aliases[key] || [])
- // For "--option-name", also set argv.optionName
- flags.aliases[key].concat(key).forEach(function (x) {
- if (/-/.test(x) && configuration['camel-case-expansion']) {
- var c = camelCase(x)
- flags.aliases[key].push(c)
- newAliases[c] = true
- }
- })
- flags.aliases[key].forEach(function (x) {
- flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
- return x !== y
- }))
- })
- })
- })
- }
-
- // check if a flag is set for any of a key's aliases.
- function checkAllAliases (key, flag) {
- var isSet = false
- var toCheck = [].concat(flags.aliases[key] || [], key)
-
- toCheck.forEach(function (key) {
- if (flag[key]) isSet = flag[key]
- })
-
- return isSet
- }
-
- function setDefaulted (key) {
- [].concat(flags.aliases[key] || [], key).forEach(function (k) {
- flags.defaulted[k] = true
- })
- }
-
- function unsetDefaulted (key) {
- [].concat(flags.aliases[key] || [], key).forEach(function (k) {
- delete flags.defaulted[k]
- })
- }
-
- // return a default value, given the type of a flag.,
- // e.g., key of type 'string' will default to '', rather than 'true'.
- function defaultForType (type) {
- var def = {
- boolean: true,
- string: '',
- number: undefined,
- array: []
- }
-
- return def[type]
- }
-
- // given a flag, enforce a default type.
- function guessType (key, flags) {
- var type = 'boolean'
-
- if (checkAllAliases(key, flags.strings)) type = 'string'
- else if (checkAllAliases(key, flags.numbers)) type = 'number'
- else if (checkAllAliases(key, flags.arrays)) type = 'array'
-
- return type
- }
-
- function isNumber (x) {
- if (!configuration['parse-numbers']) return false
- if (typeof x === 'number') return true
- if (/^0x[0-9a-f]+$/i.test(x)) return true
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x)
- }
-
- function isUndefined (num) {
- return num === undefined
- }
-
- return {
- argv: argv,
- error: error,
- aliases: flags.aliases,
- newAliases: newAliases,
- configuration: configuration
- }
-}
-
-// if any aliases reference each other, we should
-// merge them together.
-function combineAliases (aliases) {
- var aliasArrays = []
- var change = true
- var combined = {}
-
- // turn alias lookup hash {key: ['alias1', 'alias2']} into
- // a simple array ['key', 'alias1', 'alias2']
- Object.keys(aliases).forEach(function (key) {
- aliasArrays.push(
- [].concat(aliases[key], key)
- )
- })
-
- // combine arrays until zero changes are
- // made in an iteration.
- while (change) {
- change = false
- for (var i = 0; i < aliasArrays.length; i++) {
- for (var ii = i + 1; ii < aliasArrays.length; ii++) {
- var intersect = aliasArrays[i].filter(function (v) {
- return aliasArrays[ii].indexOf(v) !== -1
- })
-
- if (intersect.length) {
- aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii])
- aliasArrays.splice(ii, 1)
- change = true
- break
- }
- }
- }
- }
-
- // map arrays back to the hash-lookup (de-dupe while
- // we're at it).
- aliasArrays.forEach(function (aliasArray) {
- aliasArray = aliasArray.filter(function (v, i, self) {
- return self.indexOf(v) === i
- })
- combined[aliasArray.pop()] = aliasArray
- })
-
- return combined
-}
-
-function assign (defaults, configuration) {
- var o = {}
- configuration = configuration || {}
-
- Object.keys(defaults).forEach(function (k) {
- o[k] = defaults[k]
- })
- Object.keys(configuration).forEach(function (k) {
- o[k] = configuration[k]
- })
-
- return o
-}
-
-// this function should only be called when a count is given as an arg
-// it is NOT called to set a default value
-// thus we can start the count at 1 instead of 0
-function increment (orig) {
- return orig !== undefined ? orig + 1 : 1
-}
-
-function Parser (args, opts) {
- var result = parse(args.slice(), opts)
-
- return result.argv
-}
-
-// parse arguments and return detailed
-// meta information, aliases, etc.
-Parser.detailed = function (args, opts) {
- return parse(args.slice(), opts)
-}
-
-module.exports = Parser
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json
deleted file mode 100644
index e0e0851602..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "_from": "yargs-parser@^7.0.0",
- "_id": "yargs-parser@7.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=",
- "_location": "/libnpx/yargs/yargs-parser",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "yargs-parser@^7.0.0",
- "name": "yargs-parser",
- "escapedName": "yargs-parser",
- "rawSpec": "^7.0.0",
- "saveSpec": null,
- "fetchSpec": "^7.0.0"
- },
- "_requiredBy": [
- "/libnpx/yargs"
- ],
- "_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz",
- "_shasum": "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9",
- "_shrinkwrap": null,
- "_spec": "yargs-parser@^7.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/libnpx/node_modules/yargs",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "camelcase": "^4.1.0"
- },
- "deprecated": false,
- "description": "[![Build Status](https://travis-ci.org/yargs/yargs-parser.png)](https://travis-ci.org/yargs/yargs-parser) [![Coverage Status](https://coveralls.io/repos/yargs/yargs-parser/badge.svg?branch=)](https://coveralls.io/r/yargs/yargs-parser?branch=master) [![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser) [![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/yargs-parser/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/yargs-parser) [![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.12",
- "mocha": "^3.0.1",
- "nyc": "^10.0.0",
- "standard": "^10.0.2",
- "standard-version": "^4.0.0"
- },
- "name": "yargs-parser",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "7.0.0"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/package.json b/deps/npm/node_modules/libnpx/node_modules/yargs/package.json
deleted file mode 100644
index 9ae1b0f1ad..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/package.json
+++ /dev/null
@@ -1,105 +0,0 @@
-{
- "_args": [
- [
- "yargs@8.0.2",
- "/Users/zkat/Documents/code/npx"
- ]
- ],
- "_from": "yargs@8.0.2",
- "_id": "yargs@8.0.2",
- "_inBundle": true,
- "_integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=",
- "_location": "/libnpx/yargs",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "yargs@8.0.2",
- "name": "yargs",
- "escapedName": "yargs",
- "rawSpec": "8.0.2",
- "saveSpec": null,
- "fetchSpec": "8.0.2"
- },
- "_requiredBy": [
- "/libnpx"
- ],
- "_resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz",
- "_spec": "8.0.2",
- "_where": "/Users/zkat/Documents/code/npx",
- "bugs": {
- "url": "https://github.com/yargs/yargs/issues"
- },
- "dependencies": {
- "camelcase": "^4.1.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^2.0.0",
- "read-pkg-up": "^2.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^7.0.0"
- },
- "description": "yargs the modern, pirate-themed, successor to optimist.",
- "devDependencies": {
- "chai": "^3.4.1",
- "chalk": "^1.1.3",
- "coveralls": "^2.11.11",
- "cpr": "^2.0.0",
- "cross-spawn": "^5.0.1",
- "es6-promise": "^4.0.2",
- "hashish": "0.0.4",
- "mocha": "^3.0.1",
- "nyc": "^10.3.0",
- "rimraf": "^2.5.0",
- "standard": "^8.6.0",
- "standard-version": "^4.2.0",
- "which": "^1.2.9",
- "yargs-test-extends": "^1.0.1"
- },
- "engine": {
- "node": ">=0.10"
- },
- "files": [
- "index.js",
- "yargs.js",
- "lib",
- "locales",
- "completion.sh.hbs",
- "LICENSE"
- ],
- "homepage": "http://yargs.js.org/",
- "keywords": [
- "argument",
- "args",
- "option",
- "parser",
- "parsing",
- "cli",
- "command"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "yargs",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/yargs.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "release": "standard-version",
- "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks"
- },
- "standard": {
- "ignore": [
- "**/example/**"
- ]
- },
- "version": "8.0.2"
-}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js b/deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js
deleted file mode 100644
index 078bf8f149..0000000000
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/yargs.js
+++ /dev/null
@@ -1,1127 +0,0 @@
-const argsert = require('./lib/argsert')
-const assign = require('./lib/assign')
-const Command = require('./lib/command')
-const Completion = require('./lib/completion')
-const Parser = require('yargs-parser')
-const path = require('path')
-const Usage = require('./lib/usage')
-const Validation = require('./lib/validation')
-const Y18n = require('y18n')
-const objFilter = require('./lib/obj-filter')
-const setBlocking = require('set-blocking')
-const applyExtends = require('./lib/apply-extends')
-const YError = require('./lib/yerror')
-
-var exports = module.exports = Yargs
-function Yargs (processArgs, cwd, parentRequire) {
- processArgs = processArgs || [] // handle calling yargs().
-
- const self = {}
- var command = null
- var completion = null
- var groups = {}
- var output = ''
- var preservedGroups = {}
- var usage = null
- var validation = null
-
- const y18n = Y18n({
- directory: path.resolve(__dirname, './locales'),
- updateFiles: false
- })
-
- if (!cwd) cwd = process.cwd()
-
- self.$0 = process.argv
- .slice(0, 2)
- .map(function (x, i) {
- // ignore the node bin, specify this in your
- // bin file with #!/usr/bin/env node
- if (i === 0 && /\b(node|iojs)(\.exe)?$/.test(x)) return
- var b = rebase(cwd, x)
- return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x
- })
- .join(' ').trim()
-
- if (process.env._ !== undefined && process.argv[1] === process.env._) {
- self.$0 = process.env._.replace(
- path.dirname(process.execPath) + '/', ''
- )
- }
-
- // use context object to keep track of resets, subcommand execution, etc
- // submodules should modify and check the state of context as necessary
- const context = { resets: -1, commands: [], files: [] }
- self.getContext = function () {
- return context
- }
-
- // puts yargs back into an initial state. any keys
- // that have been set to "global" will not be reset
- // by this action.
- var options
- self.resetOptions = self.reset = function (aliases) {
- context.resets++
- aliases = aliases || {}
- options = options || {}
- // put yargs back into an initial state, this
- // logic is used to build a nested command
- // hierarchy.
- var tmpOptions = {}
- tmpOptions.local = options.local ? options.local : []
- tmpOptions.configObjects = options.configObjects ? options.configObjects : []
-
- // if a key has been explicitly set as local,
- // we should reset it before passing options to command.
- var localLookup = {}
- tmpOptions.local.forEach(function (l) {
- localLookup[l] = true
- ;(aliases[l] || []).forEach(function (a) {
- localLookup[a] = true
- })
- })
-
- // preserve all groups not set to local.
- preservedGroups = Object.keys(groups).reduce(function (acc, groupName) {
- var keys = groups[groupName].filter(function (key) {
- return !(key in localLookup)
- })
- if (keys.length > 0) {
- acc[groupName] = keys
- }
- return acc
- }, {})
- // groups can now be reset
- groups = {}
-
- var arrayOptions = [
- 'array', 'boolean', 'string', 'requiresArg', 'skipValidation',
- 'count', 'normalize', 'number'
- ]
-
- var objectOptions = [
- 'narg', 'key', 'alias', 'default', 'defaultDescription',
- 'config', 'choices', 'demandedOptions', 'demandedCommands', 'coerce'
- ]
-
- arrayOptions.forEach(function (k) {
- tmpOptions[k] = (options[k] || []).filter(function (k) {
- return !localLookup[k]
- })
- })
-
- objectOptions.forEach(function (k) {
- tmpOptions[k] = objFilter(options[k], function (k, v) {
- return !localLookup[k]
- })
- })
-
- tmpOptions.envPrefix = options.envPrefix
- options = tmpOptions
-
- // if this is the first time being executed, create
- // instances of all our helpers -- otherwise just reset.
- usage = usage ? usage.reset(localLookup) : Usage(self, y18n)
- validation = validation ? validation.reset(localLookup) : Validation(self, usage, y18n)
- command = command ? command.reset() : Command(self, usage, validation)
- if (!completion) completion = Completion(self, usage, command)
-
- completionCommand = null
- output = ''
- exitError = null
- hasOutput = false
- self.parsed = false
-
- return self
- }
- self.resetOptions()
-
- // temporary hack: allow "freezing" of reset-able state for parse(msg, cb)
- var frozen
- function freeze () {
- frozen = {}
- frozen.options = options
- frozen.configObjects = options.configObjects.slice(0)
- frozen.exitProcess = exitProcess
- frozen.groups = groups
- usage.freeze()
- validation.freeze()
- command.freeze()
- frozen.strict = strict
- frozen.completionCommand = completionCommand
- frozen.output = output
- frozen.exitError = exitError
- frozen.hasOutput = hasOutput
- frozen.parsed = self.parsed
- }
- function unfreeze () {
- options = frozen.options
- options.configObjects = frozen.configObjects
- exitProcess = frozen.exitProcess
- groups = frozen.groups
- output = frozen.output
- exitError = frozen.exitError
- hasOutput = frozen.hasOutput
- self.parsed = frozen.parsed
- usage.unfreeze()
- validation.unfreeze()
- command.unfreeze()
- strict = frozen.strict
- completionCommand = frozen.completionCommand
- parseFn = null
- parseContext = null
- frozen = undefined
- }
-
- self.boolean = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('boolean', keys)
- return self
- }
-
- self.array = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('array', keys)
- return self
- }
-
- self.number = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('number', keys)
- return self
- }
-
- self.normalize = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('normalize', keys)
- return self
- }
-
- self.count = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('count', keys)
- return self
- }
-
- self.string = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('string', keys)
- return self
- }
-
- self.requiresArg = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('requiresArg', keys)
- return self
- }
-
- self.skipValidation = function (keys) {
- argsert('<array|string>', [keys], arguments.length)
- populateParserHintArray('skipValidation', keys)
- return self
- }
-
- function populateParserHintArray (type, keys, value) {
- keys = [].concat(keys)
- keys.forEach(function (key) {
- options[type].push(key)
- })
- }
-
- self.nargs = function (key, value) {
- argsert('<string|object|array> [number]', [key, value], arguments.length)
- populateParserHintObject(self.nargs, false, 'narg', key, value)
- return self
- }
-
- self.choices = function (key, value) {
- argsert('<object|string|array> [string|array]', [key, value], arguments.length)
- populateParserHintObject(self.choices, true, 'choices', key, value)
- return self
- }
-
- self.alias = function (key, value) {
- argsert('<object|string|array> [string|array]', [key, value], arguments.length)
- populateParserHintObject(self.alias, true, 'alias', key, value)
- return self
- }
-
- // TODO: actually deprecate self.defaults.
- self.default = self.defaults = function (key, value, defaultDescription) {
- argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length)
- if (defaultDescription) options.defaultDescription[key] = defaultDescription
- if (typeof value === 'function') {
- if (!options.defaultDescription[key]) options.defaultDescription[key] = usage.functionDescription(value)
- value = value.call()
- }
- populateParserHintObject(self.default, false, 'default', key, value)
- return self
- }
-
- self.describe = function (key, desc) {
- argsert('<object|string|array> [string]', [key, desc], arguments.length)
- populateParserHintObject(self.describe, false, 'key', key, true)
- usage.describe(key, desc)
- return self
- }
-
- self.demandOption = function (keys, msg) {
- argsert('<object|string|array> [string]', [keys, msg], arguments.length)
- populateParserHintObject(self.demandOption, false, 'demandedOptions', keys, msg)
- return self
- }
-
- self.coerce = function (keys, value) {
- argsert('<object|string|array> [function]', [keys, value], arguments.length)
- populateParserHintObject(self.coerce, false, 'coerce', keys, value)
- return self
- }
-
- function populateParserHintObject (builder, isArray, type, key, value) {
- if (Array.isArray(key)) {
- // an array of keys with one value ['x', 'y', 'z'], function parse () {}
- var temp = {}
- key.forEach(function (k) {
- temp[k] = value
- })
- builder(temp)
- } else if (typeof key === 'object') {
- // an object of key value pairs: {'x': parse () {}, 'y': parse() {}}
- Object.keys(key).forEach(function (k) {
- builder(k, key[k])
- })
- } else {
- // a single key value pair 'x', parse() {}
- if (isArray) {
- options[type][key] = (options[type][key] || []).concat(value)
- } else {
- options[type][key] = value
- }
- }
- }
-
- self.config = function (key, msg, parseFn) {
- argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length)
- // allow a config object to be provided directly.
- if (typeof key === 'object') {
- key = applyExtends(key, cwd)
- options.configObjects = (options.configObjects || []).concat(key)
- return self
- }
-
- // allow for a custom parsing function.
- if (typeof msg === 'function') {
- parseFn = msg
- msg = null
- }
-
- key = key || 'config'
- self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file'))
- ;(Array.isArray(key) ? key : [key]).forEach(function (k) {
- options.config[k] = parseFn || true
- })
-
- return self
- }
-
- self.example = function (cmd, description) {
- argsert('<string> [string]', [cmd, description], arguments.length)
- usage.example(cmd, description)
- return self
- }
-
- self.command = function (cmd, description, builder, handler) {
- argsert('<string|array|object> [string|boolean] [function|object] [function]', [cmd, description, builder, handler], arguments.length)
- command.addHandler(cmd, description, builder, handler)
- return self
- }
-
- self.commandDir = function (dir, opts) {
- argsert('<string> [object]', [dir, opts], arguments.length)
- const req = parentRequire || require
- command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts)
- return self
- }
-
- // TODO: deprecate self.demand in favor of
- // .demandCommand() .demandOption().
- self.demand = self.required = self.require = function (keys, max, msg) {
- // you can optionally provide a 'max' key,
- // which will raise an exception if too many '_'
- // options are provided.
- if (Array.isArray(max)) {
- max.forEach(function (key) {
- self.demandOption(key, msg)
- })
- max = Infinity
- } else if (typeof max !== 'number') {
- msg = max
- max = Infinity
- }
-
- if (typeof keys === 'number') {
- self.demandCommand(keys, max, msg, msg)
- } else if (Array.isArray(keys)) {
- keys.forEach(function (key) {
- self.demandOption(key, msg)
- })
- } else {
- if (typeof msg === 'string') {
- self.demandOption(keys, msg)
- } else if (msg === true || typeof msg === 'undefined') {
- self.demandOption(keys)
- }
- }
-
- return self
- }
-
- self.demandCommand = function (min, max, minMsg, maxMsg) {
- argsert('[number] [number|string] [string|null] [string|null]', [min, max, minMsg, maxMsg], arguments.length)
-
- if (typeof min === 'undefined') min = 1
-
- if (typeof max !== 'number') {
- minMsg = max
- max = Infinity
- }
-
- self.global('_', false)
-
- options.demandedCommands._ = {
- min: min,
- max: max,
- minMsg: minMsg,
- maxMsg: maxMsg
- }
-
- return self
- }
-
- self.getDemandedOptions = function () {
- argsert([], 0)
- return options.demandedOptions
- }
-
- self.getDemandedCommands = function () {
- argsert([], 0)
- return options.demandedCommands
- }
-
- self.implies = function (key, value) {
- argsert('<string|object> [string]', [key, value], arguments.length)
- validation.implies(key, value)
- return self
- }
-
- self.conflicts = function (key1, key2) {
- argsert('<string|object> [string]', [key1, key2], arguments.length)
- validation.conflicts(key1, key2)
- return self
- }
-
- self.usage = function (msg, opts) {
- argsert('<string|null|object> [object]', [msg, opts], arguments.length)
-
- if (!opts && typeof msg === 'object') {
- opts = msg
- msg = null
- }
-
- usage.usage(msg)
-
- if (opts) self.options(opts)
-
- return self
- }
-
- self.epilogue = self.epilog = function (msg) {
- argsert('<string>', [msg], arguments.length)
- usage.epilog(msg)
- return self
- }
-
- self.fail = function (f) {
- argsert('<function>', [f], arguments.length)
- usage.failFn(f)
- return self
- }
-
- self.check = function (f, _global) {
- argsert('<function> [boolean]', [f, _global], arguments.length)
- validation.check(f, _global !== false)
- return self
- }
-
- self.global = function (globals, global) {
- argsert('<string|array> [boolean]', [globals, global], arguments.length)
- globals = [].concat(globals)
- if (global !== false) {
- options.local = options.local.filter(function (l) {
- return globals.indexOf(l) === -1
- })
- } else {
- globals.forEach(function (g) {
- if (options.local.indexOf(g) === -1) options.local.push(g)
- })
- }
- return self
- }
-
- self.pkgConf = function (key, path) {
- argsert('<string> [string]', [key, path], arguments.length)
- var conf = null
- // prefer cwd to require-main-filename in this method
- // since we're looking for e.g. "nyc" config in nyc consumer
- // rather than "yargs" config in nyc (where nyc is the main filename)
- var obj = pkgUp(path || cwd)
-
- // If an object exists in the key, add it to options.configObjects
- if (obj[key] && typeof obj[key] === 'object') {
- conf = applyExtends(obj[key], path || cwd)
- options.configObjects = (options.configObjects || []).concat(conf)
- }
-
- return self
- }
-
- var pkgs = {}
- function pkgUp (path) {
- var npath = path || '*'
- if (pkgs[npath]) return pkgs[npath]
- const readPkgUp = require('read-pkg-up')
-
- var obj = {}
- try {
- obj = readPkgUp.sync({
- cwd: path || require('require-main-filename')(parentRequire || require),
- normalize: false
- })
- } catch (noop) {}
-
- pkgs[npath] = obj.pkg || {}
- return pkgs[npath]
- }
-
- var parseFn = null
- var parseContext = null
- self.parse = function (args, shortCircuit, _parseFn) {
- argsert('<string|array> [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length)
-
- // a context object can optionally be provided, this allows
- // additional information to be passed to a command handler.
- if (typeof shortCircuit === 'object') {
- parseContext = shortCircuit
- shortCircuit = _parseFn
- }
-
- // by providing a function as a second argument to
- // parse you can capture output that would otherwise
- // default to printing to stdout/stderr.
- if (typeof shortCircuit === 'function') {
- parseFn = shortCircuit
- shortCircuit = null
- }
- // completion short-circuits the parsing process,
- // skipping validation, etc.
- if (!shortCircuit) processArgs = args
-
- freeze()
- if (parseFn) exitProcess = false
-
- var parsed = self._parseArgs(args, shortCircuit)
- if (parseFn) parseFn(exitError, parsed, output)
- unfreeze()
-
- return parsed
- }
-
- self._getParseContext = function () {
- return parseContext || {}
- }
-
- self._hasParseCallback = function () {
- return !!parseFn
- }
-
- self.option = self.options = function (key, opt) {
- argsert('<string|object> [object]', [key, opt], arguments.length)
- if (typeof key === 'object') {
- Object.keys(key).forEach(function (k) {
- self.options(k, key[k])
- })
- } else {
- if (typeof opt !== 'object') {
- opt = {}
- }
-
- options.key[key] = true // track manually set keys.
-
- if (opt.alias) self.alias(key, opt.alias)
-
- var demand = opt.demand || opt.required || opt.require
-
- // deprecated, use 'demandOption' instead
- if (demand) {
- self.demand(key, demand)
- }
-
- if (opt.demandOption) {
- self.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined)
- }
-
- if ('config' in opt) {
- self.config(key, opt.configParser)
- }
-
- if ('conflicts' in opt) {
- self.conflicts(key, opt.conflicts)
- }
-
- if ('default' in opt) {
- self.default(key, opt.default)
- }
-
- if ('implies' in opt) {
- self.implies(key, opt.implies)
- }
-
- if ('nargs' in opt) {
- self.nargs(key, opt.nargs)
- }
-
- if ('normalize' in opt) {
- self.normalize(key)
- }
-
- if ('choices' in opt) {
- self.choices(key, opt.choices)
- }
-
- if ('coerce' in opt) {
- self.coerce(key, opt.coerce)
- }
-
- if ('group' in opt) {
- self.group(key, opt.group)
- }
-
- if (opt.boolean || opt.type === 'boolean') {
- self.boolean(key)
- if (opt.alias) self.boolean(opt.alias)
- }
-
- if (opt.array || opt.type === 'array') {
- self.array(key)
- if (opt.alias) self.array(opt.alias)
- }
-
- if (opt.number || opt.type === 'number') {
- self.number(key)
- if (opt.alias) self.number(opt.alias)
- }
-
- if (opt.string || opt.type === 'string') {
- self.string(key)
- if (opt.alias) self.string(opt.alias)
- }
-
- if (opt.count || opt.type === 'count') {
- self.count(key)
- }
-
- if (typeof opt.global === 'boolean') {
- self.global(key, opt.global)
- }
-
- if (opt.defaultDescription) {
- options.defaultDescription[key] = opt.defaultDescription
- }
-
- if (opt.skipValidation) {
- self.skipValidation(key)
- }
-
- var desc = opt.describe || opt.description || opt.desc
- if (desc) {
- self.describe(key, desc)
- }
-
- if (opt.requiresArg) {
- self.requiresArg(key)
- }
- }
-
- return self
- }
- self.getOptions = function () {
- return options
- }
-
- self.group = function (opts, groupName) {
- argsert('<string|array> <string>', [opts, groupName], arguments.length)
- var existing = preservedGroups[groupName] || groups[groupName]
- if (preservedGroups[groupName]) {
- // we now only need to track this group name in groups.
- delete preservedGroups[groupName]
- }
-
- var seen = {}
- groups[groupName] = (existing || []).concat(opts).filter(function (key) {
- if (seen[key]) return false
- return (seen[key] = true)
- })
- return self
- }
- self.getGroups = function () {
- // combine explicit and preserved groups. explicit groups should be first
- return assign(groups, preservedGroups)
- }
-
- // as long as options.envPrefix is not undefined,
- // parser will apply env vars matching prefix to argv
- self.env = function (prefix) {
- argsert('[string|boolean]', [prefix], arguments.length)
- if (prefix === false) options.envPrefix = undefined
- else options.envPrefix = prefix || ''
- return self
- }
-
- self.wrap = function (cols) {
- argsert('<number|null>', [cols], arguments.length)
- usage.wrap(cols)
- return self
- }
-
- var strict = false
- self.strict = function (enabled) {
- argsert('[boolean]', [enabled], arguments.length)
- strict = enabled !== false
- return self
- }
- self.getStrict = function () {
- return strict
- }
-
- self.showHelp = function (level) {
- argsert('[string|function]', [level], arguments.length)
- if (!self.parsed) self._parseArgs(processArgs) // run parser, if it has not already been executed.
- usage.showHelp(level)
- return self
- }
-
- var versionOpt = null
- self.version = function (opt, msg, ver) {
- argsert('[string|function] [string|function] [string]', [opt, msg, ver], arguments.length)
- if (arguments.length === 0) {
- ver = guessVersion()
- opt = 'version'
- } else if (arguments.length === 1) {
- ver = opt
- opt = 'version'
- } else if (arguments.length === 2) {
- ver = msg
- msg = null
- }
-
- versionOpt = opt
- msg = msg || usage.deferY18nLookup('Show version number')
-
- usage.version(ver || undefined)
- self.boolean(versionOpt)
- self.describe(versionOpt, msg)
- return self
- }
-
- function guessVersion () {
- var obj = pkgUp()
-
- return obj.version || 'unknown'
- }
-
- var helpOpt = null
- var useHelpOptAsCommand = false // a call to .help() will enable this
- self.addHelpOpt = self.help = function (opt, msg, addImplicitCmd) {
- argsert('[string|boolean] [string|boolean] [boolean]', [opt, msg, addImplicitCmd], arguments.length)
-
- // argument shuffle
- if (arguments.length === 0) {
- useHelpOptAsCommand = true
- } else if (arguments.length === 1) {
- if (typeof opt === 'boolean') {
- useHelpOptAsCommand = opt
- opt = null
- } else {
- useHelpOptAsCommand = true
- }
- } else if (arguments.length === 2) {
- if (typeof msg === 'boolean') {
- useHelpOptAsCommand = msg
- msg = null
- } else {
- useHelpOptAsCommand = true
- }
- } else {
- useHelpOptAsCommand = Boolean(addImplicitCmd)
- }
- // use arguments, fallback to defaults for opt and msg
- helpOpt = opt || 'help'
- self.boolean(helpOpt)
- self.describe(helpOpt, msg || usage.deferY18nLookup('Show help'))
- return self
- }
-
- self.showHelpOnFail = function (enabled, message) {
- argsert('[boolean|string] [string]', [enabled, message], arguments.length)
- usage.showHelpOnFail(enabled, message)
- return self
- }
-
- var exitProcess = true
- self.exitProcess = function (enabled) {
- argsert('[boolean]', [enabled], arguments.length)
- if (typeof enabled !== 'boolean') {
- enabled = true
- }
- exitProcess = enabled
- return self
- }
- self.getExitProcess = function () {
- return exitProcess
- }
-
- var completionCommand = null
- self.completion = function (cmd, desc, fn) {
- argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length)
-
- // a function to execute when generating
- // completions can be provided as the second
- // or third argument to completion.
- if (typeof desc === 'function') {
- fn = desc
- desc = null
- }
-
- // register the completion command.
- completionCommand = cmd || 'completion'
- if (!desc && desc !== false) {
- desc = 'generate bash completion script'
- }
- self.command(completionCommand, desc)
-
- // a function can be provided
- if (fn) completion.registerFunction(fn)
-
- return self
- }
-
- self.showCompletionScript = function ($0) {
- argsert('[string]', [$0], arguments.length)
- $0 = $0 || self.$0
- _logger.log(completion.generateCompletionScript($0))
- return self
- }
-
- self.getCompletion = function (args, done) {
- argsert('<array> <function>', [args, done], arguments.length)
- completion.getCompletion(args, done)
- }
-
- self.locale = function (locale) {
- argsert('[string]', [locale], arguments.length)
- if (arguments.length === 0) {
- guessLocale()
- return y18n.getLocale()
- }
- detectLocale = false
- y18n.setLocale(locale)
- return self
- }
-
- self.updateStrings = self.updateLocale = function (obj) {
- argsert('<object>', [obj], arguments.length)
- detectLocale = false
- y18n.updateLocale(obj)
- return self
- }
-
- var detectLocale = true
- self.detectLocale = function (detect) {
- argsert('<boolean>', [detect], arguments.length)
- detectLocale = detect
- return self
- }
- self.getDetectLocale = function () {
- return detectLocale
- }
-
- var hasOutput = false
- var exitError = null
- // maybe exit, always capture
- // context about why we wanted to exit.
- self.exit = function (code, err) {
- hasOutput = true
- exitError = err
- if (exitProcess) process.exit(code)
- }
-
- // we use a custom logger that buffers output,
- // so that we can print to non-CLIs, e.g., chat-bots.
- var _logger = {
- log: function () {
- const args = []
- for (var i = 0; i < arguments.length; i++) args.push(arguments[i])
- if (!self._hasParseCallback()) console.log.apply(console, args)
- hasOutput = true
- if (output.length) output += '\n'
- output += args.join(' ')
- },
- error: function () {
- const args = []
- for (var i = 0; i < arguments.length; i++) args.push(arguments[i])
- if (!self._hasParseCallback()) console.error.apply(console, args)
- hasOutput = true
- if (output.length) output += '\n'
- output += args.join(' ')
- }
- }
- self._getLoggerInstance = function () {
- return _logger
- }
- // has yargs output an error our help
- // message in the current execution context.
- self._hasOutput = function () {
- return hasOutput
- }
-
- self._setHasOutput = function () {
- hasOutput = true
- }
-
- var recommendCommands
- self.recommendCommands = function (recommend) {
- argsert('[boolean]', [recommend], arguments.length)
- recommendCommands = typeof recommend === 'boolean' ? recommend : true
- return self
- }
-
- self.getUsageInstance = function () {
- return usage
- }
-
- self.getValidationInstance = function () {
- return validation
- }
-
- self.getCommandInstance = function () {
- return command
- }
-
- self.terminalWidth = function () {
- argsert([], 0)
- return typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null
- }
-
- Object.defineProperty(self, 'argv', {
- get: function () {
- return self._parseArgs(processArgs)
- },
- enumerable: true
- })
-
- self._parseArgs = function (args, shortCircuit, _skipValidation, commandIndex) {
- var skipValidation = !!_skipValidation
- args = args || processArgs
-
- options.__ = y18n.__
- options.configuration = pkgUp()['yargs'] || {}
- const parsed = Parser.detailed(args, options)
- var argv = parsed.argv
- if (parseContext) argv = assign(argv, parseContext)
- var aliases = parsed.aliases
-
- argv.$0 = self.$0
- self.parsed = parsed
-
- try {
- guessLocale() // guess locale lazily, so that it can be turned off in chain.
-
- // while building up the argv object, there
- // are two passes through the parser. If completion
- // is being performed short-circuit on the first pass.
- if (shortCircuit) {
- return argv
- }
-
- if (argv._.length) {
- // check for helpOpt in argv._ before running commands
- // assumes helpOpt must be valid if useHelpOptAsCommand is true
- if (useHelpOptAsCommand) {
- // consider any multi-char helpOpt alias as a valid help command
- // unless all helpOpt aliases are single-char
- // note that parsed.aliases is a normalized bidirectional map :)
- var helpCmds = [helpOpt].concat(aliases[helpOpt] || [])
- var multiCharHelpCmds = helpCmds.filter(function (k) {
- return k.length > 1
- })
- if (multiCharHelpCmds.length) helpCmds = multiCharHelpCmds
- // look for and strip any helpCmds from argv._
- argv._ = argv._.filter(function (cmd) {
- if (~helpCmds.indexOf(cmd)) {
- argv[helpOpt] = true
- return false
- }
- return true
- })
- }
-
- // if there's a handler associated with a
- // command defer processing to it.
- var handlerKeys = command.getCommands()
- if (handlerKeys.length) {
- var firstUnknownCommand
- for (var i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) {
- cmd = String(argv._[i])
- if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) {
- setPlaceholderKeys(argv)
- // commands are executed using a recursive algorithm that executes
- // the deepest command first; we keep track of the position in the
- // argv._ array that is currently being executed.
- return command.runCommand(cmd, self, parsed, i + 1)
- } else if (!firstUnknownCommand && cmd !== completionCommand) {
- firstUnknownCommand = cmd
- break
- }
- }
-
- // run the default command, if defined
- if (command.hasDefaultCommand() && !argv[helpOpt]) {
- setPlaceholderKeys(argv)
- return command.runCommand(null, self, parsed)
- }
-
- // recommend a command if recommendCommands() has
- // been enabled, and no commands were found to execute
- if (recommendCommands && firstUnknownCommand && !argv[helpOpt]) {
- validation.recommendCommands(firstUnknownCommand, handlerKeys)
- }
- }
-
- // generate a completion script for adding to ~/.bashrc.
- if (completionCommand && ~argv._.indexOf(completionCommand) && !argv[completion.completionKey]) {
- if (exitProcess) setBlocking(true)
- self.showCompletionScript()
- self.exit(0)
- }
- } else if (command.hasDefaultCommand() && !argv[helpOpt]) {
- setPlaceholderKeys(argv)
- return command.runCommand(null, self, parsed)
- }
-
- // we must run completions first, a user might
- // want to complete the --help or --version option.
- if (completion.completionKey in argv) {
- if (exitProcess) setBlocking(true)
-
- // we allow for asynchronous completions,
- // e.g., loading in a list of commands from an API.
- var completionArgs = args.slice(args.indexOf('--' + completion.completionKey) + 1)
- completion.getCompletion(completionArgs, function (completions) {
- ;(completions || []).forEach(function (completion) {
- _logger.log(completion)
- })
-
- self.exit(0)
- })
- return setPlaceholderKeys(argv)
- }
-
- // Handle 'help' and 'version' options
- // if we haven't already output help!
- if (!hasOutput) {
- Object.keys(argv).forEach(function (key) {
- if (key === helpOpt && argv[key]) {
- if (exitProcess) setBlocking(true)
-
- skipValidation = true
- self.showHelp('log')
- self.exit(0)
- } else if (key === versionOpt && argv[key]) {
- if (exitProcess) setBlocking(true)
-
- skipValidation = true
- usage.showVersion()
- self.exit(0)
- }
- })
- }
-
- // Check if any of the options to skip validation were provided
- if (!skipValidation && options.skipValidation.length > 0) {
- skipValidation = Object.keys(argv).some(function (key) {
- return options.skipValidation.indexOf(key) >= 0 && argv[key] === true
- })
- }
-
- // If the help or version options where used and exitProcess is false,
- // or if explicitly skipped, we won't run validations.
- if (!skipValidation) {
- if (parsed.error) throw new YError(parsed.error.message)
-
- // if we're executed via bash completion, don't
- // bother with validation.
- if (!argv[completion.completionKey]) {
- self._runValidation(argv, aliases, {}, parsed.error)
- }
- }
- } catch (err) {
- if (err instanceof YError) usage.fail(err.message, err)
- else throw err
- }
-
- return setPlaceholderKeys(argv)
- }
-
- self._runValidation = function (argv, aliases, positionalMap, parseErrors) {
- if (parseErrors) throw new YError(parseErrors.message)
- validation.nonOptionCount(argv)
- validation.missingArgumentValue(argv)
- validation.requiredArguments(argv)
- if (strict) validation.unknownArguments(argv, aliases, positionalMap)
- validation.customChecks(argv, aliases)
- validation.limitedChoices(argv)
- validation.implications(argv)
- validation.conflicting(argv)
- }
-
- function guessLocale () {
- if (!detectLocale) return
-
- try {
- const osLocale = require('os-locale')
- self.locale(osLocale.sync({ spawn: false }))
- } catch (err) {
- // if we explode looking up locale just noop
- // we'll keep using the default language 'en'.
- }
- }
-
- function setPlaceholderKeys (argv) {
- Object.keys(options.key).forEach(function (key) {
- // don't set placeholder keys for dot
- // notation options 'foo.bar'.
- if (~key.indexOf('.')) return
- if (typeof argv[key] === 'undefined') argv[key] = undefined
- })
- return argv
- }
-
- return self
-}
-
-// rebase an absolute path to a relative one with respect to a base directory
-// exported for tests
-exports.rebase = rebase
-function rebase (base, dir) {
- return path.relative(base, dir)
-}
diff --git a/deps/npm/node_modules/libnpx/package.json b/deps/npm/node_modules/libnpx/package.json
index 243543fd55..b9d866b96a 100644
--- a/deps/npm/node_modules/libnpx/package.json
+++ b/deps/npm/node_modules/libnpx/package.json
@@ -1,38 +1,32 @@
{
- "_from": "libnpx@latest",
- "_id": "libnpx@9.7.1",
+ "_args": [
+ [
+ "libnpx@10.2.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "libnpx@10.2.0",
+ "_id": "libnpx@10.2.0",
"_inBundle": false,
- "_integrity": "sha512-OktT775uhfL93SoUfERj4ilM3D7c0hyUyALX9oJ2D/yO4Msm5hbkOKHcrOVHXRcEX9ytstviYQAEygFIiDj2bQ==",
+ "_integrity": "sha512-X28coei8/XRCt15cYStbLBph+KGhFra4VQhRBPuH/HHMkC5dxM8v24RVgUsvODKCrUZ0eTgiTqJp6zbl0sskQQ==",
"_location": "/libnpx",
- "_phantomChildren": {
- "graceful-fs": "4.1.11",
- "hosted-git-info": "2.5.0",
- "lru-cache": "4.1.1",
- "normalize-package-data": "2.4.0",
- "osenv": "0.1.4",
- "semver": "5.4.1",
- "strip-ansi": "4.0.0",
- "validate-npm-package-name": "3.0.0",
- "which": "1.3.0"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "libnpx@latest",
+ "raw": "libnpx@10.2.0",
"name": "libnpx",
"escapedName": "libnpx",
- "rawSpec": "latest",
+ "rawSpec": "10.2.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "10.2.0"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/libnpx/-/libnpx-9.7.1.tgz",
- "_shasum": "55300b5e119bd47b714be9704ca0696ffb18b025",
- "_spec": "libnpx@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/libnpx/-/libnpx-10.2.0.tgz",
+ "_spec": "10.2.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Kat MarchƔn",
"email": "kzm@sykosomatic.org"
@@ -40,7 +34,6 @@
"bugs": {
"url": "https://github.com/zkat/npx/issues"
},
- "bundleDependencies": false,
"config": {
"nyc": {
"exclude": [
@@ -50,32 +43,34 @@
}
},
"dependencies": {
- "dotenv": "^4.0.0",
- "npm-package-arg": "^5.1.2",
- "rimraf": "^2.6.1",
+ "dotenv": "^5.0.1",
+ "npm-package-arg": "^6.0.0",
+ "rimraf": "^2.6.2",
"safe-buffer": "^5.1.0",
- "update-notifier": "^2.2.0",
- "which": "^1.2.14",
- "y18n": "^3.2.1",
- "yargs": "^8.0.2"
+ "update-notifier": "^2.3.0",
+ "which": "^1.3.0",
+ "y18n": "^4.0.0",
+ "yargs": "^11.0.0"
},
- "deprecated": false,
"description": "support library for npx -- an tool for executing npm-based packages.",
"devDependencies": {
- "cross-env": "^5.0.1",
+ "cross-env": "^5.1.3",
"json": "^9.0.6",
"marked-man": "^0.2.1",
"mkdirp": "^0.5.1",
- "npm": "^5.3.0",
- "nyc": "^11.0.2",
+ "npm": "^5.7.1",
+ "nyc": "^11.4.1",
"require-inject": "^1.4.0",
- "standard": "^10.0.2",
- "standard-version": "^4.2.0",
+ "standard": "^11.0.0",
+ "standard-version": "^4.3.0",
"tacks": "^1.2.6",
- "tap": "^10.5.1",
+ "tap": "^11.1.2",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.8"
},
+ "engines": {
+ "node": ">=4"
+ },
"files": [
"*.js",
"libnpx.1",
@@ -90,13 +85,12 @@
"npm bin",
"cli"
],
- "license": "CC0-1.0",
+ "license": "ISC",
"main": "index.js",
"man": [
"./libnpx.1"
],
"name": "libnpx",
- "optionalDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/zkat/npx.git"
@@ -106,12 +100,12 @@
"docs": "tail -n +2 README.md | marked-man --manual 'User Commands' --version \"$npm_package_name@$npm_package_version\" > $npm_package_name.1",
"postrelease": "npm publish && git push --follow-tags",
"prerelease": "npm t && npm run docs",
- "pretest": "standard ./*.js test bin/*.js locales",
+ "pretest": "standard *.js test bin/*.js locales",
"publish-bin": "npm run bin && cd bin && npm publish",
"release": "standard-version -s",
"test": "cross-env NPX_UPDATE_LOCALE_FILES=true LC_ALL=en nyc --all -- tap -J test/*.js",
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "9.7.1"
+ "version": "10.2.0"
}
diff --git a/deps/npm/node_modules/libnpx/parse-args.js b/deps/npm/node_modules/libnpx/parse-args.js
index 240fdd463f..d655442cbb 100644
--- a/deps/npm/node_modules/libnpx/parse-args.js
+++ b/deps/npm/node_modules/libnpx/parse-args.js
@@ -47,8 +47,8 @@ function parseArgs (argv, defaultNpm) {
const parsed = parser.parse(argv.slice(0, cmdIndex))
const parsedCmd = npa(argv[cmdIndex])
parsed.command = parsed.package && parsedCmd.type !== 'directory'
- ? argv[cmdIndex]
- : guessCmdName(parsedCmd)
+ ? argv[cmdIndex]
+ : guessCmdName(parsedCmd)
parsed.isLocal = parsedCmd.type === 'directory'
parsed.cmdOpts = argv.slice(cmdIndex + 1)
if (typeof parsed.package === 'string') {
@@ -56,8 +56,8 @@ function parseArgs (argv, defaultNpm) {
}
parsed.packageRequested = !!parsed.package
parsed.cmdHadVersion = parsed.package || parsedCmd.type === 'directory'
- ? false
- : parsedCmd.name !== parsedCmd.raw
+ ? false
+ : parsedCmd.name !== parsedCmd.raw
const pkg = parsed.package || [argv[cmdIndex]]
parsed.p = parsed.package = pkg.map(p => npa(p).toString())
return parsed
@@ -80,13 +80,13 @@ function parseArgs (argv, defaultNpm) {
const splitCmd = parsed._.slice(2)
const parsedCmd = npa(splitCmd[0])
parsed.command = parsed.package
- ? splitCmd[0]
- : guessCmdName(parsedCmd)
+ ? splitCmd[0]
+ : guessCmdName(parsedCmd)
parsed.cmdOpts = splitCmd.slice(1)
parsed.packageRequested = !!parsed.package
parsed.cmdHadVersion = parsed.package
- ? false
- : parsedCmd.name !== parsedCmd.raw
+ ? false
+ : parsedCmd.name !== parsedCmd.raw
const pkg = parsed.package || [splitCmd[0]]
parsed.p = parsed.package = pkg.map(p => npa(p).toString())
}
@@ -169,65 +169,69 @@ function yargsParser (argv, defaultNpm) {
`
return require('yargs')
- .usage(Y()`Execute binaries from npm packages.\n${usage}`)
- .option('package', {
- alias: 'p',
- type: 'string',
- describe: Y()`Package to be installed.`
- })
- .option('cache', {
- type: 'string',
- describe: Y()`Location of the npm cache.`
- })
- .option('no-install', {
- type: 'boolean',
- describe: Y()`Skip installation if a package is missing.`
- })
- .option('userconfig', {
- type: 'string',
- describe: Y()`Path to user npmrc.`
- })
- .option('call', {
- alias: 'c',
- type: 'string',
- describe: Y()`Execute string as if inside \`npm run-script\`.`
- })
- .option('shell', {
- alias: 's',
- type: 'string',
- describe: Y()`Shell to execute the command with, if any.`,
- default: false
- })
- .option('shell-auto-fallback', {
- choices: ['', 'bash', 'fish', 'zsh'],
- describe: Y()`Generate shell code to use npx as the "command not found" fallback.`,
- requireArg: false,
- type: 'string'
- })
- .option('ignore-existing', {
- describe: Y()`Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.`,
- type: 'boolean'
- })
- .option('quiet', {
- alias: 'q',
- describe: Y()`Suppress output from npx itself. Subcommands will not be affected.`,
- type: 'boolean'
- })
- .option('npm', {
- describe: Y()`npm binary to use for internal operations.`,
- type: 'string',
- default: defaultNpm || 'npm'
- })
- .option('node-arg', {
- alias: 'n',
- type: 'string',
- describe: Y()`Extra node argument when calling a node binary.`
- })
- .version(() => require('./package.json').version)
- .alias('version', 'v')
- .help()
- .alias('help', 'h')
- .epilogue(Y()`For the full documentation, see the manual page for npx(1).`)
+ .usage(Y()`Execute binaries from npm packages.\n${usage}`)
+ .option('package', {
+ alias: 'p',
+ type: 'string',
+ describe: Y()`Package to be installed.`
+ })
+ .option('cache', {
+ type: 'string',
+ describe: Y()`Location of the npm cache.`
+ })
+ .option('always-spawn', {
+ describe: Y()`Always spawn a child process to execute the command.`,
+ type: 'boolean'
+ })
+ .option('no-install', {
+ type: 'boolean',
+ describe: Y()`Skip installation if a package is missing.`
+ })
+ .option('userconfig', {
+ type: 'string',
+ describe: Y()`Path to user npmrc.`
+ })
+ .option('call', {
+ alias: 'c',
+ type: 'string',
+ describe: Y()`Execute string as if inside \`npm run-script\`.`
+ })
+ .option('shell', {
+ alias: 's',
+ type: 'string',
+ describe: Y()`Shell to execute the command with, if any.`,
+ default: false
+ })
+ .option('shell-auto-fallback', {
+ choices: ['', 'bash', 'fish', 'zsh'],
+ describe: Y()`Generate shell code to use npx as the "command not found" fallback.`,
+ requireArg: false,
+ type: 'string'
+ })
+ .option('ignore-existing', {
+ describe: Y()`Ignores existing binaries in $PATH, or in the local project. This forces npx to do a temporary install and use the latest version.`,
+ type: 'boolean'
+ })
+ .option('quiet', {
+ alias: 'q',
+ describe: Y()`Suppress output from npx itself. Subcommands will not be affected.`,
+ type: 'boolean'
+ })
+ .option('npm', {
+ describe: Y()`npm binary to use for internal operations.`,
+ type: 'string',
+ default: defaultNpm || 'npm'
+ })
+ .option('node-arg', {
+ alias: 'n',
+ type: 'string',
+ describe: Y()`Extra node argument when calling a node binary.`
+ })
+ .version()
+ .alias('version', 'v')
+ .help()
+ .alias('help', 'h')
+ .epilogue(Y()`For the full documentation, see the manual page for npx(1).`)
}
var _y
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/index.js b/deps/npm/node_modules/locate-path/index.js
index 32b108d19b..32b108d19b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/index.js
+++ b/deps/npm/node_modules/locate-path/index.js
diff --git a/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 b/deps/npm/node_modules/locate-path/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/locate-path/license
diff --git a/deps/npm/node_modules/locate-path/package.json b/deps/npm/node_modules/locate-path/package.json
new file mode 100644
index 0000000000..3e1b24f373
--- /dev/null
+++ b/deps/npm/node_modules/locate-path/package.json
@@ -0,0 +1,79 @@
+{
+ "_from": "locate-path@^2.0.0",
+ "_id": "locate-path@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=",
+ "_location": "/locate-path",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "locate-path@^2.0.0",
+ "name": "locate-path",
+ "escapedName": "locate-path",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/find-up"
+ ],
+ "_resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "_shasum": "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e",
+ "_spec": "locate-path@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/find-up",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/locate-path/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "p-locate": "^2.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the first path that exists on disk of multiple paths",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/locate-path#readme",
+ "keywords": [
+ "locate",
+ "path",
+ "paths",
+ "file",
+ "files",
+ "exists",
+ "find",
+ "finder",
+ "search",
+ "searcher",
+ "array",
+ "iterable",
+ "iterator"
+ ],
+ "license": "MIT",
+ "name": "locate-path",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/locate-path.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/readme.md b/deps/npm/node_modules/locate-path/readme.md
index f7b337bb2c..f7b337bb2c 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/find-up/node_modules/locate-path/readme.md
+++ b/deps/npm/node_modules/locate-path/readme.md
diff --git a/deps/npm/node_modules/lock-verify/LICENSE b/deps/npm/node_modules/lock-verify/LICENSE
new file mode 100644
index 0000000000..e0040f6659
--- /dev/null
+++ b/deps/npm/node_modules/lock-verify/LICENSE
@@ -0,0 +1,13 @@
+Copyright (c) 2017, Rebecca Turner <me@re-becca.org>
+
+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/lock-verify/README.md b/deps/npm/node_modules/lock-verify/README.md
new file mode 100644
index 0000000000..01f0633c09
--- /dev/null
+++ b/deps/npm/node_modules/lock-verify/README.md
@@ -0,0 +1,22 @@
+# lock-verify
+
+Report if your package.json is out of sync with your package-lock.json.
+
+## USAGE
+
+```
+const lockVerify = require('lock-verify')
+lockVerify(moduleDir).then(result => {
+ result.warnings.forEach(w => console.error('Warning:', w))
+ if (!result.status) {
+ result.errors.forEach(e => console.error(e))
+ process.exit(1)
+ }
+})
+```
+
+As a library it's a function that takes the path to a module and returns a
+promise that resolves to an object with `.status`, `.warnings` and `.errors`
+properties. The first will be true if everything was ok (though warnings
+may exist). If there's no `package.json` or no lockfile in `moduleDir` or they're
+unreadable then the promise will be rejected.
diff --git a/deps/npm/node_modules/lock-verify/index.js b/deps/npm/node_modules/lock-verify/index.js
new file mode 100644
index 0000000000..2272132913
--- /dev/null
+++ b/deps/npm/node_modules/lock-verify/index.js
@@ -0,0 +1,73 @@
+'use strict'
+module.exports = lockVerify
+
+const fs = require('fs')
+const path = require('path')
+const npa = require('npm-package-arg')
+const semver = require('semver')
+
+function lockVerify(check) {
+ if (!check) check = '.'
+
+ const pjson = readJson(`${check}/package.json`)
+ let plock = readJson(`${check}/npm-shrinkwrap.json`)
+ .catch(() => readJson(`${check}/package-lock.json`))
+
+ return Promise.all([pjson, plock]).then(result => {
+ const pjson = result[0]
+ const plock = result[1]
+ let warnings = []
+ let errors = []
+ for (let type of [['dependencies'], ['devDependencies'], ['optionalDependencies', true]]) {
+ const deps = pjson[type[0]]
+ if (!deps) continue
+ const isOptional = type[1]
+ Object.keys(deps).forEach(name => {
+ const spec = npa.resolve(name, deps[name])
+ const lock = plock.dependencies[name]
+ if (!lock) {
+ if (isOptional) {
+ warnings.push('Optional missing: ' + name + '@' + deps[name])
+ } else {
+ errors.push('Missing: ' + name + '@' + deps[name])
+ }
+ return
+ }
+ if (spec.registry) {
+ // Can't match tags to package-lock w/o network
+ if (spec.type === 'tag') return
+ if (!semver.satisfies(lock.version, spec.fetchSpec)) {
+ errors.push("Invalid: lock file's " + name + '@' + lock.version + ' does not satisfy ' + name + '@' + spec.fetchSpec)
+ return
+ }
+ } else if (spec.type === 'git') {
+ // can't verify git w/o network
+ return
+ } else if (spec.type === 'remote') {
+ if (lock.version !== spec.fetchSpec) {
+ errors.push("Invalid: lock file's " + name + '@' + lock.version + ' does not satisfy ' + name + '@' + spec.fetchSpec)
+ return
+ }
+ } else if (spec.type === 'file' || spec.type === 'directory') {
+ const lockSpec = npa.resolve(name, lock.version)
+ if (spec.fetchSpec !== lockSpec.fetchSpec) {
+ errors.push("Invalid: lock file's " + name + '@' + lock.version + ' does not satisfy ' + name + '@' + deps[name])
+ return
+ }
+ } else {
+ console.log(spec)
+ }
+ })
+ }
+ return Promise.resolve({status: errors.length === 0, warnings: warnings, errors: errors})
+ })
+}
+
+function readJson (file) {
+ return new Promise((resolve, reject) => {
+ fs.readFile(file, (err, content) => {
+ if (err) return reject(err)
+ return resolve(JSON.parse(content))
+ })
+ })
+}
diff --git a/deps/npm/node_modules/lock-verify/package.json b/deps/npm/node_modules/lock-verify/package.json
new file mode 100644
index 0000000000..0f2002f549
--- /dev/null
+++ b/deps/npm/node_modules/lock-verify/package.json
@@ -0,0 +1,63 @@
+{
+ "_args": [
+ [
+ "lock-verify@2.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lock-verify@2.0.2",
+ "_id": "lock-verify@2.0.2",
+ "_inBundle": false,
+ "_integrity": "sha512-QNVwK0EGZBS4R3YQ7F1Ox8p41Po9VGl2QG/2GsuvTbkJZYSsPeWHKMbbH6iZMCHWSMww5nrJroZYnGzI4cePuw==",
+ "_location": "/lock-verify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "lock-verify@2.0.2",
+ "name": "lock-verify",
+ "escapedName": "lock-verify",
+ "rawSpec": "2.0.2",
+ "saveSpec": null,
+ "fetchSpec": "2.0.2"
+ },
+ "_requiredBy": [
+ "/",
+ "/libcipm"
+ ],
+ "_resolved": "https://registry.npmjs.org/lock-verify/-/lock-verify-2.0.2.tgz",
+ "_spec": "2.0.2",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org",
+ "url": "http://re-becca.org/"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/lock-verify/issues"
+ },
+ "dependencies": {
+ "npm-package-arg": "^5.1.2 || 6",
+ "semver": "^5.4.1"
+ },
+ "description": "Report if your package.json is out of sync with your package-lock.json.",
+ "devDependencies": {
+ "@iarna/cli": "^1.2.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/iarna/lock-verify#readme",
+ "keywords": [],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "lock-verify",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/lock-verify.git"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "version": "2.0.2"
+}
diff --git a/deps/npm/node_modules/lockfile/.npmignore b/deps/npm/node_modules/lockfile/.npmignore
deleted file mode 100644
index 0ac606ffcb..0000000000
--- a/deps/npm/node_modules/lockfile/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-.nyc_output/
-coverage/
-node_modules/
diff --git a/deps/npm/node_modules/lockfile/.travis.yml b/deps/npm/node_modules/lockfile/.travis.yml
index 4af02b3d17..85318e47f4 100644
--- a/deps/npm/node_modules/lockfile/.travis.yml
+++ b/deps/npm/node_modules/lockfile/.travis.yml
@@ -1,8 +1,11 @@
language: node_js
+sudo: false
node_js:
- - '0.8'
- - '0.10'
- - '0.12'
- - 'iojs'
-before_install:
- - npm install -g npm@latest
+ - 8
+ - 6
+ - 4
+notifications:
+ email: false
+cache:
+ directories:
+ - $HOME/.npm
diff --git a/deps/npm/node_modules/lockfile/CHANGELOG.md b/deps/npm/node_modules/lockfile/CHANGELOG.md
index 38f44af041..82cb746552 100644
--- a/deps/npm/node_modules/lockfile/CHANGELOG.md
+++ b/deps/npm/node_modules/lockfile/CHANGELOG.md
@@ -1,6 +1,14 @@
# Changes
+## 1.0.4
+
+* test parallel
+* upgrade tap
+* upgrade node versions in travis.yml
+* Use signal-exit package to detect exit instead of process.on('exit')
+* added some debugging lines
+
## v1.0.3
* handle the case where callback is not passed by user
diff --git a/deps/npm/node_modules/lockfile/lockfile.js b/deps/npm/node_modules/lockfile/lockfile.js
index fd49717b8c..f037bec55e 100644
--- a/deps/npm/node_modules/lockfile/lockfile.js
+++ b/deps/npm/node_modules/lockfile/lockfile.js
@@ -30,7 +30,8 @@ function hasOwnProperty (obj, prop) {
return Object.prototype.hasOwnProperty.call(obj, prop)
}
-process.on('exit', function () {
+var onExit = require('signal-exit')
+onExit(function () {
debug('exit listener')
// cleanup
Object.keys(locks).forEach(exports.unlockSync)
@@ -172,15 +173,21 @@ exports.lock = function (path, opts, cb) {
})
}
+ debug('failed to acquire lock', er)
+
// something other than "currently locked"
// maybe eperm or something.
- if (er.code !== 'EEXIST') return cb(er)
+ if (er.code !== 'EEXIST') {
+ debug('not EEXIST error', er)
+ return cb(er)
+ }
// someone's got this one. see if it's valid.
if (!opts.stale) return notStale(er, path, opts, cb)
return maybeStale(er, path, opts, false, cb)
})
+ debug('lock return')
}
@@ -235,8 +242,10 @@ function notStale (er, path, opts, cb) {
debug('notStale', path, opts)
// if we can't wait, then just call it a failure
- if (typeof opts.wait !== 'number' || opts.wait <= 0)
+ if (typeof opts.wait !== 'number' || opts.wait <= 0) {
+ debug('notStale, wait is not a number')
return cb(er)
+ }
// poll for some ms for the lock to clear
var now = Date.now()
diff --git a/deps/npm/node_modules/lockfile/package.json b/deps/npm/node_modules/lockfile/package.json
index bd05f4c9df..29e89ff0b0 100644
--- a/deps/npm/node_modules/lockfile/package.json
+++ b/deps/npm/node_modules/lockfile/package.json
@@ -1,42 +1,46 @@
{
- "_from": "lockfile@~1.0.3",
- "_id": "lockfile@1.0.3",
- "_integrity": "sha1-Jjj8OaAzHpysGgS3F5mTHJxQ33k=",
+ "_args": [
+ [
+ "lockfile@1.0.4",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lockfile@1.0.4",
+ "_id": "lockfile@1.0.4",
+ "_inBundle": false,
+ "_integrity": "sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA==",
"_location": "/lockfile",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lockfile@~1.0.3",
+ "raw": "lockfile@1.0.4",
"name": "lockfile",
"escapedName": "lockfile",
- "rawSpec": "~1.0.3",
+ "rawSpec": "1.0.4",
"saveSpec": null,
- "fetchSpec": "~1.0.3"
+ "fetchSpec": "1.0.4"
},
"_requiredBy": [
"/"
],
- "_resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.3.tgz",
- "_shasum": "2638fc39a0331e9cac1a04b71799931c9c50df79",
- "_shrinkwrap": null,
- "_spec": "lockfile@~1.0.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/lockfile/-/lockfile-1.0.4.tgz",
+ "_spec": "1.0.4",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/lockfile/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
+ "dependencies": {
+ "signal-exit": "^3.0.2"
+ },
"description": "A very polite lock file utility, which endeavors to not litter, and to wait patiently for others.",
"devDependencies": {
- "tap": "^7.1.2",
+ "tap": "^11.1.3",
"touch": "0"
},
"directories": {
@@ -53,8 +57,6 @@
"license": "ISC",
"main": "lockfile.js",
"name": "lockfile",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/lockfile.git"
@@ -62,7 +64,7 @@
"scripts": {
"changelog": "bash gen-changelog.sh",
"postversion": "npm run changelog && git add CHANGELOG.md && git commit -m 'update changelog - '${npm_package_version}",
- "test": "tap test/*.js --cov"
+ "test": "tap test/*.js --cov -J"
},
- "version": "1.0.3"
+ "version": "1.0.4"
}
diff --git a/deps/npm/node_modules/lockfile/sockets.md b/deps/npm/node_modules/lockfile/sockets.md
new file mode 100644
index 0000000000..89b60eebce
--- /dev/null
+++ b/deps/npm/node_modules/lockfile/sockets.md
@@ -0,0 +1,27 @@
+to ACQUIRE(lockname)
+- create server, listen on lockname
+ - if enotsock, WATCH(lockname)
+ - if eaddrinuse,
+ - CONNECT(lockname)
+ - unref server
+ - lock has been acquired via server
+ ! on connection, place sockets in queue
+
+to RELEASE(lockname)
+- if acquired via connection
+ - disconnect
+- if acquired via server
+ - send "OK" to front-most connection
+ - when connection disconnects, RELEASE(lockname)
+- if acquired via filename
+ - unlink file
+
+to CONNECT(lockname)
+- net.connect(lockname)
+ - if enoent or socket termination, ACQUIRE(lockname)
+ - when server says "OK",
+ - lock has been acquired via connection
+
+to WATCH(lockname)
+- fs.watch(lockname)
+- on change, ACQUIRE(lockname)
diff --git a/deps/npm/node_modules/lockfile/speedtest.js b/deps/npm/node_modules/lockfile/speedtest.js
new file mode 100644
index 0000000000..4433dce1d9
--- /dev/null
+++ b/deps/npm/node_modules/lockfile/speedtest.js
@@ -0,0 +1,63 @@
+const path = require('path');
+const async = require('async');
+const lf = require('lockfile');
+const fs = require('fs');
+
+const n = +process.argv[3] || 300;
+const a = Array.apply(null, {length: n}).map(function(_, i) {
+ return i
+})
+const file = path.resolve(__dirname, 'speed-test.lock');
+
+try{
+ fs.unlinkSync(file);
+}
+catch(e){}
+
+
+/// NOTE: this should run in about 30ms on a SSD Ubuntu 16.04, that is fast, because we are locking/unlocking 300 locks
+/// *HOWEVER* if we change async.eachSeries to async.each, lockfile will barf immediately, and I can't get lockfile
+/// to not barf, using any of the options {} available to lockfile#lock.
+
+
+const parallel = process.argv[2] === 'parallel';
+
+var fn, msg;
+
+if(parallel){
+ msg = 'parallel';
+ fn = async.each;
+}
+else{
+ msg = 'series';
+ fn = async.eachSeries;
+}
+
+
+const start = Date.now();
+console.log(' => locking/unlocking ' + a.length + ' times, in ' + msg);
+
+fn(a, function (val, cb) {
+
+ console.log('try %d', val)
+
+ lf.lock(file, { retries: n * 3 }, function (err) {
+ if (err) {
+ cb(err);
+ }
+ else {
+ console.log('complete %d', val)
+ lf.unlock(file, cb);
+ }
+ });
+
+}, function complete(err) {
+
+ if (err) {
+ throw err;
+ }
+
+ console.log(' => Time required for lockfile => ', Date.now() - start, 'ms');
+ process.exit(0);
+
+});
diff --git a/deps/npm/node_modules/lockfile/test/retry-time.js b/deps/npm/node_modules/lockfile/test/retry-time.js
index 7d5eaa8499..7632901afa 100644
--- a/deps/npm/node_modules/lockfile/test/retry-time.js
+++ b/deps/npm/node_modules/lockfile/test/retry-time.js
@@ -46,7 +46,6 @@ pollPeriods.forEach(function (pp) {
}, function (er) {
if (ended) return
var time = Date.now() - start
- console.error('t=%d', time)
t.ok(time >= EXPECTTIME, 'should take at least ' + EXPECTTIME)
t.ok(time < TOOLONG, 'should take less than ' + TOOLONG)
clearTimeout(timer)
diff --git a/deps/npm/node_modules/lodash._baseindexof/package.json b/deps/npm/node_modules/lodash._baseindexof/package.json
index b13b2f6e42..35456752d6 100644
--- a/deps/npm/node_modules/lodash._baseindexof/package.json
+++ b/deps/npm/node_modules/lodash._baseindexof/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash._baseindexof@*",
+ "_args": [
+ [
+ "lodash._baseindexof@3.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._baseindexof@3.1.0",
"_id": "lodash._baseindexof@3.1.0",
+ "_inBundle": false,
"_integrity": "sha1-/lK1OhxnYeQmGNZU5KJXie1hgiw=",
"_location": "/lodash._baseindexof",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._baseindexof@*",
+ "raw": "lodash._baseindexof@3.1.0",
"name": "lodash._baseindexof",
"escapedName": "lodash._baseindexof",
- "rawSpec": "*",
+ "rawSpec": "3.1.0",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.1.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash._baseindexof/-/lodash._baseindexof-3.1.0.tgz",
- "_shasum": "fe52b53a1c6761e42618d654e4a25789ed61822c",
- "_shrinkwrap": null,
- "_spec": "lodash._baseindexof@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -59,16 +62,11 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The modern build of lodashā€™s internal `baseIndexOf` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._baseindexof",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json
deleted file mode 100644
index dda55ec88a..0000000000
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "lodash._createset@~4.0.0",
- "_id": "lodash._createset@4.0.3",
- "_integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=",
- "_location": "/lodash._baseuniq/lodash._createset",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "lodash._createset@~4.0.0",
- "name": "lodash._createset",
- "escapedName": "lodash._createset",
- "rawSpec": "~4.0.0",
- "saveSpec": null,
- "fetchSpec": "~4.0.0"
- },
- "_requiredBy": [
- "/lodash._baseuniq"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz",
- "_shasum": "0f4659fbb09d75194fa9e2b88a6644d363c9fe26",
- "_shrinkwrap": null,
- "_spec": "lodash._createset@~4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash._baseuniq",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine.bublitz@gmail.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "The internal lodash function `createSet` exported as a module.",
- "devDependencies": {},
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "name": "lodash._createset",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "4.0.3"
-}
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json b/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json
deleted file mode 100644
index 967c889f1a..0000000000
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "lodash._root@~3.0.0",
- "_id": "lodash._root@3.0.1",
- "_integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
- "_location": "/lodash._baseuniq/lodash._root",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "lodash._root@~3.0.0",
- "name": "lodash._root",
- "escapedName": "lodash._root",
- "rawSpec": "~3.0.0",
- "saveSpec": null,
- "fetchSpec": "~3.0.0"
- },
- "_requiredBy": [
- "/lodash._baseuniq"
- ],
- "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
- "_shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692",
- "_shrinkwrap": null,
- "_spec": "lodash._root@~3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lodash._baseuniq",
- "author": {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/lodash/lodash/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "John-David Dalton",
- "email": "john.david.dalton@gmail.com",
- "url": "http://allyoucanleet.com/"
- },
- {
- "name": "Blaine Bublitz",
- "email": "blaine@iceddev.com",
- "url": "https://github.com/phated"
- },
- {
- "name": "Mathias Bynens",
- "email": "mathias@qiwi.be",
- "url": "https://mathiasbynens.be/"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "The internal lodash function `root` exported as a module.",
- "devDependencies": {},
- "homepage": "https://lodash.com/",
- "icon": "https://lodash.com/icon.svg",
- "license": "MIT",
- "name": "lodash._root",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/lodash/lodash.git"
- },
- "scripts": {
- "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/lodash._baseuniq/package.json b/deps/npm/node_modules/lodash._baseuniq/package.json
index 6f0b9c144f..9253d8b08a 100644
--- a/deps/npm/node_modules/lodash._baseuniq/package.json
+++ b/deps/npm/node_modules/lodash._baseuniq/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash._baseuniq@~4.6.0",
+ "_args": [
+ [
+ "lodash._baseuniq@4.6.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._baseuniq@4.6.0",
"_id": "lodash._baseuniq@4.6.0",
+ "_inBundle": false,
"_integrity": "sha1-DrtE5FaBSveQXGIS+iybLVG4Qeg=",
"_location": "/lodash._baseuniq",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._baseuniq@~4.6.0",
+ "raw": "lodash._baseuniq@4.6.0",
"name": "lodash._baseuniq",
"escapedName": "lodash._baseuniq",
- "rawSpec": "~4.6.0",
+ "rawSpec": "4.6.0",
"saveSpec": null,
- "fetchSpec": "~4.6.0"
+ "fetchSpec": "4.6.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash._baseuniq/-/lodash._baseuniq-4.6.0.tgz",
- "_shasum": "0ebb44e456814af7905c6212fa2c9b2d51b841e8",
- "_shrinkwrap": null,
- "_spec": "lodash._baseuniq@~4.6.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.6.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -53,15 +56,11 @@
"lodash._createset": "~4.0.0",
"lodash._root": "~3.0.0"
},
- "deprecated": false,
"description": "The internal lodash function `baseUniq` exported as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._baseuniq",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._bindcallback/package.json b/deps/npm/node_modules/lodash._bindcallback/package.json
index 82b2e4499a..2d6587bf47 100644
--- a/deps/npm/node_modules/lodash._bindcallback/package.json
+++ b/deps/npm/node_modules/lodash._bindcallback/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash._bindcallback@*",
+ "_args": [
+ [
+ "lodash._bindcallback@3.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._bindcallback@3.0.1",
"_id": "lodash._bindcallback@3.0.1",
+ "_inBundle": false,
"_integrity": "sha1-5THCdkTPi1epnhftlbNcdIeJOS4=",
"_location": "/lodash._bindcallback",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._bindcallback@*",
+ "raw": "lodash._bindcallback@3.0.1",
"name": "lodash._bindcallback",
"escapedName": "lodash._bindcallback",
- "rawSpec": "*",
+ "rawSpec": "3.0.1",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.0.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz",
- "_shasum": "e531c27644cf8b57a99e17ed95b35c748789392e",
- "_shrinkwrap": null,
- "_spec": "lodash._bindcallback@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -59,16 +62,11 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The modern build of lodashā€™s internal `bindCallback` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._bindcallback",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._cacheindexof/package.json b/deps/npm/node_modules/lodash._cacheindexof/package.json
index d20d9cb33f..5b2bfd283f 100644
--- a/deps/npm/node_modules/lodash._cacheindexof/package.json
+++ b/deps/npm/node_modules/lodash._cacheindexof/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash._cacheindexof@*",
+ "_args": [
+ [
+ "lodash._cacheindexof@3.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._cacheindexof@3.0.2",
"_id": "lodash._cacheindexof@3.0.2",
+ "_inBundle": false,
"_integrity": "sha1-PcaayCSY0u5ePOVgkbr9Ktx73pI=",
"_location": "/lodash._cacheindexof",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._cacheindexof@*",
+ "raw": "lodash._cacheindexof@3.0.2",
"name": "lodash._cacheindexof",
"escapedName": "lodash._cacheindexof",
- "rawSpec": "*",
+ "rawSpec": "3.0.2",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.0.2"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash._cacheindexof/-/lodash._cacheindexof-3.0.2.tgz",
- "_shasum": "3dc69ac82498d2ee5e3ce56091bafd2adc7bde92",
- "_shrinkwrap": null,
- "_spec": "lodash._cacheindexof@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -59,16 +62,11 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The modern build of lodashā€™s internal `cacheIndexOf` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._cacheindexof",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._createcache/package.json b/deps/npm/node_modules/lodash._createcache/package.json
index d9a305f97c..8ea87a843c 100644
--- a/deps/npm/node_modules/lodash._createcache/package.json
+++ b/deps/npm/node_modules/lodash._createcache/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash._createcache@*",
+ "_args": [
+ [
+ "lodash._createcache@3.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._createcache@3.1.2",
"_id": "lodash._createcache@3.1.2",
+ "_inBundle": false,
"_integrity": "sha1-VtagZAF2JeeevKa4AY4XRAvc8JM=",
"_location": "/lodash._createcache",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._createcache@*",
+ "raw": "lodash._createcache@3.1.2",
"name": "lodash._createcache",
"escapedName": "lodash._createcache",
- "rawSpec": "*",
+ "rawSpec": "3.1.2",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.1.2"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash._createcache/-/lodash._createcache-3.1.2.tgz",
- "_shasum": "56d6a064017625e79ebca6b8018e17440bdcf093",
- "_shrinkwrap": null,
- "_spec": "lodash._createcache@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.1.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -62,15 +65,11 @@
"dependencies": {
"lodash._getnative": "^3.0.0"
},
- "deprecated": false,
"description": "The modern build of lodashā€™s internal `createCache` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._createcache",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE b/deps/npm/node_modules/lodash._createset/LICENSE
index e0c69d5603..e0c69d5603 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/LICENSE
+++ b/deps/npm/node_modules/lodash._createset/LICENSE
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md b/deps/npm/node_modules/lodash._createset/README.md
index 6486d7e85f..6486d7e85f 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/README.md
+++ b/deps/npm/node_modules/lodash._createset/README.md
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js b/deps/npm/node_modules/lodash._createset/index.js
index 9cadd2eeeb..9cadd2eeeb 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._createset/index.js
+++ b/deps/npm/node_modules/lodash._createset/index.js
diff --git a/deps/npm/node_modules/lodash._createset/package.json b/deps/npm/node_modules/lodash._createset/package.json
new file mode 100644
index 0000000000..723f56e3aa
--- /dev/null
+++ b/deps/npm/node_modules/lodash._createset/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "lodash._createset@~4.0.0",
+ "_id": "lodash._createset@4.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-D0ZZ+7CddRlPqeK4imZE02PJ/iY=",
+ "_location": "/lodash._createset",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lodash._createset@~4.0.0",
+ "name": "lodash._createset",
+ "escapedName": "lodash._createset",
+ "rawSpec": "~4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~4.0.0"
+ },
+ "_requiredBy": [
+ "/lodash._baseuniq"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._createset/-/lodash._createset-4.0.3.tgz",
+ "_shasum": "0f4659fbb09d75194fa9e2b88a6644d363c9fe26",
+ "_spec": "lodash._createset@~4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine.bublitz@gmail.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "deprecated": false,
+ "description": "The internal lodash function `createSet` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "name": "lodash._createset",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "4.0.3"
+}
diff --git a/deps/npm/node_modules/lodash._getnative/package.json b/deps/npm/node_modules/lodash._getnative/package.json
index 15638367bd..d46151be8d 100644
--- a/deps/npm/node_modules/lodash._getnative/package.json
+++ b/deps/npm/node_modules/lodash._getnative/package.json
@@ -1,38 +1,41 @@
{
- "_from": "lodash._getnative@*",
+ "_args": [
+ [
+ "lodash._getnative@3.9.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash._getnative@3.9.1",
"_id": "lodash._getnative@3.9.1",
+ "_inBundle": false,
"_integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=",
"_location": "/lodash._getnative",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash._getnative@*",
+ "raw": "lodash._getnative@3.9.1",
"name": "lodash._getnative",
"escapedName": "lodash._getnative",
- "rawSpec": "*",
+ "rawSpec": "3.9.1",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.9.1"
},
"_requiredBy": [
"/",
"/lodash._createcache"
],
"_resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz",
- "_shasum": "570bc7dede46d61cdcde687d65d3eecbaa3aaff5",
- "_shrinkwrap": null,
- "_spec": "lodash._getnative@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.9.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -60,16 +63,11 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The modern build of lodashā€™s internal `getNative` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"license": "MIT",
"name": "lodash._getnative",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE b/deps/npm/node_modules/lodash._root/LICENSE
index bcbe13d67a..bcbe13d67a 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/LICENSE
+++ b/deps/npm/node_modules/lodash._root/LICENSE
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md b/deps/npm/node_modules/lodash._root/README.md
index 0329abf23d..0329abf23d 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/README.md
+++ b/deps/npm/node_modules/lodash._root/README.md
diff --git a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js b/deps/npm/node_modules/lodash._root/index.js
index 2d8ba0affc..2d8ba0affc 100644
--- a/deps/npm/node_modules/lodash._baseuniq/node_modules/lodash._root/index.js
+++ b/deps/npm/node_modules/lodash._root/index.js
diff --git a/deps/npm/node_modules/lodash._root/package.json b/deps/npm/node_modules/lodash._root/package.json
new file mode 100644
index 0000000000..25673448af
--- /dev/null
+++ b/deps/npm/node_modules/lodash._root/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "lodash._root@~3.0.0",
+ "_id": "lodash._root@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=",
+ "_location": "/lodash._root",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lodash._root@~3.0.0",
+ "name": "lodash._root",
+ "escapedName": "lodash._root",
+ "rawSpec": "~3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~3.0.0"
+ },
+ "_requiredBy": [
+ "/lodash._baseuniq"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz",
+ "_shasum": "fba1c4524c19ee9a5f8136b4609f017cf4ded692",
+ "_spec": "lodash._root@~3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/lodash._baseuniq",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine@iceddev.com",
+ "url": "https://github.com/phated"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "deprecated": false,
+ "description": "The internal lodash function `root` exported as a module.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "license": "MIT",
+ "name": "lodash._root",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/lodash.clonedeep/package.json b/deps/npm/node_modules/lodash.clonedeep/package.json
index 96dd544c01..ce678cc4f4 100644
--- a/deps/npm/node_modules/lodash.clonedeep/package.json
+++ b/deps/npm/node_modules/lodash.clonedeep/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash.clonedeep@~4.5.0",
+ "_args": [
+ [
+ "lodash.clonedeep@4.5.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash.clonedeep@4.5.0",
"_id": "lodash.clonedeep@4.5.0",
+ "_inBundle": false,
"_integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=",
"_location": "/lodash.clonedeep",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash.clonedeep@~4.5.0",
+ "raw": "lodash.clonedeep@4.5.0",
"name": "lodash.clonedeep",
"escapedName": "lodash.clonedeep",
- "rawSpec": "~4.5.0",
+ "rawSpec": "4.5.0",
"saveSpec": null,
- "fetchSpec": "~4.5.0"
+ "fetchSpec": "4.5.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "_shasum": "e23f3f9c4f8fbdde872529c1071857a086e5ccef",
- "_shrinkwrap": null,
- "_spec": "lodash.clonedeep@~4.5.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.5.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -49,10 +52,7 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The lodash method `_.cloneDeep` exported as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
@@ -61,8 +61,6 @@
],
"license": "MIT",
"name": "lodash.clonedeep",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash.restparam/package.json b/deps/npm/node_modules/lodash.restparam/package.json
index 152685b219..91ffa6f12a 100644
--- a/deps/npm/node_modules/lodash.restparam/package.json
+++ b/deps/npm/node_modules/lodash.restparam/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash.restparam@*",
+ "_args": [
+ [
+ "lodash.restparam@3.6.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash.restparam@3.6.1",
"_id": "lodash.restparam@3.6.1",
+ "_inBundle": false,
"_integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=",
"_location": "/lodash.restparam",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash.restparam@*",
+ "raw": "lodash.restparam@3.6.1",
"name": "lodash.restparam",
"escapedName": "lodash.restparam",
- "rawSpec": "*",
+ "rawSpec": "3.6.1",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.6.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz",
- "_shasum": "936a4e309ef330a7645ed4145986c85ae5b20805",
- "_shrinkwrap": null,
- "_spec": "lodash.restparam@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.6.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -59,10 +62,7 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The modern build of lodashā€™s `_.restParam` as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
@@ -73,8 +73,6 @@
],
"license": "MIT",
"name": "lodash.restparam",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash.union/package.json b/deps/npm/node_modules/lodash.union/package.json
index be71f862fd..bc6d838fcf 100644
--- a/deps/npm/node_modules/lodash.union/package.json
+++ b/deps/npm/node_modules/lodash.union/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash.union@~4.6.0",
+ "_args": [
+ [
+ "lodash.union@4.6.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash.union@4.6.0",
"_id": "lodash.union@4.6.0",
+ "_inBundle": false,
"_integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=",
"_location": "/lodash.union",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash.union@~4.6.0",
+ "raw": "lodash.union@4.6.0",
"name": "lodash.union",
"escapedName": "lodash.union",
- "rawSpec": "~4.6.0",
+ "rawSpec": "4.6.0",
"saveSpec": null,
- "fetchSpec": "~4.6.0"
+ "fetchSpec": "4.6.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz",
- "_shasum": "48bb5088409f16f1821666641c44dd1aaae3cd88",
- "_shrinkwrap": null,
- "_spec": "lodash.union@~4.6.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.6.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -49,10 +52,7 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The lodash method `_.union` exported as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
@@ -61,8 +61,6 @@
],
"license": "MIT",
"name": "lodash.union",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash.uniq/package.json b/deps/npm/node_modules/lodash.uniq/package.json
index 864a4d3062..d988afca82 100644
--- a/deps/npm/node_modules/lodash.uniq/package.json
+++ b/deps/npm/node_modules/lodash.uniq/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash.uniq@~4.5.0",
+ "_args": [
+ [
+ "lodash.uniq@4.5.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash.uniq@4.5.0",
"_id": "lodash.uniq@4.5.0",
+ "_inBundle": false,
"_integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=",
"_location": "/lodash.uniq",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash.uniq@~4.5.0",
+ "raw": "lodash.uniq@4.5.0",
"name": "lodash.uniq",
"escapedName": "lodash.uniq",
- "rawSpec": "~4.5.0",
+ "rawSpec": "4.5.0",
"saveSpec": null,
- "fetchSpec": "~4.5.0"
+ "fetchSpec": "4.5.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
- "_shasum": "d0225373aeb652adc1bc82e4945339a842754773",
- "_shrinkwrap": null,
- "_spec": "lodash.uniq@~4.5.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.5.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -49,10 +52,7 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The lodash method `_.uniq` exported as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
@@ -61,8 +61,6 @@
],
"license": "MIT",
"name": "lodash.uniq",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/lodash.without/package.json b/deps/npm/node_modules/lodash.without/package.json
index 7bcb63c706..df953169d5 100644
--- a/deps/npm/node_modules/lodash.without/package.json
+++ b/deps/npm/node_modules/lodash.without/package.json
@@ -1,37 +1,40 @@
{
- "_from": "lodash.without@~4.4.0",
+ "_args": [
+ [
+ "lodash.without@4.4.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lodash.without@4.4.0",
"_id": "lodash.without@4.4.0",
+ "_inBundle": false,
"_integrity": "sha1-PNRXSgC2e643OpS3SHcmQFB7eqw=",
"_location": "/lodash.without",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "lodash.without@~4.4.0",
+ "raw": "lodash.without@4.4.0",
"name": "lodash.without",
"escapedName": "lodash.without",
- "rawSpec": "~4.4.0",
+ "rawSpec": "4.4.0",
"saveSpec": null,
- "fetchSpec": "~4.4.0"
+ "fetchSpec": "4.4.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/lodash.without/-/lodash.without-4.4.0.tgz",
- "_shasum": "3cd4574a00b67bae373a94b748772640507b7aac",
- "_shrinkwrap": null,
- "_spec": "lodash.without@~4.4.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.4.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "John-David Dalton",
"email": "john.david.dalton@gmail.com",
"url": "http://allyoucanleet.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/lodash/lodash/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "John-David Dalton",
@@ -49,10 +52,7 @@
"url": "https://mathiasbynens.be/"
}
],
- "dependencies": {},
- "deprecated": false,
"description": "The lodash method `_.without` exported as a module.",
- "devDependencies": {},
"homepage": "https://lodash.com/",
"icon": "https://lodash.com/icon.svg",
"keywords": [
@@ -61,8 +61,6 @@
],
"license": "MIT",
"name": "lodash.without",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/lodash/lodash.git"
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/LICENSE b/deps/npm/node_modules/lodash/LICENSE
index 9cd87e5dce..9cd87e5dce 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/LICENSE
+++ b/deps/npm/node_modules/lodash/LICENSE
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/README.md b/deps/npm/node_modules/lodash/README.md
index fd98e5c989..fd98e5c989 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/README.md
+++ b/deps/npm/node_modules/lodash/README.md
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array.js b/deps/npm/node_modules/lodash/array.js
index e5121fa52e..e5121fa52e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array.js
+++ b/deps/npm/node_modules/lodash/array.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/chunk.js b/deps/npm/node_modules/lodash/array/chunk.js
index c8be1fb02d..c8be1fb02d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/chunk.js
+++ b/deps/npm/node_modules/lodash/array/chunk.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/compact.js b/deps/npm/node_modules/lodash/array/compact.js
index 1dc1c55e8f..1dc1c55e8f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/compact.js
+++ b/deps/npm/node_modules/lodash/array/compact.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/difference.js b/deps/npm/node_modules/lodash/array/difference.js
index 128932a146..128932a146 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/difference.js
+++ b/deps/npm/node_modules/lodash/array/difference.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/drop.js b/deps/npm/node_modules/lodash/array/drop.js
index 039a0b5fdc..039a0b5fdc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/drop.js
+++ b/deps/npm/node_modules/lodash/array/drop.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRight.js b/deps/npm/node_modules/lodash/array/dropRight.js
index 14b5eb6f0a..14b5eb6f0a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRight.js
+++ b/deps/npm/node_modules/lodash/array/dropRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRightWhile.js b/deps/npm/node_modules/lodash/array/dropRightWhile.js
index be158bd5fa..be158bd5fa 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropRightWhile.js
+++ b/deps/npm/node_modules/lodash/array/dropRightWhile.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropWhile.js b/deps/npm/node_modules/lodash/array/dropWhile.js
index d9eabae9fa..d9eabae9fa 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/dropWhile.js
+++ b/deps/npm/node_modules/lodash/array/dropWhile.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/fill.js b/deps/npm/node_modules/lodash/array/fill.js
index 2c8f6da71d..2c8f6da71d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/fill.js
+++ b/deps/npm/node_modules/lodash/array/fill.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/findIndex.js b/deps/npm/node_modules/lodash/array/findIndex.js
index 2a6b8e14ba..2a6b8e14ba 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/findIndex.js
+++ b/deps/npm/node_modules/lodash/array/findIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/findLastIndex.js b/deps/npm/node_modules/lodash/array/findLastIndex.js
index d6d8eca6df..d6d8eca6df 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/findLastIndex.js
+++ b/deps/npm/node_modules/lodash/array/findLastIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/first.js b/deps/npm/node_modules/lodash/array/first.js
index b3b9c79c7b..b3b9c79c7b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/first.js
+++ b/deps/npm/node_modules/lodash/array/first.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/flatten.js b/deps/npm/node_modules/lodash/array/flatten.js
index dc2eff8686..dc2eff8686 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/flatten.js
+++ b/deps/npm/node_modules/lodash/array/flatten.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/flattenDeep.js b/deps/npm/node_modules/lodash/array/flattenDeep.js
index 9f775febe2..9f775febe2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/flattenDeep.js
+++ b/deps/npm/node_modules/lodash/array/flattenDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/head.js b/deps/npm/node_modules/lodash/array/head.js
index 1961b08c7e..1961b08c7e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/head.js
+++ b/deps/npm/node_modules/lodash/array/head.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/indexOf.js b/deps/npm/node_modules/lodash/array/indexOf.js
index 4cfc682319..4cfc682319 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/indexOf.js
+++ b/deps/npm/node_modules/lodash/array/indexOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/initial.js b/deps/npm/node_modules/lodash/array/initial.js
index 59b7a7d96d..59b7a7d96d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/initial.js
+++ b/deps/npm/node_modules/lodash/array/initial.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/intersection.js b/deps/npm/node_modules/lodash/array/intersection.js
index f218432cfb..f218432cfb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/intersection.js
+++ b/deps/npm/node_modules/lodash/array/intersection.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/last.js b/deps/npm/node_modules/lodash/array/last.js
index 299af3146c..299af3146c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/last.js
+++ b/deps/npm/node_modules/lodash/array/last.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/lastIndexOf.js b/deps/npm/node_modules/lodash/array/lastIndexOf.js
index 02b806269b..02b806269b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/lastIndexOf.js
+++ b/deps/npm/node_modules/lodash/array/lastIndexOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/object.js b/deps/npm/node_modules/lodash/array/object.js
index f4a34531b1..f4a34531b1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/object.js
+++ b/deps/npm/node_modules/lodash/array/object.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/pull.js b/deps/npm/node_modules/lodash/array/pull.js
index 7bcbb4a63c..7bcbb4a63c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/pull.js
+++ b/deps/npm/node_modules/lodash/array/pull.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/pullAt.js b/deps/npm/node_modules/lodash/array/pullAt.js
index 4ca2476f0e..4ca2476f0e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/pullAt.js
+++ b/deps/npm/node_modules/lodash/array/pullAt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/remove.js b/deps/npm/node_modules/lodash/array/remove.js
index 0cf979bda0..0cf979bda0 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/remove.js
+++ b/deps/npm/node_modules/lodash/array/remove.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/rest.js b/deps/npm/node_modules/lodash/array/rest.js
index 9bfb734f1f..9bfb734f1f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/rest.js
+++ b/deps/npm/node_modules/lodash/array/rest.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/slice.js b/deps/npm/node_modules/lodash/array/slice.js
index 48ef1a1a28..48ef1a1a28 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/slice.js
+++ b/deps/npm/node_modules/lodash/array/slice.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedIndex.js b/deps/npm/node_modules/lodash/array/sortedIndex.js
index 6903bca437..6903bca437 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedIndex.js
+++ b/deps/npm/node_modules/lodash/array/sortedIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedLastIndex.js b/deps/npm/node_modules/lodash/array/sortedLastIndex.js
index 81a4a8689e..81a4a8689e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/sortedLastIndex.js
+++ b/deps/npm/node_modules/lodash/array/sortedLastIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/tail.js b/deps/npm/node_modules/lodash/array/tail.js
index c5dfe779d6..c5dfe779d6 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/tail.js
+++ b/deps/npm/node_modules/lodash/array/tail.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/take.js b/deps/npm/node_modules/lodash/array/take.js
index 875917a746..875917a746 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/take.js
+++ b/deps/npm/node_modules/lodash/array/take.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRight.js b/deps/npm/node_modules/lodash/array/takeRight.js
index 6e89c87480..6e89c87480 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRight.js
+++ b/deps/npm/node_modules/lodash/array/takeRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRightWhile.js b/deps/npm/node_modules/lodash/array/takeRightWhile.js
index 5464d13b7f..5464d13b7f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeRightWhile.js
+++ b/deps/npm/node_modules/lodash/array/takeRightWhile.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeWhile.js b/deps/npm/node_modules/lodash/array/takeWhile.js
index f7e28a1d42..f7e28a1d42 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/takeWhile.js
+++ b/deps/npm/node_modules/lodash/array/takeWhile.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/union.js b/deps/npm/node_modules/lodash/array/union.js
index 53cefe432d..53cefe432d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/union.js
+++ b/deps/npm/node_modules/lodash/array/union.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/uniq.js b/deps/npm/node_modules/lodash/array/uniq.js
index ae937efdf5..ae937efdf5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/uniq.js
+++ b/deps/npm/node_modules/lodash/array/uniq.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unique.js b/deps/npm/node_modules/lodash/array/unique.js
index 396de1b804..396de1b804 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unique.js
+++ b/deps/npm/node_modules/lodash/array/unique.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzip.js b/deps/npm/node_modules/lodash/array/unzip.js
index 0a539fa631..0a539fa631 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzip.js
+++ b/deps/npm/node_modules/lodash/array/unzip.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzipWith.js b/deps/npm/node_modules/lodash/array/unzipWith.js
index 324a2b1db2..324a2b1db2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/unzipWith.js
+++ b/deps/npm/node_modules/lodash/array/unzipWith.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/without.js b/deps/npm/node_modules/lodash/array/without.js
index 2ac3d1176e..2ac3d1176e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/without.js
+++ b/deps/npm/node_modules/lodash/array/without.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/xor.js b/deps/npm/node_modules/lodash/array/xor.js
index 04ef32aefd..04ef32aefd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/xor.js
+++ b/deps/npm/node_modules/lodash/array/xor.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zip.js b/deps/npm/node_modules/lodash/array/zip.js
index 53a6f69912..53a6f69912 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zip.js
+++ b/deps/npm/node_modules/lodash/array/zip.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js b/deps/npm/node_modules/lodash/array/zipObject.js
index dec7a211b7..dec7a211b7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js
+++ b/deps/npm/node_modules/lodash/array/zipObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipWith.js b/deps/npm/node_modules/lodash/array/zipWith.js
index ad103742cd..ad103742cd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipWith.js
+++ b/deps/npm/node_modules/lodash/array/zipWith.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain.js b/deps/npm/node_modules/lodash/chain.js
index 6439627f3d..6439627f3d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain.js
+++ b/deps/npm/node_modules/lodash/chain.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/chain.js b/deps/npm/node_modules/lodash/chain/chain.js
index 453ba1eb5e..453ba1eb5e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/chain.js
+++ b/deps/npm/node_modules/lodash/chain/chain.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/commit.js b/deps/npm/node_modules/lodash/chain/commit.js
index c732d1bf91..c732d1bf91 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/commit.js
+++ b/deps/npm/node_modules/lodash/chain/commit.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/concat.js b/deps/npm/node_modules/lodash/chain/concat.js
index 90607d1ee1..90607d1ee1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/concat.js
+++ b/deps/npm/node_modules/lodash/chain/concat.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/lodash.js b/deps/npm/node_modules/lodash/chain/lodash.js
index 1c3467efee..1c3467efee 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/lodash.js
+++ b/deps/npm/node_modules/lodash/chain/lodash.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/plant.js b/deps/npm/node_modules/lodash/chain/plant.js
index 04099f2386..04099f2386 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/plant.js
+++ b/deps/npm/node_modules/lodash/chain/plant.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/reverse.js b/deps/npm/node_modules/lodash/chain/reverse.js
index f72a64a19b..f72a64a19b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/reverse.js
+++ b/deps/npm/node_modules/lodash/chain/reverse.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/run.js b/deps/npm/node_modules/lodash/chain/run.js
index 5e751a2c32..5e751a2c32 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/run.js
+++ b/deps/npm/node_modules/lodash/chain/run.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/tap.js b/deps/npm/node_modules/lodash/chain/tap.js
index 3d0257ecfd..3d0257ecfd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/tap.js
+++ b/deps/npm/node_modules/lodash/chain/tap.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/thru.js b/deps/npm/node_modules/lodash/chain/thru.js
index a715780376..a715780376 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/thru.js
+++ b/deps/npm/node_modules/lodash/chain/thru.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toJSON.js b/deps/npm/node_modules/lodash/chain/toJSON.js
index 5e751a2c32..5e751a2c32 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toJSON.js
+++ b/deps/npm/node_modules/lodash/chain/toJSON.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toString.js b/deps/npm/node_modules/lodash/chain/toString.js
index c7bcbf9a54..c7bcbf9a54 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/toString.js
+++ b/deps/npm/node_modules/lodash/chain/toString.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/value.js b/deps/npm/node_modules/lodash/chain/value.js
index 5e751a2c32..5e751a2c32 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/value.js
+++ b/deps/npm/node_modules/lodash/chain/value.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/valueOf.js b/deps/npm/node_modules/lodash/chain/valueOf.js
index 5e751a2c32..5e751a2c32 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/valueOf.js
+++ b/deps/npm/node_modules/lodash/chain/valueOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperChain.js b/deps/npm/node_modules/lodash/chain/wrapperChain.js
index 38234819ba..38234819ba 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperChain.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperChain.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperCommit.js b/deps/npm/node_modules/lodash/chain/wrapperCommit.js
index c3d289804b..c3d289804b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperCommit.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperCommit.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperConcat.js b/deps/npm/node_modules/lodash/chain/wrapperConcat.js
index 799156cd83..799156cd83 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperConcat.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperConcat.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperPlant.js b/deps/npm/node_modules/lodash/chain/wrapperPlant.js
index 234fe41fec..234fe41fec 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperPlant.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperPlant.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperReverse.js b/deps/npm/node_modules/lodash/chain/wrapperReverse.js
index 6ba546de4e..6ba546de4e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperReverse.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperReverse.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperToString.js b/deps/npm/node_modules/lodash/chain/wrapperToString.js
index db975a5a35..db975a5a35 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperToString.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperToString.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperValue.js b/deps/npm/node_modules/lodash/chain/wrapperValue.js
index 2734e41c4a..2734e41c4a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/chain/wrapperValue.js
+++ b/deps/npm/node_modules/lodash/chain/wrapperValue.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection.js b/deps/npm/node_modules/lodash/collection.js
index 03388571c3..03388571c3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection.js
+++ b/deps/npm/node_modules/lodash/collection.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/all.js b/deps/npm/node_modules/lodash/collection/all.js
index d0839f77ed..d0839f77ed 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/all.js
+++ b/deps/npm/node_modules/lodash/collection/all.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/any.js b/deps/npm/node_modules/lodash/collection/any.js
index 900ac25e83..900ac25e83 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/any.js
+++ b/deps/npm/node_modules/lodash/collection/any.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/at.js b/deps/npm/node_modules/lodash/collection/at.js
index 29236e577d..29236e577d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/at.js
+++ b/deps/npm/node_modules/lodash/collection/at.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/collect.js b/deps/npm/node_modules/lodash/collection/collect.js
index 0d1e1abfaf..0d1e1abfaf 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/collect.js
+++ b/deps/npm/node_modules/lodash/collection/collect.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/contains.js b/deps/npm/node_modules/lodash/collection/contains.js
index 594722af59..594722af59 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/contains.js
+++ b/deps/npm/node_modules/lodash/collection/contains.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/countBy.js b/deps/npm/node_modules/lodash/collection/countBy.js
index e97dbb749d..e97dbb749d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/countBy.js
+++ b/deps/npm/node_modules/lodash/collection/countBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/detect.js b/deps/npm/node_modules/lodash/collection/detect.js
index 2fb6303efb..2fb6303efb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/detect.js
+++ b/deps/npm/node_modules/lodash/collection/detect.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/each.js b/deps/npm/node_modules/lodash/collection/each.js
index 8800f42046..8800f42046 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/each.js
+++ b/deps/npm/node_modules/lodash/collection/each.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/eachRight.js b/deps/npm/node_modules/lodash/collection/eachRight.js
index 3252b2aba3..3252b2aba3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/eachRight.js
+++ b/deps/npm/node_modules/lodash/collection/eachRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/every.js b/deps/npm/node_modules/lodash/collection/every.js
index 5a2d0f5dd4..5a2d0f5dd4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/every.js
+++ b/deps/npm/node_modules/lodash/collection/every.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/filter.js b/deps/npm/node_modules/lodash/collection/filter.js
index 7620aa7619..7620aa7619 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/filter.js
+++ b/deps/npm/node_modules/lodash/collection/filter.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/find.js b/deps/npm/node_modules/lodash/collection/find.js
index 7358cfe86c..7358cfe86c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/find.js
+++ b/deps/npm/node_modules/lodash/collection/find.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findLast.js b/deps/npm/node_modules/lodash/collection/findLast.js
index 75dbadca24..75dbadca24 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findLast.js
+++ b/deps/npm/node_modules/lodash/collection/findLast.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findWhere.js b/deps/npm/node_modules/lodash/collection/findWhere.js
index 2d620655ed..2d620655ed 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/findWhere.js
+++ b/deps/npm/node_modules/lodash/collection/findWhere.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldl.js b/deps/npm/node_modules/lodash/collection/foldl.js
index 26f53cf7b2..26f53cf7b2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldl.js
+++ b/deps/npm/node_modules/lodash/collection/foldl.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldr.js b/deps/npm/node_modules/lodash/collection/foldr.js
index 8fb199eda6..8fb199eda6 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/foldr.js
+++ b/deps/npm/node_modules/lodash/collection/foldr.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEach.js b/deps/npm/node_modules/lodash/collection/forEach.js
index 05a8e2140e..05a8e2140e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEach.js
+++ b/deps/npm/node_modules/lodash/collection/forEach.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEachRight.js b/deps/npm/node_modules/lodash/collection/forEachRight.js
index 3499711002..3499711002 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/forEachRight.js
+++ b/deps/npm/node_modules/lodash/collection/forEachRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/groupBy.js b/deps/npm/node_modules/lodash/collection/groupBy.js
index a925c894a0..a925c894a0 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/groupBy.js
+++ b/deps/npm/node_modules/lodash/collection/groupBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/include.js b/deps/npm/node_modules/lodash/collection/include.js
index 594722af59..594722af59 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/include.js
+++ b/deps/npm/node_modules/lodash/collection/include.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/includes.js b/deps/npm/node_modules/lodash/collection/includes.js
index 329486a530..329486a530 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/includes.js
+++ b/deps/npm/node_modules/lodash/collection/includes.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/indexBy.js b/deps/npm/node_modules/lodash/collection/indexBy.js
index 34a941e729..34a941e729 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/indexBy.js
+++ b/deps/npm/node_modules/lodash/collection/indexBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/inject.js b/deps/npm/node_modules/lodash/collection/inject.js
index 26f53cf7b2..26f53cf7b2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/inject.js
+++ b/deps/npm/node_modules/lodash/collection/inject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/invoke.js b/deps/npm/node_modules/lodash/collection/invoke.js
index 6e71721957..6e71721957 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/invoke.js
+++ b/deps/npm/node_modules/lodash/collection/invoke.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/map.js b/deps/npm/node_modules/lodash/collection/map.js
index 5381110df1..5381110df1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/map.js
+++ b/deps/npm/node_modules/lodash/collection/map.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/max.js b/deps/npm/node_modules/lodash/collection/max.js
index bb1d213c33..bb1d213c33 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/max.js
+++ b/deps/npm/node_modules/lodash/collection/max.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/min.js b/deps/npm/node_modules/lodash/collection/min.js
index eef13d02b8..eef13d02b8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/min.js
+++ b/deps/npm/node_modules/lodash/collection/min.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/partition.js b/deps/npm/node_modules/lodash/collection/partition.js
index ee35f27d93..ee35f27d93 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/partition.js
+++ b/deps/npm/node_modules/lodash/collection/partition.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/pluck.js b/deps/npm/node_modules/lodash/collection/pluck.js
index 5ee1ec84ee..5ee1ec84ee 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/pluck.js
+++ b/deps/npm/node_modules/lodash/collection/pluck.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduce.js b/deps/npm/node_modules/lodash/collection/reduce.js
index 5d5e8c9169..5d5e8c9169 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduce.js
+++ b/deps/npm/node_modules/lodash/collection/reduce.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduceRight.js b/deps/npm/node_modules/lodash/collection/reduceRight.js
index 5a5753b9c2..5a5753b9c2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reduceRight.js
+++ b/deps/npm/node_modules/lodash/collection/reduceRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reject.js b/deps/npm/node_modules/lodash/collection/reject.js
index 55924539b5..55924539b5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/reject.js
+++ b/deps/npm/node_modules/lodash/collection/reject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sample.js b/deps/npm/node_modules/lodash/collection/sample.js
index 8e01533016..8e01533016 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sample.js
+++ b/deps/npm/node_modules/lodash/collection/sample.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/select.js b/deps/npm/node_modules/lodash/collection/select.js
index ade80f6fba..ade80f6fba 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/select.js
+++ b/deps/npm/node_modules/lodash/collection/select.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/shuffle.js b/deps/npm/node_modules/lodash/collection/shuffle.js
index 949689c5fc..949689c5fc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/shuffle.js
+++ b/deps/npm/node_modules/lodash/collection/shuffle.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/size.js b/deps/npm/node_modules/lodash/collection/size.js
index 78dcf4ce9b..78dcf4ce9b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/size.js
+++ b/deps/npm/node_modules/lodash/collection/size.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/some.js b/deps/npm/node_modules/lodash/collection/some.js
index d0b09a4746..d0b09a4746 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/some.js
+++ b/deps/npm/node_modules/lodash/collection/some.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortBy.js b/deps/npm/node_modules/lodash/collection/sortBy.js
index 4401c777f4..4401c777f4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortBy.js
+++ b/deps/npm/node_modules/lodash/collection/sortBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByAll.js b/deps/npm/node_modules/lodash/collection/sortByAll.js
index 4766c20985..4766c20985 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByAll.js
+++ b/deps/npm/node_modules/lodash/collection/sortByAll.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByOrder.js b/deps/npm/node_modules/lodash/collection/sortByOrder.js
index 8b4fc19687..8b4fc19687 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sortByOrder.js
+++ b/deps/npm/node_modules/lodash/collection/sortByOrder.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sum.js b/deps/npm/node_modules/lodash/collection/sum.js
index a2e93808ae..a2e93808ae 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/sum.js
+++ b/deps/npm/node_modules/lodash/collection/sum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/where.js b/deps/npm/node_modules/lodash/collection/where.js
index f603bf8ce4..f603bf8ce4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/collection/where.js
+++ b/deps/npm/node_modules/lodash/collection/where.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/date.js b/deps/npm/node_modules/lodash/date.js
index 195366e777..195366e777 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/date.js
+++ b/deps/npm/node_modules/lodash/date.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/date/now.js b/deps/npm/node_modules/lodash/date/now.js
index ffe3060e5b..ffe3060e5b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/date/now.js
+++ b/deps/npm/node_modules/lodash/date/now.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function.js b/deps/npm/node_modules/lodash/function.js
index 71f8ebeb27..71f8ebeb27 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function.js
+++ b/deps/npm/node_modules/lodash/function.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/after.js b/deps/npm/node_modules/lodash/function/after.js
index 96a51fdbcf..96a51fdbcf 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/after.js
+++ b/deps/npm/node_modules/lodash/function/after.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/ary.js b/deps/npm/node_modules/lodash/function/ary.js
index 53a6913e3f..53a6913e3f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/ary.js
+++ b/deps/npm/node_modules/lodash/function/ary.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/backflow.js b/deps/npm/node_modules/lodash/function/backflow.js
index 1954e94239..1954e94239 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/backflow.js
+++ b/deps/npm/node_modules/lodash/function/backflow.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/before.js b/deps/npm/node_modules/lodash/function/before.js
index 3d94216825..3d94216825 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/before.js
+++ b/deps/npm/node_modules/lodash/function/before.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bind.js b/deps/npm/node_modules/lodash/function/bind.js
index 0de126ae35..0de126ae35 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bind.js
+++ b/deps/npm/node_modules/lodash/function/bind.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindAll.js b/deps/npm/node_modules/lodash/function/bindAll.js
index a09e948524..a09e948524 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindAll.js
+++ b/deps/npm/node_modules/lodash/function/bindAll.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindKey.js b/deps/npm/node_modules/lodash/function/bindKey.js
index b787fe7022..b787fe7022 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/bindKey.js
+++ b/deps/npm/node_modules/lodash/function/bindKey.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/compose.js b/deps/npm/node_modules/lodash/function/compose.js
index 1954e94239..1954e94239 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/compose.js
+++ b/deps/npm/node_modules/lodash/function/compose.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/curry.js b/deps/npm/node_modules/lodash/function/curry.js
index b7db3fdad8..b7db3fdad8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/curry.js
+++ b/deps/npm/node_modules/lodash/function/curry.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/curryRight.js b/deps/npm/node_modules/lodash/function/curryRight.js
index 11c540393b..11c540393b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/curryRight.js
+++ b/deps/npm/node_modules/lodash/function/curryRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/debounce.js b/deps/npm/node_modules/lodash/function/debounce.js
index 163af90f38..163af90f38 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/debounce.js
+++ b/deps/npm/node_modules/lodash/function/debounce.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/defer.js b/deps/npm/node_modules/lodash/function/defer.js
index 3accbf9b10..3accbf9b10 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/defer.js
+++ b/deps/npm/node_modules/lodash/function/defer.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/delay.js b/deps/npm/node_modules/lodash/function/delay.js
index d5eef27a9f..d5eef27a9f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/delay.js
+++ b/deps/npm/node_modules/lodash/function/delay.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/flow.js b/deps/npm/node_modules/lodash/function/flow.js
index a435a3d878..a435a3d878 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/flow.js
+++ b/deps/npm/node_modules/lodash/function/flow.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/flowRight.js b/deps/npm/node_modules/lodash/function/flowRight.js
index 23b9d76b58..23b9d76b58 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/flowRight.js
+++ b/deps/npm/node_modules/lodash/function/flowRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/memoize.js b/deps/npm/node_modules/lodash/function/memoize.js
index f3b8d69920..f3b8d69920 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/memoize.js
+++ b/deps/npm/node_modules/lodash/function/memoize.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/modArgs.js b/deps/npm/node_modules/lodash/function/modArgs.js
index 49b9b5e682..49b9b5e682 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/modArgs.js
+++ b/deps/npm/node_modules/lodash/function/modArgs.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/negate.js b/deps/npm/node_modules/lodash/function/negate.js
index 82479390ad..82479390ad 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/negate.js
+++ b/deps/npm/node_modules/lodash/function/negate.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/once.js b/deps/npm/node_modules/lodash/function/once.js
index 0b5bd853cb..0b5bd853cb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/once.js
+++ b/deps/npm/node_modules/lodash/function/once.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/partial.js b/deps/npm/node_modules/lodash/function/partial.js
index fb1d04fb6c..fb1d04fb6c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/partial.js
+++ b/deps/npm/node_modules/lodash/function/partial.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/partialRight.js b/deps/npm/node_modules/lodash/function/partialRight.js
index 634e6a4c40..634e6a4c40 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/partialRight.js
+++ b/deps/npm/node_modules/lodash/function/partialRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/rearg.js b/deps/npm/node_modules/lodash/function/rearg.js
index f2bd9c41ec..f2bd9c41ec 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/rearg.js
+++ b/deps/npm/node_modules/lodash/function/rearg.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/restParam.js b/deps/npm/node_modules/lodash/function/restParam.js
index 8852286dd5..8852286dd5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/restParam.js
+++ b/deps/npm/node_modules/lodash/function/restParam.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/spread.js b/deps/npm/node_modules/lodash/function/spread.js
index 780f5042ad..780f5042ad 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/spread.js
+++ b/deps/npm/node_modules/lodash/function/spread.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/throttle.js b/deps/npm/node_modules/lodash/function/throttle.js
index 1dd00eab75..1dd00eab75 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/throttle.js
+++ b/deps/npm/node_modules/lodash/function/throttle.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/wrap.js b/deps/npm/node_modules/lodash/function/wrap.js
index 6a33c5ec6f..6a33c5ec6f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/function/wrap.js
+++ b/deps/npm/node_modules/lodash/function/wrap.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/index.js b/deps/npm/node_modules/lodash/index.js
index 5f17319b9b..5f17319b9b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/index.js
+++ b/deps/npm/node_modules/lodash/index.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LazyWrapper.js b/deps/npm/node_modules/lodash/internal/LazyWrapper.js
index d9c8080495..d9c8080495 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LazyWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/LazyWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LodashWrapper.js b/deps/npm/node_modules/lodash/internal/LodashWrapper.js
index ab06bc7614..ab06bc7614 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/LodashWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/LodashWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/MapCache.js b/deps/npm/node_modules/lodash/internal/MapCache.js
index 1d7ab98171..1d7ab98171 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/MapCache.js
+++ b/deps/npm/node_modules/lodash/internal/MapCache.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/SetCache.js b/deps/npm/node_modules/lodash/internal/SetCache.js
index ae29c55bf3..ae29c55bf3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/SetCache.js
+++ b/deps/npm/node_modules/lodash/internal/SetCache.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayConcat.js b/deps/npm/node_modules/lodash/internal/arrayConcat.js
index 0d131e3999..0d131e3999 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayConcat.js
+++ b/deps/npm/node_modules/lodash/internal/arrayConcat.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayCopy.js b/deps/npm/node_modules/lodash/internal/arrayCopy.js
index fa7067f9fa..fa7067f9fa 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayCopy.js
+++ b/deps/npm/node_modules/lodash/internal/arrayCopy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEach.js b/deps/npm/node_modules/lodash/internal/arrayEach.js
index 0f51382424..0f51382424 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEach.js
+++ b/deps/npm/node_modules/lodash/internal/arrayEach.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEachRight.js b/deps/npm/node_modules/lodash/internal/arrayEachRight.js
index 367e066d80..367e066d80 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEachRight.js
+++ b/deps/npm/node_modules/lodash/internal/arrayEachRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEvery.js b/deps/npm/node_modules/lodash/internal/arrayEvery.js
index 3fe6ed2771..3fe6ed2771 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayEvery.js
+++ b/deps/npm/node_modules/lodash/internal/arrayEvery.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayExtremum.js b/deps/npm/node_modules/lodash/internal/arrayExtremum.js
index e45badbda1..e45badbda1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayExtremum.js
+++ b/deps/npm/node_modules/lodash/internal/arrayExtremum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayFilter.js b/deps/npm/node_modules/lodash/internal/arrayFilter.js
index e14fe06900..e14fe06900 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayFilter.js
+++ b/deps/npm/node_modules/lodash/internal/arrayFilter.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayMap.js b/deps/npm/node_modules/lodash/internal/arrayMap.js
index 777c7c9f35..777c7c9f35 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayMap.js
+++ b/deps/npm/node_modules/lodash/internal/arrayMap.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayPush.js b/deps/npm/node_modules/lodash/internal/arrayPush.js
index 7d742b383e..7d742b383e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayPush.js
+++ b/deps/npm/node_modules/lodash/internal/arrayPush.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduce.js b/deps/npm/node_modules/lodash/internal/arrayReduce.js
index f948c8e528..f948c8e528 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduce.js
+++ b/deps/npm/node_modules/lodash/internal/arrayReduce.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduceRight.js b/deps/npm/node_modules/lodash/internal/arrayReduceRight.js
index d4d68dff01..d4d68dff01 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arrayReduceRight.js
+++ b/deps/npm/node_modules/lodash/internal/arrayReduceRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySome.js b/deps/npm/node_modules/lodash/internal/arraySome.js
index f7a0bb58ef..f7a0bb58ef 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySome.js
+++ b/deps/npm/node_modules/lodash/internal/arraySome.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySum.js b/deps/npm/node_modules/lodash/internal/arraySum.js
index 0e40c917e8..0e40c917e8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/arraySum.js
+++ b/deps/npm/node_modules/lodash/internal/arraySum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignDefaults.js b/deps/npm/node_modules/lodash/internal/assignDefaults.js
index affd993ad1..affd993ad1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignDefaults.js
+++ b/deps/npm/node_modules/lodash/internal/assignDefaults.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignOwnDefaults.js b/deps/npm/node_modules/lodash/internal/assignOwnDefaults.js
index 682c460d72..682c460d72 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignOwnDefaults.js
+++ b/deps/npm/node_modules/lodash/internal/assignOwnDefaults.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js b/deps/npm/node_modules/lodash/internal/assignWith.js
index d2b261ad2b..d2b261ad2b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/assignWith.js
+++ b/deps/npm/node_modules/lodash/internal/assignWith.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAssign.js b/deps/npm/node_modules/lodash/internal/baseAssign.js
index cfad6e0c30..cfad6e0c30 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAssign.js
+++ b/deps/npm/node_modules/lodash/internal/baseAssign.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js b/deps/npm/node_modules/lodash/internal/baseAt.js
index bbafd1d5ad..bbafd1d5ad 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseAt.js
+++ b/deps/npm/node_modules/lodash/internal/baseAt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCallback.js b/deps/npm/node_modules/lodash/internal/baseCallback.js
index 67fe087c4a..67fe087c4a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCallback.js
+++ b/deps/npm/node_modules/lodash/internal/baseCallback.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseClone.js b/deps/npm/node_modules/lodash/internal/baseClone.js
index ebd6649f9e..ebd6649f9e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseClone.js
+++ b/deps/npm/node_modules/lodash/internal/baseClone.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCompareAscending.js b/deps/npm/node_modules/lodash/internal/baseCompareAscending.js
index c8259c72dc..c8259c72dc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCompareAscending.js
+++ b/deps/npm/node_modules/lodash/internal/baseCompareAscending.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCopy.js b/deps/npm/node_modules/lodash/internal/baseCopy.js
index 15059f312a..15059f312a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCopy.js
+++ b/deps/npm/node_modules/lodash/internal/baseCopy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCreate.js b/deps/npm/node_modules/lodash/internal/baseCreate.js
index be5e1d9d48..be5e1d9d48 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseCreate.js
+++ b/deps/npm/node_modules/lodash/internal/baseCreate.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDelay.js b/deps/npm/node_modules/lodash/internal/baseDelay.js
index c405c37b69..c405c37b69 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDelay.js
+++ b/deps/npm/node_modules/lodash/internal/baseDelay.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDifference.js b/deps/npm/node_modules/lodash/internal/baseDifference.js
index 40da1b62ad..40da1b62ad 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseDifference.js
+++ b/deps/npm/node_modules/lodash/internal/baseDifference.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEach.js b/deps/npm/node_modules/lodash/internal/baseEach.js
index 09ef5a3a4c..09ef5a3a4c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEach.js
+++ b/deps/npm/node_modules/lodash/internal/baseEach.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEachRight.js b/deps/npm/node_modules/lodash/internal/baseEachRight.js
index f0520a8b4f..f0520a8b4f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEachRight.js
+++ b/deps/npm/node_modules/lodash/internal/baseEachRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEvery.js b/deps/npm/node_modules/lodash/internal/baseEvery.js
index a1fc1f3512..a1fc1f3512 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseEvery.js
+++ b/deps/npm/node_modules/lodash/internal/baseEvery.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseExtremum.js b/deps/npm/node_modules/lodash/internal/baseExtremum.js
index b0efff6f9c..b0efff6f9c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseExtremum.js
+++ b/deps/npm/node_modules/lodash/internal/baseExtremum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFill.js b/deps/npm/node_modules/lodash/internal/baseFill.js
index ef1a2fa162..ef1a2fa162 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFill.js
+++ b/deps/npm/node_modules/lodash/internal/baseFill.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFilter.js b/deps/npm/node_modules/lodash/internal/baseFilter.js
index 27773a47e1..27773a47e1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFilter.js
+++ b/deps/npm/node_modules/lodash/internal/baseFilter.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFind.js b/deps/npm/node_modules/lodash/internal/baseFind.js
index be5848fbf1..be5848fbf1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFind.js
+++ b/deps/npm/node_modules/lodash/internal/baseFind.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFindIndex.js b/deps/npm/node_modules/lodash/internal/baseFindIndex.js
index 7d4b502485..7d4b502485 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFindIndex.js
+++ b/deps/npm/node_modules/lodash/internal/baseFindIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFlatten.js b/deps/npm/node_modules/lodash/internal/baseFlatten.js
index 7443233220..7443233220 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFlatten.js
+++ b/deps/npm/node_modules/lodash/internal/baseFlatten.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFor.js b/deps/npm/node_modules/lodash/internal/baseFor.js
index 94ee03f925..94ee03f925 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFor.js
+++ b/deps/npm/node_modules/lodash/internal/baseFor.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForIn.js b/deps/npm/node_modules/lodash/internal/baseForIn.js
index 47d622c384..47d622c384 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForIn.js
+++ b/deps/npm/node_modules/lodash/internal/baseForIn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwn.js b/deps/npm/node_modules/lodash/internal/baseForOwn.js
index bef4d4c35f..bef4d4c35f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwn.js
+++ b/deps/npm/node_modules/lodash/internal/baseForOwn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwnRight.js b/deps/npm/node_modules/lodash/internal/baseForOwnRight.js
index bb916bc75a..bb916bc75a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForOwnRight.js
+++ b/deps/npm/node_modules/lodash/internal/baseForOwnRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForRight.js b/deps/npm/node_modules/lodash/internal/baseForRight.js
index 5ddd191325..5ddd191325 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseForRight.js
+++ b/deps/npm/node_modules/lodash/internal/baseForRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFunctions.js b/deps/npm/node_modules/lodash/internal/baseFunctions.js
index d56ea9c5dc..d56ea9c5dc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseFunctions.js
+++ b/deps/npm/node_modules/lodash/internal/baseFunctions.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseGet.js b/deps/npm/node_modules/lodash/internal/baseGet.js
index ad9b1ee11b..ad9b1ee11b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseGet.js
+++ b/deps/npm/node_modules/lodash/internal/baseGet.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIndexOf.js b/deps/npm/node_modules/lodash/internal/baseIndexOf.js
index 6b479bce1e..6b479bce1e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIndexOf.js
+++ b/deps/npm/node_modules/lodash/internal/baseIndexOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqual.js b/deps/npm/node_modules/lodash/internal/baseIsEqual.js
index 87e14ac556..87e14ac556 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqual.js
+++ b/deps/npm/node_modules/lodash/internal/baseIsEqual.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqualDeep.js b/deps/npm/node_modules/lodash/internal/baseIsEqualDeep.js
index f1dbffe891..f1dbffe891 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsEqualDeep.js
+++ b/deps/npm/node_modules/lodash/internal/baseIsEqualDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsFunction.js b/deps/npm/node_modules/lodash/internal/baseIsFunction.js
index cd92db30f3..cd92db30f3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsFunction.js
+++ b/deps/npm/node_modules/lodash/internal/baseIsFunction.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsMatch.js b/deps/npm/node_modules/lodash/internal/baseIsMatch.js
index ea48bb6567..ea48bb6567 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseIsMatch.js
+++ b/deps/npm/node_modules/lodash/internal/baseIsMatch.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseLodash.js b/deps/npm/node_modules/lodash/internal/baseLodash.js
index 15b79d3f7b..15b79d3f7b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseLodash.js
+++ b/deps/npm/node_modules/lodash/internal/baseLodash.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMap.js b/deps/npm/node_modules/lodash/internal/baseMap.js
index 2906b518f9..2906b518f9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMap.js
+++ b/deps/npm/node_modules/lodash/internal/baseMap.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatches.js b/deps/npm/node_modules/lodash/internal/baseMatches.js
index 5f76c67dcd..5f76c67dcd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatches.js
+++ b/deps/npm/node_modules/lodash/internal/baseMatches.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatchesProperty.js b/deps/npm/node_modules/lodash/internal/baseMatchesProperty.js
index 8f9005ce0f..8f9005ce0f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMatchesProperty.js
+++ b/deps/npm/node_modules/lodash/internal/baseMatchesProperty.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMerge.js b/deps/npm/node_modules/lodash/internal/baseMerge.js
index ab81900869..ab81900869 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMerge.js
+++ b/deps/npm/node_modules/lodash/internal/baseMerge.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMergeDeep.js b/deps/npm/node_modules/lodash/internal/baseMergeDeep.js
index f8aeac5916..f8aeac5916 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseMergeDeep.js
+++ b/deps/npm/node_modules/lodash/internal/baseMergeDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseProperty.js b/deps/npm/node_modules/lodash/internal/baseProperty.js
index e515941c16..e515941c16 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseProperty.js
+++ b/deps/npm/node_modules/lodash/internal/baseProperty.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePropertyDeep.js b/deps/npm/node_modules/lodash/internal/basePropertyDeep.js
index 1b6ce40a17..1b6ce40a17 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePropertyDeep.js
+++ b/deps/npm/node_modules/lodash/internal/basePropertyDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePullAt.js b/deps/npm/node_modules/lodash/internal/basePullAt.js
index 6c4ff84200..6c4ff84200 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/basePullAt.js
+++ b/deps/npm/node_modules/lodash/internal/basePullAt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseRandom.js b/deps/npm/node_modules/lodash/internal/baseRandom.js
index fa3326cd17..fa3326cd17 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseRandom.js
+++ b/deps/npm/node_modules/lodash/internal/baseRandom.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseReduce.js b/deps/npm/node_modules/lodash/internal/baseReduce.js
index 5e6ae555f9..5e6ae555f9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseReduce.js
+++ b/deps/npm/node_modules/lodash/internal/baseReduce.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSetData.js b/deps/npm/node_modules/lodash/internal/baseSetData.js
index 5c98622d8d..5c98622d8d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSetData.js
+++ b/deps/npm/node_modules/lodash/internal/baseSetData.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSlice.js b/deps/npm/node_modules/lodash/internal/baseSlice.js
index 9d1012efa8..9d1012efa8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSlice.js
+++ b/deps/npm/node_modules/lodash/internal/baseSlice.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSome.js b/deps/npm/node_modules/lodash/internal/baseSome.js
index 39a005880d..39a005880d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSome.js
+++ b/deps/npm/node_modules/lodash/internal/baseSome.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortBy.js b/deps/npm/node_modules/lodash/internal/baseSortBy.js
index fec0afeb78..fec0afeb78 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortBy.js
+++ b/deps/npm/node_modules/lodash/internal/baseSortBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortByOrder.js b/deps/npm/node_modules/lodash/internal/baseSortByOrder.js
index 0a9ef20796..0a9ef20796 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSortByOrder.js
+++ b/deps/npm/node_modules/lodash/internal/baseSortByOrder.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSum.js b/deps/npm/node_modules/lodash/internal/baseSum.js
index 019e5ae6ee..019e5ae6ee 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseSum.js
+++ b/deps/npm/node_modules/lodash/internal/baseSum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseToString.js b/deps/npm/node_modules/lodash/internal/baseToString.js
index b802640b5d..b802640b5d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseToString.js
+++ b/deps/npm/node_modules/lodash/internal/baseToString.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseUniq.js b/deps/npm/node_modules/lodash/internal/baseUniq.js
index a043443f2e..a043443f2e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseUniq.js
+++ b/deps/npm/node_modules/lodash/internal/baseUniq.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseValues.js b/deps/npm/node_modules/lodash/internal/baseValues.js
index e8d3ac72fe..e8d3ac72fe 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseValues.js
+++ b/deps/npm/node_modules/lodash/internal/baseValues.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWhile.js b/deps/npm/node_modules/lodash/internal/baseWhile.js
index c24e9bd9d9..c24e9bd9d9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWhile.js
+++ b/deps/npm/node_modules/lodash/internal/baseWhile.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWrapperValue.js b/deps/npm/node_modules/lodash/internal/baseWrapperValue.js
index 629c01fd14..629c01fd14 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/baseWrapperValue.js
+++ b/deps/npm/node_modules/lodash/internal/baseWrapperValue.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndex.js b/deps/npm/node_modules/lodash/internal/binaryIndex.js
index af419a26f2..af419a26f2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndex.js
+++ b/deps/npm/node_modules/lodash/internal/binaryIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndexBy.js b/deps/npm/node_modules/lodash/internal/binaryIndexBy.js
index 767cbd216e..767cbd216e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/binaryIndexBy.js
+++ b/deps/npm/node_modules/lodash/internal/binaryIndexBy.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bindCallback.js b/deps/npm/node_modules/lodash/internal/bindCallback.js
index cdc7f49aea..cdc7f49aea 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bindCallback.js
+++ b/deps/npm/node_modules/lodash/internal/bindCallback.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bufferClone.js b/deps/npm/node_modules/lodash/internal/bufferClone.js
index f3c12b8c12..f3c12b8c12 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/bufferClone.js
+++ b/deps/npm/node_modules/lodash/internal/bufferClone.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cacheIndexOf.js b/deps/npm/node_modules/lodash/internal/cacheIndexOf.js
index 09f698ab8b..09f698ab8b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cacheIndexOf.js
+++ b/deps/npm/node_modules/lodash/internal/cacheIndexOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cachePush.js b/deps/npm/node_modules/lodash/internal/cachePush.js
index ba03a1528a..ba03a1528a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/cachePush.js
+++ b/deps/npm/node_modules/lodash/internal/cachePush.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsLeftIndex.js b/deps/npm/node_modules/lodash/internal/charsLeftIndex.js
index a6d1d81c03..a6d1d81c03 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsLeftIndex.js
+++ b/deps/npm/node_modules/lodash/internal/charsLeftIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsRightIndex.js b/deps/npm/node_modules/lodash/internal/charsRightIndex.js
index 1251dcb2a2..1251dcb2a2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/charsRightIndex.js
+++ b/deps/npm/node_modules/lodash/internal/charsRightIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareAscending.js b/deps/npm/node_modules/lodash/internal/compareAscending.js
index f17b11750e..f17b11750e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareAscending.js
+++ b/deps/npm/node_modules/lodash/internal/compareAscending.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareMultiple.js b/deps/npm/node_modules/lodash/internal/compareMultiple.js
index b2139f778d..b2139f778d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/compareMultiple.js
+++ b/deps/npm/node_modules/lodash/internal/compareMultiple.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgs.js b/deps/npm/node_modules/lodash/internal/composeArgs.js
index cd5a2fedd3..cd5a2fedd3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgs.js
+++ b/deps/npm/node_modules/lodash/internal/composeArgs.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgsRight.js b/deps/npm/node_modules/lodash/internal/composeArgsRight.js
index 38ab1392b2..38ab1392b2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/composeArgsRight.js
+++ b/deps/npm/node_modules/lodash/internal/composeArgsRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAggregator.js b/deps/npm/node_modules/lodash/internal/createAggregator.js
index c3d3cec6e1..c3d3cec6e1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAggregator.js
+++ b/deps/npm/node_modules/lodash/internal/createAggregator.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAssigner.js b/deps/npm/node_modules/lodash/internal/createAssigner.js
index ea5a5a495f..ea5a5a495f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createAssigner.js
+++ b/deps/npm/node_modules/lodash/internal/createAssigner.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseEach.js b/deps/npm/node_modules/lodash/internal/createBaseEach.js
index b55c39ba1c..b55c39ba1c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseEach.js
+++ b/deps/npm/node_modules/lodash/internal/createBaseEach.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseFor.js b/deps/npm/node_modules/lodash/internal/createBaseFor.js
index 3c2cac510e..3c2cac510e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBaseFor.js
+++ b/deps/npm/node_modules/lodash/internal/createBaseFor.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBindWrapper.js b/deps/npm/node_modules/lodash/internal/createBindWrapper.js
index 54086ee88c..54086ee88c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createBindWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/createBindWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCache.js b/deps/npm/node_modules/lodash/internal/createCache.js
index 025e5662ab..025e5662ab 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCache.js
+++ b/deps/npm/node_modules/lodash/internal/createCache.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCompounder.js b/deps/npm/node_modules/lodash/internal/createCompounder.js
index 4c755120c6..4c755120c6 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCompounder.js
+++ b/deps/npm/node_modules/lodash/internal/createCompounder.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCtorWrapper.js b/deps/npm/node_modules/lodash/internal/createCtorWrapper.js
index ffbee80358..ffbee80358 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCtorWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/createCtorWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCurry.js b/deps/npm/node_modules/lodash/internal/createCurry.js
index e5ced0e28e..e5ced0e28e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createCurry.js
+++ b/deps/npm/node_modules/lodash/internal/createCurry.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createDefaults.js b/deps/npm/node_modules/lodash/internal/createDefaults.js
index 5663bcb4a7..5663bcb4a7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createDefaults.js
+++ b/deps/npm/node_modules/lodash/internal/createDefaults.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createExtremum.js b/deps/npm/node_modules/lodash/internal/createExtremum.js
index 5c4003e52f..5c4003e52f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createExtremum.js
+++ b/deps/npm/node_modules/lodash/internal/createExtremum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFind.js b/deps/npm/node_modules/lodash/internal/createFind.js
index 29bf580fb5..29bf580fb5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFind.js
+++ b/deps/npm/node_modules/lodash/internal/createFind.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindIndex.js b/deps/npm/node_modules/lodash/internal/createFindIndex.js
index 3947bea9ae..3947bea9ae 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindIndex.js
+++ b/deps/npm/node_modules/lodash/internal/createFindIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindKey.js b/deps/npm/node_modules/lodash/internal/createFindKey.js
index 0ce85e4cbb..0ce85e4cbb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFindKey.js
+++ b/deps/npm/node_modules/lodash/internal/createFindKey.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFlow.js b/deps/npm/node_modules/lodash/internal/createFlow.js
index 52ab38822e..52ab38822e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createFlow.js
+++ b/deps/npm/node_modules/lodash/internal/createFlow.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForEach.js b/deps/npm/node_modules/lodash/internal/createForEach.js
index 2aad11c5f7..2aad11c5f7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForEach.js
+++ b/deps/npm/node_modules/lodash/internal/createForEach.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForIn.js b/deps/npm/node_modules/lodash/internal/createForIn.js
index f63ffa0baf..f63ffa0baf 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForIn.js
+++ b/deps/npm/node_modules/lodash/internal/createForIn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForOwn.js b/deps/npm/node_modules/lodash/internal/createForOwn.js
index b9a83c3b52..b9a83c3b52 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createForOwn.js
+++ b/deps/npm/node_modules/lodash/internal/createForOwn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createHybridWrapper.js b/deps/npm/node_modules/lodash/internal/createHybridWrapper.js
index 5382fa0219..5382fa0219 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createHybridWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/createHybridWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createObjectMapper.js b/deps/npm/node_modules/lodash/internal/createObjectMapper.js
index 06d6a87399..06d6a87399 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createObjectMapper.js
+++ b/deps/npm/node_modules/lodash/internal/createObjectMapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadDir.js b/deps/npm/node_modules/lodash/internal/createPadDir.js
index da0ebf1dd9..da0ebf1dd9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadDir.js
+++ b/deps/npm/node_modules/lodash/internal/createPadDir.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadding.js b/deps/npm/node_modules/lodash/internal/createPadding.js
index 810dc24ca3..810dc24ca3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPadding.js
+++ b/deps/npm/node_modules/lodash/internal/createPadding.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartial.js b/deps/npm/node_modules/lodash/internal/createPartial.js
index 753327539c..753327539c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartial.js
+++ b/deps/npm/node_modules/lodash/internal/createPartial.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartialWrapper.js b/deps/npm/node_modules/lodash/internal/createPartialWrapper.js
index b19f9f0ec1..b19f9f0ec1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createPartialWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/createPartialWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createReduce.js b/deps/npm/node_modules/lodash/internal/createReduce.js
index 816f4ce71b..816f4ce71b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createReduce.js
+++ b/deps/npm/node_modules/lodash/internal/createReduce.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createRound.js b/deps/npm/node_modules/lodash/internal/createRound.js
index 21240efb62..21240efb62 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createRound.js
+++ b/deps/npm/node_modules/lodash/internal/createRound.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createSortedIndex.js b/deps/npm/node_modules/lodash/internal/createSortedIndex.js
index 86c78520c9..86c78520c9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createSortedIndex.js
+++ b/deps/npm/node_modules/lodash/internal/createSortedIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createWrapper.js b/deps/npm/node_modules/lodash/internal/createWrapper.js
index ea7a9b1905..ea7a9b1905 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/createWrapper.js
+++ b/deps/npm/node_modules/lodash/internal/createWrapper.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/deburrLetter.js b/deps/npm/node_modules/lodash/internal/deburrLetter.js
index e559dbea7a..e559dbea7a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/deburrLetter.js
+++ b/deps/npm/node_modules/lodash/internal/deburrLetter.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalArrays.js b/deps/npm/node_modules/lodash/internal/equalArrays.js
index e0bb2d32a8..e0bb2d32a8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalArrays.js
+++ b/deps/npm/node_modules/lodash/internal/equalArrays.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalByTag.js b/deps/npm/node_modules/lodash/internal/equalByTag.js
index d25c8e1eae..d25c8e1eae 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalByTag.js
+++ b/deps/npm/node_modules/lodash/internal/equalByTag.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalObjects.js b/deps/npm/node_modules/lodash/internal/equalObjects.js
index 1297a3b2af..1297a3b2af 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/equalObjects.js
+++ b/deps/npm/node_modules/lodash/internal/equalObjects.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeHtmlChar.js b/deps/npm/node_modules/lodash/internal/escapeHtmlChar.js
index b21e452b5b..b21e452b5b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeHtmlChar.js
+++ b/deps/npm/node_modules/lodash/internal/escapeHtmlChar.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeRegExpChar.js b/deps/npm/node_modules/lodash/internal/escapeRegExpChar.js
index 8427de0ec9..8427de0ec9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeRegExpChar.js
+++ b/deps/npm/node_modules/lodash/internal/escapeRegExpChar.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeStringChar.js b/deps/npm/node_modules/lodash/internal/escapeStringChar.js
index 44eca96ca8..44eca96ca8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/escapeStringChar.js
+++ b/deps/npm/node_modules/lodash/internal/escapeStringChar.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getData.js b/deps/npm/node_modules/lodash/internal/getData.js
index 5bb4f466e7..5bb4f466e7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getData.js
+++ b/deps/npm/node_modules/lodash/internal/getData.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getFuncName.js b/deps/npm/node_modules/lodash/internal/getFuncName.js
index ed92867d63..ed92867d63 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getFuncName.js
+++ b/deps/npm/node_modules/lodash/internal/getFuncName.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getLength.js b/deps/npm/node_modules/lodash/internal/getLength.js
index 48d75ae135..48d75ae135 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getLength.js
+++ b/deps/npm/node_modules/lodash/internal/getLength.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getMatchData.js b/deps/npm/node_modules/lodash/internal/getMatchData.js
index 6d235b9167..6d235b9167 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getMatchData.js
+++ b/deps/npm/node_modules/lodash/internal/getMatchData.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getNative.js b/deps/npm/node_modules/lodash/internal/getNative.js
index bceb317fd7..bceb317fd7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getNative.js
+++ b/deps/npm/node_modules/lodash/internal/getNative.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getView.js b/deps/npm/node_modules/lodash/internal/getView.js
index f49ec6d06c..f49ec6d06c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/getView.js
+++ b/deps/npm/node_modules/lodash/internal/getView.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/indexOfNaN.js b/deps/npm/node_modules/lodash/internal/indexOfNaN.js
index 05b8207d7c..05b8207d7c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/indexOfNaN.js
+++ b/deps/npm/node_modules/lodash/internal/indexOfNaN.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneArray.js b/deps/npm/node_modules/lodash/internal/initCloneArray.js
index c92dfa2407..c92dfa2407 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneArray.js
+++ b/deps/npm/node_modules/lodash/internal/initCloneArray.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneByTag.js b/deps/npm/node_modules/lodash/internal/initCloneByTag.js
index 8e3afc63f4..8e3afc63f4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneByTag.js
+++ b/deps/npm/node_modules/lodash/internal/initCloneByTag.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneObject.js b/deps/npm/node_modules/lodash/internal/initCloneObject.js
index 48c4a23d1c..48c4a23d1c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/initCloneObject.js
+++ b/deps/npm/node_modules/lodash/internal/initCloneObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/invokePath.js b/deps/npm/node_modules/lodash/internal/invokePath.js
index 935110fd12..935110fd12 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/invokePath.js
+++ b/deps/npm/node_modules/lodash/internal/invokePath.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isArrayLike.js b/deps/npm/node_modules/lodash/internal/isArrayLike.js
index 72443cde10..72443cde10 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isArrayLike.js
+++ b/deps/npm/node_modules/lodash/internal/isArrayLike.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIndex.js b/deps/npm/node_modules/lodash/internal/isIndex.js
index 469164bfde..469164bfde 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIndex.js
+++ b/deps/npm/node_modules/lodash/internal/isIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIterateeCall.js b/deps/npm/node_modules/lodash/internal/isIterateeCall.js
index 07490f2e42..07490f2e42 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isIterateeCall.js
+++ b/deps/npm/node_modules/lodash/internal/isIterateeCall.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isKey.js b/deps/npm/node_modules/lodash/internal/isKey.js
index 44ccfd4894..44ccfd4894 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isKey.js
+++ b/deps/npm/node_modules/lodash/internal/isKey.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLaziable.js b/deps/npm/node_modules/lodash/internal/isLaziable.js
index 475fab1be5..475fab1be5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLaziable.js
+++ b/deps/npm/node_modules/lodash/internal/isLaziable.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLength.js b/deps/npm/node_modules/lodash/internal/isLength.js
index 2092987989..2092987989 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isLength.js
+++ b/deps/npm/node_modules/lodash/internal/isLength.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isObjectLike.js b/deps/npm/node_modules/lodash/internal/isObjectLike.js
index 8ca0585b7b..8ca0585b7b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isObjectLike.js
+++ b/deps/npm/node_modules/lodash/internal/isObjectLike.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isSpace.js b/deps/npm/node_modules/lodash/internal/isSpace.js
index 16ea6f3d43..16ea6f3d43 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isSpace.js
+++ b/deps/npm/node_modules/lodash/internal/isSpace.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isStrictComparable.js b/deps/npm/node_modules/lodash/internal/isStrictComparable.js
index 0a53eba5ee..0a53eba5ee 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/isStrictComparable.js
+++ b/deps/npm/node_modules/lodash/internal/isStrictComparable.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyClone.js b/deps/npm/node_modules/lodash/internal/lazyClone.js
index 04c222b20e..04c222b20e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyClone.js
+++ b/deps/npm/node_modules/lodash/internal/lazyClone.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyReverse.js b/deps/npm/node_modules/lodash/internal/lazyReverse.js
index c658402f94..c658402f94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyReverse.js
+++ b/deps/npm/node_modules/lodash/internal/lazyReverse.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyValue.js b/deps/npm/node_modules/lodash/internal/lazyValue.js
index 8de68e6722..8de68e6722 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/lazyValue.js
+++ b/deps/npm/node_modules/lodash/internal/lazyValue.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapDelete.js b/deps/npm/node_modules/lodash/internal/mapDelete.js
index 8b7fd53531..8b7fd53531 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapDelete.js
+++ b/deps/npm/node_modules/lodash/internal/mapDelete.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapGet.js b/deps/npm/node_modules/lodash/internal/mapGet.js
index 1f22295723..1f22295723 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapGet.js
+++ b/deps/npm/node_modules/lodash/internal/mapGet.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapHas.js b/deps/npm/node_modules/lodash/internal/mapHas.js
index 6d94ce441d..6d94ce441d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapHas.js
+++ b/deps/npm/node_modules/lodash/internal/mapHas.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapSet.js b/deps/npm/node_modules/lodash/internal/mapSet.js
index 0434c3f307..0434c3f307 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mapSet.js
+++ b/deps/npm/node_modules/lodash/internal/mapSet.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeData.js b/deps/npm/node_modules/lodash/internal/mergeData.js
index 29297c78aa..29297c78aa 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeData.js
+++ b/deps/npm/node_modules/lodash/internal/mergeData.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeDefaults.js b/deps/npm/node_modules/lodash/internal/mergeDefaults.js
index dcd967e9fa..dcd967e9fa 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/mergeDefaults.js
+++ b/deps/npm/node_modules/lodash/internal/mergeDefaults.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/metaMap.js b/deps/npm/node_modules/lodash/internal/metaMap.js
index 59bfd5f96e..59bfd5f96e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/metaMap.js
+++ b/deps/npm/node_modules/lodash/internal/metaMap.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByArray.js b/deps/npm/node_modules/lodash/internal/pickByArray.js
index 0999d90af4..0999d90af4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByArray.js
+++ b/deps/npm/node_modules/lodash/internal/pickByArray.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByCallback.js b/deps/npm/node_modules/lodash/internal/pickByCallback.js
index 79d3cdc837..79d3cdc837 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/pickByCallback.js
+++ b/deps/npm/node_modules/lodash/internal/pickByCallback.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEscape.js b/deps/npm/node_modules/lodash/internal/reEscape.js
index 7f47eda68f..7f47eda68f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEscape.js
+++ b/deps/npm/node_modules/lodash/internal/reEscape.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEvaluate.js b/deps/npm/node_modules/lodash/internal/reEvaluate.js
index 6adfc312c8..6adfc312c8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reEvaluate.js
+++ b/deps/npm/node_modules/lodash/internal/reEvaluate.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reInterpolate.js b/deps/npm/node_modules/lodash/internal/reInterpolate.js
index d02ff0b29a..d02ff0b29a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reInterpolate.js
+++ b/deps/npm/node_modules/lodash/internal/reInterpolate.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/realNames.js b/deps/npm/node_modules/lodash/internal/realNames.js
index aa0d529261..aa0d529261 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/realNames.js
+++ b/deps/npm/node_modules/lodash/internal/realNames.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reorder.js b/deps/npm/node_modules/lodash/internal/reorder.js
index 9424927db7..9424927db7 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/reorder.js
+++ b/deps/npm/node_modules/lodash/internal/reorder.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/replaceHolders.js b/deps/npm/node_modules/lodash/internal/replaceHolders.js
index 3089e75e94..3089e75e94 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/replaceHolders.js
+++ b/deps/npm/node_modules/lodash/internal/replaceHolders.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/setData.js b/deps/npm/node_modules/lodash/internal/setData.js
index 7eb3f40b83..7eb3f40b83 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/setData.js
+++ b/deps/npm/node_modules/lodash/internal/setData.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/shimKeys.js b/deps/npm/node_modules/lodash/internal/shimKeys.js
index 189e492b76..189e492b76 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/shimKeys.js
+++ b/deps/npm/node_modules/lodash/internal/shimKeys.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/sortedUniq.js b/deps/npm/node_modules/lodash/internal/sortedUniq.js
index 3ede46a193..3ede46a193 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/sortedUniq.js
+++ b/deps/npm/node_modules/lodash/internal/sortedUniq.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toIterable.js b/deps/npm/node_modules/lodash/internal/toIterable.js
index c0a5b2885f..c0a5b2885f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toIterable.js
+++ b/deps/npm/node_modules/lodash/internal/toIterable.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toObject.js b/deps/npm/node_modules/lodash/internal/toObject.js
index da4a008d7b..da4a008d7b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toObject.js
+++ b/deps/npm/node_modules/lodash/internal/toObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toPath.js b/deps/npm/node_modules/lodash/internal/toPath.js
index d29f1eb528..d29f1eb528 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/toPath.js
+++ b/deps/npm/node_modules/lodash/internal/toPath.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedLeftIndex.js b/deps/npm/node_modules/lodash/internal/trimmedLeftIndex.js
index 08aeb13607..08aeb13607 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedLeftIndex.js
+++ b/deps/npm/node_modules/lodash/internal/trimmedLeftIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedRightIndex.js b/deps/npm/node_modules/lodash/internal/trimmedRightIndex.js
index 71b9e38a62..71b9e38a62 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/trimmedRightIndex.js
+++ b/deps/npm/node_modules/lodash/internal/trimmedRightIndex.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/unescapeHtmlChar.js b/deps/npm/node_modules/lodash/internal/unescapeHtmlChar.js
index 28b345498d..28b345498d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/unescapeHtmlChar.js
+++ b/deps/npm/node_modules/lodash/internal/unescapeHtmlChar.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/wrapperClone.js b/deps/npm/node_modules/lodash/internal/wrapperClone.js
index e5e10dac65..e5e10dac65 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/internal/wrapperClone.js
+++ b/deps/npm/node_modules/lodash/internal/wrapperClone.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang.js b/deps/npm/node_modules/lodash/lang.js
index 8f0a364322..8f0a364322 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang.js
+++ b/deps/npm/node_modules/lodash/lang.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/clone.js b/deps/npm/node_modules/lodash/lang/clone.js
index 85ee8fe003..85ee8fe003 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/clone.js
+++ b/deps/npm/node_modules/lodash/lang/clone.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/cloneDeep.js b/deps/npm/node_modules/lodash/lang/cloneDeep.js
index c4d2517a11..c4d2517a11 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/cloneDeep.js
+++ b/deps/npm/node_modules/lodash/lang/cloneDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/eq.js b/deps/npm/node_modules/lodash/lang/eq.js
index e6a5ce0caf..e6a5ce0caf 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/eq.js
+++ b/deps/npm/node_modules/lodash/lang/eq.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gt.js b/deps/npm/node_modules/lodash/lang/gt.js
index ddaf5ea067..ddaf5ea067 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gt.js
+++ b/deps/npm/node_modules/lodash/lang/gt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gte.js b/deps/npm/node_modules/lodash/lang/gte.js
index 4a5ffb5cdc..4a5ffb5cdc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/gte.js
+++ b/deps/npm/node_modules/lodash/lang/gte.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArguments.js b/deps/npm/node_modules/lodash/lang/isArguments.js
index ce9763d231..ce9763d231 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArguments.js
+++ b/deps/npm/node_modules/lodash/lang/isArguments.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArray.js b/deps/npm/node_modules/lodash/lang/isArray.js
index 9ab023acb9..9ab023acb9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isArray.js
+++ b/deps/npm/node_modules/lodash/lang/isArray.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isBoolean.js b/deps/npm/node_modules/lodash/lang/isBoolean.js
index 460e6c5bdf..460e6c5bdf 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isBoolean.js
+++ b/deps/npm/node_modules/lodash/lang/isBoolean.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isDate.js b/deps/npm/node_modules/lodash/lang/isDate.js
index 29850d9471..29850d9471 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isDate.js
+++ b/deps/npm/node_modules/lodash/lang/isDate.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isElement.js b/deps/npm/node_modules/lodash/lang/isElement.js
index 2e9c970485..2e9c970485 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isElement.js
+++ b/deps/npm/node_modules/lodash/lang/isElement.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEmpty.js b/deps/npm/node_modules/lodash/lang/isEmpty.js
index 6b344a0b37..6b344a0b37 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEmpty.js
+++ b/deps/npm/node_modules/lodash/lang/isEmpty.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEqual.js b/deps/npm/node_modules/lodash/lang/isEqual.js
index 41bf568dfd..41bf568dfd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isEqual.js
+++ b/deps/npm/node_modules/lodash/lang/isEqual.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isError.js b/deps/npm/node_modules/lodash/lang/isError.js
index a7bb0d0946..a7bb0d0946 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isError.js
+++ b/deps/npm/node_modules/lodash/lang/isError.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFinite.js b/deps/npm/node_modules/lodash/lang/isFinite.js
index e01a307fc3..e01a307fc3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFinite.js
+++ b/deps/npm/node_modules/lodash/lang/isFinite.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFunction.js b/deps/npm/node_modules/lodash/lang/isFunction.js
index abe5668ec3..abe5668ec3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isFunction.js
+++ b/deps/npm/node_modules/lodash/lang/isFunction.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isMatch.js b/deps/npm/node_modules/lodash/lang/isMatch.js
index 0a51d4920e..0a51d4920e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isMatch.js
+++ b/deps/npm/node_modules/lodash/lang/isMatch.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNaN.js b/deps/npm/node_modules/lodash/lang/isNaN.js
index cf83d56637..cf83d56637 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNaN.js
+++ b/deps/npm/node_modules/lodash/lang/isNaN.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNative.js b/deps/npm/node_modules/lodash/lang/isNative.js
index 3ad7144528..3ad7144528 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNative.js
+++ b/deps/npm/node_modules/lodash/lang/isNative.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNull.js b/deps/npm/node_modules/lodash/lang/isNull.js
index ec66c4d8d8..ec66c4d8d8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNull.js
+++ b/deps/npm/node_modules/lodash/lang/isNull.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNumber.js b/deps/npm/node_modules/lodash/lang/isNumber.js
index 6764d6f99d..6764d6f99d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isNumber.js
+++ b/deps/npm/node_modules/lodash/lang/isNumber.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isObject.js b/deps/npm/node_modules/lodash/lang/isObject.js
index 6db5998720..6db5998720 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isObject.js
+++ b/deps/npm/node_modules/lodash/lang/isObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isPlainObject.js b/deps/npm/node_modules/lodash/lang/isPlainObject.js
index 5b34c83896..5b34c83896 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isPlainObject.js
+++ b/deps/npm/node_modules/lodash/lang/isPlainObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isRegExp.js b/deps/npm/node_modules/lodash/lang/isRegExp.js
index f029cbdcd6..f029cbdcd6 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isRegExp.js
+++ b/deps/npm/node_modules/lodash/lang/isRegExp.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isString.js b/deps/npm/node_modules/lodash/lang/isString.js
index 8b28ee19ad..8b28ee19ad 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isString.js
+++ b/deps/npm/node_modules/lodash/lang/isString.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isTypedArray.js b/deps/npm/node_modules/lodash/lang/isTypedArray.js
index 6e8a6e0383..6e8a6e0383 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isTypedArray.js
+++ b/deps/npm/node_modules/lodash/lang/isTypedArray.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isUndefined.js b/deps/npm/node_modules/lodash/lang/isUndefined.js
index d64e560c66..d64e560c66 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/isUndefined.js
+++ b/deps/npm/node_modules/lodash/lang/isUndefined.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lt.js b/deps/npm/node_modules/lodash/lang/lt.js
index 4439870a31..4439870a31 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lt.js
+++ b/deps/npm/node_modules/lodash/lang/lt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lte.js b/deps/npm/node_modules/lodash/lang/lte.js
index e2b8ab15a0..e2b8ab15a0 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/lte.js
+++ b/deps/npm/node_modules/lodash/lang/lte.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toArray.js b/deps/npm/node_modules/lodash/lang/toArray.js
index 72b0b46e18..72b0b46e18 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toArray.js
+++ b/deps/npm/node_modules/lodash/lang/toArray.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toPlainObject.js b/deps/npm/node_modules/lodash/lang/toPlainObject.js
index 6315176ecb..6315176ecb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/lang/toPlainObject.js
+++ b/deps/npm/node_modules/lodash/lang/toPlainObject.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math.js b/deps/npm/node_modules/lodash/math.js
index 21409cebd8..21409cebd8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math.js
+++ b/deps/npm/node_modules/lodash/math.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/add.js b/deps/npm/node_modules/lodash/math/add.js
index 59ced2fb6e..59ced2fb6e 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/add.js
+++ b/deps/npm/node_modules/lodash/math/add.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/ceil.js b/deps/npm/node_modules/lodash/math/ceil.js
index 9dbf0c26db..9dbf0c26db 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/ceil.js
+++ b/deps/npm/node_modules/lodash/math/ceil.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/floor.js b/deps/npm/node_modules/lodash/math/floor.js
index e4dcae8bf8..e4dcae8bf8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/floor.js
+++ b/deps/npm/node_modules/lodash/math/floor.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/max.js b/deps/npm/node_modules/lodash/math/max.js
index 220c1050df..220c1050df 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/max.js
+++ b/deps/npm/node_modules/lodash/math/max.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/min.js b/deps/npm/node_modules/lodash/math/min.js
index 6d92d4fa83..6d92d4fa83 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/min.js
+++ b/deps/npm/node_modules/lodash/math/min.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/round.js b/deps/npm/node_modules/lodash/math/round.js
index 5c69d0c15c..5c69d0c15c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/round.js
+++ b/deps/npm/node_modules/lodash/math/round.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/sum.js b/deps/npm/node_modules/lodash/math/sum.js
index 114ff1b0a1..114ff1b0a1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/math/sum.js
+++ b/deps/npm/node_modules/lodash/math/sum.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/number.js b/deps/npm/node_modules/lodash/number.js
index afab9d9956..afab9d9956 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/number.js
+++ b/deps/npm/node_modules/lodash/number.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/number/inRange.js b/deps/npm/node_modules/lodash/number/inRange.js
index 30bf798ac6..30bf798ac6 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/number/inRange.js
+++ b/deps/npm/node_modules/lodash/number/inRange.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/number/random.js b/deps/npm/node_modules/lodash/number/random.js
index 589d74e7ce..589d74e7ce 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/number/random.js
+++ b/deps/npm/node_modules/lodash/number/random.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object.js b/deps/npm/node_modules/lodash/object.js
index 4beb005ac8..4beb005ac8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object.js
+++ b/deps/npm/node_modules/lodash/object.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/assign.js b/deps/npm/node_modules/lodash/object/assign.js
index 4a765ed547..4a765ed547 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/assign.js
+++ b/deps/npm/node_modules/lodash/object/assign.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/create.js b/deps/npm/node_modules/lodash/object/create.js
index 176294f35b..176294f35b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/create.js
+++ b/deps/npm/node_modules/lodash/object/create.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaults.js b/deps/npm/node_modules/lodash/object/defaults.js
index c05011e528..c05011e528 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaults.js
+++ b/deps/npm/node_modules/lodash/object/defaults.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaultsDeep.js b/deps/npm/node_modules/lodash/object/defaultsDeep.js
index ec6e687e34..ec6e687e34 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/defaultsDeep.js
+++ b/deps/npm/node_modules/lodash/object/defaultsDeep.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/extend.js b/deps/npm/node_modules/lodash/object/extend.js
index dd0ca941c8..dd0ca941c8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/extend.js
+++ b/deps/npm/node_modules/lodash/object/extend.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/findKey.js b/deps/npm/node_modules/lodash/object/findKey.js
index 1359df3406..1359df3406 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/findKey.js
+++ b/deps/npm/node_modules/lodash/object/findKey.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/findLastKey.js b/deps/npm/node_modules/lodash/object/findLastKey.js
index 42893a4b71..42893a4b71 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/findLastKey.js
+++ b/deps/npm/node_modules/lodash/object/findLastKey.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forIn.js b/deps/npm/node_modules/lodash/object/forIn.js
index 52d34af8ea..52d34af8ea 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forIn.js
+++ b/deps/npm/node_modules/lodash/object/forIn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forInRight.js b/deps/npm/node_modules/lodash/object/forInRight.js
index 6780b92978..6780b92978 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forInRight.js
+++ b/deps/npm/node_modules/lodash/object/forInRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwn.js b/deps/npm/node_modules/lodash/object/forOwn.js
index 747bb7651b..747bb7651b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwn.js
+++ b/deps/npm/node_modules/lodash/object/forOwn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwnRight.js b/deps/npm/node_modules/lodash/object/forOwnRight.js
index 8122338b37..8122338b37 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/forOwnRight.js
+++ b/deps/npm/node_modules/lodash/object/forOwnRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/functions.js b/deps/npm/node_modules/lodash/object/functions.js
index 10799becd3..10799becd3 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/functions.js
+++ b/deps/npm/node_modules/lodash/object/functions.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/get.js b/deps/npm/node_modules/lodash/object/get.js
index 7e88f1e960..7e88f1e960 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/get.js
+++ b/deps/npm/node_modules/lodash/object/get.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/has.js b/deps/npm/node_modules/lodash/object/has.js
index f356243eba..f356243eba 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/has.js
+++ b/deps/npm/node_modules/lodash/object/has.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/invert.js b/deps/npm/node_modules/lodash/object/invert.js
index 54fb1f1bef..54fb1f1bef 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/invert.js
+++ b/deps/npm/node_modules/lodash/object/invert.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/keys.js b/deps/npm/node_modules/lodash/object/keys.js
index 4706fd618f..4706fd618f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/keys.js
+++ b/deps/npm/node_modules/lodash/object/keys.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/keysIn.js b/deps/npm/node_modules/lodash/object/keysIn.js
index 45a85d7954..45a85d7954 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/keysIn.js
+++ b/deps/npm/node_modules/lodash/object/keysIn.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapKeys.js b/deps/npm/node_modules/lodash/object/mapKeys.js
index 680b29b5ff..680b29b5ff 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapKeys.js
+++ b/deps/npm/node_modules/lodash/object/mapKeys.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapValues.js b/deps/npm/node_modules/lodash/object/mapValues.js
index 2afe6bac70..2afe6bac70 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/mapValues.js
+++ b/deps/npm/node_modules/lodash/object/mapValues.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/merge.js b/deps/npm/node_modules/lodash/object/merge.js
index 86dd8af977..86dd8af977 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/merge.js
+++ b/deps/npm/node_modules/lodash/object/merge.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/methods.js b/deps/npm/node_modules/lodash/object/methods.js
index 8a304feed1..8a304feed1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/methods.js
+++ b/deps/npm/node_modules/lodash/object/methods.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/omit.js b/deps/npm/node_modules/lodash/object/omit.js
index fe3f48538b..fe3f48538b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/omit.js
+++ b/deps/npm/node_modules/lodash/object/omit.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/pairs.js b/deps/npm/node_modules/lodash/object/pairs.js
index fd4644cea2..fd4644cea2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/pairs.js
+++ b/deps/npm/node_modules/lodash/object/pairs.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/pick.js b/deps/npm/node_modules/lodash/object/pick.js
index e3187669a5..e3187669a5 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/pick.js
+++ b/deps/npm/node_modules/lodash/object/pick.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/result.js b/deps/npm/node_modules/lodash/object/result.js
index 29b38e6e34..29b38e6e34 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/result.js
+++ b/deps/npm/node_modules/lodash/object/result.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/set.js b/deps/npm/node_modules/lodash/object/set.js
index 7a1e4e9ba9..7a1e4e9ba9 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/set.js
+++ b/deps/npm/node_modules/lodash/object/set.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js b/deps/npm/node_modules/lodash/object/transform.js
index 9a814b145f..9a814b145f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/transform.js
+++ b/deps/npm/node_modules/lodash/object/transform.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/values.js b/deps/npm/node_modules/lodash/object/values.js
index 0171515055..0171515055 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/values.js
+++ b/deps/npm/node_modules/lodash/object/values.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/valuesIn.js b/deps/npm/node_modules/lodash/object/valuesIn.js
index 5f067c060b..5f067c060b 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/object/valuesIn.js
+++ b/deps/npm/node_modules/lodash/object/valuesIn.js
diff --git a/deps/npm/node_modules/lodash/package.json b/deps/npm/node_modules/lodash/package.json
new file mode 100644
index 0000000000..90a234110e
--- /dev/null
+++ b/deps/npm/node_modules/lodash/package.json
@@ -0,0 +1,81 @@
+{
+ "_from": "lodash@^3.10.1",
+ "_id": "lodash@3.10.1",
+ "_inBundle": false,
+ "_integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
+ "_location": "/lodash",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lodash@^3.10.1",
+ "name": "lodash",
+ "escapedName": "lodash",
+ "rawSpec": "^3.10.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.10.1"
+ },
+ "_requiredBy": [
+ "/cli-table2"
+ ],
+ "_resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
+ "_shasum": "5bf45e8e49ba4189e17d482789dfd15bd140b7b6",
+ "_spec": "lodash@^3.10.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2",
+ "author": {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/lodash/lodash/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "John-David Dalton",
+ "email": "john.david.dalton@gmail.com",
+ "url": "http://allyoucanleet.com/"
+ },
+ {
+ "name": "Benjamin Tan",
+ "email": "demoneaux@gmail.com",
+ "url": "https://d10.github.io/"
+ },
+ {
+ "name": "Blaine Bublitz",
+ "email": "blaine@iceddev.com",
+ "url": "http://www.iceddev.com/"
+ },
+ {
+ "name": "Kit Cambridge",
+ "email": "github@kitcambridge.be",
+ "url": "http://kitcambridge.be/"
+ },
+ {
+ "name": "Mathias Bynens",
+ "email": "mathias@qiwi.be",
+ "url": "https://mathiasbynens.be/"
+ }
+ ],
+ "deprecated": false,
+ "description": "The modern build of lodash modular utilities.",
+ "homepage": "https://lodash.com/",
+ "icon": "https://lodash.com/icon.svg",
+ "keywords": [
+ "modules",
+ "stdlib",
+ "util"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "lodash",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/lodash/lodash.git"
+ },
+ "scripts": {
+ "test": "echo \"See https://travis-ci.org/lodash/lodash-cli for testing details.\""
+ },
+ "version": "3.10.1"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string.js b/deps/npm/node_modules/lodash/string.js
index f777945302..f777945302 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string.js
+++ b/deps/npm/node_modules/lodash/string.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/camelCase.js b/deps/npm/node_modules/lodash/string/camelCase.js
index 2d438f4aac..2d438f4aac 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/camelCase.js
+++ b/deps/npm/node_modules/lodash/string/camelCase.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/capitalize.js b/deps/npm/node_modules/lodash/string/capitalize.js
index f9222dc2eb..f9222dc2eb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/capitalize.js
+++ b/deps/npm/node_modules/lodash/string/capitalize.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/deburr.js b/deps/npm/node_modules/lodash/string/deburr.js
index 0bd03e62dc..0bd03e62dc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/deburr.js
+++ b/deps/npm/node_modules/lodash/string/deburr.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/endsWith.js b/deps/npm/node_modules/lodash/string/endsWith.js
index 26821e2661..26821e2661 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/endsWith.js
+++ b/deps/npm/node_modules/lodash/string/endsWith.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/escape.js b/deps/npm/node_modules/lodash/string/escape.js
index cd08a5ddfb..cd08a5ddfb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/escape.js
+++ b/deps/npm/node_modules/lodash/string/escape.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/escapeRegExp.js b/deps/npm/node_modules/lodash/string/escapeRegExp.js
index 176137abf1..176137abf1 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/escapeRegExp.js
+++ b/deps/npm/node_modules/lodash/string/escapeRegExp.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/kebabCase.js b/deps/npm/node_modules/lodash/string/kebabCase.js
index d29c2f908a..d29c2f908a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/kebabCase.js
+++ b/deps/npm/node_modules/lodash/string/kebabCase.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/pad.js b/deps/npm/node_modules/lodash/string/pad.js
index 60e523b9e4..60e523b9e4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/pad.js
+++ b/deps/npm/node_modules/lodash/string/pad.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/padLeft.js b/deps/npm/node_modules/lodash/string/padLeft.js
index bb0c94d0cd..bb0c94d0cd 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/padLeft.js
+++ b/deps/npm/node_modules/lodash/string/padLeft.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/padRight.js b/deps/npm/node_modules/lodash/string/padRight.js
index dc12f55993..dc12f55993 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/padRight.js
+++ b/deps/npm/node_modules/lodash/string/padRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/parseInt.js b/deps/npm/node_modules/lodash/string/parseInt.js
index f457711e49..f457711e49 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/parseInt.js
+++ b/deps/npm/node_modules/lodash/string/parseInt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/repeat.js b/deps/npm/node_modules/lodash/string/repeat.js
index 2902123e6d..2902123e6d 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/repeat.js
+++ b/deps/npm/node_modules/lodash/string/repeat.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/snakeCase.js b/deps/npm/node_modules/lodash/string/snakeCase.js
index c9ebffd913..c9ebffd913 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/snakeCase.js
+++ b/deps/npm/node_modules/lodash/string/snakeCase.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/startCase.js b/deps/npm/node_modules/lodash/string/startCase.js
index 740d48a513..740d48a513 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/startCase.js
+++ b/deps/npm/node_modules/lodash/string/startCase.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/startsWith.js b/deps/npm/node_modules/lodash/string/startsWith.js
index 65fae2a462..65fae2a462 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/startsWith.js
+++ b/deps/npm/node_modules/lodash/string/startsWith.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/template.js b/deps/npm/node_modules/lodash/string/template.js
index e75e992b24..e75e992b24 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/template.js
+++ b/deps/npm/node_modules/lodash/string/template.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/templateSettings.js b/deps/npm/node_modules/lodash/string/templateSettings.js
index cdcef9ba21..cdcef9ba21 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/templateSettings.js
+++ b/deps/npm/node_modules/lodash/string/templateSettings.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trim.js b/deps/npm/node_modules/lodash/string/trim.js
index 22cd38a5b2..22cd38a5b2 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trim.js
+++ b/deps/npm/node_modules/lodash/string/trim.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimLeft.js b/deps/npm/node_modules/lodash/string/trimLeft.js
index 29299677a0..29299677a0 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimLeft.js
+++ b/deps/npm/node_modules/lodash/string/trimLeft.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimRight.js b/deps/npm/node_modules/lodash/string/trimRight.js
index 0f9be71fbe..0f9be71fbe 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trimRight.js
+++ b/deps/npm/node_modules/lodash/string/trimRight.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trunc.js b/deps/npm/node_modules/lodash/string/trunc.js
index 29e1939902..29e1939902 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/trunc.js
+++ b/deps/npm/node_modules/lodash/string/trunc.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/unescape.js b/deps/npm/node_modules/lodash/string/unescape.js
index b0266a7ac4..b0266a7ac4 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/unescape.js
+++ b/deps/npm/node_modules/lodash/string/unescape.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/words.js b/deps/npm/node_modules/lodash/string/words.js
index 3013ad6301..3013ad6301 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/string/words.js
+++ b/deps/npm/node_modules/lodash/string/words.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/support.js b/deps/npm/node_modules/lodash/support.js
index 5009c2c502..5009c2c502 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/support.js
+++ b/deps/npm/node_modules/lodash/support.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility.js b/deps/npm/node_modules/lodash/utility.js
index 25311faefc..25311faefc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility.js
+++ b/deps/npm/node_modules/lodash/utility.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/attempt.js b/deps/npm/node_modules/lodash/utility/attempt.js
index 8d8fb98102..8d8fb98102 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/attempt.js
+++ b/deps/npm/node_modules/lodash/utility/attempt.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/callback.js b/deps/npm/node_modules/lodash/utility/callback.js
index 21223d0231..21223d0231 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/callback.js
+++ b/deps/npm/node_modules/lodash/utility/callback.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/constant.js b/deps/npm/node_modules/lodash/utility/constant.js
index 6919b76328..6919b76328 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/constant.js
+++ b/deps/npm/node_modules/lodash/utility/constant.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/identity.js b/deps/npm/node_modules/lodash/utility/identity.js
index 3a1d1d4c9c..3a1d1d4c9c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/identity.js
+++ b/deps/npm/node_modules/lodash/utility/identity.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/iteratee.js b/deps/npm/node_modules/lodash/utility/iteratee.js
index fcfa202105..fcfa202105 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/iteratee.js
+++ b/deps/npm/node_modules/lodash/utility/iteratee.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matches.js b/deps/npm/node_modules/lodash/utility/matches.js
index a182637bdb..a182637bdb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matches.js
+++ b/deps/npm/node_modules/lodash/utility/matches.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matchesProperty.js b/deps/npm/node_modules/lodash/utility/matchesProperty.js
index 91e51a56cb..91e51a56cb 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/matchesProperty.js
+++ b/deps/npm/node_modules/lodash/utility/matchesProperty.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/method.js b/deps/npm/node_modules/lodash/utility/method.js
index e315b7f355..e315b7f355 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/method.js
+++ b/deps/npm/node_modules/lodash/utility/method.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/methodOf.js b/deps/npm/node_modules/lodash/utility/methodOf.js
index f61b782272..f61b782272 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/methodOf.js
+++ b/deps/npm/node_modules/lodash/utility/methodOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/mixin.js b/deps/npm/node_modules/lodash/utility/mixin.js
index 5c4a372d3c..5c4a372d3c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/mixin.js
+++ b/deps/npm/node_modules/lodash/utility/mixin.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/noop.js b/deps/npm/node_modules/lodash/utility/noop.js
index 56d651344a..56d651344a 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/noop.js
+++ b/deps/npm/node_modules/lodash/utility/noop.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/property.js b/deps/npm/node_modules/lodash/utility/property.js
index ddfd59798f..ddfd59798f 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/property.js
+++ b/deps/npm/node_modules/lodash/utility/property.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/propertyOf.js b/deps/npm/node_modules/lodash/utility/propertyOf.js
index 593a266b1c..593a266b1c 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/propertyOf.js
+++ b/deps/npm/node_modules/lodash/utility/propertyOf.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/range.js b/deps/npm/node_modules/lodash/utility/range.js
index 671939afcc..671939afcc 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/range.js
+++ b/deps/npm/node_modules/lodash/utility/range.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/times.js b/deps/npm/node_modules/lodash/utility/times.js
index 9a41e2fe28..9a41e2fe28 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/times.js
+++ b/deps/npm/node_modules/lodash/utility/times.js
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/uniqueId.js b/deps/npm/node_modules/lodash/utility/uniqueId.js
index 88e02bf300..88e02bf300 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/lodash/utility/uniqueId.js
+++ b/deps/npm/node_modules/lodash/utility/uniqueId.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/index.js b/deps/npm/node_modules/lowercase-keys/index.js
index b8d8898365..b8d8898365 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/index.js
+++ b/deps/npm/node_modules/lowercase-keys/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/license b/deps/npm/node_modules/lowercase-keys/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/license
+++ b/deps/npm/node_modules/lowercase-keys/license
diff --git a/deps/npm/node_modules/lowercase-keys/package.json b/deps/npm/node_modules/lowercase-keys/package.json
new file mode 100644
index 0000000000..fe5b91f7ac
--- /dev/null
+++ b/deps/npm/node_modules/lowercase-keys/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "lowercase-keys@^1.0.0",
+ "_id": "lowercase-keys@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
+ "_location": "/lowercase-keys",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "lowercase-keys@^1.0.0",
+ "name": "lowercase-keys",
+ "escapedName": "lowercase-keys",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz",
+ "_shasum": "6f9e30b47084d971a7c820ff15a6c5167b74c26f",
+ "_spec": "lowercase-keys@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/lowercase-keys/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Lowercase the keys of an object",
+ "devDependencies": {
+ "ava": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/lowercase-keys#readme",
+ "keywords": [
+ "object",
+ "assign",
+ "extend",
+ "properties",
+ "lowercase",
+ "lower-case",
+ "case",
+ "keys",
+ "key"
+ ],
+ "license": "MIT",
+ "name": "lowercase-keys",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/lowercase-keys.git"
+ },
+ "scripts": {
+ "test": "ava"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/readme.md b/deps/npm/node_modules/lowercase-keys/readme.md
index dc65770a38..dc65770a38 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/readme.md
+++ b/deps/npm/node_modules/lowercase-keys/readme.md
diff --git a/deps/npm/node_modules/lru-cache/README.md b/deps/npm/node_modules/lru-cache/README.md
index f646c1cb8e..d660dd5747 100644
--- a/deps/npm/node_modules/lru-cache/README.md
+++ b/deps/npm/node_modules/lru-cache/README.md
@@ -25,10 +25,16 @@ cache.set("key", "value")
cache.get("key") // "value"
// non-string keys ARE fully supported
-var someObject = {}
+// but note that it must be THE SAME object, not
+// just a JSON-equivalent object.
+var someObject = { a: 1 }
cache.set(someObject, 'a value')
+// Object keys are not toString()-ed
cache.set('[object Object]', 'a different value')
assert.equal(cache.get(someObject), 'a value')
+// A similar object with same keys/values won't work,
+// because it's a different object identity
+assert.equal(cache.get({ a: 1 }), undefined)
cache.reset() // empty the cache
```
diff --git a/deps/npm/node_modules/lru-cache/index.js b/deps/npm/node_modules/lru-cache/index.js
index 460462aadc..3f047f8ca7 100644
--- a/deps/npm/node_modules/lru-cache/index.js
+++ b/deps/npm/node_modules/lru-cache/index.js
@@ -15,7 +15,7 @@ var hasSymbol = typeof Symbol === 'function'
var makeSymbol
if (hasSymbol) {
makeSymbol = function (key) {
- return Symbol.for(key)
+ return Symbol(key)
}
} else {
makeSymbol = function (key) {
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json b/deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json
deleted file mode 100644
index 6b3ace940e..0000000000
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "_from": "pseudomap@^1.0.1",
- "_id": "pseudomap@1.0.2",
- "_integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
- "_location": "/lru-cache/pseudomap",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pseudomap@^1.0.1",
- "name": "pseudomap",
- "escapedName": "pseudomap",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/lru-cache"
- ],
- "_resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "_shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3",
- "_shrinkwrap": null,
- "_spec": "pseudomap@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lru-cache",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/pseudomap/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.",
- "devDependencies": {
- "tap": "^2.3.1"
- },
- "directories": {
- "test": "test"
- },
- "homepage": "https://github.com/isaacs/pseudomap#readme",
- "license": "ISC",
- "main": "map.js",
- "name": "pseudomap",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/pseudomap.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/lru-cache/node_modules/yallist/package.json b/deps/npm/node_modules/lru-cache/node_modules/yallist/package.json
deleted file mode 100644
index 790e008515..0000000000
--- a/deps/npm/node_modules/lru-cache/node_modules/yallist/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "yallist@^2.0.0",
- "_id": "yallist@2.1.2",
- "_integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
- "_location": "/lru-cache/yallist",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "yallist@^2.0.0",
- "name": "yallist",
- "escapedName": "yallist",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/lru-cache"
- ],
- "_resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "_shasum": "1c11f9218f076089a47dd512f93c6699a6a81d52",
- "_shrinkwrap": null,
- "_spec": "yallist@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/lru-cache",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/yallist/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Yet Another Linked List",
- "devDependencies": {
- "tap": "^10.3.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "yallist.js",
- "iterator.js"
- ],
- "homepage": "https://github.com/isaacs/yallist#readme",
- "license": "ISC",
- "main": "yallist.js",
- "name": "yallist",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/yallist.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --100"
- },
- "version": "2.1.2"
-}
diff --git a/deps/npm/node_modules/lru-cache/package.json b/deps/npm/node_modules/lru-cache/package.json
index b419b5aa78..238a6894e9 100644
--- a/deps/npm/node_modules/lru-cache/package.json
+++ b/deps/npm/node_modules/lru-cache/package.json
@@ -1,31 +1,42 @@
{
- "_from": "lru-cache@4.1.1",
- "_id": "lru-cache@4.1.1",
+ "_args": [
+ [
+ "lru-cache@4.1.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "lru-cache@4.1.3",
+ "_id": "lru-cache@4.1.3",
"_inBundle": false,
- "_integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==",
+ "_integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
"_location": "/lru-cache",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "lru-cache@4.1.1",
+ "raw": "lru-cache@4.1.3",
"name": "lru-cache",
"escapedName": "lru-cache",
- "rawSpec": "4.1.1",
+ "rawSpec": "4.1.3",
"saveSpec": null,
- "fetchSpec": "4.1.1"
+ "fetchSpec": "4.1.3"
},
"_requiredBy": [
- "#USER",
"/",
- "/pacote",
- "/pacote/make-fetch-happen",
- "/tap/foreground-child/cross-spawn",
- "/update-notifier/boxen/term-size/execa/cross-spawn-async"
+ "/cacache",
+ "/cross-spawn",
+ "/foreground-child/cross-spawn",
+ "/libnpmhook/npm-registry-fetch",
+ "/make-fetch-happen",
+ "/npm-profile/cacache",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch",
+ "/npm-registry-fetch/cacache",
+ "/npm-registry-fetch/make-fetch-happen",
+ "/pacote"
],
- "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz",
- "_shasum": "622e32e82488b49279114a4f9ecf45e7cd6bba55",
- "_spec": "lru-cache@4.1.1",
+ "_resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
+ "_spec": "4.1.3",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -34,17 +45,15 @@
"bugs": {
"url": "https://github.com/isaacs/node-lru-cache/issues"
},
- "bundleDependencies": false,
"dependencies": {
"pseudomap": "^1.0.2",
"yallist": "^2.1.2"
},
- "deprecated": false,
"description": "A cache object that deletes the least-recently-used items.",
"devDependencies": {
"benchmark": "^2.1.4",
"standard": "^5.4.1",
- "tap": "^10.3.3"
+ "tap": "^11.1.4"
},
"files": [
"index.js"
@@ -69,5 +78,5 @@
"preversion": "npm test",
"test": "tap test/*.js --100 -J"
},
- "version": "4.1.1"
+ "version": "4.1.3"
}
diff --git a/deps/npm/node_modules/make-dir/index.js b/deps/npm/node_modules/make-dir/index.js
new file mode 100644
index 0000000000..18439555f8
--- /dev/null
+++ b/deps/npm/node_modules/make-dir/index.js
@@ -0,0 +1,85 @@
+'use strict';
+const fs = require('fs');
+const path = require('path');
+const pify = require('pify');
+
+const defaults = {
+ mode: 0o777 & (~process.umask()),
+ fs
+};
+
+// https://github.com/nodejs/node/issues/8987
+// https://github.com/libuv/libuv/pull/1088
+const checkPath = pth => {
+ if (process.platform === 'win32') {
+ const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, ''));
+
+ if (pathHasInvalidWinCharacters) {
+ const err = new Error(`Path contains invalid characters: ${pth}`);
+ err.code = 'EINVAL';
+ throw err;
+ }
+ }
+};
+
+module.exports = (input, opts) => Promise.resolve().then(() => {
+ checkPath(input);
+ opts = Object.assign({}, defaults, opts);
+
+ const mkdir = pify(opts.fs.mkdir);
+ const stat = pify(opts.fs.stat);
+
+ const make = pth => {
+ return mkdir(pth, opts.mode)
+ .then(() => pth)
+ .catch(err => {
+ if (err.code === 'ENOENT') {
+ if (err.message.includes('null bytes') || path.dirname(pth) === pth) {
+ throw err;
+ }
+
+ return make(path.dirname(pth)).then(() => make(pth));
+ }
+
+ return stat(pth)
+ .then(stats => stats.isDirectory() ? pth : Promise.reject())
+ .catch(() => {
+ throw err;
+ });
+ });
+ };
+
+ return make(path.resolve(input));
+});
+
+module.exports.sync = (input, opts) => {
+ checkPath(input);
+ opts = Object.assign({}, defaults, opts);
+
+ const make = pth => {
+ try {
+ opts.fs.mkdirSync(pth, opts.mode);
+ } catch (err) {
+ if (err.code === 'ENOENT') {
+ if (err.message.includes('null bytes') || path.dirname(pth) === pth) {
+ throw err;
+ }
+
+ make(path.dirname(pth));
+ return make(pth);
+ }
+
+ try {
+ if (!opts.fs.statSync(pth).isDirectory()) {
+ throw new Error('The path is not a directory');
+ }
+ } catch (_) {
+ throw err;
+ }
+ }
+
+ return pth;
+ };
+
+ return make(path.resolve(input));
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/license b/deps/npm/node_modules/make-dir/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/license
+++ b/deps/npm/node_modules/make-dir/license
diff --git a/deps/npm/node_modules/make-dir/package.json b/deps/npm/node_modules/make-dir/package.json
new file mode 100644
index 0000000000..fac42a6304
--- /dev/null
+++ b/deps/npm/node_modules/make-dir/package.json
@@ -0,0 +1,86 @@
+{
+ "_from": "make-dir@^1.0.0",
+ "_id": "make-dir@1.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
+ "_location": "/make-dir",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "make-dir@^1.0.0",
+ "name": "make-dir",
+ "escapedName": "make-dir",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/configstore"
+ ],
+ "_resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "_shasum": "79c1033b80515bd6d24ec9933e860ca75ee27f0c",
+ "_spec": "make-dir@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/configstore",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/make-dir/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "pify": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Make a directory and its parents if needed - Think `mkdir -p`",
+ "devDependencies": {
+ "ava": "*",
+ "codecov": "^3.0.0",
+ "graceful-fs": "^4.1.11",
+ "nyc": "^11.3.0",
+ "path-type": "^3.0.0",
+ "tempy": "^0.2.1",
+ "xo": "^0.20.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/make-dir#readme",
+ "keywords": [
+ "mkdir",
+ "mkdirp",
+ "make",
+ "directories",
+ "dir",
+ "dirs",
+ "folders",
+ "directory",
+ "folder",
+ "path",
+ "parent",
+ "parents",
+ "intermediate",
+ "recursively",
+ "recursive",
+ "create",
+ "fs",
+ "filesystem",
+ "file-system"
+ ],
+ "license": "MIT",
+ "name": "make-dir",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/make-dir.git"
+ },
+ "scripts": {
+ "test": "xo && nyc ava"
+ },
+ "version": "1.3.0"
+}
diff --git a/deps/npm/node_modules/make-dir/readme.md b/deps/npm/node_modules/make-dir/readme.md
new file mode 100644
index 0000000000..8a32bf4714
--- /dev/null
+++ b/deps/npm/node_modules/make-dir/readme.md
@@ -0,0 +1,116 @@
+# make-dir [![Build Status: macOS & Linux](https://travis-ci.org/sindresorhus/make-dir.svg?branch=master)](https://travis-ci.org/sindresorhus/make-dir) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/e0vtt8y600w91gcs/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/make-dir/branch/master) [![codecov](https://codecov.io/gh/sindresorhus/make-dir/branch/master/graph/badge.svg)](https://codecov.io/gh/sindresorhus/make-dir)
+
+> Make a directory and its parents if needed - Think `mkdir -p`
+
+
+## Advantages over [`mkdirp`](https://github.com/substack/node-mkdirp)
+
+- Promise API *(Async/await ready!)*
+- Fixes many `mkdirp` issues: [#96](https://github.com/substack/node-mkdirp/pull/96) [#70](https://github.com/substack/node-mkdirp/issues/70) [#66](https://github.com/substack/node-mkdirp/issues/66)
+- 100% test coverage
+- CI-tested on macOS, Linux, and Windows
+- Actively maintained
+- Doesn't bundle a CLI
+
+
+## Install
+
+```
+$ npm install make-dir
+```
+
+
+## Usage
+
+```
+$ pwd
+/Users/sindresorhus/fun
+$ tree
+.
+```
+
+```js
+const makeDir = require('make-dir');
+
+makeDir('unicorn/rainbow/cake').then(path => {
+ console.log(path);
+ //=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
+});
+```
+
+```
+$ tree
+.
+ā””ā”€ā”€ unicorn
+ ā””ā”€ā”€ rainbow
+ ā””ā”€ā”€ cake
+```
+
+Multiple directories:
+
+```js
+const makeDir = require('make-dir');
+
+Promise.all([
+ makeDir('unicorn/rainbow')
+ makeDir('foo/bar')
+]).then(paths => {
+ console.log(paths);
+ /*
+ [
+ '/Users/sindresorhus/fun/unicorn/rainbow',
+ '/Users/sindresorhus/fun/foo/bar'
+ ]
+ */
+});
+```
+
+
+## API
+
+### makeDir(path, [options])
+
+Returns a `Promise` for the path to the created directory.
+
+### makeDir.sync(path, [options])
+
+Returns the path to the created directory.
+
+#### path
+
+Type: `string`
+
+Directory to create.
+
+#### options
+
+Type: `Object`
+
+##### mode
+
+Type: `integer`<br>
+Default: `0o777 & (~process.umask())`
+
+Directory [permissions](https://x-team.com/blog/file-system-permissions-umask-node-js/).
+
+##### fs
+
+Type: `Object`<br>
+Default: `require('fs')`
+
+Use a custom `fs` implementation. For example [`graceful-fs`](https://github.com/isaacs/node-graceful-fs).
+
+
+## Related
+
+- [make-dir-cli](https://github.com/sindresorhus/make-dir-cli) - CLI for this module
+- [del](https://github.com/sindresorhus/del) - Delete files and directories
+- [globby](https://github.com/sindresorhus/globby) - User-friendly glob matching
+- [cpy](https://github.com/sindresorhus/cpy) - Copy files
+- [cpy-cli](https://github.com/sindresorhus/cpy-cli) - Copy files on the command-line
+- [move-file](https://github.com/sindresorhus/move-file) - Move a file
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/make-fetch-happen/CHANGELOG.md b/deps/npm/node_modules/make-fetch-happen/CHANGELOG.md
new file mode 100644
index 0000000000..b83beda413
--- /dev/null
+++ b/deps/npm/node_modules/make-fetch-happen/CHANGELOG.md
@@ -0,0 +1,550 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="4.0.1"></a>
+## [4.0.1](https://github.com/zkat/make-fetch-happen/compare/v4.0.0...v4.0.1) (2018-04-12)
+
+
+### Bug Fixes
+
+* **integrity:** use new sri.match() for verification ([4f371a0](https://github.com/zkat/make-fetch-happen/commit/4f371a0))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/zkat/make-fetch-happen/compare/v3.0.0...v4.0.0) (2018-04-09)
+
+
+### meta
+
+* drop node@4, add node@9 ([7b0191a](https://github.com/zkat/make-fetch-happen/commit/7b0191a))
+
+
+### BREAKING CHANGES
+
+* node@4 is no longer supported
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/zkat/make-fetch-happen/compare/v2.6.0...v3.0.0) (2018-03-12)
+
+
+### Bug Fixes
+
+* **license:** switch to ISC ([#49](https://github.com/zkat/make-fetch-happen/issues/49)) ([bf90c6d](https://github.com/zkat/make-fetch-happen/commit/bf90c6d))
+* **standard:** standard@11 update ([ff0aa70](https://github.com/zkat/make-fetch-happen/commit/ff0aa70))
+
+
+### BREAKING CHANGES
+
+* **license:** license changed from CC0 to ISC.
+
+
+
+<a name="2.6.0"></a>
+# [2.6.0](https://github.com/zkat/make-fetch-happen/compare/v2.5.0...v2.6.0) (2017-11-14)
+
+
+### Bug Fixes
+
+* **integrity:** disable node-fetch compress when checking integrity (#42) ([a7cc74c](https://github.com/zkat/make-fetch-happen/commit/a7cc74c))
+
+
+### Features
+
+* **onretry:** Add `options.onRetry` (#48) ([f90ccff](https://github.com/zkat/make-fetch-happen/commit/f90ccff))
+
+
+
+<a name="2.5.0"></a>
+# [2.5.0](https://github.com/zkat/make-fetch-happen/compare/v2.4.13...v2.5.0) (2017-08-24)
+
+
+### Bug Fixes
+
+* **agent:** support timeout durations greater than 30 seconds ([04875ae](https://github.com/zkat/make-fetch-happen/commit/04875ae)), closes [#35](https://github.com/zkat/make-fetch-happen/issues/35)
+
+
+### Features
+
+* **cache:** export cache deletion functionality (#40) ([3da4250](https://github.com/zkat/make-fetch-happen/commit/3da4250))
+
+
+
+<a name="2.4.13"></a>
+## [2.4.13](https://github.com/zkat/make-fetch-happen/compare/v2.4.12...v2.4.13) (2017-06-29)
+
+
+### Bug Fixes
+
+* **deps:** bump other deps for bugfixes ([eab8297](https://github.com/zkat/make-fetch-happen/commit/eab8297))
+* **proxy:** bump proxy deps with bugfixes (#32) ([632f860](https://github.com/zkat/make-fetch-happen/commit/632f860)), closes [#32](https://github.com/zkat/make-fetch-happen/issues/32)
+
+
+
+<a name="2.4.12"></a>
+## [2.4.12](https://github.com/zkat/make-fetch-happen/compare/v2.4.11...v2.4.12) (2017-06-06)
+
+
+### Bug Fixes
+
+* **cache:** encode x-local-cache-etc headers to be header-safe ([dc9fb1b](https://github.com/zkat/make-fetch-happen/commit/dc9fb1b))
+
+
+
+<a name="2.4.11"></a>
+## [2.4.11](https://github.com/zkat/make-fetch-happen/compare/v2.4.10...v2.4.11) (2017-06-05)
+
+
+### Bug Fixes
+
+* **deps:** bump deps with ssri fix ([bef1994](https://github.com/zkat/make-fetch-happen/commit/bef1994))
+
+
+
+<a name="2.4.10"></a>
+## [2.4.10](https://github.com/zkat/make-fetch-happen/compare/v2.4.9...v2.4.10) (2017-05-31)
+
+
+### Bug Fixes
+
+* **deps:** bump dep versions with bugfixes ([0af4003](https://github.com/zkat/make-fetch-happen/commit/0af4003))
+* **proxy:** use auth parameter for proxy authentication (#30) ([c687306](https://github.com/zkat/make-fetch-happen/commit/c687306))
+
+
+
+<a name="2.4.9"></a>
+## [2.4.9](https://github.com/zkat/make-fetch-happen/compare/v2.4.8...v2.4.9) (2017-05-25)
+
+
+### Bug Fixes
+
+* **cache:** use the passed-in promise for resolving cache stuff ([4c46257](https://github.com/zkat/make-fetch-happen/commit/4c46257))
+
+
+
+<a name="2.4.8"></a>
+## [2.4.8](https://github.com/zkat/make-fetch-happen/compare/v2.4.7...v2.4.8) (2017-05-25)
+
+
+### Bug Fixes
+
+* **cache:** pass uid/gid/Promise through to cache ([a847c92](https://github.com/zkat/make-fetch-happen/commit/a847c92))
+
+
+
+<a name="2.4.7"></a>
+## [2.4.7](https://github.com/zkat/make-fetch-happen/compare/v2.4.6...v2.4.7) (2017-05-24)
+
+
+### Bug Fixes
+
+* **deps:** pull in various fixes from deps ([fc2a587](https://github.com/zkat/make-fetch-happen/commit/fc2a587))
+
+
+
+<a name="2.4.6"></a>
+## [2.4.6](https://github.com/zkat/make-fetch-happen/compare/v2.4.5...v2.4.6) (2017-05-24)
+
+
+### Bug Fixes
+
+* **proxy:** choose agent for http(s)-proxy by protocol of destUrl ([ea4832a](https://github.com/zkat/make-fetch-happen/commit/ea4832a))
+* **proxy:** make socks proxy working ([1de810a](https://github.com/zkat/make-fetch-happen/commit/1de810a))
+* **proxy:** revert previous proxy solution ([563b0d8](https://github.com/zkat/make-fetch-happen/commit/563b0d8))
+
+
+
+<a name="2.4.5"></a>
+## [2.4.5](https://github.com/zkat/make-fetch-happen/compare/v2.4.4...v2.4.5) (2017-05-24)
+
+
+### Bug Fixes
+
+* **proxy:** use the destination url when determining agent ([1a714e7](https://github.com/zkat/make-fetch-happen/commit/1a714e7))
+
+
+
+<a name="2.4.4"></a>
+## [2.4.4](https://github.com/zkat/make-fetch-happen/compare/v2.4.3...v2.4.4) (2017-05-23)
+
+
+### Bug Fixes
+
+* **redirect:** handle redirects explicitly (#27) ([4c4af54](https://github.com/zkat/make-fetch-happen/commit/4c4af54))
+
+
+
+<a name="2.4.3"></a>
+## [2.4.3](https://github.com/zkat/make-fetch-happen/compare/v2.4.2...v2.4.3) (2017-05-06)
+
+
+### Bug Fixes
+
+* **redirect:** redirects now delete authorization if hosts fail to match ([c071805](https://github.com/zkat/make-fetch-happen/commit/c071805))
+
+
+
+<a name="2.4.2"></a>
+## [2.4.2](https://github.com/zkat/make-fetch-happen/compare/v2.4.1...v2.4.2) (2017-05-04)
+
+
+### Bug Fixes
+
+* **cache:** reduce race condition window by checking for content ([24544b1](https://github.com/zkat/make-fetch-happen/commit/24544b1))
+* **match:** Rewrite the conditional stream logic (#25) ([66bba4b](https://github.com/zkat/make-fetch-happen/commit/66bba4b))
+
+
+
+<a name="2.4.1"></a>
+## [2.4.1](https://github.com/zkat/make-fetch-happen/compare/v2.4.0...v2.4.1) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoization:** missed spots + allow passthrough of memo objs ([ac0cd12](https://github.com/zkat/make-fetch-happen/commit/ac0cd12))
+
+
+
+<a name="2.4.0"></a>
+# [2.4.0](https://github.com/zkat/make-fetch-happen/compare/v2.3.0...v2.4.0) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoize:** cacache had a broken memoizer ([8a9ed4c](https://github.com/zkat/make-fetch-happen/commit/8a9ed4c))
+
+
+### Features
+
+* **memoization:** only slurp stuff into memory if opts.memoize is not false ([0744adc](https://github.com/zkat/make-fetch-happen/commit/0744adc))
+
+
+
+<a name="2.3.0"></a>
+# [2.3.0](https://github.com/zkat/make-fetch-happen/compare/v2.2.6...v2.3.0) (2017-04-27)
+
+
+### Features
+
+* **agent:** added opts.strictSSL and opts.localAddress ([c35015a](https://github.com/zkat/make-fetch-happen/commit/c35015a))
+* **proxy:** Added opts.noProxy and NO_PROXY support ([f45c915](https://github.com/zkat/make-fetch-happen/commit/f45c915))
+
+
+
+<a name="2.2.6"></a>
+## [2.2.6](https://github.com/zkat/make-fetch-happen/compare/v2.2.5...v2.2.6) (2017-04-26)
+
+
+### Bug Fixes
+
+* **agent:** check uppercase & lowercase proxy env (#24) ([acf2326](https://github.com/zkat/make-fetch-happen/commit/acf2326)), closes [#22](https://github.com/zkat/make-fetch-happen/issues/22)
+* **deps:** switch to node-fetch-npm and stop bundling ([3db603b](https://github.com/zkat/make-fetch-happen/commit/3db603b))
+
+
+
+<a name="2.2.5"></a>
+## [2.2.5](https://github.com/zkat/make-fetch-happen/compare/v2.2.4...v2.2.5) (2017-04-23)
+
+
+### Bug Fixes
+
+* **deps:** bump cacache and use its size feature ([926c1d3](https://github.com/zkat/make-fetch-happen/commit/926c1d3))
+
+
+
+<a name="2.2.4"></a>
+## [2.2.4](https://github.com/zkat/make-fetch-happen/compare/v2.2.3...v2.2.4) (2017-04-18)
+
+
+### Bug Fixes
+
+* **integrity:** hash verification issues fixed ([07f9402](https://github.com/zkat/make-fetch-happen/commit/07f9402))
+
+
+
+<a name="2.2.3"></a>
+## [2.2.3](https://github.com/zkat/make-fetch-happen/compare/v2.2.2...v2.2.3) (2017-04-18)
+
+
+### Bug Fixes
+
+* **staleness:** responses older than 8h were never stale :< ([b54dd75](https://github.com/zkat/make-fetch-happen/commit/b54dd75))
+* **warning:** remove spurious warning, make format more spec-compliant ([2e4f6bb](https://github.com/zkat/make-fetch-happen/commit/2e4f6bb))
+
+
+
+<a name="2.2.2"></a>
+## [2.2.2](https://github.com/zkat/make-fetch-happen/compare/v2.2.1...v2.2.2) (2017-04-12)
+
+
+### Bug Fixes
+
+* **retry:** stop retrying 404s ([6fafd53](https://github.com/zkat/make-fetch-happen/commit/6fafd53))
+
+
+
+<a name="2.2.1"></a>
+## [2.2.1](https://github.com/zkat/make-fetch-happen/compare/v2.2.0...v2.2.1) (2017-04-10)
+
+
+### Bug Fixes
+
+* **deps:** move test-only deps to devDeps ([2daaf80](https://github.com/zkat/make-fetch-happen/commit/2daaf80))
+
+
+
+<a name="2.2.0"></a>
+# [2.2.0](https://github.com/zkat/make-fetch-happen/compare/v2.1.0...v2.2.0) (2017-04-09)
+
+
+### Bug Fixes
+
+* **cache:** treat caches as private ([57b7dc2](https://github.com/zkat/make-fetch-happen/commit/57b7dc2))
+
+
+### Features
+
+* **retry:** accept shorthand retry settings ([dfed69d](https://github.com/zkat/make-fetch-happen/commit/dfed69d))
+
+
+
+<a name="2.1.0"></a>
+# [2.1.0](https://github.com/zkat/make-fetch-happen/compare/v2.0.4...v2.1.0) (2017-04-09)
+
+
+### Features
+
+* **cache:** cache now obeys Age and a variety of other things (#13) ([7b9652d](https://github.com/zkat/make-fetch-happen/commit/7b9652d))
+
+
+
+<a name="2.0.4"></a>
+## [2.0.4](https://github.com/zkat/make-fetch-happen/compare/v2.0.3...v2.0.4) (2017-04-09)
+
+
+### Bug Fixes
+
+* **agent:** accept Request as fetch input, not just strings ([b71669a](https://github.com/zkat/make-fetch-happen/commit/b71669a))
+
+
+
+<a name="2.0.3"></a>
+## [2.0.3](https://github.com/zkat/make-fetch-happen/compare/v2.0.2...v2.0.3) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** seriously ([c29e7e7](https://github.com/zkat/make-fetch-happen/commit/c29e7e7))
+
+
+
+<a name="2.0.2"></a>
+## [2.0.2](https://github.com/zkat/make-fetch-happen/compare/v2.0.1...v2.0.2) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** use bundleDeps instead ([c36ebf0](https://github.com/zkat/make-fetch-happen/commit/c36ebf0))
+
+
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/zkat/make-fetch-happen/compare/v2.0.0...v2.0.1) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** make sure node-fetch tarball included in release ([3bf49d1](https://github.com/zkat/make-fetch-happen/commit/3bf49d1))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/make-fetch-happen/compare/v1.7.0...v2.0.0) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** manually pull in newer node-fetch to avoid babel prod dep ([66e5e87](https://github.com/zkat/make-fetch-happen/commit/66e5e87))
+* **retry:** be more specific about when we retry ([a47b782](https://github.com/zkat/make-fetch-happen/commit/a47b782))
+
+
+### Features
+
+* **agent:** add ca/cert/key support to auto-agent (#15) ([57585a7](https://github.com/zkat/make-fetch-happen/commit/57585a7))
+
+
+### BREAKING CHANGES
+
+* **agent:** pac proxies are no longer supported.
+* **retry:** Retry logic has changes.
+
+* 404s, 420s, and 429s all retry now.
+* ENOTFOUND no longer retries.
+* Only ECONNRESET, ECONNREFUSED, EADDRINUSE, ETIMEDOUT, and `request-timeout` errors are retried.
+
+
+
+<a name="1.7.0"></a>
+# [1.7.0](https://github.com/zkat/make-fetch-happen/compare/v1.6.0...v1.7.0) (2017-04-08)
+
+
+### Features
+
+* **cache:** add useful headers to inform users about cached data ([9bd7b00](https://github.com/zkat/make-fetch-happen/commit/9bd7b00))
+
+
+
+<a name="1.6.0"></a>
+# [1.6.0](https://github.com/zkat/make-fetch-happen/compare/v1.5.1...v1.6.0) (2017-04-06)
+
+
+### Features
+
+* **agent:** better, keepalive-supporting, default http agents ([16277f6](https://github.com/zkat/make-fetch-happen/commit/16277f6))
+
+
+
+<a name="1.5.1"></a>
+## [1.5.1](https://github.com/zkat/make-fetch-happen/compare/v1.5.0...v1.5.1) (2017-04-05)
+
+
+### Bug Fixes
+
+* **cache:** bump cacache for its fixed error messages ([2f2b916](https://github.com/zkat/make-fetch-happen/commit/2f2b916))
+* **cache:** fix handling of errors in cache reads ([5729222](https://github.com/zkat/make-fetch-happen/commit/5729222))
+
+
+
+<a name="1.5.0"></a>
+# [1.5.0](https://github.com/zkat/make-fetch-happen/compare/v1.4.0...v1.5.0) (2017-04-04)
+
+
+### Features
+
+* **retry:** retry requests on 408 timeouts, too ([8d8b5bd](https://github.com/zkat/make-fetch-happen/commit/8d8b5bd))
+
+
+
+<a name="1.4.0"></a>
+# [1.4.0](https://github.com/zkat/make-fetch-happen/compare/v1.3.1...v1.4.0) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** stop relying on BB.catch ([2b04494](https://github.com/zkat/make-fetch-happen/commit/2b04494))
+
+
+### Features
+
+* **retry:** report retry attempt number as extra header ([fd50927](https://github.com/zkat/make-fetch-happen/commit/fd50927))
+
+
+
+<a name="1.3.1"></a>
+## [1.3.1](https://github.com/zkat/make-fetch-happen/compare/v1.3.0...v1.3.1) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** pretend cache entry is missing on ENOENT ([9c2bb26](https://github.com/zkat/make-fetch-happen/commit/9c2bb26))
+
+
+
+<a name="1.3.0"></a>
+# [1.3.0](https://github.com/zkat/make-fetch-happen/compare/v1.2.1...v1.3.0) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** if metadata is missing for some odd reason, ignore the entry ([a021a6b](https://github.com/zkat/make-fetch-happen/commit/a021a6b))
+
+
+### Features
+
+* **cache:** add special headers when request was loaded straight from cache ([8a7dbd1](https://github.com/zkat/make-fetch-happen/commit/8a7dbd1))
+* **cache:** allow configuring algorithms to be calculated on insertion ([bf4a0f2](https://github.com/zkat/make-fetch-happen/commit/bf4a0f2))
+
+
+
+<a name="1.2.1"></a>
+## [1.2.1](https://github.com/zkat/make-fetch-happen/compare/v1.2.0...v1.2.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** update cacache and ssri and change EBADCHECKSUM -> EINTEGRITY ([b6cf6f6](https://github.com/zkat/make-fetch-happen/commit/b6cf6f6))
+
+
+
+<a name="1.2.0"></a>
+# [1.2.0](https://github.com/zkat/make-fetch-happen/compare/v1.1.0...v1.2.0) (2017-04-03)
+
+
+### Features
+
+* **integrity:** full Subresource Integrity support (#10) ([a590159](https://github.com/zkat/make-fetch-happen/commit/a590159))
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/zkat/make-fetch-happen/compare/v1.0.1...v1.1.0) (2017-04-01)
+
+
+### Features
+
+* **opts:** fetch.defaults() for default options ([522a65e](https://github.com/zkat/make-fetch-happen/commit/522a65e))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/zkat/make-fetch-happen/compare/v1.0.0...v1.0.1) (2017-04-01)
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-04-01)
+
+
+### Bug Fixes
+
+* **cache:** default on cache-control header ([b872a2c](https://github.com/zkat/make-fetch-happen/commit/b872a2c))
+* standard stuff and cache matching ([753f2c2](https://github.com/zkat/make-fetch-happen/commit/753f2c2))
+* **agent:** nudge around things with opts.agent ([ed62b57](https://github.com/zkat/make-fetch-happen/commit/ed62b57))
+* **agent:** {agent: false} has special behavior ([b8cc923](https://github.com/zkat/make-fetch-happen/commit/b8cc923))
+* **cache:** invalidation on non-GET ([fe78fac](https://github.com/zkat/make-fetch-happen/commit/fe78fac))
+* **cache:** make force-cache and only-if-cached work as expected ([f50e9df](https://github.com/zkat/make-fetch-happen/commit/f50e9df))
+* **cache:** more spec compliance ([d5a56db](https://github.com/zkat/make-fetch-happen/commit/d5a56db))
+* **cache:** only cache 200 gets ([0abb25a](https://github.com/zkat/make-fetch-happen/commit/0abb25a))
+* **cache:** only load cache code if cache opt is a string ([250fcd5](https://github.com/zkat/make-fetch-happen/commit/250fcd5))
+* **cache:** oops ([e3fa15a](https://github.com/zkat/make-fetch-happen/commit/e3fa15a))
+* **cache:** refactored warning removal into main file ([5b0a9f9](https://github.com/zkat/make-fetch-happen/commit/5b0a9f9))
+* **cache:** req constructor no longer needed in Cache ([5b74cbc](https://github.com/zkat/make-fetch-happen/commit/5b74cbc))
+* **cache:** standard fetch api calls cacheMode "cache" ([6fba805](https://github.com/zkat/make-fetch-happen/commit/6fba805))
+* **cache:** was using wrong method for non-GET/HEAD cache invalidation ([810763a](https://github.com/zkat/make-fetch-happen/commit/810763a))
+* **caching:** a bunch of cache-related fixes ([8ebda1d](https://github.com/zkat/make-fetch-happen/commit/8ebda1d))
+* **deps:** `cacache[@6](https://github.com/6).3.0` - race condition fixes ([9528442](https://github.com/zkat/make-fetch-happen/commit/9528442))
+* **freshness:** fix regex for cacheControl matching ([070db86](https://github.com/zkat/make-fetch-happen/commit/070db86))
+* **freshness:** fixed default freshness heuristic value ([5d29e88](https://github.com/zkat/make-fetch-happen/commit/5d29e88))
+* **logging:** remove console.log calls ([a1d0a47](https://github.com/zkat/make-fetch-happen/commit/a1d0a47))
+* **method:** node-fetch guarantees uppercase ([a1d68d6](https://github.com/zkat/make-fetch-happen/commit/a1d68d6))
+* **opts:** simplified opts handling ([516fd6e](https://github.com/zkat/make-fetch-happen/commit/516fd6e))
+* **proxy:** pass proxy option directly to ProxyAgent ([3398460](https://github.com/zkat/make-fetch-happen/commit/3398460))
+* **retry:** false -> {retries: 0} ([297fbb6](https://github.com/zkat/make-fetch-happen/commit/297fbb6))
+* **retry:** only retry put if body is not a stream ([a24e599](https://github.com/zkat/make-fetch-happen/commit/a24e599))
+* **retry:** skip retries if body is a stream for ANY method ([780c0f8](https://github.com/zkat/make-fetch-happen/commit/780c0f8))
+
+
+### Features
+
+* **api:** initial implementation -- can make and cache requests ([7d55b49](https://github.com/zkat/make-fetch-happen/commit/7d55b49))
+* **fetch:** injectable cache, and retry support ([87b84bf](https://github.com/zkat/make-fetch-happen/commit/87b84bf))
+
+
+### BREAKING CHANGES
+
+* **cache:** opts.cache -> opts.cacheManager; opts.cacheMode -> opts.cache
+* **fetch:** opts.cache accepts a Cache-like obj or a path. Requests are now retried.
+* **api:** actual api implemented
diff --git a/deps/npm/node_modules/make-fetch-happen/LICENSE b/deps/npm/node_modules/make-fetch-happen/LICENSE
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/make-fetch-happen/LICENSE
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/pacote/node_modules/make-fetch-happen/README.md b/deps/npm/node_modules/make-fetch-happen/README.md
index 4d12d8dae7..4d12d8dae7 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/README.md
+++ b/deps/npm/node_modules/make-fetch-happen/README.md
diff --git a/deps/npm/node_modules/make-fetch-happen/agent.js b/deps/npm/node_modules/make-fetch-happen/agent.js
new file mode 100644
index 0000000000..55675946ad
--- /dev/null
+++ b/deps/npm/node_modules/make-fetch-happen/agent.js
@@ -0,0 +1,171 @@
+'use strict'
+const LRU = require('lru-cache')
+const url = require('url')
+
+let AGENT_CACHE = new LRU({ max: 50 })
+let HttpsAgent
+let HttpAgent
+
+module.exports = getAgent
+
+function getAgent (uri, opts) {
+ const parsedUri = url.parse(typeof uri === 'string' ? uri : uri.url)
+ const isHttps = parsedUri.protocol === 'https:'
+ const pxuri = getProxyUri(uri, opts)
+
+ const key = [
+ `https:${isHttps}`,
+ pxuri
+ ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}`
+ : '>no-proxy<',
+ `local-address:${opts.localAddress || '>no-local-address<'}`,
+ `strict-ssl:${isHttps ? !!opts.strictSSL : '>no-strict-ssl<'}`,
+ `ca:${(isHttps && opts.ca) || '>no-ca<'}`,
+ `cert:${(isHttps && opts.cert) || '>no-cert<'}`,
+ `key:${(isHttps && opts.key) || '>no-key<'}`
+ ].join(':')
+
+ if (opts.agent != null) { // `agent: false` has special behavior!
+ return opts.agent
+ }
+
+ if (AGENT_CACHE.peek(key)) {
+ return AGENT_CACHE.get(key)
+ }
+
+ if (pxuri) {
+ const proxy = getProxy(pxuri, opts, isHttps)
+ AGENT_CACHE.set(key, proxy)
+ return proxy
+ }
+
+ if (isHttps && !HttpsAgent) {
+ HttpsAgent = require('agentkeepalive').HttpsAgent
+ } else if (!isHttps && !HttpAgent) {
+ HttpAgent = require('agentkeepalive')
+ }
+
+ // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout
+ // of zero disables the timeout behavior (OS limits still apply). Else, if
+ // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that
+ // the node-fetch-npm timeout will always fire first, giving us more
+ // consistent errors.
+ const agentTimeout = opts.timeout === 0 ? 0 : opts.timeout + 1
+
+ const agent = isHttps ? new HttpsAgent({
+ maxSockets: opts.maxSockets || 15,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ localAddress: opts.localAddress,
+ rejectUnauthorized: opts.strictSSL,
+ timeout: agentTimeout
+ }) : new HttpAgent({
+ maxSockets: opts.maxSockets || 15,
+ localAddress: opts.localAddress,
+ timeout: agentTimeout
+ })
+ AGENT_CACHE.set(key, agent)
+ return agent
+}
+
+function checkNoProxy (uri, opts) {
+ const host = url.parse(uri).hostname.split('.').reverse()
+ let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
+ if (typeof noproxy === 'string') {
+ noproxy = noproxy.split(/\s*,\s*/g)
+ }
+ return noproxy && noproxy.some(no => {
+ const noParts = no.split('.').filter(x => x).reverse()
+ if (!noParts.length) { return false }
+ for (let i = 0; i < noParts.length; i++) {
+ if (host[i] !== noParts[i]) {
+ return false
+ }
+ }
+ return true
+ })
+}
+
+module.exports.getProcessEnv = getProcessEnv
+
+function getProcessEnv (env) {
+ if (!env) { return }
+
+ let value
+
+ if (Array.isArray(env)) {
+ for (let e of env) {
+ value = process.env[e] ||
+ process.env[e.toUpperCase()] ||
+ process.env[e.toLowerCase()]
+ if (typeof value !== 'undefined') { break }
+ }
+ }
+
+ if (typeof env === 'string') {
+ value = process.env[env] ||
+ process.env[env.toUpperCase()] ||
+ process.env[env.toLowerCase()]
+ }
+
+ return value
+}
+
+function getProxyUri (uri, opts) {
+ const protocol = url.parse(uri).protocol
+
+ const proxy = opts.proxy || (
+ protocol === 'https:' && getProcessEnv('https_proxy')
+ ) || (
+ protocol === 'http:' && getProcessEnv(['https_proxy', 'http_proxy', 'proxy'])
+ )
+ if (!proxy) { return null }
+
+ const parsedProxy = (typeof proxy === 'string') ? url.parse(proxy) : proxy
+
+ return !checkNoProxy(uri, opts) && parsedProxy
+}
+
+let HttpProxyAgent
+let HttpsProxyAgent
+let SocksProxyAgent
+function getProxy (proxyUrl, opts, isHttps) {
+ let popts = {
+ host: proxyUrl.hostname,
+ port: proxyUrl.port,
+ protocol: proxyUrl.protocol,
+ path: proxyUrl.path,
+ auth: proxyUrl.auth,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ timeout: opts.timeout === 0 ? 0 : opts.timeout + 1,
+ localAddress: opts.localAddress,
+ maxSockets: opts.maxSockets || 15,
+ rejectUnauthorized: opts.strictSSL
+ }
+
+ if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') {
+ if (!isHttps) {
+ if (!HttpProxyAgent) {
+ HttpProxyAgent = require('http-proxy-agent')
+ }
+
+ return new HttpProxyAgent(popts)
+ } else {
+ if (!HttpsProxyAgent) {
+ HttpsProxyAgent = require('https-proxy-agent')
+ }
+
+ return new HttpsProxyAgent(popts)
+ }
+ }
+ if (proxyUrl.protocol.startsWith('socks')) {
+ if (!SocksProxyAgent) {
+ SocksProxyAgent = require('socks-proxy-agent')
+ }
+
+ return new SocksProxyAgent(popts)
+ }
+}
diff --git a/deps/npm/node_modules/make-fetch-happen/cache.js b/deps/npm/node_modules/make-fetch-happen/cache.js
new file mode 100644
index 0000000000..0c519e69fb
--- /dev/null
+++ b/deps/npm/node_modules/make-fetch-happen/cache.js
@@ -0,0 +1,249 @@
+'use strict'
+
+const cacache = require('cacache')
+const fetch = require('node-fetch-npm')
+const pipe = require('mississippi').pipe
+const ssri = require('ssri')
+const through = require('mississippi').through
+const to = require('mississippi').to
+const url = require('url')
+const stream = require('stream')
+
+const MAX_MEM_SIZE = 5 * 1024 * 1024 // 5MB
+
+function cacheKey (req) {
+ const parsed = url.parse(req.url)
+ return `make-fetch-happen:request-cache:${
+ url.format({
+ protocol: parsed.protocol,
+ slashes: parsed.slashes,
+ host: parsed.host,
+ hostname: parsed.hostname,
+ pathname: parsed.pathname
+ })
+ }`
+}
+
+// This is a cacache-based implementation of the Cache standard,
+// using node-fetch.
+// docs: https://developer.mozilla.org/en-US/docs/Web/API/Cache
+//
+module.exports = class Cache {
+ constructor (path, opts) {
+ this._path = path
+ this._uid = opts && opts.uid
+ this._gid = opts && opts.gid
+ this.Promise = (opts && opts.Promise) || Promise
+ }
+
+ // Returns a Promise that resolves to the response associated with the first
+ // matching request in the Cache object.
+ match (req, opts) {
+ opts = opts || {}
+ const key = cacheKey(req)
+ return cacache.get.info(this._path, key).then(info => {
+ return info && cacache.get.hasContent(
+ this._path, info.integrity, opts
+ ).then(exists => exists && info)
+ }).then(info => {
+ if (info && info.metadata && matchDetails(req, {
+ url: info.metadata.url,
+ reqHeaders: new fetch.Headers(info.metadata.reqHeaders),
+ resHeaders: new fetch.Headers(info.metadata.resHeaders),
+ cacheIntegrity: info.integrity,
+ integrity: opts && opts.integrity
+ })) {
+ const resHeaders = new fetch.Headers(info.metadata.resHeaders)
+ addCacheHeaders(resHeaders, this._path, key, info.integrity, info.time)
+ if (req.method === 'HEAD') {
+ return new fetch.Response(null, {
+ url: req.url,
+ headers: resHeaders,
+ status: 200
+ })
+ }
+ let body
+ const cachePath = this._path
+ // avoid opening cache file handles until a user actually tries to
+ // read from it.
+ if (opts.memoize !== false && info.size > MAX_MEM_SIZE) {
+ body = new stream.PassThrough()
+ const realRead = body._read
+ body._read = function (size) {
+ body._read = realRead
+ pipe(
+ cacache.get.stream.byDigest(cachePath, info.integrity, {
+ memoize: opts.memoize
+ }),
+ body,
+ err => body.emit(err))
+ return realRead.call(this, size)
+ }
+ } else {
+ let readOnce = false
+ // cacache is much faster at bulk reads
+ body = new stream.Readable({
+ read () {
+ if (readOnce) return this.push(null)
+ readOnce = true
+ cacache.get.byDigest(cachePath, info.integrity, {
+ memoize: opts.memoize
+ }).then(data => {
+ this.push(data)
+ this.push(null)
+ }, err => this.emit('error', err))
+ }
+ })
+ }
+ return this.Promise.resolve(new fetch.Response(body, {
+ url: req.url,
+ headers: resHeaders,
+ status: 200,
+ size: info.size
+ }))
+ }
+ })
+ }
+
+ // Takes both a request and its response and adds it to the given cache.
+ put (req, response, opts) {
+ opts = opts || {}
+ const size = response.headers.get('content-length')
+ const fitInMemory = !!size && opts.memoize !== false && size < MAX_MEM_SIZE
+ const ckey = cacheKey(req)
+ const cacheOpts = {
+ algorithms: opts.algorithms,
+ metadata: {
+ url: req.url,
+ reqHeaders: req.headers.raw(),
+ resHeaders: response.headers.raw()
+ },
+ uid: this._uid,
+ gid: this._gid,
+ size,
+ memoize: fitInMemory && opts.memoize
+ }
+ if (req.method === 'HEAD' || response.status === 304) {
+ // Update metadata without writing
+ return cacache.get.info(this._path, ckey).then(info => {
+ // Providing these will bypass content write
+ cacheOpts.integrity = info.integrity
+ addCacheHeaders(
+ response.headers, this._path, ckey, info.integrity, info.time
+ )
+ return new this.Promise((resolve, reject) => {
+ pipe(
+ cacache.get.stream.byDigest(this._path, info.integrity, cacheOpts),
+ cacache.put.stream(this._path, cacheKey(req), cacheOpts),
+ err => err ? reject(err) : resolve(response)
+ )
+ })
+ }).then(() => response)
+ }
+ let buf = []
+ let bufSize = 0
+ let cacheTargetStream = false
+ const cachePath = this._path
+ let cacheStream = to((chunk, enc, cb) => {
+ if (!cacheTargetStream) {
+ if (fitInMemory) {
+ cacheTargetStream =
+ to({highWaterMark: MAX_MEM_SIZE}, (chunk, enc, cb) => {
+ buf.push(chunk)
+ bufSize += chunk.length
+ cb()
+ }, done => {
+ cacache.put(
+ cachePath,
+ cacheKey(req),
+ Buffer.concat(buf, bufSize),
+ cacheOpts
+ ).then(
+ () => done(),
+ done
+ )
+ })
+ } else {
+ cacheTargetStream =
+ cacache.put.stream(cachePath, cacheKey(req), cacheOpts)
+ }
+ }
+ cacheTargetStream.write(chunk, enc, cb)
+ }, done => {
+ cacheTargetStream ? cacheTargetStream.end(done) : done()
+ })
+ const oldBody = response.body
+ const newBody = through({highWaterMark: fitInMemory && MAX_MEM_SIZE})
+ response.body = newBody
+ oldBody.once('error', err => newBody.emit('error', err))
+ newBody.once('error', err => oldBody.emit('error', err))
+ cacheStream.once('error', err => newBody.emit('error', err))
+ pipe(oldBody, to((chunk, enc, cb) => {
+ cacheStream.write(chunk, enc, () => {
+ newBody.write(chunk, enc, cb)
+ })
+ }, done => {
+ cacheStream.end(() => {
+ newBody.end(() => {
+ done()
+ })
+ })
+ }), err => err && newBody.emit('error', err))
+ return response
+ }
+
+ // Finds the Cache entry whose key is the request, and if found, deletes the
+ // Cache entry and returns a Promise that resolves to true. If no Cache entry
+ // is found, it returns false.
+ 'delete' (req, opts) {
+ opts = opts || {}
+ if (typeof opts.memoize === 'object') {
+ if (opts.memoize.reset) {
+ opts.memoize.reset()
+ } else if (opts.memoize.clear) {
+ opts.memoize.clear()
+ } else {
+ Object.keys(opts.memoize).forEach(k => {
+ opts.memoize[k] = null
+ })
+ }
+ }
+ return cacache.rm.entry(
+ this._path,
+ cacheKey(req)
+ // TODO - true/false
+ ).then(() => false)
+ }
+}
+
+function matchDetails (req, cached) {
+ const reqUrl = url.parse(req.url)
+ const cacheUrl = url.parse(cached.url)
+ const vary = cached.resHeaders.get('Vary')
+ // https://tools.ietf.org/html/rfc7234#section-4.1
+ if (vary) {
+ if (vary.match(/\*/)) {
+ return false
+ } else {
+ const fieldsMatch = vary.split(/\s*,\s*/).every(field => {
+ return cached.reqHeaders.get(field) === req.headers.get(field)
+ })
+ if (!fieldsMatch) {
+ return false
+ }
+ }
+ }
+ if (cached.integrity) {
+ return ssri.parse(cached.integrity).match(cached.cacheIntegrity)
+ }
+ reqUrl.hash = null
+ cacheUrl.hash = null
+ return url.format(reqUrl) === url.format(cacheUrl)
+}
+
+function addCacheHeaders (resHeaders, path, key, hash, time) {
+ resHeaders.set('X-Local-Cache', encodeURIComponent(path))
+ resHeaders.set('X-Local-Cache-Key', encodeURIComponent(key))
+ resHeaders.set('X-Local-Cache-Hash', encodeURIComponent(hash))
+ resHeaders.set('X-Local-Cache-Time', new Date(time).toUTCString())
+}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/index.js b/deps/npm/node_modules/make-fetch-happen/index.js
index 0f2c164e19..0f2c164e19 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/index.js
+++ b/deps/npm/node_modules/make-fetch-happen/index.js
diff --git a/deps/npm/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/make-fetch-happen/package.json
new file mode 100644
index 0000000000..9aa7f113c5
--- /dev/null
+++ b/deps/npm/node_modules/make-fetch-happen/package.json
@@ -0,0 +1,95 @@
+{
+ "_from": "make-fetch-happen@^4.0.1",
+ "_id": "make-fetch-happen@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==",
+ "_location": "/make-fetch-happen",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "make-fetch-happen@^4.0.1",
+ "name": "make-fetch-happen",
+ "escapedName": "make-fetch-happen",
+ "rawSpec": "^4.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.1"
+ },
+ "_requiredBy": [
+ "/libnpmhook/npm-registry-fetch",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz",
+ "_shasum": "141497cb878f243ba93136c83d8aba12c216c083",
+ "_spec": "make-fetch-happen@^4.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/pacote",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@zkat.tech"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/make-fetch-happen/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agentkeepalive": "^3.4.1",
+ "cacache": "^11.0.1",
+ "http-cache-semantics": "^3.8.1",
+ "http-proxy-agent": "^2.1.0",
+ "https-proxy-agent": "^2.2.1",
+ "lru-cache": "^4.1.2",
+ "mississippi": "^3.0.0",
+ "node-fetch-npm": "^2.0.2",
+ "promise-retry": "^1.1.1",
+ "socks-proxy-agent": "^4.0.0",
+ "ssri": "^6.0.0"
+ },
+ "deprecated": false,
+ "description": "Opinionated, caching, retrying fetch client",
+ "devDependencies": {
+ "bluebird": "^3.5.1",
+ "mkdirp": "^0.5.1",
+ "nock": "^9.2.3",
+ "npmlog": "^4.1.2",
+ "require-inject": "^1.4.2",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.1",
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tacks": "^1.2.6",
+ "tap": "^11.1.3",
+ "weallbehave": "^1.0.0",
+ "weallcontribute": "^1.0.7"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/zkat/make-fetch-happen#readme",
+ "keywords": [
+ "http",
+ "request",
+ "fetch",
+ "mean girls",
+ "caching",
+ "cache",
+ "subresource integrity"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "make-fetch-happen",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/make-fetch-happen.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap --coverage --nyc-arg=--all --timeout=35 -J test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/warning.js b/deps/npm/node_modules/make-fetch-happen/warning.js
index b8f13cf831..b8f13cf831 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/warning.js
+++ b/deps/npm/node_modules/make-fetch-happen/warning.js
diff --git a/deps/npm/node_modules/meant/package.json b/deps/npm/node_modules/meant/package.json
index 2297da005c..a22398f4bd 100644
--- a/deps/npm/node_modules/meant/package.json
+++ b/deps/npm/node_modules/meant/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "meant@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "meant@1.0.1",
"_id": "meant@1.0.1",
"_inBundle": false,
@@ -16,12 +22,10 @@
"fetchSpec": "1.0.1"
},
"_requiredBy": [
- "#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/meant/-/meant-1.0.1.tgz",
- "_shasum": "66044fea2f23230ec806fb515efea29c44d2115d",
- "_spec": "meant@1.0.1",
+ "_spec": "1.0.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Daijiro Wachi"
@@ -29,8 +33,6 @@
"bugs": {
"url": "https://github.com/watilde/meant/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "Like the `Did you mean?` in git for npm",
"devDependencies": {
"standard": "^8.0.0",
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/index.js b/deps/npm/node_modules/mem/index.js
index aa5a073982..aa5a073982 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/index.js
+++ b/deps/npm/node_modules/mem/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/license b/deps/npm/node_modules/mem/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/load-json-file/license
+++ b/deps/npm/node_modules/mem/license
diff --git a/deps/npm/node_modules/mem/package.json b/deps/npm/node_modules/mem/package.json
new file mode 100644
index 0000000000..27eefe8d72
--- /dev/null
+++ b/deps/npm/node_modules/mem/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "mem@^1.1.0",
+ "_id": "mem@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=",
+ "_location": "/mem",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mem@^1.1.0",
+ "name": "mem",
+ "escapedName": "mem",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/os-locale"
+ ],
+ "_resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
+ "_shasum": "5edd52b485ca1d900fe64895505399a0dfa45f76",
+ "_spec": "mem@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/os-locale",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/mem/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "mimic-fn": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Memoize functions - An optimization used to speed up consecutive function calls by caching the result of calls with identical input",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^1.1.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/mem#readme",
+ "keywords": [
+ "memoize",
+ "function",
+ "mem",
+ "memoization",
+ "cache",
+ "caching",
+ "optimize",
+ "performance",
+ "ttl",
+ "expire",
+ "promise"
+ ],
+ "license": "MIT",
+ "name": "mem",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/mem.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.1.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/readme.md b/deps/npm/node_modules/mem/readme.md
index 7ebab84f0e..7ebab84f0e 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/mem/readme.md
+++ b/deps/npm/node_modules/mem/readme.md
diff --git a/deps/npm/node_modules/mime-db/HISTORY.md b/deps/npm/node_modules/mime-db/HISTORY.md
new file mode 100644
index 0000000000..29a8c4ff8b
--- /dev/null
+++ b/deps/npm/node_modules/mime-db/HISTORY.md
@@ -0,0 +1,368 @@
+1.33.0 / 2018-02-15
+===================
+
+ * Add extensions from IANA for `message/*` types
+ * Add new upstream MIME types
+ * Fix some incorrect OOXML types
+ * Remove `application/font-woff2`
+
+1.32.0 / 2017-11-29
+===================
+
+ * Add new upstream MIME types
+ * Update `text/hjson` to registered `application/hjson`
+ * Add `text/shex` with extension `.shex`
+
+1.31.0 / 2017-10-25
+===================
+
+ * Add `application/raml+yaml` with extension `.raml`
+ * Add `application/wasm` with extension `.wasm`
+ * Add new `font` type from IANA
+ * Add new upstream font extensions
+ * Add new upstream MIME types
+ * Add extensions for JPEG-2000 images
+
+1.30.0 / 2017-08-27
+===================
+
+ * Add `application/vnd.ms-outlook`
+ * Add `application/x-arj`
+ * Add extension `.mjs` to `application/javascript`
+ * Add glTF types and extensions
+ * Add new upstream MIME types
+ * Add `text/x-org`
+ * Add VirtualBox MIME types
+ * Fix `source` records for `video/*` types that are IANA
+ * Update `font/opentype` to registered `font/otf`
+
+1.29.0 / 2017-07-10
+===================
+
+ * Add `application/fido.trusted-apps+json`
+ * Add extension `.wadl` to `application/vnd.sun.wadl+xml`
+ * Add new upstream MIME types
+ * Add `UTF-8` as default charset for `text/css`
+
+1.28.0 / 2017-05-14
+===================
+
+ * Add new upstream MIME types
+ * Add extension `.gz` to `application/gzip`
+ * Update extensions `.md` and `.markdown` to be `text/markdown`
+
+1.27.0 / 2017-03-16
+===================
+
+ * Add new upstream MIME types
+ * Add `image/apng` with extension `.apng`
+
+1.26.0 / 2017-01-14
+===================
+
+ * Add new upstream MIME types
+ * Add extension `.geojson` to `application/geo+json`
+
+1.25.0 / 2016-11-11
+===================
+
+ * Add new upstream MIME types
+
+1.24.0 / 2016-09-18
+===================
+
+ * Add `audio/mp3`
+ * Add new upstream MIME types
+
+1.23.0 / 2016-05-01
+===================
+
+ * Add new upstream MIME types
+ * Add extension `.3gpp` to `audio/3gpp`
+
+1.22.0 / 2016-02-15
+===================
+
+ * Add `text/slim`
+ * Add extension `.rng` to `application/xml`
+ * Add new upstream MIME types
+ * Fix extension of `application/dash+xml` to be `.mpd`
+ * Update primary extension to `.m4a` for `audio/mp4`
+
+1.21.0 / 2016-01-06
+===================
+
+ * Add Google document types
+ * Add new upstream MIME types
+
+1.20.0 / 2015-11-10
+===================
+
+ * Add `text/x-suse-ymp`
+ * Add new upstream MIME types
+
+1.19.0 / 2015-09-17
+===================
+
+ * Add `application/vnd.apple.pkpass`
+ * Add new upstream MIME types
+
+1.18.0 / 2015-09-03
+===================
+
+ * Add new upstream MIME types
+
+1.17.0 / 2015-08-13
+===================
+
+ * Add `application/x-msdos-program`
+ * Add `audio/g711-0`
+ * Add `image/vnd.mozilla.apng`
+ * Add extension `.exe` to `application/x-msdos-program`
+
+1.16.0 / 2015-07-29
+===================
+
+ * Add `application/vnd.uri-map`
+
+1.15.0 / 2015-07-13
+===================
+
+ * Add `application/x-httpd-php`
+
+1.14.0 / 2015-06-25
+===================
+
+ * Add `application/scim+json`
+ * Add `application/vnd.3gpp.ussd+xml`
+ * Add `application/vnd.biopax.rdf+xml`
+ * Add `text/x-processing`
+
+1.13.0 / 2015-06-07
+===================
+
+ * Add nginx as a source
+ * Add `application/x-cocoa`
+ * Add `application/x-java-archive-diff`
+ * Add `application/x-makeself`
+ * Add `application/x-perl`
+ * Add `application/x-pilot`
+ * Add `application/x-redhat-package-manager`
+ * Add `application/x-sea`
+ * Add `audio/x-m4a`
+ * Add `audio/x-realaudio`
+ * Add `image/x-jng`
+ * Add `text/mathml`
+
+1.12.0 / 2015-06-05
+===================
+
+ * Add `application/bdoc`
+ * Add `application/vnd.hyperdrive+json`
+ * Add `application/x-bdoc`
+ * Add extension `.rtf` to `text/rtf`
+
+1.11.0 / 2015-05-31
+===================
+
+ * Add `audio/wav`
+ * Add `audio/wave`
+ * Add extension `.litcoffee` to `text/coffeescript`
+ * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data`
+ * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install`
+
+1.10.0 / 2015-05-19
+===================
+
+ * Add `application/vnd.balsamiq.bmpr`
+ * Add `application/vnd.microsoft.portable-executable`
+ * Add `application/x-ns-proxy-autoconfig`
+
+1.9.1 / 2015-04-19
+==================
+
+ * Remove `.json` extension from `application/manifest+json`
+ - This is causing bugs downstream
+
+1.9.0 / 2015-04-19
+==================
+
+ * Add `application/manifest+json`
+ * Add `application/vnd.micro+json`
+ * Add `image/vnd.zbrush.pcx`
+ * Add `image/x-ms-bmp`
+
+1.8.0 / 2015-03-13
+==================
+
+ * Add `application/vnd.citationstyles.style+xml`
+ * Add `application/vnd.fastcopy-disk-image`
+ * Add `application/vnd.gov.sk.xmldatacontainer+xml`
+ * Add extension `.jsonld` to `application/ld+json`
+
+1.7.0 / 2015-02-08
+==================
+
+ * Add `application/vnd.gerber`
+ * Add `application/vnd.msa-disk-image`
+
+1.6.1 / 2015-02-05
+==================
+
+ * Community extensions ownership transferred from `node-mime`
+
+1.6.0 / 2015-01-29
+==================
+
+ * Add `application/jose`
+ * Add `application/jose+json`
+ * Add `application/json-seq`
+ * Add `application/jwk+json`
+ * Add `application/jwk-set+json`
+ * Add `application/jwt`
+ * Add `application/rdap+json`
+ * Add `application/vnd.gov.sk.e-form+xml`
+ * Add `application/vnd.ims.imsccv1p3`
+
+1.5.0 / 2014-12-30
+==================
+
+ * Add `application/vnd.oracle.resource+json`
+ * Fix various invalid MIME type entries
+ - `application/mbox+xml`
+ - `application/oscp-response`
+ - `application/vwg-multiplexed`
+ - `audio/g721`
+
+1.4.0 / 2014-12-21
+==================
+
+ * Add `application/vnd.ims.imsccv1p2`
+ * Fix various invalid MIME type entries
+ - `application/vnd-acucobol`
+ - `application/vnd-curl`
+ - `application/vnd-dart`
+ - `application/vnd-dxr`
+ - `application/vnd-fdf`
+ - `application/vnd-mif`
+ - `application/vnd-sema`
+ - `application/vnd-wap-wmlc`
+ - `application/vnd.adobe.flash-movie`
+ - `application/vnd.dece-zip`
+ - `application/vnd.dvb_service`
+ - `application/vnd.micrografx-igx`
+ - `application/vnd.sealed-doc`
+ - `application/vnd.sealed-eml`
+ - `application/vnd.sealed-mht`
+ - `application/vnd.sealed-ppt`
+ - `application/vnd.sealed-tiff`
+ - `application/vnd.sealed-xls`
+ - `application/vnd.sealedmedia.softseal-html`
+ - `application/vnd.sealedmedia.softseal-pdf`
+ - `application/vnd.wap-slc`
+ - `application/vnd.wap-wbxml`
+ - `audio/vnd.sealedmedia.softseal-mpeg`
+ - `image/vnd-djvu`
+ - `image/vnd-svf`
+ - `image/vnd-wap-wbmp`
+ - `image/vnd.sealed-png`
+ - `image/vnd.sealedmedia.softseal-gif`
+ - `image/vnd.sealedmedia.softseal-jpg`
+ - `model/vnd-dwf`
+ - `model/vnd.parasolid.transmit-binary`
+ - `model/vnd.parasolid.transmit-text`
+ - `text/vnd-a`
+ - `text/vnd-curl`
+ - `text/vnd.wap-wml`
+ * Remove example template MIME types
+ - `application/example`
+ - `audio/example`
+ - `image/example`
+ - `message/example`
+ - `model/example`
+ - `multipart/example`
+ - `text/example`
+ - `video/example`
+
+1.3.1 / 2014-12-16
+==================
+
+ * Fix missing extensions
+ - `application/json5`
+ - `text/hjson`
+
+1.3.0 / 2014-12-07
+==================
+
+ * Add `application/a2l`
+ * Add `application/aml`
+ * Add `application/atfx`
+ * Add `application/atxml`
+ * Add `application/cdfx+xml`
+ * Add `application/dii`
+ * Add `application/json5`
+ * Add `application/lxf`
+ * Add `application/mf4`
+ * Add `application/vnd.apache.thrift.compact`
+ * Add `application/vnd.apache.thrift.json`
+ * Add `application/vnd.coffeescript`
+ * Add `application/vnd.enphase.envoy`
+ * Add `application/vnd.ims.imsccv1p1`
+ * Add `text/csv-schema`
+ * Add `text/hjson`
+ * Add `text/markdown`
+ * Add `text/yaml`
+
+1.2.0 / 2014-11-09
+==================
+
+ * Add `application/cea`
+ * Add `application/dit`
+ * Add `application/vnd.gov.sk.e-form+zip`
+ * Add `application/vnd.tmd.mediaflex.api+xml`
+ * Type `application/epub+zip` is now IANA-registered
+
+1.1.2 / 2014-10-23
+==================
+
+ * Rebuild database for `application/x-www-form-urlencoded` change
+
+1.1.1 / 2014-10-20
+==================
+
+ * Mark `application/x-www-form-urlencoded` as compressible.
+
+1.1.0 / 2014-09-28
+==================
+
+ * Add `application/font-woff2`
+
+1.0.3 / 2014-09-25
+==================
+
+ * Fix engine requirement in package
+
+1.0.2 / 2014-09-25
+==================
+
+ * Add `application/coap-group+json`
+ * Add `application/dcd`
+ * Add `application/vnd.apache.thrift.binary`
+ * Add `image/vnd.tencent.tap`
+ * Mark all JSON-derived types as compressible
+ * Update `text/vtt` data
+
+1.0.1 / 2014-08-30
+==================
+
+ * Fix extension ordering
+
+1.0.0 / 2014-08-30
+==================
+
+ * Add `application/atf`
+ * Add `application/merge-patch+json`
+ * Add `multipart/x-mixed-replace`
+ * Add `source: 'apache'` metadata
+ * Add `source: 'iana'` metadata
+ * Remove badly-assumed charset data
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE b/deps/npm/node_modules/mime-db/LICENSE
index a7ae8ee9b8..a7ae8ee9b8 100644
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/LICENSE
+++ b/deps/npm/node_modules/mime-db/LICENSE
diff --git a/deps/npm/node_modules/mime-db/README.md b/deps/npm/node_modules/mime-db/README.md
new file mode 100644
index 0000000000..2416c6d703
--- /dev/null
+++ b/deps/npm/node_modules/mime-db/README.md
@@ -0,0 +1,94 @@
+# mime-db
+
+[![NPM Version][npm-version-image]][npm-url]
+[![NPM Downloads][npm-downloads-image]][npm-url]
+[![Node.js Version][node-image]][node-url]
+[![Build Status][travis-image]][travis-url]
+[![Coverage Status][coveralls-image]][coveralls-url]
+
+This is a database of all mime types.
+It consists of a single, public JSON file and does not include any logic,
+allowing it to remain as un-opinionated as possible with an API.
+It aggregates data from the following sources:
+
+- http://www.iana.org/assignments/media-types/media-types.xhtml
+- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
+- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types
+
+## Installation
+
+```bash
+npm install mime-db
+```
+
+### Database Download
+
+If you're crazy enough to use this in the browser, you can just grab the
+JSON file using [RawGit](https://rawgit.com/). It is recommended to replace
+`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the
+JSON format may change in the future.
+
+```
+https://cdn.rawgit.com/jshttp/mime-db/master/db.json
+```
+
+## Usage
+
+```js
+var db = require('mime-db');
+
+// grab data on .js files
+var data = db['application/javascript'];
+```
+
+## Data Structure
+
+The JSON file is a map lookup for lowercased mime types.
+Each mime type has the following properties:
+
+- `.source` - where the mime type is defined.
+ If not set, it's probably a custom media type.
+ - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)
+ - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml)
+ - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types)
+- `.extensions[]` - known extensions associated with this mime type.
+- `.compressible` - whether a file of this type can be gzipped.
+- `.charset` - the default charset associated with this type, if any.
+
+If unknown, every property could be `undefined`.
+
+## Contributing
+
+To edit the database, only make PRs against `src/custom.json` or
+`src/custom-suffix.json`.
+
+The `src/custom.json` file is a JSON object with the MIME type as the keys
+and the values being an object with the following keys:
+
+- `compressible` - leave out if you don't know, otherwise `true`/`false` for
+ if the data represented by the time is typically compressible.
+- `extensions` - include an array of file extensions that are associated with
+ the type.
+- `notes` - human-readable notes about the type, typically what the type is.
+- `sources` - include an array of URLs of where the MIME type and the associated
+ extensions are sourced from. This needs to be a [primary source](https://en.wikipedia.org/wiki/Primary_source);
+ links to type aggregating sites and Wikipedia are _not acceptible_.
+
+To update the build, run `npm run build`.
+
+## Adding Custom Media Types
+
+The best way to get new media types included in this library is to register
+them with the IANA. The community registration procedure is outlined in
+[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types
+registered with the IANA are automatically pulled into this library.
+
+[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg
+[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg
+[npm-url]: https://npmjs.org/package/mime-db
+[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg
+[travis-url]: https://travis-ci.org/jshttp/mime-db
+[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg
+[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master
+[node-image]: https://img.shields.io/node/v/mime-db.svg
+[node-url]: https://nodejs.org/en/download/
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json b/deps/npm/node_modules/mime-db/db.json
index 0fc2a72fdd..a8db93b86f 100644
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/db.json
+++ b/deps/npm/node_modules/mime-db/db.json
@@ -369,6 +369,9 @@
"application/fdt+xml": {
"source": "iana"
},
+ "application/fhir+xml": {
+ "source": "iana"
+ },
"application/fido.trusted-apps+json": {
"compressible": true
},
@@ -387,10 +390,6 @@
"compressible": false,
"extensions": ["woff"]
},
- "application/font-woff2": {
- "compressible": false,
- "extensions": ["woff2"]
- },
"application/framework-attributes+xml": {
"source": "iana"
},
@@ -428,6 +427,9 @@
"application/held+xml": {
"source": "iana"
},
+ "application/hjson": {
+ "extensions": ["hjson"]
+ },
"application/http": {
"source": "iana"
},
@@ -776,6 +778,9 @@
"application/nlsml+xml": {
"source": "iana"
},
+ "application/node": {
+ "source": "iana"
+ },
"application/nss": {
"source": "iana"
},
@@ -880,6 +885,9 @@
"source": "iana",
"extensions": ["p8"]
},
+ "application/pkcs8-encrypted": {
+ "source": "iana"
+ },
"application/pkix-attr-cert": {
"source": "iana",
"extensions": ["ac"]
@@ -955,6 +963,10 @@
"application/qsig": {
"source": "iana"
},
+ "application/raml+yaml": {
+ "compressible": true,
+ "extensions": ["raml"]
+ },
"application/raptorfec": {
"source": "iana"
},
@@ -1240,6 +1252,9 @@
"source": "iana",
"extensions": ["tsd"]
},
+ "application/tnauthlist": {
+ "source": "iana"
+ },
"application/trig": {
"source": "iana"
},
@@ -1286,6 +1301,9 @@
"application/vnd.3gpp-prose-pc3ch+xml": {
"source": "iana"
},
+ "application/vnd.3gpp-v2x-local-service-information": {
+ "source": "iana"
+ },
"application/vnd.3gpp.access-transfer-events+xml": {
"source": "iana"
},
@@ -1295,12 +1313,24 @@
"application/vnd.3gpp.gmop+xml": {
"source": "iana"
},
+ "application/vnd.3gpp.mcptt-affiliation-command+xml": {
+ "source": "iana"
+ },
+ "application/vnd.3gpp.mcptt-floor-request+xml": {
+ "source": "iana"
+ },
"application/vnd.3gpp.mcptt-info+xml": {
"source": "iana"
},
+ "application/vnd.3gpp.mcptt-location-info+xml": {
+ "source": "iana"
+ },
"application/vnd.3gpp.mcptt-mbms-usage-info+xml": {
"source": "iana"
},
+ "application/vnd.3gpp.mcptt-signed+xml": {
+ "source": "iana"
+ },
"application/vnd.3gpp.mid-call+xml": {
"source": "iana"
},
@@ -1411,6 +1441,10 @@
"source": "iana",
"extensions": ["azs"]
},
+ "application/vnd.amadeus+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/vnd.amazon.ebook": {
"source": "apache",
"extensions": ["azw"]
@@ -1499,6 +1533,10 @@
"application/vnd.autopackage": {
"source": "iana"
},
+ "application/vnd.avalon+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/vnd.avistar+xml": {
"source": "iana"
},
@@ -1508,6 +1546,13 @@
"application/vnd.balsamiq.bmpr": {
"source": "iana"
},
+ "application/vnd.bbf.usp.msg": {
+ "source": "iana"
+ },
+ "application/vnd.bbf.usp.msg+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/vnd.bekitzur-stech+json": {
"source": "iana",
"compressible": true
@@ -1602,6 +1647,24 @@
"application/vnd.coffeescript": {
"source": "iana"
},
+ "application/vnd.collabio.xodocuments.document": {
+ "source": "iana"
+ },
+ "application/vnd.collabio.xodocuments.document-template": {
+ "source": "iana"
+ },
+ "application/vnd.collabio.xodocuments.presentation": {
+ "source": "iana"
+ },
+ "application/vnd.collabio.xodocuments.presentation-template": {
+ "source": "iana"
+ },
+ "application/vnd.collabio.xodocuments.spreadsheet": {
+ "source": "iana"
+ },
+ "application/vnd.collabio.xodocuments.spreadsheet-template": {
+ "source": "iana"
+ },
"application/vnd.collection+json": {
"source": "iana",
"compressible": true
@@ -1617,6 +1680,9 @@
"application/vnd.comicbook+zip": {
"source": "iana"
},
+ "application/vnd.comicbook-rar": {
+ "source": "iana"
+ },
"application/vnd.commerce-battelle": {
"source": "iana"
},
@@ -1876,6 +1942,9 @@
"application/vnd.ecdis-update": {
"source": "iana"
},
+ "application/vnd.ecip.rlp": {
+ "source": "iana"
+ },
"application/vnd.ecowin.chart": {
"source": "iana",
"extensions": ["mag"]
@@ -3408,9 +3477,6 @@
"application/vnd.openxmlformats-officedocument.extended-properties+xml": {
"source": "iana"
},
- "application/vnd.openxmlformats-officedocument.presentationml-template": {
- "source": "iana"
- },
"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml": {
"source": "iana"
},
@@ -3467,7 +3533,7 @@
"source": "iana"
},
"application/vnd.openxmlformats-officedocument.presentationml.template": {
- "source": "apache",
+ "source": "iana",
"extensions": ["potx"]
},
"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml": {
@@ -3476,9 +3542,6 @@
"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml": {
"source": "iana"
},
- "application/vnd.openxmlformats-officedocument.spreadsheetml-template": {
- "source": "iana"
- },
"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml": {
"source": "iana"
},
@@ -3539,7 +3602,7 @@
"source": "iana"
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template": {
- "source": "apache",
+ "source": "iana",
"extensions": ["xltx"]
},
"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml": {
@@ -3563,9 +3626,6 @@
"application/vnd.openxmlformats-officedocument.vmldrawing": {
"source": "iana"
},
- "application/vnd.openxmlformats-officedocument.wordprocessingml-template": {
- "source": "iana"
- },
"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml": {
"source": "iana"
},
@@ -3602,7 +3662,7 @@
"source": "iana"
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template": {
- "source": "apache",
+ "source": "iana",
"extensions": ["dotx"]
},
"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml": {
@@ -3668,6 +3728,9 @@
"application/vnd.paos.xml": {
"source": "apache"
},
+ "application/vnd.patentdive": {
+ "source": "iana"
+ },
"application/vnd.pawaafile": {
"source": "iana",
"extensions": ["paw"]
@@ -3827,6 +3890,10 @@
"application/vnd.renlearn.rlprint": {
"source": "iana"
},
+ "application/vnd.restful+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/vnd.rig.cryptonote": {
"source": "iana",
"extensions": ["cryptonote"]
@@ -3974,6 +4041,9 @@
"source": "iana",
"extensions": ["sfs"]
},
+ "application/vnd.sqlite3": {
+ "source": "iana"
+ },
"application/vnd.sss-cod": {
"source": "iana"
},
@@ -4399,6 +4469,9 @@
"source": "iana",
"extensions": ["cmp"]
},
+ "application/vnd.youtube.yt": {
+ "source": "iana"
+ },
"application/vnd.zul": {
"source": "iana",
"extensions": ["zir","zirz"]
@@ -4411,12 +4484,24 @@
"source": "iana",
"extensions": ["vxml"]
},
+ "application/voucher-cms+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/vq-rtcpxr": {
"source": "iana"
},
+ "application/wasm": {
+ "compressible": true,
+ "extensions": ["wasm"]
+ },
"application/watcherinfo+xml": {
"source": "iana"
},
+ "application/webpush-options+json": {
+ "source": "iana",
+ "compressible": true
+ },
"application/whoispp-query": {
"source": "iana"
},
@@ -4614,11 +4699,6 @@
"source": "apache",
"extensions": ["psf"]
},
- "application/x-font-otf": {
- "source": "apache",
- "compressible": true,
- "extensions": ["otf"]
- },
"application/x-font-pcf": {
"source": "apache",
"extensions": ["pcf"]
@@ -4633,11 +4713,6 @@
"application/x-font-sunos-news": {
"source": "apache"
},
- "application/x-font-ttf": {
- "source": "apache",
- "compressible": true,
- "extensions": ["ttf","ttc"]
- },
"application/x-font-type1": {
"source": "apache",
"extensions": ["pfa","pfb","pfm","afm"]
@@ -5715,10 +5790,33 @@
"source": "apache",
"extensions": ["xyz"]
},
+ "font/collection": {
+ "source": "iana",
+ "extensions": ["ttc"]
+ },
"font/otf": {
+ "source": "iana",
"compressible": true,
"extensions": ["otf"]
},
+ "font/sfnt": {
+ "source": "iana"
+ },
+ "font/ttf": {
+ "source": "iana",
+ "extensions": ["ttf"]
+ },
+ "font/woff": {
+ "source": "iana",
+ "extensions": ["woff"]
+ },
+ "font/woff2": {
+ "source": "iana",
+ "extensions": ["woff2"]
+ },
+ "image/aces": {
+ "source": "iana"
+ },
"image/apng": {
"compressible": false,
"extensions": ["apng"]
@@ -5758,7 +5856,9 @@
"source": "iana"
},
"image/jp2": {
- "source": "iana"
+ "source": "iana",
+ "compressible": false,
+ "extensions": ["jp2","jpg2"]
},
"image/jpeg": {
"source": "iana",
@@ -5766,10 +5866,14 @@
"extensions": ["jpeg","jpg","jpe"]
},
"image/jpm": {
- "source": "iana"
+ "source": "iana",
+ "compressible": false,
+ "extensions": ["jpm"]
},
"image/jpx": {
- "source": "iana"
+ "source": "iana",
+ "compressible": false,
+ "extensions": ["jpx","jpf"]
},
"image/ktx": {
"source": "iana",
@@ -6018,7 +6122,10 @@
"source": "iana"
},
"message/disposition-notification": {
- "source": "iana"
+ "source": "iana",
+ "extensions": [
+ "disposition-notification"
+ ]
},
"message/external-body": {
"source": "iana"
@@ -6027,16 +6134,20 @@
"source": "iana"
},
"message/global": {
- "source": "iana"
+ "source": "iana",
+ "extensions": ["u8msg"]
},
"message/global-delivery-status": {
- "source": "iana"
+ "source": "iana",
+ "extensions": ["u8dsn"]
},
"message/global-disposition-notification": {
- "source": "iana"
+ "source": "iana",
+ "extensions": ["u8mdn"]
},
"message/global-headers": {
- "source": "iana"
+ "source": "iana",
+ "extensions": ["u8hdr"]
},
"message/http": {
"source": "iana",
@@ -6074,7 +6185,8 @@
"source": "iana"
},
"message/vnd.wfa.wsc": {
- "source": "iana"
+ "source": "iana",
+ "extensions": ["wsc"]
},
"model/3mf": {
"source": "iana"
@@ -6085,6 +6197,7 @@
"extensions": ["gltf"]
},
"model/gltf-binary": {
+ "source": "iana",
"compressible": true,
"extensions": ["glb"]
},
@@ -6203,6 +6316,9 @@
"source": "iana",
"compressible": false
},
+ "multipart/multilingual": {
+ "source": "iana"
+ },
"multipart/parallel": {
"source": "iana"
},
@@ -6282,9 +6398,6 @@
"text/grammar-ref-list": {
"source": "iana"
},
- "text/hjson": {
- "extensions": ["hjson"]
- },
"text/html": {
"source": "iana",
"compressible": true,
@@ -6380,6 +6493,9 @@
"source": "iana",
"extensions": ["sgml","sgm"]
},
+ "text/shex": {
+ "extensions": ["shex"]
+ },
"text/slim": {
"extensions": ["slim","slm"]
},
@@ -6760,6 +6876,9 @@
"video/rtx": {
"source": "iana"
},
+ "video/smpte291": {
+ "source": "iana"
+ },
"video/smpte292m": {
"source": "iana"
},
@@ -6850,6 +6969,9 @@
"video/vnd.nokia.interleaved-multimedia": {
"source": "iana"
},
+ "video/vnd.nokia.mp4vr": {
+ "source": "iana"
+ },
"video/vnd.nokia.videovoip": {
"source": "iana"
},
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js b/deps/npm/node_modules/mime-db/index.js
index 551031f690..551031f690 100644
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/index.js
+++ b/deps/npm/node_modules/mime-db/index.js
diff --git a/deps/npm/node_modules/mime-db/package.json b/deps/npm/node_modules/mime-db/package.json
new file mode 100644
index 0000000000..f725d6bb21
--- /dev/null
+++ b/deps/npm/node_modules/mime-db/package.json
@@ -0,0 +1,100 @@
+{
+ "_from": "mime-db@~1.33.0",
+ "_id": "mime-db@1.33.0",
+ "_inBundle": false,
+ "_integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==",
+ "_location": "/mime-db",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mime-db@~1.33.0",
+ "name": "mime-db",
+ "escapedName": "mime-db",
+ "rawSpec": "~1.33.0",
+ "saveSpec": null,
+ "fetchSpec": "~1.33.0"
+ },
+ "_requiredBy": [
+ "/mime-types"
+ ],
+ "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
+ "_shasum": "a3492050a5cb9b63450541e39d9788d2272783db",
+ "_spec": "mime-db@~1.33.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mime-types",
+ "bugs": {
+ "url": "https://github.com/jshttp/mime-db/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Douglas Christopher Wilson",
+ "email": "doug@somethingdoug.com"
+ },
+ {
+ "name": "Jonathan Ong",
+ "email": "me@jongleberry.com",
+ "url": "http://jongleberry.com"
+ },
+ {
+ "name": "Robert Kieffer",
+ "email": "robert@broofa.com",
+ "url": "http://github.com/broofa"
+ }
+ ],
+ "deprecated": false,
+ "description": "Media Type Database",
+ "devDependencies": {
+ "bluebird": "3.5.1",
+ "co": "4.6.0",
+ "cogent": "1.0.1",
+ "csv-parse": "1.3.1",
+ "eslint": "3.19.0",
+ "eslint-config-standard": "10.2.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-node": "5.2.1",
+ "eslint-plugin-promise": "3.6.0",
+ "eslint-plugin-standard": "3.0.1",
+ "gnode": "0.1.2",
+ "mocha": "1.21.5",
+ "nyc": "11.4.1",
+ "raw-body": "2.3.2",
+ "stream-to-array": "2.3.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ },
+ "files": [
+ "HISTORY.md",
+ "LICENSE",
+ "README.md",
+ "db.json",
+ "index.js"
+ ],
+ "homepage": "https://github.com/jshttp/mime-db#readme",
+ "keywords": [
+ "mime",
+ "db",
+ "type",
+ "types",
+ "database",
+ "charset",
+ "charsets"
+ ],
+ "license": "MIT",
+ "name": "mime-db",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jshttp/mime-db.git"
+ },
+ "scripts": {
+ "build": "node scripts/build",
+ "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx",
+ "lint": "eslint .",
+ "test": "mocha --reporter spec --bail --check-leaks test/",
+ "test-cov": "nyc --reporter=html --reporter=text npm test",
+ "test-travis": "nyc --reporter=text npm test",
+ "update": "npm run fetch && npm run build"
+ },
+ "version": "1.33.0"
+}
diff --git a/deps/npm/node_modules/mime-types/HISTORY.md b/deps/npm/node_modules/mime-types/HISTORY.md
new file mode 100644
index 0000000000..ecdc59aa0a
--- /dev/null
+++ b/deps/npm/node_modules/mime-types/HISTORY.md
@@ -0,0 +1,260 @@
+2.1.18 / 2018-02-16
+===================
+
+ * deps: mime-db@~1.33.0
+ - Add `application/raml+yaml` with extension `.raml`
+ - Add `application/wasm` with extension `.wasm`
+ - Add `text/shex` with extension `.shex`
+ - Add extensions for JPEG-2000 images
+ - Add extensions from IANA for `message/*` types
+ - Add new upstream MIME types
+ - Update font MIME types
+ - Update `text/hjson` to registered `application/hjson`
+
+2.1.17 / 2017-09-01
+===================
+
+ * deps: mime-db@~1.30.0
+ - Add `application/vnd.ms-outlook`
+ - Add `application/x-arj`
+ - Add extension `.mjs` to `application/javascript`
+ - Add glTF types and extensions
+ - Add new upstream MIME types
+ - Add `text/x-org`
+ - Add VirtualBox MIME types
+ - Fix `source` records for `video/*` types that are IANA
+ - Update `font/opentype` to registered `font/otf`
+
+2.1.16 / 2017-07-24
+===================
+
+ * deps: mime-db@~1.29.0
+ - Add `application/fido.trusted-apps+json`
+ - Add extension `.wadl` to `application/vnd.sun.wadl+xml`
+ - Add extension `.gz` to `application/gzip`
+ - Add new upstream MIME types
+ - Update extensions `.md` and `.markdown` to be `text/markdown`
+
+2.1.15 / 2017-03-23
+===================
+
+ * deps: mime-db@~1.27.0
+ - Add new mime types
+ - Add `image/apng`
+
+2.1.14 / 2017-01-14
+===================
+
+ * deps: mime-db@~1.26.0
+ - Add new mime types
+
+2.1.13 / 2016-11-18
+===================
+
+ * deps: mime-db@~1.25.0
+ - Add new mime types
+
+2.1.12 / 2016-09-18
+===================
+
+ * deps: mime-db@~1.24.0
+ - Add new mime types
+ - Add `audio/mp3`
+
+2.1.11 / 2016-05-01
+===================
+
+ * deps: mime-db@~1.23.0
+ - Add new mime types
+
+2.1.10 / 2016-02-15
+===================
+
+ * deps: mime-db@~1.22.0
+ - Add new mime types
+ - Fix extension of `application/dash+xml`
+ - Update primary extension for `audio/mp4`
+
+2.1.9 / 2016-01-06
+==================
+
+ * deps: mime-db@~1.21.0
+ - Add new mime types
+
+2.1.8 / 2015-11-30
+==================
+
+ * deps: mime-db@~1.20.0
+ - Add new mime types
+
+2.1.7 / 2015-09-20
+==================
+
+ * deps: mime-db@~1.19.0
+ - Add new mime types
+
+2.1.6 / 2015-09-03
+==================
+
+ * deps: mime-db@~1.18.0
+ - Add new mime types
+
+2.1.5 / 2015-08-20
+==================
+
+ * deps: mime-db@~1.17.0
+ - Add new mime types
+
+2.1.4 / 2015-07-30
+==================
+
+ * deps: mime-db@~1.16.0
+ - Add new mime types
+
+2.1.3 / 2015-07-13
+==================
+
+ * deps: mime-db@~1.15.0
+ - Add new mime types
+
+2.1.2 / 2015-06-25
+==================
+
+ * deps: mime-db@~1.14.0
+ - Add new mime types
+
+2.1.1 / 2015-06-08
+==================
+
+ * perf: fix deopt during mapping
+
+2.1.0 / 2015-06-07
+==================
+
+ * Fix incorrectly treating extension-less file name as extension
+ - i.e. `'path/to/json'` will no longer return `application/json`
+ * Fix `.charset(type)` to accept parameters
+ * Fix `.charset(type)` to match case-insensitive
+ * Improve generation of extension to MIME mapping
+ * Refactor internals for readability and no argument reassignment
+ * Prefer `application/*` MIME types from the same source
+ * Prefer any type over `application/octet-stream`
+ * deps: mime-db@~1.13.0
+ - Add nginx as a source
+ - Add new mime types
+
+2.0.14 / 2015-06-06
+===================
+
+ * deps: mime-db@~1.12.0
+ - Add new mime types
+
+2.0.13 / 2015-05-31
+===================
+
+ * deps: mime-db@~1.11.0
+ - Add new mime types
+
+2.0.12 / 2015-05-19
+===================
+
+ * deps: mime-db@~1.10.0
+ - Add new mime types
+
+2.0.11 / 2015-05-05
+===================
+
+ * deps: mime-db@~1.9.1
+ - Add new mime types
+
+2.0.10 / 2015-03-13
+===================
+
+ * deps: mime-db@~1.8.0
+ - Add new mime types
+
+2.0.9 / 2015-02-09
+==================
+
+ * deps: mime-db@~1.7.0
+ - Add new mime types
+ - Community extensions ownership transferred from `node-mime`
+
+2.0.8 / 2015-01-29
+==================
+
+ * deps: mime-db@~1.6.0
+ - Add new mime types
+
+2.0.7 / 2014-12-30
+==================
+
+ * deps: mime-db@~1.5.0
+ - Add new mime types
+ - Fix various invalid MIME type entries
+
+2.0.6 / 2014-12-30
+==================
+
+ * deps: mime-db@~1.4.0
+ - Add new mime types
+ - Fix various invalid MIME type entries
+ - Remove example template MIME types
+
+2.0.5 / 2014-12-29
+==================
+
+ * deps: mime-db@~1.3.1
+ - Fix missing extensions
+
+2.0.4 / 2014-12-10
+==================
+
+ * deps: mime-db@~1.3.0
+ - Add new mime types
+
+2.0.3 / 2014-11-09
+==================
+
+ * deps: mime-db@~1.2.0
+ - Add new mime types
+
+2.0.2 / 2014-09-28
+==================
+
+ * deps: mime-db@~1.1.0
+ - Add new mime types
+ - Add additional compressible
+ - Update charsets
+
+2.0.1 / 2014-09-07
+==================
+
+ * Support Node.js 0.6
+
+2.0.0 / 2014-09-02
+==================
+
+ * Use `mime-db`
+ * Remove `.define()`
+
+1.0.2 / 2014-08-04
+==================
+
+ * Set charset=utf-8 for `text/javascript`
+
+1.0.1 / 2014-06-24
+==================
+
+ * Add `text/jsx` type
+
+1.0.0 / 2014-05-12
+==================
+
+ * Return `false` for unknown types
+ * Set charset=utf-8 for `application/json`
+
+0.1.0 / 2014-05-02
+==================
+
+ * Initial release
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/LICENSE b/deps/npm/node_modules/mime-types/LICENSE
index 06166077be..06166077be 100644
--- a/deps/npm/node_modules/request/node_modules/mime-types/LICENSE
+++ b/deps/npm/node_modules/mime-types/LICENSE
diff --git a/deps/npm/node_modules/mime-types/README.md b/deps/npm/node_modules/mime-types/README.md
new file mode 100644
index 0000000000..b58cae6d28
--- /dev/null
+++ b/deps/npm/node_modules/mime-types/README.md
@@ -0,0 +1,108 @@
+# mime-types
+
+[![NPM Version][npm-image]][npm-url]
+[![NPM Downloads][downloads-image]][downloads-url]
+[![Node.js Version][node-version-image]][node-version-url]
+[![Build Status][travis-image]][travis-url]
+[![Test Coverage][coveralls-image]][coveralls-url]
+
+The ultimate javascript content-type utility.
+
+Similar to [the `mime@1.x` module](https://www.npmjs.com/package/mime), except:
+
+- __No fallbacks.__ Instead of naively returning the first available type,
+ `mime-types` simply returns `false`, so do
+ `var type = mime.lookup('unrecognized') || 'application/octet-stream'`.
+- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`.
+- No `.define()` functionality
+- Bug fixes for `.lookup(path)`
+
+Otherwise, the API is compatible with `mime` 1.x.
+
+## Install
+
+This is a [Node.js](https://nodejs.org/en/) module available through the
+[npm registry](https://www.npmjs.com/). Installation is done using the
+[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
+
+```sh
+$ npm install mime-types
+```
+
+## Adding Types
+
+All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db),
+so open a PR there if you'd like to add mime types.
+
+## API
+
+```js
+var mime = require('mime-types')
+```
+
+All functions return `false` if input is invalid or not found.
+
+### mime.lookup(path)
+
+Lookup the content-type associated with a file.
+
+```js
+mime.lookup('json') // 'application/json'
+mime.lookup('.md') // 'text/markdown'
+mime.lookup('file.html') // 'text/html'
+mime.lookup('folder/file.js') // 'application/javascript'
+mime.lookup('folder/.htaccess') // false
+
+mime.lookup('cats') // false
+```
+
+### mime.contentType(type)
+
+Create a full content-type header given a content-type or extension.
+
+```js
+mime.contentType('markdown') // 'text/x-markdown; charset=utf-8'
+mime.contentType('file.json') // 'application/json; charset=utf-8'
+
+// from a full path
+mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'
+```
+
+### mime.extension(type)
+
+Get the default extension for a content-type.
+
+```js
+mime.extension('application/octet-stream') // 'bin'
+```
+
+### mime.charset(type)
+
+Lookup the implied default charset of a content-type.
+
+```js
+mime.charset('text/markdown') // 'UTF-8'
+```
+
+### var type = mime.types[extension]
+
+A map of content-types by extension.
+
+### [extensions...] = mime.extensions[type]
+
+A map of extensions by content-type.
+
+## License
+
+[MIT](LICENSE)
+
+[npm-image]: https://img.shields.io/npm/v/mime-types.svg
+[npm-url]: https://npmjs.org/package/mime-types
+[node-version-image]: https://img.shields.io/node/v/mime-types.svg
+[node-version-url]: https://nodejs.org/en/download/
+[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg
+[travis-url]: https://travis-ci.org/jshttp/mime-types
+[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg
+[coveralls-url]: https://coveralls.io/r/jshttp/mime-types
+[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg
+[downloads-url]: https://npmjs.org/package/mime-types
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/index.js b/deps/npm/node_modules/mime-types/index.js
index b9f34d5991..b9f34d5991 100644
--- a/deps/npm/node_modules/request/node_modules/mime-types/index.js
+++ b/deps/npm/node_modules/mime-types/index.js
diff --git a/deps/npm/node_modules/mime-types/package.json b/deps/npm/node_modules/mime-types/package.json
new file mode 100644
index 0000000000..9d234d49ff
--- /dev/null
+++ b/deps/npm/node_modules/mime-types/package.json
@@ -0,0 +1,87 @@
+{
+ "_from": "mime-types@~2.1.17",
+ "_id": "mime-types@2.1.18",
+ "_inBundle": false,
+ "_integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
+ "_location": "/mime-types",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mime-types@~2.1.17",
+ "name": "mime-types",
+ "escapedName": "mime-types",
+ "rawSpec": "~2.1.17",
+ "saveSpec": null,
+ "fetchSpec": "~2.1.17"
+ },
+ "_requiredBy": [
+ "/form-data",
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
+ "_shasum": "6f323f60a83d11146f831ff11fd66e2fe5503bb8",
+ "_spec": "mime-types@~2.1.17",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "bugs": {
+ "url": "https://github.com/jshttp/mime-types/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Douglas Christopher Wilson",
+ "email": "doug@somethingdoug.com"
+ },
+ {
+ "name": "Jeremiah Senkpiel",
+ "email": "fishrock123@rocketmail.com",
+ "url": "https://searchbeam.jit.su"
+ },
+ {
+ "name": "Jonathan Ong",
+ "email": "me@jongleberry.com",
+ "url": "http://jongleberry.com"
+ }
+ ],
+ "dependencies": {
+ "mime-db": "~1.33.0"
+ },
+ "deprecated": false,
+ "description": "The ultimate javascript content-type utility.",
+ "devDependencies": {
+ "eslint": "3.19.0",
+ "eslint-config-standard": "10.2.1",
+ "eslint-plugin-import": "2.8.0",
+ "eslint-plugin-node": "5.2.1",
+ "eslint-plugin-promise": "3.6.0",
+ "eslint-plugin-standard": "3.0.1",
+ "istanbul": "0.4.5",
+ "mocha": "1.21.5"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ },
+ "files": [
+ "HISTORY.md",
+ "LICENSE",
+ "index.js"
+ ],
+ "homepage": "https://github.com/jshttp/mime-types#readme",
+ "keywords": [
+ "mime",
+ "types"
+ ],
+ "license": "MIT",
+ "name": "mime-types",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jshttp/mime-types.git"
+ },
+ "scripts": {
+ "lint": "eslint .",
+ "test": "mocha --reporter spec test/test.js",
+ "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js",
+ "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js"
+ },
+ "version": "2.1.18"
+}
diff --git a/deps/npm/node_modules/mimic-fn/index.js b/deps/npm/node_modules/mimic-fn/index.js
new file mode 100644
index 0000000000..08e69d3d88
--- /dev/null
+++ b/deps/npm/node_modules/mimic-fn/index.js
@@ -0,0 +1,9 @@
+'use strict';
+module.exports = (to, from) => {
+ // TODO: use `Reflect.ownKeys()` when targeting Node.js 6
+ for (const prop of Object.getOwnPropertyNames(from).concat(Object.getOwnPropertySymbols(from))) {
+ Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
+ }
+
+ return to;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license b/deps/npm/node_modules/mimic-fn/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/license
+++ b/deps/npm/node_modules/mimic-fn/license
diff --git a/deps/npm/node_modules/mimic-fn/package.json b/deps/npm/node_modules/mimic-fn/package.json
new file mode 100644
index 0000000000..4dc1bdae9a
--- /dev/null
+++ b/deps/npm/node_modules/mimic-fn/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "mimic-fn@^1.0.0",
+ "_id": "mimic-fn@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+ "_location": "/mimic-fn",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mimic-fn@^1.0.0",
+ "name": "mimic-fn",
+ "escapedName": "mimic-fn",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/mem",
+ "/onetime"
+ ],
+ "_resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+ "_shasum": "820c86a39334640e99516928bd03fca88057d022",
+ "_spec": "mimic-fn@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mem",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/mimic-fn/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Make a function mimic another one",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/mimic-fn#readme",
+ "keywords": [
+ "function",
+ "mimic",
+ "imitate",
+ "rename",
+ "copy",
+ "inherit",
+ "properties",
+ "name",
+ "func",
+ "fn",
+ "set",
+ "infer",
+ "change"
+ ],
+ "license": "MIT",
+ "name": "mimic-fn",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/mimic-fn.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/mimic-fn/readme.md b/deps/npm/node_modules/mimic-fn/readme.md
new file mode 100644
index 0000000000..e575734389
--- /dev/null
+++ b/deps/npm/node_modules/mimic-fn/readme.md
@@ -0,0 +1,68 @@
+# mimic-fn [![Build Status](https://travis-ci.org/sindresorhus/mimic-fn.svg?branch=master)](https://travis-ci.org/sindresorhus/mimic-fn)
+
+> Make a function mimic another one
+
+Useful when you wrap a function in another function and like to preserve the original name and other properties.
+
+
+## Install
+
+```
+$ npm install mimic-fn
+```
+
+
+## Usage
+
+```js
+const mimicFn = require('mimic-fn');
+
+function foo() {}
+foo.unicorn = 'šŸ¦„';
+
+function wrapper() {
+ return foo() {};
+}
+
+console.log(wrapper.name);
+//=> 'wrapper'
+
+mimicFn(wrapper, foo);
+
+console.log(wrapper.name);
+//=> 'foo'
+
+console.log(wrapper.unicorn);
+//=> 'šŸ¦„'
+```
+
+
+## API
+
+It will copy over the properties `name`, `length`, `displayName`, and any custom properties you may have set.
+
+### mimicFn(to, from)
+
+It will modify `to` and return it.
+
+#### to
+
+Type: `Function`
+
+Mimicking function.
+
+#### from
+
+Type: `Function`
+
+Function to mimic.
+
+
+## Related
+
+- [rename-fn](https://github.com/sindresorhus/rename-fn) - Rename a function
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE b/deps/npm/node_modules/minimatch/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/LICENSE
+++ b/deps/npm/node_modules/minimatch/LICENSE
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/README.md b/deps/npm/node_modules/minimatch/README.md
index ad72b8133e..ad72b8133e 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/README.md
+++ b/deps/npm/node_modules/minimatch/README.md
diff --git a/deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/minimatch/minimatch.js
index 5b5f8cf444..5b5f8cf444 100644
--- a/deps/npm/node_modules/glob/node_modules/minimatch/minimatch.js
+++ b/deps/npm/node_modules/minimatch/minimatch.js
diff --git a/deps/npm/node_modules/minimatch/package.json b/deps/npm/node_modules/minimatch/package.json
new file mode 100644
index 0000000000..bd211926ff
--- /dev/null
+++ b/deps/npm/node_modules/minimatch/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "minimatch@^3.0.4",
+ "_id": "minimatch@3.0.4",
+ "_inBundle": false,
+ "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "_location": "/minimatch",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "minimatch@^3.0.4",
+ "name": "minimatch",
+ "escapedName": "minimatch",
+ "rawSpec": "^3.0.4",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.4"
+ },
+ "_requiredBy": [
+ "/eslint",
+ "/eslint-plugin-import",
+ "/eslint-plugin-node",
+ "/glob",
+ "/ignore-walk",
+ "/node-gyp",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+ "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
+ "_spec": "minimatch@^3.0.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/glob",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minimatch/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "deprecated": false,
+ "description": "a glob matcher in javascript",
+ "devDependencies": {
+ "tap": "^10.3.2"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "minimatch.js"
+ ],
+ "homepage": "https://github.com/isaacs/minimatch#readme",
+ "license": "ISC",
+ "main": "minimatch.js",
+ "name": "minimatch",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/minimatch.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --cov"
+ },
+ "version": "3.0.4"
+}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml b/deps/npm/node_modules/minimist/.travis.yml
index cc4dba29d9..cc4dba29d9 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/.travis.yml
+++ b/deps/npm/node_modules/minimist/.travis.yml
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/minimist/LICENSE
index ee27ba4b44..ee27ba4b44 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
+++ b/deps/npm/node_modules/minimist/LICENSE
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js b/deps/npm/node_modules/minimist/example/parse.js
index abff3e8ee8..abff3e8ee8 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/example/parse.js
+++ b/deps/npm/node_modules/minimist/example/parse.js
diff --git a/deps/npm/node_modules/minimist/index.js b/deps/npm/node_modules/minimist/index.js
new file mode 100644
index 0000000000..a5793cecce
--- /dev/null
+++ b/deps/npm/node_modules/minimist/index.js
@@ -0,0 +1,187 @@
+module.exports = function (args, opts) {
+ if (!opts) opts = {};
+
+ var flags = { bools : {}, strings : {} };
+
+ [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
+ flags.bools[key] = true;
+ });
+
+ [].concat(opts.string).filter(Boolean).forEach(function (key) {
+ flags.strings[key] = true;
+ });
+
+ var aliases = {};
+ Object.keys(opts.alias || {}).forEach(function (key) {
+ aliases[key] = [].concat(opts.alias[key]);
+ aliases[key].forEach(function (x) {
+ aliases[x] = [key].concat(aliases[key].filter(function (y) {
+ return x !== y;
+ }));
+ });
+ });
+
+ var defaults = opts['default'] || {};
+
+ var argv = { _ : [] };
+ Object.keys(flags.bools).forEach(function (key) {
+ setArg(key, defaults[key] === undefined ? false : defaults[key]);
+ });
+
+ var notFlags = [];
+
+ if (args.indexOf('--') !== -1) {
+ notFlags = args.slice(args.indexOf('--')+1);
+ args = args.slice(0, args.indexOf('--'));
+ }
+
+ function setArg (key, val) {
+ var value = !flags.strings[key] && isNumber(val)
+ ? Number(val) : val
+ ;
+ setKey(argv, key.split('.'), value);
+
+ (aliases[key] || []).forEach(function (x) {
+ setKey(argv, x.split('.'), value);
+ });
+ }
+
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i];
+
+ if (/^--.+=/.test(arg)) {
+ // Using [\s\S] instead of . because js doesn't support the
+ // 'dotall' regex modifier. See:
+ // http://stackoverflow.com/a/1068308/13216
+ var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
+ setArg(m[1], m[2]);
+ }
+ else if (/^--no-.+/.test(arg)) {
+ var key = arg.match(/^--no-(.+)/)[1];
+ setArg(key, false);
+ }
+ else if (/^--.+/.test(arg)) {
+ var key = arg.match(/^--(.+)/)[1];
+ var next = args[i + 1];
+ if (next !== undefined && !/^-/.test(next)
+ && !flags.bools[key]
+ && (aliases[key] ? !flags.bools[aliases[key]] : true)) {
+ setArg(key, next);
+ i++;
+ }
+ else if (/^(true|false)$/.test(next)) {
+ setArg(key, next === 'true');
+ i++;
+ }
+ else {
+ setArg(key, flags.strings[key] ? '' : true);
+ }
+ }
+ else if (/^-[^-]+/.test(arg)) {
+ var letters = arg.slice(1,-1).split('');
+
+ var broken = false;
+ for (var j = 0; j < letters.length; j++) {
+ var next = arg.slice(j+2);
+
+ if (next === '-') {
+ setArg(letters[j], next)
+ continue;
+ }
+
+ if (/[A-Za-z]/.test(letters[j])
+ && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
+ setArg(letters[j], next);
+ broken = true;
+ break;
+ }
+
+ if (letters[j+1] && letters[j+1].match(/\W/)) {
+ setArg(letters[j], arg.slice(j+2));
+ broken = true;
+ break;
+ }
+ else {
+ setArg(letters[j], flags.strings[letters[j]] ? '' : true);
+ }
+ }
+
+ var key = arg.slice(-1)[0];
+ if (!broken && key !== '-') {
+ if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
+ && !flags.bools[key]
+ && (aliases[key] ? !flags.bools[aliases[key]] : true)) {
+ setArg(key, args[i+1]);
+ i++;
+ }
+ else if (args[i+1] && /true|false/.test(args[i+1])) {
+ setArg(key, args[i+1] === 'true');
+ i++;
+ }
+ else {
+ setArg(key, flags.strings[key] ? '' : true);
+ }
+ }
+ }
+ else {
+ argv._.push(
+ flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
+ );
+ }
+ }
+
+ Object.keys(defaults).forEach(function (key) {
+ if (!hasKey(argv, key.split('.'))) {
+ setKey(argv, key.split('.'), defaults[key]);
+
+ (aliases[key] || []).forEach(function (x) {
+ setKey(argv, x.split('.'), defaults[key]);
+ });
+ }
+ });
+
+ notFlags.forEach(function(key) {
+ argv._.push(key);
+ });
+
+ return argv;
+};
+
+function hasKey (obj, keys) {
+ var o = obj;
+ keys.slice(0,-1).forEach(function (key) {
+ o = (o[key] || {});
+ });
+
+ var key = keys[keys.length - 1];
+ return key in o;
+}
+
+function setKey (obj, keys, value) {
+ var o = obj;
+ keys.slice(0,-1).forEach(function (key) {
+ if (o[key] === undefined) o[key] = {};
+ o = o[key];
+ });
+
+ var key = keys[keys.length - 1];
+ if (o[key] === undefined || typeof o[key] === 'boolean') {
+ o[key] = value;
+ }
+ else if (Array.isArray(o[key])) {
+ o[key].push(value);
+ }
+ else {
+ o[key] = [ o[key], value ];
+ }
+}
+
+function isNumber (x) {
+ if (typeof x === 'number') return true;
+ if (/^0x[0-9a-f]+$/i.test(x)) return true;
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
+}
+
+function longest (xs) {
+ return Math.max.apply(null, xs.map(function (x) { return x.length }));
+}
diff --git a/deps/npm/node_modules/minimist/package.json b/deps/npm/node_modules/minimist/package.json
new file mode 100644
index 0000000000..0a1961342b
--- /dev/null
+++ b/deps/npm/node_modules/minimist/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "minimist@0.0.8",
+ "_id": "minimist@0.0.8",
+ "_inBundle": false,
+ "_integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
+ "_location": "/minimist",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "minimist@0.0.8",
+ "name": "minimist",
+ "escapedName": "minimist",
+ "rawSpec": "0.0.8",
+ "saveSpec": null,
+ "fetchSpec": "0.0.8"
+ },
+ "_requiredBy": [
+ "/mkdirp"
+ ],
+ "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d",
+ "_spec": "minimist@0.0.8",
+ "_where": "/Users/rebecca/code/npm/node_modules/mkdirp",
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/minimist/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "parse argument options",
+ "devDependencies": {
+ "tap": "~0.4.0",
+ "tape": "~1.0.4"
+ },
+ "homepage": "https://github.com/substack/minimist",
+ "keywords": [
+ "argv",
+ "getopt",
+ "parser",
+ "optimist"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "minimist",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/minimist.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "testling": {
+ "files": "test/*.js",
+ "browsers": [
+ "ie/6..latest",
+ "ff/5",
+ "firefox/latest",
+ "chrome/10",
+ "chrome/latest",
+ "safari/5.1",
+ "safari/latest",
+ "opera/12"
+ ]
+ },
+ "version": "0.0.8"
+}
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown b/deps/npm/node_modules/minimist/readme.markdown
index c25635323e..c25635323e 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/readme.markdown
+++ b/deps/npm/node_modules/minimist/readme.markdown
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js b/deps/npm/node_modules/minimist/test/dash.js
index 8b034b99a9..8b034b99a9 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dash.js
+++ b/deps/npm/node_modules/minimist/test/dash.js
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js b/deps/npm/node_modules/minimist/test/default_bool.js
index f0041ee40c..f0041ee40c 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/default_bool.js
+++ b/deps/npm/node_modules/minimist/test/default_bool.js
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js b/deps/npm/node_modules/minimist/test/dotted.js
index ef0ae349bf..ef0ae349bf 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/dotted.js
+++ b/deps/npm/node_modules/minimist/test/dotted.js
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js b/deps/npm/node_modules/minimist/test/long.js
index 5d3a1e09d3..5d3a1e09d3 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/long.js
+++ b/deps/npm/node_modules/minimist/test/long.js
diff --git a/deps/npm/node_modules/minimist/test/parse.js b/deps/npm/node_modules/minimist/test/parse.js
new file mode 100644
index 0000000000..47e92237fb
--- /dev/null
+++ b/deps/npm/node_modules/minimist/test/parse.js
@@ -0,0 +1,318 @@
+var parse = require('../');
+var test = require('tape');
+
+test('parse args', function (t) {
+ t.deepEqual(
+ parse([ '--no-moo' ]),
+ { moo : false, _ : [] },
+ 'no'
+ );
+ t.deepEqual(
+ parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]),
+ { v : ['a','b','c'], _ : [] },
+ 'multi'
+ );
+ t.end();
+});
+
+test('comprehensive', function (t) {
+ t.deepEqual(
+ parse([
+ '--name=meowmers', 'bare', '-cats', 'woo',
+ '-h', 'awesome', '--multi=quux',
+ '--key', 'value',
+ '-b', '--bool', '--no-meep', '--multi=baz',
+ '--', '--not-a-flag', 'eek'
+ ]),
+ {
+ c : true,
+ a : true,
+ t : true,
+ s : 'woo',
+ h : 'awesome',
+ b : true,
+ bool : true,
+ key : 'value',
+ multi : [ 'quux', 'baz' ],
+ meep : false,
+ name : 'meowmers',
+ _ : [ 'bare', '--not-a-flag', 'eek' ]
+ }
+ );
+ t.end();
+});
+
+test('nums', function (t) {
+ var argv = parse([
+ '-x', '1234',
+ '-y', '5.67',
+ '-z', '1e7',
+ '-w', '10f',
+ '--hex', '0xdeadbeef',
+ '789'
+ ]);
+ t.deepEqual(argv, {
+ x : 1234,
+ y : 5.67,
+ z : 1e7,
+ w : '10f',
+ hex : 0xdeadbeef,
+ _ : [ 789 ]
+ });
+ t.deepEqual(typeof argv.x, 'number');
+ t.deepEqual(typeof argv.y, 'number');
+ t.deepEqual(typeof argv.z, 'number');
+ t.deepEqual(typeof argv.w, 'string');
+ t.deepEqual(typeof argv.hex, 'number');
+ t.deepEqual(typeof argv._[0], 'number');
+ t.end();
+});
+
+test('flag boolean', function (t) {
+ var argv = parse([ '-t', 'moo' ], { boolean: 't' });
+ t.deepEqual(argv, { t : true, _ : [ 'moo' ] });
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+});
+
+test('flag boolean value', function (t) {
+ var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
+ boolean: [ 't', 'verbose' ],
+ default: { verbose: true }
+ });
+
+ t.deepEqual(argv, {
+ verbose: false,
+ t: true,
+ _: ['moo']
+ });
+
+ t.deepEqual(typeof argv.verbose, 'boolean');
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+});
+
+test('flag boolean default false', function (t) {
+ var argv = parse(['moo'], {
+ boolean: ['t', 'verbose'],
+ default: { verbose: false, t: false }
+ });
+
+ t.deepEqual(argv, {
+ verbose: false,
+ t: false,
+ _: ['moo']
+ });
+
+ t.deepEqual(typeof argv.verbose, 'boolean');
+ t.deepEqual(typeof argv.t, 'boolean');
+ t.end();
+
+});
+
+test('boolean groups', function (t) {
+ var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
+ boolean: ['x','y','z']
+ });
+
+ t.deepEqual(argv, {
+ x : true,
+ y : false,
+ z : true,
+ _ : [ 'one', 'two', 'three' ]
+ });
+
+ t.deepEqual(typeof argv.x, 'boolean');
+ t.deepEqual(typeof argv.y, 'boolean');
+ t.deepEqual(typeof argv.z, 'boolean');
+ t.end();
+});
+
+test('newlines in params' , function (t) {
+ var args = parse([ '-s', "X\nX" ])
+ t.deepEqual(args, { _ : [], s : "X\nX" });
+
+ // reproduce in bash:
+ // VALUE="new
+ // line"
+ // node program.js --s="$VALUE"
+ args = parse([ "--s=X\nX" ])
+ t.deepEqual(args, { _ : [], s : "X\nX" });
+ t.end();
+});
+
+test('strings' , function (t) {
+ var s = parse([ '-s', '0001234' ], { string: 's' }).s;
+ t.equal(s, '0001234');
+ t.equal(typeof s, 'string');
+
+ var x = parse([ '-x', '56' ], { string: 'x' }).x;
+ t.equal(x, '56');
+ t.equal(typeof x, 'string');
+ t.end();
+});
+
+test('stringArgs', function (t) {
+ var s = parse([ ' ', ' ' ], { string: '_' })._;
+ t.same(s.length, 2);
+ t.same(typeof s[0], 'string');
+ t.same(s[0], ' ');
+ t.same(typeof s[1], 'string');
+ t.same(s[1], ' ');
+ t.end();
+});
+
+test('empty strings', function(t) {
+ var s = parse([ '-s' ], { string: 's' }).s;
+ t.equal(s, '');
+ t.equal(typeof s, 'string');
+
+ var str = parse([ '--str' ], { string: 'str' }).str;
+ t.equal(str, '');
+ t.equal(typeof str, 'string');
+
+ var letters = parse([ '-art' ], {
+ string: [ 'a', 't' ]
+ });
+
+ t.equal(letters.a, '');
+ t.equal(letters.r, true);
+ t.equal(letters.t, '');
+
+ t.end();
+});
+
+
+test('slashBreak', function (t) {
+ t.same(
+ parse([ '-I/foo/bar/baz' ]),
+ { I : '/foo/bar/baz', _ : [] }
+ );
+ t.same(
+ parse([ '-xyz/foo/bar/baz' ]),
+ { x : true, y : true, z : '/foo/bar/baz', _ : [] }
+ );
+ t.end();
+});
+
+test('alias', function (t) {
+ var argv = parse([ '-f', '11', '--zoom', '55' ], {
+ alias: { z: 'zoom' }
+ });
+ t.equal(argv.zoom, 55);
+ t.equal(argv.z, argv.zoom);
+ t.equal(argv.f, 11);
+ t.end();
+});
+
+test('multiAlias', function (t) {
+ var argv = parse([ '-f', '11', '--zoom', '55' ], {
+ alias: { z: [ 'zm', 'zoom' ] }
+ });
+ t.equal(argv.zoom, 55);
+ t.equal(argv.z, argv.zoom);
+ t.equal(argv.z, argv.zm);
+ t.equal(argv.f, 11);
+ t.end();
+});
+
+test('nested dotted objects', function (t) {
+ var argv = parse([
+ '--foo.bar', '3', '--foo.baz', '4',
+ '--foo.quux.quibble', '5', '--foo.quux.o_O',
+ '--beep.boop'
+ ]);
+
+ t.same(argv.foo, {
+ bar : 3,
+ baz : 4,
+ quux : {
+ quibble : 5,
+ o_O : true
+ }
+ });
+ t.same(argv.beep, { boop : true });
+ t.end();
+});
+
+test('boolean and alias with chainable api', function (t) {
+ var aliased = [ '-h', 'derp' ];
+ var regular = [ '--herp', 'derp' ];
+ var opts = {
+ herp: { alias: 'h', boolean: true }
+ };
+ var aliasedArgv = parse(aliased, {
+ boolean: 'herp',
+ alias: { h: 'herp' }
+ });
+ var propertyArgv = parse(regular, {
+ boolean: 'herp',
+ alias: { h: 'herp' }
+ });
+ var expected = {
+ herp: true,
+ h: true,
+ '_': [ 'derp' ]
+ };
+
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+test('boolean and alias with options hash', function (t) {
+ var aliased = [ '-h', 'derp' ];
+ var regular = [ '--herp', 'derp' ];
+ var opts = {
+ alias: { 'h': 'herp' },
+ boolean: 'herp'
+ };
+ var aliasedArgv = parse(aliased, opts);
+ var propertyArgv = parse(regular, opts);
+ var expected = {
+ herp: true,
+ h: true,
+ '_': [ 'derp' ]
+ };
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+test('boolean and alias using explicit true', function (t) {
+ var aliased = [ '-h', 'true' ];
+ var regular = [ '--herp', 'true' ];
+ var opts = {
+ alias: { h: 'herp' },
+ boolean: 'h'
+ };
+ var aliasedArgv = parse(aliased, opts);
+ var propertyArgv = parse(regular, opts);
+ var expected = {
+ herp: true,
+ h: true,
+ '_': [ ]
+ };
+
+ t.same(aliasedArgv, expected);
+ t.same(propertyArgv, expected);
+ t.end();
+});
+
+// regression, see https://github.com/substack/node-optimist/issues/71
+test('boolean and --x=true', function(t) {
+ var parsed = parse(['--boool', '--other=true'], {
+ boolean: 'boool'
+ });
+
+ t.same(parsed.boool, true);
+ t.same(parsed.other, 'true');
+
+ parsed = parse(['--boool', '--other=false'], {
+ boolean: 'boool'
+ });
+
+ t.same(parsed.boool, true);
+ t.same(parsed.other, 'false');
+ t.end();
+});
diff --git a/deps/npm/node_modules/minimist/test/parse_modified.js b/deps/npm/node_modules/minimist/test/parse_modified.js
new file mode 100644
index 0000000000..7c4c2abe39
--- /dev/null
+++ b/deps/npm/node_modules/minimist/test/parse_modified.js
@@ -0,0 +1,9 @@
+var parse = require('../');
+var test = require('tape');
+
+test('parse with modifier functions' , function (t) {
+ t.plan(1);
+
+ var argv = parse([ '-b', '123' ], { boolean: 'b' });
+ t.deepEqual(argv, { b: true, _: ['123'] });
+});
diff --git a/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 b/deps/npm/node_modules/minimist/test/short.js
index ac18880f1e..ac18880f1e 100644
--- a/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
+++ b/deps/npm/node_modules/minimist/test/short.js
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js b/deps/npm/node_modules/minimist/test/whitespace.js
index 8a52a58cec..8a52a58cec 100644
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/whitespace.js
+++ b/deps/npm/node_modules/minimist/test/whitespace.js
diff --git a/deps/npm/node_modules/minipass/README.md b/deps/npm/node_modules/minipass/README.md
new file mode 100644
index 0000000000..7a83c59ffd
--- /dev/null
+++ b/deps/npm/node_modules/minipass/README.md
@@ -0,0 +1,124 @@
+# minipass
+
+A _very_ minimal implementation of a [PassThrough
+stream](https://nodejs.org/api/stream.html#stream_class_stream_passthrough)
+
+[It's very
+fast](https://docs.google.com/spreadsheets/d/1oObKSrVwLX_7Ut4Z6g3fZW-AX1j1-k6w-cDsrkaSbHM/edit#gid=0)
+for objects, strings, and buffers.
+
+Supports pipe()ing (including multi-pipe() and backpressure
+transmission), buffering data until either a `data` event handler or
+`pipe()` is added (so you don't lose the first chunk), and most other
+cases where PassThrough is a good idea.
+
+There is a `read()` method, but it's much more efficient to consume
+data from this stream via `'data'` events or by calling `pipe()` into
+some other stream. Calling `read()` requires the buffer to be
+flattened in some cases, which requires copying memory.
+
+There is also no `unpipe()` method. Once you start piping, there is
+no stopping it!
+
+If you set `objectMode: true` in the options, then whatever is written
+will be emitted. Otherwise, it'll do a minimal amount of Buffer
+copying to ensure proper Streams semantics when `read(n)` is called.
+
+This is not a `through` or `through2` stream. It doesn't transform
+the data, it just passes it right through. If you want to transform
+the data, extend the class, and override the `write()` method. Once
+you're done transforming the data however you want, call
+`super.write()` with the transform output.
+
+For an example of a stream that extends MiniPass to provide transform
+capabilities, check out [minizlib](http://npm.im/minizlib).
+
+## USAGE
+
+```js
+const MiniPass = require('minipass')
+const mp = new MiniPass(options) // optional: { encoding }
+mp.write('foo')
+mp.pipe(someOtherStream)
+mp.end('bar')
+```
+
+### collecting
+
+```js
+mp.collect().then(all => {
+ // all is an array of all the data emitted
+ // encoding is supported in this case, so
+ // so the result will be a collection of strings if
+ // an encoding is specified, or buffers/objects if not.
+ //
+ // In an async function, you may do
+ // const data = await stream.collect()
+})
+```
+
+### iteration
+
+You can iterate over streams synchronously or asynchronously in
+platforms that support it.
+
+Synchronous iteration will end when the currently available data is
+consumed, even if the `end` event has not been reached. In string and
+buffer mode, the data is concatenated, so unless multiple writes are
+occurring in the same tick as the `read()`, sync iteration loops will
+generally only have a single iteration.
+
+To consume chunks in this way exactly as they have been written, with
+no flattening, create the stream with the `{ objectMode: true }`
+option.
+
+```js
+const mp = new Minipass({ objectMode: true })
+mp.write('a')
+mp.write('b')
+for (let letter of mp) {
+ console.log(letter) // a, b
+}
+mp.write('c')
+mp.write('d')
+for (let letter of mp) {
+ console.log(letter) // c, d
+}
+mp.write('e')
+mp.end()
+for (let letter of mp) {
+ console.log(letter) // e
+}
+for (let letter of mp) {
+ console.log(letter) // nothing
+}
+```
+
+Asynchronous iteration will continue until the end event is reached,
+consuming all of the data.
+
+```js
+const mp = new Minipass({ encoding: 'utf8' })
+
+// some source of some data
+let i = 5
+const inter = setInterval(() => {
+ if (i --> 0)
+ mp.write(Buffer.from('foo\n', 'utf8'))
+ else {
+ mp.end()
+ clearInterval(inter)
+ }
+}, 100)
+
+// consume the data with asynchronous iteration
+async function consume () {
+ for await (let chunk of mp) {
+ console.log(chunk)
+ }
+ return 'ok'
+}
+
+consume().then(res => console.log(res))
+// logs `foo\n` 5 times, and then `ok`
+```
diff --git a/deps/npm/node_modules/minipass/index.js b/deps/npm/node_modules/minipass/index.js
new file mode 100644
index 0000000000..ae2dd90640
--- /dev/null
+++ b/deps/npm/node_modules/minipass/index.js
@@ -0,0 +1,379 @@
+'use strict'
+const EE = require('events')
+const Yallist = require('yallist')
+const EOF = Symbol('EOF')
+const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
+const EMITTED_END = Symbol('emittedEnd')
+const CLOSED = Symbol('closed')
+const READ = Symbol('read')
+const FLUSH = Symbol('flush')
+const doIter = process.env._MP_NO_ITERATOR_SYMBOLS_ !== '1'
+const ASYNCITERATOR = doIter && Symbol.asyncIterator || Symbol('asyncIterator not implemented')
+const ITERATOR = doIter && Symbol.iterator || Symbol('iterator not implemented')
+const FLUSHCHUNK = Symbol('flushChunk')
+const SD = require('string_decoder').StringDecoder
+const ENCODING = Symbol('encoding')
+const DECODER = Symbol('decoder')
+const FLOWING = Symbol('flowing')
+const RESUME = Symbol('resume')
+const BUFFERLENGTH = Symbol('bufferLength')
+const BUFFERPUSH = Symbol('bufferPush')
+const BUFFERSHIFT = Symbol('bufferShift')
+const OBJECTMODE = Symbol('objectMode')
+const SILENT_END = Symbol('silentEnd')
+
+// Buffer in node 4.x < 4.5.0 doesn't have working Buffer.from
+// or Buffer.alloc, and Buffer in node 10 deprecated the ctor.
+// .M, this is fine .\^/M..
+let B = Buffer
+/* istanbul ignore next */
+if (!B.alloc) {
+ B = require('safe-buffer').Buffer
+}
+
+module.exports = class MiniPass extends EE {
+ constructor (options) {
+ super()
+ this[SILENT_END] = false
+ this[FLOWING] = false
+ this.pipes = new Yallist()
+ this.buffer = new Yallist()
+ this[OBJECTMODE] = options && options.objectMode || false
+ if (this[OBJECTMODE])
+ this[ENCODING] = null
+ else
+ this[ENCODING] = options && options.encoding || null
+ if (this[ENCODING] === 'buffer')
+ this[ENCODING] = null
+ this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
+ this[EOF] = false
+ this[EMITTED_END] = false
+ this[CLOSED] = false
+ this.writable = true
+ this.readable = true
+ this[BUFFERLENGTH] = 0
+ }
+
+ get bufferLength () { return this[BUFFERLENGTH] }
+
+ get encoding () { return this[ENCODING] }
+ set encoding (enc) {
+ if (this[OBJECTMODE])
+ throw new Error('cannot set encoding in objectMode')
+
+ if (this[ENCODING] && enc !== this[ENCODING] &&
+ (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH]))
+ throw new Error('cannot change encoding')
+
+ if (this[ENCODING] !== enc) {
+ this[DECODER] = enc ? new SD(enc) : null
+ if (this.buffer.length)
+ this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk))
+ }
+
+ this[ENCODING] = enc
+ }
+
+ setEncoding (enc) {
+ this.encoding = enc
+ }
+
+ write (chunk, encoding, cb) {
+ if (this[EOF])
+ throw new Error('write after end')
+
+ if (typeof encoding === 'function')
+ cb = encoding, encoding = 'utf8'
+
+ if (!encoding)
+ encoding = 'utf8'
+
+ // fast-path writing strings of same encoding to a stream with
+ // an empty buffer, skipping the buffer/decoder dance
+ if (typeof chunk === 'string' && !this[OBJECTMODE] &&
+ // unless it is a string already ready for us to use
+ !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) {
+ chunk = B.from(chunk, encoding)
+ }
+
+ if (B.isBuffer(chunk) && this[ENCODING])
+ chunk = this[DECODER].write(chunk)
+
+ try {
+ return this.flowing
+ ? (this.emit('data', chunk), this.flowing)
+ : (this[BUFFERPUSH](chunk), false)
+ } finally {
+ this.emit('readable')
+ if (cb)
+ cb()
+ }
+ }
+
+ read (n) {
+ try {
+ if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH])
+ return null
+
+ if (this[OBJECTMODE])
+ n = null
+
+ if (this.buffer.length > 1 && !this[OBJECTMODE]) {
+ if (this.encoding)
+ this.buffer = new Yallist([
+ Array.from(this.buffer).join('')
+ ])
+ else
+ this.buffer = new Yallist([
+ B.concat(Array.from(this.buffer), this[BUFFERLENGTH])
+ ])
+ }
+
+ return this[READ](n || null, this.buffer.head.value)
+ } finally {
+ this[MAYBE_EMIT_END]()
+ }
+ }
+
+ [READ] (n, chunk) {
+ if (n === chunk.length || n === null)
+ this[BUFFERSHIFT]()
+ else {
+ this.buffer.head.value = chunk.slice(n)
+ chunk = chunk.slice(0, n)
+ this[BUFFERLENGTH] -= n
+ }
+
+ this.emit('data', chunk)
+
+ if (!this.buffer.length && !this[EOF])
+ this.emit('drain')
+
+ return chunk
+ }
+
+ end (chunk, encoding, cb) {
+ if (typeof chunk === 'function')
+ cb = chunk, chunk = null
+ if (typeof encoding === 'function')
+ cb = encoding, encoding = 'utf8'
+ if (chunk)
+ this.write(chunk, encoding)
+ if (cb)
+ this.once('end', cb)
+ this[EOF] = true
+ this.writable = false
+ if (this.flowing)
+ this[MAYBE_EMIT_END]()
+ }
+
+ // don't let the internal resume be overwritten
+ [RESUME] () {
+ this[FLOWING] = true
+ this.emit('resume')
+ if (this.buffer.length)
+ this[FLUSH]()
+ else if (this[EOF])
+ this[MAYBE_EMIT_END]()
+ else
+ this.emit('drain')
+ }
+
+ resume () {
+ return this[RESUME]()
+ }
+
+ pause () {
+ this[FLOWING] = false
+ }
+
+ get flowing () {
+ return this[FLOWING]
+ }
+
+ [BUFFERPUSH] (chunk) {
+ if (this[OBJECTMODE])
+ this[BUFFERLENGTH] += 1
+ else
+ this[BUFFERLENGTH] += chunk.length
+ return this.buffer.push(chunk)
+ }
+
+ [BUFFERSHIFT] () {
+ if (this.buffer.length) {
+ if (this[OBJECTMODE])
+ this[BUFFERLENGTH] -= 1
+ else
+ this[BUFFERLENGTH] -= this.buffer.head.value.length
+ }
+ return this.buffer.shift()
+ }
+
+ [FLUSH] () {
+ do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()))
+
+ if (!this.buffer.length && !this[EOF])
+ this.emit('drain')
+ }
+
+ [FLUSHCHUNK] (chunk) {
+ return chunk ? (this.emit('data', chunk), this.flowing) : false
+ }
+
+ pipe (dest, opts) {
+ if (dest === process.stdout || dest === process.stderr)
+ (opts = opts || {}).end = false
+ const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() }
+ this.pipes.push(p)
+
+ dest.on('drain', p.ondrain)
+ this[RESUME]()
+ return dest
+ }
+
+ addListener (ev, fn) {
+ return this.on(ev, fn)
+ }
+
+ on (ev, fn) {
+ try {
+ return super.on(ev, fn)
+ } finally {
+ if (ev === 'data' && !this.pipes.length && !this.flowing)
+ this[RESUME]()
+ else if (ev === 'end' && this[SILENT_END] && this[EMITTED_END]) {
+ this[SILENT_END] = false
+ super.emit('end')
+ }
+ }
+ }
+
+ get emittedEnd () {
+ return this[EMITTED_END]
+ }
+
+ [MAYBE_EMIT_END] () {
+ if (!this[EMITTED_END] && this.buffer.length === 0 && this[EOF]) {
+ this.emit('end')
+ this.emit('prefinish')
+ this.emit('finish')
+ if (this[CLOSED])
+ this.emit('close')
+ }
+ }
+
+ emit (ev, data) {
+ if (ev === 'data') {
+ if (!data)
+ return
+
+ if (this.pipes.length)
+ this.pipes.forEach(p => p.dest.write(data) || this.pause())
+ } else if (ev === 'end') {
+ if (this[EMITTED_END] === true)
+ return
+
+ this[EMITTED_END] = true
+ this.readable = false
+
+ if (this[DECODER]) {
+ data = this[DECODER].end()
+ if (data) {
+ this.pipes.forEach(p => p.dest.write(data))
+ super.emit('data', data)
+ }
+ }
+
+ this.pipes.forEach(p => {
+ p.dest.removeListener('drain', p.ondrain)
+ if (!p.opts || p.opts.end !== false)
+ p.dest.end()
+ })
+ } else if (ev === 'close') {
+ this[CLOSED] = true
+ // don't emit close before 'end' and 'finish'
+ if (!this[EMITTED_END])
+ return
+ }
+
+ const args = new Array(arguments.length)
+ args[0] = ev
+ args[1] = data
+ if (arguments.length > 2) {
+ for (let i = 2; i < arguments.length; i++) {
+ args[i] = arguments[i]
+ }
+ }
+
+ try {
+ const ret = super.emit.apply(this, args)
+ if (ev === 'end' && ret === false)
+ this[SILENT_END] = true
+ return ret
+ } finally {
+ if (ev !== 'end')
+ this[MAYBE_EMIT_END]()
+ }
+ }
+
+ // const all = await stream.collect()
+ collect () {
+ return new Promise((resolve, reject) => {
+ const buf = []
+ this.on('data', c => buf.push(c))
+ this.on('end', () => resolve(buf))
+ this.on('error', reject)
+ })
+ }
+
+ // for await (let chunk of stream)
+ [ASYNCITERATOR] () {
+ const next = () => {
+ const res = this.read()
+ if (res !== null)
+ return Promise.resolve({ done: false, value: res })
+
+ if (this[EOF])
+ return Promise.resolve({ done: true })
+
+ let resolve = null
+ let reject = null
+ const onerr = er => {
+ this.removeListener('data', ondata)
+ this.removeListener('end', onend)
+ reject(er)
+ }
+ const ondata = value => {
+ this.removeListener('error', onerr)
+ this.removeListener('end', onend)
+ this.pause()
+ resolve({ value: value, done: !!this[EOF] })
+ }
+ const onend = () => {
+ this.removeListener('error', onerr)
+ this.removeListener('data', ondata)
+ resolve({ done: true })
+ }
+ return new Promise((res, rej) => {
+ reject = rej
+ resolve = res
+ this.once('error', onerr)
+ this.once('end', onend)
+ this.once('data', ondata)
+ this.resume()
+ })
+ }
+
+ return { next }
+ }
+
+ // for (let chunk of stream)
+ [ITERATOR] () {
+ const next = () => {
+ const value = this.read()
+ const done = value === null
+ return { value, done }
+ }
+ return { next }
+ }
+}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENSE b/deps/npm/node_modules/minipass/node_modules/yallist/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/LICENSE
+++ b/deps/npm/node_modules/minipass/node_modules/yallist/LICENSE
diff --git a/deps/npm/node_modules/lru-cache/node_modules/yallist/README.md b/deps/npm/node_modules/minipass/node_modules/yallist/README.md
index f586101869..f586101869 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/yallist/README.md
+++ b/deps/npm/node_modules/minipass/node_modules/yallist/README.md
diff --git a/deps/npm/node_modules/minipass/node_modules/yallist/iterator.js b/deps/npm/node_modules/minipass/node_modules/yallist/iterator.js
new file mode 100644
index 0000000000..9149b36488
--- /dev/null
+++ b/deps/npm/node_modules/minipass/node_modules/yallist/iterator.js
@@ -0,0 +1,8 @@
+'use strict'
+var Yallist = require('./yallist.js')
+
+Yallist.prototype[Symbol.iterator] = function* () {
+ for (let walker = this.head; walker; walker = walker.next) {
+ yield walker.value
+ }
+}
diff --git a/deps/npm/node_modules/minipass/node_modules/yallist/package.json b/deps/npm/node_modules/minipass/node_modules/yallist/package.json
new file mode 100644
index 0000000000..d7b5f46b9a
--- /dev/null
+++ b/deps/npm/node_modules/minipass/node_modules/yallist/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "yallist@^3.0.0",
+ "_id": "yallist@3.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=",
+ "_location": "/minipass/yallist",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "yallist@^3.0.0",
+ "name": "yallist",
+ "escapedName": "yallist",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/minipass"
+ ],
+ "_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
+ "_shasum": "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9",
+ "_spec": "yallist@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/minipass",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/yallist/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Yet Another Linked List",
+ "devDependencies": {
+ "tap": "^10.3.0"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "files": [
+ "yallist.js",
+ "iterator.js"
+ ],
+ "homepage": "https://github.com/isaacs/yallist#readme",
+ "license": "ISC",
+ "main": "yallist.js",
+ "name": "yallist",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/yallist.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100"
+ },
+ "version": "3.0.2"
+}
diff --git a/deps/npm/node_modules/minipass/node_modules/yallist/yallist.js b/deps/npm/node_modules/minipass/node_modules/yallist/yallist.js
new file mode 100644
index 0000000000..4805bc69fa
--- /dev/null
+++ b/deps/npm/node_modules/minipass/node_modules/yallist/yallist.js
@@ -0,0 +1,376 @@
+'use strict'
+module.exports = Yallist
+
+Yallist.Node = Node
+Yallist.create = Yallist
+
+function Yallist (list) {
+ var self = this
+ if (!(self instanceof Yallist)) {
+ self = new Yallist()
+ }
+
+ self.tail = null
+ self.head = null
+ self.length = 0
+
+ if (list && typeof list.forEach === 'function') {
+ list.forEach(function (item) {
+ self.push(item)
+ })
+ } else if (arguments.length > 0) {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ self.push(arguments[i])
+ }
+ }
+
+ return self
+}
+
+Yallist.prototype.removeNode = function (node) {
+ if (node.list !== this) {
+ throw new Error('removing node which does not belong to this list')
+ }
+
+ var next = node.next
+ var prev = node.prev
+
+ if (next) {
+ next.prev = prev
+ }
+
+ if (prev) {
+ prev.next = next
+ }
+
+ if (node === this.head) {
+ this.head = next
+ }
+ if (node === this.tail) {
+ this.tail = prev
+ }
+
+ node.list.length--
+ node.next = null
+ node.prev = null
+ node.list = null
+}
+
+Yallist.prototype.unshiftNode = function (node) {
+ if (node === this.head) {
+ return
+ }
+
+ if (node.list) {
+ node.list.removeNode(node)
+ }
+
+ var head = this.head
+ node.list = this
+ node.next = head
+ if (head) {
+ head.prev = node
+ }
+
+ this.head = node
+ if (!this.tail) {
+ this.tail = node
+ }
+ this.length++
+}
+
+Yallist.prototype.pushNode = function (node) {
+ if (node === this.tail) {
+ return
+ }
+
+ if (node.list) {
+ node.list.removeNode(node)
+ }
+
+ var tail = this.tail
+ node.list = this
+ node.prev = tail
+ if (tail) {
+ tail.next = node
+ }
+
+ this.tail = node
+ if (!this.head) {
+ this.head = node
+ }
+ this.length++
+}
+
+Yallist.prototype.push = function () {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ push(this, arguments[i])
+ }
+ return this.length
+}
+
+Yallist.prototype.unshift = function () {
+ for (var i = 0, l = arguments.length; i < l; i++) {
+ unshift(this, arguments[i])
+ }
+ return this.length
+}
+
+Yallist.prototype.pop = function () {
+ if (!this.tail) {
+ return undefined
+ }
+
+ var res = this.tail.value
+ this.tail = this.tail.prev
+ if (this.tail) {
+ this.tail.next = null
+ } else {
+ this.head = null
+ }
+ this.length--
+ return res
+}
+
+Yallist.prototype.shift = function () {
+ if (!this.head) {
+ return undefined
+ }
+
+ var res = this.head.value
+ this.head = this.head.next
+ if (this.head) {
+ this.head.prev = null
+ } else {
+ this.tail = null
+ }
+ this.length--
+ return res
+}
+
+Yallist.prototype.forEach = function (fn, thisp) {
+ thisp = thisp || this
+ for (var walker = this.head, i = 0; walker !== null; i++) {
+ fn.call(thisp, walker.value, i, this)
+ walker = walker.next
+ }
+}
+
+Yallist.prototype.forEachReverse = function (fn, thisp) {
+ thisp = thisp || this
+ for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {
+ fn.call(thisp, walker.value, i, this)
+ walker = walker.prev
+ }
+}
+
+Yallist.prototype.get = function (n) {
+ for (var i = 0, walker = this.head; walker !== null && i < n; i++) {
+ // abort out of the list early if we hit a cycle
+ walker = walker.next
+ }
+ if (i === n && walker !== null) {
+ return walker.value
+ }
+}
+
+Yallist.prototype.getReverse = function (n) {
+ for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {
+ // abort out of the list early if we hit a cycle
+ walker = walker.prev
+ }
+ if (i === n && walker !== null) {
+ return walker.value
+ }
+}
+
+Yallist.prototype.map = function (fn, thisp) {
+ thisp = thisp || this
+ var res = new Yallist()
+ for (var walker = this.head; walker !== null;) {
+ res.push(fn.call(thisp, walker.value, this))
+ walker = walker.next
+ }
+ return res
+}
+
+Yallist.prototype.mapReverse = function (fn, thisp) {
+ thisp = thisp || this
+ var res = new Yallist()
+ for (var walker = this.tail; walker !== null;) {
+ res.push(fn.call(thisp, walker.value, this))
+ walker = walker.prev
+ }
+ return res
+}
+
+Yallist.prototype.reduce = function (fn, initial) {
+ var acc
+ var walker = this.head
+ if (arguments.length > 1) {
+ acc = initial
+ } else if (this.head) {
+ walker = this.head.next
+ acc = this.head.value
+ } else {
+ throw new TypeError('Reduce of empty list with no initial value')
+ }
+
+ for (var i = 0; walker !== null; i++) {
+ acc = fn(acc, walker.value, i)
+ walker = walker.next
+ }
+
+ return acc
+}
+
+Yallist.prototype.reduceReverse = function (fn, initial) {
+ var acc
+ var walker = this.tail
+ if (arguments.length > 1) {
+ acc = initial
+ } else if (this.tail) {
+ walker = this.tail.prev
+ acc = this.tail.value
+ } else {
+ throw new TypeError('Reduce of empty list with no initial value')
+ }
+
+ for (var i = this.length - 1; walker !== null; i--) {
+ acc = fn(acc, walker.value, i)
+ walker = walker.prev
+ }
+
+ return acc
+}
+
+Yallist.prototype.toArray = function () {
+ var arr = new Array(this.length)
+ for (var i = 0, walker = this.head; walker !== null; i++) {
+ arr[i] = walker.value
+ walker = walker.next
+ }
+ return arr
+}
+
+Yallist.prototype.toArrayReverse = function () {
+ var arr = new Array(this.length)
+ for (var i = 0, walker = this.tail; walker !== null; i++) {
+ arr[i] = walker.value
+ walker = walker.prev
+ }
+ return arr
+}
+
+Yallist.prototype.slice = function (from, to) {
+ to = to || this.length
+ if (to < 0) {
+ to += this.length
+ }
+ from = from || 0
+ if (from < 0) {
+ from += this.length
+ }
+ var ret = new Yallist()
+ if (to < from || to < 0) {
+ return ret
+ }
+ if (from < 0) {
+ from = 0
+ }
+ if (to > this.length) {
+ to = this.length
+ }
+ for (var i = 0, walker = this.head; walker !== null && i < from; i++) {
+ walker = walker.next
+ }
+ for (; walker !== null && i < to; i++, walker = walker.next) {
+ ret.push(walker.value)
+ }
+ return ret
+}
+
+Yallist.prototype.sliceReverse = function (from, to) {
+ to = to || this.length
+ if (to < 0) {
+ to += this.length
+ }
+ from = from || 0
+ if (from < 0) {
+ from += this.length
+ }
+ var ret = new Yallist()
+ if (to < from || to < 0) {
+ return ret
+ }
+ if (from < 0) {
+ from = 0
+ }
+ if (to > this.length) {
+ to = this.length
+ }
+ for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {
+ walker = walker.prev
+ }
+ for (; walker !== null && i > from; i--, walker = walker.prev) {
+ ret.push(walker.value)
+ }
+ return ret
+}
+
+Yallist.prototype.reverse = function () {
+ var head = this.head
+ var tail = this.tail
+ for (var walker = head; walker !== null; walker = walker.prev) {
+ var p = walker.prev
+ walker.prev = walker.next
+ walker.next = p
+ }
+ this.head = tail
+ this.tail = head
+ return this
+}
+
+function push (self, item) {
+ self.tail = new Node(item, self.tail, null, self)
+ if (!self.head) {
+ self.head = self.tail
+ }
+ self.length++
+}
+
+function unshift (self, item) {
+ self.head = new Node(item, null, self.head, self)
+ if (!self.tail) {
+ self.tail = self.head
+ }
+ self.length++
+}
+
+function Node (value, prev, next, list) {
+ if (!(this instanceof Node)) {
+ return new Node(value, prev, next, list)
+ }
+
+ this.list = list
+ this.value = value
+
+ if (prev) {
+ prev.next = this
+ this.prev = prev
+ } else {
+ this.prev = null
+ }
+
+ if (next) {
+ next.prev = this
+ this.next = next
+ } else {
+ this.next = null
+ }
+}
+
+try {
+ // add if support or Symbol.iterator is present
+ require('./iterator.js')
+} catch (er) {}
diff --git a/deps/npm/node_modules/minipass/package.json b/deps/npm/node_modules/minipass/package.json
new file mode 100644
index 0000000000..0654e5f597
--- /dev/null
+++ b/deps/npm/node_modules/minipass/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "minipass@^2.3.3",
+ "_id": "minipass@2.3.3",
+ "_inBundle": false,
+ "_integrity": "sha512-/jAn9/tEX4gnpyRATxgHEOV6xbcyxgT7iUnxo9Y3+OB0zX00TgKIv/2FZCf5brBbICcwbLqVv2ImjvWWrQMSYw==",
+ "_location": "/minipass",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "minipass@^2.3.3",
+ "name": "minipass",
+ "escapedName": "minipass",
+ "rawSpec": "^2.3.3",
+ "saveSpec": null,
+ "fetchSpec": "^2.3.3"
+ },
+ "_requiredBy": [
+ "/fs-minipass",
+ "/minizlib",
+ "/pacote",
+ "/tap",
+ "/tap-parser",
+ "/tar"
+ ],
+ "_resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.3.tgz",
+ "_shasum": "a7dcc8b7b833f5d368759cce544dccb55f50f233",
+ "_spec": "minipass@^2.3.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/pacote",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minipass/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "safe-buffer": "^5.1.2",
+ "yallist": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "minimal implementation of a PassThrough stream",
+ "devDependencies": {
+ "end-of-stream": "^1.4.0",
+ "tap": "^12.0.1",
+ "through2": "^2.0.3"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/isaacs/minipass#readme",
+ "keywords": [
+ "passthrough",
+ "stream"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "minipass",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/minipass.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100"
+ },
+ "version": "2.3.3"
+}
diff --git a/deps/npm/node_modules/tar/node_modules/minizlib/LICENSE b/deps/npm/node_modules/minizlib/LICENSE
index ffce7383f5..ffce7383f5 100644
--- a/deps/npm/node_modules/tar/node_modules/minizlib/LICENSE
+++ b/deps/npm/node_modules/minizlib/LICENSE
diff --git a/deps/npm/node_modules/tar/node_modules/minizlib/README.md b/deps/npm/node_modules/minizlib/README.md
index 2b585545ef..2b585545ef 100644
--- a/deps/npm/node_modules/tar/node_modules/minizlib/README.md
+++ b/deps/npm/node_modules/minizlib/README.md
diff --git a/deps/npm/node_modules/tar/node_modules/minizlib/constants.js b/deps/npm/node_modules/minizlib/constants.js
index 4edffde86f..4edffde86f 100644
--- a/deps/npm/node_modules/tar/node_modules/minizlib/constants.js
+++ b/deps/npm/node_modules/minizlib/constants.js
diff --git a/deps/npm/node_modules/minizlib/index.js b/deps/npm/node_modules/minizlib/index.js
new file mode 100644
index 0000000000..10c8a8b486
--- /dev/null
+++ b/deps/npm/node_modules/minizlib/index.js
@@ -0,0 +1,364 @@
+'use strict'
+
+const assert = require('assert')
+const Buffer = require('buffer').Buffer
+const binding = process.binding('zlib')
+
+const constants = exports.constants = require('./constants.js')
+const MiniPass = require('minipass')
+
+class ZlibError extends Error {
+ constructor (msg, errno) {
+ super('zlib: ' + msg)
+ this.errno = errno
+ this.code = codes.get(errno)
+ }
+
+ get name () {
+ return 'ZlibError'
+ }
+}
+
+// translation table for return codes.
+const codes = new Map([
+ [constants.Z_OK, 'Z_OK'],
+ [constants.Z_STREAM_END, 'Z_STREAM_END'],
+ [constants.Z_NEED_DICT, 'Z_NEED_DICT'],
+ [constants.Z_ERRNO, 'Z_ERRNO'],
+ [constants.Z_STREAM_ERROR, 'Z_STREAM_ERROR'],
+ [constants.Z_DATA_ERROR, 'Z_DATA_ERROR'],
+ [constants.Z_MEM_ERROR, 'Z_MEM_ERROR'],
+ [constants.Z_BUF_ERROR, 'Z_BUF_ERROR'],
+ [constants.Z_VERSION_ERROR, 'Z_VERSION_ERROR']
+])
+
+const validFlushFlags = new Set([
+ constants.Z_NO_FLUSH,
+ constants.Z_PARTIAL_FLUSH,
+ constants.Z_SYNC_FLUSH,
+ constants.Z_FULL_FLUSH,
+ constants.Z_FINISH,
+ constants.Z_BLOCK
+])
+
+const strategies = new Set([
+ constants.Z_FILTERED,
+ constants.Z_HUFFMAN_ONLY,
+ constants.Z_RLE,
+ constants.Z_FIXED,
+ constants.Z_DEFAULT_STRATEGY
+])
+
+// the Zlib class they all inherit from
+// This thing manages the queue of requests, and returns
+// true or false if there is anything in the queue when
+// you call the .write() method.
+const _opts = Symbol('opts')
+const _chunkSize = Symbol('chunkSize')
+const _flushFlag = Symbol('flushFlag')
+const _finishFlush = Symbol('finishFlush')
+const _handle = Symbol('handle')
+const _hadError = Symbol('hadError')
+const _buffer = Symbol('buffer')
+const _offset = Symbol('offset')
+const _level = Symbol('level')
+const _strategy = Symbol('strategy')
+const _ended = Symbol('ended')
+const _writeState = Symbol('writeState')
+
+class Zlib extends MiniPass {
+ constructor (opts, mode) {
+ super(opts)
+ this[_ended] = false
+ this[_opts] = opts = opts || {}
+ this[_chunkSize] = opts.chunkSize || constants.Z_DEFAULT_CHUNK
+ if (opts.flush && !validFlushFlags.has(opts.flush)) {
+ throw new TypeError('Invalid flush flag: ' + opts.flush)
+ }
+ if (opts.finishFlush && !validFlushFlags.has(opts.finishFlush)) {
+ throw new TypeError('Invalid flush flag: ' + opts.finishFlush)
+ }
+
+ this[_flushFlag] = opts.flush || constants.Z_NO_FLUSH
+ this[_finishFlush] = typeof opts.finishFlush !== 'undefined' ?
+ opts.finishFlush : constants.Z_FINISH
+
+ if (opts.chunkSize) {
+ if (opts.chunkSize < constants.Z_MIN_CHUNK) {
+ throw new RangeError('Invalid chunk size: ' + opts.chunkSize)
+ }
+ }
+
+ if (opts.windowBits) {
+ if (opts.windowBits < constants.Z_MIN_WINDOWBITS ||
+ opts.windowBits > constants.Z_MAX_WINDOWBITS) {
+ throw new RangeError('Invalid windowBits: ' + opts.windowBits)
+ }
+ }
+
+ if (opts.level) {
+ if (opts.level < constants.Z_MIN_LEVEL ||
+ opts.level > constants.Z_MAX_LEVEL) {
+ throw new RangeError('Invalid compression level: ' + opts.level)
+ }
+ }
+
+ if (opts.memLevel) {
+ if (opts.memLevel < constants.Z_MIN_MEMLEVEL ||
+ opts.memLevel > constants.Z_MAX_MEMLEVEL) {
+ throw new RangeError('Invalid memLevel: ' + opts.memLevel)
+ }
+ }
+
+ if (opts.strategy && !(strategies.has(opts.strategy)))
+ throw new TypeError('Invalid strategy: ' + opts.strategy)
+
+ if (opts.dictionary) {
+ if (!(opts.dictionary instanceof Buffer)) {
+ throw new TypeError('Invalid dictionary: it should be a Buffer instance')
+ }
+ }
+
+ this[_handle] = new binding.Zlib(mode)
+
+ this[_hadError] = false
+ this[_handle].onerror = (message, errno) => {
+ // there is no way to cleanly recover.
+ // continuing only obscures problems.
+ this.close()
+ this[_hadError] = true
+
+ const error = new ZlibError(message, errno)
+ this.emit('error', error)
+ }
+
+ const level = typeof opts.level === 'number' ? opts.level
+ : constants.Z_DEFAULT_COMPRESSION
+
+ var strategy = typeof opts.strategy === 'number' ? opts.strategy
+ : constants.Z_DEFAULT_STRATEGY
+
+ this[_writeState] = new Uint32Array(2);
+ const window = opts.windowBits || constants.Z_DEFAULT_WINDOWBITS
+ const memLevel = opts.memLevel || constants.Z_DEFAULT_MEMLEVEL
+
+ // API changed in node v9
+ /* istanbul ignore next */
+ if (/^v[0-8]\./.test(process.version)) {
+ this[_handle].init(window,
+ level,
+ memLevel,
+ strategy,
+ opts.dictionary)
+ } else {
+ this[_handle].init(window,
+ level,
+ memLevel,
+ strategy,
+ this[_writeState],
+ () => {},
+ opts.dictionary)
+ }
+
+ this[_buffer] = Buffer.allocUnsafe(this[_chunkSize])
+ this[_offset] = 0
+ this[_level] = level
+ this[_strategy] = strategy
+
+ this.once('end', this.close)
+ }
+
+ close () {
+ if (this[_handle]) {
+ this[_handle].close()
+ this[_handle] = null
+ this.emit('close')
+ }
+ }
+
+ params (level, strategy) {
+ if (!this[_handle])
+ throw new Error('cannot switch params when binding is closed')
+
+ // no way to test this without also not supporting params at all
+ /* istanbul ignore if */
+ if (!this[_handle].params)
+ throw new Error('not supported in this implementation')
+
+ if (level < constants.Z_MIN_LEVEL ||
+ level > constants.Z_MAX_LEVEL) {
+ throw new RangeError('Invalid compression level: ' + level)
+ }
+
+ if (!(strategies.has(strategy)))
+ throw new TypeError('Invalid strategy: ' + strategy)
+
+ if (this[_level] !== level || this[_strategy] !== strategy) {
+ this.flush(constants.Z_SYNC_FLUSH)
+ assert(this[_handle], 'zlib binding closed')
+ this[_handle].params(level, strategy)
+ /* istanbul ignore else */
+ if (!this[_hadError]) {
+ this[_level] = level
+ this[_strategy] = strategy
+ }
+ }
+ }
+
+ reset () {
+ assert(this[_handle], 'zlib binding closed')
+ return this[_handle].reset()
+ }
+
+ flush (kind) {
+ if (kind === undefined)
+ kind = constants.Z_FULL_FLUSH
+
+ if (this.ended)
+ return
+
+ const flushFlag = this[_flushFlag]
+ this[_flushFlag] = kind
+ this.write(Buffer.alloc(0))
+ this[_flushFlag] = flushFlag
+ }
+
+ end (chunk, encoding, cb) {
+ if (chunk)
+ this.write(chunk, encoding)
+ this.flush(this[_finishFlush])
+ this[_ended] = true
+ return super.end(null, null, cb)
+ }
+
+ get ended () {
+ return this[_ended]
+ }
+
+ write (chunk, encoding, cb) {
+ // process the chunk using the sync process
+ // then super.write() all the outputted chunks
+ if (typeof encoding === 'function')
+ cb = encoding, encoding = 'utf8'
+
+ if (typeof chunk === 'string')
+ chunk = new Buffer(chunk, encoding)
+
+ let availInBefore = chunk && chunk.length
+ let availOutBefore = this[_chunkSize] - this[_offset]
+ let inOff = 0 // the offset of the input buffer
+ const flushFlag = this[_flushFlag]
+ let writeReturn = true
+
+ assert(this[_handle], 'zlib binding closed')
+ do {
+ let res = this[_handle].writeSync(
+ flushFlag,
+ chunk, // in
+ inOff, // in_off
+ availInBefore, // in_len
+ this[_buffer], // out
+ this[_offset], //out_off
+ availOutBefore // out_len
+ )
+
+ if (this[_hadError])
+ break
+
+ // API changed in v9
+ /* istanbul ignore next */
+ let availInAfter = res ? res[0] : this[_writeState][1]
+ /* istanbul ignore next */
+ let availOutAfter = res ? res[1] : this[_writeState][0]
+
+ const have = availOutBefore - availOutAfter
+ assert(have >= 0, 'have should not go down')
+
+ if (have > 0) {
+ const out = this[_buffer].slice(
+ this[_offset], this[_offset] + have
+ )
+
+ this[_offset] += have
+ // serve some output to the consumer.
+ writeReturn = super.write(out) && writeReturn
+ }
+
+ // exhausted the output buffer, or used all the input create a new one.
+ if (availOutAfter === 0 || this[_offset] >= this[_chunkSize]) {
+ availOutBefore = this[_chunkSize]
+ this[_offset] = 0
+ this[_buffer] = Buffer.allocUnsafe(this[_chunkSize])
+ }
+
+ if (availOutAfter === 0) {
+ // Not actually done. Need to reprocess.
+ // Also, update the availInBefore to the availInAfter value,
+ // so that if we have to hit it a third (fourth, etc.) time,
+ // it'll have the correct byte counts.
+ inOff += (availInBefore - availInAfter)
+ availInBefore = availInAfter
+ continue
+ }
+ break
+ } while (!this[_hadError])
+
+ if (cb)
+ cb()
+ return writeReturn
+ }
+}
+
+// minimal 2-byte header
+class Deflate extends Zlib {
+ constructor (opts) {
+ super(opts, constants.DEFLATE)
+ }
+}
+
+class Inflate extends Zlib {
+ constructor (opts) {
+ super(opts, constants.INFLATE)
+ }
+}
+
+// gzip - bigger header, same deflate compression
+class Gzip extends Zlib {
+ constructor (opts) {
+ super(opts, constants.GZIP)
+ }
+}
+
+class Gunzip extends Zlib {
+ constructor (opts) {
+ super(opts, constants.GUNZIP)
+ }
+}
+
+// raw - no header
+class DeflateRaw extends Zlib {
+ constructor (opts) {
+ super(opts, constants.DEFLATERAW)
+ }
+}
+
+class InflateRaw extends Zlib {
+ constructor (opts) {
+ super(opts, constants.INFLATERAW)
+ }
+}
+
+// auto-detect header.
+class Unzip extends Zlib {
+ constructor (opts) {
+ super(opts, constants.UNZIP)
+ }
+}
+
+exports.Deflate = Deflate
+exports.Inflate = Inflate
+exports.Gzip = Gzip
+exports.Gunzip = Gunzip
+exports.DeflateRaw = DeflateRaw
+exports.InflateRaw = InflateRaw
+exports.Unzip = Unzip
diff --git a/deps/npm/node_modules/minizlib/package.json b/deps/npm/node_modules/minizlib/package.json
new file mode 100644
index 0000000000..5a909622da
--- /dev/null
+++ b/deps/npm/node_modules/minizlib/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "minizlib@^1.1.0",
+ "_id": "minizlib@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==",
+ "_location": "/minizlib",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "minizlib@^1.1.0",
+ "name": "minizlib",
+ "escapedName": "minizlib",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/tar"
+ ],
+ "_resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz",
+ "_shasum": "11e13658ce46bc3a70a267aac58359d1e0c29ceb",
+ "_spec": "minizlib@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/tar",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/minizlib/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "minipass": "^2.2.1"
+ },
+ "deprecated": false,
+ "description": "A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.",
+ "devDependencies": {
+ "tap": "^10.7.2"
+ },
+ "files": [
+ "index.js",
+ "constants.js"
+ ],
+ "homepage": "https://github.com/isaacs/minizlib#readme",
+ "keywords": [
+ "zlib",
+ "gzip",
+ "gunzip",
+ "deflate",
+ "inflate",
+ "compression",
+ "zip",
+ "unzip"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "minizlib",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/minizlib.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100 -J"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/mississippi/changelog.md b/deps/npm/node_modules/mississippi/changelog.md
new file mode 100644
index 0000000000..75333b0844
--- /dev/null
+++ b/deps/npm/node_modules/mississippi/changelog.md
@@ -0,0 +1,10 @@
+# mississippi Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## 3.0.0 - 2018-02-26
+* Update to pump@3.0.0. Returns the last stream the pipeline to enable chaining. (Use the individual modules to avoid potentially unnecessary major updates in your project).
+
+## 2.0.0 - 2018-01-30
+* Update to pump@2.0.1. (Use the individual modules to avoid potentially unnecessary major updates in your project)
+* Pin engines support to >= Node 4.0.0. Run Node LTS or greater.
diff --git a/deps/npm/node_modules/mississippi/index.js b/deps/npm/node_modules/mississippi/index.js
index da3de5e0a7..d635b29c56 100644
--- a/deps/npm/node_modules/mississippi/index.js
+++ b/deps/npm/node_modules/mississippi/index.js
@@ -7,3 +7,4 @@ module.exports.concat = require('concat-stream')
module.exports.finished = require('end-of-stream')
module.exports.from = require('from2')
module.exports.to = require('flush-write-stream')
+module.exports.parallel = require('parallel-transform')
diff --git a/deps/npm/node_modules/mississippi/license b/deps/npm/node_modules/mississippi/license
new file mode 100644
index 0000000000..e34763968c
--- /dev/null
+++ b/deps/npm/node_modules/mississippi/license
@@ -0,0 +1,7 @@
+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/mississippi/node_modules/concat-stream/index.js b/deps/npm/node_modules/mississippi/node_modules/concat-stream/index.js
deleted file mode 100644
index b16ad1343f..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/index.js
+++ /dev/null
@@ -1,143 +0,0 @@
-var Writable = require('readable-stream').Writable
-var inherits = require('inherits')
-
-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(new Buffer(p))
- } else {
- strings.push(new Buffer(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(new Buffer(p))
- } else {
- bufs.push(new Buffer(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] = new Buffer(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/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json b/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json
deleted file mode 100644
index 1376d93fe7..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "typedarray@^0.0.6",
- "_id": "typedarray@0.0.6",
- "_integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "_location": "/mississippi/concat-stream/typedarray",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "typedarray@^0.0.6",
- "name": "typedarray",
- "escapedName": "typedarray",
- "rawSpec": "^0.0.6",
- "saveSpec": null,
- "fetchSpec": "^0.0.6"
- },
- "_requiredBy": [
- "/mississippi/concat-stream"
- ],
- "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777",
- "_shrinkwrap": null,
- "_spec": "typedarray@^0.0.6",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/concat-stream",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/typedarray/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "TypedArray polyfill for old browsers",
- "devDependencies": {
- "tape": "~2.3.2"
- },
- "homepage": "https://github.com/substack/typedarray",
- "keywords": [
- "ArrayBuffer",
- "DataView",
- "Float32Array",
- "Float64Array",
- "Int8Array",
- "Int16Array",
- "Int32Array",
- "Uint8Array",
- "Uint8ClampedArray",
- "Uint16Array",
- "Uint32Array",
- "typed",
- "array",
- "polyfill"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "typedarray",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/typedarray.git"
- },
- "scripts": {
- "test": "tape test/*.js test/server/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/6..latest",
- "firefox/16..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": "0.0.6"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json b/deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json
deleted file mode 100644
index 3ec39aba0e..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "_from": "concat-stream@^1.5.0",
- "_id": "concat-stream@1.6.0",
- "_integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
- "_location": "/mississippi/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": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "_shasum": "0aac662fd52be78964d5532f694784e70110acf7",
- "_shrinkwrap": null,
- "_spec": "concat-stream@^1.5.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Max Ogden",
- "email": "max@maxogden.com"
- },
- "bin": null,
- "bugs": {
- "url": "http://github.com/maxogden/concat-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md b/deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md
deleted file mode 100644
index 9478721990..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/readme.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# 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('!!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/mississippi/node_modules/duplexify/README.md b/deps/npm/node_modules/mississippi/node_modules/duplexify/README.md
deleted file mode 100644
index 27669f6b6b..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/README.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# duplexify
-
-Turn a writeable and readable stream into a single streams2 duplex stream.
-
-Similar to [duplexer2](https://github.com/deoxxa/duplexer2) except it supports both streams2 and streams1 as input
-and it allows you to set the readable and writable part asynchronously using `setReadable(stream)` and `setWritable(stream)`
-
-```
-npm install duplexify
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/duplexify.svg?style=flat)](http://travis-ci.org/mafintosh/duplexify)
-
-## Usage
-
-Use `duplexify(writable, readable, streamOptions)` (or `duplexify.obj(writable, readable)` to create an object stream)
-
-``` js
-var duplexify = require('duplexify')
-
-// turn writableStream and readableStream into a single duplex stream
-var dup = duplexify(writableStream, readableStream)
-
-dup.write('hello world') // will write to writableStream
-dup.on('data', function(data) {
- // will read from readableStream
-})
-```
-
-You can also set the readable and writable parts asynchronously
-
-``` js
-var dup = duplexify()
-
-dup.write('hello world') // write will buffer until the writable
- // part has been set
-
-// wait a bit ...
-dup.setReadable(readableStream)
-
-// maybe wait some more?
-dup.setWritable(writableStream)
-```
-
-If you call `setReadable` or `setWritable` multiple times it will unregister the previous readable/writable stream.
-To disable the readable or writable part call `setReadable` or `setWritable` with `null`.
-
-If the readable or writable streams emits an error or close it will destroy both streams and bubble up the event.
-You can also explictly destroy the streams by calling `dup.destroy()`. The `destroy` method optionally takes an
-error object as argument, in which case the error is emitted as part of the `error` event.
-
-``` js
-dup.on('error', function(err) {
- console.log('readable or writable emitted an error - close will follow')
-})
-
-dup.on('close', function() {
- console.log('the duplex stream is destroyed')
-})
-
-dup.destroy() // calls destroy on the readable and writable part (if present)
-```
-
-## HTTP request example
-
-Turn a node core http request into a duplex stream is as easy as
-
-``` js
-var duplexify = require('duplexify')
-var http = require('http')
-
-var request = function(opts) {
- var req = http.request(opts)
- var dup = duplexify(req)
- req.on('response', function(res) {
- dup.setReadable(res)
- })
- return dup
-}
-
-var req = request({
- method: 'GET',
- host: 'www.google.com',
- port: 80
-})
-
-req.end()
-req.pipe(process.stdout)
-```
-
-## License
-
-MIT
-
-## Related
-
-`duplexify` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/index.js b/deps/npm/node_modules/mississippi/node_modules/duplexify/index.js
deleted file mode 100644
index a04f124fa9..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/index.js
+++ /dev/null
@@ -1,228 +0,0 @@
-var stream = require('readable-stream')
-var eos = require('end-of-stream')
-var inherits = require('inherits')
-var shift = require('stream-shift')
-
-var SIGNAL_FLUSH = new Buffer([0])
-
-var onuncork = function(self, fn) {
- if (self._corked) self.once('uncork', fn)
- else fn()
-}
-
-var destroyer = function(self, end) {
- return function(err) {
- if (err) self.destroy(err.message === 'premature close' ? null : err)
- else if (end && !self._ended) self.end()
- }
-}
-
-var end = function(ws, fn) {
- if (!ws) return fn()
- if (ws._writableState && ws._writableState.finished) return fn()
- if (ws._writableState) return ws.end(fn)
- ws.end()
- fn()
-}
-
-var toStreams2 = function(rs) {
- return new (stream.Readable)({objectMode:true, highWaterMark:16}).wrap(rs)
-}
-
-var Duplexify = function(writable, readable, opts) {
- if (!(this instanceof Duplexify)) return new Duplexify(writable, readable, opts)
- stream.Duplex.call(this, opts)
-
- this._writable = null
- this._readable = null
- this._readable2 = null
-
- this._forwardDestroy = !opts || opts.destroy !== false
- this._forwardEnd = !opts || opts.end !== false
- this._corked = 1 // start corked
- this._ondrain = null
- this._drained = false
- this._forwarding = false
- this._unwrite = null
- this._unread = null
- this._ended = false
-
- this.destroyed = false
-
- if (writable) this.setWritable(writable)
- if (readable) this.setReadable(readable)
-}
-
-inherits(Duplexify, stream.Duplex)
-
-Duplexify.obj = function(writable, readable, opts) {
- if (!opts) opts = {}
- opts.objectMode = true
- opts.highWaterMark = 16
- return new Duplexify(writable, readable, opts)
-}
-
-Duplexify.prototype.cork = function() {
- if (++this._corked === 1) this.emit('cork')
-}
-
-Duplexify.prototype.uncork = function() {
- if (this._corked && --this._corked === 0) this.emit('uncork')
-}
-
-Duplexify.prototype.setWritable = function(writable) {
- if (this._unwrite) this._unwrite()
-
- if (this.destroyed) {
- if (writable && writable.destroy) writable.destroy()
- return
- }
-
- if (writable === null || writable === false) {
- this.end()
- return
- }
-
- var self = this
- var unend = eos(writable, {writable:true, readable:false}, destroyer(this, this._forwardEnd))
-
- var ondrain = function() {
- var ondrain = self._ondrain
- self._ondrain = null
- if (ondrain) ondrain()
- }
-
- var clear = function() {
- self._writable.removeListener('drain', ondrain)
- unend()
- }
-
- if (this._unwrite) process.nextTick(ondrain) // force a drain on stream reset to avoid livelocks
-
- this._writable = writable
- this._writable.on('drain', ondrain)
- this._unwrite = clear
-
- this.uncork() // always uncork setWritable
-}
-
-Duplexify.prototype.setReadable = function(readable) {
- if (this._unread) this._unread()
-
- if (this.destroyed) {
- if (readable && readable.destroy) readable.destroy()
- return
- }
-
- if (readable === null || readable === false) {
- this.push(null)
- this.resume()
- return
- }
-
- var self = this
- var unend = eos(readable, {writable:false, readable:true}, destroyer(this))
-
- var onreadable = function() {
- self._forward()
- }
-
- var onend = function() {
- self.push(null)
- }
-
- var clear = function() {
- self._readable2.removeListener('readable', onreadable)
- self._readable2.removeListener('end', onend)
- unend()
- }
-
- this._drained = true
- this._readable = readable
- this._readable2 = readable._readableState ? readable : toStreams2(readable)
- this._readable2.on('readable', onreadable)
- this._readable2.on('end', onend)
- this._unread = clear
-
- this._forward()
-}
-
-Duplexify.prototype._read = function() {
- this._drained = true
- this._forward()
-}
-
-Duplexify.prototype._forward = function() {
- if (this._forwarding || !this._readable2 || !this._drained) return
- this._forwarding = true
-
- var data
-
- while (this._drained && (data = shift(this._readable2)) !== null) {
- if (this.destroyed) continue
- this._drained = this.push(data)
- }
-
- this._forwarding = false
-}
-
-Duplexify.prototype.destroy = function(err) {
- if (this.destroyed) return
- this.destroyed = true
-
- var self = this
- process.nextTick(function() {
- self._destroy(err)
- })
-}
-
-Duplexify.prototype._destroy = function(err) {
- if (err) {
- var ondrain = this._ondrain
- this._ondrain = null
- if (ondrain) ondrain(err)
- else this.emit('error', err)
- }
-
- if (this._forwardDestroy) {
- if (this._readable && this._readable.destroy) this._readable.destroy()
- if (this._writable && this._writable.destroy) this._writable.destroy()
- }
-
- this.emit('close')
-}
-
-Duplexify.prototype._write = function(data, enc, cb) {
- if (this.destroyed) return cb()
- if (this._corked) return onuncork(this, this._write.bind(this, data, enc, cb))
- if (data === SIGNAL_FLUSH) return this._finish(cb)
- if (!this._writable) return cb()
-
- if (this._writable.write(data) === false) this._ondrain = cb
- else cb()
-}
-
-
-Duplexify.prototype._finish = function(cb) {
- var self = this
- this.emit('preend')
- onuncork(this, function() {
- end(self._forwardEnd && self._writable, function() {
- // haxx to not emit prefinish twice
- if (self._writableState.prefinished === false) self._writableState.prefinished = true
- self.emit('prefinish')
- onuncork(self, cb)
- })
- })
-}
-
-Duplexify.prototype.end = function(data, enc, cb) {
- if (typeof data === 'function') return this.end(null, null, data)
- if (typeof enc === 'function') return this.end(data, null, enc)
- this._ended = true
- if (data) this.write(data)
- if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
- return stream.Writable.prototype.end.call(this, cb)
-}
-
-module.exports = Duplexify
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md
deleted file mode 100644
index df800c1eb6..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/README.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# end-of-stream
-
-A node module that calls a callback when a readable/writable/duplex stream has completed or failed.
-
- npm install end-of-stream
-
-## Usage
-
-Simply pass a stream and a callback to the `eos`.
-Both legacy streams and streams2 are supported.
-
-``` js
-var eos = require('end-of-stream');
-
-eos(readableStream, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended');
-});
-
-eos(writableStream, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has finished');
-});
-
-eos(duplexStream, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended and finished');
-});
-
-eos(duplexStream, {readable:false}, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended but might still be writable');
-});
-
-eos(duplexStream, {writable:false}, function(err) {
- if (err) return console.log('stream had an error or closed early');
- console.log('stream has ended but might still be readable');
-});
-
-eos(readableStream, {error:false}, function(err) {
- // do not treat emit('error', err) as a end-of-stream
-});
-```
-
-## License
-
-MIT \ No newline at end of file
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js
deleted file mode 100644
index 9f61ed5af9..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-var once = require('once');
-
-var noop = function() {};
-
-var isRequest = function(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
-};
-
-var eos = function(stream, opts, callback) {
- if (typeof opts === 'function') return eos(stream, null, opts);
- if (!opts) opts = {};
-
- callback = once(callback || noop);
-
- var ws = stream._writableState;
- var rs = stream._readableState;
- var readable = opts.readable || (opts.readable !== false && stream.readable);
- var writable = opts.writable || (opts.writable !== false && stream.writable);
-
- var onlegacyfinish = function() {
- if (!stream.writable) onfinish();
- };
-
- var onfinish = function() {
- writable = false;
- if (!readable) callback();
- };
-
- var onend = function() {
- readable = false;
- if (!writable) callback();
- };
-
- var onclose = function() {
- if (readable && !(rs && rs.ended)) return callback(new Error('premature close'));
- if (writable && !(ws && ws.ended)) return callback(new Error('premature close'));
- };
-
- var onrequest = function() {
- stream.req.on('finish', onfinish);
- };
-
- if (isRequest(stream)) {
- stream.on('complete', onfinish);
- stream.on('abort', onclose);
- if (stream.req) onrequest();
- else stream.on('request', onrequest);
- } else if (writable && !ws) { // legacy streams
- stream.on('end', onlegacyfinish);
- stream.on('close', onlegacyfinish);
- }
-
- stream.on('end', onend);
- stream.on('finish', onfinish);
- if (opts.error !== false) stream.on('error', callback);
- stream.on('close', onclose);
-
- return function() {
- stream.removeListener('complete', onfinish);
- stream.removeListener('abort', onclose);
- stream.removeListener('request', onrequest);
- if (stream.req) stream.req.removeListener('finish', onfinish);
- stream.removeListener('end', onlegacyfinish);
- stream.removeListener('close', onlegacyfinish);
- stream.removeListener('finish', onfinish);
- stream.removeListener('end', onend);
- stream.removeListener('error', callback);
- stream.removeListener('close', onclose);
- };
-};
-
-module.exports = eos; \ No newline at end of file
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md
deleted file mode 100644
index a2981ea070..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# once
-
-Only call a function once.
-
-## usage
-
-```javascript
-var once = require('once')
-
-function load (file, cb) {
- cb = once(cb)
- loader.load('file')
- loader.once('load', cb)
- loader.once('error', cb)
-}
-```
-
-Or add to the Function.prototype in a responsible way:
-
-```javascript
-// only has to be done once
-require('once').proto()
-
-function load (file, cb) {
- cb = cb.once()
- loader.load('file')
- loader.once('load', cb)
- loader.once('error', cb)
-}
-```
-
-Ironically, the prototype feature makes this module twice as
-complicated as necessary.
-
-To check whether you function has been called, use `fn.called`. Once the
-function is called for the first time the return value of the original
-function is saved in `fn.value` and subsequent calls will continue to
-return this value.
-
-```javascript
-var once = require('once')
-
-function load (cb) {
- cb = once(cb)
- var stream = createStream()
- stream.once('data', cb)
- stream.once('end', function () {
- if (!cb.called) cb(new Error('not found'))
- })
-}
-```
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js
deleted file mode 100644
index 2e1e721bfe..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/once.js
+++ /dev/null
@@ -1,21 +0,0 @@
-var wrappy = require('wrappy')
-module.exports = wrappy(once)
-
-once.proto = once(function () {
- Object.defineProperty(Function.prototype, 'once', {
- value: function () {
- return once(this)
- },
- configurable: true
- })
-})
-
-function once (fn) {
- var f = function () {
- if (f.called) return f.value
- f.called = true
- return f.value = fn.apply(this, arguments)
- }
- f.called = false
- return f
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json
deleted file mode 100644
index 8c0e6e2991..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/node_modules/once/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "once@~1.3.0",
- "_id": "once@1.3.3",
- "_integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=",
- "_location": "/mississippi/duplexify/end-of-stream/once",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "once@~1.3.0",
- "name": "once",
- "escapedName": "once",
- "rawSpec": "~1.3.0",
- "saveSpec": null,
- "fetchSpec": "~1.3.0"
- },
- "_requiredBy": [
- "/mississippi/duplexify/end-of-stream"
- ],
- "_resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz",
- "_shasum": "b2e261557ce4c314ec8304f3fa82663e4297ca20",
- "_shrinkwrap": null,
- "_spec": "once@~1.3.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/once/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "wrappy": "1"
- },
- "deprecated": false,
- "description": "Run a function exactly one time",
- "devDependencies": {
- "tap": "^1.2.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "once.js"
- ],
- "homepage": "https://github.com/isaacs/once#readme",
- "keywords": [
- "once",
- "function",
- "one",
- "single"
- ],
- "license": "ISC",
- "main": "once.js",
- "name": "once",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/once.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.3.3"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json
deleted file mode 100644
index 433faa2e6c..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "end-of-stream@1.0.0",
- "_id": "end-of-stream@1.0.0",
- "_integrity": "sha1-1FlucCc0qT5A6a+GQxnqvZn/Lw4=",
- "_location": "/mississippi/duplexify/end-of-stream",
- "_phantomChildren": {
- "wrappy": "1.0.2"
- },
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "end-of-stream@1.0.0",
- "name": "end-of-stream",
- "escapedName": "end-of-stream",
- "rawSpec": "1.0.0",
- "saveSpec": null,
- "fetchSpec": "1.0.0"
- },
- "_requiredBy": [
- "/mississippi/duplexify"
- ],
- "_resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.0.0.tgz",
- "_shasum": "d4596e702734a93e40e9af864319eabd99ff2f0e",
- "_shrinkwrap": null,
- "_spec": "end-of-stream@1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/duplexify",
- "author": {
- "name": "Mathias Buus",
- "email": "mathiasbuus@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/end-of-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "once": "~1.3.0"
- },
- "deprecated": false,
- "description": "Call a callback when a readable/writable/duplex stream has completed or failed.",
- "devDependencies": {},
- "homepage": "https://github.com/mafintosh/end-of-stream",
- "keywords": [
- "stream",
- "streams",
- "callback",
- "finish",
- "close",
- "end",
- "wait"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "end-of-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/end-of-stream.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js
deleted file mode 100644
index d4d126fe56..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/end-of-stream/test.js
+++ /dev/null
@@ -1,62 +0,0 @@
-var assert = require('assert');
-var eos = require('./index');
-
-var expected = 6;
-var fs = require('fs');
-var net = require('net');
-
-var ws = fs.createWriteStream('/dev/null');
-eos(ws, function(err) {
- expected--;
- assert(!!err);
- if (!expected) process.exit(0);
-});
-ws.close();
-
-var rs = fs.createReadStream('/dev/random');
-eos(rs, function(err) {
- expected--;
- assert(!!err);
- if (!expected) process.exit(0);
-});
-rs.close();
-
-var rs = fs.createReadStream(__filename);
-eos(rs, function(err) {
- expected--;
- assert(!err);
- if (!expected) process.exit(0);
-});
-rs.pipe(fs.createWriteStream('/dev/null'));
-
-var rs = fs.createReadStream(__filename);
-eos(rs, function(err) {
- throw new Error('no go')
-})();
-rs.pipe(fs.createWriteStream('/dev/null'));
-
-var socket = net.connect(50000);
-eos(socket, function(err) {
- expected--;
- assert(!!err);
- if (!expected) process.exit(0);
-});
-
-var server = net.createServer(function(socket) {
- eos(socket, function() {
- expected--;
- if (!expected) process.exit(0);
- });
- socket.destroy();
-}).listen(30000, function() {
- var socket = net.connect(30000);
- eos(socket, function() {
- expected--;
- if (!expected) process.exit(0);
- });
-});
-
-setTimeout(function() {
- assert(expected === 0);
- process.exit(0);
-}, 1000);
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json b/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json
deleted file mode 100644
index baf1bef9fe..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "stream-shift@^1.0.0",
- "_id": "stream-shift@1.0.0",
- "_integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
- "_location": "/mississippi/duplexify/stream-shift",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stream-shift@^1.0.0",
- "name": "stream-shift",
- "escapedName": "stream-shift",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/mississippi/duplexify"
- ],
- "_resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "_shasum": "d5c752825e5367e786f78e18e445ea223a155952",
- "_shrinkwrap": null,
- "_spec": "stream-shift@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/duplexify",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/stream-shift/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Returns the next buffer/object in a stream's readable queue",
- "devDependencies": {
- "standard": "^7.1.2",
- "tape": "^4.6.0",
- "through2": "^2.0.1"
- },
- "homepage": "https://github.com/mafintosh/stream-shift",
- "license": "MIT",
- "main": "index.js",
- "name": "stream-shift",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/stream-shift.git"
- },
- "scripts": {
- "test": "standard && tape test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/package.json b/deps/npm/node_modules/mississippi/node_modules/duplexify/package.json
deleted file mode 100644
index 2249d135e5..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "duplexify@^3.4.2",
- "_id": "duplexify@3.5.0",
- "_integrity": "sha1-GqdzAC4VeEV+nZ1KULDMquvL1gQ=",
- "_location": "/mississippi/duplexify",
- "_phantomChildren": {
- "wrappy": "1.0.2"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "duplexify@^3.4.2",
- "name": "duplexify",
- "escapedName": "duplexify",
- "rawSpec": "^3.4.2",
- "saveSpec": null,
- "fetchSpec": "^3.4.2"
- },
- "_requiredBy": [
- "/mississippi",
- "/mississippi/pumpify"
- ],
- "_resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.0.tgz",
- "_shasum": "1aa773002e1578457e9d9d4a50b0ccaaebcbd604",
- "_shrinkwrap": null,
- "_spec": "duplexify@^3.4.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/duplexify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "end-of-stream": "1.0.0",
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0",
- "stream-shift": "^1.0.0"
- },
- "deprecated": false,
- "description": "Turn a writable and readable stream into a streams2 duplex stream with support for async initialization and streams1/streams2 input",
- "devDependencies": {
- "concat-stream": "^1.4.6",
- "tape": "^2.13.3",
- "through2": "^0.5.1"
- },
- "homepage": "https://github.com/mafintosh/duplexify",
- "keywords": [
- "duplex",
- "streams2",
- "streams",
- "stream",
- "writable",
- "readable",
- "async"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "duplexify",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/duplexify.git"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "version": "3.5.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/test.js b/deps/npm/node_modules/mississippi/node_modules/duplexify/test.js
deleted file mode 100644
index f4856d39ea..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/test.js
+++ /dev/null
@@ -1,292 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var concat = require('concat-stream')
-var net = require('net')
-var duplexify = require('./')
-
-tape('passthrough', function(t) {
- t.plan(2)
-
- var pt = through()
- var dup = duplexify(pt, pt)
-
- dup.end('hello world')
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('passthrough + double end', function(t) {
- t.plan(2)
-
- var pt = through()
- var dup = duplexify(pt, pt)
-
- dup.end('hello world')
- dup.end()
-
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('async passthrough + end', function(t) {
- t.plan(2)
-
- var pt = through.obj({highWaterMark:1}, function(data, enc, cb) {
- setTimeout(function() {
- cb(null, data)
- }, 100)
- })
-
- var dup = duplexify(pt, pt)
-
- dup.write('hello ')
- dup.write('world')
- dup.end()
-
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'hello world', 'same in as out')
- }))
-})
-
-tape('duplex', function(t) {
- var readExpected = ['read-a', 'read-b', 'read-c']
- var writeExpected = ['write-a', 'write-b', 'write-c']
-
- t.plan(readExpected.length+writeExpected.length+2)
-
- var readable = through.obj()
- var writable = through.obj(function(data, enc, cb) {
- t.same(data, writeExpected.shift(), 'onwrite should match')
- cb()
- })
-
- var dup = duplexify.obj(writable, readable)
-
- readExpected.slice().forEach(function(data) {
- readable.write(data)
- })
- readable.end()
-
- writeExpected.slice().forEach(function(data) {
- dup.write(data)
- })
- dup.end()
-
- dup.on('data', function(data) {
- t.same(data, readExpected.shift(), 'ondata should match')
- })
- dup.on('end', function() {
- t.ok(true, 'should end')
- })
- dup.on('finish', function() {
- t.ok(true, 'should finish')
- })
-})
-
-tape('async', function(t) {
- var dup = duplexify()
- var pt = through()
-
- dup.pipe(concat(function(data) {
- t.same(data.toString(), 'i was async', 'same in as out')
- t.end()
- }))
-
- dup.write('i')
- dup.write(' was ')
- dup.end('async')
-
- setTimeout(function() {
- dup.setWritable(pt)
- setTimeout(function() {
- dup.setReadable(pt)
- }, 50)
- }, 50)
-})
-
-tape('destroy', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- write.destroy = function() {
- t.ok(true, 'write destroyed')
- }
-
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- dup.destroy()
- dup.destroy() // should only work once
-})
-
-tape('destroy both', function(t) {
- t.plan(3)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- write.destroy = function() {
- t.ok(true, 'write destroyed')
- }
-
- read.destroy = function() {
- t.ok(true, 'read destroyed')
- }
-
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- dup.destroy()
- dup.destroy() // should only work once
-})
-
-tape('bubble read errors', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- dup.on('error', function(err) {
- t.same(err.message, 'read-error', 'received read error')
- })
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- read.emit('error', new Error('read-error'))
- write.emit('error', new Error('write-error')) // only emit first error
-})
-
-tape('bubble write errors', function(t) {
- t.plan(2)
-
- var write = through()
- var read = through()
- var dup = duplexify(write, read)
-
- dup.on('error', function(err) {
- t.same(err.message, 'write-error', 'received write error')
- })
- dup.on('close', function() {
- t.ok(true, 'close emitted')
- })
-
- write.emit('error', new Error('write-error'))
- read.emit('error', new Error('read-error')) // only emit first error
-})
-
-tape('reset writable / readable', function(t) {
- t.plan(3)
-
- var toUpperCase = function(data, enc, cb) {
- cb(null, data.toString().toUpperCase())
- }
-
- var passthrough = through()
- var upper = through(toUpperCase)
- var dup = duplexify(passthrough, passthrough)
-
- dup.once('data', function(data) {
- t.same(data.toString(), 'hello')
- dup.setWritable(upper)
- dup.setReadable(upper)
- dup.once('data', function(data) {
- t.same(data.toString(), 'HELLO')
- dup.once('data', function(data) {
- t.same(data.toString(), 'HI')
- t.end()
- })
- })
- dup.write('hello')
- dup.write('hi')
- })
- dup.write('hello')
-})
-
-tape('cork', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
- var ok = false
-
- dup.on('prefinish', function() {
- dup.cork()
- setTimeout(function() {
- ok = true
- dup.uncork()
- }, 100)
- })
- dup.on('finish', function() {
- t.ok(ok)
- t.end()
- })
- dup.end()
-})
-
-tape('prefinish not twice', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
- var prefinished = false
-
- dup.on('prefinish', function() {
- t.ok(!prefinished, 'only prefinish once')
- prefinished = true
- })
-
- dup.on('finish', function() {
- t.end()
- })
-
- dup.end()
-})
-
-tape('close', function(t) {
- var passthrough = through()
- var dup = duplexify(passthrough, passthrough)
- var ok = false
-
- passthrough.emit('close')
- dup.on('close', function() {
- t.ok(true, 'should forward close')
- t.end()
- })
-})
-
-tape('works with node native streams (net)', function(t) {
- t.plan(1)
-
- var server = net.createServer(function(socket) {
- var dup = duplexify(socket, socket)
-
- dup.once('data', function(chunk) {
- t.same(chunk, Buffer('hello world'))
- server.close()
- socket.end()
- t.end()
- })
- })
-
- server.listen(0, function () {
- var socket = net.connect(server.address().port)
- var dup = duplexify(socket, socket)
-
- dup.write(Buffer('hello world'))
- })
-})
diff --git a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js b/deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js
deleted file mode 100644
index b3a9068634..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/index.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var once = require('once');
-
-var noop = function() {};
-
-var isRequest = function(stream) {
- return stream.setHeader && typeof stream.abort === 'function';
-};
-
-var isChildProcess = function(stream) {
- return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3
-};
-
-var eos = function(stream, opts, callback) {
- if (typeof opts === 'function') return eos(stream, null, opts);
- if (!opts) opts = {};
-
- callback = once(callback || noop);
-
- var ws = stream._writableState;
- var rs = stream._readableState;
- var readable = opts.readable || (opts.readable !== false && stream.readable);
- var writable = opts.writable || (opts.writable !== false && stream.writable);
-
- var onlegacyfinish = function() {
- if (!stream.writable) onfinish();
- };
-
- var onfinish = function() {
- writable = false;
- if (!readable) callback.call(stream);
- };
-
- var onend = function() {
- readable = false;
- if (!writable) callback.call(stream);
- };
-
- var onexit = function(exitCode) {
- callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null);
- };
-
- var onclose = function() {
- if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close'));
- if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close'));
- };
-
- var onrequest = function() {
- stream.req.on('finish', onfinish);
- };
-
- if (isRequest(stream)) {
- stream.on('complete', onfinish);
- stream.on('abort', onclose);
- if (stream.req) onrequest();
- else stream.on('request', onrequest);
- } else if (writable && !ws) { // legacy streams
- stream.on('end', onlegacyfinish);
- stream.on('close', onlegacyfinish);
- }
-
- if (isChildProcess(stream)) stream.on('exit', onexit);
-
- stream.on('end', onend);
- stream.on('finish', onfinish);
- if (opts.error !== false) stream.on('error', callback);
- stream.on('close', onclose);
-
- return function() {
- stream.removeListener('complete', onfinish);
- stream.removeListener('abort', onclose);
- stream.removeListener('request', onrequest);
- if (stream.req) stream.req.removeListener('finish', onfinish);
- stream.removeListener('end', onlegacyfinish);
- stream.removeListener('close', onlegacyfinish);
- stream.removeListener('finish', onfinish);
- stream.removeListener('exit', onexit);
- stream.removeListener('end', onend);
- stream.removeListener('error', callback);
- stream.removeListener('close', onclose);
- };
-};
-
-module.exports = eos;
diff --git a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json b/deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json
deleted file mode 100644
index 5610bee443..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/end-of-stream/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "end-of-stream@^1.1.0",
- "_id": "end-of-stream@1.4.0",
- "_integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=",
- "_location": "/mississippi/end-of-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "end-of-stream@^1.1.0",
- "name": "end-of-stream",
- "escapedName": "end-of-stream",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/mississippi",
- "/mississippi/pump",
- "/mississippi/stream-each"
- ],
- "_resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz",
- "_shasum": "7a90d833efda6cfa6eac0f4949dbb0fad3a63206",
- "_shrinkwrap": null,
- "_spec": "end-of-stream@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus",
- "email": "mathiasbuus@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/end-of-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "once": "^1.4.0"
- },
- "deprecated": false,
- "description": "Call a callback when a readable/writable/duplex stream has completed or failed.",
- "devDependencies": {},
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/mafintosh/end-of-stream",
- "keywords": [
- "stream",
- "streams",
- "callback",
- "finish",
- "close",
- "end",
- "wait"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "end-of-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/end-of-stream.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.4.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore b/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore
deleted file mode 100644
index 3e70011a19..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-bundle.js
-test.html
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js b/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js
deleted file mode 100644
index e82e126126..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-var stream = require('readable-stream')
-var inherits = require('inherits')
-
-var SIGNAL_FLUSH = new Buffer([0])
-
-module.exports = WriteStream
-
-function WriteStream (opts, write, flush) {
- if (!(this instanceof WriteStream)) return new WriteStream(opts, write, flush)
-
- if (typeof opts === 'function') {
- flush = write
- write = opts
- opts = {}
- }
-
- stream.Writable.call(this, opts)
-
- this.destroyed = false
- this._worker = write || null
- this._flush = flush || null
-}
-
-inherits(WriteStream, stream.Writable)
-
-WriteStream.obj = function (opts, worker, flush) {
- if (typeof opts === 'function') return WriteStream.obj(null, opts, worker)
- if (!opts) opts = {}
- opts.objectMode = true
- return new WriteStream(opts, worker, flush)
-}
-
-WriteStream.prototype._write = function (data, enc, cb) {
- if (SIGNAL_FLUSH === data) this._flush(cb)
- else this._worker(data, enc, cb)
-}
-
-WriteStream.prototype.end = function (data, enc, cb) {
- if (!this._flush) return stream.Writable.prototype.end.apply(this, arguments)
- if (typeof data === 'function') return this.end(null, null, data)
- if (typeof enc === 'function') return this.end(data, null, enc)
- if (data) this.write(data)
- if (!this._writableState.ending) this.write(SIGNAL_FLUSH)
- return stream.Writable.prototype.end.call(this, cb)
-}
-
-WriteStream.prototype.destroy = function (err) {
- if (this.destroyed) return
- this.destroyed = true
- if (err) this.emit('error', err)
- this.emit('close')
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json b/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json
deleted file mode 100644
index e3e86f660d..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/flush-write-stream/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "_from": "flush-write-stream@^1.0.0",
- "_id": "flush-write-stream@1.0.2",
- "_integrity": "sha1-yBuQ2HRnZvGmCaRoCZRsRd2K5Bc=",
- "_location": "/mississippi/flush-write-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "flush-write-stream@^1.0.0",
- "name": "flush-write-stream",
- "escapedName": "flush-write-stream",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.2.tgz",
- "_shasum": "c81b90d8746766f1a609a46809946c45dd8ae417",
- "_shrinkwrap": null,
- "_spec": "flush-write-stream@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/flush-write-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.4"
- },
- "deprecated": false,
- "description": "A write stream constructor that supports a flush function that is called before finish is emitted",
- "devDependencies": {
- "tape": "^4.2.2"
- },
- "homepage": "https://github.com/mafintosh/flush-write-stream",
- "license": "MIT",
- "main": "index.js",
- "name": "flush-write-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/flush-write-stream.git"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/from2/package.json b/deps/npm/node_modules/mississippi/node_modules/from2/package.json
deleted file mode 100644
index d6deba9dd7..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/from2/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "from2@^2.1.0",
- "_id": "from2@2.3.0",
- "_integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=",
- "_location": "/mississippi/from2",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "from2@^2.1.0",
- "name": "from2",
- "escapedName": "from2",
- "rawSpec": "^2.1.0",
- "saveSpec": null,
- "fetchSpec": "^2.1.0"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz",
- "_shasum": "8bfb5502bde4a4d36cfdeea007fcca21d7e382af",
- "_shrinkwrap": null,
- "_spec": "from2@^2.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Hugh Kennedy",
- "email": "hughskennedy@gmail.com",
- "url": "http://hughsk.io/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/hughsk/from2/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Mathias Buus",
- "email": "mathiasbuus@gmail.com"
- }
- ],
- "dependencies": {
- "inherits": "^2.0.1",
- "readable-stream": "^2.0.0"
- },
- "deprecated": false,
- "description": "Convenience wrapper for ReadableStream, with an API lifted from \"from\" and \"through2\"",
- "devDependencies": {
- "tape": "^4.0.0"
- },
- "homepage": "https://github.com/hughsk/from2",
- "keywords": [
- "from",
- "stream",
- "readable",
- "pull",
- "convenience",
- "wrapper"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "from2",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/hughsk/from2.git"
- },
- "scripts": {
- "test": "node test"
- },
- "version": "2.3.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json b/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json
deleted file mode 100644
index d62acdba32..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/node_modules/cyclist/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "_from": "cyclist@~0.2.2",
- "_id": "cyclist@0.2.2",
- "_integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=",
- "_location": "/mississippi/parallel-transform/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": [
- "/mississippi/parallel-transform"
- ],
- "_resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz",
- "_shasum": "1b33792e11e914a2fd6d6ed6447464444e5fa640",
- "_shrinkwrap": null,
- "_spec": "cyclist@~0.2.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/parallel-transform",
- "author": {
- "name": "Mathias Buus Madsen",
- "email": "mathiasbuus@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/cyclist/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Cyclist is an efficient cyclic list implemention.",
- "devDependencies": {},
- "homepage": "https://github.com/mafintosh/cyclist#readme",
- "keywords": [
- "circular",
- "buffer",
- "ring",
- "cyclic",
- "data"
- ],
- "name": "cyclist",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/cyclist.git"
- },
- "version": "0.2.2"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json b/deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json
deleted file mode 100644
index 5f16fbd926..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "parallel-transform@^1.1.0",
- "_id": "parallel-transform@1.1.0",
- "_integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
- "_location": "/mississippi/parallel-transform",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "parallel-transform@^1.1.0",
- "name": "parallel-transform",
- "escapedName": "parallel-transform",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
- "_shasum": "d410f065b05da23081fcd10f28854c29bda33b06",
- "_shrinkwrap": null,
- "_spec": "parallel-transform@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus Madsen",
- "email": "mathiasbuus@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/parallel-transform/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "cyclist": "~0.2.2",
- "inherits": "^2.0.3",
- "readable-stream": "^2.1.5"
- },
- "deprecated": false,
- "description": "Transform stream that allows you to run your transforms in parallel without changing the order",
- "devDependencies": {},
- "homepage": "https://github.com/mafintosh/parallel-transform#readme",
- "keywords": [
- "transform",
- "stream",
- "parallel",
- "preserve",
- "order"
- ],
- "license": "MIT",
- "name": "parallel-transform",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/parallel-transform.git"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/index.js b/deps/npm/node_modules/mississippi/node_modules/pump/index.js
deleted file mode 100644
index 060ce5f4fd..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/pump/index.js
+++ /dev/null
@@ -1,80 +0,0 @@
-var once = require('once')
-var eos = require('end-of-stream')
-var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
-
-var noop = function () {}
-
-var isFn = function (fn) {
- return typeof fn === 'function'
-}
-
-var isFS = function (stream) {
- if (!fs) return false // browser
- return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
-}
-
-var isRequest = function (stream) {
- return stream.setHeader && isFn(stream.abort)
-}
-
-var destroyer = function (stream, reading, writing, callback) {
- callback = once(callback)
-
- var closed = false
- stream.on('close', function () {
- closed = true
- })
-
- eos(stream, {readable: reading, writable: writing}, function (err) {
- if (err) return callback(err)
- closed = true
- callback()
- })
-
- var destroyed = false
- return function (err) {
- if (closed) return
- if (destroyed) return
- destroyed = true
-
- if (isFS(stream)) return stream.close() // use close for fs streams to avoid fd leaks
- if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
-
- if (isFn(stream.destroy)) return stream.destroy()
-
- callback(err || new Error('stream was destroyed'))
- }
-}
-
-var call = function (fn) {
- fn()
-}
-
-var pipe = function (from, to) {
- return from.pipe(to)
-}
-
-var pump = function () {
- var streams = Array.prototype.slice.call(arguments)
- var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
-
- if (Array.isArray(streams[0])) streams = streams[0]
- if (streams.length < 2) throw new Error('pump requires two streams per minimum')
-
- var error
- var destroys = streams.map(function (stream, i) {
- var reading = i < streams.length - 1
- var writing = i > 0
- return destroyer(stream, reading, writing, function (err) {
- if (!error) error = err
- if (err) destroys.forEach(call)
- if (reading) return
- destroys.forEach(call)
- callback(error)
- })
- })
-
- return streams.reduce(pipe)
-}
-
-module.exports = pump
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/package.json b/deps/npm/node_modules/mississippi/node_modules/pump/package.json
deleted file mode 100644
index 2ec8b797bc..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/pump/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "pump@^1.0.0",
- "_id": "pump@1.0.2",
- "_integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=",
- "_location": "/mississippi/pump",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pump@^1.0.0",
- "name": "pump",
- "escapedName": "pump",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/mississippi",
- "/mississippi/pumpify"
- ],
- "_resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz",
- "_shasum": "3b3ee6512f94f0e575538c17995f9f16990a5d51",
- "_shrinkwrap": null,
- "_spec": "pump@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus Madsen",
- "email": "mathiasbuus@gmail.com"
- },
- "bin": null,
- "browser": {
- "fs": false
- },
- "bugs": {
- "url": "https://github.com/mafintosh/pump/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- },
- "deprecated": false,
- "description": "pipe streams together and close all of them if one of them closes",
- "devDependencies": {},
- "homepage": "https://github.com/mafintosh/pump#readme",
- "keywords": [
- "streams",
- "pipe",
- "destroy",
- "callback"
- ],
- "license": "MIT",
- "name": "pump",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/pump.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/index.js b/deps/npm/node_modules/mississippi/node_modules/pumpify/index.js
deleted file mode 100644
index 147de675c3..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var pump = require('pump')
-var inherits = require('inherits')
-var Duplexify = require('duplexify')
-
-var toArray = function(args) {
- if (!args.length) return []
- return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)
-}
-
-var define = function(opts) {
- var Pumpify = function() {
- var streams = toArray(arguments)
- if (!(this instanceof Pumpify)) return new Pumpify(streams)
- Duplexify.call(this, null, null, opts)
- if (streams.length) this.setPipeline(streams)
- }
-
- inherits(Pumpify, Duplexify)
-
- Pumpify.prototype.setPipeline = function() {
- var streams = toArray(arguments)
- var self = this
- var ended = false
- var w = streams[0]
- var r = streams[streams.length-1]
-
- r = r.readable ? r : null
- w = w.writable ? w : null
-
- var onclose = function() {
- streams[0].emit('error', new Error('stream was destroyed'))
- }
-
- this.on('close', onclose)
- this.on('prefinish', function() {
- if (!ended) self.cork()
- })
-
- pump(streams, function(err) {
- self.removeListener('close', onclose)
- if (err) return self.destroy(err)
- ended = true
- self.uncork()
- })
-
- if (this.destroyed) return onclose()
- this.setWritable(w)
- this.setReadable(r)
- }
-
- return Pumpify
-}
-
-module.exports = define({destroy:false})
-module.exports.obj = define({destroy:false, objectMode:true, highWaterMark:16})
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/package.json b/deps/npm/node_modules/mississippi/node_modules/pumpify/package.json
deleted file mode 100644
index 8bb5cbd0c9..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "_from": "pumpify@^1.3.3",
- "_id": "pumpify@1.3.5",
- "_integrity": "sha1-G2ccYZlAq8rqwK0OOjwWS+dgmTs=",
- "_location": "/mississippi/pumpify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pumpify@^1.3.3",
- "name": "pumpify",
- "escapedName": "pumpify",
- "rawSpec": "^1.3.3",
- "saveSpec": null,
- "fetchSpec": "^1.3.3"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.3.5.tgz",
- "_shasum": "1b671c619940abcaeac0ad0e3a3c164be760993b",
- "_shrinkwrap": null,
- "_spec": "pumpify@^1.3.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/pumpify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "duplexify": "^3.1.2",
- "inherits": "^2.0.1",
- "pump": "^1.0.0"
- },
- "deprecated": false,
- "description": "Combine an array of streams into a single duplex stream using pump and duplexify",
- "devDependencies": {
- "tape": "^2.13.3",
- "through2": "^0.5.1"
- },
- "homepage": "https://github.com/mafintosh/pumpify",
- "keywords": [
- "pump",
- "duplexify",
- "duplex",
- "streams",
- "stream",
- "pipeline",
- "combine"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "pumpify",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mafintosh/pumpify.git"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "version": "1.3.5"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/test.js b/deps/npm/node_modules/mississippi/node_modules/pumpify/test.js
deleted file mode 100644
index 4ee91c5f3e..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/test.js
+++ /dev/null
@@ -1,163 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var pumpify = require('./')
-var stream = require('stream')
-
-tape('basic', function(t) {
- t.plan(3)
-
- var pipeline = pumpify(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- })
- )
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'hello')
- t.end()
- })
-})
-
-tape('3 times', function(t) {
- t.plan(4)
-
- var pipeline = pumpify(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- })
- )
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'HELLO')
- t.end()
- })
-})
-
-tape('destroy', function(t) {
- var test = through()
- test.destroy = function() {
- t.ok(true)
- t.end()
- }
-
- var pipeline = pumpify(through(), test)
-
- pipeline.destroy()
-})
-
-tape('close', function(t) {
- var test = through()
- var pipeline = pumpify(through(), test)
-
- pipeline.on('error', function(err) {
- t.same(err.message, 'lol')
- t.end()
- })
-
- test.emit('error', new Error('lol'))
-})
-
-tape('end waits for last one', function(t) {
- var ran = false
-
- var a = through()
- var b = through()
- var c = through(function(data, enc, cb) {
- setTimeout(function() {
- ran = true
- cb()
- }, 100)
- })
-
- var pipeline = pumpify(a, b, c)
-
- pipeline.write('foo')
- pipeline.end(function() {
- t.ok(ran)
- t.end()
- })
-
- t.ok(!ran)
-})
-
-tape('always wait for finish', function(t) {
- var a = new stream.Readable()
- a._read = function() {}
- a.push('hello')
-
- var pipeline = pumpify(a, through(), through())
- var ran = false
-
- pipeline.on('finish', function() {
- t.ok(ran)
- t.end()
- })
-
- setTimeout(function() {
- ran = true
- a.push(null)
- }, 100)
-})
-
-tape('async', function(t) {
- var pipeline = pumpify()
-
- t.plan(4)
-
- pipeline.write('hello')
- pipeline.on('data', function(data) {
- t.same(data.toString(), 'HELLO')
- t.end()
- })
-
- setTimeout(function() {
- pipeline.setPipeline(
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'HELLO')
- cb(null, data.toString().toLowerCase())
- }),
- through(function(data, enc, cb) {
- t.same(data.toString(), 'hello')
- cb(null, data.toString().toUpperCase())
- })
- )
- }, 100)
-})
-
-tape('early destroy', function(t) {
- var a = through()
- var b = through()
- var c = through()
-
- b.destroy = function() {
- t.ok(true)
- t.end()
- }
-
- var pipeline = pumpify()
-
- pipeline.destroy()
- setTimeout(function() {
- pipeline.setPipeline(a, b, c)
- }, 100)
-}) \ No newline at end of file
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/index.js b/deps/npm/node_modules/mississippi/node_modules/stream-each/index.js
deleted file mode 100644
index 2c07e957a3..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/index.js
+++ /dev/null
@@ -1,54 +0,0 @@
-var eos = require('end-of-stream')
-var shift = require('stream-shift')
-
-module.exports = each
-
-function each (stream, fn, cb) {
- var want = true
- var error = null
- var ended = false
- var running = false
-
- stream.on('readable', onreadable)
- onreadable()
-
- if (cb) eos(stream, {readable: true, writable: false}, done)
- return stream
-
- function done (err) {
- if (!error) error = err
- ended = true
- if (!running) cb(error)
- }
-
- function onreadable () {
- if (want) read()
- }
-
- function afterRead (err) {
- running = false
-
- if (err) {
- error = err
- if (ended) return cb(error)
- stream.destroy(err)
- return
- }
- if (ended) return cb(error)
- read()
- }
-
- function read () {
- if (ended || running) return
- want = false
-
- var data = shift(stream)
- if (!data) {
- want = true
- return
- }
-
- running = true
- fn(data, afterRead)
- }
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml
deleted file mode 100644
index ecd4193f60..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
- - "0.12"
- - "4"
- - "6"
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE
deleted file mode 100644
index bae9da7bfa..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Mathias Buus
-
-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/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md
deleted file mode 100644
index d9cc2d945f..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# stream-shift
-
-Returns the next buffer/object in a stream's readable queue
-
-```
-npm install stream-shift
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/stream-shift.svg?style=flat)](http://travis-ci.org/mafintosh/stream-shift)
-
-## Usage
-
-``` js
-var shift = require('stream-shift')
-
-console.log(shift(someStream)) // first item in its buffer
-```
-
-## Credit
-
-Thanks [@dignifiedquire](https://github.com/dignifiedquire) for making this work on node 6
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js
deleted file mode 100644
index c4b18b9c2a..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = shift
-
-function shift (stream) {
- var rs = stream._readableState
- if (!rs) return null
- return rs.objectMode ? stream.read() : stream.read(getStateLength(rs))
-}
-
-function getStateLength (state) {
- if (state.buffer.length) {
- // Since node 6.3.0 state.buffer is a BufferList not an array
- if (state.buffer.head) {
- return state.buffer.head.data.length
- }
-
- return state.buffer[0].length
- }
-
- return state.length
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json
deleted file mode 100644
index 19af8093a1..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "stream-shift@^1.0.0",
- "_id": "stream-shift@1.0.0",
- "_integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
- "_location": "/mississippi/stream-each/stream-shift",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stream-shift@^1.0.0",
- "name": "stream-shift",
- "escapedName": "stream-shift",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/mississippi/stream-each"
- ],
- "_resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "_shasum": "d5c752825e5367e786f78e18e445ea223a155952",
- "_shrinkwrap": null,
- "_spec": "stream-shift@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/stream-each",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/stream-shift/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Returns the next buffer/object in a stream's readable queue",
- "devDependencies": {
- "standard": "^7.1.2",
- "tape": "^4.6.0",
- "through2": "^2.0.1"
- },
- "homepage": "https://github.com/mafintosh/stream-shift",
- "license": "MIT",
- "main": "index.js",
- "name": "stream-shift",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/stream-shift.git"
- },
- "scripts": {
- "test": "standard && tape test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js b/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js
deleted file mode 100644
index c0222c37d5..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var stream = require('stream')
-var shift = require('./')
-
-tape('shifts next', function (t) {
- var passthrough = through()
-
- passthrough.write('hello')
- passthrough.write('world')
-
- t.same(shift(passthrough), Buffer('hello'))
- t.same(shift(passthrough), Buffer('world'))
- t.end()
-})
-
-tape('shifts next with core', function (t) {
- var passthrough = stream.PassThrough()
-
- passthrough.write('hello')
- passthrough.write('world')
-
- t.same(shift(passthrough), Buffer('hello'))
- t.same(shift(passthrough), Buffer('world'))
- t.end()
-})
-
-tape('shifts next with object mode', function (t) {
- var passthrough = through({objectMode: true})
-
- passthrough.write({hello: 1})
- passthrough.write({world: 1})
-
- t.same(shift(passthrough), {hello: 1})
- t.same(shift(passthrough), {world: 1})
- t.end()
-})
-
-tape('shifts next with object mode with core', function (t) {
- var passthrough = stream.PassThrough({objectMode: true})
-
- passthrough.write({hello: 1})
- passthrough.write({world: 1})
-
- t.same(shift(passthrough), {hello: 1})
- t.same(shift(passthrough), {world: 1})
- t.end()
-})
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/package.json b/deps/npm/node_modules/mississippi/node_modules/stream-each/package.json
deleted file mode 100644
index 39f4cd01f4..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "stream-each@^1.1.0",
- "_id": "stream-each@1.2.0",
- "_integrity": "sha1-HpXUdXP1gNgU3A/4zQ9m8c5TyZE=",
- "_location": "/mississippi/stream-each",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stream-each@^1.1.0",
- "name": "stream-each",
- "escapedName": "stream-each",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.0.tgz",
- "_shasum": "1e95d47573f580d814dc0ff8cd0f66f1ce53c991",
- "_shrinkwrap": null,
- "_spec": "stream-each@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/stream-each/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "end-of-stream": "^1.1.0",
- "stream-shift": "^1.0.0"
- },
- "deprecated": false,
- "description": "Iterate all the data in a stream",
- "devDependencies": {
- "standard": "^5.3.1",
- "tape": "^4.2.1",
- "through2": "^2.0.0"
- },
- "homepage": "https://github.com/mafintosh/stream-each",
- "license": "MIT",
- "main": "index.js",
- "name": "stream-each",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/stream-each.git"
- },
- "scripts": {
- "test": "standard && tape test.js"
- },
- "version": "1.2.0"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/test.js b/deps/npm/node_modules/mississippi/node_modules/stream-each/test.js
deleted file mode 100644
index 36454c45eb..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/test.js
+++ /dev/null
@@ -1,82 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var each = require('./')
-
-tape('each', function (t) {
- var s = through.obj()
- s.write('a')
- s.write('b')
- s.write('c')
- s.end()
-
- s.on('end', function () {
- t.end()
- })
-
- var expected = ['a', 'b', 'c']
- each(s, function (data, next) {
- t.same(data, expected.shift())
- next()
- })
-})
-
-tape('each and callback', function (t) {
- var s = through.obj()
- s.write('a')
- s.write('b')
- s.write('c')
- s.end()
-
- var expected = ['a', 'b', 'c']
- each(s, function (data, next) {
- t.same(data, expected.shift())
- next()
- }, function () {
- t.end()
- })
-})
-
-tape('each (write after)', function (t) {
- var s = through.obj()
- s.on('end', function () {
- t.end()
- })
-
- var expected = ['a', 'b', 'c']
- each(s, function (data, next) {
- t.same(data, expected.shift())
- next()
- })
-
- setTimeout(function () {
- s.write('a')
- s.write('b')
- s.write('c')
- s.end()
- }, 100)
-})
-
-tape('each error', function (t) {
- var s = through.obj()
- s.write('hello')
- s.on('error', function (err) {
- t.same(err.message, 'stop')
- t.end()
- })
-
- each(s, function (data, next) {
- next(new Error('stop'))
- })
-})
-
-tape('each error and callback', function (t) {
- var s = through.obj()
- s.write('hello')
-
- each(s, function (data, next) {
- next(new Error('stop'))
- }, function (err) {
- t.same(err.message, 'stop')
- t.end()
- })
-})
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore b/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json b/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json
deleted file mode 100644
index 35702676cd..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/package.json
+++ /dev/null
@@ -1,89 +0,0 @@
-{
- "_from": "xtend@~4.0.1",
- "_id": "xtend@4.0.1",
- "_integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "_location": "/mississippi/through2/xtend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "xtend@~4.0.1",
- "name": "xtend",
- "escapedName": "xtend",
- "rawSpec": "~4.0.1",
- "saveSpec": null,
- "fetchSpec": "~4.0.1"
- },
- "_requiredBy": [
- "/mississippi/through2"
- ],
- "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af",
- "_shrinkwrap": null,
- "_spec": "xtend@~4.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi/node_modules/through2",
- "author": {
- "name": "Raynos",
- "email": "raynos2@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/Raynos/xtend/issues",
- "email": "raynos2@gmail.com"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jake Verbaten"
- },
- {
- "name": "Matt Esch"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "extend like a boss",
- "devDependencies": {
- "tape": "~1.1.0"
- },
- "engines": {
- "node": ">=0.4"
- },
- "homepage": "https://github.com/Raynos/xtend",
- "keywords": [
- "extend",
- "merge",
- "options",
- "opts",
- "object",
- "array"
- ],
- "license": "MIT",
- "main": "immutable",
- "name": "xtend",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/Raynos/xtend.git"
- },
- "scripts": {
- "test": "node test"
- },
- "testling": {
- "files": "test.js",
- "browsers": [
- "ie/7..latest",
- "firefox/16..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"
- ]
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/package.json b/deps/npm/node_modules/mississippi/node_modules/through2/package.json
deleted file mode 100644
index 14d07909f1..0000000000
--- a/deps/npm/node_modules/mississippi/node_modules/through2/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "through2@^2.0.0",
- "_id": "through2@2.0.3",
- "_integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
- "_location": "/mississippi/through2",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "through2@^2.0.0",
- "name": "through2",
- "escapedName": "through2",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/mississippi"
- ],
- "_resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
- "_shasum": "0004569b37c7c74ba39c43f3ced78d1ad94140be",
- "_shrinkwrap": null,
- "_spec": "through2@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mississippi",
- "author": {
- "name": "Rod Vagg",
- "email": "r@va.gg",
- "url": "https://github.com/rvagg"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/rvagg/through2/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "readable-stream": "^2.1.5",
- "xtend": "~4.0.1"
- },
- "deprecated": false,
- "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise",
- "devDependencies": {
- "bl": "~1.1.2",
- "faucet": "0.0.1",
- "stream-spigot": "~3.0.5",
- "tape": "~4.6.2"
- },
- "homepage": "https://github.com/rvagg/through2#readme",
- "keywords": [
- "stream",
- "streams2",
- "through",
- "transform"
- ],
- "license": "MIT",
- "main": "through2.js",
- "name": "through2",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rvagg/through2.git"
- },
- "scripts": {
- "test": "node test/test.js | faucet",
- "test-local": "brtapsauce-local test/basic-test.js"
- },
- "version": "2.0.3"
-}
diff --git a/deps/npm/node_modules/mississippi/package.json b/deps/npm/node_modules/mississippi/package.json
index 1e6d2ab81f..5e4c2b2e34 100644
--- a/deps/npm/node_modules/mississippi/package.json
+++ b/deps/npm/node_modules/mississippi/package.json
@@ -1,43 +1,42 @@
{
- "_from": "mississippi@~1.3.0",
- "_id": "mississippi@1.3.0",
- "_integrity": "sha1-0gFYPrEjJ+PFwWQqQEqcrPlONPU=",
+ "_args": [
+ [
+ "mississippi@3.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "mississippi@3.0.0",
+ "_id": "mississippi@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==",
"_location": "/mississippi",
- "_phantomChildren": {
- "inherits": "2.0.3",
- "once": "1.4.0",
- "readable-stream": "2.2.9",
- "wrappy": "1.0.2"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "mississippi@~1.3.0",
+ "raw": "mississippi@3.0.0",
"name": "mississippi",
"escapedName": "mississippi",
- "rawSpec": "~1.3.0",
+ "rawSpec": "3.0.0",
"saveSpec": null,
- "fetchSpec": "~1.3.0"
+ "fetchSpec": "3.0.0"
},
"_requiredBy": [
"/",
"/cacache",
- "/pacote",
- "/pacote/make-fetch-happen"
+ "/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen",
+ "/pacote"
],
- "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.0.tgz",
- "_shasum": "d201583eb12327e3c5c1642a404a9cacf94e34f5",
- "_shrinkwrap": null,
- "_spec": "mississippi@~1.3.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz",
+ "_spec": "3.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "max ogden"
},
- "bin": null,
"bugs": {
"url": "https://github.com/maxogden/mississippi/issues"
},
- "bundleDependencies": false,
"dependencies": {
"concat-stream": "^1.5.0",
"duplexify": "^3.4.2",
@@ -45,20 +44,20 @@
"flush-write-stream": "^1.0.0",
"from2": "^2.1.0",
"parallel-transform": "^1.1.0",
- "pump": "^1.0.0",
+ "pump": "^3.0.0",
"pumpify": "^1.3.3",
"stream-each": "^1.1.0",
"through2": "^2.0.0"
},
- "deprecated": false,
"description": "a collection of useful streams",
"devDependencies": {},
+ "engines": {
+ "node": ">=4.0.0"
+ },
"homepage": "https://github.com/maxogden/mississippi#readme",
"license": "BSD-2-Clause",
"main": "index.js",
"name": "mississippi",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/maxogden/mississippi.git"
@@ -66,5 +65,5 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
- "version": "1.3.0"
+ "version": "3.0.0"
}
diff --git a/deps/npm/node_modules/mississippi/readme.md b/deps/npm/node_modules/mississippi/readme.md
index 569803865c..5fa6d66c89 100644
--- a/deps/npm/node_modules/mississippi/readme.md
+++ b/deps/npm/node_modules/mississippi/readme.md
@@ -74,7 +74,7 @@ var split = require('split2')
var newLineSeparatedNumbers = fs.createReadStream('numbers.txt')
var pipeline = miss.pipeline(newLineSeparatedNumbers, split())
-var each = miss.each(pipeline, eachLine, done)
+miss.each(pipeline, eachLine, done)
var sum = 0
function eachLine (line, next) {
@@ -94,6 +94,8 @@ function done (err) {
Builds a pipeline from all the transform streams passed in as arguments by piping them together and returning a single stream object that lets you write to the first stream and read from the last stream.
+If you are pumping object streams together use `pipeline = miss.pipeline.obj(s1, s2, ...)`.
+
If any of the streams in the pipeline emits an error or gets destroyed, or you destroy the stream it returns, all of the streams will be destroyed and cleaned up for you.
#### original module
@@ -154,7 +156,7 @@ var duplexCurl = miss.duplex(curl.stdin, curl.stdout)
### through
-#####`var transformer = miss.through([options, transformFunction, flushFunction])`
+##### `var transformer = miss.through([options, transformFunction, flushFunction])`
Make a custom [transform stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform).
@@ -194,7 +196,7 @@ miss.pipe(read, uppercaser, write, function (err) {
### from
-#####`miss.from([opts], read)`
+##### `miss.from([opts], read)`
Make a custom [readable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_readable).
@@ -237,17 +239,17 @@ fromString('hello world').pipe(process.stdout)
### to
-#####`miss.to([options], write, [flush])`
+##### `miss.to([options], write, [flush])`
Make a custom [writable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_writable).
-`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a readable object stream (or use the shortcut `miss.to.obj([...])`).
+`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a writable object stream (or use the shortcut `miss.to.obj([...])`).
Returns a writable stream that calls `write(data, enc, cb)` when data is written to the stream.
- `data` is the received data to write the destination.
- `enc` encoding of the piece of data received.
-- `next(err, chunk)` should be called when you're ready to write more data, or encountered an error.
+- `cb(err, data)` should be called when you're ready to write more data, or encountered an error.
`flush(cb)` is called before `finish` is emitted and allows for cleanup steps to occur.
@@ -291,7 +293,7 @@ finished
### concat
-#####`var concat = miss.concat(cb)`
+##### `var concat = miss.concat(cb)`
Returns a writable stream that concatenates all data written to the stream and calls a callback with the single result.
@@ -307,13 +309,18 @@ Note that `miss.concat` will not handle stream errors for you. To handle errors,
```js
var fs = require('fs')
-var concat = require('concat-stream')
var readStream = fs.createReadStream('cat.png')
-var concatStream = concat(gotPicture)
+var concatStream = miss.concat(gotPicture)
+
+function callback (err) {
+ if (err) {
+ console.error(err)
+ process.exit(1)
+ }
+}
-readStream.on('error', handleError)
-readStream.pipe(concatStream)
+miss.pipe(readStream, concatStream, callback)
function gotPicture(imageBuffer) {
// imageBuffer is all of `cat.png` as a node.js Buffer
@@ -328,7 +335,7 @@ function handleError(err) {
### finished
-#####`miss.finished(stream, cb)`
+##### `miss.finished(stream, cb)`
Waits for `stream` to finish or error and then calls `cb` with `(err)`. `cb` will only be called once. `err` will be null if the stream finished without error, or else it will be populated with the error from the streams `error` event.
@@ -354,7 +361,7 @@ miss.finished(copyDest, function(err) {
### parallel
-#####`miss.parallel(concurrency, each)`
+##### `miss.parallel(concurrency, each)`
This works like `through` except you can process items in parallel, while still preserving the original input order.
@@ -392,3 +399,13 @@ miss.pipe(
})
)
```
+
+## see also
+
+- [substack/stream-handbook](https://github.com/substack/stream-handbook)
+- [nodejs.org/api/stream.html](https://nodejs.org/api/stream.html)
+- [awesome-nodejs-streams](https://github.com/thejmazz/awesome-nodejs-streams)
+
+## license
+
+Licensed under the BSD 2-clause license.
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js
deleted file mode 100644
index 584f551a6d..0000000000
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/index.js
+++ /dev/null
@@ -1,187 +0,0 @@
-module.exports = function (args, opts) {
- if (!opts) opts = {};
-
- var flags = { bools : {}, strings : {} };
-
- [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
- flags.bools[key] = true;
- });
-
- [].concat(opts.string).filter(Boolean).forEach(function (key) {
- flags.strings[key] = true;
- });
-
- var aliases = {};
- Object.keys(opts.alias || {}).forEach(function (key) {
- aliases[key] = [].concat(opts.alias[key]);
- aliases[key].forEach(function (x) {
- aliases[x] = [key].concat(aliases[key].filter(function (y) {
- return x !== y;
- }));
- });
- });
-
- var defaults = opts['default'] || {};
-
- var argv = { _ : [] };
- Object.keys(flags.bools).forEach(function (key) {
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
- });
-
- var notFlags = [];
-
- if (args.indexOf('--') !== -1) {
- notFlags = args.slice(args.indexOf('--')+1);
- args = args.slice(0, args.indexOf('--'));
- }
-
- function setArg (key, val) {
- var value = !flags.strings[key] && isNumber(val)
- ? Number(val) : val
- ;
- setKey(argv, key.split('.'), value);
-
- (aliases[key] || []).forEach(function (x) {
- setKey(argv, x.split('.'), value);
- });
- }
-
- for (var i = 0; i < args.length; i++) {
- var arg = args[i];
-
- if (/^--.+=/.test(arg)) {
- // Using [\s\S] instead of . because js doesn't support the
- // 'dotall' regex modifier. See:
- // http://stackoverflow.com/a/1068308/13216
- var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
- setArg(m[1], m[2]);
- }
- else if (/^--no-.+/.test(arg)) {
- var key = arg.match(/^--no-(.+)/)[1];
- setArg(key, false);
- }
- else if (/^--.+/.test(arg)) {
- var key = arg.match(/^--(.+)/)[1];
- var next = args[i + 1];
- if (next !== undefined && !/^-/.test(next)
- && !flags.bools[key]
- && (aliases[key] ? !flags.bools[aliases[key]] : true)) {
- setArg(key, next);
- i++;
- }
- else if (/^(true|false)$/.test(next)) {
- setArg(key, next === 'true');
- i++;
- }
- else {
- setArg(key, flags.strings[key] ? '' : true);
- }
- }
- else if (/^-[^-]+/.test(arg)) {
- var letters = arg.slice(1,-1).split('');
-
- var broken = false;
- for (var j = 0; j < letters.length; j++) {
- var next = arg.slice(j+2);
-
- if (next === '-') {
- setArg(letters[j], next)
- continue;
- }
-
- if (/[A-Za-z]/.test(letters[j])
- && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
- setArg(letters[j], next);
- broken = true;
- break;
- }
-
- if (letters[j+1] && letters[j+1].match(/\W/)) {
- setArg(letters[j], arg.slice(j+2));
- broken = true;
- break;
- }
- else {
- setArg(letters[j], flags.strings[letters[j]] ? '' : true);
- }
- }
-
- var key = arg.slice(-1)[0];
- if (!broken && key !== '-') {
- if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
- && !flags.bools[key]
- && (aliases[key] ? !flags.bools[aliases[key]] : true)) {
- setArg(key, args[i+1]);
- i++;
- }
- else if (args[i+1] && /true|false/.test(args[i+1])) {
- setArg(key, args[i+1] === 'true');
- i++;
- }
- else {
- setArg(key, flags.strings[key] ? '' : true);
- }
- }
- }
- else {
- argv._.push(
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
- );
- }
- }
-
- Object.keys(defaults).forEach(function (key) {
- if (!hasKey(argv, key.split('.'))) {
- setKey(argv, key.split('.'), defaults[key]);
-
- (aliases[key] || []).forEach(function (x) {
- setKey(argv, x.split('.'), defaults[key]);
- });
- }
- });
-
- notFlags.forEach(function(key) {
- argv._.push(key);
- });
-
- return argv;
-};
-
-function hasKey (obj, keys) {
- var o = obj;
- keys.slice(0,-1).forEach(function (key) {
- o = (o[key] || {});
- });
-
- var key = keys[keys.length - 1];
- return key in o;
-}
-
-function setKey (obj, keys, value) {
- var o = obj;
- keys.slice(0,-1).forEach(function (key) {
- if (o[key] === undefined) o[key] = {};
- o = o[key];
- });
-
- var key = keys[keys.length - 1];
- if (o[key] === undefined || typeof o[key] === 'boolean') {
- o[key] = value;
- }
- else if (Array.isArray(o[key])) {
- o[key].push(value);
- }
- else {
- o[key] = [ o[key], value ];
- }
-}
-
-function isNumber (x) {
- if (typeof x === 'number') return true;
- if (/^0x[0-9a-f]+$/i.test(x)) return true;
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
-}
-
-function longest (xs) {
- return Math.max.apply(null, xs.map(function (x) { return x.length }));
-}
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json b/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json
deleted file mode 100644
index ac07380879..0000000000
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "minimist@0.0.8",
- "_id": "minimist@0.0.8",
- "_integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
- "_location": "/mkdirp/minimist",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "minimist@0.0.8",
- "name": "minimist",
- "escapedName": "minimist",
- "rawSpec": "0.0.8",
- "saveSpec": null,
- "fetchSpec": "0.0.8"
- },
- "_requiredBy": [
- "/mkdirp"
- ],
- "_resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "_shasum": "857fcabfc3397d2625b8228262e86aa7a011b05d",
- "_shrinkwrap": null,
- "_spec": "minimist@0.0.8",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/mkdirp",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/minimist/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "parse argument options",
- "devDependencies": {
- "tap": "~0.4.0",
- "tape": "~1.0.4"
- },
- "homepage": "https://github.com/substack/minimist",
- "keywords": [
- "argv",
- "getopt",
- "parser",
- "optimist"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "minimist",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/minimist.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/6..latest",
- "ff/5",
- "firefox/latest",
- "chrome/10",
- "chrome/latest",
- "safari/5.1",
- "safari/latest",
- "opera/12"
- ]
- },
- "version": "0.0.8"
-}
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js
deleted file mode 100644
index 8a90646696..0000000000
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse.js
+++ /dev/null
@@ -1,318 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('parse args', function (t) {
- t.deepEqual(
- parse([ '--no-moo' ]),
- { moo : false, _ : [] },
- 'no'
- );
- t.deepEqual(
- parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]),
- { v : ['a','b','c'], _ : [] },
- 'multi'
- );
- t.end();
-});
-
-test('comprehensive', function (t) {
- t.deepEqual(
- parse([
- '--name=meowmers', 'bare', '-cats', 'woo',
- '-h', 'awesome', '--multi=quux',
- '--key', 'value',
- '-b', '--bool', '--no-meep', '--multi=baz',
- '--', '--not-a-flag', 'eek'
- ]),
- {
- c : true,
- a : true,
- t : true,
- s : 'woo',
- h : 'awesome',
- b : true,
- bool : true,
- key : 'value',
- multi : [ 'quux', 'baz' ],
- meep : false,
- name : 'meowmers',
- _ : [ 'bare', '--not-a-flag', 'eek' ]
- }
- );
- t.end();
-});
-
-test('nums', function (t) {
- var argv = parse([
- '-x', '1234',
- '-y', '5.67',
- '-z', '1e7',
- '-w', '10f',
- '--hex', '0xdeadbeef',
- '789'
- ]);
- t.deepEqual(argv, {
- x : 1234,
- y : 5.67,
- z : 1e7,
- w : '10f',
- hex : 0xdeadbeef,
- _ : [ 789 ]
- });
- t.deepEqual(typeof argv.x, 'number');
- t.deepEqual(typeof argv.y, 'number');
- t.deepEqual(typeof argv.z, 'number');
- t.deepEqual(typeof argv.w, 'string');
- t.deepEqual(typeof argv.hex, 'number');
- t.deepEqual(typeof argv._[0], 'number');
- t.end();
-});
-
-test('flag boolean', function (t) {
- var argv = parse([ '-t', 'moo' ], { boolean: 't' });
- t.deepEqual(argv, { t : true, _ : [ 'moo' ] });
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-});
-
-test('flag boolean value', function (t) {
- var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
- boolean: [ 't', 'verbose' ],
- default: { verbose: true }
- });
-
- t.deepEqual(argv, {
- verbose: false,
- t: true,
- _: ['moo']
- });
-
- t.deepEqual(typeof argv.verbose, 'boolean');
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-});
-
-test('flag boolean default false', function (t) {
- var argv = parse(['moo'], {
- boolean: ['t', 'verbose'],
- default: { verbose: false, t: false }
- });
-
- t.deepEqual(argv, {
- verbose: false,
- t: false,
- _: ['moo']
- });
-
- t.deepEqual(typeof argv.verbose, 'boolean');
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-
-});
-
-test('boolean groups', function (t) {
- var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
- boolean: ['x','y','z']
- });
-
- t.deepEqual(argv, {
- x : true,
- y : false,
- z : true,
- _ : [ 'one', 'two', 'three' ]
- });
-
- t.deepEqual(typeof argv.x, 'boolean');
- t.deepEqual(typeof argv.y, 'boolean');
- t.deepEqual(typeof argv.z, 'boolean');
- t.end();
-});
-
-test('newlines in params' , function (t) {
- var args = parse([ '-s', "X\nX" ])
- t.deepEqual(args, { _ : [], s : "X\nX" });
-
- // reproduce in bash:
- // VALUE="new
- // line"
- // node program.js --s="$VALUE"
- args = parse([ "--s=X\nX" ])
- t.deepEqual(args, { _ : [], s : "X\nX" });
- t.end();
-});
-
-test('strings' , function (t) {
- var s = parse([ '-s', '0001234' ], { string: 's' }).s;
- t.equal(s, '0001234');
- t.equal(typeof s, 'string');
-
- var x = parse([ '-x', '56' ], { string: 'x' }).x;
- t.equal(x, '56');
- t.equal(typeof x, 'string');
- t.end();
-});
-
-test('stringArgs', function (t) {
- var s = parse([ ' ', ' ' ], { string: '_' })._;
- t.same(s.length, 2);
- t.same(typeof s[0], 'string');
- t.same(s[0], ' ');
- t.same(typeof s[1], 'string');
- t.same(s[1], ' ');
- t.end();
-});
-
-test('empty strings', function(t) {
- var s = parse([ '-s' ], { string: 's' }).s;
- t.equal(s, '');
- t.equal(typeof s, 'string');
-
- var str = parse([ '--str' ], { string: 'str' }).str;
- t.equal(str, '');
- t.equal(typeof str, 'string');
-
- var letters = parse([ '-art' ], {
- string: [ 'a', 't' ]
- });
-
- t.equal(letters.a, '');
- t.equal(letters.r, true);
- t.equal(letters.t, '');
-
- t.end();
-});
-
-
-test('slashBreak', function (t) {
- t.same(
- parse([ '-I/foo/bar/baz' ]),
- { I : '/foo/bar/baz', _ : [] }
- );
- t.same(
- parse([ '-xyz/foo/bar/baz' ]),
- { x : true, y : true, z : '/foo/bar/baz', _ : [] }
- );
- t.end();
-});
-
-test('alias', function (t) {
- var argv = parse([ '-f', '11', '--zoom', '55' ], {
- alias: { z: 'zoom' }
- });
- t.equal(argv.zoom, 55);
- t.equal(argv.z, argv.zoom);
- t.equal(argv.f, 11);
- t.end();
-});
-
-test('multiAlias', function (t) {
- var argv = parse([ '-f', '11', '--zoom', '55' ], {
- alias: { z: [ 'zm', 'zoom' ] }
- });
- t.equal(argv.zoom, 55);
- t.equal(argv.z, argv.zoom);
- t.equal(argv.z, argv.zm);
- t.equal(argv.f, 11);
- t.end();
-});
-
-test('nested dotted objects', function (t) {
- var argv = parse([
- '--foo.bar', '3', '--foo.baz', '4',
- '--foo.quux.quibble', '5', '--foo.quux.o_O',
- '--beep.boop'
- ]);
-
- t.same(argv.foo, {
- bar : 3,
- baz : 4,
- quux : {
- quibble : 5,
- o_O : true
- }
- });
- t.same(argv.beep, { boop : true });
- t.end();
-});
-
-test('boolean and alias with chainable api', function (t) {
- var aliased = [ '-h', 'derp' ];
- var regular = [ '--herp', 'derp' ];
- var opts = {
- herp: { alias: 'h', boolean: true }
- };
- var aliasedArgv = parse(aliased, {
- boolean: 'herp',
- alias: { h: 'herp' }
- });
- var propertyArgv = parse(regular, {
- boolean: 'herp',
- alias: { h: 'herp' }
- });
- var expected = {
- herp: true,
- h: true,
- '_': [ 'derp' ]
- };
-
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-test('boolean and alias with options hash', function (t) {
- var aliased = [ '-h', 'derp' ];
- var regular = [ '--herp', 'derp' ];
- var opts = {
- alias: { 'h': 'herp' },
- boolean: 'herp'
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
- var expected = {
- herp: true,
- h: true,
- '_': [ 'derp' ]
- };
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-test('boolean and alias using explicit true', function (t) {
- var aliased = [ '-h', 'true' ];
- var regular = [ '--herp', 'true' ];
- var opts = {
- alias: { h: 'herp' },
- boolean: 'h'
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
- var expected = {
- herp: true,
- h: true,
- '_': [ ]
- };
-
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-// regression, see https://github.com/substack/node-optimist/issues/71
-test('boolean and --x=true', function(t) {
- var parsed = parse(['--boool', '--other=true'], {
- boolean: 'boool'
- });
-
- t.same(parsed.boool, true);
- t.same(parsed.other, 'true');
-
- parsed = parse(['--boool', '--other=false'], {
- boolean: 'boool'
- });
-
- t.same(parsed.boool, true);
- t.same(parsed.other, 'false');
- t.end();
-});
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
deleted file mode 100644
index 21851b036e..0000000000
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/parse_modified.js
+++ /dev/null
@@ -1,9 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('parse with modifier functions' , function (t) {
- t.plan(1);
-
- var argv = parse([ '-b', '123' ], { boolean: 'b' });
- t.deepEqual(argv, { b: true, _: ['123'] });
-});
diff --git a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js b/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js
deleted file mode 100644
index d513a1c252..0000000000
--- a/deps/npm/node_modules/mkdirp/node_modules/minimist/test/short.js
+++ /dev/null
@@ -1,67 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('numeric short args', function (t) {
- t.plan(2);
- t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] });
- t.deepEqual(
- parse([ '-123', '456' ]),
- { 1: true, 2: true, 3: 456, _: [] }
- );
-});
-
-test('short', function (t) {
- t.deepEqual(
- parse([ '-b' ]),
- { b : true, _ : [] },
- 'short boolean'
- );
- t.deepEqual(
- parse([ 'foo', 'bar', 'baz' ]),
- { _ : [ 'foo', 'bar', 'baz' ] },
- 'bare'
- );
- t.deepEqual(
- parse([ '-cats' ]),
- { c : true, a : true, t : true, s : true, _ : [] },
- 'group'
- );
- t.deepEqual(
- parse([ '-cats', 'meow' ]),
- { c : true, a : true, t : true, s : 'meow', _ : [] },
- 'short group next'
- );
- t.deepEqual(
- parse([ '-h', 'localhost' ]),
- { h : 'localhost', _ : [] },
- 'short capture'
- );
- t.deepEqual(
- parse([ '-h', 'localhost', '-p', '555' ]),
- { h : 'localhost', p : 555, _ : [] },
- 'short captures'
- );
- t.end();
-});
-
-test('mixed short bool and capture', function (t) {
- t.same(
- parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]),
- {
- f : true, p : 555, h : 'localhost',
- _ : [ 'script.js' ]
- }
- );
- t.end();
-});
-
-test('short and long', function (t) {
- t.deepEqual(
- parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]),
- {
- f : true, p : 555, h : 'localhost',
- _ : [ 'script.js' ]
- }
- );
- t.end();
-});
diff --git a/deps/npm/node_modules/mkdirp/package.json b/deps/npm/node_modules/mkdirp/package.json
index 797262b078..aa7b906112 100644
--- a/deps/npm/node_modules/mkdirp/package.json
+++ b/deps/npm/node_modules/mkdirp/package.json
@@ -1,38 +1,47 @@
{
- "_from": "mkdirp@~0.5.1",
+ "_args": [
+ [
+ "mkdirp@0.5.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "mkdirp@0.5.1",
"_id": "mkdirp@0.5.1",
+ "_inBundle": false,
"_integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"_location": "/mkdirp",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "mkdirp@~0.5.1",
+ "raw": "mkdirp@0.5.1",
"name": "mkdirp",
"escapedName": "mkdirp",
- "rawSpec": "~0.5.1",
+ "rawSpec": "0.5.1",
"saveSpec": null,
- "fetchSpec": "~0.5.1"
+ "fetchSpec": "0.5.1"
},
"_requiredBy": [
"/",
"/cacache",
"/cmd-shim",
+ "/copy-concurrently",
+ "/eslint",
"/fstream",
+ "/gentle-fs",
"/move-concurrently",
- "/move-concurrently/copy-concurrently",
"/node-gyp",
- "/pacote/tar-fs",
- "/standard/eslint",
- "/standard/eslint/file-entry-cache/flat-cache/write",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
+ "/pacote",
"/tacks",
- "/update-notifier/configstore"
+ "/tap",
+ "/tar",
+ "/write"
],
"_resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "_shasum": "30057438eac6cf7f8c4767f38648d6697d75c903",
- "_shrinkwrap": null,
- "_spec": "mkdirp@~0.5.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.5.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
@@ -44,11 +53,9 @@
"bugs": {
"url": "https://github.com/substack/node-mkdirp/issues"
},
- "bundleDependencies": false,
"dependencies": {
"minimist": "0.0.8"
},
- "deprecated": false,
"description": "Recursively mkdir, like `mkdir -p`",
"devDependencies": {
"mock-fs": "2 >=2.7.0",
@@ -62,8 +69,6 @@
"license": "MIT",
"main": "index.js",
"name": "mkdirp",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/substack/node-mkdirp.git"
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json b/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json
deleted file mode 100644
index f327746a8a..0000000000
--- a/deps/npm/node_modules/move-concurrently/node_modules/copy-concurrently/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "copy-concurrently@^1.0.0",
- "_id": "copy-concurrently@1.0.5",
- "_inBundle": false,
- "_integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==",
- "_location": "/move-concurrently/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/move-concurrently/node_modules/run-queue/package.json b/deps/npm/node_modules/move-concurrently/node_modules/run-queue/package.json
deleted file mode 100644
index a807d24b2f..0000000000
--- a/deps/npm/node_modules/move-concurrently/node_modules/run-queue/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "run-queue@^1.0.3",
- "_id": "run-queue@1.0.3",
- "_integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
- "_location": "/move-concurrently/run-queue",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "run-queue@^1.0.3",
- "name": "run-queue",
- "escapedName": "run-queue",
- "rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
- },
- "_requiredBy": [
- "/move-concurrently",
- "/move-concurrently/copy-concurrently"
- ],
- "_resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
- "_shasum": "e848396f057d223f24386924618e25694161ec47",
- "_shrinkwrap": null,
- "_spec": "run-queue@^1.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/move-concurrently",
- "author": {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org",
- "url": "http://re-becca.org/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/iarna/run-queue/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "aproba": "^1.1.1"
- },
- "deprecated": false,
- "description": "A promise based, dynamic priority queue runner, with concurrency limiting.",
- "devDependencies": {
- "standard": "^8.6.0",
- "tap": "^10.2.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "queue.js"
- ],
- "homepage": "https://npmjs.com/package/run-queue",
- "keywords": [],
- "license": "ISC",
- "main": "queue.js",
- "name": "run-queue",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/run-queue.git"
- },
- "scripts": {
- "test": "standard && tap -J test"
- },
- "version": "1.0.3"
-}
diff --git a/deps/npm/node_modules/move-concurrently/package.json b/deps/npm/node_modules/move-concurrently/package.json
index f4cb89151a..52595211cd 100644
--- a/deps/npm/node_modules/move-concurrently/package.json
+++ b/deps/npm/node_modules/move-concurrently/package.json
@@ -1,36 +1,34 @@
{
- "_from": "move-concurrently@~1.0.1",
+ "_args": [
+ [
+ "move-concurrently@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "move-concurrently@1.0.1",
"_id": "move-concurrently@1.0.1",
"_inBundle": false,
"_integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=",
"_location": "/move-concurrently",
- "_phantomChildren": {
- "aproba": "1.2.0",
- "fs-write-stream-atomic": "1.0.10",
- "iferr": "0.1.5",
- "mkdirp": "0.5.1",
- "rimraf": "2.6.2"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "move-concurrently@~1.0.1",
+ "raw": "move-concurrently@1.0.1",
"name": "move-concurrently",
"escapedName": "move-concurrently",
- "rawSpec": "~1.0.1",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "~1.0.1"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
- "#USER",
"/",
"/cacache",
- "/npm-profile/make-fetch-happen/cacache",
- "/pacote/cacache"
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache"
],
"_resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
- "_shasum": "be2c005fda32e0b29af1f05d7c4b33214c701f92",
- "_spec": "move-concurrently@~1.0.1",
+ "_spec": "1.0.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -40,7 +38,6 @@
"bugs": {
"url": "https://github.com/npm/move-concurrently/issues"
},
- "bundleDependencies": false,
"dependencies": {
"aproba": "^1.1.1",
"copy-concurrently": "^1.0.0",
@@ -49,7 +46,6 @@
"rimraf": "^2.5.4",
"run-queue": "^1.0.3"
},
- "deprecated": false,
"description": "Promises of moves of files or directories with rename, falling back to recursive rename/copy on EXDEV errors, with configurable concurrency and win32 junction support.",
"devDependencies": {
"standard": "^8.6.0",
diff --git a/deps/npm/node_modules/ms/index.js b/deps/npm/node_modules/ms/index.js
new file mode 100644
index 0000000000..72297501f9
--- /dev/null
+++ b/deps/npm/node_modules/ms/index.js
@@ -0,0 +1,162 @@
+/**
+ * Helpers.
+ */
+
+var s = 1000;
+var m = s * 60;
+var h = m * 60;
+var d = h * 24;
+var w = d * 7;
+var y = d * 365.25;
+
+/**
+ * Parse or format the given `val`.
+ *
+ * Options:
+ *
+ * - `long` verbose formatting [false]
+ *
+ * @param {String|Number} val
+ * @param {Object} [options]
+ * @throws {Error} throw an error if val is not a non-empty string or a number
+ * @return {String|Number}
+ * @api public
+ */
+
+module.exports = function(val, options) {
+ options = options || {};
+ var type = typeof val;
+ if (type === 'string' && val.length > 0) {
+ return parse(val);
+ } else if (type === 'number' && isNaN(val) === false) {
+ return options.long ? fmtLong(val) : fmtShort(val);
+ }
+ throw new Error(
+ 'val is not a non-empty string or a valid number. val=' +
+ JSON.stringify(val)
+ );
+};
+
+/**
+ * Parse the given `str` and return milliseconds.
+ *
+ * @param {String} str
+ * @return {Number}
+ * @api private
+ */
+
+function parse(str) {
+ str = String(str);
+ if (str.length > 100) {
+ return;
+ }
+ var match = /^((?:\d+)?\-?\d?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(
+ str
+ );
+ if (!match) {
+ return;
+ }
+ var n = parseFloat(match[1]);
+ var type = (match[2] || 'ms').toLowerCase();
+ switch (type) {
+ case 'years':
+ case 'year':
+ case 'yrs':
+ case 'yr':
+ case 'y':
+ return n * y;
+ case 'weeks':
+ case 'week':
+ case 'w':
+ return n * w;
+ case 'days':
+ case 'day':
+ case 'd':
+ return n * d;
+ case 'hours':
+ case 'hour':
+ case 'hrs':
+ case 'hr':
+ case 'h':
+ return n * h;
+ case 'minutes':
+ case 'minute':
+ case 'mins':
+ case 'min':
+ case 'm':
+ return n * m;
+ case 'seconds':
+ case 'second':
+ case 'secs':
+ case 'sec':
+ case 's':
+ return n * s;
+ case 'milliseconds':
+ case 'millisecond':
+ case 'msecs':
+ case 'msec':
+ case 'ms':
+ return n;
+ default:
+ return undefined;
+ }
+}
+
+/**
+ * Short format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+function fmtShort(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return Math.round(ms / d) + 'd';
+ }
+ if (msAbs >= h) {
+ return Math.round(ms / h) + 'h';
+ }
+ if (msAbs >= m) {
+ return Math.round(ms / m) + 'm';
+ }
+ if (msAbs >= s) {
+ return Math.round(ms / s) + 's';
+ }
+ return ms + 'ms';
+}
+
+/**
+ * Long format for `ms`.
+ *
+ * @param {Number} ms
+ * @return {String}
+ * @api private
+ */
+
+function fmtLong(ms) {
+ var msAbs = Math.abs(ms);
+ if (msAbs >= d) {
+ return plural(ms, msAbs, d, 'day');
+ }
+ if (msAbs >= h) {
+ return plural(ms, msAbs, h, 'hour');
+ }
+ if (msAbs >= m) {
+ return plural(ms, msAbs, m, 'minute');
+ }
+ if (msAbs >= s) {
+ return plural(ms, msAbs, s, 'second');
+ }
+ return ms + ' ms';
+}
+
+/**
+ * Pluralization helper.
+ */
+
+function plural(ms, msAbs, n, name) {
+ var isPlural = msAbs >= n * 1.5;
+ return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md b/deps/npm/node_modules/ms/license.md
index 69b61253a3..69b61253a3 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md
+++ b/deps/npm/node_modules/ms/license.md
diff --git a/deps/npm/node_modules/ms/package.json b/deps/npm/node_modules/ms/package.json
new file mode 100644
index 0000000000..9a4424a8b2
--- /dev/null
+++ b/deps/npm/node_modules/ms/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "ms@^2.0.0",
+ "_id": "ms@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "_location": "/ms",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ms@^2.0.0",
+ "name": "ms",
+ "escapedName": "ms",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/humanize-ms"
+ ],
+ "_resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "_shasum": "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a",
+ "_spec": "ms@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/humanize-ms",
+ "bugs": {
+ "url": "https://github.com/zeit/ms/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Tiny millisecond conversion utility",
+ "devDependencies": {
+ "eslint": "4.12.1",
+ "expect.js": "0.3.1",
+ "husky": "0.14.3",
+ "lint-staged": "5.0.0",
+ "mocha": "4.0.1"
+ },
+ "eslintConfig": {
+ "extends": "eslint:recommended",
+ "env": {
+ "node": true,
+ "es6": true
+ }
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/zeit/ms#readme",
+ "license": "MIT",
+ "lint-staged": {
+ "*.js": [
+ "npm run lint",
+ "prettier --single-quote --write",
+ "git add"
+ ]
+ },
+ "main": "./index",
+ "name": "ms",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zeit/ms.git"
+ },
+ "scripts": {
+ "lint": "eslint lib/* bin/*",
+ "precommit": "lint-staged",
+ "test": "mocha tests.js"
+ },
+ "version": "2.1.1"
+}
diff --git a/deps/npm/node_modules/ms/readme.md b/deps/npm/node_modules/ms/readme.md
new file mode 100644
index 0000000000..bb767293ac
--- /dev/null
+++ b/deps/npm/node_modules/ms/readme.md
@@ -0,0 +1,60 @@
+# ms
+
+[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
+[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
+
+Use this package to easily convert various time formats to milliseconds.
+
+## Examples
+
+```js
+ms('2 days') // 172800000
+ms('1d') // 86400000
+ms('10h') // 36000000
+ms('2.5 hrs') // 9000000
+ms('2h') // 7200000
+ms('1m') // 60000
+ms('5s') // 5000
+ms('1y') // 31557600000
+ms('100') // 100
+ms('-3 days') // -259200000
+ms('-1h') // -3600000
+ms('-200') // -200
+```
+
+### Convert from Milliseconds
+
+```js
+ms(60000) // "1m"
+ms(2 * 60000) // "2m"
+ms(-3 * 60000) // "-3m"
+ms(ms('10 hours')) // "10h"
+```
+
+### Time Format Written-Out
+
+```js
+ms(60000, { long: true }) // "1 minute"
+ms(2 * 60000, { long: true }) // "2 minutes"
+ms(-3 * 60000, { long: true }) // "-3 minutes"
+ms(ms('10 hours'), { long: true }) // "10 hours"
+```
+
+## Features
+
+- Works both in [Node.js](https://nodejs.org) and in the browser
+- If a number is supplied to `ms`, a string with a unit is returned
+- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`)
+- If you pass a string with a number and a valid unit, the number of equivalent milliseconds is returned
+
+## Related Packages
+
+- [ms.macro](https://github.com/knpwrs/ms.macro) - Run `ms` as a macro at build-time.
+
+## Caught a Bug?
+
+1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
+2. Link the package to the global module directory: `npm link`
+3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, Node.js will now use your clone of ms!
+
+As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/osenv/.travis.yml b/deps/npm/node_modules/mute-stream/.travis.yml
index 99f2bbf506..99f2bbf506 100644
--- a/deps/npm/node_modules/osenv/.travis.yml
+++ b/deps/npm/node_modules/mute-stream/.travis.yml
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/LICENSE b/deps/npm/node_modules/mute-stream/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/LICENSE
+++ b/deps/npm/node_modules/mute-stream/LICENSE
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/README.md b/deps/npm/node_modules/mute-stream/README.md
index 8ab1238e46..8ab1238e46 100644
--- a/deps/npm/node_modules/read/node_modules/mute-stream/README.md
+++ b/deps/npm/node_modules/mute-stream/README.md
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/mute.js b/deps/npm/node_modules/mute-stream/mute.js
index a24fc09975..a24fc09975 100644
--- a/deps/npm/node_modules/read/node_modules/mute-stream/mute.js
+++ b/deps/npm/node_modules/mute-stream/mute.js
diff --git a/deps/npm/node_modules/mute-stream/package.json b/deps/npm/node_modules/mute-stream/package.json
new file mode 100644
index 0000000000..cc03dcf7c0
--- /dev/null
+++ b/deps/npm/node_modules/mute-stream/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "mute-stream@~0.0.4",
+ "_id": "mute-stream@0.0.7",
+ "_inBundle": false,
+ "_integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
+ "_location": "/mute-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mute-stream@~0.0.4",
+ "name": "mute-stream",
+ "escapedName": "mute-stream",
+ "rawSpec": "~0.0.4",
+ "saveSpec": null,
+ "fetchSpec": "~0.0.4"
+ },
+ "_requiredBy": [
+ "/inquirer",
+ "/read"
+ ],
+ "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
+ "_shasum": "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab",
+ "_spec": "mute-stream@~0.0.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/read",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/mute-stream/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Bytes go in, but they don't come out (when muted).",
+ "devDependencies": {
+ "tap": "^5.4.4"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "homepage": "https://github.com/isaacs/mute-stream#readme",
+ "keywords": [
+ "mute",
+ "stream",
+ "pipe"
+ ],
+ "license": "ISC",
+ "main": "mute.js",
+ "name": "mute-stream",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/mute-stream.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js --cov"
+ },
+ "version": "0.0.7"
+}
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js b/deps/npm/node_modules/mute-stream/test/basic.js
index 41f9e10c38..41f9e10c38 100644
--- a/deps/npm/node_modules/read/node_modules/mute-stream/test/basic.js
+++ b/deps/npm/node_modules/mute-stream/test/basic.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md b/deps/npm/node_modules/node-fetch-npm/CHANGELOG.md
index a0cfe7f73e..a0cfe7f73e 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md
+++ b/deps/npm/node_modules/node-fetch-npm/CHANGELOG.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md b/deps/npm/node_modules/node-fetch-npm/LICENSE.md
index 492632ff69..492632ff69 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md
+++ b/deps/npm/node_modules/node-fetch-npm/LICENSE.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md b/deps/npm/node_modules/node-fetch-npm/README.md
index 6d3dd0e6a1..6d3dd0e6a1 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md
+++ b/deps/npm/node_modules/node-fetch-npm/README.md
diff --git a/deps/npm/node_modules/node-fetch-npm/package.json b/deps/npm/node_modules/node-fetch-npm/package.json
new file mode 100644
index 0000000000..b256ce7186
--- /dev/null
+++ b/deps/npm/node_modules/node-fetch-npm/package.json
@@ -0,0 +1,102 @@
+{
+ "_from": "node-fetch-npm@^2.0.2",
+ "_id": "node-fetch-npm@2.0.2",
+ "_inBundle": false,
+ "_integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
+ "_location": "/node-fetch-npm",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "node-fetch-npm@^2.0.2",
+ "name": "node-fetch-npm",
+ "escapedName": "node-fetch-npm",
+ "rawSpec": "^2.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.2"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
+ "_shasum": "7258c9046182dca345b4208eda918daf33697ff7",
+ "_spec": "node-fetch-npm@^2.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen",
+ "author": {
+ "name": "David Frank"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/node-fetch-npm/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org"
+ },
+ {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ }
+ ],
+ "dependencies": {
+ "encoding": "^0.1.11",
+ "json-parse-better-errors": "^1.0.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "deprecated": false,
+ "description": "An npm cli-oriented fork of the excellent node-fetch",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "chai-as-promised": "^6.0.0",
+ "chai-iterator": "^1.1.1",
+ "chai-string": "^1.4.0",
+ "codecov": "^1.0.1",
+ "cross-env": "^3.1.4",
+ "form-data": "^2.2.0",
+ "is-builtin-module": "^1.0.0",
+ "mocha": "^3.5.0",
+ "nyc": "^10.3.2",
+ "parted": "^0.1.1",
+ "promise": "^7.3.1",
+ "resumer": "0.0.0",
+ "standard": "^10.0.3",
+ "standard-version": "^4.2.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8",
+ "whatwg-url": "^4.8.0"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "src/*.js"
+ ],
+ "homepage": "https://github.com/npm/node-fetch-npm",
+ "keywords": [
+ "fetch",
+ "http",
+ "promise"
+ ],
+ "license": "MIT",
+ "main": "src/index.js",
+ "name": "node-fetch-npm",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/node-fetch-npm.git"
+ },
+ "scripts": {
+ "coverage": "nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json",
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard src/*",
+ "release": "standard-version -s",
+ "report": "nyc --reporter lcov --reporter text mocha -R spec test/test.js",
+ "test": "mocha test/test.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "2.0.2"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js b/deps/npm/node_modules/node-fetch-npm/src/blob.js
index 0a4462abd6..0a4462abd6 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/blob.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js b/deps/npm/node_modules/node-fetch-npm/src/body.js
index 9e7481857a..9e7481857a 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/body.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js b/deps/npm/node_modules/node-fetch-npm/src/common.js
index 47b57c794c..47b57c794c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/common.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js b/deps/npm/node_modules/node-fetch-npm/src/fetch-error.js
index 338e1e2729..338e1e2729 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/fetch-error.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js b/deps/npm/node_modules/node-fetch-npm/src/headers.js
index 28f71cd9b8..28f71cd9b8 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/headers.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js b/deps/npm/node_modules/node-fetch-npm/src/index.js
index b2cf80f9ec..b2cf80f9ec 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js b/deps/npm/node_modules/node-fetch-npm/src/request.js
index 326dc4606f..326dc4606f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/request.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js b/deps/npm/node_modules/node-fetch-npm/src/response.js
index 6fb050d74c..6fb050d74c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js
+++ b/deps/npm/node_modules/node-fetch-npm/src/response.js
diff --git a/deps/npm/node_modules/node-gyp/.jshintrc b/deps/npm/node_modules/node-gyp/.jshintrc
deleted file mode 100644
index 52475ba2e6..0000000000
--- a/deps/npm/node_modules/node-gyp/.jshintrc
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "asi": true,
- "laxcomma": true,
- "es5": true,
- "node": true,
- "strict": false
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/fstream/package.json b/deps/npm/node_modules/node-gyp/node_modules/fstream/package.json
deleted file mode 100644
index 5ac16f546b..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/fstream/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "fstream@^1.0.0",
- "_id": "fstream@1.0.11",
- "_inBundle": false,
- "_integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
- "_location": "/node-gyp/fstream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "fstream@^1.0.0",
- "name": "fstream",
- "escapedName": "fstream",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/node-gyp",
- "/node-gyp/tar"
- ],
- "_resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
- "_shasum": "5c1fb1f117477114f0632a0eb4b71b3cb0fd3171",
- "_spec": "fstream@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/fstream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "inherits": "~2.0.0",
- "mkdirp": ">=0.5 0",
- "rimraf": "2"
- },
- "deprecated": false,
- "description": "Advanced file system stream things",
- "devDependencies": {
- "standard": "^4.0.0",
- "tap": "^1.2.0"
- },
- "engines": {
- "node": ">=0.6"
- },
- "homepage": "https://github.com/npm/fstream#readme",
- "license": "ISC",
- "main": "fstream.js",
- "name": "fstream",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/fstream.git"
- },
- "scripts": {
- "test": "standard && tap examples/*.js"
- },
- "version": "1.0.11"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md b/deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md
deleted file mode 100644
index ad72b8133e..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,209 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instantiating the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 5b5f8cf444..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,923 +0,0 @@
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-var plTypes = {
- '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
- '?': { open: '(?:', close: ')?' },
- '+': { open: '(?:', close: ')+' },
- '*': { open: '(?:', close: ')*' },
- '@': { open: '(?:', close: ')' }
-}
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new TypeError('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- if (pattern.length > 1024 * 64) {
- throw new TypeError('pattern is too long')
- }
-
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- var pl = patternListStack.pop()
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- re += pl.close
- if (pl.type === '!') {
- negativeLists.push(pl)
- }
- pl.reEnd = re.length
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length)
- this.debug('setting tail', re, pl)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail, pl, re)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- try {
- var regExp = new RegExp('^' + re + '$', flags)
- } catch (er) {
- // If it was an invalid regular expression, then it can't match
- // anything. This trick looks for a character after the end of
- // the string, which is of course impossible, except in multi-line
- // mode, but it's not a /m regex.
- return new RegExp('$.')
- }
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md
deleted file mode 100644
index 778a1c3c1d..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# brace-expansion
-
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
-as known from sh/bash, in JavaScript.
-
-[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
-[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
-[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
-
-[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
-
-## Example
-
-```js
-var expand = require('brace-expansion');
-
-expand('file-{a,b,c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('-v{,,}')
-// => ['-v', '-v', '-v']
-
-expand('file{0..2}.jpg')
-// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
-
-expand('file-{a..c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('file{2..0}.jpg')
-// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
-
-expand('file{0..4..2}.jpg')
-// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
-
-expand('file-{a..e..2}.jpg')
-// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
-
-expand('file{00..10..5}.jpg')
-// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
-
-expand('{{A..C},{a..c}}')
-// => ['A', 'B', 'C', 'a', 'b', 'c']
-
-expand('ppp{,config,oe{,conf}}')
-// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
-```
-
-## API
-
-```js
-var expand = require('brace-expansion');
-```
-
-### var expanded = expand(str)
-
-Return an array of all possible and valid expansions of `str`. If none are
-found, `[str]` is returned.
-
-Valid expansions are:
-
-```js
-/^(.*,)+(.+)?$/
-// {a,b,...}
-```
-
-A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-A numeric sequence from `x` to `y` inclusive, with optional increment.
-If `x` or `y` start with a leading `0`, all the numbers will be padded
-to have equal length. Negative numbers and backwards iteration work too.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-An alphabetic sequence from `x` to `y` inclusive, with optional increment.
-`x` and `y` must be exactly one character, and if given, `incr` must be a
-number.
-
-For compatibility reasons, the string `${` is not eligible for brace expansion.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install brace-expansion
-```
-
-## Contributors
-
-- [Julian Gruber](https://github.com/juliangruber)
-- [Isaac Z. Schlueter](https://github.com/isaacs)
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
deleted file mode 100644
index ae5d8c36ac..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-test
-.gitignore
-.travis.yml
-Makefile
-example.js
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
deleted file mode 100644
index 2cdc8e4148..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
deleted file mode 100644
index 08e918c0db..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# balanced-match
-
-Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
-
-[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
-[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
-
-[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
-
-## Example
-
-Get the first matching pair of braces:
-
-```js
-var balanced = require('balanced-match');
-
-console.log(balanced('{', '}', 'pre{in{nested}}post'));
-console.log(balanced('{', '}', 'pre{first}between{second}post'));
-console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
-```
-
-The matches are:
-
-```bash
-$ node example.js
-{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
-{ start: 3,
- end: 9,
- pre: 'pre',
- body: 'first',
- post: 'between{second}post' }
-{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
-```
-
-## API
-
-### var m = balanced(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-object with those keys:
-
-* **start** the index of the first match of `a`
-* **end** the index of the matching `b`
-* **pre** the preamble, `a` and `b` not included
-* **body** the match, `a` and `b` not included
-* **post** the postscript, `a` and `b` not included
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
-
-### var r = balanced.range(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-array with indexes: `[ <a index>, <b index> ]`.
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install balanced-match
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
deleted file mode 100644
index 1685a76293..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-module.exports = balanced;
-function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
-
- var r = range(a, b, str);
-
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
-}
-
-function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
-}
-
-balanced.range = range;
-function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
-
- if (ai >= 0 && bi > 0) {
- begs = [];
- left = str.length;
-
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [ begs.pop(), bi ];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
- }
-
- bi = str.indexOf(b, i + 1);
- }
-
- i = ai < bi && ai >= 0 ? ai : bi;
- }
-
- if (begs.length) {
- result = [ left, right ];
- }
- }
-
- return result;
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
deleted file mode 100644
index 3e66f4f7df..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "balanced-match@^1.0.0",
- "_id": "balanced-match@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "_location": "/node-gyp/minimatch/brace-expansion/balanced-match",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "balanced-match@^1.0.0",
- "name": "balanced-match",
- "escapedName": "balanced-match",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/node-gyp/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
- "_spec": "balanced-match@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/balanced-match/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Match balanced character pairs, like \"{\" and \"}\"",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/balanced-match",
- "keywords": [
- "match",
- "regexp",
- "test",
- "balanced",
- "parse"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "balanced-match",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/balanced-match.git"
- },
- "scripts": {
- "bench": "make bench",
- "test": "make test"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.0.0"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
deleted file mode 100644
index f1d0f13c8a..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
deleted file mode 100644
index 408f70a1be..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
deleted file mode 100644
index 33656217b6..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
deleted file mode 100644
index b29a7812e5..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
deleted file mode 100644
index 76e10c8948..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "_from": "concat-map@0.0.1",
- "_id": "concat-map@0.0.1",
- "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "_location": "/node-gyp/minimatch/brace-expansion/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": [
- "/node-gyp/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "_shasum": "d8a96bd77fd68df7793a73036a3ba0d5405d477b",
- "_shrinkwrap": null,
- "_spec": "concat-map@0.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/node-concat-map/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
deleted file mode 100644
index fdbd7022f6..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
+++ /dev/null
@@ -1,39 +0,0 @@
-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/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json
deleted file mode 100644
index 10ec0bbe52..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "brace-expansion@^1.1.7",
- "_id": "brace-expansion@1.1.8",
- "_inBundle": false,
- "_integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "_location": "/node-gyp/minimatch/brace-expansion",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "brace-expansion@^1.1.7",
- "name": "brace-expansion",
- "escapedName": "brace-expansion",
- "rawSpec": "^1.1.7",
- "saveSpec": null,
- "fetchSpec": "^1.1.7"
- },
- "_requiredBy": [
- "/node-gyp/minimatch"
- ],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "_shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
- "_spec": "brace-expansion@^1.1.7",
- "_where": "/Users/rebecca/code/npm/node_modules/node-gyp/node_modules/minimatch",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/brace-expansion/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- },
- "deprecated": false,
- "description": "Brace expansion as known from sh/bash",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/brace-expansion",
- "keywords": [],
- "license": "MIT",
- "main": "index.js",
- "name": "brace-expansion",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/brace-expansion.git"
- },
- "scripts": {
- "bench": "matcha test/perf/bench.js",
- "gentest": "bash test/generate.sh",
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.1.8"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json b/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json
deleted file mode 100644
index 3cdb284428..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "minimatch@^3.0.2",
- "_id": "minimatch@3.0.4",
- "_inBundle": false,
- "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "_location": "/node-gyp/minimatch",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimatch@^3.0.2",
- "name": "minimatch",
- "escapedName": "minimatch",
- "rawSpec": "^3.0.2",
- "saveSpec": null,
- "fetchSpec": "^3.0.2"
- },
- "_requiredBy": [
- "/node-gyp"
- ],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
- "_spec": "minimatch@^3.0.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/node-gyp",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minimatch/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "deprecated": false,
- "description": "a glob matcher in javascript",
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "minimatch.js"
- ],
- "homepage": "https://github.com/isaacs/minimatch#readme",
- "license": "ISC",
- "main": "minimatch.js",
- "name": "minimatch",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --cov"
- },
- "version": "3.0.4"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json b/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json
index 011e21e0ab..5179f473b1 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json
+++ b/deps/npm/node_modules/node-gyp/node_modules/nopt/package.json
@@ -1,6 +1,7 @@
{
"_from": "nopt@2 || 3",
"_id": "nopt@3.0.6",
+ "_inBundle": false,
"_integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"_location": "/node-gyp/nopt",
"_phantomChildren": {},
@@ -19,9 +20,8 @@
],
"_resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"_shasum": "c6465dbf08abcd4db359317f79ac68a646b28ff9",
- "_shrinkwrap": null,
"_spec": "nopt@2 || 3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/node-gyp",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -46,8 +46,6 @@
"license": "ISC",
"main": "lib/nopt.js",
"name": "nopt",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/nopt.git"
diff --git a/deps/npm/node_modules/node-gyp/node_modules/semver/package.json b/deps/npm/node_modules/node-gyp/node_modules/semver/package.json
index 80f00fe575..8793bae37c 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/semver/package.json
+++ b/deps/npm/node_modules/node-gyp/node_modules/semver/package.json
@@ -21,7 +21,7 @@
"_resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
"_shasum": "9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f",
"_spec": "semver@~5.3.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/node-gyp",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
"bin": {
"semver": "./bin/semver"
},
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json b/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json
deleted file mode 100644
index bf449e9633..0000000000
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/node_modules/block-stream/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_args": [
- [
- "block-stream@0.0.9",
- "/Users/rebecca/code/npm"
- ]
- ],
- "_from": "block-stream@0.0.9",
- "_id": "block-stream@0.0.9",
- "_inBundle": false,
- "_integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
- "_location": "/node-gyp/tar/block-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "block-stream@0.0.9",
- "name": "block-stream",
- "escapedName": "block-stream",
- "rawSpec": "0.0.9",
- "saveSpec": null,
- "fetchSpec": "0.0.9"
- },
- "_requiredBy": [
- "/node-gyp/tar"
- ],
- "_resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
- "_spec": "0.0.9",
- "_where": "/Users/rebecca/code/npm",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/block-stream/issues"
- },
- "dependencies": {
- "inherits": "~2.0.0"
- },
- "description": "a stream of blocks",
- "devDependencies": {
- "tap": "^5.7.1"
- },
- "engines": {
- "node": "0.4 || >=0.5.8"
- },
- "files": [
- "block-stream.js"
- ],
- "homepage": "https://github.com/isaacs/block-stream#readme",
- "license": "ISC",
- "main": "block-stream.js",
- "name": "block-stream",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/block-stream.git"
- },
- "scripts": {
- "test": "tap test/*.js --cov"
- },
- "version": "0.0.9"
-}
diff --git a/deps/npm/node_modules/node-gyp/node_modules/tar/package.json b/deps/npm/node_modules/node-gyp/node_modules/tar/package.json
index 0cb9624034..2ab77e47f3 100644
--- a/deps/npm/node_modules/node-gyp/node_modules/tar/package.json
+++ b/deps/npm/node_modules/node-gyp/node_modules/tar/package.json
@@ -1,34 +1,27 @@
{
- "_args": [
- [
- "tar@2.2.1",
- "/Users/rebecca/code/npm"
- ]
- ],
- "_from": "tar@2.2.1",
+ "_from": "tar@^2.0.0",
"_id": "tar@2.2.1",
"_inBundle": false,
"_integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
"_location": "/node-gyp/tar",
- "_phantomChildren": {
- "inherits": "2.0.3"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "version",
+ "type": "range",
"registry": true,
- "raw": "tar@2.2.1",
+ "raw": "tar@^2.0.0",
"name": "tar",
"escapedName": "tar",
- "rawSpec": "2.2.1",
+ "rawSpec": "^2.0.0",
"saveSpec": null,
- "fetchSpec": "2.2.1"
+ "fetchSpec": "^2.0.0"
},
"_requiredBy": [
"/node-gyp"
],
"_resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
- "_spec": "2.2.1",
- "_where": "/Users/rebecca/code/npm",
+ "_shasum": "8e4d2a256c0e2185c6b18ad694aec968b83cb1d1",
+ "_spec": "tar@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/node-gyp",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -37,11 +30,13 @@
"bugs": {
"url": "https://github.com/isaacs/node-tar/issues"
},
+ "bundleDependencies": false,
"dependencies": {
"block-stream": "*",
"fstream": "^1.0.2",
"inherits": "2"
},
+ "deprecated": false,
"description": "tar for node",
"devDependencies": {
"graceful-fs": "^4.1.2",
diff --git a/deps/npm/node_modules/node-gyp/package.json b/deps/npm/node_modules/node-gyp/package.json
index eb272af664..ced901766a 100644
--- a/deps/npm/node_modules/node-gyp/package.json
+++ b/deps/npm/node_modules/node-gyp/package.json
@@ -1,29 +1,37 @@
{
- "_from": "node-gyp@~3.6.2",
+ "_args": [
+ [
+ "node-gyp@3.6.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "node-gyp@3.6.2",
"_id": "node-gyp@3.6.2",
"_inBundle": false,
"_integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=",
"_location": "/node-gyp",
"_phantomChildren": {
- "abbrev": "1.1.0"
+ "abbrev": "1.1.1",
+ "block-stream": "0.0.9",
+ "fstream": "1.0.11",
+ "inherits": "2.0.3"
},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "node-gyp@~3.6.2",
+ "raw": "node-gyp@3.6.2",
"name": "node-gyp",
"escapedName": "node-gyp",
- "rawSpec": "~3.6.2",
+ "rawSpec": "3.6.2",
"saveSpec": null,
- "fetchSpec": "~3.6.2"
+ "fetchSpec": "3.6.2"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/npm-lifecycle"
],
"_resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz",
- "_shasum": "9bfbe54562286284838e750eac05295853fa1c60",
- "_spec": "node-gyp@~3.6.2",
+ "_spec": "3.6.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Nathan Rajlich",
@@ -36,7 +44,6 @@
"bugs": {
"url": "https://github.com/nodejs/node-gyp/issues"
},
- "bundleDependencies": false,
"dependencies": {
"fstream": "^1.0.0",
"glob": "^7.0.3",
@@ -52,7 +59,6 @@
"tar": "^2.0.0",
"which": "1"
},
- "deprecated": false,
"description": "Node.js native addon build tool",
"devDependencies": {
"bindings": "~1.2.1",
diff --git a/deps/npm/node_modules/nopt/package.json b/deps/npm/node_modules/nopt/package.json
index 0bed7e8a4a..cea3624f4d 100644
--- a/deps/npm/node_modules/nopt/package.json
+++ b/deps/npm/node_modules/nopt/package.json
@@ -1,27 +1,32 @@
{
- "_from": "nopt@~4.0.1",
+ "_args": [
+ [
+ "nopt@4.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "nopt@4.0.1",
"_id": "nopt@4.0.1",
+ "_inBundle": false,
"_integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"_location": "/nopt",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "nopt@~4.0.1",
+ "raw": "nopt@4.0.1",
"name": "nopt",
"escapedName": "nopt",
- "rawSpec": "~4.0.1",
+ "rawSpec": "4.0.1",
"saveSpec": null,
- "fetchSpec": "~4.0.1"
+ "fetchSpec": "4.0.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
- "_shasum": "d0d4685afd5415193c8c7505602d0d17cd64474d",
- "_shrinkwrap": null,
- "_spec": "nopt@~4.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -33,12 +38,10 @@
"bugs": {
"url": "https://github.com/npm/nopt/issues"
},
- "bundleDependencies": false,
"dependencies": {
"abbrev": "1",
"osenv": "^0.1.4"
},
- "deprecated": false,
"description": "Option parsing for Node, supporting types, shorthands, etc. Used by npm.",
"devDependencies": {
"tap": "^8.0.1"
@@ -47,8 +50,6 @@
"license": "ISC",
"main": "lib/nopt.js",
"name": "nopt",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/nopt.git"
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json b/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json
deleted file mode 100644
index 413d03e941..0000000000
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "builtin-modules@^1.0.0",
- "_id": "builtin-modules@1.1.1",
- "_integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "_location": "/normalize-package-data/is-builtin-module/builtin-modules",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "builtin-modules@^1.0.0",
- "name": "builtin-modules",
- "escapedName": "builtin-modules",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/normalize-package-data/is-builtin-module"
- ],
- "_resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
- "_shasum": "270f076c5a72c02f5b65a47df94c5fe3a278892f",
- "_shrinkwrap": null,
- "_spec": "builtin-modules@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/normalize-package-data/node_modules/is-builtin-module",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/builtin-modules/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "List of the Node.js builtin modules",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js",
- "static.js",
- "builtin-modules.json"
- ],
- "homepage": "https://github.com/sindresorhus/builtin-modules#readme",
- "keywords": [
- "builtin",
- "built-in",
- "builtins",
- "node",
- "modules",
- "core",
- "bundled",
- "list",
- "array",
- "names"
- ],
- "license": "MIT",
- "name": "builtin-modules",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/builtin-modules.git"
- },
- "scripts": {
- "make": "node make.js",
- "test": "xo && ava"
- },
- "version": "1.1.1"
-}
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json b/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json
deleted file mode 100644
index f4a98a833a..0000000000
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "is-builtin-module@^1.0.0",
- "_id": "is-builtin-module@1.0.0",
- "_integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
- "_location": "/normalize-package-data/is-builtin-module",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-builtin-module@^1.0.0",
- "name": "is-builtin-module",
- "escapedName": "is-builtin-module",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/normalize-package-data"
- ],
- "_resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
- "_shasum": "540572d34f7ac3119f8f76c30cbc1b1e037affbe",
- "_shrinkwrap": null,
- "_spec": "is-builtin-module@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/normalize-package-data",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-builtin-module/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "builtin-modules": "^1.0.0"
- },
- "deprecated": false,
- "description": "Check if a string matches the name of a Node.js builtin module",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-builtin-module#readme",
- "keywords": [
- "builtin",
- "built-in",
- "builtins",
- "node",
- "modules",
- "core",
- "bundled",
- "list",
- "array",
- "names",
- "is",
- "detect",
- "check",
- "match"
- ],
- "license": "MIT",
- "name": "is-builtin-module",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-builtin-module.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/normalize-package-data/package.json b/deps/npm/node_modules/normalize-package-data/package.json
index c015fa19ee..37151c79c9 100644
--- a/deps/npm/node_modules/normalize-package-data/package.json
+++ b/deps/npm/node_modules/normalize-package-data/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "normalize-package-data@2.4.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "normalize-package-data@2.4.0",
"_id": "normalize-package-data@2.4.0",
"_inBundle": false,
@@ -16,15 +22,14 @@
"fetchSpec": "2.4.0"
},
"_requiredBy": [
- "#USER",
"/",
"/npm-registry-client",
"/pacote",
- "/read-package-json"
+ "/read-package-json",
+ "/read-pkg"
],
"_resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "_shasum": "12f95a307d58352075a04907b84ac8be98ac012f",
- "_spec": "normalize-package-data@2.4.0",
+ "_spec": "2.4.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Meryn Stol",
@@ -33,7 +38,6 @@
"bugs": {
"url": "https://github.com/npm/normalize-package-data/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Isaac Z. Schlueter",
@@ -54,7 +58,6 @@
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
},
- "deprecated": false,
"description": "Normalizes data that can be found in package.json files.",
"devDependencies": {
"async": "^1.5.0",
diff --git a/deps/npm/node_modules/npm-audit-report/CHANGELOG.md b/deps/npm/node_modules/npm-audit-report/CHANGELOG.md
new file mode 100644
index 0000000000..428659ba0d
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/CHANGELOG.md
@@ -0,0 +1,42 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.2.1"></a>
+## [1.2.1](https://github.com/npm/npm-audit-report/compare/v1.2.0...v1.2.1) (2018-05-17)
+
+
+### Bug Fixes
+
+* **detail:** count id+path instead of just id ([99880fd](https://github.com/npm/npm-audit-report/commit/99880fd))
+
+
+
+<a name="1.2.0"></a>
+# [1.2.0](https://github.com/npm/npm-audit-report/compare/v1.1.0...v1.2.0) (2018-05-16)
+
+
+### Bug Fixes
+
+* **full-report:** Fix install flag for devDependencies ([#14](https://github.com/npm/npm-audit-report/issues/14)) ([30e5f30](https://github.com/npm/npm-audit-report/commit/30e5f30))
+
+
+### Features
+
+* **detail:** consistified full report with install report ([#15](https://github.com/npm/npm-audit-report/issues/15)) ([6df6810](https://github.com/npm/npm-audit-report/commit/6df6810))
+* **install:** include `npm audit` recommendation too ([32fb153](https://github.com/npm/npm-audit-report/commit/32fb153))
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/npm/npm-audit-report/compare/v1.0.9...v1.1.0) (2018-05-10)
+
+
+### Bug Fixes
+
+* **install:** not enough data for this conditional ([6ddc30c](https://github.com/npm/npm-audit-report/commit/6ddc30c))
+
+
+### Features
+
+* **report:** compress and reformat human-readable install report ([74d5203](https://github.com/npm/npm-audit-report/commit/74d5203))
diff --git a/deps/npm/node_modules/npm-audit-report/LICENSE b/deps/npm/node_modules/npm-audit-report/LICENSE
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/LICENSE
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-audit-report/README.md b/deps/npm/node_modules/npm-audit-report/README.md
new file mode 100644
index 0000000000..73ef382c53
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/README.md
@@ -0,0 +1,40 @@
+# npm audit security report
+
+Given a response from the npm security api, render it into a variety of security reports
+
+[![Build Status](https://travis-ci.org/npm/npm-audit-report.svg?branch=master)](https://travis-ci.org/npm/npm-audit-report)
+[![Build status](https://ci.appveyor.com/api/projects/status/qictiokvxmqkiuvi/branch/master?svg=true)](https://ci.appveyor.com/project/evilpacket/npm-audit-report/branch/master)
+[![Coverage Status](https://coveralls.io/repos/github/npm/npm-audit-report/badge.svg?branch=master)](https://coveralls.io/github/npm/npm-audit-report?branch=master)
+
+The response is an object that contains an output string (the report) and a suggested exitCode.
+```
+{
+ report: 'string that contains the security report',
+ exit: 1
+}
+```
+
+
+## Basic usage example
+
+```
+'use strict'
+const Report = require('npm-audit-report')
+
+Report(response, options, (result) => {
+ console.log(result.report)
+ process.exitCode = result.exitCode
+})
+```
+
+
+## options
+
+reporter:
+ specify which output format you want to use (install, detail, json)
+
+withColor:
+ true || false indicates if some report elements should use colors or not
+
+withUnicode:
+ true || false indicates if unicode characters should be used or not.
diff --git a/deps/npm/node_modules/npm-audit-report/index.js b/deps/npm/node_modules/npm-audit-report/index.js
new file mode 100644
index 0000000000..2e0f21abb7
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/index.js
@@ -0,0 +1,24 @@
+'use strict'
+
+const reporters = {
+ install: require('./reporters/install'),
+ detail: require('./reporters/detail'),
+ json: require('./reporters/json'),
+ quiet: require('./reporters/quiet')
+}
+
+const report = function (data, options) {
+ const defaults = {
+ reporter: 'install',
+ withColor: true,
+ withUnicode: true
+ }
+
+ const config = Object.assign({}, defaults, options)
+ return new Promise((resolve, reject) => {
+ const result = reporters[config.reporter](data, config)
+ return resolve(result)
+ })
+}
+
+module.exports = report
diff --git a/deps/npm/node_modules/npm-audit-report/lib/utils.js b/deps/npm/node_modules/npm-audit-report/lib/utils.js
new file mode 100644
index 0000000000..069ebac8a0
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/lib/utils.js
@@ -0,0 +1,35 @@
+'use strict'
+
+exports.severityLabel = severityLabel
+exports.color = color
+
+const ccs = require('console-control-strings')
+
+const severityColors = {
+ critical: {
+ color: 'brightMagenta',
+ label: 'Critical'
+ },
+ high: {
+ color: 'brightRed',
+ label: 'High'
+ },
+ moderate: {
+ color: 'brightYellow',
+ label: 'Moderate'
+ },
+ low: {
+ color: 'bold',
+ label: 'Low'
+ }
+}
+
+function color (value, colorName, withColor) {
+ return (colorName && withColor) ? ccs.color(colorName) + value + ccs.color('reset') : value
+}
+
+function severityLabel (sev, withColor, bold) {
+ let colorName = severityColors[sev].color
+ if (bold) colorName = [colorName, 'bold']
+ return color(severityColors[sev].label, colorName, withColor)
+}
diff --git a/deps/npm/node_modules/npm-audit-report/package.json b/deps/npm/node_modules/npm-audit-report/package.json
new file mode 100644
index 0000000000..7ed0b6a7c8
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/package.json
@@ -0,0 +1,82 @@
+{
+ "_args": [
+ [
+ "npm-audit-report@1.2.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-audit-report@1.2.1",
+ "_id": "npm-audit-report@1.2.1",
+ "_inBundle": false,
+ "_integrity": "sha512-1eh6z0FivYQkLIU5xYcal8ssiGAgn0817u56EcF751HJD0m1PbAxurM/mc9WmAm3vhNZGkExleU/55VN/WRjFw==",
+ "_location": "/npm-audit-report",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "npm-audit-report@1.2.1",
+ "name": "npm-audit-report",
+ "escapedName": "npm-audit-report",
+ "rawSpec": "1.2.1",
+ "saveSpec": null,
+ "fetchSpec": "1.2.1"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-1.2.1.tgz",
+ "_spec": "1.2.1",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Adam Baldwin"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/npm-audit-report/issues"
+ },
+ "dependencies": {
+ "cli-table2": "^0.2.0",
+ "console-control-strings": "^1.1.0"
+ },
+ "description": "Given a response from the npm security api, render it into a variety of security reports",
+ "devDependencies": {
+ "keyfob": "^1.0.0",
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.5",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "directories": {
+ "lib": "lib",
+ "test": "test"
+ },
+ "files": [
+ "index.js",
+ "lib",
+ "reporters"
+ ],
+ "homepage": "https://github.com/npm/npm-audit-report#readme",
+ "keywords": [
+ "npm",
+ "security",
+ "report",
+ "audit"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-audit-report",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/npm-audit-report.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap --100 -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "1.2.1"
+}
diff --git a/deps/npm/node_modules/npm-audit-report/reporters/detail.js b/deps/npm/node_modules/npm-audit-report/reporters/detail.js
new file mode 100644
index 0000000000..f4f96b6771
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/reporters/detail.js
@@ -0,0 +1,206 @@
+'use strict'
+
+const summary = require('./install.js').summary
+const Table = require('cli-table2')
+const Utils = require('../lib/utils')
+
+const report = function (data, options) {
+ const defaults = {
+ severityThreshold: 'info'
+ }
+
+ const blankChars = {
+ 'top': ' ',
+ 'top-mid': ' ',
+ 'top-left': ' ',
+ 'top-right': ' ',
+ 'bottom': ' ',
+ 'bottom-mid': ' ',
+ 'bottom-left': ' ',
+ 'bottom-right': ' ',
+ 'left': ' ',
+ 'left-mid': ' ',
+ 'mid': ' ',
+ 'mid-mid': ' ',
+ 'right': ' ',
+ 'right-mid': ' ',
+ 'middle': ' '
+ }
+
+ const config = Object.assign({}, defaults, options)
+
+ let output = ''
+ let exit = 0
+
+ const log = function (value) {
+ output = output + value + '\n'
+ }
+
+ const footer = function (data) {
+ let total = 0
+ const sev = []
+
+ const keys = Object.keys(data.metadata.vulnerabilities)
+ for (let key of keys) {
+ const value = data.metadata.vulnerabilities[key]
+ total = total + value
+ if (value > 0) {
+ sev.push([key, value])
+ }
+ }
+ if (total > 0) {
+ exit = 1
+ }
+ log(`${summary(data, config)} in ${data.metadata.totalDependencies} scanned package${data.metadata.totalDependencies === 1 ? '' : 's'}`)
+ if (total) {
+ const counts = data.actions.reduce((acc, {action, isMajor, resolves}) => {
+ if (action === 'update' || (action === 'install' && !isMajor)) {
+ resolves.forEach(({id, path}) => acc.advisories.add(`${id}::${path}`))
+ }
+ if (isMajor) {
+ resolves.forEach(({id, path}) => acc.major.add(`${id}::${path}`))
+ }
+ if (action === 'review') {
+ resolves.forEach(({id, path}) => acc.review.add(`${id}::${path}`))
+ }
+ return acc
+ }, {advisories: new Set(), major: new Set(), review: new Set()})
+ if (counts.advisories.size) {
+ log(` run \`npm audit fix\` to fix ${counts.advisories.size} of them.`)
+ }
+ if (counts.major.size) {
+ const maj = counts.major.size
+ log(` ${maj} vulnerabilit${maj === 1 ? 'y' : 'ies'} require${maj === 1 ? 's' : ''} semver-major dependency updates.`)
+ }
+ if (counts.review.size) {
+ const rev = counts.review.size
+ log(` ${rev} vulnerabilit${rev === 1 ? 'y' : 'ies'} require${rev === 1 ? 's' : ''} manual review. See the full report for details.`)
+ }
+ }
+ }
+
+ const reportTitle = function () {
+ const tableOptions = {
+ colWidths: [78]
+ }
+ tableOptions.chars = blankChars
+ const table = new Table(tableOptions)
+ table.push([{
+ content: '=== npm audit security report ===',
+ vAlign: 'center',
+ hAlign: 'center'
+ }])
+ log(table.toString())
+ }
+
+ const actions = function (data, config) {
+ reportTitle()
+
+ if (Object.keys(data.advisories).length !== 0) {
+ // vulns found display a report.
+
+ let reviewFlag = false
+
+ data.actions.forEach((action) => {
+ if (action.action === 'update' || action.action === 'install') {
+ const recommendation = getRecommendation(action, config)
+ const label = action.resolves.length === 1 ? 'vulnerability' : 'vulnerabilities'
+ log(`# Run ${Utils.color(' ' + recommendation.cmd + ' ', 'inverse', config.withColor)} to resolve ${action.resolves.length} ${label}`)
+ if (recommendation.isBreaking) {
+ log(`SEMVER WARNING: Recommended action is a potentially breaking change`)
+ }
+
+ action.resolves.forEach((resolution) => {
+ const advisory = data.advisories[resolution.id]
+ const tableOptions = {
+ colWidths: [15, 62],
+ wordWrap: true
+ }
+ if (!config.withUnicode) {
+ tableOptions.chars = blankChars
+ }
+ const table = new Table(tableOptions)
+
+ table.push(
+ {[Utils.severityLabel(advisory.severity, config.withColor, true)]: Utils.color(advisory.title, 'bold', config.withColor)},
+ {'Package': advisory.module_name},
+ {'Dependency of': `${resolution.path.split('>')[0]} ${resolution.dev ? '[dev]' : ''}`},
+ {'Path': `${resolution.path.split('>').join(Utils.color(' > ', 'grey', config.withColor))}`},
+ {'More info': `https://nodesecurity.io/advisories/${advisory.id}`}
+ )
+
+ log(table.toString() + '\n\n')
+ })
+ }
+ if (action.action === 'review') {
+ if (!reviewFlag) {
+ const tableOptions = {
+ colWidths: [78]
+ }
+ if (!config.withUnicode) {
+ tableOptions.chars = blankChars
+ }
+ const table = new Table(tableOptions)
+ table.push([{
+ content: 'Manual Review\nSome vulnerabilities require your attention to resolve\n\nVisit https://go.npm.me/audit-guide for additional guidance',
+ vAlign: 'center',
+ hAlign: 'center'
+ }])
+
+ log(table.toString())
+ }
+ reviewFlag = true
+
+ action.resolves.forEach((resolution) => {
+ const advisory = data.advisories[resolution.id]
+ const tableOptions = {
+ colWidths: [15, 62],
+ wordWrap: true
+ }
+ if (!config.withUnicode) {
+ tableOptions.chars = blankChars
+ }
+ const table = new Table(tableOptions)
+ const patchedIn = advisory.patched_versions.replace(' ', '') === '<0.0.0' ? 'No patch available' : advisory.patched_versions
+
+ table.push(
+ {[Utils.severityLabel(advisory.severity, config.withColor, true)]: Utils.color(advisory.title, 'bold', config.withColor)},
+ {'Package': advisory.module_name},
+ {'Patched in': patchedIn},
+ {'Dependency of': `${resolution.path.split('>')[0]} ${resolution.dev ? '[dev]' : ''}`},
+ {'Path': `${resolution.path.split('>').join(Utils.color(' > ', 'grey', config.withColor))}`},
+ {'More info': `https://nodesecurity.io/advisories/${advisory.id}`}
+ )
+ log(table.toString())
+ })
+ }
+ })
+ }
+ }
+
+ actions(data, config)
+ footer(data)
+
+ return {
+ report: output.trim(),
+ exitCode: exit
+ }
+}
+
+const getRecommendation = function (action, config) {
+ if (action.action === 'install') {
+ const isDev = action.resolves[0].dev
+
+ return {
+ cmd: `npm install ${isDev ? '--save-dev ' : ''}${action.module}@${action.target}`,
+ isBreaking: action.isMajor
+ }
+ } else {
+ return {
+ cmd: `npm update ${action.module} --depth ${action.depth}`,
+ isBreaking: false
+ }
+ }
+}
+
+module.exports = report
diff --git a/deps/npm/node_modules/npm-audit-report/reporters/install.js b/deps/npm/node_modules/npm-audit-report/reporters/install.js
new file mode 100644
index 0000000000..00d3583936
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/reporters/install.js
@@ -0,0 +1,70 @@
+'use strict'
+
+const Utils = require('../lib/utils')
+
+module.exports = report
+function report (data, options) {
+ let msg = summary(data, options)
+ if (!Object.keys(data.advisories).length) {
+ return {
+ report: msg,
+ exitCode: 0
+ }
+ } else {
+ msg += '\n run `npm audit fix` to fix them, or `npm audit` for details'
+ return {
+ report: msg,
+ exitCode: 1
+ }
+ }
+}
+
+module.exports.summary = summary
+function summary (data, options) {
+ const defaults = {
+ severityThreshold: 'info'
+ }
+
+ const config = Object.assign({}, defaults, options)
+
+ function clr (str, clr) { return Utils.color(str, clr, config.withColor) }
+ function green (str) { return clr(str, 'brightGreen') }
+ function red (str) { return clr(str, 'brightRed') }
+
+ let output = ''
+
+ const log = function (value) {
+ output = output + value + '\n'
+ }
+
+ output += 'found '
+
+ if (Object.keys(data.advisories).length === 0) {
+ log(`${green('0')} vulnerabilities`)
+ return output
+ } else {
+ let total = 0
+ const sev = []
+
+ const keys = Object.keys(data.metadata.vulnerabilities)
+ for (let key of keys) {
+ const value = data.metadata.vulnerabilities[key]
+ total = total + value
+ if (value > 0) {
+ sev.push([key, value])
+ }
+ }
+
+ if (sev.length > 1) {
+ const severities = sev.map((value) => {
+ return `${value[1]} ${Utils.severityLabel(value[0], config.withColor).toLowerCase()}`
+ }).join(', ')
+ log(`${red(total)} vulnerabilities (${severities})`)
+ } else {
+ const vulnCount = sev[0][1]
+ const vulnLabel = Utils.severityLabel(sev[0][0], config.withColor).toLowerCase()
+ log(`${vulnCount} ${vulnLabel} severity vulnerabilit${vulnCount === 1 ? 'y' : 'ies'}`)
+ }
+ }
+ return output.trim()
+}
diff --git a/deps/npm/node_modules/npm-audit-report/reporters/json.js b/deps/npm/node_modules/npm-audit-report/reporters/json.js
new file mode 100644
index 0000000000..6bf5097efd
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/reporters/json.js
@@ -0,0 +1,17 @@
+'use strict'
+
+const report = function (data, options) {
+ const defaults = {
+ indent: 2
+ }
+
+ const config = Object.assign({}, defaults, options)
+
+ const json = JSON.stringify(data, null, config.indent)
+ return {
+ report: json,
+ exitCode: 0
+ }
+}
+
+module.exports = report
diff --git a/deps/npm/node_modules/npm-audit-report/reporters/quiet.js b/deps/npm/node_modules/npm-audit-report/reporters/quiet.js
new file mode 100644
index 0000000000..3a5fd5eb9b
--- /dev/null
+++ b/deps/npm/node_modules/npm-audit-report/reporters/quiet.js
@@ -0,0 +1,18 @@
+'use strict'
+
+const report = function (data, options) {
+ let total = 0
+
+ const keys = Object.keys(data.metadata.vulnerabilities)
+ for (let key of keys) {
+ const value = data.metadata.vulnerabilities[key]
+ total = total + value
+ }
+
+ return {
+ report: '',
+ exitCode: total === 0 ? 0 : 1
+ }
+}
+
+module.exports = report
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/README.md b/deps/npm/node_modules/npm-bundled/README.md
index 2974afa0e0..2974afa0e0 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/README.md
+++ b/deps/npm/node_modules/npm-bundled/README.md
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/index.js b/deps/npm/node_modules/npm-bundled/index.js
index dadd847349..dadd847349 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/index.js
+++ b/deps/npm/node_modules/npm-bundled/index.js
diff --git a/deps/npm/node_modules/npm-bundled/package.json b/deps/npm/node_modules/npm-bundled/package.json
new file mode 100644
index 0000000000..26e0e2b771
--- /dev/null
+++ b/deps/npm/node_modules/npm-bundled/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "npm-bundled@^1.0.1",
+ "_id": "npm-bundled@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==",
+ "_location": "/npm-bundled",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "npm-bundled@^1.0.1",
+ "name": "npm-bundled",
+ "escapedName": "npm-bundled",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/npm-packlist"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz",
+ "_shasum": "7e71703d973af3370a9591bafe3a63aca0be2308",
+ "_spec": "npm-bundled@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/npm-bundled/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "list things in node_modules that are bundledDependencies, or transitive dependencies thereof",
+ "devDependencies": {
+ "mkdirp": "^0.5.1",
+ "mutate-fs": "^1.1.0",
+ "rimraf": "^2.6.1",
+ "tap": "^10.3.2"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/npm/npm-bundled#readme",
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-bundled",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/npm-bundled.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js -J --100"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/npm-cache-filename/package.json b/deps/npm/node_modules/npm-cache-filename/package.json
index 289db6daa6..934fb2316d 100644
--- a/deps/npm/node_modules/npm-cache-filename/package.json
+++ b/deps/npm/node_modules/npm-cache-filename/package.json
@@ -1,39 +1,41 @@
{
- "_from": "npm-cache-filename@~1.0.2",
+ "_args": [
+ [
+ "npm-cache-filename@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-cache-filename@1.0.2",
"_id": "npm-cache-filename@1.0.2",
+ "_inBundle": false,
"_integrity": "sha1-3tMGxbC/yHCp6fr4I7xfKD4FrhE=",
"_location": "/npm-cache-filename",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "npm-cache-filename@~1.0.2",
+ "raw": "npm-cache-filename@1.0.2",
"name": "npm-cache-filename",
"escapedName": "npm-cache-filename",
- "rawSpec": "~1.0.2",
+ "rawSpec": "1.0.2",
"saveSpec": null,
- "fetchSpec": "~1.0.2"
+ "fetchSpec": "1.0.2"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/npm-cache-filename/-/npm-cache-filename-1.0.2.tgz",
- "_shasum": "ded306c5b0bfc870a9e9faf823bc5f283e05ae11",
- "_shrinkwrap": null,
- "_spec": "npm-cache-filename@~1.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/npm-cache-filename/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Given a cache folder and url, return the appropriate cache folder.",
"devDependencies": {
"tap": "^1.2.0"
@@ -42,8 +44,6 @@
"license": "ISC",
"main": "index.js",
"name": "npm-cache-filename",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/npm/npm-cache-filename.git"
diff --git a/deps/npm/node_modules/npm-install-checks/package.json b/deps/npm/node_modules/npm-install-checks/package.json
index f8f452500a..e186c6a5ad 100644
--- a/deps/npm/node_modules/npm-install-checks/package.json
+++ b/deps/npm/node_modules/npm-install-checks/package.json
@@ -1,40 +1,42 @@
{
- "_from": "npm-install-checks@~3.0.0",
+ "_args": [
+ [
+ "npm-install-checks@3.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-install-checks@3.0.0",
"_id": "npm-install-checks@3.0.0",
+ "_inBundle": false,
"_integrity": "sha1-1K7N/VGlPjcjt7L5Oy7ijjB7wNc=",
"_location": "/npm-install-checks",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "npm-install-checks@~3.0.0",
+ "raw": "npm-install-checks@3.0.0",
"name": "npm-install-checks",
"escapedName": "npm-install-checks",
- "rawSpec": "~3.0.0",
+ "rawSpec": "3.0.0",
"saveSpec": null,
- "fetchSpec": "~3.0.0"
+ "fetchSpec": "3.0.0"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-3.0.0.tgz",
- "_shasum": "d4aecdfd51a53e3723b7b2f93b2ee28e307bc0d7",
- "_shrinkwrap": null,
- "_spec": "npm-install-checks@~3.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Robert Kowalski",
"email": "rok@kowalski.gd"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/npm-install-checks/issues"
},
- "bundleDependencies": false,
"dependencies": {
"semver": "^2.3.0 || 3.x || 4 || 5"
},
- "deprecated": false,
"description": "checks that npm runs during the installation of a module",
"devDependencies": {
"mkdirp": "~0.3.5",
@@ -50,8 +52,6 @@
"license": "BSD-2-Clause",
"main": "index.js",
"name": "npm-install-checks",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/npm/npm-install-checks.git"
diff --git a/deps/npm/node_modules/npm-lifecycle/CHANGELOG.md b/deps/npm/node_modules/npm-lifecycle/CHANGELOG.md
index 84effd0a30..a30311ffb8 100644
--- a/deps/npm/node_modules/npm-lifecycle/CHANGELOG.md
+++ b/deps/npm/node_modules/npm-lifecycle/CHANGELOG.md
@@ -2,6 +2,32 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="2.0.3"></a>
+## [2.0.3](https://github.com/npm/lifecycle/compare/v2.0.2...v2.0.3) (2018-05-16)
+
+
+
+<a name="2.0.2"></a>
+## [2.0.2](https://github.com/npm/lifecycle/compare/v2.0.1...v2.0.2) (2018-05-16)
+
+
+### Bug Fixes
+
+* **hooks:** run .hooks scripts even if package.json script is not present ([#13](https://github.com/npm/lifecycle/issues/13)) ([67adc2d](https://github.com/npm/lifecycle/commit/67adc2d))
+* **windows:** Write to all possible cases of PATH variables ([#17](https://github.com/npm/lifecycle/issues/17)) ([e4ecc54](https://github.com/npm/lifecycle/commit/e4ecc54))
+
+
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/npm/lifecycle/compare/v2.0.0...v2.0.1) (2018-03-08)
+
+
+### Bug Fixes
+
+* **log:** Fix formatting of invalid wd warning ([#12](https://github.com/npm/lifecycle/issues/12)) ([ced38f3](https://github.com/npm/lifecycle/commit/ced38f3))
+
+
+
<a name="2.0.0"></a>
# [2.0.0](https://github.com/npm/lifecycle/compare/v1.0.3...v2.0.0) (2017-11-17)
diff --git a/deps/npm/node_modules/npm-lifecycle/README.md b/deps/npm/node_modules/npm-lifecycle/README.md
index d0d515c532..c81d3d7a10 100644
--- a/deps/npm/node_modules/npm-lifecycle/README.md
+++ b/deps/npm/node_modules/npm-lifecycle/README.md
@@ -1,6 +1,6 @@
-# npm-lifecycle [![npm version](https://img.shields.io/npm/v/npm-lifecycle.svg)](https://npm.im/npm-lifecycle) [![license](https://img.shields.io/npm/l/npm-lifecycle.svg)](https://npm.im/npm-lifecycle) [![Travis](https://img.shields.io/travis/npm/lifecycle.svg)](https://travis-ci.org/npm/lifecycle) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/lifecycle?svg=true)](https://ci.appveyor.com/project/npm/lifecycle) [![Coverage Status](https://coveralls.io/repos/github/npm/lifecycle/badge.svg?branch=latest)](https://coveralls.io/github/npm/lifecycle?branch=latest)
+# npm-lifecycle [![npm version](https://img.shields.io/npm/v/npm-lifecycle.svg)](https://npm.im/npm-lifecycle) [![license](https://img.shields.io/npm/l/npm-lifecycle.svg)](https://npm.im/npm-lifecycle) [![Travis](https://img.shields.io/travis/npm/npm-lifecycle/latest.svg)](https://travis-ci.org/npm/npm-lifecycle) [![AppVeyor](https://img.shields.io/appveyor/ci/npm/npm-lifecycle/latest.svg)](https://ci.appveyor.com/project/npm/npm-lifecycle) [![Coverage Status](https://coveralls.io/repos/github/npm/npm-lifecycle/badge.svg?branch=latest)](https://coveralls.io/github/npm/npm-lifecycle?branch=latest)
-[`npm-lifecycle`](https://github.com/npm/lifecycle) is a standalone library for
+[`npm-lifecycle`](https://github.com/npm/npm-lifecycle) is a standalone library for
executing packages' lifecycle scripts. It is extracted from npm itself and
intended to be fully compatible with the way npm executes individual scripts.
diff --git a/deps/npm/node_modules/npm-lifecycle/index.js b/deps/npm/node_modules/npm-lifecycle/index.js
index 040269be40..a6f76fe733 100644
--- a/deps/npm/node_modules/npm-lifecycle/index.js
+++ b/deps/npm/node_modules/npm-lifecycle/index.js
@@ -16,6 +16,7 @@ const byline = require('byline')
const resolveFrom = require('resolve-from')
const DEFAULT_NODE_GYP_PATH = resolveFrom(__dirname, 'node-gyp/bin/node-gyp')
+const hookStatCache = new Map()
let PATH = 'PATH'
@@ -33,6 +34,20 @@ function logid (pkg, stage) {
return pkg._id + '~' + stage + ':'
}
+function hookStat (dir, stage, cb) {
+ const hook = path.join(dir, '.hooks', stage)
+ const cachedStatError = hookStatCache.get(hook)
+
+ if (cachedStatError === undefined) {
+ return fs.stat(hook, function (statError) {
+ hookStatCache.set(hook, statError)
+ cb(statError)
+ })
+ }
+
+ return setImmediate(() => cb(cachedStatError))
+}
+
function lifecycle (pkg, stage, wd, opts) {
return new Promise((resolve, reject) => {
while (pkg && pkg._data) pkg = pkg._data
@@ -46,34 +61,36 @@ function lifecycle (pkg, stage, wd, opts) {
delete pkg.scripts.prepublish
}
- if (!pkg.scripts[stage]) return resolve()
+ hookStat(opts.dir, stage, function (statError) {
+ // makeEnv is a slow operation. This guard clause prevents makeEnv being called
+ // and avoids a ton of unnecessary work, and results in a major perf boost.
+ if (!pkg.scripts[stage] && statError) return resolve()
- validWd(wd || path.resolve(opts.dir, pkg.name), function (er, wd) {
- if (er) return reject(er)
-
- if ((wd.indexOf(opts.dir) !== 0 || _incorrectWorkingDirectory(wd, pkg)) &&
- !opts.unsafePerm && pkg.scripts[stage]) {
- opts.log.warn('lifecycle', logid(pkg, stage), 'cannot run in wd',
- '%s %s (wd=%s)', pkg._id, pkg.scripts[stage], wd
- )
- return resolve()
- }
-
- // set the env variables, then run scripts as a child process.
- var env = makeEnv(pkg, opts)
- env.npm_lifecycle_event = stage
- env.npm_node_execpath = env.NODE = env.NODE || process.execPath
- env.npm_execpath = require.main.filename
- env.INIT_CWD = process.cwd()
- env.npm_config_node_gyp = env.npm_config_node_gyp || DEFAULT_NODE_GYP_PATH
+ validWd(wd || path.resolve(opts.dir, pkg.name), function (er, wd) {
+ if (er) return reject(er)
- // 'nobody' typically doesn't have permission to write to /tmp
- // even if it's never used, sh freaks out.
- if (!opts.unsafePerm) env.TMPDIR = wd
+ if ((wd.indexOf(opts.dir) !== 0 || _incorrectWorkingDirectory(wd, pkg)) &&
+ !opts.unsafePerm && pkg.scripts[stage]) {
+ opts.log.warn('lifecycle', logid(pkg, stage), 'cannot run in wd', pkg._id, pkg.scripts[stage], `(wd=${wd})`)
+ return resolve()
+ }
- lifecycle_(pkg, stage, wd, opts, env, (er) => {
- if (er) return reject(er)
- return resolve()
+ // set the env variables, then run scripts as a child process.
+ var env = makeEnv(pkg, opts)
+ env.npm_lifecycle_event = stage
+ env.npm_node_execpath = env.NODE = env.NODE || process.execPath
+ env.npm_execpath = require.main.filename
+ env.INIT_CWD = process.cwd()
+ env.npm_config_node_gyp = env.npm_config_node_gyp || DEFAULT_NODE_GYP_PATH
+
+ // 'nobody' typically doesn't have permission to write to /tmp
+ // even if it's never used, sh freaks out.
+ if (!opts.unsafePerm) env.TMPDIR = wd
+
+ lifecycle_(pkg, stage, wd, opts, env, (er) => {
+ if (er) return reject(er)
+ return resolve()
+ })
})
})
})
@@ -105,6 +122,9 @@ function lifecycle_ (pkg, stage, wd, opts, env, cb) {
if (env[PATH]) pathArr.push(env[PATH])
env[PATH] = pathArr.join(process.platform === 'win32' ? ';' : ':')
+ if (process.platform === 'win32') {
+ env.path = env.PATH = env.Path = env[PATH]
+ }
var packageLifecycle = pkg.scripts && pkg.scripts.hasOwnProperty(stage)
@@ -133,8 +153,8 @@ function lifecycle_ (pkg, stage, wd, opts, env, cb) {
chain(
[
- packageLifecycle && [runPackageLifecycle, pkg, env, wd, opts],
- [runHookLifecycle, pkg, env, wd, opts]
+ packageLifecycle && [runPackageLifecycle, pkg, stage, env, wd, opts],
+ [runHookLifecycle, pkg, stage, env, wd, opts]
],
done
)
@@ -187,9 +207,8 @@ function validWd (d, cb) {
})
}
-function runPackageLifecycle (pkg, env, wd, opts, cb) {
+function runPackageLifecycle (pkg, stage, env, wd, opts, cb) {
// run package lifecycle scripts in the package root, or the nearest parent.
- var stage = env.npm_lifecycle_event
var cmd = env.npm_lifecycle_script
var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd +
@@ -331,17 +350,13 @@ function runCmd_ (cmd, pkg, env, wd, opts, stage, unsafe, uid, gid, cb_) {
}
}
-function runHookLifecycle (pkg, env, wd, opts, cb) {
- // check for a hook script, run if present.
- var stage = env.npm_lifecycle_event
- var hook = path.join(opts.dir, '.hooks', stage)
- var cmd = hook
-
- fs.stat(hook, function (er) {
+function runHookLifecycle (pkg, stage, env, wd, opts, cb) {
+ hookStat(opts.dir, stage, function (er) {
if (er) return cb()
+ var cmd = path.join(opts.dir, '.hooks', stage)
var note = '\n> ' + pkg._id + ' ' + stage + ' ' + wd +
'\n> ' + cmd
- runCmd(note, hook, pkg, env, stage, wd, opts, cb)
+ runCmd(note, cmd, pkg, env, stage, wd, opts, cb)
})
}
@@ -393,8 +408,8 @@ function makeEnv (data, opts, prefix, env) {
} else {
env[envKey] = String(data[i])
env[envKey] = env[envKey].indexOf('\n') !== -1
- ? JSON.stringify(env[envKey])
- : env[envKey]
+ ? JSON.stringify(env[envKey])
+ : env[envKey]
}
}
}
@@ -421,8 +436,8 @@ function makeEnv (data, opts, prefix, env) {
else if (typeof value !== 'string') value = JSON.stringify(value)
value = value.indexOf('\n') !== -1
- ? JSON.stringify(value)
- : value
+ ? JSON.stringify(value)
+ : value
i = i.replace(/^_+/, '')
var k
if (i.indexOf(namePref) === 0) {
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json b/deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json
deleted file mode 100644
index 172953c5a5..0000000000
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/byline/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "byline@^5.0.0",
- "_id": "byline@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-dBxSFkaOrcRXsDQQEYrXfejB3bE=",
- "_location": "/npm-lifecycle/byline",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "byline@^5.0.0",
- "name": "byline",
- "escapedName": "byline",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/npm-lifecycle"
- ],
- "_resolved": "https://registry.npmjs.org/byline/-/byline-5.0.0.tgz",
- "_shasum": "741c5216468eadc457b03410118ad77de8c1ddb1",
- "_spec": "byline@^5.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-lifecycle",
- "author": {
- "name": "John Hewson"
- },
- "bugs": {
- "url": "https://github.com/jahewson/node-byline/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "simple line-by-line stream reader",
- "devDependencies": {
- "mocha": "~2.1.0",
- "request": "~2.27.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "lib"
- ],
- "homepage": "https://github.com/jahewson/node-byline",
- "license": "MIT",
- "main": "./lib/byline.js",
- "name": "byline",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jahewson/node-byline.git"
- },
- "scripts": {
- "test": "mocha -R spec --timeout 60000"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json b/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json
deleted file mode 100644
index 15b258d6a3..0000000000
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "resolve-from@^4.0.0",
- "_id": "resolve-from@4.0.0",
- "_inBundle": false,
- "_integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "_location": "/npm-lifecycle/resolve-from",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "resolve-from@^4.0.0",
- "name": "resolve-from",
- "escapedName": "resolve-from",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/npm-lifecycle"
- ],
- "_resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "_shasum": "4abcd852ad32dd7baabfe9b40e00a36db5f392e6",
- "_spec": "resolve-from@^4.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-lifecycle",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/resolve-from/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Resolve the path of a module like `require.resolve()` but from a given path",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/resolve-from#readme",
- "keywords": [
- "require",
- "resolve",
- "path",
- "module",
- "from",
- "like",
- "import"
- ],
- "license": "MIT",
- "name": "resolve-from",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/resolve-from.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/npm-lifecycle/package.json b/deps/npm/node_modules/npm-lifecycle/package.json
index ffd5f2952f..38f2fd04c4 100644
--- a/deps/npm/node_modules/npm-lifecycle/package.json
+++ b/deps/npm/node_modules/npm-lifecycle/package.json
@@ -1,27 +1,32 @@
{
- "_from": "npm-lifecycle@latest",
- "_id": "npm-lifecycle@2.0.0",
+ "_args": [
+ [
+ "npm-lifecycle@2.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-lifecycle@2.0.3",
+ "_id": "npm-lifecycle@2.0.3",
"_inBundle": false,
- "_integrity": "sha512-aE7H012O01GKXT9BWnsGMLVci+MOgkhpSwq02ok20aXcNHxFs7enfampNMkiOV1DJEU0LynzemwdjbtXahXKcw==",
+ "_integrity": "sha512-0U4Iim5ix2NHUT672G7FBpldJX0N2xKBjJqRTAzioEJjb6I6KpQXq+y1sB5EDSjKaAX8VCC9qPK31Jy+p3ix5A==",
"_location": "/npm-lifecycle",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "npm-lifecycle@latest",
+ "raw": "npm-lifecycle@2.0.3",
"name": "npm-lifecycle",
"escapedName": "npm-lifecycle",
- "rawSpec": "latest",
+ "rawSpec": "2.0.3",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "2.0.3"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/libcipm"
],
- "_resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.0.tgz",
- "_shasum": "d66fba59e7098dbb5862df66c0d81ed75108f1c6",
- "_spec": "npm-lifecycle@latest",
+ "_resolved": "https://registry.npmjs.org/npm-lifecycle/-/npm-lifecycle-2.0.3.tgz",
+ "_spec": "2.0.3",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mike Sherov"
@@ -29,7 +34,6 @@
"bugs": {
"url": "https://github.com/npm/lifecycle/issues"
},
- "bundleDependencies": false,
"dependencies": {
"byline": "^5.0.0",
"graceful-fs": "^4.1.11",
@@ -40,14 +44,13 @@
"umask": "^1.1.0",
"which": "^1.3.0"
},
- "deprecated": false,
"description": "JavaScript package lifecycle hook runner",
"devDependencies": {
- "nyc": "^11.1.0",
+ "nyc": "^11.8.0",
"sinon": "^4.0.1",
- "standard": "^10.0.3",
- "standard-version": "^4.2.0",
- "tap": "^10.7.2",
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.5",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.8"
},
@@ -79,5 +82,5 @@
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "2.0.0"
+ "version": "2.0.3"
}
diff --git a/deps/npm/node_modules/npm-logical-tree/CHANGELOG.md b/deps/npm/node_modules/npm-logical-tree/CHANGELOG.md
new file mode 100644
index 0000000000..1a9b371161
--- /dev/null
+++ b/deps/npm/node_modules/npm-logical-tree/CHANGELOG.md
@@ -0,0 +1,46 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.2.1"></a>
+## [1.2.1](https://github.com/npm/logical-tree/compare/v1.2.0...v1.2.1) (2018-01-19)
+
+
+### Bug Fixes
+
+* **requires:** stop requiring version match -- only what require would pick up ([6388fbd](https://github.com/npm/logical-tree/commit/6388fbd))
+
+
+
+<a name="1.2.0"></a>
+# [1.2.0](https://github.com/npm/logical-tree/compare/v1.1.0...v1.2.0) (2017-10-13)
+
+
+### Bug Fixes
+
+* **json:** fix repository url ([e51448a](https://github.com/npm/logical-tree/commit/e51448a))
+
+
+### Features
+
+* **api:** additional utility functions for dealing with trees ([23f6e69](https://github.com/npm/logical-tree/commit/23f6e69))
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/npm/npm-logical-tree/compare/v1.0.0...v1.1.0) (2017-10-11)
+
+
+### Features
+
+* **requiredBy:** add requiredBy field to nodes ([c4056fb](https://github.com/npm/npm-logical-tree/commit/c4056fb))
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-10-07)
+
+
+### Features
+
+* **api:** Initial Commitā„¢ ([1025259](https://github.com/npm/npm-logical-tree/commit/1025259))
diff --git a/deps/npm/node_modules/npm-logical-tree/LICENSE.md b/deps/npm/node_modules/npm-logical-tree/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-logical-tree/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-logical-tree/README.md b/deps/npm/node_modules/npm-logical-tree/README.md
new file mode 100644
index 0000000000..33260d9f2a
--- /dev/null
+++ b/deps/npm/node_modules/npm-logical-tree/README.md
@@ -0,0 +1,147 @@
+# npm-logical-tree [![npm version](https://img.shields.io/npm/v/npm-logical-tree.svg)](https://npm.im/npm-logical-tree) [![license](https://img.shields.io/npm/l/npm-logical-tree.svg)](https://npm.im/npm-logical-tree) [![Travis](https://img.shields.io/travis/npm/logical-tree.svg)](https://travis-ci.org/npm/logical-tree) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/npm/logical-tree?svg=true)](https://ci.appveyor.com/project/npm/logical-tree) [![Coverage Status](https://coveralls.io/repos/github/npm/logical-tree/badge.svg?branch=latest)](https://coveralls.io/github/npm/logical-tree?branch=latest)
+
+[`npm-logical-tree`](https://github.com/npm/npm-logical-tree) is a Node.js
+library that takes the contents of a `package.json` and `package-lock.json` (or
+`npm-shrinkwrap.json`) and returns a nested tree data structure representing the
+logical relationships between the different dependencies.
+
+## Install
+
+`$ npm install npm-logical-tree`
+
+## Table of Contents
+
+* [Example](#example)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`logicalTree`](#logical-tree)
+ * [`logicalTree.node`](#make-node)
+ * [`tree.isRoot`](#is-root)
+ * [`tree.addDep`](#add-dep)
+ * [`tree.delDep`](#del-dep)
+ * [`tree.getDep`](#get-dep)
+ * [`tree.path`](#path)
+ * [`tree.hasCycle`](#has-cycle)
+ * [`tree.forEach`](#for-each)
+ * [`tree.forEachAsync`](#for-each-async)
+
+### Example
+
+```javascript
+const fs = require('fs')
+const logicalTree = require('npm-logical-tree')
+
+const pkg = require('./package.json')
+const pkgLock = require('./package-lock.json')
+
+logicalTree(pkg, pkgLock)
+// returns:
+LogicalTree {
+ name: 'npm-logical-tree',
+ version: '1.0.0',
+ address: null,
+ optional: false,
+ dev: false,
+ bundled: false,
+ resolved: undefined,
+ integrity: undefined,
+ requiredBy: Set { },
+ dependencies:
+ Map {
+ 'foo' => LogicalTree {
+ name: 'foo',
+ version: '1.2.3',
+ address: 'foo',
+ optional: false,
+ dev: true,
+ bundled: false,
+ resolved: 'https://registry.npmjs.org/foo/-/foo-1.2.3.tgz',
+ integrity: 'sha1-rYUK/p261/SXByi0suR/7Rw4chw=',
+ dependencies: Map { ... },
+ requiredBy: Set { ... },
+ },
+ ...
+ }
+}
+```
+
+### Contributing
+
+The npm team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of
+Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="logical-tree"></a> `> logicalTree(pkg, lock) -> LogicalTree`
+
+Calculates a logical tree based on a matching `package.json` and
+`package-lock.json` pair. A "logical tree" is a fully-nested dependency graph
+for an npm package, as opposed to a physical tree which might be flattened.
+
+`logical-tree` will represent deduplicated/flattened nodes using the same object
+throughout the tree, so duplication can be checked by object identity.
+
+##### Example
+
+```javascript
+const pkg = require('./package.json')
+const pkgLock = require('./package-lock.json')
+
+logicalTree(pkg, pkgLock)
+// returns:
+LogicalTree {
+ name: 'npm-logical-tree',
+ version: '1.0.0',
+ address: null,
+ optional: false,
+ dev: false,
+ bundled: false,
+ resolved: undefined,
+ integrity: undefined,
+ requiredBy: Set { },
+ dependencies:
+ Map {
+ 'foo' => LogicalTree {
+ name: 'foo',
+ version: '1.2.3',
+ address: 'foo',
+ optional: false,
+ dev: true,
+ bundled: false,
+ resolved: 'https://registry.npmjs.org/foo/-/foo-1.2.3.tgz',
+ integrity: 'sha1-rYUK/p261/SXByi0suR/7Rw4chw=',
+ requiredBy: Set { ... },
+ dependencies: Map { ... }
+ },
+ ...
+ }
+}
+```
+
+#### <a name="make-node"></a> `> logicalTree.node(name, [address, [opts]]) -> LogicalTree`
+
+Manually creates a new LogicalTree node.
+
+##### Options
+
+* `opts.version` - version of the node.
+* `opts.optional` - is this node an optionalDep?
+* `opts.dev` - is this node a devDep?
+* `opts.bundled` - is this bundled?
+* `opts.resolved` - resolved address.
+* `opts.integrity` - SRI string.
+
+##### Example
+```javascript
+logicalTree.node('hello', 'subpath:to:@foo/bar', {dev: true})
+```
diff --git a/deps/npm/node_modules/npm-logical-tree/index.js b/deps/npm/node_modules/npm-logical-tree/index.js
new file mode 100644
index 0000000000..10ab7599f6
--- /dev/null
+++ b/deps/npm/node_modules/npm-logical-tree/index.js
@@ -0,0 +1,192 @@
+'use strict'
+
+let path
+
+class LogicalTree {
+ constructor (name, address, opts) {
+ this.name = name
+ this.version = opts.version
+ this.address = address || ''
+ this.optional = !!opts.optional
+ this.dev = !!opts.dev
+ this.bundled = !!opts.bundled
+ this.resolved = opts.resolved
+ this.integrity = opts.integrity
+ this.dependencies = new Map()
+ this.requiredBy = new Set()
+ }
+
+ get isRoot () { return !this.requiredBy.size }
+
+ addDep (dep) {
+ this.dependencies.set(dep.name, dep)
+ dep.requiredBy.add(this)
+ return this
+ }
+
+ delDep (dep) {
+ this.dependencies.delete(dep.name)
+ dep.requiredBy.delete(this)
+ return this
+ }
+
+ getDep (name) {
+ return this.dependencies.get(name)
+ }
+
+ path (prefix) {
+ if (this.isRoot) {
+ // The address of the root is the prefix itself.
+ return prefix || ''
+ } else {
+ if (!path) { path = require('path') }
+ return path.join(
+ prefix || '',
+ 'node_modules',
+ this.address.replace(/:/g, '/node_modules/')
+ )
+ }
+ }
+
+ // This finds cycles _from_ a given node: if some deeper dep has
+ // its own cycle, but that cycle does not refer to this node,
+ // it will return false.
+ hasCycle (_seen, _from) {
+ if (!_seen) { _seen = new Set() }
+ if (!_from) { _from = this }
+ for (let dep of this.dependencies.values()) {
+ if (_seen.has(dep)) { continue }
+ _seen.add(dep)
+ if (dep === _from || dep.hasCycle(_seen, _from)) {
+ return true
+ }
+ }
+ return false
+ }
+
+ forEachAsync (fn, opts, _pending) {
+ if (!opts) { opts = _pending || {} }
+ if (!_pending) { _pending = new Map() }
+ const P = opts.Promise || Promise
+ if (_pending.has(this)) {
+ return P.resolve(this.hasCycle() || _pending.get(this))
+ }
+ const pending = P.resolve().then(() => {
+ return fn(this, () => {
+ return promiseMap(
+ this.dependencies.values(),
+ dep => dep.forEachAsync(fn, opts, _pending),
+ opts
+ )
+ })
+ })
+ _pending.set(this, pending)
+ return pending
+ }
+
+ forEach (fn, _seen) {
+ if (!_seen) { _seen = new Set() }
+ if (_seen.has(this)) { return }
+ _seen.add(this)
+ fn(this, () => {
+ for (let dep of this.dependencies.values()) {
+ dep.forEach(fn, _seen)
+ }
+ })
+ }
+}
+
+module.exports = lockTree
+function lockTree (pkg, pkgLock, opts) {
+ const tree = makeNode(pkg.name, null, pkg)
+ const allDeps = new Map()
+ Array.from(
+ new Set(Object.keys(pkg.devDependencies || {})
+ .concat(Object.keys(pkg.optionalDependencies || {}))
+ .concat(Object.keys(pkg.dependencies || {})))
+ ).forEach(name => {
+ let dep = allDeps.get(name)
+ if (!dep) {
+ const depNode = (pkgLock.dependencies || {})[name]
+ dep = makeNode(name, name, depNode)
+ }
+ addChild(dep, tree, allDeps, pkgLock)
+ })
+ return tree
+}
+
+module.exports.node = makeNode
+function makeNode (name, address, opts) {
+ return new LogicalTree(name, address, opts || {})
+}
+
+function addChild (dep, tree, allDeps, pkgLock) {
+ tree.addDep(dep)
+ allDeps.set(dep.address, dep)
+ const addr = dep.address
+ const lockNode = atAddr(pkgLock, addr)
+ Object.keys(lockNode.requires || {}).forEach(name => {
+ const tdepAddr = reqAddr(pkgLock, name, addr)
+ let tdep = allDeps.get(tdepAddr)
+ if (!tdep) {
+ tdep = makeNode(name, tdepAddr, atAddr(pkgLock, tdepAddr))
+ addChild(tdep, dep, allDeps, pkgLock)
+ } else {
+ dep.addDep(tdep)
+ }
+ })
+}
+
+module.exports._reqAddr = reqAddr
+function reqAddr (pkgLock, name, fromAddr) {
+ const lockNode = atAddr(pkgLock, fromAddr)
+ const child = (lockNode.dependencies || {})[name]
+ if (child) {
+ return `${fromAddr}:${name}`
+ } else {
+ const parts = fromAddr.split(':')
+ while (parts.length) {
+ parts.pop()
+ const joined = parts.join(':')
+ const parent = atAddr(pkgLock, joined)
+ if (parent) {
+ const child = (parent.dependencies || {})[name]
+ if (child) {
+ return `${joined}${parts.length ? ':' : ''}${name}`
+ }
+ }
+ }
+ const err = new Error(`${name} not accessible from ${fromAddr}`)
+ err.pkgLock = pkgLock
+ err.target = name
+ err.from = fromAddr
+ throw err
+ }
+}
+
+module.exports._atAddr = atAddr
+function atAddr (pkgLock, addr) {
+ if (!addr.length) { return pkgLock }
+ const parts = addr.split(':')
+ return parts.reduce((acc, next) => {
+ return acc && (acc.dependencies || {})[next]
+ }, pkgLock)
+}
+
+function promiseMap (arr, fn, opts, _index) {
+ _index = _index || 0
+ const P = (opts && opts.Promise) || Promise
+ if (P.map) {
+ return P.map(arr, fn, opts)
+ } else {
+ if (!(arr instanceof Array)) {
+ arr = Array.from(arr)
+ }
+ if (_index >= arr.length) {
+ return P.resolve()
+ } else {
+ return P.resolve(fn(arr[_index], _index, arr))
+ .then(() => promiseMap(arr, fn, opts, _index + 1))
+ }
+ }
+}
diff --git a/deps/npm/node_modules/npm-logical-tree/package.json b/deps/npm/node_modules/npm-logical-tree/package.json
new file mode 100644
index 0000000000..33e8f1d0e4
--- /dev/null
+++ b/deps/npm/node_modules/npm-logical-tree/package.json
@@ -0,0 +1,83 @@
+{
+ "_from": "npm-logical-tree@^1.2.1",
+ "_id": "npm-logical-tree@1.2.1",
+ "_inBundle": false,
+ "_integrity": "sha512-AJI/qxDB2PWI4LG1CYN579AY1vCiNyWfkiquCsJWqntRu/WwimVrC8yXeILBFHDwxfOejxewlmnvW9XXjMlYIg==",
+ "_location": "/npm-logical-tree",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "npm-logical-tree@^1.2.1",
+ "name": "npm-logical-tree",
+ "escapedName": "npm-logical-tree",
+ "rawSpec": "^1.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.1"
+ },
+ "_requiredBy": [
+ "/libcipm"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-logical-tree/-/npm-logical-tree-1.2.1.tgz",
+ "_shasum": "44610141ca24664cad35d1e607176193fd8f5b88",
+ "_spec": "npm-logical-tree@^1.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/libcipm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/logical-tree/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "contributors": [
+ {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org"
+ }
+ ],
+ "deprecated": false,
+ "description": "Calculate 'logical' trees from a package.json + package-lock",
+ "devDependencies": {
+ "bluebird": "^3.5.1",
+ "nyc": "^11.1.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.2.0",
+ "tap": "^10.7.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/npm/logical-tree#readme",
+ "keywords": [
+ "npm",
+ "package manager"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-logical-tree",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/logical-tree.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard lib test *.js",
+ "release": "standard-version -s",
+ "test": "nyc --all -- tap -J test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "1.2.1"
+}
diff --git a/deps/npm/node_modules/npm-package-arg/CHANGELOG.md b/deps/npm/node_modules/npm-package-arg/CHANGELOG.md
new file mode 100644
index 0000000000..83e5763f4f
--- /dev/null
+++ b/deps/npm/node_modules/npm-package-arg/CHANGELOG.md
@@ -0,0 +1,16 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="6.1.0"></a>
+# [6.1.0](https://github.com/npm/npm-package-arg/compare/v6.0.0...v6.1.0) (2018-04-10)
+
+
+### Bug Fixes
+
+* **git:** Fix gitRange for git+ssh for private git ([#33](https://github.com/npm/npm-package-arg/issues/33)) ([647a0b3](https://github.com/npm/npm-package-arg/commit/647a0b3))
+
+
+### Features
+
+* **alias:** add `npm:` registry alias spec ([#34](https://github.com/npm/npm-package-arg/issues/34)) ([ab99f8e](https://github.com/npm/npm-package-arg/commit/ab99f8e))
diff --git a/deps/npm/node_modules/npm-package-arg/npa.js b/deps/npm/node_modules/npm-package-arg/npa.js
index dc885b1ff1..4d56237a57 100644
--- a/deps/npm/node_modules/npm-package-arg/npa.js
+++ b/deps/npm/node_modules/npm-package-arg/npa.js
@@ -62,6 +62,8 @@ function resolve (name, spec, where, arg) {
if (spec && (isFilespec.test(spec) || /^file:/i.test(spec))) {
return fromFile(res, where)
+ } else if (spec && /^npm:/i.test(spec)) {
+ return fromAlias(res, where)
}
if (!HostedGit) HostedGit = require('hosted-git-info')
const hosted = HostedGit.fromUrl(spec, {noGitPlus: true, noCommittish: true})
@@ -231,8 +233,8 @@ function fromURL (res) {
res.type = 'git'
const match = urlparse.protocol === 'git+ssh:' && matchGitScp(res.rawSpec)
if (match) {
+ setGitCommittish(res, match.gitCommittish)
res.fetchSpec = match.fetchSpec
- res.gitCommittish = match.gitCommittish
} else {
setGitCommittish(res, urlparse.hash != null ? urlparse.hash.slice(1) : '')
urlparse.protocol = urlparse.protocol.replace(/^git[+]/, '')
@@ -253,6 +255,22 @@ function fromURL (res) {
return res
}
+function fromAlias (res, where) {
+ const subSpec = npa(res.rawSpec.substr(4), where)
+ if (subSpec.type === 'alias') {
+ throw new Error('nested aliases not supported')
+ }
+ if (!subSpec.registry) {
+ throw new Error('aliases only work for registry deps')
+ }
+ res.subSpec = subSpec
+ res.registry = true
+ res.type = 'alias'
+ res.saveSpec = null
+ res.fetchSpec = null
+ return res
+}
+
function fromRegistry (res) {
res.registry = true
const spec = res.rawSpec === '' ? 'latest' : res.rawSpec
diff --git a/deps/npm/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/npm-package-arg/package.json
index 3836885144..7bd5efeb43 100644
--- a/deps/npm/node_modules/npm-package-arg/package.json
+++ b/deps/npm/node_modules/npm-package-arg/package.json
@@ -1,28 +1,41 @@
{
- "_from": "npm-package-arg@latest",
- "_id": "npm-package-arg@6.0.0",
+ "_args": [
+ [
+ "npm-package-arg@6.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-package-arg@6.1.0",
+ "_id": "npm-package-arg@6.1.0",
"_inBundle": false,
- "_integrity": "sha512-hwC7g81KLgRmchv9ol6f3Fx4Yyc9ARX5X5niDHVILgpuvf08JRIgOZcEfpFXli3BgESoTrkauqorXm6UbvSgSg==",
+ "_integrity": "sha512-zYbhP2k9DbJhA0Z3HKUePUgdB1x7MfIfKssC+WLPFMKTBZKpZh5m13PgexJjCq6KW7j17r0jHWcCpxEqnnncSA==",
"_location": "/npm-package-arg",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "npm-package-arg@latest",
+ "raw": "npm-package-arg@6.1.0",
"name": "npm-package-arg",
"escapedName": "npm-package-arg",
- "rawSpec": "latest",
+ "rawSpec": "6.1.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "6.1.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/init-package-json",
+ "/libcipm",
+ "/libnpmhook/npm-registry-fetch",
+ "/libnpx",
+ "/lock-verify",
+ "/npm-pick-manifest",
+ "/npm-registry-client",
+ "/npm-registry-fetch",
+ "/pacote"
],
- "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.0.0.tgz",
- "_shasum": "8cce04b49d3f9faec3f56b0fe5f4391aeb9d2fac",
- "_spec": "npm-package-arg@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz",
+ "_spec": "6.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -31,18 +44,19 @@
"bugs": {
"url": "https://github.com/npm/npm-package-arg/issues"
},
- "bundleDependencies": false,
"dependencies": {
- "hosted-git-info": "^2.5.0",
- "osenv": "^0.1.4",
- "semver": "^5.4.1",
+ "hosted-git-info": "^2.6.0",
+ "osenv": "^0.1.5",
+ "semver": "^5.5.0",
"validate-npm-package-name": "^3.0.0"
},
- "deprecated": false,
"description": "Parse the things that can be arguments to `npm install`",
"devDependencies": {
- "standard": "9.0.2",
- "tap": "^10.3.0"
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.3",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
},
"directories": {
"test": "test"
@@ -59,7 +73,13 @@
"url": "git+https://github.com/npm/npm-package-arg.git"
},
"scripts": {
- "test": "standard && tap -J --coverage test/*.js"
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "6.0.0"
+ "version": "6.1.0"
}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md
deleted file mode 100644
index ad72b8133e..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,209 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instantiating the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 5b5f8cf444..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,923 +0,0 @@
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-var plTypes = {
- '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
- '?': { open: '(?:', close: ')?' },
- '+': { open: '(?:', close: ')+' },
- '*': { open: '(?:', close: ')*' },
- '@': { open: '(?:', close: ')' }
-}
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new TypeError('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- if (pattern.length > 1024 * 64) {
- throw new TypeError('pattern is too long')
- }
-
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- var pl = patternListStack.pop()
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- re += pl.close
- if (pl.type === '!') {
- negativeLists.push(pl)
- }
- pl.reEnd = re.length
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length)
- this.debug('setting tail', re, pl)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail, pl, re)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- try {
- var regExp = new RegExp('^' + re + '$', flags)
- } catch (er) {
- // If it was an invalid regular expression, then it can't match
- // anything. This trick looks for a character after the end of
- // the string, which is of course impossible, except in multi-line
- // mode, but it's not a /m regex.
- return new RegExp('$.')
- }
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md
deleted file mode 100644
index 778a1c3c1d..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# brace-expansion
-
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
-as known from sh/bash, in JavaScript.
-
-[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
-[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
-[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
-
-[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
-
-## Example
-
-```js
-var expand = require('brace-expansion');
-
-expand('file-{a,b,c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('-v{,,}')
-// => ['-v', '-v', '-v']
-
-expand('file{0..2}.jpg')
-// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
-
-expand('file-{a..c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('file{2..0}.jpg')
-// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
-
-expand('file{0..4..2}.jpg')
-// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
-
-expand('file-{a..e..2}.jpg')
-// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
-
-expand('file{00..10..5}.jpg')
-// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
-
-expand('{{A..C},{a..c}}')
-// => ['A', 'B', 'C', 'a', 'b', 'c']
-
-expand('ppp{,config,oe{,conf}}')
-// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
-```
-
-## API
-
-```js
-var expand = require('brace-expansion');
-```
-
-### var expanded = expand(str)
-
-Return an array of all possible and valid expansions of `str`. If none are
-found, `[str]` is returned.
-
-Valid expansions are:
-
-```js
-/^(.*,)+(.+)?$/
-// {a,b,...}
-```
-
-A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-A numeric sequence from `x` to `y` inclusive, with optional increment.
-If `x` or `y` start with a leading `0`, all the numbers will be padded
-to have equal length. Negative numbers and backwards iteration work too.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-An alphabetic sequence from `x` to `y` inclusive, with optional increment.
-`x` and `y` must be exactly one character, and if given, `incr` must be a
-number.
-
-For compatibility reasons, the string `${` is not eligible for brace expansion.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install brace-expansion
-```
-
-## Contributors
-
-- [Julian Gruber](https://github.com/juliangruber)
-- [Isaac Z. Schlueter](https://github.com/isaacs)
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js
deleted file mode 100644
index 2b6f4f85c9..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ /dev/null
@@ -1,200 +0,0 @@
-var concatMap = require('concat-map');
-var balanced = require('balanced-match');
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
-}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- // I don't know why Bash 4.3 does this, but it does.
- // Anything starting with {} will have the first two bytes preserved
- // but *only* at the top level, so {},a}b will not expand to anything,
- // but a{},b}c will be expanded to [a}c,abc].
- // One could argue that this is a bug in Bash, but since the goal of
- // this module is to match Bash's rules, we escape a leading {}
- if (str.substr(0, 2) === '{}') {
- str = '\\{\\}' + str.substr(2);
- }
-
- return expand(escapeBraces(str), true).map(unescapeBraces);
-}
-
-function identity(e) {
- return e;
-}
-
-function embrace(str) {
- return '{' + str + '}';
-}
-function isPadded(el) {
- return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
- return i <= y;
-}
-function gte(i, y) {
- return i >= y;
-}
-
-function expand(str, isTop) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(',') >= 0;
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*\}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
- }
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0], false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
-
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
-
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
-
- var N;
-
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) { return expand(el, false) });
- }
-
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
-
- return expansions;
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
deleted file mode 100644
index ae5d8c36ac..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-test
-.gitignore
-.travis.yml
-Makefile
-example.js
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
deleted file mode 100644
index 2cdc8e4148..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
deleted file mode 100644
index 08e918c0db..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# balanced-match
-
-Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
-
-[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
-[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
-
-[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
-
-## Example
-
-Get the first matching pair of braces:
-
-```js
-var balanced = require('balanced-match');
-
-console.log(balanced('{', '}', 'pre{in{nested}}post'));
-console.log(balanced('{', '}', 'pre{first}between{second}post'));
-console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
-```
-
-The matches are:
-
-```bash
-$ node example.js
-{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
-{ start: 3,
- end: 9,
- pre: 'pre',
- body: 'first',
- post: 'between{second}post' }
-{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
-```
-
-## API
-
-### var m = balanced(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-object with those keys:
-
-* **start** the index of the first match of `a`
-* **end** the index of the matching `b`
-* **pre** the preamble, `a` and `b` not included
-* **body** the match, `a` and `b` not included
-* **post** the postscript, `a` and `b` not included
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
-
-### var r = balanced.range(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-array with indexes: `[ <a index>, <b index> ]`.
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install balanced-match
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
deleted file mode 100644
index 1685a76293..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-module.exports = balanced;
-function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
-
- var r = range(a, b, str);
-
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
-}
-
-function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
-}
-
-balanced.range = range;
-function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
-
- if (ai >= 0 && bi > 0) {
- begs = [];
- left = str.length;
-
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [ begs.pop(), bi ];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
- }
-
- bi = str.indexOf(b, i + 1);
- }
-
- i = ai < bi && ai >= 0 ? ai : bi;
- }
-
- if (begs.length) {
- result = [ left, right ];
- }
- }
-
- return result;
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
deleted file mode 100644
index e20302146c..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "balanced-match@^1.0.0",
- "_id": "balanced-match@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "_location": "/npm-packlist/ignore-walk/minimatch/brace-expansion/balanced-match",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "balanced-match@^1.0.0",
- "name": "balanced-match",
- "escapedName": "balanced-match",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npm-packlist/ignore-walk/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
- "_spec": "balanced-match@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/balanced-match/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Match balanced character pairs, like \"{\" and \"}\"",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/balanced-match",
- "keywords": [
- "match",
- "regexp",
- "test",
- "balanced",
- "parse"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "balanced-match",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/balanced-match.git"
- },
- "scripts": {
- "bench": "make bench",
- "test": "make test"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.0.0"
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
deleted file mode 100644
index f1d0f13c8a..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
deleted file mode 100644
index 408f70a1be..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
deleted file mode 100644
index 33656217b6..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
deleted file mode 100644
index b29a7812e5..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
deleted file mode 100644
index b164c408c0..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "concat-map@0.0.1",
- "_id": "concat-map@0.0.1",
- "_inBundle": false,
- "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "_location": "/npm-packlist/ignore-walk/minimatch/brace-expansion/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": [
- "/npm-packlist/ignore-walk/minimatch/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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
deleted file mode 100644
index fdbd7022f6..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
+++ /dev/null
@@ -1,39 +0,0 @@
-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/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json
deleted file mode 100644
index 7720642bd6..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "brace-expansion@^1.1.7",
- "_id": "brace-expansion@1.1.8",
- "_inBundle": false,
- "_integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "_location": "/npm-packlist/ignore-walk/minimatch/brace-expansion",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "brace-expansion@^1.1.7",
- "name": "brace-expansion",
- "escapedName": "brace-expansion",
- "rawSpec": "^1.1.7",
- "saveSpec": null,
- "fetchSpec": "^1.1.7"
- },
- "_requiredBy": [
- "/npm-packlist/ignore-walk/minimatch"
- ],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "_shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
- "_spec": "brace-expansion@^1.1.7",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/brace-expansion/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- },
- "deprecated": false,
- "description": "Brace expansion as known from sh/bash",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/brace-expansion",
- "keywords": [],
- "license": "MIT",
- "main": "index.js",
- "name": "brace-expansion",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/brace-expansion.git"
- },
- "scripts": {
- "bench": "matcha test/perf/bench.js",
- "gentest": "bash test/generate.sh",
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.1.8"
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json
deleted file mode 100644
index ca45830ea0..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "minimatch@^3.0.4",
- "_id": "minimatch@3.0.4",
- "_inBundle": false,
- "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "_location": "/npm-packlist/ignore-walk/minimatch",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimatch@^3.0.4",
- "name": "minimatch",
- "escapedName": "minimatch",
- "rawSpec": "^3.0.4",
- "saveSpec": null,
- "fetchSpec": "^3.0.4"
- },
- "_requiredBy": [
- "/npm-packlist/ignore-walk"
- ],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
- "_spec": "minimatch@^3.0.4",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist/node_modules/ignore-walk",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minimatch/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "deprecated": false,
- "description": "a glob matcher in javascript",
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "minimatch.js"
- ],
- "homepage": "https://github.com/isaacs/minimatch#readme",
- "license": "ISC",
- "main": "minimatch.js",
- "name": "minimatch",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --cov"
- },
- "version": "3.0.4"
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json b/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json
deleted file mode 100644
index 890635b26b..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "ignore-walk@^3.0.1",
- "_id": "ignore-walk@3.0.1",
- "_inBundle": false,
- "_integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
- "_location": "/npm-packlist/ignore-walk",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ignore-walk@^3.0.1",
- "name": "ignore-walk",
- "escapedName": "ignore-walk",
- "rawSpec": "^3.0.1",
- "saveSpec": null,
- "fetchSpec": "^3.0.1"
- },
- "_requiredBy": [
- "/npm-packlist"
- ],
- "_resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
- "_shasum": "a83e62e7d272ac0e3b551aaa82831a19b69f82f8",
- "_spec": "ignore-walk@^3.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-packlist",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/ignore-walk/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "minimatch": "^3.0.4"
- },
- "deprecated": false,
- "description": "Nested/recursive `.gitignore`/`.npmignore` parsing and filtering.",
- "devDependencies": {
- "mkdirp": "^0.5.1",
- "mutate-fs": "^1.1.0",
- "rimraf": "^2.6.1",
- "tap": "^10.7.2"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/isaacs/ignore-walk#readme",
- "keywords": [
- "ignorefile",
- "ignore",
- "file",
- ".gitignore",
- ".npmignore",
- "glob"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "ignore-walk",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/ignore-walk.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --100"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json b/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json
deleted file mode 100644
index 36a9adf793..0000000000
--- a/deps/npm/node_modules/npm-packlist/node_modules/npm-bundled/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "npm-bundled@^1.0.1",
- "_id": "npm-bundled@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-ByQ3oJ/5ETLyglU2+8dBObvhfWXX8dtPZDMePCahptliFX2iIuhyEszyFk401PZUNQH20vvdW5MLjJxkwU80Ow==",
- "_location": "/npm-packlist/npm-bundled",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-bundled@^1.0.1",
- "name": "npm-bundled",
- "escapedName": "npm-bundled",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/npm-packlist"
- ],
- "_resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.3.tgz",
- "_shasum": "7e71703d973af3370a9591bafe3a63aca0be2308",
- "_spec": "npm-bundled@^1.0.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-packlist",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/npm-bundled/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "list things in node_modules that are bundledDependencies, or transitive dependencies thereof",
- "devDependencies": {
- "mkdirp": "^0.5.1",
- "mutate-fs": "^1.1.0",
- "rimraf": "^2.6.1",
- "tap": "^10.3.2"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/npm/npm-bundled#readme",
- "license": "ISC",
- "main": "index.js",
- "name": "npm-bundled",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/npm-bundled.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js -J --100"
- },
- "version": "1.0.3"
-}
diff --git a/deps/npm/node_modules/npm-packlist/package.json b/deps/npm/node_modules/npm-packlist/package.json
index f5d2e9a707..91345a435c 100644
--- a/deps/npm/node_modules/npm-packlist/package.json
+++ b/deps/npm/node_modules/npm-packlist/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "npm-packlist@1.1.10",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "npm-packlist@1.1.10",
"_id": "npm-packlist@1.1.10",
"_inBundle": false,
@@ -16,14 +22,12 @@
"fetchSpec": "1.1.10"
},
"_requiredBy": [
- "#USER",
"/",
"/pacote"
],
"_resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.10.tgz",
- "_shasum": "1039db9e985727e464df066f4cf0ab6ef85c398a",
- "_spec": "npm-packlist@1.1.10",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.1.10",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -32,12 +36,10 @@
"bugs": {
"url": "https://github.com/npm/npm-packlist/issues"
},
- "bundleDependencies": false,
"dependencies": {
"ignore-walk": "^3.0.1",
"npm-bundled": "^1.0.1"
},
- "deprecated": false,
"description": "Get a list of the files to add from a folder into an npm package",
"devDependencies": {
"mkdirp": "^0.5.1",
diff --git a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/CHANGELOG.md b/deps/npm/node_modules/npm-pick-manifest/CHANGELOG.md
index 5f53e8fce5..5f53e8fce5 100644
--- a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/CHANGELOG.md
+++ b/deps/npm/node_modules/npm-pick-manifest/CHANGELOG.md
diff --git a/deps/npm/node_modules/npm-pick-manifest/LICENSE.md b/deps/npm/node_modules/npm-pick-manifest/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-pick-manifest/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/pacote/node_modules/npm-pick-manifest/README.md b/deps/npm/node_modules/npm-pick-manifest/README.md
index 206af2f317..206af2f317 100644
--- a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/README.md
+++ b/deps/npm/node_modules/npm-pick-manifest/README.md
diff --git a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/index.js b/deps/npm/node_modules/npm-pick-manifest/index.js
index 133b627234..133b627234 100644
--- a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/index.js
+++ b/deps/npm/node_modules/npm-pick-manifest/index.js
diff --git a/deps/npm/node_modules/npm-pick-manifest/package.json b/deps/npm/node_modules/npm-pick-manifest/package.json
new file mode 100644
index 0000000000..4cf8bf1a13
--- /dev/null
+++ b/deps/npm/node_modules/npm-pick-manifest/package.json
@@ -0,0 +1,85 @@
+{
+ "_args": [
+ [
+ "npm-pick-manifest@2.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-pick-manifest@2.1.0",
+ "_id": "npm-pick-manifest@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==",
+ "_location": "/npm-pick-manifest",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "npm-pick-manifest@2.1.0",
+ "name": "npm-pick-manifest",
+ "escapedName": "npm-pick-manifest",
+ "rawSpec": "2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "2.1.0"
+ },
+ "_requiredBy": [
+ "/",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz",
+ "_spec": "2.1.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/npm-pick-manifest/issues"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "npm-package-arg": "^6.0.0",
+ "semver": "^5.4.1"
+ },
+ "description": "Resolves a matching manifest from a package metadata document according to standard npm semver resolution rules.",
+ "devDependencies": {
+ "nyc": "^11.2.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.2.0",
+ "tap": "^10.7.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/zkat/npm-pick-manifest#readme",
+ "keywords": [
+ "npm",
+ "semver",
+ "package manager"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-pick-manifest",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/npm-pick-manifest.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --100 --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/CHANGELOG.md b/deps/npm/node_modules/npm-profile/CHANGELOG.md
new file mode 100644
index 0000000000..0e461412e3
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/CHANGELOG.md
@@ -0,0 +1,28 @@
+# v3.0.1 (2018-02-18)
+
+- Log `npm-notice` headers
+
+# v3.0.0 (2018-02-18)
+
+## BREAKING CHANGES:
+
+- profile.login() and profile.adduser() take 2 functions: opener() and
+ prompter(). opener is used when we get the url couplet from the
+ registry. prompter is used if web-based login fails.
+- Non-200 status codes now always throw. Previously if the `content.error`
+ property was set, `content` would be returned. Content is available on the
+ thrown error object in the `body` property.
+
+## FEATURES:
+
+- The previous adduser is available as adduserCouch
+- The previous login is available as loginCouch
+- New loginWeb and adduserWeb commands added, which take an opener
+ function to open up the web browser.
+- General errors have better error message reporting
+
+## FIXES:
+
+- General errors now correctly include the URL.
+- Missing user errors from Couch are now thrown. (As was always intended.)
+- Many errors have better stacktrace filtering.
diff --git a/deps/npm/node_modules/npm-profile/README.md b/deps/npm/node_modules/npm-profile/README.md
index 001c551cf4..1937e23f72 100644
--- a/deps/npm/node_modules/npm-profile/README.md
+++ b/deps/npm/node_modules/npm-profile/README.md
@@ -16,7 +16,149 @@ The API that this implements is documented here:
## Functions
-### profile.adduser(username, email, password, config) ā†’ Promise
+### profile.adduser(opener, prompter, config) ā†’ Promise
+
+Tries to create a user new web based login, if that fails it falls back to
+using the legacy CouchDB APIs.
+
+* `opener` Function (url) ā†’ Promise, returns a promise that resolves after a browser has been opened for the user at `url`.
+* `prompter` Function (creds) ā†’ Promise, returns a promise that resolves to an object with `username`, `email` and `password` properties.
+* `config` Object
+ * `creds` Object, passed through to prompter, common values are:
+ * `username` String, default value for username
+ * `email` String, default value for email
+ * `registry` String (for reference, the npm registry is `https://registry.npmjs.org`)
+ * `opts` Object, [make-fetch-happen options](https://www.npmjs.com/package/make-fetch-happen#extra-options) for setting
+ things like cache, proxy, SSL CA and retry rules.
+
+#### **Promise Value**
+
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
+
+#### **Promise Rejection**
+
+An error object indicating what went wrong.
+
+The `headers` property will contain the HTTP headers of the response.
+
+If the action was denied because it came from an IP address that this action
+on this account isn't allowed from then the `code` will be set to `EAUTHIP`.
+
+Otherwise the code will be `'E'` followed by the HTTP response code, for
+example a Forbidden response would be `E403`.
+
+### profile.login(opener, prompter, config) ā†’ Promise
+
+Tries to login using new web based login, if that fails it falls back to
+using the legacy CouchDB APIs.
+
+* `opener` Function (url) ā†’ Promise, returns a promise that resolves after a browser has been opened for the user at `url`.
+* `prompter` Function (creds) ā†’ Promise, returns a promise that resolves to an object with `username`, and `password` properties.
+* `config` Object
+ * `creds` Object, passed through to prompter, common values are:
+ * `name` String, default value for username
+ * `registry` String (for reference, the npm registry is `https://registry.npmjs.org`)
+ * `auth` Object, properties: `otp`
+ the one-time password from a two-factor authentication device.
+ * `opts` Object, [make-fetch-happen options](https://www.npmjs.com/package/make-fetch-happen#extra-options) for setting
+ things like cache, proxy, SSL CA and retry rules.
+
+#### **Promise Value**
+
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
+
+#### **Promise Rejection**
+
+An error object indicating what went wrong.
+
+The `headers` property will contain the HTTP headers of the response.
+
+If the action was denied because an OTP is required then `code` will be set
+to `EOTP`. This error code can only come from a legacy CouchDB login and so
+this should be retried with loginCouch.
+
+If the action was denied because it came from an IP address that this action
+on this account isn't allowed from then the `code` will be set to `EAUTHIP`.
+
+Otherwise the code will be `'E'` followed by the HTTP response code, for
+example a Forbidden response would be `E403`.
+
+### profile.adduserWeb(opener, config) ā†’ Promise
+
+Tries to create a user new web based login, if that fails it falls back to
+using the legacy CouchDB APIs.
+
+* `opener` Function (url) ā†’ Promise, returns a promise that resolves after a browser has been opened for the user at `url`.
+* `config` Object
+ * `registry` String (for reference, the npm registry is `https://registry.npmjs.org`)
+ * `opts` Object, [make-fetch-happen options](https://www.npmjs.com/package/make-fetch-happen#extra-options) for setting
+ things like cache, proxy, SSL CA and retry rules.
+
+#### **Promise Value**
+
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
+
+#### **Promise Rejection**
+
+An error object indicating what went wrong.
+
+The `headers` property will contain the HTTP headers of the response.
+
+If the registry does not support web-login then an error will be thrown with
+its `code` property set to `ENYI` . You should retry with `adduserCouch`.
+If you use `adduser` then this fallback will be done automatically.
+
+If the action was denied because it came from an IP address that this action
+on this account isn't allowed from then the `code` will be set to `EAUTHIP`.
+
+Otherwise the code will be `'E'` followed by the HTTP response code, for
+example a Forbidden response would be `E403`.
+
+### profile.loginWeb(opener, config) ā†’ Promise
+
+Tries to login using new web based login, if that fails it falls back to
+using the legacy CouchDB APIs.
+
+* `opener` Function (url) ā†’ Promise, returns a promise that resolves after a browser has been opened for the user at `url`.
+* `config` Object
+ * `registry` String (for reference, the npm registry is `https://registry.npmjs.org`)
+ * `opts` Object, [make-fetch-happen options](https://www.npmjs.com/package/make-fetch-happen#extra-options) for setting
+ things like cache, proxy, SSL CA and retry rules.
+
+#### **Promise Value**
+
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
+
+#### **Promise Rejection**
+
+An error object indicating what went wrong.
+
+The `headers` property will contain the HTTP headers of the response.
+
+If the registry does not support web-login then an error will be thrown with
+its `code` property set to `ENYI` . You should retry with `loginCouch`.
+If you use `login` then this fallback will be done automatically.
+
+
+If the action was denied because it came from an IP address that this action
+on this account isn't allowed from then the `code` will be set to `EAUTHIP`.
+
+Otherwise the code will be `'E'` followed by the HTTP response code, for
+example a Forbidden response would be `E403`.
+
+### profile.adduserCouch(username, email, password, config) ā†’ Promise
```js
profile.adduser(username, email, password, {registry}).then(result => {
@@ -41,7 +183,10 @@ this is registry specific and not guaranteed.
#### **Promise Value**
-An object with a `token` property that can be passed into future authentication requests.
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
#### **Promise Rejection**
@@ -58,7 +203,7 @@ on this account isn't allowed from then the `code` will be set to `EAUTHIP`.
Otherwise the code will be `'E'` followed by the HTTP response code, for
example a Forbidden response would be `E403`.
-### profile.login(username, password, config) ā†’ Promise
+### profile.loginCouch(username, password, config) ā†’ Promise
```js
profile.login(username, password, {registry}).catch(err => {
@@ -88,7 +233,10 @@ future authentication. This is what you use as an `authToken` in an `.npmrc`.
#### **Promise Value**
-An object with a `token` property that can be passed into future authentication requests.
+An object with the following properties:
+
+* `token` String, to be used to authenticate further API calls
+* `username` String, the username the user authenticated as
#### **Promise Rejection**
diff --git a/deps/npm/node_modules/npm-profile/index.js b/deps/npm/node_modules/npm-profile/index.js
index 611200c5f8..f99b631e63 100644
--- a/deps/npm/node_modules/npm-profile/index.js
+++ b/deps/npm/node_modules/npm-profile/index.js
@@ -2,16 +2,123 @@
const fetch = require('make-fetch-happen').defaults({retry: false})
const validate = require('aproba')
const url = require('url')
+const os = require('os')
-exports.adduser = adduser
+exports.adduserCouch = adduserCouch
+exports.loginCouch = loginCouch
+exports.adduserWeb = adduserWeb
+exports.loginWeb = loginWeb
exports.login = login
+exports.adduser = adduser
exports.get = get
exports.set = set
exports.listTokens = listTokens
exports.removeToken = removeToken
exports.createToken = createToken
-function adduser (username, email, password, conf) {
+// try loginWeb, catch the "not supported" message and fall back to couch
+function login (opener, prompter, conf) {
+ validate('FFO', arguments)
+ return loginWeb(opener, conf).catch(er => {
+ if (er instanceof WebLoginNotSupported) {
+ process.emit('log', 'verbose', 'web login not supported, trying couch')
+ return prompter(conf.creds)
+ .then(data => loginCouch(data.username, data.password, conf))
+ } else {
+ throw er
+ }
+ })
+}
+
+function adduser (opener, prompter, conf) {
+ validate('FFO', arguments)
+ return adduserWeb(opener, conf).catch(er => {
+ if (er instanceof WebLoginNotSupported) {
+ process.emit('log', 'verbose', 'web adduser not supported, trying couch')
+ return prompter(conf.creds)
+ .then(data => adduserCouch(data.username, data.email, data.password, conf))
+ } else {
+ throw er
+ }
+ })
+}
+
+function adduserWeb (opener, conf) {
+ validate('FO', arguments)
+ const body = { create: true }
+ process.emit('log', 'verbose', 'web adduser', 'before first POST')
+ return webAuth(opener, conf, body)
+}
+
+function loginWeb (opener, conf) {
+ validate('FO', arguments)
+ process.emit('log', 'verbose', 'web login', 'before first POST')
+ return webAuth(opener, conf, {})
+}
+
+function webAuth (opener, conf, body) {
+ if (!conf.opts) conf.opts = {}
+ const target = url.resolve(conf.registry, '-/v1/login')
+ body.hostname = conf.hostname || os.hostname()
+ return fetchJSON({
+ target: target,
+ method: 'POST',
+ body: body,
+ opts: conf.opts,
+ saveResponse: true
+ }).then(result => {
+ const res = result[0]
+ const content = result[1]
+ process.emit('log', 'verbose', 'web auth', 'got response', content)
+ const doneUrl = content.doneUrl
+ const loginUrl = content.loginUrl
+ if (typeof doneUrl !== 'string' ||
+ typeof loginUrl !== 'string' ||
+ !doneUrl || !loginUrl) {
+ throw new WebLoginInvalidResponse('POST', target, res, content)
+ }
+ process.emit('log', 'verbose', 'web auth', 'opening url pair')
+ const doneConf = {
+ target: doneUrl,
+ method: 'GET',
+ opts: conf.opts,
+ saveResponse: true
+ }
+ return opener(loginUrl).then(() => fetchJSON(doneConf)).then(onDone)
+ function onDone (result) {
+ const res = result[0]
+ const content = result[1]
+ if (res.status === 200) {
+ if (!content.token) {
+ throw new WebLoginInvalidResponse('GET', doneUrl, res, content)
+ } else {
+ return content
+ }
+ } else if (res.status === 202) {
+ const retry = +res.headers.get('retry-after')
+ if (retry > 0) {
+ return new Promise(resolve => setTimeout(resolve, 1000 * retry))
+ .then(() => fetchJSON(doneConf)).then(onDone)
+ } else {
+ return fetchJSON(doneConf).then(onDone)
+ }
+ } else {
+ throw new WebLoginInvalidResponse('GET', doneUrl, res, content)
+ }
+ }
+ }).catch(er => {
+ if (er.statusCode >= 400 && er.statusCode <= 499) {
+ throw new WebLoginNotSupported('POST', target, {
+ status: er.statusCode,
+ headers: { raw: () => er.headers }
+ }, er.body)
+ } else {
+ throw er
+ }
+ })
+}
+
+function adduserCouch (username, email, password, conf) {
validate('SSSO', arguments)
if (!conf.opts) conf.opts = {}
const userobj = {
@@ -32,9 +139,13 @@ function adduser (username, email, password, conf) {
const target = url.resolve(conf.registry, '-/user/org.couchdb.user:' + encodeURIComponent(username))
return fetchJSON({target: target, method: 'PUT', body: userobj, opts: conf.opts})
+ .then(result => {
+ result.username = username
+ return result
+ })
}
-function login (username, password, conf) {
+function loginCouch (username, password, conf) {
validate('SSO', arguments)
const userobj = {
_id: 'org.couchdb.user:' + username,
@@ -52,7 +163,10 @@ function login (username, password, conf) {
const target = url.resolve(conf.registry, '-/user/org.couchdb.user:' + encodeURIComponent(username))
return fetchJSON(Object.assign({method: 'PUT', target: target, body: userobj}, conf)).catch(err => {
- if (err.code === 'E400') err.message = `There is no user with the username "${username}".`
+ if (err.code === 'E400') {
+ err.message = `There is no user with the username "${username}".`
+ throw err
+ }
if (err.code !== 'E409') throw err
return fetchJSON(Object.assign({method: 'GET', target: target + '?write=true'}, conf)).then(result => {
Object.keys(result).forEach(function (k) {
@@ -73,6 +187,9 @@ function login (username, password, conf) {
}
return fetchJSON(Object.assign({}, conf, req))
})
+ }).then(result => {
+ result.username = username
+ return result
})
}
@@ -145,37 +262,59 @@ class HttpErrorBase extends Error {
}
}
-class General extends HttpErrorBase {
+class HttpErrorGeneral extends HttpErrorBase {
+ constructor (method, target, res, body) {
+ super(method, target, res, body)
+ if (body && body.error) {
+ this.message = `Registry returned ${this.statusCode} for ${this.method} on ${this.target}: ${body.error}`
+ } else {
+ this.message = `Registry returned ${this.statusCode} for ${this.method} on ${this.target}`
+ }
+ Error.captureStackTrace(this, HttpErrorGeneral)
+ }
+}
+
+class WebLoginInvalidResponse extends HttpErrorBase {
constructor (method, target, res, body) {
super(method, target, res, body)
- this.message = `Registry returned ${this.statusCode} for ${this.method} on ${this.href}`
+ this.message = 'Invalid response from web login endpoint'
+ Error.captureStackTrace(this, WebLoginInvalidResponse)
}
}
-class AuthOTP extends HttpErrorBase {
+class WebLoginNotSupported extends HttpErrorBase {
+ constructor (method, target, res, body) {
+ super(method, target, res, body)
+ this.message = 'Web login not supported'
+ this.code = 'ENYI'
+ Error.captureStackTrace(this, WebLoginNotSupported)
+ }
+}
+
+class HttpErrorAuthOTP extends HttpErrorBase {
constructor (method, target, res, body) {
super(method, target, res, body)
this.message = 'OTP required for authentication'
this.code = 'EOTP'
- Error.captureStackTrace(this, AuthOTP)
+ Error.captureStackTrace(this, HttpErrorAuthOTP)
}
}
-class AuthIPAddress extends HttpErrorBase {
- constructor (res, body) {
+class HttpErrorAuthIPAddress extends HttpErrorBase {
+ constructor (method, target, res, body) {
super(method, target, res, body)
this.message = 'Login is not allowed from your IP address'
this.code = 'EAUTHIP'
- Error.captureStackTrace(this, AuthIPAddress)
+ Error.captureStackTrace(this, HttpErrorAuthIPAddress)
}
}
-class AuthUnknown extends HttpErrorBase {
+class HttpErrorAuthUnknown extends HttpErrorBase {
constructor (method, target, res, body) {
super(method, target, res, body)
this.message = 'Unable to authenticate, need: ' + res.headers.get('www-authenticate')
this.code = 'EAUTHIP'
- Error.captureStackTrace(this, AuthIPAddress)
+ Error.captureStackTrace(this, HttpErrorAuthUnknown)
}
}
@@ -201,10 +340,13 @@ function fetchJSON (conf) {
fetchOpts.headers['Content-Type'] = 'application/json'
fetchOpts.body = JSON.stringify(conf.body)
}
- process.emit('log', 'http', 'request', 'ā†’',conf.method || 'GET', conf.target)
+ process.emit('log', 'http', 'request', 'ā†’', conf.method || 'GET', conf.target)
return fetch.defaults(conf.opts || {})(conf.target, fetchOpts).catch(err => {
throw new FetchError(err, conf.method, conf.target)
}).then(res => {
+ if (res.headers.has('npm-notice')) {
+ process.emit('warn', 'notice', res.headers.get('npm-notice'))
+ }
if (res.headers.get('content-type') === 'application/json') {
return res.json().then(content => [res, content])
} else {
@@ -219,24 +361,21 @@ function fetchJSON (conf) {
}).then(result => {
const res = result[0]
const content = result[1]
+ const retVal = conf.saveResponse ? result : content
process.emit('log', 'http', res.status, `ā† ${res.statusText} (${conf.target})`)
if (res.status === 401 && res.headers.get('www-authenticate')) {
const auth = res.headers.get('www-authenticate').split(/,\s*/).map(s => s.toLowerCase())
if (auth.indexOf('ipaddress') !== -1) {
- throw new AuthIPAddress(conf.method, conf.target, res, content)
+ throw new HttpErrorAuthIPAddress(conf.method, conf.target, res, content)
} else if (auth.indexOf('otp') !== -1) {
- throw new AuthOTP(conf.method, conf.target, res, content)
+ throw new HttpErrorAuthOTP(conf.method, conf.target, res, content)
} else {
- throw new AuthUnknown(conf.method, conf.target, res, content)
+ throw new HttpErrorAuthUnknown(conf.method, conf.target, res, content)
}
} else if (res.status < 200 || res.status >= 300) {
- if (typeof content === 'object' && content.error) {
- return content
- } else {
- throw new General(conf.method, conf.target, res, content)
- }
+ throw new HttpErrorGeneral(conf.method, conf.target, res, content)
} else {
- return content
+ return retVal
}
})
}
@@ -257,4 +396,4 @@ function packageName (href) {
} catch (_) {
// this is ok
}
-} \ No newline at end of file
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/CHANGELOG.md
new file mode 100644
index 0000000000..5c3e7911db
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/CHANGELOG.md
@@ -0,0 +1,478 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="10.0.4"></a>
+## [10.0.4](https://github.com/zkat/cacache/compare/v10.0.3...v10.0.4) (2018-02-16)
+
+
+
+<a name="10.0.3"></a>
+## [10.0.3](https://github.com/zkat/cacache/compare/v10.0.2...v10.0.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/zkat/cacache/commit/fa918f5))
+
+
+
+<a name="10.0.2"></a>
+## [10.0.2](https://github.com/zkat/cacache/compare/v10.0.1...v10.0.2) (2018-01-07)
+
+
+### Bug Fixes
+
+* **ls:** deleted entries could cause a premature stream EOF ([347dc36](https://github.com/zkat/cacache/commit/347dc36))
+
+
+
+<a name="10.0.1"></a>
+## [10.0.1](https://github.com/zkat/cacache/compare/v10.0.0...v10.0.1) (2017-11-15)
+
+
+### Bug Fixes
+
+* **move-file:** actually use the fallback to `move-concurrently` (#110) ([073fbe1](https://github.com/zkat/cacache/commit/073fbe1))
+
+
+
+<a name="10.0.0"></a>
+# [10.0.0](https://github.com/zkat/cacache/compare/v9.3.0...v10.0.0) (2017-10-23)
+
+
+### Features
+
+* **license:** relicense to ISC (#111) ([fdbb4e5](https://github.com/zkat/cacache/commit/fdbb4e5))
+
+
+### Performance Improvements
+
+* more copyFile benchmarks ([63787bb](https://github.com/zkat/cacache/commit/63787bb))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+
+
+
+<a name="9.3.0"></a>
+# [9.3.0](https://github.com/zkat/cacache/compare/v9.2.9...v9.3.0) (2017-10-07)
+
+
+### Features
+
+* **copy:** added cacache.get.copy api for fast copies (#107) ([067b5f6](https://github.com/zkat/cacache/commit/067b5f6))
+
+
+
+<a name="9.2.9"></a>
+## [9.2.9](https://github.com/zkat/cacache/compare/v9.2.8...v9.2.9) (2017-06-17)
+
+
+
+<a name="9.2.8"></a>
+## [9.2.8](https://github.com/zkat/cacache/compare/v9.2.7...v9.2.8) (2017-06-05)
+
+
+### Bug Fixes
+
+* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/zkat/cacache/commit/c3232ea))
+
+
+
+<a name="9.2.7"></a>
+## [9.2.7](https://github.com/zkat/cacache/compare/v9.2.6...v9.2.7) (2017-06-05)
+
+
+### Bug Fixes
+
+* **content:** make verified content completely read-only (#96) ([4131196](https://github.com/zkat/cacache/commit/4131196))
+
+
+
+<a name="9.2.6"></a>
+## [9.2.6](https://github.com/zkat/cacache/compare/v9.2.5...v9.2.6) (2017-05-31)
+
+
+### Bug Fixes
+
+* **node:** update ssri to prevent old node 4 crash ([5209ffe](https://github.com/zkat/cacache/commit/5209ffe))
+
+
+
+<a name="9.2.5"></a>
+## [9.2.5](https://github.com/zkat/cacache/compare/v9.2.4...v9.2.5) (2017-05-25)
+
+
+### Bug Fixes
+
+* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/zkat/cacache/commit/84e1d7e))
+
+
+
+<a name="9.2.4"></a>
+## [9.2.4](https://github.com/zkat/cacache/compare/v9.2.3...v9.2.4) (2017-05-24)
+
+
+### Bug Fixes
+
+* **deps:** bumping deps ([bbccb12](https://github.com/zkat/cacache/commit/bbccb12))
+
+
+
+<a name="9.2.3"></a>
+## [9.2.3](https://github.com/zkat/cacache/compare/v9.2.2...v9.2.3) (2017-05-24)
+
+
+### Bug Fixes
+
+* **rm:** stop crashing if content is missing on rm ([ac90bc0](https://github.com/zkat/cacache/commit/ac90bc0))
+
+
+
+<a name="9.2.2"></a>
+## [9.2.2](https://github.com/zkat/cacache/compare/v9.2.1...v9.2.2) (2017-05-14)
+
+
+### Bug Fixes
+
+* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/zkat/cacache/commit/519b4ee))
+
+
+
+<a name="9.2.1"></a>
+## [9.2.1](https://github.com/zkat/cacache/compare/v9.2.0...v9.2.1) (2017-05-14)
+
+
+### Bug Fixes
+
+* **docs:** fixing translation messup ([bb9e4f9](https://github.com/zkat/cacache/commit/bb9e4f9))
+
+
+
+<a name="9.2.0"></a>
+# [9.2.0](https://github.com/zkat/cacache/compare/v9.1.0...v9.2.0) (2017-05-14)
+
+
+### Features
+
+* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/zkat/cacache/commit/531f9a4))
+
+
+
+<a name="9.1.0"></a>
+# [9.1.0](https://github.com/zkat/cacache/compare/v9.0.0...v9.1.0) (2017-05-14)
+
+
+### Features
+
+* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/zkat/cacache/commit/323b90c))
+
+
+
+<a name="9.0.0"></a>
+# [9.0.0](https://github.com/zkat/cacache/compare/v8.0.0...v9.0.0) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoization:** actually use the LRU ([0e55dc9](https://github.com/zkat/cacache/commit/0e55dc9))
+
+
+### Features
+
+* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/zkat/cacache/commit/e5614c7))
+
+
+### BREAKING CHANGES
+
+* **memoization:** If you were passing an object to opts.memoize, it will now be used as an injected memoization object. If you were only passing booleans and other non-objects through that option, no changes are needed.
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/zkat/cacache/compare/v7.1.0...v8.0.0) (2017-04-22)
+
+
+### Features
+
+* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/zkat/cacache/commit/bad6c49)), closes [#87](https://github.com/zkat/cacache/issues/87)
+
+
+### BREAKING CHANGES
+
+* **read:** hasContent now returns an object with `{sri, size}` instead of `sri`. Use `result.sri` anywhere that needed the old return value.
+
+
+
+<a name="7.1.0"></a>
+# [7.1.0](https://github.com/zkat/cacache/compare/v7.0.5...v7.1.0) (2017-04-20)
+
+
+### Features
+
+* **size:** handle content size info (#49) ([91230af](https://github.com/zkat/cacache/commit/91230af))
+
+
+
+<a name="7.0.5"></a>
+## [7.0.5](https://github.com/zkat/cacache/compare/v7.0.4...v7.0.5) (2017-04-18)
+
+
+### Bug Fixes
+
+* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/zkat/cacache/commit/6d13e8e))
+* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/zkat/cacache/commit/3624fc5))
+
+
+
+<a name="7.0.4"></a>
+## [7.0.4](https://github.com/zkat/cacache/compare/v7.0.3...v7.0.4) (2017-04-15)
+
+
+### Bug Fixes
+
+* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/zkat/cacache/commit/d49bbcd))
+
+
+
+<a name="7.0.3"></a>
+## [7.0.3](https://github.com/zkat/cacache/compare/v7.0.2...v7.0.3) (2017-04-05)
+
+
+### Bug Fixes
+
+* **read:** fixing error message for integrity verification failures ([9d4f0a5](https://github.com/zkat/cacache/commit/9d4f0a5))
+
+
+
+<a name="7.0.2"></a>
+## [7.0.2](https://github.com/zkat/cacache/compare/v7.0.1...v7.0.2) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** use EINTEGRITY error code and update ssri ([8dc2e62](https://github.com/zkat/cacache/commit/8dc2e62))
+
+
+
+<a name="7.0.1"></a>
+## [7.0.1](https://github.com/zkat/cacache/compare/v7.0.0...v7.0.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **docs:** fix header name conflict in readme ([afcd456](https://github.com/zkat/cacache/commit/afcd456))
+
+
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/zkat/cacache/compare/v6.3.0...v7.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **test:** fix content.write tests when running in docker ([d2e9b6a](https://github.com/zkat/cacache/commit/d2e9b6a))
+
+
+### Features
+
+* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/zkat/cacache/commit/b1e731f))
+
+
+### BREAKING CHANGES
+
+* **integrity:** The entire API has been overhauled to use SRI hashes instead of digest/hashAlgorithm pairs. SRI hashes follow the Subresource Integrity standard and support strings and objects compatible with [`ssri`](https://npm.im/ssri).
+
+* This change bumps the index version, which will invalidate all previous index entries. Content entries will remain intact, and existing caches will automatically reuse any content from before this breaking change.
+
+* `cacache.get.info()`, `cacache.ls()`, and `cacache.ls.stream()` will now return objects that looks like this:
+
+```
+{
+ key: String,
+ integrity: '<algorithm>-<base64hash>',
+ path: ContentPath,
+ time: Date<ms>,
+ metadata: Any
+}
+```
+
+* `opts.digest` and `opts.hashAlgorithm` are obsolete for any API calls that used them.
+
+* Anywhere `opts.digest` was accepted, `opts.integrity` is now an option. Any valid SRI hash is accepted here -- multiple hash entries will be resolved according to the standard: first, the "strongest" hash algorithm will be picked, and then each of the entries for that algorithm will be matched against the content. Content will be validated if *any* of the entries match (so, a single integrity string can be used for multiple "versions" of the same document/data).
+
+* `put.byDigest()`, `put.stream.byDigest`, `get.byDigest()` and `get.stream.byDigest()` now expect an SRI instead of a `digest` + `opts.hashAlgorithm` pairing.
+
+* `get.hasContent()` now expects an integrity hash instead of a digest. If content exists, it will return the specific single integrity hash that was found in the cache.
+
+* `verify()` has learned to handle integrity-based caches, and forgotten how to handle old-style cache indices due to the format change.
+
+* `cacache.rm.content()` now expects an integrity hash instead of a hex digest.
+
+
+
+<a name="6.3.0"></a>
+# [6.3.0](https://github.com/zkat/cacache/compare/v6.2.0...v6.3.0) (2017-04-01)
+
+
+### Bug Fixes
+
+* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/zkat/cacache/commit/4670e9b))
+* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/zkat/cacache/commit/b9d2fa2))
+* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/zkat/cacache/commit/d8ac5aa))
+
+
+### Features
+
+* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/zkat/cacache/commit/dc6482d))
+
+
+
+<a name="6.2.0"></a>
+# [6.2.0](https://github.com/zkat/cacache/compare/v6.1.2...v6.2.0) (2017-03-15)
+
+
+### Bug Fixes
+
+* **index:** additional bucket entry verification with checksum (#72) ([f8e0f25](https://github.com/zkat/cacache/commit/f8e0f25))
+* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/zkat/cacache/commit/6818521))
+
+
+### Features
+
+* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/zkat/cacache/commit/c42da71))
+
+
+
+<a name="6.1.2"></a>
+## [6.1.2](https://github.com/zkat/cacache/compare/v6.1.1...v6.1.2) (2017-03-13)
+
+
+### Bug Fixes
+
+* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/zkat/cacache/commit/d6eb2f0))
+
+
+
+<a name="6.1.1"></a>
+## [6.1.1](https://github.com/zkat/cacache/compare/v6.1.0...v6.1.1) (2017-03-13)
+
+
+### Bug Fixes
+
+* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/zkat/cacache/commit/0b7faf6))
+* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/zkat/cacache/commit/0640bc4))
+
+
+
+<a name="6.1.0"></a>
+# [6.1.0](https://github.com/zkat/cacache/compare/v6.0.2...v6.1.0) (2017-03-12)
+
+
+### Bug Fixes
+
+* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/zkat/cacache/commit/ef4f70a))
+* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/zkat/cacache/commit/6ab8132))
+
+
+### Features
+
+* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/zkat/cacache/commit/d5d25ba)), closes [#66](https://github.com/zkat/cacache/issues/66)
+* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/zkat/cacache/commit/45ad77a))
+
+
+
+<a name="6.0.2"></a>
+## [6.0.2](https://github.com/zkat/cacache/compare/v6.0.1...v6.0.2) (2017-03-11)
+
+
+### Bug Fixes
+
+* **index:** segment cache items with another subbucket (#64) ([c3644e5](https://github.com/zkat/cacache/commit/c3644e5))
+
+
+
+<a name="6.0.1"></a>
+## [6.0.1](https://github.com/zkat/cacache/compare/v6.0.0...v6.0.1) (2017-03-05)
+
+
+### Bug Fixes
+
+* **docs:** Missed spots in README ([8ffb7fa](https://github.com/zkat/cacache/commit/8ffb7fa))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/zkat/cacache/compare/v5.0.3...v6.0.0) (2017-03-05)
+
+
+### Bug Fixes
+
+* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/zkat/cacache/commit/2f72d0a))
+* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/zkat/cacache/commit/fa8f3c3))
+* **deps:** removed `format-number[@2](https://github.com/2).0.2` ([1187791](https://github.com/zkat/cacache/commit/1187791))
+* **deps:** removed inflight[@1](https://github.com/1).0.6 ([0d1819c](https://github.com/zkat/cacache/commit/0d1819c))
+* **deps:** rimraf[@2](https://github.com/2).6.1 ([9efab6b](https://github.com/zkat/cacache/commit/9efab6b))
+* **deps:** standard[@9](https://github.com/9).0.0 ([4202cba](https://github.com/zkat/cacache/commit/4202cba))
+* **deps:** tap[@10](https://github.com/10).3.0 ([aa03088](https://github.com/zkat/cacache/commit/aa03088))
+* **deps:** weallcontribute[@1](https://github.com/1).0.8 ([ad4f4dc](https://github.com/zkat/cacache/commit/ad4f4dc))
+* **docs:** add security note to hashKey ([03f81ba](https://github.com/zkat/cacache/commit/03f81ba))
+* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/zkat/cacache/commit/ea00ba6))
+* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/zkat/cacache/commit/45997d8))
+* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/zkat/cacache/commit/fb8cb4d))
+* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/zkat/cacache/commit/bbc5fca))
+* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/zkat/cacache/commit/b1d3888))
+* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/zkat/cacache/commit/d26cdf9))
+* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/zkat/cacache/commit/79a8891))
+* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/zkat/cacache/commit/65f6632))
+* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/zkat/cacache/commit/daf9e08))
+* **put-stream:** use new promise API for moves ([1d36013](https://github.com/zkat/cacache/commit/1d36013))
+* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/zkat/cacache/commit/c60a2fa))
+* **verify:** tiny typo fix ([db22d05](https://github.com/zkat/cacache/commit/db22d05))
+
+
+### Features
+
+* **api:** converted external api ([7bf032f](https://github.com/zkat/cacache/commit/7bf032f))
+* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/zkat/cacache/commit/8d2c5b6))
+* **cache:** add versioning to content and index ([31bc549](https://github.com/zkat/cacache/commit/31bc549))
+* **content:** collate content files into subdirs ([c094d9f](https://github.com/zkat/cacache/commit/c094d9f))
+* **deps:** [@npmcorp](https://github.com/npmcorp)/move[@1](https://github.com/1).0.0 ([bdd00bf](https://github.com/zkat/cacache/commit/bdd00bf))
+* **deps:** bluebird[@3](https://github.com/3).4.7 ([3a17aff](https://github.com/zkat/cacache/commit/3a17aff))
+* **deps:** promise-inflight[@1](https://github.com/1).0.1 ([a004fe6](https://github.com/zkat/cacache/commit/a004fe6))
+* **get:** added memoization support for get ([c77d794](https://github.com/zkat/cacache/commit/c77d794))
+* **get:** export hasContent ([2956ec3](https://github.com/zkat/cacache/commit/2956ec3))
+* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/zkat/cacache/commit/b639746))
+* **index:** collate index files into subdirs ([e8402a5](https://github.com/zkat/cacache/commit/e8402a5))
+* **index:** promisify entry index ([cda3335](https://github.com/zkat/cacache/commit/cda3335))
+* **memo:** added memoization lib ([da07b92](https://github.com/zkat/cacache/commit/da07b92))
+* **memo:** export memoization api ([954b1b3](https://github.com/zkat/cacache/commit/954b1b3))
+* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/zkat/cacache/commit/5cf4616))
+* **perf:** bulk content write api ([51b536e](https://github.com/zkat/cacache/commit/51b536e))
+* **put:** added memoization support to put ([b613a70](https://github.com/zkat/cacache/commit/b613a70))
+* **read:** switched to promises ([a869362](https://github.com/zkat/cacache/commit/a869362))
+* **rm:** added memoization support to rm ([4205cf0](https://github.com/zkat/cacache/commit/4205cf0))
+* **rm:** switched to promises ([a000d24](https://github.com/zkat/cacache/commit/a000d24))
+* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/zkat/cacache/commit/9517cd7))
+* **util:** use promises for api ([ae204bb](https://github.com/zkat/cacache/commit/ae204bb))
+* **verify:** converted to Promises ([f0b3974](https://github.com/zkat/cacache/commit/f0b3974))
+
+
+### BREAKING CHANGES
+
+* cache: index/content directories are now versioned. Previous caches are no longer compatible and cannot be migrated.
+* util: fix-owner now uses Promises instead of callbacks
+* index: Previously-generated index entries are no longer compatible and the index must be regenerated.
+* index: The index format has changed and previous caches are no longer compatible. Existing caches will need to be regenerated.
+* hashes: Default hashAlgorithm changed from sha1 to sha512. If you
+rely on the prior setting, pass `opts.hashAlgorithm` in explicitly.
+* content: Previously-generated content directories are no longer compatible
+and must be regenerated.
+* verify: API is now promise-based
+* read: Switches to a Promise-based API and removes callback stuff
+* rm: Switches to a Promise-based API and removes callback stuff
+* index: this changes the API to work off promises instead of callbacks
+* api: this means we are going all in on promises now
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/LICENSE.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.es.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/README.es.md
index 783a0a19b0..783a0a19b0 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.es.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/README.es.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/README.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/README.md
new file mode 100644
index 0000000000..4b284588a6
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/README.md
@@ -0,0 +1,624 @@
+# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest)
+
+[`cacache`](https://github.com/zkat/cacache) is a Node.js library for managing
+local key and content address caches. It's really fast, really good at
+concurrency, and it will never give you corrupted data, even if cache files
+get corrupted or manipulated.
+
+It was originally written to be used as [npm](https://npm.im)'s local cache, but
+can just as easily be used on its own.
+
+_Translations: [espaƱol](README.es.md)_
+
+## Install
+
+`$ npm install --save cacache`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * [Using localized APIs](#localized-api)
+ * Reading
+ * [`ls`](#ls)
+ * [`ls.stream`](#ls-stream)
+ * [`get`](#get-data)
+ * [`get.stream`](#get-stream)
+ * [`get.info`](#get-info)
+ * [`get.hasContent`](#get-hasContent)
+ * Writing
+ * [`put`](#put-data)
+ * [`put.stream`](#put-stream)
+ * [`put*` opts](#put-options)
+ * [`rm.all`](#rm-all)
+ * [`rm.entry`](#rm-entry)
+ * [`rm.content`](#rm-content)
+ * Utilities
+ * [`setLocale`](#set-locale)
+ * [`clearMemoized`](#clear-memoized)
+ * [`tmp.mkdir`](#tmp-mkdir)
+ * [`tmp.withTmp`](#with-tmp)
+ * Integrity
+ * [Subresource Integrity](#integrity)
+ * [`verify`](#verify)
+ * [`verify.lastRun`](#verify-last-run)
+
+### Example
+
+```javascript
+const cacache = require('cacache/en')
+const fs = require('fs')
+
+const tarball = '/path/to/mytar.tgz'
+const cachePath = '/tmp/my-toy-cache'
+const key = 'my-unique-key-1234'
+
+// Cache it! Use `cachePath` as the root of the content cache
+cacache.put(cachePath, key, '10293801983029384').then(integrity => {
+ console.log(`Saved content to ${cachePath}.`)
+})
+
+const destination = '/tmp/mytar.tgz'
+
+// Copy the contents out of the cache and into their destination!
+// But this time, use stream instead!
+cacache.get.stream(
+ cachePath, key
+).pipe(
+ fs.createWriteStream(destination)
+).on('finish', () => {
+ console.log('done extracting!')
+})
+
+// The same thing, but skip the key index.
+cacache.get.byDigest(cachePath, integrityHash).then(data => {
+ fs.writeFile(destination, data, err => {
+ console.log('tarball data fetched based on its sha512sum and written out!')
+ })
+})
+```
+
+### Features
+
+* Extraction by key or by content address (shasum, etc)
+* [Subresource Integrity](#integrity) web standard support
+* Multi-hash support - safely host sha1, sha512, etc, in a single cache
+* Automatic content deduplication
+* Fault tolerance (immune to corruption, partial writes, process races, etc)
+* Consistency guarantees on read and write (full data verification)
+* Lockless, high-concurrency cache access
+* Streaming support
+* Promise support
+* Pretty darn fast -- sub-millisecond reads and writes including verification
+* Arbitrary metadata storage
+* Garbage collection and additional offline verification
+* Thorough test coverage
+* There's probably a bloom filter in there somewhere. Those are cool, right? šŸ¤”
+
+### Contributing
+
+The cacache team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="localized-api"></a> Using localized APIs
+
+cacache includes a complete API in English, with the same features as other
+translations. To use the English API as documented in this README, use
+`require('cacache/en')`. This is also currently the default if you do
+`require('cacache')`, but may change in the future.
+
+cacache also supports other languages! You can find the list of currently
+supported ones by looking in `./locales` in the source directory. You can use
+the API in that language with `require('cacache/<lang>')`.
+
+Want to add support for a new language? Please go ahead! You should be able to
+copy `./locales/en.js` and `./locales/en.json` and fill them in. Translating the
+`README.md` is a bit more work, but also appreciated if you get around to it. šŸ‘šŸ¼
+
+#### <a name="ls"></a> `> cacache.ls(cache) -> Promise<Object>`
+
+Lists info for all entries currently in the cache as a single large object. Each
+entry in the object will be keyed by the unique index key, with corresponding
+[`get.info`](#get-info) objects as the values.
+
+##### Example
+
+```javascript
+cacache.ls(cachePath).then(console.log)
+// Output
+{
+ 'my-thing': {
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64/EnCoDED+HAsh=='
+ path: '.testcache/content/deadbeef', // joined with `cachePath`
+ time: 12345698490,
+ size: 4023948,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+ },
+ 'other-thing': {
+ key: 'other-thing',
+ integrity: 'sha1-ANothER+hasH=',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 111112
+ }
+}
+```
+
+#### <a name="ls-stream"></a> `> cacache.ls.stream(cache) -> Readable`
+
+Lists info for all entries currently in the cache as a single large object.
+
+This works just like [`ls`](#ls), except [`get.info`](#get-info) entries are
+returned as `'data'` events on the returned stream.
+
+##### Example
+
+```javascript
+cacache.ls.stream(cachePath).on('data', console.log)
+// Output
+{
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64HaSh',
+ path: '.testcache/content/deadbeef', // joined with `cachePath`
+ time: 12345698490,
+ size: 13423,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+
+{
+ key: 'other-thing',
+ integrity: 'whirlpool-WoWSoMuchSupport',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 498023984029
+}
+
+{
+ ...
+}
+```
+
+#### <a name="get-data"></a> `> cacache.get(cache, key, [opts]) -> Promise({data, metadata, integrity})`
+
+Returns an object with the cached data, digest, and metadata identified by
+`key`. The `data` property of this object will be a `Buffer` instance that
+presumably holds some data that means something to you. I'm sure you know what
+to do with it! cacache just won't care.
+
+`integrity` is a [Subresource
+Integrity](#integrity)
+string. That is, a string that can be used to verify `data`, which looks like
+`<hash-algorithm>-<base64-integrity-hash>`.
+
+If there is no content identified by `key`, or if the locally-stored data does
+not pass the validity checksum, the promise will be rejected.
+
+A sub-function, `get.byDigest` may be used for identical behavior, except lookup
+will happen by integrity hash, bypassing the index entirely. This version of the
+function *only* returns `data` itself, without any wrapper.
+
+##### Note
+
+This function loads the entire cache entry into memory before returning it. If
+you're dealing with Very Large data, consider using [`get.stream`](#get-stream)
+instead.
+
+##### Example
+
+```javascript
+// Look up by key
+cache.get(cachePath, 'my-thing').then(console.log)
+// Output:
+{
+ metadata: {
+ thingName: 'my'
+ },
+ integrity: 'sha512-BaSe64HaSh',
+ data: Buffer#<deadbeef>,
+ size: 9320
+}
+
+// Look up by digest
+cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log)
+// Output:
+Buffer#<deadbeef>
+```
+
+#### <a name="get-stream"></a> `> cacache.get.stream(cache, key, [opts]) -> Readable`
+
+Returns a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) of the cached data identified by `key`.
+
+If there is no content identified by `key`, or if the locally-stored data does
+not pass the validity checksum, an error will be emitted.
+
+`metadata` and `integrity` events will be emitted before the stream closes, if
+you need to collect that extra data about the cached entry.
+
+A sub-function, `get.stream.byDigest` may be used for identical behavior,
+except lookup will happen by integrity hash, bypassing the index entirely. This
+version does not emit the `metadata` and `integrity` events at all.
+
+##### Example
+
+```javascript
+// Look up by key
+cache.get.stream(
+ cachePath, 'my-thing'
+).on('metadata', metadata => {
+ console.log('metadata:', metadata)
+}).on('integrity', integrity => {
+ console.log('integrity:', integrity)
+}).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+// Outputs:
+metadata: { ... }
+integrity: 'sha512-SoMeDIGest+64=='
+
+// Look up by digest
+cache.get.stream.byDigest(
+ cachePath, 'sha512-SoMeDIGest+64=='
+).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+```
+
+#### <a name="get-info"></a> `> cacache.get.info(cache, key) -> Promise`
+
+Looks up `key` in the cache index, returning information about the entry if
+one exists.
+
+##### Fields
+
+* `key` - Key the entry was looked up under. Matches the `key` argument.
+* `integrity` - [Subresource Integrity hash](#integrity) for the content this entry refers to.
+* `path` - Filesystem path relative to `cache` argument where content is stored.
+* `time` - Timestamp the entry was first added on.
+* `metadata` - User-assigned metadata associated with the entry/content.
+
+##### Example
+
+```javascript
+cacache.get.info(cachePath, 'my-thing').then(console.log)
+
+// Output
+{
+ key: 'my-thing',
+ integrity: 'sha256-MUSTVERIFY+ALL/THINGS=='
+ path: '.testcache/content/deadbeef',
+ time: 12345698490,
+ size: 849234,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+```
+
+#### <a name="get-hasContent"></a> `> cacache.get.hasContent(cache, integrity) -> Promise`
+
+Looks up a [Subresource Integrity hash](#integrity) in the cache. If content
+exists for this `integrity`, it will return an object, with the specific single integrity hash
+that was found in `sri` key, and the size of the found content as `size`. If no content exists for this integrity, it will return `false`.
+
+##### Example
+
+```javascript
+cacache.get.hasContent(cachePath, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log)
+
+// Output
+{
+ sri: {
+ source: 'sha256-MUSTVERIFY+ALL/THINGS==',
+ algorithm: 'sha256',
+ digest: 'MUSTVERIFY+ALL/THINGS==',
+ options: []
+ },
+ size: 9001
+}
+
+cacache.get.hasContent(cachePath, 'sha521-NOT+IN/CACHE==').then(console.log)
+
+// Output
+false
+```
+
+#### <a name="put-data"></a> `> cacache.put(cache, key, data, [opts]) -> Promise`
+
+Inserts data passed to it into the cache. The returned Promise resolves with a
+digest (generated according to [`opts.algorithms`](#optsalgorithms)) after the
+cache entry has been successfully written.
+
+##### Example
+
+```javascript
+fetch(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).then(data => {
+ return cacache.put(cachePath, 'registry.npmjs.org|cacache@1.0.0', data)
+}).then(integrity => {
+ console.log('integrity hash is', integrity)
+})
+```
+
+#### <a name="put-stream"></a> `> cacache.put.stream(cache, key, [opts]) -> Writable`
+
+Returns a [Writable
+Stream](https://nodejs.org/api/stream.html#stream_writable_streams) that inserts
+data written to it into the cache. Emits an `integrity` event with the digest of
+written contents when it succeeds.
+
+##### Example
+
+```javascript
+request.get(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).pipe(
+ cacache.put.stream(
+ cachePath, 'registry.npmjs.org|cacache@1.0.0'
+ ).on('integrity', d => console.log(`integrity digest is ${d}`))
+)
+```
+
+#### <a name="put-options"></a> `> cacache.put options`
+
+`cacache.put` functions have a number of options in common.
+
+##### `opts.metadata`
+
+Arbitrary metadata to be attached to the inserted key.
+
+##### `opts.size`
+
+If provided, the data stream will be verified to check that enough data was
+passed through. If there's more or less data than expected, insertion will fail
+with an `EBADSIZE` error.
+
+##### `opts.integrity`
+
+If present, the pre-calculated digest for the inserted content. If this option
+if provided and does not match the post-insertion digest, insertion will fail
+with an `EINTEGRITY` error.
+
+`algorithms` has no effect if this option is present.
+
+##### `opts.algorithms`
+
+Default: ['sha512']
+
+Hashing algorithms to use when calculating the [subresource integrity
+digest](#integrity)
+for inserted data. Can use any algorithm listed in `crypto.getHashes()` or
+`'omakase'`/`'ćŠä»»ć›ć—ć¾ć™'` to pick a random hash algorithm on each insertion. You
+may also use any anagram of `'modnar'` to use this feature.
+
+Currently only supports one algorithm at a time (i.e., an array length of
+exactly `1`). Has no effect if `opts.integrity` is present.
+
+##### `opts.uid`/`opts.gid`
+
+If provided, cacache will do its best to make sure any new files added to the
+cache use this particular `uid`/`gid` combination. This can be used,
+for example, to drop permissions when someone uses `sudo`, but cacache makes
+no assumptions about your needs here.
+
+##### `opts.memoize`
+
+Default: null
+
+If provided, cacache will memoize the given cache insertion in memory, bypassing
+any filesystem checks for that key or digest in future cache fetches. Nothing
+will be written to the in-memory cache unless this option is explicitly truthy.
+
+If `opts.memoize` is an object or a `Map`-like (that is, an object with `get`
+and `set` methods), it will be written to instead of the global memoization
+cache.
+
+Reading from disk data can be forced by explicitly passing `memoize: false` to
+the reader functions, but their default will be to read from memory.
+
+#### <a name="rm-all"></a> `> cacache.rm.all(cache) -> Promise`
+
+Clears the entire cache. Mainly by blowing away the cache directory itself.
+
+##### Example
+
+```javascript
+cacache.rm.all(cachePath).then(() => {
+ console.log('THE APOCALYPSE IS UPON US šŸ˜±')
+})
+```
+
+#### <a name="rm-entry"></a> `> cacache.rm.entry(cache, key) -> Promise`
+
+Alias: `cacache.rm`
+
+Removes the index entry for `key`. Content will still be accessible if
+requested directly by content address ([`get.stream.byDigest`](#get-stream)).
+
+To remove the content itself (which might still be used by other entries), use
+[`rm.content`](#rm-content). Or, to safely vacuum any unused content, use
+[`verify`](#verify).
+
+##### Example
+
+```javascript
+cacache.rm.entry(cachePath, 'my-thing').then(() => {
+ console.log('I did not like it anyway')
+})
+```
+
+#### <a name="rm-content"></a> `> cacache.rm.content(cache, integrity) -> Promise`
+
+Removes the content identified by `integrity`. Any index entries referring to it
+will not be usable again until the content is re-added to the cache with an
+identical digest.
+
+##### Example
+
+```javascript
+cacache.rm.content(cachePath, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => {
+ console.log('data for my-thing is gone!')
+})
+```
+
+#### <a name="set-locale"></a> `> cacache.setLocale(locale)`
+
+Configure the language/locale used for messages and errors coming from cacache.
+The list of available locales is in the `./locales` directory in the project
+root.
+
+_Interested in contributing more languages! [Submit a PR](CONTRIBUTING.md)!_
+
+#### <a name="clear-memoized"></a> `> cacache.clearMemoized()`
+
+Completely resets the in-memory entry cache.
+
+#### <a name="tmp-mkdir"></a> `> tmp.mkdir(cache, opts) -> Promise<Path>`
+
+Returns a unique temporary directory inside the cache's `tmp` dir. This
+directory will use the same safe user assignment that all the other stuff use.
+
+Once the directory is made, it's the user's responsibility that all files within
+are made according to the same `opts.gid`/`opts.uid` settings that would be
+passed in. If not, you can ask cacache to do it for you by calling
+[`tmp.fix()`](#tmp-fix), which will fix all tmp directory permissions.
+
+If you want automatic cleanup of this directory, use
+[`tmp.withTmp()`](#with-tpm)
+
+##### Example
+
+```javascript
+cacache.tmp.mkdir(cache).then(dir => {
+ fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+})
+```
+
+#### <a name="with-tmp"></a> `> tmp.withTmp(cache, opts, cb) -> Promise`
+
+Creates a temporary directory with [`tmp.mkdir()`](#tmp-mkdir) and calls `cb`
+with it. The created temporary directory will be removed when the return value
+of `cb()` resolves -- that is, if you return a Promise from `cb()`, the tmp
+directory will be automatically deleted once that promise completes.
+
+The same caveats apply when it comes to managing permissions for the tmp dir's
+contents.
+
+##### Example
+
+```javascript
+cacache.tmp.withTmp(cache, dir => {
+ return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+}).then(() => {
+ // `dir` no longer exists
+})
+```
+
+#### <a name="integrity"></a> Subresource Integrity Digests
+
+For content verification and addressing, cacache uses strings following the
+[Subresource
+Integrity spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).
+That is, any time cacache expects an `integrity` argument or option, it
+should be in the format `<hashAlgorithm>-<base64-hash>`.
+
+One deviation from the current spec is that cacache will support any hash
+algorithms supported by the underlying Node.js process. You can use
+`crypto.getHashes()` to see which ones you can use.
+
+##### Generating Digests Yourself
+
+If you have an existing content shasum, they are generally formatted as a
+hexadecimal string (that is, a sha1 would look like:
+`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). In order to be compatible with
+cacache, you'll need to convert this to an equivalent subresource integrity
+string. For this example, the corresponding hash would be:
+`sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`.
+
+If you want to generate an integrity string yourself for existing data, you can
+use something like this:
+
+```javascript
+const crypto = require('crypto')
+const hashAlgorithm = 'sha512'
+const data = 'foobarbaz'
+
+const integrity = (
+ hashAlgorithm +
+ '-' +
+ crypto.createHash(hashAlgorithm).update(data).digest('base64')
+)
+```
+
+You can also use [`ssri`](https://npm.im/ssri) to have a richer set of functionality
+around SRI strings, including generation, parsing, and translating from existing
+hex-formatted strings.
+
+#### <a name="verify"></a> `> cacache.verify(cache, opts) -> Promise`
+
+Checks out and fixes up your cache:
+
+* Cleans up corrupted or invalid index entries.
+* Custom entry filtering options.
+* Garbage collects any content entries not referenced by the index.
+* Checks integrity for all content entries and removes invalid content.
+* Fixes cache ownership.
+* Removes the `tmp` directory in the cache and all its contents.
+
+When it's done, it'll return an object with various stats about the verification
+process, including amount of storage reclaimed, number of valid entries, number
+of entries removed, etc.
+
+##### Options
+
+* `opts.uid` - uid to assign to cache and its contents
+* `opts.gid` - gid to assign to cache and its contents
+* `opts.filter` - receives a formatted entry. Return false to remove it.
+ Note: might be called more than once on the same entry.
+
+##### Example
+
+```sh
+echo somegarbage >> $CACHEPATH/content/deadbeef
+```
+
+```javascript
+cacache.verify(cachePath).then(stats => {
+ // deadbeef collected, because of invalid checksum.
+ console.log('cache is much nicer now! stats:', stats)
+})
+```
+
+#### <a name="verify-last-run"></a> `> cacache.verify.lastRun(cache) -> Promise`
+
+Returns a `Date` representing the last time `cacache.verify` was run on `cache`.
+
+##### Example
+
+```javascript
+cacache.verify(cachePath).then(() => {
+ cacache.verify.lastRun(cachePath).then(lastTime => {
+ console.log('cacache.verify was last called on' + lastTime)
+ })
+})
+```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/en.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/en.js
index a3db581c9f..a3db581c9f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/en.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/en.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/es.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/es.js
index 6282363c3b..6282363c3b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/es.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/es.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/get.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/get.js
index 2bb3afa528..2bb3afa528 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/get.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/get.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/index.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/index.js
index a3db581c9f..a3db581c9f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/index.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/path.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/path.js
index fa6491ba6f..fa6491ba6f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/path.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/path.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/read.js
new file mode 100644
index 0000000000..7a4da3beb8
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/read.js
@@ -0,0 +1,125 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./path')
+const fs = require('graceful-fs')
+const PassThrough = require('stream').PassThrough
+const pipe = BB.promisify(require('mississippi').pipe)
+const ssri = require('ssri')
+const Y = require('../util/y.js')
+
+BB.promisifyAll(fs)
+
+module.exports = read
+function read (cache, integrity, opts) {
+ opts = opts || {}
+ return pickContentSri(cache, integrity).then(content => {
+ const sri = content.sri
+ const cpath = contentPath(cache, sri)
+ return fs.readFileAsync(cpath, null).then(data => {
+ if (typeof opts.size === 'number' && opts.size !== data.length) {
+ throw sizeError(opts.size, data.length)
+ } else if (ssri.checkData(data, sri)) {
+ return data
+ } else {
+ throw integrityError(sri, cpath)
+ }
+ })
+ })
+}
+
+module.exports.stream = readStream
+module.exports.readStream = readStream
+function readStream (cache, integrity, opts) {
+ opts = opts || {}
+ const stream = new PassThrough()
+ pickContentSri(
+ cache, integrity
+ ).then(content => {
+ const sri = content.sri
+ return pipe(
+ fs.createReadStream(contentPath(cache, sri)),
+ ssri.integrityStream({
+ integrity: sri,
+ size: opts.size
+ }),
+ stream
+ )
+ }).catch(err => {
+ stream.emit('error', err)
+ })
+ return stream
+}
+
+if (fs.copyFile) {
+ module.exports.copy = copy
+}
+function copy (cache, integrity, dest, opts) {
+ opts = opts || {}
+ return pickContentSri(cache, integrity).then(content => {
+ const sri = content.sri
+ const cpath = contentPath(cache, sri)
+ return fs.copyFileAsync(cpath, dest).then(() => content.size)
+ })
+}
+
+module.exports.hasContent = hasContent
+function hasContent (cache, integrity) {
+ if (!integrity) { return BB.resolve(false) }
+ return pickContentSri(cache, integrity)
+ .catch({code: 'ENOENT'}, () => false)
+ .catch({code: 'EPERM'}, err => {
+ if (process.platform !== 'win32') {
+ throw err
+ } else {
+ return false
+ }
+ }).then(content => {
+ if (!content.sri) return false
+ return ({ sri: content.sri, size: content.stat.size })
+ })
+}
+
+module.exports._pickContentSri = pickContentSri
+function pickContentSri (cache, integrity) {
+ const sri = ssri.parse(integrity)
+ // If `integrity` has multiple entries, pick the first digest
+ // with available local data.
+ const algo = sri.pickAlgorithm()
+ const digests = sri[algo]
+ if (digests.length <= 1) {
+ const cpath = contentPath(cache, digests[0])
+ return fs.lstatAsync(cpath).then(stat => ({ sri: digests[0], stat }))
+ } else {
+ return BB.any(sri[sri.pickAlgorithm()].map(meta => {
+ return pickContentSri(cache, meta)
+ }))
+ .catch(err => {
+ if ([].some.call(err, e => e.code === 'ENOENT')) {
+ throw Object.assign(
+ new Error('No matching content found for ' + sri.toString()),
+ {code: 'ENOENT'}
+ )
+ } else {
+ throw err[0]
+ }
+ })
+ }
+}
+
+function sizeError (expected, found) {
+ var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
+ err.expected = expected
+ err.found = found
+ err.code = 'EBADSIZE'
+ return err
+}
+
+function integrityError (sri, path) {
+ var err = new Error(Y`Integrity verification failed for ${sri} (${path})`)
+ err.code = 'EINTEGRITY'
+ err.sri = sri
+ err.path = path
+ return err
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/rm.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/rm.js
index 12cf158235..12cf158235 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/rm.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/rm.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/write.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/write.js
index a79ae92902..a79ae92902 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/write.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/content/write.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/entry-index.js
new file mode 100644
index 0000000000..fe1cd06457
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/entry-index.js
@@ -0,0 +1,225 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./content/path')
+const crypto = require('crypto')
+const fixOwner = require('./util/fix-owner')
+const fs = require('graceful-fs')
+const hashToSegments = require('./util/hash-to-segments')
+const ms = require('mississippi')
+const path = require('path')
+const ssri = require('ssri')
+const Y = require('./util/y.js')
+
+const indexV = require('../package.json')['cache-version'].index
+
+const appendFileAsync = BB.promisify(fs.appendFile)
+const readFileAsync = BB.promisify(fs.readFile)
+const readdirAsync = BB.promisify(fs.readdir)
+const concat = ms.concat
+const from = ms.from
+
+module.exports.NotFoundError = class NotFoundError extends Error {
+ constructor (cache, key) {
+ super(Y`No cache entry for \`${key}\` found in \`${cache}\``)
+ this.code = 'ENOENT'
+ this.cache = cache
+ this.key = key
+ }
+}
+
+module.exports.insert = insert
+function insert (cache, key, integrity, opts) {
+ opts = opts || {}
+ const bucket = bucketPath(cache, key)
+ const entry = {
+ key,
+ integrity: integrity && ssri.stringify(integrity),
+ time: Date.now(),
+ size: opts.size,
+ metadata: opts.metadata
+ }
+ return fixOwner.mkdirfix(
+ path.dirname(bucket), opts.uid, opts.gid
+ ).then(() => {
+ const stringified = JSON.stringify(entry)
+ // NOTE - Cleverness ahoy!
+ //
+ // This works because it's tremendously unlikely for an entry to corrupt
+ // another while still preserving the string length of the JSON in
+ // question. So, we just slap the length in there and verify it on read.
+ //
+ // Thanks to @isaacs for the whiteboarding session that ended up with this.
+ return appendFileAsync(
+ bucket, `\n${hashEntry(stringified)}\t${stringified}`
+ )
+ }).then(
+ () => fixOwner.chownr(bucket, opts.uid, opts.gid)
+ ).catch({code: 'ENOENT'}, () => {
+ // There's a class of race conditions that happen when things get deleted
+ // during fixOwner, or between the two mkdirfix/chownr calls.
+ //
+ // It's perfectly fine to just not bother in those cases and lie
+ // that the index entry was written. Because it's a cache.
+ }).then(() => {
+ return formatEntry(cache, entry)
+ })
+}
+
+module.exports.find = find
+function find (cache, key) {
+ const bucket = bucketPath(cache, key)
+ return bucketEntries(cache, bucket).then(entries => {
+ return entries.reduce((latest, next) => {
+ if (next && next.key === key) {
+ return formatEntry(cache, next)
+ } else {
+ return latest
+ }
+ }, null)
+ }).catch(err => {
+ if (err.code === 'ENOENT') {
+ return null
+ } else {
+ throw err
+ }
+ })
+}
+
+module.exports.delete = del
+function del (cache, key, opts) {
+ return insert(cache, key, null, opts)
+}
+
+module.exports.lsStream = lsStream
+function lsStream (cache) {
+ const indexDir = bucketDir(cache)
+ const stream = from.obj()
+
+ // "/cachename/*"
+ readdirOrEmpty(indexDir).map(bucket => {
+ const bucketPath = path.join(indexDir, bucket)
+
+ // "/cachename/<bucket 0xFF>/*"
+ return readdirOrEmpty(bucketPath).map(subbucket => {
+ const subbucketPath = path.join(bucketPath, subbucket)
+
+ // "/cachename/<bucket 0xFF>/<bucket 0xFF>/*"
+ return readdirOrEmpty(subbucketPath).map(entry => {
+ const getKeyToEntry = bucketEntries(
+ cache,
+ path.join(subbucketPath, entry)
+ ).reduce((acc, entry) => {
+ acc.set(entry.key, entry)
+ return acc
+ }, new Map())
+
+ return getKeyToEntry.then(reduced => {
+ for (let entry of reduced.values()) {
+ const formatted = formatEntry(cache, entry)
+ formatted && stream.push(formatted)
+ }
+ }).catch({code: 'ENOENT'}, nop)
+ })
+ })
+ }).then(() => {
+ stream.push(null)
+ }, err => {
+ stream.emit('error', err)
+ })
+
+ return stream
+}
+
+module.exports.ls = ls
+function ls (cache) {
+ return BB.fromNode(cb => {
+ lsStream(cache).on('error', cb).pipe(concat(entries => {
+ cb(null, entries.reduce((acc, xs) => {
+ acc[xs.key] = xs
+ return acc
+ }, {}))
+ }))
+ })
+}
+
+function bucketEntries (cache, bucket, filter) {
+ return readFileAsync(
+ bucket, 'utf8'
+ ).then(data => {
+ let entries = []
+ data.split('\n').forEach(entry => {
+ if (!entry) { return }
+ const pieces = entry.split('\t')
+ if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {
+ // Hash is no good! Corruption or malice? Doesn't matter!
+ // EJECT EJECT
+ return
+ }
+ let obj
+ try {
+ obj = JSON.parse(pieces[1])
+ } catch (e) {
+ // Entry is corrupted!
+ return
+ }
+ if (obj) {
+ entries.push(obj)
+ }
+ })
+ return entries
+ })
+}
+
+module.exports._bucketDir = bucketDir
+function bucketDir (cache) {
+ return path.join(cache, `index-v${indexV}`)
+}
+
+module.exports._bucketPath = bucketPath
+function bucketPath (cache, key) {
+ const hashed = hashKey(key)
+ return path.join.apply(path, [bucketDir(cache)].concat(
+ hashToSegments(hashed)
+ ))
+}
+
+module.exports._hashKey = hashKey
+function hashKey (key) {
+ return hash(key, 'sha256')
+}
+
+module.exports._hashEntry = hashEntry
+function hashEntry (str) {
+ return hash(str, 'sha1')
+}
+
+function hash (str, digest) {
+ return crypto
+ .createHash(digest)
+ .update(str)
+ .digest('hex')
+}
+
+function formatEntry (cache, entry) {
+ // Treat null digests as deletions. They'll shadow any previous entries.
+ if (!entry.integrity) { return null }
+ return {
+ key: entry.key,
+ integrity: entry.integrity,
+ path: contentPath(cache, entry.integrity),
+ size: entry.size,
+ time: entry.time,
+ metadata: entry.metadata
+ }
+}
+
+function readdirOrEmpty (dir) {
+ return readdirAsync(dir)
+ .catch({code: 'ENOENT'}, () => [])
+ .catch({code: 'ENOTDIR'}, () => [])
+}
+
+function nop () {
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/memoization.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/memoization.js
index 92179c7ac6..92179c7ac6 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/memoization.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/memoization.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/fix-owner.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js
index 7000bff048..7000bff048 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/fix-owner.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/fix-owner.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/hash-to-segments.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/hash-to-segments.js
index 192be2a6d6..192be2a6d6 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/hash-to-segments.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/hash-to-segments.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/move-file.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/move-file.js
new file mode 100644
index 0000000000..b43744b3da
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/move-file.js
@@ -0,0 +1,51 @@
+'use strict'
+
+const fs = require('graceful-fs')
+const BB = require('bluebird')
+const chmod = BB.promisify(fs.chmod)
+const unlink = BB.promisify(fs.unlink)
+let move
+let pinflight
+
+module.exports = moveFile
+function moveFile (src, dest) {
+ // This isn't quite an fs.rename -- the assumption is that
+ // if `dest` already exists, and we get certain errors while
+ // trying to move it, we should just not bother.
+ //
+ // In the case of cache corruption, users will receive an
+ // EINTEGRITY error elsewhere, and can remove the offending
+ // content their own way.
+ //
+ // Note that, as the name suggests, this strictly only supports file moves.
+ return BB.fromNode(cb => {
+ fs.link(src, dest, err => {
+ if (err) {
+ if (err.code === 'EEXIST' || err.code === 'EBUSY') {
+ // file already exists, so whatever
+ } else if (err.code === 'EPERM' && process.platform === 'win32') {
+ // file handle stayed open even past graceful-fs limits
+ } else {
+ return cb(err)
+ }
+ }
+ return cb()
+ })
+ }).then(() => {
+ // content should never change for any reason, so make it read-only
+ return BB.join(unlink(src), process.platform !== 'win32' && chmod(dest, '0444'))
+ }).catch(() => {
+ if (!pinflight) { pinflight = require('promise-inflight') }
+ return pinflight('cacache-move-file:' + dest, () => {
+ return BB.promisify(fs.stat)(dest).catch(err => {
+ if (err.code !== 'ENOENT') {
+ // Something else is wrong here. Bail bail bail
+ throw err
+ }
+ // file doesn't already exist! let's try a rename -> copy fallback
+ if (!move) { move = require('move-concurrently') }
+ return move(src, dest, { BB, fs })
+ })
+ })
+ })
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/tmp.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/tmp.js
index 4fc4512cc8..4fc4512cc8 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/tmp.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/tmp.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/y.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/y.js
index d62bedacb3..d62bedacb3 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/y.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/util/y.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/verify.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/verify.js
index 6a01004c97..6a01004c97 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/verify.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/lib/verify.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.js
index 22025cf0e8..22025cf0e8 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.json b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.json
index 82ecb08324..82ecb08324 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/en.json
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/en.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.js
index 9a27de6585..9a27de6585 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.json b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.json
index a91d76225b..a91d76225b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/locales/es.json
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/locales/es.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/ls.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/ls.js
index 9f49b388ac..9f49b388ac 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/ls.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/ls.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/changelog.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/changelog.md
new file mode 100644
index 0000000000..93430828f8
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/changelog.md
@@ -0,0 +1,7 @@
+# mississippi Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## 2.0.0 - 2018-01-30
+* Update to pump@2.0.1. (Use the individual modules to avoid potentially unnecessary major updates in your project)
+* Pin engines support to >= Node 4.0.0. Run Node LTS or greater.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/index.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/index.js
new file mode 100644
index 0000000000..d635b29c56
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/index.js
@@ -0,0 +1,10 @@
+module.exports.pipe = require('pump')
+module.exports.each = require('stream-each')
+module.exports.pipeline = require('pumpify')
+module.exports.duplex = require('duplexify')
+module.exports.through = require('through2')
+module.exports.concat = require('concat-stream')
+module.exports.finished = require('end-of-stream')
+module.exports.from = require('from2')
+module.exports.to = require('flush-write-stream')
+module.exports.parallel = require('parallel-transform')
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/license b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/license
new file mode 100644
index 0000000000..e34763968c
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/license
@@ -0,0 +1,7 @@
+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/npm-profile/node_modules/cacache/node_modules/mississippi/package.json b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/package.json
new file mode 100644
index 0000000000..b8c2616e87
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "mississippi@^2.0.0",
+ "_id": "mississippi@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "_location": "/npm-profile/cacache/mississippi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mississippi@^2.0.0",
+ "name": "mississippi",
+ "escapedName": "mississippi",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/npm-profile/cacache"
+ ],
+ "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "_shasum": "3442a508fafc28500486feea99409676e4ee5a6f",
+ "_spec": "mississippi@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/cacache",
+ "author": {
+ "name": "max ogden"
+ },
+ "bugs": {
+ "url": "https://github.com/maxogden/mississippi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "a collection of useful streams",
+ "devDependencies": {},
+ "engines": {
+ "node": ">=4.0.0"
+ },
+ "homepage": "https://github.com/maxogden/mississippi#readme",
+ "license": "BSD-2-Clause",
+ "main": "index.js",
+ "name": "mississippi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/maxogden/mississippi.git"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/readme.md b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/readme.md
new file mode 100644
index 0000000000..5fa6d66c89
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi/readme.md
@@ -0,0 +1,411 @@
+# mississippi
+
+a collection of useful stream utility modules. learn how the modules work using this and then pick the ones you want and use them individually
+
+the goal of the modules included in mississippi is to make working with streams easy without sacrificing speed, error handling or composability.
+
+## usage
+
+```js
+var miss = require('mississippi')
+```
+
+## methods
+
+- [pipe](#pipe)
+- [each](#each)
+- [pipeline](#pipeline)
+- [duplex](#duplex)
+- [through](#through)
+- [from](#from)
+- [to](#to)
+- [concat](#concat)
+- [finished](#finished)
+- [parallel](#parallel)
+
+### pipe
+
+##### `miss.pipe(stream1, stream2, stream3, ..., cb)`
+
+Pipes streams together and destroys all of them if one of them closes. Calls `cb` with `(error)` if there was an error in any of the streams.
+
+When using standard `source.pipe(destination)` the source will _not_ be destroyed if the destination emits close or error. You are also not able to provide a callback to tell when the pipe has finished.
+
+`miss.pipe` does these two things for you, ensuring you handle stream errors 100% of the time (unhandled errors are probably the most common bug in most node streams code)
+
+#### original module
+
+`miss.pipe` is provided by [`require('pump')`](https://www.npmjs.com/package/pump)
+
+#### example
+
+```js
+// lets do a simple file copy
+var fs = require('fs')
+
+var read = fs.createReadStream('./original.zip')
+var write = fs.createWriteStream('./copy.zip')
+
+// use miss.pipe instead of read.pipe(write)
+miss.pipe(read, write, function (err) {
+ if (err) return console.error('Copy error!', err)
+ console.log('Copied successfully')
+})
+```
+
+### each
+
+##### `miss.each(stream, each, [done])`
+
+Iterate the data in `stream` one chunk at a time. Your `each` function will be called with `(data, next)` where data is a data chunk and next is a callback. Call `next` when you are ready to consume the next chunk.
+
+Optionally you can call `next` with an error to destroy the stream. You can also pass the optional third argument, `done`, which is a function that will be called with `(err)` when the stream ends. The `err` argument will be populated with an error if the stream emitted an error.
+
+#### original module
+
+`miss.each` is provided by [`require('stream-each')`](https://www.npmjs.com/package/stream-each)
+
+#### example
+
+```js
+var fs = require('fs')
+var split = require('split2')
+
+var newLineSeparatedNumbers = fs.createReadStream('numbers.txt')
+
+var pipeline = miss.pipeline(newLineSeparatedNumbers, split())
+miss.each(pipeline, eachLine, done)
+var sum = 0
+
+function eachLine (line, next) {
+ sum += parseInt(line.toString())
+ next()
+}
+
+function done (err) {
+ if (err) throw err
+ console.log('sum is', sum)
+}
+```
+
+### pipeline
+
+##### `var pipeline = miss.pipeline(stream1, stream2, stream3, ...)`
+
+Builds a pipeline from all the transform streams passed in as arguments by piping them together and returning a single stream object that lets you write to the first stream and read from the last stream.
+
+If you are pumping object streams together use `pipeline = miss.pipeline.obj(s1, s2, ...)`.
+
+If any of the streams in the pipeline emits an error or gets destroyed, or you destroy the stream it returns, all of the streams will be destroyed and cleaned up for you.
+
+#### original module
+
+`miss.pipeline` is provided by [`require('pumpify')`](https://www.npmjs.com/package/pumpify)
+
+#### example
+
+```js
+// first create some transform streams (note: these two modules are fictional)
+var imageResize = require('image-resizer-stream')({width: 400})
+var pngOptimizer = require('png-optimizer-stream')({quality: 60})
+
+// instead of doing a.pipe(b), use pipelin
+var resizeAndOptimize = miss.pipeline(imageResize, pngOptimizer)
+// `resizeAndOptimize` is a transform stream. when you write to it, it writes
+// to `imageResize`. when you read from it, it reads from `pngOptimizer`.
+// it handles piping all the streams together for you
+
+// use it like any other transform stream
+var fs = require('fs')
+
+var read = fs.createReadStream('./image.png')
+var write = fs.createWriteStream('./resized-and-optimized.png')
+
+miss.pipe(read, resizeAndOptimize, write, function (err) {
+ if (err) return console.error('Image processing error!', err)
+ console.log('Image processed successfully')
+})
+```
+
+### duplex
+
+##### `var duplex = miss.duplex([writable, readable, opts])`
+
+Take two separate streams, a writable and a readable, and turn them into a single [duplex (readable and writable) stream](https://nodejs.org/api/stream.html#stream_class_stream_duplex).
+
+The returned stream will emit data from the readable. When you write to it it writes to the writable.
+
+You can either choose to supply the writable and the readable at the time you create the stream, or you can do it later using the `.setWritable` and `.setReadable` methods and data written to the stream in the meantime will be buffered for you.
+
+#### original module
+
+`miss.duplex` is provided by [`require('duplexify')`](https://www.npmjs.com/package/duplexify)
+
+#### example
+
+```js
+// lets spawn a process and take its stdout and stdin and combine them into 1 stream
+var child = require('child_process')
+
+// @- tells it to read from stdin, --data-binary sets 'raw' binary mode
+var curl = child.spawn('curl -X POST --data-binary @- http://foo.com')
+
+// duplexCurl will write to stdin and read from stdout
+var duplexCurl = miss.duplex(curl.stdin, curl.stdout)
+```
+
+### through
+
+##### `var transformer = miss.through([options, transformFunction, flushFunction])`
+
+Make a custom [transform stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform).
+
+The `options` object is passed to the internal transform stream and can be used to create an `objectMode` stream (or use the shortcut `miss.through.obj([...])`)
+
+The `transformFunction` is called when data is available for the writable side and has the signature `(chunk, encoding, cb)`. Within the function, add data to the readable side any number of times with `this.push(data)`. Call `cb()` to indicate processing of the `chunk` is complete. Or to easily emit a single error or chunk, call `cb(err, chunk)`
+
+The `flushFunction`, with signature `(cb)`, is called just before the stream is complete and should be used to wrap up stream processing.
+
+#### original module
+
+`miss.through` is provided by [`require('through2')`](https://www.npmjs.com/package/through2)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var read = fs.createReadStream('./boring_lowercase.txt')
+var write = fs.createWriteStream('./AWESOMECASE.TXT')
+
+// Leaving out the options object
+var uppercaser = miss.through(
+ function (chunk, enc, cb) {
+ cb(null, chunk.toString().toUpperCase())
+ },
+ function (cb) {
+ cb(null, 'ONE LAST BIT OF UPPERCASE')
+ }
+)
+
+miss.pipe(read, uppercaser, write, function (err) {
+ if (err) return console.error('Trouble uppercasing!')
+ console.log('Splendid uppercasing!')
+})
+```
+
+### from
+
+##### `miss.from([opts], read)`
+
+Make a custom [readable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_readable).
+
+`opts` contains the options to pass on to the ReadableStream constructor e.g. for creating a readable object stream (or use the shortcut `miss.from.obj([...])`).
+
+Returns a readable stream that calls `read(size, next)` when data is requested from the stream.
+
+- `size` is the recommended amount of data (in bytes) to retrieve.
+- `next(err, chunk)` should be called when you're ready to emit more data.
+
+#### original module
+
+`miss.from` is provided by [`require('from2')`](https://www.npmjs.com/package/from2)
+
+#### example
+
+```js
+
+
+function fromString(string) {
+ return miss.from(function(size, next) {
+ // if there's no more content
+ // left in the string, close the stream.
+ if (string.length <= 0) return next(null, null)
+
+ // Pull in a new chunk of text,
+ // removing it from the string.
+ var chunk = string.slice(0, size)
+ string = string.slice(size)
+
+ // Emit "chunk" from the stream.
+ next(null, chunk)
+ })
+}
+
+// pipe "hello world" out
+// to stdout.
+fromString('hello world').pipe(process.stdout)
+```
+
+### to
+
+##### `miss.to([options], write, [flush])`
+
+Make a custom [writable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_writable).
+
+`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a writable object stream (or use the shortcut `miss.to.obj([...])`).
+
+Returns a writable stream that calls `write(data, enc, cb)` when data is written to the stream.
+
+- `data` is the received data to write the destination.
+- `enc` encoding of the piece of data received.
+- `cb(err, data)` should be called when you're ready to write more data, or encountered an error.
+
+`flush(cb)` is called before `finish` is emitted and allows for cleanup steps to occur.
+
+#### original module
+
+`miss.to` is provided by [`require('flush-write-stream')`](https://www.npmjs.com/package/flush-write-stream)
+
+#### example
+
+```js
+var ws = miss.to(write, flush)
+
+ws.on('finish', function () {
+ console.log('finished')
+})
+
+ws.write('hello')
+ws.write('world')
+ws.end()
+
+function write (data, enc, cb) {
+ // i am your normal ._write method
+ console.log('writing', data.toString())
+ cb()
+}
+
+function flush (cb) {
+ // i am called before finish is emitted
+ setTimeout(cb, 1000) // wait 1 sec
+}
+```
+
+If you run the above it will produce the following output
+
+```
+writing hello
+writing world
+(nothing happens for 1 sec)
+finished
+```
+
+### concat
+
+##### `var concat = miss.concat(cb)`
+
+Returns a writable stream that concatenates all data written to the stream and calls a callback with the single result.
+
+Calling `miss.concat(cb)` returns a writable stream. `cb` is called when the writable stream is finished, e.g. when all data is done being written to it. `cb` is called with a single argument, `(data)`, which will contain the result of concatenating all the data written to the stream.
+
+Note that `miss.concat` will not handle stream errors for you. To handle errors, use `miss.pipe` or handle the `error` event manually.
+
+#### original module
+
+`miss.concat` is provided by [`require('concat-stream')`](https://www.npmjs.com/package/concat-stream)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var readStream = fs.createReadStream('cat.png')
+var concatStream = miss.concat(gotPicture)
+
+function callback (err) {
+ if (err) {
+ console.error(err)
+ process.exit(1)
+ }
+}
+
+miss.pipe(readStream, concatStream, callback)
+
+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
+}
+```
+
+### finished
+
+##### `miss.finished(stream, cb)`
+
+Waits for `stream` to finish or error and then calls `cb` with `(err)`. `cb` will only be called once. `err` will be null if the stream finished without error, or else it will be populated with the error from the streams `error` event.
+
+This function is useful for simplifying stream handling code as it lets you handle success or error conditions in a single code path. It's used internally `miss.pipe`.
+
+#### original module
+
+`miss.finished` is provided by [`require('end-of-stream')`](https://www.npmjs.com/package/end-of-stream)
+
+#### example
+
+```js
+var copySource = fs.createReadStream('./movie.mp4')
+var copyDest = fs.createWriteStream('./movie-copy.mp4')
+
+copySource.pipe(copyDest)
+
+miss.finished(copyDest, function(err) {
+ if (err) return console.log('write failed', err)
+ console.log('write success')
+})
+```
+
+### parallel
+
+##### `miss.parallel(concurrency, each)`
+
+This works like `through` except you can process items in parallel, while still preserving the original input order.
+
+This is handy if you wanna take advantage of node's async I/O and process streams of items in batches. With this module you can build your very own streaming parallel job queue.
+
+Note that `miss.parallel` preserves input ordering, if you don't need that then you can use [through2-concurrent](https://github.com/almost/through2-concurrent) instead, which is very similar to this otherwise.
+
+#### original module
+
+`miss.parallel` is provided by [`require('parallel-transform')`](https://npmjs.org/parallel-transform)
+
+#### example
+
+This example fetches the GET HTTP headers for a stream of input URLs 5 at a time in parallel.
+
+```js
+function getResponse (item, cb) {
+ var r = request(item.url)
+ r.on('error', function (err) {
+ cb(err)
+ })
+ r.on('response', function (re) {
+ cb(null, {url: item.url, date: new Date(), status: re.statusCode, headers: re.headers})
+ r.abort()
+ })
+}
+
+miss.pipe(
+ fs.createReadStream('./urls.txt'), // one url per line
+ split(),
+ miss.parallel(5, getResponse),
+ miss.through(function (row, enc, next) {
+ console.log(JSON.stringify(row))
+ next()
+ })
+)
+```
+
+## see also
+
+- [substack/stream-handbook](https://github.com/substack/stream-handbook)
+- [nodejs.org/api/stream.html](https://nodejs.org/api/stream.html)
+- [awesome-nodejs-streams](https://github.com/thejmazz/awesome-nodejs-streams)
+
+## license
+
+Licensed under the BSD 2-clause license.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/cacache/package.json b/deps/npm/node_modules/npm-profile/node_modules/cacache/package.json
new file mode 100644
index 0000000000..1f53946239
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/package.json
@@ -0,0 +1,137 @@
+{
+ "_from": "cacache@^10.0.0",
+ "_id": "cacache@10.0.4",
+ "_inBundle": false,
+ "_integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "_location": "/npm-profile/cacache",
+ "_phantomChildren": {
+ "concat-stream": "1.6.2",
+ "duplexify": "3.6.0",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
+ "from2": "2.3.0",
+ "parallel-transform": "1.1.0",
+ "pump": "2.0.1",
+ "pumpify": "1.5.1",
+ "stream-each": "1.2.2",
+ "through2": "2.0.3"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "cacache@^10.0.0",
+ "name": "cacache",
+ "escapedName": "cacache",
+ "rawSpec": "^10.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^10.0.0"
+ },
+ "_requiredBy": [
+ "/npm-profile/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "_shasum": "6452367999eff9d4188aefd9a14e9d7c6a263460",
+ "_spec": "cacache@^10.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/cacache/issues"
+ },
+ "bundleDependencies": false,
+ "cache-version": {
+ "content": "2",
+ "index": "5"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "contributors": [
+ {
+ "name": "Charlotte Spencer",
+ "email": "charlottelaspencer@gmail.com"
+ },
+ {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org"
+ }
+ ],
+ "dependencies": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ },
+ "deprecated": false,
+ "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",
+ "devDependencies": {
+ "benchmark": "^2.1.4",
+ "chalk": "^2.3.1",
+ "cross-env": "^5.1.3",
+ "nyc": "^11.4.1",
+ "require-inject": "^1.4.2",
+ "safe-buffer": "^5.1.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tacks": "^1.2.2",
+ "tap": "^11.1.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib",
+ "locales"
+ ],
+ "homepage": "https://github.com/zkat/cacache#readme",
+ "keywords": [
+ "cache",
+ "caching",
+ "content-addressable",
+ "sri",
+ "sri hash",
+ "subresource integrity",
+ "cache",
+ "storage",
+ "store",
+ "file store",
+ "filesystem",
+ "disk cache",
+ "disk storage"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "cacache",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/cacache.git"
+ },
+ "scripts": {
+ "benchmarks": "node test/benchmarks",
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js",
+ "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "10.0.4"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/put.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/put.js
index fe1293e5e7..fe1293e5e7 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/put.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/put.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/rm.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/rm.js
index e71a1d27b4..e71a1d27b4 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/rm.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/rm.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/verify.js b/deps/npm/node_modules/npm-profile/node_modules/cacache/verify.js
index db7763d7af..db7763d7af 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/verify.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/cacache/verify.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md
index 59698d1c27..f91df12721 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/CHANGELOG.md
@@ -2,6 +2,21 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="2.6.0"></a>
+# [2.6.0](https://github.com/zkat/make-fetch-happen/compare/v2.5.0...v2.6.0) (2017-11-14)
+
+
+### Bug Fixes
+
+* **integrity:** disable node-fetch compress when checking integrity (#42) ([a7cc74c](https://github.com/zkat/make-fetch-happen/commit/a7cc74c))
+
+
+### Features
+
+* **onretry:** Add `options.onRetry` (#48) ([f90ccff](https://github.com/zkat/make-fetch-happen/commit/f90ccff))
+
+
+
<a name="2.5.0"></a>
# [2.5.0](https://github.com/zkat/make-fetch-happen/compare/v2.4.13...v2.5.0) (2017-08-24)
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md
index 7160fa8389..4d12d8dae7 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/README.md
@@ -2,8 +2,8 @@
[`make-fetch-happen`](https://github.com/zkat/make-fetch-happen) is a Node.js
-library that wraps [`node-fetch`](https://npm.im/node-fetch) with additional
-features it doesn't intend to include, including HTTP Cache support, request
+library that wraps [`node-fetch-npm`](https://github.com/npm/node-fetch-npm) with additional
+features [`node-fetch`](https://github.com/bitinn/node-fetch) doesn't intend to include, including HTTP Cache support, request
pooling, proxies, retries, [and more](#features)!
## Install
@@ -27,6 +27,7 @@ pooling, proxies, retries, [and more](#features)!
* [`opts.ca, opts.cert, opts.key`](#https-opts)
* [`opts.maxSockets`](#opts-max-sockets)
* [`opts.retry`](#opts-retry)
+ * [`opts.onRetry`](#opts-onretry)
* [`opts.integrity`](#opts-integrity)
* [Message From Our Sponsors](#wow)
@@ -143,6 +144,7 @@ make-fetch-happen augments the `node-fetch` API with additional features availab
* [`opts.localAddress`](#opts-local-address)
* [`opts.maxSockets`](#opts-max-sockets)
* [`opts.retry`](#opts-retry) - Request retry settings
+* [`opts.onRetry`](#opts-onretry) - a function called whenever a retry is attempted
* [`opts.integrity`](#opts-integrity) - [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata.
#### <a name="opts-cache-manager"></a> `> opts.cacheManager`
@@ -363,6 +365,20 @@ fetch('http://one-more.site.com', {
})
```
+#### <a name="opts-onretry"></a> `> opts.onRetry`
+
+A function called whenever a retry is attempted.
+
+##### Example
+
+```javascript
+fetch('https://flaky.site.com', {
+ onRetry() {
+ console.log('we will retry!')
+ }
+})
+```
+
#### <a name="opts-integrity"></a> `> opts.integrity`
Matches the response body against the given [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata. If verification fails, the request will fail with an `EINTEGRITY` error.
@@ -376,7 +392,7 @@ fetch('https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tg
integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q='
}) // -> ok
-fetch('https://malicious-registry.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz'. {
+fetch('https://malicious-registry.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz', {
integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q='
}) // Error: EINTEGRITY
```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js
index d82811b63d..0f2c164e19 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/index.js
@@ -108,6 +108,8 @@ function cachingFetch (uri, _opts) {
if (opts.integrity) {
initializeSsri()
+ // if verifying integrity, node-fetch must not decompress
+ opts.compress = false
}
const isCachable = (opts.method === 'GET' || opts.method === 'HEAD') &&
@@ -353,6 +355,10 @@ function remoteFetch (uri, opts) {
if (!isMethodGetHead) {
return opts.cacheManager.delete(req).then(() => {
if (res.status >= 500 && req.method !== 'POST' && !isStream) {
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(res)
+ }
+
return retryHandler(res)
}
@@ -370,6 +376,10 @@ function remoteFetch (uri, opts) {
)
if (isRetriable) {
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(res)
+ }
+
return retryHandler(res)
}
@@ -437,6 +447,10 @@ function remoteFetch (uri, opts) {
throw err
}
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(err)
+ }
+
return retryHandler(err)
})
},
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md
deleted file mode 100644
index e62374ef13..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md
+++ /dev/null
@@ -1,130 +0,0 @@
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md
deleted file mode 100644
index c8d8d2f3be..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# 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 HTTP KeepAlive, how often
- to send TCP KeepAlive packets over sockets being kept alive.
- 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 <fengmk2@gmail.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/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js
deleted file mode 100644
index 57723d9c98..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// 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
- socket.setTimeout(self.freeSocketKeepAliveTimeout);
- // [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) {
- // Legacy API: addRequest(req, host, port, localAddress)
- if (typeof options === 'string') {
- options = {
- host: options,
- port: arguments[2],
- localAddress: arguments[3]
- };
- }
-
- options = util._extend({}, options);
- options = util._extend(options, this.options);
-
- if (!options.servername) {
- options.servername = options.host;
- const hostHeader = req.getHeader('host');
- if (hostHeader) {
- options.servername = hostHeader.replace(/:.*$/, '');
- }
- }
-
- 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 = options.host;
- const hostHeader = req.getHeader('host');
- if (hostHeader) {
- options.servername = hostHeader.replace(/:.*$/, '');
- }
- }
-
- 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);
- }
-};
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json
deleted file mode 100644
index 298ecd3f2d..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@^2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/npm-profile/make-fetch-happen/agentkeepalive/humanize-ms/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ms@^2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/agentkeepalive/humanize-ms"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json
deleted file mode 100644
index 3f4ca518a7..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "humanize-ms@^1.2.1",
- "_id": "humanize-ms@1.2.1",
- "_inBundle": false,
- "_integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
- "_location": "/npm-profile/make-fetch-happen/agentkeepalive/humanize-ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "humanize-ms@^1.2.1",
- "name": "humanize-ms",
- "escapedName": "humanize-ms",
- "rawSpec": "^1.2.1",
- "saveSpec": null,
- "fetchSpec": "^1.2.1"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/agentkeepalive"
- ],
- "_resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "_shasum": "c46e3159a293f6b896da29316d8b6fe8bb79bbed",
- "_spec": "humanize-ms@^1.2.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive",
- "author": {
- "name": "dead-horse",
- "email": "dead_horse@qq.com",
- "url": "http://deadhorse.me"
- },
- "bugs": {
- "url": "https://github.com/node-modules/humanize-ms/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ms": "^2.0.0"
- },
- "deprecated": false,
- "description": "transform humanize time to ms",
- "devDependencies": {
- "autod": "*",
- "beautify-benchmark": "~0.2.4",
- "benchmark": "~1.0.0",
- "istanbul": "*",
- "mocha": "*",
- "should": "*"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/node-modules/humanize-ms#readme",
- "keywords": [
- "humanize",
- "ms"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "humanize-ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/node-modules/humanize-ms.git"
- },
- "scripts": {
- "test": "make test"
- },
- "version": "1.2.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json
deleted file mode 100644
index b3466c9b17..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "_from": "agentkeepalive@^3.3.0",
- "_id": "agentkeepalive@3.3.0",
- "_inBundle": false,
- "_integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==",
- "_location": "/npm-profile/make-fetch-happen/agentkeepalive",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agentkeepalive@^3.3.0",
- "name": "agentkeepalive",
- "escapedName": "agentkeepalive",
- "rawSpec": "^3.3.0",
- "saveSpec": null,
- "fetchSpec": "^3.3.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz",
- "_shasum": "6d5de5829afd3be2712201a39275fd11c651857c",
- "_spec": "agentkeepalive@^3.3.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/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, 7, 8"
- },
- "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.3.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md
deleted file mode 100644
index 8edd5486b7..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/CHANGELOG.md
+++ /dev/null
@@ -1,423 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="9.3.0"></a>
-# [9.3.0](https://github.com/zkat/cacache/compare/v9.2.9...v9.3.0) (2017-10-07)
-
-
-### Features
-
-* **copy:** added cacache.get.copy api for fast copies (#107) ([067b5f6](https://github.com/zkat/cacache/commit/067b5f6))
-
-
-
-<a name="9.2.9"></a>
-## [9.2.9](https://github.com/zkat/cacache/compare/v9.2.8...v9.2.9) (2017-06-17)
-
-
-
-<a name="9.2.8"></a>
-## [9.2.8](https://github.com/zkat/cacache/compare/v9.2.7...v9.2.8) (2017-06-05)
-
-
-### Bug Fixes
-
-* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/zkat/cacache/commit/c3232ea))
-
-
-
-<a name="9.2.7"></a>
-## [9.2.7](https://github.com/zkat/cacache/compare/v9.2.6...v9.2.7) (2017-06-05)
-
-
-### Bug Fixes
-
-* **content:** make verified content completely read-only (#96) ([4131196](https://github.com/zkat/cacache/commit/4131196))
-
-
-
-<a name="9.2.6"></a>
-## [9.2.6](https://github.com/zkat/cacache/compare/v9.2.5...v9.2.6) (2017-05-31)
-
-
-### Bug Fixes
-
-* **node:** update ssri to prevent old node 4 crash ([5209ffe](https://github.com/zkat/cacache/commit/5209ffe))
-
-
-
-<a name="9.2.5"></a>
-## [9.2.5](https://github.com/zkat/cacache/compare/v9.2.4...v9.2.5) (2017-05-25)
-
-
-### Bug Fixes
-
-* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/zkat/cacache/commit/84e1d7e))
-
-
-
-<a name="9.2.4"></a>
-## [9.2.4](https://github.com/zkat/cacache/compare/v9.2.3...v9.2.4) (2017-05-24)
-
-
-### Bug Fixes
-
-* **deps:** bumping deps ([bbccb12](https://github.com/zkat/cacache/commit/bbccb12))
-
-
-
-<a name="9.2.3"></a>
-## [9.2.3](https://github.com/zkat/cacache/compare/v9.2.2...v9.2.3) (2017-05-24)
-
-
-### Bug Fixes
-
-* **rm:** stop crashing if content is missing on rm ([ac90bc0](https://github.com/zkat/cacache/commit/ac90bc0))
-
-
-
-<a name="9.2.2"></a>
-## [9.2.2](https://github.com/zkat/cacache/compare/v9.2.1...v9.2.2) (2017-05-14)
-
-
-### Bug Fixes
-
-* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/zkat/cacache/commit/519b4ee))
-
-
-
-<a name="9.2.1"></a>
-## [9.2.1](https://github.com/zkat/cacache/compare/v9.2.0...v9.2.1) (2017-05-14)
-
-
-### Bug Fixes
-
-* **docs:** fixing translation messup ([bb9e4f9](https://github.com/zkat/cacache/commit/bb9e4f9))
-
-
-
-<a name="9.2.0"></a>
-# [9.2.0](https://github.com/zkat/cacache/compare/v9.1.0...v9.2.0) (2017-05-14)
-
-
-### Features
-
-* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/zkat/cacache/commit/531f9a4))
-
-
-
-<a name="9.1.0"></a>
-# [9.1.0](https://github.com/zkat/cacache/compare/v9.0.0...v9.1.0) (2017-05-14)
-
-
-### Features
-
-* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/zkat/cacache/commit/323b90c))
-
-
-
-<a name="9.0.0"></a>
-# [9.0.0](https://github.com/zkat/cacache/compare/v8.0.0...v9.0.0) (2017-04-28)
-
-
-### Bug Fixes
-
-* **memoization:** actually use the LRU ([0e55dc9](https://github.com/zkat/cacache/commit/0e55dc9))
-
-
-### Features
-
-* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/zkat/cacache/commit/e5614c7))
-
-
-### BREAKING CHANGES
-
-* **memoization:** If you were passing an object to opts.memoize, it will now be used as an injected memoization object. If you were only passing booleans and other non-objects through that option, no changes are needed.
-
-
-
-<a name="8.0.0"></a>
-# [8.0.0](https://github.com/zkat/cacache/compare/v7.1.0...v8.0.0) (2017-04-22)
-
-
-### Features
-
-* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/zkat/cacache/commit/bad6c49)), closes [#87](https://github.com/zkat/cacache/issues/87)
-
-
-### BREAKING CHANGES
-
-* **read:** hasContent now returns an object with `{sri, size}` instead of `sri`. Use `result.sri` anywhere that needed the old return value.
-
-
-
-<a name="7.1.0"></a>
-# [7.1.0](https://github.com/zkat/cacache/compare/v7.0.5...v7.1.0) (2017-04-20)
-
-
-### Features
-
-* **size:** handle content size info (#49) ([91230af](https://github.com/zkat/cacache/commit/91230af))
-
-
-
-<a name="7.0.5"></a>
-## [7.0.5](https://github.com/zkat/cacache/compare/v7.0.4...v7.0.5) (2017-04-18)
-
-
-### Bug Fixes
-
-* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/zkat/cacache/commit/6d13e8e))
-* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/zkat/cacache/commit/3624fc5))
-
-
-
-<a name="7.0.4"></a>
-## [7.0.4](https://github.com/zkat/cacache/compare/v7.0.3...v7.0.4) (2017-04-15)
-
-
-### Bug Fixes
-
-* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/zkat/cacache/commit/d49bbcd))
-
-
-
-<a name="7.0.3"></a>
-## [7.0.3](https://github.com/zkat/cacache/compare/v7.0.2...v7.0.3) (2017-04-05)
-
-
-### Bug Fixes
-
-* **read:** fixing error message for integrity verification failures ([9d4f0a5](https://github.com/zkat/cacache/commit/9d4f0a5))
-
-
-
-<a name="7.0.2"></a>
-## [7.0.2](https://github.com/zkat/cacache/compare/v7.0.1...v7.0.2) (2017-04-03)
-
-
-### Bug Fixes
-
-* **integrity:** use EINTEGRITY error code and update ssri ([8dc2e62](https://github.com/zkat/cacache/commit/8dc2e62))
-
-
-
-<a name="7.0.1"></a>
-## [7.0.1](https://github.com/zkat/cacache/compare/v7.0.0...v7.0.1) (2017-04-03)
-
-
-### Bug Fixes
-
-* **docs:** fix header name conflict in readme ([afcd456](https://github.com/zkat/cacache/commit/afcd456))
-
-
-
-<a name="7.0.0"></a>
-# [7.0.0](https://github.com/zkat/cacache/compare/v6.3.0...v7.0.0) (2017-04-03)
-
-
-### Bug Fixes
-
-* **test:** fix content.write tests when running in docker ([d2e9b6a](https://github.com/zkat/cacache/commit/d2e9b6a))
-
-
-### Features
-
-* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/zkat/cacache/commit/b1e731f))
-
-
-### BREAKING CHANGES
-
-* **integrity:** The entire API has been overhauled to use SRI hashes instead of digest/hashAlgorithm pairs. SRI hashes follow the Subresource Integrity standard and support strings and objects compatible with [`ssri`](https://npm.im/ssri).
-
-* This change bumps the index version, which will invalidate all previous index entries. Content entries will remain intact, and existing caches will automatically reuse any content from before this breaking change.
-
-* `cacache.get.info()`, `cacache.ls()`, and `cacache.ls.stream()` will now return objects that looks like this:
-
-```
-{
- key: String,
- integrity: '<algorithm>-<base64hash>',
- path: ContentPath,
- time: Date<ms>,
- metadata: Any
-}
-```
-
-* `opts.digest` and `opts.hashAlgorithm` are obsolete for any API calls that used them.
-
-* Anywhere `opts.digest` was accepted, `opts.integrity` is now an option. Any valid SRI hash is accepted here -- multiple hash entries will be resolved according to the standard: first, the "strongest" hash algorithm will be picked, and then each of the entries for that algorithm will be matched against the content. Content will be validated if *any* of the entries match (so, a single integrity string can be used for multiple "versions" of the same document/data).
-
-* `put.byDigest()`, `put.stream.byDigest`, `get.byDigest()` and `get.stream.byDigest()` now expect an SRI instead of a `digest` + `opts.hashAlgorithm` pairing.
-
-* `get.hasContent()` now expects an integrity hash instead of a digest. If content exists, it will return the specific single integrity hash that was found in the cache.
-
-* `verify()` has learned to handle integrity-based caches, and forgotten how to handle old-style cache indices due to the format change.
-
-* `cacache.rm.content()` now expects an integrity hash instead of a hex digest.
-
-
-
-<a name="6.3.0"></a>
-# [6.3.0](https://github.com/zkat/cacache/compare/v6.2.0...v6.3.0) (2017-04-01)
-
-
-### Bug Fixes
-
-* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/zkat/cacache/commit/4670e9b))
-* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/zkat/cacache/commit/b9d2fa2))
-* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/zkat/cacache/commit/d8ac5aa))
-
-
-### Features
-
-* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/zkat/cacache/commit/dc6482d))
-
-
-
-<a name="6.2.0"></a>
-# [6.2.0](https://github.com/zkat/cacache/compare/v6.1.2...v6.2.0) (2017-03-15)
-
-
-### Bug Fixes
-
-* **index:** additional bucket entry verification with checksum (#72) ([f8e0f25](https://github.com/zkat/cacache/commit/f8e0f25))
-* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/zkat/cacache/commit/6818521))
-
-
-### Features
-
-* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/zkat/cacache/commit/c42da71))
-
-
-
-<a name="6.1.2"></a>
-## [6.1.2](https://github.com/zkat/cacache/compare/v6.1.1...v6.1.2) (2017-03-13)
-
-
-### Bug Fixes
-
-* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/zkat/cacache/commit/d6eb2f0))
-
-
-
-<a name="6.1.1"></a>
-## [6.1.1](https://github.com/zkat/cacache/compare/v6.1.0...v6.1.1) (2017-03-13)
-
-
-### Bug Fixes
-
-* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/zkat/cacache/commit/0b7faf6))
-* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/zkat/cacache/commit/0640bc4))
-
-
-
-<a name="6.1.0"></a>
-# [6.1.0](https://github.com/zkat/cacache/compare/v6.0.2...v6.1.0) (2017-03-12)
-
-
-### Bug Fixes
-
-* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/zkat/cacache/commit/ef4f70a))
-* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/zkat/cacache/commit/6ab8132))
-
-
-### Features
-
-* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/zkat/cacache/commit/d5d25ba)), closes [#66](https://github.com/zkat/cacache/issues/66)
-* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/zkat/cacache/commit/45ad77a))
-
-
-
-<a name="6.0.2"></a>
-## [6.0.2](https://github.com/zkat/cacache/compare/v6.0.1...v6.0.2) (2017-03-11)
-
-
-### Bug Fixes
-
-* **index:** segment cache items with another subbucket (#64) ([c3644e5](https://github.com/zkat/cacache/commit/c3644e5))
-
-
-
-<a name="6.0.1"></a>
-## [6.0.1](https://github.com/zkat/cacache/compare/v6.0.0...v6.0.1) (2017-03-05)
-
-
-### Bug Fixes
-
-* **docs:** Missed spots in README ([8ffb7fa](https://github.com/zkat/cacache/commit/8ffb7fa))
-
-
-
-<a name="6.0.0"></a>
-# [6.0.0](https://github.com/zkat/cacache/compare/v5.0.3...v6.0.0) (2017-03-05)
-
-
-### Bug Fixes
-
-* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/zkat/cacache/commit/2f72d0a))
-* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/zkat/cacache/commit/fa8f3c3))
-* **deps:** removed `format-number[@2](https://github.com/2).0.2` ([1187791](https://github.com/zkat/cacache/commit/1187791))
-* **deps:** removed inflight[@1](https://github.com/1).0.6 ([0d1819c](https://github.com/zkat/cacache/commit/0d1819c))
-* **deps:** rimraf[@2](https://github.com/2).6.1 ([9efab6b](https://github.com/zkat/cacache/commit/9efab6b))
-* **deps:** standard[@9](https://github.com/9).0.0 ([4202cba](https://github.com/zkat/cacache/commit/4202cba))
-* **deps:** tap[@10](https://github.com/10).3.0 ([aa03088](https://github.com/zkat/cacache/commit/aa03088))
-* **deps:** weallcontribute[@1](https://github.com/1).0.8 ([ad4f4dc](https://github.com/zkat/cacache/commit/ad4f4dc))
-* **docs:** add security note to hashKey ([03f81ba](https://github.com/zkat/cacache/commit/03f81ba))
-* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/zkat/cacache/commit/ea00ba6))
-* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/zkat/cacache/commit/45997d8))
-* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/zkat/cacache/commit/fb8cb4d))
-* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/zkat/cacache/commit/bbc5fca))
-* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/zkat/cacache/commit/b1d3888))
-* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/zkat/cacache/commit/d26cdf9))
-* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/zkat/cacache/commit/79a8891))
-* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/zkat/cacache/commit/65f6632))
-* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/zkat/cacache/commit/daf9e08))
-* **put-stream:** use new promise API for moves ([1d36013](https://github.com/zkat/cacache/commit/1d36013))
-* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/zkat/cacache/commit/c60a2fa))
-* **verify:** tiny typo fix ([db22d05](https://github.com/zkat/cacache/commit/db22d05))
-
-
-### Features
-
-* **api:** converted external api ([7bf032f](https://github.com/zkat/cacache/commit/7bf032f))
-* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/zkat/cacache/commit/8d2c5b6))
-* **cache:** add versioning to content and index ([31bc549](https://github.com/zkat/cacache/commit/31bc549))
-* **content:** collate content files into subdirs ([c094d9f](https://github.com/zkat/cacache/commit/c094d9f))
-* **deps:** [@npmcorp](https://github.com/npmcorp)/move[@1](https://github.com/1).0.0 ([bdd00bf](https://github.com/zkat/cacache/commit/bdd00bf))
-* **deps:** bluebird[@3](https://github.com/3).4.7 ([3a17aff](https://github.com/zkat/cacache/commit/3a17aff))
-* **deps:** promise-inflight[@1](https://github.com/1).0.1 ([a004fe6](https://github.com/zkat/cacache/commit/a004fe6))
-* **get:** added memoization support for get ([c77d794](https://github.com/zkat/cacache/commit/c77d794))
-* **get:** export hasContent ([2956ec3](https://github.com/zkat/cacache/commit/2956ec3))
-* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/zkat/cacache/commit/b639746))
-* **index:** collate index files into subdirs ([e8402a5](https://github.com/zkat/cacache/commit/e8402a5))
-* **index:** promisify entry index ([cda3335](https://github.com/zkat/cacache/commit/cda3335))
-* **memo:** added memoization lib ([da07b92](https://github.com/zkat/cacache/commit/da07b92))
-* **memo:** export memoization api ([954b1b3](https://github.com/zkat/cacache/commit/954b1b3))
-* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/zkat/cacache/commit/5cf4616))
-* **perf:** bulk content write api ([51b536e](https://github.com/zkat/cacache/commit/51b536e))
-* **put:** added memoization support to put ([b613a70](https://github.com/zkat/cacache/commit/b613a70))
-* **read:** switched to promises ([a869362](https://github.com/zkat/cacache/commit/a869362))
-* **rm:** added memoization support to rm ([4205cf0](https://github.com/zkat/cacache/commit/4205cf0))
-* **rm:** switched to promises ([a000d24](https://github.com/zkat/cacache/commit/a000d24))
-* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/zkat/cacache/commit/9517cd7))
-* **util:** use promises for api ([ae204bb](https://github.com/zkat/cacache/commit/ae204bb))
-* **verify:** converted to Promises ([f0b3974](https://github.com/zkat/cacache/commit/f0b3974))
-
-
-### BREAKING CHANGES
-
-* cache: index/content directories are now versioned. Previous caches are no longer compatible and cannot be migrated.
-* util: fix-owner now uses Promises instead of callbacks
-* index: Previously-generated index entries are no longer compatible and the index must be regenerated.
-* index: The index format has changed and previous caches are no longer compatible. Existing caches will need to be regenerated.
-* hashes: Default hashAlgorithm changed from sha1 to sha512. If you
-rely on the prior setting, pass `opts.hashAlgorithm` in explicitly.
-* content: Previously-generated content directories are no longer compatible
-and must be regenerated.
-* verify: API is now promise-based
-* read: Switches to a Promise-based API and removes callback stuff
-* rm: Switches to a Promise-based API and removes callback stuff
-* index: this changes the API to work off promises instead of callbacks
-* api: this means we are going all in on promises now
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md
deleted file mode 100644
index c05cb09586..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/LICENSE.md
+++ /dev/null
@@ -1,3 +0,0 @@
-To the extent possible under law, maintainers for this project have waived all copyright and related or neighboring rights to this project.
-
-For more information on this waiver, see: https://creativecommons.org/publicdomain/zero/1.0/
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md
deleted file mode 100644
index ea69b8f540..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/README.md
+++ /dev/null
@@ -1,624 +0,0 @@
-# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest)
-
-[`cacache`](https://github.com/zkat/cacache) is a Node.js library for managing
-local key and content address caches. It's really fast, really good at
-concurrency, and it will never give you corrupted data, even if cache files
-get corrupted or manipulated.
-
-It was originally written to be used as [npm](https://npm.im)'s local cache, but
-can just as easily be used on its own
-
-_Translations: [espaƱol](README.es.md)_
-
-## Install
-
-`$ npm install --save cacache`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * [Using localized APIs](#localized-api)
- * Reading
- * [`ls`](#ls)
- * [`ls.stream`](#ls-stream)
- * [`get`](#get-data)
- * [`get.stream`](#get-stream)
- * [`get.info`](#get-info)
- * [`get.hasContent`](#get-hasContent)
- * Writing
- * [`put`](#put-data)
- * [`put.stream`](#put-stream)
- * [`put*` opts](#put-options)
- * [`rm.all`](#rm-all)
- * [`rm.entry`](#rm-entry)
- * [`rm.content`](#rm-content)
- * Utilities
- * [`setLocale`](#set-locale)
- * [`clearMemoized`](#clear-memoized)
- * [`tmp.mkdir`](#tmp-mkdir)
- * [`tmp.withTmp`](#with-tmp)
- * Integrity
- * [Subresource Integrity](#integrity)
- * [`verify`](#verify)
- * [`verify.lastRun`](#verify-last-run)
-
-### Example
-
-```javascript
-const cacache = require('cacache/en')
-const fs = require('fs')
-
-const tarball = '/path/to/mytar.tgz'
-const cachePath = '/tmp/my-toy-cache'
-const key = 'my-unique-key-1234'
-
-// Cache it! Use `cachePath` as the root of the content cache
-cacache.put(cachePath, key, '10293801983029384').then(integrity => {
- console.log(`Saved content to ${cachePath}.`)
-})
-
-const destination = '/tmp/mytar.tgz'
-
-// Copy the contents out of the cache and into their destination!
-// But this time, use stream instead!
-cacache.get.stream(
- cachePath, key
-).pipe(
- fs.createWriteStream(destination)
-).on('finish', () => {
- console.log('done extracting!')
-})
-
-// The same thing, but skip the key index.
-cacache.get.byDigest(cachePath, integrityHash).then(data => {
- fs.writeFile(destination, data, err => {
- console.log('tarball data fetched based on its sha512sum and written out!')
- })
-})
-```
-
-### Features
-
-* Extraction by key or by content address (shasum, etc)
-* [Subresource Integrity](#integrity) web standard support
-* Multi-hash support - safely host sha1, sha512, etc, in a single cache
-* Automatic content deduplication
-* Fault tolerance (immune to corruption, partial writes, process races, etc)
-* Consistency guarantees on read and write (full data verification)
-* Lockless, high-concurrency cache access
-* Streaming support
-* Promise support
-* Pretty darn fast -- sub-millisecond reads and writes including verification
-* Arbitrary metadata storage
-* Garbage collection and additional offline verification
-* Thorough test coverage
-* There's probably a bloom filter in there somewhere. Those are cool, right? šŸ¤”
-
-### Contributing
-
-The cacache team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
-
-All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
-
-Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
-
-Happy hacking!
-
-### API
-
-#### <a name="localized-api"></a> Using localized APIs
-
-cacache includes a complete API in English, with the same features as other
-translations. To use the English API as documented in this README, use
-`require('cacache/en')`. This is also currently the default if you do
-`require('cacache')`, but may change in the future.
-
-cacache also supports other languages! You can find the list of currently
-supported ones my looking in `./locales` in the source directory. You can use
-the API in that language with `require('cacache/<lang>')`.
-
-Want to add support for a new language? Please go ahead! You should be able to
-copy `./locales/en.js` and `./locales/en.json` and fill them in. Translating the
-`README.md` is a bit more work, but also appreciated if you get around to it. šŸ‘šŸ¼
-
-#### <a name="ls"></a> `> cacache.ls(cache) -> Promise<Object>`
-
-Lists info for all entries currently in the cache as a single large object. Each
-entry in the object will be keyed by the unique index key, with corresponding
-[`get.info`](#get-info) objects as the values.
-
-##### Example
-
-```javascript
-cacache.ls(cachePath).then(console.log)
-// Output
-{
- 'my-thing': {
- key: 'my-thing',
- integrity: 'sha512-BaSe64/EnCoDED+HAsh=='
- path: '.testcache/content/deadbeef', // joined with `cachePath`
- time: 12345698490,
- size: 4023948,
- metadata: {
- name: 'blah',
- version: '1.2.3',
- description: 'this was once a package but now it is my-thing'
- }
- },
- 'other-thing': {
- key: 'other-thing',
- integrity: 'sha1-ANothER+hasH=',
- path: '.testcache/content/bada55',
- time: 11992309289,
- size: 111112
- }
-}
-```
-
-#### <a name="ls-stream"></a> `> cacache.ls.stream(cache) -> Readable`
-
-Lists info for all entries currently in the cache as a single large object.
-
-This works just like [`ls`](#ls), except [`get.info`](#get-info) entries are
-returned as `'data'` events on the returned stream.
-
-##### Example
-
-```javascript
-cacache.ls.stream(cachePath).on('data', console.log)
-// Output
-{
- key: 'my-thing',
- integrity: 'sha512-BaSe64HaSh',
- path: '.testcache/content/deadbeef', // joined with `cachePath`
- time: 12345698490,
- size: 13423,
- metadata: {
- name: 'blah',
- version: '1.2.3',
- description: 'this was once a package but now it is my-thing'
- }
-}
-
-{
- key: 'other-thing',
- integrity: 'whirlpool-WoWSoMuchSupport',
- path: '.testcache/content/bada55',
- time: 11992309289,
- size: 498023984029
-}
-
-{
- ...
-}
-```
-
-#### <a name="get-data"></a> `> cacache.get(cache, key, [opts]) -> Promise({data, metadata, integrity})`
-
-Returns an object with the cached data, digest, and metadata identified by
-`key`. The `data` property of this object will be a `Buffer` instance that
-presumably holds some data that means something to you. I'm sure you know what
-to do with it! cacache just won't care.
-
-`integrity` is a [Subresource
-Integrity](#integrity)
-string. That is, a string that can be used to verify `data`, which looks like
-`<hash-algorithm>-<base64-integrity-hash>`.
-
-If there is no content identified by `key`, or if the locally-stored data does
-not pass the validity checksum, the promise will be rejected.
-
-A sub-function, `get.byDigest` may be used for identical behavior, except lookup
-will happen by integrity hash, bypassing the index entirely. This version of the
-function *only* returns `data` itself, without any wrapper.
-
-##### Note
-
-This function loads the entire cache entry into memory before returning it. If
-you're dealing with Very Large data, consider using [`get.stream`](#get-stream)
-instead.
-
-##### Example
-
-```javascript
-// Look up by key
-cache.get(cachePath, 'my-thing').then(console.log)
-// Output:
-{
- metadata: {
- thingName: 'my'
- },
- integrity: 'sha512-BaSe64HaSh',
- data: Buffer#<deadbeef>,
- size: 9320
-}
-
-// Look up by digest
-cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log)
-// Output:
-Buffer#<deadbeef>
-```
-
-#### <a name="get-stream"></a> `> cacache.get.stream(cache, key, [opts]) -> Readable`
-
-Returns a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) of the cached data identified by `key`.
-
-If there is no content identified by `key`, or if the locally-stored data does
-not pass the validity checksum, an error will be emitted.
-
-`metadata` and `integrity` events will be emitted before the stream closes, if
-you need to collect that extra data about the cached entry.
-
-A sub-function, `get.stream.byDigest` may be used for identical behavior,
-except lookup will happen by integrity hash, bypassing the index entirely. This
-version does not emit the `metadata` and `integrity` events at all.
-
-##### Example
-
-```javascript
-// Look up by key
-cache.get.stream(
- cachePath, 'my-thing'
-).on('metadata', metadata => {
- console.log('metadata:', metadata)
-}).on('integrity', integrity => {
- console.log('integrity:', integrity)
-}).pipe(
- fs.createWriteStream('./x.tgz')
-)
-// Outputs:
-metadata: { ... }
-integrity: 'sha512-SoMeDIGest+64=='
-
-// Look up by digest
-cache.get.stream.byDigest(
- cachePath, 'sha512-SoMeDIGest+64=='
-).pipe(
- fs.createWriteStream('./x.tgz')
-)
-```
-
-#### <a name="get-info"></a> `> cacache.get.info(cache, key) -> Promise`
-
-Looks up `key` in the cache index, returning information about the entry if
-one exists.
-
-##### Fields
-
-* `key` - Key the entry was looked up under. Matches the `key` argument.
-* `integrity` - [Subresource Integrity hash](#integrity) for the content this entry refers to.
-* `path` - Filesystem path relative to `cache` argument where content is stored.
-* `time` - Timestamp the entry was first added on.
-* `metadata` - User-assigned metadata associated with the entry/content.
-
-##### Example
-
-```javascript
-cacache.get.info(cachePath, 'my-thing').then(console.log)
-
-// Output
-{
- key: 'my-thing',
- integrity: 'sha256-MUSTVERIFY+ALL/THINGS=='
- path: '.testcache/content/deadbeef',
- time: 12345698490,
- size: 849234,
- metadata: {
- name: 'blah',
- version: '1.2.3',
- description: 'this was once a package but now it is my-thing'
- }
-}
-```
-
-#### <a name="get-hasContent"></a> `> cacache.get.hasContent(cache, integrity) -> Promise`
-
-Looks up a [Subresource Integrity hash](#integrity) in the cache. If content
-exists for this `integrity`, it will return an object, with the specific single integrity hash
-that was found in `sri` key, and the size of the found content as `size`. If no content exists for this integrity, it will return `false`.
-
-##### Example
-
-```javascript
-cacache.get.hasContent(cachePath, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log)
-
-// Output
-{
- sri: {
- source: 'sha256-MUSTVERIFY+ALL/THINGS==',
- algorithm: 'sha256',
- digest: 'MUSTVERIFY+ALL/THINGS==',
- options: []
- },
- size: 9001
-}
-
-cacache.get.hasContent(cachePath, 'sha521-NOT+IN/CACHE==').then(console.log)
-
-// Output
-false
-```
-
-#### <a name="put-data"></a> `> cacache.put(cache, key, data, [opts]) -> Promise`
-
-Inserts data passed to it into the cache. The returned Promise resolves with a
-digest (generated according to [`opts.algorithms`](#optsalgorithms)) after the
-cache entry has been successfully written.
-
-##### Example
-
-```javascript
-fetch(
- 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
-).then(data => {
- return cacache.put(cachePath, 'registry.npmjs.org|cacache@1.0.0', data)
-}).then(integrity => {
- console.log('integrity hash is', integrity)
-})
-```
-
-#### <a name="put-stream"></a> `> cacache.put.stream(cache, key, [opts]) -> Writable`
-
-Returns a [Writable
-Stream](https://nodejs.org/api/stream.html#stream_writable_streams) that inserts
-data written to it into the cache. Emits an `integrity` event with the digest of
-written contents when it succeeds.
-
-##### Example
-
-```javascript
-request.get(
- 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
-).pipe(
- cacache.put.stream(
- cachePath, 'registry.npmjs.org|cacache@1.0.0'
- ).on('integrity', d => console.log(`integrity digest is ${d}`))
-)
-```
-
-#### <a name="put-options"></a> `> cacache.put options`
-
-`cacache.put` functions have a number of options in common.
-
-##### `opts.metadata`
-
-Arbitrary metadata to be attached to the inserted key.
-
-##### `opts.size`
-
-If provided, the data stream will be verified to check that enough data was
-passed through. If there's more or less data than expected, insertion will fail
-with an `EBADSIZE` error.
-
-##### `opts.integrity`
-
-If present, the pre-calculated digest for the inserted content. If this option
-if provided and does not match the post-insertion digest, insertion will fail
-with an `EINTEGRITY` error.
-
-`algorithms` has no effect if this option is present.
-
-##### `opts.algorithms`
-
-Default: ['sha512']
-
-Hashing algorithms to use when calculating the [subresource integrity
-digest](#integrity)
-for inserted data. Can use any algorithm listed in `crypto.getHashes()` or
-`'omakase'`/`'ćŠä»»ć›ć—ć¾ć™'` to pick a random hash algorithm on each insertion. You
-may also use any anagram of `'modnar'` to use this feature.
-
-Currently only supports one algorithm at a time (i.e., an array length of
-exactly `1`). Has no effect if `opts.integrity` is present.
-
-##### `opts.uid`/`opts.gid`
-
-If provided, cacache will do its best to make sure any new files added to the
-cache use this particular `uid`/`gid` combination. This can be used,
-for example, to drop permissions when someone uses `sudo`, but cacache makes
-no assumptions about your needs here.
-
-##### `opts.memoize`
-
-Default: null
-
-If provided, cacache will memoize the given cache insertion in memory, bypassing
-any filesystem checks for that key or digest in future cache fetches. Nothing
-will be written to the in-memory cache unless this option is explicitly truthy.
-
-If `opts.memoize` is an object or a `Map`-like (that is, an object with `get`
-and `set` methods), it will be written to instead of the global memoization
-cache.
-
-Reading from disk data can be forced by explicitly passing `memoize: false` to
-the reader functions, but their default will be to read from memory.
-
-#### <a name="rm-all"></a> `> cacache.rm.all(cache) -> Promise`
-
-Clears the entire cache. Mainly by blowing away the cache directory itself.
-
-##### Example
-
-```javascript
-cacache.rm.all(cachePath).then(() => {
- console.log('THE APOCALYPSE IS UPON US šŸ˜±')
-})
-```
-
-#### <a name="rm-entry"></a> `> cacache.rm.entry(cache, key) -> Promise`
-
-Alias: `cacache.rm`
-
-Removes the index entry for `key`. Content will still be accessible if
-requested directly by content address ([`get.stream.byDigest`](#get-stream)).
-
-To remove the content itself (which might still be used by other entries), use
-[`rm.content`](#rm-content). Or, to safely vacuum any unused content, use
-[`verify`](#verify).
-
-##### Example
-
-```javascript
-cacache.rm.entry(cachePath, 'my-thing').then(() => {
- console.log('I did not like it anyway')
-})
-```
-
-#### <a name="rm-content"></a> `> cacache.rm.content(cache, integrity) -> Promise`
-
-Removes the content identified by `integrity`. Any index entries referring to it
-will not be usable again until the content is re-added to the cache with an
-identical digest.
-
-##### Example
-
-```javascript
-cacache.rm.content(cachePath, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => {
- console.log('data for my-thing is gone!')
-})
-```
-
-#### <a name="set-locale"></a> `> cacache.setLocale(locale)`
-
-Configure the language/locale used for messages and errors coming from cacache.
-The list of available locales is in the `./locales` directory in the project
-root.
-
-_Interested in contributing more languages! [Submit a PR](CONTRIBUTING.md)!_
-
-#### <a name="clear-memoized"></a> `> cacache.clearMemoized()`
-
-Completely resets the in-memory entry cache.
-
-#### <a name="tmp-mkdir"></a> `> tmp.mkdir(cache, opts) -> Promise<Path>`
-
-Returns a unique temporary directory inside the cache's `tmp` dir. This
-directory will use the same safe user assignment that all the other stuff use.
-
-Once the directory is made, it's the user's responsibility that all files within
-are made according to the same `opts.gid`/`opts.uid` settings that would be
-passed in. If not, you can ask cacache to do it for you by calling
-[`tmp.fix()`](#tmp-fix), which will fix all tmp directory permissions.
-
-If you want automatic cleanup of this directory, use
-[`tmp.withTmp()`](#with-tpm)
-
-##### Example
-
-```javascript
-cacache.tmp.mkdir(cache).then(dir => {
- fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
-})
-```
-
-#### <a name="with-tmp"></a> `> tmp.withTmp(cache, opts, cb) -> Promise`
-
-Creates a temporary directory with [`tmp.mkdir()`](#tmp-mkdir) and calls `cb`
-with it. The created temporary directory will be removed when the return value
-of `cb()` resolves -- that is, if you return a Promise from `cb()`, the tmp
-directory will be automatically deleted once that promise completes.
-
-The same caveats apply when it comes to managing permissions for the tmp dir's
-contents.
-
-##### Example
-
-```javascript
-cacache.tmp.withTmp(cache, dir => {
- return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
-}).then(() => {
- // `dir` no longer exists
-})
-```
-
-#### <a name="integrity"></a> Subresource Integrity Digests
-
-For content verification and addressing, cacache uses strings following the
-[Subresource
-Integrity spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).
-That is, any time cacache expects an `integrity` argument or option, it
-should be in the format `<hashAlgorithm>-<base64-hash>`.
-
-One deviation from the current spec is that cacache will support any hash
-algorithms supported by the underlying Node.js process. You can use
-`crypto.getHashes()` to see which ones you can use.
-
-##### Generating Digests Yourself
-
-If you have an existing content shasum, they are generally formatted as a
-hexadecimal string (that is, a sha1 would look like:
-`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). In order to be compatible with
-cacache, you'll need to convert this to an equivalent subresource integrity
-string. For this example, the corresponding hash would be:
-`sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`.
-
-If you want to generate an integrity string yourself for existing data, you can
-use something like this:
-
-```javascript
-const crypto = require('crypto')
-const hashAlgorithm = 'sha512'
-const data = 'foobarbaz'
-
-const integrity = (
- hashAlgorithm +
- '-' +
- crypto.createHash(hashAlgorithm).update(data).digest('base64')
-)
-```
-
-You can also use [`ssri`](https://npm.im/ssri) to have a richer set of functionality
-around SRI strings, including generation, parsing, and translating from existing
-hex-formatted strings.
-
-#### <a name="verify"></a> `> cacache.verify(cache, opts) -> Promise`
-
-Checks out and fixes up your cache:
-
-* Cleans up corrupted or invalid index entries.
-* Custom entry filtering options.
-* Garbage collects any content entries not referenced by the index.
-* Checks integrity for all content entries and removes invalid content.
-* Fixes cache ownership.
-* Removes the `tmp` directory in the cache and all its contents.
-
-When it's done, it'll return an object with various stats about the verification
-process, including amount of storage reclaimed, number of valid entries, number
-of entries removed, etc.
-
-##### Options
-
-* `opts.uid` - uid to assign to cache and its contents
-* `opts.gid` - gid to assign to cache and its contents
-* `opts.filter` - receives a formatted entry. Return false to remove it.
- Note: might be called more than once on the same entry.
-
-##### Example
-
-```sh
-echo somegarbage >> $CACHEPATH/content/deadbeef
-```
-
-```javascript
-cacache.verify(cachePath).then(stats => {
- // deadbeef collected, because of invalid checksum.
- console.log('cache is much nicer now! stats:', stats)
-})
-```
-
-#### <a name="verify-last-run"></a> `> cacache.verify.lastRun(cache) -> Promise`
-
-Returns a `Date` representing the last time `cacache.verify` was run on `cache`.
-
-##### Example
-
-```javascript
-cacache.verify(cachePath).then(() => {
- cacache.verify.lastRun(cachePath).then(lastTime => {
- console.log('cacache.verify was last called on' + lastTime)
- })
-})
-```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js
deleted file mode 100644
index b09ad5cb40..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/content/read.js
+++ /dev/null
@@ -1,115 +0,0 @@
-'use strict'
-
-const BB = require('bluebird')
-
-const contentPath = require('./path')
-const fs = require('graceful-fs')
-const PassThrough = require('stream').PassThrough
-const pipe = BB.promisify(require('mississippi').pipe)
-const ssri = require('ssri')
-const Y = require('../util/y.js')
-
-BB.promisifyAll(fs)
-
-module.exports = read
-function read (cache, integrity, opts) {
- opts = opts || {}
- return pickContentSri(cache, integrity).then(content => {
- const sri = content.sri
- const cpath = contentPath(cache, sri)
- return fs.readFileAsync(cpath, null).then(data => {
- if (typeof opts.size === 'number' && opts.size !== data.length) {
- throw sizeError(opts.size, data.length)
- } else if (ssri.checkData(data, sri)) {
- return data
- } else {
- throw integrityError(sri, cpath)
- }
- })
- })
-}
-
-module.exports.stream = readStream
-module.exports.readStream = readStream
-function readStream (cache, integrity, opts) {
- opts = opts || {}
- const stream = new PassThrough()
- pickContentSri(
- cache, integrity
- ).then(content => {
- const sri = content.sri
- return pipe(
- fs.createReadStream(contentPath(cache, sri)),
- ssri.integrityStream({
- integrity: sri,
- size: opts.size
- }),
- stream
- )
- }).catch(err => {
- stream.emit('error', err)
- })
- return stream
-}
-
-if (fs.copyFile) {
- module.exports.copy = copy
-}
-function copy (cache, integrity, dest, opts) {
- opts = opts || {}
- return pickContentSri(cache, integrity).then(content => {
- const sri = content.sri
- const cpath = contentPath(cache, sri)
- return fs.copyFileAsync(cpath, dest).then(() => content.size)
- })
-}
-
-module.exports.hasContent = hasContent
-function hasContent (cache, integrity) {
- if (!integrity) { return BB.resolve(false) }
- return pickContentSri(cache, integrity)
- .catch({code: 'ENOENT'}, () => false)
- .catch({code: 'EPERM'}, err => {
- if (process.platform !== 'win32') {
- throw err
- } else {
- return false
- }
- }).then(content => {
- if (!content.sri) return false
- return ({ sri: content.sri, size: content.stat.size })
- })
-}
-
-module.exports._pickContentSri = pickContentSri
-function pickContentSri (cache, integrity) {
- const sri = ssri.parse(integrity)
- // If `integrity` has multiple entries, pick the first digest
- // with available local data.
- const algo = sri.pickAlgorithm()
- const digests = sri[algo]
- if (digests.length <= 1) {
- const cpath = contentPath(cache, digests[0])
- return fs.lstatAsync(cpath).then(stat => ({ sri: digests[0], stat }))
- } else {
- return BB.any(sri[sri.pickAlgorithm()].map(meta => {
- return pickContentSri(cache, meta)
- }))
- }
-}
-
-function sizeError (expected, found) {
- var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
- err.expected = expected
- err.found = found
- err.code = 'EBADSIZE'
- return err
-}
-
-function integrityError (sri, path) {
- var err = new Error(Y`Integrity verification failed for ${sri} (${path})`)
- err.code = 'EINTEGRITY'
- err.sri = sri
- err.path = path
- return err
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js
deleted file mode 100644
index face0fe79c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/entry-index.js
+++ /dev/null
@@ -1,224 +0,0 @@
-'use strict'
-
-const BB = require('bluebird')
-
-const contentPath = require('./content/path')
-const crypto = require('crypto')
-const fixOwner = require('./util/fix-owner')
-const fs = require('graceful-fs')
-const hashToSegments = require('./util/hash-to-segments')
-const ms = require('mississippi')
-const path = require('path')
-const ssri = require('ssri')
-const Y = require('./util/y.js')
-
-const indexV = require('../package.json')['cache-version'].index
-
-const appendFileAsync = BB.promisify(fs.appendFile)
-const readFileAsync = BB.promisify(fs.readFile)
-const readdirAsync = BB.promisify(fs.readdir)
-const concat = ms.concat
-const from = ms.from
-
-module.exports.NotFoundError = class NotFoundError extends Error {
- constructor (cache, key) {
- super(Y`No cache entry for \`${key}\` found in \`${cache}\``)
- this.code = 'ENOENT'
- this.cache = cache
- this.key = key
- }
-}
-
-module.exports.insert = insert
-function insert (cache, key, integrity, opts) {
- opts = opts || {}
- const bucket = bucketPath(cache, key)
- const entry = {
- key,
- integrity: integrity && ssri.stringify(integrity),
- time: Date.now(),
- size: opts.size,
- metadata: opts.metadata
- }
- return fixOwner.mkdirfix(
- path.dirname(bucket), opts.uid, opts.gid
- ).then(() => {
- const stringified = JSON.stringify(entry)
- // NOTE - Cleverness ahoy!
- //
- // This works because it's tremendously unlikely for an entry to corrupt
- // another while still preserving the string length of the JSON in
- // question. So, we just slap the length in there and verify it on read.
- //
- // Thanks to @isaacs for the whiteboarding session that ended up with this.
- return appendFileAsync(
- bucket, `\n${hashEntry(stringified)}\t${stringified}`
- )
- }).then(
- () => fixOwner.chownr(bucket, opts.uid, opts.gid)
- ).catch({code: 'ENOENT'}, () => {
- // There's a class of race conditions that happen when things get deleted
- // during fixOwner, or between the two mkdirfix/chownr calls.
- //
- // It's perfectly fine to just not bother in those cases and lie
- // that the index entry was written. Because it's a cache.
- }).then(() => {
- return formatEntry(cache, entry)
- })
-}
-
-module.exports.find = find
-function find (cache, key) {
- const bucket = bucketPath(cache, key)
- return bucketEntries(cache, bucket).then(entries => {
- return entries.reduce((latest, next) => {
- if (next && next.key === key) {
- return formatEntry(cache, next)
- } else {
- return latest
- }
- }, null)
- }).catch(err => {
- if (err.code === 'ENOENT') {
- return null
- } else {
- throw err
- }
- })
-}
-
-module.exports.delete = del
-function del (cache, key, opts) {
- return insert(cache, key, null, opts)
-}
-
-module.exports.lsStream = lsStream
-function lsStream (cache) {
- const indexDir = bucketDir(cache)
- const stream = from.obj()
-
- // "/cachename/*"
- readdirOrEmpty(indexDir).map(bucket => {
- const bucketPath = path.join(indexDir, bucket)
-
- // "/cachename/<bucket 0xFF>/*"
- return readdirOrEmpty(bucketPath).map(subbucket => {
- const subbucketPath = path.join(bucketPath, subbucket)
-
- // "/cachename/<bucket 0xFF>/<bucket 0xFF>/*"
- return readdirOrEmpty(subbucketPath).map(entry => {
- const getKeyToEntry = bucketEntries(
- cache,
- path.join(subbucketPath, entry)
- ).reduce((acc, entry) => {
- acc.set(entry.key, entry)
- return acc
- }, new Map())
-
- return getKeyToEntry.then(reduced => {
- return Array.from(reduced.values()).map(
- entry => stream.push(formatEntry(cache, entry))
- )
- }).catch({code: 'ENOENT'}, nop)
- })
- })
- }).then(() => {
- stream.push(null)
- }, err => {
- stream.emit('error', err)
- })
-
- return stream
-}
-
-module.exports.ls = ls
-function ls (cache) {
- return BB.fromNode(cb => {
- lsStream(cache).on('error', cb).pipe(concat(entries => {
- cb(null, entries.reduce((acc, xs) => {
- acc[xs.key] = xs
- return acc
- }, {}))
- }))
- })
-}
-
-function bucketEntries (cache, bucket, filter) {
- return readFileAsync(
- bucket, 'utf8'
- ).then(data => {
- let entries = []
- data.split('\n').forEach(entry => {
- if (!entry) { return }
- const pieces = entry.split('\t')
- if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {
- // Hash is no good! Corruption or malice? Doesn't matter!
- // EJECT EJECT
- return
- }
- let obj
- try {
- obj = JSON.parse(pieces[1])
- } catch (e) {
- // Entry is corrupted!
- return
- }
- if (obj) {
- entries.push(obj)
- }
- })
- return entries
- })
-}
-
-module.exports._bucketDir = bucketDir
-function bucketDir (cache) {
- return path.join(cache, `index-v${indexV}`)
-}
-
-module.exports._bucketPath = bucketPath
-function bucketPath (cache, key) {
- const hashed = hashKey(key)
- return path.join.apply(path, [bucketDir(cache)].concat(
- hashToSegments(hashed)
- ))
-}
-
-module.exports._hashKey = hashKey
-function hashKey (key) {
- return hash(key, 'sha256')
-}
-
-module.exports._hashEntry = hashEntry
-function hashEntry (str) {
- return hash(str, 'sha1')
-}
-
-function hash (str, digest) {
- return crypto
- .createHash(digest)
- .update(str)
- .digest('hex')
-}
-
-function formatEntry (cache, entry) {
- // Treat null digests as deletions. They'll shadow any previous entries.
- if (!entry.integrity) { return null }
- return {
- key: entry.key,
- integrity: entry.integrity,
- path: contentPath(cache, entry.integrity),
- size: entry.size,
- time: entry.time,
- metadata: entry.metadata
- }
-}
-
-function readdirOrEmpty (dir) {
- return readdirAsync(dir)
- .catch({code: 'ENOENT'}, () => [])
- .catch({code: 'ENOTDIR'}, () => [])
-}
-
-function nop () {
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js
deleted file mode 100644
index e12e98188c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/lib/util/move-file.js
+++ /dev/null
@@ -1,55 +0,0 @@
-'use strict'
-
-const fs = require('graceful-fs')
-const BB = require('bluebird')
-const chmod = BB.promisify(fs.chmod)
-const unlink = BB.promisify(fs.unlink)
-let move
-let pinflight
-
-module.exports = moveFile
-function moveFile (src, dest) {
- // This isn't quite an fs.rename -- the assumption is that
- // if `dest` already exists, and we get certain errors while
- // trying to move it, we should just not bother.
- //
- // In the case of cache corruption, users will receive an
- // EINTEGRITY error elsewhere, and can remove the offending
- // content their own way.
- //
- // Note that, as the name suggests, this strictly only supports file moves.
- return BB.fromNode(cb => {
- fs.link(src, dest, err => {
- if (err) {
- if (err.code === 'EEXIST' || err.code === 'EBUSY') {
- // file already exists, so whatever
- } else if (err.code === 'EPERM' && process.platform === 'win32') {
- // file handle stayed open even past graceful-fs limits
- } else {
- return cb(err)
- }
- }
- return cb()
- })
- }).then(() => {
- // content should never change for any reason, so make it read-only
- return BB.join(unlink(src), process.platform !== 'win32' && chmod(dest, '0444'))
- }).catch(err => {
- if (process.platform !== 'win32') {
- throw err
- } else {
- if (!pinflight) { pinflight = require('promise-inflight') }
- return pinflight('cacache-move-file:' + dest, () => {
- return BB.promisify(fs.stat)(dest).catch(err => {
- if (err !== 'ENOENT') {
- // Something else is wrong here. Bail bail bail
- throw err
- }
- // file doesn't already exist! let's try a rename -> copy fallback
- if (!move) { move = require('move-concurrently') }
- return move(src, dest, { BB, fs })
- })
- })
- }
- })
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE
deleted file mode 100644
index 3c157f0b9d..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/LICENSE
+++ /dev/null
@@ -1,13 +0,0 @@
-Copyright (c) 2015, 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/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md
deleted file mode 100644
index 9859458f20..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# y18n
-
-[![Build Status][travis-image]][travis-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-[![NPM version][npm-image]][npm-url]
-[![js-standard-style][standard-image]][standard-url]
-
-The bare-bones internationalization library used by yargs.
-
-Inspired by [i18n](https://www.npmjs.com/package/i18n).
-
-## Examples
-
-_simple string translation:_
-
-```js
-var __ = require('y18n').__
-
-console.log(__('my awesome string %s', 'foo'))
-```
-
-output:
-
-`my awesome string foo`
-
-_pluralization support:_
-
-```js
-var __n = require('y18n').__n
-
-console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'))
-```
-
-output:
-
-`2 fishes foo`
-
-## JSON Language Files
-
-The JSON language files should be stored in a `./locales` folder.
-File names correspond to locales, e.g., `en.json`, `pirate.json`.
-
-When strings are observed for the first time they will be
-added to the JSON file corresponding to the current locale.
-
-## Methods
-
-### require('y18n')(config)
-
-Create an instance of y18n with the config provided, options include:
-
-* `directory`: the locale directory, default `./locales`.
-* `updateFiles`: should newly observed strings be updated in file, default `true`.
-* `locale`: what locale should be used.
-* `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`)
- be allowed if a file matching the locale does not exist (e.g. `en_US.json`),
- default `true`.
-
-### y18n.\_\_(str, arg, arg, arg)
-
-Print a localized string, `%s` will be replaced with `arg`s.
-
-### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg)
-
-Print a localized string with appropriate pluralization. If `%d` is provided
-in the string, the `count` will replace this placeholder.
-
-### y18n.setLocale(str)
-
-Set the current locale being used.
-
-### y18n.getLocale()
-
-What locale is currently being used?
-
-### y18n.updateLocale(obj)
-
-Update the current locale with the key value pairs in `obj`.
-
-## License
-
-ISC
-
-[travis-url]: https://travis-ci.org/yargs/y18n
-[travis-image]: https://img.shields.io/travis/yargs/y18n.svg
-[coveralls-url]: https://coveralls.io/github/yargs/y18n
-[coveralls-image]: https://img.shields.io/coveralls/yargs/y18n.svg
-[npm-url]: https://npmjs.org/package/y18n
-[npm-image]: https://img.shields.io/npm/v/y18n.svg
-[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
-[standard-url]: https://github.com/feross/standard
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js
deleted file mode 100644
index 91b159e342..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/index.js
+++ /dev/null
@@ -1,172 +0,0 @@
-var fs = require('fs')
-var path = require('path')
-var util = require('util')
-
-function Y18N (opts) {
- // configurable options.
- opts = opts || {}
- this.directory = opts.directory || './locales'
- this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true
- this.locale = opts.locale || 'en'
- this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true
-
- // internal stuff.
- this.cache = {}
- this.writeQueue = []
-}
-
-Y18N.prototype.__ = function () {
- var args = Array.prototype.slice.call(arguments)
- var str = args.shift()
- var cb = function () {} // start with noop.
-
- if (typeof args[args.length - 1] === 'function') cb = args.pop()
- cb = cb || function () {} // noop.
-
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- // we've observed a new string, update the language file.
- if (!this.cache[this.locale][str] && this.updateFiles) {
- this.cache[this.locale][str] = str
-
- // include the current directory and locale,
- // since these values could change before the
- // write is performed.
- this._enqueueWrite([this.directory, this.locale, cb])
- } else {
- cb()
- }
-
- return util.format.apply(util, [this.cache[this.locale][str] || str].concat(args))
-}
-
-Y18N.prototype._enqueueWrite = function (work) {
- this.writeQueue.push(work)
- if (this.writeQueue.length === 1) this._processWriteQueue()
-}
-
-Y18N.prototype._processWriteQueue = function () {
- var _this = this
- var work = this.writeQueue[0]
-
- // destructure the enqueued work.
- var directory = work[0]
- var locale = work[1]
- var cb = work[2]
-
- var languageFile = this._resolveLocaleFile(directory, locale)
- var serializedLocale = JSON.stringify(this.cache[locale], null, 2)
-
- fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
- _this.writeQueue.shift()
- if (_this.writeQueue.length > 0) _this._processWriteQueue()
- cb(err)
- })
-}
-
-Y18N.prototype._readLocaleFile = function () {
- var localeLookup = {}
- var languageFile = this._resolveLocaleFile(this.directory, this.locale)
-
- try {
- localeLookup = JSON.parse(fs.readFileSync(languageFile, 'utf-8'))
- } catch (err) {
- if (err instanceof SyntaxError) {
- err.message = 'syntax error in ' + languageFile
- }
-
- if (err.code === 'ENOENT') localeLookup = {}
- else throw err
- }
-
- this.cache[this.locale] = localeLookup
-}
-
-Y18N.prototype._resolveLocaleFile = function (directory, locale) {
- var file = path.resolve(directory, './', locale + '.json')
- if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
- // attempt fallback to language only
- var languageFile = path.resolve(directory, './', locale.split('_')[0] + '.json')
- if (this._fileExistsSync(languageFile)) file = languageFile
- }
- return file
-}
-
-// this only exists because fs.existsSync() "will be deprecated"
-// see https://nodejs.org/api/fs.html#fs_fs_existssync_path
-Y18N.prototype._fileExistsSync = function (file) {
- try {
- return fs.statSync(file).isFile()
- } catch (err) {
- return false
- }
-}
-
-Y18N.prototype.__n = function () {
- var args = Array.prototype.slice.call(arguments)
- var singular = args.shift()
- var plural = args.shift()
- var quantity = args.shift()
-
- var cb = function () {} // start with noop.
- if (typeof args[args.length - 1] === 'function') cb = args.pop()
-
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- var str = quantity === 1 ? singular : plural
- if (this.cache[this.locale][singular]) {
- str = this.cache[this.locale][singular][quantity === 1 ? 'one' : 'other']
- }
-
- // we've observed a new string, update the language file.
- if (!this.cache[this.locale][singular] && this.updateFiles) {
- this.cache[this.locale][singular] = {
- one: singular,
- other: plural
- }
-
- // include the current directory and locale,
- // since these values could change before the
- // write is performed.
- this._enqueueWrite([this.directory, this.locale, cb])
- } else {
- cb()
- }
-
- // if a %d placeholder is provided, add quantity
- // to the arguments expanded by util.format.
- var values = [str]
- if (~str.indexOf('%d')) values.push(quantity)
-
- return util.format.apply(util, values.concat(args))
-}
-
-Y18N.prototype.setLocale = function (locale) {
- this.locale = locale
-}
-
-Y18N.prototype.getLocale = function () {
- return this.locale
-}
-
-Y18N.prototype.updateLocale = function (obj) {
- if (!this.cache[this.locale]) this._readLocaleFile()
-
- for (var key in obj) {
- this.cache[this.locale][key] = obj[key]
- }
-}
-
-module.exports = function (opts) {
- var y18n = new Y18N(opts)
-
- // bind all functions to y18n, so that
- // they can be used in isolation.
- for (var key in y18n) {
- if (typeof y18n[key] === 'function') {
- y18n[key] = y18n[key].bind(y18n)
- }
- }
-
- return y18n
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json
deleted file mode 100644
index 8e45957e98..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/node_modules/y18n/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "y18n@^3.2.1",
- "_id": "y18n@3.2.1",
- "_inBundle": false,
- "_integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
- "_location": "/npm-profile/make-fetch-happen/cacache/y18n",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "y18n@^3.2.1",
- "name": "y18n",
- "escapedName": "y18n",
- "rawSpec": "^3.2.1",
- "saveSpec": null,
- "fetchSpec": "^3.2.1"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/cacache"
- ],
- "_resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "_shasum": "6d15fba884c08679c0d77e88e7759e811e07fa41",
- "_spec": "y18n@^3.2.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/yargs/y18n/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "the bare-bones internationalization library used by yargs",
- "devDependencies": {
- "chai": "^3.4.1",
- "coveralls": "^2.11.6",
- "mocha": "^2.3.4",
- "nyc": "^6.1.1",
- "rimraf": "^2.5.0",
- "standard": "^5.4.1"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/yargs/y18n",
- "keywords": [
- "i18n",
- "internationalization",
- "yargs"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "y18n",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/yargs/y18n.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "test": "nyc mocha"
- },
- "version": "3.2.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json
deleted file mode 100644
index 7f7ad4057e..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/cacache/package.json
+++ /dev/null
@@ -1,126 +0,0 @@
-{
- "_from": "cacache@^9.2.9",
- "_id": "cacache@9.3.0",
- "_inBundle": false,
- "_integrity": "sha512-Vbi8J1XfC8v+FbQ6QkOtKXsHpPnB0i9uMeYFJoj40EbdOsEqWB3DPpNjfsnYBkqOPYA8UvrqH6FZPpBP0zdN7g==",
- "_location": "/npm-profile/make-fetch-happen/cacache",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "cacache@^9.2.9",
- "name": "cacache",
- "escapedName": "cacache",
- "rawSpec": "^9.2.9",
- "saveSpec": null,
- "fetchSpec": "^9.2.9"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/cacache/-/cacache-9.3.0.tgz",
- "_shasum": "9cd58f2dd0b8c8cacf685b7067b416d6d3cf9db1",
- "_spec": "cacache@^9.2.9",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/cacache/issues"
- },
- "bundleDependencies": false,
- "cache-version": {
- "content": "2",
- "index": "5"
- },
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "contributors": [
- {
- "name": "Charlotte Spencer",
- "email": "charlottelaspencer@gmail.com"
- },
- {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org"
- }
- ],
- "dependencies": {
- "bluebird": "^3.5.0",
- "chownr": "^1.0.1",
- "glob": "^7.1.2",
- "graceful-fs": "^4.1.11",
- "lru-cache": "^4.1.1",
- "mississippi": "^1.3.0",
- "mkdirp": "^0.5.1",
- "move-concurrently": "^1.0.1",
- "promise-inflight": "^1.0.1",
- "rimraf": "^2.6.1",
- "ssri": "^4.1.6",
- "unique-filename": "^1.1.0",
- "y18n": "^3.2.1"
- },
- "deprecated": false,
- "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",
- "devDependencies": {
- "benchmark": "^2.1.4",
- "chalk": "^2.0.1",
- "cross-env": "^5.0.1",
- "nyc": "^11.1.0",
- "require-inject": "^1.4.2",
- "safe-buffer": "^5.1.1",
- "standard": "^10.0.2",
- "standard-version": "^4.2.0",
- "tacks": "^1.2.2",
- "tap": "^10.7.0",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js",
- "lib",
- "locales"
- ],
- "homepage": "https://github.com/zkat/cacache#readme",
- "keywords": [
- "cache",
- "caching",
- "content-addressable",
- "sri",
- "sri hash",
- "subresource integrity",
- "cache",
- "storage",
- "store",
- "file store",
- "filesystem",
- "disk cache",
- "disk storage"
- ],
- "license": "CC0-1.0",
- "main": "index.js",
- "name": "cacache",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/cacache.git"
- },
- "scripts": {
- "benchmarks": "node test/benchmarks",
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard lib test *.js",
- "release": "standard-version -s",
- "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js",
- "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "9.3.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md
deleted file mode 100644
index 5dc07ac58c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# Can I cache this? [![Build Status](https://travis-ci.org/pornel/http-cache-semantics.svg?branch=master)](https://travis-ci.org/pornel/http-cache-semantics)
-
-`CachePolicy` tells when responses can be reused from a cache, taking into account [HTTP RFC 7234](http://httpwg.org/specs/rfc7234.html) rules for user agents and shared caches. It's aware of many tricky details such as the `Vary` header, proxy revalidation, and authenticated responses.
-
-## Usage
-
-Cacheability of an HTTP response depends on how it was requested, so both `request` and `response` are required to create the policy.
-
-```js
-const policy = new CachePolicy(request, response, options);
-
-if (!policy.storable()) {
- // throw the response away, it's not usable at all
- return;
-}
-
-// Cache the data AND the policy object in your cache
-// (this is pseudocode, roll your own cache (lru-cache package works))
-letsPretendThisIsSomeCache.set(request.url, {policy, response}, policy.timeToLive());
-```
-
-```js
-// And later, when you receive a new request:
-const {policy, response} = letsPretendThisIsSomeCache.get(newRequest.url);
-
-// It's not enough that it exists in the cache, it has to match the new request, too:
-if (policy && policy.satisfiesWithoutRevalidation(newRequest)) {
- // OK, the previous response can be used to respond to the `newRequest`.
- // Response headers have to be updated, e.g. to add Age and remove uncacheable headers.
- response.headers = policy.responseHeaders();
- return response;
-}
-```
-
-It may be surprising, but it's not enough for an HTTP response to be [fresh](#yo-fresh) to satisfy a request. It may need to match request headers specified in `Vary`. Even a matching fresh response may still not be usable if the new request restricted cacheability, etc.
-
-The key method is `satisfiesWithoutRevalidation(newRequest)`, which checks whether the `newRequest` is compatible with the original request and whether all caching conditions are met.
-
-### Constructor options
-
-Request and response must have a `headers` property with all header names in lower case. `url`, `status` and `method` are optional (defaults are any URL, status `200`, and `GET` method).
-
-```js
-const request = {
- url: '/',
- method: 'GET',
- headers: {
- accept: '*/*',
- },
-};
-
-const response = {
- status: 200,
- headers: {
- 'cache-control': 'public, max-age=7234',
- },
-};
-
-const options = {
- shared: true,
- cacheHeuristic: 0.1,
- immutableMinTimeToLive: 24*3600*1000, // 24h
- ignoreCargoCult: false,
-};
-```
-
-If `options.shared` is `true` (default), then the response is evaluated from a perspective of a shared cache (i.e. `private` is not cacheable and `s-maxage` is respected). If `options.shared` is `false`, then the response is evaluated from a perspective of a single-user cache (i.e. `private` is cacheable and `s-maxage` is ignored).
-
-`options.cacheHeuristic` is a fraction of response's age that is used as a fallback cache duration. The default is 0.1 (10%), e.g. if a file hasn't been modified for 100 days, it'll be cached for 100*0.1 = 10 days.
-
-`options.immutableMinTimeToLive` is a number of milliseconds to assume as the default time to cache responses with `Cache-Control: immutable`. Note that [per RFC](http://httpwg.org/http-extensions/immutable.html) these can become stale, so `max-age` still overrides the default.
-
-If `options.ignoreCargoCult` is true, common anti-cache directives will be completely ignored if the non-standard `pre-check` and `post-check` directives are present. These two useless directives are most commonly found in bad StackOverflow answers and PHP's "session limiter" defaults.
-
-### `storable()`
-
-Returns `true` if the response can be stored in a cache. If it's `false` then you MUST NOT store either the request or the response.
-
-### `satisfiesWithoutRevalidation(newRequest)`
-
-This is the most important method. Use this method to check whether the cached response is still fresh in the context of the new request.
-
-If it returns `true`, then the given `request` matches the original response this cache policy has been created with, and the response can be reused without contacting the server. Note that the old response can't be returned without being updated, see `responseHeaders()`.
-
-If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), or may require to be refreshed first (see `revalidationHeaders()`).
-
-### `responseHeaders()`
-
-Returns updated, filtered set of response headers to return to clients receiving the cached response. This function is necessary, because proxies MUST always remove hop-by-hop headers (such as `TE` and `Connection`) and update response's `Age` to avoid doubling cache time.
-
-```js
-cachedResponse.headers = cachePolicy.responseHeaders(cachedResponse);
-```
-
-### `timeToLive()`
-
-Returns approximate time in *milliseconds* until the response becomes stale (i.e. not fresh).
-
-After that time (when `timeToLive() <= 0`) the response might not be usable without revalidation. However, there are exceptions, e.g. a client can explicitly allow stale responses, so always check with `satisfiesWithoutRevalidation()`.
-
-### `toObject()`/`fromObject(json)`
-
-Chances are you'll want to store the `CachePolicy` object along with the cached response. `obj = policy.toObject()` gives a plain JSON-serializable object. `policy = CachePolicy.fromObject(obj)` creates an instance from it.
-
-### Refreshing stale cache (revalidation)
-
-When a cached response has expired, it can be made fresh again by making a request to the origin server. The server may respond with status 304 (Not Modified) without sending the response body again, saving bandwidth.
-
-The following methods help perform the update efficiently and correctly.
-
-#### `revalidationHeaders(newRequest)`
-
-Returns updated, filtered set of request headers to send to the origin server to check if the cached response can be reused. These headers allow the origin server to return status 304 indicating the response is still fresh. All headers unrelated to caching are passed through as-is.
-
-Use this method when updating cache from the origin server.
-
-```js
-updateRequest.headers = cachePolicy.revalidationHeaders(updateRequest);
-```
-
-#### `revalidatedPolicy(revalidationRequest, revalidationResponse)`
-
-Use this method to update the cache after receiving a new response from the origin server. It returns an object with two keys:
-
-* `policy` ā€” A new `CachePolicy` with HTTP headers updated from `revalidationResponse`. You can always replace the old cached `CachePolicy` with the new one.
-* `modified` ā€” Boolean indicating whether the response body has changed.
- * If `false`, then a valid 304 Not Modified response has been received, and you can reuse the old cached response body.
- * If `true`, you should use new response's body (if present), or make another request to the origin server without any conditional headers (i.e. don't use `revalidationHeaders()` this time) to get the new resource.
-
-```js
-// When serving requests from cache:
-const {oldPolicy, oldResponse} = letsPretendThisIsSomeCache.get(newRequest.url);
-
-if (!oldPolicy.satisfiesWithoutRevalidation(newRequest)) {
- // Change the request to ask the origin server if the cached response can be used
- newRequest.headers = oldPolicy.revalidationHeaders(newRequest);
-
- // Send request to the origin server. The server may respond with status 304
- const newResponse = await makeRequest(newResponse);
-
- // Create updated policy and combined response from the old and new data
- const {policy, modified} = oldPolicy.revalidatedPolicy(newRequest, newResponse);
- const response = modified ? newResponse : oldResponse;
-
- // Update the cache with the newer/fresher response
- letsPretendThisIsSomeCache.set(newRequest.url, {policy, response}, policy.timeToLive());
-
- // And proceed returning cached response as usual
- response.headers = policy.responseHeaders();
- return response;
-}
-```
-
-# Yo, FRESH
-
-![satisfiesWithoutRevalidation](fresh.jpg)
-
-## Implemented
-
-* `Cache-Control` response header with all the quirks.
-* `Expires` with check for bad clocks.
-* `Pragma` response header.
-* `Age` response header.
-* `Vary` response header.
-* Default cacheability of statuses and methods.
-* Requests for stale data.
-* Filtering of hop-by-hop headers.
-* Basic revalidation request
-
-## Unimplemented
-
-* Range requests, If-Range
-* Revalidation of multiple representations
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js
deleted file mode 100644
index 8a5bcab597..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js
+++ /dev/null
@@ -1,497 +0,0 @@
-'use strict';
-// rfc7231 6.1
-const statusCodeCacheableByDefault = [200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501];
-
-// This implementation does not understand partial responses (206)
-const understoodStatuses = [200, 203, 204, 300, 301, 302, 303, 307, 308, 404, 405, 410, 414, 501];
-
-const hopByHopHeaders = {'connection':true, 'keep-alive':true, 'proxy-authenticate':true, 'proxy-authorization':true, 'te':true, 'trailer':true, 'transfer-encoding':true, 'upgrade':true};
-const excludedFromRevalidationUpdate = {
- // Since the old body is reused, it doesn't make sense to change properties of the body
- 'content-length': true, 'content-encoding': true, 'transfer-encoding': true,
- 'content-range': true,
-};
-
-function parseCacheControl(header) {
- const cc = {};
- if (!header) return cc;
-
- // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),
- // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale
- const parts = header.trim().split(/\s*,\s*/); // TODO: lame parsing
- for(const part of parts) {
- const [k,v] = part.split(/\s*=\s*/, 2);
- cc[k] = (v === undefined) ? true : v.replace(/^"|"$/g, ''); // TODO: lame unquoting
- }
-
- return cc;
-}
-
-function formatCacheControl(cc) {
- let parts = [];
- for(const k in cc) {
- const v = cc[k];
- parts.push(v === true ? k : k + '=' + v);
- }
- if (!parts.length) {
- return undefined;
- }
- return parts.join(', ');
-}
-
-module.exports = class CachePolicy {
- constructor(req, res, {shared, cacheHeuristic, immutableMinTimeToLive, ignoreCargoCult, _fromObject} = {}) {
- if (_fromObject) {
- this._fromObject(_fromObject);
- return;
- }
-
- if (!res || !res.headers) {
- throw Error("Response headers missing");
- }
- this._assertRequestHasHeaders(req);
-
- this._responseTime = this.now();
- this._isShared = shared !== false;
- this._cacheHeuristic = undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE
- this._immutableMinTtl = undefined !== immutableMinTimeToLive ? immutableMinTimeToLive : 24*3600*1000;
-
- this._status = 'status' in res ? res.status : 200;
- this._resHeaders = res.headers;
- this._rescc = parseCacheControl(res.headers['cache-control']);
- this._method = 'method' in req ? req.method : 'GET';
- this._url = req.url;
- this._host = req.headers.host;
- this._noAuthorization = !req.headers.authorization;
- this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used
- this._reqcc = parseCacheControl(req.headers['cache-control']);
-
- // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,
- // so there's no point stricly adhering to the blindly copy&pasted directives.
- if (ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc) {
- delete this._rescc['pre-check'];
- delete this._rescc['post-check'];
- delete this._rescc['no-cache'];
- delete this._rescc['no-store'];
- delete this._rescc['must-revalidate'];
- this._resHeaders = Object.assign({}, this._resHeaders, {'cache-control': formatCacheControl(this._rescc)});
- delete this._resHeaders.expires;
- delete this._resHeaders.pragma;
- }
-
- // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive
- // as having the same effect as if "Cache-Control: no-cache" were present (see Section 5.2.1).
- if (!res.headers['cache-control'] && /no-cache/.test(res.headers.pragma)) {
- this._rescc['no-cache'] = true;
- }
- }
-
- now() {
- return Date.now();
- }
-
- storable() {
- // The "no-store" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.
- return !!(!this._reqcc['no-store'] &&
- // A cache MUST NOT store a response to any request, unless:
- // The request method is understood by the cache and defined as being cacheable, and
- ('GET' === this._method || 'HEAD' === this._method || ('POST' === this._method && this._hasExplicitExpiration())) &&
- // the response status code is understood by the cache, and
- understoodStatuses.indexOf(this._status) !== -1 &&
- // the "no-store" cache directive does not appear in request or response header fields, and
- !this._rescc['no-store'] &&
- // the "private" response directive does not appear in the response, if the cache is shared, and
- (!this._isShared || !this._rescc.private) &&
- // the Authorization header field does not appear in the request, if the cache is shared,
- (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) &&
- // the response either:
- (
- // contains an Expires header field, or
- this._resHeaders.expires ||
- // contains a max-age response directive, or
- // contains a s-maxage response directive and the cache is shared, or
- // contains a public response directive.
- this._rescc.public || this._rescc['max-age'] || this._rescc['s-maxage'] ||
- // has a status code that is defined as cacheable by default
- statusCodeCacheableByDefault.indexOf(this._status) !== -1
- ));
- }
-
- _hasExplicitExpiration() {
- // 4.2.1 Calculating Freshness Lifetime
- return (this._isShared && this._rescc['s-maxage']) ||
- this._rescc['max-age'] ||
- this._resHeaders.expires;
- }
-
- _assertRequestHasHeaders(req) {
- if (!req || !req.headers) {
- throw Error("Request headers missing");
- }
- }
-
- satisfiesWithoutRevalidation(req) {
- this._assertRequestHasHeaders(req);
-
- // When presented with a request, a cache MUST NOT reuse a stored response, unless:
- // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,
- // unless the stored response is successfully validated (Section 4.3), and
- const requestCC = parseCacheControl(req.headers['cache-control']);
- if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {
- return false;
- }
-
- if (requestCC['max-age'] && this.age() > requestCC['max-age']) {
- return false;
- }
-
- if (requestCC['min-fresh'] && this.timeToLive() < 1000*requestCC['min-fresh']) {
- return false;
- }
-
- // the stored response is either:
- // fresh, or allowed to be served stale
- if (this.stale()) {
- const allowsStale = requestCC['max-stale'] && !this._rescc['must-revalidate'] && (true === requestCC['max-stale'] || requestCC['max-stale'] > this.age() - this.maxAge());
- if (!allowsStale) {
- return false;
- }
- }
-
- return this._requestMatches(req, false);
- }
-
- _requestMatches(req, allowHeadMethod) {
- // The presented effective request URI and that of the stored response match, and
- return (!this._url || this._url === req.url) &&
- (this._host === req.headers.host) &&
- // the request method associated with the stored response allows it to be used for the presented request, and
- (!req.method || this._method === req.method || (allowHeadMethod && 'HEAD' === req.method)) &&
- // selecting header fields nominated by the stored response (if any) match those presented, and
- this._varyMatches(req);
- }
-
- _allowsStoringAuthenticated() {
- // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.
- return this._rescc['must-revalidate'] || this._rescc.public || this._rescc['s-maxage'];
- }
-
- _varyMatches(req) {
- if (!this._resHeaders.vary) {
- return true;
- }
-
- // A Vary header field-value of "*" always fails to match
- if (this._resHeaders.vary === '*') {
- return false;
- }
-
- const fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
- for(const name of fields) {
- if (req.headers[name] !== this._reqHeaders[name]) return false;
- }
- return true;
- }
-
- _copyWithoutHopByHopHeaders(inHeaders) {
- const headers = {};
- for(const name in inHeaders) {
- if (hopByHopHeaders[name]) continue;
- headers[name] = inHeaders[name];
- }
- // 9.1. Connection
- if (inHeaders.connection) {
- const tokens = inHeaders.connection.trim().split(/\s*,\s*/);
- for(const name of tokens) {
- delete headers[name];
- }
- }
- if (headers.warning) {
- const warnings = headers.warning.split(/,/).filter(warning => {
- return !/^\s*1[0-9][0-9]/.test(warning);
- });
- if (!warnings.length) {
- delete headers.warning;
- } else {
- headers.warning = warnings.join(',').trim();
- }
- }
- return headers;
- }
-
- responseHeaders() {
- const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);
- const age = this.age();
-
- // A cache SHOULD generate 113 warning if it heuristically chose a freshness
- // lifetime greater than 24 hours and the response's age is greater than 24 hours.
- if (age > 3600*24 && !this._hasExplicitExpiration() && this.maxAge() > 3600*24) {
- headers.warning = (headers.warning ? `${headers.warning}, ` : '') + '113 - "rfc7234 5.5.4"';
- }
- headers.age = `${Math.round(age)}`;
- return headers;
- }
-
- /**
- * Value of the Date response header or current time if Date was demed invalid
- * @return timestamp
- */
- date() {
- const dateValue = Date.parse(this._resHeaders.date)
- const maxClockDrift = 8*3600*1000;
- if (Number.isNaN(dateValue) || dateValue < this._responseTime-maxClockDrift || dateValue > this._responseTime+maxClockDrift) {
- return this._responseTime;
- }
- return dateValue;
- }
-
- /**
- * Value of the Age header, in seconds, updated for the current time.
- * May be fractional.
- *
- * @return Number
- */
- age() {
- let age = Math.max(0, (this._responseTime - this.date())/1000);
- if (this._resHeaders.age) {
- let ageValue = this._ageValue();
- if (ageValue > age) age = ageValue;
- }
-
- const residentTime = (this.now() - this._responseTime)/1000;
- return age + residentTime;
- }
-
- _ageValue() {
- const ageValue = parseInt(this._resHeaders.age);
- return isFinite(ageValue) ? ageValue : 0;
- }
-
- /**
- * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.
- *
- * For an up-to-date value, see `timeToLive()`.
- *
- * @return Number
- */
- maxAge() {
- if (!this.storable() || this._rescc['no-cache']) {
- return 0;
- }
-
- // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default
- // so this implementation requires explicit opt-in via public header
- if (this._isShared && (this._resHeaders['set-cookie'] && !this._rescc.public && !this._rescc.immutable)) {
- return 0;
- }
-
- if (this._resHeaders.vary === '*') {
- return 0;
- }
-
- if (this._isShared) {
- if (this._rescc['proxy-revalidate']) {
- return 0;
- }
- // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.
- if (this._rescc['s-maxage']) {
- return parseInt(this._rescc['s-maxage'], 10);
- }
- }
-
- // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.
- if (this._rescc['max-age']) {
- return parseInt(this._rescc['max-age'], 10);
- }
-
- const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;
-
- const dateValue = this.date();
- if (this._resHeaders.expires) {
- const expires = Date.parse(this._resHeaders.expires);
- // A cache recipient MUST interpret invalid date formats, especially the value "0", as representing a time in the past (i.e., "already expired").
- if (Number.isNaN(expires) || expires < dateValue) {
- return 0;
- }
- return Math.max(defaultMinTtl, (expires - dateValue)/1000);
- }
-
- if (this._resHeaders['last-modified']) {
- const lastModified = Date.parse(this._resHeaders['last-modified']);
- if (isFinite(lastModified) && dateValue > lastModified) {
- return Math.max(defaultMinTtl, (dateValue - lastModified)/1000 * this._cacheHeuristic);
- }
- }
-
- return defaultMinTtl;
- }
-
- timeToLive() {
- return Math.max(0, this.maxAge() - this.age())*1000;
- }
-
- stale() {
- return this.maxAge() <= this.age();
- }
-
- static fromObject(obj) {
- return new this(undefined, undefined, {_fromObject:obj});
- }
-
- _fromObject(obj) {
- if (this._responseTime) throw Error("Reinitialized");
- if (!obj || obj.v !== 1) throw Error("Invalid serialization");
-
- this._responseTime = obj.t;
- this._isShared = obj.sh;
- this._cacheHeuristic = obj.ch;
- this._immutableMinTtl = obj.imm !== undefined ? obj.imm : 24*3600*1000;
- this._status = obj.st;
- this._resHeaders = obj.resh;
- this._rescc = obj.rescc;
- this._method = obj.m;
- this._url = obj.u;
- this._host = obj.h;
- this._noAuthorization = obj.a;
- this._reqHeaders = obj.reqh;
- this._reqcc = obj.reqcc;
- }
-
- toObject() {
- return {
- v:1,
- t: this._responseTime,
- sh: this._isShared,
- ch: this._cacheHeuristic,
- imm: this._immutableMinTtl,
- st: this._status,
- resh: this._resHeaders,
- rescc: this._rescc,
- m: this._method,
- u: this._url,
- h: this._host,
- a: this._noAuthorization,
- reqh: this._reqHeaders,
- reqcc: this._reqcc,
- };
- }
-
- /**
- * Headers for sending to the origin server to revalidate stale response.
- * Allows server to return 304 to allow reuse of the previous response.
- *
- * Hop by hop headers are always stripped.
- * Revalidation headers may be added or removed, depending on request.
- */
- revalidationHeaders(incomingReq) {
- this._assertRequestHasHeaders(incomingReq);
- const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
-
- // This implementation does not understand range requests
- delete headers['if-range'];
-
- if (!this._requestMatches(incomingReq, true) || !this.storable()) { // revalidation allowed via HEAD
- // not for the same resource, or wasn't allowed to be cached anyway
- delete headers['if-none-match'];
- delete headers['if-modified-since'];
- return headers;
- }
-
- /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */
- if (this._resHeaders.etag) {
- headers['if-none-match'] = headers['if-none-match'] ? `${headers['if-none-match']}, ${this._resHeaders.etag}` : this._resHeaders.etag;
- }
-
- // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.
- const forbidsWeakValidators = headers['accept-ranges'] || headers['if-match'] || headers['if-unmodified-since'] || (this._method && this._method != 'GET');
-
- /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.
- Note: This implementation does not understand partial responses (206) */
- if (forbidsWeakValidators) {
- delete headers['if-modified-since'];
-
- if (headers['if-none-match']) {
- const etags = headers['if-none-match'].split(/,/).filter(etag => {
- return !/^\s*W\//.test(etag);
- });
- if (!etags.length) {
- delete headers['if-none-match'];
- } else {
- headers['if-none-match'] = etags.join(',').trim();
- }
- }
- } else if (this._resHeaders['last-modified'] && !headers['if-modified-since']) {
- headers['if-modified-since'] = this._resHeaders['last-modified'];
- }
-
- return headers;
- }
-
- /**
- * Creates new CachePolicy with information combined from the previews response,
- * and the new revalidation response.
- *
- * Returns {policy, modified} where modified is a boolean indicating
- * whether the response body has been modified, and old cached body can't be used.
- *
- * @return {Object} {policy: CachePolicy, modified: Boolean}
- */
- revalidatedPolicy(request, response) {
- this._assertRequestHasHeaders(request);
- if (!response || !response.headers) {
- throw Error("Response headers missing");
- }
-
- // These aren't going to be supported exactly, since one CachePolicy object
- // doesn't know about all the other cached objects.
- let matches = false;
- if (response.status !== undefined && response.status != 304) {
- matches = false;
- } else if (response.headers.etag && !/^\s*W\//.test(response.headers.etag)) {
- // "All of the stored responses with the same strong validator are selected.
- // If none of the stored responses contain the same strong validator,
- // then the cache MUST NOT use the new response to update any stored responses."
- matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//,'') === response.headers.etag;
- } else if (this._resHeaders.etag && response.headers.etag) {
- // "If the new response contains a weak validator and that validator corresponds
- // to one of the cache's stored responses,
- // then the most recent of those matching stored responses is selected for update."
- matches = this._resHeaders.etag.replace(/^\s*W\//,'') === response.headers.etag.replace(/^\s*W\//,'');
- } else if (this._resHeaders['last-modified']) {
- matches = this._resHeaders['last-modified'] === response.headers['last-modified'];
- } else {
- // If the new response does not include any form of validator (such as in the case where
- // a client generates an If-Modified-Since request from a source other than the Last-Modified
- // response header field), and there is only one stored response, and that stored response also
- // lacks a validator, then that stored response is selected for update.
- if (!this._resHeaders.etag && !this._resHeaders['last-modified'] &&
- !response.headers.etag && !response.headers['last-modified']) {
- matches = true;
- }
- }
-
- if (!matches) {
- return {
- policy: new this.constructor(request, response),
- modified: true,
- }
- }
-
- // use other header fields provided in the 304 (Not Modified) response to replace all instances
- // of the corresponding header fields in the stored response.
- const headers = {};
- for(const k in this._resHeaders) {
- headers[k] = k in response.headers && !excludedFromRevalidationUpdate[k] ? response.headers[k] : this._resHeaders[k];
- }
-
- const newResponse = Object.assign({}, response, {
- status: this._status,
- method: this._method,
- headers,
- });
- return {
- policy: new this.constructor(request, newResponse),
- modified: false,
- };
- }
-};
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json
deleted file mode 100644
index 0b18a6f9f6..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "http-cache-semantics@^3.7.3",
- "_id": "http-cache-semantics@3.8.0",
- "_inBundle": false,
- "_integrity": "sha512-HGQFfBdru2fj/dwPn1oLx1fy6QMPeTAD1yzKcxD4l5biw+5QVaui/ehCqxaitoKJC/vHMLKv3Yd+nTlxboOJig==",
- "_location": "/npm-profile/make-fetch-happen/http-cache-semantics",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "http-cache-semantics@^3.7.3",
- "name": "http-cache-semantics",
- "escapedName": "http-cache-semantics",
- "rawSpec": "^3.7.3",
- "saveSpec": null,
- "fetchSpec": "^3.7.3"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.0.tgz",
- "_shasum": "1e3ce248730e189ac692a6697b9e3fdea2ff8da3",
- "_spec": "http-cache-semantics@^3.7.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Kornel Lesiński",
- "email": "kornel@geekhood.net",
- "url": "https://kornel.ski/"
- },
- "bugs": {
- "url": "https://github.com/pornel/http-cache-semantics/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Parses Cache-Control and other headers. Helps building correct HTTP caches and proxies",
- "devDependencies": {
- "babel-cli": "^6.24.1",
- "babel-preset-env": "^1.5.2",
- "mocha": "^3.4.2"
- },
- "files": [
- "node4/index.js",
- "index.js",
- "test"
- ],
- "homepage": "https://github.com/pornel/http-cache-semantics#readme",
- "license": "BSD-2-Clause",
- "main": "node4/index.js",
- "name": "http-cache-semantics",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/pornel/http-cache-semantics.git"
- },
- "scripts": {
- "compile": "babel -d node4/ index.js; babel -d node4/test test",
- "prepublish": "npm run compile",
- "test": "npm run compile; mocha node4/test"
- },
- "version": "3.8.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js
deleted file mode 100644
index 643567d962..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-
-describe('Other', function() {
- it('Thaw wrong object', function() {
- assert.throws(() => {
- CachePolicy.fromObject({});
- });
- });
-
- it('Missing headers', function() {
- assert.throws(() => {
- new CachePolicy({});
- });
- assert.throws(() => {
- new CachePolicy({headers:{}}, {});
- });
-
- const cache = new CachePolicy({headers:{}}, {headers:{}});
- assert.throws(() => {
- cache.satisfiesWithoutRevalidation({});
- });
- assert.throws(() => {
- cache.revalidatedPolicy({});
- });
- assert.throws(() => {
- cache.revalidatedPolicy({headers:{}}, {});
- });
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js
deleted file mode 100644
index 315f114ae8..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js
+++ /dev/null
@@ -1,301 +0,0 @@
-'use strict';
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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.
- */
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('okhttp tests', function(){
- it('responseCachingByResponseCode', function(){
- // Test each documented HTTP/1.1 code, plus the first unused value in each range.
- // http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
-
- assertCached(false, 100);
- assertCached(false, 101);
- assertCached(false, 102);
- assertCached(true, 200);
- assertCached(false, 201);
- assertCached(false, 202);
- assertCached(true, 203);
- assertCached(true, 204);
- assertCached(false, 205);
- assertCached(false, 206); //Electing to not cache partial responses
- assertCached(false, 207);
- assertCached(true, 300);
- assertCached(true, 301);
- assertCached(true, 302);
- // assertCached(false, 303);
- assertCached(false, 304);
- assertCached(false, 305);
- assertCached(false, 306);
- assertCached(true, 307);
- assertCached(true, 308);
- assertCached(false, 400);
- assertCached(false, 401);
- assertCached(false, 402);
- assertCached(false, 403);
- assertCached(true, 404);
- assertCached(true, 405);
- assertCached(false, 406);
- assertCached(false, 408);
- assertCached(false, 409);
- // the HTTP spec permits caching 410s, but the RI doesn't.
- assertCached(true, 410);
- assertCached(false, 411);
- assertCached(false, 412);
- assertCached(false, 413);
- assertCached(true, 414);
- assertCached(false, 415);
- assertCached(false, 416);
- assertCached(false, 417);
- assertCached(false, 418);
- assertCached(false, 429);
-
- assertCached(false, 500);
- assertCached(true, 501);
- assertCached(false, 502);
- assertCached(false, 503);
- assertCached(false, 504);
- assertCached(false, 505);
- assertCached(false, 506);
- });
-
- function assertCached(shouldPut, responseCode) {
- let expectedResponseCode = responseCode;
-
- const mockResponse = {headers:{
- "last-modified": formatDate(-1, 3600),
- "expires": formatDate(1, 3600),
- "www-authenticate": "challenge",
- },
- status: responseCode,
- body: "ABCDE",
- };
- if (responseCode == 407) {
- mockResponse.headers["proxy-authenticate"] = "Basic realm=\"protected area\"";
- } else if (responseCode == 401) {
- mockResponse.headers["www-authenticate"] = "Basic realm=\"protected area\"";
- } else if (responseCode == 204 || responseCode == 205) {
- mockResponse.body = ""; // We forbid bodies for 204 and 205.
- }
-
- const request = {url: "/", headers:{}};
-
- const cache = new CachePolicy(request, mockResponse, {shared:false});
-
- assert.equal(shouldPut, cache.storable());
- }
-
-
- it('defaultExpirationDateFullyCachedForLessThan24Hours', function() {
- // last modified: 105 seconds ago
- // served: 5 seconds ago
- // default lifetime: (105 - 5) / 10 = 10 seconds
- // expires: 10 seconds from served date = 5 seconds from now
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-105, 1),
- "date": formatDate(-5, 1),
- },
- body: "A"}, {shared:false});
-
- assert(cache.timeToLive() > 4000);
- });
-
- it('defaultExpirationDateFullyCachedForMoreThan24Hours', function() {
- // last modified: 105 days ago
- // served: 5 days ago
- // default lifetime: (105 - 5) / 10 = 10 days
- // expires: 10 days from served date = 5 days from now
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-105, 3600*24),
- "date": formatDate(-5, 3600*24),
- },
- body: "A"}, {shared:false});
-
- assert(cache.maxAge() >= 10*3600*24);
- assert(cache.timeToLive()+1000 >= 5*3600*24);
- });
-
- it('maxAgeInThePastWithDateHeaderButNoLastModifiedHeader', function() {
- // Chrome interprets max-age relative to the local clock. Both our cache
- // and Firefox both use the earlier of the local and server's clock.
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-120, 1),
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(cache.stale());
- });
-
- it('maxAgePreferredOverLowerSharedMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-2, 60),
- "cache-control": "s-maxage=60, max-age=180",
- }}, {shared:false});
-
- assert.equal(cache.maxAge(), 180);
- });
-
- it('maxAgePreferredOverHigherMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-3, 60),
- "cache-control": "s-maxage=60, max-age=180",
- }}, {shared:false});
-
- assert(cache.stale());
- });
-
- it('requestMethodOptionsIsNotCached', function() {
- testRequestMethodNotCached("OPTIONS");
- });
-
- it('requestMethodPutIsNotCached', function() {
- testRequestMethodNotCached("PUT");
- });
-
- it('requestMethodDeleteIsNotCached', function() {
- testRequestMethodNotCached("DELETE");
- });
-
- it('requestMethodTraceIsNotCached', function() {
- testRequestMethodNotCached("TRACE");
- });
-
- function testRequestMethodNotCached(method) {
- // 1. seed the cache (potentially)
- // 2. expect a cache hit or miss
- const cache = new CachePolicy({method, headers:{}}, {headers:{
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(cache.stale());
- }
-
- it('etagAndExpirationDateInTheFuture', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "etag": "v1",
- "last-modified": formatDate(-2, 3600),
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(cache.timeToLive() > 0);
- });
-
- it('clientSideNoStore', function() {
- const cache = new CachePolicy({headers:{
- "cache-control": "no-store",
- }}, {headers:{
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(!cache.storable());
- });
-
- it('requestMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-2, 3600),
- "date": formatDate(-1, 60),
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(!cache.stale());
- assert(cache.age() >= 60);
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-age=90",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-age=30",
- }}));
- });
-
- it('requestMinFresh', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(!cache.stale());
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "min-fresh=120",
- }}));
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "min-fresh=10",
- }}));
- });
-
- it('requestMaxStale', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=120",
- "date": formatDate(-4, 60),
- }}, {shared:false});
-
- assert(cache.stale());
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=180",
- }}));
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=10",
- }}));
- });
-
- it('requestMaxStaleNotHonoredWithMustRevalidate', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=120, must-revalidate",
- "date": formatDate(-4, 60),
- }}, {shared:false});
-
- assert(cache.stale());
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=180",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale",
- }}));
- });
-
- it('getHeadersDeletesCached100LevelWarnings', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "warning": "199 test danger, 200 ok ok",
- }});
-
- assert.equal("200 ok ok", cache.responseHeaders().warning);
- });
-
- it('doNotCachePartialResponse', function() {
- const cache = new CachePolicy({headers:{}}, {
- status: 206,
- headers:{
- "content-range": "bytes 100-100/200",
- "cache-control": "max-age=60",
- }});
- assert(!cache.storable());
- });
-
- function formatDate(delta, unit) {
- return new Date(Date.now() + delta*unit*1000).toUTCString();
- }
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js
deleted file mode 100644
index f668556ff8..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const publicCacheableResponse = {headers:{'cache-control': 'public, max-age=222'}};
-const cacheableResponse = {headers:{'cache-control': 'max-age=111'}};
-
-describe('Request properties', function() {
- it('No store kills cache', function() {
- const cache = new CachePolicy({method:'GET',headers:{'cache-control':'no-store'}}, publicCacheableResponse);
- assert(cache.stale());
- assert(!cache.storable());
- });
-
- it('POST not cacheable by default', function() {
- const cache = new CachePolicy({method:'POST',headers:{}}, {headers:{'cache-control': 'public'}});
- assert(cache.stale());
- assert(!cache.storable());
- });
-
- it('POST cacheable explicitly', function() {
- const cache = new CachePolicy({method:'POST',headers:{}}, publicCacheableResponse);
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Public cacheable auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, publicCacheableResponse);
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Proxy cacheable auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, {headers:{'cache-control':'max-age=0,s-maxage=12'}});
- assert(!cache.stale());
- assert(cache.storable());
-
- const cache2 = CachePolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof CachePolicy);
- assert(!cache2.stale());
- assert(cache2.storable());
- });
-
- it('Private auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, cacheableResponse, {shared:false});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Revalidated auth is OK', function() {
- const cache = new CachePolicy({headers:{'authorization': 'test'}}, {headers:{'cache-control':'max-age=88,must-revalidate'}});
- assert(cache.storable());
- });
-
- it('Auth prevents caching by default', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, cacheableResponse);
- assert(cache.stale());
- assert(!cache.storable());
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js
deleted file mode 100644
index 763910b82c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js
+++ /dev/null
@@ -1,385 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const req = {method:'GET', headers:{}};
-
-describe('Response headers', function() {
- it('simple miss', function() {
- const cache = new CachePolicy(req, {headers:{}});
- assert(cache.stale());
- });
-
- it('simple hit', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'public, max-age=999999'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 999999);
- });
-
- it('weird syntax', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': ',,,,max-age = 456 ,'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 456);
-
- const cache2 = CachePolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof CachePolicy);
- assert(!cache2.stale());
- assert.equal(cache2.maxAge(), 456);
- });
-
- it('quoted syntax', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': ' max-age = "678" '}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 678);
- });
-
- it('IIS', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'private, public, max-age=259200'}}, {shared:false});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 259200);
- });
-
- it('pre-check tolerated', function() {
- const cc = 'pre-check=0, post-check=0, no-store, no-cache, max-age=100';
- const cache = new CachePolicy(req, {headers:{'cache-control': cc}});
- assert(cache.stale());
- assert(!cache.storable());
- assert.equal(cache.maxAge(), 0);
- assert.equal(cache.responseHeaders()['cache-control'], cc);
- });
-
- it('pre-check poison', function() {
- const origCC = 'pre-check=0, post-check=0, no-cache, no-store, max-age=100, custom, foo=bar';
- const res = {headers:{'cache-control': origCC, pragma: 'no-cache'}};
- const cache = new CachePolicy(req, res, {ignoreCargoCult:true});
- assert(!cache.stale());
- assert(cache.storable());
- assert.equal(cache.maxAge(), 100);
-
- const cc = cache.responseHeaders()['cache-control'];
- assert(!/pre-check/.test(cc), cc);
- assert(!/post-check/.test(cc), cc);
- assert(!/no-store/.test(cc), cc);
-
- assert(/max-age=100/.test(cc));
- assert(/custom(,|$)/.test(cc));
- assert(/foo=bar/.test(cc));
-
- assert.equal(res.headers['cache-control'], origCC);
- assert(res.headers['pragma']);
- assert(!cache.responseHeaders()['pragma']);
- });
-
- it('pre-check poison undefined header', function() {
- const origCC = 'pre-check=0, post-check=0, no-cache, no-store';
- const res = {headers:{'cache-control': origCC, expires: 'yesterday!'}};
- const cache = new CachePolicy(req, res, {ignoreCargoCult:true});
- assert(cache.stale());
- assert(cache.storable());
- assert.equal(cache.maxAge(), 0);
-
- const cc = cache.responseHeaders()['cache-control'];
- assert(!cc);
-
- assert(res.headers['expires']);
- assert(!cache.responseHeaders()['expires']);
- });
-
- it('cache with expires', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'expires': new Date(Date.now() + 2000).toGMTString(),
- }});
- assert(!cache.stale());
- assert.equal(2, cache.maxAge());
- });
-
- it('cache expires no date', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public',
- 'expires': new Date(Date.now()+3600*1000).toGMTString(),
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 3595);
- assert(cache.maxAge() < 3605);
- });
-
- it('Ages', function() {
- let now = 1000;
- class TimeTravellingPolicy extends CachePolicy {
- now() {
- return now;
- }
- }
- const cache = new TimeTravellingPolicy(req, {headers:{
- 'cache-control':'max-age=100',
- 'age': '50',
- }});
- assert(cache.storable());
-
- assert.equal(50*1000, cache.timeToLive());
- assert(!cache.stale());
- now += 48*1000;
- assert.equal(2*1000, cache.timeToLive());
- assert(!cache.stale());
- now += 5*1000;
- assert(cache.stale());
- assert.equal(0, cache.timeToLive());
- });
-
- it('Age can make stale', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=100',
- 'age': '101',
- }});
- assert(cache.stale());
- assert(cache.storable());
- });
-
- it('Age not always stale', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=20',
- 'age': '15',
- }});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Bogus age ignored', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=20',
- 'age': 'golden',
- }});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('cache old files', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 100);
- });
-
- it('immutable simple hit', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=999999'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 999999);
- });
-
- it('immutable can expire', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=0'}});
- assert(cache.stale());
- assert.equal(cache.maxAge(), 0);
- });
-
- it('cache immutable files', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'cache-control':'immutable',
- 'last-modified': new Date().toGMTString(),
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 100);
- });
-
- it('immutable can be off', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'cache-control':'immutable',
- 'last-modified': new Date().toGMTString(),
- }}, {immutableMinTimeToLive: 0});
- assert(cache.stale());
- assert.equal(cache.maxAge(), 0);
- });
-
- it('pragma: no-cache', function() {
- const cache = new CachePolicy(req, {headers:{
- 'pragma': 'no-cache',
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(cache.stale());
- });
-
- it('no-store', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'no-store, public, max-age=1',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('observe private cache', function() {
- const privateHeader = {
- 'cache-control': 'private, max-age=1234',
- };
- const proxyCache = new CachePolicy(req, {headers:privateHeader});
- assert(proxyCache.stale());
- assert.equal(0, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:privateHeader}, {shared:false});
- assert(!uaCache.stale());
- assert.equal(1234, uaCache.maxAge());
- });
-
- it('don\'t share cookies', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'max-age=99',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(proxyCache.stale());
- assert.equal(0, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:cookieHeader}, {shared:false});
- assert(!uaCache.stale());
- assert.equal(99, uaCache.maxAge());
- });
-
- it('do share cookies if immutable', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'immutable, max-age=99',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(!proxyCache.stale());
- assert.equal(99, proxyCache.maxAge());
- });
-
- it('cache explicitly public cookie', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'max-age=5, public',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(!proxyCache.stale());
- assert.equal(5, proxyCache.maxAge());
- });
-
- it('miss max-age=0', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=0',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('uncacheable 503', function() {
- const cache = new CachePolicy(req, {
- status: 503,
- headers:{
- 'cache-control': 'public, max-age=1000',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('cacheable 301', function() {
- const cache = new CachePolicy(req, {
- status: 301,
- headers:{
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(!cache.stale());
- });
-
- it('uncacheable 303', function() {
- const cache = new CachePolicy(req, {
- status: 303,
- headers:{
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('cacheable 303', function() {
- const cache = new CachePolicy(req, {
- status: 303,
- headers:{
- 'cache-control': 'max-age=1000',
- }});
- assert(!cache.stale());
- });
-
- it('uncacheable 412', function() {
- const cache = new CachePolicy(req, {
- status: 412,
- headers:{
- 'cache-control': 'public, max-age=1000',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('expired expires cached with max-age', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=9999',
- 'expires': 'Sat, 07 May 2016 15:35:18 GMT',
- }});
- assert(!cache.stale());
- assert.equal(9999, cache.maxAge());
- });
-
- it('expired expires cached with s-maxage', function() {
- const sMaxAgeHeaders = {
- 'cache-control': 'public, s-maxage=9999',
- 'expires': 'Sat, 07 May 2016 15:35:18 GMT',
- };
- const proxyCache = new CachePolicy(req, {headers:sMaxAgeHeaders});
- assert(!proxyCache.stale());
- assert.equal(9999, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:sMaxAgeHeaders}, {shared:false});
- assert(uaCache.stale());
- assert.equal(0, uaCache.maxAge());
- });
-
- it('max-age wins over future expires', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=333',
- 'expires': new Date(Date.now()+3600*1000).toGMTString(),
- }});
- assert(!cache.stale());
- assert.equal(333, cache.maxAge());
- });
-
- it('remove hop headers', function() {
- let now = 10000;
- class TimeTravellingPolicy extends CachePolicy {
- now() {
- return now;
- }
- }
-
- const res = {headers:{
- 'te': 'deflate',
- 'date': 'now',
- 'custom': 'header',
- 'oompa': 'lumpa',
- 'connection': 'close, oompa, header',
- 'age': '10',
- 'cache-control': 'public, max-age=333',
- }};
- const cache = new TimeTravellingPolicy(req, res);
-
- now += 1005;
- const h = cache.responseHeaders();
- assert(!h.connection);
- assert(!h.te);
- assert(!h.oompa);
- assert.equal(h['cache-control'], 'public, max-age=333');
- assert.equal(h.date, 'now', "date must stay the same for expires, age, etc");
- assert.equal(h.custom, 'header');
- assert.equal(h.age, '11');
- assert.equal(res.headers.age, '10');
-
- const cache2 = TimeTravellingPolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof TimeTravellingPolicy);
- const h2 = cache2.responseHeaders();
- assert.deepEqual(h, h2);
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js
deleted file mode 100644
index 9dc737718d..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js
+++ /dev/null
@@ -1,181 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const simpleRequest = {
- method:'GET',
- headers:{
- host:'www.w3c.org',
- connection: 'close',
- 'x-custom': 'yes',
- },
- url:'/Protocols/rfc2616/rfc2616-sec14.html',
-};
-function simpleRequestBut(overrides) {
- return Object.assign({}, simpleRequest, overrides);
-}
-
-const cacheableResponse = {headers:{'cache-control':'max-age=111'}};
-const etaggedResponse = {headers:Object.assign({'etag':'"123456789"'},cacheableResponse.headers)};
-const lastModifiedResponse = {headers:Object.assign({'last-modified':'Tue, 15 Nov 1994 12:45:26 GMT'},cacheableResponse.headers)};
-const multiValidatorResponse = {headers:Object.assign({},etaggedResponse.headers,lastModifiedResponse.headers)};
-const alwaysVariableResponse = {headers:Object.assign({'vary':'*'},cacheableResponse.headers)};
-
-function assertHeadersPassed(headers) {
- assert.strictEqual(headers.connection, undefined);
- assert.strictEqual(headers['x-custom'], 'yes');
-}
-function assertNoValidators(headers) {
- assert.strictEqual(headers['if-none-match'], undefined);
- assert.strictEqual(headers['if-modified-since'], undefined);
-}
-
-describe('Can be revalidated?', function() {
- it('ok if method changes to HEAD', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const headers = cache.revalidationHeaders(simpleRequestBut({method:'HEAD'}));
- assertHeadersPassed(headers);
- assert.equal(headers['if-none-match'], '"123456789"');
- });
-
- it('not if method mismatch (other than HEAD)', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({method:'POST'});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('not if url mismatch', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({url:'/yomomma'});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('not if host mismatch', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({headers:{host:'www.w4c.org'}});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertNoValidators(headers);
- assert.strictEqual(headers['x-custom'], undefined);
- });
-
- it('not if vary fields prevent', function(){
- const cache = new CachePolicy(simpleRequest,alwaysVariableResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('when entity tag validator is present', function() {
- const cache = new CachePolicy(simpleRequest, etaggedResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assert.equal(headers['if-none-match'], '"123456789"');
- });
-
- it('skips weak validtors on post', function() {
- const postReq = simpleRequestBut({method:'POST', headers:{'if-none-match': 'W/"weak", "strong", W/"weak2"'}});
- const cache = new CachePolicy(postReq, multiValidatorResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.equal(headers['if-none-match'], '"strong", "123456789"');
- assert.strictEqual(undefined, headers['if-modified-since']);
- });
-
- it('skips weak validtors on post 2', function() {
- const postReq = simpleRequestBut({method:'POST', headers:{'if-none-match': 'W/"weak"'}});
- const cache = new CachePolicy(postReq, lastModifiedResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.strictEqual(undefined, headers['if-none-match']);
- assert.strictEqual(undefined, headers['if-modified-since']);
- });
-
- it('merges validtors', function() {
- const postReq = simpleRequestBut({headers:{'if-none-match': 'W/"weak", "strong", W/"weak2"'}});
- const cache = new CachePolicy(postReq, multiValidatorResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.equal(headers['if-none-match'], 'W/"weak", "strong", W/"weak2", "123456789"');
- assert.equal('Tue, 15 Nov 1994 12:45:26 GMT', headers['if-modified-since']);
- });
-
- it('when last-modified validator is present', function() {
- const cache = new CachePolicy(simpleRequest, lastModifiedResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assert.equal(headers['if-modified-since'], 'Tue, 15 Nov 1994 12:45:26 GMT');
- assert(!/113/.test(headers.warning));
- });
-
- it('not without validators', function() {
- const cache = new CachePolicy(simpleRequest, cacheableResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- assert(!/113/.test(headers.warning));
- })
-
- it('113 added', function() {
- const veryOldResponse = {
- headers: {
- age: 3600*72,
- 'last-modified': 'Tue, 15 Nov 1994 12:45:26 GMT',
- },
- };
-
- const cache = new CachePolicy(simpleRequest, veryOldResponse);
- const headers = cache.responseHeaders(simpleRequest);
- assert(/113/.test(headers.warning));
- })
-
-});
-
-describe('Validation request', function(){
- it('removes warnings', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "warning": "199 test danger",
- }});
-
- assert.strictEqual(undefined, cache.responseHeaders().warning);
- });
-
- it('must contain any etag', function(){
- const cache = new CachePolicy(simpleRequest,multiValidatorResponse);
- const expected = multiValidatorResponse.headers.etag;
- const actual = cache.revalidationHeaders(simpleRequest)['if-none-match'];
- assert.equal(actual,expected);
- });
-
- it('merges etags', function(){
- const cache = new CachePolicy(simpleRequest, etaggedResponse);
- const expected = `"foo", "bar", ${etaggedResponse.headers.etag}`;
- const headers = cache.revalidationHeaders(simpleRequestBut({headers:{
- host:'www.w3c.org',
- 'if-none-match': '"foo", "bar"',
- }}));
- assert.equal(headers['if-none-match'],expected);
- });
-
- it('should send the Last-Modified value', function(){
- const cache = new CachePolicy(simpleRequest,multiValidatorResponse);
- const expected = multiValidatorResponse.headers['last-modified'];
- const actual = cache.revalidationHeaders(simpleRequest)['if-modified-since'];
- assert.equal(actual,expected);
- });
-
- it('should not send the Last-Modified value for POST', function(){
- const postReq = {method:'POST', headers:{'if-modified-since':'yesterday'}};
- const cache = new CachePolicy(postReq, lastModifiedResponse);
- const actual = cache.revalidationHeaders(postReq)['if-modified-since'];
- assert.equal(actual, undefined);
- });
-
- it('should not send the Last-Modified value for range requests', function(){
- const rangeReq = {method:'GET', headers:{'accept-ranges':'1-3', 'if-modified-since':'yesterday'}};
- const cache = new CachePolicy(rangeReq, lastModifiedResponse);
- const actual = cache.revalidationHeaders(rangeReq)['if-modified-since'];
- assert.equal(actual, undefined);
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js
deleted file mode 100644
index 3131ee73d0..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('Satisfies', function() {
- it('when URLs match', function() {
- const policy = new CachePolicy({url:'/',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({url:'/',headers:{}}));
- });
-
- it('when expires is present', function() {
- const policy = new CachePolicy({headers:{}}, {status:302,headers:{'expires':new Date(Date.now()+2000).toGMTString()}});
- assert(policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('not when URLs mismatch', function() {
- const policy = new CachePolicy({url:'/foo',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({url:'/foo?bar',headers:{}}));
- });
-
- it('when methods match', function() {
- const policy = new CachePolicy({method:'GET',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when hosts mismatch', function() {
- const policy = new CachePolicy({headers:{'host':'foo'}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({headers:{'host':'foo'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'host':'foofoo'}}));
- });
-
- it('when methods match HEAD', function() {
- const policy = new CachePolicy({method:'HEAD',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({method:'HEAD',headers:{}}));
- });
-
- it('not when methods mismatch', function() {
- const policy = new CachePolicy({method:'POST',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when methods mismatch HEAD', function() {
- const policy = new CachePolicy({method:'HEAD',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when proxy revalidating', function() {
- const policy = new CachePolicy({headers:{}}, {status:200,headers:{'cache-control':'max-age=2, proxy-revalidate '}});
- assert(!policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('when not a proxy revalidating', function() {
- const policy = new CachePolicy({headers:{}}, {status:200,headers:{'cache-control':'max-age=2, proxy-revalidate '}}, {shared:false});
- assert(policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('not when no-cache requesting', function() {
- const policy = new CachePolicy({headers:{}}, {headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({headers:{'cache-control':'fine'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'cache-control':'no-cache'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'pragma':'no-cache'}}));
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js
deleted file mode 100644
index 6d498c86e3..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const simpleRequest = {
- method:'GET',
- headers:{
- host:'www.w3c.org',
- connection: 'close',
- },
- url:'/Protocols/rfc2616/rfc2616-sec14.html',
-};
-function withHeaders(request, headers) {
- return Object.assign({}, request, {
- headers: Object.assign({}, request.headers, headers),
- });
-}
-
-const cacheableResponse = {headers:{'cache-control':'max-age=111'}};
-const etaggedResponse = {headers:Object.assign({'etag':'"123456789"'},cacheableResponse.headers)};
-const weakTaggedResponse = {headers:Object.assign({'etag':'W/"123456789"'},cacheableResponse.headers)};
-const lastModifiedResponse = {headers:Object.assign({'last-modified':'Tue, 15 Nov 1994 12:45:26 GMT'},cacheableResponse.headers)};
-const multiValidatorResponse = {headers:Object.assign({},etaggedResponse.headers,lastModifiedResponse.headers)};
-
-function notModifiedResponseHeaders(firstRequest, firstResponse, secondRequest, secondResponse) {
- const cache = new CachePolicy(firstRequest, firstResponse);
- const headers = cache.revalidationHeaders(secondRequest);
- const {policy:newCache, modified} = cache.revalidatedPolicy({headers}, secondResponse);
- if (modified) {
- return false;
- }
- return newCache.responseHeaders();
-}
-
-function assertUpdates(firstRequest, firstResponse, secondRequest, secondResponse) {
- const headers = notModifiedResponseHeaders(firstRequest, withHeaders(firstResponse, {'foo': 'original', 'x-other':'original'}),
- secondRequest, withHeaders(secondResponse, {'foo': 'updated', 'x-ignore-new':'ignoreme'}));
- assert(headers);
- assert.equal(headers['foo'], 'updated');
- assert.equal(headers['x-other'], 'original');
- assert.strictEqual(headers['x-ignore-new'], undefined);
- assert.strictEqual(headers['etag'], secondResponse.headers.etag);
-}
-
-describe('Update revalidated', function() {
- it('Matching etags are updated', function(){
- assertUpdates(simpleRequest, etaggedResponse, simpleRequest, etaggedResponse);
- });
-
- it('Matching weak etags are updated', function(){
- assertUpdates(simpleRequest, weakTaggedResponse, simpleRequest, weakTaggedResponse);
- });
-
- it('Matching lastmod are updated', function(){
- assertUpdates(simpleRequest, lastModifiedResponse, simpleRequest, lastModifiedResponse);
- });
-
- it('Both matching are updated', function(){
- assertUpdates(simpleRequest, multiValidatorResponse, simpleRequest, multiValidatorResponse);
- });
-
- it('Checks status', function(){
- const response304 = Object.assign({}, multiValidatorResponse, {status:304});
- const response200 = Object.assign({}, multiValidatorResponse, {status:200});
- assertUpdates(simpleRequest, multiValidatorResponse, simpleRequest, response304);
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, response200));
- });
-
- it('Last-mod ignored if etag is wrong', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, withHeaders(multiValidatorResponse, {'etag':'bad'})));
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, withHeaders(multiValidatorResponse, {'etag':'W/bad'})));
- });
-
- it('Ignored if validator is missing', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, cacheableResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, weakTaggedResponse, simpleRequest, cacheableResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, cacheableResponse));
- });
-
- it('Skips update of content-length', function(){
- const etaggedResponseWithLenght1 = withHeaders(etaggedResponse, {'content-length':1});
- const etaggedResponseWithLenght2 = withHeaders(etaggedResponse, {'content-length':2});
- const headers = notModifiedResponseHeaders(simpleRequest, etaggedResponseWithLenght1, simpleRequest, etaggedResponseWithLenght2);
- assert.equal(1, headers['content-length']);
- });
-
- it('Ignored if validator is different', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, etaggedResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, weakTaggedResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, lastModifiedResponse));
- });
-
- it('Ignored if validator doesn\'t match', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, withHeaders(etaggedResponse, {etag:'"other"'})), "bad etag");
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, withHeaders(lastModifiedResponse, {'last-modified':'dunno'})), "bad lastmod");
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js
deleted file mode 100644
index 9d5cfb2325..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('Vary', function() {
- it('Basic', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- });
-
- it("* doesn't match", function() {
- const policy = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'max-age=5','vary':'*'}});
-
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'ok'}}));
- });
-
- it("* is stale", function() {
- const policy1 = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'public,max-age=99', 'vary':'*'}});
- const policy2 = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'public,max-age=99', 'vary':'weather'}});
-
- assert(policy1.stale());
- assert(!policy2.stale());
- });
-
- it('Values are case-sensitive', function() {
- const policy = new CachePolicy({headers:{'weather': 'BAD'}}, {headers:{'cache-control':'max-age=5','vary':'Weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'BAD'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- });
-
- it('Irrelevant headers ignored', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'moon-phase'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'moon-phase': 'full'}}));
- });
-
- it('Absence is meaningful', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'moon-phase, weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'moon-phase': ''}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('All values must match', function() {
- const policy = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather, sun'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'bad'}}));
- });
-
- it('Whitespace is OK', function() {
- const policy = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':' weather , sun '}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining'}}));
- });
-
- it('Order is irrelevant', function() {
- const policy1 = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather, sun'}});
- const policy2 = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'sun, weather'}});
-
- assert(policy1.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'sun': 'shining'}}));
- assert(policy1.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(policy2.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'sun': 'shining'}}));
- assert(policy2.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- });
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md
deleted file mode 100644
index 5dabbc6950..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md
+++ /dev/null
@@ -1,94 +0,0 @@
-
-2.0.0 / 2017-06-27
-==================
-
- * drop support for Node.js < v4
- * update "mocha" to v3
- * update to "agent-base" v4
- * rename http-proxy-agent.js to index.js
- * remove `extend` dependency
- * test Node.js 4, 5, 6, 7 and 8 on Travis-CI
-
-1.0.0 / 2015-07-10
-==================
-
- * http-proxy-agent: use %o debug() formatter
- * http-proxy-agent: remove `defaults` merging logic
- * package: update "agent-base" to v2
- * test: add an assert() call
- * test: use ssl-cert-snakeoil self-signed SSL certs
- * README: add note about node-https-proxy-agent
-
-0.2.7 / 2015-07-06
-==================
-
- * travis: ensure latest npm before testing
- * travis: test node v0.8, v0.10, and v0.12
- * README: use SVG for Travis-CI badge
- * package: update "extend" to v3
- * package: update "mocha" to v2
- * package: update "debug" to v2
-
-0.2.6 / 2014-06-11
-==================
-
- * package: update "debug" to v1.0.0
-
-0.2.5 / 2014-04-09
-==================
-
- * package: update outdated deps
-
-0.2.4 / 2014-01-12
-==================
-
- * http-proxy-agent: fix using the agent after the first tick of creating the ClientRequest
- * http-proxy-agent: use "debug" module
- * History: fix whitespace
-
-0.2.3 / 2013-11-18
-==================
-
- * https-proxy-agent: allow "https" without trailing colon
-
-0.2.2 / 2013-11-16
-==================
-
- * http-proxy-agent: delete the `port` if it matches default port
- * http-proxy-agent: don't mix in the `proxy` opts to the endpoint opts
- * http-proxy-agent: delete `pathname` from the proxy opts as well
-
-0.2.1 / 2013-10-28
-==================
-
- * http-proxy-agent: properly proxy the query-string on request URLs (GH-1)
-
-0.2.0 / 2013-09-16
-==================
-
- * http-proxy-agent: update to `agent-base` v1.0.0 API
- * http-proxy-agent: rename `secure` option to `secureProxy`
- * http-proxy-agent: default the "port" to 80 if not set
- * http-proxy-agent: use "extend" module
- * test: refactor tests
- * test: add 407 auth test
- * test: add bad proxy info test
- * test: add "secureProxy" option tests
-
-0.1.0 / 2013-09-03
-==================
-
- * Add initial "Proxy-Authorization" Basic authentication support
-
-0.0.2 / 2013-07-11
-==================
-
- * test: make tests pass, ensure valid IP addresses are returned
- * test: add tests
- * throw an Error when no proxy info is given
- * add support for passing options to net/tls .connect()
-
-0.0.1 / 2013-07-09
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js
deleted file mode 100644
index 4bc9704a10..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js
+++ /dev/null
@@ -1,109 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var net = require('net');
-var tls = require('tls');
-var url = require('url');
-var Agent = require('agent-base');
-var inherits = require('util').inherits;
-var debug = require('debug')('http-proxy-agent');
-
-/**
- * Module exports.
- */
-
-module.exports = HttpProxyAgent;
-
-/**
- * The `HttpProxyAgent` implements an HTTP Agent subclass that connects to the
- * specified "HTTP proxy server" in order to proxy HTTP requests.
- *
- * @api public
- */
-
-function HttpProxyAgent (opts) {
- if (!(this instanceof HttpProxyAgent)) return new HttpProxyAgent(opts);
- if ('string' == typeof opts) opts = url.parse(opts);
- if (!opts) throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');
- debug('creating new HttpProxyAgent instance: %o', opts);
- Agent.call(this, opts);
-
- var proxy = Object.assign({}, opts);
-
- // if `true`, then connect to the proxy server over TLS. defaults to `false`.
- this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
-
- // prefer `hostname` over `host`, and set the `port` if needed
- proxy.host = proxy.hostname || proxy.host;
- proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
-
- if (proxy.host && proxy.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 proxy.path;
- delete proxy.pathname;
- }
-
- this.proxy = proxy;
-}
-inherits(HttpProxyAgent, Agent);
-
-/**
- * Called when the node-core HTTP client library is creating a new HTTP request.
- *
- * @api public
- */
-
-HttpProxyAgent.prototype.callback = function connect (req, opts, fn) {
- var proxy = this.proxy;
-
- // change the `http.ClientRequest` instance's "path" field
- // to the absolute path of the URL that will be requested
- var parsed = url.parse(req.path);
- if (null == parsed.protocol) parsed.protocol = 'http:';
- if (null == parsed.hostname) parsed.hostname = opts.hostname || opts.host;
- if (null == parsed.port) parsed.port = opts.port;
- if (parsed.port == 80) {
- // if port is 80, then we can remove the port so that the
- // ":80" portion is not on the produced URL
- delete parsed.port;
- }
- var absolute = url.format(parsed);
- req.path = absolute;
-
- // inject the `Proxy-Authorization` header if necessary
- var auth = proxy.auth;
- if (auth) {
- req.setHeader('Proxy-Authorization', 'Basic ' + new Buffer(auth).toString('base64'));
- }
-
- // create a socket connection to the proxy server
- var socket;
- if (this.secureProxy) {
- socket = tls.connect(proxy);
- } else {
- socket = net.connect(proxy);
- }
-
- // at this point, the http ClientRequest's internal `_header` field might have
- // already been set. If this is the case then we'll need to re-generate the
- // string since we just changed the `req.path`
- if (req._header) {
- debug('regenerating stored HTTP header string for request');
- req._header = null;
- req._implicitHeader();
- if (req.output && req.output.length > 0) {
- debug('patching connection write() output buffer with updated header');
- // the _header has already been queued to be written to the socket
- var first = req.output[0];
- var endOfHeaders = first.indexOf('\r\n\r\n') + 4;
- req.output[0] = req._header + first.substring(endOfHeaders);
- debug('output buffer: %o', req.output);
- }
- }
-
- fn(null, socket);
-};
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore
deleted file mode 100644
index c12f3a80c1..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/?.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index a81fb17a97..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,99 +0,0 @@
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index b916c33b9c..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 13447460d3..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/http-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index aa876e8bfc..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@4",
- "_id": "agent-base@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-yWGUUmCZD/33IRjG2It94PzixT8lX+47Uq8fjmd0cgQWITCMrJuXFaVIMnGDmDnZGGKAGdwTx8UGeU8lMR2urA==",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent/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": [
- "/npm-profile/make-fetch-happen/http-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.1.tgz",
- "_shasum": "92d8a4fc2524a3b09b3666a33b6c97960f23d6a4",
- "_spec": "agent-base@4",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/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.1.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index a3f7bc6160..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'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);
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c3b0..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
- - "6"
- - "5"
- - "4"
-
-install:
- - make node_modules
-
-script:
- - make lint
- - make test
- - make coveralls
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index 553da1585e..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-
-2.6.9 / 2017-09-22
-==================
-
- * remove ReDoS regexp in %o formatter (#504)
-
-2.6.8 / 2017-05-18
-==================
-
- * Fix: Check for undefined on browser globals (#462, @marbemac)
-
-2.6.7 / 2017-05-16
-==================
-
- * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
- * Fix: Inline extend function in node implementation (#452, @dougwilson)
- * Docs: Fix typo (#455, @msasad)
-
-2.6.5 / 2017-04-27
-==================
-
- * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
- * Misc: clean up browser reference checks (#447, @thebigredgeek)
- * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
-
-
-2.6.4 / 2017-04-20
-==================
-
- * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
- * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
- * Misc: update "ms" to v0.7.3 (@tootallnate)
-
-2.6.3 / 2017-03-13
-==================
-
- * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
- * Docs: Changelog fix (@thebigredgeek)
-
-2.6.2 / 2017-03-10
-==================
-
- * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
- * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
- * Docs: Add Slackin invite badge (@tootallnate)
-
-2.6.1 / 2017-02-10
-==================
-
- * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
- * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
- * Fix: IE8 "Expected identifier" error (#414, @vgoma)
- * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
- * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
- * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
- * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
- * Fix: reference error on window within webworkers (#393, @KlausTrainer)
- * Docs: fixed README typo (#391, @lurch)
- * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
- * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
- * Fix: wrong reference in bower file (@thebigredgeek)
- * Fix: webworker compatibility (@thebigredgeek)
- * Fix: output formatting issue (#388, @kribblo)
- * Fix: babel-loader compatibility (#383, @escwald)
- * Misc: removed built asset from repo and publications (@thebigredgeek)
- * Misc: moved source files to /src (#378, @yamikuronue)
- * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
- * Test: coveralls integration (#378, @yamikuronue)
- * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
- * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
- * Fix: custom log function (#379, @hsiliev)
- * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
- * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
- * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
- * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
- * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
- * Fix: browser colors (#367, @tootallnate)
- * Misc: travis ci integration (@thebigredgeek)
- * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
- * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
- * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
- * Fix: revert "handle regex special characters" (@tootallnate)
- * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
- * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
- * Improvement: allow colors in workers (#335, @botverse)
- * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
- * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
- * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
- * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
- * Fix: be super-safe in index.js as well (@TooTallNate)
- * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
- * Fix: Added electron compatibility (#324, @paulcbetts)
- * Improvement: Added performance optimizations (@tootallnate)
- * Readme: Corrected PowerShell environment variable example (#252, @gimre)
- * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
- * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
- * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
- * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
- * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
- * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
- * Package: Update "ms" to 0.7.2 (#315, @DevSide)
- * Package: removed superfluous version property from bower.json (#207 @kkirsche)
- * Readme: fix USE_COLORS to DEBUG_COLORS
- * Readme: Doc fixes for format string sugar (#269, @mlucool)
- * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
- * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
- * Readme: better docs for browser support (#224, @matthewmueller)
- * Tooling: Added yarn integration for development (#317, @thebigredgeek)
- * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
- * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
- * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile
deleted file mode 100644
index 584da8bf93..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
- @NODE_ENV= $(PKG) install
- @touch node_modules
-
-lint: .FORCE
- eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
- istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
- mkdir -p dist
-
- @$(BROWSERIFY) \
- --standalone debug \
- . > dist/debug.js
-
- karma start --single-run
- rimraf dist
-
-test: .FORCE
- concurrently \
- "make test-node" \
- "make test-browser"
-
-coveralls:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md
deleted file mode 100644
index bc59ae86e8..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md
+++ /dev/null
@@ -1,312 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
-[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
-
-
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
- When running through Node.js, you can set a few environment variables that will
- change the behavior of the debug logging:
-
-| Name | Purpose |
-|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disables specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
- __Note:__ The environment variables beginning with `DEBUG_` end up being
- converted into an Options object that gets used with `%o`/`%O` formatters.
- See the Node.js documentation for
- [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
- for the complete list.
-
-## Formatters
-
-
- Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O` | Pretty-print an Object on multiple lines. |
-| `%o` | Pretty-print an Object all on a single line. |
-| `%s` | String. |
-| `%d` | Number (both integer and float). |
-| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%` | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
- You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
- return v.toString('hex')
-}
-
-// ā€¦elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-// foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
- You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
- or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
- if you don't want to build it yourself.
-
- Debug's enable state is currently persisted by `localStorage`.
- Consider the situation shown below where you have `worker:a` and `worker:b`,
- and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
- By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
-
-<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
-
-<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json
deleted file mode 100644
index 9de26410f0..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.6.9",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "src/browser.js",
- "scripts": [
- "src/browser.js",
- "src/debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js
deleted file mode 100644
index 6a522b16b3..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json
deleted file mode 100644
index 8301a530b6..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent/debug/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "ms@2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "2.0.0",
- "saveSpec": null,
- "fetchSpec": "2.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/http-proxy-agent/debug"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974ccc..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json
deleted file mode 100644
index 522cb307f4..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "debug@2",
- "_id": "debug@2.6.9",
- "_inBundle": false,
- "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent/debug",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "debug@2",
- "name": "debug",
- "escapedName": "debug",
- "rawSpec": "2",
- "saveSpec": null,
- "fetchSpec": "2"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/http-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
- "_spec": "debug@2",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent",
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "browser": "./src/browser.js",
- "bugs": {
- "url": "https://github.com/visionmedia/debug/issues"
- },
- "bundleDependencies": false,
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- },
- "contributors": [
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io"
- },
- {
- "name": "Andrew Rhyne",
- "email": "rhyneandrew@gmail.com"
- }
- ],
- "dependencies": {
- "ms": "2.0.0"
- },
- "deprecated": false,
- "description": "small debugging utility",
- "devDependencies": {
- "browserify": "9.0.3",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "homepage": "https://github.com/visionmedia/debug#readme",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "license": "MIT",
- "main": "./src/index.js",
- "name": "debug",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "version": "2.6.9"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js
deleted file mode 100644
index 7106924934..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
-
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return;
-
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit')
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js
deleted file mode 100644
index 6a5e3fc94c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
- var hash = 0, i;
-
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
-
- return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
- function debug() {
- // disabled?
- if (!debug.enabled) return;
-
- var self = debug;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
-
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
-
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
-
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
-
- return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- exports.names = [];
- exports.skips = [];
-
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d58c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = require('./browser.js');
-} else {
- module.exports = require('./node.js');
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js
deleted file mode 100644
index 60ea6c04aa..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = inspectorLog;
-
-// black hole
-const nullStream = new (require('stream').Writable)();
-nullStream._write = () => {};
-
-/**
- * Outputs a `console.log()` to the Node.js Inspector console *only*.
- */
-function inspectorLog() {
- const stdout = console._stdout;
- console._stdout = nullStream;
- console.log.apply(console, arguments);
- console._stdout = stdout;
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js
deleted file mode 100644
index b15109c905..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
-
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
-
- obj[prop] = val;
- return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
- util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
-
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
- return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
- debug.inspectOpts = {};
-
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json
deleted file mode 100644
index 782eecbec5..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "http-proxy-agent@^2.0.0",
- "_id": "http-proxy-agent@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=",
- "_location": "/npm-profile/make-fetch-happen/http-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "http-proxy-agent@^2.0.0",
- "name": "http-proxy-agent",
- "escapedName": "http-proxy-agent",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz",
- "_shasum": "46482a2f0523a4d6082551709f469cb3e4a85ff4",
- "_spec": "http-proxy-agent@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-http-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "4",
- "debug": "2"
- },
- "deprecated": false,
- "description": "An HTTP(s) proxy `http.Agent` implementation for HTTP",
- "devDependencies": {
- "mocha": "3",
- "proxy": "~0.2.3"
- },
- "homepage": "https://github.com/TooTallNate/node-http-proxy-agent#readme",
- "keywords": [
- "http",
- "proxy",
- "endpoint",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "http-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-http-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore
deleted file mode 100644
index c12f3a80c1..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/?.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md
deleted file mode 100644
index c0b5cef88b..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-2.1.0 / 2017-08-08
-==================
-
- * only include the port number in the Host header when non-default port (#22)
- * set ALPN to "http 1.1" by default when using tlsproxy (#25)
- * only set `ALPNProtocols` when the property does not already exist
- * support SNI (#14)
-
-2.0.0 / 2017-06-26
-==================
-
- * rename https-proxy-agent.js to index.js
- * update dependencies and remove semver-specific test case
- * update `agent-base` to v4
- * remove `extend` dependency
- * :arrow_up: update minimum version of debug dependency
- * opts/options
- * drop Node versions < v4 from Travis-CI
- * test Node.js 5, 6, 7 and 8 on Travis-CI
- * README: remove outdated `secureEndpoint` reference
- * README: remove `secureEndpoint` docs, add `headers`
- * https-proxy-agent: add support for proxy "headers"
-
-1.0.0 / 2015-07-10
-==================
-
- * upgrade to "agent-base" v2 API
- * test: test case is fixed
- * use %o debug() formatter
- * README: use SVG for Travis-CI badge
-
-0.3.6 / 2015-07-06
-==================
-
- * package: update "extend" to v3
- * package: update "mocha" to v2
- * package: update "debug" to v2
- * travis: test node v0.8, v0.10, and v0.12
- * test: use ssl-cert-snakeoil self-signed SSL certs
-
-0.3.5 / 2014-06-11
-==================
-
- * package: update "debug" to v1.0.0
-
-0.3.4 / 2014-04-09
-==================
-
- * gitignore: ignore root level ?.js files
- * package: update outdated dependencies
-
-0.3.3 / 2014-01-13
-==================
-
- * https-proxy-agnet: use debug() instead of console.error()
- * https-proxy-agent: fix debug() call
- * History: fix whitespace
-
-0.3.2 / 2013-11-18
-==================
-
- * https-proxy-agent: allow "https" without trailing colon
- * README: fix typo
-
-0.3.1 / 2013-11-16
-==================
-
- * test: enable the HTTPS over HTTPS test on node v0.11.8
- * https-proxy-agent: create the proxy socket connection first
- * https-proxy-agent: delete `pathname` from the proxy opts as well
- * https-proxy-agent: remove dead "end"-emitting code
-
-0.3.0 / 2013-09-16
-==================
-
- * https-proxy-agent: use "debug" module
- * https-proxy-agent: update to the "agent-base" v1 API
- * https-proxy-agent: default the "port" to 443 if not set
- * https-proxy-agent: augment the `opts` object for the `tls.connect` function
- * https-proxy-agent: use "extend" module
- * https-proxy-agent: remove use of `this` as much as possible
- * https-proxy-agent: listen for the "error" event of the socket
- * test: refactor of tests to use "proxy" module
- * test: add "error" event catching test
- * test: add 407 proxy response test
- * test: use "semver" module, disable the HTTPS over HTTPS test for node >= v0.11.3
-
-0.2.0 / 2013-09-03
-==================
-
- * Add initial "Proxy-Authorization" Basic authentication support
-
-0.1.0 / 2013-07-21
-==================
-
- * rename `secure` to `secureProxy`
- * added `secureEndpoint` option
- * various optimizations
- * README improvements
-
-0.0.2 / 2013-07-11
-==================
-
- * test: add mocha tests
- * don't use `socket.ondata`, use the official API instead
- * throw an Error when no proxy info is given
- * add support for passing options to net/tls .connect()
-
-0.0.1 / 2013-07-09
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js
deleted file mode 100644
index 699857804e..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var net = require('net');
-var tls = require('tls');
-var url = require('url');
-var Agent = require('agent-base');
-var inherits = require('util').inherits;
-var debug = require('debug')('https-proxy-agent');
-
-/**
- * Module exports.
- */
-
-module.exports = HttpsProxyAgent;
-
-/**
- * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to the
- * specified "HTTP(s) proxy server" in order to proxy HTTPS requests.
- *
- * @api public
- */
-
-function HttpsProxyAgent(opts) {
- if (!(this instanceof HttpsProxyAgent)) return new HttpsProxyAgent(opts);
- if ('string' == typeof opts) opts = url.parse(opts);
- if (!opts)
- throw new Error(
- 'an HTTP(S) proxy server `host` and `port` must be specified!'
- );
- debug('creating new HttpsProxyAgent instance: %o', opts);
- Agent.call(this, opts);
-
- var proxy = Object.assign({}, opts);
-
- // if `true`, then connect to the proxy server over TLS. defaults to `false`.
- this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
-
- // prefer `hostname` over `host`, and set the `port` if needed
- proxy.host = proxy.hostname || proxy.host;
- proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
-
- // ALPN is supported by Node.js >= v5.
- // attempt to negotiate http/1.1 for proxy servers that support http/2
- if (this.secureProxy && !('ALPNProtocols' in proxy)) {
- proxy.ALPNProtocols = ['http 1.1']
- }
-
- if (proxy.host && proxy.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 proxy.path;
- delete proxy.pathname;
- }
-
- this.proxy = proxy;
-}
-inherits(HttpsProxyAgent, Agent);
-
-/**
- * Called when the node-core HTTP client library is creating a new HTTP request.
- *
- * @api public
- */
-
-HttpsProxyAgent.prototype.callback = function connect(req, opts, fn) {
- var proxy = this.proxy;
-
- // create a socket connection to the proxy server
- var socket;
- if (this.secureProxy) {
- socket = tls.connect(proxy);
- } else {
- socket = net.connect(proxy);
- }
-
- // we need to buffer any HTTP traffic that happens with the proxy before we get
- // the CONNECT response, so that if the response is anything other than an "200"
- // response code, then we can re-play the "data" events on the socket once the
- // HTTP parser is hooked up...
- var buffers = [];
- var buffersLength = 0;
-
- function read() {
- var b = socket.read();
- if (b) ondata(b);
- else socket.once('readable', read);
- }
-
- function cleanup() {
- socket.removeListener('data', ondata);
- socket.removeListener('end', onend);
- socket.removeListener('error', onerror);
- socket.removeListener('close', onclose);
- socket.removeListener('readable', read);
- }
-
- function onclose(err) {
- debug('onclose had error %o', err);
- }
-
- function onend() {
- debug('onend');
- }
-
- function onerror(err) {
- cleanup();
- fn(err);
- }
-
- function ondata(b) {
- buffers.push(b);
- buffersLength += b.length;
- var buffered = Buffer.concat(buffers, buffersLength);
- var str = buffered.toString('ascii');
-
- if (!~str.indexOf('\r\n\r\n')) {
- // keep buffering
- debug('have not received end of HTTP headers yet...');
- if (socket.read) {
- read();
- } else {
- socket.once('data', ondata);
- }
- return;
- }
-
- var firstLine = str.substring(0, str.indexOf('\r\n'));
- var statusCode = +firstLine.split(' ')[1];
- debug('got proxy server response: %o', firstLine);
-
- if (200 == statusCode) {
- // 200 Connected status code!
- var sock = socket;
-
- // nullify the buffered data since we won't be needing it
- buffers = buffered = null;
-
- if (opts.secureEndpoint) {
- // since the proxy is connecting to an SSL server, we have
- // to upgrade this socket connection to an SSL connection
- debug(
- 'upgrading proxy-connected socket to TLS connection: %o',
- opts.host
- );
- opts.socket = socket;
- opts.servername = opts.servername || opts.host;
- opts.host = null;
- opts.hostname = null;
- opts.port = null;
- sock = tls.connect(opts);
- }
-
- cleanup();
- fn(null, sock);
- } else {
- // some other status code that's not 200... need to re-play the HTTP header
- // "data" events onto the socket once the HTTP machinery is attached so that
- // the user can parse and handle the error status code
- cleanup();
-
- // save a reference to the concat'd Buffer for the `onsocket` callback
- buffers = buffered;
-
- // need to wait for the "socket" event to re-play the "data" events
- req.once('socket', onsocket);
- fn(null, socket);
- }
- }
-
- function onsocket(socket) {
- // replay the "buffers" Buffer onto the `socket`, since at this point
- // the HTTP module machinery has been hooked up for the user
- if ('function' == typeof socket.ondata) {
- // node <= v0.11.3, the `ondata` function is set on the socket
- socket.ondata(buffers, 0, buffers.length);
- } else if (socket.listeners('data').length > 0) {
- // node > v0.11.3, the "data" event is listened for directly
- socket.emit('data', buffers);
- } else {
- // never?
- throw new Error('should not happen...');
- }
-
- // nullify the cached Buffer instance
- buffers = null;
- }
-
- socket.on('error', onerror);
- socket.on('close', onclose);
- socket.on('end', onend);
-
- if (socket.read) {
- read();
- } else {
- socket.once('data', ondata);
- }
-
- var hostname = opts.host + ':' + opts.port;
- var msg = 'CONNECT ' + hostname + ' HTTP/1.1\r\n';
-
- var headers = Object.assign({}, proxy.headers);
- if (proxy.auth) {
- headers['Proxy-Authorization'] =
- 'Basic ' + new Buffer(proxy.auth).toString('base64');
- }
-
- // the Host header should only include the port
- // number when it is a non-standard port
- var host = opts.host;
- if (!isDefaultPort(opts.port, opts.secureEndpoint)) {
- host += ':' + opts.port;
- }
- headers['Host'] = host;
-
- headers['Connection'] = 'close';
- Object.keys(headers).forEach(function(name) {
- msg += name + ': ' + headers[name] + '\r\n';
- });
-
- socket.write(msg + '\r\n');
-};
-
-function isDefaultPort(port, secure) {
- return Boolean((!secure && port === 80) || (secure && port === 443));
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore
deleted file mode 100644
index c12f3a80c1..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/?.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index a81fb17a97..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,99 +0,0 @@
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md b/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
deleted file mode 100644
index 4141cc840f..0000000000
--- a/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
+++ /dev/null
@@ -1,89 +0,0 @@
-[![Travis CI](https://travis-ci.org/digitaldesignlabs/es6-promisify.svg)](https://travis-ci.org/digitaldesignlabs/es6-promisify)
-
-# es6-promisify
-
-Converts callback-based functions to Promise-based functions.
-
-## Install
-
-Install with [npm](https://npmjs.org/package/es6-promisify)
-
-```bash
-npm install --save es6-promisify
-```
-
-## Example
-
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const fs = require("fs");
-
-// Convert the stat function
-const stat = promisify(fs.stat);
-
-// Now usable as a promise!
-stat("example.txt").then(function (stats) {
- console.log("Got stats", stats);
-}).catch(function (err) {
- console.error("Yikes!", err);
-});
-```
-
-## Promisify methods
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const redis = require("redis").createClient(6379, "localhost");
-
-// Create a promise-based version of send_command
-const client = promisify(redis.send_command, redis);
-
-// Send commands to redis and get a promise back
-client("ping").then(function (pong) {
- console.log("Got", pong);
-}).catch(function (err) {
- console.error("Unexpected error", err);
-}).then(function () {
- redis.quit();
-});
-```
-
-## Handle callback multiple arguments
-```js
-"use strict";
-
-// Declare functions
-function test(cb) {
- return cb(undefined, 1, 2, 3);
-}
-
-// Declare variables
-const promisify = require("es6-promisify");
-
-// Create promise-based version of test
-const single = promisify(test);
-const multi = promisify(test, {multiArgs: true});
-
-// Discards additional arguments
-single().then(function (result) {
- console.log(result); // 1
-});
-
-// Returns all arguments as an array
-multi().then(function (result) {
- console.log(result); // [1, 2, 3]
-});
-```
-
-### Tests
-Test with nodeunit
-```bash
-$ npm test
-```
-
-Published under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/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 b/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
deleted file mode 100644
index 2fe5c6103b..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-/* global self, window, module, global, require */
-module.exports = function () {
-
- "use strict";
-
- var globalObject = void 0;
-
- function isFunction(x) {
- return typeof x === "function";
- }
-
- // Seek the global object
- if (global !== undefined) {
- globalObject = global;
- } else if (window !== undefined && window.document) {
- globalObject = window;
- } else {
- globalObject = self;
- }
-
- // Test for any native promise implementation, and if that
- // implementation appears to conform to the specificaton.
- // This code mostly nicked from the es6-promise module polyfill
- // and then fooled with.
- var hasPromiseSupport = function () {
-
- // No promise object at all, and it's a non-starter
- if (!globalObject.hasOwnProperty("Promise")) {
- return false;
- }
-
- // There is a Promise object. Does it conform to the spec?
- var P = globalObject.Promise;
-
- // Some of these methods are missing from
- // Firefox/Chrome experimental implementations
- if (!P.hasOwnProperty("resolve") || !P.hasOwnProperty("reject")) {
- return false;
- }
-
- if (!P.hasOwnProperty("all") || !P.hasOwnProperty("race")) {
- return false;
- }
-
- // Older version of the spec had a resolver object
- // as the arg rather than a function
- return function () {
-
- var resolve = void 0;
-
- var p = new globalObject.Promise(function (r) {
- resolve = r;
- });
-
- if (p) {
- return isFunction(resolve);
- }
-
- return false;
- }();
- }();
-
- // Export the native Promise implementation if it
- // looks like it matches the spec
- if (hasPromiseSupport) {
- return globalObject.Promise;
- }
-
- // Otherwise, return the es6-promise polyfill by @jaffathecake.
- return require("es6-promise").Promise;
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ce38041b07..0000000000
--- a/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
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-/* global module, require */
-module.exports = function () {
-
- "use strict";
-
- // Get a promise object. This may be native, or it may be polyfilled
-
- var ES6Promise = require("./promise.js");
-
- /**
- * thatLooksLikeAPromiseToMe()
- *
- * Duck-types a promise.
- *
- * @param {object} o
- * @return {bool} True if this resembles a promise
- */
- function thatLooksLikeAPromiseToMe(o) {
- return o && typeof o.then === "function" && typeof o.catch === "function";
- }
-
- /**
- * promisify()
- *
- * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into
- * an ES6-compatible Promise. Promisify provides a default callback of the form (error, result)
- * and rejects when `error` is truthy. You can also supply settings object as the second argument.
- *
- * @param {function} original - The function to promisify
- * @param {object} settings - Settings object
- * @param {object} settings.thisArg - A `this` context to use. If not set, assume `settings` _is_ `thisArg`
- * @param {bool} settings.multiArgs - Should multiple arguments be returned as an array?
- * @return {function} A promisified version of `original`
- */
- return function promisify(original, settings) {
-
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var returnMultipleArguments = settings && settings.multiArgs;
-
- var target = void 0;
- if (settings && settings.thisArg) {
- target = settings.thisArg;
- } else if (settings) {
- target = settings;
- }
-
- // Return the promisified function
- return new ES6Promise(function (resolve, reject) {
-
- // Append the callback bound to the context
- args.push(function callback(err) {
-
- if (err) {
- return reject(err);
- }
-
- for (var _len2 = arguments.length, values = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- values[_key2 - 1] = arguments[_key2];
- }
-
- if (false === !!returnMultipleArguments) {
- return resolve(values[0]);
- }
-
- resolve(values);
- });
-
- // Call the function
- var response = original.apply(target, args);
-
- // If it looks like original already returns a promise,
- // then just resolve with that promise. Hopefully, the callback function we added will just be ignored.
- if (thatLooksLikeAPromiseToMe(response)) {
- resolve(response);
- }
- });
- };
- };
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index 954ec5992d..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and 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.
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 92bbf36e58..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file can be required in Browserify and Node.js for automatic polyfill
-// To use it: require('es6-promise/auto');
-'use strict';
-module.exports = require('./').polyfill();
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 77997866f8..0000000000
--- a/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
+++ /dev/null
@@ -1,3 +0,0 @@
-import Promise from './es6-promise';
-Promise.polyfill();
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 4f4d840d09..0000000000
--- a/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
+++ /dev/null
@@ -1,7 +0,0 @@
-import Promise from './es6-promise/promise';
-import polyfill from './es6-promise/polyfill';
-
-// Strange compat..
-Promise.polyfill = polyfill;
-Promise.Promise = Promise;
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 9ca3c063aa..0000000000
--- a/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
+++ /dev/null
@@ -1,52 +0,0 @@
-import Enumerator from '../enumerator';
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-export default function all(entries) {
- return new Enumerator(this, entries).promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 166dc820b5..0000000000
--- a/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
+++ /dev/null
@@ -1,84 +0,0 @@
-import {
- isArray
-} from "../utils";
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-export default function race(entries) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
- } else {
- return new Constructor((resolve, reject) => {
- let length = entries.length;
- for (let i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cd55faabf5..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-import {
- noop,
- reject as _reject
-} from '../-internal';
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-export default function reject(reason) {
- /*jshint validthis:true */
- let Constructor = this;
- let promise = new Constructor(noop);
- _reject(promise, reason);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index f4642b630e..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- noop,
- resolve as _resolve
-} from '../-internal';
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-export default function resolve(object) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- let promise = new Constructor(noop);
- _resolve(promise, object);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b79f0a14..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
- invokeCallback,
- subscribe,
- FULFILLED,
- REJECTED,
- noop,
- makePromise,
- PROMISE_ID
-} from './-internal';
-
-import { asap } from './asap';
-
-export default function then(onFulfillment, onRejection) {
- const parent = this;
-
- const child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- const { _state } = parent;
-
- if (_state) {
- const callback = arguments[_state - 1];
- asap(() => invokeCallback(_state, child, callback, parent._result));
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
diff --git a/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 b/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
deleted file mode 100644
index 72545c5e97..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-export function objectOrFunction(x) {
- let type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-export function isFunction(x) {
- return typeof x === 'function';
-}
-
-export function isMaybeThenable(x) {
- return x !== null && typeof x === 'object';
-}
-
-let _isArray;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
-}
-
-export const isArray = _isArray;
diff --git a/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 b/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
deleted file mode 100644
index e2c2d2e623..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index f6c6531083..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/https-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index 4c8f49cf9e..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@^4.1.0",
- "_id": "agent-base@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-yWGUUmCZD/33IRjG2It94PzixT8lX+47Uq8fjmd0cgQWITCMrJuXFaVIMnGDmDnZGGKAGdwTx8UGeU8lMR2urA==",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent/agent-base",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agent-base@^4.1.0",
- "name": "agent-base",
- "escapedName": "agent-base",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/https-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.1.tgz",
- "_shasum": "92d8a4fc2524a3b09b3666a33b6c97960f23d6a4",
- "_spec": "agent-base@^4.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-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.1.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index a3f7bc6160..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'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);
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml
deleted file mode 100644
index 20a7068581..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore
deleted file mode 100644
index 5f60eecc84..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,9 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage
-bower.json
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c3b0..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
- - "6"
- - "5"
- - "4"
-
-install:
- - make node_modules
-
-script:
- - make lint
- - make test
- - make coveralls
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index 553da1585e..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-
-2.6.9 / 2017-09-22
-==================
-
- * remove ReDoS regexp in %o formatter (#504)
-
-2.6.8 / 2017-05-18
-==================
-
- * Fix: Check for undefined on browser globals (#462, @marbemac)
-
-2.6.7 / 2017-05-16
-==================
-
- * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
- * Fix: Inline extend function in node implementation (#452, @dougwilson)
- * Docs: Fix typo (#455, @msasad)
-
-2.6.5 / 2017-04-27
-==================
-
- * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
- * Misc: clean up browser reference checks (#447, @thebigredgeek)
- * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
-
-
-2.6.4 / 2017-04-20
-==================
-
- * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
- * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
- * Misc: update "ms" to v0.7.3 (@tootallnate)
-
-2.6.3 / 2017-03-13
-==================
-
- * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
- * Docs: Changelog fix (@thebigredgeek)
-
-2.6.2 / 2017-03-10
-==================
-
- * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
- * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
- * Docs: Add Slackin invite badge (@tootallnate)
-
-2.6.1 / 2017-02-10
-==================
-
- * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
- * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
- * Fix: IE8 "Expected identifier" error (#414, @vgoma)
- * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
- * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
- * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
- * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
- * Fix: reference error on window within webworkers (#393, @KlausTrainer)
- * Docs: fixed README typo (#391, @lurch)
- * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
- * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
- * Fix: wrong reference in bower file (@thebigredgeek)
- * Fix: webworker compatibility (@thebigredgeek)
- * Fix: output formatting issue (#388, @kribblo)
- * Fix: babel-loader compatibility (#383, @escwald)
- * Misc: removed built asset from repo and publications (@thebigredgeek)
- * Misc: moved source files to /src (#378, @yamikuronue)
- * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
- * Test: coveralls integration (#378, @yamikuronue)
- * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
- * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
- * Fix: custom log function (#379, @hsiliev)
- * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
- * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
- * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
- * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
- * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
- * Fix: browser colors (#367, @tootallnate)
- * Misc: travis ci integration (@thebigredgeek)
- * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
- * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
- * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
- * Fix: revert "handle regex special characters" (@tootallnate)
- * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
- * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
- * Improvement: allow colors in workers (#335, @botverse)
- * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
- * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
- * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
- * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
- * Fix: be super-safe in index.js as well (@TooTallNate)
- * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
- * Fix: Added electron compatibility (#324, @paulcbetts)
- * Improvement: Added performance optimizations (@tootallnate)
- * Readme: Corrected PowerShell environment variable example (#252, @gimre)
- * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
- * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
- * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
- * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
- * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
- * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
- * Package: Update "ms" to 0.7.2 (#315, @DevSide)
- * Package: removed superfluous version property from bower.json (#207 @kkirsche)
- * Readme: fix USE_COLORS to DEBUG_COLORS
- * Readme: Doc fixes for format string sugar (#269, @mlucool)
- * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
- * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
- * Readme: better docs for browser support (#224, @matthewmueller)
- * Tooling: Added yarn integration for development (#317, @thebigredgeek)
- * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
- * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
- * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE
deleted file mode 100644
index 54a5d93f4d..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile
deleted file mode 100644
index 584da8bf93..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
- @NODE_ENV= $(PKG) install
- @touch node_modules
-
-lint: .FORCE
- eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
- istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
- mkdir -p dist
-
- @$(BROWSERIFY) \
- --standalone debug \
- . > dist/debug.js
-
- karma start --single-run
- rimraf dist
-
-test: .FORCE
- concurrently \
- "make test-node" \
- "make test-browser"
-
-coveralls:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md
deleted file mode 100644
index bc59ae86e8..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md
+++ /dev/null
@@ -1,312 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
-[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
-
-
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
- When running through Node.js, you can set a few environment variables that will
- change the behavior of the debug logging:
-
-| Name | Purpose |
-|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disables specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
- __Note:__ The environment variables beginning with `DEBUG_` end up being
- converted into an Options object that gets used with `%o`/`%O` formatters.
- See the Node.js documentation for
- [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
- for the complete list.
-
-## Formatters
-
-
- Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O` | Pretty-print an Object on multiple lines. |
-| `%o` | Pretty-print an Object all on a single line. |
-| `%s` | String. |
-| `%d` | Number (both integer and float). |
-| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%` | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
- You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
- return v.toString('hex')
-}
-
-// ā€¦elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-// foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
- You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
- or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
- if you don't want to build it yourself.
-
- Debug's enable state is currently persisted by `localStorage`.
- Consider the situation shown below where you have `worker:a` and `worker:b`,
- and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
- By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
-
-<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
-
-<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json
deleted file mode 100644
index 9de26410f0..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.6.9",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "src/browser.js",
- "scripts": [
- "src/browser.js",
- "src/debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js
deleted file mode 100644
index 103a82d15b..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
- config.set({
-
- // base path that will be used to resolve all patterns (eg. files, exclude)
- basePath: '',
-
-
- // frameworks to use
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['mocha', 'chai', 'sinon'],
-
-
- // list of files / patterns to load in the browser
- files: [
- 'dist/debug.js',
- 'test/*spec.js'
- ],
-
-
- // list of files to exclude
- exclude: [
- 'src/node.js'
- ],
-
-
- // preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
- preprocessors: {
- },
-
- // test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
- reporters: ['progress'],
-
-
- // web server port
- port: 9876,
-
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: true,
-
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: false,
-
- // Concurrency level
- // how many browser should be started simultaneous
- concurrency: Infinity
- })
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js
deleted file mode 100644
index 7fc36fe6db..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./src/node');
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js
deleted file mode 100644
index 6a522b16b3..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md
deleted file mode 100644
index 69b61253a3..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json
deleted file mode 100644
index c05fb88e74..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent/debug/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "ms@2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "2.0.0",
- "saveSpec": null,
- "fetchSpec": "2.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/https-proxy-agent/debug"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974ccc..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json
deleted file mode 100644
index 00d343572d..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "debug@^2.4.1",
- "_id": "debug@2.6.9",
- "_inBundle": false,
- "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent/debug",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "debug@^2.4.1",
- "name": "debug",
- "escapedName": "debug",
- "rawSpec": "^2.4.1",
- "saveSpec": null,
- "fetchSpec": "^2.4.1"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/https-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
- "_spec": "debug@^2.4.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent",
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "browser": "./src/browser.js",
- "bugs": {
- "url": "https://github.com/visionmedia/debug/issues"
- },
- "bundleDependencies": false,
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- },
- "contributors": [
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io"
- },
- {
- "name": "Andrew Rhyne",
- "email": "rhyneandrew@gmail.com"
- }
- ],
- "dependencies": {
- "ms": "2.0.0"
- },
- "deprecated": false,
- "description": "small debugging utility",
- "devDependencies": {
- "browserify": "9.0.3",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "homepage": "https://github.com/visionmedia/debug#readme",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "license": "MIT",
- "main": "./src/index.js",
- "name": "debug",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "version": "2.6.9"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
deleted file mode 100644
index 7106924934..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
-
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return;
-
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit')
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js
deleted file mode 100644
index 6a5e3fc94c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
- var hash = 0, i;
-
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
-
- return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
- function debug() {
- // disabled?
- if (!debug.enabled) return;
-
- var self = debug;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
-
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
-
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
-
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
-
- return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- exports.names = [];
- exports.skips = [];
-
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d58c..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = require('./browser.js');
-} else {
- module.exports = require('./node.js');
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js
deleted file mode 100644
index 60ea6c04aa..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = inspectorLog;
-
-// black hole
-const nullStream = new (require('stream').Writable)();
-nullStream._write = () => {};
-
-/**
- * Outputs a `console.log()` to the Node.js Inspector console *only*.
- */
-function inspectorLog() {
- const stdout = console._stdout;
- console._stdout = nullStream;
- console.log.apply(console, arguments);
- console._stdout = stdout;
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js
deleted file mode 100644
index b15109c905..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
-
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
-
- obj[prop] = val;
- return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
- util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
-
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
- return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
- debug.inspectOpts = {};
-
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json
deleted file mode 100644
index 36272a6f94..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "https-proxy-agent@^2.0.0",
- "_id": "https-proxy-agent@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-/DTVSUCbRc6AiyOV4DBRvPDpKKCJh4qQJNaCgypX0T41quD9hp/PB5iUyx/60XobuMPQa9ce1jNV9UOUq6PnTg==",
- "_location": "/npm-profile/make-fetch-happen/https-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "https-proxy-agent@^2.0.0",
- "name": "https-proxy-agent",
- "escapedName": "https-proxy-agent",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.0.tgz",
- "_shasum": "1391bee7fd66aeabc0df2a1fa90f58954f43e443",
- "_spec": "https-proxy-agent@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-https-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "^4.1.0",
- "debug": "^2.4.1"
- },
- "deprecated": false,
- "description": "An HTTP(s) proxy `http.Agent` implementation for HTTPS",
- "devDependencies": {
- "mocha": "^3.4.2",
- "proxy": "^0.2.4"
- },
- "homepage": "https://github.com/TooTallNate/node-https-proxy-agent#readme",
- "keywords": [
- "https",
- "proxy",
- "endpoint",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "https-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-https-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js
deleted file mode 100644
index 9017701f55..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js
+++ /dev/null
@@ -1,308 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var fs = require('fs');
-var url = require('url');
-var http = require('http');
-var https = require('https');
-var assert = require('assert');
-var Proxy = require('proxy');
-var HttpsProxyAgent = require('../');
-
-describe('HttpsProxyAgent', function () {
-
- var server;
- var serverPort;
-
- var sslServer;
- var sslServerPort;
-
- var proxy;
- var proxyPort;
-
- var sslProxy;
- var sslProxyPort;
-
- before(function (done) {
- // setup target HTTP server
- server = http.createServer();
- server.listen(function () {
- serverPort = server.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup HTTP proxy server
- proxy = Proxy();
- proxy.listen(function () {
- proxyPort = proxy.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup target HTTPS server
- var options = {
- key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
- cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
- };
- sslServer = https.createServer(options);
- sslServer.listen(function () {
- sslServerPort = sslServer.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup SSL HTTP proxy server
- var options = {
- key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
- cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
- };
- sslProxy = Proxy(https.createServer(options));
- sslProxy.listen(function () {
- sslProxyPort = sslProxy.address().port;
- done();
- });
- });
-
- // shut down test HTTP server
- after(function (done) {
- server.once('close', function () { done(); });
- server.close();
- });
-
- after(function (done) {
- proxy.once('close', function () { done(); });
- proxy.close();
- });
-
- after(function (done) {
- sslServer.once('close', function () { done(); });
- sslServer.close();
- });
-
- after(function (done) {
- sslProxy.once('close', function () { done(); });
- sslProxy.close();
- });
-
- describe('constructor', function () {
- it('should throw an Error if no "proxy" argument is given', function () {
- assert.throws(function () {
- new HttpsProxyAgent();
- });
- });
- it('should accept a "string" proxy argument', function () {
- var agent = new HttpsProxyAgent('http://127.0.0.1:' + proxyPort);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- it('should accept a `url.parse()` result object argument', function () {
- var opts = url.parse('http://127.0.0.1:' + proxyPort);
- var agent = new HttpsProxyAgent(opts);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- describe('secureProxy', function () {
- it('should default to `false`', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `false` when "http:" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'http:' });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `true` when "https:" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https:' });
- assert.equal(true, agent.secureProxy);
- });
- it('should be `true` when "https" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https' });
- assert.equal(true, agent.secureProxy);
- });
- });
- });
-
- describe('"http" module', function () {
-
- beforeEach(function () {
- delete proxy.authenticate;
- });
-
- it('should work over an HTTP proxy', function (done) {
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- var req = http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- done();
- });
- });
- req.once('error', done);
- });
- it('should work over an HTTPS proxy', function (done) {
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
- proxy = url.parse(proxy);
- proxy.rejectUnauthorized = false;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- done();
- });
- });
- });
- it('should receive the 407 authorization code on the `http.ClientResponse`', function (done) {
- // set a proxy authentication function for this test
- proxy.authenticate = function (req, fn) {
- // reject all requests
- fn(null, false);
- };
-
- var proxyUri = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxyUri);
-
- var opts = {};
- // `host` and `port` don't really matter since the proxy will reject anyways
- opts.host = '127.0.0.1';
- opts.port = 80;
- opts.agent = agent;
-
- var req = http.get(opts, function (res) {
- assert.equal(407, res.statusCode);
- assert('proxy-authenticate' in res.headers);
- done();
- });
- });
- it('should emit an "error" event on the `http.ClientRequest` if the proxy does not exist', function (done) {
- // port 4 is a reserved, but "unassigned" port
- var proxyUri = 'http://127.0.0.1:4';
- var agent = new HttpsProxyAgent(proxyUri);
-
- var opts = url.parse('http://nodejs.org');
- opts.agent = agent;
-
- var req = http.get(opts);
- req.once('error', function (err) {
- assert.equal('ECONNREFUSED', err.code);
- req.abort();
- done();
- });
- });
-
- it('should allow custom proxy "headers"', function (done) {
- server.once('connect', function (req, socket, head) {
- assert.equal('CONNECT', req.method);
- assert.equal('bar', req.headers.foo);
- socket.destroy();
- done();
- });
-
- var uri = 'http://127.0.0.1:' + serverPort;
- var proxyOpts = url.parse(uri);
- proxyOpts.headers = {
- 'Foo': 'bar'
- };
- var agent = new HttpsProxyAgent(proxyOpts);
-
- var opts = {};
- // `host` and `port` don't really matter since the proxy will reject anyways
- opts.host = '127.0.0.1';
- opts.port = 80;
- opts.agent = agent;
-
- http.get(opts);
- });
-
- });
-
- describe('"https" module', function () {
- it('should work over an HTTP proxy', function (done) {
- sslServer.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('https://127.0.0.1:' + sslServerPort);
- opts.rejectUnauthorized = false;
- opts.agent = agent;
-
- https.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + sslServerPort, data.host);
- done();
- });
- });
- });
-
- it('should work over an HTTPS proxy', function (done) {
- sslServer.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
- proxy = url.parse(proxy);
- proxy.rejectUnauthorized = false;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('https://127.0.0.1:' + sslServerPort);
- opts.agent = agent;
- opts.rejectUnauthorized = false;
-
- https.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + sslServerPort, data.host);
- done();
- });
- });
- });
-
- });
-
-});
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore
deleted file mode 100644
index 5cd2673c9b..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*~
-*sublime-*
-generation
-test
-wiki
-coverage
diff --git a/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 b/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
deleted file mode 100644
index 5102d7ce95..0000000000
--- a/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
+++ /dev/null
@@ -1,132 +0,0 @@
-
-# 0.4.19 / 2017-09-09
-
- * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147)
- * Re-generated windows1255 codec, because it was updated in iconv project
- * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8
-
-
-# 0.4.18 / 2017-06-13
-
- * Fixed CESU-8 regression in Node v8.
-
-
-# 0.4.17 / 2017-04-22
-
- * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn)
-
-
-# 0.4.16 / 2017-04-22
-
- * Added support for React Native (#150)
- * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex)
- * Fixed typo in Readme (#138 by @jiangzhuo)
- * Fixed build for Node v6.10+ by making correct version comparison
- * Added a warning if iconv-lite is loaded not as utf-8 (see #142)
-
-
-# 0.4.15 / 2016-11-21
-
- * Fixed typescript type definition (#137)
-
-
-# 0.4.14 / 2016-11-20
-
- * Preparation for v1.0
- * Added Node v6 and latest Node versions to Travis CI test rig
- * Deprecated Node v0.8 support
- * Typescript typings (@larssn)
- * Fix encoding of Euro character in GB 18030 (inspired by @lygstate)
- * Add ms prefix to dbcs windows encodings (@rokoroku)
-
-
-# 0.4.13 / 2015-10-01
-
- * Fix silly mistake in deprecation notice.
-
-
-# 0.4.12 / 2015-09-26
-
- * Node v4 support:
- * Added CESU-8 decoding (#106)
- * Added deprecation notice for `extendNodeEncodings`
- * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol)
-
-
-# 0.4.11 / 2015-07-03
-
- * Added CESU-8 encoding.
-
-
-# 0.4.10 / 2015-05-26
-
- * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not
- just spaces. This should minimize the importance of "default" endianness.
-
-
-# 0.4.9 / 2015-05-24
-
- * Streamlined BOM handling: strip BOM by default, add BOM when encoding if
- addBOM: true. Added docs to Readme.
- * UTF16 now uses UTF16-LE by default.
- * Fixed minor issue with big5 encoding.
- * Added io.js testing on Travis; updated node-iconv version to test against.
- Now we just skip testing SBCS encodings that node-iconv doesn't support.
- * (internal refactoring) Updated codec interface to use classes.
- * Use strict mode in all files.
-
-
-# 0.4.8 / 2015-04-14
-
- * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94)
-
-
-# 0.4.7 / 2015-02-05
-
- * stop official support of Node.js v0.8. Should still work, but no guarantees.
- reason: Packages needed for testing are hard to get on Travis CI.
- * work in environment where Object.prototype is monkey patched with enumerable
- props (#89).
-
-
-# 0.4.6 / 2015-01-12
-
- * fix rare aliases of single-byte encodings (thanks @mscdex)
- * double the timeout for dbcs tests to make them less flaky on travis
-
-
-# 0.4.5 / 2014-11-20
-
- * fix windows-31j and x-sjis encoding support (@nleush)
- * minor fix: undefined variable reference when internal error happens
-
-
-# 0.4.4 / 2014-07-16
-
- * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3)
- * fixed streaming base64 encoding
-
-
-# 0.4.3 / 2014-06-14
-
- * added encodings UTF-16BE and UTF-16 with BOM
-
-
-# 0.4.2 / 2014-06-12
-
- * don't throw exception if `extendNodeEncodings()` is called more than once
-
-
-# 0.4.1 / 2014-06-11
-
- * codepage 808 added
-
-
-# 0.4.0 / 2014-06-10
-
- * code is rewritten from scratch
- * all widespread encodings are supported
- * streaming interface added
- * browserify compatibility added
- * (optional) extend core primitive encodings to make usage even simpler
- * moved from vows to mocha as the testing framework
diff --git a/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 b/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
deleted file mode 100644
index 8c0bb9a48f..0000000000
--- a/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
+++ /dev/null
@@ -1,160 +0,0 @@
-## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite)
-
- * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io).
- * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser),
- [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others.
- * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison).
- * Intuitive encode/decode API
- * Streaming support for Node v0.10+
- * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings.
- * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included).
- * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included.
- * React Native is supported (need to explicitly `npm install` two more modules: `buffer` and `stream`).
- * License: MIT.
-
-[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/)
-
-## Usage
-### Basic API
-```javascript
-var iconv = require('iconv-lite');
-
-// Convert from an encoded buffer to js string.
-str = iconv.decode(new Buffer([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251');
-
-// Convert from js string to an encoded buffer.
-buf = iconv.encode("Sample input string", 'win1251');
-
-// Check if encoding is supported
-iconv.encodingExists("us-ascii")
-```
-
-### Streaming API (Node v0.10+)
-```javascript
-
-// Decode stream (from binary stream to js strings)
-http.createServer(function(req, res) {
- var converterStream = iconv.decodeStream('win1251');
- req.pipe(converterStream);
-
- converterStream.on('data', function(str) {
- console.log(str); // Do something with decoded strings, chunk-by-chunk.
- });
-});
-
-// Convert encoding streaming example
-fs.createReadStream('file-in-win1251.txt')
- .pipe(iconv.decodeStream('win1251'))
- .pipe(iconv.encodeStream('ucs2'))
- .pipe(fs.createWriteStream('file-in-ucs2.txt'));
-
-// Sugar: all encode/decode streams have .collect(cb) method to accumulate data.
-http.createServer(function(req, res) {
- req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) {
- assert(typeof body == 'string');
- console.log(body); // full request body string
- });
-});
-```
-
-### [Deprecated] Extend Node.js own encodings
-> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility).
-
-```javascript
-// After this call all Node basic primitives will understand iconv-lite encodings.
-iconv.extendNodeEncodings();
-
-// Examples:
-buf = new Buffer(str, 'win1251');
-buf.write(str, 'gbk');
-str = buf.toString('latin1');
-assert(Buffer.isEncoding('iso-8859-15'));
-Buffer.byteLength(str, 'us-ascii');
-
-http.createServer(function(req, res) {
- req.setEncoding('big5');
- req.collect(function(err, body) {
- console.log(body);
- });
-});
-
-fs.createReadStream("file.txt", "shift_jis");
-
-// External modules are also supported (if they use Node primitives, which they probably do).
-request = require('request');
-request({
- url: "http://github.com/",
- encoding: "cp932"
-});
-
-// To remove extensions
-iconv.undoExtendNodeEncodings();
-```
-
-## Supported encodings
-
- * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex.
- * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap.
- * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family,
- IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library.
- Aliases like 'latin1', 'us-ascii' also supported.
- * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP.
-
-See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings).
-
-Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors!
-
-Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors!
-
-
-## Encoding/decoding speed
-
-Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0).
-Note: your results may vary, so please always check on your hardware.
-
- operation iconv@2.1.4 iconv-lite@0.4.7
- ----------------------------------------------------------
- encode('win1251') ~96 Mb/s ~320 Mb/s
- decode('win1251') ~95 Mb/s ~246 Mb/s
-
-## BOM handling
-
- * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options
- (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`).
- A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found.
- * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module.
- * Encoding: No BOM added, unless overridden by `addBOM: true` option.
-
-## UTF-16 Encodings
-
-This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be
-smart about endianness in the following ways:
- * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be
- overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`.
- * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override.
-
-## Other notes
-
-When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding).
-Untranslatable characters are set to ļæ½ or ?. No transliteration is currently supported.
-Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77).
-
-## Testing
-
-```bash
-$ git clone git@github.com:ashtuchkin/iconv-lite.git
-$ cd iconv-lite
-$ npm install
-$ npm test
-
-$ # To view performance:
-$ node test/performance.js
-
-$ # To view test coverage:
-$ npm run coverage
-$ open coverage/lcov-report/index.html
-```
-
-## Adoption
-[![NPM](https://nodei.co/npm-dl/iconv-lite.png)](https://nodei.co/npm/iconv-lite/)
-[![Codeship Status for ashtuchkin/iconv-lite](https://www.codeship.com/projects/81670840-fa72-0131-4520-4a01a6c01acc/status)](https://www.codeship.com/projects/29053)
diff --git a/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 b/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
deleted file mode 100644
index f6072c2a6a..0000000000
--- a/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
+++ /dev/null
@@ -1,554 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
-// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
-// To save memory and loading time, we read table files only when requested.
-
-exports._dbcs = DBCSCodec;
-
-var UNASSIGNED = -1,
- GB18030_CODE = -2,
- SEQ_START = -10,
- NODE_START = -1000,
- UNASSIGNED_NODE = new Array(0x100),
- DEF_CHAR = -1;
-
-for (var i = 0; i < 0x100; i++)
- UNASSIGNED_NODE[i] = UNASSIGNED;
-
-
-// Class DBCSCodec reads and initializes mapping tables.
-function DBCSCodec(codecOptions, iconv) {
- this.encodingName = codecOptions.encodingName;
- if (!codecOptions)
- throw new Error("DBCS codec is called without the data.")
- if (!codecOptions.table)
- throw new Error("Encoding '" + this.encodingName + "' has no data.");
-
- // Load tables.
- var mappingTable = codecOptions.table();
-
-
- // Decode tables: MBCS -> Unicode.
-
- // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
- // Trie root is decodeTables[0].
- // Values: >= 0 -> unicode character code. can be > 0xFFFF
- // == UNASSIGNED -> unknown/unassigned sequence.
- // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
- // <= NODE_START -> index of the next node in our trie to process next byte.
- // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
- this.decodeTables = [];
- this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
-
- // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
- this.decodeTableSeq = [];
-
- // Actual mapping tables consist of chunks. Use them to fill up decode tables.
- for (var i = 0; i < mappingTable.length; i++)
- this._addDecodeChunk(mappingTable[i]);
-
- this.defaultCharUnicode = iconv.defaultCharUnicode;
-
-
- // Encode tables: Unicode -> DBCS.
-
- // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
- // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
- // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
- // == UNASSIGNED -> no conversion found. Output a default char.
- // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
- this.encodeTable = [];
-
- // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
- // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
- // means end of sequence (needed when one sequence is a strict subsequence of another).
- // Objects are kept separately from encodeTable to increase performance.
- this.encodeTableSeq = [];
-
- // Some chars can be decoded, but need not be encoded.
- var skipEncodeChars = {};
- if (codecOptions.encodeSkipVals)
- for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
- var val = codecOptions.encodeSkipVals[i];
- if (typeof val === 'number')
- skipEncodeChars[val] = true;
- else
- for (var j = val.from; j <= val.to; j++)
- skipEncodeChars[j] = true;
- }
-
- // Use decode trie to recursively fill out encode tables.
- this._fillEncodeTable(0, 0, skipEncodeChars);
-
- // Add more encoding pairs when needed.
- if (codecOptions.encodeAdd) {
- for (var uChar in codecOptions.encodeAdd)
- if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
- this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
- }
-
- this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
-
-
- // Load & create GB18030 tables when needed.
- if (typeof codecOptions.gb18030 === 'function') {
- this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
-
- // Add GB18030 decode tables.
- var thirdByteNodeIdx = this.decodeTables.length;
- var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
-
- var fourthByteNodeIdx = this.decodeTables.length;
- var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
-
- for (var i = 0x81; i <= 0xFE; i++) {
- var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
- var secondByteNode = this.decodeTables[secondByteNodeIdx];
- for (var j = 0x30; j <= 0x39; j++)
- secondByteNode[j] = NODE_START - thirdByteNodeIdx;
- }
- for (var i = 0x81; i <= 0xFE; i++)
- thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
- for (var i = 0x30; i <= 0x39; i++)
- fourthByteNode[i] = GB18030_CODE
- }
-}
-
-DBCSCodec.prototype.encoder = DBCSEncoder;
-DBCSCodec.prototype.decoder = DBCSDecoder;
-
-// Decoder helpers
-DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
- var bytes = [];
- for (; addr > 0; addr >>= 8)
- bytes.push(addr & 0xFF);
- if (bytes.length == 0)
- bytes.push(0);
-
- var node = this.decodeTables[0];
- for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
- var val = node[bytes[i]];
-
- if (val == UNASSIGNED) { // Create new node.
- node[bytes[i]] = NODE_START - this.decodeTables.length;
- this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
- }
- else if (val <= NODE_START) { // Existing node.
- node = this.decodeTables[NODE_START - val];
- }
- else
- throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
- }
- return node;
-}
-
-
-DBCSCodec.prototype._addDecodeChunk = function(chunk) {
- // First element of chunk is the hex mbcs code where we start.
- var curAddr = parseInt(chunk[0], 16);
-
- // Choose the decoding node where we'll write our chars.
- var writeTable = this._getDecodeTrieNode(curAddr);
- curAddr = curAddr & 0xFF;
-
- // Write all other elements of the chunk to the table.
- for (var k = 1; k < chunk.length; k++) {
- var part = chunk[k];
- if (typeof part === "string") { // String, write as-is.
- for (var l = 0; l < part.length;) {
- var code = part.charCodeAt(l++);
- if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
- var codeTrail = part.charCodeAt(l++);
- if (0xDC00 <= codeTrail && codeTrail < 0xE000)
- writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
- else
- throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
- }
- else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
- var len = 0xFFF - code + 2;
- var seq = [];
- for (var m = 0; m < len; m++)
- seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
-
- writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
- this.decodeTableSeq.push(seq);
- }
- else
- writeTable[curAddr++] = code; // Basic char
- }
- }
- else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
- var charCode = writeTable[curAddr - 1] + 1;
- for (var l = 0; l < part; l++)
- writeTable[curAddr++] = charCode++;
- }
- else
- throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
- }
- if (curAddr > 0xFF)
- throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
-}
-
-// Encoder helpers
-DBCSCodec.prototype._getEncodeBucket = function(uCode) {
- var high = uCode >> 8; // This could be > 0xFF because of astral characters.
- if (this.encodeTable[high] === undefined)
- this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
- return this.encodeTable[high];
-}
-
-DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 0xFF;
- if (bucket[low] <= SEQ_START)
- this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
- else if (bucket[low] == UNASSIGNED)
- bucket[low] = dbcsCode;
-}
-
-DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
-
- // Get the root of character tree according to first character of the sequence.
- var uCode = seq[0];
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 0xFF;
-
- var node;
- if (bucket[low] <= SEQ_START) {
- // There's already a sequence with - use it.
- node = this.encodeTableSeq[SEQ_START-bucket[low]];
- }
- else {
- // There was no sequence object - allocate a new one.
- node = {};
- if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
- bucket[low] = SEQ_START - this.encodeTableSeq.length;
- this.encodeTableSeq.push(node);
- }
-
- // Traverse the character tree, allocating new nodes as needed.
- for (var j = 1; j < seq.length-1; j++) {
- var oldVal = node[uCode];
- if (typeof oldVal === 'object')
- node = oldVal;
- else {
- node = node[uCode] = {}
- if (oldVal !== undefined)
- node[DEF_CHAR] = oldVal
- }
- }
-
- // Set the leaf to given dbcsCode.
- uCode = seq[seq.length-1];
- node[uCode] = dbcsCode;
-}
-
-DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
- var node = this.decodeTables[nodeIdx];
- for (var i = 0; i < 0x100; i++) {
- var uCode = node[i];
- var mbCode = prefix + i;
- if (skipEncodeChars[mbCode])
- continue;
-
- if (uCode >= 0)
- this._setEncodeChar(uCode, mbCode);
- else if (uCode <= NODE_START)
- this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
- else if (uCode <= SEQ_START)
- this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
- }
-}
-
-
-
-// == Encoder ==================================================================
-
-function DBCSEncoder(options, codec) {
- // Encoder state
- this.leadSurrogate = -1;
- this.seqObj = undefined;
-
- // Static data
- this.encodeTable = codec.encodeTable;
- this.encodeTableSeq = codec.encodeTableSeq;
- this.defaultCharSingleByte = codec.defCharSB;
- this.gb18030 = codec.gb18030;
-}
-
-DBCSEncoder.prototype.write = function(str) {
- var newBuf = new Buffer(str.length * (this.gb18030 ? 4 : 3)),
- leadSurrogate = this.leadSurrogate,
- seqObj = this.seqObj, nextChar = -1,
- i = 0, j = 0;
-
- while (true) {
- // 0. Get next character.
- if (nextChar === -1) {
- if (i == str.length) break;
- var uCode = str.charCodeAt(i++);
- }
- else {
- var uCode = nextChar;
- nextChar = -1;
- }
-
- // 1. Handle surrogates.
- if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
- if (uCode < 0xDC00) { // We've got lead surrogate.
- if (leadSurrogate === -1) {
- leadSurrogate = uCode;
- continue;
- } else {
- leadSurrogate = uCode;
- // Double lead surrogate found.
- uCode = UNASSIGNED;
- }
- } else { // We've got trail surrogate.
- if (leadSurrogate !== -1) {
- uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
- leadSurrogate = -1;
- } else {
- // Incomplete surrogate pair - only trail surrogate found.
- uCode = UNASSIGNED;
- }
-
- }
- }
- else if (leadSurrogate !== -1) {
- // Incomplete surrogate pair - only lead surrogate found.
- nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
- leadSurrogate = -1;
- }
-
- // 2. Convert uCode character.
- var dbcsCode = UNASSIGNED;
- if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
- var resCode = seqObj[uCode];
- if (typeof resCode === 'object') { // Sequence continues.
- seqObj = resCode;
- continue;
-
- } else if (typeof resCode == 'number') { // Sequence finished. Write it.
- dbcsCode = resCode;
-
- } else if (resCode == undefined) { // Current character is not part of the sequence.
-
- // Try default character for this sequence
- resCode = seqObj[DEF_CHAR];
- if (resCode !== undefined) {
- dbcsCode = resCode; // Found. Write it.
- nextChar = uCode; // Current character will be written too in the next iteration.
-
- } else {
- // TODO: What if we have no default? (resCode == undefined)
- // Then, we should write first char of the sequence as-is and try the rest recursively.
- // Didn't do it for now because no encoding has this situation yet.
- // Currently, just skip the sequence and write current char.
- }
- }
- seqObj = undefined;
- }
- else if (uCode >= 0) { // Regular character
- var subtable = this.encodeTable[uCode >> 8];
- if (subtable !== undefined)
- dbcsCode = subtable[uCode & 0xFF];
-
- if (dbcsCode <= SEQ_START) { // Sequence start
- seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
- continue;
- }
-
- if (dbcsCode == UNASSIGNED && this.gb18030) {
- // Use GB18030 algorithm to find character(s) to write.
- var idx = findIdx(this.gb18030.uChars, uCode);
- if (idx != -1) {
- var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
- newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
- newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
- newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
- newBuf[j++] = 0x30 + dbcsCode;
- continue;
- }
- }
- }
-
- // 3. Write dbcsCode character.
- if (dbcsCode === UNASSIGNED)
- dbcsCode = this.defaultCharSingleByte;
-
- if (dbcsCode < 0x100) {
- newBuf[j++] = dbcsCode;
- }
- else if (dbcsCode < 0x10000) {
- newBuf[j++] = dbcsCode >> 8; // high byte
- newBuf[j++] = dbcsCode & 0xFF; // low byte
- }
- else {
- newBuf[j++] = dbcsCode >> 16;
- newBuf[j++] = (dbcsCode >> 8) & 0xFF;
- newBuf[j++] = dbcsCode & 0xFF;
- }
- }
-
- this.seqObj = seqObj;
- this.leadSurrogate = leadSurrogate;
- return newBuf.slice(0, j);
-}
-
-DBCSEncoder.prototype.end = function() {
- if (this.leadSurrogate === -1 && this.seqObj === undefined)
- return; // All clean. Most often case.
-
- var newBuf = new Buffer(10), j = 0;
-
- if (this.seqObj) { // We're in the sequence.
- var dbcsCode = this.seqObj[DEF_CHAR];
- if (dbcsCode !== undefined) { // Write beginning of the sequence.
- if (dbcsCode < 0x100) {
- newBuf[j++] = dbcsCode;
- }
- else {
- newBuf[j++] = dbcsCode >> 8; // high byte
- newBuf[j++] = dbcsCode & 0xFF; // low byte
- }
- } else {
- // See todo above.
- }
- this.seqObj = undefined;
- }
-
- if (this.leadSurrogate !== -1) {
- // Incomplete surrogate pair - only lead surrogate found.
- newBuf[j++] = this.defaultCharSingleByte;
- this.leadSurrogate = -1;
- }
-
- return newBuf.slice(0, j);
-}
-
-// Export for testing
-DBCSEncoder.prototype.findIdx = findIdx;
-
-
-// == Decoder ==================================================================
-
-function DBCSDecoder(options, codec) {
- // Decoder state
- this.nodeIdx = 0;
- this.prevBuf = new Buffer(0);
-
- // Static data
- this.decodeTables = codec.decodeTables;
- this.decodeTableSeq = codec.decodeTableSeq;
- this.defaultCharUnicode = codec.defaultCharUnicode;
- this.gb18030 = codec.gb18030;
-}
-
-DBCSDecoder.prototype.write = function(buf) {
- var newBuf = new Buffer(buf.length*2),
- nodeIdx = this.nodeIdx,
- prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
- seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
- uCode;
-
- if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
- prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
-
- for (var i = 0, j = 0; i < buf.length; i++) {
- var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];
-
- // Lookup in current trie node.
- var uCode = this.decodeTables[nodeIdx][curByte];
-
- if (uCode >= 0) {
- // Normal character, just use it.
- }
- else if (uCode === UNASSIGNED) { // Unknown char.
- // TODO: Callback with seq.
- //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
- i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
- uCode = this.defaultCharUnicode.charCodeAt(0);
- }
- else if (uCode === GB18030_CODE) {
- var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
- var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
- var idx = findIdx(this.gb18030.gbChars, ptr);
- uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
- }
- else if (uCode <= NODE_START) { // Go to next trie node.
- nodeIdx = NODE_START - uCode;
- continue;
- }
- else if (uCode <= SEQ_START) { // Output a sequence of chars.
- var seq = this.decodeTableSeq[SEQ_START - uCode];
- for (var k = 0; k < seq.length - 1; k++) {
- uCode = seq[k];
- newBuf[j++] = uCode & 0xFF;
- newBuf[j++] = uCode >> 8;
- }
- uCode = seq[seq.length-1];
- }
- else
- throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
-
- // Write the character to buffer, handling higher planes using surrogate pair.
- if (uCode > 0xFFFF) {
- uCode -= 0x10000;
- var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
- newBuf[j++] = uCodeLead & 0xFF;
- newBuf[j++] = uCodeLead >> 8;
-
- uCode = 0xDC00 + uCode % 0x400;
- }
- newBuf[j++] = uCode & 0xFF;
- newBuf[j++] = uCode >> 8;
-
- // Reset trie node.
- nodeIdx = 0; seqStart = i+1;
- }
-
- this.nodeIdx = nodeIdx;
- this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
- return newBuf.slice(0, j).toString('ucs2');
-}
-
-DBCSDecoder.prototype.end = function() {
- var ret = '';
-
- // Try to parse all remaining chars.
- while (this.prevBuf.length > 0) {
- // Skip 1 character in the buffer.
- ret += this.defaultCharUnicode;
- var buf = this.prevBuf.slice(1);
-
- // Parse remaining as usual.
- this.prevBuf = new Buffer(0);
- this.nodeIdx = 0;
- if (buf.length > 0)
- ret += this.write(buf);
- }
-
- this.nodeIdx = 0;
- return ret;
-}
-
-// Binary search for GB18030. Returns largest i such that table[i] <= val.
-function findIdx(table, val) {
- if (table[0] > val)
- return -1;
-
- var l = 0, r = table.length;
- while (l < r-1) { // always table[l] <= val < table[r]
- var mid = l + Math.floor((r-l+1)/2);
- if (table[mid] <= val)
- l = mid;
- else
- r = mid;
- }
- return l;
-}
diff --git a/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 b/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
deleted file mode 100644
index 30e2c47568..0000000000
--- a/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
+++ /dev/null
@@ -1,188 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Export Node.js internal encodings.
-
-module.exports = {
- // Encodings
- utf8: { type: "_internal", bomAware: true},
- cesu8: { type: "_internal", bomAware: true},
- unicode11utf8: "utf8",
-
- ucs2: { type: "_internal", bomAware: true},
- utf16le: "ucs2",
-
- binary: { type: "_internal" },
- base64: { type: "_internal" },
- hex: { type: "_internal" },
-
- // Codec.
- _internal: InternalCodec,
-};
-
-//------------------------------------------------------------------------------
-
-function InternalCodec(codecOptions, iconv) {
- this.enc = codecOptions.encodingName;
- this.bomAware = codecOptions.bomAware;
-
- if (this.enc === "base64")
- this.encoder = InternalEncoderBase64;
- else if (this.enc === "cesu8") {
- this.enc = "utf8"; // Use utf8 for decoding.
- this.encoder = InternalEncoderCesu8;
-
- // Add decoder for versions of Node not supporting CESU-8
- if (new Buffer('eda0bdedb2a9', 'hex').toString() !== 'šŸ’©') {
- this.decoder = InternalDecoderCesu8;
- this.defaultCharUnicode = iconv.defaultCharUnicode;
- }
- }
-}
-
-InternalCodec.prototype.encoder = InternalEncoder;
-InternalCodec.prototype.decoder = InternalDecoder;
-
-//------------------------------------------------------------------------------
-
-// We use node.js internal decoder. Its signature is the same as ours.
-var StringDecoder = require('string_decoder').StringDecoder;
-
-if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
- StringDecoder.prototype.end = function() {};
-
-
-function InternalDecoder(options, codec) {
- StringDecoder.call(this, codec.enc);
-}
-
-InternalDecoder.prototype = StringDecoder.prototype;
-
-
-//------------------------------------------------------------------------------
-// Encoder is mostly trivial
-
-function InternalEncoder(options, codec) {
- this.enc = codec.enc;
-}
-
-InternalEncoder.prototype.write = function(str) {
- return new Buffer(str, this.enc);
-}
-
-InternalEncoder.prototype.end = function() {
-}
-
-
-//------------------------------------------------------------------------------
-// Except base64 encoder, which must keep its state.
-
-function InternalEncoderBase64(options, codec) {
- this.prevStr = '';
-}
-
-InternalEncoderBase64.prototype.write = function(str) {
- str = this.prevStr + str;
- var completeQuads = str.length - (str.length % 4);
- this.prevStr = str.slice(completeQuads);
- str = str.slice(0, completeQuads);
-
- return new Buffer(str, "base64");
-}
-
-InternalEncoderBase64.prototype.end = function() {
- return new Buffer(this.prevStr, "base64");
-}
-
-
-//------------------------------------------------------------------------------
-// CESU-8 encoder is also special.
-
-function InternalEncoderCesu8(options, codec) {
-}
-
-InternalEncoderCesu8.prototype.write = function(str) {
- var buf = new Buffer(str.length * 3), bufIdx = 0;
- for (var i = 0; i < str.length; i++) {
- var charCode = str.charCodeAt(i);
- // Naive implementation, but it works because CESU-8 is especially easy
- // to convert from UTF-16 (which all JS strings are encoded in).
- if (charCode < 0x80)
- buf[bufIdx++] = charCode;
- else if (charCode < 0x800) {
- buf[bufIdx++] = 0xC0 + (charCode >>> 6);
- buf[bufIdx++] = 0x80 + (charCode & 0x3f);
- }
- else { // charCode will always be < 0x10000 in javascript.
- buf[bufIdx++] = 0xE0 + (charCode >>> 12);
- buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
- buf[bufIdx++] = 0x80 + (charCode & 0x3f);
- }
- }
- return buf.slice(0, bufIdx);
-}
-
-InternalEncoderCesu8.prototype.end = function() {
-}
-
-//------------------------------------------------------------------------------
-// CESU-8 decoder is not implemented in Node v4.0+
-
-function InternalDecoderCesu8(options, codec) {
- this.acc = 0;
- this.contBytes = 0;
- this.accBytes = 0;
- this.defaultCharUnicode = codec.defaultCharUnicode;
-}
-
-InternalDecoderCesu8.prototype.write = function(buf) {
- var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes,
- res = '';
- for (var i = 0; i < buf.length; i++) {
- var curByte = buf[i];
- if ((curByte & 0xC0) !== 0x80) { // Leading byte
- if (contBytes > 0) { // Previous code is invalid
- res += this.defaultCharUnicode;
- contBytes = 0;
- }
-
- if (curByte < 0x80) { // Single-byte code
- res += String.fromCharCode(curByte);
- } else if (curByte < 0xE0) { // Two-byte code
- acc = curByte & 0x1F;
- contBytes = 1; accBytes = 1;
- } else if (curByte < 0xF0) { // Three-byte code
- acc = curByte & 0x0F;
- contBytes = 2; accBytes = 1;
- } else { // Four or more are not supported for CESU-8.
- res += this.defaultCharUnicode;
- }
- } else { // Continuation byte
- if (contBytes > 0) { // We're waiting for it.
- acc = (acc << 6) | (curByte & 0x3f);
- contBytes--; accBytes++;
- if (contBytes === 0) {
- // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
- if (accBytes === 2 && acc < 0x80 && acc > 0)
- res += this.defaultCharUnicode;
- else if (accBytes === 3 && acc < 0x800)
- res += this.defaultCharUnicode;
- else
- // Actually add character.
- res += String.fromCharCode(acc);
- }
- } else { // Unexpected continuation byte
- res += this.defaultCharUnicode;
- }
- }
- }
- this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
- return res;
-}
-
-InternalDecoderCesu8.prototype.end = function() {
- var res = 0;
- if (this.contBytes > 0)
- res += this.defaultCharUnicode;
- return res;
-}
diff --git a/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 b/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
deleted file mode 100644
index 2f818e171d..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
-// correspond to encoded bytes (if 128 - then lower half is ASCII).
-
-exports._sbcs = SBCSCodec;
-function SBCSCodec(codecOptions, iconv) {
- if (!codecOptions)
- throw new Error("SBCS codec is called without the data.")
-
- // Prepare char buffer for decoding.
- if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
- throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
-
- if (codecOptions.chars.length === 128) {
- var asciiString = "";
- for (var i = 0; i < 128; i++)
- asciiString += String.fromCharCode(i);
- codecOptions.chars = asciiString + codecOptions.chars;
- }
-
- this.decodeBuf = new Buffer(codecOptions.chars, 'ucs2');
-
- // Encoding buffer.
- var encodeBuf = new Buffer(65536);
- encodeBuf.fill(iconv.defaultCharSingleByte.charCodeAt(0));
-
- for (var i = 0; i < codecOptions.chars.length; i++)
- encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
-
- this.encodeBuf = encodeBuf;
-}
-
-SBCSCodec.prototype.encoder = SBCSEncoder;
-SBCSCodec.prototype.decoder = SBCSDecoder;
-
-
-function SBCSEncoder(options, codec) {
- this.encodeBuf = codec.encodeBuf;
-}
-
-SBCSEncoder.prototype.write = function(str) {
- var buf = new Buffer(str.length);
- for (var i = 0; i < str.length; i++)
- buf[i] = this.encodeBuf[str.charCodeAt(i)];
-
- return buf;
-}
-
-SBCSEncoder.prototype.end = function() {
-}
-
-
-function SBCSDecoder(options, codec) {
- this.decodeBuf = codec.decodeBuf;
-}
-
-SBCSDecoder.prototype.write = function(buf) {
- // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
- var decodeBuf = this.decodeBuf;
- var newBuf = new Buffer(buf.length*2);
- var idx1 = 0, idx2 = 0;
- for (var i = 0; i < buf.length; i++) {
- idx1 = buf[i]*2; idx2 = i*2;
- newBuf[idx2] = decodeBuf[idx1];
- newBuf[idx2+1] = decodeBuf[idx1+1];
- }
- return newBuf.toString('ucs2');
-}
-
-SBCSDecoder.prototype.end = function() {
-}
diff --git a/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 b/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
deleted file mode 100644
index aa6cc716fb..0000000000
--- a/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
+++ /dev/null
@@ -1,175 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
-
-// == UTF16-BE codec. ==========================================================
-
-exports.utf16be = Utf16BECodec;
-function Utf16BECodec() {
-}
-
-Utf16BECodec.prototype.encoder = Utf16BEEncoder;
-Utf16BECodec.prototype.decoder = Utf16BEDecoder;
-Utf16BECodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf16BEEncoder() {
-}
-
-Utf16BEEncoder.prototype.write = function(str) {
- var buf = new Buffer(str, 'ucs2');
- for (var i = 0; i < buf.length; i += 2) {
- var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
- }
- return buf;
-}
-
-Utf16BEEncoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf16BEDecoder() {
- this.overflowByte = -1;
-}
-
-Utf16BEDecoder.prototype.write = function(buf) {
- if (buf.length == 0)
- return '';
-
- var buf2 = new Buffer(buf.length + 1),
- i = 0, j = 0;
-
- if (this.overflowByte !== -1) {
- buf2[0] = buf[0];
- buf2[1] = this.overflowByte;
- i = 1; j = 2;
- }
-
- for (; i < buf.length-1; i += 2, j+= 2) {
- buf2[j] = buf[i+1];
- buf2[j+1] = buf[i];
- }
-
- this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
-
- return buf2.slice(0, j).toString('ucs2');
-}
-
-Utf16BEDecoder.prototype.end = function() {
-}
-
-
-// == UTF-16 codec =============================================================
-// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
-// Defaults to UTF-16LE, as it's prevalent and default in Node.
-// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
-// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
-
-// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
-
-exports.utf16 = Utf16Codec;
-function Utf16Codec(codecOptions, iconv) {
- this.iconv = iconv;
-}
-
-Utf16Codec.prototype.encoder = Utf16Encoder;
-Utf16Codec.prototype.decoder = Utf16Decoder;
-
-
-// -- Encoding (pass-through)
-
-function Utf16Encoder(options, codec) {
- options = options || {};
- if (options.addBOM === undefined)
- options.addBOM = true;
- this.encoder = codec.iconv.getEncoder('utf-16le', options);
-}
-
-Utf16Encoder.prototype.write = function(str) {
- return this.encoder.write(str);
-}
-
-Utf16Encoder.prototype.end = function() {
- return this.encoder.end();
-}
-
-
-// -- Decoding
-
-function Utf16Decoder(options, codec) {
- this.decoder = null;
- this.initialBytes = [];
- this.initialBytesLen = 0;
-
- this.options = options || {};
- this.iconv = codec.iconv;
-}
-
-Utf16Decoder.prototype.write = function(buf) {
- if (!this.decoder) {
- // Codec is not chosen yet. Accumulate initial bytes.
- this.initialBytes.push(buf);
- this.initialBytesLen += buf.length;
-
- if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
- return '';
-
- // We have enough bytes -> detect endianness.
- var buf = Buffer.concat(this.initialBytes),
- encoding = detectEncoding(buf, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- this.initialBytes.length = this.initialBytesLen = 0;
- }
-
- return this.decoder.write(buf);
-}
-
-Utf16Decoder.prototype.end = function() {
- if (!this.decoder) {
- var buf = Buffer.concat(this.initialBytes),
- encoding = detectEncoding(buf, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
-
- var res = this.decoder.write(buf),
- trail = this.decoder.end();
-
- return trail ? (res + trail) : res;
- }
- return this.decoder.end();
-}
-
-function detectEncoding(buf, defaultEncoding) {
- var enc = defaultEncoding || 'utf-16le';
-
- if (buf.length >= 2) {
- // Check BOM.
- if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
- enc = 'utf-16be';
- else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
- enc = 'utf-16le';
- else {
- // No BOM found. Try to deduce encoding from initial content.
- // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
- // So, we count ASCII as if it was LE or BE, and decide from that.
- var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
- _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
-
- for (var i = 0; i < _len; i += 2) {
- if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
- if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
- }
-
- if (asciiCharsBE > asciiCharsLE)
- enc = 'utf-16be';
- else if (asciiCharsBE < asciiCharsLE)
- enc = 'utf-16le';
- }
- }
-
- return enc;
-}
diff --git a/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 b/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
deleted file mode 100644
index 331457b1f6..0000000000
--- a/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
+++ /dev/null
@@ -1,288 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
-// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
-
-exports.utf7 = Utf7Codec;
-exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
-function Utf7Codec(codecOptions, iconv) {
- this.iconv = iconv;
-};
-
-Utf7Codec.prototype.encoder = Utf7Encoder;
-Utf7Codec.prototype.decoder = Utf7Decoder;
-Utf7Codec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
-
-function Utf7Encoder(options, codec) {
- this.iconv = codec.iconv;
-}
-
-Utf7Encoder.prototype.write = function(str) {
- // Naive implementation.
- // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
- return new Buffer(str.replace(nonDirectChars, function(chunk) {
- return "+" + (chunk === '+' ? '' :
- this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
- + "-";
- }.bind(this)));
-}
-
-Utf7Encoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf7Decoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = '';
-}
-
-var base64Regex = /[A-Za-z0-9\/+]/;
-var base64Chars = [];
-for (var i = 0; i < 256; i++)
- base64Chars[i] = base64Regex.test(String.fromCharCode(i));
-
-var plusChar = '+'.charCodeAt(0),
- minusChar = '-'.charCodeAt(0),
- andChar = '&'.charCodeAt(0);
-
-Utf7Decoder.prototype.write = function(buf) {
- var res = "", lastI = 0,
- inBase64 = this.inBase64,
- base64Accum = this.base64Accum;
-
- // The decoder is more involved as we must handle chunks in stream.
-
- for (var i = 0; i < buf.length; i++) {
- if (!inBase64) { // We're in direct mode.
- // Write direct chars until '+'
- if (buf[i] == plusChar) {
- res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
- lastI = i+1;
- inBase64 = true;
- }
- } else { // We decode base64.
- if (!base64Chars[buf[i]]) { // Base64 ended.
- if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
- res += "+";
- } else {
- var b64str = base64Accum + buf.slice(lastI, i).toString();
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- if (buf[i] != minusChar) // Minus is absorbed after base64.
- i--;
-
- lastI = i+1;
- inBase64 = false;
- base64Accum = '';
- }
- }
- }
-
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
- } else {
- var b64str = base64Accum + buf.slice(lastI).toString();
-
- var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
- base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
- b64str = b64str.slice(0, canBeDecoded);
-
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
-
- return res;
-}
-
-Utf7Decoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0)
- res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
-
- this.inBase64 = false;
- this.base64Accum = '';
- return res;
-}
-
-
-// UTF-7-IMAP codec.
-// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
-// Differences:
-// * Base64 part is started by "&" instead of "+"
-// * Direct characters are 0x20-0x7E, except "&" (0x26)
-// * In Base64, "," is used instead of "/"
-// * Base64 must not be used to represent direct characters.
-// * No implicit shift back from Base64 (should always end with '-')
-// * String must end in non-shifted position.
-// * "-&" while in base64 is not allowed.
-
-
-exports.utf7imap = Utf7IMAPCodec;
-function Utf7IMAPCodec(codecOptions, iconv) {
- this.iconv = iconv;
-};
-
-Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
-Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
-Utf7IMAPCodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf7IMAPEncoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = new Buffer(6);
- this.base64AccumIdx = 0;
-}
-
-Utf7IMAPEncoder.prototype.write = function(str) {
- var inBase64 = this.inBase64,
- base64Accum = this.base64Accum,
- base64AccumIdx = this.base64AccumIdx,
- buf = new Buffer(str.length*5 + 10), bufIdx = 0;
-
- for (var i = 0; i < str.length; i++) {
- var uChar = str.charCodeAt(i);
- if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
- if (inBase64) {
- if (base64AccumIdx > 0) {
- bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
- base64AccumIdx = 0;
- }
-
- buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
- inBase64 = false;
- }
-
- if (!inBase64) {
- buf[bufIdx++] = uChar; // Write direct character
-
- if (uChar === andChar) // Ampersand -> '&-'
- buf[bufIdx++] = minusChar;
- }
-
- } else { // Non-direct character
- if (!inBase64) {
- buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
- inBase64 = true;
- }
- if (inBase64) {
- base64Accum[base64AccumIdx++] = uChar >> 8;
- base64Accum[base64AccumIdx++] = uChar & 0xFF;
-
- if (base64AccumIdx == base64Accum.length) {
- bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
- base64AccumIdx = 0;
- }
- }
- }
- }
-
- this.inBase64 = inBase64;
- this.base64AccumIdx = base64AccumIdx;
-
- return buf.slice(0, bufIdx);
-}
-
-Utf7IMAPEncoder.prototype.end = function() {
- var buf = new Buffer(10), bufIdx = 0;
- if (this.inBase64) {
- if (this.base64AccumIdx > 0) {
- bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
- this.base64AccumIdx = 0;
- }
-
- buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
- this.inBase64 = false;
- }
-
- return buf.slice(0, bufIdx);
-}
-
-
-// -- Decoding
-
-function Utf7IMAPDecoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = '';
-}
-
-var base64IMAPChars = base64Chars.slice();
-base64IMAPChars[','.charCodeAt(0)] = true;
-
-Utf7IMAPDecoder.prototype.write = function(buf) {
- var res = "", lastI = 0,
- inBase64 = this.inBase64,
- base64Accum = this.base64Accum;
-
- // The decoder is more involved as we must handle chunks in stream.
- // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
-
- for (var i = 0; i < buf.length; i++) {
- if (!inBase64) { // We're in direct mode.
- // Write direct chars until '&'
- if (buf[i] == andChar) {
- res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
- lastI = i+1;
- inBase64 = true;
- }
- } else { // We decode base64.
- if (!base64IMAPChars[buf[i]]) { // Base64 ended.
- if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
- res += "&";
- } else {
- var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- if (buf[i] != minusChar) // Minus may be absorbed after base64.
- i--;
-
- lastI = i+1;
- inBase64 = false;
- base64Accum = '';
- }
- }
- }
-
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
- } else {
- var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
-
- var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
- base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
- b64str = b64str.slice(0, canBeDecoded);
-
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
-
- return res;
-}
-
-Utf7IMAPDecoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0)
- res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
-
- this.inBase64 = false;
- this.base64Accum = '';
- return res;
-}
diff --git a/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 b/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
deleted file mode 100644
index 40d1aa571f..0000000000
--- a/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
+++ /dev/null
@@ -1,215 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// == Extend Node primitives to use iconv-lite =================================
-
-module.exports = function (iconv) {
- var original = undefined; // Place to keep original methods.
-
- // Node authors rewrote Buffer internals to make it compatible with
- // Uint8Array and we cannot patch key functions since then.
- iconv.supportsNodeEncodingsExtension = !(new Buffer(0) instanceof Uint8Array);
-
- iconv.extendNodeEncodings = function extendNodeEncodings() {
- if (original) return;
- original = {};
-
- if (!iconv.supportsNodeEncodingsExtension) {
- console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
- console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
- return;
- }
-
- var nodeNativeEncodings = {
- 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
- 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
- };
-
- Buffer.isNativeEncoding = function(enc) {
- return enc && nodeNativeEncodings[enc.toLowerCase()];
- }
-
- // -- SlowBuffer -----------------------------------------------------------
- var SlowBuffer = require('buffer').SlowBuffer;
-
- original.SlowBufferToString = SlowBuffer.prototype.toString;
- SlowBuffer.prototype.toString = function(encoding, start, end) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.SlowBufferToString.call(this, encoding, start, end);
-
- // Otherwise, use our decoding method.
- if (typeof start == 'undefined') start = 0;
- if (typeof end == 'undefined') end = this.length;
- return iconv.decode(this.slice(start, end), encoding);
- }
-
- original.SlowBufferWrite = SlowBuffer.prototype.write;
- SlowBuffer.prototype.write = function(string, offset, length, encoding) {
- // Support both (string, offset, length, encoding)
- // and the legacy (string, encoding, offset, length)
- if (isFinite(offset)) {
- if (!isFinite(length)) {
- encoding = length;
- length = undefined;
- }
- } else { // legacy
- var swap = encoding;
- encoding = offset;
- offset = length;
- length = swap;
- }
-
- offset = +offset || 0;
- var remaining = this.length - offset;
- if (!length) {
- length = remaining;
- } else {
- length = +length;
- if (length > remaining) {
- length = remaining;
- }
- }
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.SlowBufferWrite.call(this, string, offset, length, encoding);
-
- if (string.length > 0 && (length < 0 || offset < 0))
- throw new RangeError('attempt to write beyond buffer bounds');
-
- // Otherwise, use our encoding method.
- var buf = iconv.encode(string, encoding);
- if (buf.length < length) length = buf.length;
- buf.copy(this, offset, 0, length);
- return length;
- }
-
- // -- Buffer ---------------------------------------------------------------
-
- original.BufferIsEncoding = Buffer.isEncoding;
- Buffer.isEncoding = function(encoding) {
- return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
- }
-
- original.BufferByteLength = Buffer.byteLength;
- Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferByteLength.call(this, str, encoding);
-
- // Slow, I know, but we don't have a better way yet.
- return iconv.encode(str, encoding).length;
- }
-
- original.BufferToString = Buffer.prototype.toString;
- Buffer.prototype.toString = function(encoding, start, end) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferToString.call(this, encoding, start, end);
-
- // Otherwise, use our decoding method.
- if (typeof start == 'undefined') start = 0;
- if (typeof end == 'undefined') end = this.length;
- return iconv.decode(this.slice(start, end), encoding);
- }
-
- original.BufferWrite = Buffer.prototype.write;
- Buffer.prototype.write = function(string, offset, length, encoding) {
- var _offset = offset, _length = length, _encoding = encoding;
- // Support both (string, offset, length, encoding)
- // and the legacy (string, encoding, offset, length)
- if (isFinite(offset)) {
- if (!isFinite(length)) {
- encoding = length;
- length = undefined;
- }
- } else { // legacy
- var swap = encoding;
- encoding = offset;
- offset = length;
- length = swap;
- }
-
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferWrite.call(this, string, _offset, _length, _encoding);
-
- offset = +offset || 0;
- var remaining = this.length - offset;
- if (!length) {
- length = remaining;
- } else {
- length = +length;
- if (length > remaining) {
- length = remaining;
- }
- }
-
- if (string.length > 0 && (length < 0 || offset < 0))
- throw new RangeError('attempt to write beyond buffer bounds');
-
- // Otherwise, use our encoding method.
- var buf = iconv.encode(string, encoding);
- if (buf.length < length) length = buf.length;
- buf.copy(this, offset, 0, length);
- return length;
-
- // TODO: Set _charsWritten.
- }
-
-
- // -- Readable -------------------------------------------------------------
- if (iconv.supportsStreams) {
- var Readable = require('stream').Readable;
-
- original.ReadableSetEncoding = Readable.prototype.setEncoding;
- Readable.prototype.setEncoding = function setEncoding(enc, options) {
- // Use our own decoder, it has the same interface.
- // We cannot use original function as it doesn't handle BOM-s.
- this._readableState.decoder = iconv.getDecoder(enc, options);
- this._readableState.encoding = enc;
- }
-
- Readable.prototype.collect = iconv._collect;
- }
- }
-
- // Remove iconv-lite Node primitive extensions.
- iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
- if (!iconv.supportsNodeEncodingsExtension)
- return;
- if (!original)
- throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
-
- delete Buffer.isNativeEncoding;
-
- var SlowBuffer = require('buffer').SlowBuffer;
-
- SlowBuffer.prototype.toString = original.SlowBufferToString;
- SlowBuffer.prototype.write = original.SlowBufferWrite;
-
- Buffer.isEncoding = original.BufferIsEncoding;
- Buffer.byteLength = original.BufferByteLength;
- Buffer.prototype.toString = original.BufferToString;
- Buffer.prototype.write = original.BufferWrite;
-
- if (iconv.supportsStreams) {
- var Readable = require('stream').Readable;
-
- Readable.prototype.setEncoding = original.ReadableSetEncoding;
- delete Readable.prototype.collect;
- }
-
- original = undefined;
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index b9c83613ef..0000000000
--- a/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
+++ /dev/null
@@ -1,24 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License.
- * REQUIREMENT: This definition is dependent on the @types/node definition.
- * Install with `npm install @types/node --save-dev`
- *--------------------------------------------------------------------------------------------*/
-
-declare module 'iconv-lite' {
- export function decode(buffer: NodeBuffer, encoding: string, options?: Options): string;
-
- export function encode(content: string, encoding: string, options?: Options): NodeBuffer;
-
- export function encodingExists(encoding: string): boolean;
-
- export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-
- export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-}
-
-export interface Options {
- stripBOM?: boolean;
- addBOM?: boolean;
- defaultEncoding?: string;
-}
diff --git a/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 b/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
deleted file mode 100644
index 990b421b39..0000000000
--- a/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
+++ /dev/null
@@ -1,148 +0,0 @@
-"use strict";
-
-// Some environments don't have global Buffer (e.g. React Native).
-// Solution would be installing npm modules "buffer" and "stream" explicitly.
-var Buffer = require("buffer").Buffer;
-
-var bomHandling = require("./bom-handling"),
- iconv = module.exports;
-
-// All codecs and aliases are kept here, keyed by encoding name/alias.
-// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
-iconv.encodings = null;
-
-// Characters emitted in case of error.
-iconv.defaultCharUnicode = 'ļæ½';
-iconv.defaultCharSingleByte = '?';
-
-// Public API.
-iconv.encode = function encode(str, encoding, options) {
- str = "" + (str || ""); // Ensure string.
-
- var encoder = iconv.getEncoder(encoding, options);
-
- var res = encoder.write(str);
- var trail = encoder.end();
-
- return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
-}
-
-iconv.decode = function decode(buf, encoding, options) {
- if (typeof buf === 'string') {
- if (!iconv.skipDecodeWarning) {
- console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
- iconv.skipDecodeWarning = true;
- }
-
- buf = new Buffer("" + (buf || ""), "binary"); // Ensure buffer.
- }
-
- var decoder = iconv.getDecoder(encoding, options);
-
- var res = decoder.write(buf);
- var trail = decoder.end();
-
- return trail ? (res + trail) : res;
-}
-
-iconv.encodingExists = function encodingExists(enc) {
- try {
- iconv.getCodec(enc);
- return true;
- } catch (e) {
- return false;
- }
-}
-
-// Legacy aliases to convert functions
-iconv.toEncoding = iconv.encode;
-iconv.fromEncoding = iconv.decode;
-
-// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
-iconv._codecDataCache = {};
-iconv.getCodec = function getCodec(encoding) {
- if (!iconv.encodings)
- iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
-
- // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
- var enc = (''+encoding).toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, "");
-
- // Traverse iconv.encodings to find actual codec.
- var codecOptions = {};
- while (true) {
- var codec = iconv._codecDataCache[enc];
- if (codec)
- return codec;
-
- var codecDef = iconv.encodings[enc];
-
- switch (typeof codecDef) {
- case "string": // Direct alias to other encoding.
- enc = codecDef;
- break;
-
- case "object": // Alias with options. Can be layered.
- for (var key in codecDef)
- codecOptions[key] = codecDef[key];
-
- if (!codecOptions.encodingName)
- codecOptions.encodingName = enc;
-
- enc = codecDef.type;
- break;
-
- case "function": // Codec itself.
- if (!codecOptions.encodingName)
- codecOptions.encodingName = enc;
-
- // The codec function must load all tables and return object with .encoder and .decoder methods.
- // It'll be called only once (for each different options object).
- codec = new codecDef(codecOptions, iconv);
-
- iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
- return codec;
-
- default:
- throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
- }
- }
-}
-
-iconv.getEncoder = function getEncoder(encoding, options) {
- var codec = iconv.getCodec(encoding),
- encoder = new codec.encoder(options, codec);
-
- if (codec.bomAware && options && options.addBOM)
- encoder = new bomHandling.PrependBOM(encoder, options);
-
- return encoder;
-}
-
-iconv.getDecoder = function getDecoder(encoding, options) {
- var codec = iconv.getCodec(encoding),
- decoder = new codec.decoder(options, codec);
-
- if (codec.bomAware && !(options && options.stripBOM === false))
- decoder = new bomHandling.StripBOM(decoder, options);
-
- return decoder;
-}
-
-
-// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
-var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
-if (nodeVer) {
-
- // Load streaming support in Node v0.10+
- var nodeVerArr = nodeVer.split(".").map(Number);
- if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
- require("./streams")(iconv);
- }
-
- // Load Node primitive extensions.
- require("./extend-node")(iconv);
-}
-
-if ("Ā" != "\u0100") {
- console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
-}
diff --git a/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 b/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
deleted file mode 100644
index 3c76ccd786..0000000000
--- a/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
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "_from": "iconv-lite@~0.4.13",
- "_id": "iconv-lite@0.4.19",
- "_inBundle": false,
- "_integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "_location": "/npm-profile/make-fetch-happen/node-fetch-npm/encoding/iconv-lite",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "iconv-lite@~0.4.13",
- "name": "iconv-lite",
- "escapedName": "iconv-lite",
- "rawSpec": "~0.4.13",
- "saveSpec": null,
- "fetchSpec": "~0.4.13"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/node-fetch-npm/encoding"
- ],
- "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "_shasum": "f7468f60135f5e5dad3399c0a81be9a1603a082b",
- "_spec": "iconv-lite@~0.4.13",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding",
- "author": {
- "name": "Alexander Shtuchkin",
- "email": "ashtuchkin@gmail.com"
- },
- "browser": {
- "./extend-node": false,
- "./streams": false
- },
- "bugs": {
- "url": "https://github.com/ashtuchkin/iconv-lite/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jinwu Zhan",
- "url": "https://github.com/jenkinv"
- },
- {
- "name": "Adamansky Anton",
- "url": "https://github.com/adamansky"
- },
- {
- "name": "George Stagas",
- "url": "https://github.com/stagas"
- },
- {
- "name": "Mike D Pilsbury",
- "url": "https://github.com/pekim"
- },
- {
- "name": "Niggler",
- "url": "https://github.com/Niggler"
- },
- {
- "name": "wychi",
- "url": "https://github.com/wychi"
- },
- {
- "name": "David Kuo",
- "url": "https://github.com/david50407"
- },
- {
- "name": "ChangZhuo Chen",
- "url": "https://github.com/czchen"
- },
- {
- "name": "Lee Treveil",
- "url": "https://github.com/leetreveil"
- },
- {
- "name": "Brian White",
- "url": "https://github.com/mscdex"
- },
- {
- "name": "Mithgol",
- "url": "https://github.com/Mithgol"
- },
- {
- "name": "Nazar Leush",
- "url": "https://github.com/nleush"
- }
- ],
- "deprecated": false,
- "description": "Convert character encodings in pure javascript.",
- "devDependencies": {
- "async": "*",
- "errto": "*",
- "iconv": "*",
- "istanbul": "*",
- "mocha": "*",
- "request": "*",
- "semver": "*",
- "unorm": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "homepage": "https://github.com/ashtuchkin/iconv-lite",
- "keywords": [
- "iconv",
- "convert",
- "charset",
- "icu"
- ],
- "license": "MIT",
- "main": "./lib/index.js",
- "name": "iconv-lite",
- "repository": {
- "type": "git",
- "url": "git://github.com/ashtuchkin/iconv-lite.git"
- },
- "scripts": {
- "coverage": "istanbul cover _mocha -- --grep .",
- "coverage-open": "open coverage/lcov-report/index.html",
- "test": "mocha --reporter spec --grep ."
- },
- "typings": "./lib/index.d.ts",
- "version": "0.4.19"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json
deleted file mode 100644
index eb1d0e8da2..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "_from": "encoding@^0.1.11",
- "_id": "encoding@0.1.12",
- "_inBundle": false,
- "_integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
- "_location": "/npm-profile/make-fetch-happen/node-fetch-npm/encoding",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "encoding@^0.1.11",
- "name": "encoding",
- "escapedName": "encoding",
- "rawSpec": "^0.1.11",
- "saveSpec": null,
- "fetchSpec": "^0.1.11"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/node-fetch-npm"
- ],
- "_resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
- "_shasum": "538b66f3ee62cd1ab51ec323829d1f9480c74beb",
- "_spec": "encoding@^0.1.11",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm",
- "author": {
- "name": "Andris Reinman"
- },
- "bugs": {
- "url": "https://github.com/andris9/encoding/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "iconv-lite": "~0.4.13"
- },
- "deprecated": false,
- "description": "Convert encodings, uses iconv by default and fallbacks to iconv-lite if needed",
- "devDependencies": {
- "iconv": "~2.1.11",
- "nodeunit": "~0.9.1"
- },
- "homepage": "https://github.com/andris9/encoding#readme",
- "license": "MIT",
- "main": "lib/encoding.js",
- "name": "encoding",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/andris9/encoding.git"
- },
- "scripts": {
- "test": "nodeunit test"
- },
- "version": "0.1.12"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md
deleted file mode 100644
index 843a0bcb94..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="1.0.1"></a>
-## [1.0.1](https://github.com/zkat/json-parse-better-errors/compare/v1.0.0...v1.0.1) (2017-08-16)
-
-
-### Bug Fixes
-
-* **license:** oops. Forgot to update license.md ([efe2958](https://github.com/zkat/json-parse-better-errors/commit/efe2958))
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([562c977](https://github.com/zkat/json-parse-better-errors/commit/562c977))
-
-
-### BREAKING CHANGES
-
-* **init:** This is the first commit!
-
-
-
-<a name="0.1.0"></a>
-# 0.1.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([9dd1a19](https://github.com/zkat/json-parse-better-errors/commit/9dd1a19))
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md
deleted file mode 100644
index 667323c775..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# json-parse-better-errors [![npm version](https://img.shields.io/npm/v/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![license](https://img.shields.io/npm/l/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![Travis](https://img.shields.io/travis/zkat/json-parse-better-errors.svg)](https://travis-ci.org/zkat/json-parse-better-errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/json-parse-better-errors?svg=true)](https://ci.appveyor.com/project/zkat/json-parse-better-errors) [![Coverage Status](https://coveralls.io/repos/github/zkat/json-parse-better-errors/badge.svg?branch=latest)](https://coveralls.io/github/zkat/json-parse-better-errors?branch=latest)
-
-[`json-parse-better-errors`](https://github.com/zkat/json-parse-better-errors) is a Node.js library for managing
-local key and content address caches. It's really fast, really good at
-concurrency, and it will never give you corrupted data, even if cache files
-get corrupted or manipulated.
-
-It was originally written to be used as [npm](https://npm.im)'s local cache, but
-can just as easily be used on its own
-
-_Translations: [espaƱol](README.es.md)_
-
-## Install
-
-`$ npm install --save json-parse-better-errors`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * [`parse`](#parse)
-
-### Example
-
-```javascript
-const parseJson = require('json-parse-better-errors')
-
-parseJson('"foo"')
-parseJson('garbage') // more useful error message
-```
-
-### Features
-
-* Like JSON.parse, but the errors are better.
-
-### Contributing
-
-The json-parse-better-errors team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
-
-All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
-
-Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
-
-Happy hacking!
-
-### API
-
-#### <a name="parse"></a> `> parse(txt, ?reviver, ?context=20)`
-
-Works just like `JSON.parse`, but will include a bit more information when an
-error happens.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js
deleted file mode 100644
index 32c3635866..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict'
-
-module.exports = parseJson
-function parseJson (txt, reviver, context) {
- context = context || 20
- try {
- return JSON.parse(txt, reviver)
- } catch (e) {
- const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i)
- const errIdx = syntaxErr
- ? +syntaxErr[1]
- : e.message.match(/^Unexpected end of JSON.*/i)
- ? txt.length - 1
- : null
- if (errIdx != null) {
- const start = errIdx <= context
- ? 0
- : errIdx - context
- const end = errIdx + context >= txt.length
- ? txt.length
- : errIdx + context
- e.message += ` while parsing near '${
- start === 0 ? '' : '...'
- }${txt.slice(start, end)}${
- end === txt.length ? '' : '...'
- }'`
- } else {
- e.message += ` while parsing '${txt.slice(0, context * 2)}'`
- }
- throw e
- }
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json
deleted file mode 100644
index 42c09c48ae..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "json-parse-better-errors@^1.0.0",
- "_id": "json-parse-better-errors@1.0.1",
- "_inBundle": false,
- "_integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
- "_location": "/npm-profile/make-fetch-happen/node-fetch-npm/json-parse-better-errors",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-parse-better-errors@^1.0.0",
- "name": "json-parse-better-errors",
- "escapedName": "json-parse-better-errors",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/node-fetch-npm"
- ],
- "_resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
- "_shasum": "50183cd1b2d25275de069e9e71b467ac9eab973a",
- "_spec": "json-parse-better-errors@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/json-parse-better-errors/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "deprecated": false,
- "description": "JSON.parse with context information on error",
- "devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/json-parse-better-errors#readme",
- "keywords": [
- "JSON",
- "parser"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "json-parse-better-errors",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/json-parse-better-errors.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json
deleted file mode 100644
index 5587fc26c5..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "_from": "node-fetch-npm@^2.0.1",
- "_id": "node-fetch-npm@2.0.2",
- "_inBundle": false,
- "_integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
- "_location": "/npm-profile/make-fetch-happen/node-fetch-npm",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "node-fetch-npm@^2.0.1",
- "name": "node-fetch-npm",
- "escapedName": "node-fetch-npm",
- "rawSpec": "^2.0.1",
- "saveSpec": null,
- "fetchSpec": "^2.0.1"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
- "_shasum": "7258c9046182dca345b4208eda918daf33697ff7",
- "_spec": "node-fetch-npm@^2.0.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "David Frank"
- },
- "bugs": {
- "url": "https://github.com/npm/node-fetch-npm/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org"
- },
- {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- }
- ],
- "dependencies": {
- "encoding": "^0.1.11",
- "json-parse-better-errors": "^1.0.0",
- "safe-buffer": "^5.1.1"
- },
- "deprecated": false,
- "description": "An npm cli-oriented fork of the excellent node-fetch",
- "devDependencies": {
- "chai": "^3.5.0",
- "chai-as-promised": "^6.0.0",
- "chai-iterator": "^1.1.1",
- "chai-string": "^1.4.0",
- "codecov": "^1.0.1",
- "cross-env": "^3.1.4",
- "form-data": "^2.2.0",
- "is-builtin-module": "^1.0.0",
- "mocha": "^3.5.0",
- "nyc": "^10.3.2",
- "parted": "^0.1.1",
- "promise": "^7.3.1",
- "resumer": "0.0.0",
- "standard": "^10.0.3",
- "standard-version": "^4.2.0",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8",
- "whatwg-url": "^4.8.0"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "src/*.js"
- ],
- "homepage": "https://github.com/npm/node-fetch-npm",
- "keywords": [
- "fetch",
- "http",
- "promise"
- ],
- "license": "MIT",
- "main": "src/index.js",
- "name": "node-fetch-npm",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/node-fetch-npm.git"
- },
- "scripts": {
- "coverage": "nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json",
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard src/*",
- "release": "standard-version -s",
- "report": "nyc --reporter lcov --reporter text mocha -R spec test/test.js",
- "test": "mocha test/test.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "2.0.2"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json
deleted file mode 100644
index 0f40d4d8e5..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "err-code@^1.0.0",
- "_id": "err-code@1.1.2",
- "_inBundle": false,
- "_integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
- "_location": "/npm-profile/make-fetch-happen/promise-retry/err-code",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "err-code@^1.0.0",
- "name": "err-code",
- "escapedName": "err-code",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/promise-retry"
- ],
- "_resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
- "_shasum": "06e0116d3028f6aef4806849eb0ea6a748ae6960",
- "_spec": "err-code@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry",
- "author": {
- "name": "IndigoUnited",
- "email": "hello@indigounited.com",
- "url": "http://indigounited.com"
- },
- "bugs": {
- "url": "https://github.com/IndigoUnited/js-err-code/issues/"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Create an error with a code",
- "devDependencies": {
- "@satazor/eslint-config": "^3.0.0",
- "browserify": "^14.0.0",
- "eslint": "^3.0.0",
- "expect.js": "^0.3.1",
- "mocha": "^3.0.2"
- },
- "homepage": "https://github.com/IndigoUnited/js-err-code#readme",
- "keywords": [
- "error",
- "err",
- "code",
- "properties",
- "property"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "err-code",
- "repository": {
- "type": "git",
- "url": "git://github.com/IndigoUnited/js-err-code.git"
- },
- "scripts": {
- "browserify": "browserify -s err-code index.js > index.umd.js",
- "lint": "eslint '{*.js,test/**/*.js}' --ignore-pattern *.umd.js",
- "test": "mocha --bail"
- },
- "version": "1.1.2"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json
deleted file mode 100644
index a085367508..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "_from": "promise-retry@^1.1.1",
- "_id": "promise-retry@1.1.1",
- "_inBundle": false,
- "_integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
- "_location": "/npm-profile/make-fetch-happen/promise-retry",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "promise-retry@^1.1.1",
- "name": "promise-retry",
- "escapedName": "promise-retry",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
- "_shasum": "6739e968e3051da20ce6497fb2b50f6911df3d6d",
- "_spec": "promise-retry@^1.1.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "IndigoUnited",
- "email": "hello@indigounited.com",
- "url": "http://indigounited.com"
- },
- "bugs": {
- "url": "https://github.com/IndigoUnited/node-promise-retry/issues/"
- },
- "bundleDependencies": false,
- "dependencies": {
- "err-code": "^1.0.0",
- "retry": "^0.10.0"
- },
- "deprecated": false,
- "description": "Retries a function that returns a promise, leveraging the power of the retry module.",
- "devDependencies": {
- "expect.js": "^0.3.1",
- "mocha": "^3.0.0",
- "sleep-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.12"
- },
- "homepage": "https://github.com/IndigoUnited/node-promise-retry#readme",
- "keywords": [
- "retry",
- "promise",
- "backoff",
- "repeat",
- "replay"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "promise-retry",
- "repository": {
- "type": "git",
- "url": "git://github.com/IndigoUnited/node-promise-retry.git"
- },
- "scripts": {
- "test": "mocha --bail -t 10000"
- },
- "version": "1.1.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml
deleted file mode 100644
index 805d3d50d2..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-sudo: false
-
-language: node_js
-
-node_js:
- - "4"
- - "5"
- - "6"
- - "7"
- - "8"
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore
deleted file mode 100644
index c12f3a80c1..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/?.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml
deleted file mode 100644
index 805d3d50d2..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-sudo: false
-
-language: node_js
-
-node_js:
- - "4"
- - "5"
- - "6"
- - "7"
- - "8"
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index a81fb17a97..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,99 +0,0 @@
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md b/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
deleted file mode 100644
index 4141cc840f..0000000000
--- a/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
+++ /dev/null
@@ -1,89 +0,0 @@
-[![Travis CI](https://travis-ci.org/digitaldesignlabs/es6-promisify.svg)](https://travis-ci.org/digitaldesignlabs/es6-promisify)
-
-# es6-promisify
-
-Converts callback-based functions to Promise-based functions.
-
-## Install
-
-Install with [npm](https://npmjs.org/package/es6-promisify)
-
-```bash
-npm install --save es6-promisify
-```
-
-## Example
-
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const fs = require("fs");
-
-// Convert the stat function
-const stat = promisify(fs.stat);
-
-// Now usable as a promise!
-stat("example.txt").then(function (stats) {
- console.log("Got stats", stats);
-}).catch(function (err) {
- console.error("Yikes!", err);
-});
-```
-
-## Promisify methods
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const redis = require("redis").createClient(6379, "localhost");
-
-// Create a promise-based version of send_command
-const client = promisify(redis.send_command, redis);
-
-// Send commands to redis and get a promise back
-client("ping").then(function (pong) {
- console.log("Got", pong);
-}).catch(function (err) {
- console.error("Unexpected error", err);
-}).then(function () {
- redis.quit();
-});
-```
-
-## Handle callback multiple arguments
-```js
-"use strict";
-
-// Declare functions
-function test(cb) {
- return cb(undefined, 1, 2, 3);
-}
-
-// Declare variables
-const promisify = require("es6-promisify");
-
-// Create promise-based version of test
-const single = promisify(test);
-const multi = promisify(test, {multiArgs: true});
-
-// Discards additional arguments
-single().then(function (result) {
- console.log(result); // 1
-});
-
-// Returns all arguments as an array
-multi().then(function (result) {
- console.log(result); // [1, 2, 3]
-});
-```
-
-### Tests
-Test with nodeunit
-```bash
-$ npm test
-```
-
-Published under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/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 b/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
deleted file mode 100644
index 2fe5c6103b..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-/* global self, window, module, global, require */
-module.exports = function () {
-
- "use strict";
-
- var globalObject = void 0;
-
- function isFunction(x) {
- return typeof x === "function";
- }
-
- // Seek the global object
- if (global !== undefined) {
- globalObject = global;
- } else if (window !== undefined && window.document) {
- globalObject = window;
- } else {
- globalObject = self;
- }
-
- // Test for any native promise implementation, and if that
- // implementation appears to conform to the specificaton.
- // This code mostly nicked from the es6-promise module polyfill
- // and then fooled with.
- var hasPromiseSupport = function () {
-
- // No promise object at all, and it's a non-starter
- if (!globalObject.hasOwnProperty("Promise")) {
- return false;
- }
-
- // There is a Promise object. Does it conform to the spec?
- var P = globalObject.Promise;
-
- // Some of these methods are missing from
- // Firefox/Chrome experimental implementations
- if (!P.hasOwnProperty("resolve") || !P.hasOwnProperty("reject")) {
- return false;
- }
-
- if (!P.hasOwnProperty("all") || !P.hasOwnProperty("race")) {
- return false;
- }
-
- // Older version of the spec had a resolver object
- // as the arg rather than a function
- return function () {
-
- var resolve = void 0;
-
- var p = new globalObject.Promise(function (r) {
- resolve = r;
- });
-
- if (p) {
- return isFunction(resolve);
- }
-
- return false;
- }();
- }();
-
- // Export the native Promise implementation if it
- // looks like it matches the spec
- if (hasPromiseSupport) {
- return globalObject.Promise;
- }
-
- // Otherwise, return the es6-promise polyfill by @jaffathecake.
- return require("es6-promise").Promise;
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ce38041b07..0000000000
--- a/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
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-/* global module, require */
-module.exports = function () {
-
- "use strict";
-
- // Get a promise object. This may be native, or it may be polyfilled
-
- var ES6Promise = require("./promise.js");
-
- /**
- * thatLooksLikeAPromiseToMe()
- *
- * Duck-types a promise.
- *
- * @param {object} o
- * @return {bool} True if this resembles a promise
- */
- function thatLooksLikeAPromiseToMe(o) {
- return o && typeof o.then === "function" && typeof o.catch === "function";
- }
-
- /**
- * promisify()
- *
- * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into
- * an ES6-compatible Promise. Promisify provides a default callback of the form (error, result)
- * and rejects when `error` is truthy. You can also supply settings object as the second argument.
- *
- * @param {function} original - The function to promisify
- * @param {object} settings - Settings object
- * @param {object} settings.thisArg - A `this` context to use. If not set, assume `settings` _is_ `thisArg`
- * @param {bool} settings.multiArgs - Should multiple arguments be returned as an array?
- * @return {function} A promisified version of `original`
- */
- return function promisify(original, settings) {
-
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var returnMultipleArguments = settings && settings.multiArgs;
-
- var target = void 0;
- if (settings && settings.thisArg) {
- target = settings.thisArg;
- } else if (settings) {
- target = settings;
- }
-
- // Return the promisified function
- return new ES6Promise(function (resolve, reject) {
-
- // Append the callback bound to the context
- args.push(function callback(err) {
-
- if (err) {
- return reject(err);
- }
-
- for (var _len2 = arguments.length, values = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- values[_key2 - 1] = arguments[_key2];
- }
-
- if (false === !!returnMultipleArguments) {
- return resolve(values[0]);
- }
-
- resolve(values);
- });
-
- // Call the function
- var response = original.apply(target, args);
-
- // If it looks like original already returns a promise,
- // then just resolve with that promise. Hopefully, the callback function we added will just be ignored.
- if (thatLooksLikeAPromiseToMe(response)) {
- resolve(response);
- }
- });
- };
- };
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index 954ec5992d..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and 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.
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 92bbf36e58..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file can be required in Browserify and Node.js for automatic polyfill
-// To use it: require('es6-promise/auto');
-'use strict';
-module.exports = require('./').polyfill();
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 77997866f8..0000000000
--- a/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
+++ /dev/null
@@ -1,3 +0,0 @@
-import Promise from './es6-promise';
-Promise.polyfill();
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 4f4d840d09..0000000000
--- a/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
+++ /dev/null
@@ -1,7 +0,0 @@
-import Promise from './es6-promise/promise';
-import polyfill from './es6-promise/polyfill';
-
-// Strange compat..
-Promise.polyfill = polyfill;
-Promise.Promise = Promise;
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 9ca3c063aa..0000000000
--- a/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
+++ /dev/null
@@ -1,52 +0,0 @@
-import Enumerator from '../enumerator';
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-export default function all(entries) {
- return new Enumerator(this, entries).promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 166dc820b5..0000000000
--- a/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
+++ /dev/null
@@ -1,84 +0,0 @@
-import {
- isArray
-} from "../utils";
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-export default function race(entries) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
- } else {
- return new Constructor((resolve, reject) => {
- let length = entries.length;
- for (let i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cd55faabf5..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-import {
- noop,
- reject as _reject
-} from '../-internal';
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-export default function reject(reason) {
- /*jshint validthis:true */
- let Constructor = this;
- let promise = new Constructor(noop);
- _reject(promise, reason);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index f4642b630e..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- noop,
- resolve as _resolve
-} from '../-internal';
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-export default function resolve(object) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- let promise = new Constructor(noop);
- _resolve(promise, object);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b79f0a14..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
- invokeCallback,
- subscribe,
- FULFILLED,
- REJECTED,
- noop,
- makePromise,
- PROMISE_ID
-} from './-internal';
-
-import { asap } from './asap';
-
-export default function then(onFulfillment, onRejection) {
- const parent = this;
-
- const child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- const { _state } = parent;
-
- if (_state) {
- const callback = arguments[_state - 1];
- asap(() => invokeCallback(_state, child, callback, parent._result));
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
diff --git a/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 b/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
deleted file mode 100644
index 72545c5e97..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-export function objectOrFunction(x) {
- let type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-export function isFunction(x) {
- return typeof x === 'function';
-}
-
-export function isMaybeThenable(x) {
- return x !== null && typeof x === 'object';
-}
-
-let _isArray;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
-}
-
-export const isArray = _isArray;
diff --git a/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 b/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
deleted file mode 100644
index bc23134773..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 58f3e153b9..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index 57e7645705..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@^4.1.0",
- "_id": "agent-base@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-yWGUUmCZD/33IRjG2It94PzixT8lX+47Uq8fjmd0cgQWITCMrJuXFaVIMnGDmDnZGGKAGdwTx8UGeU8lMR2urA==",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/agent-base",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agent-base@^4.1.0",
- "name": "agent-base",
- "escapedName": "agent-base",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.1.tgz",
- "_shasum": "92d8a4fc2524a3b09b3666a33b6c97960f23d6a4",
- "_spec": "agent-base@^4.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-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.1.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index a3f7bc6160..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,26 +0,0 @@
-'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);
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json
deleted file mode 100644
index 6daec57fb8..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "_from": "ip@^1.1.4",
- "_id": "ip@1.1.5",
- "_inBundle": false,
- "_integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/socks/ip",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ip@^1.1.4",
- "name": "ip",
- "escapedName": "ip",
- "rawSpec": "^1.1.4",
- "saveSpec": null,
- "fetchSpec": "^1.1.4"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent/socks"
- ],
- "_resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "_shasum": "bdded70114290828c0a039e72ef25f5aaec4354a",
- "_spec": "ip@^1.1.4",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/node-ip/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip)",
- "devDependencies": {
- "jscs": "^2.1.1",
- "jshint": "^2.8.0",
- "mocha": "~1.3.2"
- },
- "homepage": "https://github.com/indutny/node-ip",
- "license": "MIT",
- "main": "lib/ip",
- "name": "ip",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/node-ip.git"
- },
- "scripts": {
- "fix": "jscs lib/*.js test/*.js --fix",
- "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js"
- },
- "version": "1.1.5"
-}
diff --git a/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 b/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
deleted file mode 100644
index 340a5f3b79..0000000000
--- a/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
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "smart-buffer@^1.0.13",
- "_id": "smart-buffer@1.1.15",
- "_inBundle": false,
- "_integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/socks/smart-buffer",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "smart-buffer@^1.0.13",
- "name": "smart-buffer",
- "escapedName": "smart-buffer",
- "rawSpec": "^1.0.13",
- "saveSpec": null,
- "fetchSpec": "^1.0.13"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent/socks"
- ],
- "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
- "_shasum": "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16",
- "_spec": "smart-buffer@^1.0.13",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks",
- "author": {
- "name": "Josh Glazebrook"
- },
- "bugs": {
- "url": "https://github.com/JoshGlazebrook/smart-buffer/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "A smarter Buffer that keeps track of its own read and write positions while growing endlessly.",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.15",
- "istanbul": "^0.4.3",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.10.15",
- "npm": ">= 1.3.5"
- },
- "homepage": "https://github.com/JoshGlazebrook/smart-buffer/",
- "keywords": [
- "buffer",
- "smart",
- "serialize",
- "packet",
- "network",
- "cursor",
- "simple"
- ],
- "license": "MIT",
- "main": "lib/smart-buffer.js",
- "name": "smart-buffer",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git"
- },
- "scripts": {
- "coverage": "istanbul cover node_modules/mocha/bin/_mocha recursive test",
- "fullcoverage": "istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test",
- "test": "mocha test/smart-buffer.test.js"
- },
- "typings": "typings/index",
- "version": "1.1.15"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json
deleted file mode 100644
index a21727358a..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "socks@^1.1.10",
- "_id": "socks@1.1.10",
- "_inBundle": false,
- "_integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent/socks",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "socks@^1.1.10",
- "name": "socks",
- "escapedName": "socks",
- "rawSpec": "^1.1.10",
- "saveSpec": null,
- "fetchSpec": "^1.1.10"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen/socks-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
- "_shasum": "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a",
- "_spec": "socks@^1.1.10",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent",
- "author": {
- "name": "Josh Glazebrook"
- },
- "bugs": {
- "url": "https://github.com/JoshGlazebrook/socks/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Samuel Gordalina"
- }
- ],
- "dependencies": {
- "ip": "^1.1.4",
- "smart-buffer": "^1.0.13"
- },
- "deprecated": false,
- "description": "A SOCKS proxy client supporting SOCKS 4, 4a, and 5. (also supports BIND/Associate)",
- "engines": {
- "node": ">= 0.10.0",
- "npm": ">= 1.3.5"
- },
- "homepage": "https://github.com/JoshGlazebrook/socks",
- "keywords": [
- "socks",
- "proxy",
- "client",
- "tor",
- "bind",
- "associate",
- "socks 4",
- "socks 4a",
- "socks 5",
- "agent"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "socks",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/JoshGlazebrook/socks.git"
- },
- "version": "1.1.10"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json
deleted file mode 100644
index 20fca5fba1..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "socks-proxy-agent@^3.0.0",
- "_id": "socks-proxy-agent@3.0.1",
- "_inBundle": false,
- "_integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==",
- "_location": "/npm-profile/make-fetch-happen/socks-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "socks-proxy-agent@^3.0.0",
- "name": "socks-proxy-agent",
- "escapedName": "socks-proxy-agent",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz",
- "_shasum": "2eae7cf8e2a82d34565761539a7f9718c5617659",
- "_spec": "socks-proxy-agent@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "^4.1.0",
- "socks": "^1.1.10"
- },
- "deprecated": false,
- "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
- "devDependencies": {
- "mocha": "^3.4.2",
- "raw-body": "^2.2.0",
- "socksv5": "0.0.6"
- },
- "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
- "keywords": [
- "socks",
- "socks4",
- "socks4a",
- "proxy",
- "http",
- "https",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "socks-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md
deleted file mode 100644
index c1136092e3..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/CHANGELOG.md
+++ /dev/null
@@ -1,175 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="4.1.6"></a>
-## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07)
-
-
-### Bug Fixes
-
-* **checkStream:** make sure to pass all opts through ([0b1bcbe](https://github.com/zkat/ssri/commit/0b1bcbe))
-
-
-
-<a name="4.1.5"></a>
-## [4.1.5](https://github.com/zkat/ssri/compare/v4.1.4...v4.1.5) (2017-06-05)
-
-
-### Bug Fixes
-
-* **integrityStream:** stop crashing if opts.algorithms and opts.integrity have an algo mismatch ([fb1293e](https://github.com/zkat/ssri/commit/fb1293e))
-
-
-
-<a name="4.1.4"></a>
-## [4.1.4](https://github.com/zkat/ssri/compare/v4.1.3...v4.1.4) (2017-05-31)
-
-
-### Bug Fixes
-
-* **node:** older versions of node[@4](https://github.com/4) do not support base64buffer string parsing ([513df4e](https://github.com/zkat/ssri/commit/513df4e))
-
-
-
-<a name="4.1.3"></a>
-## [4.1.3](https://github.com/zkat/ssri/compare/v4.1.2...v4.1.3) (2017-05-24)
-
-
-### Bug Fixes
-
-* **check:** handle various bad hash corner cases better ([c2c262b](https://github.com/zkat/ssri/commit/c2c262b))
-
-
-
-<a name="4.1.2"></a>
-## [4.1.2](https://github.com/zkat/ssri/compare/v4.1.1...v4.1.2) (2017-04-18)
-
-
-### Bug Fixes
-
-* **stream:** _flush can be called multiple times. use on("end") ([b1c4805](https://github.com/zkat/ssri/commit/b1c4805))
-
-
-
-<a name="4.1.1"></a>
-## [4.1.1](https://github.com/zkat/ssri/compare/v4.1.0...v4.1.1) (2017-04-12)
-
-
-### Bug Fixes
-
-* **pickAlgorithm:** error if pickAlgorithm() is used in an empty Integrity ([fab470e](https://github.com/zkat/ssri/commit/fab470e))
-
-
-
-<a name="4.1.0"></a>
-# [4.1.0](https://github.com/zkat/ssri/compare/v4.0.0...v4.1.0) (2017-04-07)
-
-
-### Features
-
-* adding ssri.create for a crypto style interface (#2) ([96f52ad](https://github.com/zkat/ssri/commit/96f52ad))
-
-
-
-<a name="4.0.0"></a>
-# [4.0.0](https://github.com/zkat/ssri/compare/v3.0.2...v4.0.0) (2017-04-03)
-
-
-### Bug Fixes
-
-* **integrity:** should have changed the error code before. oops ([8381afa](https://github.com/zkat/ssri/commit/8381afa))
-
-
-### BREAKING CHANGES
-
-* **integrity:** EBADCHECKSUM -> EINTEGRITY for verification errors
-
-
-
-<a name="3.0.2"></a>
-## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03)
-
-
-
-<a name="3.0.1"></a>
-## [3.0.1](https://github.com/zkat/ssri/compare/v3.0.0...v3.0.1) (2017-04-03)
-
-
-### Bug Fixes
-
-* **package.json:** really should have these in the keywords because search ([a6ac6d0](https://github.com/zkat/ssri/commit/a6ac6d0))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/zkat/ssri/compare/v2.0.0...v3.0.0) (2017-04-03)
-
-
-### Bug Fixes
-
-* **hashes:** IntegrityMetadata -> Hash ([d04aa1f](https://github.com/zkat/ssri/commit/d04aa1f))
-
-
-### Features
-
-* **check:** return IntegrityMetadata on check success ([2301e74](https://github.com/zkat/ssri/commit/2301e74))
-* **fromHex:** ssri.fromHex to make it easier to generate them from hex valus ([049b89e](https://github.com/zkat/ssri/commit/049b89e))
-* **hex:** utility function for getting hex version of digest ([a9f021c](https://github.com/zkat/ssri/commit/a9f021c))
-* **hexDigest:** added hexDigest method to Integrity objects too ([85208ba](https://github.com/zkat/ssri/commit/85208ba))
-* **integrity:** add .isIntegrity and .isIntegrityMetadata ([1b29e6f](https://github.com/zkat/ssri/commit/1b29e6f))
-* **integrityStream:** new stream that can both generate and check streamed data ([fd23e1b](https://github.com/zkat/ssri/commit/fd23e1b))
-* **parse:** allow parsing straight into a single IntegrityMetadata object ([c8ddf48](https://github.com/zkat/ssri/commit/c8ddf48))
-* **pickAlgorithm:** Intergrity#pickAlgorithm() added ([b97a796](https://github.com/zkat/ssri/commit/b97a796))
-* **size:** calculate and update stream sizes ([02ed1ad](https://github.com/zkat/ssri/commit/02ed1ad))
-
-
-### BREAKING CHANGES
-
-* **hashes:** `.isIntegrityMetadata` is now `.isHash`. Also, any references to `IntegrityMetadata` now refer to `Hash`.
-* **integrityStream:** createCheckerStream has been removed and replaced with a general-purpose integrityStream.
-
-To convert existing createCheckerStream code, move the `sri` argument into `opts.integrity` in integrityStream. All other options should be the same.
-* **check:** `checkData`, `checkStream`, and `createCheckerStream` now yield a whole IntegrityMetadata instance representing the first successful hash match.
-
-
-
-<a name="2.0.0"></a>
-# [2.0.0](https://github.com/zkat/ssri/compare/v1.0.0...v2.0.0) (2017-03-24)
-
-
-### Bug Fixes
-
-* **strict-mode:** make regexes more rigid ([122a32c](https://github.com/zkat/ssri/commit/122a32c))
-
-
-### Features
-
-* **api:** added serialize alias for unparse ([999b421](https://github.com/zkat/ssri/commit/999b421))
-* **concat:** add Integrity#concat() ([cae12c7](https://github.com/zkat/ssri/commit/cae12c7))
-* **pickAlgo:** pick the strongest algorithm provided, by default ([58c18f7](https://github.com/zkat/ssri/commit/58c18f7))
-* **strict-mode:** strict SRI support ([3f0b64c](https://github.com/zkat/ssri/commit/3f0b64c))
-* **stringify:** replaced unparse/serialize with stringify ([4acad30](https://github.com/zkat/ssri/commit/4acad30))
-* **verification:** add opts.pickAlgorithm ([f72e658](https://github.com/zkat/ssri/commit/f72e658))
-
-
-### BREAKING CHANGES
-
-* **pickAlgo:** ssri will prioritize specific hashes now
-* **stringify:** serialize and unparse have been removed. Use ssri.stringify instead.
-* **strict-mode:** functions that accepted an optional `sep` argument now expect `opts.sep`.
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-03-23)
-
-
-### Features
-
-* **api:** implemented initial api ([4fbb16b](https://github.com/zkat/ssri/commit/4fbb16b))
-
-
-### BREAKING CHANGES
-
-* **api:** Initial API established.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md
deleted file mode 100644
index c05cb09586..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/LICENSE.md
+++ /dev/null
@@ -1,3 +0,0 @@
-To the extent possible under law, maintainers for this project have waived all copyright and related or neighboring rights to this project.
-
-For more information on this waiver, see: https://creativecommons.org/publicdomain/zero/1.0/
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md
deleted file mode 100644
index f2fc035da5..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/README.md
+++ /dev/null
@@ -1,462 +0,0 @@
-# ssri [![npm version](https://img.shields.io/npm/v/ssri.svg)](https://npm.im/ssri) [![license](https://img.shields.io/npm/l/ssri.svg)](https://npm.im/ssri) [![Travis](https://img.shields.io/travis/zkat/ssri.svg)](https://travis-ci.org/zkat/ssri) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/ssri?svg=true)](https://ci.appveyor.com/project/zkat/ssri) [![Coverage Status](https://coveralls.io/repos/github/zkat/ssri/badge.svg?branch=latest)](https://coveralls.io/github/zkat/ssri?branch=latest)
-
-[`ssri`](https://github.com/zkat/ssri), short for Standard Subresource
-Integrity, is a Node.js utility for parsing, manipulating, serializing,
-generating, and verifying [Subresource
-Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
-
-## Install
-
-`$ npm install --save ssri`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * Parsing & Serializing
- * [`parse`](#parse)
- * [`stringify`](#stringify)
- * [`Integrity#concat`](#integrity-concat)
- * [`Integrity#toString`](#integrity-to-string)
- * [`Integrity#toJSON`](#integrity-to-json)
- * [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
- * [`Integrity#hexDigest`](#integrity-hex-digest)
- * Integrity Generation
- * [`fromHex`](#from-hex)
- * [`fromData`](#from-data)
- * [`fromStream`](#from-stream)
- * [`create`](#create)
- * Integrity Verification
- * [`checkData`](#check-data)
- * [`checkStream`](#check-stream)
- * [`integrityStream`](#integrity-stream)
-
-### Example
-
-```javascript
-const ssri = require('ssri')
-
-const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-// Parsing and serializing
-const parsed = ssri.parse(integrity)
-ssri.stringify(parsed) // === integrity (works on non-Integrity objects)
-parsed.toString() // === integrity
-
-// Async stream functions
-ssri.checkStream(fs.createReadStream('./my-file'), integrity).then(...)
-ssri.fromStream(fs.createReadStream('./my-file')).then(sri => {
- sri.toString() === integrity
-})
-fs.createReadStream('./my-file').pipe(ssri.createCheckerStream(sri))
-
-// Sync data functions
-ssri.fromData(fs.readFileSync('./my-file')) // === parsed
-ssri.checkData(fs.readFileSync('./my-file'), integrity) // => 'sha512'
-```
-
-### Features
-
-* Parses and stringifies SRI strings.
-* Generates SRI strings from raw data or Streams.
-* Strict standard compliance.
-* `?foo` metadata option support.
-* Multiple entries for the same algorithm.
-* Object-based integrity hash manipulation.
-* Small footprint: no dependencies, concise implementation.
-* Full test coverage.
-* Customizable algorithm picker.
-
-### Contributing
-
-The ssri team enthusiastically welcomes contributions and project participation!
-There's a bunch of things you can do if you want to contribute! The [Contributor
-Guide](CONTRIBUTING.md) has all the information you need for everything from
-reporting bugs to contributing entire new features. Please don't hesitate to
-jump in if you'd like to, or even ask us questions if something isn't clear.
-
-### API
-
-#### <a name="parse"></a> `> ssri.parse(sri, [opts]) -> Integrity`
-
-Parses `sri` into an `Integrity` data structure. `sri` can be an integrity
-string, an `Hash`-like with `digest` and `algorithm` fields and an optional
-`options` field, or an `Integrity`-like object. The resulting object will be an
-`Integrity` instance that has this shape:
-
-```javascript
-{
- 'sha1': [{algorithm: 'sha1', digest: 'deadbeef', options: []}],
- 'sha512': [
- {algorithm: 'sha512', digest: 'c0ffee', options: []},
- {algorithm: 'sha512', digest: 'bad1dea', options: ['foo']}
- ],
-}
-```
-
-If `opts.single` is truthy, a single `Hash` object will be returned. That is, a
-single object that looks like `{algorithm, digest, options}`, as opposed to a
-larger object with multiple of these.
-
-If `opts.strict` is truthy, the resulting object will be filtered such that
-it strictly follows the Subresource Integrity spec, throwing away any entries
-with any invalid components. This also means a restricted set of algorithms
-will be used -- the spec limits them to `sha256`, `sha384`, and `sha512`.
-
-Strict mode is recommended if the integrity strings are intended for use in
-browsers, or in other situations where strict adherence to the spec is needed.
-
-##### Example
-
-```javascript
-ssri.parse('sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo') // -> Integrity object
-```
-
-#### <a name="stringify"></a> `> ssri.stringify(sri, [opts]) -> String`
-
-This function is identical to [`Integrity#toString()`](#integrity-to-string),
-except it can be used on _any_ object that [`parse`](#parse) can handle -- that
-is, a string, an `Hash`-like, or an `Integrity`-like.
-
-The `opts.sep` option defines the string to use when joining multiple entries
-together. To be spec-compliant, this _must_ be whitespace. The default is a
-single space (`' '`).
-
-If `opts.strict` is true, the integrity string will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-// Useful for cleaning up input SRI strings:
-ssri.stringify('\n\rsha512-foo\n\t\tsha384-bar')
-// -> 'sha512-foo sha384-bar'
-
-// Hash-like: only a single entry.
-ssri.stringify({
- algorithm: 'sha512',
- digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
- options: ['foo']
-})
-// ->
-// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-// Integrity-like: full multi-entry syntax. Similar to output of `ssri.parse`
-ssri.stringify({
- 'sha512': [
- {
- algorithm: 'sha512',
- digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
- options: ['foo']
- }
- ]
-})
-// ->
-// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-```
-
-#### <a name="integrity-concat"></a> `> Integrity#concat(otherIntegrity, [opts]) -> Integrity`
-
-Concatenates an `Integrity` object with another IntegrityLike, or an integrity
-string.
-
-This is functionally equivalent to concatenating the string format of both
-integrity arguments, and calling [`ssri.parse`](#ssri-parse) on the new string.
-
-If `opts.strict` is true, the new `Integrity` will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-// This will combine the integrity checks for two different versions of
-// your index.js file so you can use a single integrity string and serve
-// either of these to clients, from a single `<script>` tag.
-const desktopIntegrity = ssri.fromData(fs.readFileSync('./index.desktop.js'))
-const mobileIntegrity = ssri.fromData(fs.readFileSync('./index.mobile.js'))
-
-// Note that browsers (and ssri) will succeed as long as ONE of the entries
-// for the *prioritized* algorithm succeeds. That is, in order for this fallback
-// to work, both desktop and mobile *must* use the same `algorithm` values.
-desktopIntegrity.concat(mobileIntegrity)
-```
-
-#### <a name="integrity-to-string"></a> `> Integrity#toString([opts]) -> String`
-
-Returns the string representation of an `Integrity` object. All hash entries
-will be concatenated in the string by `opts.sep`, which defaults to `' '`.
-
-If you want to serialize an object that didn't from from an `ssri` function,
-use [`ssri.stringify()`](#stringify).
-
-If `opts.strict` is true, the integrity string will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
-
-ssri.parse(integrity).toString() === integrity
-```
-
-#### <a name="integrity-to-json"></a> `> Integrity#toJSON() -> String`
-
-Returns the string representation of an `Integrity` object. All hash entries
-will be concatenated in the string by `' '`.
-
-This is a convenience method so you can pass an `Integrity` object directly to `JSON.stringify`.
-For more info check out [toJSON() behavior on mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior).
-
-##### Example
-
-```javascript
-const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo"'
-
-JSON.stringify(ssri.parse(integrity)) === integrity
-```
-
-#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
-
-Returns the "best" algorithm from those available in the integrity object.
-
-If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
-arguments. ssri will prioritize whichever of the two algorithms is returned by
-this function. Note that the function may be called multiple times, and it
-**must** return one of the two algorithms provided. By default, ssri will make
-a best-effort to pick the strongest/most reliable of the given algorithms. It
-may intentionally deprioritize algorithms with known vulnerabilities.
-
-##### Example
-
-```javascript
-ssri.parse('sha1-WEakDigEST sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1').pickAlgorithm() // sha512
-```
-
-#### <a name="integrity-hex-digest"></a> `> Integrity#hexDigest() -> String`
-
-`Integrity` is assumed to be either a single-hash `Integrity` instance, or a
-`Hash` instance. Returns its `digest`, converted to a hex representation of the
-base64 data.
-
-##### Example
-
-```javascript
-ssri.parse('sha1-deadbeef').hexDigest() // '75e69d6de79f'
-```
-
-#### <a name="from-hex"></a> `> ssri.fromHex(hexDigest, algorithm, [opts]) -> Integrity`
-
-Creates an `Integrity` object with a single entry, based on a hex-formatted
-hash. This is a utility function to help convert existing shasums to the
-Integrity format, and is roughly equivalent to something like:
-
-```javascript
-algorithm + '-' + Buffer.from(hexDigest, 'hex').toString('base64')
-```
-
-`opts.options` may optionally be passed in: it must be an array of option
-strings that will be added to all generated integrity hashes generated by
-`fromData`. This is a loosely-specified feature of SRIs, and currently has no
-specified semantics besides being `?`-separated. Use at your own risk, and
-probably avoid if your integrity strings are meant to be used with browsers.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-If `opts.single` is true, a single `Hash` object will be returned.
-
-##### Example
-
-```javascript
-ssri.fromHex('75e69d6de79f', 'sha1').toString() // 'sha1-deadbeef'
-```
-
-#### <a name="from-data"></a> `> ssri.fromData(data, [opts]) -> Integrity`
-
-Creates an `Integrity` object from either string or `Buffer` data, calculating
-all the requested hashes and adding any specified options to the object.
-
-`opts.algorithms` determines which algorithms to generate hashes for. All
-results will be included in a single `Integrity` object. The default value for
-`opts.algorithms` is `['sha512']`. All algorithm strings must be hashes listed
-in `crypto.getHashes()` for the host Node.js platform.
-
-`opts.options` may optionally be passed in: it must be an array of option
-strings that will be added to all generated integrity hashes generated by
-`fromData`. This is a loosely-specified feature of SRIs, and currently has no
-specified semantics besides being `?`-separated. Use at your own risk, and
-probably avoid if your integrity strings are meant to be used with browsers.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrityObj = ssri.fromData('foobarbaz', {
- algorithms: ['sha256', 'sha384', 'sha512']
-})
-integrity.toString('\n')
-// ->
-// sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0=
-// sha384-irnCxQ0CfQhYGlVAUdwTPC9bF3+YWLxlaDGM4xbYminxpbXEq+D+2GCEBTxcjES9
-// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
-```
-
-#### <a name="from-stream"></a> `> ssri.fromStream(stream, [opts]) -> Promise<Integrity>`
-
-Returns a Promise of an Integrity object calculated by reading data from
-a given `stream`.
-
-It accepts both `opts.algorithms` and `opts.options`, which are documented as
-part of [`ssri.fromData`](#from-data).
-
-Additionally, `opts.Promise` may be passed in to inject a Promise library of
-choice. By default, ssri will use Node's built-in Promises.
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-ssri.fromStream(fs.createReadStream('index.js'), {
- algorithms: ['sha1', 'sha512']
-}).then(integrity => {
- return ssri.checkStream(fs.createReadStream('index.js'), integrity)
-}) // succeeds
-```
-
-#### <a name="create"></a> `> ssri.create([opts]) -> <Hash>`
-
-Returns a Hash object with `update(<Buffer or string>[,enc])` and `digest()` methods.
-
-
-The Hash object provides the same methods as [crypto class Hash](https://nodejs.org/dist/latest-v6.x/docs/api/crypto.html#crypto_class_hash).
-`digest()` accepts no arguments and returns an Integrity object calculated by reading data from
-calls to update.
-
-It accepts both `opts.algorithms` and `opts.options`, which are documented as
-part of [`ssri.fromData`](#from-data).
-
-If `opts.strict` is true, the integrity object will be created using strict
-parsing rules. See [`ssri.parse`](#parse).
-
-##### Example
-
-```javascript
-const integrity = ssri.create().update('foobarbaz').digest()
-integrity.toString()
-// ->
-// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
-```
-
-#### <a name="check-data"></a> `> ssri.checkData(data, sri, [opts]) -> Hash|false`
-
-Verifies `data` integrity against an `sri` argument. `data` may be either a
-`String` or a `Buffer`, and `sri` can be any subresource integrity
-representation that [`ssri.parse`](#parse) can handle.
-
-If verification succeeds, `checkData` will return the name of the algorithm that
-was used for verification (a truthy value). Otherwise, it will return `false`.
-
-If `opts.pickAlgorithm` is provided, it will be used by
-[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
-the available digests to match against.
-
-##### Example
-
-```javascript
-const data = fs.readFileSync('index.js')
-ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
-ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
-ssri.checkData(data, 'sha1-BaDDigEST') // -> false
-```
-
-#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
-
-Verifies the contents of `stream` against an `sri` argument. `stream` will be
-consumed in its entirety by this process. `sri` can be any subresource integrity
-representation that [`ssri.parse`](#parse) can handle.
-
-`checkStream` will return a Promise that either resolves to the
-`Hash` that succeeded verification, or, if the verification fails
-or an error happens with `stream`, the Promise will be rejected.
-
-If the Promise is rejected because verification failed, the returned error will
-have `err.code` as `EINTEGRITY`.
-
-If `opts.size` is given, it will be matched against the stream size. An error
-with `err.code` `EBADSIZE` will be returned by a rejection if the expected size
-and actual size fail to match.
-
-If `opts.pickAlgorithm` is provided, it will be used by
-[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
-the available digests to match against.
-
-##### Example
-
-```javascript
-const integrity = ssri.fromData(fs.readFileSync('index.js'))
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- integrity
-)
-// ->
-// Promise<{
-// algorithm: 'sha512',
-// digest: 'sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1'
-// }>
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0'
-) // -> Promise<Hash>
-
-ssri.checkStream(
- fs.createReadStream('index.js'),
- 'sha1-BaDDigEST'
-) // -> Promise<Error<{code: 'EINTEGRITY'}>>
-```
-
-#### <a name="integrity-stream"></a> `> integrityStream(sri, [opts]) -> IntegrityStream`
-
-Returns a `Transform` stream that data can be piped through in order to generate
-and optionally check data integrity for piped data. When the stream completes
-successfully, it emits `size` and `integrity` events, containing the total
-number of bytes processed and a calculated `Integrity` instance based on stream
-data, respectively.
-
-If `opts.algorithms` is passed in, the listed algorithms will be calculated when
-generating the final `Integrity` instance. The default is `['sha512']`.
-
-If `opts.single` is passed in, a single `Hash` instance will be returned.
-
-If `opts.integrity` is passed in, it should be an `integrity` value understood
-by [`parse`](#parse) that the stream will check the data against. If
-verification succeeds, the integrity stream will emit a `verified` event whose
-value is a single `Hash` object that is the one that succeeded verification. If
-verification fails, the stream will error with an `EINTEGRITY` error code.
-
-If `opts.size` is given, it will be matched against the stream size. An error
-with `err.code` `EBADSIZE` will be emitted by the stream if the expected size
-and actual size fail to match.
-
-If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
-arguments. ssri will prioritize whichever of the two algorithms is returned by
-this function. Note that the function may be called multiple times, and it
-**must** return one of the two algorithms provided. By default, ssri will make
-a best-effort to pick the strongest/most reliable of the given algorithms. It
-may intentionally deprioritize algorithms with known vulnerabilities.
-
-##### Example
-
-```javascript
-const integrity = ssri.fromData(fs.readFileSync('index.js'))
-fs.createReadStream('index.js')
-.pipe(ssri.checkStream(integrity))
-```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js
deleted file mode 100644
index 8ece662ba6..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/index.js
+++ /dev/null
@@ -1,334 +0,0 @@
-'use strict'
-
-const Buffer = require('safe-buffer').Buffer
-
-const crypto = require('crypto')
-const Transform = require('stream').Transform
-
-const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
-
-const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
-const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
-const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/]+(?:=?=?))([?\x21-\x7E]*)$/
-const VCHAR_REGEX = /^[\x21-\x7E]+$/
-
-class Hash {
- get isHash () { return true }
- constructor (hash, opts) {
- const strict = !!(opts && opts.strict)
- this.source = hash.trim()
- // 3.1. Integrity metadata (called "Hash" by ssri)
- // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description
- const match = this.source.match(
- strict
- ? STRICT_SRI_REGEX
- : SRI_REGEX
- )
- if (!match) { return }
- if (strict && !SPEC_ALGORITHMS.some(a => a === match[1])) { return }
- this.algorithm = match[1]
- this.digest = match[2]
-
- const rawOpts = match[3]
- this.options = rawOpts ? rawOpts.slice(1).split('?') : []
- }
- hexDigest () {
- return this.digest && Buffer.from(this.digest, 'base64').toString('hex')
- }
- toJSON () {
- return this.toString()
- }
- toString (opts) {
- if (opts && opts.strict) {
- // Strict mode enforces the standard as close to the foot of the
- // letter as it can.
- if (!(
- // The spec has very restricted productions for algorithms.
- // https://www.w3.org/TR/CSP2/#source-list-syntax
- SPEC_ALGORITHMS.some(x => x === this.algorithm) &&
- // Usually, if someone insists on using a "different" base64, we
- // leave it as-is, since there's multiple standards, and the
- // specified is not a URL-safe variant.
- // https://www.w3.org/TR/CSP2/#base64_value
- this.digest.match(BASE64_REGEX) &&
- // Option syntax is strictly visual chars.
- // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression
- // https://tools.ietf.org/html/rfc5234#appendix-B.1
- (this.options || []).every(opt => opt.match(VCHAR_REGEX))
- )) {
- return ''
- }
- }
- const options = this.options && this.options.length
- ? `?${this.options.join('?')}`
- : ''
- return `${this.algorithm}-${this.digest}${options}`
- }
-}
-
-class Integrity {
- get isIntegrity () { return true }
- toJSON () {
- return this.toString()
- }
- toString (opts) {
- opts = opts || {}
- let sep = opts.sep || ' '
- if (opts.strict) {
- // Entries must be separated by whitespace, according to spec.
- sep = sep.replace(/\S+/g, ' ')
- }
- return Object.keys(this).map(k => {
- return this[k].map(hash => {
- return Hash.prototype.toString.call(hash, opts)
- }).filter(x => x.length).join(sep)
- }).filter(x => x.length).join(sep)
- }
- concat (integrity, opts) {
- const other = typeof integrity === 'string'
- ? integrity
- : stringify(integrity, opts)
- return parse(`${this.toString(opts)} ${other}`, opts)
- }
- hexDigest () {
- return parse(this, {single: true}).hexDigest()
- }
- pickAlgorithm (opts) {
- const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
- const keys = Object.keys(this)
- if (!keys.length) {
- throw new Error(`No algorithms available for ${
- JSON.stringify(this.toString())
- }`)
- }
- return keys.reduce((acc, algo) => {
- return pickAlgorithm(acc, algo) || acc
- })
- }
-}
-
-module.exports.parse = parse
-function parse (sri, opts) {
- opts = opts || {}
- if (typeof sri === 'string') {
- return _parse(sri, opts)
- } else if (sri.algorithm && sri.digest) {
- const fullSri = new Integrity()
- fullSri[sri.algorithm] = [sri]
- return _parse(stringify(fullSri, opts), opts)
- } else {
- return _parse(stringify(sri, opts), opts)
- }
-}
-
-function _parse (integrity, opts) {
- // 3.4.3. Parse metadata
- // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
- if (opts.single) {
- return new Hash(integrity, opts)
- }
- return integrity.trim().split(/\s+/).reduce((acc, string) => {
- const hash = new Hash(string, opts)
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-}
-
-module.exports.stringify = stringify
-function stringify (obj, opts) {
- if (obj.algorithm && obj.digest) {
- return Hash.prototype.toString.call(obj, opts)
- } else if (typeof obj === 'string') {
- return stringify(parse(obj, opts), opts)
- } else {
- return Integrity.prototype.toString.call(obj, opts)
- }
-}
-
-module.exports.fromHex = fromHex
-function fromHex (hexDigest, algorithm, opts) {
- const optString = (opts && opts.options && opts.options.length)
- ? `?${opts.options.join('?')}`
- : ''
- return parse(
- `${algorithm}-${
- Buffer.from(hexDigest, 'hex').toString('base64')
- }${optString}`, opts
- )
-}
-
-module.exports.fromData = fromData
-function fromData (data, opts) {
- opts = opts || {}
- const algorithms = opts.algorithms || ['sha512']
- const optString = opts.options && opts.options.length
- ? `?${opts.options.join('?')}`
- : ''
- return algorithms.reduce((acc, algo) => {
- const digest = crypto.createHash(algo).update(data).digest('base64')
- const hash = new Hash(
- `${algo}-${digest}${optString}`,
- opts
- )
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-}
-
-module.exports.fromStream = fromStream
-function fromStream (stream, opts) {
- opts = opts || {}
- const P = opts.Promise || Promise
- const istream = integrityStream(opts)
- return new P((resolve, reject) => {
- stream.pipe(istream)
- stream.on('error', reject)
- istream.on('error', reject)
- let sri
- istream.on('integrity', s => { sri = s })
- istream.on('end', () => resolve(sri))
- istream.on('data', () => {})
- })
-}
-
-module.exports.checkData = checkData
-function checkData (data, sri, opts) {
- opts = opts || {}
- sri = parse(sri, opts)
- if (!Object.keys(sri).length) { return false }
- const algorithm = sri.pickAlgorithm(opts)
- const digests = sri[algorithm] || []
- const digest = crypto.createHash(algorithm).update(data).digest('base64')
- return digests.find(hash => hash.digest === digest) || false
-}
-
-module.exports.checkStream = checkStream
-function checkStream (stream, sri, opts) {
- opts = opts || {}
- const P = opts.Promise || Promise
- const checker = integrityStream(Object.assign({}, opts, {
- integrity: sri
- }))
- return new P((resolve, reject) => {
- stream.pipe(checker)
- stream.on('error', reject)
- checker.on('error', reject)
- let sri
- checker.on('verified', s => { sri = s })
- checker.on('end', () => resolve(sri))
- checker.on('data', () => {})
- })
-}
-
-module.exports.integrityStream = integrityStream
-function integrityStream (opts) {
- opts = opts || {}
- // For verification
- const sri = opts.integrity && parse(opts.integrity, opts)
- const goodSri = sri && Object.keys(sri).length
- const algorithm = goodSri && sri.pickAlgorithm(opts)
- const digests = goodSri && sri[algorithm]
- // Calculating stream
- const algorithms = opts.algorithms || [algorithm || 'sha512']
- const hashes = algorithms.map(crypto.createHash)
- let streamSize = 0
- const stream = new Transform({
- transform (chunk, enc, cb) {
- streamSize += chunk.length
- hashes.forEach(h => h.update(chunk, enc))
- cb(null, chunk, enc)
- }
- }).on('end', () => {
- const optString = (opts.options && opts.options.length)
- ? `?${opts.options.join('?')}`
- : ''
- const newSri = parse(hashes.map((h, i) => {
- return `${algorithms[i]}-${h.digest('base64')}${optString}`
- }).join(' '), opts)
- const match = (
- // Integrity verification mode
- opts.integrity &&
- newSri[algorithm] &&
- digests &&
- digests.find(hash => {
- return newSri[algorithm].find(newhash => {
- return hash.digest === newhash.digest
- })
- })
- )
- if (typeof opts.size === 'number' && streamSize !== opts.size) {
- const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
- err.code = 'EBADSIZE'
- err.found = streamSize
- err.expected = opts.size
- err.sri = sri
- stream.emit('error', err)
- } else if (opts.integrity && !match) {
- const err = new Error(`${sri} integrity checksum failed when using ${algorithm}: wanted ${digests} but got ${newSri}. (${streamSize} bytes)`)
- err.code = 'EINTEGRITY'
- err.found = newSri
- err.expected = digests
- err.algorithm = algorithm
- err.sri = sri
- stream.emit('error', err)
- } else {
- stream.emit('size', streamSize)
- stream.emit('integrity', newSri)
- match && stream.emit('verified', match)
- }
- })
- return stream
-}
-
-module.exports.create = createIntegrity
-function createIntegrity (opts) {
- opts = opts || {}
- const algorithms = opts.algorithms || ['sha512']
- const optString = opts.options && opts.options.length
- ? `?${opts.options.join('?')}`
- : ''
-
- const hashes = algorithms.map(crypto.createHash)
-
- return {
- update: function (chunk, enc) {
- hashes.forEach(h => h.update(chunk, enc))
- return this
- },
- digest: function (enc) {
- const integrity = algorithms.reduce((acc, algo) => {
- const digest = hashes.shift().digest('base64')
- const hash = new Hash(
- `${algo}-${digest}${optString}`,
- opts
- )
- if (hash.algorithm && hash.digest) {
- const algo = hash.algorithm
- if (!acc[algo]) { acc[algo] = [] }
- acc[algo].push(hash)
- }
- return acc
- }, new Integrity())
-
- return integrity
- }
- }
-}
-
-// This is a Best Effortā„¢ at a reasonable priority for hash algos
-const DEFAULT_PRIORITY = [
- 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
-]
-function getPrioritizedHash (algo1, algo2) {
- return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
- ? algo1
- : algo2
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json
deleted file mode 100644
index 8bc38753dc..0000000000
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/ssri/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "_from": "ssri@^4.1.6",
- "_id": "ssri@4.1.6",
- "_inBundle": false,
- "_integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==",
- "_location": "/npm-profile/make-fetch-happen/ssri",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ssri@^4.1.6",
- "name": "ssri",
- "escapedName": "ssri",
- "rawSpec": "^4.1.6",
- "saveSpec": null,
- "fetchSpec": "^4.1.6"
- },
- "_requiredBy": [
- "/npm-profile/make-fetch-happen",
- "/npm-profile/make-fetch-happen/cacache"
- ],
- "_resolved": "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz",
- "_shasum": "0cb49b6ac84457e7bdd466cb730c3cb623e9a25b",
- "_spec": "ssri@^4.1.6",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/ssri/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "dependencies": {
- "safe-buffer": "^5.1.0"
- },
- "deprecated": false,
- "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
- "devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/ssri#readme",
- "keywords": [
- "w3c",
- "web",
- "security",
- "integrity",
- "checksum",
- "hashing",
- "subresource integrity",
- "sri",
- "sri hash",
- "sri string",
- "sri generator",
- "html"
- ],
- "license": "CC0-1.0",
- "main": "index.js",
- "name": "ssri",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/ssri.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "4.1.6"
-}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json
index 6bc2c05add..aab75e9601 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json
+++ b/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/package.json
@@ -1,13 +1,10 @@
{
"_from": "make-fetch-happen@^2.5.0",
- "_id": "make-fetch-happen@2.5.0",
+ "_id": "make-fetch-happen@2.6.0",
"_inBundle": false,
- "_integrity": "sha512-JPD5R43T02wIkcxjcmZuR7D06nB20fMR8aC9VEyYsSBXvJa5hOR/QhCxKY+5SXhy3uU5OUY/r+A6r+fJ2mFndA==",
+ "_integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==",
"_location": "/npm-profile/make-fetch-happen",
- "_phantomChildren": {
- "retry": "0.10.1",
- "safe-buffer": "5.1.1"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
@@ -21,8 +18,8 @@
"_requiredBy": [
"/npm-profile"
],
- "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.5.0.tgz",
- "_shasum": "08c22d499f4f30111addba79fe87c98cf01b6bc8",
+ "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz",
+ "_shasum": "8474aa52198f6b1ae4f3094c04e8370d35ea8a38",
"_spec": "make-fetch-happen@^2.5.0",
"_where": "/Users/rebecca/code/npm/node_modules/npm-profile",
"author": {
@@ -35,16 +32,16 @@
"bundleDependencies": false,
"dependencies": {
"agentkeepalive": "^3.3.0",
- "cacache": "^9.2.9",
- "http-cache-semantics": "^3.7.3",
+ "cacache": "^10.0.0",
+ "http-cache-semantics": "^3.8.0",
"http-proxy-agent": "^2.0.0",
- "https-proxy-agent": "^2.0.0",
+ "https-proxy-agent": "^2.1.0",
"lru-cache": "^4.1.1",
"mississippi": "^1.2.0",
- "node-fetch-npm": "^2.0.1",
+ "node-fetch-npm": "^2.0.2",
"promise-retry": "^1.1.1",
- "socks-proxy-agent": "^3.0.0",
- "ssri": "^4.1.6"
+ "socks-proxy-agent": "^3.0.1",
+ "ssri": "^5.0.0"
},
"deprecated": false,
"description": "Opinionated, caching, retrying fetch client",
@@ -94,5 +91,5 @@
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "2.5.0"
+ "version": "2.6.0"
}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/mississippi/index.js b/deps/npm/node_modules/npm-profile/node_modules/mississippi/index.js
new file mode 100644
index 0000000000..d635b29c56
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/index.js
@@ -0,0 +1,10 @@
+module.exports.pipe = require('pump')
+module.exports.each = require('stream-each')
+module.exports.pipeline = require('pumpify')
+module.exports.duplex = require('duplexify')
+module.exports.through = require('through2')
+module.exports.concat = require('concat-stream')
+module.exports.finished = require('end-of-stream')
+module.exports.from = require('from2')
+module.exports.to = require('flush-write-stream')
+module.exports.parallel = require('parallel-transform')
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/.travis.yml
index 17f94330e7..17f94330e7 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/.travis.yml
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/LICENSE
index 757562ec59..757562ec59 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/LICENSE
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/README.md b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/README.md
index 5029b27d68..5029b27d68 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/README.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/index.js b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/index.js
new file mode 100644
index 0000000000..f0c639a8c8
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/index.js
@@ -0,0 +1,80 @@
+var once = require('once')
+var eos = require('end-of-stream')
+var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
+
+var noop = function () {}
+
+var isFn = function (fn) {
+ return typeof fn === 'function'
+}
+
+var isFS = function (stream) {
+ if (!fs) return false // browser
+ return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
+}
+
+var isRequest = function (stream) {
+ return stream.setHeader && isFn(stream.abort)
+}
+
+var destroyer = function (stream, reading, writing, callback) {
+ callback = once(callback)
+
+ var closed = false
+ stream.on('close', function () {
+ closed = true
+ })
+
+ eos(stream, {readable: reading, writable: writing}, function (err) {
+ if (err) return callback(err)
+ closed = true
+ callback()
+ })
+
+ var destroyed = false
+ return function (err) {
+ if (closed) return
+ if (destroyed) return
+ destroyed = true
+
+ if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
+ if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
+
+ if (isFn(stream.destroy)) return stream.destroy()
+
+ callback(err || new Error('stream was destroyed'))
+ }
+}
+
+var call = function (fn) {
+ fn()
+}
+
+var pipe = function (from, to) {
+ return from.pipe(to)
+}
+
+var pump = function () {
+ var streams = Array.prototype.slice.call(arguments)
+ var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
+
+ if (Array.isArray(streams[0])) streams = streams[0]
+ if (streams.length < 2) throw new Error('pump requires two streams per minimum')
+
+ var error
+ var destroys = streams.map(function (stream, i) {
+ var reading = i < streams.length - 1
+ var writing = i > 0
+ return destroyer(stream, reading, writing, function (err) {
+ if (!error) error = err
+ if (err) destroys.forEach(call)
+ if (reading) return
+ destroys.forEach(call)
+ callback(error)
+ })
+ })
+
+ return streams.reduce(pipe)
+}
+
+module.exports = pump
diff --git a/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/package.json b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/package.json
new file mode 100644
index 0000000000..7ccf3e707f
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "pump@^1.0.0",
+ "_id": "pump@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha512-8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==",
+ "_location": "/npm-profile/mississippi/pump",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pump@^1.0.0",
+ "name": "pump",
+ "escapedName": "pump",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/npm-profile/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz",
+ "_shasum": "5dfe8311c33bbf6fc18261f9f34702c47c08a954",
+ "_spec": "pump@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "browser": {
+ "fs": false
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pump/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "deprecated": false,
+ "description": "pipe streams together and close all of them if one of them closes",
+ "homepage": "https://github.com/mafintosh/pump#readme",
+ "keywords": [
+ "streams",
+ "pipe",
+ "destroy",
+ "callback"
+ ],
+ "license": "MIT",
+ "name": "pump",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pump.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/test-browser.js b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test-browser.js
index 80e852c7dc..80e852c7dc 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/test-browser.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test-browser.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/test.js b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test.js
index 64e772ca5b..64e772ca5b 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/test.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/node_modules/pump/test.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/mississippi/package.json b/deps/npm/node_modules/npm-profile/node_modules/mississippi/package.json
new file mode 100644
index 0000000000..e2bbca0693
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "mississippi@^1.2.0",
+ "_id": "mississippi@1.3.1",
+ "_inBundle": false,
+ "_integrity": "sha512-/6rB8YXFbAtsUVRphIRQqB0+9c7VaPHCjVtvto+JqwVxgz8Zz+I+f68/JgQ+Pb4VlZb2svA9OtdXnHHsZz7ltg==",
+ "_location": "/npm-profile/mississippi",
+ "_phantomChildren": {
+ "end-of-stream": "1.4.1",
+ "once": "1.4.0"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mississippi@^1.2.0",
+ "name": "mississippi",
+ "escapedName": "mississippi",
+ "rawSpec": "^1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.0"
+ },
+ "_requiredBy": [
+ "/npm-profile/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-1.3.1.tgz",
+ "_shasum": "2a8bb465e86550ac8b36a7b6f45599171d78671e",
+ "_spec": "mississippi@^1.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
+ "author": {
+ "name": "max ogden"
+ },
+ "bugs": {
+ "url": "https://github.com/maxogden/mississippi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^1.0.0",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "a collection of useful streams",
+ "devDependencies": {},
+ "homepage": "https://github.com/maxogden/mississippi#readme",
+ "license": "BSD-2-Clause",
+ "main": "index.js",
+ "name": "mississippi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/maxogden/mississippi.git"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "version": "1.3.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/mississippi/readme.md b/deps/npm/node_modules/npm-profile/node_modules/mississippi/readme.md
new file mode 100644
index 0000000000..ed71403a86
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/mississippi/readme.md
@@ -0,0 +1,399 @@
+# mississippi
+
+a collection of useful stream utility modules. learn how the modules work using this and then pick the ones you want and use them individually
+
+the goal of the modules included in mississippi is to make working with streams easy without sacrificing speed, error handling or composability.
+
+## usage
+
+```js
+var miss = require('mississippi')
+```
+
+## methods
+
+- [pipe](#pipe)
+- [each](#each)
+- [pipeline](#pipeline)
+- [duplex](#duplex)
+- [through](#through)
+- [from](#from)
+- [to](#to)
+- [concat](#concat)
+- [finished](#finished)
+- [parallel](#parallel)
+
+### pipe
+
+##### `miss.pipe(stream1, stream2, stream3, ..., cb)`
+
+Pipes streams together and destroys all of them if one of them closes. Calls `cb` with `(error)` if there was an error in any of the streams.
+
+When using standard `source.pipe(destination)` the source will _not_ be destroyed if the destination emits close or error. You are also not able to provide a callback to tell when the pipe has finished.
+
+`miss.pipe` does these two things for you, ensuring you handle stream errors 100% of the time (unhandled errors are probably the most common bug in most node streams code)
+
+#### original module
+
+`miss.pipe` is provided by [`require('pump')`](https://www.npmjs.com/package/pump)
+
+#### example
+
+```js
+// lets do a simple file copy
+var fs = require('fs')
+
+var read = fs.createReadStream('./original.zip')
+var write = fs.createWriteStream('./copy.zip')
+
+// use miss.pipe instead of read.pipe(write)
+miss.pipe(read, write, function (err) {
+ if (err) return console.error('Copy error!', err)
+ console.log('Copied successfully')
+})
+```
+
+### each
+
+##### `miss.each(stream, each, [done])`
+
+Iterate the data in `stream` one chunk at a time. Your `each` function will be called with `(data, next)` where data is a data chunk and next is a callback. Call `next` when you are ready to consume the next chunk.
+
+Optionally you can call `next` with an error to destroy the stream. You can also pass the optional third argument, `done`, which is a function that will be called with `(err)` when the stream ends. The `err` argument will be populated with an error if the stream emitted an error.
+
+#### original module
+
+`miss.each` is provided by [`require('stream-each')`](https://www.npmjs.com/package/stream-each)
+
+#### example
+
+```js
+var fs = require('fs')
+var split = require('split2')
+
+var newLineSeparatedNumbers = fs.createReadStream('numbers.txt')
+
+var pipeline = miss.pipeline(newLineSeparatedNumbers, split())
+miss.each(pipeline, eachLine, done)
+var sum = 0
+
+function eachLine (line, next) {
+ sum += parseInt(line.toString())
+ next()
+}
+
+function done (err) {
+ if (err) throw err
+ console.log('sum is', sum)
+}
+```
+
+### pipeline
+
+##### `var pipeline = miss.pipeline(stream1, stream2, stream3, ...)`
+
+Builds a pipeline from all the transform streams passed in as arguments by piping them together and returning a single stream object that lets you write to the first stream and read from the last stream.
+
+If any of the streams in the pipeline emits an error or gets destroyed, or you destroy the stream it returns, all of the streams will be destroyed and cleaned up for you.
+
+#### original module
+
+`miss.pipeline` is provided by [`require('pumpify')`](https://www.npmjs.com/package/pumpify)
+
+#### example
+
+```js
+// first create some transform streams (note: these two modules are fictional)
+var imageResize = require('image-resizer-stream')({width: 400})
+var pngOptimizer = require('png-optimizer-stream')({quality: 60})
+
+// instead of doing a.pipe(b), use pipelin
+var resizeAndOptimize = miss.pipeline(imageResize, pngOptimizer)
+// `resizeAndOptimize` is a transform stream. when you write to it, it writes
+// to `imageResize`. when you read from it, it reads from `pngOptimizer`.
+// it handles piping all the streams together for you
+
+// use it like any other transform stream
+var fs = require('fs')
+
+var read = fs.createReadStream('./image.png')
+var write = fs.createWriteStream('./resized-and-optimized.png')
+
+miss.pipe(read, resizeAndOptimize, write, function (err) {
+ if (err) return console.error('Image processing error!', err)
+ console.log('Image processed successfully')
+})
+```
+
+### duplex
+
+##### `var duplex = miss.duplex([writable, readable, opts])`
+
+Take two separate streams, a writable and a readable, and turn them into a single [duplex (readable and writable) stream](https://nodejs.org/api/stream.html#stream_class_stream_duplex).
+
+The returned stream will emit data from the readable. When you write to it it writes to the writable.
+
+You can either choose to supply the writable and the readable at the time you create the stream, or you can do it later using the `.setWritable` and `.setReadable` methods and data written to the stream in the meantime will be buffered for you.
+
+#### original module
+
+`miss.duplex` is provided by [`require('duplexify')`](https://www.npmjs.com/package/duplexify)
+
+#### example
+
+```js
+// lets spawn a process and take its stdout and stdin and combine them into 1 stream
+var child = require('child_process')
+
+// @- tells it to read from stdin, --data-binary sets 'raw' binary mode
+var curl = child.spawn('curl -X POST --data-binary @- http://foo.com')
+
+// duplexCurl will write to stdin and read from stdout
+var duplexCurl = miss.duplex(curl.stdin, curl.stdout)
+```
+
+### through
+
+##### `var transformer = miss.through([options, transformFunction, flushFunction])`
+
+Make a custom [transform stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform).
+
+The `options` object is passed to the internal transform stream and can be used to create an `objectMode` stream (or use the shortcut `miss.through.obj([...])`)
+
+The `transformFunction` is called when data is available for the writable side and has the signature `(chunk, encoding, cb)`. Within the function, add data to the readable side any number of times with `this.push(data)`. Call `cb()` to indicate processing of the `chunk` is complete. Or to easily emit a single error or chunk, call `cb(err, chunk)`
+
+The `flushFunction`, with signature `(cb)`, is called just before the stream is complete and should be used to wrap up stream processing.
+
+#### original module
+
+`miss.through` is provided by [`require('through2')`](https://www.npmjs.com/package/through2)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var read = fs.createReadStream('./boring_lowercase.txt')
+var write = fs.createWriteStream('./AWESOMECASE.TXT')
+
+// Leaving out the options object
+var uppercaser = miss.through(
+ function (chunk, enc, cb) {
+ cb(null, chunk.toString().toUpperCase())
+ },
+ function (cb) {
+ cb(null, 'ONE LAST BIT OF UPPERCASE')
+ }
+)
+
+miss.pipe(read, uppercaser, write, function (err) {
+ if (err) return console.error('Trouble uppercasing!')
+ console.log('Splendid uppercasing!')
+})
+```
+
+### from
+
+##### `miss.from([opts], read)`
+
+Make a custom [readable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_readable).
+
+`opts` contains the options to pass on to the ReadableStream constructor e.g. for creating a readable object stream (or use the shortcut `miss.from.obj([...])`).
+
+Returns a readable stream that calls `read(size, next)` when data is requested from the stream.
+
+- `size` is the recommended amount of data (in bytes) to retrieve.
+- `next(err, chunk)` should be called when you're ready to emit more data.
+
+#### original module
+
+`miss.from` is provided by [`require('from2')`](https://www.npmjs.com/package/from2)
+
+#### example
+
+```js
+
+
+function fromString(string) {
+ return miss.from(function(size, next) {
+ // if there's no more content
+ // left in the string, close the stream.
+ if (string.length <= 0) return next(null, null)
+
+ // Pull in a new chunk of text,
+ // removing it from the string.
+ var chunk = string.slice(0, size)
+ string = string.slice(size)
+
+ // Emit "chunk" from the stream.
+ next(null, chunk)
+ })
+}
+
+// pipe "hello world" out
+// to stdout.
+fromString('hello world').pipe(process.stdout)
+```
+
+### to
+
+##### `miss.to([options], write, [flush])`
+
+Make a custom [writable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_writable).
+
+`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a writable object stream (or use the shortcut `miss.to.obj([...])`).
+
+Returns a writable stream that calls `write(data, enc, cb)` when data is written to the stream.
+
+- `data` is the received data to write the destination.
+- `enc` encoding of the piece of data received.
+- `cb(err, data)` should be called when you're ready to write more data, or encountered an error.
+
+`flush(cb)` is called before `finish` is emitted and allows for cleanup steps to occur.
+
+#### original module
+
+`miss.to` is provided by [`require('flush-write-stream')`](https://www.npmjs.com/package/flush-write-stream)
+
+#### example
+
+```js
+var ws = miss.to(write, flush)
+
+ws.on('finish', function () {
+ console.log('finished')
+})
+
+ws.write('hello')
+ws.write('world')
+ws.end()
+
+function write (data, enc, cb) {
+ // i am your normal ._write method
+ console.log('writing', data.toString())
+ cb()
+}
+
+function flush (cb) {
+ // i am called before finish is emitted
+ setTimeout(cb, 1000) // wait 1 sec
+}
+```
+
+If you run the above it will produce the following output
+
+```
+writing hello
+writing world
+(nothing happens for 1 sec)
+finished
+```
+
+### concat
+
+##### `var concat = miss.concat(cb)`
+
+Returns a writable stream that concatenates all data written to the stream and calls a callback with the single result.
+
+Calling `miss.concat(cb)` returns a writable stream. `cb` is called when the writable stream is finished, e.g. when all data is done being written to it. `cb` is called with a single argument, `(data)`, which will contain the result of concatenating all the data written to the stream.
+
+Note that `miss.concat` will not handle stream errors for you. To handle errors, use `miss.pipe` or handle the `error` event manually.
+
+#### original module
+
+`miss.concat` is provided by [`require('concat-stream')`](https://www.npmjs.com/package/concat-stream)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var readStream = fs.createReadStream('cat.png')
+var concatStream = miss.concat(gotPicture)
+
+function callback (err) {
+ if (err) {
+ console.error(err)
+ process.exit(1)
+ }
+}
+
+miss.pipe(readStream, concatStream, callback)
+
+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
+}
+```
+
+### finished
+
+##### `miss.finished(stream, cb)`
+
+Waits for `stream` to finish or error and then calls `cb` with `(err)`. `cb` will only be called once. `err` will be null if the stream finished without error, or else it will be populated with the error from the streams `error` event.
+
+This function is useful for simplifying stream handling code as it lets you handle success or error conditions in a single code path. It's used internally `miss.pipe`.
+
+#### original module
+
+`miss.finished` is provided by [`require('end-of-stream')`](https://www.npmjs.com/package/end-of-stream)
+
+#### example
+
+```js
+var copySource = fs.createReadStream('./movie.mp4')
+var copyDest = fs.createWriteStream('./movie-copy.mp4')
+
+copySource.pipe(copyDest)
+
+miss.finished(copyDest, function(err) {
+ if (err) return console.log('write failed', err)
+ console.log('write success')
+})
+```
+
+### parallel
+
+##### `miss.parallel(concurrency, each)`
+
+This works like `through` except you can process items in parallel, while still preserving the original input order.
+
+This is handy if you wanna take advantage of node's async I/O and process streams of items in batches. With this module you can build your very own streaming parallel job queue.
+
+Note that `miss.parallel` preserves input ordering, if you don't need that then you can use [through2-concurrent](https://github.com/almost/through2-concurrent) instead, which is very similar to this otherwise.
+
+#### original module
+
+`miss.parallel` is provided by [`require('parallel-transform')`](https://npmjs.org/parallel-transform)
+
+#### example
+
+This example fetches the GET HTTP headers for a stream of input URLs 5 at a time in parallel.
+
+```js
+function getResponse (item, cb) {
+ var r = request(item.url)
+ r.on('error', function (err) {
+ cb(err)
+ })
+ r.on('response', function (re) {
+ cb(null, {url: item.url, date: new Date(), status: re.statusCode, headers: re.headers})
+ r.abort()
+ })
+}
+
+miss.pipe(
+ fs.createReadStream('./urls.txt'), // one url per line
+ split(),
+ miss.parallel(5, getResponse),
+ miss.through(function (row, enc, next) {
+ console.log(JSON.stringify(row))
+ next()
+ })
+)
+```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/pump/.travis.yml
new file mode 100644
index 0000000000..17f94330e7
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.10"
+
+script: "npm test"
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/pump/LICENSE
index 757562ec59..757562ec59 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/LICENSE
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/LICENSE
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/README.md b/deps/npm/node_modules/npm-profile/node_modules/pump/README.md
new file mode 100644
index 0000000000..5029b27d68
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/README.md
@@ -0,0 +1,56 @@
+# pump
+
+pump is a small node module that pipes streams together and destroys all of them if one of them closes.
+
+```
+npm install pump
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump)
+
+## What problem does it solve?
+
+When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error.
+You are also not able to provide a callback to tell when then pipe has finished.
+
+pump does these two things for you
+
+## Usage
+
+Simply pass the streams you want to pipe together to pump and add an optional callback
+
+``` js
+var pump = require('pump')
+var fs = require('fs')
+
+var source = fs.createReadStream('/dev/random')
+var dest = fs.createWriteStream('/dev/null')
+
+pump(source, dest, function(err) {
+ console.log('pipe finished', err)
+})
+
+setTimeout(function() {
+ dest.destroy() // when dest is closed pump will destroy source
+}, 1000)
+```
+
+You can use pump to pipe more than two streams together as well
+
+``` js
+var transform = someTransformStream()
+
+pump(source, transform, anotherTransform, dest, function(err) {
+ console.log('pipe finished', err)
+})
+```
+
+If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed.
+
+## License
+
+MIT
+
+## Related
+
+`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/index.js b/deps/npm/node_modules/npm-profile/node_modules/pump/index.js
new file mode 100644
index 0000000000..d9ca0335cb
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/index.js
@@ -0,0 +1,82 @@
+var once = require('once')
+var eos = require('end-of-stream')
+var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
+
+var noop = function () {}
+var ancient = /^v?\.0/.test(process.version)
+
+var isFn = function (fn) {
+ return typeof fn === 'function'
+}
+
+var isFS = function (stream) {
+ if (!ancient) return false // newer node version do not need to care about fs is a special way
+ if (!fs) return false // browser
+ return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
+}
+
+var isRequest = function (stream) {
+ return stream.setHeader && isFn(stream.abort)
+}
+
+var destroyer = function (stream, reading, writing, callback) {
+ callback = once(callback)
+
+ var closed = false
+ stream.on('close', function () {
+ closed = true
+ })
+
+ eos(stream, {readable: reading, writable: writing}, function (err) {
+ if (err) return callback(err)
+ closed = true
+ callback()
+ })
+
+ var destroyed = false
+ return function (err) {
+ if (closed) return
+ if (destroyed) return
+ destroyed = true
+
+ if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
+ if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
+
+ if (isFn(stream.destroy)) return stream.destroy()
+
+ callback(err || new Error('stream was destroyed'))
+ }
+}
+
+var call = function (fn) {
+ fn()
+}
+
+var pipe = function (from, to) {
+ return from.pipe(to)
+}
+
+var pump = function () {
+ var streams = Array.prototype.slice.call(arguments)
+ var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
+
+ if (Array.isArray(streams[0])) streams = streams[0]
+ if (streams.length < 2) throw new Error('pump requires two streams per minimum')
+
+ var error
+ var destroys = streams.map(function (stream, i) {
+ var reading = i < streams.length - 1
+ var writing = i > 0
+ return destroyer(stream, reading, writing, function (err) {
+ if (!error) error = err
+ if (err) destroys.forEach(call)
+ if (reading) return
+ destroys.forEach(call)
+ callback(error)
+ })
+ })
+
+ streams.reduce(pipe)
+}
+
+module.exports = pump
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/package.json b/deps/npm/node_modules/npm-profile/node_modules/pump/package.json
new file mode 100644
index 0000000000..7dcd7007a8
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "pump@^2.0.1",
+ "_id": "pump@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "_location": "/npm-profile/pump",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pump@^2.0.1",
+ "name": "pump",
+ "escapedName": "pump",
+ "rawSpec": "^2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.1"
+ },
+ "_requiredBy": [
+ "/npm-profile/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "_shasum": "12399add6e4cf7526d973cbc8b5ce2e2908b3909",
+ "_spec": "pump@^2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/cacache/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "browser": {
+ "fs": false
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pump/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "deprecated": false,
+ "description": "pipe streams together and close all of them if one of them closes",
+ "homepage": "https://github.com/mafintosh/pump#readme",
+ "keywords": [
+ "streams",
+ "pipe",
+ "destroy",
+ "callback"
+ ],
+ "license": "MIT",
+ "name": "pump",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pump.git"
+ },
+ "scripts": {
+ "test": "node test-browser.js && node test-node.js"
+ },
+ "version": "2.0.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/test-browser.js b/deps/npm/node_modules/npm-profile/node_modules/pump/test-browser.js
new file mode 100644
index 0000000000..75ea4a292e
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/test-browser.js
@@ -0,0 +1,62 @@
+var stream = require('stream')
+var pump = require('./index')
+
+var rs = new stream.Readable()
+var ws = new stream.Writable()
+
+rs._read = function (size) {
+ this.push(Buffer(size).fill('abc'))
+}
+
+ws._write = function (chunk, encoding, cb) {
+ setTimeout(function () {
+ cb()
+ }, 100)
+}
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-browser.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('finish', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('end', function () {
+ rsClosed = true
+ check()
+})
+
+pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+setTimeout(function () {
+ rs.push(null)
+ rs.emit('close')
+}, 1000)
+
+var timeout = setTimeout(function () {
+ check()
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/npm-profile/node_modules/pump/test-node.js b/deps/npm/node_modules/npm-profile/node_modules/pump/test-node.js
new file mode 100644
index 0000000000..034a65414d
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/pump/test-node.js
@@ -0,0 +1,53 @@
+var pump = require('./index')
+
+var rs = require('fs').createReadStream('/dev/random')
+var ws = require('fs').createWriteStream('/dev/null')
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-node.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('close', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('close', function () {
+ rsClosed = true
+ check()
+})
+
+var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+if (res) {
+ process.exit(1)
+}
+
+setTimeout(function () {
+ rs.destroy()
+}, 1000)
+
+var timeout = setTimeout(function () {
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.npmignore
index 6bcbf6f77d..6bcbf6f77d 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.npmignore
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.travis.yml
index 9d67de5878..9d67de5878 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/LICENSE
index b2442a9e71..b2442a9e71 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/LICENSE
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/README.md
index 178ce8827f..178ce8827f 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/README.md
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js
index ef53b9fd4d..ef53b9fd4d 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js.map
index 60af067a2c..60af067a2c 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/build/smartbuffer.js.map
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/lib/smart-buffer.js
index ea69cfc09a..ea69cfc09a 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/lib/smart-buffer.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/package.json b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/package.json
new file mode 100644
index 0000000000..ab74107cb0
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "smart-buffer@^1.0.13",
+ "_id": "smart-buffer@1.1.15",
+ "_inBundle": false,
+ "_integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=",
+ "_location": "/npm-profile/smart-buffer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "smart-buffer@^1.0.13",
+ "name": "smart-buffer",
+ "escapedName": "smart-buffer",
+ "rawSpec": "^1.0.13",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.13"
+ },
+ "_requiredBy": [
+ "/npm-profile/socks"
+ ],
+ "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
+ "_shasum": "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16",
+ "_spec": "smart-buffer@^1.0.13",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/socks",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/smart-buffer/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "A smarter Buffer that keeps track of its own read and write positions while growing endlessly.",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.15",
+ "istanbul": "^0.4.3",
+ "mocha": "^3.2.0",
+ "mocha-lcov-reporter": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.10.15",
+ "npm": ">= 1.3.5"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/smart-buffer/",
+ "keywords": [
+ "buffer",
+ "smart",
+ "serialize",
+ "packet",
+ "network",
+ "cursor",
+ "simple"
+ ],
+ "license": "MIT",
+ "main": "lib/smart-buffer.js",
+ "name": "smart-buffer",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git"
+ },
+ "scripts": {
+ "coverage": "istanbul cover node_modules/mocha/bin/_mocha recursive test",
+ "fullcoverage": "istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test",
+ "test": "mocha test/smart-buffer.test.js"
+ },
+ "typings": "typings/index",
+ "version": "1.1.15"
+}
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/test/smart-buffer.test.js
index 0897d54c2f..0897d54c2f 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/test/smart-buffer.test.js
diff --git a/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 b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/typings/index.d.ts
index b567f1e97c..b567f1e97c 100644
--- a/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
+++ b/deps/npm/node_modules/npm-profile/node_modules/smart-buffer/typings/index.d.ts
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.npmignore
index 07e6e472cc..07e6e472cc 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.travis.yml
index 805d3d50d2..805d3d50d2 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/History.md
index b0266b5e35..b0266b5e35 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/History.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/README.md
index 30d33500af..30d33500af 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/index.js
index 3dac18d564..3dac18d564 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/package.json
new file mode 100644
index 0000000000..85bd19497e
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "socks-proxy-agent@^3.0.1",
+ "_id": "socks-proxy-agent@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==",
+ "_location": "/npm-profile/socks-proxy-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks-proxy-agent@^3.0.1",
+ "name": "socks-proxy-agent",
+ "escapedName": "socks-proxy-agent",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/npm-profile/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz",
+ "_shasum": "2eae7cf8e2a82d34565761539a7f9718c5617659",
+ "_spec": "socks-proxy-agent@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agent-base": "^4.1.0",
+ "socks": "^1.1.10"
+ },
+ "deprecated": false,
+ "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
+ "devDependencies": {
+ "mocha": "^3.4.2",
+ "raw-body": "^2.2.0",
+ "socksv5": "0.0.6"
+ },
+ "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
+ "keywords": [
+ "socks",
+ "socks4",
+ "socks4a",
+ "proxy",
+ "http",
+ "https",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "socks-proxy-agent",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/test.js
index 968ef650fb..968ef650fb 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks-proxy-agent/test/test.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore b/deps/npm/node_modules/npm-profile/node_modules/socks/.npmignore
index 7deddced8b..7deddced8b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE b/deps/npm/node_modules/npm-profile/node_modules/socks/LICENSE
index b2442a9e71..b2442a9e71 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/LICENSE
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md b/deps/npm/node_modules/npm-profile/node_modules/socks/README.md
index 890b7deb6a..890b7deb6a 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/associate.js
index 82d6afa97b..82d6afa97b 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/associate.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/bind.js
index 4410dd1def..4410dd1def 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/bind.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/connect.js
index 528ad4d416..528ad4d416 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/examples/connect.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js b/deps/npm/node_modules/npm-profile/node_modules/socks/index.js
index 29331d4a1c..29331d4a1c 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/index.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js b/deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-agent.js
index db1c301ec9..db1c301ec9 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-agent.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js b/deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-client.js
index 4a31f62c32..4a31f62c32 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/lib/socks-client.js
diff --git a/deps/npm/node_modules/npm-profile/node_modules/socks/package.json b/deps/npm/node_modules/npm-profile/node_modules/socks/package.json
new file mode 100644
index 0000000000..fcd2d16852
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/socks/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "socks@^1.1.10",
+ "_id": "socks@1.1.10",
+ "_inBundle": false,
+ "_integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
+ "_location": "/npm-profile/socks",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks@^1.1.10",
+ "name": "socks",
+ "escapedName": "socks",
+ "rawSpec": "^1.1.10",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.10"
+ },
+ "_requiredBy": [
+ "/npm-profile/socks-proxy-agent"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
+ "_shasum": "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a",
+ "_spec": "socks@^1.1.10",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/socks-proxy-agent",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/socks/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Samuel Gordalina"
+ }
+ ],
+ "dependencies": {
+ "ip": "^1.1.4",
+ "smart-buffer": "^1.0.13"
+ },
+ "deprecated": false,
+ "description": "A SOCKS proxy client supporting SOCKS 4, 4a, and 5. (also supports BIND/Associate)",
+ "engines": {
+ "node": ">= 0.10.0",
+ "npm": ">= 1.3.5"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/socks",
+ "keywords": [
+ "socks",
+ "proxy",
+ "client",
+ "tor",
+ "bind",
+ "associate",
+ "socks 4",
+ "socks 4a",
+ "socks 5",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "socks",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/socks.git"
+ },
+ "version": "1.1.10"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/npm-profile/node_modules/ssri/CHANGELOG.md
new file mode 100644
index 0000000000..5c06894881
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/ssri/CHANGELOG.md
@@ -0,0 +1,256 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="5.3.0"></a>
+# [5.3.0](https://github.com/zkat/ssri/compare/v5.2.4...v5.3.0) (2018-03-13)
+
+
+### Features
+
+* **checkData:** optionally throw when checkData fails ([bf26b84](https://github.com/zkat/ssri/commit/bf26b84))
+
+
+
+<a name="5.2.4"></a>
+## [5.2.4](https://github.com/zkat/ssri/compare/v5.2.3...v5.2.4) (2018-02-16)
+
+
+
+<a name="5.2.3"></a>
+## [5.2.3](https://github.com/zkat/ssri/compare/v5.2.2...v5.2.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **hashes:** filter hash priority list by available hashes ([2fa30b8](https://github.com/zkat/ssri/commit/2fa30b8))
+* **integrityStream:** dedupe algorithms to generate ([d56c654](https://github.com/zkat/ssri/commit/d56c654))
+
+
+
+<a name="5.2.2"></a>
+## [5.2.2](https://github.com/zkat/ssri/compare/v5.2.1...v5.2.2) (2018-02-14)
+
+
+### Bug Fixes
+
+* **security:** tweak strict SRI regex ([#10](https://github.com/zkat/ssri/issues/10)) ([d0ebcdc](https://github.com/zkat/ssri/commit/d0ebcdc))
+
+
+
+<a name="5.2.1"></a>
+## [5.2.1](https://github.com/zkat/ssri/compare/v5.2.0...v5.2.1) (2018-02-06)
+
+
+
+<a name="5.2.0"></a>
+# [5.2.0](https://github.com/zkat/ssri/compare/v5.1.0...v5.2.0) (2018-02-06)
+
+
+### Features
+
+* **match:** add integrity.match() ([3c49cc4](https://github.com/zkat/ssri/commit/3c49cc4))
+
+
+
+<a name="5.1.0"></a>
+# [5.1.0](https://github.com/zkat/ssri/compare/v5.0.0...v5.1.0) (2018-01-18)
+
+
+### Bug Fixes
+
+* **checkStream:** integrityStream now takes opts.integrity algos into account ([d262910](https://github.com/zkat/ssri/commit/d262910))
+
+
+### Features
+
+* **sha3:** do some guesswork about upcoming sha3 ([7fdd9df](https://github.com/zkat/ssri/commit/7fdd9df))
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23)
+
+
+### Features
+
+* **license:** relicense to ISC (#9) ([c82983a](https://github.com/zkat/ssri/commit/c82983a))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+
+
+
+<a name="4.1.6"></a>
+## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07)
+
+
+### Bug Fixes
+
+* **checkStream:** make sure to pass all opts through ([0b1bcbe](https://github.com/zkat/ssri/commit/0b1bcbe))
+
+
+
+<a name="4.1.5"></a>
+## [4.1.5](https://github.com/zkat/ssri/compare/v4.1.4...v4.1.5) (2017-06-05)
+
+
+### Bug Fixes
+
+* **integrityStream:** stop crashing if opts.algorithms and opts.integrity have an algo mismatch ([fb1293e](https://github.com/zkat/ssri/commit/fb1293e))
+
+
+
+<a name="4.1.4"></a>
+## [4.1.4](https://github.com/zkat/ssri/compare/v4.1.3...v4.1.4) (2017-05-31)
+
+
+### Bug Fixes
+
+* **node:** older versions of node[@4](https://github.com/4) do not support base64buffer string parsing ([513df4e](https://github.com/zkat/ssri/commit/513df4e))
+
+
+
+<a name="4.1.3"></a>
+## [4.1.3](https://github.com/zkat/ssri/compare/v4.1.2...v4.1.3) (2017-05-24)
+
+
+### Bug Fixes
+
+* **check:** handle various bad hash corner cases better ([c2c262b](https://github.com/zkat/ssri/commit/c2c262b))
+
+
+
+<a name="4.1.2"></a>
+## [4.1.2](https://github.com/zkat/ssri/compare/v4.1.1...v4.1.2) (2017-04-18)
+
+
+### Bug Fixes
+
+* **stream:** _flush can be called multiple times. use on("end") ([b1c4805](https://github.com/zkat/ssri/commit/b1c4805))
+
+
+
+<a name="4.1.1"></a>
+## [4.1.1](https://github.com/zkat/ssri/compare/v4.1.0...v4.1.1) (2017-04-12)
+
+
+### Bug Fixes
+
+* **pickAlgorithm:** error if pickAlgorithm() is used in an empty Integrity ([fab470e](https://github.com/zkat/ssri/commit/fab470e))
+
+
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/zkat/ssri/compare/v4.0.0...v4.1.0) (2017-04-07)
+
+
+### Features
+
+* adding ssri.create for a crypto style interface (#2) ([96f52ad](https://github.com/zkat/ssri/commit/96f52ad))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/zkat/ssri/compare/v3.0.2...v4.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** should have changed the error code before. oops ([8381afa](https://github.com/zkat/ssri/commit/8381afa))
+
+
+### BREAKING CHANGES
+
+* **integrity:** EBADCHECKSUM -> EINTEGRITY for verification errors
+
+
+
+<a name="3.0.2"></a>
+## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03)
+
+
+
+<a name="3.0.1"></a>
+## [3.0.1](https://github.com/zkat/ssri/compare/v3.0.0...v3.0.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **package.json:** really should have these in the keywords because search ([a6ac6d0](https://github.com/zkat/ssri/commit/a6ac6d0))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/zkat/ssri/compare/v2.0.0...v3.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **hashes:** IntegrityMetadata -> Hash ([d04aa1f](https://github.com/zkat/ssri/commit/d04aa1f))
+
+
+### Features
+
+* **check:** return IntegrityMetadata on check success ([2301e74](https://github.com/zkat/ssri/commit/2301e74))
+* **fromHex:** ssri.fromHex to make it easier to generate them from hex valus ([049b89e](https://github.com/zkat/ssri/commit/049b89e))
+* **hex:** utility function for getting hex version of digest ([a9f021c](https://github.com/zkat/ssri/commit/a9f021c))
+* **hexDigest:** added hexDigest method to Integrity objects too ([85208ba](https://github.com/zkat/ssri/commit/85208ba))
+* **integrity:** add .isIntegrity and .isIntegrityMetadata ([1b29e6f](https://github.com/zkat/ssri/commit/1b29e6f))
+* **integrityStream:** new stream that can both generate and check streamed data ([fd23e1b](https://github.com/zkat/ssri/commit/fd23e1b))
+* **parse:** allow parsing straight into a single IntegrityMetadata object ([c8ddf48](https://github.com/zkat/ssri/commit/c8ddf48))
+* **pickAlgorithm:** Intergrity#pickAlgorithm() added ([b97a796](https://github.com/zkat/ssri/commit/b97a796))
+* **size:** calculate and update stream sizes ([02ed1ad](https://github.com/zkat/ssri/commit/02ed1ad))
+
+
+### BREAKING CHANGES
+
+* **hashes:** `.isIntegrityMetadata` is now `.isHash`. Also, any references to `IntegrityMetadata` now refer to `Hash`.
+* **integrityStream:** createCheckerStream has been removed and replaced with a general-purpose integrityStream.
+
+To convert existing createCheckerStream code, move the `sri` argument into `opts.integrity` in integrityStream. All other options should be the same.
+* **check:** `checkData`, `checkStream`, and `createCheckerStream` now yield a whole IntegrityMetadata instance representing the first successful hash match.
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/ssri/compare/v1.0.0...v2.0.0) (2017-03-24)
+
+
+### Bug Fixes
+
+* **strict-mode:** make regexes more rigid ([122a32c](https://github.com/zkat/ssri/commit/122a32c))
+
+
+### Features
+
+* **api:** added serialize alias for unparse ([999b421](https://github.com/zkat/ssri/commit/999b421))
+* **concat:** add Integrity#concat() ([cae12c7](https://github.com/zkat/ssri/commit/cae12c7))
+* **pickAlgo:** pick the strongest algorithm provided, by default ([58c18f7](https://github.com/zkat/ssri/commit/58c18f7))
+* **strict-mode:** strict SRI support ([3f0b64c](https://github.com/zkat/ssri/commit/3f0b64c))
+* **stringify:** replaced unparse/serialize with stringify ([4acad30](https://github.com/zkat/ssri/commit/4acad30))
+* **verification:** add opts.pickAlgorithm ([f72e658](https://github.com/zkat/ssri/commit/f72e658))
+
+
+### BREAKING CHANGES
+
+* **pickAlgo:** ssri will prioritize specific hashes now
+* **stringify:** serialize and unparse have been removed. Use ssri.stringify instead.
+* **strict-mode:** functions that accepted an optional `sep` argument now expect `opts.sep`.
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-03-23)
+
+
+### Features
+
+* **api:** implemented initial api ([4fbb16b](https://github.com/zkat/ssri/commit/4fbb16b))
+
+
+### BREAKING CHANGES
+
+* **api:** Initial API established.
diff --git a/deps/npm/node_modules/npm-profile/node_modules/ssri/LICENSE.md b/deps/npm/node_modules/npm-profile/node_modules/ssri/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/ssri/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-profile/node_modules/ssri/README.md b/deps/npm/node_modules/npm-profile/node_modules/ssri/README.md
new file mode 100644
index 0000000000..a6c07e7409
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/ssri/README.md
@@ -0,0 +1,488 @@
+# ssri [![npm version](https://img.shields.io/npm/v/ssri.svg)](https://npm.im/ssri) [![license](https://img.shields.io/npm/l/ssri.svg)](https://npm.im/ssri) [![Travis](https://img.shields.io/travis/zkat/ssri.svg)](https://travis-ci.org/zkat/ssri) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/ssri?svg=true)](https://ci.appveyor.com/project/zkat/ssri) [![Coverage Status](https://coveralls.io/repos/github/zkat/ssri/badge.svg?branch=latest)](https://coveralls.io/github/zkat/ssri?branch=latest)
+
+[`ssri`](https://github.com/zkat/ssri), short for Standard Subresource
+Integrity, is a Node.js utility for parsing, manipulating, serializing,
+generating, and verifying [Subresource
+Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
+
+## Install
+
+`$ npm install --save ssri`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * Parsing & Serializing
+ * [`parse`](#parse)
+ * [`stringify`](#stringify)
+ * [`Integrity#concat`](#integrity-concat)
+ * [`Integrity#toString`](#integrity-to-string)
+ * [`Integrity#toJSON`](#integrity-to-json)
+ * [`Integrity#match`](#integrity-match)
+ * [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
+ * [`Integrity#hexDigest`](#integrity-hex-digest)
+ * Integrity Generation
+ * [`fromHex`](#from-hex)
+ * [`fromData`](#from-data)
+ * [`fromStream`](#from-stream)
+ * [`create`](#create)
+ * Integrity Verification
+ * [`checkData`](#check-data)
+ * [`checkStream`](#check-stream)
+ * [`integrityStream`](#integrity-stream)
+
+### Example
+
+```javascript
+const ssri = require('ssri')
+
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+// Parsing and serializing
+const parsed = ssri.parse(integrity)
+ssri.stringify(parsed) // === integrity (works on non-Integrity objects)
+parsed.toString() // === integrity
+
+// Async stream functions
+ssri.checkStream(fs.createReadStream('./my-file'), integrity).then(...)
+ssri.fromStream(fs.createReadStream('./my-file')).then(sri => {
+ sri.toString() === integrity
+})
+fs.createReadStream('./my-file').pipe(ssri.createCheckerStream(sri))
+
+// Sync data functions
+ssri.fromData(fs.readFileSync('./my-file')) // === parsed
+ssri.checkData(fs.readFileSync('./my-file'), integrity) // => 'sha512'
+```
+
+### Features
+
+* Parses and stringifies SRI strings.
+* Generates SRI strings from raw data or Streams.
+* Strict standard compliance.
+* `?foo` metadata option support.
+* Multiple entries for the same algorithm.
+* Object-based integrity hash manipulation.
+* Small footprint: no dependencies, concise implementation.
+* Full test coverage.
+* Customizable algorithm picker.
+
+### Contributing
+
+The ssri team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+### API
+
+#### <a name="parse"></a> `> ssri.parse(sri, [opts]) -> Integrity`
+
+Parses `sri` into an `Integrity` data structure. `sri` can be an integrity
+string, an `Hash`-like with `digest` and `algorithm` fields and an optional
+`options` field, or an `Integrity`-like object. The resulting object will be an
+`Integrity` instance that has this shape:
+
+```javascript
+{
+ 'sha1': [{algorithm: 'sha1', digest: 'deadbeef', options: []}],
+ 'sha512': [
+ {algorithm: 'sha512', digest: 'c0ffee', options: []},
+ {algorithm: 'sha512', digest: 'bad1dea', options: ['foo']}
+ ],
+}
+```
+
+If `opts.single` is truthy, a single `Hash` object will be returned. That is, a
+single object that looks like `{algorithm, digest, options}`, as opposed to a
+larger object with multiple of these.
+
+If `opts.strict` is truthy, the resulting object will be filtered such that
+it strictly follows the Subresource Integrity spec, throwing away any entries
+with any invalid components. This also means a restricted set of algorithms
+will be used -- the spec limits them to `sha256`, `sha384`, and `sha512`.
+
+Strict mode is recommended if the integrity strings are intended for use in
+browsers, or in other situations where strict adherence to the spec is needed.
+
+##### Example
+
+```javascript
+ssri.parse('sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo') // -> Integrity object
+```
+
+#### <a name="stringify"></a> `> ssri.stringify(sri, [opts]) -> String`
+
+This function is identical to [`Integrity#toString()`](#integrity-to-string),
+except it can be used on _any_ object that [`parse`](#parse) can handle -- that
+is, a string, an `Hash`-like, or an `Integrity`-like.
+
+The `opts.sep` option defines the string to use when joining multiple entries
+together. To be spec-compliant, this _must_ be whitespace. The default is a
+single space (`' '`).
+
+If `opts.strict` is true, the integrity string will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+// Useful for cleaning up input SRI strings:
+ssri.stringify('\n\rsha512-foo\n\t\tsha384-bar')
+// -> 'sha512-foo sha384-bar'
+
+// Hash-like: only a single entry.
+ssri.stringify({
+ algorithm: 'sha512',
+ digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
+ options: ['foo']
+})
+// ->
+// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+// Integrity-like: full multi-entry syntax. Similar to output of `ssri.parse`
+ssri.stringify({
+ 'sha512': [
+ {
+ algorithm: 'sha512',
+ digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
+ options: ['foo']
+ }
+ ]
+})
+// ->
+// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+```
+
+#### <a name="integrity-concat"></a> `> Integrity#concat(otherIntegrity, [opts]) -> Integrity`
+
+Concatenates an `Integrity` object with another IntegrityLike, or an integrity
+string.
+
+This is functionally equivalent to concatenating the string format of both
+integrity arguments, and calling [`ssri.parse`](#ssri-parse) on the new string.
+
+If `opts.strict` is true, the new `Integrity` will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+// This will combine the integrity checks for two different versions of
+// your index.js file so you can use a single integrity string and serve
+// either of these to clients, from a single `<script>` tag.
+const desktopIntegrity = ssri.fromData(fs.readFileSync('./index.desktop.js'))
+const mobileIntegrity = ssri.fromData(fs.readFileSync('./index.mobile.js'))
+
+// Note that browsers (and ssri) will succeed as long as ONE of the entries
+// for the *prioritized* algorithm succeeds. That is, in order for this fallback
+// to work, both desktop and mobile *must* use the same `algorithm` values.
+desktopIntegrity.concat(mobileIntegrity)
+```
+
+#### <a name="integrity-to-string"></a> `> Integrity#toString([opts]) -> String`
+
+Returns the string representation of an `Integrity` object. All hash entries
+will be concatenated in the string by `opts.sep`, which defaults to `' '`.
+
+If you want to serialize an object that didn't from from an `ssri` function,
+use [`ssri.stringify()`](#stringify).
+
+If `opts.strict` is true, the integrity string will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+ssri.parse(integrity).toString() === integrity
+```
+
+#### <a name="integrity-to-json"></a> `> Integrity#toJSON() -> String`
+
+Returns the string representation of an `Integrity` object. All hash entries
+will be concatenated in the string by `' '`.
+
+This is a convenience method so you can pass an `Integrity` object directly to `JSON.stringify`.
+For more info check out [toJSON() behavior on mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior).
+
+##### Example
+
+```javascript
+const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo"'
+
+JSON.stringify(ssri.parse(integrity)) === integrity
+```
+
+#### <a name="integrity-match"></a> `> Integrity#match(sri, [opts]) -> Hash | false`
+
+Returns the matching (truthy) hash if `Integrity` matches the argument passed as
+`sri`, which can be anything that [`parse`](#parse) will accept. `opts` will be
+passed through to `parse` and [`pickAlgorithm()`](#integrity-pick-algorithm).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+
+ssri.parse(integrity).match(integrity)
+// Hash {
+// digest: '9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+// algorithm: 'sha512'
+// }
+
+ssri.parse(integrity).match('sha1-deadbeef')
+// false
+```
+
+#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
+
+Returns the "best" algorithm from those available in the integrity object.
+
+If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
+arguments. ssri will prioritize whichever of the two algorithms is returned by
+this function. Note that the function may be called multiple times, and it
+**must** return one of the two algorithms provided. By default, ssri will make
+a best-effort to pick the strongest/most reliable of the given algorithms. It
+may intentionally deprioritize algorithms with known vulnerabilities.
+
+##### Example
+
+```javascript
+ssri.parse('sha1-WEakDigEST sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1').pickAlgorithm() // sha512
+```
+
+#### <a name="integrity-hex-digest"></a> `> Integrity#hexDigest() -> String`
+
+`Integrity` is assumed to be either a single-hash `Integrity` instance, or a
+`Hash` instance. Returns its `digest`, converted to a hex representation of the
+base64 data.
+
+##### Example
+
+```javascript
+ssri.parse('sha1-deadbeef').hexDigest() // '75e69d6de79f'
+```
+
+#### <a name="from-hex"></a> `> ssri.fromHex(hexDigest, algorithm, [opts]) -> Integrity`
+
+Creates an `Integrity` object with a single entry, based on a hex-formatted
+hash. This is a utility function to help convert existing shasums to the
+Integrity format, and is roughly equivalent to something like:
+
+```javascript
+algorithm + '-' + Buffer.from(hexDigest, 'hex').toString('base64')
+```
+
+`opts.options` may optionally be passed in: it must be an array of option
+strings that will be added to all generated integrity hashes generated by
+`fromData`. This is a loosely-specified feature of SRIs, and currently has no
+specified semantics besides being `?`-separated. Use at your own risk, and
+probably avoid if your integrity strings are meant to be used with browsers.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+If `opts.single` is true, a single `Hash` object will be returned.
+
+##### Example
+
+```javascript
+ssri.fromHex('75e69d6de79f', 'sha1').toString() // 'sha1-deadbeef'
+```
+
+#### <a name="from-data"></a> `> ssri.fromData(data, [opts]) -> Integrity`
+
+Creates an `Integrity` object from either string or `Buffer` data, calculating
+all the requested hashes and adding any specified options to the object.
+
+`opts.algorithms` determines which algorithms to generate hashes for. All
+results will be included in a single `Integrity` object. The default value for
+`opts.algorithms` is `['sha512']`. All algorithm strings must be hashes listed
+in `crypto.getHashes()` for the host Node.js platform.
+
+`opts.options` may optionally be passed in: it must be an array of option
+strings that will be added to all generated integrity hashes generated by
+`fromData`. This is a loosely-specified feature of SRIs, and currently has no
+specified semantics besides being `?`-separated. Use at your own risk, and
+probably avoid if your integrity strings are meant to be used with browsers.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrityObj = ssri.fromData('foobarbaz', {
+ algorithms: ['sha256', 'sha384', 'sha512']
+})
+integrity.toString('\n')
+// ->
+// sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0=
+// sha384-irnCxQ0CfQhYGlVAUdwTPC9bF3+YWLxlaDGM4xbYminxpbXEq+D+2GCEBTxcjES9
+// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
+```
+
+#### <a name="from-stream"></a> `> ssri.fromStream(stream, [opts]) -> Promise<Integrity>`
+
+Returns a Promise of an Integrity object calculated by reading data from
+a given `stream`.
+
+It accepts both `opts.algorithms` and `opts.options`, which are documented as
+part of [`ssri.fromData`](#from-data).
+
+Additionally, `opts.Promise` may be passed in to inject a Promise library of
+choice. By default, ssri will use Node's built-in Promises.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+ssri.fromStream(fs.createReadStream('index.js'), {
+ algorithms: ['sha1', 'sha512']
+}).then(integrity => {
+ return ssri.checkStream(fs.createReadStream('index.js'), integrity)
+}) // succeeds
+```
+
+#### <a name="create"></a> `> ssri.create([opts]) -> <Hash>`
+
+Returns a Hash object with `update(<Buffer or string>[,enc])` and `digest()` methods.
+
+
+The Hash object provides the same methods as [crypto class Hash](https://nodejs.org/dist/latest-v6.x/docs/api/crypto.html#crypto_class_hash).
+`digest()` accepts no arguments and returns an Integrity object calculated by reading data from
+calls to update.
+
+It accepts both `opts.algorithms` and `opts.options`, which are documented as
+part of [`ssri.fromData`](#from-data).
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrity = ssri.create().update('foobarbaz').digest()
+integrity.toString()
+// ->
+// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
+```
+
+#### <a name="check-data"></a> `> ssri.checkData(data, sri, [opts]) -> Hash|false`
+
+Verifies `data` integrity against an `sri` argument. `data` may be either a
+`String` or a `Buffer`, and `sri` can be any subresource integrity
+representation that [`ssri.parse`](#parse) can handle.
+
+If verification succeeds, `checkData` will return the name of the algorithm that
+was used for verification (a truthy value). Otherwise, it will return `false`.
+
+If `opts.pickAlgorithm` is provided, it will be used by
+[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
+the available digests to match against.
+
+If `opts.error` is true, and verification fails, `checkData` will throw either
+an `EBADSIZE` or an `EINTEGRITY` error, instead of just returning false.
+
+##### Example
+
+```javascript
+const data = fs.readFileSync('index.js')
+ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
+ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
+ssri.checkData(data, 'sha1-BaDDigEST') // -> false
+ssri.checkData(data, 'sha1-BaDDigEST', {error: true}) // -> Error! EINTEGRITY
+```
+
+#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
+
+Verifies the contents of `stream` against an `sri` argument. `stream` will be
+consumed in its entirety by this process. `sri` can be any subresource integrity
+representation that [`ssri.parse`](#parse) can handle.
+
+`checkStream` will return a Promise that either resolves to the
+`Hash` that succeeded verification, or, if the verification fails
+or an error happens with `stream`, the Promise will be rejected.
+
+If the Promise is rejected because verification failed, the returned error will
+have `err.code` as `EINTEGRITY`.
+
+If `opts.size` is given, it will be matched against the stream size. An error
+with `err.code` `EBADSIZE` will be returned by a rejection if the expected size
+and actual size fail to match.
+
+If `opts.pickAlgorithm` is provided, it will be used by
+[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
+the available digests to match against.
+
+##### Example
+
+```javascript
+const integrity = ssri.fromData(fs.readFileSync('index.js'))
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ integrity
+)
+// ->
+// Promise<{
+// algorithm: 'sha512',
+// digest: 'sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1'
+// }>
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0'
+) // -> Promise<Hash>
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ 'sha1-BaDDigEST'
+) // -> Promise<Error<{code: 'EINTEGRITY'}>>
+```
+
+#### <a name="integrity-stream"></a> `> integrityStream([opts]) -> IntegrityStream`
+
+Returns a `Transform` stream that data can be piped through in order to generate
+and optionally check data integrity for piped data. When the stream completes
+successfully, it emits `size` and `integrity` events, containing the total
+number of bytes processed and a calculated `Integrity` instance based on stream
+data, respectively.
+
+If `opts.algorithms` is passed in, the listed algorithms will be calculated when
+generating the final `Integrity` instance. The default is `['sha512']`.
+
+If `opts.single` is passed in, a single `Hash` instance will be returned.
+
+If `opts.integrity` is passed in, it should be an `integrity` value understood
+by [`parse`](#parse) that the stream will check the data against. If
+verification succeeds, the integrity stream will emit a `verified` event whose
+value is a single `Hash` object that is the one that succeeded verification. If
+verification fails, the stream will error with an `EINTEGRITY` error code.
+
+If `opts.size` is given, it will be matched against the stream size. An error
+with `err.code` `EBADSIZE` will be emitted by the stream if the expected size
+and actual size fail to match.
+
+If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
+arguments. ssri will prioritize whichever of the two algorithms is returned by
+this function. Note that the function may be called multiple times, and it
+**must** return one of the two algorithms provided. By default, ssri will make
+a best-effort to pick the strongest/most reliable of the given algorithms. It
+may intentionally deprioritize algorithms with known vulnerabilities.
+
+##### Example
+
+```javascript
+const integrity = ssri.fromData(fs.readFileSync('index.js'))
+fs.createReadStream('index.js')
+.pipe(ssri.integrityStream({integrity}))
+```
diff --git a/deps/npm/node_modules/npm-profile/node_modules/ssri/index.js b/deps/npm/node_modules/npm-profile/node_modules/ssri/index.js
new file mode 100644
index 0000000000..ff7881f7cb
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/ssri/index.js
@@ -0,0 +1,379 @@
+'use strict'
+
+const Buffer = require('safe-buffer').Buffer
+
+const crypto = require('crypto')
+const Transform = require('stream').Transform
+
+const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
+
+const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
+const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
+const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/
+const VCHAR_REGEX = /^[\x21-\x7E]+$/
+
+class Hash {
+ get isHash () { return true }
+ constructor (hash, opts) {
+ const strict = !!(opts && opts.strict)
+ this.source = hash.trim()
+ // 3.1. Integrity metadata (called "Hash" by ssri)
+ // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description
+ const match = this.source.match(
+ strict
+ ? STRICT_SRI_REGEX
+ : SRI_REGEX
+ )
+ if (!match) { return }
+ if (strict && !SPEC_ALGORITHMS.some(a => a === match[1])) { return }
+ this.algorithm = match[1]
+ this.digest = match[2]
+
+ const rawOpts = match[3]
+ this.options = rawOpts ? rawOpts.slice(1).split('?') : []
+ }
+ hexDigest () {
+ return this.digest && Buffer.from(this.digest, 'base64').toString('hex')
+ }
+ toJSON () {
+ return this.toString()
+ }
+ toString (opts) {
+ if (opts && opts.strict) {
+ // Strict mode enforces the standard as close to the foot of the
+ // letter as it can.
+ if (!(
+ // The spec has very restricted productions for algorithms.
+ // https://www.w3.org/TR/CSP2/#source-list-syntax
+ SPEC_ALGORITHMS.some(x => x === this.algorithm) &&
+ // Usually, if someone insists on using a "different" base64, we
+ // leave it as-is, since there's multiple standards, and the
+ // specified is not a URL-safe variant.
+ // https://www.w3.org/TR/CSP2/#base64_value
+ this.digest.match(BASE64_REGEX) &&
+ // Option syntax is strictly visual chars.
+ // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression
+ // https://tools.ietf.org/html/rfc5234#appendix-B.1
+ (this.options || []).every(opt => opt.match(VCHAR_REGEX))
+ )) {
+ return ''
+ }
+ }
+ const options = this.options && this.options.length
+ ? `?${this.options.join('?')}`
+ : ''
+ return `${this.algorithm}-${this.digest}${options}`
+ }
+}
+
+class Integrity {
+ get isIntegrity () { return true }
+ toJSON () {
+ return this.toString()
+ }
+ toString (opts) {
+ opts = opts || {}
+ let sep = opts.sep || ' '
+ if (opts.strict) {
+ // Entries must be separated by whitespace, according to spec.
+ sep = sep.replace(/\S+/g, ' ')
+ }
+ return Object.keys(this).map(k => {
+ return this[k].map(hash => {
+ return Hash.prototype.toString.call(hash, opts)
+ }).filter(x => x.length).join(sep)
+ }).filter(x => x.length).join(sep)
+ }
+ concat (integrity, opts) {
+ const other = typeof integrity === 'string'
+ ? integrity
+ : stringify(integrity, opts)
+ return parse(`${this.toString(opts)} ${other}`, opts)
+ }
+ hexDigest () {
+ return parse(this, {single: true}).hexDigest()
+ }
+ match (integrity, opts) {
+ const other = parse(integrity, opts)
+ const algo = other.pickAlgorithm(opts)
+ return (
+ this[algo] &&
+ other[algo] &&
+ this[algo].find(hash =>
+ other[algo].find(otherhash =>
+ hash.digest === otherhash.digest
+ )
+ )
+ ) || false
+ }
+ pickAlgorithm (opts) {
+ const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
+ const keys = Object.keys(this)
+ if (!keys.length) {
+ throw new Error(`No algorithms available for ${
+ JSON.stringify(this.toString())
+ }`)
+ }
+ return keys.reduce((acc, algo) => {
+ return pickAlgorithm(acc, algo) || acc
+ })
+ }
+}
+
+module.exports.parse = parse
+function parse (sri, opts) {
+ opts = opts || {}
+ if (typeof sri === 'string') {
+ return _parse(sri, opts)
+ } else if (sri.algorithm && sri.digest) {
+ const fullSri = new Integrity()
+ fullSri[sri.algorithm] = [sri]
+ return _parse(stringify(fullSri, opts), opts)
+ } else {
+ return _parse(stringify(sri, opts), opts)
+ }
+}
+
+function _parse (integrity, opts) {
+ // 3.4.3. Parse metadata
+ // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
+ if (opts.single) {
+ return new Hash(integrity, opts)
+ }
+ return integrity.trim().split(/\s+/).reduce((acc, string) => {
+ const hash = new Hash(string, opts)
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+}
+
+module.exports.stringify = stringify
+function stringify (obj, opts) {
+ if (obj.algorithm && obj.digest) {
+ return Hash.prototype.toString.call(obj, opts)
+ } else if (typeof obj === 'string') {
+ return stringify(parse(obj, opts), opts)
+ } else {
+ return Integrity.prototype.toString.call(obj, opts)
+ }
+}
+
+module.exports.fromHex = fromHex
+function fromHex (hexDigest, algorithm, opts) {
+ const optString = (opts && opts.options && opts.options.length)
+ ? `?${opts.options.join('?')}`
+ : ''
+ return parse(
+ `${algorithm}-${
+ Buffer.from(hexDigest, 'hex').toString('base64')
+ }${optString}`, opts
+ )
+}
+
+module.exports.fromData = fromData
+function fromData (data, opts) {
+ opts = opts || {}
+ const algorithms = opts.algorithms || ['sha512']
+ const optString = opts.options && opts.options.length
+ ? `?${opts.options.join('?')}`
+ : ''
+ return algorithms.reduce((acc, algo) => {
+ const digest = crypto.createHash(algo).update(data).digest('base64')
+ const hash = new Hash(
+ `${algo}-${digest}${optString}`,
+ opts
+ )
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+}
+
+module.exports.fromStream = fromStream
+function fromStream (stream, opts) {
+ opts = opts || {}
+ const P = opts.Promise || Promise
+ const istream = integrityStream(opts)
+ return new P((resolve, reject) => {
+ stream.pipe(istream)
+ stream.on('error', reject)
+ istream.on('error', reject)
+ let sri
+ istream.on('integrity', s => { sri = s })
+ istream.on('end', () => resolve(sri))
+ istream.on('data', () => {})
+ })
+}
+
+module.exports.checkData = checkData
+function checkData (data, sri, opts) {
+ opts = opts || {}
+ sri = parse(sri, opts)
+ if (!Object.keys(sri).length) {
+ if (opts.error) {
+ throw Object.assign(
+ new Error('No valid integrity hashes to check against'), {
+ code: 'EINTEGRITY'
+ }
+ )
+ } else {
+ return false
+ }
+ }
+ const algorithm = sri.pickAlgorithm(opts)
+ const digest = crypto.createHash(algorithm).update(data).digest('base64')
+ const newSri = parse({algorithm, digest})
+ const match = newSri.match(sri, opts)
+ if (match || !opts.error) {
+ return match
+ } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {
+ const err = new Error(`data size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${data.length}`)
+ err.code = 'EBADSIZE'
+ err.found = data.length
+ err.expected = opts.size
+ err.sri = sri
+ throw err
+ } else {
+ const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = sri
+ err.algorithm = algorithm
+ err.sri = sri
+ throw err
+ }
+}
+
+module.exports.checkStream = checkStream
+function checkStream (stream, sri, opts) {
+ opts = opts || {}
+ const P = opts.Promise || Promise
+ const checker = integrityStream(Object.assign({}, opts, {
+ integrity: sri
+ }))
+ return new P((resolve, reject) => {
+ stream.pipe(checker)
+ stream.on('error', reject)
+ checker.on('error', reject)
+ let sri
+ checker.on('verified', s => { sri = s })
+ checker.on('end', () => resolve(sri))
+ checker.on('data', () => {})
+ })
+}
+
+module.exports.integrityStream = integrityStream
+function integrityStream (opts) {
+ opts = opts || {}
+ // For verification
+ const sri = opts.integrity && parse(opts.integrity, opts)
+ const goodSri = sri && Object.keys(sri).length
+ const algorithm = goodSri && sri.pickAlgorithm(opts)
+ const digests = goodSri && sri[algorithm]
+ // Calculating stream
+ const algorithms = Array.from(
+ new Set(
+ (opts.algorithms || ['sha512'])
+ .concat(algorithm ? [algorithm] : [])
+ )
+ )
+ const hashes = algorithms.map(crypto.createHash)
+ let streamSize = 0
+ const stream = new Transform({
+ transform (chunk, enc, cb) {
+ streamSize += chunk.length
+ hashes.forEach(h => h.update(chunk, enc))
+ cb(null, chunk, enc)
+ }
+ }).on('end', () => {
+ const optString = (opts.options && opts.options.length)
+ ? `?${opts.options.join('?')}`
+ : ''
+ const newSri = parse(hashes.map((h, i) => {
+ return `${algorithms[i]}-${h.digest('base64')}${optString}`
+ }).join(' '), opts)
+ // Integrity verification mode
+ const match = goodSri && newSri.match(sri, opts)
+ if (typeof opts.size === 'number' && streamSize !== opts.size) {
+ const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
+ err.code = 'EBADSIZE'
+ err.found = streamSize
+ err.expected = opts.size
+ err.sri = sri
+ stream.emit('error', err)
+ } else if (opts.integrity && !match) {
+ const err = new Error(`${sri} integrity checksum failed when using ${algorithm}: wanted ${digests} but got ${newSri}. (${streamSize} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = digests
+ err.algorithm = algorithm
+ err.sri = sri
+ stream.emit('error', err)
+ } else {
+ stream.emit('size', streamSize)
+ stream.emit('integrity', newSri)
+ match && stream.emit('verified', match)
+ }
+ })
+ return stream
+}
+
+module.exports.create = createIntegrity
+function createIntegrity (opts) {
+ opts = opts || {}
+ const algorithms = opts.algorithms || ['sha512']
+ const optString = opts.options && opts.options.length
+ ? `?${opts.options.join('?')}`
+ : ''
+
+ const hashes = algorithms.map(crypto.createHash)
+
+ return {
+ update: function (chunk, enc) {
+ hashes.forEach(h => h.update(chunk, enc))
+ return this
+ },
+ digest: function (enc) {
+ const integrity = algorithms.reduce((acc, algo) => {
+ const digest = hashes.shift().digest('base64')
+ const hash = new Hash(
+ `${algo}-${digest}${optString}`,
+ opts
+ )
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+
+ return integrity
+ }
+ }
+}
+
+const NODE_HASHES = new Set(crypto.getHashes())
+
+// This is a Best Effortā„¢ at a reasonable priority for hash algos
+const DEFAULT_PRIORITY = [
+ 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
+ // TODO - it's unclear _which_ of these Node will actually use as its name
+ // for the algorithm, so we guesswork it based on the OpenSSL names.
+ 'sha3',
+ 'sha3-256', 'sha3-384', 'sha3-512',
+ 'sha3_256', 'sha3_384', 'sha3_512'
+].filter(algo => NODE_HASHES.has(algo))
+
+function getPrioritizedHash (algo1, algo2) {
+ return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
+ ? algo1
+ : algo2
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/ssri/package.json b/deps/npm/node_modules/npm-profile/node_modules/ssri/package.json
new file mode 100644
index 0000000000..2de76dcbeb
--- /dev/null
+++ b/deps/npm/node_modules/npm-profile/node_modules/ssri/package.json
@@ -0,0 +1,90 @@
+{
+ "_from": "ssri@^5.0.0",
+ "_id": "ssri@5.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "_location": "/npm-profile/ssri",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ssri@^5.0.0",
+ "name": "ssri",
+ "escapedName": "ssri",
+ "rawSpec": "^5.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.0.0"
+ },
+ "_requiredBy": [
+ "/npm-profile/cacache",
+ "/npm-profile/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "_shasum": "ba3872c9c6d33a0704a7d71ff045e5ec48999d06",
+ "_spec": "ssri@^5.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-profile/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/ssri/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "safe-buffer": "^5.1.1"
+ },
+ "deprecated": false,
+ "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
+ "devDependencies": {
+ "nyc": "^11.4.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/zkat/ssri#readme",
+ "keywords": [
+ "w3c",
+ "web",
+ "security",
+ "integrity",
+ "checksum",
+ "hashing",
+ "subresource integrity",
+ "sri",
+ "sri hash",
+ "sri string",
+ "sri generator",
+ "html"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "ssri",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/ssri.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "5.3.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/package.json b/deps/npm/node_modules/npm-profile/package.json
index e698111270..d3ed888138 100644
--- a/deps/npm/node_modules/npm-profile/package.json
+++ b/deps/npm/node_modules/npm-profile/package.json
@@ -1,35 +1,63 @@
{
- "_from": "npm-profile@2.0.5",
- "_id": "npm-profile@2.0.5",
+ "_args": [
+ [
+ "npm-profile@3.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-profile@3.0.1",
+ "_id": "npm-profile@3.0.1",
"_inBundle": false,
- "_integrity": "sha512-tLmpDUCV72f/1/oXoyb+VwsZjOlsanp34pZeIZS0mxDoQUOX4Ld1hgPeOqoX4XggE88m7W47DHET2v+qd6sihg==",
+ "_integrity": "sha512-U/jvnERvBRYgIdHkPURsa8mjLCOiImdA8fw1FzzCF//PKro4w1QANCmXiQex8f/Id1h939lqOiUT+ywKL0AG4Q==",
"_location": "/npm-profile",
"_phantomChildren": {
- "cacache": "9.2.9",
- "lru-cache": "4.1.1",
- "mississippi": "1.3.0",
- "retry": "0.10.1",
- "safe-buffer": "5.1.1",
- "ssri": "4.1.6"
+ "agent-base": "4.2.0",
+ "agentkeepalive": "3.4.1",
+ "bluebird": "3.5.1",
+ "chownr": "1.0.1",
+ "concat-stream": "1.6.2",
+ "duplexify": "3.6.0",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
+ "from2": "2.3.0",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "http-cache-semantics": "3.8.1",
+ "http-proxy-agent": "2.1.0",
+ "https-proxy-agent": "2.2.1",
+ "ip": "1.1.5",
+ "lru-cache": "4.1.3",
+ "mkdirp": "0.5.1",
+ "move-concurrently": "1.0.1",
+ "node-fetch-npm": "2.0.2",
+ "once": "1.4.0",
+ "parallel-transform": "1.1.0",
+ "promise-inflight": "1.0.1",
+ "promise-retry": "1.1.1",
+ "pumpify": "1.5.1",
+ "rimraf": "2.6.2",
+ "safe-buffer": "5.1.2",
+ "stream-each": "1.2.2",
+ "through2": "2.0.3",
+ "unique-filename": "1.1.0",
+ "y18n": "4.0.0"
},
"_requested": {
"type": "version",
"registry": true,
- "raw": "npm-profile@2.0.5",
+ "raw": "npm-profile@3.0.1",
"name": "npm-profile",
"escapedName": "npm-profile",
- "rawSpec": "2.0.5",
+ "rawSpec": "3.0.1",
"saveSpec": null,
- "fetchSpec": "2.0.5"
+ "fetchSpec": "3.0.1"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-2.0.5.tgz",
- "_shasum": "0e61b8f1611bd19d1eeff5e3d5c82e557da3b9d7",
- "_spec": "npm-profile@2.0.5",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/npm-profile/-/npm-profile-3.0.1.tgz",
+ "_spec": "3.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
@@ -38,14 +66,13 @@
"bugs": {
"url": "https://github.com/npm/npm-profile/issues"
},
- "bundleDependencies": false,
"dependencies": {
"aproba": "^1.1.2",
"make-fetch-happen": "^2.5.0"
},
- "deprecated": false,
"description": "Library for updating an npmjs.com profile",
"files": [
+ "CHANGELOG.md",
"index.js"
],
"homepage": "https://github.com/npm/npm-profile/tree/latest/lib#readme",
@@ -57,5 +84,5 @@
"type": "git",
"url": "git+https://github.com/npm/npm-profile.git"
},
- "version": "2.0.5"
+ "version": "3.0.1"
}
diff --git a/deps/npm/node_modules/npm-registry-client/CHANGELOG.md b/deps/npm/node_modules/npm-registry-client/CHANGELOG.md
new file mode 100644
index 0000000000..bc74d3f0e8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="8.5.1"></a>
+## [8.5.1](https://github.com/npm/npm-registry-client/compare/v8.5.0...v8.5.1) (2018-03-08)
+
+
+### Bug Fixes
+
+* **error:** improve `User not found` publish message ([#167](https://github.com/npm/npm-registry-client/issues/167)) ([5ebcffc](https://github.com/npm/npm-registry-client/commit/5ebcffc))
diff --git a/deps/npm/node_modules/npm-registry-client/lib/access.js b/deps/npm/node_modules/npm-registry-client/lib/access.js
index b33d8973f3..d8d65a9442 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/access.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/access.js
@@ -93,7 +93,7 @@ function apiUri (registryUri) {
function accessAssertions (subcommand, uri, params, cb) {
assert(subcommands.hasOwnProperty(subcommand),
- 'access subcommand must be one of ' +
+ 'access subcommand must be one of ' +
Object.keys(subcommands).join(', '))
typeChecks({
'uri': [uri, 'string'],
@@ -106,7 +106,7 @@ function accessAssertions (subcommand, uri, params, cb) {
], subcommand)) {
typeChecks({ 'package': [params.package, 'string'] })
assert(!!npa(params.package).scope,
- 'access commands are only accessible for scoped packages')
+ 'access commands are only accessible for scoped packages')
}
if (contains(['grant', 'revoke', 'ls-packages'], subcommand)) {
typeChecks({ 'scope': [params.scope, 'string'] })
@@ -118,7 +118,7 @@ function accessAssertions (subcommand, uri, params, cb) {
typeChecks({ 'permissions': [params.permissions, 'string'] })
assert(params.permissions === 'read-only' ||
params.permissions === 'read-write',
- 'permissions must be either read-only or read-write')
+ 'permissions must be either read-only or read-write')
}
}
@@ -127,7 +127,7 @@ function typeChecks (specs) {
var checks = specs[key]
/* eslint valid-typeof:0 */
assert(typeof checks[0] === checks[1],
- key + ' is required and must be of type ' + checks[1])
+ key + ' is required and must be of type ' + checks[1])
})
}
diff --git a/deps/npm/node_modules/npm-registry-client/lib/adduser.js b/deps/npm/node_modules/npm-registry-client/lib/adduser.js
index 0dd517d946..a31d5b0333 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/adduser.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/adduser.js
@@ -2,7 +2,6 @@ module.exports = adduser
var url = require('url')
var assert = require('assert')
-var extend = Object.assign || require('util')._extend
function adduser (uri, params, cb) {
assert(typeof uri === 'string', 'must pass registry URI to adduser')
@@ -68,7 +67,7 @@ function adduser (uri, params, cb) {
}
this.request(
uri,
- extend({}, options),
+ Object.assign({}, options),
function (error, data, json, response) {
if (!error || !response || response.statusCode !== 409) {
return cb(error, data, json, response)
diff --git a/deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js b/deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js
index 558e2cf829..69a126d1f4 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/dist-tags/fetch.js
@@ -11,7 +11,7 @@ function fetch (uri, params, cb) {
params && typeof params === 'object',
'must pass params to distTags.fetch'
)
- assert(typeof cb === 'function', 'muss pass callback to distTags.fetch')
+ assert(typeof cb === 'function', 'must pass callback to distTags.fetch')
assert(
typeof params.package === 'string',
diff --git a/deps/npm/node_modules/npm-registry-client/lib/org.js b/deps/npm/node_modules/npm-registry-client/lib/org.js
index 7c73caf7da..3072b3817a 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/org.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/org.js
@@ -50,7 +50,7 @@ function apiUri (registryUri) {
function orgAssertions (subcommand, uri, params, cb) {
assert(subcommand, 'subcommand is required')
assert(subcommands.hasOwnProperty(subcommand),
- 'org subcommand must be one of ' + Object.keys(subcommands))
+ 'org subcommand must be one of ' + Object.keys(subcommands))
assert(typeof uri === 'string', 'registry URI is required')
assert(typeof params === 'object', 'params are required')
assert(typeof params.auth === 'object', 'auth is required')
diff --git a/deps/npm/node_modules/npm-registry-client/lib/publish.js b/deps/npm/node_modules/npm-registry-client/lib/publish.js
index ecf593a4ac..fd3adce126 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/publish.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/publish.js
@@ -95,7 +95,7 @@ function putFirst (registry, data, tarbuffer, access, auth, cb) {
// Legacy shasum support
data.dist.shasum = integrity['sha1'][0].hexDigest()
data.dist.tarball = url.resolve(registry, tbURI)
- .replace(/^https:\/\//, 'http://')
+ .replace(/^https:\/\//, 'http://')
root._attachments = {}
root._attachments[ tbName ] = {
diff --git a/deps/npm/node_modules/npm-registry-client/lib/request.js b/deps/npm/node_modules/npm-registry-client/lib/request.js
index 1b769c3e4f..471546c1d2 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/request.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/request.js
@@ -298,6 +298,8 @@ function requestDone (method, where, cb) {
)
} else if (name && parsed.error === 'not_found') {
er = makeError('404 Not Found: ' + name, name, response.statusCode)
+ } else if (name && parsed.error === 'User not found') {
+ er = makeError('User not found. Check `npm whoami` and make sure you have a NPM account.', name, response.statusCode)
} else {
er = makeError(
parsed.error + ' ' + (parsed.reason || '') + ': ' + (name || w),
diff --git a/deps/npm/node_modules/npm-registry-client/lib/team.js b/deps/npm/node_modules/npm-registry-client/lib/team.js
index 3e3794e047..327fa9cd5a 100644
--- a/deps/npm/node_modules/npm-registry-client/lib/team.js
+++ b/deps/npm/node_modules/npm-registry-client/lib/team.js
@@ -85,7 +85,7 @@ function apiUri (registryUri) {
function teamAssertions (subcommand, uri, params, cb) {
assert(subcommand, 'subcommand is required')
assert(subcommands.hasOwnProperty(subcommand),
- 'team subcommand must be one of ' + Object.keys(subcommands))
+ 'team subcommand must be one of ' + Object.keys(subcommands))
assert(typeof uri === 'string', 'registry URI is required')
assert(typeof params === 'object', 'params are required')
assert(typeof params.auth === 'object', 'auth is required')
@@ -100,6 +100,6 @@ function teamAssertions (subcommand, uri, params, cb) {
if (subcommand === 'edit') {
assert(typeof params.users === 'object' &&
params.users.length != null,
- 'users is required')
+ 'users is required')
}
}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE
deleted file mode 100644
index 99c130e1de..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-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/npm-registry-client/node_modules/concat-stream/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js
deleted file mode 100644
index b16ad1343f..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/index.js
+++ /dev/null
@@ -1,143 +0,0 @@
-var Writable = require('readable-stream').Writable
-var inherits = require('inherits')
-
-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(new Buffer(p))
- } else {
- strings.push(new Buffer(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(new Buffer(p))
- } else {
- bufs.push(new Buffer(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] = new Buffer(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/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE
deleted file mode 100644
index 11adfaec9e..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/LICENSE
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Copyright (c) 2010, Linden Research, Inc.
- Copyright (c) 2012, Joshua Bell
-
- 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.
- $/LicenseInfo$
- */
-
-// Original can be found at:
-// https://bitbucket.org/lindenlab/llsd
-// Modifications by Joshua Bell inexorabletash@gmail.com
-// https://github.com/inexorabletash/polyfill
-
-// ES3/ES5 implementation of the Krhonos Typed Array Specification
-// Ref: http://www.khronos.org/registry/typedarray/specs/latest/
-// Date: 2011-02-01
-//
-// Variations:
-// * Allows typed_array.get/set() as alias for subscripts (typed_array[])
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js
deleted file mode 100644
index 8423d7c9b1..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/example/tarray.js
+++ /dev/null
@@ -1,4 +0,0 @@
-var Uint8Array = require('../').Uint8Array;
-var ua = new Uint8Array(5);
-ua[1] = 256 + 55;
-console.log(ua[1]);
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js
deleted file mode 100644
index 5e540841f4..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/index.js
+++ /dev/null
@@ -1,630 +0,0 @@
-var undefined = (void 0); // Paranoia
-
-// Beyond this value, index getters/setters (i.e. array[0], array[1]) are so slow to
-// create, and consume so much memory, that the browser appears frozen.
-var MAX_ARRAY_LENGTH = 1e5;
-
-// Approximations of internal ECMAScript conversion functions
-var ECMAScript = (function() {
- // Stash a copy in case other scripts modify these
- var opts = Object.prototype.toString,
- ophop = Object.prototype.hasOwnProperty;
-
- return {
- // Class returns internal [[Class]] property, used to avoid cross-frame instanceof issues:
- Class: function(v) { return opts.call(v).replace(/^\[object *|\]$/g, ''); },
- HasProperty: function(o, p) { return p in o; },
- HasOwnProperty: function(o, p) { return ophop.call(o, p); },
- IsCallable: function(o) { return typeof o === 'function'; },
- ToInt32: function(v) { return v >> 0; },
- ToUint32: function(v) { return v >>> 0; }
- };
-}());
-
-// Snapshot intrinsics
-var LN2 = Math.LN2,
- abs = Math.abs,
- floor = Math.floor,
- log = Math.log,
- min = Math.min,
- pow = Math.pow,
- round = Math.round;
-
-// ES5: lock down object properties
-function configureProperties(obj) {
- if (getOwnPropNames && defineProp) {
- var props = getOwnPropNames(obj), i;
- for (i = 0; i < props.length; i += 1) {
- defineProp(obj, props[i], {
- value: obj[props[i]],
- writable: false,
- enumerable: false,
- configurable: false
- });
- }
- }
-}
-
-// emulate ES5 getter/setter API using legacy APIs
-// http://blogs.msdn.com/b/ie/archive/2010/09/07/transitioning-existing-code-to-the-es5-getter-setter-apis.aspx
-// (second clause tests for Object.defineProperty() in IE<9 that only supports extending DOM prototypes, but
-// note that IE<9 does not support __defineGetter__ or __defineSetter__ so it just renders the method harmless)
-var defineProp
-if (Object.defineProperty && (function() {
- try {
- Object.defineProperty({}, 'x', {});
- return true;
- } catch (e) {
- return false;
- }
- })()) {
- defineProp = Object.defineProperty;
-} else {
- defineProp = function(o, p, desc) {
- if (!o === Object(o)) throw new TypeError("Object.defineProperty called on non-object");
- if (ECMAScript.HasProperty(desc, 'get') && Object.prototype.__defineGetter__) { Object.prototype.__defineGetter__.call(o, p, desc.get); }
- if (ECMAScript.HasProperty(desc, 'set') && Object.prototype.__defineSetter__) { Object.prototype.__defineSetter__.call(o, p, desc.set); }
- if (ECMAScript.HasProperty(desc, 'value')) { o[p] = desc.value; }
- return o;
- };
-}
-
-var getOwnPropNames = Object.getOwnPropertyNames || function (o) {
- if (o !== Object(o)) throw new TypeError("Object.getOwnPropertyNames called on non-object");
- var props = [], p;
- for (p in o) {
- if (ECMAScript.HasOwnProperty(o, p)) {
- props.push(p);
- }
- }
- return props;
-};
-
-// ES5: Make obj[index] an alias for obj._getter(index)/obj._setter(index, value)
-// for index in 0 ... obj.length
-function makeArrayAccessors(obj) {
- if (!defineProp) { return; }
-
- if (obj.length > MAX_ARRAY_LENGTH) throw new RangeError("Array too large for polyfill");
-
- function makeArrayAccessor(index) {
- defineProp(obj, index, {
- 'get': function() { return obj._getter(index); },
- 'set': function(v) { obj._setter(index, v); },
- enumerable: true,
- configurable: false
- });
- }
-
- var i;
- for (i = 0; i < obj.length; i += 1) {
- makeArrayAccessor(i);
- }
-}
-
-// Internal conversion functions:
-// pack<Type>() - take a number (interpreted as Type), output a byte array
-// unpack<Type>() - take a byte array, output a Type-like number
-
-function as_signed(value, bits) { var s = 32 - bits; return (value << s) >> s; }
-function as_unsigned(value, bits) { var s = 32 - bits; return (value << s) >>> s; }
-
-function packI8(n) { return [n & 0xff]; }
-function unpackI8(bytes) { return as_signed(bytes[0], 8); }
-
-function packU8(n) { return [n & 0xff]; }
-function unpackU8(bytes) { return as_unsigned(bytes[0], 8); }
-
-function packU8Clamped(n) { n = round(Number(n)); return [n < 0 ? 0 : n > 0xff ? 0xff : n & 0xff]; }
-
-function packI16(n) { return [(n >> 8) & 0xff, n & 0xff]; }
-function unpackI16(bytes) { return as_signed(bytes[0] << 8 | bytes[1], 16); }
-
-function packU16(n) { return [(n >> 8) & 0xff, n & 0xff]; }
-function unpackU16(bytes) { return as_unsigned(bytes[0] << 8 | bytes[1], 16); }
-
-function packI32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; }
-function unpackI32(bytes) { return as_signed(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); }
-
-function packU32(n) { return [(n >> 24) & 0xff, (n >> 16) & 0xff, (n >> 8) & 0xff, n & 0xff]; }
-function unpackU32(bytes) { return as_unsigned(bytes[0] << 24 | bytes[1] << 16 | bytes[2] << 8 | bytes[3], 32); }
-
-function packIEEE754(v, ebits, fbits) {
-
- var bias = (1 << (ebits - 1)) - 1,
- s, e, f, ln,
- i, bits, str, bytes;
-
- function roundToEven(n) {
- var w = floor(n), f = n - w;
- if (f < 0.5)
- return w;
- if (f > 0.5)
- return w + 1;
- return w % 2 ? w + 1 : w;
- }
-
- // Compute sign, exponent, fraction
- if (v !== v) {
- // NaN
- // http://dev.w3.org/2006/webapi/WebIDL/#es-type-mapping
- e = (1 << ebits) - 1; f = pow(2, fbits - 1); s = 0;
- } else if (v === Infinity || v === -Infinity) {
- e = (1 << ebits) - 1; f = 0; s = (v < 0) ? 1 : 0;
- } else if (v === 0) {
- e = 0; f = 0; s = (1 / v === -Infinity) ? 1 : 0;
- } else {
- s = v < 0;
- v = abs(v);
-
- if (v >= pow(2, 1 - bias)) {
- e = min(floor(log(v) / LN2), 1023);
- f = roundToEven(v / pow(2, e) * pow(2, fbits));
- if (f / pow(2, fbits) >= 2) {
- e = e + 1;
- f = 1;
- }
- if (e > bias) {
- // Overflow
- e = (1 << ebits) - 1;
- f = 0;
- } else {
- // Normalized
- e = e + bias;
- f = f - pow(2, fbits);
- }
- } else {
- // Denormalized
- e = 0;
- f = roundToEven(v / pow(2, 1 - bias - fbits));
- }
- }
-
- // Pack sign, exponent, fraction
- bits = [];
- for (i = fbits; i; i -= 1) { bits.push(f % 2 ? 1 : 0); f = floor(f / 2); }
- for (i = ebits; i; i -= 1) { bits.push(e % 2 ? 1 : 0); e = floor(e / 2); }
- bits.push(s ? 1 : 0);
- bits.reverse();
- str = bits.join('');
-
- // Bits to bytes
- bytes = [];
- while (str.length) {
- bytes.push(parseInt(str.substring(0, 8), 2));
- str = str.substring(8);
- }
- return bytes;
-}
-
-function unpackIEEE754(bytes, ebits, fbits) {
-
- // Bytes to bits
- var bits = [], i, j, b, str,
- bias, s, e, f;
-
- for (i = bytes.length; i; i -= 1) {
- b = bytes[i - 1];
- for (j = 8; j; j -= 1) {
- bits.push(b % 2 ? 1 : 0); b = b >> 1;
- }
- }
- bits.reverse();
- str = bits.join('');
-
- // Unpack sign, exponent, fraction
- bias = (1 << (ebits - 1)) - 1;
- s = parseInt(str.substring(0, 1), 2) ? -1 : 1;
- e = parseInt(str.substring(1, 1 + ebits), 2);
- f = parseInt(str.substring(1 + ebits), 2);
-
- // Produce number
- if (e === (1 << ebits) - 1) {
- return f !== 0 ? NaN : s * Infinity;
- } else if (e > 0) {
- // Normalized
- return s * pow(2, e - bias) * (1 + f / pow(2, fbits));
- } else if (f !== 0) {
- // Denormalized
- return s * pow(2, -(bias - 1)) * (f / pow(2, fbits));
- } else {
- return s < 0 ? -0 : 0;
- }
-}
-
-function unpackF64(b) { return unpackIEEE754(b, 11, 52); }
-function packF64(v) { return packIEEE754(v, 11, 52); }
-function unpackF32(b) { return unpackIEEE754(b, 8, 23); }
-function packF32(v) { return packIEEE754(v, 8, 23); }
-
-
-//
-// 3 The ArrayBuffer Type
-//
-
-(function() {
-
- /** @constructor */
- var ArrayBuffer = function ArrayBuffer(length) {
- length = ECMAScript.ToInt32(length);
- if (length < 0) throw new RangeError('ArrayBuffer size is not a small enough positive integer');
-
- this.byteLength = length;
- this._bytes = [];
- this._bytes.length = length;
-
- var i;
- for (i = 0; i < this.byteLength; i += 1) {
- this._bytes[i] = 0;
- }
-
- configureProperties(this);
- };
-
- exports.ArrayBuffer = exports.ArrayBuffer || ArrayBuffer;
-
- //
- // 4 The ArrayBufferView Type
- //
-
- // NOTE: this constructor is not exported
- /** @constructor */
- var ArrayBufferView = function ArrayBufferView() {
- //this.buffer = null;
- //this.byteOffset = 0;
- //this.byteLength = 0;
- };
-
- //
- // 5 The Typed Array View Types
- //
-
- function makeConstructor(bytesPerElement, pack, unpack) {
- // Each TypedArray type requires a distinct constructor instance with
- // identical logic, which this produces.
-
- var ctor;
- ctor = function(buffer, byteOffset, length) {
- var array, sequence, i, s;
-
- if (!arguments.length || typeof arguments[0] === 'number') {
- // Constructor(unsigned long length)
- this.length = ECMAScript.ToInt32(arguments[0]);
- if (length < 0) throw new RangeError('ArrayBufferView size is not a small enough positive integer');
-
- this.byteLength = this.length * this.BYTES_PER_ELEMENT;
- this.buffer = new ArrayBuffer(this.byteLength);
- this.byteOffset = 0;
- } else if (typeof arguments[0] === 'object' && arguments[0].constructor === ctor) {
- // Constructor(TypedArray array)
- array = arguments[0];
-
- this.length = array.length;
- this.byteLength = this.length * this.BYTES_PER_ELEMENT;
- this.buffer = new ArrayBuffer(this.byteLength);
- this.byteOffset = 0;
-
- for (i = 0; i < this.length; i += 1) {
- this._setter(i, array._getter(i));
- }
- } else if (typeof arguments[0] === 'object' &&
- !(arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) {
- // Constructor(sequence<type> array)
- sequence = arguments[0];
-
- this.length = ECMAScript.ToUint32(sequence.length);
- this.byteLength = this.length * this.BYTES_PER_ELEMENT;
- this.buffer = new ArrayBuffer(this.byteLength);
- this.byteOffset = 0;
-
- for (i = 0; i < this.length; i += 1) {
- s = sequence[i];
- this._setter(i, Number(s));
- }
- } else if (typeof arguments[0] === 'object' &&
- (arguments[0] instanceof ArrayBuffer || ECMAScript.Class(arguments[0]) === 'ArrayBuffer')) {
- // Constructor(ArrayBuffer buffer,
- // optional unsigned long byteOffset, optional unsigned long length)
- this.buffer = buffer;
-
- this.byteOffset = ECMAScript.ToUint32(byteOffset);
- if (this.byteOffset > this.buffer.byteLength) {
- throw new RangeError("byteOffset out of range");
- }
-
- if (this.byteOffset % this.BYTES_PER_ELEMENT) {
- // The given byteOffset must be a multiple of the element
- // size of the specific type, otherwise an exception is raised.
- throw new RangeError("ArrayBuffer length minus the byteOffset is not a multiple of the element size.");
- }
-
- if (arguments.length < 3) {
- this.byteLength = this.buffer.byteLength - this.byteOffset;
-
- if (this.byteLength % this.BYTES_PER_ELEMENT) {
- throw new RangeError("length of buffer minus byteOffset not a multiple of the element size");
- }
- this.length = this.byteLength / this.BYTES_PER_ELEMENT;
- } else {
- this.length = ECMAScript.ToUint32(length);
- this.byteLength = this.length * this.BYTES_PER_ELEMENT;
- }
-
- if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) {
- throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");
- }
- } else {
- throw new TypeError("Unexpected argument type(s)");
- }
-
- this.constructor = ctor;
-
- configureProperties(this);
- makeArrayAccessors(this);
- };
-
- ctor.prototype = new ArrayBufferView();
- ctor.prototype.BYTES_PER_ELEMENT = bytesPerElement;
- ctor.prototype._pack = pack;
- ctor.prototype._unpack = unpack;
- ctor.BYTES_PER_ELEMENT = bytesPerElement;
-
- // getter type (unsigned long index);
- ctor.prototype._getter = function(index) {
- if (arguments.length < 1) throw new SyntaxError("Not enough arguments");
-
- index = ECMAScript.ToUint32(index);
- if (index >= this.length) {
- return undefined;
- }
-
- var bytes = [], i, o;
- for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;
- i < this.BYTES_PER_ELEMENT;
- i += 1, o += 1) {
- bytes.push(this.buffer._bytes[o]);
- }
- return this._unpack(bytes);
- };
-
- // NONSTANDARD: convenience alias for getter: type get(unsigned long index);
- ctor.prototype.get = ctor.prototype._getter;
-
- // setter void (unsigned long index, type value);
- ctor.prototype._setter = function(index, value) {
- if (arguments.length < 2) throw new SyntaxError("Not enough arguments");
-
- index = ECMAScript.ToUint32(index);
- if (index >= this.length) {
- return undefined;
- }
-
- var bytes = this._pack(value), i, o;
- for (i = 0, o = this.byteOffset + index * this.BYTES_PER_ELEMENT;
- i < this.BYTES_PER_ELEMENT;
- i += 1, o += 1) {
- this.buffer._bytes[o] = bytes[i];
- }
- };
-
- // void set(TypedArray array, optional unsigned long offset);
- // void set(sequence<type> array, optional unsigned long offset);
- ctor.prototype.set = function(index, value) {
- if (arguments.length < 1) throw new SyntaxError("Not enough arguments");
- var array, sequence, offset, len,
- i, s, d,
- byteOffset, byteLength, tmp;
-
- if (typeof arguments[0] === 'object' && arguments[0].constructor === this.constructor) {
- // void set(TypedArray array, optional unsigned long offset);
- array = arguments[0];
- offset = ECMAScript.ToUint32(arguments[1]);
-
- if (offset + array.length > this.length) {
- throw new RangeError("Offset plus length of array is out of range");
- }
-
- byteOffset = this.byteOffset + offset * this.BYTES_PER_ELEMENT;
- byteLength = array.length * this.BYTES_PER_ELEMENT;
-
- if (array.buffer === this.buffer) {
- tmp = [];
- for (i = 0, s = array.byteOffset; i < byteLength; i += 1, s += 1) {
- tmp[i] = array.buffer._bytes[s];
- }
- for (i = 0, d = byteOffset; i < byteLength; i += 1, d += 1) {
- this.buffer._bytes[d] = tmp[i];
- }
- } else {
- for (i = 0, s = array.byteOffset, d = byteOffset;
- i < byteLength; i += 1, s += 1, d += 1) {
- this.buffer._bytes[d] = array.buffer._bytes[s];
- }
- }
- } else if (typeof arguments[0] === 'object' && typeof arguments[0].length !== 'undefined') {
- // void set(sequence<type> array, optional unsigned long offset);
- sequence = arguments[0];
- len = ECMAScript.ToUint32(sequence.length);
- offset = ECMAScript.ToUint32(arguments[1]);
-
- if (offset + len > this.length) {
- throw new RangeError("Offset plus length of array is out of range");
- }
-
- for (i = 0; i < len; i += 1) {
- s = sequence[i];
- this._setter(offset + i, Number(s));
- }
- } else {
- throw new TypeError("Unexpected argument type(s)");
- }
- };
-
- // TypedArray subarray(long begin, optional long end);
- ctor.prototype.subarray = function(start, end) {
- function clamp(v, min, max) { return v < min ? min : v > max ? max : v; }
-
- start = ECMAScript.ToInt32(start);
- end = ECMAScript.ToInt32(end);
-
- if (arguments.length < 1) { start = 0; }
- if (arguments.length < 2) { end = this.length; }
-
- if (start < 0) { start = this.length + start; }
- if (end < 0) { end = this.length + end; }
-
- start = clamp(start, 0, this.length);
- end = clamp(end, 0, this.length);
-
- var len = end - start;
- if (len < 0) {
- len = 0;
- }
-
- return new this.constructor(
- this.buffer, this.byteOffset + start * this.BYTES_PER_ELEMENT, len);
- };
-
- return ctor;
- }
-
- var Int8Array = makeConstructor(1, packI8, unpackI8);
- var Uint8Array = makeConstructor(1, packU8, unpackU8);
- var Uint8ClampedArray = makeConstructor(1, packU8Clamped, unpackU8);
- var Int16Array = makeConstructor(2, packI16, unpackI16);
- var Uint16Array = makeConstructor(2, packU16, unpackU16);
- var Int32Array = makeConstructor(4, packI32, unpackI32);
- var Uint32Array = makeConstructor(4, packU32, unpackU32);
- var Float32Array = makeConstructor(4, packF32, unpackF32);
- var Float64Array = makeConstructor(8, packF64, unpackF64);
-
- exports.Int8Array = exports.Int8Array || Int8Array;
- exports.Uint8Array = exports.Uint8Array || Uint8Array;
- exports.Uint8ClampedArray = exports.Uint8ClampedArray || Uint8ClampedArray;
- exports.Int16Array = exports.Int16Array || Int16Array;
- exports.Uint16Array = exports.Uint16Array || Uint16Array;
- exports.Int32Array = exports.Int32Array || Int32Array;
- exports.Uint32Array = exports.Uint32Array || Uint32Array;
- exports.Float32Array = exports.Float32Array || Float32Array;
- exports.Float64Array = exports.Float64Array || Float64Array;
-}());
-
-//
-// 6 The DataView View Type
-//
-
-(function() {
- function r(array, index) {
- return ECMAScript.IsCallable(array.get) ? array.get(index) : array[index];
- }
-
- var IS_BIG_ENDIAN = (function() {
- var u16array = new(exports.Uint16Array)([0x1234]),
- u8array = new(exports.Uint8Array)(u16array.buffer);
- return r(u8array, 0) === 0x12;
- }());
-
- // Constructor(ArrayBuffer buffer,
- // optional unsigned long byteOffset,
- // optional unsigned long byteLength)
- /** @constructor */
- var DataView = function DataView(buffer, byteOffset, byteLength) {
- if (arguments.length === 0) {
- buffer = new exports.ArrayBuffer(0);
- } else if (!(buffer instanceof exports.ArrayBuffer || ECMAScript.Class(buffer) === 'ArrayBuffer')) {
- throw new TypeError("TypeError");
- }
-
- this.buffer = buffer || new exports.ArrayBuffer(0);
-
- this.byteOffset = ECMAScript.ToUint32(byteOffset);
- if (this.byteOffset > this.buffer.byteLength) {
- throw new RangeError("byteOffset out of range");
- }
-
- if (arguments.length < 3) {
- this.byteLength = this.buffer.byteLength - this.byteOffset;
- } else {
- this.byteLength = ECMAScript.ToUint32(byteLength);
- }
-
- if ((this.byteOffset + this.byteLength) > this.buffer.byteLength) {
- throw new RangeError("byteOffset and length reference an area beyond the end of the buffer");
- }
-
- configureProperties(this);
- };
-
- function makeGetter(arrayType) {
- return function(byteOffset, littleEndian) {
-
- byteOffset = ECMAScript.ToUint32(byteOffset);
-
- if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) {
- throw new RangeError("Array index out of range");
- }
- byteOffset += this.byteOffset;
-
- var uint8Array = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT),
- bytes = [], i;
- for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) {
- bytes.push(r(uint8Array, i));
- }
-
- if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) {
- bytes.reverse();
- }
-
- return r(new arrayType(new exports.Uint8Array(bytes).buffer), 0);
- };
- }
-
- DataView.prototype.getUint8 = makeGetter(exports.Uint8Array);
- DataView.prototype.getInt8 = makeGetter(exports.Int8Array);
- DataView.prototype.getUint16 = makeGetter(exports.Uint16Array);
- DataView.prototype.getInt16 = makeGetter(exports.Int16Array);
- DataView.prototype.getUint32 = makeGetter(exports.Uint32Array);
- DataView.prototype.getInt32 = makeGetter(exports.Int32Array);
- DataView.prototype.getFloat32 = makeGetter(exports.Float32Array);
- DataView.prototype.getFloat64 = makeGetter(exports.Float64Array);
-
- function makeSetter(arrayType) {
- return function(byteOffset, value, littleEndian) {
-
- byteOffset = ECMAScript.ToUint32(byteOffset);
- if (byteOffset + arrayType.BYTES_PER_ELEMENT > this.byteLength) {
- throw new RangeError("Array index out of range");
- }
-
- // Get bytes
- var typeArray = new arrayType([value]),
- byteArray = new exports.Uint8Array(typeArray.buffer),
- bytes = [], i, byteView;
-
- for (i = 0; i < arrayType.BYTES_PER_ELEMENT; i += 1) {
- bytes.push(r(byteArray, i));
- }
-
- // Flip if necessary
- if (Boolean(littleEndian) === Boolean(IS_BIG_ENDIAN)) {
- bytes.reverse();
- }
-
- // Write them
- byteView = new exports.Uint8Array(this.buffer, byteOffset, arrayType.BYTES_PER_ELEMENT);
- byteView.set(bytes);
- };
- }
-
- DataView.prototype.setUint8 = makeSetter(exports.Uint8Array);
- DataView.prototype.setInt8 = makeSetter(exports.Int8Array);
- DataView.prototype.setUint16 = makeSetter(exports.Uint16Array);
- DataView.prototype.setInt16 = makeSetter(exports.Int16Array);
- DataView.prototype.setUint32 = makeSetter(exports.Uint32Array);
- DataView.prototype.setInt32 = makeSetter(exports.Int32Array);
- DataView.prototype.setFloat32 = makeSetter(exports.Float32Array);
- DataView.prototype.setFloat64 = makeSetter(exports.Float64Array);
-
- exports.DataView = exports.DataView || DataView;
-
-}());
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json
deleted file mode 100644
index e051bc6e2a..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "typedarray@^0.0.6",
- "_id": "typedarray@0.0.6",
- "_integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
- "_location": "/npm-registry-client/concat-stream/typedarray",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "typedarray@^0.0.6",
- "name": "typedarray",
- "escapedName": "typedarray",
- "rawSpec": "^0.0.6",
- "saveSpec": null,
- "fetchSpec": "^0.0.6"
- },
- "_requiredBy": [
- "/npm-registry-client/concat-stream"
- ],
- "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
- "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777",
- "_shrinkwrap": null,
- "_spec": "typedarray@^0.0.6",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-registry-client/node_modules/concat-stream",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/typedarray/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "TypedArray polyfill for old browsers",
- "devDependencies": {
- "tape": "~2.3.2"
- },
- "homepage": "https://github.com/substack/typedarray",
- "keywords": [
- "ArrayBuffer",
- "DataView",
- "Float32Array",
- "Float64Array",
- "Int8Array",
- "Int16Array",
- "Int32Array",
- "Uint8Array",
- "Uint8ClampedArray",
- "Uint16Array",
- "Uint32Array",
- "typed",
- "array",
- "polyfill"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "typedarray",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/typedarray.git"
- },
- "scripts": {
- "test": "tape test/*.js test/server/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/6..latest",
- "firefox/16..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": "0.0.6"
-}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown
deleted file mode 100644
index d18f6f7197..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/readme.markdown
+++ /dev/null
@@ -1,61 +0,0 @@
-# typedarray
-
-TypedArray polyfill ripped from [this
-module](https://raw.github.com/inexorabletash/polyfill).
-
-[![build status](https://secure.travis-ci.org/substack/typedarray.png)](http://travis-ci.org/substack/typedarray)
-
-[![testling badge](https://ci.testling.com/substack/typedarray.png)](https://ci.testling.com/substack/typedarray)
-
-# example
-
-``` js
-var Uint8Array = require('typedarray').Uint8Array;
-var ua = new Uint8Array(5);
-ua[1] = 256 + 55;
-console.log(ua[1]);
-```
-
-output:
-
-```
-55
-```
-
-# methods
-
-``` js
-var TA = require('typedarray')
-```
-
-The `TA` object has the following constructors:
-
-* TA.ArrayBuffer
-* TA.DataView
-* TA.Float32Array
-* TA.Float64Array
-* TA.Int8Array
-* TA.Int16Array
-* TA.Int32Array
-* TA.Uint8Array
-* TA.Uint8ClampedArray
-* TA.Uint16Array
-* TA.Uint32Array
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install typedarray
-```
-
-To use this module in the browser, compile with
-[browserify](http://browserify.org)
-or download a UMD build from browserify CDN:
-
-http://wzrd.in/standalone/typedarray@latest
-
-# license
-
-MIT
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js
deleted file mode 100644
index 425950f9fc..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js
+++ /dev/null
@@ -1,19 +0,0 @@
-var test = require('tape');
-var vm = require('vm');
-var fs = require('fs');
-var src = fs.readFileSync(__dirname + '/../../index.js', 'utf8');
-
-test('u8a without globals', function (t) {
- var c = {
- module: { exports: {} },
- };
- c.exports = c.module.exports;
- vm.runInNewContext(src, c);
- var TA = c.module.exports;
- var ua = new(TA.Uint8Array)(5);
-
- t.equal(ua.length, 5);
- ua[1] = 256 + 55;
- t.equal(ua[1], 55);
- t.end();
-});
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js
deleted file mode 100644
index df596a34f2..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/node_modules/typedarray/test/tarray.js
+++ /dev/null
@@ -1,10 +0,0 @@
-var TA = require('../');
-var test = require('tape');
-
-test('tiny u8a test', function (t) {
- var ua = new(TA.Uint8Array)(5);
- t.equal(ua.length, 5);
- ua[1] = 256 + 55;
- t.equal(ua[1], 55);
- t.end();
-});
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json
deleted file mode 100644
index a215056dab..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "_from": "concat-stream@^1.5.2",
- "_id": "concat-stream@1.6.0",
- "_integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
- "_location": "/npm-registry-client/concat-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "concat-stream@^1.5.2",
- "name": "concat-stream",
- "escapedName": "concat-stream",
- "rawSpec": "^1.5.2",
- "saveSpec": null,
- "fetchSpec": "^1.5.2"
- },
- "_requiredBy": [
- "/npm-registry-client"
- ],
- "_resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
- "_shasum": "0aac662fd52be78964d5532f694784e70110acf7",
- "_shrinkwrap": null,
- "_spec": "concat-stream@^1.5.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-registry-client",
- "author": {
- "name": "Max Ogden",
- "email": "max@maxogden.com"
- },
- "bin": null,
- "bugs": {
- "url": "http://github.com/maxogden/concat-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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.0"
-}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md b/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md
deleted file mode 100644
index f45e6fc872..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/concat-stream/readme.md
+++ /dev/null
@@ -1,102 +0,0 @@
-# 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('!!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/npm-registry-client/node_modules/npm-package-arg/LICENSE b/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/LICENSE
deleted file mode 100644
index 05eeeb88c2..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-The ISC License
-
-Copyright (c) Isaac Z. Schlueter
-
-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/npm-registry-client/node_modules/npm-package-arg/README.md b/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/README.md
deleted file mode 100644
index d45032dc74..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# npm-package-arg
-
-Parses package name and specifier passed to commands like `npm install` or
-`npm cache add`, or as found in `package.json` dependency sections.
-
-## EXAMPLES
-
-```javascript
-var assert = require("assert")
-var npa = require("npm-package-arg")
-
-// Pass in the descriptor, and it'll return an object
-try {
- var parsed = npa("@bar/foo@1.2")
-} catch (ex) {
- ā€¦
-}
-```
-
-## USING
-
-`var npa = require('npm-package-arg')`
-
-### var result = npa(*arg*[, *where*])
-
-* *arg* - a string that you might pass to `npm install`, like:
-`foo@1.2`, `@bar/foo@1.2`, `foo@user/foo`, `http://x.com/foo.tgz`,
-`git+https://github.com/user/foo`, `bitbucket:user/foo`, `foo.tar.gz`,
-`../foo/bar/` or `bar`. If the *arg* you provide doesn't have a specifier
-part, eg `foo` then the specifier will default to `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-### var result = npa.resolve(*name*, *spec*[, *where*])
-
-* *name* - The name of the module you want to install. For example: `foo` or `@bar/foo`.
-* *spec* - The specifier indicating where and how you can get this module. Something like:
-`1.2`, `^1.7.17`, `http://x.com/foo.tgz`, `git+https://github.com/user/foo`,
-`bitbucket:user/foo`, `file:foo.tar.gz` or `file:../foo/bar/`. If not
-included then the default is `latest`.
-* *where* - Optionally the path to resolve file paths relative to. Defaults to `process.cwd()`
-
-**Throws** if the package name is invalid, a dist-tag is invalid or a URL's protocol is not supported.
-
-## RESULT OBJECT
-
-The objects that are returned by npm-package-arg contain the following
-keys:
-
-* `type` - One of the following strings:
- * `git` - A git repo
- * `tag` - A tagged version, like `"foo@latest"`
- * `version` - A specific version number, like `"foo@1.2.3"`
- * `range` - A version range, like `"foo@2.x"`
- * `file` - A local `.tar.gz`, `.tar` or `.tgz` file.
- * `directory` - A local directory.
- * `remote` - An http url (presumably to a tgz)
-* `registry` - If true this specifier refers to a resource hosted on a
- registry. This is true for `tag`, `version` and `range` types.
-* `name` - If known, the `name` field expected in the resulting pkg.
-* `scope` - If a name is something like `@org/module` then the `scope`
- field will be set to `@org`. If it doesn't have a scoped name, then
- scope is `null`.
-* `escapedName` - A version of `name` escaped to match the npm scoped packages
- specification. Mostly used when making requests against a registry. When
- `name` is `null`, `escapedName` will also be `null`.
-* `rawSpec` - The specifier part that was parsed out in calls to `npa(arg)`,
- or the value of `spec` in calls to `npa.resolve(name, spec).
-* `saveSpec` - The normalized specifier, for saving to package.json files.
- `null` for registry dependencies.
-* `fetchSpec` - The version of the specifier to be used to fetch this
- resource. `null` for shortcuts to hosted git dependencies as there isn't
- just one URL to try with them.
-* `gitRange` - If set, this is a semver specifier to match against git tags with
-* `gitCommittish` - If set, this is the specific committish to use with a git dependency.
-* `hosted` - If `from === 'hosted'` then this will be a `hosted-git-info`
- object. This property is not included when serializing the object as
- JSON.
-* `raw` - The original un-modified string that was provided. If called as
- `npa.resolve(name, spec)` then this will be `name + '@' + spec`.
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js b/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js
deleted file mode 100644
index a61c057429..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/npa.js
+++ /dev/null
@@ -1,270 +0,0 @@
-'use strict'
-module.exports = npa
-module.exports.resolve = resolve
-module.exports.Result = Result
-
-let url
-let HostedGit
-let semver
-let path
-let validatePackageName
-let osenv
-
-const isWindows = process.platform === 'win32' || global.FAKE_WINDOWS
-const hasSlashes = isWindows ? /\\|[/]/ : /[/]/
-const isURL = /^(?:git[+])?[a-z]+:/i
-const isFilename = /[.](?:tgz|tar.gz|tar)$/i
-
-function npa (arg, where) {
- let name
- let spec
- const nameEndsAt = arg[0] === '@' ? arg.slice(1).indexOf('@') + 1 : arg.indexOf('@')
- const namePart = nameEndsAt > 0 ? arg.slice(0, nameEndsAt) : arg
- if (isURL.test(arg)) {
- spec = arg
- } else if (namePart[0] !== '@' && (hasSlashes.test(namePart) || isFilename.test(namePart))) {
- spec = arg
- } else if (nameEndsAt > 0) {
- name = namePart
- spec = arg.slice(nameEndsAt + 1)
- } else {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(arg)
- if (valid.validForOldPackages) {
- name = arg
- } else {
- spec = arg
- }
- }
- return resolve(name, spec, where, arg)
-}
-
-const isFilespec = isWindows ? /^(?:[.]|~[/]|[/\\]|[a-zA-Z]:)/ : /^(?:[.]|~[/]|[/]|[a-zA-Z]:)/
-
-function resolve (name, spec, where, arg) {
- const res = new Result({
- raw: arg,
- name: name,
- rawSpec: spec,
- fromArgument: arg != null
- })
-
- if (name) res.setName(name)
-
- if (spec && (isFilespec.test(spec) || /^file:/i.test(spec))) {
- return fromFile(res, where)
- }
- if (!HostedGit) HostedGit = require('hosted-git-info')
- const hosted = HostedGit.fromUrl(spec, {noGitPlus: true, noCommittish: true})
- if (hosted) {
- return fromHostedGit(res, hosted)
- } else if (spec && isURL.test(spec)) {
- return fromURL(res)
- } else if (spec && (hasSlashes.test(spec) || isFilename.test(spec))) {
- return fromFile(res, where)
- } else {
- return fromRegistry(res)
- }
-}
-
-function invalidPackageName (name, valid) {
- const err = new Error(`Invalid package name "${name}": ${valid.errors.join('; ')}`)
- err.code = 'EINVALIDPACKAGENAME'
- return err
-}
-function invalidTagName (name) {
- const err = new Error(`Invalid tag name "${name}": Tags may not have any characters that encodeURIComponent encodes.`)
- err.code = 'EINVALIDTAGNAME'
- return err
-}
-
-function Result (opts) {
- this.type = opts.type
- this.registry = opts.registry
- this.where = opts.where
- if (opts.raw == null) {
- this.raw = opts.name ? opts.name + '@' + opts.rawSpec : opts.rawSpec
- } else {
- this.raw = opts.raw
- }
- this.name = undefined
- this.escapedName = undefined
- this.scope = undefined
- this.rawSpec = opts.rawSpec == null ? '' : opts.rawSpec
- this.saveSpec = opts.saveSpec
- this.fetchSpec = opts.fetchSpec
- if (opts.name) this.setName(opts.name)
- this.gitRange = opts.gitRange
- this.gitCommittish = opts.gitCommittish
- this.hosted = opts.hosted
-}
-Result.prototype = {}
-
-Result.prototype.setName = function (name) {
- if (!validatePackageName) validatePackageName = require('validate-npm-package-name')
- const valid = validatePackageName(name)
- if (!valid.validForOldPackages) {
- throw invalidPackageName(name, valid)
- }
- this.name = name
- this.scope = name[0] === '@' ? name.slice(0, name.indexOf('/')) : undefined
- // scoped packages in couch must have slash url-encoded, e.g. @foo%2Fbar
- this.escapedName = name.replace('/', '%2f')
- return this
-}
-
-Result.prototype.toString = function () {
- const full = []
- if (this.name != null && this.name !== '') full.push(this.name)
- const spec = this.saveSpec || this.fetchSpec || this.rawSpec
- if (spec != null && spec !== '') full.push(spec)
- return full.length ? full.join('@') : this.raw
-}
-
-Result.prototype.toJSON = function () {
- const result = Object.assign({}, this)
- delete result.hosted
- return result
-}
-
-function setGitCommittish (res, committish) {
- if (committish != null && committish.length >= 7 && committish.slice(0, 7) === 'semver:') {
- res.gitRange = decodeURIComponent(committish.slice(7))
- res.gitCommittish = null
- } else if (committish == null || committish === '') {
- res.gitCommittish = 'master'
- } else {
- res.gitCommittish = committish
- }
- return res
-}
-
-const isAbsolutePath = /^[/]|^[A-Za-z]:/
-
-function resolvePath (where, spec) {
- if (isAbsolutePath.test(spec)) return spec
- if (!path) path = require('path')
- return path.resolve(where, spec)
-}
-
-function isAbsolute (dir) {
- if (dir[0] === '/') return true
- if (/^[A-Za-z]:/.test(dir)) return true
- return false
-}
-
-function fromFile (res, where) {
- if (!where) where = process.cwd()
- res.type = isFilename.test(res.rawSpec) ? 'file' : 'directory'
- res.where = where
-
- const spec = res.rawSpec.replace(/\\/g, '/')
- .replace(/^file:[/]*([A-Za-z]:)/, '$1') // drive name paths on windows
- .replace(/^file:(?:[/]*([~./]))?/, '$1')
- if (/^~[/]/.test(spec)) {
- // this is needed for windows and for file:~/foo/bar
- if (!osenv) osenv = require('osenv')
- res.fetchSpec = resolvePath(osenv.home(), spec.slice(2))
- res.saveSpec = 'file:' + spec
- } else {
- res.fetchSpec = resolvePath(where, spec)
- if (isAbsolute(spec)) {
- res.saveSpec = 'file:' + spec
- } else {
- if (!path) path = require('path')
- res.saveSpec = 'file:' + path.relative(where, res.fetchSpec)
- }
- }
- return res
-}
-
-function fromHostedGit (res, hosted) {
- res.type = 'git'
- res.hosted = hosted
- res.saveSpec = hosted.toString({noGitPlus: false, noCommittish: false})
- res.fetchSpec = hosted.getDefaultRepresentation() === 'shortcut' ? null : hosted.toString()
- return setGitCommittish(res, hosted.committish)
-}
-
-function unsupportedURLType (protocol, spec) {
- const err = new Error(`Unsupported URL Type "${protocol}": ${spec}`)
- err.code = 'EUNSUPPORTEDPROTOCOL'
- return err
-}
-
-function matchGitScp (spec) {
- // git ssh specifiers are overloaded to also use scp-style git
- // specifiers, so we have to parse those out and treat them special.
- // They are NOT true URIs, so we can't hand them to `url.parse`.
- //
- // This regex looks for things that look like:
- // git+ssh://git@my.custom.git.com:username/project.git#deadbeef
- //
- // ...and various combinations. The username in the beginning is *required*.
- const matched = spec.match(/^git\+ssh:\/\/([^:#]+:[^#]+(?:\.git)?)(?:#(.*))?$/i)
- return matched && !matched[1].match(/:[0-9]+\/?.*$/i) && {
- fetchSpec: matched[1],
- gitCommittish: matched[2] || 'master'
- }
-}
-
-function fromURL (res) {
- if (!url) url = require('url')
- const urlparse = url.parse(res.rawSpec)
- res.saveSpec = res.rawSpec
- // check the protocol, and then see if it's git or not
- switch (urlparse.protocol) {
- case 'git:':
- case 'git+http:':
- case 'git+https:':
- case 'git+rsync:':
- case 'git+ftp:':
- case 'git+file:':
- case 'git+ssh:':
- res.type = 'git'
- const match = urlparse.protocol === 'git+ssh:' && matchGitScp(res.rawSpec)
- if (match) {
- res.fetchSpec = match.fetchSpec
- res.gitCommittish = match.gitCommittish
- } else {
- setGitCommittish(res, urlparse.hash != null ? urlparse.hash.slice(1) : '')
- urlparse.protocol = urlparse.protocol.replace(/^git[+]/, '')
- delete urlparse.hash
- res.fetchSpec = url.format(urlparse)
- }
- break
- case 'http:':
- case 'https:':
- res.type = 'remote'
- res.fetchSpec = res.saveSpec
- break
-
- default:
- throw unsupportedURLType(urlparse.protocol, res.rawSpec)
- }
-
- return res
-}
-
-function fromRegistry (res) {
- res.registry = true
- const spec = res.rawSpec === '' ? 'latest' : res.rawSpec
- // no save spec for registry components as we save based on the fetched
- // version, not on the argument so this can't compute that.
- res.saveSpec = null
- res.fetchSpec = spec
- if (!semver) semver = require('semver')
- const version = semver.valid(spec, true)
- const range = semver.validRange(spec, true)
- if (version) {
- res.type = 'version'
- } else if (range) {
- res.type = 'range'
- } else {
- if (encodeURIComponent(spec) !== spec) {
- throw invalidTagName(spec)
- }
- res.type = 'tag'
- }
- return res
-}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json
deleted file mode 100644
index 75f30d1258..0000000000
--- a/deps/npm/node_modules/npm-registry-client/node_modules/npm-package-arg/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0",
- "_id": "npm-package-arg@5.1.2",
- "_inBundle": false,
- "_integrity": "sha512-wJBsrf0qpypPT7A0LART18hCdyhpCMxeTtcb0X4IZO2jsP6Om7EHN1d9KSKiqD+KVH030RVNpWS9thk+pb7wzA==",
- "_location": "/npm-registry-client/npm-package-arg",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0",
- "name": "npm-package-arg",
- "escapedName": "npm-package-arg",
- "rawSpec": "^3.0.0 || ^4.0.0 || ^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0 || ^4.0.0 || ^5.0.0"
- },
- "_requiredBy": [
- "/npm-registry-client"
- ],
- "_resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-5.1.2.tgz",
- "_shasum": "fb18d17bb61e60900d6312619919bd753755ab37",
- "_spec": "npm-package-arg@^3.0.0 || ^4.0.0 || ^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-registry-client",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/npm/npm-package-arg/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "hosted-git-info": "^2.4.2",
- "osenv": "^0.1.4",
- "semver": "^5.1.0",
- "validate-npm-package-name": "^3.0.0"
- },
- "deprecated": false,
- "description": "Parse the things that can be arguments to `npm install`",
- "devDependencies": {
- "standard": "9.0.2",
- "tap": "^10.3.0"
- },
- "directories": {
- "test": "test"
- },
- "files": [
- "npa.js"
- ],
- "homepage": "https://github.com/npm/npm-package-arg",
- "license": "ISC",
- "main": "npa.js",
- "name": "npm-package-arg",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/npm-package-arg.git"
- },
- "scripts": {
- "test": "standard && tap -J --coverage test/*.js"
- },
- "version": "5.1.2"
-}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore b/deps/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore
new file mode 100644
index 0000000000..e7726a071b
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/.npmignore
@@ -0,0 +1,2 @@
+/node_modules/*
+npm-debug.log
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/License b/deps/npm/node_modules/npm-registry-client/node_modules/retry/License
new file mode 100644
index 0000000000..0b58de379f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/License
@@ -0,0 +1,21 @@
+Copyright (c) 2011:
+Tim KoschĆ¼tzki (tim@debuggable.com)
+Felix Geisendƶrfer (felix@debuggable.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/npm-registry-client/node_modules/retry/Makefile b/deps/npm/node_modules/npm-registry-client/node_modules/retry/Makefile
new file mode 100644
index 0000000000..98e7167bbe
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/Makefile
@@ -0,0 +1,21 @@
+SHELL := /bin/bash
+
+test:
+ @node test/runner.js
+
+release-major: test
+ npm version major -m "Release %s"
+ git push
+ npm publish
+
+release-minor: test
+ npm version minor -m "Release %s"
+ git push
+ npm publish
+
+release-patch: test
+ npm version patch -m "Release %s"
+ git push
+ npm publish
+
+.PHONY: test
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/README.md b/deps/npm/node_modules/npm-registry-client/node_modules/retry/README.md
new file mode 100644
index 0000000000..eee05f7bb6
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/README.md
@@ -0,0 +1,215 @@
+# retry
+
+Abstraction for exponential and custom retry strategies for failed operations.
+
+## Installation
+
+ npm install retry
+
+## Current Status
+
+This module has been tested and is ready to be used.
+
+## Tutorial
+
+The example below will retry a potentially failing `dns.resolve` operation
+`10` times using an exponential backoff strategy. With the default settings, this
+means the last attempt is made after `17 minutes and 3 seconds`.
+
+``` javascript
+var dns = require('dns');
+var retry = require('retry');
+
+function faultTolerantResolve(address, cb) {
+ var operation = retry.operation();
+
+ operation.attempt(function(currentAttempt) {
+ dns.resolve(address, function(err, addresses) {
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(err ? operation.mainError() : null, addresses);
+ });
+ });
+}
+
+faultTolerantResolve('nodejs.org', function(err, addresses) {
+ console.log(err, addresses);
+});
+```
+
+Of course you can also configure the factors that go into the exponential
+backoff. See the API documentation below for all available settings.
+currentAttempt is an int representing the number of attempts so far.
+
+``` javascript
+var operation = retry.operation({
+ retries: 5,
+ factor: 3,
+ minTimeout: 1 * 1000,
+ maxTimeout: 60 * 1000,
+ randomize: true,
+});
+```
+
+## API
+
+### retry.operation([options])
+
+Creates a new `RetryOperation` object. `options` is the same as `retry.timeouts()`'s `options`, with two additions:
+
+* `forever`: Whether to retry forever, defaults to `false`.
+* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+
+### retry.timeouts([options])
+
+Returns an array of timeouts. All time `options` and return values are in
+milliseconds. If `options` is an array, a copy of that array is returned.
+
+`options` is a JS object that can contain any of the following keys:
+
+* `retries`: The maximum amount of times to retry the operation. Default is `10`.
+* `factor`: The exponential factor to use. Default is `2`.
+* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`.
+* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`.
+* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`.
+
+The formula used to calculate the individual timeouts is:
+
+```
+Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout)
+```
+
+Have a look at [this article][article] for a better explanation of approach.
+
+If you want to tune your `factor` / `times` settings to attempt the last retry
+after a certain amount of time, you can use wolfram alpha. For example in order
+to tune for `10` attempts in `5 minutes`, you can use this equation:
+
+![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif)
+
+Explaining the various values from left to right:
+
+* `k = 0 ... 9`: The `retries` value (10)
+* `1000`: The `minTimeout` value in ms (1000)
+* `x^k`: No need to change this, `x` will be your resulting factor
+* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes)
+
+To make this a little easier for you, use wolfram alpha to do the calculations:
+
+<http://www.wolframalpha.com/input/?i=Sum%5B1000*x^k%2C+{k%2C+0%2C+9}%5D+%3D+5+*+60+*+1000>
+
+[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html
+
+### retry.createTimeout(attempt, opts)
+
+Returns a new `timeout` (integer in milliseconds) based on the given parameters.
+
+`attempt` is an integer representing for which retry the timeout should be calculated. If your retry operation was executed 4 times you had one attempt and 3 retries. If you then want to calculate a new timeout, you should set `attempt` to 4 (attempts are zero-indexed).
+
+`opts` can include `factor`, `minTimeout`, `randomize` (boolean) and `maxTimeout`. They are documented above.
+
+`retry.createTimeout()` is used internally by `retry.timeouts()` and is public for you to be able to create your own timeouts for reinserting an item, see [issue #13](https://github.com/tim-kos/node-retry/issues/13).
+
+### retry.wrap(obj, [options], [methodNames])
+
+Wrap all functions of the `obj` with retry. Optionally you can pass operation options and
+an array of method names which need to be wrapped.
+
+```
+retry.wrap(obj)
+
+retry.wrap(obj, ['method1', 'method2'])
+
+retry.wrap(obj, {retries: 3})
+
+retry.wrap(obj, {retries: 3}, ['method1', 'method2'])
+```
+The `options` object can take any options that the usual call to `retry.operation` can take.
+
+### new RetryOperation(timeouts, [options])
+
+Creates a new `RetryOperation` where `timeouts` is an array where each value is
+a timeout given in milliseconds.
+
+Available options:
+* `forever`: Whether to retry forever, defaults to `false`.
+* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+
+If `forever` is true, the following changes happen:
+* `RetryOperation.errors()` will only output an array of one item: the last error.
+* `RetryOperation` will repeatedly use the `timeouts` array. Once all of its timeouts have been used up, it restarts with the first timeout, then uses the second and so on.
+
+#### retryOperation.errors()
+
+Returns an array of all errors that have been passed to
+`retryOperation.retry()` so far.
+
+#### retryOperation.mainError()
+
+A reference to the error object that occured most frequently. Errors are
+compared using the `error.message` property.
+
+If multiple error messages occured the same amount of time, the last error
+object with that message is returned.
+
+If no errors occured so far, the value is `null`.
+
+#### retryOperation.attempt(fn, timeoutOps)
+
+Defines the function `fn` that is to be retried and executes it for the first
+time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far.
+
+Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function.
+Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called.
+
+
+#### retryOperation.try(fn)
+
+This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead.
+
+#### retryOperation.start(fn)
+
+This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead.
+
+#### retryOperation.retry(error)
+
+Returns `false` when no `error` value is given, or the maximum amount of retries
+has been reached.
+
+Otherwise it returns `true`, and retries the operation after the timeout for
+the current attempt number.
+
+#### retryOperation.stop()
+
+Allows you to stop the operation being retried. Useful for aborting the operation on a fatal error etc.
+
+#### retryOperation.attempts()
+
+Returns an int representing the number of attempts it took to call `fn` before it was successful.
+
+## License
+
+retry is licensed under the MIT license.
+
+
+# Changelog
+
+0.10.0 Adding `stop` functionality, thanks to @maxnachlinger.
+
+0.9.0 Adding `unref` functionality, thanks to @satazor.
+
+0.8.0 Implementing retry.wrap.
+
+0.7.0 Some bug fixes and made retry.createTimeout() public. Fixed issues [#10](https://github.com/tim-kos/node-retry/issues/10), [#12](https://github.com/tim-kos/node-retry/issues/12), and [#13](https://github.com/tim-kos/node-retry/issues/13).
+
+0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in milliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called.
+
+0.5.0 Some minor refactoring.
+
+0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it.
+
+0.3.0 Added retryOperation.start() which is an alias for retryOperation.try().
+
+0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn().
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif b/deps/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif
new file mode 100644
index 0000000000..97107237ba
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/equation.gif
Binary files differ
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js
new file mode 100644
index 0000000000..446729b6f9
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/dns.js
@@ -0,0 +1,31 @@
+var dns = require('dns');
+var retry = require('../lib/retry');
+
+function faultTolerantResolve(address, cb) {
+ var opts = {
+ retries: 2,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: 2 * 1000,
+ randomize: true
+ };
+ var operation = retry.operation(opts);
+
+ operation.attempt(function(currentAttempt) {
+ dns.resolve(address, function(err, addresses) {
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(operation.mainError(), operation.errors(), addresses);
+ });
+ });
+}
+
+faultTolerantResolve('nodejs.org', function(err, errors, addresses) {
+ console.warn('err:');
+ console.log(err);
+
+ console.warn('addresses:');
+ console.log(addresses);
+}); \ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/stop.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/stop.js
new file mode 100644
index 0000000000..e1ceafeeba
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/example/stop.js
@@ -0,0 +1,40 @@
+var retry = require('../lib/retry');
+
+function attemptAsyncOperation(someInput, cb) {
+ var opts = {
+ retries: 2,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: 2 * 1000,
+ randomize: true
+ };
+ var operation = retry.operation(opts);
+
+ operation.attempt(function(currentAttempt) {
+ failingAsyncOperation(someInput, function(err, result) {
+
+ if (err && err.message === 'A fatal error') {
+ operation.stop();
+ return cb(err);
+ }
+
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(operation.mainError(), operation.errors(), result);
+ });
+ });
+}
+
+attemptAsyncOperation('test input', function(err, errors, result) {
+ console.warn('err:');
+ console.log(err);
+
+ console.warn('result:');
+ console.log(result);
+});
+
+function failingAsyncOperation(input, cb) {
+ return setImmediate(cb.bind(null, new Error('A fatal error')));
+}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/index.js
new file mode 100644
index 0000000000..ee62f3a112
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/index.js
@@ -0,0 +1 @@
+module.exports = require('./lib/retry'); \ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js
new file mode 100644
index 0000000000..77428cfd00
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry.js
@@ -0,0 +1,99 @@
+var RetryOperation = require('./retry_operation');
+
+exports.operation = function(options) {
+ var timeouts = exports.timeouts(options);
+ return new RetryOperation(timeouts, {
+ forever: options && options.forever,
+ unref: options && options.unref
+ });
+};
+
+exports.timeouts = function(options) {
+ if (options instanceof Array) {
+ return [].concat(options);
+ }
+
+ var opts = {
+ retries: 10,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: Infinity,
+ randomize: false
+ };
+ for (var key in options) {
+ opts[key] = options[key];
+ }
+
+ if (opts.minTimeout > opts.maxTimeout) {
+ throw new Error('minTimeout is greater than maxTimeout');
+ }
+
+ var timeouts = [];
+ for (var i = 0; i < opts.retries; i++) {
+ timeouts.push(this.createTimeout(i, opts));
+ }
+
+ if (options && options.forever && !timeouts.length) {
+ timeouts.push(this.createTimeout(i, opts));
+ }
+
+ // sort the array numerically ascending
+ timeouts.sort(function(a,b) {
+ return a - b;
+ });
+
+ return timeouts;
+};
+
+exports.createTimeout = function(attempt, opts) {
+ var random = (opts.randomize)
+ ? (Math.random() + 1)
+ : 1;
+
+ var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt));
+ timeout = Math.min(timeout, opts.maxTimeout);
+
+ return timeout;
+};
+
+exports.wrap = function(obj, options, methods) {
+ if (options instanceof Array) {
+ methods = options;
+ options = null;
+ }
+
+ if (!methods) {
+ methods = [];
+ for (var key in obj) {
+ if (typeof obj[key] === 'function') {
+ methods.push(key);
+ }
+ }
+ }
+
+ for (var i = 0; i < methods.length; i++) {
+ var method = methods[i];
+ var original = obj[method];
+
+ obj[method] = function retryWrapper() {
+ var op = exports.operation(options);
+ var args = Array.prototype.slice.call(arguments);
+ var callback = args.pop();
+
+ args.push(function(err) {
+ if (op.retry(err)) {
+ return;
+ }
+ if (err) {
+ arguments[0] = op.mainError();
+ }
+ callback.apply(this, arguments);
+ });
+
+ op.attempt(function() {
+ original.apply(obj, args);
+ });
+ };
+ obj[method].options = options;
+ }
+};
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js
new file mode 100644
index 0000000000..2b3db8e177
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/lib/retry_operation.js
@@ -0,0 +1,143 @@
+function RetryOperation(timeouts, options) {
+ // Compatibility for the old (timeouts, retryForever) signature
+ if (typeof options === 'boolean') {
+ options = { forever: options };
+ }
+
+ this._timeouts = timeouts;
+ this._options = options || {};
+ this._fn = null;
+ this._errors = [];
+ this._attempts = 1;
+ this._operationTimeout = null;
+ this._operationTimeoutCb = null;
+ this._timeout = null;
+
+ if (this._options.forever) {
+ this._cachedTimeouts = this._timeouts.slice(0);
+ }
+}
+module.exports = RetryOperation;
+
+RetryOperation.prototype.stop = function() {
+ if (this._timeout) {
+ clearTimeout(this._timeout);
+ }
+
+ this._timeouts = [];
+ this._cachedTimeouts = null;
+};
+
+RetryOperation.prototype.retry = function(err) {
+ if (this._timeout) {
+ clearTimeout(this._timeout);
+ }
+
+ if (!err) {
+ return false;
+ }
+
+ this._errors.push(err);
+
+ var timeout = this._timeouts.shift();
+ if (timeout === undefined) {
+ if (this._cachedTimeouts) {
+ // retry forever, only keep last error
+ this._errors.splice(this._errors.length - 1, this._errors.length);
+ this._timeouts = this._cachedTimeouts.slice(0);
+ timeout = this._timeouts.shift();
+ } else {
+ return false;
+ }
+ }
+
+ var self = this;
+ var timer = setTimeout(function() {
+ self._attempts++;
+
+ if (self._operationTimeoutCb) {
+ self._timeout = setTimeout(function() {
+ self._operationTimeoutCb(self._attempts);
+ }, self._operationTimeout);
+
+ if (this._options.unref) {
+ self._timeout.unref();
+ }
+ }
+
+ self._fn(self._attempts);
+ }, timeout);
+
+ if (this._options.unref) {
+ timer.unref();
+ }
+
+ return true;
+};
+
+RetryOperation.prototype.attempt = function(fn, timeoutOps) {
+ this._fn = fn;
+
+ if (timeoutOps) {
+ if (timeoutOps.timeout) {
+ this._operationTimeout = timeoutOps.timeout;
+ }
+ if (timeoutOps.cb) {
+ this._operationTimeoutCb = timeoutOps.cb;
+ }
+ }
+
+ var self = this;
+ if (this._operationTimeoutCb) {
+ this._timeout = setTimeout(function() {
+ self._operationTimeoutCb();
+ }, self._operationTimeout);
+ }
+
+ this._fn(this._attempts);
+};
+
+RetryOperation.prototype.try = function(fn) {
+ console.log('Using RetryOperation.try() is deprecated');
+ this.attempt(fn);
+};
+
+RetryOperation.prototype.start = function(fn) {
+ console.log('Using RetryOperation.start() is deprecated');
+ this.attempt(fn);
+};
+
+RetryOperation.prototype.start = RetryOperation.prototype.try;
+
+RetryOperation.prototype.errors = function() {
+ return this._errors;
+};
+
+RetryOperation.prototype.attempts = function() {
+ return this._attempts;
+};
+
+RetryOperation.prototype.mainError = function() {
+ if (this._errors.length === 0) {
+ return null;
+ }
+
+ var counts = {};
+ var mainError = null;
+ var mainErrorCount = 0;
+
+ for (var i = 0; i < this._errors.length; i++) {
+ var error = this._errors[i];
+ var message = error.message;
+ var count = (counts[message] || 0) + 1;
+
+ counts[message] = count;
+
+ if (count >= mainErrorCount) {
+ mainError = error;
+ mainErrorCount = count;
+ }
+ }
+
+ return mainError;
+};
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json
new file mode 100644
index 0000000000..26f1daa8ca
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "retry@^0.10.0",
+ "_id": "retry@0.10.1",
+ "_inBundle": false,
+ "_integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+ "_location": "/npm-registry-client/retry",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "retry@^0.10.0",
+ "name": "retry",
+ "escapedName": "retry",
+ "rawSpec": "^0.10.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.10.0"
+ },
+ "_requiredBy": [
+ "/npm-registry-client"
+ ],
+ "_resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
+ "_shasum": "e76388d217992c252750241d3d3956fed98d8ff4",
+ "_spec": "retry@^0.10.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client",
+ "author": {
+ "name": "Tim KoschĆ¼tzki",
+ "email": "tim@debuggable.com",
+ "url": "http://debuggable.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/tim-kos/node-retry/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Abstraction for exponential and custom retry strategies for failed operations.",
+ "devDependencies": {
+ "fake": "0.2.0",
+ "far": "0.0.1"
+ },
+ "directories": {
+ "lib": "./lib"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "homepage": "https://github.com/tim-kos/node-retry",
+ "license": "MIT",
+ "main": "index",
+ "name": "retry",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/tim-kos/node-retry.git"
+ },
+ "version": "0.10.1"
+}
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js
new file mode 100644
index 0000000000..224720696e
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/common.js
@@ -0,0 +1,10 @@
+var common = module.exports;
+var path = require('path');
+
+var rootDir = path.join(__dirname, '..');
+common.dir = {
+ lib: rootDir + '/lib'
+};
+
+common.assert = require('assert');
+common.fake = require('fake'); \ No newline at end of file
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-forever.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-forever.js
new file mode 100644
index 0000000000..b41307cb52
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-forever.js
@@ -0,0 +1,24 @@
+var common = require('../common');
+var assert = common.assert;
+var retry = require(common.dir.lib + '/retry');
+
+(function testForeverUsesFirstTimeout() {
+ var operation = retry.operation({
+ retries: 0,
+ minTimeout: 100,
+ maxTimeout: 100,
+ forever: true
+ });
+
+ operation.attempt(function(numAttempt) {
+ console.log('>numAttempt', numAttempt);
+ var err = new Error("foo");
+ if (numAttempt == 10) {
+ operation.stop();
+ }
+
+ if (operation.retry(err)) {
+ return;
+ }
+ });
+})();
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js
new file mode 100644
index 0000000000..916936424f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-operation.js
@@ -0,0 +1,176 @@
+var common = require('../common');
+var assert = common.assert;
+var fake = common.fake.create();
+var retry = require(common.dir.lib + '/retry');
+
+(function testErrors() {
+ var operation = retry.operation();
+
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+ operation._errors.push(error);
+ operation._errors.push(error2);
+
+ assert.deepEqual(operation.errors(), [error, error2]);
+})();
+
+(function testMainErrorReturnsMostFrequentError() {
+ var operation = retry.operation();
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+
+ operation._errors.push(error);
+ operation._errors.push(error2);
+ operation._errors.push(error);
+
+ assert.strictEqual(operation.mainError(), error);
+})();
+
+(function testMainErrorReturnsLastErrorOnEqualCount() {
+ var operation = retry.operation();
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+
+ operation._errors.push(error);
+ operation._errors.push(error2);
+
+ assert.strictEqual(operation.mainError(), error2);
+})();
+
+(function testAttempt() {
+ var operation = retry.operation();
+ var fn = new Function();
+
+ var timeoutOpts = {
+ timeout: 1,
+ cb: function() {}
+ };
+ operation.attempt(fn, timeoutOpts);
+
+ assert.strictEqual(fn, operation._fn);
+ assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout);
+ assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb);
+})();
+
+(function testRetry() {
+ var times = 3;
+ var error = new Error('some error');
+ var operation = retry.operation([1, 2, 3]);
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (operation.retry(error)) {
+ return;
+ }
+
+ assert.strictEqual(attempts, 4);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testRetryForever() {
+ var error = new Error('some error');
+ var operation = retry.operation({ retries: 3, forever: true });
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (attempts !== 6 && operation.retry(error)) {
+ return;
+ }
+
+ assert.strictEqual(attempts, 6);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testRetryForeverNoRetries() {
+ var error = new Error('some error');
+ var delay = 50
+ var operation = retry.operation({
+ retries: null,
+ forever: true,
+ minTimeout: delay,
+ maxTimeout: delay
+ });
+
+ var attempts = 0;
+ var startTime = new Date().getTime();
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (attempts !== 4 && operation.retry(error)) {
+ return;
+ }
+
+ var endTime = new Date().getTime();
+ var minTime = startTime + (delay * 3);
+ var maxTime = minTime + 20 // add a little headroom for code execution time
+ assert(endTime > minTime)
+ assert(endTime < maxTime)
+ assert.strictEqual(attempts, 4);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testStop() {
+ var error = new Error('some error');
+ var operation = retry.operation([1, 2, 3]);
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+
+ if (attempts === 2) {
+ operation.stop();
+
+ assert.strictEqual(attempts, 2);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ }
+
+ if (operation.retry(error)) {
+ return;
+ }
+ });
+ };
+
+ fn();
+})();
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js
new file mode 100644
index 0000000000..7ca8bc7eb5
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-retry-wrap.js
@@ -0,0 +1,77 @@
+var common = require('../common');
+var assert = common.assert;
+var fake = common.fake.create();
+var retry = require(common.dir.lib + '/retry');
+
+function getLib() {
+ return {
+ fn1: function() {},
+ fn2: function() {},
+ fn3: function() {}
+ };
+}
+
+(function wrapAll() {
+ var lib = getLib();
+ retry.wrap(lib);
+ assert.equal(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+}());
+
+(function wrapAllPassOptions() {
+ var lib = getLib();
+ retry.wrap(lib, {retries: 2});
+ assert.equal(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn1.options.retries, 2);
+ assert.equal(lib.fn2.options.retries, 2);
+ assert.equal(lib.fn3.options.retries, 2);
+}());
+
+(function wrapDefined() {
+ var lib = getLib();
+ retry.wrap(lib, ['fn2', 'fn3']);
+ assert.notEqual(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+}());
+
+(function wrapDefinedAndPassOptions() {
+ var lib = getLib();
+ retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);
+ assert.notEqual(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn2.options.retries, 2);
+ assert.equal(lib.fn3.options.retries, 2);
+}());
+
+(function runWrappedWithoutError() {
+ var callbackCalled;
+ var lib = {method: function(a, b, callback) {
+ assert.equal(a, 1);
+ assert.equal(b, 2);
+ assert.equal(typeof callback, 'function');
+ callback();
+ }};
+ retry.wrap(lib);
+ lib.method(1, 2, function() {
+ callbackCalled = true;
+ });
+ assert.ok(callbackCalled);
+}());
+
+(function runWrappedWithError() {
+ var callbackCalled;
+ var lib = {method: function(callback) {
+ callback(new Error('Some error'));
+ }};
+ retry.wrap(lib, {retries: 1});
+ lib.method(function(err) {
+ callbackCalled = true;
+ assert.ok(err instanceof Error);
+ });
+ assert.ok(!callbackCalled);
+}());
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js
new file mode 100644
index 0000000000..7206b0fb0b
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/integration/test-timeouts.js
@@ -0,0 +1,69 @@
+var common = require('../common');
+var assert = common.assert;
+var retry = require(common.dir.lib + '/retry');
+
+(function testDefaultValues() {
+ var timeouts = retry.timeouts();
+
+ assert.equal(timeouts.length, 10);
+ assert.equal(timeouts[0], 1000);
+ assert.equal(timeouts[1], 2000);
+ assert.equal(timeouts[2], 4000);
+})();
+
+(function testDefaultValuesWithRandomize() {
+ var minTimeout = 5000;
+ var timeouts = retry.timeouts({
+ minTimeout: minTimeout,
+ randomize: true
+ });
+
+ assert.equal(timeouts.length, 10);
+ assert.ok(timeouts[0] > minTimeout);
+ assert.ok(timeouts[1] > timeouts[0]);
+ assert.ok(timeouts[2] > timeouts[1]);
+})();
+
+(function testPassedTimeoutsAreUsed() {
+ var timeoutsArray = [1000, 2000, 3000];
+ var timeouts = retry.timeouts(timeoutsArray);
+ assert.deepEqual(timeouts, timeoutsArray);
+ assert.notStrictEqual(timeouts, timeoutsArray);
+})();
+
+(function testTimeoutsAreWithinBoundaries() {
+ var minTimeout = 1000;
+ var maxTimeout = 10000;
+ var timeouts = retry.timeouts({
+ minTimeout: minTimeout,
+ maxTimeout: maxTimeout
+ });
+ for (var i = 0; i < timeouts; i++) {
+ assert.ok(timeouts[i] >= minTimeout);
+ assert.ok(timeouts[i] <= maxTimeout);
+ }
+})();
+
+(function testTimeoutsAreIncremental() {
+ var timeouts = retry.timeouts();
+ var lastTimeout = timeouts[0];
+ for (var i = 0; i < timeouts; i++) {
+ assert.ok(timeouts[i] > lastTimeout);
+ lastTimeout = timeouts[i];
+ }
+})();
+
+(function testTimeoutsAreIncrementalForFactorsLessThanOne() {
+ var timeouts = retry.timeouts({
+ retries: 3,
+ factor: 0.5
+ });
+
+ var expected = [250, 500, 1000];
+ assert.deepEqual(expected, timeouts);
+})();
+
+(function testRetries() {
+ var timeouts = retry.timeouts({retries: 2});
+ assert.strictEqual(timeouts.length, 2);
+})();
diff --git a/deps/npm/node_modules/retry/test/runner.js b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js
index e0ee2f570f..e0ee2f570f 100644
--- a/deps/npm/node_modules/retry/test/runner.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/retry/test/runner.js
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md
index c1136092e3..5c06894881 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/CHANGELOG.md
@@ -2,6 +2,87 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="5.3.0"></a>
+# [5.3.0](https://github.com/zkat/ssri/compare/v5.2.4...v5.3.0) (2018-03-13)
+
+
+### Features
+
+* **checkData:** optionally throw when checkData fails ([bf26b84](https://github.com/zkat/ssri/commit/bf26b84))
+
+
+
+<a name="5.2.4"></a>
+## [5.2.4](https://github.com/zkat/ssri/compare/v5.2.3...v5.2.4) (2018-02-16)
+
+
+
+<a name="5.2.3"></a>
+## [5.2.3](https://github.com/zkat/ssri/compare/v5.2.2...v5.2.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **hashes:** filter hash priority list by available hashes ([2fa30b8](https://github.com/zkat/ssri/commit/2fa30b8))
+* **integrityStream:** dedupe algorithms to generate ([d56c654](https://github.com/zkat/ssri/commit/d56c654))
+
+
+
+<a name="5.2.2"></a>
+## [5.2.2](https://github.com/zkat/ssri/compare/v5.2.1...v5.2.2) (2018-02-14)
+
+
+### Bug Fixes
+
+* **security:** tweak strict SRI regex ([#10](https://github.com/zkat/ssri/issues/10)) ([d0ebcdc](https://github.com/zkat/ssri/commit/d0ebcdc))
+
+
+
+<a name="5.2.1"></a>
+## [5.2.1](https://github.com/zkat/ssri/compare/v5.2.0...v5.2.1) (2018-02-06)
+
+
+
+<a name="5.2.0"></a>
+# [5.2.0](https://github.com/zkat/ssri/compare/v5.1.0...v5.2.0) (2018-02-06)
+
+
+### Features
+
+* **match:** add integrity.match() ([3c49cc4](https://github.com/zkat/ssri/commit/3c49cc4))
+
+
+
+<a name="5.1.0"></a>
+# [5.1.0](https://github.com/zkat/ssri/compare/v5.0.0...v5.1.0) (2018-01-18)
+
+
+### Bug Fixes
+
+* **checkStream:** integrityStream now takes opts.integrity algos into account ([d262910](https://github.com/zkat/ssri/commit/d262910))
+
+
+### Features
+
+* **sha3:** do some guesswork about upcoming sha3 ([7fdd9df](https://github.com/zkat/ssri/commit/7fdd9df))
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23)
+
+
+### Features
+
+* **license:** relicense to ISC (#9) ([c82983a](https://github.com/zkat/ssri/commit/c82983a))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+
+
+
<a name="4.1.6"></a>
## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07)
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md
index c05cb09586..8d28acf866 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/LICENSE.md
@@ -1,3 +1,16 @@
-To the extent possible under law, maintainers for this project have waived all copyright and related or neighboring rights to this project.
+ISC License
-For more information on this waiver, see: https://creativecommons.org/publicdomain/zero/1.0/
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-client/node_modules/ssri/README.md b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/README.md
index f2fc035da5..a6c07e7409 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/README.md
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/README.md
@@ -21,6 +21,7 @@ Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
* [`Integrity#concat`](#integrity-concat)
* [`Integrity#toString`](#integrity-to-string)
* [`Integrity#toJSON`](#integrity-to-json)
+ * [`Integrity#match`](#integrity-match)
* [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
* [`Integrity#hexDigest`](#integrity-hex-digest)
* Integrity Generation
@@ -218,6 +219,27 @@ const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3x
JSON.stringify(ssri.parse(integrity)) === integrity
```
+#### <a name="integrity-match"></a> `> Integrity#match(sri, [opts]) -> Hash | false`
+
+Returns the matching (truthy) hash if `Integrity` matches the argument passed as
+`sri`, which can be anything that [`parse`](#parse) will accept. `opts` will be
+passed through to `parse` and [`pickAlgorithm()`](#integrity-pick-algorithm).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+
+ssri.parse(integrity).match(integrity)
+// Hash {
+// digest: '9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+// algorithm: 'sha512'
+// }
+
+ssri.parse(integrity).match('sha1-deadbeef')
+// false
+```
+
#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
Returns the "best" algorithm from those available in the integrity object.
@@ -367,6 +389,9 @@ If `opts.pickAlgorithm` is provided, it will be used by
[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
the available digests to match against.
+If `opts.error` is true, and verification fails, `checkData` will throw either
+an `EBADSIZE` or an `EINTEGRITY` error, instead of just returning false.
+
##### Example
```javascript
@@ -374,6 +399,7 @@ const data = fs.readFileSync('index.js')
ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
ssri.checkData(data, 'sha1-BaDDigEST') // -> false
+ssri.checkData(data, 'sha1-BaDDigEST', {error: true}) // -> Error! EINTEGRITY
```
#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
@@ -423,7 +449,7 @@ ssri.checkStream(
) // -> Promise<Error<{code: 'EINTEGRITY'}>>
```
-#### <a name="integrity-stream"></a> `> integrityStream(sri, [opts]) -> IntegrityStream`
+#### <a name="integrity-stream"></a> `> integrityStream([opts]) -> IntegrityStream`
Returns a `Transform` stream that data can be piped through in order to generate
and optionally check data integrity for piped data. When the stream completes
@@ -458,5 +484,5 @@ may intentionally deprioritize algorithms with known vulnerabilities.
```javascript
const integrity = ssri.fromData(fs.readFileSync('index.js'))
fs.createReadStream('index.js')
-.pipe(ssri.checkStream(integrity))
+.pipe(ssri.integrityStream({integrity}))
```
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js
index 8ece662ba6..ff7881f7cb 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/index.js
@@ -9,7 +9,7 @@ const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
-const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/]+(?:=?=?))([?\x21-\x7E]*)$/
+const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/
const VCHAR_REGEX = /^[\x21-\x7E]+$/
class Hash {
@@ -93,6 +93,19 @@ class Integrity {
hexDigest () {
return parse(this, {single: true}).hexDigest()
}
+ match (integrity, opts) {
+ const other = parse(integrity, opts)
+ const algo = other.pickAlgorithm(opts)
+ return (
+ this[algo] &&
+ other[algo] &&
+ this[algo].find(hash =>
+ other[algo].find(otherhash =>
+ hash.digest === otherhash.digest
+ )
+ )
+ ) || false
+ }
pickAlgorithm (opts) {
const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
const keys = Object.keys(this)
@@ -203,11 +216,39 @@ module.exports.checkData = checkData
function checkData (data, sri, opts) {
opts = opts || {}
sri = parse(sri, opts)
- if (!Object.keys(sri).length) { return false }
+ if (!Object.keys(sri).length) {
+ if (opts.error) {
+ throw Object.assign(
+ new Error('No valid integrity hashes to check against'), {
+ code: 'EINTEGRITY'
+ }
+ )
+ } else {
+ return false
+ }
+ }
const algorithm = sri.pickAlgorithm(opts)
- const digests = sri[algorithm] || []
const digest = crypto.createHash(algorithm).update(data).digest('base64')
- return digests.find(hash => hash.digest === digest) || false
+ const newSri = parse({algorithm, digest})
+ const match = newSri.match(sri, opts)
+ if (match || !opts.error) {
+ return match
+ } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {
+ const err = new Error(`data size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${data.length}`)
+ err.code = 'EBADSIZE'
+ err.found = data.length
+ err.expected = opts.size
+ err.sri = sri
+ throw err
+ } else {
+ const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = sri
+ err.algorithm = algorithm
+ err.sri = sri
+ throw err
+ }
}
module.exports.checkStream = checkStream
@@ -237,7 +278,12 @@ function integrityStream (opts) {
const algorithm = goodSri && sri.pickAlgorithm(opts)
const digests = goodSri && sri[algorithm]
// Calculating stream
- const algorithms = opts.algorithms || [algorithm || 'sha512']
+ const algorithms = Array.from(
+ new Set(
+ (opts.algorithms || ['sha512'])
+ .concat(algorithm ? [algorithm] : [])
+ )
+ )
const hashes = algorithms.map(crypto.createHash)
let streamSize = 0
const stream = new Transform({
@@ -253,17 +299,8 @@ function integrityStream (opts) {
const newSri = parse(hashes.map((h, i) => {
return `${algorithms[i]}-${h.digest('base64')}${optString}`
}).join(' '), opts)
- const match = (
- // Integrity verification mode
- opts.integrity &&
- newSri[algorithm] &&
- digests &&
- digests.find(hash => {
- return newSri[algorithm].find(newhash => {
- return hash.digest === newhash.digest
- })
- })
- )
+ // Integrity verification mode
+ const match = goodSri && newSri.match(sri, opts)
if (typeof opts.size === 'number' && streamSize !== opts.size) {
const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
err.code = 'EBADSIZE'
@@ -323,10 +360,18 @@ function createIntegrity (opts) {
}
}
+const NODE_HASHES = new Set(crypto.getHashes())
+
// This is a Best Effortā„¢ at a reasonable priority for hash algos
const DEFAULT_PRIORITY = [
- 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
-]
+ 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
+ // TODO - it's unclear _which_ of these Node will actually use as its name
+ // for the algorithm, so we guesswork it based on the OpenSSL names.
+ 'sha3',
+ 'sha3-256', 'sha3-384', 'sha3-512',
+ 'sha3_256', 'sha3_384', 'sha3_512'
+].filter(algo => NODE_HASHES.has(algo))
+
function getPrioritizedHash (algo1, algo2) {
return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
? algo1
diff --git a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json
index ad7949d03e..182bdf10fa 100644
--- a/deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json
+++ b/deps/npm/node_modules/npm-registry-client/node_modules/ssri/package.json
@@ -1,27 +1,27 @@
{
- "_from": "ssri@^4.1.2",
- "_id": "ssri@4.1.6",
+ "_from": "ssri@^5.2.4",
+ "_id": "ssri@5.3.0",
"_inBundle": false,
- "_integrity": "sha512-WUbCdgSAMQjTFZRWvSPpauryvREEA+Krn19rx67UlJEJx/M192ZHxMmJXjZ4tkdFm+Sb0SXGlENeQVlA5wY7kA==",
+ "_integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
"_location": "/npm-registry-client/ssri",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
- "raw": "ssri@^4.1.2",
+ "raw": "ssri@^5.2.4",
"name": "ssri",
"escapedName": "ssri",
- "rawSpec": "^4.1.2",
+ "rawSpec": "^5.2.4",
"saveSpec": null,
- "fetchSpec": "^4.1.2"
+ "fetchSpec": "^5.2.4"
},
"_requiredBy": [
"/npm-registry-client"
],
- "_resolved": "https://registry.npmjs.org/ssri/-/ssri-4.1.6.tgz",
- "_shasum": "0cb49b6ac84457e7bdd466cb730c3cb623e9a25b",
- "_spec": "ssri@^4.1.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npm-registry-client",
+ "_resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "_shasum": "ba3872c9c6d33a0704a7d71ff045e5ec48999d06",
+ "_spec": "ssri@^5.2.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-client",
"author": {
"name": "Kat MarchƔn",
"email": "kzm@sykosomatic.org"
@@ -39,15 +39,15 @@
}
},
"dependencies": {
- "safe-buffer": "^5.1.0"
+ "safe-buffer": "^5.1.1"
},
"deprecated": false,
"description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
"devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
+ "nyc": "^11.4.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.0",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.8"
},
@@ -69,7 +69,7 @@
"sri generator",
"html"
],
- "license": "CC0-1.0",
+ "license": "ISC",
"main": "index.js",
"name": "ssri",
"repository": {
@@ -85,5 +85,5 @@
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "4.1.6"
+ "version": "5.3.0"
}
diff --git a/deps/npm/node_modules/npm-registry-client/package.json b/deps/npm/node_modules/npm-registry-client/package.json
index 619940a5e6..6058da582b 100644
--- a/deps/npm/node_modules/npm-registry-client/package.json
+++ b/deps/npm/node_modules/npm-registry-client/package.json
@@ -1,30 +1,33 @@
{
- "_from": "npm-registry-client@latest",
- "_id": "npm-registry-client@8.5.0",
+ "_args": [
+ [
+ "npm-registry-client@8.5.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-registry-client@8.5.1",
+ "_id": "npm-registry-client@8.5.1",
"_inBundle": false,
- "_integrity": "sha512-Nkcw24bfECKFNt0FLDQ+PjVqSlKxMggcboXiUBIvjbCnA15xjRO4kCwRDluGNXZjHFLx/vPjN4+ESXyVjpXLbQ==",
+ "_integrity": "sha512-7rjGF2eA7hKDidGyEWmHTiKfXkbrcQAsGL/Rh4Rt3x3YNRNHhwaTzVJfW3aNvvlhg4G62VCluif0sLCb/i51Hg==",
"_location": "/npm-registry-client",
"_phantomChildren": {
- "inherits": "2.0.3",
- "readable-stream": "2.3.3"
+ "safe-buffer": "5.1.2"
},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "npm-registry-client@latest",
+ "raw": "npm-registry-client@8.5.1",
"name": "npm-registry-client",
"escapedName": "npm-registry-client",
- "rawSpec": "latest",
+ "rawSpec": "8.5.1",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "8.5.1"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.0.tgz",
- "_shasum": "4878fb6fa1f18a5dc08ae83acf94d0d0112d7ed0",
- "_spec": "npm-registry-client@latest",
+ "_resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.5.1.tgz",
+ "_spec": "8.5.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -34,21 +37,20 @@
"bugs": {
"url": "https://github.com/npm/npm-registry-client/issues"
},
- "bundleDependencies": false,
"dependencies": {
"concat-stream": "^1.5.2",
"graceful-fs": "^4.1.6",
"normalize-package-data": "~1.0.1 || ^2.0.0",
- "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0",
+ "npm-package-arg": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
"npmlog": "2 || ^3.1.0 || ^4.0.0",
"once": "^1.3.3",
"request": "^2.74.0",
"retry": "^0.10.0",
+ "safe-buffer": "^5.1.1",
"semver": "2 >=2.2.1 || 3.x || 4 || 5",
"slide": "^1.1.3",
- "ssri": "^4.1.2"
+ "ssri": "^5.2.4"
},
- "deprecated": false,
"description": "Client for the npm registry",
"devDependencies": {
"negotiator": "^0.6.1",
@@ -56,8 +58,9 @@
"readable-stream": "^2.1.5",
"require-inject": "^1.4.0",
"rimraf": "^2.5.4",
- "standard": "^9.0.0",
- "tap": "^10.3.0"
+ "standard": "^11.0.0",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.2"
},
"files": [
"lib",
@@ -74,7 +77,11 @@
"url": "git+https://github.com/npm/npm-registry-client.git"
},
"scripts": {
- "test": "standard && tap test/*.js"
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap --nyc-arg=--all --coverage test/*.js"
},
- "version": "8.5.0"
+ "version": "8.5.1"
}
diff --git a/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md
new file mode 100644
index 0000000000..05d5741ee8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/CHANGELOG.md
@@ -0,0 +1,43 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/npm/registry-fetch/compare/v1.0.1...v1.1.0) (2018-03-16)
+
+
+### Features
+
+* **specs:** can use opts.spec to trigger pickManifest ([85c4ac9](https://github.com/npm/registry-fetch/commit/85c4ac9))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/npm/registry-fetch/compare/v1.0.0...v1.0.1) (2018-03-16)
+
+
+### Bug Fixes
+
+* **query:** oops console.log ([870e4f5](https://github.com/npm/registry-fetch/commit/870e4f5))
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2018-03-16)
+
+
+### Bug Fixes
+
+* **auth:** get auth working with all the little details ([84b94ba](https://github.com/npm/registry-fetch/commit/84b94ba))
+* **deps:** add bluebird as an actual dep ([1286e31](https://github.com/npm/registry-fetch/commit/1286e31))
+* **errors:** Unknown auth errors use default code ([#1](https://github.com/npm/registry-fetch/issues/1)) ([3d91b93](https://github.com/npm/registry-fetch/commit/3d91b93))
+* **standard:** remove args from invocation ([9620a0a](https://github.com/npm/registry-fetch/commit/9620a0a))
+
+
+### Features
+
+* **api:** baseline kinda-working API impl ([bf91f9f](https://github.com/npm/registry-fetch/commit/bf91f9f))
+* **body:** automatic handling of different opts.body values ([f3b97db](https://github.com/npm/registry-fetch/commit/f3b97db))
+* **config:** nicer input config input handling ([b9ce21d](https://github.com/npm/registry-fetch/commit/b9ce21d))
+* **opts:** use figgy-pudding for opts handling ([0abd527](https://github.com/npm/registry-fetch/commit/0abd527))
+* **query:** add query utility support ([65ea8b1](https://github.com/npm/registry-fetch/commit/65ea8b1))
diff --git a/deps/npm/node_modules/npm-registry-fetch/LICENSE.md b/deps/npm/node_modules/npm-registry-fetch/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-fetch/README.md b/deps/npm/node_modules/npm-registry-fetch/README.md
new file mode 100644
index 0000000000..4947dc891f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/README.md
@@ -0,0 +1,548 @@
+# npm-registry-fetch [![npm version](https://img.shields.io/npm/v/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![license](https://img.shields.io/npm/l/npm-registry-fetch.svg)](https://npm.im/npm-registry-fetch) [![Travis](https://img.shields.io/travis/npm/npm-registry-fetch/latest.svg)](https://travis-ci.org/npm/npm-registry-fetch) [![AppVeyor](https://img.shields.io/appveyor/ci/zkat/npm-registry-fetch/latest.svg)](https://ci.appveyor.com/project/npm/npm-registry-fetch) [![Coverage Status](https://coveralls.io/repos/github/npm/npm-registry-fetch/badge.svg?branch=latest)](https://coveralls.io/github/npm/npm-registry-fetch?branch=latest)
+
+[`npm-registry-fetch`](https://github.com/npm/npm-registry-fetch) is a Node.js
+library that implements a `fetch`-like API for accessing npm registry APIs
+consistently. It's able to consume npm-style configuration values and has all
+the necessary logic for picking registries, handling scopes, and dealing with
+authentication details built-in.
+
+This package is meant to replace the older
+[`npm-registry-client`](https://npm.im/npm-registry-client).
+
+## Example
+
+```javascript
+const npmFetch = require('npm-registry-fetch')
+
+console.log(
+ await npmFetch.json('/-/ping')
+)
+```
+
+## Table of Contents
+
+* [Installing](#install)
+* [Example](#example)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`fetch`](#fetch)
+ * [`fetch.json`](#fetch-json)
+ * [`fetch` options](#fetch-opts)
+
+### Install
+
+`$ npm install npm-registry-fetch`
+
+### Contributing
+
+The npm team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of
+Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="fetch"></a> `> fetch(url, [opts]) -> Promise<Response>`
+
+Performs a request to a given URL.
+
+The URL can be either a full URL, or a path to one. The appropriate registry
+will be automatically picked if only a URL path is given.
+
+For available options, please see the section on [`fetch` options](#fetch-opts).
+
+##### Example
+
+```javascript
+const res = await fetch('/-/ping')
+console.log(res.headers)
+res.on('data', d => console.log(d.toString('utf8')))
+```
+
+#### <a name="fetch-json"></a> `> fetch.json(url, [opts]) -> Promise<ResponseJSON>`
+
+Performs a request to a given registry URL, parses the body of the response as
+JSON, and returns it as its final value. This is a utility shorthand for
+`fetch(url).then(res => res.json())`.
+
+For available options, please see the section on [`fetch` options](#fetch-opts).
+
+##### Example
+
+```javascript
+const res = await fetch.json('/-/ping')
+console.log(res) // Body parsed as JSON
+```
+
+#### <a name="fetch-opts"></a> `fetch` Options
+
+Fetch options are optional, and can be passed in as either a Map-like object
+(one with a `.get()` method), a plain javascript object, or a
+[`figgy-pudding`](https://npm.im/figgy-pudding) instance.
+
+##### <a name="opts-auth-token"></a> `opts._authToken`
+
+* Type: String
+* Default: null
+
+Authentication token string.
+
+Can be scoped to a registry by using a "nerf dart" for that registry. That is:
+
+```
+{
+ '//registry.npmjs.org/:_authToken': 't0k3nH34r'
+}
+```
+
+##### <a name="opts-agent"></a> `opts.agent`
+
+* Type: http.Agent
+* Default: an appropriate agent based on URL protocol and proxy settings
+
+An [`Agent`](https://nodejs.org/api/http.html#http_class_http_agent) instance to
+be shared across requests. This allows multiple concurrent `fetch` requests to
+happen on the same socket.
+
+You do _not_ need to provide this option unless you want something particularly
+specialized, since proxy configurations and http/https agents are already
+automatically managed internally when this option is not passed through.
+
+##### <a name="opts-body"></a> `opts.body`
+
+* Type: Buffer | Stream | Object
+* Default: null
+
+Request body to send through the outgoing request. Buffers and Streams will be
+passed through as-is, with a default `content-type` of
+`application/octet-stream`. Plain JavaScript objects will be `JSON.stringify`ed
+and the `content-type` will default to `application/json`.
+
+Use [`opts.headers`](#opts-headers) to set the content-type to something else.
+
+##### <a name="opts-ca"></a> `opts.ca`
+
+* Type: String, Array, or null
+* Default: null
+
+The Certificate Authority signing certificate that is trusted for SSL
+connections to the registry. Values should be in PEM format (Windows calls it
+"Base-64 encoded X.509 (.CER)") with newlines replaced by the string `'\n'`. For
+example:
+
+```
+{
+ ca: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----'
+}
+```
+
+Set to `null` to only allow "known" registrars, or to a specific CA cert
+to trust only that specific signing authority.
+
+Multiple CAs can be trusted by specifying an array of certificates instead of a
+single string.
+
+See also [`opts.strict-ssl`](#opts-strict-ssl), [`opts.ca`](#opts-ca) and
+[`opts.key`](#opts-key)
+
+##### <a name="opts-cache"></a> `opts.cache`
+
+* Type: path
+* Default: null
+
+The location of the http cache directory. If provided, certain cachable requests
+will be cached according to [IETF RFC 7234](https://tools.ietf.org/html/rfc7234)
+rules. This will speed up future requests, as well as make the cached data
+available offline if necessary/requested.
+
+See also [`offline`](#opts-offline), [`prefer-offline`](#opts-prefer-offline),
+and [`prefer-online`](#opts-prefer-online).
+
+##### <a name="opts-cert"></a> `opts.cert`
+
+* Type: String
+* Default: null
+
+A client certificate to pass when accessing the registry. Values should be in
+PEM format (Windows calls it "Base-64 encoded X.509 (.CER)") with newlines
+replaced by the string `'\n'`. For example:
+
+```
+{
+ cert: '-----BEGIN CERTIFICATE-----\nXXXX\nXXXX\n-----END CERTIFICATE-----'
+}
+```
+
+It is _not_ the path to a certificate file (and there is no "certfile" option).
+
+See also: [`opts.ca`](#opts-ca) and [`opts.key`](#opts-key)
+
+##### <a name="opts-fetch-retries"></a> `opts.fetch-retries`
+
+* Type: Number
+* Default: 2
+
+The "retries" config for [`retry`](https://npm.im/retry) to use when fetching
+packages from the registry.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-factor"></a> `opts.fetch-retry-factor`
+
+* Type: Number
+* Default: 10
+
+The "factor" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-mintimeout"></a> `opts.fetch-retry-mintimeout`
+
+* Type: Number
+* Default: 10000 (10 seconds)
+
+The "minTimeout" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-fetch-retry-maxtimeout"></a> `opts.fetch-retry-maxtimeout`
+
+* Type: Number
+* Default: 60000 (1 minute)
+
+The "maxTimeout" config for [`retry`](https://npm.im/retry) to use when fetching
+packages.
+
+See also [`opts.retry`](#opts-retry) to provide all retry options as a single
+object.
+
+##### <a name="opts-headers"></a> `opts.headers`
+
+* Type: Object
+* Default: null
+
+Additional headers for the outgoing request. This option can also be used to
+override headers automatically generated by `npm-registry-fetch`, such as
+`Content-Type`.
+
+##### <a name="opts-integrity"></a> `opts.integrity`
+
+* Type: String | [SRI object](https://npm.im/ssri)
+* Default: null
+
+If provided, the response body's will be verified against this integrity string,
+using [`ssri`](https://npm.im/ssri). If verification succeeds, the response will
+complete as normal. If verification fails, the response body will error with an
+`EINTEGRITY` error.
+
+Body integrity is only verified if the body is actually consumed to completion --
+that is, if you use `res.json()`/`res.buffer()`, or if you consume the default
+`res` stream data to its end.
+
+Cached data will have its integrity automatically verified using the
+previously-generated integrity hash for the saved request information, so
+`EINTEGRITY` errors can happen if [`opts.cache`](#opts-cache) is used, even if
+`opts.integrity` is not passed in.
+
+##### <a name='opts-is-from-ci'></a> `opts.is-from-ci`
+
+* Alias: `opts.isFromCI`
+* Type: Boolean
+* Default: Based on environment variables
+
+This is used to populate the `npm-in-ci` request header sent to the registry.
+
+##### <a name="opts-key"></a> `opts.key`
+
+* Type: String
+* Default: null
+
+A client key to pass when accessing the registry. Values should be in PEM
+format with newlines replaced by the string `'\n'`. For example:
+
+```
+{
+ key: '-----BEGIN PRIVATE KEY-----\nXXXX\nXXXX\n-----END PRIVATE KEY-----'
+}
+```
+
+It is _not_ the path to a key file (and there is no "keyfile" option).
+
+See also: [`opts.ca`](#opts-ca) and [`opts.cert`](#opts-cert)
+
+##### <a name="opts-local-address"></a> `opts.local-address`
+
+* Type: IP Address String
+* Default: null
+
+The IP address of the local interface to use when making connections
+to the registry.
+
+See also [`opts.proxy`](#opts-proxy)
+
+##### <a name="opts-log"></a> `opts.log`
+
+* Type: [`npmlog`](https://npm.im/npmlog)-like
+* Default: null
+
+Logger object to use for logging operation details. Must have the same methods
+as `npmlog`.
+
+##### <a name="opts-maxsockets"></a> `opts.maxsockets`
+
+* Alias: `opts.max-sockets`
+* Type: Integer
+* Default: 12
+
+Maximum number of sockets to keep open during requests. Has no effect if
+[`opts.agent`](#opts-agent) is used.
+
+##### <a name="opts-method"></a> `opts.method`
+
+* Type: String
+* Default: 'GET'
+
+HTTP method to use for the outgoing request. Case-insensitive.
+
+##### <a name="opts-noproxy"></a> `opts.noproxy`
+
+* Type: Boolean
+* Default: process.env.NOPROXY
+
+If true, proxying will be disabled even if [`opts.proxy`](#opts-proxy) is used.
+
+##### <a name="opts-npm-session"></a> `opts.npm-session`
+
+* Alias: `opts.npmSession`
+* Type: String
+* Default: null
+
+If provided, will be sent in the `npm-session` header. This header is used by
+the npm registry to identify individual user sessions (usually individual
+invocations of the CLI).
+
+##### <a name="opts-offline"></a> `opts.offline`
+
+* Type: Boolean
+* Default: false
+
+Force offline mode: no network requests will be done during install. To allow
+`npm-registry-fetch` to fill in missing cache data, see
+[`opts.prefer-offline`](#opts-prefer-offline).
+
+This option is only really useful if you're also using
+[`opts.cache`](#opts-cache).
+
+##### <a name="opts-otp"></a> `opts.otp`
+
+* Type: Number | String
+* Default: null
+
+This is a one-time password from a two-factor authenticator. It is required for
+certain registry interactions when two-factor auth is enabled for a user
+account.
+
+##### <a name="opts-password"></a> `opts.password`
+
+* Alias: _password
+* Type: String
+* Default: null
+
+Password used for basic authentication. For the more modern authentication
+method, please use the (more secure) [`opts._authToken`](#opts-auth-token)
+
+Can optionally be scoped to a registry by using a "nerf dart" for that registry.
+That is:
+
+```
+{
+ '//registry.npmjs.org/:password': 't0k3nH34r'
+}
+```
+
+See also [`opts.username`](#opts-username)
+
+##### <a name="opts-prefer-offline"></a> `opts.prefer-offline`
+
+* Type: Boolean
+* Default: false
+
+If true, staleness checks for cached data will be bypassed, but missing data
+will be requested from the server. To force full offline mode, use
+[`opts.offline`](#opts-offline).
+
+This option is generally only useful if you're also using
+[`opts.cache`](#opts-cache).
+
+##### <a name="opts-prefer-online"></a> `opts.prefer-online`
+
+* Type: Boolean
+* Default: false
+
+If true, staleness checks for cached data will be forced, making the CLI look
+for updates immediately even for fresh package data.
+
+This option is generally only useful if you're also using
+[`opts.cache`](#opts-cache).
+
+
+##### <a name="opts-project-scope"></a> `opts.project-scope`
+
+* Alias: `opts.projectScope`
+* Type: String
+* Default: null
+
+If provided, will be sent in the `npm-scope` header. This header is used by the
+npm registry to identify the toplevel package scope that a particular project
+installation is using.
+
+##### <a name="opts-proxy"></a> `opts.proxy`
+
+* Type: url
+* Default: null
+
+A proxy to use for outgoing http requests. If not passed in, the `HTTP(S)_PROXY`
+environment variable will be used.
+
+##### <a name="opts-query"></a> `opts.query`
+
+* Type: String | Object
+* Default: null
+
+If provided, the request URI will have a query string appended to it using this
+query. If `opts.query` is an object, it will be converted to a query string
+using
+[`querystring.stringify()`](https://nodejs.org/api/querystring.html#querystring_querystring_stringify_obj_sep_eq_options).
+
+If the request URI already has a query string, it will be merged with
+`opts.query`, preferring `opts.query` values.
+
+##### <a name="opts-refer"></a> `opts.refer`
+
+* Alias: `opts.referer`
+* Type: String
+* Default: null
+
+Value to use for the `Referer` header. The npm CLI itself uses this to serialize
+the npm command line using the given request.
+
+##### <a name="opts-registry"></a> `opts.registry`
+
+* Type: URL
+* Default: `'https://registry.npmjs.org'`
+
+Registry configuration for a request. If a request URL only includes the URL
+path, this registry setting will be prepended. This configuration is also used
+to determine authentication details, so even if the request URL references a
+completely different host, `opts.registry` will be used to find the auth details
+for that request.
+
+See also [`opts.scope`](#opts-scope), [`opts.spec`](#opts-spec), and
+[`opts.<scope>:registry`](#opts-scope-registry) which can all affect the actual
+registry URL used by the outgoing request.
+
+##### <a name="opts-retry"></a> `opts.retry`
+
+* Type: Object
+* Default: null
+
+Single-object configuration for request retry settings. If passed in, will
+override individually-passed `fetch-retry-*` settings.
+
+##### <a name="opts-scope"></a> `opts.scope`
+
+* Type: String
+* Default: null
+
+Associate an operation with a scope for a scoped registry. This option can force
+lookup of scope-specific registries and authentication.
+
+See also [`opts.<scope>:registry`](#opts-scope-registry) and
+[`opts.spec`](#opts-spec) for interactions with this option.
+
+##### <a name="opts-scope-registry"></a> `opts.<scope>:registry`
+
+* Type: String
+* Default: null
+
+This option type can be used to configure the registry used for requests
+involving a particular scope. For example, `opts['@myscope:registry'] =
+'https://scope-specific.registry/'` will make it so requests go out to this
+registry instead of [`opts.registry`](#opts-registry) when
+[`opts.scope`](#opts-scope) is used, or when [`opts.spec`](#opts-spec) is a
+scoped package spec.
+
+The `@` before the scope name is optional, but recommended.
+
+##### <a name="opts-spec"></a> `opts.spec`
+
+* Type: String | [`npm-registry-arg`](https://npm.im/npm-registry-arg) object.
+* Default: null
+
+If provided, can be used to automatically configure [`opts.scope`](#opts-scope)
+based on a specific package name. Non-registry package specs will throw an
+error.
+
+##### <a name="opts-strict-ssl"></a> `opts.strict-ssl`
+
+* Type: Boolean
+* Default: true
+
+Whether or not to do SSL key validation when making requests to the
+registry via https.
+
+See also [`opts.ca`](#opts-ca).
+
+##### <a name="opts-timeout"></a> `opts.timeout`
+
+* Type: Milliseconds
+* Default: 30000 (30 seconds)
+
+Time before a hanging request times out.
+
+##### <a name="opts-user-agent"></a> `opts.user-agent`
+
+* Type: String
+* Default: `'npm-registry-fetch@<version>/node@<node-version>+<arch> (<platform>)'`
+
+User agent string to send in the `User-Agent` header.
+
+##### <a name="opts-username"></a> `opts.username`
+
+* Type: String
+* Default: null
+
+Username used for basic authentication. For the more modern authentication
+method, please use the (more secure) [`opts._authToken`](#opts-auth-token)
+
+Can optionally be scoped to a registry by using a "nerf dart" for that registry.
+That is:
+
+```
+{
+ '//registry.npmjs.org/:username': 't0k3nH34r'
+}
+```
+
+See also [`opts.password`](#opts-password)
+
+##### <a name="opts-auth"></a> `opts._auth`
+
+* Type: String
+* Default: null
+
+** DEPRECATED ** This is a legacy authentication token supported only for
+*compatibility. Please us [`opts._authToken`](#opts-auth-token) instead.
diff --git a/deps/npm/node_modules/npm-registry-fetch/auth.js b/deps/npm/node_modules/npm-registry-fetch/auth.js
new file mode 100644
index 0000000000..f4f7316db1
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/auth.js
@@ -0,0 +1,47 @@
+'use strict'
+
+const config = require('./config.js')
+const url = require('url')
+
+module.exports = getAuth
+function getAuth (registry, opts) {
+ if (!registry) { throw new Error('registry is required') }
+ opts = config(opts)
+ let AUTH = {}
+ const regKey = registry && registryKey(registry)
+ const doKey = (key, alias) => addKey(opts, AUTH, regKey, key, alias)
+ doKey('_authToken', 'token')
+ doKey('username')
+ doKey('password')
+ doKey('_password', 'password')
+ doKey('email')
+ doKey('_auth')
+ doKey('otp')
+ doKey('always-auth', 'alwaysAuth')
+ if (AUTH.password) {
+ AUTH.password = Buffer.from(AUTH.password, 'base64').toString('utf8')
+ }
+ AUTH.alwaysAuth = AUTH.alwaysAuth === 'false' ? false : !!AUTH.alwaysAuth
+ return AUTH
+}
+
+function addKey (opts, obj, scope, key, objKey) {
+ if (opts.get(key)) {
+ obj[objKey || key] = opts.get(key)
+ }
+ if (scope && opts.get(`${scope}:${key}`)) {
+ obj[objKey || key] = opts.get(`${scope}:${key}`)
+ }
+}
+
+// Called a nerf dart in the main codebase. Used as a "safe"
+// key when fetching registry info from config.
+function registryKey (registry) {
+ const parsed = url.parse(registry)
+ const formatted = url.format({
+ host: parsed.host,
+ pathname: parsed.pathname,
+ slashes: parsed.slashes
+ })
+ return url.resolve(formatted, '.')
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/check-response.js b/deps/npm/node_modules/npm-registry-fetch/check-response.js
new file mode 100644
index 0000000000..407a80e4ce
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/check-response.js
@@ -0,0 +1,99 @@
+'use strict'
+
+const config = require('./config.js')
+const errors = require('./errors.js')
+const LRU = require('lru-cache')
+
+module.exports = checkResponse
+function checkResponse (method, res, registry, startTime, opts) {
+ opts = config(opts)
+ if (res.headers.has('npm-notice') && !res.headers.has('x-local-cache')) {
+ opts.get('log').notice('', res.headers.get('npm-notice'))
+ }
+ checkWarnings(res, registry, opts)
+ if (res.status >= 400) {
+ logRequest(method, res, startTime, opts)
+ return checkErrors(method, res, startTime, opts)
+ } else {
+ res.body.on('end', () => logRequest(method, res, startTime, opts))
+ return res
+ }
+}
+
+function logRequest (method, res, startTime, opts) {
+ const elapsedTime = Date.now() - startTime
+ const attempt = res.headers.get('x-fetch-attempts')
+ const attemptStr = attempt && attempt > 1 ? ` attempt #${attempt}` : ''
+ const cacheStr = res.headers.get('x-local-cache') ? ' (from cache)' : ''
+ opts.get('log').http(
+ 'fetch',
+ `${method.toUpperCase()} ${res.status} ${res.url} ${elapsedTime}ms${attemptStr}${cacheStr}`
+ )
+}
+
+const WARNING_REGEXP = /^\s*(\d{3})\s+(\S+)\s+"(.*)"\s+"([^"]+)"/
+const BAD_HOSTS = new LRU({ max: 50 })
+
+function checkWarnings (res, registry, opts) {
+ if (res.headers.has('warning') && !BAD_HOSTS.has(registry)) {
+ const warnings = {}
+ res.headers.raw()['warning'].forEach(w => {
+ const match = w.match(WARNING_REGEXP)
+ if (match) {
+ warnings[match[1]] = {
+ code: match[1],
+ host: match[2],
+ message: match[3],
+ date: new Date(match[4])
+ }
+ }
+ })
+ BAD_HOSTS.set(registry, true)
+ if (warnings['199']) {
+ if (warnings['199'].message.match(/ENOTFOUND/)) {
+ opts.get('log').warn('registry', `Using stale data from ${registry} because the host is inaccessible -- are you offline?`)
+ } else {
+ opts.get('log').warn('registry', `Unexpected warning for ${registry}: ${warnings['199'].message}`)
+ }
+ }
+ if (warnings['111']) {
+ // 111 Revalidation failed -- we're using stale data
+ opts.get('log').warn(
+ 'registry',
+ `Using stale data from ${registry} due to a request error during revalidation.`
+ )
+ }
+ }
+}
+
+function checkErrors (method, res, startTime, opts) {
+ return res.buffer()
+ .catch(() => null)
+ .then(body => {
+ try {
+ body = JSON.parse(body.toString('utf8'))
+ } catch (e) {}
+ if (res.status === 401 && res.headers.get('www-authenticate')) {
+ const auth = res.headers.get('www-authenticate')
+ .split(/,\s*/)
+ .map(s => s.toLowerCase())
+ if (auth.indexOf('ipaddress') !== -1) {
+ throw new errors.HttpErrorAuthIPAddress(
+ method, res, body, opts.spec
+ )
+ } else if (auth.indexOf('otp') !== -1) {
+ throw new errors.HttpErrorAuthOTP(
+ method, res, body, opts.spec
+ )
+ } else {
+ throw new errors.HttpErrorAuthUnknown(
+ method, res, body, opts.spec
+ )
+ }
+ } else {
+ throw new errors.HttpErrorGeneral(
+ method, res, body, opts.spec
+ )
+ }
+ })
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/config.js b/deps/npm/node_modules/npm-registry-fetch/config.js
new file mode 100644
index 0000000000..6249f66e05
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/config.js
@@ -0,0 +1,94 @@
+'use strict'
+
+const pkg = require('./package.json')
+const pudding = require('figgy-pudding')
+const silentLog = require('./silentlog.js')
+
+const AUTH_REGEX = /^(?:.*:)?(_authToken|username|_password|password|email|always-auth|_auth|otp)$/
+const SCOPE_REGISTRY_REGEX = /@.*:registry$/gi
+const RegFetchConfig = pudding({
+ 'agent': {},
+ 'algorithms': {},
+ 'body': {},
+ 'ca': {},
+ 'cache': {},
+ 'cert': {},
+ 'fetch-retries': {},
+ 'fetch-retry-factor': {},
+ 'fetch-retry-maxtimeout': {},
+ 'fetch-retry-mintimeout': {},
+ 'gid': {},
+ 'headers': {},
+ 'integrity': {},
+ 'is-from-ci': 'isFromCI',
+ 'isFromCI': {
+ default () {
+ return (
+ process.env['CI'] === 'true' ||
+ process.env['TDDIUM'] ||
+ process.env['JENKINS_URL'] ||
+ process.env['bamboo.buildKey'] ||
+ process.env['GO_PIPELINE_NAME']
+ )
+ }
+ },
+ 'key': {},
+ 'local-address': {},
+ 'log': {
+ default: silentLog
+ },
+ 'max-sockets': 'maxsockets',
+ 'maxsockets': {
+ default: 12
+ },
+ 'memoize': {},
+ 'method': {
+ default: 'GET'
+ },
+ 'noproxy': {},
+ 'npm-session': 'npmSession',
+ 'npmSession': {},
+ 'offline': {},
+ 'otp': {},
+ 'prefer-offline': {},
+ 'prefer-online': {},
+ 'projectScope': {},
+ 'project-scope': 'projectScope',
+ 'Promise': {},
+ 'proxy': {},
+ 'query': {},
+ 'refer': {},
+ 'referer': 'refer',
+ 'registry': {
+ default: 'https://registry.npmjs.org/'
+ },
+ 'retry': {},
+ 'scope': {},
+ 'spec': {},
+ 'strict-ssl': {},
+ 'timeout': {},
+ 'uid': {},
+ 'user-agent': {
+ default: `${
+ pkg.name
+ }@${
+ pkg.version
+ }/node@${
+ process.version
+ }+${
+ process.arch
+ } (${
+ process.platform
+ })`
+ }
+}, {
+ other (key) {
+ return key.match(AUTH_REGEX) || key.match(SCOPE_REGISTRY_REGEX)
+ }
+})
+
+module.exports = config
+function config (opts) {
+ opts = opts || {}
+ return RegFetchConfig(opts, opts.config)
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/errors.js b/deps/npm/node_modules/npm-registry-fetch/errors.js
new file mode 100644
index 0000000000..217f46f977
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/errors.js
@@ -0,0 +1,58 @@
+'use strict'
+
+class HttpErrorBase extends Error {
+ constructor (method, res, body, spec) {
+ super()
+ this.headers = res.headers.raw()
+ this.statusCode = res.status
+ this.code = `E${res.status}`
+ this.method = method
+ this.uri = res.url
+ this.body = body
+ }
+}
+module.exports.HttpErrorBase = HttpErrorBase
+
+class HttpErrorGeneral extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = `${res.status} ${res.statusText} - ${
+ this.method.toUpperCase()
+ } ${
+ this.spec || this.uri
+ }${
+ (body && body.error) ? ' - ' + body.error : ''
+ }`
+ Error.captureStackTrace(this, HttpErrorGeneral)
+ }
+}
+module.exports.HttpErrorGeneral = HttpErrorGeneral
+
+class HttpErrorAuthOTP extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'OTP required for authentication'
+ this.code = 'EOTP'
+ Error.captureStackTrace(this, HttpErrorAuthOTP)
+ }
+}
+module.exports.HttpErrorAuthOTP = HttpErrorAuthOTP
+
+class HttpErrorAuthIPAddress extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'Login is not allowed from your IP address'
+ this.code = 'EAUTHIP'
+ Error.captureStackTrace(this, HttpErrorAuthIPAddress)
+ }
+}
+module.exports.HttpErrorAuthIPAddress = HttpErrorAuthIPAddress
+
+class HttpErrorAuthUnknown extends HttpErrorBase {
+ constructor (method, res, body, spec) {
+ super(method, res, body, spec)
+ this.message = 'Unable to authenticate, need: ' + res.headers.get('www-authenticate')
+ Error.captureStackTrace(this, HttpErrorAuthUnknown)
+ }
+}
+module.exports.HttpErrorAuthUnknown = HttpErrorAuthUnknown
diff --git a/deps/npm/node_modules/npm-registry-fetch/index.js b/deps/npm/node_modules/npm-registry-fetch/index.js
new file mode 100644
index 0000000000..cf6e8d3bf3
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/index.js
@@ -0,0 +1,166 @@
+'use strict'
+
+const Buffer = require('safe-buffer').Buffer
+
+const checkResponse = require('./check-response.js')
+const config = require('./config.js')
+const getAuth = require('./auth.js')
+const fetch = require('make-fetch-happen')
+const npa = require('npm-package-arg')
+const qs = require('querystring')
+const silentLog = require('./silentlog.js')
+const url = require('url')
+
+module.exports = regFetch
+function regFetch (uri, opts) {
+ opts = config(Object.assign({
+ log: silentLog
+ }, opts))
+ const registry = (
+ (opts.get('spec') && pickRegistry(opts.get('spec'), opts)) ||
+ opts.get('registry') ||
+ 'https://registry.npmjs.org/'
+ )
+ uri = url.parse(uri).protocol
+ ? uri
+ : `${
+ registry.trim().replace(/\/?$/g, '')
+ }/${
+ uri.trim().replace(/^\//, '')
+ }`
+ // through that takes into account the scope, the prefix of `uri`, etc
+ const startTime = Date.now()
+ const headers = getHeaders(registry, uri, opts)
+ let body = opts.get('body')
+ const bodyIsStream = body &&
+ typeof body === 'object' &&
+ typeof body.pipe === 'function'
+ if (body && !bodyIsStream && typeof body !== 'string' && !Buffer.isBuffer(body)) {
+ headers['content-type'] = headers['content-type'] || 'application/json'
+ body = JSON.stringify(body)
+ } else if (body && !headers['content-type']) {
+ headers['content-type'] = 'application/octet-stream'
+ }
+ if (opts.get('query')) {
+ let q = opts.get('query')
+ if (typeof q === 'string') {
+ q = qs.parse(q)
+ }
+ const parsed = url.parse(uri)
+ parsed.search = '?' + qs.stringify(
+ parsed.query
+ ? Object.assign(qs.parse(parsed.query), q)
+ : q
+ )
+ uri = url.format(parsed)
+ }
+ return fetch(uri, {
+ agent: opts.get('agent'),
+ algorithms: opts.get('algorithms'),
+ body,
+ cache: getCacheMode(opts),
+ cacheManager: opts.get('cache'),
+ ca: opts.get('ca'),
+ cert: opts.get('cert'),
+ headers,
+ integrity: opts.get('integrity'),
+ key: opts.get('key'),
+ localAddress: opts.get('local-address'),
+ maxSockets: opts.get('maxsockets'),
+ memoize: opts.get('memoize'),
+ method: opts.get('method') || 'GET',
+ noProxy: opts.get('noproxy'),
+ Promise: opts.get('Promise'),
+ proxy: opts.get('proxy'),
+ referer: opts.get('refer'),
+ retry: opts.get('retry') || {
+ retries: opts.get('fetch-retries'),
+ factor: opts.get('fetch-retry-factor'),
+ minTimeout: opts.get('fetch-retry-mintimeout'),
+ maxTimeout: opts.get('fetch-retry-maxtimeout')
+ },
+ strictSSL: !!opts.get('strict-ssl'),
+ timeout: opts.get('timeout'),
+ uid: opts.get('uid'),
+ gid: opts.get('gid')
+ }).then(res => checkResponse(
+ opts.get('method') || 'GET', res, registry, startTime, opts
+ ))
+}
+
+module.exports.json = fetchJSON
+function fetchJSON (uri, opts) {
+ return regFetch(uri, opts).then(res => res.json())
+}
+
+module.exports.pickRegistry = pickRegistry
+function pickRegistry (spec, opts) {
+ spec = npa(spec)
+ opts = config(opts)
+ if (!spec.registry) {
+ throw new Error(`${spec} is not a valid registry dependency spec`)
+ }
+ let registry = spec.scope &&
+ opts.get(spec.scope.replace(/^@?/, '@') + ':registry')
+
+ if (!registry && opts.get('scope')) {
+ registry = opts.get(
+ opts.get('scope').replace(/^@?/, '@') + ':registry'
+ )
+ }
+
+ if (!registry) {
+ registry = opts.get('registry') || 'https://registry.npmjs.org/'
+ }
+
+ return registry
+}
+
+function getCacheMode (opts) {
+ return opts.get('offline')
+ ? 'only-if-cached'
+ : opts.get('prefer-offline')
+ ? 'force-cache'
+ : opts.get('prefer-online')
+ ? 'no-cache'
+ : 'default'
+}
+
+function getHeaders (registry, uri, opts) {
+ const headers = Object.assign({
+ 'npm-in-ci': !!(
+ opts.get('is-from-ci') ||
+ process.env['CI'] === 'true' ||
+ process.env['TDDIUM'] ||
+ process.env['JENKINS_URL'] ||
+ process.env['bamboo.buildKey'] ||
+ process.env['GO_PIPELINE_NAME']
+ ),
+ 'npm-scope': opts.get('project-scope'),
+ 'npm-session': opts.get('npm-session'),
+ 'user-agent': opts.get('user-agent'),
+ 'referer': opts.get('refer')
+ }, opts.get('headers'))
+
+ const auth = getAuth(registry, opts)
+ // If a tarball is hosted on a different place than the manifest, only send
+ // credentials on `alwaysAuth`
+ const shouldAuth = (
+ auth.alwaysAuth ||
+ url.parse(uri).host === url.parse(registry).host
+ )
+ if (shouldAuth && auth.token) {
+ headers.authorization = `Bearer ${auth.token}`
+ } else if (shouldAuth && auth.username && auth.password) {
+ const encoded = Buffer.from(
+ `${auth.username}:${auth.password}`, 'utf8'
+ ).toString('base64')
+ headers.authorization = `Basic ${encoded}`
+ } else if (shouldAuth && auth._auth) {
+ headers.authorization = `Basic ${auth._auth}`
+ }
+ if (shouldAuth && auth.otp) {
+ headers['npm-otp'] = auth.otp
+ }
+ return headers
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md
new file mode 100644
index 0000000000..5c3e7911db
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/CHANGELOG.md
@@ -0,0 +1,478 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="10.0.4"></a>
+## [10.0.4](https://github.com/zkat/cacache/compare/v10.0.3...v10.0.4) (2018-02-16)
+
+
+
+<a name="10.0.3"></a>
+## [10.0.3](https://github.com/zkat/cacache/compare/v10.0.2...v10.0.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **content:** rethrow aggregate errors as ENOENT ([fa918f5](https://github.com/zkat/cacache/commit/fa918f5))
+
+
+
+<a name="10.0.2"></a>
+## [10.0.2](https://github.com/zkat/cacache/compare/v10.0.1...v10.0.2) (2018-01-07)
+
+
+### Bug Fixes
+
+* **ls:** deleted entries could cause a premature stream EOF ([347dc36](https://github.com/zkat/cacache/commit/347dc36))
+
+
+
+<a name="10.0.1"></a>
+## [10.0.1](https://github.com/zkat/cacache/compare/v10.0.0...v10.0.1) (2017-11-15)
+
+
+### Bug Fixes
+
+* **move-file:** actually use the fallback to `move-concurrently` (#110) ([073fbe1](https://github.com/zkat/cacache/commit/073fbe1))
+
+
+
+<a name="10.0.0"></a>
+# [10.0.0](https://github.com/zkat/cacache/compare/v9.3.0...v10.0.0) (2017-10-23)
+
+
+### Features
+
+* **license:** relicense to ISC (#111) ([fdbb4e5](https://github.com/zkat/cacache/commit/fdbb4e5))
+
+
+### Performance Improvements
+
+* more copyFile benchmarks ([63787bb](https://github.com/zkat/cacache/commit/63787bb))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+
+
+
+<a name="9.3.0"></a>
+# [9.3.0](https://github.com/zkat/cacache/compare/v9.2.9...v9.3.0) (2017-10-07)
+
+
+### Features
+
+* **copy:** added cacache.get.copy api for fast copies (#107) ([067b5f6](https://github.com/zkat/cacache/commit/067b5f6))
+
+
+
+<a name="9.2.9"></a>
+## [9.2.9](https://github.com/zkat/cacache/compare/v9.2.8...v9.2.9) (2017-06-17)
+
+
+
+<a name="9.2.8"></a>
+## [9.2.8](https://github.com/zkat/cacache/compare/v9.2.7...v9.2.8) (2017-06-05)
+
+
+### Bug Fixes
+
+* **ssri:** bump ssri for bugfix ([c3232ea](https://github.com/zkat/cacache/commit/c3232ea))
+
+
+
+<a name="9.2.7"></a>
+## [9.2.7](https://github.com/zkat/cacache/compare/v9.2.6...v9.2.7) (2017-06-05)
+
+
+### Bug Fixes
+
+* **content:** make verified content completely read-only (#96) ([4131196](https://github.com/zkat/cacache/commit/4131196))
+
+
+
+<a name="9.2.6"></a>
+## [9.2.6](https://github.com/zkat/cacache/compare/v9.2.5...v9.2.6) (2017-05-31)
+
+
+### Bug Fixes
+
+* **node:** update ssri to prevent old node 4 crash ([5209ffe](https://github.com/zkat/cacache/commit/5209ffe))
+
+
+
+<a name="9.2.5"></a>
+## [9.2.5](https://github.com/zkat/cacache/compare/v9.2.4...v9.2.5) (2017-05-25)
+
+
+### Bug Fixes
+
+* **deps:** fix lockfile issues and bump ssri ([84e1d7e](https://github.com/zkat/cacache/commit/84e1d7e))
+
+
+
+<a name="9.2.4"></a>
+## [9.2.4](https://github.com/zkat/cacache/compare/v9.2.3...v9.2.4) (2017-05-24)
+
+
+### Bug Fixes
+
+* **deps:** bumping deps ([bbccb12](https://github.com/zkat/cacache/commit/bbccb12))
+
+
+
+<a name="9.2.3"></a>
+## [9.2.3](https://github.com/zkat/cacache/compare/v9.2.2...v9.2.3) (2017-05-24)
+
+
+### Bug Fixes
+
+* **rm:** stop crashing if content is missing on rm ([ac90bc0](https://github.com/zkat/cacache/commit/ac90bc0))
+
+
+
+<a name="9.2.2"></a>
+## [9.2.2](https://github.com/zkat/cacache/compare/v9.2.1...v9.2.2) (2017-05-14)
+
+
+### Bug Fixes
+
+* **i18n:** lets pretend this didn't happen ([519b4ee](https://github.com/zkat/cacache/commit/519b4ee))
+
+
+
+<a name="9.2.1"></a>
+## [9.2.1](https://github.com/zkat/cacache/compare/v9.2.0...v9.2.1) (2017-05-14)
+
+
+### Bug Fixes
+
+* **docs:** fixing translation messup ([bb9e4f9](https://github.com/zkat/cacache/commit/bb9e4f9))
+
+
+
+<a name="9.2.0"></a>
+# [9.2.0](https://github.com/zkat/cacache/compare/v9.1.0...v9.2.0) (2017-05-14)
+
+
+### Features
+
+* **i18n:** add Spanish translation for API ([531f9a4](https://github.com/zkat/cacache/commit/531f9a4))
+
+
+
+<a name="9.1.0"></a>
+# [9.1.0](https://github.com/zkat/cacache/compare/v9.0.0...v9.1.0) (2017-05-14)
+
+
+### Features
+
+* **i18n:** Add Spanish translation and i18n setup (#91) ([323b90c](https://github.com/zkat/cacache/commit/323b90c))
+
+
+
+<a name="9.0.0"></a>
+# [9.0.0](https://github.com/zkat/cacache/compare/v8.0.0...v9.0.0) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoization:** actually use the LRU ([0e55dc9](https://github.com/zkat/cacache/commit/0e55dc9))
+
+
+### Features
+
+* **memoization:** memoizers can be injected through opts.memoize (#90) ([e5614c7](https://github.com/zkat/cacache/commit/e5614c7))
+
+
+### BREAKING CHANGES
+
+* **memoization:** If you were passing an object to opts.memoize, it will now be used as an injected memoization object. If you were only passing booleans and other non-objects through that option, no changes are needed.
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/zkat/cacache/compare/v7.1.0...v8.0.0) (2017-04-22)
+
+
+### Features
+
+* **read:** change hasContent to return {sri, size} (#88) ([bad6c49](https://github.com/zkat/cacache/commit/bad6c49)), closes [#87](https://github.com/zkat/cacache/issues/87)
+
+
+### BREAKING CHANGES
+
+* **read:** hasContent now returns an object with `{sri, size}` instead of `sri`. Use `result.sri` anywhere that needed the old return value.
+
+
+
+<a name="7.1.0"></a>
+# [7.1.0](https://github.com/zkat/cacache/compare/v7.0.5...v7.1.0) (2017-04-20)
+
+
+### Features
+
+* **size:** handle content size info (#49) ([91230af](https://github.com/zkat/cacache/commit/91230af))
+
+
+
+<a name="7.0.5"></a>
+## [7.0.5](https://github.com/zkat/cacache/compare/v7.0.4...v7.0.5) (2017-04-18)
+
+
+### Bug Fixes
+
+* **integrity:** new ssri with fixed integrity stream ([6d13e8e](https://github.com/zkat/cacache/commit/6d13e8e))
+* **write:** wrap stuff in promises to improve errors ([3624fc5](https://github.com/zkat/cacache/commit/3624fc5))
+
+
+
+<a name="7.0.4"></a>
+## [7.0.4](https://github.com/zkat/cacache/compare/v7.0.3...v7.0.4) (2017-04-15)
+
+
+### Bug Fixes
+
+* **fix-owner:** throw away ENOENTs on chownr ([d49bbcd](https://github.com/zkat/cacache/commit/d49bbcd))
+
+
+
+<a name="7.0.3"></a>
+## [7.0.3](https://github.com/zkat/cacache/compare/v7.0.2...v7.0.3) (2017-04-05)
+
+
+### Bug Fixes
+
+* **read:** fixing error message for integrity verification failures ([9d4f0a5](https://github.com/zkat/cacache/commit/9d4f0a5))
+
+
+
+<a name="7.0.2"></a>
+## [7.0.2](https://github.com/zkat/cacache/compare/v7.0.1...v7.0.2) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** use EINTEGRITY error code and update ssri ([8dc2e62](https://github.com/zkat/cacache/commit/8dc2e62))
+
+
+
+<a name="7.0.1"></a>
+## [7.0.1](https://github.com/zkat/cacache/compare/v7.0.0...v7.0.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **docs:** fix header name conflict in readme ([afcd456](https://github.com/zkat/cacache/commit/afcd456))
+
+
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/zkat/cacache/compare/v6.3.0...v7.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **test:** fix content.write tests when running in docker ([d2e9b6a](https://github.com/zkat/cacache/commit/d2e9b6a))
+
+
+### Features
+
+* **integrity:** subresource integrity support (#78) ([b1e731f](https://github.com/zkat/cacache/commit/b1e731f))
+
+
+### BREAKING CHANGES
+
+* **integrity:** The entire API has been overhauled to use SRI hashes instead of digest/hashAlgorithm pairs. SRI hashes follow the Subresource Integrity standard and support strings and objects compatible with [`ssri`](https://npm.im/ssri).
+
+* This change bumps the index version, which will invalidate all previous index entries. Content entries will remain intact, and existing caches will automatically reuse any content from before this breaking change.
+
+* `cacache.get.info()`, `cacache.ls()`, and `cacache.ls.stream()` will now return objects that looks like this:
+
+```
+{
+ key: String,
+ integrity: '<algorithm>-<base64hash>',
+ path: ContentPath,
+ time: Date<ms>,
+ metadata: Any
+}
+```
+
+* `opts.digest` and `opts.hashAlgorithm` are obsolete for any API calls that used them.
+
+* Anywhere `opts.digest` was accepted, `opts.integrity` is now an option. Any valid SRI hash is accepted here -- multiple hash entries will be resolved according to the standard: first, the "strongest" hash algorithm will be picked, and then each of the entries for that algorithm will be matched against the content. Content will be validated if *any* of the entries match (so, a single integrity string can be used for multiple "versions" of the same document/data).
+
+* `put.byDigest()`, `put.stream.byDigest`, `get.byDigest()` and `get.stream.byDigest()` now expect an SRI instead of a `digest` + `opts.hashAlgorithm` pairing.
+
+* `get.hasContent()` now expects an integrity hash instead of a digest. If content exists, it will return the specific single integrity hash that was found in the cache.
+
+* `verify()` has learned to handle integrity-based caches, and forgotten how to handle old-style cache indices due to the format change.
+
+* `cacache.rm.content()` now expects an integrity hash instead of a hex digest.
+
+
+
+<a name="6.3.0"></a>
+# [6.3.0](https://github.com/zkat/cacache/compare/v6.2.0...v6.3.0) (2017-04-01)
+
+
+### Bug Fixes
+
+* **fixOwner:** ignore EEXIST race condition from mkdirp ([4670e9b](https://github.com/zkat/cacache/commit/4670e9b))
+* **index:** ignore index removal races when inserting ([b9d2fa2](https://github.com/zkat/cacache/commit/b9d2fa2))
+* **memo:** use lru-cache for better mem management (#75) ([d8ac5aa](https://github.com/zkat/cacache/commit/d8ac5aa))
+
+
+### Features
+
+* **dependencies:** Switch to move-concurrently (#77) ([dc6482d](https://github.com/zkat/cacache/commit/dc6482d))
+
+
+
+<a name="6.2.0"></a>
+# [6.2.0](https://github.com/zkat/cacache/compare/v6.1.2...v6.2.0) (2017-03-15)
+
+
+### Bug Fixes
+
+* **index:** additional bucket entry verification with checksum (#72) ([f8e0f25](https://github.com/zkat/cacache/commit/f8e0f25))
+* **verify:** return fixOwner.chownr promise ([6818521](https://github.com/zkat/cacache/commit/6818521))
+
+
+### Features
+
+* **tmp:** safe tmp dir creation/management util (#73) ([c42da71](https://github.com/zkat/cacache/commit/c42da71))
+
+
+
+<a name="6.1.2"></a>
+## [6.1.2](https://github.com/zkat/cacache/compare/v6.1.1...v6.1.2) (2017-03-13)
+
+
+### Bug Fixes
+
+* **index:** set default hashAlgorithm ([d6eb2f0](https://github.com/zkat/cacache/commit/d6eb2f0))
+
+
+
+<a name="6.1.1"></a>
+## [6.1.1](https://github.com/zkat/cacache/compare/v6.1.0...v6.1.1) (2017-03-13)
+
+
+### Bug Fixes
+
+* **coverage:** bumping coverage for verify (#71) ([0b7faf6](https://github.com/zkat/cacache/commit/0b7faf6))
+* **deps:** glob should have been a regular dep :< ([0640bc4](https://github.com/zkat/cacache/commit/0640bc4))
+
+
+
+<a name="6.1.0"></a>
+# [6.1.0](https://github.com/zkat/cacache/compare/v6.0.2...v6.1.0) (2017-03-12)
+
+
+### Bug Fixes
+
+* **coverage:** more coverage for content reads (#70) ([ef4f70a](https://github.com/zkat/cacache/commit/ef4f70a))
+* **tests:** use safe-buffer because omfg (#69) ([6ab8132](https://github.com/zkat/cacache/commit/6ab8132))
+
+
+### Features
+
+* **rm:** limited rm.all and fixed bugs (#66) ([d5d25ba](https://github.com/zkat/cacache/commit/d5d25ba)), closes [#66](https://github.com/zkat/cacache/issues/66)
+* **verify:** tested, working cache verifier/gc (#68) ([45ad77a](https://github.com/zkat/cacache/commit/45ad77a))
+
+
+
+<a name="6.0.2"></a>
+## [6.0.2](https://github.com/zkat/cacache/compare/v6.0.1...v6.0.2) (2017-03-11)
+
+
+### Bug Fixes
+
+* **index:** segment cache items with another subbucket (#64) ([c3644e5](https://github.com/zkat/cacache/commit/c3644e5))
+
+
+
+<a name="6.0.1"></a>
+## [6.0.1](https://github.com/zkat/cacache/compare/v6.0.0...v6.0.1) (2017-03-05)
+
+
+### Bug Fixes
+
+* **docs:** Missed spots in README ([8ffb7fa](https://github.com/zkat/cacache/commit/8ffb7fa))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/zkat/cacache/compare/v5.0.3...v6.0.0) (2017-03-05)
+
+
+### Bug Fixes
+
+* **api:** keep memo cache mostly-internal ([2f72d0a](https://github.com/zkat/cacache/commit/2f72d0a))
+* **content:** use the rest of the string, not the whole string ([fa8f3c3](https://github.com/zkat/cacache/commit/fa8f3c3))
+* **deps:** removed `format-number[@2](https://github.com/2).0.2` ([1187791](https://github.com/zkat/cacache/commit/1187791))
+* **deps:** removed inflight[@1](https://github.com/1).0.6 ([0d1819c](https://github.com/zkat/cacache/commit/0d1819c))
+* **deps:** rimraf[@2](https://github.com/2).6.1 ([9efab6b](https://github.com/zkat/cacache/commit/9efab6b))
+* **deps:** standard[@9](https://github.com/9).0.0 ([4202cba](https://github.com/zkat/cacache/commit/4202cba))
+* **deps:** tap[@10](https://github.com/10).3.0 ([aa03088](https://github.com/zkat/cacache/commit/aa03088))
+* **deps:** weallcontribute[@1](https://github.com/1).0.8 ([ad4f4dc](https://github.com/zkat/cacache/commit/ad4f4dc))
+* **docs:** add security note to hashKey ([03f81ba](https://github.com/zkat/cacache/commit/03f81ba))
+* **hashes:** change default hashAlgorithm to sha512 ([ea00ba6](https://github.com/zkat/cacache/commit/ea00ba6))
+* **hashes:** missed a spot for hashAlgorithm defaults ([45997d8](https://github.com/zkat/cacache/commit/45997d8))
+* **index:** add length header before JSON for verification ([fb8cb4d](https://github.com/zkat/cacache/commit/fb8cb4d))
+* **index:** change index filenames to sha1s of keys ([bbc5fca](https://github.com/zkat/cacache/commit/bbc5fca))
+* **index:** who cares about race conditions anyway ([b1d3888](https://github.com/zkat/cacache/commit/b1d3888))
+* **perf:** bulk-read get+read for massive speed ([d26cdf9](https://github.com/zkat/cacache/commit/d26cdf9))
+* **perf:** use bulk file reads for index reads ([79a8891](https://github.com/zkat/cacache/commit/79a8891))
+* **put-stream:** remove tmp file on stream insert error ([65f6632](https://github.com/zkat/cacache/commit/65f6632))
+* **put-stream:** robustified and predictibilized ([daf9e08](https://github.com/zkat/cacache/commit/daf9e08))
+* **put-stream:** use new promise API for moves ([1d36013](https://github.com/zkat/cacache/commit/1d36013))
+* **readme:** updated to reflect new default hashAlgo ([c60a2fa](https://github.com/zkat/cacache/commit/c60a2fa))
+* **verify:** tiny typo fix ([db22d05](https://github.com/zkat/cacache/commit/db22d05))
+
+
+### Features
+
+* **api:** converted external api ([7bf032f](https://github.com/zkat/cacache/commit/7bf032f))
+* **cacache:** exported clearMemoized() utility ([8d2c5b6](https://github.com/zkat/cacache/commit/8d2c5b6))
+* **cache:** add versioning to content and index ([31bc549](https://github.com/zkat/cacache/commit/31bc549))
+* **content:** collate content files into subdirs ([c094d9f](https://github.com/zkat/cacache/commit/c094d9f))
+* **deps:** [@npmcorp](https://github.com/npmcorp)/move[@1](https://github.com/1).0.0 ([bdd00bf](https://github.com/zkat/cacache/commit/bdd00bf))
+* **deps:** bluebird[@3](https://github.com/3).4.7 ([3a17aff](https://github.com/zkat/cacache/commit/3a17aff))
+* **deps:** promise-inflight[@1](https://github.com/1).0.1 ([a004fe6](https://github.com/zkat/cacache/commit/a004fe6))
+* **get:** added memoization support for get ([c77d794](https://github.com/zkat/cacache/commit/c77d794))
+* **get:** export hasContent ([2956ec3](https://github.com/zkat/cacache/commit/2956ec3))
+* **index:** add hashAlgorithm and format insert ret val ([b639746](https://github.com/zkat/cacache/commit/b639746))
+* **index:** collate index files into subdirs ([e8402a5](https://github.com/zkat/cacache/commit/e8402a5))
+* **index:** promisify entry index ([cda3335](https://github.com/zkat/cacache/commit/cda3335))
+* **memo:** added memoization lib ([da07b92](https://github.com/zkat/cacache/commit/da07b92))
+* **memo:** export memoization api ([954b1b3](https://github.com/zkat/cacache/commit/954b1b3))
+* **move-file:** add move fallback for weird errors ([5cf4616](https://github.com/zkat/cacache/commit/5cf4616))
+* **perf:** bulk content write api ([51b536e](https://github.com/zkat/cacache/commit/51b536e))
+* **put:** added memoization support to put ([b613a70](https://github.com/zkat/cacache/commit/b613a70))
+* **read:** switched to promises ([a869362](https://github.com/zkat/cacache/commit/a869362))
+* **rm:** added memoization support to rm ([4205cf0](https://github.com/zkat/cacache/commit/4205cf0))
+* **rm:** switched to promises ([a000d24](https://github.com/zkat/cacache/commit/a000d24))
+* **util:** promise-inflight ownership fix requests ([9517cd7](https://github.com/zkat/cacache/commit/9517cd7))
+* **util:** use promises for api ([ae204bb](https://github.com/zkat/cacache/commit/ae204bb))
+* **verify:** converted to Promises ([f0b3974](https://github.com/zkat/cacache/commit/f0b3974))
+
+
+### BREAKING CHANGES
+
+* cache: index/content directories are now versioned. Previous caches are no longer compatible and cannot be migrated.
+* util: fix-owner now uses Promises instead of callbacks
+* index: Previously-generated index entries are no longer compatible and the index must be regenerated.
+* index: The index format has changed and previous caches are no longer compatible. Existing caches will need to be regenerated.
+* hashes: Default hashAlgorithm changed from sha1 to sha512. If you
+rely on the prior setting, pass `opts.hashAlgorithm` in explicitly.
+* content: Previously-generated content directories are no longer compatible
+and must be regenerated.
+* verify: API is now promise-based
+* read: Switches to a Promise-based API and removes callback stuff
+* rm: Switches to a Promise-based API and removes callback stuff
+* index: this changes the API to work off promises instead of callbacks
+* api: this means we are going all in on promises now
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-fetch/node_modules/cacache/README.es.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md
new file mode 100644
index 0000000000..783a0a19b0
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.es.md
@@ -0,0 +1,628 @@
+# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest)
+
+[`cacache`](https://github.com/zkat/cacache) es una librerĆ­a de Node.js para
+manejar caches locales en disco, con acceso tanto con claves Ćŗnicas como
+direcciones de contenido (hashes/hacheos). Es sĆŗper rĆ”pida, excelente con el
+acceso concurrente, y jamĆ”s te darĆ” datos incorrectos, aĆŗn si se corrompen o
+manipulan directamente los ficheros del cache.
+
+El propĆ³sito original era reemplazar el cachĆ© local de
+[npm](https://npm.im/npm), pero se puede usar por su propia cuenta.
+
+_Traducciones: [English](README.md)_
+
+## InstalaciĆ³n
+
+`$ npm install --save cacache`
+
+## ƍndice
+
+* [Ejemplo](#ejemplo)
+* [CaracterĆ­sticas](#caracterĆ­sticas)
+* [CĆ³mo Contribuir](#cĆ³mo-contribuir)
+* [API](#api)
+ * [Usando el API en espaƱol](#localized-api)
+ * Leer
+ * [`ls`](#ls)
+ * [`ls.flujo`](#ls-stream)
+ * [`saca`](#get-data)
+ * [`saca.flujo`](#get-stream)
+ * [`saca.info`](#get-info)
+ * [`saca.tieneDatos`](#get-hasContent)
+ * Escribir
+ * [`mete`](#put-data)
+ * [`mete.flujo`](#put-stream)
+ * [opciones para `mete*`](#put-options)
+ * [`rm.todo`](#rm-all)
+ * [`rm.entrada`](#rm-entry)
+ * [`rm.datos`](#rm-content)
+ * Utilidades
+ * [`ponLenguaje`](#set-locale)
+ * [`limpiaMemoizado`](#clear-memoized)
+ * [`tmp.hazdir`](#tmp-mkdir)
+ * [`tmp.conTmp`](#with-tmp)
+ * Integridad
+ * [Subresource Integrity](#integrity)
+ * [`verifica`](#verify)
+ * [`verifica.ultimaVez`](#verify-last-run)
+
+### Ejemplo
+
+```javascript
+const cacache = require('cacache/es')
+const fs = require('fs')
+
+const tarbol = '/ruta/a/mi-tar.tgz'
+const rutaCache = '/tmp/my-toy-cache'
+const clave = 'mi-clave-Ćŗnica-1234'
+
+// Ā”AƱƔdelo al cachĆ©! Usa `rutaCache` como raĆ­z del cachĆ©.
+cacache.mete(rutaCache, clave, '10293801983029384').then(integrity => {
+ console.log(`Saved content to ${rutaCache}.`)
+})
+
+const destino = '/tmp/mytar.tgz'
+
+// Copia el contenido del cachƩ a otro fichero, pero esta vez con flujos.
+cacache.saca.flujo(
+ rutaCache, clave
+).pipe(
+ fs.createWriteStream(destino)
+).on('finish', () => {
+ console.log('extracciĆ³n completada')
+})
+
+// La misma cosa, pero accesando el contenido directamente, sin tocar el Ć­ndice.
+cacache.saca.porHacheo(rutaCache, integridad).then(datos => {
+ fs.writeFile(destino, datos, err => {
+ console.log('datos del tarbol sacados basado en su sha512, y escrito a otro fichero')
+ })
+})
+```
+
+### CaracterĆ­sticas
+
+* ExtracciĆ³n por clave o por direcciĆ³n de contenido (shasum, etc)
+* Usa el estƔndard de web, [Subresource Integrity](#integrity)
+* Compatible con multiples algoritmos - usa sha1, sha512, etc, en el mismo cachƩ sin problema
+* Entradas con contenido idƩntico comparten ficheros
+* Tolerancia de fallas (inmune a corrupciĆ³n, ficheros parciales, carreras de proceso, etc)
+* VerificaciĆ³n completa de datos cuando (escribiendo y leyendo)
+* Concurrencia rƔpida, segura y "lockless"
+* Compatible con `stream`s (flujos)
+* Compatible con `Promise`s (promesas)
+* Bastante rĆ”pida -- acceso, incluyendo verificaciĆ³n, en microsegundos
+* Almacenaje de metadatos arbitrarios
+* ColecciĆ³n de basura y verificaciĆ³n adicional fuera de banda
+* Cobertura rigurosa de pruebas
+* Probablente hay un "Bloom filter" por ahĆ­ en algĆŗn lado. Eso le mola a la gente, ĀæVerdad? šŸ¤”
+
+### CĆ³mo Contribuir
+
+El equipo de cacache felizmente acepta contribuciones de cĆ³digo y otras maneras de participaciĆ³n. Ā”Hay muchas formas diferentes de contribuir! La [GuĆ­a de Colaboradores](CONTRIBUTING.md) (en inglĆ©s) tiene toda la informaciĆ³n que necesitas para cualquier tipo de contribuciĆ³n: todo desde cĆ³mo reportar errores hasta cĆ³mo someter parches con nuevas caracterĆ­sticas. Con todo y eso, no se preocupe por si lo que haces estĆ” exĆ”ctamente correcto: no hay ningĆŗn problema en hacer preguntas si algo no estĆ” claro, o no lo encuentras.
+
+El equipo de cacache tiene miembros hispanohablantes: es completamente aceptable crear `issues` y `pull requests` en espaƱol/castellano.
+
+Todos los participantes en este proyecto deben obedecer el [CĆ³digo de Conducta](CODE_OF_CONDUCT.md) (en inglĆ©s), y en general actuar de forma amable y respetuosa mientras participan en esta comunidad.
+
+Por favor refiĆ©rase al [Historial de Cambios](CHANGELOG.md) (en inglĆ©s) para detalles sobre cambios importantes incluĆ­dos en cada versiĆ³n.
+
+Finalmente, cacache tiene un sistema de localizaciĆ³n de lenguaje. Si te interesa aƱadir lenguajes o mejorar los que existen, mira en el directorio `./locales` para comenzar.
+
+Happy hacking!
+
+### API
+
+#### <a name="localized-api"></a> Usando el API en espaƱol
+
+cacache incluye una traducciĆ³n completa de su API al castellano, con las mismas
+caracterĆ­sticas. Para usar el API como estĆ” documentado en este documento, usa
+`require('cacache/es')`
+
+cacache tambiƩn tiene otros lenguajes: encuƩntralos bajo `./locales`, y podrƔs
+usar el API en ese lenguaje con `require('cacache/<lenguaje>')`
+
+#### <a name="ls"></a> `> cacache.ls(cache) -> Promise<Object>`
+
+Enumera todas las entradas en el cachƩ, dentro de un solo objeto. Cada entrada
+en el objeto tendrĆ” como clave la clave Ćŗnica usada para el Ć­ndice, el valor
+siendo un objeto de [`saca.info`](#get-info).
+
+##### Ejemplo
+
+```javascript
+cacache.ls(rutaCache).then(console.log)
+// Salida
+{
+ 'my-thing': {
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64/EnCoDED+HAsh=='
+ path: '.testcache/content/deadbeef', // unido con `rutaCache`
+ time: 12345698490,
+ size: 4023948,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+ },
+ 'other-thing': {
+ key: 'other-thing',
+ integrity: 'sha1-ANothER+hasH=',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 111112
+ }
+}
+```
+
+#### <a name="ls-stream"></a> `> cacache.ls.flujo(cache) -> Readable`
+
+Enumera todas las entradas en el cachƩ, emitiendo un objeto de
+[`saca.info`](#get-info) por cada evento de `data` en el flujo.
+
+##### Ejemplo
+
+```javascript
+cacache.ls.flujo(rutaCache).on('data', console.log)
+// Salida
+{
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64HaSh',
+ path: '.testcache/content/deadbeef', // unido con `rutaCache`
+ time: 12345698490,
+ size: 13423,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+
+{
+ key: 'other-thing',
+ integrity: 'whirlpool-WoWSoMuchSupport',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 498023984029
+}
+
+{
+ ...
+}
+```
+
+#### <a name="get-data"></a> `> cacache.saca(cache, clave, [ops]) -> Promise({data, metadata, integrity})`
+
+Devuelve un objeto con los datos, hacheo de integridad y metadatos identificados
+por la `clave`. La propiedad `data` de este objeto serĆ” una instancia de
+`Buffer` con los datos almacenados en el cachƩ. to do with it! cacache just
+won't care.
+
+`integrity` es un `string` de [Subresource Integrity](#integrity). DĆ­gase, un
+`string` que puede ser usado para verificar a la `data`, que tiene como formato
+`<algoritmo>-<hacheo-integridad-base64>`.
+
+So no existe ninguna entrada identificada por `clave`, o se los datos
+almacenados localmente fallan verificaciĆ³n, el `Promise` fallarĆ”.
+
+Una sub-funciĆ³n, `saca.porHacheo`, tiene casi el mismo comportamiento, excepto
+que busca entradas usando el hacheo de integridad, sin tocar el Ć­ndice general.
+Esta versiĆ³n *sĆ³lo* devuelve `data`, sin ningĆŗn objeto conteniĆ©ndola.
+
+##### Nota
+
+Esta funciĆ³n lee la entrada completa a la memoria antes de devolverla. Si estĆ”s
+almacenando datos Muy Grandes, es posible que [`saca.flujo`](#get-stream) sea
+una mejor soluciĆ³n.
+
+##### Ejemplo
+
+```javascript
+// Busca por clave
+cache.saca(rutaCache, 'my-thing').then(console.log)
+// Salida:
+{
+ metadata: {
+ thingName: 'my'
+ },
+ integrity: 'sha512-BaSe64HaSh',
+ data: Buffer#<deadbeef>,
+ size: 9320
+}
+
+// Busca por hacheo
+cache.saca.porHacheo(rutaCache, 'sha512-BaSe64HaSh').then(console.log)
+// Salida:
+Buffer#<deadbeef>
+```
+
+#### <a name="get-stream"></a> `> cacache.saca.flujo(cache, clave, [ops]) -> Readable`
+
+Devuelve un [Readable
+Stream](https://nodejs.org/api/stream.html#stream_readable_streams) de los datos
+almacenados bajo `clave`.
+
+So no existe ninguna entrada identificada por `clave`, o se los datos
+almacenados localmente fallan verificaciĆ³n, el `Promise` fallarĆ”.
+
+`metadata` y `integrity` serƔn emitidos como eventos antes de que el flujo
+cierre.
+
+Una sub-funciĆ³n, `saca.flujo.porHacheo`, tiene casi el mismo comportamiento,
+excepto que busca entradas usando el hacheo de integridad, sin tocar el Ć­ndice
+general. Esta versiĆ³n no emite eventos de `metadata` o `integrity`.
+
+##### Ejemplo
+
+```javascript
+// Busca por clave
+cache.saca.flujo(
+ rutaCache, 'my-thing'
+).on('metadata', metadata => {
+ console.log('metadata:', metadata)
+}).on('integrity', integrity => {
+ console.log('integrity:', integrity)
+}).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+// Salidas:
+metadata: { ... }
+integrity: 'sha512-SoMeDIGest+64=='
+
+// Busca por hacheo
+cache.saca.flujo.porHacheo(
+ rutaCache, 'sha512-SoMeDIGest+64=='
+).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+```
+
+#### <a name="get-info"></a> `> cacache.saca.info(cache, clave) -> Promise`
+
+Busca la `clave` en el Ć­ndice del cachĆ©, devolviendo informaciĆ³n sobre la
+entrada si existe.
+
+##### Campos
+
+* `key` - Clave de la entrada. Igual al argumento `clave`.
+* `integrity` - [hacheo de Subresource Integrity](#integrity) del contenido al que se refiere esta entrada.
+* `path` - DirecciĆ³n del fichero de datos almacenados, relativa al argumento `cache`.
+* `time` - Hora de creaciĆ³n de la entrada
+* `metadata` - Metadatos asignados a esta entrada por el usuario
+
+##### Ejemplo
+
+```javascript
+cacache.saca.info(rutaCache, 'my-thing').then(console.log)
+
+// Salida
+{
+ key: 'my-thing',
+ integrity: 'sha256-MUSTVERIFY+ALL/THINGS=='
+ path: '.testcache/content/deadbeef',
+ time: 12345698490,
+ size: 849234,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+```
+
+#### <a name="get-hasContent"></a> `> cacache.saca.tieneDatos(cache, integrity) -> Promise`
+
+Busca un [hacheo Subresource Integrity](#integrity) en el cachƩ. Si existe el
+contenido asociado con `integrity`, devuelve un objeto con dos campos: el hacheo
+_especĆ­fico_ que se usĆ³ para la bĆŗsqueda, `sri`, y el tamaƱo total del
+contenido, `size`. Si no existe ningĆŗn contenido asociado con `integrity`,
+devuelve `false`.
+
+##### Ejemplo
+
+```javascript
+cacache.saca.tieneDatos(rutaCache, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log)
+
+// Salida
+{
+ sri: {
+ source: 'sha256-MUSTVERIFY+ALL/THINGS==',
+ algorithm: 'sha256',
+ digest: 'MUSTVERIFY+ALL/THINGS==',
+ options: []
+ },
+ size: 9001
+}
+
+cacache.saca.tieneDatos(rutaCache, 'sha521-NOT+IN/CACHE==').then(console.log)
+
+// Salida
+false
+```
+
+#### <a name="put-data"></a> `> cacache.mete(cache, clave, datos, [ops]) -> Promise`
+
+Inserta `datos` en el cachƩ. El `Promise` devuelto se resuelve con un hacheo
+(generado conforme a [`ops.algorithms`](#optsalgorithms)) despuƩs que la entrada
+haya sido escrita en completo.
+
+##### Ejemplo
+
+```javascript
+fetch(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).then(datos => {
+ return cacache.mete(rutaCache, 'registry.npmjs.org|cacache@1.0.0', datos)
+}).then(integridad => {
+ console.log('el hacheo de integridad es', integridad)
+})
+```
+
+#### <a name="put-stream"></a> `> cacache.mete.flujo(cache, clave, [ops]) -> Writable`
+
+Devuelve un [Writable
+Stream](https://nodejs.org/api/stream.html#stream_writable_streams) que inserta
+al cachƩ los datos escritos a Ʃl. Emite un evento `integrity` con el hacheo del
+contenido escrito, cuando completa.
+
+##### Ejemplo
+
+```javascript
+request.get(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).pipe(
+ cacache.mete.flujo(
+ rutaCache, 'registry.npmjs.org|cacache@1.0.0'
+ ).on('integrity', d => console.log(`integrity digest is ${d}`))
+)
+```
+
+#### <a name="put-options"></a> `> opciones para cacache.mete`
+
+La funciones `cacache.mete` tienen un nĆŗmero de opciones en comĆŗn.
+
+##### `ops.metadata`
+
+Metadatos del usuario que se almacenarƔn con la entrada.
+
+##### `ops.size`
+
+El tamaƱo declarado de los datos que se van a insertar. Si es proveƭdo, cacache
+verificarƔ que los datos escritos sean de ese tamaƱo, o si no, fallarƔ con un
+error con cĆ³digo `EBADSIZE`.
+
+##### `ops.integrity`
+
+El hacheo de integridad de los datos siendo escritos.
+
+Si es proveĆ­do, y los datos escritos no le corresponden, la operaciĆ³n fallarĆ”
+con un error con cĆ³digo `EINTEGRITY`.
+
+`ops.algorithms` no tiene ningĆŗn efecto si esta opciĆ³n estĆ” presente.
+
+##### `ops.algorithms`
+
+Por Defecto: `['sha512']`
+
+Algoritmos que se deben usar cuando se calcule el hacheo de [subresource
+integrity](#integrity) para los datos insertados. Puede usar cualquier algoritmo
+enumerado en `crypto.getHashes()`.
+
+Por el momento, sĆ³lo se acepta un algoritmo (dĆ­gase, un array con exĆ”ctamente un
+valor). No tiene ningĆŗn efecto si `ops.integrity` tambiĆ©n ha sido proveido.
+
+##### `ops.uid`/`ops.gid`
+
+Si estƔn presentes, cacache harƔ todo lo posible para asegurarse que todos los
+ficheros creados en el proceso de sus operaciones en el cachƩ usen esta
+combinaciĆ³n en particular.
+
+##### `ops.memoize`
+
+Por Defecto: `null`
+
+Si es verdad, cacache tratarĆ” de memoizar los datos de la entrada en memoria. La
+prĆ³xima vez que el proceso corriente trate de accesar los datos o entrada,
+cacache buscarĆ” en memoria antes de buscar en disco.
+
+Si `ops.memoize` es un objeto regular o un objeto como `Map` (es decir, un
+objeto con mƩtodos `get()` y `set()`), este objeto en sƭ sera usado en vez del
+cachĆ© de memoria global. Esto permite tener lĆ³gica especĆ­fica a tu aplicaciĆ³n
+encuanto al almacenaje en memoria de tus datos.
+
+Si quieres asegurarte que los datos se lean del disco en vez de memoria, usa
+`memoize: false` cuando uses funciones de `cacache.saca`.
+
+#### <a name="rm-all"></a> `> cacache.rm.todo(cache) -> Promise`
+
+Borra el cachƩ completo, incluyendo ficheros temporeros, ficheros de datos, y el
+ƭndice del cachƩ.
+
+##### Ejemplo
+
+```javascript
+cacache.rm.todo(rutaCache).then(() => {
+ console.log('THE APOCALYPSE IS UPON US šŸ˜±')
+})
+```
+
+#### <a name="rm-entry"></a> `> cacache.rm.entrada(cache, clave) -> Promise`
+
+Alias: `cacache.rm`
+
+Borra la entrada `clave` del Ć­nduce. El contenido asociado con esta entrada
+seguirĆ” siendo accesible por hacheo usando
+[`saca.flujo.porHacheo`](#get-stream).
+
+Para borrar el contenido en sĆ­, usa [`rm.datos`](#rm-content). Si quieres hacer
+esto de manera mƔs segura (pues ficheros de contenido pueden ser usados por
+multiples entradas), usa [`verifica`](#verify) para borrar huƩrfanos.
+
+##### Ejemplo
+
+```javascript
+cacache.rm.entrada(rutaCache, 'my-thing').then(() => {
+ console.log('I did not like it anyway')
+})
+```
+
+#### <a name="rm-content"></a> `> cacache.rm.datos(cache, integrity) -> Promise`
+
+Borra el contenido identificado por `integrity`. Cualquier entrada que se
+refiera a este contenido quedarƔn huƩrfanas y se invalidarƔn si se tratan de
+accesar, al menos que contenido idƩntico sea aƱadido bajo `integrity`.
+
+##### Ejemplo
+
+```javascript
+cacache.rm.datos(rutaCache, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => {
+ console.log('los datos para `mi-cosa` se borraron')
+})
+```
+
+#### <a name="set-locale"></a> `> cacache.ponLenguaje(locale)`
+
+Configura el lenguaje usado para mensajes y errores de cacache. La lista de
+lenguajes disponibles estĆ” en el directorio `./locales` del proyecto.
+
+_Te interesa aƱadir mƔs lenguajes? [Somete un PR](CONTRIBUTING.md)!_
+
+#### <a name="clear-memoized"></a> `> cacache.limpiaMemoizado()`
+
+Completamente reinicializa el cachƩ de memoria interno. Si estƔs usando tu
+propio objecto con `ops.memoize`, debes hacer esto de manera especĆ­fica a Ć©l.
+
+#### <a name="tmp-mkdir"></a> `> tmp.hazdir(cache, ops) -> Promise<Path>`
+
+Alias: `tmp.mkdir`
+
+Devuelve un directorio Ćŗnico dentro del directorio `tmp` del cachĆ©.
+
+Una vez tengas el directorio, es responsabilidad tuya asegurarte que todos los
+ficheros escrito a Ć©l sean creados usando los permisos y `uid`/`gid` concordante
+con el cachƩ. Si no, puedes pedirle a cacache que lo haga llamando a
+[`cacache.tmp.fix()`](#tmp-fix). Esta funciĆ³n arreglarĆ” todos los permisos en el
+directorio tmp.
+
+Si quieres que cacache limpie el directorio automƔticamente cuando termines, usa
+[`cacache.tmp.conTmp()`](#with-tpm).
+
+##### Ejemplo
+
+```javascript
+cacache.tmp.mkdir(cache).then(dir => {
+ fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+})
+```
+
+#### <a name="with-tmp"></a> `> tmp.conTmp(cache, ops, cb) -> Promise`
+
+Crea un directorio temporero con [`tmp.mkdir()`](#tmp-mkdir) y ejecuta `cb` con
+Ʃl como primer argumento. El directorio creado serƔ removido automƔticamente
+cuando el valor devolvido por `cb()` se resuelva.
+
+Las mismas advertencias aplican en cuanto a manejando permisos para los ficheros
+dentro del directorio.
+
+##### Ejemplo
+
+```javascript
+cacache.tmp.conTmp(cache, dir => {
+ return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+}).then(() => {
+ // `dir` no longer exists
+})
+```
+
+#### <a name="integrity"></a> Hacheos de Subresource Integrity
+
+cacache usa strings que siguen la especificaciĆ³n de [Subresource Integrity
+spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).
+
+Es decir, donde quiera cacache espera un argumento o opciĆ³n `integrity`, ese
+string deberĆ­a usar el formato `<algoritmo>-<hacheo-base64>`.
+
+Una variaciĆ³n importante sobre los hacheos que cacache acepta es que acepta el
+nombre de cualquier algoritmo aceptado por el proceso de Node.js donde se usa.
+Puedes usar `crypto.getHashes()` para ver cuales estƔn disponibles.
+
+##### Generando tus propios hacheos
+
+Si tienes un `shasum`, en general va a estar en formato de string hexadecimal
+(es decir, un `sha1` se verĆ­a como algo asĆ­:
+`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`).
+
+Para ser compatible con cacache, necesitas convertir esto a su equivalente en
+subresource integrity. Por ejemplo, el hacheo correspondiente al ejemplo
+anterior serĆ­a: `sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`.
+
+Puedes usar cĆ³digo asĆ­ para generarlo por tu cuenta:
+
+```javascript
+const crypto = require('crypto')
+const algoritmo = 'sha512'
+const datos = 'foobarbaz'
+
+const integrity = (
+ algorithm +
+ '-' +
+ crypto.createHash(algoritmo).update(datos).digest('base64')
+)
+```
+
+TambiƩn puedes usar [`ssri`](https://npm.im/ssri) para deferir el trabajo a otra
+librerƭa que garantiza que todo estƩ correcto, pues maneja probablemente todas
+las operaciones que tendrĆ­as que hacer con SRIs, incluyendo convirtiendo entre
+hexadecimal y el formato SRI.
+
+#### <a name="verify"></a> `> cacache.verifica(cache, ops) -> Promise`
+
+Examina y arregla tu cachƩ:
+
+* Limpia entradas invƔlidas, huƩrfanas y corrompidas
+* Te deja filtrar cuales entradas retener, con tu propio filtro
+* Reclama cualquier ficheros de contenido sin referencias en el Ć­ndice
+* Verifica integridad de todos los ficheros de contenido y remueve los malos
+* Arregla permisos del cachƩ
+* Remieve el directorio `tmp` en el cachƩ, y todo su contenido.
+
+Cuando termine, devuelve un objeto con varias estadĆ­sticas sobre el proceso de
+verificaciĆ³n, por ejemplo la cantidad de espacio de disco reclamado, el nĆŗmero
+de entradas vĆ”lidas, nĆŗmero de entradas removidas, etc.
+
+##### Opciones
+
+* `ops.uid` - uid para asignarle al cachƩ y su contenido
+* `ops.gid` - gid para asignarle al cachƩ y su contenido
+* `ops.filter` - recibe una entrada como argumento. Devuelve falso para removerla. Nota: es posible que esta funciĆ³n sea invocada con la misma entrada mĆ”s de una vez.
+
+##### Example
+
+```sh
+echo somegarbage >> $RUTACACHE/content/deadbeef
+```
+
+```javascript
+cacache.verifica(rutaCache).then(stats => {
+ // deadbeef collected, because of invalid checksum.
+ console.log('cache is much nicer now! stats:', stats)
+})
+```
+
+#### <a name="verify-last-run"></a> `> cacache.verifica.ultimaVez(cache) -> Promise`
+
+Alias: `ĆŗltimaVez`
+
+Devuelve un `Date` que representa la Ćŗltima vez que `cacache.verifica` fue
+ejecutada en `cache`.
+
+##### Example
+
+```javascript
+cacache.verifica(rutaCache).then(() => {
+ cacache.verifica.ultimaVez(rutaCache).then(Ćŗltima => {
+ console.log('La Ćŗltima vez que se usĆ³ cacache.verifica() fue ' + Ćŗltima)
+ })
+})
+```
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.md
new file mode 100644
index 0000000000..4b284588a6
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/README.md
@@ -0,0 +1,624 @@
+# cacache [![npm version](https://img.shields.io/npm/v/cacache.svg)](https://npm.im/cacache) [![license](https://img.shields.io/npm/l/cacache.svg)](https://npm.im/cacache) [![Travis](https://img.shields.io/travis/zkat/cacache.svg)](https://travis-ci.org/zkat/cacache) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/cacache?svg=true)](https://ci.appveyor.com/project/zkat/cacache) [![Coverage Status](https://coveralls.io/repos/github/zkat/cacache/badge.svg?branch=latest)](https://coveralls.io/github/zkat/cacache?branch=latest)
+
+[`cacache`](https://github.com/zkat/cacache) is a Node.js library for managing
+local key and content address caches. It's really fast, really good at
+concurrency, and it will never give you corrupted data, even if cache files
+get corrupted or manipulated.
+
+It was originally written to be used as [npm](https://npm.im)'s local cache, but
+can just as easily be used on its own.
+
+_Translations: [espaƱol](README.es.md)_
+
+## Install
+
+`$ npm install --save cacache`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * [Using localized APIs](#localized-api)
+ * Reading
+ * [`ls`](#ls)
+ * [`ls.stream`](#ls-stream)
+ * [`get`](#get-data)
+ * [`get.stream`](#get-stream)
+ * [`get.info`](#get-info)
+ * [`get.hasContent`](#get-hasContent)
+ * Writing
+ * [`put`](#put-data)
+ * [`put.stream`](#put-stream)
+ * [`put*` opts](#put-options)
+ * [`rm.all`](#rm-all)
+ * [`rm.entry`](#rm-entry)
+ * [`rm.content`](#rm-content)
+ * Utilities
+ * [`setLocale`](#set-locale)
+ * [`clearMemoized`](#clear-memoized)
+ * [`tmp.mkdir`](#tmp-mkdir)
+ * [`tmp.withTmp`](#with-tmp)
+ * Integrity
+ * [Subresource Integrity](#integrity)
+ * [`verify`](#verify)
+ * [`verify.lastRun`](#verify-last-run)
+
+### Example
+
+```javascript
+const cacache = require('cacache/en')
+const fs = require('fs')
+
+const tarball = '/path/to/mytar.tgz'
+const cachePath = '/tmp/my-toy-cache'
+const key = 'my-unique-key-1234'
+
+// Cache it! Use `cachePath` as the root of the content cache
+cacache.put(cachePath, key, '10293801983029384').then(integrity => {
+ console.log(`Saved content to ${cachePath}.`)
+})
+
+const destination = '/tmp/mytar.tgz'
+
+// Copy the contents out of the cache and into their destination!
+// But this time, use stream instead!
+cacache.get.stream(
+ cachePath, key
+).pipe(
+ fs.createWriteStream(destination)
+).on('finish', () => {
+ console.log('done extracting!')
+})
+
+// The same thing, but skip the key index.
+cacache.get.byDigest(cachePath, integrityHash).then(data => {
+ fs.writeFile(destination, data, err => {
+ console.log('tarball data fetched based on its sha512sum and written out!')
+ })
+})
+```
+
+### Features
+
+* Extraction by key or by content address (shasum, etc)
+* [Subresource Integrity](#integrity) web standard support
+* Multi-hash support - safely host sha1, sha512, etc, in a single cache
+* Automatic content deduplication
+* Fault tolerance (immune to corruption, partial writes, process races, etc)
+* Consistency guarantees on read and write (full data verification)
+* Lockless, high-concurrency cache access
+* Streaming support
+* Promise support
+* Pretty darn fast -- sub-millisecond reads and writes including verification
+* Arbitrary metadata storage
+* Garbage collection and additional offline verification
+* Thorough test coverage
+* There's probably a bloom filter in there somewhere. Those are cool, right? šŸ¤”
+
+### Contributing
+
+The cacache team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="localized-api"></a> Using localized APIs
+
+cacache includes a complete API in English, with the same features as other
+translations. To use the English API as documented in this README, use
+`require('cacache/en')`. This is also currently the default if you do
+`require('cacache')`, but may change in the future.
+
+cacache also supports other languages! You can find the list of currently
+supported ones by looking in `./locales` in the source directory. You can use
+the API in that language with `require('cacache/<lang>')`.
+
+Want to add support for a new language? Please go ahead! You should be able to
+copy `./locales/en.js` and `./locales/en.json` and fill them in. Translating the
+`README.md` is a bit more work, but also appreciated if you get around to it. šŸ‘šŸ¼
+
+#### <a name="ls"></a> `> cacache.ls(cache) -> Promise<Object>`
+
+Lists info for all entries currently in the cache as a single large object. Each
+entry in the object will be keyed by the unique index key, with corresponding
+[`get.info`](#get-info) objects as the values.
+
+##### Example
+
+```javascript
+cacache.ls(cachePath).then(console.log)
+// Output
+{
+ 'my-thing': {
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64/EnCoDED+HAsh=='
+ path: '.testcache/content/deadbeef', // joined with `cachePath`
+ time: 12345698490,
+ size: 4023948,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+ },
+ 'other-thing': {
+ key: 'other-thing',
+ integrity: 'sha1-ANothER+hasH=',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 111112
+ }
+}
+```
+
+#### <a name="ls-stream"></a> `> cacache.ls.stream(cache) -> Readable`
+
+Lists info for all entries currently in the cache as a single large object.
+
+This works just like [`ls`](#ls), except [`get.info`](#get-info) entries are
+returned as `'data'` events on the returned stream.
+
+##### Example
+
+```javascript
+cacache.ls.stream(cachePath).on('data', console.log)
+// Output
+{
+ key: 'my-thing',
+ integrity: 'sha512-BaSe64HaSh',
+ path: '.testcache/content/deadbeef', // joined with `cachePath`
+ time: 12345698490,
+ size: 13423,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+
+{
+ key: 'other-thing',
+ integrity: 'whirlpool-WoWSoMuchSupport',
+ path: '.testcache/content/bada55',
+ time: 11992309289,
+ size: 498023984029
+}
+
+{
+ ...
+}
+```
+
+#### <a name="get-data"></a> `> cacache.get(cache, key, [opts]) -> Promise({data, metadata, integrity})`
+
+Returns an object with the cached data, digest, and metadata identified by
+`key`. The `data` property of this object will be a `Buffer` instance that
+presumably holds some data that means something to you. I'm sure you know what
+to do with it! cacache just won't care.
+
+`integrity` is a [Subresource
+Integrity](#integrity)
+string. That is, a string that can be used to verify `data`, which looks like
+`<hash-algorithm>-<base64-integrity-hash>`.
+
+If there is no content identified by `key`, or if the locally-stored data does
+not pass the validity checksum, the promise will be rejected.
+
+A sub-function, `get.byDigest` may be used for identical behavior, except lookup
+will happen by integrity hash, bypassing the index entirely. This version of the
+function *only* returns `data` itself, without any wrapper.
+
+##### Note
+
+This function loads the entire cache entry into memory before returning it. If
+you're dealing with Very Large data, consider using [`get.stream`](#get-stream)
+instead.
+
+##### Example
+
+```javascript
+// Look up by key
+cache.get(cachePath, 'my-thing').then(console.log)
+// Output:
+{
+ metadata: {
+ thingName: 'my'
+ },
+ integrity: 'sha512-BaSe64HaSh',
+ data: Buffer#<deadbeef>,
+ size: 9320
+}
+
+// Look up by digest
+cache.get.byDigest(cachePath, 'sha512-BaSe64HaSh').then(console.log)
+// Output:
+Buffer#<deadbeef>
+```
+
+#### <a name="get-stream"></a> `> cacache.get.stream(cache, key, [opts]) -> Readable`
+
+Returns a [Readable Stream](https://nodejs.org/api/stream.html#stream_readable_streams) of the cached data identified by `key`.
+
+If there is no content identified by `key`, or if the locally-stored data does
+not pass the validity checksum, an error will be emitted.
+
+`metadata` and `integrity` events will be emitted before the stream closes, if
+you need to collect that extra data about the cached entry.
+
+A sub-function, `get.stream.byDigest` may be used for identical behavior,
+except lookup will happen by integrity hash, bypassing the index entirely. This
+version does not emit the `metadata` and `integrity` events at all.
+
+##### Example
+
+```javascript
+// Look up by key
+cache.get.stream(
+ cachePath, 'my-thing'
+).on('metadata', metadata => {
+ console.log('metadata:', metadata)
+}).on('integrity', integrity => {
+ console.log('integrity:', integrity)
+}).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+// Outputs:
+metadata: { ... }
+integrity: 'sha512-SoMeDIGest+64=='
+
+// Look up by digest
+cache.get.stream.byDigest(
+ cachePath, 'sha512-SoMeDIGest+64=='
+).pipe(
+ fs.createWriteStream('./x.tgz')
+)
+```
+
+#### <a name="get-info"></a> `> cacache.get.info(cache, key) -> Promise`
+
+Looks up `key` in the cache index, returning information about the entry if
+one exists.
+
+##### Fields
+
+* `key` - Key the entry was looked up under. Matches the `key` argument.
+* `integrity` - [Subresource Integrity hash](#integrity) for the content this entry refers to.
+* `path` - Filesystem path relative to `cache` argument where content is stored.
+* `time` - Timestamp the entry was first added on.
+* `metadata` - User-assigned metadata associated with the entry/content.
+
+##### Example
+
+```javascript
+cacache.get.info(cachePath, 'my-thing').then(console.log)
+
+// Output
+{
+ key: 'my-thing',
+ integrity: 'sha256-MUSTVERIFY+ALL/THINGS=='
+ path: '.testcache/content/deadbeef',
+ time: 12345698490,
+ size: 849234,
+ metadata: {
+ name: 'blah',
+ version: '1.2.3',
+ description: 'this was once a package but now it is my-thing'
+ }
+}
+```
+
+#### <a name="get-hasContent"></a> `> cacache.get.hasContent(cache, integrity) -> Promise`
+
+Looks up a [Subresource Integrity hash](#integrity) in the cache. If content
+exists for this `integrity`, it will return an object, with the specific single integrity hash
+that was found in `sri` key, and the size of the found content as `size`. If no content exists for this integrity, it will return `false`.
+
+##### Example
+
+```javascript
+cacache.get.hasContent(cachePath, 'sha256-MUSTVERIFY+ALL/THINGS==').then(console.log)
+
+// Output
+{
+ sri: {
+ source: 'sha256-MUSTVERIFY+ALL/THINGS==',
+ algorithm: 'sha256',
+ digest: 'MUSTVERIFY+ALL/THINGS==',
+ options: []
+ },
+ size: 9001
+}
+
+cacache.get.hasContent(cachePath, 'sha521-NOT+IN/CACHE==').then(console.log)
+
+// Output
+false
+```
+
+#### <a name="put-data"></a> `> cacache.put(cache, key, data, [opts]) -> Promise`
+
+Inserts data passed to it into the cache. The returned Promise resolves with a
+digest (generated according to [`opts.algorithms`](#optsalgorithms)) after the
+cache entry has been successfully written.
+
+##### Example
+
+```javascript
+fetch(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).then(data => {
+ return cacache.put(cachePath, 'registry.npmjs.org|cacache@1.0.0', data)
+}).then(integrity => {
+ console.log('integrity hash is', integrity)
+})
+```
+
+#### <a name="put-stream"></a> `> cacache.put.stream(cache, key, [opts]) -> Writable`
+
+Returns a [Writable
+Stream](https://nodejs.org/api/stream.html#stream_writable_streams) that inserts
+data written to it into the cache. Emits an `integrity` event with the digest of
+written contents when it succeeds.
+
+##### Example
+
+```javascript
+request.get(
+ 'https://registry.npmjs.org/cacache/-/cacache-1.0.0.tgz'
+).pipe(
+ cacache.put.stream(
+ cachePath, 'registry.npmjs.org|cacache@1.0.0'
+ ).on('integrity', d => console.log(`integrity digest is ${d}`))
+)
+```
+
+#### <a name="put-options"></a> `> cacache.put options`
+
+`cacache.put` functions have a number of options in common.
+
+##### `opts.metadata`
+
+Arbitrary metadata to be attached to the inserted key.
+
+##### `opts.size`
+
+If provided, the data stream will be verified to check that enough data was
+passed through. If there's more or less data than expected, insertion will fail
+with an `EBADSIZE` error.
+
+##### `opts.integrity`
+
+If present, the pre-calculated digest for the inserted content. If this option
+if provided and does not match the post-insertion digest, insertion will fail
+with an `EINTEGRITY` error.
+
+`algorithms` has no effect if this option is present.
+
+##### `opts.algorithms`
+
+Default: ['sha512']
+
+Hashing algorithms to use when calculating the [subresource integrity
+digest](#integrity)
+for inserted data. Can use any algorithm listed in `crypto.getHashes()` or
+`'omakase'`/`'ćŠä»»ć›ć—ć¾ć™'` to pick a random hash algorithm on each insertion. You
+may also use any anagram of `'modnar'` to use this feature.
+
+Currently only supports one algorithm at a time (i.e., an array length of
+exactly `1`). Has no effect if `opts.integrity` is present.
+
+##### `opts.uid`/`opts.gid`
+
+If provided, cacache will do its best to make sure any new files added to the
+cache use this particular `uid`/`gid` combination. This can be used,
+for example, to drop permissions when someone uses `sudo`, but cacache makes
+no assumptions about your needs here.
+
+##### `opts.memoize`
+
+Default: null
+
+If provided, cacache will memoize the given cache insertion in memory, bypassing
+any filesystem checks for that key or digest in future cache fetches. Nothing
+will be written to the in-memory cache unless this option is explicitly truthy.
+
+If `opts.memoize` is an object or a `Map`-like (that is, an object with `get`
+and `set` methods), it will be written to instead of the global memoization
+cache.
+
+Reading from disk data can be forced by explicitly passing `memoize: false` to
+the reader functions, but their default will be to read from memory.
+
+#### <a name="rm-all"></a> `> cacache.rm.all(cache) -> Promise`
+
+Clears the entire cache. Mainly by blowing away the cache directory itself.
+
+##### Example
+
+```javascript
+cacache.rm.all(cachePath).then(() => {
+ console.log('THE APOCALYPSE IS UPON US šŸ˜±')
+})
+```
+
+#### <a name="rm-entry"></a> `> cacache.rm.entry(cache, key) -> Promise`
+
+Alias: `cacache.rm`
+
+Removes the index entry for `key`. Content will still be accessible if
+requested directly by content address ([`get.stream.byDigest`](#get-stream)).
+
+To remove the content itself (which might still be used by other entries), use
+[`rm.content`](#rm-content). Or, to safely vacuum any unused content, use
+[`verify`](#verify).
+
+##### Example
+
+```javascript
+cacache.rm.entry(cachePath, 'my-thing').then(() => {
+ console.log('I did not like it anyway')
+})
+```
+
+#### <a name="rm-content"></a> `> cacache.rm.content(cache, integrity) -> Promise`
+
+Removes the content identified by `integrity`. Any index entries referring to it
+will not be usable again until the content is re-added to the cache with an
+identical digest.
+
+##### Example
+
+```javascript
+cacache.rm.content(cachePath, 'sha512-SoMeDIGest/IN+BaSE64==').then(() => {
+ console.log('data for my-thing is gone!')
+})
+```
+
+#### <a name="set-locale"></a> `> cacache.setLocale(locale)`
+
+Configure the language/locale used for messages and errors coming from cacache.
+The list of available locales is in the `./locales` directory in the project
+root.
+
+_Interested in contributing more languages! [Submit a PR](CONTRIBUTING.md)!_
+
+#### <a name="clear-memoized"></a> `> cacache.clearMemoized()`
+
+Completely resets the in-memory entry cache.
+
+#### <a name="tmp-mkdir"></a> `> tmp.mkdir(cache, opts) -> Promise<Path>`
+
+Returns a unique temporary directory inside the cache's `tmp` dir. This
+directory will use the same safe user assignment that all the other stuff use.
+
+Once the directory is made, it's the user's responsibility that all files within
+are made according to the same `opts.gid`/`opts.uid` settings that would be
+passed in. If not, you can ask cacache to do it for you by calling
+[`tmp.fix()`](#tmp-fix), which will fix all tmp directory permissions.
+
+If you want automatic cleanup of this directory, use
+[`tmp.withTmp()`](#with-tpm)
+
+##### Example
+
+```javascript
+cacache.tmp.mkdir(cache).then(dir => {
+ fs.writeFile(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+})
+```
+
+#### <a name="with-tmp"></a> `> tmp.withTmp(cache, opts, cb) -> Promise`
+
+Creates a temporary directory with [`tmp.mkdir()`](#tmp-mkdir) and calls `cb`
+with it. The created temporary directory will be removed when the return value
+of `cb()` resolves -- that is, if you return a Promise from `cb()`, the tmp
+directory will be automatically deleted once that promise completes.
+
+The same caveats apply when it comes to managing permissions for the tmp dir's
+contents.
+
+##### Example
+
+```javascript
+cacache.tmp.withTmp(cache, dir => {
+ return fs.writeFileAsync(path.join(dir, 'blablabla'), Buffer#<1234>, ...)
+}).then(() => {
+ // `dir` no longer exists
+})
+```
+
+#### <a name="integrity"></a> Subresource Integrity Digests
+
+For content verification and addressing, cacache uses strings following the
+[Subresource
+Integrity spec](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity).
+That is, any time cacache expects an `integrity` argument or option, it
+should be in the format `<hashAlgorithm>-<base64-hash>`.
+
+One deviation from the current spec is that cacache will support any hash
+algorithms supported by the underlying Node.js process. You can use
+`crypto.getHashes()` to see which ones you can use.
+
+##### Generating Digests Yourself
+
+If you have an existing content shasum, they are generally formatted as a
+hexadecimal string (that is, a sha1 would look like:
+`5f5513f8822fdbe5145af33b64d8d970dcf95c6e`). In order to be compatible with
+cacache, you'll need to convert this to an equivalent subresource integrity
+string. For this example, the corresponding hash would be:
+`sha1-X1UT+IIv2+UUWvM7ZNjZcNz5XG4=`.
+
+If you want to generate an integrity string yourself for existing data, you can
+use something like this:
+
+```javascript
+const crypto = require('crypto')
+const hashAlgorithm = 'sha512'
+const data = 'foobarbaz'
+
+const integrity = (
+ hashAlgorithm +
+ '-' +
+ crypto.createHash(hashAlgorithm).update(data).digest('base64')
+)
+```
+
+You can also use [`ssri`](https://npm.im/ssri) to have a richer set of functionality
+around SRI strings, including generation, parsing, and translating from existing
+hex-formatted strings.
+
+#### <a name="verify"></a> `> cacache.verify(cache, opts) -> Promise`
+
+Checks out and fixes up your cache:
+
+* Cleans up corrupted or invalid index entries.
+* Custom entry filtering options.
+* Garbage collects any content entries not referenced by the index.
+* Checks integrity for all content entries and removes invalid content.
+* Fixes cache ownership.
+* Removes the `tmp` directory in the cache and all its contents.
+
+When it's done, it'll return an object with various stats about the verification
+process, including amount of storage reclaimed, number of valid entries, number
+of entries removed, etc.
+
+##### Options
+
+* `opts.uid` - uid to assign to cache and its contents
+* `opts.gid` - gid to assign to cache and its contents
+* `opts.filter` - receives a formatted entry. Return false to remove it.
+ Note: might be called more than once on the same entry.
+
+##### Example
+
+```sh
+echo somegarbage >> $CACHEPATH/content/deadbeef
+```
+
+```javascript
+cacache.verify(cachePath).then(stats => {
+ // deadbeef collected, because of invalid checksum.
+ console.log('cache is much nicer now! stats:', stats)
+})
+```
+
+#### <a name="verify-last-run"></a> `> cacache.verify.lastRun(cache) -> Promise`
+
+Returns a `Date` representing the last time `cacache.verify` was run on `cache`.
+
+##### Example
+
+```javascript
+cacache.verify(cachePath).then(() => {
+ cacache.verify.lastRun(cachePath).then(lastTime => {
+ console.log('cacache.verify was last called on' + lastTime)
+ })
+})
+```
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/en.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/en.js
new file mode 100644
index 0000000000..a3db581c9f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/en.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = require('./locales/en.js')
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/es.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/es.js
new file mode 100644
index 0000000000..6282363c3b
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/es.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = require('./locales/es.js')
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/get.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/get.js
new file mode 100644
index 0000000000..2bb3afa528
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/get.js
@@ -0,0 +1,190 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const fs = require('fs')
+const index = require('./lib/entry-index')
+const memo = require('./lib/memoization')
+const pipe = require('mississippi').pipe
+const pipeline = require('mississippi').pipeline
+const read = require('./lib/content/read')
+const through = require('mississippi').through
+
+module.exports = function get (cache, key, opts) {
+ return getData(false, cache, key, opts)
+}
+module.exports.byDigest = function getByDigest (cache, digest, opts) {
+ return getData(true, cache, digest, opts)
+}
+function getData (byDigest, cache, key, opts) {
+ opts = opts || {}
+ const memoized = (
+ byDigest
+ ? memo.get.byDigest(cache, key, opts)
+ : memo.get(cache, key, opts)
+ )
+ if (memoized && opts.memoize !== false) {
+ return BB.resolve(byDigest ? memoized : {
+ metadata: memoized.entry.metadata,
+ data: memoized.data,
+ integrity: memoized.entry.integrity,
+ size: memoized.entry.size
+ })
+ }
+ return (
+ byDigest ? BB.resolve(null) : index.find(cache, key, opts)
+ ).then(entry => {
+ if (!entry && !byDigest) {
+ throw new index.NotFoundError(cache, key)
+ }
+ return read(cache, byDigest ? key : entry.integrity, {
+ integrity: opts.integrity,
+ size: opts.size
+ }).then(data => byDigest ? data : {
+ metadata: entry.metadata,
+ data: data,
+ size: entry.size,
+ integrity: entry.integrity
+ }).then(res => {
+ if (opts.memoize && byDigest) {
+ memo.put.byDigest(cache, key, res, opts)
+ } else if (opts.memoize) {
+ memo.put(cache, entry, res.data, opts)
+ }
+ return res
+ })
+ })
+}
+
+module.exports.stream = getStream
+function getStream (cache, key, opts) {
+ opts = opts || {}
+ let stream = through()
+ const memoized = memo.get(cache, key, opts)
+ if (memoized && opts.memoize !== false) {
+ stream.on('newListener', function (ev, cb) {
+ ev === 'metadata' && cb(memoized.entry.metadata)
+ ev === 'integrity' && cb(memoized.entry.integrity)
+ ev === 'size' && cb(memoized.entry.size)
+ })
+ stream.write(memoized.data, () => stream.end())
+ return stream
+ }
+ index.find(cache, key).then(entry => {
+ if (!entry) {
+ return stream.emit(
+ 'error', new index.NotFoundError(cache, key)
+ )
+ }
+ let memoStream
+ if (opts.memoize) {
+ let memoData = []
+ let memoLength = 0
+ memoStream = through((c, en, cb) => {
+ memoData && memoData.push(c)
+ memoLength += c.length
+ cb(null, c, en)
+ }, cb => {
+ memoData && memo.put(cache, entry, Buffer.concat(memoData, memoLength), opts)
+ cb()
+ })
+ } else {
+ memoStream = through()
+ }
+ opts.size = opts.size == null ? entry.size : opts.size
+ stream.emit('metadata', entry.metadata)
+ stream.emit('integrity', entry.integrity)
+ stream.emit('size', entry.size)
+ stream.on('newListener', function (ev, cb) {
+ ev === 'metadata' && cb(entry.metadata)
+ ev === 'integrity' && cb(entry.integrity)
+ ev === 'size' && cb(entry.size)
+ })
+ pipe(
+ read.readStream(cache, entry.integrity, opts),
+ memoStream,
+ stream
+ )
+ }, err => stream.emit('error', err))
+ return stream
+}
+
+module.exports.stream.byDigest = getStreamDigest
+function getStreamDigest (cache, integrity, opts) {
+ opts = opts || {}
+ const memoized = memo.get.byDigest(cache, integrity, opts)
+ if (memoized && opts.memoize !== false) {
+ const stream = through()
+ stream.write(memoized, () => stream.end())
+ return stream
+ } else {
+ let stream = read.readStream(cache, integrity, opts)
+ if (opts.memoize) {
+ let memoData = []
+ let memoLength = 0
+ const memoStream = through((c, en, cb) => {
+ memoData && memoData.push(c)
+ memoLength += c.length
+ cb(null, c, en)
+ }, cb => {
+ memoData && memo.put.byDigest(
+ cache,
+ integrity,
+ Buffer.concat(memoData, memoLength),
+ opts
+ )
+ cb()
+ })
+ stream = pipeline(stream, memoStream)
+ }
+ return stream
+ }
+}
+
+module.exports.info = info
+function info (cache, key, opts) {
+ opts = opts || {}
+ const memoized = memo.get(cache, key, opts)
+ if (memoized && opts.memoize !== false) {
+ return BB.resolve(memoized.entry)
+ } else {
+ return index.find(cache, key)
+ }
+}
+
+module.exports.hasContent = read.hasContent
+
+module.exports.copy = function cp (cache, key, dest, opts) {
+ return copy(false, cache, key, dest, opts)
+}
+module.exports.copy.byDigest = function cpDigest (cache, digest, dest, opts) {
+ return copy(true, cache, digest, dest, opts)
+}
+function copy (byDigest, cache, key, dest, opts) {
+ opts = opts || {}
+ if (read.copy) {
+ return (
+ byDigest ? BB.resolve(null) : index.find(cache, key, opts)
+ ).then(entry => {
+ if (!entry && !byDigest) {
+ throw new index.NotFoundError(cache, key)
+ }
+ return read.copy(
+ cache, byDigest ? key : entry.integrity, dest, opts
+ ).then(() => byDigest ? key : {
+ metadata: entry.metadata,
+ size: entry.size,
+ integrity: entry.integrity
+ })
+ })
+ } else {
+ return getData(byDigest, cache, key, opts).then(res => {
+ return fs.writeFileAsync(dest, byDigest ? res : res.data)
+ .then(() => byDigest ? key : {
+ metadata: res.metadata,
+ size: res.size,
+ integrity: res.integrity
+ })
+ })
+ }
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/index.js
new file mode 100644
index 0000000000..a3db581c9f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/index.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = require('./locales/en.js')
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js
new file mode 100644
index 0000000000..fa6491ba6f
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/path.js
@@ -0,0 +1,26 @@
+'use strict'
+
+const contentVer = require('../../package.json')['cache-version'].content
+const hashToSegments = require('../util/hash-to-segments')
+const path = require('path')
+const ssri = require('ssri')
+
+// Current format of content file path:
+//
+// sha512-BaSE64Hex= ->
+// ~/.my-cache/content-v2/sha512/ba/da/55deadbeefc0ffee
+//
+module.exports = contentPath
+function contentPath (cache, integrity) {
+ const sri = ssri.parse(integrity, {single: true})
+ // contentPath is the *strongest* algo given
+ return path.join.apply(path, [
+ contentDir(cache),
+ sri.algorithm
+ ].concat(hashToSegments(sri.hexDigest())))
+}
+
+module.exports._contentDir = contentDir
+function contentDir (cache) {
+ return path.join(cache, `content-v${contentVer}`)
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js
new file mode 100644
index 0000000000..7a4da3beb8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/read.js
@@ -0,0 +1,125 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./path')
+const fs = require('graceful-fs')
+const PassThrough = require('stream').PassThrough
+const pipe = BB.promisify(require('mississippi').pipe)
+const ssri = require('ssri')
+const Y = require('../util/y.js')
+
+BB.promisifyAll(fs)
+
+module.exports = read
+function read (cache, integrity, opts) {
+ opts = opts || {}
+ return pickContentSri(cache, integrity).then(content => {
+ const sri = content.sri
+ const cpath = contentPath(cache, sri)
+ return fs.readFileAsync(cpath, null).then(data => {
+ if (typeof opts.size === 'number' && opts.size !== data.length) {
+ throw sizeError(opts.size, data.length)
+ } else if (ssri.checkData(data, sri)) {
+ return data
+ } else {
+ throw integrityError(sri, cpath)
+ }
+ })
+ })
+}
+
+module.exports.stream = readStream
+module.exports.readStream = readStream
+function readStream (cache, integrity, opts) {
+ opts = opts || {}
+ const stream = new PassThrough()
+ pickContentSri(
+ cache, integrity
+ ).then(content => {
+ const sri = content.sri
+ return pipe(
+ fs.createReadStream(contentPath(cache, sri)),
+ ssri.integrityStream({
+ integrity: sri,
+ size: opts.size
+ }),
+ stream
+ )
+ }).catch(err => {
+ stream.emit('error', err)
+ })
+ return stream
+}
+
+if (fs.copyFile) {
+ module.exports.copy = copy
+}
+function copy (cache, integrity, dest, opts) {
+ opts = opts || {}
+ return pickContentSri(cache, integrity).then(content => {
+ const sri = content.sri
+ const cpath = contentPath(cache, sri)
+ return fs.copyFileAsync(cpath, dest).then(() => content.size)
+ })
+}
+
+module.exports.hasContent = hasContent
+function hasContent (cache, integrity) {
+ if (!integrity) { return BB.resolve(false) }
+ return pickContentSri(cache, integrity)
+ .catch({code: 'ENOENT'}, () => false)
+ .catch({code: 'EPERM'}, err => {
+ if (process.platform !== 'win32') {
+ throw err
+ } else {
+ return false
+ }
+ }).then(content => {
+ if (!content.sri) return false
+ return ({ sri: content.sri, size: content.stat.size })
+ })
+}
+
+module.exports._pickContentSri = pickContentSri
+function pickContentSri (cache, integrity) {
+ const sri = ssri.parse(integrity)
+ // If `integrity` has multiple entries, pick the first digest
+ // with available local data.
+ const algo = sri.pickAlgorithm()
+ const digests = sri[algo]
+ if (digests.length <= 1) {
+ const cpath = contentPath(cache, digests[0])
+ return fs.lstatAsync(cpath).then(stat => ({ sri: digests[0], stat }))
+ } else {
+ return BB.any(sri[sri.pickAlgorithm()].map(meta => {
+ return pickContentSri(cache, meta)
+ }))
+ .catch(err => {
+ if ([].some.call(err, e => e.code === 'ENOENT')) {
+ throw Object.assign(
+ new Error('No matching content found for ' + sri.toString()),
+ {code: 'ENOENT'}
+ )
+ } else {
+ throw err[0]
+ }
+ })
+ }
+}
+
+function sizeError (expected, found) {
+ var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
+ err.expected = expected
+ err.found = found
+ err.code = 'EBADSIZE'
+ return err
+}
+
+function integrityError (sri, path) {
+ var err = new Error(Y`Integrity verification failed for ${sri} (${path})`)
+ err.code = 'EINTEGRITY'
+ err.sri = sri
+ err.path = path
+ return err
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js
new file mode 100644
index 0000000000..12cf158235
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/rm.js
@@ -0,0 +1,21 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./path')
+const hasContent = require('./read').hasContent
+const rimraf = BB.promisify(require('rimraf'))
+
+module.exports = rm
+function rm (cache, integrity) {
+ return hasContent(cache, integrity).then(content => {
+ if (content) {
+ const sri = content.sri
+ if (sri) {
+ return rimraf(contentPath(cache, sri)).then(() => true)
+ }
+ } else {
+ return false
+ }
+ })
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js
new file mode 100644
index 0000000000..a79ae92902
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/content/write.js
@@ -0,0 +1,162 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./path')
+const fixOwner = require('../util/fix-owner')
+const fs = require('graceful-fs')
+const moveFile = require('../util/move-file')
+const PassThrough = require('stream').PassThrough
+const path = require('path')
+const pipe = BB.promisify(require('mississippi').pipe)
+const rimraf = BB.promisify(require('rimraf'))
+const ssri = require('ssri')
+const to = require('mississippi').to
+const uniqueFilename = require('unique-filename')
+const Y = require('../util/y.js')
+
+const writeFileAsync = BB.promisify(fs.writeFile)
+
+module.exports = write
+function write (cache, data, opts) {
+ opts = opts || {}
+ if (opts.algorithms && opts.algorithms.length > 1) {
+ throw new Error(
+ Y`opts.algorithms only supports a single algorithm for now`
+ )
+ }
+ if (typeof opts.size === 'number' && data.length !== opts.size) {
+ return BB.reject(sizeError(opts.size, data.length))
+ }
+ const sri = ssri.fromData(data, opts)
+ if (opts.integrity && !ssri.checkData(data, opts.integrity, opts)) {
+ return BB.reject(checksumError(opts.integrity, sri))
+ }
+ return BB.using(makeTmp(cache, opts), tmp => (
+ writeFileAsync(
+ tmp.target, data, {flag: 'wx'}
+ ).then(() => (
+ moveToDestination(tmp, cache, sri, opts)
+ ))
+ )).then(() => ({integrity: sri, size: data.length}))
+}
+
+module.exports.stream = writeStream
+function writeStream (cache, opts) {
+ opts = opts || {}
+ const inputStream = new PassThrough()
+ let inputErr = false
+ function errCheck () {
+ if (inputErr) { throw inputErr }
+ }
+
+ let allDone
+ const ret = to((c, n, cb) => {
+ if (!allDone) {
+ allDone = handleContent(inputStream, cache, opts, errCheck)
+ }
+ inputStream.write(c, n, cb)
+ }, cb => {
+ inputStream.end(() => {
+ if (!allDone) {
+ const e = new Error(Y`Cache input stream was empty`)
+ e.code = 'ENODATA'
+ return ret.emit('error', e)
+ }
+ allDone.then(res => {
+ res.integrity && ret.emit('integrity', res.integrity)
+ res.size !== null && ret.emit('size', res.size)
+ cb()
+ }, e => {
+ ret.emit('error', e)
+ })
+ })
+ })
+ ret.once('error', e => {
+ inputErr = e
+ })
+ return ret
+}
+
+function handleContent (inputStream, cache, opts, errCheck) {
+ return BB.using(makeTmp(cache, opts), tmp => {
+ errCheck()
+ return pipeToTmp(
+ inputStream, cache, tmp.target, opts, errCheck
+ ).then(res => {
+ return moveToDestination(
+ tmp, cache, res.integrity, opts, errCheck
+ ).then(() => res)
+ })
+ })
+}
+
+function pipeToTmp (inputStream, cache, tmpTarget, opts, errCheck) {
+ return BB.resolve().then(() => {
+ let integrity
+ let size
+ const hashStream = ssri.integrityStream({
+ integrity: opts.integrity,
+ algorithms: opts.algorithms,
+ size: opts.size
+ }).on('integrity', s => {
+ integrity = s
+ }).on('size', s => {
+ size = s
+ })
+ const outStream = fs.createWriteStream(tmpTarget, {
+ flags: 'wx'
+ })
+ errCheck()
+ return pipe(inputStream, hashStream, outStream).then(() => {
+ return {integrity, size}
+ }, err => {
+ return rimraf(tmpTarget).then(() => { throw err })
+ })
+ })
+}
+
+function makeTmp (cache, opts) {
+ const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)
+ return fixOwner.mkdirfix(
+ path.dirname(tmpTarget), opts.uid, opts.gid
+ ).then(() => ({
+ target: tmpTarget,
+ moved: false
+ })).disposer(tmp => (!tmp.moved && rimraf(tmp.target)))
+}
+
+function moveToDestination (tmp, cache, sri, opts, errCheck) {
+ errCheck && errCheck()
+ const destination = contentPath(cache, sri)
+ const destDir = path.dirname(destination)
+
+ return fixOwner.mkdirfix(
+ destDir, opts.uid, opts.gid
+ ).then(() => {
+ errCheck && errCheck()
+ return moveFile(tmp.target, destination)
+ }).then(() => {
+ errCheck && errCheck()
+ tmp.moved = true
+ return fixOwner.chownr(destination, opts.uid, opts.gid)
+ })
+}
+
+function sizeError (expected, found) {
+ var err = new Error(Y`Bad data size: expected inserted data to be ${expected} bytes, but got ${found} instead`)
+ err.expected = expected
+ err.found = found
+ err.code = 'EBADSIZE'
+ return err
+}
+
+function checksumError (expected, found) {
+ var err = new Error(Y`Integrity check failed:
+ Wanted: ${expected}
+ Found: ${found}`)
+ err.code = 'EINTEGRITY'
+ err.expected = expected
+ err.found = found
+ return err
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js
new file mode 100644
index 0000000000..fe1cd06457
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/entry-index.js
@@ -0,0 +1,225 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./content/path')
+const crypto = require('crypto')
+const fixOwner = require('./util/fix-owner')
+const fs = require('graceful-fs')
+const hashToSegments = require('./util/hash-to-segments')
+const ms = require('mississippi')
+const path = require('path')
+const ssri = require('ssri')
+const Y = require('./util/y.js')
+
+const indexV = require('../package.json')['cache-version'].index
+
+const appendFileAsync = BB.promisify(fs.appendFile)
+const readFileAsync = BB.promisify(fs.readFile)
+const readdirAsync = BB.promisify(fs.readdir)
+const concat = ms.concat
+const from = ms.from
+
+module.exports.NotFoundError = class NotFoundError extends Error {
+ constructor (cache, key) {
+ super(Y`No cache entry for \`${key}\` found in \`${cache}\``)
+ this.code = 'ENOENT'
+ this.cache = cache
+ this.key = key
+ }
+}
+
+module.exports.insert = insert
+function insert (cache, key, integrity, opts) {
+ opts = opts || {}
+ const bucket = bucketPath(cache, key)
+ const entry = {
+ key,
+ integrity: integrity && ssri.stringify(integrity),
+ time: Date.now(),
+ size: opts.size,
+ metadata: opts.metadata
+ }
+ return fixOwner.mkdirfix(
+ path.dirname(bucket), opts.uid, opts.gid
+ ).then(() => {
+ const stringified = JSON.stringify(entry)
+ // NOTE - Cleverness ahoy!
+ //
+ // This works because it's tremendously unlikely for an entry to corrupt
+ // another while still preserving the string length of the JSON in
+ // question. So, we just slap the length in there and verify it on read.
+ //
+ // Thanks to @isaacs for the whiteboarding session that ended up with this.
+ return appendFileAsync(
+ bucket, `\n${hashEntry(stringified)}\t${stringified}`
+ )
+ }).then(
+ () => fixOwner.chownr(bucket, opts.uid, opts.gid)
+ ).catch({code: 'ENOENT'}, () => {
+ // There's a class of race conditions that happen when things get deleted
+ // during fixOwner, or between the two mkdirfix/chownr calls.
+ //
+ // It's perfectly fine to just not bother in those cases and lie
+ // that the index entry was written. Because it's a cache.
+ }).then(() => {
+ return formatEntry(cache, entry)
+ })
+}
+
+module.exports.find = find
+function find (cache, key) {
+ const bucket = bucketPath(cache, key)
+ return bucketEntries(cache, bucket).then(entries => {
+ return entries.reduce((latest, next) => {
+ if (next && next.key === key) {
+ return formatEntry(cache, next)
+ } else {
+ return latest
+ }
+ }, null)
+ }).catch(err => {
+ if (err.code === 'ENOENT') {
+ return null
+ } else {
+ throw err
+ }
+ })
+}
+
+module.exports.delete = del
+function del (cache, key, opts) {
+ return insert(cache, key, null, opts)
+}
+
+module.exports.lsStream = lsStream
+function lsStream (cache) {
+ const indexDir = bucketDir(cache)
+ const stream = from.obj()
+
+ // "/cachename/*"
+ readdirOrEmpty(indexDir).map(bucket => {
+ const bucketPath = path.join(indexDir, bucket)
+
+ // "/cachename/<bucket 0xFF>/*"
+ return readdirOrEmpty(bucketPath).map(subbucket => {
+ const subbucketPath = path.join(bucketPath, subbucket)
+
+ // "/cachename/<bucket 0xFF>/<bucket 0xFF>/*"
+ return readdirOrEmpty(subbucketPath).map(entry => {
+ const getKeyToEntry = bucketEntries(
+ cache,
+ path.join(subbucketPath, entry)
+ ).reduce((acc, entry) => {
+ acc.set(entry.key, entry)
+ return acc
+ }, new Map())
+
+ return getKeyToEntry.then(reduced => {
+ for (let entry of reduced.values()) {
+ const formatted = formatEntry(cache, entry)
+ formatted && stream.push(formatted)
+ }
+ }).catch({code: 'ENOENT'}, nop)
+ })
+ })
+ }).then(() => {
+ stream.push(null)
+ }, err => {
+ stream.emit('error', err)
+ })
+
+ return stream
+}
+
+module.exports.ls = ls
+function ls (cache) {
+ return BB.fromNode(cb => {
+ lsStream(cache).on('error', cb).pipe(concat(entries => {
+ cb(null, entries.reduce((acc, xs) => {
+ acc[xs.key] = xs
+ return acc
+ }, {}))
+ }))
+ })
+}
+
+function bucketEntries (cache, bucket, filter) {
+ return readFileAsync(
+ bucket, 'utf8'
+ ).then(data => {
+ let entries = []
+ data.split('\n').forEach(entry => {
+ if (!entry) { return }
+ const pieces = entry.split('\t')
+ if (!pieces[1] || hashEntry(pieces[1]) !== pieces[0]) {
+ // Hash is no good! Corruption or malice? Doesn't matter!
+ // EJECT EJECT
+ return
+ }
+ let obj
+ try {
+ obj = JSON.parse(pieces[1])
+ } catch (e) {
+ // Entry is corrupted!
+ return
+ }
+ if (obj) {
+ entries.push(obj)
+ }
+ })
+ return entries
+ })
+}
+
+module.exports._bucketDir = bucketDir
+function bucketDir (cache) {
+ return path.join(cache, `index-v${indexV}`)
+}
+
+module.exports._bucketPath = bucketPath
+function bucketPath (cache, key) {
+ const hashed = hashKey(key)
+ return path.join.apply(path, [bucketDir(cache)].concat(
+ hashToSegments(hashed)
+ ))
+}
+
+module.exports._hashKey = hashKey
+function hashKey (key) {
+ return hash(key, 'sha256')
+}
+
+module.exports._hashEntry = hashEntry
+function hashEntry (str) {
+ return hash(str, 'sha1')
+}
+
+function hash (str, digest) {
+ return crypto
+ .createHash(digest)
+ .update(str)
+ .digest('hex')
+}
+
+function formatEntry (cache, entry) {
+ // Treat null digests as deletions. They'll shadow any previous entries.
+ if (!entry.integrity) { return null }
+ return {
+ key: entry.key,
+ integrity: entry.integrity,
+ path: contentPath(cache, entry.integrity),
+ size: entry.size,
+ time: entry.time,
+ metadata: entry.metadata
+ }
+}
+
+function readdirOrEmpty (dir) {
+ return readdirAsync(dir)
+ .catch({code: 'ENOENT'}, () => [])
+ .catch({code: 'ENOTDIR'}, () => [])
+}
+
+function nop () {
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js
new file mode 100644
index 0000000000..92179c7ac6
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/memoization.js
@@ -0,0 +1,69 @@
+'use strict'
+
+const LRU = require('lru-cache')
+
+const MAX_SIZE = 50 * 1024 * 1024 // 50MB
+const MAX_AGE = 3 * 60 * 1000
+
+let MEMOIZED = new LRU({
+ max: MAX_SIZE,
+ maxAge: MAX_AGE,
+ length: (entry, key) => {
+ if (key.startsWith('key:')) {
+ return entry.data.length
+ } else if (key.startsWith('digest:')) {
+ return entry.length
+ }
+ }
+})
+
+module.exports.clearMemoized = clearMemoized
+function clearMemoized () {
+ const old = {}
+ MEMOIZED.forEach((v, k) => {
+ old[k] = v
+ })
+ MEMOIZED.reset()
+ return old
+}
+
+module.exports.put = put
+function put (cache, entry, data, opts) {
+ pickMem(opts).set(`key:${cache}:${entry.key}`, { entry, data })
+ putDigest(cache, entry.integrity, data, opts)
+}
+
+module.exports.put.byDigest = putDigest
+function putDigest (cache, integrity, data, opts) {
+ pickMem(opts).set(`digest:${cache}:${integrity}`, data)
+}
+
+module.exports.get = get
+function get (cache, key, opts) {
+ return pickMem(opts).get(`key:${cache}:${key}`)
+}
+
+module.exports.get.byDigest = getDigest
+function getDigest (cache, integrity, opts) {
+ return pickMem(opts).get(`digest:${cache}:${integrity}`)
+}
+
+class ObjProxy {
+ constructor (obj) {
+ this.obj = obj
+ }
+ get (key) { return this.obj[key] }
+ set (key, val) { this.obj[key] = val }
+}
+
+function pickMem (opts) {
+ if (!opts || !opts.memoize) {
+ return MEMOIZED
+ } else if (opts.memoize.get && opts.memoize.set) {
+ return opts.memoize
+ } else if (typeof opts.memoize === 'object') {
+ return new ObjProxy(opts.memoize)
+ } else {
+ return MEMOIZED
+ }
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js
new file mode 100644
index 0000000000..7000bff048
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/fix-owner.js
@@ -0,0 +1,44 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const chownr = BB.promisify(require('chownr'))
+const mkdirp = BB.promisify(require('mkdirp'))
+const inflight = require('promise-inflight')
+
+module.exports.chownr = fixOwner
+function fixOwner (filepath, uid, gid) {
+ if (!process.getuid) {
+ // This platform doesn't need ownership fixing
+ return BB.resolve()
+ }
+ if (typeof uid !== 'number' && typeof gid !== 'number') {
+ // There's no permissions override. Nothing to do here.
+ return BB.resolve()
+ }
+ if ((typeof uid === 'number' && process.getuid() === uid) &&
+ (typeof gid === 'number' && process.getgid() === gid)) {
+ // No need to override if it's already what we used.
+ return BB.resolve()
+ }
+ return inflight(
+ 'fixOwner: fixing ownership on ' + filepath,
+ () => chownr(
+ filepath,
+ typeof uid === 'number' ? uid : process.getuid(),
+ typeof gid === 'number' ? gid : process.getgid()
+ ).catch({code: 'ENOENT'}, () => null)
+ )
+}
+
+module.exports.mkdirfix = mkdirfix
+function mkdirfix (p, uid, gid, cb) {
+ return mkdirp(p).then(made => {
+ if (made) {
+ return fixOwner(made, uid, gid).then(() => made)
+ }
+ }).catch({code: 'EEXIST'}, () => {
+ // There's a race in mkdirp!
+ return fixOwner(p, uid, gid).then(() => null)
+ })
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js
new file mode 100644
index 0000000000..192be2a6d6
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/hash-to-segments.js
@@ -0,0 +1,11 @@
+'use strict'
+
+module.exports = hashToSegments
+
+function hashToSegments (hash) {
+ return [
+ hash.slice(0, 2),
+ hash.slice(2, 4),
+ hash.slice(4)
+ ]
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js
new file mode 100644
index 0000000000..b43744b3da
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/move-file.js
@@ -0,0 +1,51 @@
+'use strict'
+
+const fs = require('graceful-fs')
+const BB = require('bluebird')
+const chmod = BB.promisify(fs.chmod)
+const unlink = BB.promisify(fs.unlink)
+let move
+let pinflight
+
+module.exports = moveFile
+function moveFile (src, dest) {
+ // This isn't quite an fs.rename -- the assumption is that
+ // if `dest` already exists, and we get certain errors while
+ // trying to move it, we should just not bother.
+ //
+ // In the case of cache corruption, users will receive an
+ // EINTEGRITY error elsewhere, and can remove the offending
+ // content their own way.
+ //
+ // Note that, as the name suggests, this strictly only supports file moves.
+ return BB.fromNode(cb => {
+ fs.link(src, dest, err => {
+ if (err) {
+ if (err.code === 'EEXIST' || err.code === 'EBUSY') {
+ // file already exists, so whatever
+ } else if (err.code === 'EPERM' && process.platform === 'win32') {
+ // file handle stayed open even past graceful-fs limits
+ } else {
+ return cb(err)
+ }
+ }
+ return cb()
+ })
+ }).then(() => {
+ // content should never change for any reason, so make it read-only
+ return BB.join(unlink(src), process.platform !== 'win32' && chmod(dest, '0444'))
+ }).catch(() => {
+ if (!pinflight) { pinflight = require('promise-inflight') }
+ return pinflight('cacache-move-file:' + dest, () => {
+ return BB.promisify(fs.stat)(dest).catch(err => {
+ if (err.code !== 'ENOENT') {
+ // Something else is wrong here. Bail bail bail
+ throw err
+ }
+ // file doesn't already exist! let's try a rename -> copy fallback
+ if (!move) { move = require('move-concurrently') }
+ return move(src, dest, { BB, fs })
+ })
+ })
+ })
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js
new file mode 100644
index 0000000000..4fc4512cc8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/tmp.js
@@ -0,0 +1,32 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const fixOwner = require('./fix-owner')
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const uniqueFilename = require('unique-filename')
+
+module.exports.mkdir = mktmpdir
+function mktmpdir (cache, opts) {
+ opts = opts || {}
+ const tmpTarget = uniqueFilename(path.join(cache, 'tmp'), opts.tmpPrefix)
+ return fixOwner.mkdirfix(tmpTarget, opts.uid, opts.gid).then(() => {
+ return tmpTarget
+ })
+}
+
+module.exports.withTmp = withTmp
+function withTmp (cache, opts, cb) {
+ if (!cb) {
+ cb = opts
+ opts = null
+ }
+ opts = opts || {}
+ return BB.using(mktmpdir(cache, opts).disposer(rimraf), cb)
+}
+
+module.exports.fix = fixtmpdir
+function fixtmpdir (cache, opts) {
+ return fixOwner(path.join(cache, 'tmp'), opts.uid, opts.gid)
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js
new file mode 100644
index 0000000000..d62bedacb3
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/util/y.js
@@ -0,0 +1,25 @@
+'use strict'
+
+const path = require('path')
+const y18n = require('y18n')({
+ directory: path.join(__dirname, '../../locales'),
+ locale: 'en',
+ updateFiles: process.env.CACACHE_UPDATE_LOCALE_FILES === 'true'
+})
+
+module.exports = yTag
+function yTag (parts) {
+ let str = ''
+ parts.forEach((part, i) => {
+ const arg = arguments[i + 1]
+ str += part
+ if (arg) {
+ str += '%s'
+ }
+ })
+ return y18n.__.apply(null, [str].concat([].slice.call(arguments, 1)))
+}
+
+module.exports.setLocale = locale => {
+ y18n.setLocale(locale)
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js
new file mode 100644
index 0000000000..6a01004c97
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/lib/verify.js
@@ -0,0 +1,213 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const contentPath = require('./content/path')
+const finished = BB.promisify(require('mississippi').finished)
+const fixOwner = require('./util/fix-owner')
+const fs = require('graceful-fs')
+const glob = BB.promisify(require('glob'))
+const index = require('./entry-index')
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const ssri = require('ssri')
+
+BB.promisifyAll(fs)
+
+module.exports = verify
+function verify (cache, opts) {
+ opts = opts || {}
+ opts.log && opts.log.silly('verify', 'verifying cache at', cache)
+ return BB.reduce([
+ markStartTime,
+ fixPerms,
+ garbageCollect,
+ rebuildIndex,
+ cleanTmp,
+ writeVerifile,
+ markEndTime
+ ], (stats, step, i) => {
+ const label = step.name || `step #${i}`
+ const start = new Date()
+ return BB.resolve(step(cache, opts)).then(s => {
+ s && Object.keys(s).forEach(k => {
+ stats[k] = s[k]
+ })
+ const end = new Date()
+ if (!stats.runTime) { stats.runTime = {} }
+ stats.runTime[label] = end - start
+ return stats
+ })
+ }, {}).tap(stats => {
+ stats.runTime.total = stats.endTime - stats.startTime
+ opts.log && opts.log.silly('verify', 'verification finished for', cache, 'in', `${stats.runTime.total}ms`)
+ })
+}
+
+function markStartTime (cache, opts) {
+ return { startTime: new Date() }
+}
+
+function markEndTime (cache, opts) {
+ return { endTime: new Date() }
+}
+
+function fixPerms (cache, opts) {
+ opts.log && opts.log.silly('verify', 'fixing cache permissions')
+ return fixOwner.mkdirfix(cache, opts.uid, opts.gid).then(() => {
+ // TODO - fix file permissions too
+ return fixOwner.chownr(cache, opts.uid, opts.gid)
+ }).then(() => null)
+}
+
+// Implements a naive mark-and-sweep tracing garbage collector.
+//
+// The algorithm is basically as follows:
+// 1. Read (and filter) all index entries ("pointers")
+// 2. Mark each integrity value as "live"
+// 3. Read entire filesystem tree in `content-vX/` dir
+// 4. If content is live, verify its checksum and delete it if it fails
+// 5. If content is not marked as live, rimraf it.
+//
+function garbageCollect (cache, opts) {
+ opts.log && opts.log.silly('verify', 'garbage collecting content')
+ const indexStream = index.lsStream(cache)
+ const liveContent = new Set()
+ indexStream.on('data', entry => {
+ if (opts && opts.filter && !opts.filter(entry)) { return }
+ liveContent.add(entry.integrity.toString())
+ })
+ return finished(indexStream).then(() => {
+ const contentDir = contentPath._contentDir(cache)
+ return glob(path.join(contentDir, '**'), {
+ follow: false,
+ nodir: true,
+ nosort: true
+ }).then(files => {
+ return BB.resolve({
+ verifiedContent: 0,
+ reclaimedCount: 0,
+ reclaimedSize: 0,
+ badContentCount: 0,
+ keptSize: 0
+ }).tap((stats) => BB.map(files, (f) => {
+ const split = f.split(/[/\\]/)
+ const digest = split.slice(split.length - 3).join('')
+ const algo = split[split.length - 4]
+ const integrity = ssri.fromHex(digest, algo)
+ if (liveContent.has(integrity.toString())) {
+ return verifyContent(f, integrity).then(info => {
+ if (!info.valid) {
+ stats.reclaimedCount++
+ stats.badContentCount++
+ stats.reclaimedSize += info.size
+ } else {
+ stats.verifiedContent++
+ stats.keptSize += info.size
+ }
+ return stats
+ })
+ } else {
+ // No entries refer to this content. We can delete.
+ stats.reclaimedCount++
+ return fs.statAsync(f).then(s => {
+ return rimraf(f).then(() => {
+ stats.reclaimedSize += s.size
+ return stats
+ })
+ })
+ }
+ }, {concurrency: opts.concurrency || 20}))
+ })
+ })
+}
+
+function verifyContent (filepath, sri) {
+ return fs.statAsync(filepath).then(stat => {
+ const contentInfo = {
+ size: stat.size,
+ valid: true
+ }
+ return ssri.checkStream(
+ fs.createReadStream(filepath),
+ sri
+ ).catch(err => {
+ if (err.code !== 'EINTEGRITY') { throw err }
+ return rimraf(filepath).then(() => {
+ contentInfo.valid = false
+ })
+ }).then(() => contentInfo)
+ }).catch({code: 'ENOENT'}, () => ({size: 0, valid: false}))
+}
+
+function rebuildIndex (cache, opts) {
+ opts.log && opts.log.silly('verify', 'rebuilding index')
+ return index.ls(cache).then(entries => {
+ const stats = {
+ missingContent: 0,
+ rejectedEntries: 0,
+ totalEntries: 0
+ }
+ const buckets = {}
+ for (let k in entries) {
+ if (entries.hasOwnProperty(k)) {
+ const hashed = index._hashKey(k)
+ const entry = entries[k]
+ const excluded = opts && opts.filter && !opts.filter(entry)
+ excluded && stats.rejectedEntries++
+ if (buckets[hashed] && !excluded) {
+ buckets[hashed].push(entry)
+ } else if (buckets[hashed] && excluded) {
+ // skip
+ } else if (excluded) {
+ buckets[hashed] = []
+ buckets[hashed]._path = index._bucketPath(cache, k)
+ } else {
+ buckets[hashed] = [entry]
+ buckets[hashed]._path = index._bucketPath(cache, k)
+ }
+ }
+ }
+ return BB.map(Object.keys(buckets), key => {
+ return rebuildBucket(cache, buckets[key], stats, opts)
+ }, {concurrency: opts.concurrency || 20}).then(() => stats)
+ })
+}
+
+function rebuildBucket (cache, bucket, stats, opts) {
+ return fs.truncateAsync(bucket._path).then(() => {
+ // This needs to be serialized because cacache explicitly
+ // lets very racy bucket conflicts clobber each other.
+ return BB.mapSeries(bucket, entry => {
+ const content = contentPath(cache, entry.integrity)
+ return fs.statAsync(content).then(() => {
+ return index.insert(cache, entry.key, entry.integrity, {
+ uid: opts.uid,
+ gid: opts.gid,
+ metadata: entry.metadata
+ }).then(() => { stats.totalEntries++ })
+ }).catch({code: 'ENOENT'}, () => {
+ stats.rejectedEntries++
+ stats.missingContent++
+ })
+ })
+ })
+}
+
+function cleanTmp (cache, opts) {
+ opts.log && opts.log.silly('verify', 'cleaning tmp directory')
+ return rimraf(path.join(cache, 'tmp'))
+}
+
+function writeVerifile (cache, opts) {
+ const verifile = path.join(cache, '_lastverified')
+ opts.log && opts.log.silly('verify', 'writing verifile to ' + verifile)
+ return fs.writeFileAsync(verifile, '' + (+(new Date())))
+}
+
+module.exports.lastRun = lastRun
+function lastRun (cache) {
+ return fs.readFileAsync(
+ path.join(cache, '_lastverified'), 'utf8'
+ ).then(data => new Date(+data))
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js
new file mode 100644
index 0000000000..22025cf0e8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.js
@@ -0,0 +1,44 @@
+'use strict'
+
+const ls = require('../ls.js')
+const get = require('../get.js')
+const put = require('../put.js')
+const rm = require('../rm.js')
+const verify = require('../verify.js')
+const setLocale = require('../lib/util/y.js').setLocale
+const clearMemoized = require('../lib/memoization.js').clearMemoized
+const tmp = require('../lib/util/tmp.js')
+
+setLocale('en')
+
+const x = module.exports
+
+x.ls = cache => ls(cache)
+x.ls.stream = cache => ls.stream(cache)
+
+x.get = (cache, key, opts) => get(cache, key, opts)
+x.get.byDigest = (cache, hash, opts) => get.byDigest(cache, hash, opts)
+x.get.stream = (cache, key, opts) => get.stream(cache, key, opts)
+x.get.stream.byDigest = (cache, hash, opts) => get.stream.byDigest(cache, hash, opts)
+x.get.copy = (cache, key, dest, opts) => get.copy(cache, key, dest, opts)
+x.get.copy.byDigest = (cache, hash, dest, opts) => get.copy.byDigest(cache, hash, dest, opts)
+x.get.info = (cache, key) => get.info(cache, key)
+x.get.hasContent = (cache, hash) => get.hasContent(cache, hash)
+
+x.put = (cache, key, data, opts) => put(cache, key, data, opts)
+x.put.stream = (cache, key, opts) => put.stream(cache, key, opts)
+
+x.rm = (cache, key) => rm.entry(cache, key)
+x.rm.all = cache => rm.all(cache)
+x.rm.entry = x.rm
+x.rm.content = (cache, hash) => rm.content(cache, hash)
+
+x.setLocale = lang => setLocale(lang)
+x.clearMemoized = () => clearMemoized()
+
+x.tmp = {}
+x.tmp.mkdir = (cache, opts) => tmp.mkdir(cache, opts)
+x.tmp.withTmp = (cache, opts, cb) => tmp.withTmp(cache, opts, cb)
+
+x.verify = (cache, opts) => verify(cache, opts)
+x.verify.lastRun = cache => verify.lastRun(cache)
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json
new file mode 100644
index 0000000000..82ecb08324
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/en.json
@@ -0,0 +1,6 @@
+{
+ "No cache entry for `%s` found in `%s`": "No cache entry for %s found in %s",
+ "Integrity verification failed for %s (%s)": "Integrity verification failed for %s (%s)",
+ "Bad data size: expected inserted data to be %s bytes, but got %s instead": "Bad data size: expected inserted data to be %s bytes, but got %s instead",
+ "Cache input stream was empty": "Cache input stream was empty"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js
new file mode 100644
index 0000000000..9a27de6585
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.js
@@ -0,0 +1,46 @@
+'use strict'
+
+const ls = require('../ls.js')
+const get = require('../get.js')
+const put = require('../put.js')
+const rm = require('../rm.js')
+const verify = require('../verify.js')
+const setLocale = require('../lib/util/y.js').setLocale
+const clearMemoized = require('../lib/memoization.js').clearMemoized
+const tmp = require('../lib/util/tmp.js')
+
+setLocale('es')
+
+const x = module.exports
+
+x.ls = cache => ls(cache)
+x.ls.flujo = cache => ls.stream(cache)
+
+x.saca = (cache, clave, ops) => get(cache, clave, ops)
+x.saca.porHacheo = (cache, hacheo, ops) => get.byDigest(cache, hacheo, ops)
+x.saca.flujo = (cache, clave, ops) => get.stream(cache, clave, ops)
+x.saca.flujo.porHacheo = (cache, hacheo, ops) => get.stream.byDigest(cache, hacheo, ops)
+x.sava.copia = (cache, clave, destino, opts) => get.copy(cache, clave, destino, opts)
+x.sava.copia.porHacheo = (cache, hacheo, destino, opts) => get.copy.byDigest(cache, hacheo, destino, opts)
+x.saca.info = (cache, clave) => get.info(cache, clave)
+x.saca.tieneDatos = (cache, hacheo) => get.hasContent(cache, hacheo)
+
+x.mete = (cache, clave, datos, ops) => put(cache, clave, datos, ops)
+x.mete.flujo = (cache, clave, ops) => put.stream(cache, clave, ops)
+
+x.rm = (cache, clave) => rm.entry(cache, clave)
+x.rm.todo = cache => rm.all(cache)
+x.rm.entrada = x.rm
+x.rm.datos = (cache, hacheo) => rm.content(cache, hacheo)
+
+x.ponLenguaje = lang => setLocale(lang)
+x.limpiaMemoizado = () => clearMemoized()
+
+x.tmp = {}
+x.tmp.mkdir = (cache, ops) => tmp.mkdir(cache, ops)
+x.tmp.hazdir = x.tmp.mkdir
+x.tmp.conTmp = (cache, ops, cb) => tmp.withTmp(cache, ops, cb)
+
+x.verifica = (cache, ops) => verify(cache, ops)
+x.verifica.ultimaVez = cache => verify.lastRun(cache)
+x.verifica.ĆŗltimaVez = x.verifica.ultimaVez
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json
new file mode 100644
index 0000000000..a91d76225b
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/locales/es.json
@@ -0,0 +1,6 @@
+{
+ "No cache entry for `%s` found in `%s`": "No existe ninguna entrada para Ā«%sĀ» en Ā«%sĀ»",
+ "Integrity verification failed for %s (%s)": "VerificaciĆ³n de integridad fallĆ³ para Ā«%sĀ» (%s)",
+ "Bad data size: expected inserted data to be %s bytes, but got %s instead": "TamaƱo incorrecto de datos: los datos insertados debieron haber sido %s octetos, pero fueron %s",
+ "Cache input stream was empty": "El stream de entrada al cachƩ estaba vacƭo"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/ls.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/ls.js
new file mode 100644
index 0000000000..9f49b388ac
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/ls.js
@@ -0,0 +1,6 @@
+'use strict'
+
+var index = require('./lib/entry-index')
+
+module.exports = index.ls
+module.exports.stream = index.lsStream
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md
new file mode 100644
index 0000000000..93430828f8
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/changelog.md
@@ -0,0 +1,7 @@
+# mississippi Change Log
+All notable changes to this project will be documented in this file.
+This project adheres to [Semantic Versioning](http://semver.org/).
+
+## 2.0.0 - 2018-01-30
+* Update to pump@2.0.1. (Use the individual modules to avoid potentially unnecessary major updates in your project)
+* Pin engines support to >= Node 4.0.0. Run Node LTS or greater.
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js
new file mode 100644
index 0000000000..d635b29c56
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/index.js
@@ -0,0 +1,10 @@
+module.exports.pipe = require('pump')
+module.exports.each = require('stream-each')
+module.exports.pipeline = require('pumpify')
+module.exports.duplex = require('duplexify')
+module.exports.through = require('through2')
+module.exports.concat = require('concat-stream')
+module.exports.finished = require('end-of-stream')
+module.exports.from = require('from2')
+module.exports.to = require('flush-write-stream')
+module.exports.parallel = require('parallel-transform')
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license
new file mode 100644
index 0000000000..e34763968c
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/license
@@ -0,0 +1,7 @@
+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/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json
new file mode 100644
index 0000000000..0d8c11480d
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "mississippi@^2.0.0",
+ "_id": "mississippi@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==",
+ "_location": "/npm-registry-fetch/cacache/mississippi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "mississippi@^2.0.0",
+ "name": "mississippi",
+ "escapedName": "mississippi",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/cacache"
+ ],
+ "_resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz",
+ "_shasum": "3442a508fafc28500486feea99409676e4ee5a6f",
+ "_spec": "mississippi@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/cacache",
+ "author": {
+ "name": "max ogden"
+ },
+ "bugs": {
+ "url": "https://github.com/maxogden/mississippi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "concat-stream": "^1.5.0",
+ "duplexify": "^3.4.2",
+ "end-of-stream": "^1.1.0",
+ "flush-write-stream": "^1.0.0",
+ "from2": "^2.1.0",
+ "parallel-transform": "^1.1.0",
+ "pump": "^2.0.1",
+ "pumpify": "^1.3.3",
+ "stream-each": "^1.1.0",
+ "through2": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "a collection of useful streams",
+ "devDependencies": {},
+ "engines": {
+ "node": ">=4.0.0"
+ },
+ "homepage": "https://github.com/maxogden/mississippi#readme",
+ "license": "BSD-2-Clause",
+ "main": "index.js",
+ "name": "mississippi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/maxogden/mississippi.git"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md
new file mode 100644
index 0000000000..5fa6d66c89
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi/readme.md
@@ -0,0 +1,411 @@
+# mississippi
+
+a collection of useful stream utility modules. learn how the modules work using this and then pick the ones you want and use them individually
+
+the goal of the modules included in mississippi is to make working with streams easy without sacrificing speed, error handling or composability.
+
+## usage
+
+```js
+var miss = require('mississippi')
+```
+
+## methods
+
+- [pipe](#pipe)
+- [each](#each)
+- [pipeline](#pipeline)
+- [duplex](#duplex)
+- [through](#through)
+- [from](#from)
+- [to](#to)
+- [concat](#concat)
+- [finished](#finished)
+- [parallel](#parallel)
+
+### pipe
+
+##### `miss.pipe(stream1, stream2, stream3, ..., cb)`
+
+Pipes streams together and destroys all of them if one of them closes. Calls `cb` with `(error)` if there was an error in any of the streams.
+
+When using standard `source.pipe(destination)` the source will _not_ be destroyed if the destination emits close or error. You are also not able to provide a callback to tell when the pipe has finished.
+
+`miss.pipe` does these two things for you, ensuring you handle stream errors 100% of the time (unhandled errors are probably the most common bug in most node streams code)
+
+#### original module
+
+`miss.pipe` is provided by [`require('pump')`](https://www.npmjs.com/package/pump)
+
+#### example
+
+```js
+// lets do a simple file copy
+var fs = require('fs')
+
+var read = fs.createReadStream('./original.zip')
+var write = fs.createWriteStream('./copy.zip')
+
+// use miss.pipe instead of read.pipe(write)
+miss.pipe(read, write, function (err) {
+ if (err) return console.error('Copy error!', err)
+ console.log('Copied successfully')
+})
+```
+
+### each
+
+##### `miss.each(stream, each, [done])`
+
+Iterate the data in `stream` one chunk at a time. Your `each` function will be called with `(data, next)` where data is a data chunk and next is a callback. Call `next` when you are ready to consume the next chunk.
+
+Optionally you can call `next` with an error to destroy the stream. You can also pass the optional third argument, `done`, which is a function that will be called with `(err)` when the stream ends. The `err` argument will be populated with an error if the stream emitted an error.
+
+#### original module
+
+`miss.each` is provided by [`require('stream-each')`](https://www.npmjs.com/package/stream-each)
+
+#### example
+
+```js
+var fs = require('fs')
+var split = require('split2')
+
+var newLineSeparatedNumbers = fs.createReadStream('numbers.txt')
+
+var pipeline = miss.pipeline(newLineSeparatedNumbers, split())
+miss.each(pipeline, eachLine, done)
+var sum = 0
+
+function eachLine (line, next) {
+ sum += parseInt(line.toString())
+ next()
+}
+
+function done (err) {
+ if (err) throw err
+ console.log('sum is', sum)
+}
+```
+
+### pipeline
+
+##### `var pipeline = miss.pipeline(stream1, stream2, stream3, ...)`
+
+Builds a pipeline from all the transform streams passed in as arguments by piping them together and returning a single stream object that lets you write to the first stream and read from the last stream.
+
+If you are pumping object streams together use `pipeline = miss.pipeline.obj(s1, s2, ...)`.
+
+If any of the streams in the pipeline emits an error or gets destroyed, or you destroy the stream it returns, all of the streams will be destroyed and cleaned up for you.
+
+#### original module
+
+`miss.pipeline` is provided by [`require('pumpify')`](https://www.npmjs.com/package/pumpify)
+
+#### example
+
+```js
+// first create some transform streams (note: these two modules are fictional)
+var imageResize = require('image-resizer-stream')({width: 400})
+var pngOptimizer = require('png-optimizer-stream')({quality: 60})
+
+// instead of doing a.pipe(b), use pipelin
+var resizeAndOptimize = miss.pipeline(imageResize, pngOptimizer)
+// `resizeAndOptimize` is a transform stream. when you write to it, it writes
+// to `imageResize`. when you read from it, it reads from `pngOptimizer`.
+// it handles piping all the streams together for you
+
+// use it like any other transform stream
+var fs = require('fs')
+
+var read = fs.createReadStream('./image.png')
+var write = fs.createWriteStream('./resized-and-optimized.png')
+
+miss.pipe(read, resizeAndOptimize, write, function (err) {
+ if (err) return console.error('Image processing error!', err)
+ console.log('Image processed successfully')
+})
+```
+
+### duplex
+
+##### `var duplex = miss.duplex([writable, readable, opts])`
+
+Take two separate streams, a writable and a readable, and turn them into a single [duplex (readable and writable) stream](https://nodejs.org/api/stream.html#stream_class_stream_duplex).
+
+The returned stream will emit data from the readable. When you write to it it writes to the writable.
+
+You can either choose to supply the writable and the readable at the time you create the stream, or you can do it later using the `.setWritable` and `.setReadable` methods and data written to the stream in the meantime will be buffered for you.
+
+#### original module
+
+`miss.duplex` is provided by [`require('duplexify')`](https://www.npmjs.com/package/duplexify)
+
+#### example
+
+```js
+// lets spawn a process and take its stdout and stdin and combine them into 1 stream
+var child = require('child_process')
+
+// @- tells it to read from stdin, --data-binary sets 'raw' binary mode
+var curl = child.spawn('curl -X POST --data-binary @- http://foo.com')
+
+// duplexCurl will write to stdin and read from stdout
+var duplexCurl = miss.duplex(curl.stdin, curl.stdout)
+```
+
+### through
+
+##### `var transformer = miss.through([options, transformFunction, flushFunction])`
+
+Make a custom [transform stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_transform).
+
+The `options` object is passed to the internal transform stream and can be used to create an `objectMode` stream (or use the shortcut `miss.through.obj([...])`)
+
+The `transformFunction` is called when data is available for the writable side and has the signature `(chunk, encoding, cb)`. Within the function, add data to the readable side any number of times with `this.push(data)`. Call `cb()` to indicate processing of the `chunk` is complete. Or to easily emit a single error or chunk, call `cb(err, chunk)`
+
+The `flushFunction`, with signature `(cb)`, is called just before the stream is complete and should be used to wrap up stream processing.
+
+#### original module
+
+`miss.through` is provided by [`require('through2')`](https://www.npmjs.com/package/through2)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var read = fs.createReadStream('./boring_lowercase.txt')
+var write = fs.createWriteStream('./AWESOMECASE.TXT')
+
+// Leaving out the options object
+var uppercaser = miss.through(
+ function (chunk, enc, cb) {
+ cb(null, chunk.toString().toUpperCase())
+ },
+ function (cb) {
+ cb(null, 'ONE LAST BIT OF UPPERCASE')
+ }
+)
+
+miss.pipe(read, uppercaser, write, function (err) {
+ if (err) return console.error('Trouble uppercasing!')
+ console.log('Splendid uppercasing!')
+})
+```
+
+### from
+
+##### `miss.from([opts], read)`
+
+Make a custom [readable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_readable).
+
+`opts` contains the options to pass on to the ReadableStream constructor e.g. for creating a readable object stream (or use the shortcut `miss.from.obj([...])`).
+
+Returns a readable stream that calls `read(size, next)` when data is requested from the stream.
+
+- `size` is the recommended amount of data (in bytes) to retrieve.
+- `next(err, chunk)` should be called when you're ready to emit more data.
+
+#### original module
+
+`miss.from` is provided by [`require('from2')`](https://www.npmjs.com/package/from2)
+
+#### example
+
+```js
+
+
+function fromString(string) {
+ return miss.from(function(size, next) {
+ // if there's no more content
+ // left in the string, close the stream.
+ if (string.length <= 0) return next(null, null)
+
+ // Pull in a new chunk of text,
+ // removing it from the string.
+ var chunk = string.slice(0, size)
+ string = string.slice(size)
+
+ // Emit "chunk" from the stream.
+ next(null, chunk)
+ })
+}
+
+// pipe "hello world" out
+// to stdout.
+fromString('hello world').pipe(process.stdout)
+```
+
+### to
+
+##### `miss.to([options], write, [flush])`
+
+Make a custom [writable stream](https://nodejs.org/docs/latest/api/stream.html#stream_class_stream_writable).
+
+`opts` contains the options to pass on to the WritableStream constructor e.g. for creating a writable object stream (or use the shortcut `miss.to.obj([...])`).
+
+Returns a writable stream that calls `write(data, enc, cb)` when data is written to the stream.
+
+- `data` is the received data to write the destination.
+- `enc` encoding of the piece of data received.
+- `cb(err, data)` should be called when you're ready to write more data, or encountered an error.
+
+`flush(cb)` is called before `finish` is emitted and allows for cleanup steps to occur.
+
+#### original module
+
+`miss.to` is provided by [`require('flush-write-stream')`](https://www.npmjs.com/package/flush-write-stream)
+
+#### example
+
+```js
+var ws = miss.to(write, flush)
+
+ws.on('finish', function () {
+ console.log('finished')
+})
+
+ws.write('hello')
+ws.write('world')
+ws.end()
+
+function write (data, enc, cb) {
+ // i am your normal ._write method
+ console.log('writing', data.toString())
+ cb()
+}
+
+function flush (cb) {
+ // i am called before finish is emitted
+ setTimeout(cb, 1000) // wait 1 sec
+}
+```
+
+If you run the above it will produce the following output
+
+```
+writing hello
+writing world
+(nothing happens for 1 sec)
+finished
+```
+
+### concat
+
+##### `var concat = miss.concat(cb)`
+
+Returns a writable stream that concatenates all data written to the stream and calls a callback with the single result.
+
+Calling `miss.concat(cb)` returns a writable stream. `cb` is called when the writable stream is finished, e.g. when all data is done being written to it. `cb` is called with a single argument, `(data)`, which will contain the result of concatenating all the data written to the stream.
+
+Note that `miss.concat` will not handle stream errors for you. To handle errors, use `miss.pipe` or handle the `error` event manually.
+
+#### original module
+
+`miss.concat` is provided by [`require('concat-stream')`](https://www.npmjs.com/package/concat-stream)
+
+#### example
+
+```js
+var fs = require('fs')
+
+var readStream = fs.createReadStream('cat.png')
+var concatStream = miss.concat(gotPicture)
+
+function callback (err) {
+ if (err) {
+ console.error(err)
+ process.exit(1)
+ }
+}
+
+miss.pipe(readStream, concatStream, callback)
+
+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
+}
+```
+
+### finished
+
+##### `miss.finished(stream, cb)`
+
+Waits for `stream` to finish or error and then calls `cb` with `(err)`. `cb` will only be called once. `err` will be null if the stream finished without error, or else it will be populated with the error from the streams `error` event.
+
+This function is useful for simplifying stream handling code as it lets you handle success or error conditions in a single code path. It's used internally `miss.pipe`.
+
+#### original module
+
+`miss.finished` is provided by [`require('end-of-stream')`](https://www.npmjs.com/package/end-of-stream)
+
+#### example
+
+```js
+var copySource = fs.createReadStream('./movie.mp4')
+var copyDest = fs.createWriteStream('./movie-copy.mp4')
+
+copySource.pipe(copyDest)
+
+miss.finished(copyDest, function(err) {
+ if (err) return console.log('write failed', err)
+ console.log('write success')
+})
+```
+
+### parallel
+
+##### `miss.parallel(concurrency, each)`
+
+This works like `through` except you can process items in parallel, while still preserving the original input order.
+
+This is handy if you wanna take advantage of node's async I/O and process streams of items in batches. With this module you can build your very own streaming parallel job queue.
+
+Note that `miss.parallel` preserves input ordering, if you don't need that then you can use [through2-concurrent](https://github.com/almost/through2-concurrent) instead, which is very similar to this otherwise.
+
+#### original module
+
+`miss.parallel` is provided by [`require('parallel-transform')`](https://npmjs.org/parallel-transform)
+
+#### example
+
+This example fetches the GET HTTP headers for a stream of input URLs 5 at a time in parallel.
+
+```js
+function getResponse (item, cb) {
+ var r = request(item.url)
+ r.on('error', function (err) {
+ cb(err)
+ })
+ r.on('response', function (re) {
+ cb(null, {url: item.url, date: new Date(), status: re.statusCode, headers: re.headers})
+ r.abort()
+ })
+}
+
+miss.pipe(
+ fs.createReadStream('./urls.txt'), // one url per line
+ split(),
+ miss.parallel(5, getResponse),
+ miss.through(function (row, enc, next) {
+ console.log(JSON.stringify(row))
+ next()
+ })
+)
+```
+
+## see also
+
+- [substack/stream-handbook](https://github.com/substack/stream-handbook)
+- [nodejs.org/api/stream.html](https://nodejs.org/api/stream.html)
+- [awesome-nodejs-streams](https://github.com/thejmazz/awesome-nodejs-streams)
+
+## license
+
+Licensed under the BSD 2-clause license.
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/package.json
new file mode 100644
index 0000000000..12cfb5aac5
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/package.json
@@ -0,0 +1,137 @@
+{
+ "_from": "cacache@^10.0.4",
+ "_id": "cacache@10.0.4",
+ "_inBundle": false,
+ "_integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==",
+ "_location": "/npm-registry-fetch/cacache",
+ "_phantomChildren": {
+ "concat-stream": "1.6.2",
+ "duplexify": "3.6.0",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
+ "from2": "2.3.0",
+ "parallel-transform": "1.1.0",
+ "pump": "2.0.1",
+ "pumpify": "1.5.1",
+ "stream-each": "1.2.2",
+ "through2": "2.0.3"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "cacache@^10.0.4",
+ "name": "cacache",
+ "escapedName": "cacache",
+ "rawSpec": "^10.0.4",
+ "saveSpec": null,
+ "fetchSpec": "^10.0.4"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz",
+ "_shasum": "6452367999eff9d4188aefd9a14e9d7c6a263460",
+ "_spec": "cacache@^10.0.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/cacache/issues"
+ },
+ "bundleDependencies": false,
+ "cache-version": {
+ "content": "2",
+ "index": "5"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "contributors": [
+ {
+ "name": "Charlotte Spencer",
+ "email": "charlottelaspencer@gmail.com"
+ },
+ {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org"
+ }
+ ],
+ "dependencies": {
+ "bluebird": "^3.5.1",
+ "chownr": "^1.0.1",
+ "glob": "^7.1.2",
+ "graceful-fs": "^4.1.11",
+ "lru-cache": "^4.1.1",
+ "mississippi": "^2.0.0",
+ "mkdirp": "^0.5.1",
+ "move-concurrently": "^1.0.1",
+ "promise-inflight": "^1.0.1",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.2.4",
+ "unique-filename": "^1.1.0",
+ "y18n": "^4.0.0"
+ },
+ "deprecated": false,
+ "description": "Fast, fault-tolerant, cross-platform, disk-based, data-agnostic, content-addressable cache.",
+ "devDependencies": {
+ "benchmark": "^2.1.4",
+ "chalk": "^2.3.1",
+ "cross-env": "^5.1.3",
+ "nyc": "^11.4.1",
+ "require-inject": "^1.4.2",
+ "safe-buffer": "^5.1.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tacks": "^1.2.2",
+ "tap": "^11.1.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib",
+ "locales"
+ ],
+ "homepage": "https://github.com/zkat/cacache#readme",
+ "keywords": [
+ "cache",
+ "caching",
+ "content-addressable",
+ "sri",
+ "sri hash",
+ "subresource integrity",
+ "cache",
+ "storage",
+ "store",
+ "file store",
+ "filesystem",
+ "disk cache",
+ "disk storage"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "cacache",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/cacache.git"
+ },
+ "scripts": {
+ "benchmarks": "node test/benchmarks",
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "cross-env CACACHE_UPDATE_LOCALE_FILES=true nyc --all -- tap -J test/*.js",
+ "test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "10.0.4"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/put.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/put.js
new file mode 100644
index 0000000000..fe1293e5e7
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/put.js
@@ -0,0 +1,71 @@
+'use strict'
+
+const index = require('./lib/entry-index')
+const memo = require('./lib/memoization')
+const write = require('./lib/content/write')
+const to = require('mississippi').to
+
+module.exports = putData
+function putData (cache, key, data, opts) {
+ opts = opts || {}
+ return write(cache, data, opts).then(res => {
+ // TODO - stop modifying opts
+ opts.size = res.size
+ return index.insert(cache, key, res.integrity, opts).then(entry => {
+ if (opts.memoize) {
+ memo.put(cache, entry, data, opts)
+ }
+ return res.integrity
+ })
+ })
+}
+
+module.exports.stream = putStream
+function putStream (cache, key, opts) {
+ opts = opts || {}
+ let integrity
+ let size
+ const contentStream = write.stream(
+ cache, opts
+ ).on('integrity', int => {
+ integrity = int
+ }).on('size', s => {
+ size = s
+ })
+ let memoData
+ let memoTotal = 0
+ const stream = to((chunk, enc, cb) => {
+ contentStream.write(chunk, enc, () => {
+ if (opts.memoize) {
+ if (!memoData) { memoData = [] }
+ memoData.push(chunk)
+ memoTotal += chunk.length
+ }
+ cb()
+ })
+ }, cb => {
+ contentStream.end(() => {
+ // TODO - stop modifying `opts`
+ opts.size = size
+ index.insert(cache, key, integrity, opts).then(entry => {
+ if (opts.memoize) {
+ memo.put(cache, entry, Buffer.concat(memoData, memoTotal), opts)
+ }
+ stream.emit('integrity', integrity)
+ cb()
+ })
+ })
+ })
+ let erred = false
+ stream.once('error', err => {
+ if (erred) { return }
+ erred = true
+ contentStream.emit('error', err)
+ })
+ contentStream.once('error', err => {
+ if (erred) { return }
+ erred = true
+ stream.emit('error', err)
+ })
+ return stream
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/rm.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/rm.js
new file mode 100644
index 0000000000..e71a1d27b4
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/rm.js
@@ -0,0 +1,28 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const index = require('./lib/entry-index')
+const memo = require('./lib/memoization')
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const rmContent = require('./lib/content/rm')
+
+module.exports = entry
+module.exports.entry = entry
+function entry (cache, key) {
+ memo.clearMemoized()
+ return index.delete(cache, key)
+}
+
+module.exports.content = content
+function content (cache, integrity) {
+ memo.clearMemoized()
+ return rmContent(cache, integrity)
+}
+
+module.exports.all = all
+function all (cache) {
+ memo.clearMemoized()
+ return rimraf(path.join(cache, '*(content-*|index-*)'))
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/verify.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/verify.js
new file mode 100644
index 0000000000..db7763d7af
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/cacache/verify.js
@@ -0,0 +1,3 @@
+'use strict'
+
+module.exports = require('./lib/verify')
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md
new file mode 100644
index 0000000000..f70e02d71d
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/CHANGELOG.md
@@ -0,0 +1,29 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/zkat/figgy-pudding/compare/v2.0.0...v2.0.1) (2018-03-16)
+
+
+### Bug Fixes
+
+* **opts:** ignore non-object providers ([7b9c0f8](https://github.com/zkat/figgy-pudding/commit/7b9c0f8))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/figgy-pudding/compare/v1.0.0...v2.0.0) (2018-03-16)
+
+
+### Features
+
+* **api:** overhauled API with new opt handling concept ([e6cc929](https://github.com/zkat/figgy-pudding/commit/e6cc929))
+* **license:** relicense to ISC ([87479aa](https://github.com/zkat/figgy-pudding/commit/87479aa))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+* **api:** this is a completely different approach than previously
+used by this library. See the readme for the new API and an explanation.
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-fetch/node_modules/figgy-pudding/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md
new file mode 100644
index 0000000000..3cdec3f81a
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/README.md
@@ -0,0 +1,121 @@
+# figgy-pudding [![npm version](https://img.shields.io/npm/v/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![license](https://img.shields.io/npm/l/figgy-pudding.svg)](https://npm.im/figgy-pudding) [![Travis](https://img.shields.io/travis/zkat/figgy-pudding.svg)](https://travis-ci.org/zkat/figgy-pudding) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/figgy-pudding?svg=true)](https://ci.appveyor.com/project/zkat/figgy-pudding) [![Coverage Status](https://coveralls.io/repos/github/zkat/figgy-pudding/badge.svg?branch=latest)](https://coveralls.io/github/zkat/figgy-pudding?branch=latest)
+
+# Death to the God Object! Now Bring Us Some Figgy Pudding!
+
+[`figgy-pudding`](https://github.com/zkat/figgy-pudding) is a simple JavaScript library for managing and composing cascading options objects -- hiding what needs to be hidden from each layer, without having to do a lot of manual munging and passing of options.
+
+## Install
+
+`$ npm install figgy-pudding`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [API](#api)
+ * [`figgyPudding(spec)`](#figgy-pudding)
+ * [`Opts(values)`](#opts)
+
+### Example
+
+```javascript
+const puddin = require('figgyPudding')
+
+const RequestOpts = puddin({
+ follow: {
+ default: true
+ },
+ streaming: {
+ default: false
+ },
+ log: {
+ default: require('npmlog')
+ }
+})
+
+const MyAppOpts = puddin({
+ log: {
+ default: require('npmlog')
+ },
+ cache: {
+ default: './cache'
+ }
+})
+
+function start (opts) {
+ opts = MyAppOpts(opts)
+ initCache(opts.get('cache'))
+ opts.get('streaming') // => undefined
+ reqStuff('https://npm.im/figgy-pudding', opts)
+}
+
+function reqStuff (uri, opts) {
+ opts = RequestOpts(opts)
+ require('request').get(uri, opts) // can't see `cache`
+}
+```
+
+### Features
+
+* Hide options from layer that didn't ask for it
+* Shared multi-layer options
+
+### API
+
+#### <a name="figgy-pudding"></a> `> figgyPudding({ key: { default: val } | String }, [opts])`
+
+Defines an Options constructor that can be used to collect only the needed
+options.
+
+An optional `default` property for specs can be used to specify default values
+if nothing was passed in.
+
+If the value for a spec is a string, it will be treated as an alias to that
+other key.
+
+##### Example
+
+```javascript
+const MyAppOpts = figgyPudding({
+ lg: 'log',
+ log: {
+ default: () => require('npmlog')
+ },
+ cache: {}
+})
+```
+
+#### <a name="opts"></a> `> Opts(...providers)`
+
+Instantiates an options object defined by `figgyPudding()`, which uses
+`providers`, in order, to find requested properties.
+
+Each provider can be either a plain object, a `Map`-like object (that is, one
+with a `.get()` method) or another figgyPudding `Opts` object.
+
+When nesting `Opts` objects, their properties will not become available to the
+new object, but any further nested `Opts` that reference that property _will_ be
+able to read from their grandparent, as long as they define that key. Default
+values for nested `Opts` parents will be used, if found.
+
+##### Example
+
+```javascript
+const ReqOpts = figgyPudding({
+ follow: {}
+})
+
+const opts = ReqOpts({
+ follow: true,
+ log: require('npmlog')
+})
+
+opts.get('follow') // => true
+opts.get('log') // => Error: ReqOpts does not define `log`
+
+const MoreOpts = figgyPudding({
+ log: {}
+})
+MoreOpts(opts).log // => npmlog object (passed in from original plain obj)
+MoreOpts(opts).get('follow') // => Error: MoreOpts does not define `follow`
+```
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js
new file mode 100644
index 0000000000..c13d143862
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/index.js
@@ -0,0 +1,60 @@
+'use strict'
+
+class FiggyPudding {
+ constructor (specs, opts, providers) {
+ this.specs = specs || {}
+ this.opts = opts || (() => false)
+ this.providers = providers
+ this.isFiggyPudding = true
+ }
+ get (key) {
+ return pudGet(this, key, true)
+ }
+}
+
+function pudGet (pud, key, validate) {
+ let spec = pud.specs[key]
+ if (typeof spec === 'string') {
+ key = spec
+ spec = pud.specs[key]
+ }
+ if (validate && !spec && (!pud.opts.other || !pud.opts.other(key))) {
+ throw new Error(`invalid config key requested: ${key}`)
+ } else {
+ if (!spec) { spec = {} }
+ let ret
+ for (let p of pud.providers) {
+ if (p.isFiggyPudding) {
+ ret = pudGet(p, key, false)
+ } else if (typeof p.get === 'function') {
+ ret = p.get(key)
+ } else {
+ ret = p[key]
+ }
+ if (ret !== undefined) {
+ break
+ }
+ }
+ if (ret === undefined && spec.default !== undefined) {
+ if (typeof spec.default === 'function') {
+ return spec.default()
+ } else {
+ return spec.default
+ }
+ } else {
+ return ret
+ }
+ }
+}
+
+module.exports = figgyPudding
+function figgyPudding (specs, opts) {
+ function factory () {
+ return new FiggyPudding(
+ specs,
+ opts,
+ [].slice.call(arguments).filter(x => x != null && typeof x === 'object')
+ )
+ }
+ return factory
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json
new file mode 100644
index 0000000000..7e71124643
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/figgy-pudding/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "figgy-pudding@^2.0.1",
+ "_id": "figgy-pudding@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-yIJPhIBi/oFdU/P+GSXjmk/rmGjuZkm7A5LTXZxNrEprXJXRK012FiI1BR1Pga+0d/d6taWWD+B5d2ozqaxHig==",
+ "_location": "/npm-registry-fetch/figgy-pudding",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "figgy-pudding@^2.0.1",
+ "name": "figgy-pudding",
+ "escapedName": "figgy-pudding",
+ "rawSpec": "^2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.1"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch"
+ ],
+ "_resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-2.0.1.tgz",
+ "_shasum": "56c8fc878e06e1090799b9bcc91cbd85c2c92278",
+ "_spec": "figgy-pudding@^2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/figgy-pudding/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Delicious, festive, cascading config/opts definitions",
+ "devDependencies": {
+ "standard": "^11.0.1",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.2",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/zkat/figgy-pudding#readme",
+ "keywords": [
+ "config",
+ "options",
+ "yummy"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "figgy-pudding",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/figgy-pudding.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "2.0.1"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md
new file mode 100644
index 0000000000..123133fe61
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/CHANGELOG.md
@@ -0,0 +1,525 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/zkat/make-fetch-happen/compare/v2.6.0...v3.0.0) (2018-03-12)
+
+
+### Bug Fixes
+
+* **license:** switch to ISC ([#49](https://github.com/zkat/make-fetch-happen/issues/49)) ([bf90c6d](https://github.com/zkat/make-fetch-happen/commit/bf90c6d))
+* **standard:** standard@11 update ([ff0aa70](https://github.com/zkat/make-fetch-happen/commit/ff0aa70))
+
+
+### BREAKING CHANGES
+
+* **license:** license changed from CC0 to ISC.
+
+
+
+<a name="2.6.0"></a>
+# [2.6.0](https://github.com/zkat/make-fetch-happen/compare/v2.5.0...v2.6.0) (2017-11-14)
+
+
+### Bug Fixes
+
+* **integrity:** disable node-fetch compress when checking integrity (#42) ([a7cc74c](https://github.com/zkat/make-fetch-happen/commit/a7cc74c))
+
+
+### Features
+
+* **onretry:** Add `options.onRetry` (#48) ([f90ccff](https://github.com/zkat/make-fetch-happen/commit/f90ccff))
+
+
+
+<a name="2.5.0"></a>
+# [2.5.0](https://github.com/zkat/make-fetch-happen/compare/v2.4.13...v2.5.0) (2017-08-24)
+
+
+### Bug Fixes
+
+* **agent:** support timeout durations greater than 30 seconds ([04875ae](https://github.com/zkat/make-fetch-happen/commit/04875ae)), closes [#35](https://github.com/zkat/make-fetch-happen/issues/35)
+
+
+### Features
+
+* **cache:** export cache deletion functionality (#40) ([3da4250](https://github.com/zkat/make-fetch-happen/commit/3da4250))
+
+
+
+<a name="2.4.13"></a>
+## [2.4.13](https://github.com/zkat/make-fetch-happen/compare/v2.4.12...v2.4.13) (2017-06-29)
+
+
+### Bug Fixes
+
+* **deps:** bump other deps for bugfixes ([eab8297](https://github.com/zkat/make-fetch-happen/commit/eab8297))
+* **proxy:** bump proxy deps with bugfixes (#32) ([632f860](https://github.com/zkat/make-fetch-happen/commit/632f860)), closes [#32](https://github.com/zkat/make-fetch-happen/issues/32)
+
+
+
+<a name="2.4.12"></a>
+## [2.4.12](https://github.com/zkat/make-fetch-happen/compare/v2.4.11...v2.4.12) (2017-06-06)
+
+
+### Bug Fixes
+
+* **cache:** encode x-local-cache-etc headers to be header-safe ([dc9fb1b](https://github.com/zkat/make-fetch-happen/commit/dc9fb1b))
+
+
+
+<a name="2.4.11"></a>
+## [2.4.11](https://github.com/zkat/make-fetch-happen/compare/v2.4.10...v2.4.11) (2017-06-05)
+
+
+### Bug Fixes
+
+* **deps:** bump deps with ssri fix ([bef1994](https://github.com/zkat/make-fetch-happen/commit/bef1994))
+
+
+
+<a name="2.4.10"></a>
+## [2.4.10](https://github.com/zkat/make-fetch-happen/compare/v2.4.9...v2.4.10) (2017-05-31)
+
+
+### Bug Fixes
+
+* **deps:** bump dep versions with bugfixes ([0af4003](https://github.com/zkat/make-fetch-happen/commit/0af4003))
+* **proxy:** use auth parameter for proxy authentication (#30) ([c687306](https://github.com/zkat/make-fetch-happen/commit/c687306))
+
+
+
+<a name="2.4.9"></a>
+## [2.4.9](https://github.com/zkat/make-fetch-happen/compare/v2.4.8...v2.4.9) (2017-05-25)
+
+
+### Bug Fixes
+
+* **cache:** use the passed-in promise for resolving cache stuff ([4c46257](https://github.com/zkat/make-fetch-happen/commit/4c46257))
+
+
+
+<a name="2.4.8"></a>
+## [2.4.8](https://github.com/zkat/make-fetch-happen/compare/v2.4.7...v2.4.8) (2017-05-25)
+
+
+### Bug Fixes
+
+* **cache:** pass uid/gid/Promise through to cache ([a847c92](https://github.com/zkat/make-fetch-happen/commit/a847c92))
+
+
+
+<a name="2.4.7"></a>
+## [2.4.7](https://github.com/zkat/make-fetch-happen/compare/v2.4.6...v2.4.7) (2017-05-24)
+
+
+### Bug Fixes
+
+* **deps:** pull in various fixes from deps ([fc2a587](https://github.com/zkat/make-fetch-happen/commit/fc2a587))
+
+
+
+<a name="2.4.6"></a>
+## [2.4.6](https://github.com/zkat/make-fetch-happen/compare/v2.4.5...v2.4.6) (2017-05-24)
+
+
+### Bug Fixes
+
+* **proxy:** choose agent for http(s)-proxy by protocol of destUrl ([ea4832a](https://github.com/zkat/make-fetch-happen/commit/ea4832a))
+* **proxy:** make socks proxy working ([1de810a](https://github.com/zkat/make-fetch-happen/commit/1de810a))
+* **proxy:** revert previous proxy solution ([563b0d8](https://github.com/zkat/make-fetch-happen/commit/563b0d8))
+
+
+
+<a name="2.4.5"></a>
+## [2.4.5](https://github.com/zkat/make-fetch-happen/compare/v2.4.4...v2.4.5) (2017-05-24)
+
+
+### Bug Fixes
+
+* **proxy:** use the destination url when determining agent ([1a714e7](https://github.com/zkat/make-fetch-happen/commit/1a714e7))
+
+
+
+<a name="2.4.4"></a>
+## [2.4.4](https://github.com/zkat/make-fetch-happen/compare/v2.4.3...v2.4.4) (2017-05-23)
+
+
+### Bug Fixes
+
+* **redirect:** handle redirects explicitly (#27) ([4c4af54](https://github.com/zkat/make-fetch-happen/commit/4c4af54))
+
+
+
+<a name="2.4.3"></a>
+## [2.4.3](https://github.com/zkat/make-fetch-happen/compare/v2.4.2...v2.4.3) (2017-05-06)
+
+
+### Bug Fixes
+
+* **redirect:** redirects now delete authorization if hosts fail to match ([c071805](https://github.com/zkat/make-fetch-happen/commit/c071805))
+
+
+
+<a name="2.4.2"></a>
+## [2.4.2](https://github.com/zkat/make-fetch-happen/compare/v2.4.1...v2.4.2) (2017-05-04)
+
+
+### Bug Fixes
+
+* **cache:** reduce race condition window by checking for content ([24544b1](https://github.com/zkat/make-fetch-happen/commit/24544b1))
+* **match:** Rewrite the conditional stream logic (#25) ([66bba4b](https://github.com/zkat/make-fetch-happen/commit/66bba4b))
+
+
+
+<a name="2.4.1"></a>
+## [2.4.1](https://github.com/zkat/make-fetch-happen/compare/v2.4.0...v2.4.1) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoization:** missed spots + allow passthrough of memo objs ([ac0cd12](https://github.com/zkat/make-fetch-happen/commit/ac0cd12))
+
+
+
+<a name="2.4.0"></a>
+# [2.4.0](https://github.com/zkat/make-fetch-happen/compare/v2.3.0...v2.4.0) (2017-04-28)
+
+
+### Bug Fixes
+
+* **memoize:** cacache had a broken memoizer ([8a9ed4c](https://github.com/zkat/make-fetch-happen/commit/8a9ed4c))
+
+
+### Features
+
+* **memoization:** only slurp stuff into memory if opts.memoize is not false ([0744adc](https://github.com/zkat/make-fetch-happen/commit/0744adc))
+
+
+
+<a name="2.3.0"></a>
+# [2.3.0](https://github.com/zkat/make-fetch-happen/compare/v2.2.6...v2.3.0) (2017-04-27)
+
+
+### Features
+
+* **agent:** added opts.strictSSL and opts.localAddress ([c35015a](https://github.com/zkat/make-fetch-happen/commit/c35015a))
+* **proxy:** Added opts.noProxy and NO_PROXY support ([f45c915](https://github.com/zkat/make-fetch-happen/commit/f45c915))
+
+
+
+<a name="2.2.6"></a>
+## [2.2.6](https://github.com/zkat/make-fetch-happen/compare/v2.2.5...v2.2.6) (2017-04-26)
+
+
+### Bug Fixes
+
+* **agent:** check uppercase & lowercase proxy env (#24) ([acf2326](https://github.com/zkat/make-fetch-happen/commit/acf2326)), closes [#22](https://github.com/zkat/make-fetch-happen/issues/22)
+* **deps:** switch to node-fetch-npm and stop bundling ([3db603b](https://github.com/zkat/make-fetch-happen/commit/3db603b))
+
+
+
+<a name="2.2.5"></a>
+## [2.2.5](https://github.com/zkat/make-fetch-happen/compare/v2.2.4...v2.2.5) (2017-04-23)
+
+
+### Bug Fixes
+
+* **deps:** bump cacache and use its size feature ([926c1d3](https://github.com/zkat/make-fetch-happen/commit/926c1d3))
+
+
+
+<a name="2.2.4"></a>
+## [2.2.4](https://github.com/zkat/make-fetch-happen/compare/v2.2.3...v2.2.4) (2017-04-18)
+
+
+### Bug Fixes
+
+* **integrity:** hash verification issues fixed ([07f9402](https://github.com/zkat/make-fetch-happen/commit/07f9402))
+
+
+
+<a name="2.2.3"></a>
+## [2.2.3](https://github.com/zkat/make-fetch-happen/compare/v2.2.2...v2.2.3) (2017-04-18)
+
+
+### Bug Fixes
+
+* **staleness:** responses older than 8h were never stale :< ([b54dd75](https://github.com/zkat/make-fetch-happen/commit/b54dd75))
+* **warning:** remove spurious warning, make format more spec-compliant ([2e4f6bb](https://github.com/zkat/make-fetch-happen/commit/2e4f6bb))
+
+
+
+<a name="2.2.2"></a>
+## [2.2.2](https://github.com/zkat/make-fetch-happen/compare/v2.2.1...v2.2.2) (2017-04-12)
+
+
+### Bug Fixes
+
+* **retry:** stop retrying 404s ([6fafd53](https://github.com/zkat/make-fetch-happen/commit/6fafd53))
+
+
+
+<a name="2.2.1"></a>
+## [2.2.1](https://github.com/zkat/make-fetch-happen/compare/v2.2.0...v2.2.1) (2017-04-10)
+
+
+### Bug Fixes
+
+* **deps:** move test-only deps to devDeps ([2daaf80](https://github.com/zkat/make-fetch-happen/commit/2daaf80))
+
+
+
+<a name="2.2.0"></a>
+# [2.2.0](https://github.com/zkat/make-fetch-happen/compare/v2.1.0...v2.2.0) (2017-04-09)
+
+
+### Bug Fixes
+
+* **cache:** treat caches as private ([57b7dc2](https://github.com/zkat/make-fetch-happen/commit/57b7dc2))
+
+
+### Features
+
+* **retry:** accept shorthand retry settings ([dfed69d](https://github.com/zkat/make-fetch-happen/commit/dfed69d))
+
+
+
+<a name="2.1.0"></a>
+# [2.1.0](https://github.com/zkat/make-fetch-happen/compare/v2.0.4...v2.1.0) (2017-04-09)
+
+
+### Features
+
+* **cache:** cache now obeys Age and a variety of other things (#13) ([7b9652d](https://github.com/zkat/make-fetch-happen/commit/7b9652d))
+
+
+
+<a name="2.0.4"></a>
+## [2.0.4](https://github.com/zkat/make-fetch-happen/compare/v2.0.3...v2.0.4) (2017-04-09)
+
+
+### Bug Fixes
+
+* **agent:** accept Request as fetch input, not just strings ([b71669a](https://github.com/zkat/make-fetch-happen/commit/b71669a))
+
+
+
+<a name="2.0.3"></a>
+## [2.0.3](https://github.com/zkat/make-fetch-happen/compare/v2.0.2...v2.0.3) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** seriously ([c29e7e7](https://github.com/zkat/make-fetch-happen/commit/c29e7e7))
+
+
+
+<a name="2.0.2"></a>
+## [2.0.2](https://github.com/zkat/make-fetch-happen/compare/v2.0.1...v2.0.2) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** use bundleDeps instead ([c36ebf0](https://github.com/zkat/make-fetch-happen/commit/c36ebf0))
+
+
+
+<a name="2.0.1"></a>
+## [2.0.1](https://github.com/zkat/make-fetch-happen/compare/v2.0.0...v2.0.1) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** make sure node-fetch tarball included in release ([3bf49d1](https://github.com/zkat/make-fetch-happen/commit/3bf49d1))
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/make-fetch-happen/compare/v1.7.0...v2.0.0) (2017-04-09)
+
+
+### Bug Fixes
+
+* **deps:** manually pull in newer node-fetch to avoid babel prod dep ([66e5e87](https://github.com/zkat/make-fetch-happen/commit/66e5e87))
+* **retry:** be more specific about when we retry ([a47b782](https://github.com/zkat/make-fetch-happen/commit/a47b782))
+
+
+### Features
+
+* **agent:** add ca/cert/key support to auto-agent (#15) ([57585a7](https://github.com/zkat/make-fetch-happen/commit/57585a7))
+
+
+### BREAKING CHANGES
+
+* **agent:** pac proxies are no longer supported.
+* **retry:** Retry logic has changes.
+
+* 404s, 420s, and 429s all retry now.
+* ENOTFOUND no longer retries.
+* Only ECONNRESET, ECONNREFUSED, EADDRINUSE, ETIMEDOUT, and `request-timeout` errors are retried.
+
+
+
+<a name="1.7.0"></a>
+# [1.7.0](https://github.com/zkat/make-fetch-happen/compare/v1.6.0...v1.7.0) (2017-04-08)
+
+
+### Features
+
+* **cache:** add useful headers to inform users about cached data ([9bd7b00](https://github.com/zkat/make-fetch-happen/commit/9bd7b00))
+
+
+
+<a name="1.6.0"></a>
+# [1.6.0](https://github.com/zkat/make-fetch-happen/compare/v1.5.1...v1.6.0) (2017-04-06)
+
+
+### Features
+
+* **agent:** better, keepalive-supporting, default http agents ([16277f6](https://github.com/zkat/make-fetch-happen/commit/16277f6))
+
+
+
+<a name="1.5.1"></a>
+## [1.5.1](https://github.com/zkat/make-fetch-happen/compare/v1.5.0...v1.5.1) (2017-04-05)
+
+
+### Bug Fixes
+
+* **cache:** bump cacache for its fixed error messages ([2f2b916](https://github.com/zkat/make-fetch-happen/commit/2f2b916))
+* **cache:** fix handling of errors in cache reads ([5729222](https://github.com/zkat/make-fetch-happen/commit/5729222))
+
+
+
+<a name="1.5.0"></a>
+# [1.5.0](https://github.com/zkat/make-fetch-happen/compare/v1.4.0...v1.5.0) (2017-04-04)
+
+
+### Features
+
+* **retry:** retry requests on 408 timeouts, too ([8d8b5bd](https://github.com/zkat/make-fetch-happen/commit/8d8b5bd))
+
+
+
+<a name="1.4.0"></a>
+# [1.4.0](https://github.com/zkat/make-fetch-happen/compare/v1.3.1...v1.4.0) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** stop relying on BB.catch ([2b04494](https://github.com/zkat/make-fetch-happen/commit/2b04494))
+
+
+### Features
+
+* **retry:** report retry attempt number as extra header ([fd50927](https://github.com/zkat/make-fetch-happen/commit/fd50927))
+
+
+
+<a name="1.3.1"></a>
+## [1.3.1](https://github.com/zkat/make-fetch-happen/compare/v1.3.0...v1.3.1) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** pretend cache entry is missing on ENOENT ([9c2bb26](https://github.com/zkat/make-fetch-happen/commit/9c2bb26))
+
+
+
+<a name="1.3.0"></a>
+# [1.3.0](https://github.com/zkat/make-fetch-happen/compare/v1.2.1...v1.3.0) (2017-04-04)
+
+
+### Bug Fixes
+
+* **cache:** if metadata is missing for some odd reason, ignore the entry ([a021a6b](https://github.com/zkat/make-fetch-happen/commit/a021a6b))
+
+
+### Features
+
+* **cache:** add special headers when request was loaded straight from cache ([8a7dbd1](https://github.com/zkat/make-fetch-happen/commit/8a7dbd1))
+* **cache:** allow configuring algorithms to be calculated on insertion ([bf4a0f2](https://github.com/zkat/make-fetch-happen/commit/bf4a0f2))
+
+
+
+<a name="1.2.1"></a>
+## [1.2.1](https://github.com/zkat/make-fetch-happen/compare/v1.2.0...v1.2.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** update cacache and ssri and change EBADCHECKSUM -> EINTEGRITY ([b6cf6f6](https://github.com/zkat/make-fetch-happen/commit/b6cf6f6))
+
+
+
+<a name="1.2.0"></a>
+# [1.2.0](https://github.com/zkat/make-fetch-happen/compare/v1.1.0...v1.2.0) (2017-04-03)
+
+
+### Features
+
+* **integrity:** full Subresource Integrity support (#10) ([a590159](https://github.com/zkat/make-fetch-happen/commit/a590159))
+
+
+
+<a name="1.1.0"></a>
+# [1.1.0](https://github.com/zkat/make-fetch-happen/compare/v1.0.1...v1.1.0) (2017-04-01)
+
+
+### Features
+
+* **opts:** fetch.defaults() for default options ([522a65e](https://github.com/zkat/make-fetch-happen/commit/522a65e))
+
+
+
+<a name="1.0.1"></a>
+## [1.0.1](https://github.com/zkat/make-fetch-happen/compare/v1.0.0...v1.0.1) (2017-04-01)
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-04-01)
+
+
+### Bug Fixes
+
+* **cache:** default on cache-control header ([b872a2c](https://github.com/zkat/make-fetch-happen/commit/b872a2c))
+* standard stuff and cache matching ([753f2c2](https://github.com/zkat/make-fetch-happen/commit/753f2c2))
+* **agent:** nudge around things with opts.agent ([ed62b57](https://github.com/zkat/make-fetch-happen/commit/ed62b57))
+* **agent:** {agent: false} has special behavior ([b8cc923](https://github.com/zkat/make-fetch-happen/commit/b8cc923))
+* **cache:** invalidation on non-GET ([fe78fac](https://github.com/zkat/make-fetch-happen/commit/fe78fac))
+* **cache:** make force-cache and only-if-cached work as expected ([f50e9df](https://github.com/zkat/make-fetch-happen/commit/f50e9df))
+* **cache:** more spec compliance ([d5a56db](https://github.com/zkat/make-fetch-happen/commit/d5a56db))
+* **cache:** only cache 200 gets ([0abb25a](https://github.com/zkat/make-fetch-happen/commit/0abb25a))
+* **cache:** only load cache code if cache opt is a string ([250fcd5](https://github.com/zkat/make-fetch-happen/commit/250fcd5))
+* **cache:** oops ([e3fa15a](https://github.com/zkat/make-fetch-happen/commit/e3fa15a))
+* **cache:** refactored warning removal into main file ([5b0a9f9](https://github.com/zkat/make-fetch-happen/commit/5b0a9f9))
+* **cache:** req constructor no longer needed in Cache ([5b74cbc](https://github.com/zkat/make-fetch-happen/commit/5b74cbc))
+* **cache:** standard fetch api calls cacheMode "cache" ([6fba805](https://github.com/zkat/make-fetch-happen/commit/6fba805))
+* **cache:** was using wrong method for non-GET/HEAD cache invalidation ([810763a](https://github.com/zkat/make-fetch-happen/commit/810763a))
+* **caching:** a bunch of cache-related fixes ([8ebda1d](https://github.com/zkat/make-fetch-happen/commit/8ebda1d))
+* **deps:** `cacache[@6](https://github.com/6).3.0` - race condition fixes ([9528442](https://github.com/zkat/make-fetch-happen/commit/9528442))
+* **freshness:** fix regex for cacheControl matching ([070db86](https://github.com/zkat/make-fetch-happen/commit/070db86))
+* **freshness:** fixed default freshness heuristic value ([5d29e88](https://github.com/zkat/make-fetch-happen/commit/5d29e88))
+* **logging:** remove console.log calls ([a1d0a47](https://github.com/zkat/make-fetch-happen/commit/a1d0a47))
+* **method:** node-fetch guarantees uppercase ([a1d68d6](https://github.com/zkat/make-fetch-happen/commit/a1d68d6))
+* **opts:** simplified opts handling ([516fd6e](https://github.com/zkat/make-fetch-happen/commit/516fd6e))
+* **proxy:** pass proxy option directly to ProxyAgent ([3398460](https://github.com/zkat/make-fetch-happen/commit/3398460))
+* **retry:** false -> {retries: 0} ([297fbb6](https://github.com/zkat/make-fetch-happen/commit/297fbb6))
+* **retry:** only retry put if body is not a stream ([a24e599](https://github.com/zkat/make-fetch-happen/commit/a24e599))
+* **retry:** skip retries if body is a stream for ANY method ([780c0f8](https://github.com/zkat/make-fetch-happen/commit/780c0f8))
+
+
+### Features
+
+* **api:** initial implementation -- can make and cache requests ([7d55b49](https://github.com/zkat/make-fetch-happen/commit/7d55b49))
+* **fetch:** injectable cache, and retry support ([87b84bf](https://github.com/zkat/make-fetch-happen/commit/87b84bf))
+
+
+### BREAKING CHANGES
+
+* **cache:** opts.cache -> opts.cacheManager; opts.cacheMode -> opts.cache
+* **fetch:** opts.cache accepts a Cache-like obj or a path. Requests are now retried.
+* **api:** actual api implemented
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/LICENSE
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-fetch/node_modules/make-fetch-happen/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md
new file mode 100644
index 0000000000..4d12d8dae7
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/README.md
@@ -0,0 +1,404 @@
+# make-fetch-happen [![npm version](https://img.shields.io/npm/v/make-fetch-happen.svg)](https://npm.im/make-fetch-happen) [![license](https://img.shields.io/npm/l/make-fetch-happen.svg)](https://npm.im/make-fetch-happen) [![Travis](https://img.shields.io/travis/zkat/make-fetch-happen.svg)](https://travis-ci.org/zkat/make-fetch-happen) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/make-fetch-happen?svg=true)](https://ci.appveyor.com/project/zkat/make-fetch-happen) [![Coverage Status](https://coveralls.io/repos/github/zkat/make-fetch-happen/badge.svg?branch=latest)](https://coveralls.io/github/zkat/make-fetch-happen?branch=latest)
+
+
+[`make-fetch-happen`](https://github.com/zkat/make-fetch-happen) is a Node.js
+library that wraps [`node-fetch-npm`](https://github.com/npm/node-fetch-npm) with additional
+features [`node-fetch`](https://github.com/bitinn/node-fetch) doesn't intend to include, including HTTP Cache support, request
+pooling, proxies, retries, [and more](#features)!
+
+## Install
+
+`$ npm install --save make-fetch-happen`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * [`fetch`](#fetch)
+ * [`fetch.defaults`](#fetch-defaults)
+ * [`node-fetch` options](#node-fetch-options)
+ * [`make-fetch-happen` options](#extra-options)
+ * [`opts.cacheManager`](#opts-cache-manager)
+ * [`opts.cache`](#opts-cache)
+ * [`opts.proxy`](#opts-proxy)
+ * [`opts.noProxy`](#opts-no-proxy)
+ * [`opts.ca, opts.cert, opts.key`](#https-opts)
+ * [`opts.maxSockets`](#opts-max-sockets)
+ * [`opts.retry`](#opts-retry)
+ * [`opts.onRetry`](#opts-onretry)
+ * [`opts.integrity`](#opts-integrity)
+* [Message From Our Sponsors](#wow)
+
+### Example
+
+```javascript
+const fetch = require('make-fetch-happen').defaults({
+ cacheManager: './my-cache' // path where cache will be written (and read)
+})
+
+fetch('https://registry.npmjs.org/make-fetch-happen').then(res => {
+ return res.json() // download the body as JSON
+}).then(body => {
+ console.log(`got ${body.name} from web`)
+ return fetch('https://registry.npmjs.org/make-fetch-happen', {
+ cache: 'no-cache' // forces a conditional request
+ })
+}).then(res => {
+ console.log(res.status) // 304! cache validated!
+ return res.json().then(body => {
+ console.log(`got ${body.name} from cache`)
+ })
+})
+```
+
+### Features
+
+* Builds around [`node-fetch`](https://npm.im/node-fetch) for the core [`fetch` API](https://fetch.spec.whatwg.org) implementation
+* Request pooling out of the box
+* Quite fast, really
+* Automatic HTTP-semantics-aware request retries
+* Cache-fallback automatic "offline mode"
+* Proxy support (http, https, socks, socks4, socks5)
+* Built-in request caching following full HTTP caching rules (`Cache-Control`, `ETag`, `304`s, cache fallback on error, etc).
+* Customize cache storage with any [Cache API](https://developer.mozilla.org/en-US/docs/Web/API/Cache)-compliant `Cache` instance. Cache to Redis!
+* Node.js Stream support
+* Transparent gzip and deflate support
+* [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) support
+* Literally punches nazis
+* (PENDING) Range request caching and resuming
+
+### Contributing
+
+The make-fetch-happen team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
+
+All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
+
+Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
+
+Happy hacking!
+
+### API
+
+#### <a name="fetch"></a> `> fetch(uriOrRequest, [opts]) -> Promise<Response>`
+
+This function implements most of the [`fetch` API](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch): given a `uri` string or a `Request` instance, it will fire off an http request and return a Promise containing the relevant response.
+
+If `opts` is provided, the [`node-fetch`-specific options](#node-fetch-options) will be passed to that library. There are also [additional options](#extra-options) specific to make-fetch-happen that add various features, such as HTTP caching, integrity verification, proxy support, and more.
+
+##### Example
+
+```javascript
+fetch('https://google.com').then(res => res.buffer())
+```
+
+#### <a name="fetch-defaults"></a> `> fetch.defaults([defaultUrl], [defaultOpts])`
+
+Returns a new `fetch` function that will call `make-fetch-happen` using `defaultUrl` and `defaultOpts` as default values to any calls.
+
+A defaulted `fetch` will also have a `.defaults()` method, so they can be chained.
+
+##### Example
+
+```javascript
+const fetch = require('make-fetch-happen').defaults({
+ cacheManager: './my-local-cache'
+})
+
+fetch('https://registry.npmjs.org/make-fetch-happen') // will always use the cache
+```
+
+#### <a name="node-fetch-options"></a> `> node-fetch options`
+
+The following options for `node-fetch` are used as-is:
+
+* method
+* body
+* redirect
+* follow
+* timeout
+* compress
+* size
+
+These other options are modified or augmented by make-fetch-happen:
+
+* headers - Default `User-Agent` set to make-fetch happen. `Connection` is set to `keep-alive` or `close` automatically depending on `opts.agent`.
+* agent
+ * If agent is null, an http or https Agent will be automatically used. By default, these will be `http.globalAgent` and `https.globalAgent`.
+ * If [`opts.proxy`](#opts-proxy) is provided and `opts.agent` is null, the agent will be set to an appropriate proxy-handling agent.
+ * If `opts.agent` is an object, it will be used as the request-pooling agent argument for this request.
+ * If `opts.agent` is `false`, it will be passed as-is to the underlying request library. This causes a new Agent to be spawned for every request.
+
+For more details, see [the documentation for `node-fetch` itself](https://github.com/bitinn/node-fetch#options).
+
+#### <a name="extra-options"></a> `> make-fetch-happen options`
+
+make-fetch-happen augments the `node-fetch` API with additional features available through extra options. The following extra options are available:
+
+* [`opts.cacheManager`](#opts-cache-manager) - Cache target to read/write
+* [`opts.cache`](#opts-cache) - `fetch` cache mode. Controls cache *behavior*.
+* [`opts.proxy`](#opts-proxy) - Proxy agent
+* [`opts.noProxy`](#opts-no-proxy) - Domain segments to disable proxying for.
+* [`opts.ca, opts.cert, opts.key, opts.strictSSL`](#https-opts)
+* [`opts.localAddress`](#opts-local-address)
+* [`opts.maxSockets`](#opts-max-sockets)
+* [`opts.retry`](#opts-retry) - Request retry settings
+* [`opts.onRetry`](#opts-onretry) - a function called whenever a retry is attempted
+* [`opts.integrity`](#opts-integrity) - [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata.
+
+#### <a name="opts-cache-manager"></a> `> opts.cacheManager`
+
+Either a `String` or a `Cache`. If the former, it will be assumed to be a `Path` to be used as the cache root for [`cacache`](https://npm.im/cacache).
+
+If an object is provided, it will be assumed to be a compliant [`Cache` instance](https://developer.mozilla.org/en-US/docs/Web/API/Cache). Only `Cache.match()`, `Cache.put()`, and `Cache.delete()` are required. Options objects will not be passed in to `match()` or `delete()`.
+
+By implementing this API, you can customize the storage backend for make-fetch-happen itself -- for example, you could implement a cache that uses `redis` for caching, or simply keeps everything in memory. Most of the caching logic exists entirely on the make-fetch-happen side, so the only thing you need to worry about is reading, writing, and deleting, as well as making sure `fetch.Response` objects are what gets returned.
+
+You can refer to `cache.js` in the make-fetch-happen source code for a reference implementation.
+
+**NOTE**: Requests will not be cached unless their response bodies are consumed. You will need to use one of the `res.json()`, `res.buffer()`, etc methods on the response, or drain the `res.body` stream, in order for it to be written.
+
+The default cache manager also adds the following headers to cached responses:
+
+* `X-Local-Cache`: Path to the cache the content was found in
+* `X-Local-Cache-Key`: Unique cache entry key for this response
+* `X-Local-Cache-Hash`: Specific integrity hash for the cached entry
+* `X-Local-Cache-Time`: UTCString of the cache insertion time for the entry
+
+Using [`cacache`](https://npm.im/cacache), a call like this may be used to
+manually fetch the cached entry:
+
+```javascript
+const h = response.headers
+cacache.get(h.get('x-local-cache'), h.get('x-local-cache-key'))
+
+// grab content only, directly:
+cacache.get.byDigest(h.get('x-local-cache'), h.get('x-local-cache-hash'))
+```
+
+##### Example
+
+```javascript
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ cacheManager: './my-local-cache'
+}) // -> 200-level response will be written to disk
+
+fetch('https://npm.im/cacache', {
+ cacheManager: new MyCustomRedisCache(process.env.PORT)
+}) // -> 200-level response will be written to redis
+```
+
+A possible (minimal) implementation for `MyCustomRedisCache`:
+
+```javascript
+const bluebird = require('bluebird')
+const redis = require("redis")
+bluebird.promisifyAll(redis.RedisClient.prototype)
+class MyCustomRedisCache {
+ constructor (opts) {
+ this.redis = redis.createClient(opts)
+ }
+ match (req) {
+ return this.redis.getAsync(req.url).then(res => {
+ if (res) {
+ const parsed = JSON.parse(res)
+ return new fetch.Response(parsed.body, {
+ url: req.url,
+ headers: parsed.headers,
+ status: 200
+ })
+ }
+ })
+ }
+ put (req, res) {
+ return res.buffer().then(body => {
+ return this.redis.setAsync(req.url, JSON.stringify({
+ body: body,
+ headers: res.headers.raw()
+ }))
+ }).then(() => {
+ // return the response itself
+ return res
+ })
+ }
+ 'delete' (req) {
+ return this.redis.unlinkAsync(req.url)
+ }
+}
+```
+
+#### <a name="opts-cache"></a> `> opts.cache`
+
+This option follows the standard `fetch` API cache option. This option will do nothing if [`opts.cacheManager`](#opts-cache-manager) is null. The following values are accepted (as strings):
+
+* `default` - Fetch will inspect the HTTP cache on the way to the network. If there is a fresh response it will be used. If there is a stale response a conditional request will be created, and a normal request otherwise. It then updates the HTTP cache with the response. If the revalidation request fails (for example, on a 500 or if you're offline), the stale response will be returned.
+* `no-store` - Fetch behaves as if there is no HTTP cache at all.
+* `reload` - Fetch behaves as if there is no HTTP cache on the way to the network. Ergo, it creates a normal request and updates the HTTP cache with the response.
+* `no-cache` - Fetch creates a conditional request if there is a response in the HTTP cache and a normal request otherwise. It then updates the HTTP cache with the response.
+* `force-cache` - Fetch uses any response in the HTTP cache matching the request, not paying attention to staleness. If there was no response, it creates a normal request and updates the HTTP cache with the response.
+* `only-if-cached` - Fetch uses any response in the HTTP cache matching the request, not paying attention to staleness. If there was no response, it returns a network error. (Can only be used when requestā€™s mode is "same-origin". Any cached redirects will be followed assuming requestā€™s redirect mode is "follow" and the redirects do not violate requestā€™s mode.)
+
+(Note: option descriptions are taken from https://fetch.spec.whatwg.org/#http-network-or-cache-fetch)
+
+##### Example
+
+```javascript
+const fetch = require('make-fetch-happen').defaults({
+ cacheManager: './my-cache'
+})
+
+// Will error with ENOTCACHED if we haven't already cached this url
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ cache: 'only-if-cached'
+})
+
+// Will refresh any local content and cache the new response
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ cache: 'reload'
+})
+
+// Will use any local data, even if stale. Otherwise, will hit network.
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ cache: 'force-cache'
+})
+```
+
+#### <a name="opts-proxy"></a> `> opts.proxy`
+
+A string or `url.parse`-d URI to proxy through. Different Proxy handlers will be
+used depending on the proxy's protocol.
+
+Additionally, `process.env.HTTP_PROXY`, `process.env.HTTPS_PROXY`, and
+`process.env.PROXY` are used if present and no `opts.proxy` value is provided.
+
+(Pending) `process.env.NO_PROXY` may also be configured to skip proxying requests for all, or specific domains.
+
+##### Example
+
+```javascript
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ proxy: 'https://corporate.yourcompany.proxy:4445'
+})
+
+fetch('https://registry.npmjs.org/make-fetch-happen', {
+ proxy: {
+ protocol: 'https:',
+ hostname: 'corporate.yourcompany.proxy',
+ port: 4445
+ }
+})
+```
+
+#### <a name="opts-no-proxy"></a> `> opts.noProxy`
+
+If present, should be a comma-separated string or an array of domain extensions
+that a proxy should _not_ be used for.
+
+This option may also be provided through `process.env.NO_PROXY`.
+
+#### <a name="https-opts"></a> `> opts.ca, opts.cert, opts.key, opts.strictSSL`
+
+These values are passed in directly to the HTTPS agent and will be used for both
+proxied and unproxied outgoing HTTPS requests. They mostly correspond to the
+same options the `https` module accepts, which will be themselves passed to
+`tls.connect()`. `opts.strictSSL` corresponds to `rejectUnauthorized`.
+
+#### <a name="opts-local-address"></a> `> opts.localAddress`
+
+Passed directly to `http` and `https` request calls. Determines the local
+address to bind to.
+
+#### <a name="opts-max-sockets"></a> `> opts.maxSockets`
+
+Default: 15
+
+Maximum number of active concurrent sockets to use for the underlying
+Http/Https/Proxy agents. This setting applies once per spawned agent.
+
+15 is probably a _pretty good value_ for most use-cases, and balances speed
+with, uh, not knocking out people's routers. šŸ¤“
+
+#### <a name="opts-retry"></a> `> opts.retry`
+
+An object that can be used to tune request retry settings. Retries will only be attempted on the following conditions:
+
+* Request method is NOT `POST` AND
+* Request status is one of: `408`, `420`, `429`, or any status in the 500-range. OR
+* Request errored with `ECONNRESET`, `ECONNREFUSED`, `EADDRINUSE`, `ETIMEDOUT`, or the `fetch` error `request-timeout`.
+
+The following are worth noting as explicitly not retried:
+
+* `getaddrinfo ENOTFOUND` and will be assumed to be either an unreachable domain or the user will be assumed offline. If a response is cached, it will be returned immediately.
+* `ECONNRESET` currently has no support for restarting. It will eventually be supported but requires a bit more juggling due to streaming.
+
+If `opts.retry` is `false`, it is equivalent to `{retries: 0}`
+
+If `opts.retry` is a number, it is equivalent to `{retries: num}`
+
+The following retry options are available if you want more control over it:
+
+* retries
+* factor
+* minTimeout
+* maxTimeout
+* randomize
+
+For details on what each of these do, refer to the [`retry`](https://npm.im/retry) documentation.
+
+##### Example
+
+```javascript
+fetch('https://flaky.site.com', {
+ retry: {
+ retries: 10,
+ randomize: true
+ }
+})
+
+fetch('http://reliable.site.com', {
+ retry: false
+})
+
+fetch('http://one-more.site.com', {
+ retry: 3
+})
+```
+
+#### <a name="opts-onretry"></a> `> opts.onRetry`
+
+A function called whenever a retry is attempted.
+
+##### Example
+
+```javascript
+fetch('https://flaky.site.com', {
+ onRetry() {
+ console.log('we will retry!')
+ }
+})
+```
+
+#### <a name="opts-integrity"></a> `> opts.integrity`
+
+Matches the response body against the given [Subresource Integrity](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) metadata. If verification fails, the request will fail with an `EINTEGRITY` error.
+
+`integrity` may either be a string or an [`ssri`](https://npm.im/ssri) `Integrity`-like.
+
+##### Example
+
+```javascript
+fetch('https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz', {
+ integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q='
+}) // -> ok
+
+fetch('https://malicious-registry.org/make-fetch-happen/-/make-fetch-happen-1.0.0.tgz', {
+ integrity: 'sha1-o47j7zAYnedYFn1dF/fR9OV3z8Q='
+}) // Error: EINTEGRITY
+```
+
+### <a name="wow"></a> Message From Our Sponsors
+
+![](stop.gif)
+
+![](happening.gif)
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js
new file mode 100644
index 0000000000..55675946ad
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/agent.js
@@ -0,0 +1,171 @@
+'use strict'
+const LRU = require('lru-cache')
+const url = require('url')
+
+let AGENT_CACHE = new LRU({ max: 50 })
+let HttpsAgent
+let HttpAgent
+
+module.exports = getAgent
+
+function getAgent (uri, opts) {
+ const parsedUri = url.parse(typeof uri === 'string' ? uri : uri.url)
+ const isHttps = parsedUri.protocol === 'https:'
+ const pxuri = getProxyUri(uri, opts)
+
+ const key = [
+ `https:${isHttps}`,
+ pxuri
+ ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}`
+ : '>no-proxy<',
+ `local-address:${opts.localAddress || '>no-local-address<'}`,
+ `strict-ssl:${isHttps ? !!opts.strictSSL : '>no-strict-ssl<'}`,
+ `ca:${(isHttps && opts.ca) || '>no-ca<'}`,
+ `cert:${(isHttps && opts.cert) || '>no-cert<'}`,
+ `key:${(isHttps && opts.key) || '>no-key<'}`
+ ].join(':')
+
+ if (opts.agent != null) { // `agent: false` has special behavior!
+ return opts.agent
+ }
+
+ if (AGENT_CACHE.peek(key)) {
+ return AGENT_CACHE.get(key)
+ }
+
+ if (pxuri) {
+ const proxy = getProxy(pxuri, opts, isHttps)
+ AGENT_CACHE.set(key, proxy)
+ return proxy
+ }
+
+ if (isHttps && !HttpsAgent) {
+ HttpsAgent = require('agentkeepalive').HttpsAgent
+ } else if (!isHttps && !HttpAgent) {
+ HttpAgent = require('agentkeepalive')
+ }
+
+ // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout
+ // of zero disables the timeout behavior (OS limits still apply). Else, if
+ // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that
+ // the node-fetch-npm timeout will always fire first, giving us more
+ // consistent errors.
+ const agentTimeout = opts.timeout === 0 ? 0 : opts.timeout + 1
+
+ const agent = isHttps ? new HttpsAgent({
+ maxSockets: opts.maxSockets || 15,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ localAddress: opts.localAddress,
+ rejectUnauthorized: opts.strictSSL,
+ timeout: agentTimeout
+ }) : new HttpAgent({
+ maxSockets: opts.maxSockets || 15,
+ localAddress: opts.localAddress,
+ timeout: agentTimeout
+ })
+ AGENT_CACHE.set(key, agent)
+ return agent
+}
+
+function checkNoProxy (uri, opts) {
+ const host = url.parse(uri).hostname.split('.').reverse()
+ let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
+ if (typeof noproxy === 'string') {
+ noproxy = noproxy.split(/\s*,\s*/g)
+ }
+ return noproxy && noproxy.some(no => {
+ const noParts = no.split('.').filter(x => x).reverse()
+ if (!noParts.length) { return false }
+ for (let i = 0; i < noParts.length; i++) {
+ if (host[i] !== noParts[i]) {
+ return false
+ }
+ }
+ return true
+ })
+}
+
+module.exports.getProcessEnv = getProcessEnv
+
+function getProcessEnv (env) {
+ if (!env) { return }
+
+ let value
+
+ if (Array.isArray(env)) {
+ for (let e of env) {
+ value = process.env[e] ||
+ process.env[e.toUpperCase()] ||
+ process.env[e.toLowerCase()]
+ if (typeof value !== 'undefined') { break }
+ }
+ }
+
+ if (typeof env === 'string') {
+ value = process.env[env] ||
+ process.env[env.toUpperCase()] ||
+ process.env[env.toLowerCase()]
+ }
+
+ return value
+}
+
+function getProxyUri (uri, opts) {
+ const protocol = url.parse(uri).protocol
+
+ const proxy = opts.proxy || (
+ protocol === 'https:' && getProcessEnv('https_proxy')
+ ) || (
+ protocol === 'http:' && getProcessEnv(['https_proxy', 'http_proxy', 'proxy'])
+ )
+ if (!proxy) { return null }
+
+ const parsedProxy = (typeof proxy === 'string') ? url.parse(proxy) : proxy
+
+ return !checkNoProxy(uri, opts) && parsedProxy
+}
+
+let HttpProxyAgent
+let HttpsProxyAgent
+let SocksProxyAgent
+function getProxy (proxyUrl, opts, isHttps) {
+ let popts = {
+ host: proxyUrl.hostname,
+ port: proxyUrl.port,
+ protocol: proxyUrl.protocol,
+ path: proxyUrl.path,
+ auth: proxyUrl.auth,
+ ca: opts.ca,
+ cert: opts.cert,
+ key: opts.key,
+ timeout: opts.timeout === 0 ? 0 : opts.timeout + 1,
+ localAddress: opts.localAddress,
+ maxSockets: opts.maxSockets || 15,
+ rejectUnauthorized: opts.strictSSL
+ }
+
+ if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') {
+ if (!isHttps) {
+ if (!HttpProxyAgent) {
+ HttpProxyAgent = require('http-proxy-agent')
+ }
+
+ return new HttpProxyAgent(popts)
+ } else {
+ if (!HttpsProxyAgent) {
+ HttpsProxyAgent = require('https-proxy-agent')
+ }
+
+ return new HttpsProxyAgent(popts)
+ }
+ }
+ if (proxyUrl.protocol.startsWith('socks')) {
+ if (!SocksProxyAgent) {
+ SocksProxyAgent = require('socks-proxy-agent')
+ }
+
+ return new SocksProxyAgent(popts)
+ }
+}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js
index edb9b3d036..edb9b3d036 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/cache.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/cache.js
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js
new file mode 100644
index 0000000000..0f2c164e19
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/index.js
@@ -0,0 +1,482 @@
+'use strict'
+
+let Cache
+const url = require('url')
+const CachePolicy = require('http-cache-semantics')
+const fetch = require('node-fetch-npm')
+const pkg = require('./package.json')
+const retry = require('promise-retry')
+let ssri
+const Stream = require('stream')
+const getAgent = require('./agent')
+const setWarning = require('./warning')
+
+const isURL = /^https?:/
+const USER_AGENT = `${pkg.name}/${pkg.version} (+https://npm.im/${pkg.name})`
+
+const RETRY_ERRORS = [
+ 'ECONNRESET', // remote socket closed on us
+ 'ECONNREFUSED', // remote host refused to open connection
+ 'EADDRINUSE', // failed to bind to a local port (proxy?)
+ 'ETIMEDOUT' // someone in the transaction is WAY TOO SLOW
+ // Known codes we do NOT retry on:
+ // ENOTFOUND (getaddrinfo failure. Either bad hostname, or offline)
+]
+
+const RETRY_TYPES = [
+ 'request-timeout'
+]
+
+// https://fetch.spec.whatwg.org/#http-network-or-cache-fetch
+module.exports = cachingFetch
+cachingFetch.defaults = function (_uri, _opts) {
+ const fetch = this
+ if (typeof _uri === 'object') {
+ _opts = _uri
+ _uri = null
+ }
+
+ function defaultedFetch (uri, opts) {
+ const finalOpts = Object.assign({}, _opts || {}, opts || {})
+ return fetch(uri || _uri, finalOpts)
+ }
+
+ defaultedFetch.defaults = fetch.defaults
+ defaultedFetch.delete = fetch.delete
+ return defaultedFetch
+}
+
+cachingFetch.delete = cacheDelete
+function cacheDelete (uri, opts) {
+ opts = configureOptions(opts)
+ if (opts.cacheManager) {
+ const req = new fetch.Request(uri, {
+ method: opts.method,
+ headers: opts.headers
+ })
+ return opts.cacheManager.delete(req, opts)
+ }
+}
+
+function initializeCache (opts) {
+ if (typeof opts.cacheManager === 'string') {
+ if (!Cache) {
+ // Default cacache-based cache
+ Cache = require('./cache')
+ }
+
+ opts.cacheManager = new Cache(opts.cacheManager, opts)
+ }
+
+ opts.cache = opts.cache || 'default'
+
+ if (opts.cache === 'default' && isHeaderConditional(opts.headers)) {
+ // If header list contains `If-Modified-Since`, `If-None-Match`,
+ // `If-Unmodified-Since`, `If-Match`, or `If-Range`, fetch will set cache
+ // mode to "no-store" if it is "default".
+ opts.cache = 'no-store'
+ }
+}
+
+function configureOptions (_opts) {
+ const opts = Object.assign({}, _opts || {})
+ opts.method = (opts.method || 'GET').toUpperCase()
+
+ if (opts.retry && typeof opts.retry === 'number') {
+ opts.retry = { retries: opts.retry }
+ }
+
+ if (opts.retry === false) {
+ opts.retry = { retries: 0 }
+ }
+
+ if (opts.cacheManager) {
+ initializeCache(opts)
+ }
+
+ return opts
+}
+
+function initializeSsri () {
+ if (!ssri) {
+ ssri = require('ssri')
+ }
+}
+
+function cachingFetch (uri, _opts) {
+ const opts = configureOptions(_opts)
+
+ if (opts.integrity) {
+ initializeSsri()
+ // if verifying integrity, node-fetch must not decompress
+ opts.compress = false
+ }
+
+ const isCachable = (opts.method === 'GET' || opts.method === 'HEAD') &&
+ opts.cacheManager &&
+ opts.cache !== 'no-store' &&
+ opts.cache !== 'reload'
+
+ if (isCachable) {
+ const req = new fetch.Request(uri, {
+ method: opts.method,
+ headers: opts.headers
+ })
+
+ return opts.cacheManager.match(req, opts).then(res => {
+ if (res) {
+ const warningCode = (res.headers.get('Warning') || '').match(/^\d+/)
+ if (warningCode && +warningCode >= 100 && +warningCode < 200) {
+ // https://tools.ietf.org/html/rfc7234#section-4.3.4
+ //
+ // If a stored response is selected for update, the cache MUST:
+ //
+ // * delete any Warning header fields in the stored response with
+ // warn-code 1xx (see Section 5.5);
+ //
+ // * retain any Warning header fields in the stored response with
+ // warn-code 2xx;
+ //
+ res.headers.delete('Warning')
+ }
+
+ if (opts.cache === 'default' && !isStale(req, res)) {
+ return res
+ }
+
+ if (opts.cache === 'default' || opts.cache === 'no-cache') {
+ return conditionalFetch(req, res, opts)
+ }
+
+ if (opts.cache === 'force-cache' || opts.cache === 'only-if-cached') {
+ // 112 Disconnected operation
+ // SHOULD be included if the cache is intentionally disconnected from
+ // the rest of the network for a period of time.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(res, 112, 'Disconnected operation')
+ return res
+ }
+ }
+
+ if (!res && opts.cache === 'only-if-cached') {
+ const errorMsg = `request to ${
+ uri
+ } failed: cache mode is 'only-if-cached' but no cached response available.`
+
+ const err = new Error(errorMsg)
+ err.code = 'ENOTCACHED'
+ throw err
+ }
+
+ // Missing cache entry, or mode is default (if stale), reload, no-store
+ return remoteFetch(req.url, opts)
+ })
+ }
+
+ return remoteFetch(uri, opts)
+}
+
+function iterableToObject (iter) {
+ const obj = {}
+ for (let k of iter.keys()) {
+ obj[k] = iter.get(k)
+ }
+ return obj
+}
+
+function makePolicy (req, res) {
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: iterableToObject(req.headers)
+ }
+ const _res = {
+ status: res.status,
+ headers: iterableToObject(res.headers)
+ }
+
+ return new CachePolicy(_req, _res, { shared: false })
+}
+
+// https://tools.ietf.org/html/rfc7234#section-4.2
+function isStale (req, res) {
+ if (!res) {
+ return null
+ }
+
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: iterableToObject(req.headers)
+ }
+
+ const policy = makePolicy(req, res)
+
+ const responseTime = res.headers.get('x-local-cache-time') ||
+ res.headers.get('date') ||
+ 0
+
+ policy._responseTime = new Date(responseTime)
+
+ const bool = !policy.satisfiesWithoutRevalidation(_req)
+ return bool
+}
+
+function mustRevalidate (res) {
+ return (res.headers.get('cache-control') || '').match(/must-revalidate/i)
+}
+
+function conditionalFetch (req, cachedRes, opts) {
+ const _req = {
+ url: req.url,
+ method: req.method,
+ headers: Object.assign({}, opts.headers || {})
+ }
+
+ const policy = makePolicy(req, cachedRes)
+ opts.headers = policy.revalidationHeaders(_req)
+
+ return remoteFetch(req.url, opts)
+ .then(condRes => {
+ const revalidatedPolicy = policy.revalidatedPolicy(_req, {
+ status: condRes.status,
+ headers: iterableToObject(condRes.headers)
+ })
+
+ if (condRes.status >= 500 && !mustRevalidate(cachedRes)) {
+ // 111 Revalidation failed
+ // MUST be included if a cache returns a stale response because an
+ // attempt to revalidate the response failed, due to an inability to
+ // reach the server.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(cachedRes, 111, 'Revalidation failed')
+ return cachedRes
+ }
+
+ if (condRes.status === 304) { // 304 Not Modified
+ condRes.body = cachedRes.body
+ return opts.cacheManager.put(req, condRes, opts)
+ .then(newRes => {
+ newRes.headers = new fetch.Headers(revalidatedPolicy.policy.responseHeaders())
+ return newRes
+ })
+ }
+
+ return condRes
+ })
+ .then(res => res)
+ .catch(err => {
+ if (mustRevalidate(cachedRes)) {
+ throw err
+ } else {
+ // 111 Revalidation failed
+ // MUST be included if a cache returns a stale response because an
+ // attempt to revalidate the response failed, due to an inability to
+ // reach the server.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(cachedRes, 111, 'Revalidation failed')
+ // 199 Miscellaneous warning
+ // The warning text MAY include arbitrary information to be presented to
+ // a human user, or logged. A system receiving this warning MUST NOT take
+ // any automated action, besides presenting the warning to the user.
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ setWarning(
+ cachedRes,
+ 199,
+ `Miscellaneous Warning ${err.code}: ${err.message}`
+ )
+
+ return cachedRes
+ }
+ })
+}
+
+function remoteFetchHandleIntegrity (res, integrity) {
+ const oldBod = res.body
+ const newBod = ssri.integrityStream({
+ integrity
+ })
+ oldBod.pipe(newBod)
+ res.body = newBod
+ oldBod.once('error', err => {
+ newBod.emit('error', err)
+ })
+ newBod.once('error', err => {
+ oldBod.emit('error', err)
+ })
+}
+
+function remoteFetch (uri, opts) {
+ const agent = getAgent(uri, opts)
+ const headers = Object.assign({
+ 'connection': agent ? 'keep-alive' : 'close',
+ 'user-agent': USER_AGENT
+ }, opts.headers || {})
+
+ const reqOpts = {
+ agent,
+ body: opts.body,
+ compress: opts.compress,
+ follow: opts.follow,
+ headers: new fetch.Headers(headers),
+ method: opts.method,
+ redirect: 'manual',
+ size: opts.size,
+ counter: opts.counter,
+ timeout: opts.timeout
+ }
+
+ return retry(
+ (retryHandler, attemptNum) => {
+ const req = new fetch.Request(uri, reqOpts)
+ return fetch(req)
+ .then(res => {
+ res.headers.set('x-fetch-attempts', attemptNum)
+
+ if (opts.integrity) {
+ remoteFetchHandleIntegrity(res, opts.integrity)
+ }
+
+ const isStream = req.body instanceof Stream
+
+ if (opts.cacheManager) {
+ const isMethodGetHead = req.method === 'GET' ||
+ req.method === 'HEAD'
+
+ const isCachable = opts.cache !== 'no-store' &&
+ isMethodGetHead &&
+ makePolicy(req, res).storable() &&
+ res.status === 200 // No other statuses should be stored!
+
+ if (isCachable) {
+ return opts.cacheManager.put(req, res, opts)
+ }
+
+ if (!isMethodGetHead) {
+ return opts.cacheManager.delete(req).then(() => {
+ if (res.status >= 500 && req.method !== 'POST' && !isStream) {
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(res)
+ }
+
+ return retryHandler(res)
+ }
+
+ return res
+ })
+ }
+ }
+
+ const isRetriable = req.method !== 'POST' &&
+ !isStream && (
+ res.status === 408 || // Request Timeout
+ res.status === 420 || // Enhance Your Calm (usually Twitter rate-limit)
+ res.status === 429 || // Too Many Requests ("standard" rate-limiting)
+ res.status >= 500 // Assume server errors are momentary hiccups
+ )
+
+ if (isRetriable) {
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(res)
+ }
+
+ return retryHandler(res)
+ }
+
+ if (!fetch.isRedirect(res.status) || opts.redirect === 'manual') {
+ return res
+ }
+
+ // handle redirects - matches behavior of npm-fetch: https://github.com/bitinn/node-fetch
+ if (opts.redirect === 'error') {
+ const err = new Error(`redirect mode is set to error: ${uri}`)
+ err.code = 'ENOREDIRECT'
+ throw err
+ }
+
+ if (!res.headers.get('location')) {
+ const err = new Error(`redirect location header missing at: ${uri}`)
+ err.code = 'EINVALIDREDIRECT'
+ throw err
+ }
+
+ if (req.counter >= req.follow) {
+ const err = new Error(`maximum redirect reached at: ${uri}`)
+ err.code = 'EMAXREDIRECT'
+ throw err
+ }
+
+ const resolvedUrl = url.resolve(req.url, res.headers.get('location'))
+ let redirectURL = url.parse(resolvedUrl)
+
+ if (isURL.test(res.headers.get('location'))) {
+ redirectURL = url.parse(res.headers.get('location'))
+ }
+
+ // Remove authorization if changing hostnames (but not if just
+ // changing ports or protocols). This matches the behavior of request:
+ // https://github.com/request/request/blob/b12a6245/lib/redirect.js#L134-L138
+ if (url.parse(req.url).hostname !== redirectURL.hostname) {
+ req.headers.delete('authorization')
+ }
+
+ // for POST request with 301/302 response, or any request with 303 response,
+ // use GET when following redirect
+ if (res.status === 303 ||
+ ((res.status === 301 || res.status === 302) && req.method === 'POST')) {
+ opts.method = 'GET'
+ opts.body = null
+ req.headers.delete('content-length')
+ }
+
+ opts.headers = {}
+ req.headers.forEach((value, name) => {
+ opts.headers[name] = value
+ })
+
+ opts.counter = ++req.counter
+ return cachingFetch(resolvedUrl, opts)
+ })
+ .catch(err => {
+ const code = err.code === 'EPROMISERETRY' ? err.retried.code : err.code
+
+ const isRetryError = RETRY_ERRORS.indexOf(code) === -1 &&
+ RETRY_TYPES.indexOf(err.type) === -1
+
+ if (req.method === 'POST' || isRetryError) {
+ throw err
+ }
+
+ if (typeof opts.onRetry === 'function') {
+ opts.onRetry(err)
+ }
+
+ return retryHandler(err)
+ })
+ },
+ opts.retry
+ ).catch(err => {
+ if (err.status >= 400) {
+ return err
+ }
+
+ throw err
+ })
+}
+
+function isHeaderConditional (headers) {
+ if (!headers || typeof headers !== 'object') {
+ return false
+ }
+
+ const modifiers = [
+ 'if-modified-since',
+ 'if-none-match',
+ 'if-unmodified-since',
+ 'if-match',
+ 'if-range'
+ ]
+
+ return Object.keys(headers)
+ .some(h => modifiers.indexOf(h.toLowerCase()) !== -1)
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json
new file mode 100644
index 0000000000..ff28e528a7
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/package.json
@@ -0,0 +1,95 @@
+{
+ "_from": "make-fetch-happen@^3.0.0",
+ "_id": "make-fetch-happen@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-FmWY7gC0mL6Z4N86vE14+m719JKE4H0A+pyiOH18B025gF/C113pyfb4gHDDYP5cqnRMHOz06JGdmffC/SES+w==",
+ "_location": "/npm-registry-fetch/make-fetch-happen",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "make-fetch-happen@^3.0.0",
+ "name": "make-fetch-happen",
+ "escapedName": "make-fetch-happen",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch"
+ ],
+ "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-3.0.0.tgz",
+ "_shasum": "7b661d2372fc4710ab5cc8e1fa3c290eea69a961",
+ "_spec": "make-fetch-happen@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/make-fetch-happen/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agentkeepalive": "^3.4.1",
+ "cacache": "^10.0.4",
+ "http-cache-semantics": "^3.8.1",
+ "http-proxy-agent": "^2.1.0",
+ "https-proxy-agent": "^2.2.0",
+ "lru-cache": "^4.1.2",
+ "mississippi": "^3.0.0",
+ "node-fetch-npm": "^2.0.2",
+ "promise-retry": "^1.1.1",
+ "socks-proxy-agent": "^3.0.1",
+ "ssri": "^5.2.4"
+ },
+ "deprecated": false,
+ "description": "Opinionated, caching, retrying fetch client",
+ "devDependencies": {
+ "bluebird": "^3.5.1",
+ "mkdirp": "^0.5.1",
+ "nock": "^9.2.3",
+ "npmlog": "^4.1.2",
+ "nyc": "^11.4.1",
+ "require-inject": "^1.4.2",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.1",
+ "standard": "^11.0.0",
+ "standard-version": "^4.3.0",
+ "tacks": "^1.2.6",
+ "tap": "^11.1.2",
+ "weallbehave": "^1.0.0",
+ "weallcontribute": "^1.0.7"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/zkat/make-fetch-happen#readme",
+ "keywords": [
+ "http",
+ "request",
+ "fetch",
+ "mean girls",
+ "caching",
+ "cache",
+ "subresource integrity"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "make-fetch-happen",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/make-fetch-happen.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "nyc --all -- tap --timeout=35 -J test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js
new file mode 100644
index 0000000000..b8f13cf831
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen/warning.js
@@ -0,0 +1,24 @@
+const url = require('url')
+
+module.exports = setWarning
+
+function setWarning (reqOrRes, code, message, replace) {
+ // Warning = "Warning" ":" 1#warning-value
+ // warning-value = warn-code SP warn-agent SP warn-text [SP warn-date]
+ // warn-code = 3DIGIT
+ // warn-agent = ( host [ ":" port ] ) | pseudonym
+ // ; the name or pseudonym of the server adding
+ // ; the Warning header, for use in debugging
+ // warn-text = quoted-string
+ // warn-date = <"> HTTP-date <">
+ // (https://tools.ietf.org/html/rfc2616#section-14.46)
+ const host = url.parse(reqOrRes.url).host
+ const jsonMessage = JSON.stringify(message)
+ const jsonDate = JSON.stringify(new Date().toUTCString())
+ const header = replace ? 'set' : 'append'
+
+ reqOrRes.headers[header](
+ 'Warning',
+ `${code} ${host} ${jsonMessage} ${jsonDate}`
+ )
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml
new file mode 100644
index 0000000000..17f94330e7
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.10"
+
+script: "npm test"
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/LICENSE b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/LICENSE
new file mode 100644
index 0000000000..757562ec59
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Mathias Buus
+
+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/npm-registry-fetch/node_modules/pump/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/README.md
new file mode 100644
index 0000000000..5029b27d68
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/README.md
@@ -0,0 +1,56 @@
+# pump
+
+pump is a small node module that pipes streams together and destroys all of them if one of them closes.
+
+```
+npm install pump
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump)
+
+## What problem does it solve?
+
+When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error.
+You are also not able to provide a callback to tell when then pipe has finished.
+
+pump does these two things for you
+
+## Usage
+
+Simply pass the streams you want to pipe together to pump and add an optional callback
+
+``` js
+var pump = require('pump')
+var fs = require('fs')
+
+var source = fs.createReadStream('/dev/random')
+var dest = fs.createWriteStream('/dev/null')
+
+pump(source, dest, function(err) {
+ console.log('pipe finished', err)
+})
+
+setTimeout(function() {
+ dest.destroy() // when dest is closed pump will destroy source
+}, 1000)
+```
+
+You can use pump to pipe more than two streams together as well
+
+``` js
+var transform = someTransformStream()
+
+pump(source, transform, anotherTransform, dest, function(err) {
+ console.log('pipe finished', err)
+})
+```
+
+If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed.
+
+## License
+
+MIT
+
+## Related
+
+`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/index.js
new file mode 100644
index 0000000000..d9ca0335cb
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/index.js
@@ -0,0 +1,82 @@
+var once = require('once')
+var eos = require('end-of-stream')
+var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
+
+var noop = function () {}
+var ancient = /^v?\.0/.test(process.version)
+
+var isFn = function (fn) {
+ return typeof fn === 'function'
+}
+
+var isFS = function (stream) {
+ if (!ancient) return false // newer node version do not need to care about fs is a special way
+ if (!fs) return false // browser
+ return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
+}
+
+var isRequest = function (stream) {
+ return stream.setHeader && isFn(stream.abort)
+}
+
+var destroyer = function (stream, reading, writing, callback) {
+ callback = once(callback)
+
+ var closed = false
+ stream.on('close', function () {
+ closed = true
+ })
+
+ eos(stream, {readable: reading, writable: writing}, function (err) {
+ if (err) return callback(err)
+ closed = true
+ callback()
+ })
+
+ var destroyed = false
+ return function (err) {
+ if (closed) return
+ if (destroyed) return
+ destroyed = true
+
+ if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
+ if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
+
+ if (isFn(stream.destroy)) return stream.destroy()
+
+ callback(err || new Error('stream was destroyed'))
+ }
+}
+
+var call = function (fn) {
+ fn()
+}
+
+var pipe = function (from, to) {
+ return from.pipe(to)
+}
+
+var pump = function () {
+ var streams = Array.prototype.slice.call(arguments)
+ var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
+
+ if (Array.isArray(streams[0])) streams = streams[0]
+ if (streams.length < 2) throw new Error('pump requires two streams per minimum')
+
+ var error
+ var destroys = streams.map(function (stream, i) {
+ var reading = i < streams.length - 1
+ var writing = i > 0
+ return destroyer(stream, reading, writing, function (err) {
+ if (!error) error = err
+ if (err) destroys.forEach(call)
+ if (reading) return
+ destroys.forEach(call)
+ callback(error)
+ })
+ })
+
+ streams.reduce(pipe)
+}
+
+module.exports = pump
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/package.json
new file mode 100644
index 0000000000..4a3008e488
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "pump@^2.0.1",
+ "_id": "pump@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "_location": "/npm-registry-fetch/pump",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pump@^2.0.1",
+ "name": "pump",
+ "escapedName": "pump",
+ "rawSpec": "^2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.1"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "_shasum": "12399add6e4cf7526d973cbc8b5ce2e2908b3909",
+ "_spec": "pump@^2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/cacache/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "browser": {
+ "fs": false
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pump/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "deprecated": false,
+ "description": "pipe streams together and close all of them if one of them closes",
+ "homepage": "https://github.com/mafintosh/pump#readme",
+ "keywords": [
+ "streams",
+ "pipe",
+ "destroy",
+ "callback"
+ ],
+ "license": "MIT",
+ "name": "pump",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pump.git"
+ },
+ "scripts": {
+ "test": "node test-browser.js && node test-node.js"
+ },
+ "version": "2.0.1"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js
new file mode 100644
index 0000000000..75ea4a292e
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-browser.js
@@ -0,0 +1,62 @@
+var stream = require('stream')
+var pump = require('./index')
+
+var rs = new stream.Readable()
+var ws = new stream.Writable()
+
+rs._read = function (size) {
+ this.push(Buffer(size).fill('abc'))
+}
+
+ws._write = function (chunk, encoding, cb) {
+ setTimeout(function () {
+ cb()
+ }, 100)
+}
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-browser.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('finish', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('end', function () {
+ rsClosed = true
+ check()
+})
+
+pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+setTimeout(function () {
+ rs.push(null)
+ rs.emit('close')
+}, 1000)
+
+var timeout = setTimeout(function () {
+ check()
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-node.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-node.js
new file mode 100644
index 0000000000..034a65414d
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/pump/test-node.js
@@ -0,0 +1,53 @@
+var pump = require('./index')
+
+var rs = require('fs').createReadStream('/dev/random')
+var ws = require('fs').createWriteStream('/dev/null')
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-node.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('close', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('close', function () {
+ rsClosed = true
+ check()
+})
+
+var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+if (res) {
+ process.exit(1)
+}
+
+setTimeout(function () {
+ rs.destroy()
+}, 1000)
+
+var timeout = setTimeout(function () {
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore
index 6bcbf6f77d..6bcbf6f77d 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.npmignore
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.npmignore
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml
index 9d67de5878..9d67de5878 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/.travis.yml
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/.travis.yml
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE
index b2442a9e71..b2442a9e71 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/LICENSE
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/LICENSE
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md
index 178ce8827f..178ce8827f 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/README.md
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/README.md
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js
index ef53b9fd4d..ef53b9fd4d 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map
index 60af067a2c..60af067a2c 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/build/smartbuffer.js.map
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js
index ea69cfc09a..ea69cfc09a 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/lib/smart-buffer.js
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json
new file mode 100644
index 0000000000..f6e183c589
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "smart-buffer@^1.0.13",
+ "_id": "smart-buffer@1.1.15",
+ "_inBundle": false,
+ "_integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=",
+ "_location": "/npm-registry-fetch/smart-buffer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "smart-buffer@^1.0.13",
+ "name": "smart-buffer",
+ "escapedName": "smart-buffer",
+ "rawSpec": "^1.0.13",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.13"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/socks"
+ ],
+ "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
+ "_shasum": "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16",
+ "_spec": "smart-buffer@^1.0.13",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/socks",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/smart-buffer/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "A smarter Buffer that keeps track of its own read and write positions while growing endlessly.",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.15",
+ "istanbul": "^0.4.3",
+ "mocha": "^3.2.0",
+ "mocha-lcov-reporter": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.10.15",
+ "npm": ">= 1.3.5"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/smart-buffer/",
+ "keywords": [
+ "buffer",
+ "smart",
+ "serialize",
+ "packet",
+ "network",
+ "cursor",
+ "simple"
+ ],
+ "license": "MIT",
+ "main": "lib/smart-buffer.js",
+ "name": "smart-buffer",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git"
+ },
+ "scripts": {
+ "coverage": "istanbul cover node_modules/mocha/bin/_mocha recursive test",
+ "fullcoverage": "istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test",
+ "test": "mocha test/smart-buffer.test.js"
+ },
+ "typings": "typings/index",
+ "version": "1.1.15"
+}
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js
index 0897d54c2f..0897d54c2f 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/test/smart-buffer.test.js
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts
index b567f1e97c..b567f1e97c 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/smart-buffer/typings/index.d.ts
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore
index 07e6e472cc..07e6e472cc 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml
index 805d3d50d2..805d3d50d2 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/.travis.yml
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md
index b0266b5e35..b0266b5e35 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/History.md
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/History.md
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md
index 30d33500af..30d33500af 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/README.md
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/README.md
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js
index 3dac18d564..3dac18d564 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/index.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/index.js
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json
new file mode 100644
index 0000000000..011f4a61f7
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "socks-proxy-agent@^3.0.1",
+ "_id": "socks-proxy-agent@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==",
+ "_location": "/npm-registry-fetch/socks-proxy-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks-proxy-agent@^3.0.1",
+ "name": "socks-proxy-agent",
+ "escapedName": "socks-proxy-agent",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz",
+ "_shasum": "2eae7cf8e2a82d34565761539a7f9718c5617659",
+ "_spec": "socks-proxy-agent@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agent-base": "^4.1.0",
+ "socks": "^1.1.10"
+ },
+ "deprecated": false,
+ "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
+ "devDependencies": {
+ "mocha": "^3.4.2",
+ "raw-body": "^2.2.0",
+ "socksv5": "0.0.6"
+ },
+ "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
+ "keywords": [
+ "socks",
+ "socks4",
+ "socks4a",
+ "proxy",
+ "http",
+ "https",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "socks-proxy-agent",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec"
+ },
+ "version": "3.0.1"
+}
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
diff --git a/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 b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/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
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js
index 968ef650fb..968ef650fb 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/test.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent/test/test.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/.npmignore
index 7deddced8b..7deddced8b 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/.npmignore
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/.npmignore
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/LICENSE
index b2442a9e71..b2442a9e71 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/LICENSE
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/LICENSE
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/README.md
index 890b7deb6a..890b7deb6a 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/README.md
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/README.md
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js
index 82d6afa97b..82d6afa97b 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/associate.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/associate.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js
index 4410dd1def..4410dd1def 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/bind.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/bind.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js
index 528ad4d416..528ad4d416 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/examples/connect.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/examples/connect.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/index.js
index 29331d4a1c..29331d4a1c 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/index.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/index.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js
index db1c301ec9..db1c301ec9 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-agent.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-agent.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js
index 4a31f62c32..4a31f62c32 100644
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/lib/socks-client.js
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/lib/socks-client.js
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/package.json
new file mode 100644
index 0000000000..e4884cd472
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/socks/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "socks@^1.1.10",
+ "_id": "socks@1.1.10",
+ "_inBundle": false,
+ "_integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
+ "_location": "/npm-registry-fetch/socks",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks@^1.1.10",
+ "name": "socks",
+ "escapedName": "socks",
+ "rawSpec": "^1.1.10",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.10"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/socks-proxy-agent"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
+ "_shasum": "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a",
+ "_spec": "socks@^1.1.10",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/socks-proxy-agent",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/socks/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Samuel Gordalina"
+ }
+ ],
+ "dependencies": {
+ "ip": "^1.1.4",
+ "smart-buffer": "^1.0.13"
+ },
+ "deprecated": false,
+ "description": "A SOCKS proxy client supporting SOCKS 4, 4a, and 5. (also supports BIND/Associate)",
+ "engines": {
+ "node": ">= 0.10.0",
+ "npm": ">= 1.3.5"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/socks",
+ "keywords": [
+ "socks",
+ "proxy",
+ "client",
+ "tor",
+ "bind",
+ "associate",
+ "socks 4",
+ "socks 4a",
+ "socks 5",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "socks",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/socks.git"
+ },
+ "version": "1.1.10"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md
new file mode 100644
index 0000000000..5c06894881
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/CHANGELOG.md
@@ -0,0 +1,256 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="5.3.0"></a>
+# [5.3.0](https://github.com/zkat/ssri/compare/v5.2.4...v5.3.0) (2018-03-13)
+
+
+### Features
+
+* **checkData:** optionally throw when checkData fails ([bf26b84](https://github.com/zkat/ssri/commit/bf26b84))
+
+
+
+<a name="5.2.4"></a>
+## [5.2.4](https://github.com/zkat/ssri/compare/v5.2.3...v5.2.4) (2018-02-16)
+
+
+
+<a name="5.2.3"></a>
+## [5.2.3](https://github.com/zkat/ssri/compare/v5.2.2...v5.2.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **hashes:** filter hash priority list by available hashes ([2fa30b8](https://github.com/zkat/ssri/commit/2fa30b8))
+* **integrityStream:** dedupe algorithms to generate ([d56c654](https://github.com/zkat/ssri/commit/d56c654))
+
+
+
+<a name="5.2.2"></a>
+## [5.2.2](https://github.com/zkat/ssri/compare/v5.2.1...v5.2.2) (2018-02-14)
+
+
+### Bug Fixes
+
+* **security:** tweak strict SRI regex ([#10](https://github.com/zkat/ssri/issues/10)) ([d0ebcdc](https://github.com/zkat/ssri/commit/d0ebcdc))
+
+
+
+<a name="5.2.1"></a>
+## [5.2.1](https://github.com/zkat/ssri/compare/v5.2.0...v5.2.1) (2018-02-06)
+
+
+
+<a name="5.2.0"></a>
+# [5.2.0](https://github.com/zkat/ssri/compare/v5.1.0...v5.2.0) (2018-02-06)
+
+
+### Features
+
+* **match:** add integrity.match() ([3c49cc4](https://github.com/zkat/ssri/commit/3c49cc4))
+
+
+
+<a name="5.1.0"></a>
+# [5.1.0](https://github.com/zkat/ssri/compare/v5.0.0...v5.1.0) (2018-01-18)
+
+
+### Bug Fixes
+
+* **checkStream:** integrityStream now takes opts.integrity algos into account ([d262910](https://github.com/zkat/ssri/commit/d262910))
+
+
+### Features
+
+* **sha3:** do some guesswork about upcoming sha3 ([7fdd9df](https://github.com/zkat/ssri/commit/7fdd9df))
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23)
+
+
+### Features
+
+* **license:** relicense to ISC (#9) ([c82983a](https://github.com/zkat/ssri/commit/c82983a))
+
+
+### BREAKING CHANGES
+
+* **license:** the license has been changed from CC0-1.0 to ISC.
+
+
+
+<a name="4.1.6"></a>
+## [4.1.6](https://github.com/zkat/ssri/compare/v4.1.5...v4.1.6) (2017-06-07)
+
+
+### Bug Fixes
+
+* **checkStream:** make sure to pass all opts through ([0b1bcbe](https://github.com/zkat/ssri/commit/0b1bcbe))
+
+
+
+<a name="4.1.5"></a>
+## [4.1.5](https://github.com/zkat/ssri/compare/v4.1.4...v4.1.5) (2017-06-05)
+
+
+### Bug Fixes
+
+* **integrityStream:** stop crashing if opts.algorithms and opts.integrity have an algo mismatch ([fb1293e](https://github.com/zkat/ssri/commit/fb1293e))
+
+
+
+<a name="4.1.4"></a>
+## [4.1.4](https://github.com/zkat/ssri/compare/v4.1.3...v4.1.4) (2017-05-31)
+
+
+### Bug Fixes
+
+* **node:** older versions of node[@4](https://github.com/4) do not support base64buffer string parsing ([513df4e](https://github.com/zkat/ssri/commit/513df4e))
+
+
+
+<a name="4.1.3"></a>
+## [4.1.3](https://github.com/zkat/ssri/compare/v4.1.2...v4.1.3) (2017-05-24)
+
+
+### Bug Fixes
+
+* **check:** handle various bad hash corner cases better ([c2c262b](https://github.com/zkat/ssri/commit/c2c262b))
+
+
+
+<a name="4.1.2"></a>
+## [4.1.2](https://github.com/zkat/ssri/compare/v4.1.1...v4.1.2) (2017-04-18)
+
+
+### Bug Fixes
+
+* **stream:** _flush can be called multiple times. use on("end") ([b1c4805](https://github.com/zkat/ssri/commit/b1c4805))
+
+
+
+<a name="4.1.1"></a>
+## [4.1.1](https://github.com/zkat/ssri/compare/v4.1.0...v4.1.1) (2017-04-12)
+
+
+### Bug Fixes
+
+* **pickAlgorithm:** error if pickAlgorithm() is used in an empty Integrity ([fab470e](https://github.com/zkat/ssri/commit/fab470e))
+
+
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/zkat/ssri/compare/v4.0.0...v4.1.0) (2017-04-07)
+
+
+### Features
+
+* adding ssri.create for a crypto style interface (#2) ([96f52ad](https://github.com/zkat/ssri/commit/96f52ad))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/zkat/ssri/compare/v3.0.2...v4.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **integrity:** should have changed the error code before. oops ([8381afa](https://github.com/zkat/ssri/commit/8381afa))
+
+
+### BREAKING CHANGES
+
+* **integrity:** EBADCHECKSUM -> EINTEGRITY for verification errors
+
+
+
+<a name="3.0.2"></a>
+## [3.0.2](https://github.com/zkat/ssri/compare/v3.0.1...v3.0.2) (2017-04-03)
+
+
+
+<a name="3.0.1"></a>
+## [3.0.1](https://github.com/zkat/ssri/compare/v3.0.0...v3.0.1) (2017-04-03)
+
+
+### Bug Fixes
+
+* **package.json:** really should have these in the keywords because search ([a6ac6d0](https://github.com/zkat/ssri/commit/a6ac6d0))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/zkat/ssri/compare/v2.0.0...v3.0.0) (2017-04-03)
+
+
+### Bug Fixes
+
+* **hashes:** IntegrityMetadata -> Hash ([d04aa1f](https://github.com/zkat/ssri/commit/d04aa1f))
+
+
+### Features
+
+* **check:** return IntegrityMetadata on check success ([2301e74](https://github.com/zkat/ssri/commit/2301e74))
+* **fromHex:** ssri.fromHex to make it easier to generate them from hex valus ([049b89e](https://github.com/zkat/ssri/commit/049b89e))
+* **hex:** utility function for getting hex version of digest ([a9f021c](https://github.com/zkat/ssri/commit/a9f021c))
+* **hexDigest:** added hexDigest method to Integrity objects too ([85208ba](https://github.com/zkat/ssri/commit/85208ba))
+* **integrity:** add .isIntegrity and .isIntegrityMetadata ([1b29e6f](https://github.com/zkat/ssri/commit/1b29e6f))
+* **integrityStream:** new stream that can both generate and check streamed data ([fd23e1b](https://github.com/zkat/ssri/commit/fd23e1b))
+* **parse:** allow parsing straight into a single IntegrityMetadata object ([c8ddf48](https://github.com/zkat/ssri/commit/c8ddf48))
+* **pickAlgorithm:** Intergrity#pickAlgorithm() added ([b97a796](https://github.com/zkat/ssri/commit/b97a796))
+* **size:** calculate and update stream sizes ([02ed1ad](https://github.com/zkat/ssri/commit/02ed1ad))
+
+
+### BREAKING CHANGES
+
+* **hashes:** `.isIntegrityMetadata` is now `.isHash`. Also, any references to `IntegrityMetadata` now refer to `Hash`.
+* **integrityStream:** createCheckerStream has been removed and replaced with a general-purpose integrityStream.
+
+To convert existing createCheckerStream code, move the `sri` argument into `opts.integrity` in integrityStream. All other options should be the same.
+* **check:** `checkData`, `checkStream`, and `createCheckerStream` now yield a whole IntegrityMetadata instance representing the first successful hash match.
+
+
+
+<a name="2.0.0"></a>
+# [2.0.0](https://github.com/zkat/ssri/compare/v1.0.0...v2.0.0) (2017-03-24)
+
+
+### Bug Fixes
+
+* **strict-mode:** make regexes more rigid ([122a32c](https://github.com/zkat/ssri/commit/122a32c))
+
+
+### Features
+
+* **api:** added serialize alias for unparse ([999b421](https://github.com/zkat/ssri/commit/999b421))
+* **concat:** add Integrity#concat() ([cae12c7](https://github.com/zkat/ssri/commit/cae12c7))
+* **pickAlgo:** pick the strongest algorithm provided, by default ([58c18f7](https://github.com/zkat/ssri/commit/58c18f7))
+* **strict-mode:** strict SRI support ([3f0b64c](https://github.com/zkat/ssri/commit/3f0b64c))
+* **stringify:** replaced unparse/serialize with stringify ([4acad30](https://github.com/zkat/ssri/commit/4acad30))
+* **verification:** add opts.pickAlgorithm ([f72e658](https://github.com/zkat/ssri/commit/f72e658))
+
+
+### BREAKING CHANGES
+
+* **pickAlgo:** ssri will prioritize specific hashes now
+* **stringify:** serialize and unparse have been removed. Use ssri.stringify instead.
+* **strict-mode:** functions that accepted an optional `sep` argument now expect `opts.sep`.
+
+
+
+<a name="1.0.0"></a>
+# 1.0.0 (2017-03-23)
+
+
+### Features
+
+* **api:** implemented initial api ([4fbb16b](https://github.com/zkat/ssri/commit/4fbb16b))
+
+
+### BREAKING CHANGES
+
+* **api:** Initial API established.
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md
new file mode 100644
index 0000000000..8d28acf866
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/LICENSE.md
@@ -0,0 +1,16 @@
+ISC License
+
+Copyright (c) npm, Inc.
+
+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 COPYRIGHT HOLDER DISCLAIMS
+ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER 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/npm-registry-fetch/node_modules/ssri/README.md b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/README.md
new file mode 100644
index 0000000000..a6c07e7409
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/README.md
@@ -0,0 +1,488 @@
+# ssri [![npm version](https://img.shields.io/npm/v/ssri.svg)](https://npm.im/ssri) [![license](https://img.shields.io/npm/l/ssri.svg)](https://npm.im/ssri) [![Travis](https://img.shields.io/travis/zkat/ssri.svg)](https://travis-ci.org/zkat/ssri) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/ssri?svg=true)](https://ci.appveyor.com/project/zkat/ssri) [![Coverage Status](https://coveralls.io/repos/github/zkat/ssri/badge.svg?branch=latest)](https://coveralls.io/github/zkat/ssri?branch=latest)
+
+[`ssri`](https://github.com/zkat/ssri), short for Standard Subresource
+Integrity, is a Node.js utility for parsing, manipulating, serializing,
+generating, and verifying [Subresource
+Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
+
+## Install
+
+`$ npm install --save ssri`
+
+## Table of Contents
+
+* [Example](#example)
+* [Features](#features)
+* [Contributing](#contributing)
+* [API](#api)
+ * Parsing & Serializing
+ * [`parse`](#parse)
+ * [`stringify`](#stringify)
+ * [`Integrity#concat`](#integrity-concat)
+ * [`Integrity#toString`](#integrity-to-string)
+ * [`Integrity#toJSON`](#integrity-to-json)
+ * [`Integrity#match`](#integrity-match)
+ * [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
+ * [`Integrity#hexDigest`](#integrity-hex-digest)
+ * Integrity Generation
+ * [`fromHex`](#from-hex)
+ * [`fromData`](#from-data)
+ * [`fromStream`](#from-stream)
+ * [`create`](#create)
+ * Integrity Verification
+ * [`checkData`](#check-data)
+ * [`checkStream`](#check-stream)
+ * [`integrityStream`](#integrity-stream)
+
+### Example
+
+```javascript
+const ssri = require('ssri')
+
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+// Parsing and serializing
+const parsed = ssri.parse(integrity)
+ssri.stringify(parsed) // === integrity (works on non-Integrity objects)
+parsed.toString() // === integrity
+
+// Async stream functions
+ssri.checkStream(fs.createReadStream('./my-file'), integrity).then(...)
+ssri.fromStream(fs.createReadStream('./my-file')).then(sri => {
+ sri.toString() === integrity
+})
+fs.createReadStream('./my-file').pipe(ssri.createCheckerStream(sri))
+
+// Sync data functions
+ssri.fromData(fs.readFileSync('./my-file')) // === parsed
+ssri.checkData(fs.readFileSync('./my-file'), integrity) // => 'sha512'
+```
+
+### Features
+
+* Parses and stringifies SRI strings.
+* Generates SRI strings from raw data or Streams.
+* Strict standard compliance.
+* `?foo` metadata option support.
+* Multiple entries for the same algorithm.
+* Object-based integrity hash manipulation.
+* Small footprint: no dependencies, concise implementation.
+* Full test coverage.
+* Customizable algorithm picker.
+
+### Contributing
+
+The ssri team enthusiastically welcomes contributions and project participation!
+There's a bunch of things you can do if you want to contribute! The [Contributor
+Guide](CONTRIBUTING.md) has all the information you need for everything from
+reporting bugs to contributing entire new features. Please don't hesitate to
+jump in if you'd like to, or even ask us questions if something isn't clear.
+
+### API
+
+#### <a name="parse"></a> `> ssri.parse(sri, [opts]) -> Integrity`
+
+Parses `sri` into an `Integrity` data structure. `sri` can be an integrity
+string, an `Hash`-like with `digest` and `algorithm` fields and an optional
+`options` field, or an `Integrity`-like object. The resulting object will be an
+`Integrity` instance that has this shape:
+
+```javascript
+{
+ 'sha1': [{algorithm: 'sha1', digest: 'deadbeef', options: []}],
+ 'sha512': [
+ {algorithm: 'sha512', digest: 'c0ffee', options: []},
+ {algorithm: 'sha512', digest: 'bad1dea', options: ['foo']}
+ ],
+}
+```
+
+If `opts.single` is truthy, a single `Hash` object will be returned. That is, a
+single object that looks like `{algorithm, digest, options}`, as opposed to a
+larger object with multiple of these.
+
+If `opts.strict` is truthy, the resulting object will be filtered such that
+it strictly follows the Subresource Integrity spec, throwing away any entries
+with any invalid components. This also means a restricted set of algorithms
+will be used -- the spec limits them to `sha256`, `sha384`, and `sha512`.
+
+Strict mode is recommended if the integrity strings are intended for use in
+browsers, or in other situations where strict adherence to the spec is needed.
+
+##### Example
+
+```javascript
+ssri.parse('sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo') // -> Integrity object
+```
+
+#### <a name="stringify"></a> `> ssri.stringify(sri, [opts]) -> String`
+
+This function is identical to [`Integrity#toString()`](#integrity-to-string),
+except it can be used on _any_ object that [`parse`](#parse) can handle -- that
+is, a string, an `Hash`-like, or an `Integrity`-like.
+
+The `opts.sep` option defines the string to use when joining multiple entries
+together. To be spec-compliant, this _must_ be whitespace. The default is a
+single space (`' '`).
+
+If `opts.strict` is true, the integrity string will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+// Useful for cleaning up input SRI strings:
+ssri.stringify('\n\rsha512-foo\n\t\tsha384-bar')
+// -> 'sha512-foo sha384-bar'
+
+// Hash-like: only a single entry.
+ssri.stringify({
+ algorithm: 'sha512',
+ digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
+ options: ['foo']
+})
+// ->
+// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+// Integrity-like: full multi-entry syntax. Similar to output of `ssri.parse`
+ssri.stringify({
+ 'sha512': [
+ {
+ algorithm: 'sha512',
+ digest:'9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==',
+ options: ['foo']
+ }
+ ]
+})
+// ->
+// 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+```
+
+#### <a name="integrity-concat"></a> `> Integrity#concat(otherIntegrity, [opts]) -> Integrity`
+
+Concatenates an `Integrity` object with another IntegrityLike, or an integrity
+string.
+
+This is functionally equivalent to concatenating the string format of both
+integrity arguments, and calling [`ssri.parse`](#ssri-parse) on the new string.
+
+If `opts.strict` is true, the new `Integrity` will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+// This will combine the integrity checks for two different versions of
+// your index.js file so you can use a single integrity string and serve
+// either of these to clients, from a single `<script>` tag.
+const desktopIntegrity = ssri.fromData(fs.readFileSync('./index.desktop.js'))
+const mobileIntegrity = ssri.fromData(fs.readFileSync('./index.mobile.js'))
+
+// Note that browsers (and ssri) will succeed as long as ONE of the entries
+// for the *prioritized* algorithm succeeds. That is, in order for this fallback
+// to work, both desktop and mobile *must* use the same `algorithm` values.
+desktopIntegrity.concat(mobileIntegrity)
+```
+
+#### <a name="integrity-to-string"></a> `> Integrity#toString([opts]) -> String`
+
+Returns the string representation of an `Integrity` object. All hash entries
+will be concatenated in the string by `opts.sep`, which defaults to `' '`.
+
+If you want to serialize an object that didn't from from an `ssri` function,
+use [`ssri.stringify()`](#stringify).
+
+If `opts.strict` is true, the integrity string will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo'
+
+ssri.parse(integrity).toString() === integrity
+```
+
+#### <a name="integrity-to-json"></a> `> Integrity#toJSON() -> String`
+
+Returns the string representation of an `Integrity` object. All hash entries
+will be concatenated in the string by `' '`.
+
+This is a convenience method so you can pass an `Integrity` object directly to `JSON.stringify`.
+For more info check out [toJSON() behavior on mdn](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#toJSON%28%29_behavior).
+
+##### Example
+
+```javascript
+const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A==?foo"'
+
+JSON.stringify(ssri.parse(integrity)) === integrity
+```
+
+#### <a name="integrity-match"></a> `> Integrity#match(sri, [opts]) -> Hash | false`
+
+Returns the matching (truthy) hash if `Integrity` matches the argument passed as
+`sri`, which can be anything that [`parse`](#parse) will accept. `opts` will be
+passed through to `parse` and [`pickAlgorithm()`](#integrity-pick-algorithm).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+
+ssri.parse(integrity).match(integrity)
+// Hash {
+// digest: '9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+// algorithm: 'sha512'
+// }
+
+ssri.parse(integrity).match('sha1-deadbeef')
+// false
+```
+
+#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
+
+Returns the "best" algorithm from those available in the integrity object.
+
+If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
+arguments. ssri will prioritize whichever of the two algorithms is returned by
+this function. Note that the function may be called multiple times, and it
+**must** return one of the two algorithms provided. By default, ssri will make
+a best-effort to pick the strongest/most reliable of the given algorithms. It
+may intentionally deprioritize algorithms with known vulnerabilities.
+
+##### Example
+
+```javascript
+ssri.parse('sha1-WEakDigEST sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1').pickAlgorithm() // sha512
+```
+
+#### <a name="integrity-hex-digest"></a> `> Integrity#hexDigest() -> String`
+
+`Integrity` is assumed to be either a single-hash `Integrity` instance, or a
+`Hash` instance. Returns its `digest`, converted to a hex representation of the
+base64 data.
+
+##### Example
+
+```javascript
+ssri.parse('sha1-deadbeef').hexDigest() // '75e69d6de79f'
+```
+
+#### <a name="from-hex"></a> `> ssri.fromHex(hexDigest, algorithm, [opts]) -> Integrity`
+
+Creates an `Integrity` object with a single entry, based on a hex-formatted
+hash. This is a utility function to help convert existing shasums to the
+Integrity format, and is roughly equivalent to something like:
+
+```javascript
+algorithm + '-' + Buffer.from(hexDigest, 'hex').toString('base64')
+```
+
+`opts.options` may optionally be passed in: it must be an array of option
+strings that will be added to all generated integrity hashes generated by
+`fromData`. This is a loosely-specified feature of SRIs, and currently has no
+specified semantics besides being `?`-separated. Use at your own risk, and
+probably avoid if your integrity strings are meant to be used with browsers.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+If `opts.single` is true, a single `Hash` object will be returned.
+
+##### Example
+
+```javascript
+ssri.fromHex('75e69d6de79f', 'sha1').toString() // 'sha1-deadbeef'
+```
+
+#### <a name="from-data"></a> `> ssri.fromData(data, [opts]) -> Integrity`
+
+Creates an `Integrity` object from either string or `Buffer` data, calculating
+all the requested hashes and adding any specified options to the object.
+
+`opts.algorithms` determines which algorithms to generate hashes for. All
+results will be included in a single `Integrity` object. The default value for
+`opts.algorithms` is `['sha512']`. All algorithm strings must be hashes listed
+in `crypto.getHashes()` for the host Node.js platform.
+
+`opts.options` may optionally be passed in: it must be an array of option
+strings that will be added to all generated integrity hashes generated by
+`fromData`. This is a loosely-specified feature of SRIs, and currently has no
+specified semantics besides being `?`-separated. Use at your own risk, and
+probably avoid if your integrity strings are meant to be used with browsers.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrityObj = ssri.fromData('foobarbaz', {
+ algorithms: ['sha256', 'sha384', 'sha512']
+})
+integrity.toString('\n')
+// ->
+// sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0=
+// sha384-irnCxQ0CfQhYGlVAUdwTPC9bF3+YWLxlaDGM4xbYminxpbXEq+D+2GCEBTxcjES9
+// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
+```
+
+#### <a name="from-stream"></a> `> ssri.fromStream(stream, [opts]) -> Promise<Integrity>`
+
+Returns a Promise of an Integrity object calculated by reading data from
+a given `stream`.
+
+It accepts both `opts.algorithms` and `opts.options`, which are documented as
+part of [`ssri.fromData`](#from-data).
+
+Additionally, `opts.Promise` may be passed in to inject a Promise library of
+choice. By default, ssri will use Node's built-in Promises.
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+ssri.fromStream(fs.createReadStream('index.js'), {
+ algorithms: ['sha1', 'sha512']
+}).then(integrity => {
+ return ssri.checkStream(fs.createReadStream('index.js'), integrity)
+}) // succeeds
+```
+
+#### <a name="create"></a> `> ssri.create([opts]) -> <Hash>`
+
+Returns a Hash object with `update(<Buffer or string>[,enc])` and `digest()` methods.
+
+
+The Hash object provides the same methods as [crypto class Hash](https://nodejs.org/dist/latest-v6.x/docs/api/crypto.html#crypto_class_hash).
+`digest()` accepts no arguments and returns an Integrity object calculated by reading data from
+calls to update.
+
+It accepts both `opts.algorithms` and `opts.options`, which are documented as
+part of [`ssri.fromData`](#from-data).
+
+If `opts.strict` is true, the integrity object will be created using strict
+parsing rules. See [`ssri.parse`](#parse).
+
+##### Example
+
+```javascript
+const integrity = ssri.create().update('foobarbaz').digest()
+integrity.toString()
+// ->
+// sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1+9vBnypkYWg==
+```
+
+#### <a name="check-data"></a> `> ssri.checkData(data, sri, [opts]) -> Hash|false`
+
+Verifies `data` integrity against an `sri` argument. `data` may be either a
+`String` or a `Buffer`, and `sri` can be any subresource integrity
+representation that [`ssri.parse`](#parse) can handle.
+
+If verification succeeds, `checkData` will return the name of the algorithm that
+was used for verification (a truthy value). Otherwise, it will return `false`.
+
+If `opts.pickAlgorithm` is provided, it will be used by
+[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
+the available digests to match against.
+
+If `opts.error` is true, and verification fails, `checkData` will throw either
+an `EBADSIZE` or an `EINTEGRITY` error, instead of just returning false.
+
+##### Example
+
+```javascript
+const data = fs.readFileSync('index.js')
+ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
+ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
+ssri.checkData(data, 'sha1-BaDDigEST') // -> false
+ssri.checkData(data, 'sha1-BaDDigEST', {error: true}) // -> Error! EINTEGRITY
+```
+
+#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
+
+Verifies the contents of `stream` against an `sri` argument. `stream` will be
+consumed in its entirety by this process. `sri` can be any subresource integrity
+representation that [`ssri.parse`](#parse) can handle.
+
+`checkStream` will return a Promise that either resolves to the
+`Hash` that succeeded verification, or, if the verification fails
+or an error happens with `stream`, the Promise will be rejected.
+
+If the Promise is rejected because verification failed, the returned error will
+have `err.code` as `EINTEGRITY`.
+
+If `opts.size` is given, it will be matched against the stream size. An error
+with `err.code` `EBADSIZE` will be returned by a rejection if the expected size
+and actual size fail to match.
+
+If `opts.pickAlgorithm` is provided, it will be used by
+[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
+the available digests to match against.
+
+##### Example
+
+```javascript
+const integrity = ssri.fromData(fs.readFileSync('index.js'))
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ integrity
+)
+// ->
+// Promise<{
+// algorithm: 'sha512',
+// digest: 'sha512-yzd8ELD1piyANiWnmdnpCL5F52f10UfUdEkHywVZeqTt0ymgrxR63Qz0GB7TKPoeeZQmWCaz7T1'
+// }>
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0'
+) // -> Promise<Hash>
+
+ssri.checkStream(
+ fs.createReadStream('index.js'),
+ 'sha1-BaDDigEST'
+) // -> Promise<Error<{code: 'EINTEGRITY'}>>
+```
+
+#### <a name="integrity-stream"></a> `> integrityStream([opts]) -> IntegrityStream`
+
+Returns a `Transform` stream that data can be piped through in order to generate
+and optionally check data integrity for piped data. When the stream completes
+successfully, it emits `size` and `integrity` events, containing the total
+number of bytes processed and a calculated `Integrity` instance based on stream
+data, respectively.
+
+If `opts.algorithms` is passed in, the listed algorithms will be calculated when
+generating the final `Integrity` instance. The default is `['sha512']`.
+
+If `opts.single` is passed in, a single `Hash` instance will be returned.
+
+If `opts.integrity` is passed in, it should be an `integrity` value understood
+by [`parse`](#parse) that the stream will check the data against. If
+verification succeeds, the integrity stream will emit a `verified` event whose
+value is a single `Hash` object that is the one that succeeded verification. If
+verification fails, the stream will error with an `EINTEGRITY` error code.
+
+If `opts.size` is given, it will be matched against the stream size. An error
+with `err.code` `EBADSIZE` will be emitted by the stream if the expected size
+and actual size fail to match.
+
+If `opts.pickAlgorithm` is provided, it will be passed two algorithms as
+arguments. ssri will prioritize whichever of the two algorithms is returned by
+this function. Note that the function may be called multiple times, and it
+**must** return one of the two algorithms provided. By default, ssri will make
+a best-effort to pick the strongest/most reliable of the given algorithms. It
+may intentionally deprioritize algorithms with known vulnerabilities.
+
+##### Example
+
+```javascript
+const integrity = ssri.fromData(fs.readFileSync('index.js'))
+fs.createReadStream('index.js')
+.pipe(ssri.integrityStream({integrity}))
+```
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/index.js b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/index.js
new file mode 100644
index 0000000000..ff7881f7cb
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/index.js
@@ -0,0 +1,379 @@
+'use strict'
+
+const Buffer = require('safe-buffer').Buffer
+
+const crypto = require('crypto')
+const Transform = require('stream').Transform
+
+const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
+
+const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
+const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
+const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/
+const VCHAR_REGEX = /^[\x21-\x7E]+$/
+
+class Hash {
+ get isHash () { return true }
+ constructor (hash, opts) {
+ const strict = !!(opts && opts.strict)
+ this.source = hash.trim()
+ // 3.1. Integrity metadata (called "Hash" by ssri)
+ // https://w3c.github.io/webappsec-subresource-integrity/#integrity-metadata-description
+ const match = this.source.match(
+ strict
+ ? STRICT_SRI_REGEX
+ : SRI_REGEX
+ )
+ if (!match) { return }
+ if (strict && !SPEC_ALGORITHMS.some(a => a === match[1])) { return }
+ this.algorithm = match[1]
+ this.digest = match[2]
+
+ const rawOpts = match[3]
+ this.options = rawOpts ? rawOpts.slice(1).split('?') : []
+ }
+ hexDigest () {
+ return this.digest && Buffer.from(this.digest, 'base64').toString('hex')
+ }
+ toJSON () {
+ return this.toString()
+ }
+ toString (opts) {
+ if (opts && opts.strict) {
+ // Strict mode enforces the standard as close to the foot of the
+ // letter as it can.
+ if (!(
+ // The spec has very restricted productions for algorithms.
+ // https://www.w3.org/TR/CSP2/#source-list-syntax
+ SPEC_ALGORITHMS.some(x => x === this.algorithm) &&
+ // Usually, if someone insists on using a "different" base64, we
+ // leave it as-is, since there's multiple standards, and the
+ // specified is not a URL-safe variant.
+ // https://www.w3.org/TR/CSP2/#base64_value
+ this.digest.match(BASE64_REGEX) &&
+ // Option syntax is strictly visual chars.
+ // https://w3c.github.io/webappsec-subresource-integrity/#grammardef-option-expression
+ // https://tools.ietf.org/html/rfc5234#appendix-B.1
+ (this.options || []).every(opt => opt.match(VCHAR_REGEX))
+ )) {
+ return ''
+ }
+ }
+ const options = this.options && this.options.length
+ ? `?${this.options.join('?')}`
+ : ''
+ return `${this.algorithm}-${this.digest}${options}`
+ }
+}
+
+class Integrity {
+ get isIntegrity () { return true }
+ toJSON () {
+ return this.toString()
+ }
+ toString (opts) {
+ opts = opts || {}
+ let sep = opts.sep || ' '
+ if (opts.strict) {
+ // Entries must be separated by whitespace, according to spec.
+ sep = sep.replace(/\S+/g, ' ')
+ }
+ return Object.keys(this).map(k => {
+ return this[k].map(hash => {
+ return Hash.prototype.toString.call(hash, opts)
+ }).filter(x => x.length).join(sep)
+ }).filter(x => x.length).join(sep)
+ }
+ concat (integrity, opts) {
+ const other = typeof integrity === 'string'
+ ? integrity
+ : stringify(integrity, opts)
+ return parse(`${this.toString(opts)} ${other}`, opts)
+ }
+ hexDigest () {
+ return parse(this, {single: true}).hexDigest()
+ }
+ match (integrity, opts) {
+ const other = parse(integrity, opts)
+ const algo = other.pickAlgorithm(opts)
+ return (
+ this[algo] &&
+ other[algo] &&
+ this[algo].find(hash =>
+ other[algo].find(otherhash =>
+ hash.digest === otherhash.digest
+ )
+ )
+ ) || false
+ }
+ pickAlgorithm (opts) {
+ const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
+ const keys = Object.keys(this)
+ if (!keys.length) {
+ throw new Error(`No algorithms available for ${
+ JSON.stringify(this.toString())
+ }`)
+ }
+ return keys.reduce((acc, algo) => {
+ return pickAlgorithm(acc, algo) || acc
+ })
+ }
+}
+
+module.exports.parse = parse
+function parse (sri, opts) {
+ opts = opts || {}
+ if (typeof sri === 'string') {
+ return _parse(sri, opts)
+ } else if (sri.algorithm && sri.digest) {
+ const fullSri = new Integrity()
+ fullSri[sri.algorithm] = [sri]
+ return _parse(stringify(fullSri, opts), opts)
+ } else {
+ return _parse(stringify(sri, opts), opts)
+ }
+}
+
+function _parse (integrity, opts) {
+ // 3.4.3. Parse metadata
+ // https://w3c.github.io/webappsec-subresource-integrity/#parse-metadata
+ if (opts.single) {
+ return new Hash(integrity, opts)
+ }
+ return integrity.trim().split(/\s+/).reduce((acc, string) => {
+ const hash = new Hash(string, opts)
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+}
+
+module.exports.stringify = stringify
+function stringify (obj, opts) {
+ if (obj.algorithm && obj.digest) {
+ return Hash.prototype.toString.call(obj, opts)
+ } else if (typeof obj === 'string') {
+ return stringify(parse(obj, opts), opts)
+ } else {
+ return Integrity.prototype.toString.call(obj, opts)
+ }
+}
+
+module.exports.fromHex = fromHex
+function fromHex (hexDigest, algorithm, opts) {
+ const optString = (opts && opts.options && opts.options.length)
+ ? `?${opts.options.join('?')}`
+ : ''
+ return parse(
+ `${algorithm}-${
+ Buffer.from(hexDigest, 'hex').toString('base64')
+ }${optString}`, opts
+ )
+}
+
+module.exports.fromData = fromData
+function fromData (data, opts) {
+ opts = opts || {}
+ const algorithms = opts.algorithms || ['sha512']
+ const optString = opts.options && opts.options.length
+ ? `?${opts.options.join('?')}`
+ : ''
+ return algorithms.reduce((acc, algo) => {
+ const digest = crypto.createHash(algo).update(data).digest('base64')
+ const hash = new Hash(
+ `${algo}-${digest}${optString}`,
+ opts
+ )
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+}
+
+module.exports.fromStream = fromStream
+function fromStream (stream, opts) {
+ opts = opts || {}
+ const P = opts.Promise || Promise
+ const istream = integrityStream(opts)
+ return new P((resolve, reject) => {
+ stream.pipe(istream)
+ stream.on('error', reject)
+ istream.on('error', reject)
+ let sri
+ istream.on('integrity', s => { sri = s })
+ istream.on('end', () => resolve(sri))
+ istream.on('data', () => {})
+ })
+}
+
+module.exports.checkData = checkData
+function checkData (data, sri, opts) {
+ opts = opts || {}
+ sri = parse(sri, opts)
+ if (!Object.keys(sri).length) {
+ if (opts.error) {
+ throw Object.assign(
+ new Error('No valid integrity hashes to check against'), {
+ code: 'EINTEGRITY'
+ }
+ )
+ } else {
+ return false
+ }
+ }
+ const algorithm = sri.pickAlgorithm(opts)
+ const digest = crypto.createHash(algorithm).update(data).digest('base64')
+ const newSri = parse({algorithm, digest})
+ const match = newSri.match(sri, opts)
+ if (match || !opts.error) {
+ return match
+ } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {
+ const err = new Error(`data size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${data.length}`)
+ err.code = 'EBADSIZE'
+ err.found = data.length
+ err.expected = opts.size
+ err.sri = sri
+ throw err
+ } else {
+ const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = sri
+ err.algorithm = algorithm
+ err.sri = sri
+ throw err
+ }
+}
+
+module.exports.checkStream = checkStream
+function checkStream (stream, sri, opts) {
+ opts = opts || {}
+ const P = opts.Promise || Promise
+ const checker = integrityStream(Object.assign({}, opts, {
+ integrity: sri
+ }))
+ return new P((resolve, reject) => {
+ stream.pipe(checker)
+ stream.on('error', reject)
+ checker.on('error', reject)
+ let sri
+ checker.on('verified', s => { sri = s })
+ checker.on('end', () => resolve(sri))
+ checker.on('data', () => {})
+ })
+}
+
+module.exports.integrityStream = integrityStream
+function integrityStream (opts) {
+ opts = opts || {}
+ // For verification
+ const sri = opts.integrity && parse(opts.integrity, opts)
+ const goodSri = sri && Object.keys(sri).length
+ const algorithm = goodSri && sri.pickAlgorithm(opts)
+ const digests = goodSri && sri[algorithm]
+ // Calculating stream
+ const algorithms = Array.from(
+ new Set(
+ (opts.algorithms || ['sha512'])
+ .concat(algorithm ? [algorithm] : [])
+ )
+ )
+ const hashes = algorithms.map(crypto.createHash)
+ let streamSize = 0
+ const stream = new Transform({
+ transform (chunk, enc, cb) {
+ streamSize += chunk.length
+ hashes.forEach(h => h.update(chunk, enc))
+ cb(null, chunk, enc)
+ }
+ }).on('end', () => {
+ const optString = (opts.options && opts.options.length)
+ ? `?${opts.options.join('?')}`
+ : ''
+ const newSri = parse(hashes.map((h, i) => {
+ return `${algorithms[i]}-${h.digest('base64')}${optString}`
+ }).join(' '), opts)
+ // Integrity verification mode
+ const match = goodSri && newSri.match(sri, opts)
+ if (typeof opts.size === 'number' && streamSize !== opts.size) {
+ const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
+ err.code = 'EBADSIZE'
+ err.found = streamSize
+ err.expected = opts.size
+ err.sri = sri
+ stream.emit('error', err)
+ } else if (opts.integrity && !match) {
+ const err = new Error(`${sri} integrity checksum failed when using ${algorithm}: wanted ${digests} but got ${newSri}. (${streamSize} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = digests
+ err.algorithm = algorithm
+ err.sri = sri
+ stream.emit('error', err)
+ } else {
+ stream.emit('size', streamSize)
+ stream.emit('integrity', newSri)
+ match && stream.emit('verified', match)
+ }
+ })
+ return stream
+}
+
+module.exports.create = createIntegrity
+function createIntegrity (opts) {
+ opts = opts || {}
+ const algorithms = opts.algorithms || ['sha512']
+ const optString = opts.options && opts.options.length
+ ? `?${opts.options.join('?')}`
+ : ''
+
+ const hashes = algorithms.map(crypto.createHash)
+
+ return {
+ update: function (chunk, enc) {
+ hashes.forEach(h => h.update(chunk, enc))
+ return this
+ },
+ digest: function (enc) {
+ const integrity = algorithms.reduce((acc, algo) => {
+ const digest = hashes.shift().digest('base64')
+ const hash = new Hash(
+ `${algo}-${digest}${optString}`,
+ opts
+ )
+ if (hash.algorithm && hash.digest) {
+ const algo = hash.algorithm
+ if (!acc[algo]) { acc[algo] = [] }
+ acc[algo].push(hash)
+ }
+ return acc
+ }, new Integrity())
+
+ return integrity
+ }
+ }
+}
+
+const NODE_HASHES = new Set(crypto.getHashes())
+
+// This is a Best Effortā„¢ at a reasonable priority for hash algos
+const DEFAULT_PRIORITY = [
+ 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
+ // TODO - it's unclear _which_ of these Node will actually use as its name
+ // for the algorithm, so we guesswork it based on the OpenSSL names.
+ 'sha3',
+ 'sha3-256', 'sha3-384', 'sha3-512',
+ 'sha3_256', 'sha3_384', 'sha3_512'
+].filter(algo => NODE_HASHES.has(algo))
+
+function getPrioritizedHash (algo1, algo2) {
+ return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
+ ? algo1
+ : algo2
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/package.json b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/package.json
new file mode 100644
index 0000000000..ff219e9d49
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/node_modules/ssri/package.json
@@ -0,0 +1,90 @@
+{
+ "_from": "ssri@^5.2.4",
+ "_id": "ssri@5.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==",
+ "_location": "/npm-registry-fetch/ssri",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ssri@^5.2.4",
+ "name": "ssri",
+ "escapedName": "ssri",
+ "rawSpec": "^5.2.4",
+ "saveSpec": null,
+ "fetchSpec": "^5.2.4"
+ },
+ "_requiredBy": [
+ "/npm-registry-fetch/cacache",
+ "/npm-registry-fetch/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz",
+ "_shasum": "ba3872c9c6d33a0704a7d71ff045e5ec48999d06",
+ "_spec": "ssri@^5.2.4",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-registry-fetch/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/ssri/issues"
+ },
+ "bundleDependencies": false,
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "safe-buffer": "^5.1.1"
+ },
+ "deprecated": false,
+ "description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
+ "devDependencies": {
+ "nyc": "^11.4.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.0",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js"
+ ],
+ "homepage": "https://github.com/zkat/ssri#readme",
+ "keywords": [
+ "w3c",
+ "web",
+ "security",
+ "integrity",
+ "checksum",
+ "hashing",
+ "subresource integrity",
+ "sri",
+ "sri hash",
+ "sri string",
+ "sri generator",
+ "html"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "ssri",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/ssri.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "5.3.0"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/package.json b/deps/npm/node_modules/npm-registry-fetch/package.json
new file mode 100644
index 0000000000..2844ea89a2
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/package.json
@@ -0,0 +1,126 @@
+{
+ "_args": [
+ [
+ "npm-registry-fetch@1.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-registry-fetch@1.1.0",
+ "_id": "npm-registry-fetch@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-XJPIBfMtgaooRtZmuA42xCeLf3tkxdIX0xqRsGWwNrcVvJ9UYFccD7Ho7QWCzvkM3i/QrkUC37Hu0a+vDBmt5g==",
+ "_location": "/npm-registry-fetch",
+ "_phantomChildren": {
+ "agent-base": "4.2.0",
+ "agentkeepalive": "3.4.1",
+ "bluebird": "3.5.1",
+ "chownr": "1.0.1",
+ "concat-stream": "1.6.2",
+ "duplexify": "3.6.0",
+ "end-of-stream": "1.4.1",
+ "flush-write-stream": "1.0.3",
+ "from2": "2.3.0",
+ "glob": "7.1.2",
+ "graceful-fs": "4.1.11",
+ "http-cache-semantics": "3.8.1",
+ "http-proxy-agent": "2.1.0",
+ "https-proxy-agent": "2.2.1",
+ "ip": "1.1.5",
+ "lru-cache": "4.1.3",
+ "mississippi": "3.0.0",
+ "mkdirp": "0.5.1",
+ "move-concurrently": "1.0.1",
+ "node-fetch-npm": "2.0.2",
+ "once": "1.4.0",
+ "parallel-transform": "1.1.0",
+ "promise-inflight": "1.0.1",
+ "promise-retry": "1.1.1",
+ "pumpify": "1.5.1",
+ "rimraf": "2.6.2",
+ "safe-buffer": "5.1.2",
+ "stream-each": "1.2.2",
+ "through2": "2.0.3",
+ "unique-filename": "1.1.0",
+ "y18n": "4.0.0"
+ },
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "npm-registry-fetch@1.1.0",
+ "name": "npm-registry-fetch",
+ "escapedName": "npm-registry-fetch",
+ "rawSpec": "1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "1.1.0"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-1.1.0.tgz",
+ "_spec": "1.1.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/npm/registry-fetch/issues"
+ },
+ "config": {
+ "nyc": {
+ "exclude": [
+ "node_modules/**",
+ "test/**"
+ ]
+ }
+ },
+ "dependencies": {
+ "bluebird": "^3.5.1",
+ "figgy-pudding": "^2.0.1",
+ "lru-cache": "^4.1.2",
+ "make-fetch-happen": "^3.0.0",
+ "npm-package-arg": "^6.0.0",
+ "safe-buffer": "^5.1.1"
+ },
+ "description": "Fetch-based http client for use with npm registry APIs",
+ "devDependencies": {
+ "cacache": "^10.0.4",
+ "mkdirp": "^0.5.1",
+ "nock": "^9.2.3",
+ "npmlog": "^4.1.2",
+ "rimraf": "^2.6.2",
+ "ssri": "^5.3.0",
+ "standard": "^11.0.1",
+ "standard-version": "^4.2.0",
+ "tap": "^11.1.2",
+ "weallbehave": "^1.2.0",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "*.js",
+ "lib"
+ ],
+ "homepage": "https://github.com/npm/registry-fetch#readme",
+ "keywords": [
+ "npm",
+ "registry",
+ "fetch"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "npm-registry-fetch",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/npm/registry-fetch.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "1.1.0"
+}
diff --git a/deps/npm/node_modules/npm-registry-fetch/silentlog.js b/deps/npm/node_modules/npm-registry-fetch/silentlog.js
new file mode 100644
index 0000000000..886c5d55b2
--- /dev/null
+++ b/deps/npm/node_modules/npm-registry-fetch/silentlog.js
@@ -0,0 +1,14 @@
+'use strict'
+
+const noop = Function.prototype
+module.exports = {
+ error: noop,
+ warn: noop,
+ notice: noop,
+ info: noop,
+ verbose: noop,
+ silly: noop,
+ http: noop,
+ pause: noop,
+ resume: noop
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/index.js b/deps/npm/node_modules/npm-run-path/index.js
index 56f31e4712..56f31e4712 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/index.js
+++ b/deps/npm/node_modules/npm-run-path/index.js
diff --git a/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 b/deps/npm/node_modules/npm-run-path/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/npm-run-path/license
diff --git a/deps/npm/node_modules/npm-run-path/package.json b/deps/npm/node_modules/npm-run-path/package.json
new file mode 100644
index 0000000000..461cca1402
--- /dev/null
+++ b/deps/npm/node_modules/npm-run-path/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "npm-run-path@^2.0.0",
+ "_id": "npm-run-path@2.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
+ "_location": "/npm-run-path",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "npm-run-path@^2.0.0",
+ "name": "npm-run-path",
+ "escapedName": "npm-run-path",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
+ "_spec": "npm-run-path@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/npm-run-path/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "path-key": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Get your PATH prepended with locally installed binaries",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/npm-run-path#readme",
+ "keywords": [
+ "npm",
+ "run",
+ "path",
+ "package",
+ "bin",
+ "binary",
+ "binaries",
+ "script",
+ "cli",
+ "command-line",
+ "execute",
+ "executable"
+ ],
+ "license": "MIT",
+ "name": "npm-run-path",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/npm-run-path.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.2",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/readme.md b/deps/npm/node_modules/npm-run-path/readme.md
index 4ff4722a6c..4ff4722a6c 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/npm-run-path/readme.md
+++ b/deps/npm/node_modules/npm-run-path/readme.md
diff --git a/deps/npm/node_modules/npm-user-validate/package.json b/deps/npm/node_modules/npm-user-validate/package.json
index df646cd055..36260f2d26 100644
--- a/deps/npm/node_modules/npm-user-validate/package.json
+++ b/deps/npm/node_modules/npm-user-validate/package.json
@@ -1,28 +1,32 @@
{
- "_from": "npm-user-validate@latest",
+ "_args": [
+ [
+ "npm-user-validate@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "npm-user-validate@1.0.0",
"_id": "npm-user-validate@1.0.0",
"_inBundle": false,
"_integrity": "sha1-jOyg9c6gTU6TUZ73LQVXp1Ei6VE=",
"_location": "/npm-user-validate",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "npm-user-validate@latest",
+ "raw": "npm-user-validate@1.0.0",
"name": "npm-user-validate",
"escapedName": "npm-user-validate",
- "rawSpec": "latest",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
- "#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-1.0.0.tgz",
- "_shasum": "8ceca0f5cea04d4e93519ef72d0557a75122e951",
- "_spec": "npm-user-validate@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Robert Kowalski",
"email": "rok@kowalski.gd"
@@ -30,8 +34,6 @@
"bugs": {
"url": "https://github.com/npm/npm-user-validate/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "User validations for npm",
"devDependencies": {
"standard": "^8.4.0",
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md
deleted file mode 100644
index 7e2b42d866..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/README.md
+++ /dev/null
@@ -1,195 +0,0 @@
-are-we-there-yet
-----------------
-
-Track complex hiearchies of asynchronous task completion statuses. This is
-intended to give you a way of recording and reporting the progress of the big
-recursive fan-out and gather type workflows that are so common in async.
-
-What you do with this completion data is up to you, but the most common use case is to
-feed it to one of the many progress bar modules.
-
-Most progress bar modules include a rudamentary version of this, but my
-needs were more complex.
-
-Usage
-=====
-
-```javascript
-var TrackerGroup = require("are-we-there-yet").TrackerGroup
-
-var top = new TrackerGroup("program")
-
-var single = top.newItem("one thing", 100)
-single.completeWork(20)
-
-console.log(top.completed()) // 0.2
-
-fs.stat("file", function(er, stat) {
- if (er) throw er
- var stream = top.newStream("file", stat.size)
- console.log(top.completed()) // now 0.1 as single is 50% of the job and is 20% complete
- // and 50% * 20% == 10%
- fs.createReadStream("file").pipe(stream).on("data", function (chunk) {
- // do stuff with chunk
- })
- top.on("change", function (name) {
- // called each time a chunk is read from "file"
- // top.completed() will start at 0.1 and fill up to 0.6 as the file is read
- })
-})
-```
-
-Shared Methods
-==============
-
-* var completed = tracker.completed()
-
-Implemented in: `Tracker`, `TrackerGroup`, `TrackerStream`
-
-Returns the ratio of completed work to work to be done. Range of 0 to 1.
-
-* tracker.finish()
-
-Implemented in: `Tracker`, `TrackerGroup`
-
-Marks the tracker as completed. With a TrackerGroup this marks all of its
-components as completed.
-
-Marks all of the components of this tracker as finished, which in turn means
-that `tracker.completed()` for this will now be 1.
-
-This will result in one or more `change` events being emitted.
-
-Events
-======
-
-All tracker objects emit `change` events with the following arguments:
-
-```
-function (name, completed, tracker)
-```
-
-`name` is the name of the tracker that originally emitted the event,
-or if it didn't have one, the first containing tracker group that had one.
-
-`completed` is the percent complete (as returned by `tracker.completed()` method).
-
-`tracker` is the tracker object that you are listening for events on.
-
-TrackerGroup
-============
-
-* var tracker = new TrackerGroup(**name**)
-
- * **name** *(optional)* - The name of this tracker group, used in change
- notifications if the component updating didn't have a name. Defaults to undefined.
-
-Creates a new empty tracker aggregation group. These are trackers whose
-completion status is determined by the completion status of other trackers.
-
-* tracker.addUnit(**otherTracker**, **weight**)
-
- * **otherTracker** - Any of the other are-we-there-yet tracker objects
- * **weight** *(optional)* - The weight to give the tracker, defaults to 1.
-
-Adds the **otherTracker** to this aggregation group. The weight determines
-how long you expect this tracker to take to complete in proportion to other
-units. So for instance, if you add one tracker with a weight of 1 and
-another with a weight of 2, you're saying the second will take twice as long
-to complete as the first. As such, the first will account for 33% of the
-completion of this tracker and the second will account for the other 67%.
-
-Returns **otherTracker**.
-
-* var subGroup = tracker.newGroup(**name**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subGroup = tracker.addUnit(new TrackerGroup(name), weight)
-```
-
-* var subItem = tracker.newItem(**name**, **todo**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subItem = tracker.addUnit(new Tracker(name, todo), weight)
-```
-
-* var subStream = tracker.newStream(**name**, **todo**, **weight**)
-
-The above is exactly equivalent to:
-
-```javascript
- var subStream = tracker.addUnit(new TrackerStream(name, todo), weight)
-```
-
-* console.log( tracker.debug() )
-
-Returns a tree showing the completion of this tracker group and all of its
-children, including recursively entering all of the children.
-
-Tracker
-=======
-
-* var tracker = new Tracker(**name**, **todo**)
-
- * **name** *(optional)* The name of this counter to report in change
- events. Defaults to undefined.
- * **todo** *(optional)* The amount of work todo (a number). Defaults to 0.
-
-Ordinarily these are constructed as a part of a tracker group (via
-`newItem`).
-
-* var completed = tracker.completed()
-
-Returns the ratio of completed work to work to be done. Range of 0 to 1. If
-total work to be done is 0 then it will return 0.
-
-* tracker.addWork(**todo**)
-
- * **todo** A number to add to the amount of work to be done.
-
-Increases the amount of work to be done, thus decreasing the completion
-percentage. Triggers a `change` event.
-
-* tracker.completeWork(**completed**)
-
- * **completed** A number to add to the work complete
-
-Increase the amount of work complete, thus increasing the completion percentage.
-Will never increase the work completed past the amount of work todo. That is,
-percentages > 100% are not allowed. Triggers a `change` event.
-
-* tracker.finish()
-
-Marks this tracker as finished, tracker.completed() will now be 1. Triggers
-a `change` event.
-
-TrackerStream
-=============
-
-* var tracker = new TrackerStream(**name**, **size**, **options**)
-
- * **name** *(optional)* The name of this counter to report in change
- events. Defaults to undefined.
- * **size** *(optional)* The number of bytes being sent through this stream.
- * **options** *(optional)* A hash of stream options
-
-The tracker stream object is a pass through stream that updates an internal
-tracker object each time a block passes through. It's intended to track
-downloads, file extraction and other related activities. You use it by piping
-your data source into it and then using it as your data source.
-
-If your data has a length attribute then that's used as the amount of work
-completed when the chunk is passed through. If it does not (eg, object
-streams) then each chunk counts as completing 1 unit of work, so your size
-should be the total number of objects being streamed.
-
-* tracker.addWork(**todo**)
-
- * **todo** Increase the expected overall size by **todo** bytes.
-
-Increases the amount of work to be done, thus decreasing the completion
-percentage. Triggers a `change` event.
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
deleted file mode 100644
index c2658d7d1b..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules/
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
deleted file mode 100644
index f894d312bf..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/node_modules/delegates/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "delegates@^1.0.0",
- "_id": "delegates@1.0.0",
- "_integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
- "_location": "/npmlog/are-we-there-yet/delegates",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "delegates@^1.0.0",
- "name": "delegates",
- "escapedName": "delegates",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npmlog/are-we-there-yet"
- ],
- "_resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "_shasum": "84c6e159b81904fdca59a0ef44cd870d31250f9a",
- "_shrinkwrap": null,
- "_spec": "delegates@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/are-we-there-yet",
- "bin": null,
- "bugs": {
- "url": "https://github.com/visionmedia/node-delegates/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "delegate methods and accessors to another property",
- "devDependencies": {
- "mocha": "*",
- "should": "*"
- },
- "homepage": "https://github.com/visionmedia/node-delegates#readme",
- "keywords": [
- "delegate",
- "delegation"
- ],
- "license": "MIT",
- "name": "delegates",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/visionmedia/node-delegates.git"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json b/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
deleted file mode 100644
index d21ff8ab08..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/are-we-there-yet/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "are-we-there-yet@~1.1.2",
- "_id": "are-we-there-yet@1.1.4",
- "_integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=",
- "_location": "/npmlog/are-we-there-yet",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "are-we-there-yet@~1.1.2",
- "name": "are-we-there-yet",
- "escapedName": "are-we-there-yet",
- "rawSpec": "~1.1.2",
- "saveSpec": null,
- "fetchSpec": "~1.1.2"
- },
- "_requiredBy": [
- "/npmlog"
- ],
- "_resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz",
- "_shasum": "bb5dca382bb94f05e15194373d16fd3ba1ca110d",
- "_shrinkwrap": null,
- "_spec": "are-we-there-yet@~1.1.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog",
- "author": {
- "name": "Rebecca Turner",
- "url": "http://re-becca.org"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/iarna/are-we-there-yet/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- },
- "deprecated": false,
- "description": "Keep track of the overall completion of many disparate processes",
- "devDependencies": {
- "standard": "^6.0.8",
- "tap": "^5.7.0"
- },
- "files": [
- "index.js",
- "tracker-base.js",
- "tracker-group.js",
- "tracker-stream.js",
- "tracker.js",
- "CHANGES.md"
- ],
- "homepage": "https://github.com/iarna/are-we-there-yet",
- "license": "ISC",
- "main": "index.js",
- "name": "are-we-there-yet",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/are-we-there-yet.git"
- },
- "scripts": {
- "test": "standard && tap test/*.js"
- },
- "version": "1.1.4"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json b/deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json
deleted file mode 100644
index f130f0239e..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/console-control-strings/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "console-control-strings@~1.1.0",
- "_id": "console-control-strings@1.1.0",
- "_integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
- "_location": "/npmlog/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": [
- "/npmlog",
- "/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "_shasum": "3d7cf4464db6446ea644bf4b39507f9851008e8e",
- "_shrinkwrap": null,
- "_spec": "console-control-strings@~1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog",
- "author": {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org",
- "url": "http://re-becca.org/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/iarna/console-control-strings/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/npmlog/node_modules/gauge/node_modules/object-assign/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json
deleted file mode 100644
index 84ac73a4a7..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "object-assign@^4.1.0",
- "_id": "object-assign@4.1.1",
- "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "_location": "/npmlog/gauge/object-assign",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "object-assign@^4.1.0",
- "name": "object-assign",
- "escapedName": "object-assign",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863",
- "_shrinkwrap": null,
- "_spec": "object-assign@^4.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/object-assign/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 `Object.assign()` ponyfill",
- "devDependencies": {
- "ava": "^0.16.0",
- "lodash": "^4.16.4",
- "matcha": "^0.7.0",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/object-assign#readme",
- "keywords": [
- "object",
- "assign",
- "extend",
- "properties",
- "es2015",
- "ecmascript",
- "harmony",
- "ponyfill",
- "prollyfill",
- "polyfill",
- "shim",
- "browser"
- ],
- "license": "MIT",
- "name": "object-assign",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/object-assign.git"
- },
- "scripts": {
- "bench": "matcha bench.js",
- "test": "xo && ava"
- },
- "version": "4.1.1"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md
deleted file mode 100644
index e2f70d2250..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/CHANGELOG.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="3.0.1"></a>
-## [3.0.1](https://github.com/tapjs/signal-exit/compare/v3.0.0...v3.0.1) (2016-09-08)
-
-
-### Bug Fixes
-
-* do not listen on SIGBUS, SIGFPE, SIGSEGV and SIGILL ([#40](https://github.com/tapjs/signal-exit/issues/40)) ([5b105fb](https://github.com/tapjs/signal-exit/commit/5b105fb))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/tapjs/signal-exit/compare/v2.1.2...v3.0.0) (2016-06-13)
-
-
-### Bug Fixes
-
-* get our test suite running on Windows ([#23](https://github.com/tapjs/signal-exit/issues/23)) ([6f3eda8](https://github.com/tapjs/signal-exit/commit/6f3eda8))
-* hooking SIGPROF was interfering with profilers see [#21](https://github.com/tapjs/signal-exit/issues/21) ([#24](https://github.com/tapjs/signal-exit/issues/24)) ([1248a4c](https://github.com/tapjs/signal-exit/commit/1248a4c))
-
-
-### BREAKING CHANGES
-
-* signal-exit no longer wires into SIGPROF
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt
deleted file mode 100644
index eead04a121..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/LICENSE.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-The ISC License
-
-Copyright (c) 2015, 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/npmlog/node_modules/gauge/node_modules/signal-exit/README.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/README.md
deleted file mode 100644
index 8ebccabeca..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# signal-exit
-
-[![Build Status](https://travis-ci.org/tapjs/signal-exit.png)](https://travis-ci.org/tapjs/signal-exit)
-[![Coverage](https://coveralls.io/repos/tapjs/signal-exit/badge.svg?branch=master)](https://coveralls.io/r/tapjs/signal-exit?branch=master)
-[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit)
-[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/signal-exit/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/signal-exit)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-When you want to fire an event no matter how a process exits:
-
-* reaching the end of execution.
-* explicitly having `process.exit(code)` called.
-* having `process.kill(pid, sig)` called.
-* receiving a fatal signal from outside the process
-
-Use `signal-exit`.
-
-```js
-var onExit = require('signal-exit')
-
-onExit(function (code, signal) {
- console.log('process exited!')
-})
-```
-
-## API
-
-`var remove = onExit(function (code, signal) {}, options)`
-
-The return value of the function is a function that will remove the
-handler.
-
-Note that the function *only* fires for signals if the signal would
-cause the proces to exit. That is, there are no other listeners, and
-it is a fatal signal.
-
-## Options
-
-* `alwaysLast`: Run this handler after any other signal or exit
- handlers. This causes `process.emit` to be monkeypatched.
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js
deleted file mode 100644
index 337f691ed2..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/index.js
+++ /dev/null
@@ -1,157 +0,0 @@
-// Note: since nyc uses this module to output coverage, any lines
-// that are in the direct sync flow of nyc's outputCoverage are
-// ignored, since we can never get coverage for them.
-var assert = require('assert')
-var signals = require('./signals.js')
-
-var EE = require('events')
-/* istanbul ignore if */
-if (typeof EE !== 'function') {
- EE = EE.EventEmitter
-}
-
-var emitter
-if (process.__signal_exit_emitter__) {
- emitter = process.__signal_exit_emitter__
-} else {
- emitter = process.__signal_exit_emitter__ = new EE()
- emitter.count = 0
- emitter.emitted = {}
-}
-
-// Because this emitter is a global, we have to check to see if a
-// previous version of this library failed to enable infinite listeners.
-// I know what you're about to say. But literally everything about
-// signal-exit is a compromise with evil. Get used to it.
-if (!emitter.infinite) {
- emitter.setMaxListeners(Infinity)
- emitter.infinite = true
-}
-
-module.exports = function (cb, opts) {
- assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
-
- if (loaded === false) {
- load()
- }
-
- var ev = 'exit'
- if (opts && opts.alwaysLast) {
- ev = 'afterexit'
- }
-
- var remove = function () {
- emitter.removeListener(ev, cb)
- if (emitter.listeners('exit').length === 0 &&
- emitter.listeners('afterexit').length === 0) {
- unload()
- }
- }
- emitter.on(ev, cb)
-
- return remove
-}
-
-module.exports.unload = unload
-function unload () {
- if (!loaded) {
- return
- }
- loaded = false
-
- signals.forEach(function (sig) {
- try {
- process.removeListener(sig, sigListeners[sig])
- } catch (er) {}
- })
- process.emit = originalProcessEmit
- process.reallyExit = originalProcessReallyExit
- emitter.count -= 1
-}
-
-function emit (event, code, signal) {
- if (emitter.emitted[event]) {
- return
- }
- emitter.emitted[event] = true
- emitter.emit(event, code, signal)
-}
-
-// { <signal>: <listener fn>, ... }
-var sigListeners = {}
-signals.forEach(function (sig) {
- sigListeners[sig] = function listener () {
- // If there are no other listeners, an exit is coming!
- // Simplest way: remove us and then re-send the signal.
- // We know that this will kill the process, so we can
- // safely emit now.
- var listeners = process.listeners(sig)
- if (listeners.length === emitter.count) {
- unload()
- emit('exit', null, sig)
- /* istanbul ignore next */
- emit('afterexit', null, sig)
- /* istanbul ignore next */
- process.kill(process.pid, sig)
- }
- }
-})
-
-module.exports.signals = function () {
- return signals
-}
-
-module.exports.load = load
-
-var loaded = false
-
-function load () {
- if (loaded) {
- return
- }
- loaded = true
-
- // This is the number of onSignalExit's that are in play.
- // It's important so that we can count the correct number of
- // listeners on signals, and don't wait for the other one to
- // handle it instead of us.
- emitter.count += 1
-
- signals = signals.filter(function (sig) {
- try {
- process.on(sig, sigListeners[sig])
- return true
- } catch (er) {
- return false
- }
- })
-
- process.emit = processEmit
- process.reallyExit = processReallyExit
-}
-
-var originalProcessReallyExit = process.reallyExit
-function processReallyExit (code) {
- process.exitCode = code || 0
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- /* istanbul ignore next */
- originalProcessReallyExit.call(process, process.exitCode)
-}
-
-var originalProcessEmit = process.emit
-function processEmit (ev, arg) {
- if (ev === 'exit') {
- if (arg !== undefined) {
- process.exitCode = arg
- }
- var ret = originalProcessEmit.apply(this, arguments)
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- return ret
- } else {
- return originalProcessEmit.apply(this, arguments)
- }
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json
deleted file mode 100644
index cc10a8bbd1..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "signal-exit@^3.0.0",
- "_id": "signal-exit@3.0.2",
- "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "_location": "/npmlog/gauge/signal-exit",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "signal-exit@^3.0.0",
- "name": "signal-exit",
- "escapedName": "signal-exit",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
- "_shrinkwrap": null,
- "_spec": "signal-exit@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/tapjs/signal-exit/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "when you want to fire an event no matter how a process exits.",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.10",
- "nyc": "^8.1.0",
- "standard": "^7.1.2",
- "standard-version": "^2.3.0",
- "tap": "^8.0.1"
- },
- "files": [
- "index.js",
- "signals.js"
- ],
- "homepage": "https://github.com/tapjs/signal-exit",
- "keywords": [
- "signal",
- "exit"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "signal-exit",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/tapjs/signal-exit.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "release": "standard-version",
- "test": "tap --timeout=240 ./test/*.js --cov"
- },
- "version": "3.0.2"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js
deleted file mode 100644
index 3bd67a8a55..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/signal-exit/signals.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// This is not the set of all possible signals.
-//
-// It IS, however, the set of all signals that trigger
-// an exit on either Linux or BSD systems. Linux is a
-// superset of the signal names supported on BSD, and
-// the unknown signals just fail to register, so we can
-// catch that easily enough.
-//
-// Don't bother with SIGKILL. It's uncatchable, which
-// means that we can't fire any callbacks anyway.
-//
-// If a user does happen to register a handler on a non-
-// fatal signal like SIGWINCH or something, and then
-// exit, it'll end up firing `process.emit('exit')`, so
-// the handler will be fired anyway.
-//
-// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
-// artificially, inherently leave the process in a
-// state from which it is not safe to try and enter JS
-// listeners.
-module.exports = [
- 'SIGABRT',
- 'SIGALRM',
- 'SIGHUP',
- 'SIGINT',
- 'SIGTERM'
-]
-
-if (process.platform !== 'win32') {
- module.exports.push(
- 'SIGVTALRM',
- 'SIGXCPU',
- 'SIGXFSZ',
- 'SIGUSR2',
- 'SIGTRAP',
- 'SIGSYS',
- 'SIGQUIT',
- 'SIGIOT'
- // should detect profiler and enable/disable accordingly.
- // see #21
- // 'SIGPROF'
- )
-}
-
-if (process.platform === 'linux') {
- module.exports.push(
- 'SIGIO',
- 'SIGPOLL',
- 'SIGPWR',
- 'SIGSTKFLT',
- 'SIGUNUSED'
- )
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js
deleted file mode 100644
index 0432fe6a30..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* eslint-disable babel/new-cap, xo/throw-new-error */
-'use strict';
-module.exports = function (str, pos) {
- if (str === null || str === undefined) {
- throw TypeError();
- }
-
- str = String(str);
-
- var size = str.length;
- var i = pos ? Number(pos) : 0;
-
- if (Number.isNaN(i)) {
- i = 0;
- }
-
- if (i < 0 || i >= size) {
- return undefined;
- }
-
- var first = str.charCodeAt(i);
-
- if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {
- var second = str.charCodeAt(i + 1);
-
- if (second >= 0xDC00 && second <= 0xDFFF) {
- return ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;
- }
- }
-
- return first;
-};
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json
deleted file mode 100644
index e1ac1e25c6..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "code-point-at@^1.0.0",
- "_id": "code-point-at@1.1.0",
- "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "_location": "/npmlog/gauge/string-width/code-point-at",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "code-point-at@^1.0.0",
- "name": "code-point-at",
- "escapedName": "code-point-at",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npmlog/gauge/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "_shrinkwrap": null,
- "_spec": "code-point-at@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/code-point-at/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 `String#codePointAt()` ponyfill",
- "devDependencies": {
- "ava": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/code-point-at#readme",
- "keywords": [
- "es2015",
- "ponyfill",
- "polyfill",
- "shim",
- "string",
- "str",
- "code",
- "point",
- "at",
- "codepoint",
- "unicode"
- ],
- "license": "MIT",
- "name": "code-point-at",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/code-point-at.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md
deleted file mode 100644
index 4c97730e69..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# code-point-at [![Build Status](https://travis-ci.org/sindresorhus/code-point-at.svg?branch=master)](https://travis-ci.org/sindresorhus/code-point-at)
-
-> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save code-point-at
-```
-
-
-## Usage
-
-```js
-var codePointAt = require('code-point-at');
-
-codePointAt('šŸ“');
-//=> 128052
-
-codePointAt('abc', 2);
-//=> 99
-```
-
-## API
-
-### codePointAt(input, [position])
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index 79be4b9cb8..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = Number.isNaN || function (x) {
- return x !== x;
-};
diff --git a/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 b/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
deleted file mode 100644
index fc17ba2bd6..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "number-is-nan@^1.0.0",
- "_id": "number-is-nan@1.0.1",
- "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "_location": "/npmlog/gauge/string-width/is-fullwidth-code-point/number-is-nan",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "number-is-nan@^1.0.0",
- "name": "number-is-nan",
- "escapedName": "number-is-nan",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npmlog/gauge/string-width/is-fullwidth-code-point"
- ],
- "_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "_shasum": "097b602b53422a522c1afb8790318336941a011d",
- "_shrinkwrap": null,
- "_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/number-is-nan/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 Number.isNaN() ponyfill",
- "devDependencies": {
- "ava": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/number-is-nan#readme",
- "keywords": [
- "es2015",
- "ecmascript",
- "ponyfill",
- "polyfill",
- "shim",
- "number",
- "is",
- "nan",
- "not"
- ],
- "license": "MIT",
- "name": "number-is-nan",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/number-is-nan.git"
- },
- "scripts": {
- "test": "ava"
- },
- "version": "1.0.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 2463508712..0000000000
--- a/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
+++ /dev/null
@@ -1,28 +0,0 @@
-# number-is-nan [![Build Status](https://travis-ci.org/sindresorhus/number-is-nan.svg?branch=master)](https://travis-ci.org/sindresorhus/number-is-nan)
-
-> ES2015 [`Number.isNaN()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save number-is-nan
-```
-
-
-## Usage
-
-```js
-var numberIsNan = require('number-is-nan');
-
-numberIsNan(NaN);
-//=> true
-
-numberIsNan('unicorn');
-//=> false
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index f138d7677a..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^1.0.0",
- "_id": "is-fullwidth-code-point@1.0.0",
- "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "_location": "/npmlog/gauge/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^1.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/npmlog/gauge/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "_shrinkwrap": null,
- "_spec": "is-fullwidth-code-point@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "deprecated": false,
- "description": "Check if the character represented by a given Unicode code point is fullwidth",
- "devDependencies": {
- "ava": "0.0.4",
- "code-point-at": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
- "keywords": [
- "fullwidth",
- "full-width",
- "full",
- "width",
- "unicode",
- "character",
- "char",
- "string",
- "str",
- "codepoint",
- "code",
- "point",
- "is",
- "detect",
- "check"
- ],
- "license": "MIT",
- "name": "is-fullwidth-code-point",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json
deleted file mode 100644
index 87284bb270..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "_from": "string-width@^1.0.1",
- "_id": "string-width@1.0.2",
- "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "_location": "/npmlog/gauge/string-width",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string-width@^1.0.1",
- "name": "string-width",
- "escapedName": "string-width",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/npmlog/gauge",
- "/npmlog/gauge/wide-align"
- ],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "_shrinkwrap": null,
- "_spec": "string-width@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog/node_modules/gauge",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/string-width/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "deprecated": false,
- "description": "Get the visual width of a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/string-width#readme",
- "keywords": [
- "string",
- "str",
- "character",
- "char",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "license": "MIT",
- "name": "string-width",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/string-width.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index b98332e57e..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/npmlog/gauge/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/npmlog/gauge/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json
deleted file mode 100644
index 153e8df658..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,102 +0,0 @@
-{
- "_from": "strip-ansi@^3.0.1",
- "_id": "strip-ansi@3.0.1",
- "_inBundle": false,
- "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "_location": "/npmlog/gauge/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^3.0.1",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^3.0.1",
- "saveSpec": null,
- "fetchSpec": "^3.0.1"
- },
- "_requiredBy": [
- "/npmlog/gauge",
- "/npmlog/gauge/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "_spec": "strip-ansi@^3.0.1",
- "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/strip-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "Strip ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/strip-ansi#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Boy Nicolai Appelman",
- "email": "joshua@jbna.nl",
- "url": "jbna.nl"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "strip-ansi",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/strip-ansi.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json
deleted file mode 100644
index 517b410d91..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "wide-align@^1.1.0",
- "_id": "wide-align@1.1.2",
- "_inBundle": false,
- "_integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
- "_location": "/npmlog/gauge/wide-align",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "wide-align@^1.1.0",
- "name": "wide-align",
- "escapedName": "wide-align",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/npmlog/gauge"
- ],
- "_resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
- "_shasum": "571e0f1b0604636ebc0dfc21b0339bbe31341710",
- "_spec": "wide-align@^1.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/npmlog/node_modules/gauge",
- "author": {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org",
- "url": "http://re-becca.org/"
- },
- "bugs": {
- "url": "https://github.com/iarna/wide-align/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "string-width": "^1.0.2"
- },
- "deprecated": false,
- "description": "A wide-character aware text alignment function for use on the console or with fixed width fonts.",
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "files": [
- "align.js"
- ],
- "homepage": "https://github.com/iarna/wide-align#readme",
- "keywords": [
- "wide",
- "double",
- "unicode",
- "cjkv",
- "pad",
- "align"
- ],
- "license": "ISC",
- "main": "align.js",
- "name": "wide-align",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/wide-align.git"
- },
- "scripts": {
- "test": "tap --coverage test/*.js",
- "version": "perl -pi -e 's/^( \"version\": $ENV{npm_config_node_version}\").*?\",/$1abc\",/' package-lock.json ; git add package-lock.json"
- },
- "version": "1.1.2"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json b/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
deleted file mode 100644
index 7a9b397581..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "gauge@~2.7.1",
- "_id": "gauge@2.7.4",
- "_integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "_location": "/npmlog/gauge",
- "_phantomChildren": {
- "strip-ansi": "3.0.1"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "gauge@~2.7.1",
- "name": "gauge",
- "escapedName": "gauge",
- "rawSpec": "~2.7.1",
- "saveSpec": null,
- "fetchSpec": "~2.7.1"
- },
- "_requiredBy": [
- "/npmlog"
- ],
- "_resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "_shasum": "2c03405c7538c39d7eb37b317022e325fb018bf7",
- "_shrinkwrap": null,
- "_spec": "gauge@~2.7.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog",
- "author": {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/iarna/gauge/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- },
- "deprecated": false,
- "description": "A terminal based horizontal guage",
- "devDependencies": {
- "readable-stream": "^2.0.6",
- "require-inject": "^1.4.0",
- "standard": "^7.1.2",
- "tap": "^5.7.2",
- "through2": "^2.0.0"
- },
- "files": [
- "base-theme.js",
- "CHANGELOG.md",
- "error.js",
- "has-color.js",
- "index.js",
- "LICENSE",
- "package.json",
- "plumbing.js",
- "process.js",
- "progress-bar.js",
- "README.md",
- "render-template.js",
- "set-immediate.js",
- "set-interval.js",
- "spin.js",
- "template-item.js",
- "theme-set.js",
- "themes.js",
- "wide-truncate.js"
- ],
- "homepage": "https://github.com/iarna/gauge",
- "keywords": [
- "progressbar",
- "progress",
- "gauge"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "gauge",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/iarna/gauge.git"
- },
- "scripts": {
- "prepublish": "rm -f *~",
- "test": "standard && tap test/*.js --coverage"
- },
- "version": "2.7.4"
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md b/deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md
deleted file mode 100644
index 03bf591923..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/set-blocking/CHANGELOG.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="2.0.0"></a>
-# [2.0.0](https://github.com/yargs/set-blocking/compare/v1.0.0...v2.0.0) (2016-05-17)
-
-
-### Features
-
-* add an isTTY check ([#3](https://github.com/yargs/set-blocking/issues/3)) ([66ce277](https://github.com/yargs/set-blocking/commit/66ce277))
-
-
-### BREAKING CHANGES
-
-* stdio/stderr will not be set to blocking if isTTY === false
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2016-05-14)
-
-
-### Features
-
-* implemented shim for stream._handle.setBlocking ([6bde0c0](https://github.com/yargs/set-blocking/commit/6bde0c0))
diff --git a/deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt b/deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt
deleted file mode 100644
index 836440bef7..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/set-blocking/LICENSE.txt
+++ /dev/null
@@ -1,14 +0,0 @@
-Copyright (c) 2016, 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/npmlog/node_modules/set-blocking/README.md b/deps/npm/node_modules/npmlog/node_modules/set-blocking/README.md
deleted file mode 100644
index e93b4202b5..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/set-blocking/README.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# set-blocking
-
-[![Build Status](https://travis-ci.org/yargs/set-blocking.svg)](https://travis-ci.org/yargs/set-blocking)
-[![NPM version](https://img.shields.io/npm/v/set-blocking.svg)](https://www.npmjs.com/package/set-blocking)
-[![Coverage Status](https://coveralls.io/repos/yargs/set-blocking/badge.svg?branch=)](https://coveralls.io/r/yargs/set-blocking?branch=master)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-set blocking `stdio` and `stderr` ensuring that terminal output does not truncate.
-
-```js
-const setBlocking = require('set-blocking')
-setBlocking(true)
-console.log(someLargeStringToOutput)
-```
-
-## Historical Context/Word of Warning
-
-This was created as a shim to address the bug discussed in [node #6456](https://github.com/nodejs/node/issues/6456). This bug crops up on
-newer versions of Node.js (`0.12+`), truncating terminal output.
-
-You should be mindful of the side-effects caused by using `set-blocking`:
-
-* if your module sets blocking to `true`, it will effect other modules
- consuming your library. In [yargs](https://github.com/yargs/yargs/blob/master/yargs.js#L653) we only call
- `setBlocking(true)` once we already know we are about to call `process.exit(code)`.
-* this patch will not apply to subprocesses spawned with `isTTY = true`, this is
- the [default `spawn()` behavior](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options).
-
-## License
-
-ISC
diff --git a/deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js b/deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js
deleted file mode 100644
index 6f78774bb6..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/set-blocking/index.js
+++ /dev/null
@@ -1,7 +0,0 @@
-module.exports = function (blocking) {
- [process.stdout, process.stderr].forEach(function (stream) {
- if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') {
- stream._handle.setBlocking(blocking)
- }
- })
-}
diff --git a/deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json b/deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json
deleted file mode 100644
index 3b0404fcc7..0000000000
--- a/deps/npm/node_modules/npmlog/node_modules/set-blocking/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "set-blocking@~2.0.0",
- "_id": "set-blocking@2.0.0",
- "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
- "_location": "/npmlog/set-blocking",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "set-blocking@~2.0.0",
- "name": "set-blocking",
- "escapedName": "set-blocking",
- "rawSpec": "~2.0.0",
- "saveSpec": null,
- "fetchSpec": "~2.0.0"
- },
- "_requiredBy": [
- "/npmlog"
- ],
- "_resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7",
- "_shrinkwrap": null,
- "_spec": "set-blocking@~2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/npmlog",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/yargs/set-blocking/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "set blocking stdio and stderr ensuring that terminal output does not truncate",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.9",
- "mocha": "^2.4.5",
- "nyc": "^6.4.4",
- "standard": "^7.0.1",
- "standard-version": "^2.2.1"
- },
- "files": [
- "index.js",
- "LICENSE.txt"
- ],
- "homepage": "https://github.com/yargs/set-blocking#readme",
- "keywords": [
- "flush",
- "terminal",
- "blocking",
- "shim",
- "stdio",
- "stderr"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "set-blocking",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/yargs/set-blocking.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "test": "nyc mocha ./test/*.js",
- "version": "standard-version"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/npmlog/package.json b/deps/npm/node_modules/npmlog/package.json
index 901eedaba9..c4a470a155 100644
--- a/deps/npm/node_modules/npmlog/package.json
+++ b/deps/npm/node_modules/npmlog/package.json
@@ -1,14 +1,16 @@
{
+ "_args": [
+ [
+ "npmlog@4.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "npmlog@4.1.2",
"_id": "npmlog@4.1.2",
"_inBundle": false,
"_integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"_location": "/npmlog",
- "_phantomChildren": {
- "aproba": "1.1.2",
- "has-unicode": "2.0.1",
- "readable-stream": "2.3.2"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
@@ -20,14 +22,12 @@
"fetchSpec": "4.1.2"
},
"_requiredBy": [
- "#USER",
"/",
"/node-gyp",
"/npm-registry-client"
],
"_resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "_shasum": "08a7f2a8bf734604779a9efa4ad5cc717abb954b",
- "_spec": "npmlog@4.1.2",
+ "_spec": "4.1.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -37,14 +37,12 @@
"bugs": {
"url": "https://github.com/npm/npmlog/issues"
},
- "bundleDependencies": false,
"dependencies": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
"gauge": "~2.7.3",
"set-blocking": "~2.0.0"
},
- "deprecated": false,
"description": "logger for npm",
"devDependencies": {
"standard": "~7.1.2",
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js b/deps/npm/node_modules/number-is-nan/index.js
index 79be4b9cb8..79be4b9cb8 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/index.js
+++ b/deps/npm/node_modules/number-is-nan/index.js
diff --git a/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 b/deps/npm/node_modules/number-is-nan/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/number-is-nan/license
diff --git a/deps/npm/node_modules/number-is-nan/package.json b/deps/npm/node_modules/number-is-nan/package.json
new file mode 100644
index 0000000000..b469c48d08
--- /dev/null
+++ b/deps/npm/node_modules/number-is-nan/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "number-is-nan@^1.0.0",
+ "_id": "number-is-nan@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+ "_location": "/number-is-nan",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "number-is-nan@^1.0.0",
+ "name": "number-is-nan",
+ "escapedName": "number-is-nan",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/cli-table2/is-fullwidth-code-point",
+ "/gauge/is-fullwidth-code-point",
+ "/tacks/is-fullwidth-code-point",
+ "/wide-align/is-fullwidth-code-point",
+ "/wrap-ansi/is-fullwidth-code-point"
+ ],
+ "_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "_shasum": "097b602b53422a522c1afb8790318336941a011d",
+ "_spec": "number-is-nan@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-table2/node_modules/is-fullwidth-code-point",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/number-is-nan/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "ES2015 Number.isNaN() ponyfill",
+ "devDependencies": {
+ "ava": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/number-is-nan#readme",
+ "keywords": [
+ "es2015",
+ "ecmascript",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "number",
+ "is",
+ "nan",
+ "not"
+ ],
+ "license": "MIT",
+ "name": "number-is-nan",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/number-is-nan.git"
+ },
+ "scripts": {
+ "test": "ava"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md b/deps/npm/node_modules/number-is-nan/readme.md
index 2463508712..2463508712 100644
--- a/deps/npm/node_modules/cli-table2/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/readme.md
+++ b/deps/npm/node_modules/number-is-nan/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE b/deps/npm/node_modules/oauth-sign/LICENSE
index a4a9aee0c2..a4a9aee0c2 100644
--- a/deps/npm/node_modules/request/node_modules/oauth-sign/LICENSE
+++ b/deps/npm/node_modules/oauth-sign/LICENSE
diff --git a/deps/npm/node_modules/oauth-sign/README.md b/deps/npm/node_modules/oauth-sign/README.md
new file mode 100644
index 0000000000..af496148e4
--- /dev/null
+++ b/deps/npm/node_modules/oauth-sign/README.md
@@ -0,0 +1,4 @@
+oauth-sign
+==========
+
+OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.
diff --git a/deps/npm/node_modules/oauth-sign/index.js b/deps/npm/node_modules/oauth-sign/index.js
new file mode 100644
index 0000000000..4c20674c79
--- /dev/null
+++ b/deps/npm/node_modules/oauth-sign/index.js
@@ -0,0 +1,135 @@
+var crypto = require('crypto')
+ , qs = require('querystring')
+ ;
+
+function sha1 (key, body) {
+ return crypto.createHmac('sha1', key).update(body).digest('base64')
+}
+
+function rsa (key, body) {
+ return crypto.createSign("RSA-SHA1").update(body).sign(key, 'base64');
+}
+
+function rfc3986 (str) {
+ return encodeURIComponent(str)
+ .replace(/!/g,'%21')
+ .replace(/\*/g,'%2A')
+ .replace(/\(/g,'%28')
+ .replace(/\)/g,'%29')
+ .replace(/'/g,'%27')
+ ;
+}
+
+// Maps object to bi-dimensional array
+// Converts { foo: 'A', bar: [ 'b', 'B' ]} to
+// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ]
+function map (obj) {
+ var key, val, arr = []
+ for (key in obj) {
+ val = obj[key]
+ if (Array.isArray(val))
+ for (var i = 0; i < val.length; i++)
+ arr.push([key, val[i]])
+ else if (typeof val === "object")
+ for (var prop in val)
+ arr.push([key + '[' + prop + ']', val[prop]]);
+ else
+ arr.push([key, val])
+ }
+ return arr
+}
+
+// Compare function for sort
+function compare (a, b) {
+ return a > b ? 1 : a < b ? -1 : 0
+}
+
+function generateBase (httpMethod, base_uri, params) {
+ // adapted from https://dev.twitter.com/docs/auth/oauth and
+ // https://dev.twitter.com/docs/auth/creating-signature
+
+ // Parameter normalization
+ // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2
+ var normalized = map(params)
+ // 1. First, the name and value of each parameter are encoded
+ .map(function (p) {
+ return [ rfc3986(p[0]), rfc3986(p[1] || '') ]
+ })
+ // 2. The parameters are sorted by name, using ascending byte value
+ // ordering. If two or more parameters share the same name, they
+ // are sorted by their value.
+ .sort(function (a, b) {
+ return compare(a[0], b[0]) || compare(a[1], b[1])
+ })
+ // 3. The name of each parameter is concatenated to its corresponding
+ // value using an "=" character (ASCII code 61) as a separator, even
+ // if the value is empty.
+ .map(function (p) { return p.join('=') })
+ // 4. The sorted name/value pairs are concatenated together into a
+ // single string by using an "&" character (ASCII code 38) as
+ // separator.
+ .join('&')
+
+ var base = [
+ rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'),
+ rfc3986(base_uri),
+ rfc3986(normalized)
+ ].join('&')
+
+ return base
+}
+
+function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) {
+ var base = generateBase(httpMethod, base_uri, params)
+ var key = [
+ consumer_secret || '',
+ token_secret || ''
+ ].map(rfc3986).join('&')
+
+ return sha1(key, base)
+}
+
+function rsasign (httpMethod, base_uri, params, private_key, token_secret) {
+ var base = generateBase(httpMethod, base_uri, params)
+ var key = private_key || ''
+
+ return rsa(key, base)
+}
+
+function plaintext (consumer_secret, token_secret) {
+ var key = [
+ consumer_secret || '',
+ token_secret || ''
+ ].map(rfc3986).join('&')
+
+ return key
+}
+
+function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) {
+ var method
+ var skipArgs = 1
+
+ switch (signMethod) {
+ case 'RSA-SHA1':
+ method = rsasign
+ break
+ case 'HMAC-SHA1':
+ method = hmacsign
+ break
+ case 'PLAINTEXT':
+ method = plaintext
+ skipArgs = 4
+ break
+ default:
+ throw new Error("Signature method not supported: " + signMethod)
+ }
+
+ return method.apply(null, [].slice.call(arguments, skipArgs))
+}
+
+exports.hmacsign = hmacsign
+exports.rsasign = rsasign
+exports.plaintext = plaintext
+exports.sign = sign
+exports.rfc3986 = rfc3986
+exports.generateBase = generateBase
diff --git a/deps/npm/node_modules/oauth-sign/package.json b/deps/npm/node_modules/oauth-sign/package.json
new file mode 100644
index 0000000000..cb5ee70f76
--- /dev/null
+++ b/deps/npm/node_modules/oauth-sign/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "oauth-sign@~0.8.2",
+ "_id": "oauth-sign@0.8.2",
+ "_inBundle": false,
+ "_integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
+ "_location": "/oauth-sign",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "oauth-sign@~0.8.2",
+ "name": "oauth-sign",
+ "escapedName": "oauth-sign",
+ "rawSpec": "~0.8.2",
+ "saveSpec": null,
+ "fetchSpec": "~0.8.2"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
+ "_shasum": "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43",
+ "_spec": "oauth-sign@~0.8.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Mikeal Rogers",
+ "email": "mikeal.rogers@gmail.com",
+ "url": "http://www.futurealoof.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mikeal/oauth-sign/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.",
+ "devDependencies": {},
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/mikeal/oauth-sign#readme",
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "name": "oauth-sign",
+ "optionalDependencies": {},
+ "repository": {
+ "url": "git+https://github.com/mikeal/oauth-sign.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "0.8.2"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js b/deps/npm/node_modules/object-assign/index.js
index 0930cf8890..0930cf8890 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/index.js
+++ b/deps/npm/node_modules/object-assign/index.js
diff --git a/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 b/deps/npm/node_modules/object-assign/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/object-assign/license
diff --git a/deps/npm/node_modules/object-assign/package.json b/deps/npm/node_modules/object-assign/package.json
new file mode 100644
index 0000000000..ad356bfb59
--- /dev/null
+++ b/deps/npm/node_modules/object-assign/package.json
@@ -0,0 +1,79 @@
+{
+ "_from": "object-assign@^4.1.0",
+ "_id": "object-assign@4.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
+ "_location": "/object-assign",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "object-assign@^4.1.0",
+ "name": "object-assign",
+ "escapedName": "object-assign",
+ "rawSpec": "^4.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.1.0"
+ },
+ "_requiredBy": [
+ "/del",
+ "/fbjs",
+ "/file-entry-cache",
+ "/gauge",
+ "/globby",
+ "/prop-types"
+ ],
+ "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863",
+ "_spec": "object-assign@^4.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/object-assign/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "ES2015 `Object.assign()` ponyfill",
+ "devDependencies": {
+ "ava": "^0.16.0",
+ "lodash": "^4.16.4",
+ "matcha": "^0.7.0",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/object-assign#readme",
+ "keywords": [
+ "object",
+ "assign",
+ "extend",
+ "properties",
+ "es2015",
+ "ecmascript",
+ "harmony",
+ "ponyfill",
+ "prollyfill",
+ "polyfill",
+ "shim",
+ "browser"
+ ],
+ "license": "MIT",
+ "name": "object-assign",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/object-assign.git"
+ },
+ "scripts": {
+ "bench": "matcha bench.js",
+ "test": "xo && ava"
+ },
+ "version": "4.1.1"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/readme.md b/deps/npm/node_modules/object-assign/readme.md
index 1be09d35c7..1be09d35c7 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/readme.md
+++ b/deps/npm/node_modules/object-assign/readme.md
diff --git a/deps/npm/node_modules/once/package.json b/deps/npm/node_modules/once/package.json
index 24a8adc6e0..63ac415a1f 100644
--- a/deps/npm/node_modules/once/package.json
+++ b/deps/npm/node_modules/once/package.json
@@ -1,54 +1,54 @@
{
- "_from": "once@~1.4.0",
+ "_args": [
+ [
+ "once@1.4.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "once@1.4.0",
"_id": "once@1.4.0",
+ "_inBundle": false,
"_integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"_location": "/once",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "once@~1.4.0",
+ "raw": "once@1.4.0",
"name": "once",
"escapedName": "once",
- "rawSpec": "~1.4.0",
+ "rawSpec": "1.4.0",
"saveSpec": null,
- "fetchSpec": "~1.4.0"
+ "fetchSpec": "1.4.0"
},
"_requiredBy": [
"/",
+ "/end-of-stream",
"/glob",
"/inflight",
- "/mississippi/end-of-stream",
- "/mississippi/pump",
+ "/npm-profile/mississippi/pump",
+ "/npm-profile/pump",
"/npm-registry-client",
- "/pacote/tar-fs/pump",
- "/pacote/tar-fs/pump/end-of-stream",
- "/pacote/tar-stream/end-of-stream",
+ "/npm-registry-fetch/pump",
+ "/pump",
+ "/pumpify/pump",
"/read-package-tree",
- "/readdir-scoped-modules",
- "/standard/eslint/file-entry-cache/flat-cache/del/globby/glob",
- "/standard/eslint/glob",
- "/standard/eslint/inquirer/run-async"
+ "/readdir-scoped-modules"
],
"_resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "_shasum": "583b1aa775961d4b113ac17d9c50baef9dd76bd1",
- "_shrinkwrap": null,
- "_spec": "once@~1.4.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.4.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/once/issues"
},
- "bundleDependencies": false,
"dependencies": {
"wrappy": "1"
},
- "deprecated": false,
"description": "Run a function exactly one time",
"devDependencies": {
"tap": "^7.0.1"
@@ -69,8 +69,6 @@
"license": "ISC",
"main": "once.js",
"name": "once",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/once.git"
diff --git a/deps/npm/node_modules/opener/package.json b/deps/npm/node_modules/opener/package.json
index fc9b62c2e2..1842d51486 100644
--- a/deps/npm/node_modules/opener/package.json
+++ b/deps/npm/node_modules/opener/package.json
@@ -1,28 +1,33 @@
{
- "_from": "opener@~1.4.3",
+ "_args": [
+ [
+ "opener@1.4.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "opener@1.4.3",
"_id": "opener@1.4.3",
+ "_inBundle": false,
"_integrity": "sha1-XG2ixdflgx6P+jlklQ+NZnSskLg=",
"_location": "/opener",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "opener@~1.4.3",
+ "raw": "opener@1.4.3",
"name": "opener",
"escapedName": "opener",
- "rawSpec": "~1.4.3",
+ "rawSpec": "1.4.3",
"saveSpec": null,
- "fetchSpec": "~1.4.3"
+ "fetchSpec": "1.4.3"
},
"_requiredBy": [
"/",
"/tap"
],
"_resolved": "https://registry.npmjs.org/opener/-/opener-1.4.3.tgz",
- "_shasum": "5c6da2c5d7e5831e8ffa3964950f8d6674ac90b8",
- "_shrinkwrap": null,
- "_spec": "opener@~1.4.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.4.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Domenic Denicola",
"email": "d@domenic.me",
@@ -34,9 +39,6 @@
"bugs": {
"url": "https://github.com/domenic/opener/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Opens stuff, like webpages and files and executables, cross-platform",
"devDependencies": {
"jshint": "^2.6.3"
@@ -48,8 +50,6 @@
"license": "(WTFPL OR MIT)",
"main": "opener.js",
"name": "opener",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/domenic/opener.git"
diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/index.js b/deps/npm/node_modules/os-homedir/index.js
index 33066166fe..33066166fe 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-homedir/index.js
+++ b/deps/npm/node_modules/os-homedir/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/license b/deps/npm/node_modules/os-homedir/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/path-type/license
+++ b/deps/npm/node_modules/os-homedir/license
diff --git a/deps/npm/node_modules/os-homedir/package.json b/deps/npm/node_modules/os-homedir/package.json
new file mode 100644
index 0000000000..6693be307c
--- /dev/null
+++ b/deps/npm/node_modules/os-homedir/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "os-homedir@^1.0.0",
+ "_id": "os-homedir@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "_location": "/os-homedir",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "os-homedir@^1.0.0",
+ "name": "os-homedir",
+ "escapedName": "os-homedir",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/osenv",
+ "/tap"
+ ],
+ "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+ "_shasum": "ffbc4988336e0e833de0c168c7ef152121aa7fb3",
+ "_spec": "os-homedir@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/osenv",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/os-homedir/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Node.js 4 `os.homedir()` ponyfill",
+ "devDependencies": {
+ "ava": "*",
+ "path-exists": "^2.0.0",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/os-homedir#readme",
+ "keywords": [
+ "builtin",
+ "core",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "os",
+ "homedir",
+ "home",
+ "dir",
+ "directory",
+ "folder",
+ "user",
+ "path"
+ ],
+ "license": "MIT",
+ "name": "os-homedir",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/os-homedir.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md b/deps/npm/node_modules/os-homedir/readme.md
index 856ae615b0..856ae615b0 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-homedir/readme.md
+++ b/deps/npm/node_modules/os-homedir/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/index.js b/deps/npm/node_modules/os-locale/index.js
index 1ada7a4949..1ada7a4949 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/index.js
+++ b/deps/npm/node_modules/os-locale/index.js
diff --git a/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 b/deps/npm/node_modules/os-locale/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/os-locale/license
diff --git a/deps/npm/node_modules/os-locale/package.json b/deps/npm/node_modules/os-locale/package.json
new file mode 100644
index 0000000000..3777aec6a3
--- /dev/null
+++ b/deps/npm/node_modules/os-locale/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "os-locale@^2.0.0",
+ "_id": "os-locale@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==",
+ "_location": "/os-locale",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "os-locale@^2.0.0",
+ "name": "os-locale",
+ "escapedName": "os-locale",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz",
+ "_shasum": "42bc2900a6b5b8bd17376c8e882b65afccf24bf2",
+ "_spec": "os-locale@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/os-locale/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "execa": "^0.7.0",
+ "lcid": "^1.0.0",
+ "mem": "^1.1.0"
+ },
+ "deprecated": false,
+ "description": "Get the system locale",
+ "devDependencies": {
+ "ava": "*",
+ "import-fresh": "^2.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/os-locale#readme",
+ "keywords": [
+ "locale",
+ "lang",
+ "language",
+ "system",
+ "os",
+ "string",
+ "str",
+ "user",
+ "country",
+ "id",
+ "identifier",
+ "region"
+ ],
+ "license": "MIT",
+ "name": "os-locale",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/os-locale.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/readme.md b/deps/npm/node_modules/os-locale/readme.md
index 7c80d33589..7c80d33589 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/readme.md
+++ b/deps/npm/node_modules/os-locale/readme.md
diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js b/deps/npm/node_modules/os-tmpdir/index.js
index 2077b1ce74..2077b1ce74 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js
+++ b/deps/npm/node_modules/os-tmpdir/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/os-tmpdir/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ b/deps/npm/node_modules/os-tmpdir/license
diff --git a/deps/npm/node_modules/os-tmpdir/package.json b/deps/npm/node_modules/os-tmpdir/package.json
new file mode 100644
index 0000000000..1e8e86b946
--- /dev/null
+++ b/deps/npm/node_modules/os-tmpdir/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "os-tmpdir@^1.0.0",
+ "_id": "os-tmpdir@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
+ "_location": "/os-tmpdir",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "os-tmpdir@^1.0.0",
+ "name": "os-tmpdir",
+ "escapedName": "os-tmpdir",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/osenv",
+ "/tmp"
+ ],
+ "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+ "_shasum": "bbe67406c79aa85c5cfec766fe5734555dfa1274",
+ "_spec": "os-tmpdir@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/osenv",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/os-tmpdir/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Node.js os.tmpdir() ponyfill",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/os-tmpdir#readme",
+ "keywords": [
+ "built-in",
+ "core",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "os",
+ "tmpdir",
+ "tempdir",
+ "tmp",
+ "temp",
+ "dir",
+ "directory",
+ "env",
+ "environment"
+ ],
+ "license": "MIT",
+ "name": "os-tmpdir",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/os-tmpdir.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md b/deps/npm/node_modules/os-tmpdir/readme.md
index c09f7ed8d5..c09f7ed8d5 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/readme.md
+++ b/deps/npm/node_modules/os-tmpdir/readme.md
diff --git a/deps/npm/node_modules/osenv/.npmignore b/deps/npm/node_modules/osenv/.npmignore
deleted file mode 100644
index 8c23deeb34..0000000000
--- a/deps/npm/node_modules/osenv/.npmignore
+++ /dev/null
@@ -1,13 +0,0 @@
-*.swp
-.*.swp
-
-.DS_Store
-*~
-.project
-.settings
-npm-debug.log
-coverage.html
-.idea
-lib-cov
-
-node_modules
diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/package.json b/deps/npm/node_modules/osenv/node_modules/os-homedir/package.json
deleted file mode 100644
index 44e4ce6d8e..0000000000
--- a/deps/npm/node_modules/osenv/node_modules/os-homedir/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "os-homedir@^1.0.0",
- "_id": "os-homedir@1.0.2",
- "_integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
- "_location": "/osenv/os-homedir",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "os-homedir@^1.0.0",
- "name": "os-homedir",
- "escapedName": "os-homedir",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/osenv"
- ],
- "_resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "_shasum": "ffbc4988336e0e833de0c168c7ef152121aa7fb3",
- "_shrinkwrap": null,
- "_spec": "os-homedir@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/osenv",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/os-homedir/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Node.js 4 `os.homedir()` ponyfill",
- "devDependencies": {
- "ava": "*",
- "path-exists": "^2.0.0",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/os-homedir#readme",
- "keywords": [
- "builtin",
- "core",
- "ponyfill",
- "polyfill",
- "shim",
- "os",
- "homedir",
- "home",
- "dir",
- "directory",
- "folder",
- "user",
- "path"
- ],
- "license": "MIT",
- "name": "os-homedir",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/os-homedir.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json b/deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json
deleted file mode 100644
index bcfc64c49f..0000000000
--- a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "os-tmpdir@^1.0.0",
- "_id": "os-tmpdir@1.0.2",
- "_integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "_location": "/osenv/os-tmpdir",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "os-tmpdir@^1.0.0",
- "name": "os-tmpdir",
- "escapedName": "os-tmpdir",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/osenv"
- ],
- "_resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
- "_shasum": "bbe67406c79aa85c5cfec766fe5734555dfa1274",
- "_shrinkwrap": null,
- "_spec": "os-tmpdir@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/osenv",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/os-tmpdir/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Node.js os.tmpdir() ponyfill",
- "devDependencies": {
- "ava": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/os-tmpdir#readme",
- "keywords": [
- "built-in",
- "core",
- "ponyfill",
- "polyfill",
- "shim",
- "os",
- "tmpdir",
- "tempdir",
- "tmp",
- "temp",
- "dir",
- "directory",
- "env",
- "environment"
- ],
- "license": "MIT",
- "name": "os-tmpdir",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/os-tmpdir.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/osenv/package.json b/deps/npm/node_modules/osenv/package.json
index 469278d21d..ed6d0d4c48 100644
--- a/deps/npm/node_modules/osenv/package.json
+++ b/deps/npm/node_modules/osenv/package.json
@@ -1,18 +1,25 @@
{
- "_from": "osenv@~0.1.4",
- "_id": "osenv@0.1.4",
- "_integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=",
+ "_args": [
+ [
+ "osenv@0.1.5",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "osenv@0.1.5",
+ "_id": "osenv@0.1.5",
+ "_inBundle": false,
+ "_integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"_location": "/osenv",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "osenv@~0.1.4",
+ "raw": "osenv@0.1.5",
"name": "osenv",
"escapedName": "osenv",
- "rawSpec": "~0.1.4",
+ "rawSpec": "0.1.5",
"saveSpec": null,
- "fetchSpec": "~0.1.4"
+ "fetchSpec": "0.1.5"
},
"_requiredBy": [
"/",
@@ -21,33 +28,31 @@
"/npm-package-arg",
"/pacote"
],
- "_resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz",
- "_shasum": "42fe6d5953df06c8064be6f176c3d05aaaa34644",
- "_shrinkwrap": null,
- "_spec": "osenv@~0.1.4",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "_spec": "0.1.5",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/osenv/issues"
},
- "bundleDependencies": false,
"dependencies": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.0"
},
- "deprecated": false,
"description": "Look up environment settings specific to different operating systems",
"devDependencies": {
- "tap": "^8.0.1"
+ "tap": "^11.1.0"
},
"directories": {
"test": "test"
},
+ "files": [
+ "osenv.js"
+ ],
"homepage": "https://github.com/npm/osenv#readme",
"keywords": [
"environment",
@@ -61,14 +66,15 @@
"license": "ISC",
"main": "osenv.js",
"name": "osenv",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/osenv.git"
},
"scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
"test": "tap test/*.js"
},
- "version": "0.1.4"
+ "version": "0.1.5"
}
diff --git a/deps/npm/node_modules/osenv/test/unix.js b/deps/npm/node_modules/osenv/test/unix.js
deleted file mode 100644
index 94d4aaafb4..0000000000
--- a/deps/npm/node_modules/osenv/test/unix.js
+++ /dev/null
@@ -1,71 +0,0 @@
-// only run this test on windows
-// pretending to be another platform is too hacky, since it breaks
-// how the underlying system looks up module paths and runs
-// child processes, and all that stuff is cached.
-var tap = require('tap')
-
-
-if (process.platform === 'win32') {
- tap.plan(0, 'Skip unix tests, this is not unix')
- process.exit(0)
-}
-
-// like unix, but funny
-process.env.USER = 'sirUser'
-process.env.HOME = '/home/sirUser'
-process.env.HOSTNAME = 'my-machine'
-process.env.TMPDIR = '/tmpdir'
-process.env.TMP = '/tmp'
-process.env.TEMP = '/temp'
-process.env.PATH = '/opt/local/bin:/usr/local/bin:/usr/bin/:bin'
-process.env.PS1 = '(o_o) $ '
-process.env.EDITOR = 'edit'
-process.env.VISUAL = 'visualedit'
-process.env.SHELL = 'zsh'
-
-tap.test('basic unix sanity test', function (t) {
- var osenv = require('../osenv.js')
-
- t.equal(osenv.user(), process.env.USER)
- t.equal(osenv.home(), process.env.HOME)
- t.equal(osenv.hostname(), process.env.HOSTNAME)
- t.same(osenv.path(), process.env.PATH.split(':'))
- t.equal(osenv.prompt(), process.env.PS1)
- t.equal(osenv.tmpdir(), process.env.TMPDIR)
-
- // mildly evil, but it's for a test.
- process.env.TMPDIR = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.tmpdir(), process.env.TMP)
-
- process.env.TMP = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.tmpdir(), process.env.TEMP)
-
- process.env.TEMP = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- osenv.home = function () { return null }
- t.equal(osenv.tmpdir(), '/tmp')
-
- t.equal(osenv.editor(), 'edit')
- process.env.EDITOR = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.editor(), 'visualedit')
-
- process.env.VISUAL = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.editor(), 'vi')
-
- t.equal(osenv.shell(), 'zsh')
- process.env.SHELL = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.shell(), 'bash')
-
- t.end()
-})
diff --git a/deps/npm/node_modules/osenv/test/windows.js b/deps/npm/node_modules/osenv/test/windows.js
deleted file mode 100644
index c9d837a32d..0000000000
--- a/deps/npm/node_modules/osenv/test/windows.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// only run this test on windows
-// pretending to be another platform is too hacky, since it breaks
-// how the underlying system looks up module paths and runs
-// child processes, and all that stuff is cached.
-if (process.platform !== 'win32') {
- console.log('TAP version 13\n' +
- '1..0 # Skip windows tests, this is not windows\n')
- return
-}
-
-// load this before clubbing the platform name.
-var tap = require('tap')
-
-process.env.windir = 'c:\\windows'
-process.env.USERDOMAIN = 'some-domain'
-process.env.USERNAME = 'sirUser'
-process.env.USERPROFILE = 'C:\\Users\\sirUser'
-process.env.COMPUTERNAME = 'my-machine'
-process.env.TMPDIR = 'C:\\tmpdir'
-process.env.TMP = 'C:\\tmp'
-process.env.TEMP = 'C:\\temp'
-process.env.Path = 'C:\\Program Files\\;C:\\Binary Stuff\\bin'
-process.env.PROMPT = '(o_o) $ '
-process.env.EDITOR = 'edit'
-process.env.VISUAL = 'visualedit'
-process.env.ComSpec = 'some-com'
-
-tap.test('basic windows sanity test', function (t) {
- var osenv = require('../osenv.js')
-
- t.equal(osenv.user(),
- process.env.USERDOMAIN + '\\' + process.env.USERNAME)
- t.equal(osenv.home(), process.env.USERPROFILE)
- t.equal(osenv.hostname(), process.env.COMPUTERNAME)
- t.same(osenv.path(), process.env.Path.split(';'))
- t.equal(osenv.prompt(), process.env.PROMPT)
- t.equal(osenv.tmpdir(), process.env.TMPDIR)
-
- // mildly evil, but it's for a test.
- process.env.TMPDIR = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.tmpdir(), process.env.TMP)
-
- process.env.TMP = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.tmpdir(), process.env.TEMP)
-
- process.env.TEMP = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- osenv.home = function () { return null }
- t.equal(osenv.tmpdir(), 'c:\\windows\\temp')
-
- t.equal(osenv.editor(), 'edit')
- process.env.EDITOR = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.editor(), 'visualedit')
-
- process.env.VISUAL = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.editor(), 'notepad.exe')
-
- t.equal(osenv.shell(), 'some-com')
- process.env.ComSpec = ''
- delete require.cache[require.resolve('../osenv.js')]
- var osenv = require('../osenv.js')
- t.equal(osenv.shell(), 'cmd')
-
- t.end()
-})
diff --git a/deps/npm/node_modules/osenv/x.tap b/deps/npm/node_modules/osenv/x.tap
deleted file mode 100644
index 90d8472087..0000000000
--- a/deps/npm/node_modules/osenv/x.tap
+++ /dev/null
@@ -1,39 +0,0 @@
-TAP version 13
- # Subtest: test/unix.js
- TAP version 13
- # Subtest: basic unix sanity test
- ok 1 - should be equal
- ok 2 - should be equal
- ok 3 - should be equal
- ok 4 - should be equivalent
- ok 5 - should be equal
- ok 6 - should be equal
- ok 7 - should be equal
- ok 8 - should be equal
- ok 9 - should be equal
- ok 10 - should be equal
- ok 11 - should be equal
- ok 12 - should be equal
- ok 13 - should be equal
- ok 14 - should be equal
- 1..14
- ok 1 - basic unix sanity test # time=10.712ms
-
- 1..1
- # time=18.422ms
-ok 1 - test/unix.js # time=169.827ms
-
- # Subtest: test/windows.js
- TAP version 13
- 1..0 # Skip windows tests, this is not windows
-
-ok 2 - test/windows.js # SKIP Skip windows tests, this is not windows
-
- # Subtest: test/nada.js
- TAP version 13
- 1..0
-
-ok 2 - test/nada.js
-
-1..3
-# time=274.247ms
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/index.js b/deps/npm/node_modules/p-finally/index.js
index 52b7b49c5f..52b7b49c5f 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/index.js
+++ b/deps/npm/node_modules/p-finally/index.js
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license b/deps/npm/node_modules/p-finally/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/license
+++ b/deps/npm/node_modules/p-finally/license
diff --git a/deps/npm/node_modules/p-finally/package.json b/deps/npm/node_modules/p-finally/package.json
new file mode 100644
index 0000000000..a4763be4ca
--- /dev/null
+++ b/deps/npm/node_modules/p-finally/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "p-finally@^1.0.0",
+ "_id": "p-finally@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
+ "_location": "/p-finally",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "p-finally@^1.0.0",
+ "name": "p-finally",
+ "escapedName": "p-finally",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "_shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
+ "_spec": "p-finally@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-finally/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/p-finally#readme",
+ "keywords": [
+ "promise",
+ "finally",
+ "handler",
+ "function",
+ "async",
+ "await",
+ "promises",
+ "settled",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "p-finally",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-finally.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/readme.md b/deps/npm/node_modules/p-finally/readme.md
index 09ef36416b..09ef36416b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/p-finally/readme.md
+++ b/deps/npm/node_modules/p-finally/readme.md
diff --git a/deps/npm/node_modules/p-limit/index.js b/deps/npm/node_modules/p-limit/index.js
new file mode 100644
index 0000000000..8767db1ca7
--- /dev/null
+++ b/deps/npm/node_modules/p-limit/index.js
@@ -0,0 +1,42 @@
+'use strict';
+const pTry = require('p-try');
+
+module.exports = concurrency => {
+ if (concurrency < 1) {
+ throw new TypeError('Expected `concurrency` to be a number from 1 and up');
+ }
+
+ const queue = [];
+ let activeCount = 0;
+
+ const next = () => {
+ activeCount--;
+
+ if (queue.length > 0) {
+ queue.shift()();
+ }
+ };
+
+ return fn => new Promise((resolve, reject) => {
+ const run = () => {
+ activeCount++;
+
+ pTry(() => fn()).then(
+ val => {
+ resolve(val);
+ next();
+ },
+ err => {
+ reject(err);
+ next();
+ }
+ );
+ };
+
+ if (activeCount < concurrency) {
+ run();
+ } else {
+ queue.push(run);
+ }
+ });
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license b/deps/npm/node_modules/p-limit/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/license
+++ b/deps/npm/node_modules/p-limit/license
diff --git a/deps/npm/node_modules/p-limit/package.json b/deps/npm/node_modules/p-limit/package.json
new file mode 100644
index 0000000000..7d0377227e
--- /dev/null
+++ b/deps/npm/node_modules/p-limit/package.json
@@ -0,0 +1,81 @@
+{
+ "_from": "p-limit@^1.1.0",
+ "_id": "p-limit@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==",
+ "_location": "/p-limit",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "p-limit@^1.1.0",
+ "name": "p-limit",
+ "escapedName": "p-limit",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/p-locate"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz",
+ "_shasum": "0e92b6bedcb59f022c13d0f1949dc82d15909f1c",
+ "_spec": "p-limit@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/p-locate",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-limit/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "p-try": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Run multiple promise-returning & async functions with limited concurrency",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^2.0.0",
+ "in-range": "^1.0.0",
+ "random-int": "^1.0.0",
+ "time-span": "^2.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/p-limit#readme",
+ "keywords": [
+ "promise",
+ "limit",
+ "limited",
+ "concurrency",
+ "throttle",
+ "throat",
+ "rate",
+ "batch",
+ "ratelimit",
+ "task",
+ "queue",
+ "async",
+ "await",
+ "promises",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "p-limit",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-limit.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/p-limit/readme.md b/deps/npm/node_modules/p-limit/readme.md
new file mode 100644
index 0000000000..90129925c1
--- /dev/null
+++ b/deps/npm/node_modules/p-limit/readme.md
@@ -0,0 +1,69 @@
+# p-limit [![Build Status](https://travis-ci.org/sindresorhus/p-limit.svg?branch=master)](https://travis-ci.org/sindresorhus/p-limit)
+
+> Run multiple promise-returning & async functions with limited concurrency
+
+
+## Install
+
+```
+$ npm install p-limit
+```
+
+
+## Usage
+
+```js
+const pLimit = require('p-limit');
+
+const limit = pLimit(1);
+
+const input = [
+ limit(() => fetchSomething('foo')),
+ limit(() => fetchSomething('bar')),
+ limit(() => doSomething())
+];
+
+(async () => {
+ // Only one promise is run at once
+ const result = await Promise.all(input);
+ console.log(result);
+})();
+```
+
+
+## API
+
+### pLimit(concurrency)
+
+Returns a `limit` function.
+
+#### concurrency
+
+Type: `number`<br>
+Minimum: `1`
+
+Concurrency limit.
+
+### limit(fn)
+
+Returns the promise returned by calling `fn`.
+
+#### fn
+
+Type: `Function`
+
+Promise-returning/async function.
+
+
+## Related
+
+- [p-queue](https://github.com/sindresorhus/p-queue) - Promise queue with concurrency control
+- [p-throttle](https://github.com/sindresorhus/p-throttle) - Throttle promise-returning & async functions
+- [p-debounce](https://github.com/sindresorhus/p-debounce) - Debounce promise-returning & async functions
+- [p-all](https://github.com/sindresorhus/p-all) - Run promise-returning & async functions concurrently with optional limited concurrency
+- [Moreā€¦](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/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 b/deps/npm/node_modules/p-locate/index.js
index 7461d665b5..7461d665b5 100644
--- a/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
+++ b/deps/npm/node_modules/p-locate/index.js
diff --git a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license b/deps/npm/node_modules/p-locate/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/normalize-package-data/node_modules/is-builtin-module/node_modules/builtin-modules/license
+++ b/deps/npm/node_modules/p-locate/license
diff --git a/deps/npm/node_modules/p-locate/package.json b/deps/npm/node_modules/p-locate/package.json
new file mode 100644
index 0000000000..5f64e9dd3c
--- /dev/null
+++ b/deps/npm/node_modules/p-locate/package.json
@@ -0,0 +1,86 @@
+{
+ "_from": "p-locate@^2.0.0",
+ "_id": "p-locate@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=",
+ "_location": "/p-locate",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "p-locate@^2.0.0",
+ "name": "p-locate",
+ "escapedName": "p-locate",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/locate-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "_shasum": "20a0103b222a70c8fd39cc2e580680f3dde5ec43",
+ "_spec": "p-locate@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/locate-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-locate/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "p-limit": "^1.1.0"
+ },
+ "deprecated": false,
+ "description": "Get the first fulfilled promise that satisfies the provided testing function",
+ "devDependencies": {
+ "ava": "*",
+ "delay": "^1.3.1",
+ "in-range": "^1.0.0",
+ "time-span": "^1.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/p-locate#readme",
+ "keywords": [
+ "promise",
+ "locate",
+ "find",
+ "finder",
+ "search",
+ "searcher",
+ "test",
+ "array",
+ "collection",
+ "iterable",
+ "iterator",
+ "race",
+ "fulfilled",
+ "fastest",
+ "async",
+ "await",
+ "promises",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "p-locate",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-locate.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/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 b/deps/npm/node_modules/p-locate/readme.md
index 68b96a47ef..68b96a47ef 100644
--- a/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
+++ b/deps/npm/node_modules/p-locate/readme.md
diff --git a/deps/npm/node_modules/p-try/index.js b/deps/npm/node_modules/p-try/index.js
new file mode 100644
index 0000000000..efa2f74338
--- /dev/null
+++ b/deps/npm/node_modules/p-try/index.js
@@ -0,0 +1,4 @@
+'use strict';
+module.exports = cb => new Promise(resolve => {
+ resolve(cb());
+});
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/license b/deps/npm/node_modules/p-try/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/object-assign/license
+++ b/deps/npm/node_modules/p-try/license
diff --git a/deps/npm/node_modules/p-try/package.json b/deps/npm/node_modules/p-try/package.json
new file mode 100644
index 0000000000..e394d884d1
--- /dev/null
+++ b/deps/npm/node_modules/p-try/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "p-try@^1.0.0",
+ "_id": "p-try@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=",
+ "_location": "/p-try",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "p-try@^1.0.0",
+ "name": "p-try",
+ "escapedName": "p-try",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/p-limit"
+ ],
+ "_resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "_shasum": "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3",
+ "_spec": "p-try@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/p-limit",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/p-try/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "`Promise#try()` ponyfill - Starts a promise chain",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/p-try#readme",
+ "keywords": [
+ "promise",
+ "try",
+ "resolve",
+ "function",
+ "catch",
+ "async",
+ "await",
+ "promises",
+ "settled",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "p-try",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/p-try.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/p-try/readme.md b/deps/npm/node_modules/p-try/readme.md
new file mode 100644
index 0000000000..8e5fdddbe1
--- /dev/null
+++ b/deps/npm/node_modules/p-try/readme.md
@@ -0,0 +1,38 @@
+# p-try [![Build Status](https://travis-ci.org/sindresorhus/p-try.svg?branch=master)](https://travis-ci.org/sindresorhus/p-try)
+
+> [`Promise#try()`](https://github.com/ljharb/proposal-promise-try) [ponyfill](https://ponyfill.com) - Starts a promise chain
+
+[How is it useful?](http://cryto.net/~joepie91/blog/2016/05/11/what-is-promise-try-and-why-does-it-matter/)
+
+
+## Install
+
+```
+$ npm install --save p-try
+```
+
+
+## Usage
+
+```js
+const pTry = require('p-try');
+
+pTry(() => {
+ return synchronousFunctionThatMightThrow();
+}).then(value => {
+ console.log(value);
+}).catch(error => {
+ console.error(error);
+});
+```
+
+
+## Related
+
+- [p-finally](https://github.com/sindresorhus/p-finally) - `Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome
+- [Moreā€¦](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/index.js b/deps/npm/node_modules/package-json/index.js
index 1e588b27e3..1e588b27e3 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/index.js
+++ b/deps/npm/node_modules/package-json/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/license b/deps/npm/node_modules/package-json/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/license
+++ b/deps/npm/node_modules/package-json/license
diff --git a/deps/npm/node_modules/package-json/package.json b/deps/npm/node_modules/package-json/package.json
new file mode 100644
index 0000000000..643260f508
--- /dev/null
+++ b/deps/npm/node_modules/package-json/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "package-json@^4.0.0",
+ "_id": "package-json@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
+ "_location": "/package-json",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "package-json@^4.0.0",
+ "name": "package-json",
+ "escapedName": "package-json",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/latest-version"
+ ],
+ "_resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
+ "_shasum": "8869a0401253661c4c4ca3da6c2121ed555f5eed",
+ "_spec": "package-json@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/latest-version",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/package-json/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "got": "^6.7.1",
+ "registry-auth-token": "^3.0.1",
+ "registry-url": "^3.0.3",
+ "semver": "^5.1.0"
+ },
+ "deprecated": false,
+ "description": "Get metadata of a package from the npm registry",
+ "devDependencies": {
+ "ava": "*",
+ "mock-private-registry": "^1.1.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/package-json#readme",
+ "keywords": [
+ "npm",
+ "registry",
+ "package",
+ "pkg",
+ "package.json",
+ "json",
+ "module",
+ "scope",
+ "scoped"
+ ],
+ "license": "MIT",
+ "name": "package-json",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/package-json.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/readme.md b/deps/npm/node_modules/package-json/readme.md
index 477e25c220..477e25c220 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/readme.md
+++ b/deps/npm/node_modules/package-json/readme.md
diff --git a/deps/npm/node_modules/pacote/CHANGELOG.md b/deps/npm/node_modules/pacote/CHANGELOG.md
index 140e861cd7..703f566c45 100644
--- a/deps/npm/node_modules/pacote/CHANGELOG.md
+++ b/deps/npm/node_modules/pacote/CHANGELOG.md
@@ -2,6 +2,264 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="8.1.6"></a>
+## [8.1.6](https://github.com/zkat/pacote/compare/v8.1.5...v8.1.6) (2018-05-24)
+
+
+
+<a name="8.1.5"></a>
+## [8.1.5](https://github.com/zkat/pacote/compare/v8.1.4...v8.1.5) (2018-05-22)
+
+
+
+<a name="8.1.4"></a>
+## [8.1.4](https://github.com/zkat/pacote/compare/v8.1.3...v8.1.4) (2018-05-22)
+
+
+
+<a name="8.1.3"></a>
+## [8.1.3](https://github.com/zkat/pacote/compare/v8.1.2...v8.1.3) (2018-05-20)
+
+
+### Bug Fixes
+
+* **deps:** try reverting tar ([574ecff](https://github.com/zkat/pacote/commit/574ecff))
+* **extract-stream:** address "write after end" issue ([#151](https://github.com/zkat/pacote/issues/151)) ([50ed408](https://github.com/zkat/pacote/commit/50ed408)), closes [#142](https://github.com/zkat/pacote/issues/142)
+
+
+
+<a name="8.1.2"></a>
+## [8.1.2](https://github.com/zkat/pacote/compare/v8.1.1...v8.1.2) (2018-05-16)
+
+
+### Bug Fixes
+
+* **extract-stream:** nudge things to stop write-after-end heisenbug, hopefully ([a398715](https://github.com/zkat/pacote/commit/a398715))
+
+
+
+<a name="8.1.1"></a>
+## [8.1.1](https://github.com/zkat/pacote/compare/v8.1.0...v8.1.1) (2018-04-24)
+
+
+### Bug Fixes
+
+* **tarball:** Remove promise handler error ([#148](https://github.com/zkat/pacote/issues/148)) ([47da3f6](https://github.com/zkat/pacote/commit/47da3f6)), closes [#145](https://github.com/zkat/pacote/issues/145)
+
+
+
+<a name="8.1.0"></a>
+# [8.1.0](https://github.com/zkat/pacote/compare/v8.0.0...v8.1.0) (2018-04-18)
+
+
+### Bug Fixes
+
+* **git:** workaround for mississippi.finished intermitent failures ([#144](https://github.com/zkat/pacote/issues/144)) ([788fd13](https://github.com/zkat/pacote/commit/788fd13)), closes [#143](https://github.com/zkat/pacote/issues/143)
+
+
+### Features
+
+* **tarball:** calculate shasum when missing, not just integrity ([#149](https://github.com/zkat/pacote/issues/149)) ([ccc6e90](https://github.com/zkat/pacote/commit/ccc6e90))
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/zkat/pacote/compare/v7.6.1...v8.0.0) (2018-04-12)
+
+
+### Bug Fixes
+
+* **git:** make full clones do a full mirror ([85b269b](https://github.com/zkat/pacote/commit/85b269b))
+
+
+### deps
+
+* bump deps ([6737bf6](https://github.com/zkat/pacote/commit/6737bf6))
+
+
+### meta
+
+* drop support for node@4 ([11478ff](https://github.com/zkat/pacote/commit/11478ff))
+
+
+### BREAKING CHANGES
+
+* some dependencies were upgraded to versions that do not
+support node@4.
+* node@4 is no longer supported
+
+
+
+<a name="7.6.1"></a>
+## [7.6.1](https://github.com/zkat/pacote/compare/v7.6.0...v7.6.1) (2018-03-08)
+
+
+### Bug Fixes
+
+* **standard:** update to new standard rules ([bb52d02](https://github.com/zkat/pacote/commit/bb52d02))
+
+
+
+<a name="7.6.0"></a>
+# [7.6.0](https://github.com/zkat/pacote/compare/v7.5.3...v7.6.0) (2018-03-08)
+
+
+### Features
+
+* **git:** added retry logic for all git operations. ([#136](https://github.com/zkat/pacote/issues/136)) ([425c58d](https://github.com/zkat/pacote/commit/425c58d))
+
+
+
+<a name="7.5.3"></a>
+## [7.5.3](https://github.com/zkat/pacote/compare/v7.5.2...v7.5.3) (2018-03-02)
+
+
+### Bug Fixes
+
+* **tarball:** stop dropping stream errors on the floor ([3db03c2](https://github.com/zkat/pacote/commit/3db03c2))
+
+
+
+<a name="7.5.2"></a>
+## [7.5.2](https://github.com/zkat/pacote/compare/v7.5.1...v7.5.2) (2018-03-02)
+
+
+### Bug Fixes
+
+* **console:** remove spurious debugging console.log :< ([5b8b509](https://github.com/zkat/pacote/commit/5b8b509))
+
+
+
+<a name="7.5.1"></a>
+## [7.5.1](https://github.com/zkat/pacote/compare/v7.5.0...v7.5.1) (2018-03-01)
+
+
+### Bug Fixes
+
+* **tarball:** catch errors thrown from stream handler ([bdd6628](https://github.com/zkat/pacote/commit/bdd6628))
+
+
+
+<a name="7.5.0"></a>
+# [7.5.0](https://github.com/zkat/pacote/compare/v7.4.2...v7.5.0) (2018-03-01)
+
+
+### Features
+
+* **logging:** let users know when file: resolved packages fail integrity check ([0fb8037](https://github.com/zkat/pacote/commit/0fb8037))
+
+
+
+<a name="7.4.2"></a>
+## [7.4.2](https://github.com/zkat/pacote/compare/v7.4.1...v7.4.2) (2018-02-23)
+
+
+### Bug Fixes
+
+* **deps:** move mkdirp and rimraf to dependencies ([#140](https://github.com/zkat/pacote/issues/140)) ([bba20c8](https://github.com/zkat/pacote/commit/bba20c8)), closes [#128](https://github.com/zkat/pacote/issues/128)
+
+
+
+<a name="7.4.1"></a>
+## [7.4.1](https://github.com/zkat/pacote/compare/v7.4.0...v7.4.1) (2018-02-23)
+
+
+### Bug Fixes
+
+* **tarball:** fix spurious errors from tarball.stream() ([0286ba5](https://github.com/zkat/pacote/commit/0286ba5))
+
+
+
+<a name="7.4.0"></a>
+# [7.4.0](https://github.com/zkat/pacote/compare/v7.3.3...v7.4.0) (2018-02-17)
+
+
+### Features
+
+* **tarball:** support file: opts.resolved shortcut ([a6cf279](https://github.com/zkat/pacote/commit/a6cf279))
+
+
+
+<a name="7.3.3"></a>
+## [7.3.3](https://github.com/zkat/pacote/compare/v7.3.2...v7.3.3) (2018-02-15)
+
+
+### Bug Fixes
+
+* **tarball:** another attempt at fixing opts.resolved ([aff3b6a](https://github.com/zkat/pacote/commit/aff3b6a))
+
+
+
+<a name="7.3.2"></a>
+## [7.3.2](https://github.com/zkat/pacote/compare/v7.3.1...v7.3.2) (2018-02-15)
+
+
+### Bug Fixes
+
+* **tarball:** opts.resolved impl was triggering extra registry lookups ([0a4729d](https://github.com/zkat/pacote/commit/0a4729d))
+
+
+
+<a name="7.3.1"></a>
+## [7.3.1](https://github.com/zkat/pacote/compare/v7.3.0...v7.3.1) (2018-02-14)
+
+
+### Bug Fixes
+
+* **tarball:** stop using mississippi.pipe() in tarball.js and extract.js ([f5c1da9](https://github.com/zkat/pacote/commit/f5c1da9))
+
+
+
+<a name="7.3.0"></a>
+# [7.3.0](https://github.com/zkat/pacote/compare/v7.2.0...v7.3.0) (2018-02-07)
+
+
+### Bug Fixes
+
+* **git:** fix resolution of prerelease versions ([#130](https://github.com/zkat/pacote/issues/130)) ([83be46b](https://github.com/zkat/pacote/commit/83be46b)), closes [#129](https://github.com/zkat/pacote/issues/129)
+
+
+### Features
+
+* **extract:** append _resolved and _integrity automatically ([#134](https://github.com/zkat/pacote/issues/134)) ([6886b65](https://github.com/zkat/pacote/commit/6886b65))
+
+
+
+<a name="7.2.0"></a>
+# [7.2.0](https://github.com/zkat/pacote/compare/v7.1.1...v7.2.0) (2018-01-19)
+
+
+### Features
+
+* **resolved:** tarball shortcut when opts.resolved is provided ([46a2f58](https://github.com/zkat/pacote/commit/46a2f58))
+
+
+
+<a name="7.1.1"></a>
+## [7.1.1](https://github.com/zkat/pacote/compare/v7.1.0...v7.1.1) (2018-01-08)
+
+
+### Bug Fixes
+
+* **publish:** a spurious file was included in the previous release ([296741a](https://github.com/zkat/pacote/commit/296741a))
+
+
+
+<a name="7.1.0"></a>
+# [7.1.0](https://github.com/zkat/pacote/compare/v7.0.2...v7.1.0) (2018-01-07)
+
+
+### Bug Fixes
+
+* **security:** deep-update debug due to vulnerabilities ([ff16da7](https://github.com/zkat/pacote/commit/ff16da7))
+
+
+### Features
+
+* **resolved:** add opts.resolved for cache stuff ([#131](https://github.com/zkat/pacote/issues/131)) ([149a4b5](https://github.com/zkat/pacote/commit/149a4b5))
+
+
+
<a name="7.0.2"></a>
## [7.0.2](https://github.com/zkat/pacote/compare/v7.0.1...v7.0.2) (2017-11-28)
diff --git a/deps/npm/node_modules/pacote/extract.js b/deps/npm/node_modules/pacote/extract.js
index 941c46848b..d2ab47deba 100644
--- a/deps/npm/node_modules/pacote/extract.js
+++ b/deps/npm/node_modules/pacote/extract.js
@@ -2,99 +2,69 @@
const BB = require('bluebird')
-const cacache = require('cacache')
-const extractStream = require('./lib/extract-stream')
+const extractStream = require('./lib/extract-stream.js')
+const fs = require('fs')
const mkdirp = BB.promisify(require('mkdirp'))
const npa = require('npm-package-arg')
-const optCheck = require('./lib/util/opt-check')
-const retry = require('promise-retry')
+const optCheck = require('./lib/util/opt-check.js')
+const path = require('path')
const rimraf = BB.promisify(require('rimraf'))
+const withTarballStream = require('./lib/with-tarball-stream.js')
+
+const truncateAsync = BB.promisify(fs.truncate)
+const readFileAsync = BB.promisify(fs.readFile)
+const appendFileAsync = BB.promisify(fs.appendFile)
module.exports = extract
function extract (spec, dest, opts) {
opts = optCheck(opts)
spec = npa(spec, opts.where)
const startTime = Date.now()
- if (opts.integrity && opts.cache && !opts.preferOnline) {
- opts.log.silly('pacote', `trying ${spec} by hash: ${opts.integrity}`)
- return extractByDigest(
- startTime, spec, dest, opts
- ).catch(err => {
- if (err.code === 'ENOENT') {
- opts.log.silly('pacote', `data for ${opts.integrity} not present. Using manifest.`)
- return extractByManifest(startTime, spec, dest, opts)
- }
- if (err.code === 'EINTEGRITY' || err.code === 'Z_DATA_ERROR') {
- opts.log.warn('pacote', `cached data for ${spec} (${opts.integrity}) seems to be corrupted. Refreshing cache.`)
+ return withTarballStream(spec, opts, stream => {
+ return tryExtract(spec, stream, dest, opts)
+ })
+ .then(() => {
+ if (!opts.resolved) {
+ const pjson = path.join(dest, 'package.json')
+ return readFileAsync(pjson, 'utf8')
+ .then(str => truncateAsync(pjson)
+ .then(() => appendFileAsync(pjson, str.replace(
+ /}\s*$/,
+ `\n,"_resolved": ${
+ JSON.stringify(opts.resolved || '')
+ }\n,"_integrity": ${
+ JSON.stringify(opts.integrity || '')
+ }\n,"_from": ${
+ JSON.stringify(spec.toString())
+ }\n}`
+ ))))
}
- return cleanUpCached(
- dest, opts.cache, opts.integrity, opts
- ).then(() => {
- return extractByManifest(startTime, spec, dest, opts)
- })
})
- } else {
- opts.log.silly('pacote', 'no tarball hash provided for', spec.name, '- extracting by manifest')
- return BB.resolve(retry((tryAgain, attemptNum) => {
- return extractByManifest(
- startTime, spec, dest, opts
- ).catch(err => {
- // Retry once if we have a cache, to clear up any weird conditions.
- // Don't retry network errors, though -- make-fetch-happen has already
- // taken care of making sure we're all set on that front.
- if (opts.cache && !err.code.match(/^E\d{3}$/)) {
- if (err.code === 'EINTEGRITY' || err.code === 'Z_DATA_ERROR') {
- opts.log.warn('pacote', `tarball data for ${spec} (${opts.integrity}) seems to be corrupted. Trying one more time.`)
- }
- return cleanUpCached(
- dest, opts.cache, err.sri, opts
- ).then(() => tryAgain(err))
- } else {
- throw err
- }
- })
- }, {retries: 1}))
- }
+ .then(() => opts.log.silly(
+ 'extract',
+ `${spec} extracted to ${dest} (${Date.now() - startTime}ms)`
+ ))
}
-function extractByDigest (start, spec, dest, opts) {
- return mkdirp(dest).then(() => {
- const xtractor = extractStream(dest, opts)
- const cached = cacache.get.stream.byDigest(opts.cache, opts.integrity, opts)
- cached.pipe(xtractor)
- return new BB((resolve, reject) => {
- cached.on('error', reject)
- xtractor.on('error', reject)
- xtractor.on('close', resolve)
- })
- }).then(() => {
- opts.log.silly('pacote', `${spec} extracted to ${dest} by content address ${Date.now() - start}ms`)
+function tryExtract (spec, tarStream, dest, opts) {
+ return new BB((resolve, reject) => {
+ tarStream.on('error', reject)
+ setImmediate(resolve)
})
-}
-
-let fetch
-function extractByManifest (start, spec, dest, opts) {
- return mkdirp(dest).then(() => {
- const xtractor = extractStream(dest, opts)
- if (!fetch) {
- fetch = require('./lib/fetch')
- }
- const tardata = fetch.tarball(spec, opts)
- tardata.pipe(xtractor)
- return new BB((resolve, reject) => {
- tardata.on('error', reject)
+ .then(() => rimraf(dest))
+ .then(() => mkdirp(dest))
+ .then(() => new BB((resolve, reject) => {
+ const xtractor = extractStream(spec, dest, opts)
+ tarStream.on('error', reject)
xtractor.on('error', reject)
xtractor.on('close', resolve)
+ tarStream.pipe(xtractor)
+ }))
+ .catch(err => {
+ if (err.code === 'EINTEGRITY') {
+ err.message = `Verification failed while extracting ${spec}:\n${err.message}`
+ }
+ throw err
})
- }).then(() => {
- opts.log.silly('pacote', `${spec} extracted in ${Date.now() - start}ms`)
- })
-}
-
-function cleanUpCached (dest, cachePath, integrity, opts) {
- return BB.join(
- rimraf(dest),
- cacache.rm.content(cachePath, integrity, opts)
- )
}
diff --git a/deps/npm/node_modules/pacote/lib/extract-stream.js b/deps/npm/node_modules/pacote/lib/extract-stream.js
index b3c720b07f..d7e8fd5a18 100644
--- a/deps/npm/node_modules/pacote/lib/extract-stream.js
+++ b/deps/npm/node_modules/pacote/lib/extract-stream.js
@@ -1,16 +1,53 @@
'use strict'
+const Minipass = require('minipass')
const path = require('path')
const tar = require('tar')
module.exports = extractStream
module.exports._computeMode = computeMode
+class Transformer extends Minipass {
+ constructor (spec, opts) {
+ super()
+ this.spec = spec
+ this.opts = opts
+ this.str = ''
+ }
+ write (data) {
+ this.str += data
+ return true
+ }
+ end () {
+ const replaced = this.str.replace(
+ /}\s*$/,
+ `\n,"_resolved": ${
+ JSON.stringify(this.opts.resolved || '')
+ }\n,"_integrity": ${
+ JSON.stringify(this.opts.integrity || '')
+ }\n,"_from": ${
+ JSON.stringify(this.spec.toString())
+ }\n}`
+ )
+ super.write(replaced)
+ return super.end()
+ }
+}
+
function computeMode (fileMode, optMode, umask) {
return (fileMode | optMode) & ~(umask || 0)
}
-function extractStream (dest, opts) {
+function pkgJsonTransform (spec, opts) {
+ return entry => {
+ if (entry.path === 'package.json') {
+ const transformed = new Transformer(spec, opts)
+ return transformed
+ }
+ }
+}
+
+function extractStream (spec, dest, opts) {
opts = opts || {}
const sawIgnores = new Set()
return tar.x({
@@ -20,6 +57,7 @@ function extractStream (dest, opts) {
onwarn: msg => opts.log && opts.log.warn('tar', msg),
uid: opts.uid,
gid: opts.gid,
+ transform: opts.resolved && pkgJsonTransform(spec, opts),
onentry (entry) {
if (entry.type.toLowerCase() === 'file') {
entry.mode = computeMode(entry.mode, opts.fmode, opts.umask)
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/directory.js b/deps/npm/node_modules/pacote/lib/fetchers/directory.js
index 4f7f8847a7..f6e680f660 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/directory.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/directory.js
@@ -29,6 +29,7 @@ Fetcher.impl(fetchDirectory, {
pkg._hasShrinkwrap = !!sr
pkg._resolved = spec.fetchSpec
pkg._integrity = false // Don't auto-calculate integrity
+ pkg._shasum = false // Don't auto-calculate shasum either
return pkg
}
).then(pkg => {
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/file.js b/deps/npm/node_modules/pacote/lib/fetchers/file.js
index 48bec0c2d8..5688cd1bdd 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/file.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/file.js
@@ -52,13 +52,13 @@ Fetcher.impl(fetchFile, {
} else {
let integrity
const cacheWriter = !opts.cache
- ? BB.resolve(null)
- : (pipe(
- fs.createReadStream(src),
- cacache.put.stream(opts.cache, `pacote:tarball:${src}`, {
- integrity: opts.integrity
- }).on('integrity', d => { integrity = d })
- ))
+ ? BB.resolve(null)
+ : (pipe(
+ fs.createReadStream(src),
+ cacache.put.stream(opts.cache, `pacote:tarball:${src}`, {
+ integrity: opts.integrity
+ }).on('integrity', d => { integrity = d })
+ ))
return cacheWriter.then(() => {
if (integrity) { stream.emit('integrity', integrity) }
return pipe(fs.createReadStream(src), stream)
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/git.js b/deps/npm/node_modules/pacote/lib/fetchers/git.js
index 11b5695255..66a2093ee3 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/git.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/git.js
@@ -112,7 +112,8 @@ function plainManifest (repo, spec, opts) {
_ref: ref,
_rawRef: spec.gitCommittish || spec.gitRange,
_uniqueResolved: resolved,
- _integrity: false
+ _integrity: false,
+ _shasum: false
}
} else {
// We're SOL and need a full clone :(
@@ -125,7 +126,8 @@ function plainManifest (repo, spec, opts) {
_rawRef: rawRef,
_resolved: rawRef && rawRef.match(/^[a-f0-9]{40}$/) && resolved,
_uniqueResolved: rawRef && rawRef.match(/^[a-f0-9]{40}$/) && resolved,
- _integrity: false
+ _integrity: false,
+ _shasum: false
}
}
})
@@ -135,16 +137,16 @@ function resolve (url, spec, name, opts) {
const isSemver = !!spec.gitRange
return git.revs(url, opts).then(remoteRefs => {
return isSemver
- ? pickManifest({
- versions: remoteRefs.versions,
- 'dist-tags': remoteRefs['dist-tags'],
- name: name
- }, spec.gitRange, opts)
- : remoteRefs
- ? BB.resolve(
- remoteRefs.refs[spec.gitCommittish] || remoteRefs.refs[remoteRefs.shas[spec.gitCommittish]]
- )
- : null
+ ? pickManifest({
+ versions: remoteRefs.versions,
+ 'dist-tags': remoteRefs['dist-tags'],
+ name: name
+ }, spec.gitRange, opts)
+ : remoteRefs
+ ? BB.resolve(
+ remoteRefs.refs[spec.gitCommittish] || remoteRefs.refs[remoteRefs.shas[spec.gitCommittish]]
+ )
+ : null
})
}
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js b/deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js
index a947ccea55..3a2a4a5a77 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/registry/fetch.js
@@ -68,12 +68,12 @@ function logRequest (uri, res, startTime, 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/node_modules/pacote/lib/fetchers/registry/manifest.js b/deps/npm/node_modules/pacote/lib/fetchers/registry/manifest.js
index 4488ddb4c7..4e5a8010e2 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/registry/manifest.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/registry/manifest.js
@@ -28,8 +28,8 @@ function manifest (spec, opts) {
function metadataUrl (registry, name) {
const normalized = registry.slice(-1) !== '/'
- ? registry + '/'
- : registry
+ ? registry + '/'
+ : registry
return url.resolve(normalized, name)
}
diff --git a/deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js b/deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js
index 2c63872e7f..7239981279 100644
--- a/deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js
+++ b/deps/npm/node_modules/pacote/lib/fetchers/registry/tarball.js
@@ -7,22 +7,41 @@ const manifest = require('./manifest')
const optCheck = require('../../util/opt-check')
const PassThrough = require('stream').PassThrough
const pickRegistry = require('./pick-registry')
-const pipe = BB.promisify(require('mississippi').pipe)
const ssri = require('ssri')
const url = require('url')
module.exports = tarball
function tarball (spec, opts) {
opts = optCheck(opts)
+ const registry = pickRegistry(spec, opts)
const stream = new PassThrough()
- manifest(spec, opts).then(manifest => {
- stream.emit('manifest', manifest)
- return pipe(
- fromManifest(manifest, spec, opts).on(
- 'integrity', i => stream.emit('integrity', i)
- ),
- stream
+ let mani
+ if (
+ opts.resolved &&
+ // spec.type === 'version' &&
+ opts.resolved.indexOf(registry) === 0
+ ) {
+ // fakeChild is a shortcut to avoid looking up a manifest!
+ mani = BB.resolve({
+ name: spec.name,
+ version: spec.fetchSpec,
+ _integrity: opts.integrity,
+ _resolved: opts.resolved,
+ _fakeChild: true
+ })
+ } else {
+ // We can't trust opts.resolved if it's going to a separate host.
+ mani = manifest(spec, opts)
+ }
+
+ mani.then(mani => {
+ !mani._fakeChild && stream.emit('manifest', mani)
+ const fetchStream = fromManifest(mani, spec, opts).on(
+ 'integrity', i => stream.emit('integrity', i)
)
+ fetchStream.on('error', err => stream.emit('error', err))
+ fetchStream.pipe(stream)
+ return null
}).catch(err => stream.emit('error', err))
return stream
}
@@ -33,45 +52,44 @@ function fromManifest (manifest, spec, opts) {
opts.scope = spec.scope || opts.scope
const stream = new PassThrough()
const registry = pickRegistry(spec, opts)
- const uri = getTarballUrl(registry, manifest)
+ const uri = getTarballUrl(spec, registry, manifest, opts)
fetch(uri, registry, Object.assign({
headers: {
'pacote-req-type': 'tarball',
- 'pacote-pkg-id': `registry:${
- spec.type === 'remote'
- ? spec
- : `${manifest.name}@${manifest.version}`
- }`
+ 'pacote-pkg-id': `registry:${manifest.name}@${uri}`
},
integrity: manifest._integrity,
algorithms: [
manifest._integrity
- ? ssri.parse(manifest._integrity).pickAlgorithm()
- : 'sha1'
+ ? ssri.parse(manifest._integrity).pickAlgorithm()
+ : 'sha1'
],
spec
- }, opts)).then(res => {
- const hash = res.headers.get('x-local-cache-hash')
- if (hash) {
- stream.emit('integrity', decodeURIComponent(hash))
- }
- res.body.on('error', err => stream.emit('error', err))
- res.body.pipe(stream)
- }).catch(err => stream.emit('error', err))
+ }, opts))
+ .then(res => {
+ const hash = res.headers.get('x-local-cache-hash')
+ if (hash) {
+ stream.emit('integrity', decodeURIComponent(hash))
+ }
+ res.body.on('error', err => stream.emit('error', err))
+ res.body.pipe(stream)
+ return null
+ })
+ .catch(err => stream.emit('error', err))
return stream
}
-function getTarballUrl (registry, manifest) {
+function getTarballUrl (spec, registry, mani, opts) {
+ const reg = url.parse(registry)
+ const tarball = url.parse(mani._resolved)
// https://github.com/npm/npm/pull/9471
//
- // TL;DR: Some alternative registries host tarballs on http and packuments on
- // https, and vice-versa. There's also a case where people who can't use SSL
- // to access the npm registry, for example, might use
- // `--registry=http://registry.npmjs.org/`. In this case, we need to rewrite
- // `tarball` to match the protocol.
+ // TL;DR: Some alternative registries host tarballs on http and packuments
+ // on https, and vice-versa. There's also a case where people who can't use
+ // SSL to access the npm registry, for example, might use
+ // `--registry=http://registry.npmjs.org/`. In this case, we need to
+ // rewrite `tarball` to match the protocol.
//
- const reg = url.parse(registry)
- const tarball = url.parse(manifest._resolved)
if (reg.hostname === tarball.hostname && reg.protocol !== tarball.protocol) {
tarball.protocol = reg.protocol
// Ports might be same host different protocol!
diff --git a/deps/npm/node_modules/pacote/lib/finalize-manifest.js b/deps/npm/node_modules/pacote/lib/finalize-manifest.js
index 86b273b215..0f309ed6da 100644
--- a/deps/npm/node_modules/pacote/lib/finalize-manifest.js
+++ b/deps/npm/node_modules/pacote/lib/finalize-manifest.js
@@ -5,7 +5,7 @@ const BB = require('bluebird')
const cacache = require('cacache')
const cacheKey = require('./util/cache-key')
const fetchFromManifest = require('./fetch').fromManifest
-const finished = BB.promisify(require('mississippi').finished)
+const finished = require('./util/finished')
const minimatch = require('minimatch')
const normalize = require('normalize-package-data')
const optCheck = require('./util/opt-check')
@@ -38,8 +38,8 @@ function finalizeManifest (pkg, spec, opts) {
opts = optCheck(opts)
const cachedManifest = (opts.cache && key && !opts.preferOnline && !opts.fullMetadata)
- ? cacache.get.info(opts.cache, key, opts)
- : BB.resolve(null)
+ ? cacache.get.info(opts.cache, key, opts)
+ : BB.resolve(null)
return cachedManifest.then(cached => {
if (cached && cached.metadata.manifest) {
@@ -47,8 +47,8 @@ function finalizeManifest (pkg, spec, opts) {
} else {
return tarballedProps(pkg, spec, opts).then(props => {
return pkg && pkg.name
- ? new Manifest(pkg, props, opts.fullMetadata)
- : new Manifest(props, null, opts.fullMetadata)
+ ? new Manifest(pkg, props, opts.fullMetadata)
+ : new Manifest(props, null, opts.fullMetadata)
}).then(manifest => {
const cacheKey = key || finalKey(manifest, spec)
if (!opts.cache || !cacheKey) {
@@ -98,7 +98,7 @@ function Manifest (pkg, fromTarball, fullMetadata) {
// and if they don't, we need to extract and read the tarball ourselves.
// These are details required by the installer.
this._integrity = pkg._integrity || fromTarball._integrity || null
- this._shasum = pkg._shasum || null
+ this._shasum = pkg._shasum || fromTarball._shasum || null
this._shrinkwrap = pkg._shrinkwrap || fromTarball._shrinkwrap || null
this.bin = pkg.bin || fromTarball.bin || null
@@ -140,7 +140,9 @@ function tarballedProps (pkg, spec, opts) {
pkg.directories &&
pkg.directories.bin
))
- const needsHash = !pkg || (!pkg._integrity && pkg._integrity !== false)
+ const needsIntegrity = !pkg || (!pkg._integrity && pkg._integrity !== false)
+ const needsShasum = !pkg || (!pkg._shasum && pkg._shasum !== false)
+ const needsHash = needsIntegrity || needsShasum
const needsManifest = !pkg || !pkg.name
const needsExtract = needsShrinkwrap || needsBin || needsManifest
if (!needsShrinkwrap && !needsBin && !needsHash && !needsManifest) {
@@ -153,7 +155,7 @@ function tarballedProps (pkg, spec, opts) {
needsShrinkwrap && jsonFromStream('npm-shrinkwrap.json', extracted),
needsManifest && jsonFromStream('package.json', extracted),
needsBin && getPaths(extracted),
- needsHash && ssri.fromStream(tarStream),
+ needsHash && ssri.fromStream(tarStream, {algorithms: ['sha1', 'sha512']}),
needsExtract && pipe(tarStream, extracted),
(sr, mani, paths, hash) => {
if (needsManifest && !mani) {
@@ -169,8 +171,8 @@ function tarballedProps (pkg, spec, opts) {
// to add to bin
if (paths && paths.length) {
const dirBin = mani
- ? (mani && mani.directories && mani.directories.bin)
- : (pkg && pkg.directories && pkg.directories.bin)
+ ? (mani && mani.directories && mani.directories.bin)
+ : (pkg && pkg.directories && pkg.directories.bin)
if (dirBin) {
extraProps.bin = {}
paths.forEach(filePath => {
@@ -188,7 +190,8 @@ function tarballedProps (pkg, spec, opts) {
_resolved: (mani && mani._resolved) ||
(pkg && pkg._resolved) ||
spec.fetchSpec,
- _integrity: hash && hash.toString()
+ _integrity: needsIntegrity && hash && hash.sha512 && hash.sha512[0].toString(),
+ _shasum: needsShasum && hash && hash.sha1 && hash.sha1[0].hexDigest()
})
}
)
@@ -205,7 +208,6 @@ function jsonFromStream (filename, dataStream) {
entry.resume()
} else {
let data = ''
- entry.on('data', d => { data += d })
entry.on('error', cb)
finished(entry).then(() => {
try {
@@ -216,6 +218,7 @@ function jsonFromStream (filename, dataStream) {
}, err => {
cb(err)
})
+ entry.on('data', d => { data += d })
}
})
})
diff --git a/deps/npm/node_modules/pacote/lib/util/finished.js b/deps/npm/node_modules/pacote/lib/util/finished.js
new file mode 100644
index 0000000000..6dadc8b5b3
--- /dev/null
+++ b/deps/npm/node_modules/pacote/lib/util/finished.js
@@ -0,0 +1,17 @@
+'use strict'
+
+const BB = require('bluebird')
+
+module.exports = function (child, hasExitCode = false) {
+ return BB.fromNode(function (cb) {
+ child.on('error', cb)
+ child.on(hasExitCode ? 'close' : 'end', function (exitCode) {
+ if (exitCode === undefined || exitCode === 0) {
+ cb()
+ } else {
+ let err = new Error('exited with error code: ' + exitCode)
+ cb(err)
+ }
+ })
+ })
+}
diff --git a/deps/npm/node_modules/pacote/lib/util/git.js b/deps/npm/node_modules/pacote/lib/util/git.js
index a6162ceeba..9196212278 100644
--- a/deps/npm/node_modules/pacote/lib/util/git.js
+++ b/deps/npm/node_modules/pacote/lib/util/git.js
@@ -6,14 +6,16 @@ const cp = require('child_process')
const execFileAsync = BB.promisify(cp.execFile, {
multiArgs: true
})
-const finished = BB.promisify(require('mississippi').finished)
+const finished = require('./finished')
const LRU = require('lru-cache')
const optCheck = require('./opt-check')
const osenv = require('osenv')
const path = require('path')
const pinflight = require('promise-inflight')
+const promiseRetry = require('promise-retry')
const uniqueFilename = require('unique-filename')
const which = BB.promisify(require('which'))
+const semver = require('semver')
const GOOD_ENV_VARS = new Set([
'GIT_ASKPASS',
@@ -25,6 +27,23 @@ const GOOD_ENV_VARS = new Set([
'GIT_SSL_NO_VERIFY'
])
+const GIT_TRANSIENT_ERRORS = [
+ 'remote error: Internal Server Error',
+ 'The remote end hung up unexpectedly',
+ 'Connection timed out',
+ 'Operation timed out',
+ 'Failed to connect to .* Timed out',
+ 'Connection reset by peer',
+ 'SSL_ERROR_SYSCALL',
+ 'The requested URL returned error: 503'
+].join('|')
+
+const GIT_TRANSIENT_ERROR_RE = new RegExp(GIT_TRANSIENT_ERRORS)
+
+function shouldRetry (error) {
+ return GIT_TRANSIENT_ERROR_RE.test(error)
+}
+
const GIT_ = 'GIT_'
let GITENV
function gitEnv () {
@@ -51,16 +70,14 @@ try {
module.exports.clone = fullClone
function fullClone (repo, committish, target, opts) {
opts = optCheck(opts)
- const gitArgs = ['clone', '-q', repo, target]
+ const gitArgs = ['clone', '--mirror', '-q', repo, path.join(target, '.git')]
if (process.platform === 'win32') {
gitArgs.push('--config', 'core.longpaths=true')
}
- return execGit(gitArgs, {
- cwd: path.dirname(target)
- }, opts).then(() => {
- return committish && execGit(['checkout', committish], {
- cwd: target
- })
+ return execGit(gitArgs, {cwd: target}).then(() => {
+ return execGit(['init'], {cwd: target})
+ }).then(() => {
+ return execGit(['checkout', committish || 'HEAD'], {cwd: target})
}).then(() => {
return updateSubmodules(target, opts)
}).then(() => headSha(target, opts))
@@ -113,57 +130,51 @@ function revs (repo, opts) {
return pinflight(`ls-remote:${repo}`, () => {
return spawnGit(['ls-remote', '-h', '-t', repo], {
env: gitEnv()
- }, opts).then(child => {
- let stdout = ''
- let stderr = ''
- child.stdout.on('data', d => { stdout += d })
- child.stderr.on('data', d => { stderr += d })
- return finished(child).catch(err => {
- err.message = `Error while executing:\n${GITPATH} ls-remote -h -t ${repo}\n\n${stderr}\n${err.message}`
- throw err
- }).then(() => {
- return stdout.split('\n').reduce((revs, line) => {
- const split = line.split(/\s+/, 2)
- if (split.length < 2) { return revs }
- const sha = split[0].trim()
- const ref = split[1].trim().match(/(?:refs\/[^/]+\/)?(.*)/)[1]
- if (!ref) { return revs } // ???
- if (ref.endsWith(CARET_BRACES)) { return revs } // refs/tags/x^{} crap
- const type = refType(line)
- const doc = {sha, ref, type}
-
- revs.refs[ref] = doc
- // We can check out shallow clones on specific SHAs if we have a ref
- if (revs.shas[sha]) {
- revs.shas[sha].push(ref)
- } else {
- revs.shas[sha] = [ref]
- }
+ }, opts).then((stdout) => {
+ return stdout.split('\n').reduce((revs, line) => {
+ const split = line.split(/\s+/, 2)
+ if (split.length < 2) { return revs }
+ const sha = split[0].trim()
+ const ref = split[1].trim().match(/(?:refs\/[^/]+\/)?(.*)/)[1]
+ if (!ref) { return revs } // ???
+ if (ref.endsWith(CARET_BRACES)) { return revs } // refs/tags/x^{} crap
+ const type = refType(line)
+ const doc = {sha, ref, type}
- if (type === 'tag') {
- const match = ref.match(/v?(\d+\.\d+\.\d+)$/)
- if (match) {
- revs.versions[match[1]] = doc
- }
- }
+ revs.refs[ref] = doc
+ // We can check out shallow clones on specific SHAs if we have a ref
+ if (revs.shas[sha]) {
+ revs.shas[sha].push(ref)
+ } else {
+ revs.shas[sha] = [ref]
+ }
- return revs
- }, {versions: {}, 'dist-tags': {}, refs: {}, shas: {}})
- }).then(revs => {
- if (revs.refs.HEAD) {
- const HEAD = revs.refs.HEAD
- Object.keys(revs.versions).forEach(v => {
- if (v.sha === HEAD.sha) {
- revs['dist-tags'].HEAD = v
- if (!revs.refs.latest) {
- revs['dist-tags'].latest = revs.refs.HEAD
- }
- }
- })
+ if (type === 'tag') {
+ const match = ref.match(/v?(\d+\.\d+\.\d+(?:[-+].+)?)$/)
+ if (match && semver.valid(match[1], true)) {
+ revs.versions[semver.clean(match[1], true)] = doc
+ }
}
- REVS.set(repo, revs)
+
return revs
- })
+ }, {versions: {}, 'dist-tags': {}, refs: {}, shas: {}})
+ }, err => {
+ err.message = `Error while executing:\n${GITPATH} ls-remote -h -t ${repo}\n\n${err.stderr}\n${err.message}`
+ throw err
+ }).then(revs => {
+ if (revs.refs.HEAD) {
+ const HEAD = revs.refs.HEAD
+ Object.keys(revs.versions).forEach(v => {
+ if (v.sha === HEAD.sha) {
+ revs['dist-tags'].HEAD = v
+ if (!revs.refs.latest) {
+ revs['dist-tags'].latest = revs.refs.HEAD
+ }
+ }
+ })
+ }
+ REVS.set(repo, revs)
+ return revs
})
})
}
@@ -172,7 +183,18 @@ module.exports._exec = execGit
function execGit (gitArgs, gitOpts, opts) {
opts = optCheck(opts)
return checkGit().then(gitPath => {
- return execFileAsync(gitPath, gitArgs, mkOpts(gitOpts, opts))
+ return promiseRetry((retry, number) => {
+ if (number !== 1) {
+ opts.log.silly('pacote', 'Retrying git command: ' + gitArgs.join(' ') + ' attempt # ' + number)
+ }
+ return execFileAsync(gitPath, gitArgs, mkOpts(gitOpts, opts)).catch((err) => {
+ if (shouldRetry(err)) {
+ retry(err)
+ } else {
+ throw err
+ }
+ })
+ }, opts.retry)
})
}
@@ -180,7 +202,28 @@ module.exports._spawn = spawnGit
function spawnGit (gitArgs, gitOpts, opts) {
opts = optCheck(opts)
return checkGit().then(gitPath => {
- return cp.spawn(gitPath, gitArgs, mkOpts(gitOpts, opts))
+ return promiseRetry((retry, number) => {
+ if (number !== 1) {
+ opts.log.silly('pacote', 'Retrying git command: ' + gitArgs.join(' ') + ' attempt # ' + number)
+ }
+ const child = cp.spawn(gitPath, gitArgs, mkOpts(gitOpts, opts))
+
+ let stdout = ''
+ let stderr = ''
+ child.stdout.on('data', d => { stdout += d })
+ child.stderr.on('data', d => { stderr += d })
+
+ return finished(child, true).catch(err => {
+ if (shouldRetry(stderr)) {
+ retry(err)
+ } else {
+ err.stderr = stderr
+ throw err
+ }
+ }).then(() => {
+ return stdout
+ })
+ }, opts.retry)
})
}
@@ -213,10 +256,10 @@ const REFS_HEADS = 'refs/heads/'
const HEAD = 'HEAD'
function refType (ref) {
return ref.indexOf(REFS_TAGS) !== -1
- ? 'tag'
- : ref.indexOf(REFS_HEADS) !== -1
- ? 'branch'
- : ref.endsWith(HEAD)
- ? 'head'
- : 'other'
+ ? 'tag'
+ : ref.indexOf(REFS_HEADS) !== -1
+ ? 'branch'
+ : ref.endsWith(HEAD)
+ ? 'head'
+ : 'other'
}
diff --git a/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js b/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js
deleted file mode 100644
index 055de2921a..0000000000
--- a/deps/npm/node_modules/pacote/lib/util/gunzip-maybe.js
+++ /dev/null
@@ -1,24 +0,0 @@
-'use strict'
-
-const duplex = require('mississippi').duplex
-const through = require('mississippi').through
-const zlib = require('zlib')
-
-function hasGzipHeader (c) {
- return c[0] === 0x1F && c[1] === 0x8B && c[2] === 0x08
-}
-
-module.exports = gunzip
-function gunzip () {
- const stream = duplex()
- const peeker = through((chunk, enc, cb) => {
- const newStream = hasGzipHeader(chunk)
- ? zlib.createGunzip()
- : through()
- stream.setReadable(newStream)
- stream.setWritable(newStream)
- stream.write(chunk)
- })
- stream.setWritable(peeker)
- return stream
-}
diff --git a/deps/npm/node_modules/pacote/lib/util/opt-check.js b/deps/npm/node_modules/pacote/lib/util/opt-check.js
index 711f46c91a..d13a69e4dc 100644
--- a/deps/npm/node_modules/pacote/lib/util/opt-check.js
+++ b/deps/npm/node_modules/pacote/lib/util/opt-check.js
@@ -25,6 +25,7 @@ function PacoteOptions (opts) {
this.proxy = opts.proxy
this.noProxy = opts.noProxy
this.registry = opts.registry || 'https://registry.npmjs.org'
+ this.resolved = opts.resolved
this.retry = opts.retry // for npm-registry-client
this.scope = opts.scope
this.userAgent = opts.userAgent || `${pkg.name}@${pkg.version}/node@${process.version}+${process.arch} (${process.platform})`
@@ -44,8 +45,8 @@ function PacoteOptions (opts) {
this.fullMetadata = opts.fullMetadata
this.alwaysAuth = opts.alwaysAuth
this.includeDeprecated = opts.includeDeprecated == null
- ? true
- : opts.includeDeprecated
+ ? true
+ : opts.includeDeprecated
this.dirPacker = opts.dirPacker || null
diff --git a/deps/npm/node_modules/pacote/lib/util/pack-dir.js b/deps/npm/node_modules/pacote/lib/util/pack-dir.js
index 7625f4faf8..62776692e1 100644
--- a/deps/npm/node_modules/pacote/lib/util/pack-dir.js
+++ b/deps/npm/node_modules/pacote/lib/util/pack-dir.js
@@ -14,8 +14,8 @@ function packDir (manifest, label, dir, target, opts) {
opts = optCheck(opts)
const packer = opts.dirPacker
- ? BB.resolve(opts.dirPacker(manifest, dir))
- : mkPacker(dir)
+ ? BB.resolve(opts.dirPacker(manifest, dir))
+ : mkPacker(dir)
if (!opts.cache) {
return packer.then(packer => pipe(packer, target))
diff --git a/deps/npm/node_modules/pacote/lib/with-tarball-stream.js b/deps/npm/node_modules/pacote/lib/with-tarball-stream.js
new file mode 100644
index 0000000000..653a4a688a
--- /dev/null
+++ b/deps/npm/node_modules/pacote/lib/with-tarball-stream.js
@@ -0,0 +1,135 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const cacache = require('cacache')
+const fetch = require('./fetch.js')
+const fs = require('fs')
+const npa = require('npm-package-arg')
+const optCheck = require('./util/opt-check.js')
+const path = require('path')
+const ssri = require('ssri')
+const retry = require('promise-retry')
+
+const statAsync = BB.promisify(fs.stat)
+
+const RETRIABLE_ERRORS = new Set(['ENOENT', 'EINTEGRITY', 'Z_DATA_ERROR'])
+
+module.exports = withTarballStream
+function withTarballStream (spec, opts, streamHandler) {
+ opts = optCheck(opts)
+ spec = npa(spec, opts.where)
+
+ // First, we check for a file: resolved shortcut
+ const tryFile = (
+ !opts.preferOnline &&
+ opts.integrity &&
+ opts.resolved &&
+ opts.resolved.startsWith('file:')
+ )
+ ? BB.try(() => {
+ // NOTE - this is a special shortcut! Packages installed as files do not
+ // have a `resolved` field -- this specific case only occurs when you have,
+ // say, a git dependency or a registry dependency that you've packaged into
+ // a local file, and put that file: spec in the `resolved` field.
+ opts.log.silly('pacote', `trying ${spec} by local file: ${opts.resolved}`)
+ const file = path.resolve(opts.where || '.', opts.resolved.substr(5))
+ return statAsync(file)
+ .then(() => {
+ const verifier = ssri.integrityStream({integrity: opts.integrity})
+ const stream = fs.createReadStream(file)
+ .on('error', err => verifier.emit('error', err))
+ .pipe(verifier)
+ return streamHandler(stream)
+ })
+ .catch(err => {
+ if (err.code === 'EINTEGRITY') {
+ opts.log.warn('pacote', `EINTEGRITY while extracting ${spec} from ${file}.You will have to recreate the file.`)
+ opts.log.verbose('pacote', `EINTEGRITY for ${spec}: ${err.message}`)
+ }
+ throw err
+ })
+ })
+ : BB.reject(Object.assign(new Error('no file!'), {code: 'ENOENT'}))
+
+ const tryDigest = tryFile
+ .catch(err => {
+ if (
+ opts.preferOnline ||
+ !opts.cache ||
+ !opts.integrity ||
+ !RETRIABLE_ERRORS.has(err.code)
+ ) {
+ throw err
+ } else {
+ opts.log.silly('tarball', `trying ${spec} by hash: ${opts.integrity}`)
+ const stream = cacache.get.stream.byDigest(
+ opts.cache, opts.integrity, opts
+ )
+ stream.once('error', err => stream.on('newListener', (ev, l) => {
+ if (ev === 'error') { l(err) }
+ }))
+ return streamHandler(stream)
+ .catch(err => {
+ if (err.code === 'EINTEGRITY' || err.code === 'Z_DATA_ERROR') {
+ opts.log.warn('tarball', `cached data for ${spec} (${opts.integrity}) seems to be corrupted. Refreshing cache.`)
+ return cleanUpCached(opts.cache, opts.integrity, opts)
+ .then(() => { throw err })
+ } else {
+ throw err
+ }
+ })
+ }
+ })
+
+ const trySpec = tryDigest
+ .catch(err => {
+ if (!RETRIABLE_ERRORS.has(err.code)) {
+ // If it's not one of our retriable errors, bail out and give up.
+ throw err
+ } else {
+ opts.log.silly(
+ 'tarball',
+ `no local data for ${spec}. Extracting by manifest.`
+ )
+ return BB.resolve(retry((tryAgain, attemptNum) => {
+ const tardata = fetch.tarball(spec, opts)
+ if (!opts.resolved) {
+ tardata.on('manifest', m => {
+ opts.resolved = m._resolved
+ })
+ tardata.on('integrity', i => {
+ opts.integrity = i
+ })
+ }
+ return BB.try(() => streamHandler(tardata))
+ .catch(err => {
+ // Retry once if we have a cache, to clear up any weird conditions.
+ // Don't retry network errors, though -- make-fetch-happen has already
+ // taken care of making sure we're all set on that front.
+ if (opts.cache && err.code && !err.code.match(/^E\d{3}$/)) {
+ if (err.code === 'EINTEGRITY' || err.code === 'Z_DATA_ERROR') {
+ opts.log.warn('tarball', `tarball data for ${spec} (${opts.integrity}) seems to be corrupted. Trying one more time.`)
+ }
+ return cleanUpCached(opts.cache, err.sri, opts)
+ .then(() => tryAgain(err))
+ } else {
+ throw err
+ }
+ })
+ }, {retries: 1}))
+ }
+ })
+
+ return trySpec
+ .catch(err => {
+ if (err.code === 'EINTEGRITY') {
+ err.message = `Verification failed while extracting ${spec}:\n${err.message}`
+ }
+ throw err
+ })
+}
+
+function cleanUpCached (cachePath, integrity, opts) {
+ return cacache.rm.content(cachePath, integrity, opts)
+}
diff --git a/deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js b/deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js
deleted file mode 100644
index ae45d3d9e7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/get-stream/buffer-stream.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const PassThrough = require('stream').PassThrough;
-
-module.exports = opts => {
- opts = Object.assign({}, opts);
-
- const array = opts.array;
- let encoding = opts.encoding;
- const buffer = encoding === 'buffer';
- let objectMode = false;
-
- if (array) {
- objectMode = !(encoding || buffer);
- } else {
- encoding = encoding || 'utf8';
- }
-
- if (buffer) {
- encoding = null;
- }
-
- let len = 0;
- const ret = [];
- const stream = new PassThrough({objectMode});
-
- if (encoding) {
- stream.setEncoding(encoding);
- }
-
- stream.on('data', chunk => {
- ret.push(chunk);
-
- if (objectMode) {
- len = ret.length;
- } else {
- len += chunk.length;
- }
- });
-
- stream.getBufferedValue = () => {
- if (array) {
- return ret;
- }
-
- return buffer ? Buffer.concat(ret, len) : ret.join('');
- };
-
- stream.getBufferedLength = () => len;
-
- return stream;
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/get-stream/index.js b/deps/npm/node_modules/pacote/node_modules/get-stream/index.js
deleted file mode 100644
index 2dc5ee96af..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/get-stream/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const bufferStream = require('./buffer-stream');
-
-function getStream(inputStream, opts) {
- if (!inputStream) {
- return Promise.reject(new Error('Expected a stream'));
- }
-
- opts = Object.assign({maxBuffer: Infinity}, opts);
-
- const maxBuffer = opts.maxBuffer;
- let stream;
- let clean;
-
- const p = new Promise((resolve, reject) => {
- const error = err => {
- if (err) { // null check
- err.bufferedData = stream.getBufferedValue();
- }
-
- reject(err);
- };
-
- stream = bufferStream(opts);
- inputStream.once('error', error);
- inputStream.pipe(stream);
-
- stream.on('data', () => {
- if (stream.getBufferedLength() > maxBuffer) {
- reject(new Error('maxBuffer exceeded'));
- }
- });
- stream.once('error', error);
- stream.on('end', resolve);
-
- clean = () => {
- // some streams doesn't implement the `stream.Readable` interface correctly
- if (inputStream.unpipe) {
- inputStream.unpipe(stream);
- }
- };
- });
-
- p.then(clean, clean);
-
- return p.then(() => stream.getBufferedValue());
-}
-
-module.exports = getStream;
-module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'}));
-module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true}));
diff --git a/deps/npm/node_modules/pacote/node_modules/get-stream/package.json b/deps/npm/node_modules/pacote/node_modules/get-stream/package.json
deleted file mode 100644
index 7670869c4b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/get-stream/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "get-stream@^3.0.0",
- "_id": "get-stream@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "_location": "/pacote/get-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-stream@^3.0.0",
- "name": "get-stream",
- "escapedName": "get-stream",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/pacote"
- ],
- "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
- "_spec": "get-stream@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/get-stream/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Get a stream as a string, buffer, or array",
- "devDependencies": {
- "ava": "*",
- "into-stream": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "buffer-stream.js"
- ],
- "homepage": "https://github.com/sindresorhus/get-stream#readme",
- "keywords": [
- "get",
- "stream",
- "promise",
- "concat",
- "string",
- "str",
- "text",
- "buffer",
- "read",
- "data",
- "consume",
- "readable",
- "readablestream",
- "array",
- "object",
- "obj"
- ],
- "license": "MIT",
- "name": "get-stream",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/get-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/get-stream/readme.md b/deps/npm/node_modules/pacote/node_modules/get-stream/readme.md
deleted file mode 100644
index 73b188fb42..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/get-stream/readme.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)
-
-> Get a stream as a string, buffer, or array
-
-
-## Install
-
-```
-$ npm install --save get-stream
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const getStream = require('get-stream');
-const stream = fs.createReadStream('unicorn.txt');
-
-getStream(stream).then(str => {
- console.log(str);
- /*
- ,,))))))));,
- __)))))))))))))),
- \|/ -\(((((''''((((((((.
- -*-==//////(('' . `)))))),
- /|\ ))| o ;-. '((((( ,(,
- ( `| / ) ;))))' ,_))^;(~
- | | | ,))((((_ _____------~~~-. %,;(;(>';'~
- o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
- ; ''''```` `: `:::|\,__,%% );`'; ~
- | _ ) / `:|`----' `-'
- ______/\/~ | / /
- /~;;.____/;;' / ___--,-( `;;;/
- / // _;______;'------~~~~~ /;;/\ /
- // | | / ; \;;,\
- (<_ | ; /',/-----' _>
- \_| ||_ //~;~~~~~~~~~
- `\_| (,~~
- \~\
- ~~
- */
-});
-```
-
-
-## API
-
-The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
-
-### getStream(stream, [options])
-
-Get the `stream` as a string.
-
-#### options
-
-##### encoding
-
-Type: `string`<br>
-Default: `utf8`
-
-[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
-
-##### maxBuffer
-
-Type: `number`<br>
-Default: `Infinity`
-
-Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.
-
-### getStream.buffer(stream, [options])
-
-Get the `stream` as a buffer.
-
-It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
-
-### getStream.array(stream, [options])
-
-Get the `stream` as an array of values.
-
-It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
-
-- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
-
-- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
-
-- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
-
-
-## Errors
-
-If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.
-
-```js
-getStream(streamThatErrorsAtTheEnd('unicorn'))
- .catch(err => {
- console.log(err.bufferedData);
- //=> 'unicorn'
- });
-```
-
-
-## FAQ
-
-### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?
-
-This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.
-
-
-## Related
-
-- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md
deleted file mode 100644
index f91df12721..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/CHANGELOG.md
+++ /dev/null
@@ -1,509 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="2.6.0"></a>
-# [2.6.0](https://github.com/zkat/make-fetch-happen/compare/v2.5.0...v2.6.0) (2017-11-14)
-
-
-### Bug Fixes
-
-* **integrity:** disable node-fetch compress when checking integrity (#42) ([a7cc74c](https://github.com/zkat/make-fetch-happen/commit/a7cc74c))
-
-
-### Features
-
-* **onretry:** Add `options.onRetry` (#48) ([f90ccff](https://github.com/zkat/make-fetch-happen/commit/f90ccff))
-
-
-
-<a name="2.5.0"></a>
-# [2.5.0](https://github.com/zkat/make-fetch-happen/compare/v2.4.13...v2.5.0) (2017-08-24)
-
-
-### Bug Fixes
-
-* **agent:** support timeout durations greater than 30 seconds ([04875ae](https://github.com/zkat/make-fetch-happen/commit/04875ae)), closes [#35](https://github.com/zkat/make-fetch-happen/issues/35)
-
-
-### Features
-
-* **cache:** export cache deletion functionality (#40) ([3da4250](https://github.com/zkat/make-fetch-happen/commit/3da4250))
-
-
-
-<a name="2.4.13"></a>
-## [2.4.13](https://github.com/zkat/make-fetch-happen/compare/v2.4.12...v2.4.13) (2017-06-29)
-
-
-### Bug Fixes
-
-* **deps:** bump other deps for bugfixes ([eab8297](https://github.com/zkat/make-fetch-happen/commit/eab8297))
-* **proxy:** bump proxy deps with bugfixes (#32) ([632f860](https://github.com/zkat/make-fetch-happen/commit/632f860)), closes [#32](https://github.com/zkat/make-fetch-happen/issues/32)
-
-
-
-<a name="2.4.12"></a>
-## [2.4.12](https://github.com/zkat/make-fetch-happen/compare/v2.4.11...v2.4.12) (2017-06-06)
-
-
-### Bug Fixes
-
-* **cache:** encode x-local-cache-etc headers to be header-safe ([dc9fb1b](https://github.com/zkat/make-fetch-happen/commit/dc9fb1b))
-
-
-
-<a name="2.4.11"></a>
-## [2.4.11](https://github.com/zkat/make-fetch-happen/compare/v2.4.10...v2.4.11) (2017-06-05)
-
-
-### Bug Fixes
-
-* **deps:** bump deps with ssri fix ([bef1994](https://github.com/zkat/make-fetch-happen/commit/bef1994))
-
-
-
-<a name="2.4.10"></a>
-## [2.4.10](https://github.com/zkat/make-fetch-happen/compare/v2.4.9...v2.4.10) (2017-05-31)
-
-
-### Bug Fixes
-
-* **deps:** bump dep versions with bugfixes ([0af4003](https://github.com/zkat/make-fetch-happen/commit/0af4003))
-* **proxy:** use auth parameter for proxy authentication (#30) ([c687306](https://github.com/zkat/make-fetch-happen/commit/c687306))
-
-
-
-<a name="2.4.9"></a>
-## [2.4.9](https://github.com/zkat/make-fetch-happen/compare/v2.4.8...v2.4.9) (2017-05-25)
-
-
-### Bug Fixes
-
-* **cache:** use the passed-in promise for resolving cache stuff ([4c46257](https://github.com/zkat/make-fetch-happen/commit/4c46257))
-
-
-
-<a name="2.4.8"></a>
-## [2.4.8](https://github.com/zkat/make-fetch-happen/compare/v2.4.7...v2.4.8) (2017-05-25)
-
-
-### Bug Fixes
-
-* **cache:** pass uid/gid/Promise through to cache ([a847c92](https://github.com/zkat/make-fetch-happen/commit/a847c92))
-
-
-
-<a name="2.4.7"></a>
-## [2.4.7](https://github.com/zkat/make-fetch-happen/compare/v2.4.6...v2.4.7) (2017-05-24)
-
-
-### Bug Fixes
-
-* **deps:** pull in various fixes from deps ([fc2a587](https://github.com/zkat/make-fetch-happen/commit/fc2a587))
-
-
-
-<a name="2.4.6"></a>
-## [2.4.6](https://github.com/zkat/make-fetch-happen/compare/v2.4.5...v2.4.6) (2017-05-24)
-
-
-### Bug Fixes
-
-* **proxy:** choose agent for http(s)-proxy by protocol of destUrl ([ea4832a](https://github.com/zkat/make-fetch-happen/commit/ea4832a))
-* **proxy:** make socks proxy working ([1de810a](https://github.com/zkat/make-fetch-happen/commit/1de810a))
-* **proxy:** revert previous proxy solution ([563b0d8](https://github.com/zkat/make-fetch-happen/commit/563b0d8))
-
-
-
-<a name="2.4.5"></a>
-## [2.4.5](https://github.com/zkat/make-fetch-happen/compare/v2.4.4...v2.4.5) (2017-05-24)
-
-
-### Bug Fixes
-
-* **proxy:** use the destination url when determining agent ([1a714e7](https://github.com/zkat/make-fetch-happen/commit/1a714e7))
-
-
-
-<a name="2.4.4"></a>
-## [2.4.4](https://github.com/zkat/make-fetch-happen/compare/v2.4.3...v2.4.4) (2017-05-23)
-
-
-### Bug Fixes
-
-* **redirect:** handle redirects explicitly (#27) ([4c4af54](https://github.com/zkat/make-fetch-happen/commit/4c4af54))
-
-
-
-<a name="2.4.3"></a>
-## [2.4.3](https://github.com/zkat/make-fetch-happen/compare/v2.4.2...v2.4.3) (2017-05-06)
-
-
-### Bug Fixes
-
-* **redirect:** redirects now delete authorization if hosts fail to match ([c071805](https://github.com/zkat/make-fetch-happen/commit/c071805))
-
-
-
-<a name="2.4.2"></a>
-## [2.4.2](https://github.com/zkat/make-fetch-happen/compare/v2.4.1...v2.4.2) (2017-05-04)
-
-
-### Bug Fixes
-
-* **cache:** reduce race condition window by checking for content ([24544b1](https://github.com/zkat/make-fetch-happen/commit/24544b1))
-* **match:** Rewrite the conditional stream logic (#25) ([66bba4b](https://github.com/zkat/make-fetch-happen/commit/66bba4b))
-
-
-
-<a name="2.4.1"></a>
-## [2.4.1](https://github.com/zkat/make-fetch-happen/compare/v2.4.0...v2.4.1) (2017-04-28)
-
-
-### Bug Fixes
-
-* **memoization:** missed spots + allow passthrough of memo objs ([ac0cd12](https://github.com/zkat/make-fetch-happen/commit/ac0cd12))
-
-
-
-<a name="2.4.0"></a>
-# [2.4.0](https://github.com/zkat/make-fetch-happen/compare/v2.3.0...v2.4.0) (2017-04-28)
-
-
-### Bug Fixes
-
-* **memoize:** cacache had a broken memoizer ([8a9ed4c](https://github.com/zkat/make-fetch-happen/commit/8a9ed4c))
-
-
-### Features
-
-* **memoization:** only slurp stuff into memory if opts.memoize is not false ([0744adc](https://github.com/zkat/make-fetch-happen/commit/0744adc))
-
-
-
-<a name="2.3.0"></a>
-# [2.3.0](https://github.com/zkat/make-fetch-happen/compare/v2.2.6...v2.3.0) (2017-04-27)
-
-
-### Features
-
-* **agent:** added opts.strictSSL and opts.localAddress ([c35015a](https://github.com/zkat/make-fetch-happen/commit/c35015a))
-* **proxy:** Added opts.noProxy and NO_PROXY support ([f45c915](https://github.com/zkat/make-fetch-happen/commit/f45c915))
-
-
-
-<a name="2.2.6"></a>
-## [2.2.6](https://github.com/zkat/make-fetch-happen/compare/v2.2.5...v2.2.6) (2017-04-26)
-
-
-### Bug Fixes
-
-* **agent:** check uppercase & lowercase proxy env (#24) ([acf2326](https://github.com/zkat/make-fetch-happen/commit/acf2326)), closes [#22](https://github.com/zkat/make-fetch-happen/issues/22)
-* **deps:** switch to node-fetch-npm and stop bundling ([3db603b](https://github.com/zkat/make-fetch-happen/commit/3db603b))
-
-
-
-<a name="2.2.5"></a>
-## [2.2.5](https://github.com/zkat/make-fetch-happen/compare/v2.2.4...v2.2.5) (2017-04-23)
-
-
-### Bug Fixes
-
-* **deps:** bump cacache and use its size feature ([926c1d3](https://github.com/zkat/make-fetch-happen/commit/926c1d3))
-
-
-
-<a name="2.2.4"></a>
-## [2.2.4](https://github.com/zkat/make-fetch-happen/compare/v2.2.3...v2.2.4) (2017-04-18)
-
-
-### Bug Fixes
-
-* **integrity:** hash verification issues fixed ([07f9402](https://github.com/zkat/make-fetch-happen/commit/07f9402))
-
-
-
-<a name="2.2.3"></a>
-## [2.2.3](https://github.com/zkat/make-fetch-happen/compare/v2.2.2...v2.2.3) (2017-04-18)
-
-
-### Bug Fixes
-
-* **staleness:** responses older than 8h were never stale :< ([b54dd75](https://github.com/zkat/make-fetch-happen/commit/b54dd75))
-* **warning:** remove spurious warning, make format more spec-compliant ([2e4f6bb](https://github.com/zkat/make-fetch-happen/commit/2e4f6bb))
-
-
-
-<a name="2.2.2"></a>
-## [2.2.2](https://github.com/zkat/make-fetch-happen/compare/v2.2.1...v2.2.2) (2017-04-12)
-
-
-### Bug Fixes
-
-* **retry:** stop retrying 404s ([6fafd53](https://github.com/zkat/make-fetch-happen/commit/6fafd53))
-
-
-
-<a name="2.2.1"></a>
-## [2.2.1](https://github.com/zkat/make-fetch-happen/compare/v2.2.0...v2.2.1) (2017-04-10)
-
-
-### Bug Fixes
-
-* **deps:** move test-only deps to devDeps ([2daaf80](https://github.com/zkat/make-fetch-happen/commit/2daaf80))
-
-
-
-<a name="2.2.0"></a>
-# [2.2.0](https://github.com/zkat/make-fetch-happen/compare/v2.1.0...v2.2.0) (2017-04-09)
-
-
-### Bug Fixes
-
-* **cache:** treat caches as private ([57b7dc2](https://github.com/zkat/make-fetch-happen/commit/57b7dc2))
-
-
-### Features
-
-* **retry:** accept shorthand retry settings ([dfed69d](https://github.com/zkat/make-fetch-happen/commit/dfed69d))
-
-
-
-<a name="2.1.0"></a>
-# [2.1.0](https://github.com/zkat/make-fetch-happen/compare/v2.0.4...v2.1.0) (2017-04-09)
-
-
-### Features
-
-* **cache:** cache now obeys Age and a variety of other things (#13) ([7b9652d](https://github.com/zkat/make-fetch-happen/commit/7b9652d))
-
-
-
-<a name="2.0.4"></a>
-## [2.0.4](https://github.com/zkat/make-fetch-happen/compare/v2.0.3...v2.0.4) (2017-04-09)
-
-
-### Bug Fixes
-
-* **agent:** accept Request as fetch input, not just strings ([b71669a](https://github.com/zkat/make-fetch-happen/commit/b71669a))
-
-
-
-<a name="2.0.3"></a>
-## [2.0.3](https://github.com/zkat/make-fetch-happen/compare/v2.0.2...v2.0.3) (2017-04-09)
-
-
-### Bug Fixes
-
-* **deps:** seriously ([c29e7e7](https://github.com/zkat/make-fetch-happen/commit/c29e7e7))
-
-
-
-<a name="2.0.2"></a>
-## [2.0.2](https://github.com/zkat/make-fetch-happen/compare/v2.0.1...v2.0.2) (2017-04-09)
-
-
-### Bug Fixes
-
-* **deps:** use bundleDeps instead ([c36ebf0](https://github.com/zkat/make-fetch-happen/commit/c36ebf0))
-
-
-
-<a name="2.0.1"></a>
-## [2.0.1](https://github.com/zkat/make-fetch-happen/compare/v2.0.0...v2.0.1) (2017-04-09)
-
-
-### Bug Fixes
-
-* **deps:** make sure node-fetch tarball included in release ([3bf49d1](https://github.com/zkat/make-fetch-happen/commit/3bf49d1))
-
-
-
-<a name="2.0.0"></a>
-# [2.0.0](https://github.com/zkat/make-fetch-happen/compare/v1.7.0...v2.0.0) (2017-04-09)
-
-
-### Bug Fixes
-
-* **deps:** manually pull in newer node-fetch to avoid babel prod dep ([66e5e87](https://github.com/zkat/make-fetch-happen/commit/66e5e87))
-* **retry:** be more specific about when we retry ([a47b782](https://github.com/zkat/make-fetch-happen/commit/a47b782))
-
-
-### Features
-
-* **agent:** add ca/cert/key support to auto-agent (#15) ([57585a7](https://github.com/zkat/make-fetch-happen/commit/57585a7))
-
-
-### BREAKING CHANGES
-
-* **agent:** pac proxies are no longer supported.
-* **retry:** Retry logic has changes.
-
-* 404s, 420s, and 429s all retry now.
-* ENOTFOUND no longer retries.
-* Only ECONNRESET, ECONNREFUSED, EADDRINUSE, ETIMEDOUT, and `request-timeout` errors are retried.
-
-
-
-<a name="1.7.0"></a>
-# [1.7.0](https://github.com/zkat/make-fetch-happen/compare/v1.6.0...v1.7.0) (2017-04-08)
-
-
-### Features
-
-* **cache:** add useful headers to inform users about cached data ([9bd7b00](https://github.com/zkat/make-fetch-happen/commit/9bd7b00))
-
-
-
-<a name="1.6.0"></a>
-# [1.6.0](https://github.com/zkat/make-fetch-happen/compare/v1.5.1...v1.6.0) (2017-04-06)
-
-
-### Features
-
-* **agent:** better, keepalive-supporting, default http agents ([16277f6](https://github.com/zkat/make-fetch-happen/commit/16277f6))
-
-
-
-<a name="1.5.1"></a>
-## [1.5.1](https://github.com/zkat/make-fetch-happen/compare/v1.5.0...v1.5.1) (2017-04-05)
-
-
-### Bug Fixes
-
-* **cache:** bump cacache for its fixed error messages ([2f2b916](https://github.com/zkat/make-fetch-happen/commit/2f2b916))
-* **cache:** fix handling of errors in cache reads ([5729222](https://github.com/zkat/make-fetch-happen/commit/5729222))
-
-
-
-<a name="1.5.0"></a>
-# [1.5.0](https://github.com/zkat/make-fetch-happen/compare/v1.4.0...v1.5.0) (2017-04-04)
-
-
-### Features
-
-* **retry:** retry requests on 408 timeouts, too ([8d8b5bd](https://github.com/zkat/make-fetch-happen/commit/8d8b5bd))
-
-
-
-<a name="1.4.0"></a>
-# [1.4.0](https://github.com/zkat/make-fetch-happen/compare/v1.3.1...v1.4.0) (2017-04-04)
-
-
-### Bug Fixes
-
-* **cache:** stop relying on BB.catch ([2b04494](https://github.com/zkat/make-fetch-happen/commit/2b04494))
-
-
-### Features
-
-* **retry:** report retry attempt number as extra header ([fd50927](https://github.com/zkat/make-fetch-happen/commit/fd50927))
-
-
-
-<a name="1.3.1"></a>
-## [1.3.1](https://github.com/zkat/make-fetch-happen/compare/v1.3.0...v1.3.1) (2017-04-04)
-
-
-### Bug Fixes
-
-* **cache:** pretend cache entry is missing on ENOENT ([9c2bb26](https://github.com/zkat/make-fetch-happen/commit/9c2bb26))
-
-
-
-<a name="1.3.0"></a>
-# [1.3.0](https://github.com/zkat/make-fetch-happen/compare/v1.2.1...v1.3.0) (2017-04-04)
-
-
-### Bug Fixes
-
-* **cache:** if metadata is missing for some odd reason, ignore the entry ([a021a6b](https://github.com/zkat/make-fetch-happen/commit/a021a6b))
-
-
-### Features
-
-* **cache:** add special headers when request was loaded straight from cache ([8a7dbd1](https://github.com/zkat/make-fetch-happen/commit/8a7dbd1))
-* **cache:** allow configuring algorithms to be calculated on insertion ([bf4a0f2](https://github.com/zkat/make-fetch-happen/commit/bf4a0f2))
-
-
-
-<a name="1.2.1"></a>
-## [1.2.1](https://github.com/zkat/make-fetch-happen/compare/v1.2.0...v1.2.1) (2017-04-03)
-
-
-### Bug Fixes
-
-* **integrity:** update cacache and ssri and change EBADCHECKSUM -> EINTEGRITY ([b6cf6f6](https://github.com/zkat/make-fetch-happen/commit/b6cf6f6))
-
-
-
-<a name="1.2.0"></a>
-# [1.2.0](https://github.com/zkat/make-fetch-happen/compare/v1.1.0...v1.2.0) (2017-04-03)
-
-
-### Features
-
-* **integrity:** full Subresource Integrity support (#10) ([a590159](https://github.com/zkat/make-fetch-happen/commit/a590159))
-
-
-
-<a name="1.1.0"></a>
-# [1.1.0](https://github.com/zkat/make-fetch-happen/compare/v1.0.1...v1.1.0) (2017-04-01)
-
-
-### Features
-
-* **opts:** fetch.defaults() for default options ([522a65e](https://github.com/zkat/make-fetch-happen/commit/522a65e))
-
-
-
-<a name="1.0.1"></a>
-## [1.0.1](https://github.com/zkat/make-fetch-happen/compare/v1.0.0...v1.0.1) (2017-04-01)
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-04-01)
-
-
-### Bug Fixes
-
-* **cache:** default on cache-control header ([b872a2c](https://github.com/zkat/make-fetch-happen/commit/b872a2c))
-* standard stuff and cache matching ([753f2c2](https://github.com/zkat/make-fetch-happen/commit/753f2c2))
-* **agent:** nudge around things with opts.agent ([ed62b57](https://github.com/zkat/make-fetch-happen/commit/ed62b57))
-* **agent:** {agent: false} has special behavior ([b8cc923](https://github.com/zkat/make-fetch-happen/commit/b8cc923))
-* **cache:** invalidation on non-GET ([fe78fac](https://github.com/zkat/make-fetch-happen/commit/fe78fac))
-* **cache:** make force-cache and only-if-cached work as expected ([f50e9df](https://github.com/zkat/make-fetch-happen/commit/f50e9df))
-* **cache:** more spec compliance ([d5a56db](https://github.com/zkat/make-fetch-happen/commit/d5a56db))
-* **cache:** only cache 200 gets ([0abb25a](https://github.com/zkat/make-fetch-happen/commit/0abb25a))
-* **cache:** only load cache code if cache opt is a string ([250fcd5](https://github.com/zkat/make-fetch-happen/commit/250fcd5))
-* **cache:** oops ([e3fa15a](https://github.com/zkat/make-fetch-happen/commit/e3fa15a))
-* **cache:** refactored warning removal into main file ([5b0a9f9](https://github.com/zkat/make-fetch-happen/commit/5b0a9f9))
-* **cache:** req constructor no longer needed in Cache ([5b74cbc](https://github.com/zkat/make-fetch-happen/commit/5b74cbc))
-* **cache:** standard fetch api calls cacheMode "cache" ([6fba805](https://github.com/zkat/make-fetch-happen/commit/6fba805))
-* **cache:** was using wrong method for non-GET/HEAD cache invalidation ([810763a](https://github.com/zkat/make-fetch-happen/commit/810763a))
-* **caching:** a bunch of cache-related fixes ([8ebda1d](https://github.com/zkat/make-fetch-happen/commit/8ebda1d))
-* **deps:** `cacache[@6](https://github.com/6).3.0` - race condition fixes ([9528442](https://github.com/zkat/make-fetch-happen/commit/9528442))
-* **freshness:** fix regex for cacheControl matching ([070db86](https://github.com/zkat/make-fetch-happen/commit/070db86))
-* **freshness:** fixed default freshness heuristic value ([5d29e88](https://github.com/zkat/make-fetch-happen/commit/5d29e88))
-* **logging:** remove console.log calls ([a1d0a47](https://github.com/zkat/make-fetch-happen/commit/a1d0a47))
-* **method:** node-fetch guarantees uppercase ([a1d68d6](https://github.com/zkat/make-fetch-happen/commit/a1d68d6))
-* **opts:** simplified opts handling ([516fd6e](https://github.com/zkat/make-fetch-happen/commit/516fd6e))
-* **proxy:** pass proxy option directly to ProxyAgent ([3398460](https://github.com/zkat/make-fetch-happen/commit/3398460))
-* **retry:** false -> {retries: 0} ([297fbb6](https://github.com/zkat/make-fetch-happen/commit/297fbb6))
-* **retry:** only retry put if body is not a stream ([a24e599](https://github.com/zkat/make-fetch-happen/commit/a24e599))
-* **retry:** skip retries if body is a stream for ANY method ([780c0f8](https://github.com/zkat/make-fetch-happen/commit/780c0f8))
-
-
-### Features
-
-* **api:** initial implementation -- can make and cache requests ([7d55b49](https://github.com/zkat/make-fetch-happen/commit/7d55b49))
-* **fetch:** injectable cache, and retry support ([87b84bf](https://github.com/zkat/make-fetch-happen/commit/87b84bf))
-
-
-### BREAKING CHANGES
-
-* **cache:** opts.cache -> opts.cacheManager; opts.cacheMode -> opts.cache
-* **fetch:** opts.cache accepts a Cache-like obj or a path. Requests are now retried.
-* **api:** actual api implemented
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE
deleted file mode 100644
index c05cb09586..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/LICENSE
+++ /dev/null
@@ -1,3 +0,0 @@
-To the extent possible under law, maintainers for this project have waived all copyright and related or neighboring rights to this project.
-
-For more information on this waiver, see: https://creativecommons.org/publicdomain/zero/1.0/
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js
deleted file mode 100644
index 69bfab6647..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/agent.js
+++ /dev/null
@@ -1,171 +0,0 @@
-'use strict'
-const LRU = require('lru-cache')
-const url = require('url')
-
-let AGENT_CACHE = new LRU({ max: 50 })
-let HttpsAgent
-let HttpAgent
-
-module.exports = getAgent
-
-function getAgent (uri, opts) {
- const parsedUri = url.parse(typeof uri === 'string' ? uri : uri.url)
- const isHttps = parsedUri.protocol === 'https:'
- const pxuri = getProxyUri(uri, opts)
-
- const key = [
- `https:${isHttps}`,
- pxuri
- ? `proxy:${pxuri.protocol}//${pxuri.host}:${pxuri.port}`
- : '>no-proxy<',
- `local-address:${opts.localAddress || '>no-local-address<'}`,
- `strict-ssl:${isHttps ? !!opts.strictSSL : '>no-strict-ssl<'}`,
- `ca:${(isHttps && opts.ca) || '>no-ca<'}`,
- `cert:${(isHttps && opts.cert) || '>no-cert<'}`,
- `key:${(isHttps && opts.key) || '>no-key<'}`
- ].join(':')
-
- if (opts.agent != null) { // `agent: false` has special behavior!
- return opts.agent
- }
-
- if (AGENT_CACHE.peek(key)) {
- return AGENT_CACHE.get(key)
- }
-
- if (pxuri) {
- const proxy = getProxy(pxuri, opts, isHttps)
- AGENT_CACHE.set(key, proxy)
- return proxy
- }
-
- if (isHttps && !HttpsAgent) {
- HttpsAgent = require('agentkeepalive').HttpsAgent
- } else if (!isHttps && !HttpAgent) {
- HttpAgent = require('agentkeepalive')
- }
-
- // If opts.timeout is zero, set the agentTimeout to zero as well. A timeout
- // of zero disables the timeout behavior (OS limits still apply). Else, if
- // opts.timeout is a non-zero value, set it to timeout + 1, to ensure that
- // the node-fetch-npm timeout will always fire first, giving us more
- // consistent errors.
- const agentTimeout = opts.timeout === 0 ? 0 : opts.timeout + 1
-
- const agent = isHttps ? new HttpsAgent({
- maxSockets: opts.maxSockets || 15,
- ca: opts.ca,
- cert: opts.cert,
- key: opts.key,
- localAddress: opts.localAddress,
- rejectUnauthorized: opts.strictSSL,
- timeout: agentTimeout
- }) : new HttpAgent({
- maxSockets: opts.maxSockets || 15,
- localAddress: opts.localAddress,
- timeout: agentTimeout
- })
- AGENT_CACHE.set(key, agent)
- return agent
-}
-
-function checkNoProxy (uri, opts) {
- const host = url.parse(uri).hostname.split('.').reverse()
- let noproxy = (opts.noProxy || getProcessEnv('no_proxy'))
- if (typeof noproxy === 'string') {
- noproxy = noproxy.split(/\s*,\s*/g)
- }
- return noproxy && noproxy.some(no => {
- const noParts = no.split('.').filter(x => x).reverse()
- if (!noParts.length) { return false }
- for (let i = 0; i < noParts.length; i++) {
- if (host[i] !== noParts[i]) {
- return false
- }
- }
- return true
- })
-}
-
-module.exports.getProcessEnv = getProcessEnv
-
-function getProcessEnv (env) {
- if (!env) { return }
-
- let value
-
- if (Array.isArray(env)) {
- for (let e of env) {
- value = process.env[e] ||
- process.env[e.toUpperCase()] ||
- process.env[e.toLowerCase()]
- if (typeof value !== 'undefined') { break }
- }
- }
-
- if (typeof env === 'string') {
- value = process.env[env] ||
- process.env[env.toUpperCase()] ||
- process.env[env.toLowerCase()]
- }
-
- return value
-}
-
-function getProxyUri (uri, opts) {
- const protocol = url.parse(uri).protocol
-
- const proxy = opts.proxy || (
- protocol === 'https:' && getProcessEnv('https_proxy')
- ) || (
- protocol === 'http:' && getProcessEnv(['https_proxy', 'http_proxy', 'proxy'])
- )
- if (!proxy) { return null }
-
- const parsedProxy = (typeof proxy === 'string') ? url.parse(proxy) : proxy
-
- return !checkNoProxy(uri, opts) && parsedProxy
-}
-
-let HttpProxyAgent
-let HttpsProxyAgent
-let SocksProxyAgent
-function getProxy (proxyUrl, opts, isHttps) {
- let popts = {
- host: proxyUrl.hostname,
- port: proxyUrl.port,
- protocol: proxyUrl.protocol,
- path: proxyUrl.path,
- auth: proxyUrl.auth,
- ca: opts.ca,
- cert: opts.cert,
- key: opts.key,
- timeout: opts.timeout === 0 ? 0 : opts.timeout + 1,
- localAddress: opts.localAddress,
- maxSockets: opts.maxSockets || 15,
- rejectUnauthorized: opts.strictSSL
- }
-
- if (proxyUrl.protocol === 'http:' || proxyUrl.protocol === 'https:') {
- if (!isHttps) {
- if (!HttpProxyAgent) {
- HttpProxyAgent = require('http-proxy-agent')
- }
-
- return new HttpProxyAgent(popts)
- } else {
- if (!HttpsProxyAgent) {
- HttpsProxyAgent = require('https-proxy-agent')
- }
-
- return new HttpsProxyAgent(popts)
- }
- }
- if (proxyUrl.protocol.startsWith('socks')) {
- if (!SocksProxyAgent) {
- SocksProxyAgent = require('socks-proxy-agent')
- }
-
- return new SocksProxyAgent(popts)
- }
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md
deleted file mode 100644
index e62374ef13..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/History.md
+++ /dev/null
@@ -1,130 +0,0 @@
-
-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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md
deleted file mode 100644
index c8d8d2f3be..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/README.md
+++ /dev/null
@@ -1,248 +0,0 @@
-# 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 HTTP KeepAlive, how often
- to send TCP KeepAlive packets over sockets being kept alive.
- 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 <fengmk2@gmail.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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js
deleted file mode 100644
index 29c9398aa5..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/browser.js
+++ /dev/null
@@ -1,5 +0,0 @@
-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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js
deleted file mode 100644
index 6138131a9b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/index.js
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-
-module.exports = require('./lib/agent');
-module.exports.HttpsAgent = require('./lib/https_agent');
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js
deleted file mode 100644
index 57723d9c98..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/_http_agent.js
+++ /dev/null
@@ -1,399 +0,0 @@
-// 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
- socket.setTimeout(self.freeSocketKeepAliveTimeout);
- // [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) {
- // Legacy API: addRequest(req, host, port, localAddress)
- if (typeof options === 'string') {
- options = {
- host: options,
- port: arguments[2],
- localAddress: arguments[3]
- };
- }
-
- options = util._extend({}, options);
- options = util._extend(options, this.options);
-
- if (!options.servername) {
- options.servername = options.host;
- const hostHeader = req.getHeader('host');
- if (hostHeader) {
- options.servername = hostHeader.replace(/:.*$/, '');
- }
- }
-
- 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 = options.host;
- const hostHeader = req.getHeader('host');
- if (hostHeader) {
- options.servername = hostHeader.replace(/:.*$/, '');
- }
- }
-
- 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);
- }
-};
-
-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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js
deleted file mode 100644
index a51ad597bc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/agent.js
+++ /dev/null
@@ -1,133 +0,0 @@
-/**
- * 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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
deleted file mode 100644
index e6d58a3df9..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/lib/https_agent.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * 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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md
deleted file mode 100644
index b159587050..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/History.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-1.2.1 / 2017-05-19
-==================
-
- * fix: package.json to reduce vulnerabilities (#3)
-
-1.2.0 / 2016-05-21
-==================
-
- * feat: warn with stack
-
-1.1.0 / 2016-04-04
-==================
-
- * deps: upgrade ms to 0.7.0
-
-1.0.1 / 2014-12-31
-==================
-
- * feat(index.js): warn when result is undefined
-
-1.0.0 / 2014-08-14
-==================
-
- * init
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE
deleted file mode 100644
index 89de354795..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/LICENSE
+++ /dev/null
@@ -1,17 +0,0 @@
-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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md
deleted file mode 100644
index 20a2ca35b8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-humanize-ms
----------------
-
-[![NPM version][npm-image]][npm-url]
-[![build status][travis-image]][travis-url]
-[![Test coverage][coveralls-image]][coveralls-url]
-[![Gittip][gittip-image]][gittip-url]
-[![David deps][david-image]][david-url]
-
-[npm-image]: https://img.shields.io/npm/v/humanize-ms.svg?style=flat
-[npm-url]: https://npmjs.org/package/humanize-ms
-[travis-image]: https://img.shields.io/travis/node-modules/humanize-ms.svg?style=flat
-[travis-url]: https://travis-ci.org/node-modules/humanize-ms
-[coveralls-image]: https://img.shields.io/coveralls/node-modules/humanize-ms.svg?style=flat
-[coveralls-url]: https://coveralls.io/r/node-modules/humanize-ms?branch=master
-[gittip-image]: https://img.shields.io/gittip/dead-horse.svg?style=flat
-[gittip-url]: https://www.gittip.com/dead-horse/
-[david-image]: https://img.shields.io/david/node-modules/humanize-ms.svg?style=flat
-[david-url]: https://david-dm.org/node-modules/humanize-ms
-
-transform humanize time to ms
-
-## Installation
-
-```bash
-$ npm install humanize-ms
-```
-
-## Examples
-
-```js
-var ms = require('humanize-ms');
-
-ms('1s') // 1000
-ms(1000) // 1000
-```
-
-### License
-
-MIT
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js
deleted file mode 100644
index 660df81def..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/index.js
+++ /dev/null
@@ -1,24 +0,0 @@
-/*!
- * humanize-ms - index.js
- * Copyright(c) 2014 dead_horse <dead_horse@qq.com>
- * MIT Licensed
- */
-
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-var util = require('util');
-var ms = require('ms');
-
-module.exports = function (t) {
- if (typeof t === 'number') return t;
- var r = ms(t);
- if (r === undefined) {
- var err = new Error(util.format('humanize-ms(%j) result undefined', t));
- console.warn(err.stack);
- }
- return r;
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js
deleted file mode 100644
index 6a522b16b3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md
deleted file mode 100644
index 69b61253a3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json
deleted file mode 100644
index 5bf17fa25e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@^2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/pacote/make-fetch-happen/agentkeepalive/humanize-ms/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ms@^2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/agentkeepalive/humanize-ms"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974ccc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json
deleted file mode 100644
index b00c740c85..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/node_modules/humanize-ms/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "humanize-ms@^1.2.1",
- "_id": "humanize-ms@1.2.1",
- "_inBundle": false,
- "_integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=",
- "_location": "/pacote/make-fetch-happen/agentkeepalive/humanize-ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "humanize-ms@^1.2.1",
- "name": "humanize-ms",
- "escapedName": "humanize-ms",
- "rawSpec": "^1.2.1",
- "saveSpec": null,
- "fetchSpec": "^1.2.1"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/agentkeepalive"
- ],
- "_resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
- "_shasum": "c46e3159a293f6b896da29316d8b6fe8bb79bbed",
- "_spec": "humanize-ms@^1.2.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive",
- "author": {
- "name": "dead-horse",
- "email": "dead_horse@qq.com",
- "url": "http://deadhorse.me"
- },
- "bugs": {
- "url": "https://github.com/node-modules/humanize-ms/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ms": "^2.0.0"
- },
- "deprecated": false,
- "description": "transform humanize time to ms",
- "devDependencies": {
- "autod": "*",
- "beautify-benchmark": "~0.2.4",
- "benchmark": "~1.0.0",
- "istanbul": "*",
- "mocha": "*",
- "should": "*"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/node-modules/humanize-ms#readme",
- "keywords": [
- "humanize",
- "ms"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "humanize-ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/node-modules/humanize-ms.git"
- },
- "scripts": {
- "test": "make test"
- },
- "version": "1.2.1"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json
deleted file mode 100644
index a9f0b55de0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/agentkeepalive/package.json
+++ /dev/null
@@ -1,82 +0,0 @@
-{
- "_from": "agentkeepalive@^3.3.0",
- "_id": "agentkeepalive@3.3.0",
- "_inBundle": false,
- "_integrity": "sha512-9yhcpXti2ZQE7bxuCsjjWNIZoQOd9sZ1ZBovHG0YeCRohFv73SLvcm73PC9T3olM4GyozaQb+4MGdQpcD8m7NQ==",
- "_location": "/pacote/make-fetch-happen/agentkeepalive",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agentkeepalive@^3.3.0",
- "name": "agentkeepalive",
- "escapedName": "agentkeepalive",
- "rawSpec": "^3.3.0",
- "saveSpec": null,
- "fetchSpec": "^3.3.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.3.0.tgz",
- "_shasum": "6d5de5829afd3be2712201a39275fd11c651857c",
- "_spec": "agentkeepalive@^3.3.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/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, 7, 8"
- },
- "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.3.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md
deleted file mode 100644
index 5dc07ac58c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/README.md
+++ /dev/null
@@ -1,173 +0,0 @@
-# Can I cache this? [![Build Status](https://travis-ci.org/pornel/http-cache-semantics.svg?branch=master)](https://travis-ci.org/pornel/http-cache-semantics)
-
-`CachePolicy` tells when responses can be reused from a cache, taking into account [HTTP RFC 7234](http://httpwg.org/specs/rfc7234.html) rules for user agents and shared caches. It's aware of many tricky details such as the `Vary` header, proxy revalidation, and authenticated responses.
-
-## Usage
-
-Cacheability of an HTTP response depends on how it was requested, so both `request` and `response` are required to create the policy.
-
-```js
-const policy = new CachePolicy(request, response, options);
-
-if (!policy.storable()) {
- // throw the response away, it's not usable at all
- return;
-}
-
-// Cache the data AND the policy object in your cache
-// (this is pseudocode, roll your own cache (lru-cache package works))
-letsPretendThisIsSomeCache.set(request.url, {policy, response}, policy.timeToLive());
-```
-
-```js
-// And later, when you receive a new request:
-const {policy, response} = letsPretendThisIsSomeCache.get(newRequest.url);
-
-// It's not enough that it exists in the cache, it has to match the new request, too:
-if (policy && policy.satisfiesWithoutRevalidation(newRequest)) {
- // OK, the previous response can be used to respond to the `newRequest`.
- // Response headers have to be updated, e.g. to add Age and remove uncacheable headers.
- response.headers = policy.responseHeaders();
- return response;
-}
-```
-
-It may be surprising, but it's not enough for an HTTP response to be [fresh](#yo-fresh) to satisfy a request. It may need to match request headers specified in `Vary`. Even a matching fresh response may still not be usable if the new request restricted cacheability, etc.
-
-The key method is `satisfiesWithoutRevalidation(newRequest)`, which checks whether the `newRequest` is compatible with the original request and whether all caching conditions are met.
-
-### Constructor options
-
-Request and response must have a `headers` property with all header names in lower case. `url`, `status` and `method` are optional (defaults are any URL, status `200`, and `GET` method).
-
-```js
-const request = {
- url: '/',
- method: 'GET',
- headers: {
- accept: '*/*',
- },
-};
-
-const response = {
- status: 200,
- headers: {
- 'cache-control': 'public, max-age=7234',
- },
-};
-
-const options = {
- shared: true,
- cacheHeuristic: 0.1,
- immutableMinTimeToLive: 24*3600*1000, // 24h
- ignoreCargoCult: false,
-};
-```
-
-If `options.shared` is `true` (default), then the response is evaluated from a perspective of a shared cache (i.e. `private` is not cacheable and `s-maxage` is respected). If `options.shared` is `false`, then the response is evaluated from a perspective of a single-user cache (i.e. `private` is cacheable and `s-maxage` is ignored).
-
-`options.cacheHeuristic` is a fraction of response's age that is used as a fallback cache duration. The default is 0.1 (10%), e.g. if a file hasn't been modified for 100 days, it'll be cached for 100*0.1 = 10 days.
-
-`options.immutableMinTimeToLive` is a number of milliseconds to assume as the default time to cache responses with `Cache-Control: immutable`. Note that [per RFC](http://httpwg.org/http-extensions/immutable.html) these can become stale, so `max-age` still overrides the default.
-
-If `options.ignoreCargoCult` is true, common anti-cache directives will be completely ignored if the non-standard `pre-check` and `post-check` directives are present. These two useless directives are most commonly found in bad StackOverflow answers and PHP's "session limiter" defaults.
-
-### `storable()`
-
-Returns `true` if the response can be stored in a cache. If it's `false` then you MUST NOT store either the request or the response.
-
-### `satisfiesWithoutRevalidation(newRequest)`
-
-This is the most important method. Use this method to check whether the cached response is still fresh in the context of the new request.
-
-If it returns `true`, then the given `request` matches the original response this cache policy has been created with, and the response can be reused without contacting the server. Note that the old response can't be returned without being updated, see `responseHeaders()`.
-
-If it returns `false`, then the response may not be matching at all (e.g. it's for a different URL or method), or may require to be refreshed first (see `revalidationHeaders()`).
-
-### `responseHeaders()`
-
-Returns updated, filtered set of response headers to return to clients receiving the cached response. This function is necessary, because proxies MUST always remove hop-by-hop headers (such as `TE` and `Connection`) and update response's `Age` to avoid doubling cache time.
-
-```js
-cachedResponse.headers = cachePolicy.responseHeaders(cachedResponse);
-```
-
-### `timeToLive()`
-
-Returns approximate time in *milliseconds* until the response becomes stale (i.e. not fresh).
-
-After that time (when `timeToLive() <= 0`) the response might not be usable without revalidation. However, there are exceptions, e.g. a client can explicitly allow stale responses, so always check with `satisfiesWithoutRevalidation()`.
-
-### `toObject()`/`fromObject(json)`
-
-Chances are you'll want to store the `CachePolicy` object along with the cached response. `obj = policy.toObject()` gives a plain JSON-serializable object. `policy = CachePolicy.fromObject(obj)` creates an instance from it.
-
-### Refreshing stale cache (revalidation)
-
-When a cached response has expired, it can be made fresh again by making a request to the origin server. The server may respond with status 304 (Not Modified) without sending the response body again, saving bandwidth.
-
-The following methods help perform the update efficiently and correctly.
-
-#### `revalidationHeaders(newRequest)`
-
-Returns updated, filtered set of request headers to send to the origin server to check if the cached response can be reused. These headers allow the origin server to return status 304 indicating the response is still fresh. All headers unrelated to caching are passed through as-is.
-
-Use this method when updating cache from the origin server.
-
-```js
-updateRequest.headers = cachePolicy.revalidationHeaders(updateRequest);
-```
-
-#### `revalidatedPolicy(revalidationRequest, revalidationResponse)`
-
-Use this method to update the cache after receiving a new response from the origin server. It returns an object with two keys:
-
-* `policy` ā€” A new `CachePolicy` with HTTP headers updated from `revalidationResponse`. You can always replace the old cached `CachePolicy` with the new one.
-* `modified` ā€” Boolean indicating whether the response body has changed.
- * If `false`, then a valid 304 Not Modified response has been received, and you can reuse the old cached response body.
- * If `true`, you should use new response's body (if present), or make another request to the origin server without any conditional headers (i.e. don't use `revalidationHeaders()` this time) to get the new resource.
-
-```js
-// When serving requests from cache:
-const {oldPolicy, oldResponse} = letsPretendThisIsSomeCache.get(newRequest.url);
-
-if (!oldPolicy.satisfiesWithoutRevalidation(newRequest)) {
- // Change the request to ask the origin server if the cached response can be used
- newRequest.headers = oldPolicy.revalidationHeaders(newRequest);
-
- // Send request to the origin server. The server may respond with status 304
- const newResponse = await makeRequest(newResponse);
-
- // Create updated policy and combined response from the old and new data
- const {policy, modified} = oldPolicy.revalidatedPolicy(newRequest, newResponse);
- const response = modified ? newResponse : oldResponse;
-
- // Update the cache with the newer/fresher response
- letsPretendThisIsSomeCache.set(newRequest.url, {policy, response}, policy.timeToLive());
-
- // And proceed returning cached response as usual
- response.headers = policy.responseHeaders();
- return response;
-}
-```
-
-# Yo, FRESH
-
-![satisfiesWithoutRevalidation](fresh.jpg)
-
-## Implemented
-
-* `Cache-Control` response header with all the quirks.
-* `Expires` with check for bad clocks.
-* `Pragma` response header.
-* `Age` response header.
-* `Vary` response header.
-* Default cacheability of statuses and methods.
-* Requests for stale data.
-* Filtering of hop-by-hop headers.
-* Basic revalidation request
-
-## Unimplemented
-
-* Range requests, If-Range
-* Revalidation of multiple representations
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js
deleted file mode 100644
index 8a5bcab597..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/index.js
+++ /dev/null
@@ -1,497 +0,0 @@
-'use strict';
-// rfc7231 6.1
-const statusCodeCacheableByDefault = [200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501];
-
-// This implementation does not understand partial responses (206)
-const understoodStatuses = [200, 203, 204, 300, 301, 302, 303, 307, 308, 404, 405, 410, 414, 501];
-
-const hopByHopHeaders = {'connection':true, 'keep-alive':true, 'proxy-authenticate':true, 'proxy-authorization':true, 'te':true, 'trailer':true, 'transfer-encoding':true, 'upgrade':true};
-const excludedFromRevalidationUpdate = {
- // Since the old body is reused, it doesn't make sense to change properties of the body
- 'content-length': true, 'content-encoding': true, 'transfer-encoding': true,
- 'content-range': true,
-};
-
-function parseCacheControl(header) {
- const cc = {};
- if (!header) return cc;
-
- // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),
- // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale
- const parts = header.trim().split(/\s*,\s*/); // TODO: lame parsing
- for(const part of parts) {
- const [k,v] = part.split(/\s*=\s*/, 2);
- cc[k] = (v === undefined) ? true : v.replace(/^"|"$/g, ''); // TODO: lame unquoting
- }
-
- return cc;
-}
-
-function formatCacheControl(cc) {
- let parts = [];
- for(const k in cc) {
- const v = cc[k];
- parts.push(v === true ? k : k + '=' + v);
- }
- if (!parts.length) {
- return undefined;
- }
- return parts.join(', ');
-}
-
-module.exports = class CachePolicy {
- constructor(req, res, {shared, cacheHeuristic, immutableMinTimeToLive, ignoreCargoCult, _fromObject} = {}) {
- if (_fromObject) {
- this._fromObject(_fromObject);
- return;
- }
-
- if (!res || !res.headers) {
- throw Error("Response headers missing");
- }
- this._assertRequestHasHeaders(req);
-
- this._responseTime = this.now();
- this._isShared = shared !== false;
- this._cacheHeuristic = undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE
- this._immutableMinTtl = undefined !== immutableMinTimeToLive ? immutableMinTimeToLive : 24*3600*1000;
-
- this._status = 'status' in res ? res.status : 200;
- this._resHeaders = res.headers;
- this._rescc = parseCacheControl(res.headers['cache-control']);
- this._method = 'method' in req ? req.method : 'GET';
- this._url = req.url;
- this._host = req.headers.host;
- this._noAuthorization = !req.headers.authorization;
- this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used
- this._reqcc = parseCacheControl(req.headers['cache-control']);
-
- // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,
- // so there's no point stricly adhering to the blindly copy&pasted directives.
- if (ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc) {
- delete this._rescc['pre-check'];
- delete this._rescc['post-check'];
- delete this._rescc['no-cache'];
- delete this._rescc['no-store'];
- delete this._rescc['must-revalidate'];
- this._resHeaders = Object.assign({}, this._resHeaders, {'cache-control': formatCacheControl(this._rescc)});
- delete this._resHeaders.expires;
- delete this._resHeaders.pragma;
- }
-
- // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive
- // as having the same effect as if "Cache-Control: no-cache" were present (see Section 5.2.1).
- if (!res.headers['cache-control'] && /no-cache/.test(res.headers.pragma)) {
- this._rescc['no-cache'] = true;
- }
- }
-
- now() {
- return Date.now();
- }
-
- storable() {
- // The "no-store" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.
- return !!(!this._reqcc['no-store'] &&
- // A cache MUST NOT store a response to any request, unless:
- // The request method is understood by the cache and defined as being cacheable, and
- ('GET' === this._method || 'HEAD' === this._method || ('POST' === this._method && this._hasExplicitExpiration())) &&
- // the response status code is understood by the cache, and
- understoodStatuses.indexOf(this._status) !== -1 &&
- // the "no-store" cache directive does not appear in request or response header fields, and
- !this._rescc['no-store'] &&
- // the "private" response directive does not appear in the response, if the cache is shared, and
- (!this._isShared || !this._rescc.private) &&
- // the Authorization header field does not appear in the request, if the cache is shared,
- (!this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) &&
- // the response either:
- (
- // contains an Expires header field, or
- this._resHeaders.expires ||
- // contains a max-age response directive, or
- // contains a s-maxage response directive and the cache is shared, or
- // contains a public response directive.
- this._rescc.public || this._rescc['max-age'] || this._rescc['s-maxage'] ||
- // has a status code that is defined as cacheable by default
- statusCodeCacheableByDefault.indexOf(this._status) !== -1
- ));
- }
-
- _hasExplicitExpiration() {
- // 4.2.1 Calculating Freshness Lifetime
- return (this._isShared && this._rescc['s-maxage']) ||
- this._rescc['max-age'] ||
- this._resHeaders.expires;
- }
-
- _assertRequestHasHeaders(req) {
- if (!req || !req.headers) {
- throw Error("Request headers missing");
- }
- }
-
- satisfiesWithoutRevalidation(req) {
- this._assertRequestHasHeaders(req);
-
- // When presented with a request, a cache MUST NOT reuse a stored response, unless:
- // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,
- // unless the stored response is successfully validated (Section 4.3), and
- const requestCC = parseCacheControl(req.headers['cache-control']);
- if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {
- return false;
- }
-
- if (requestCC['max-age'] && this.age() > requestCC['max-age']) {
- return false;
- }
-
- if (requestCC['min-fresh'] && this.timeToLive() < 1000*requestCC['min-fresh']) {
- return false;
- }
-
- // the stored response is either:
- // fresh, or allowed to be served stale
- if (this.stale()) {
- const allowsStale = requestCC['max-stale'] && !this._rescc['must-revalidate'] && (true === requestCC['max-stale'] || requestCC['max-stale'] > this.age() - this.maxAge());
- if (!allowsStale) {
- return false;
- }
- }
-
- return this._requestMatches(req, false);
- }
-
- _requestMatches(req, allowHeadMethod) {
- // The presented effective request URI and that of the stored response match, and
- return (!this._url || this._url === req.url) &&
- (this._host === req.headers.host) &&
- // the request method associated with the stored response allows it to be used for the presented request, and
- (!req.method || this._method === req.method || (allowHeadMethod && 'HEAD' === req.method)) &&
- // selecting header fields nominated by the stored response (if any) match those presented, and
- this._varyMatches(req);
- }
-
- _allowsStoringAuthenticated() {
- // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.
- return this._rescc['must-revalidate'] || this._rescc.public || this._rescc['s-maxage'];
- }
-
- _varyMatches(req) {
- if (!this._resHeaders.vary) {
- return true;
- }
-
- // A Vary header field-value of "*" always fails to match
- if (this._resHeaders.vary === '*') {
- return false;
- }
-
- const fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
- for(const name of fields) {
- if (req.headers[name] !== this._reqHeaders[name]) return false;
- }
- return true;
- }
-
- _copyWithoutHopByHopHeaders(inHeaders) {
- const headers = {};
- for(const name in inHeaders) {
- if (hopByHopHeaders[name]) continue;
- headers[name] = inHeaders[name];
- }
- // 9.1. Connection
- if (inHeaders.connection) {
- const tokens = inHeaders.connection.trim().split(/\s*,\s*/);
- for(const name of tokens) {
- delete headers[name];
- }
- }
- if (headers.warning) {
- const warnings = headers.warning.split(/,/).filter(warning => {
- return !/^\s*1[0-9][0-9]/.test(warning);
- });
- if (!warnings.length) {
- delete headers.warning;
- } else {
- headers.warning = warnings.join(',').trim();
- }
- }
- return headers;
- }
-
- responseHeaders() {
- const headers = this._copyWithoutHopByHopHeaders(this._resHeaders);
- const age = this.age();
-
- // A cache SHOULD generate 113 warning if it heuristically chose a freshness
- // lifetime greater than 24 hours and the response's age is greater than 24 hours.
- if (age > 3600*24 && !this._hasExplicitExpiration() && this.maxAge() > 3600*24) {
- headers.warning = (headers.warning ? `${headers.warning}, ` : '') + '113 - "rfc7234 5.5.4"';
- }
- headers.age = `${Math.round(age)}`;
- return headers;
- }
-
- /**
- * Value of the Date response header or current time if Date was demed invalid
- * @return timestamp
- */
- date() {
- const dateValue = Date.parse(this._resHeaders.date)
- const maxClockDrift = 8*3600*1000;
- if (Number.isNaN(dateValue) || dateValue < this._responseTime-maxClockDrift || dateValue > this._responseTime+maxClockDrift) {
- return this._responseTime;
- }
- return dateValue;
- }
-
- /**
- * Value of the Age header, in seconds, updated for the current time.
- * May be fractional.
- *
- * @return Number
- */
- age() {
- let age = Math.max(0, (this._responseTime - this.date())/1000);
- if (this._resHeaders.age) {
- let ageValue = this._ageValue();
- if (ageValue > age) age = ageValue;
- }
-
- const residentTime = (this.now() - this._responseTime)/1000;
- return age + residentTime;
- }
-
- _ageValue() {
- const ageValue = parseInt(this._resHeaders.age);
- return isFinite(ageValue) ? ageValue : 0;
- }
-
- /**
- * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.
- *
- * For an up-to-date value, see `timeToLive()`.
- *
- * @return Number
- */
- maxAge() {
- if (!this.storable() || this._rescc['no-cache']) {
- return 0;
- }
-
- // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default
- // so this implementation requires explicit opt-in via public header
- if (this._isShared && (this._resHeaders['set-cookie'] && !this._rescc.public && !this._rescc.immutable)) {
- return 0;
- }
-
- if (this._resHeaders.vary === '*') {
- return 0;
- }
-
- if (this._isShared) {
- if (this._rescc['proxy-revalidate']) {
- return 0;
- }
- // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.
- if (this._rescc['s-maxage']) {
- return parseInt(this._rescc['s-maxage'], 10);
- }
- }
-
- // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.
- if (this._rescc['max-age']) {
- return parseInt(this._rescc['max-age'], 10);
- }
-
- const defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;
-
- const dateValue = this.date();
- if (this._resHeaders.expires) {
- const expires = Date.parse(this._resHeaders.expires);
- // A cache recipient MUST interpret invalid date formats, especially the value "0", as representing a time in the past (i.e., "already expired").
- if (Number.isNaN(expires) || expires < dateValue) {
- return 0;
- }
- return Math.max(defaultMinTtl, (expires - dateValue)/1000);
- }
-
- if (this._resHeaders['last-modified']) {
- const lastModified = Date.parse(this._resHeaders['last-modified']);
- if (isFinite(lastModified) && dateValue > lastModified) {
- return Math.max(defaultMinTtl, (dateValue - lastModified)/1000 * this._cacheHeuristic);
- }
- }
-
- return defaultMinTtl;
- }
-
- timeToLive() {
- return Math.max(0, this.maxAge() - this.age())*1000;
- }
-
- stale() {
- return this.maxAge() <= this.age();
- }
-
- static fromObject(obj) {
- return new this(undefined, undefined, {_fromObject:obj});
- }
-
- _fromObject(obj) {
- if (this._responseTime) throw Error("Reinitialized");
- if (!obj || obj.v !== 1) throw Error("Invalid serialization");
-
- this._responseTime = obj.t;
- this._isShared = obj.sh;
- this._cacheHeuristic = obj.ch;
- this._immutableMinTtl = obj.imm !== undefined ? obj.imm : 24*3600*1000;
- this._status = obj.st;
- this._resHeaders = obj.resh;
- this._rescc = obj.rescc;
- this._method = obj.m;
- this._url = obj.u;
- this._host = obj.h;
- this._noAuthorization = obj.a;
- this._reqHeaders = obj.reqh;
- this._reqcc = obj.reqcc;
- }
-
- toObject() {
- return {
- v:1,
- t: this._responseTime,
- sh: this._isShared,
- ch: this._cacheHeuristic,
- imm: this._immutableMinTtl,
- st: this._status,
- resh: this._resHeaders,
- rescc: this._rescc,
- m: this._method,
- u: this._url,
- h: this._host,
- a: this._noAuthorization,
- reqh: this._reqHeaders,
- reqcc: this._reqcc,
- };
- }
-
- /**
- * Headers for sending to the origin server to revalidate stale response.
- * Allows server to return 304 to allow reuse of the previous response.
- *
- * Hop by hop headers are always stripped.
- * Revalidation headers may be added or removed, depending on request.
- */
- revalidationHeaders(incomingReq) {
- this._assertRequestHasHeaders(incomingReq);
- const headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
-
- // This implementation does not understand range requests
- delete headers['if-range'];
-
- if (!this._requestMatches(incomingReq, true) || !this.storable()) { // revalidation allowed via HEAD
- // not for the same resource, or wasn't allowed to be cached anyway
- delete headers['if-none-match'];
- delete headers['if-modified-since'];
- return headers;
- }
-
- /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */
- if (this._resHeaders.etag) {
- headers['if-none-match'] = headers['if-none-match'] ? `${headers['if-none-match']}, ${this._resHeaders.etag}` : this._resHeaders.etag;
- }
-
- // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.
- const forbidsWeakValidators = headers['accept-ranges'] || headers['if-match'] || headers['if-unmodified-since'] || (this._method && this._method != 'GET');
-
- /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.
- Note: This implementation does not understand partial responses (206) */
- if (forbidsWeakValidators) {
- delete headers['if-modified-since'];
-
- if (headers['if-none-match']) {
- const etags = headers['if-none-match'].split(/,/).filter(etag => {
- return !/^\s*W\//.test(etag);
- });
- if (!etags.length) {
- delete headers['if-none-match'];
- } else {
- headers['if-none-match'] = etags.join(',').trim();
- }
- }
- } else if (this._resHeaders['last-modified'] && !headers['if-modified-since']) {
- headers['if-modified-since'] = this._resHeaders['last-modified'];
- }
-
- return headers;
- }
-
- /**
- * Creates new CachePolicy with information combined from the previews response,
- * and the new revalidation response.
- *
- * Returns {policy, modified} where modified is a boolean indicating
- * whether the response body has been modified, and old cached body can't be used.
- *
- * @return {Object} {policy: CachePolicy, modified: Boolean}
- */
- revalidatedPolicy(request, response) {
- this._assertRequestHasHeaders(request);
- if (!response || !response.headers) {
- throw Error("Response headers missing");
- }
-
- // These aren't going to be supported exactly, since one CachePolicy object
- // doesn't know about all the other cached objects.
- let matches = false;
- if (response.status !== undefined && response.status != 304) {
- matches = false;
- } else if (response.headers.etag && !/^\s*W\//.test(response.headers.etag)) {
- // "All of the stored responses with the same strong validator are selected.
- // If none of the stored responses contain the same strong validator,
- // then the cache MUST NOT use the new response to update any stored responses."
- matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//,'') === response.headers.etag;
- } else if (this._resHeaders.etag && response.headers.etag) {
- // "If the new response contains a weak validator and that validator corresponds
- // to one of the cache's stored responses,
- // then the most recent of those matching stored responses is selected for update."
- matches = this._resHeaders.etag.replace(/^\s*W\//,'') === response.headers.etag.replace(/^\s*W\//,'');
- } else if (this._resHeaders['last-modified']) {
- matches = this._resHeaders['last-modified'] === response.headers['last-modified'];
- } else {
- // If the new response does not include any form of validator (such as in the case where
- // a client generates an If-Modified-Since request from a source other than the Last-Modified
- // response header field), and there is only one stored response, and that stored response also
- // lacks a validator, then that stored response is selected for update.
- if (!this._resHeaders.etag && !this._resHeaders['last-modified'] &&
- !response.headers.etag && !response.headers['last-modified']) {
- matches = true;
- }
- }
-
- if (!matches) {
- return {
- policy: new this.constructor(request, response),
- modified: true,
- }
- }
-
- // use other header fields provided in the 304 (Not Modified) response to replace all instances
- // of the corresponding header fields in the stored response.
- const headers = {};
- for(const k in this._resHeaders) {
- headers[k] = k in response.headers && !excludedFromRevalidationUpdate[k] ? response.headers[k] : this._resHeaders[k];
- }
-
- const newResponse = Object.assign({}, response, {
- status: this._status,
- method: this._method,
- headers,
- });
- return {
- policy: new this.constructor(request, newResponse),
- modified: false,
- };
- }
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js
deleted file mode 100644
index bcdaebe80f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/node4/index.js
+++ /dev/null
@@ -1,559 +0,0 @@
-'use strict';
-// rfc7231 6.1
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var statusCodeCacheableByDefault = [200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501];
-
-// This implementation does not understand partial responses (206)
-var understoodStatuses = [200, 203, 204, 300, 301, 302, 303, 307, 308, 404, 405, 410, 414, 501];
-
-var hopByHopHeaders = { 'connection': true, 'keep-alive': true, 'proxy-authenticate': true, 'proxy-authorization': true, 'te': true, 'trailer': true, 'transfer-encoding': true, 'upgrade': true };
-var excludedFromRevalidationUpdate = {
- // Since the old body is reused, it doesn't make sense to change properties of the body
- 'content-length': true, 'content-encoding': true, 'transfer-encoding': true,
- 'content-range': true
-};
-
-function parseCacheControl(header) {
- var cc = {};
- if (!header) return cc;
-
- // TODO: When there is more than one value present for a given directive (e.g., two Expires header fields, multiple Cache-Control: max-age directives),
- // the directive's value is considered invalid. Caches are encouraged to consider responses that have invalid freshness information to be stale
- var parts = header.trim().split(/\s*,\s*/); // TODO: lame parsing
- for (var _iterator = parts, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
- var _ref;
-
- if (_isArray) {
- if (_i >= _iterator.length) break;
- _ref = _iterator[_i++];
- } else {
- _i = _iterator.next();
- if (_i.done) break;
- _ref = _i.value;
- }
-
- var part = _ref;
-
- var _part$split = part.split(/\s*=\s*/, 2),
- k = _part$split[0],
- v = _part$split[1];
-
- cc[k] = v === undefined ? true : v.replace(/^"|"$/g, ''); // TODO: lame unquoting
- }
-
- return cc;
-}
-
-function formatCacheControl(cc) {
- var parts = [];
- for (var k in cc) {
- var v = cc[k];
- parts.push(v === true ? k : k + '=' + v);
- }
- if (!parts.length) {
- return undefined;
- }
- return parts.join(', ');
-}
-
-module.exports = function () {
- function CachePolicy(req, res) {
- var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
- shared = _ref2.shared,
- cacheHeuristic = _ref2.cacheHeuristic,
- immutableMinTimeToLive = _ref2.immutableMinTimeToLive,
- ignoreCargoCult = _ref2.ignoreCargoCult,
- _fromObject = _ref2._fromObject;
-
- _classCallCheck(this, CachePolicy);
-
- if (_fromObject) {
- this._fromObject(_fromObject);
- return;
- }
-
- if (!res || !res.headers) {
- throw Error("Response headers missing");
- }
- this._assertRequestHasHeaders(req);
-
- this._responseTime = this.now();
- this._isShared = shared !== false;
- this._cacheHeuristic = undefined !== cacheHeuristic ? cacheHeuristic : 0.1; // 10% matches IE
- this._immutableMinTtl = undefined !== immutableMinTimeToLive ? immutableMinTimeToLive : 24 * 3600 * 1000;
-
- this._status = 'status' in res ? res.status : 200;
- this._resHeaders = res.headers;
- this._rescc = parseCacheControl(res.headers['cache-control']);
- this._method = 'method' in req ? req.method : 'GET';
- this._url = req.url;
- this._host = req.headers.host;
- this._noAuthorization = !req.headers.authorization;
- this._reqHeaders = res.headers.vary ? req.headers : null; // Don't keep all request headers if they won't be used
- this._reqcc = parseCacheControl(req.headers['cache-control']);
-
- // Assume that if someone uses legacy, non-standard uncecessary options they don't understand caching,
- // so there's no point stricly adhering to the blindly copy&pasted directives.
- if (ignoreCargoCult && "pre-check" in this._rescc && "post-check" in this._rescc) {
- delete this._rescc['pre-check'];
- delete this._rescc['post-check'];
- delete this._rescc['no-cache'];
- delete this._rescc['no-store'];
- delete this._rescc['must-revalidate'];
- this._resHeaders = Object.assign({}, this._resHeaders, { 'cache-control': formatCacheControl(this._rescc) });
- delete this._resHeaders.expires;
- delete this._resHeaders.pragma;
- }
-
- // When the Cache-Control header field is not present in a request, caches MUST consider the no-cache request pragma-directive
- // as having the same effect as if "Cache-Control: no-cache" were present (see Section 5.2.1).
- if (!res.headers['cache-control'] && /no-cache/.test(res.headers.pragma)) {
- this._rescc['no-cache'] = true;
- }
- }
-
- CachePolicy.prototype.now = function now() {
- return Date.now();
- };
-
- CachePolicy.prototype.storable = function storable() {
- // The "no-store" request directive indicates that a cache MUST NOT store any part of either this request or any response to it.
- return !!(!this._reqcc['no-store'] && (
- // A cache MUST NOT store a response to any request, unless:
- // The request method is understood by the cache and defined as being cacheable, and
- 'GET' === this._method || 'HEAD' === this._method || 'POST' === this._method && this._hasExplicitExpiration()) &&
- // the response status code is understood by the cache, and
- understoodStatuses.indexOf(this._status) !== -1 &&
- // the "no-store" cache directive does not appear in request or response header fields, and
- !this._rescc['no-store'] && (
- // the "private" response directive does not appear in the response, if the cache is shared, and
- !this._isShared || !this._rescc.private) && (
- // the Authorization header field does not appear in the request, if the cache is shared,
- !this._isShared || this._noAuthorization || this._allowsStoringAuthenticated()) && (
- // the response either:
-
- // contains an Expires header field, or
- this._resHeaders.expires ||
- // contains a max-age response directive, or
- // contains a s-maxage response directive and the cache is shared, or
- // contains a public response directive.
- this._rescc.public || this._rescc['max-age'] || this._rescc['s-maxage'] ||
- // has a status code that is defined as cacheable by default
- statusCodeCacheableByDefault.indexOf(this._status) !== -1));
- };
-
- CachePolicy.prototype._hasExplicitExpiration = function _hasExplicitExpiration() {
- // 4.2.1 Calculating Freshness Lifetime
- return this._isShared && this._rescc['s-maxage'] || this._rescc['max-age'] || this._resHeaders.expires;
- };
-
- CachePolicy.prototype._assertRequestHasHeaders = function _assertRequestHasHeaders(req) {
- if (!req || !req.headers) {
- throw Error("Request headers missing");
- }
- };
-
- CachePolicy.prototype.satisfiesWithoutRevalidation = function satisfiesWithoutRevalidation(req) {
- this._assertRequestHasHeaders(req);
-
- // When presented with a request, a cache MUST NOT reuse a stored response, unless:
- // the presented request does not contain the no-cache pragma (Section 5.4), nor the no-cache cache directive,
- // unless the stored response is successfully validated (Section 4.3), and
- var requestCC = parseCacheControl(req.headers['cache-control']);
- if (requestCC['no-cache'] || /no-cache/.test(req.headers.pragma)) {
- return false;
- }
-
- if (requestCC['max-age'] && this.age() > requestCC['max-age']) {
- return false;
- }
-
- if (requestCC['min-fresh'] && this.timeToLive() < 1000 * requestCC['min-fresh']) {
- return false;
- }
-
- // the stored response is either:
- // fresh, or allowed to be served stale
- if (this.stale()) {
- var allowsStale = requestCC['max-stale'] && !this._rescc['must-revalidate'] && (true === requestCC['max-stale'] || requestCC['max-stale'] > this.age() - this.maxAge());
- if (!allowsStale) {
- return false;
- }
- }
-
- return this._requestMatches(req, false);
- };
-
- CachePolicy.prototype._requestMatches = function _requestMatches(req, allowHeadMethod) {
- // The presented effective request URI and that of the stored response match, and
- return (!this._url || this._url === req.url) && this._host === req.headers.host && (
- // the request method associated with the stored response allows it to be used for the presented request, and
- !req.method || this._method === req.method || allowHeadMethod && 'HEAD' === req.method) &&
- // selecting header fields nominated by the stored response (if any) match those presented, and
- this._varyMatches(req);
- };
-
- CachePolicy.prototype._allowsStoringAuthenticated = function _allowsStoringAuthenticated() {
- // following Cache-Control response directives (Section 5.2.2) have such an effect: must-revalidate, public, and s-maxage.
- return this._rescc['must-revalidate'] || this._rescc.public || this._rescc['s-maxage'];
- };
-
- CachePolicy.prototype._varyMatches = function _varyMatches(req) {
- if (!this._resHeaders.vary) {
- return true;
- }
-
- // A Vary header field-value of "*" always fails to match
- if (this._resHeaders.vary === '*') {
- return false;
- }
-
- var fields = this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);
- for (var _iterator2 = fields, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
- var _ref3;
-
- if (_isArray2) {
- if (_i2 >= _iterator2.length) break;
- _ref3 = _iterator2[_i2++];
- } else {
- _i2 = _iterator2.next();
- if (_i2.done) break;
- _ref3 = _i2.value;
- }
-
- var name = _ref3;
-
- if (req.headers[name] !== this._reqHeaders[name]) return false;
- }
- return true;
- };
-
- CachePolicy.prototype._copyWithoutHopByHopHeaders = function _copyWithoutHopByHopHeaders(inHeaders) {
- var headers = {};
- for (var name in inHeaders) {
- if (hopByHopHeaders[name]) continue;
- headers[name] = inHeaders[name];
- }
- // 9.1. Connection
- if (inHeaders.connection) {
- var tokens = inHeaders.connection.trim().split(/\s*,\s*/);
- for (var _iterator3 = tokens, _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
- var _ref4;
-
- if (_isArray3) {
- if (_i3 >= _iterator3.length) break;
- _ref4 = _iterator3[_i3++];
- } else {
- _i3 = _iterator3.next();
- if (_i3.done) break;
- _ref4 = _i3.value;
- }
-
- var _name = _ref4;
-
- delete headers[_name];
- }
- }
- if (headers.warning) {
- var warnings = headers.warning.split(/,/).filter(function (warning) {
- return !/^\s*1[0-9][0-9]/.test(warning);
- });
- if (!warnings.length) {
- delete headers.warning;
- } else {
- headers.warning = warnings.join(',').trim();
- }
- }
- return headers;
- };
-
- CachePolicy.prototype.responseHeaders = function responseHeaders() {
- var headers = this._copyWithoutHopByHopHeaders(this._resHeaders);
- var age = this.age();
-
- // A cache SHOULD generate 113 warning if it heuristically chose a freshness
- // lifetime greater than 24 hours and the response's age is greater than 24 hours.
- if (age > 3600 * 24 && !this._hasExplicitExpiration() && this.maxAge() > 3600 * 24) {
- headers.warning = (headers.warning ? `${headers.warning}, ` : '') + '113 - "rfc7234 5.5.4"';
- }
- headers.age = `${Math.round(age)}`;
- return headers;
- };
-
- /**
- * Value of the Date response header or current time if Date was demed invalid
- * @return timestamp
- */
-
-
- CachePolicy.prototype.date = function date() {
- var dateValue = Date.parse(this._resHeaders.date);
- var maxClockDrift = 8 * 3600 * 1000;
- if (Number.isNaN(dateValue) || dateValue < this._responseTime - maxClockDrift || dateValue > this._responseTime + maxClockDrift) {
- return this._responseTime;
- }
- return dateValue;
- };
-
- /**
- * Value of the Age header, in seconds, updated for the current time.
- * May be fractional.
- *
- * @return Number
- */
-
-
- CachePolicy.prototype.age = function age() {
- var age = Math.max(0, (this._responseTime - this.date()) / 1000);
- if (this._resHeaders.age) {
- var ageValue = this._ageValue();
- if (ageValue > age) age = ageValue;
- }
-
- var residentTime = (this.now() - this._responseTime) / 1000;
- return age + residentTime;
- };
-
- CachePolicy.prototype._ageValue = function _ageValue() {
- var ageValue = parseInt(this._resHeaders.age);
- return isFinite(ageValue) ? ageValue : 0;
- };
-
- /**
- * Value of applicable max-age (or heuristic equivalent) in seconds. This counts since response's `Date`.
- *
- * For an up-to-date value, see `timeToLive()`.
- *
- * @return Number
- */
-
-
- CachePolicy.prototype.maxAge = function maxAge() {
- if (!this.storable() || this._rescc['no-cache']) {
- return 0;
- }
-
- // Shared responses with cookies are cacheable according to the RFC, but IMHO it'd be unwise to do so by default
- // so this implementation requires explicit opt-in via public header
- if (this._isShared && this._resHeaders['set-cookie'] && !this._rescc.public && !this._rescc.immutable) {
- return 0;
- }
-
- if (this._resHeaders.vary === '*') {
- return 0;
- }
-
- if (this._isShared) {
- if (this._rescc['proxy-revalidate']) {
- return 0;
- }
- // if a response includes the s-maxage directive, a shared cache recipient MUST ignore the Expires field.
- if (this._rescc['s-maxage']) {
- return parseInt(this._rescc['s-maxage'], 10);
- }
- }
-
- // If a response includes a Cache-Control field with the max-age directive, a recipient MUST ignore the Expires field.
- if (this._rescc['max-age']) {
- return parseInt(this._rescc['max-age'], 10);
- }
-
- var defaultMinTtl = this._rescc.immutable ? this._immutableMinTtl : 0;
-
- var dateValue = this.date();
- if (this._resHeaders.expires) {
- var expires = Date.parse(this._resHeaders.expires);
- // A cache recipient MUST interpret invalid date formats, especially the value "0", as representing a time in the past (i.e., "already expired").
- if (Number.isNaN(expires) || expires < dateValue) {
- return 0;
- }
- return Math.max(defaultMinTtl, (expires - dateValue) / 1000);
- }
-
- if (this._resHeaders['last-modified']) {
- var lastModified = Date.parse(this._resHeaders['last-modified']);
- if (isFinite(lastModified) && dateValue > lastModified) {
- return Math.max(defaultMinTtl, (dateValue - lastModified) / 1000 * this._cacheHeuristic);
- }
- }
-
- return defaultMinTtl;
- };
-
- CachePolicy.prototype.timeToLive = function timeToLive() {
- return Math.max(0, this.maxAge() - this.age()) * 1000;
- };
-
- CachePolicy.prototype.stale = function stale() {
- return this.maxAge() <= this.age();
- };
-
- CachePolicy.fromObject = function fromObject(obj) {
- return new this(undefined, undefined, { _fromObject: obj });
- };
-
- CachePolicy.prototype._fromObject = function _fromObject(obj) {
- if (this._responseTime) throw Error("Reinitialized");
- if (!obj || obj.v !== 1) throw Error("Invalid serialization");
-
- this._responseTime = obj.t;
- this._isShared = obj.sh;
- this._cacheHeuristic = obj.ch;
- this._immutableMinTtl = obj.imm !== undefined ? obj.imm : 24 * 3600 * 1000;
- this._status = obj.st;
- this._resHeaders = obj.resh;
- this._rescc = obj.rescc;
- this._method = obj.m;
- this._url = obj.u;
- this._host = obj.h;
- this._noAuthorization = obj.a;
- this._reqHeaders = obj.reqh;
- this._reqcc = obj.reqcc;
- };
-
- CachePolicy.prototype.toObject = function toObject() {
- return {
- v: 1,
- t: this._responseTime,
- sh: this._isShared,
- ch: this._cacheHeuristic,
- imm: this._immutableMinTtl,
- st: this._status,
- resh: this._resHeaders,
- rescc: this._rescc,
- m: this._method,
- u: this._url,
- h: this._host,
- a: this._noAuthorization,
- reqh: this._reqHeaders,
- reqcc: this._reqcc
- };
- };
-
- /**
- * Headers for sending to the origin server to revalidate stale response.
- * Allows server to return 304 to allow reuse of the previous response.
- *
- * Hop by hop headers are always stripped.
- * Revalidation headers may be added or removed, depending on request.
- */
-
-
- CachePolicy.prototype.revalidationHeaders = function revalidationHeaders(incomingReq) {
- this._assertRequestHasHeaders(incomingReq);
- var headers = this._copyWithoutHopByHopHeaders(incomingReq.headers);
-
- // This implementation does not understand range requests
- delete headers['if-range'];
-
- if (!this._requestMatches(incomingReq, true) || !this.storable()) {
- // revalidation allowed via HEAD
- // not for the same resource, or wasn't allowed to be cached anyway
- delete headers['if-none-match'];
- delete headers['if-modified-since'];
- return headers;
- }
-
- /* MUST send that entity-tag in any cache validation request (using If-Match or If-None-Match) if an entity-tag has been provided by the origin server. */
- if (this._resHeaders.etag) {
- headers['if-none-match'] = headers['if-none-match'] ? `${headers['if-none-match']}, ${this._resHeaders.etag}` : this._resHeaders.etag;
- }
-
- // Clients MAY issue simple (non-subrange) GET requests with either weak validators or strong validators. Clients MUST NOT use weak validators in other forms of request.
- var forbidsWeakValidators = headers['accept-ranges'] || headers['if-match'] || headers['if-unmodified-since'] || this._method && this._method != 'GET';
-
- /* SHOULD send the Last-Modified value in non-subrange cache validation requests (using If-Modified-Since) if only a Last-Modified value has been provided by the origin server.
- Note: This implementation does not understand partial responses (206) */
- if (forbidsWeakValidators) {
- delete headers['if-modified-since'];
-
- if (headers['if-none-match']) {
- var etags = headers['if-none-match'].split(/,/).filter(function (etag) {
- return !/^\s*W\//.test(etag);
- });
- if (!etags.length) {
- delete headers['if-none-match'];
- } else {
- headers['if-none-match'] = etags.join(',').trim();
- }
- }
- } else if (this._resHeaders['last-modified'] && !headers['if-modified-since']) {
- headers['if-modified-since'] = this._resHeaders['last-modified'];
- }
-
- return headers;
- };
-
- /**
- * Creates new CachePolicy with information combined from the previews response,
- * and the new revalidation response.
- *
- * Returns {policy, modified} where modified is a boolean indicating
- * whether the response body has been modified, and old cached body can't be used.
- *
- * @return {Object} {policy: CachePolicy, modified: Boolean}
- */
-
-
- CachePolicy.prototype.revalidatedPolicy = function revalidatedPolicy(request, response) {
- this._assertRequestHasHeaders(request);
- if (!response || !response.headers) {
- throw Error("Response headers missing");
- }
-
- // These aren't going to be supported exactly, since one CachePolicy object
- // doesn't know about all the other cached objects.
- var matches = false;
- if (response.status !== undefined && response.status != 304) {
- matches = false;
- } else if (response.headers.etag && !/^\s*W\//.test(response.headers.etag)) {
- // "All of the stored responses with the same strong validator are selected.
- // If none of the stored responses contain the same strong validator,
- // then the cache MUST NOT use the new response to update any stored responses."
- matches = this._resHeaders.etag && this._resHeaders.etag.replace(/^\s*W\//, '') === response.headers.etag;
- } else if (this._resHeaders.etag && response.headers.etag) {
- // "If the new response contains a weak validator and that validator corresponds
- // to one of the cache's stored responses,
- // then the most recent of those matching stored responses is selected for update."
- matches = this._resHeaders.etag.replace(/^\s*W\//, '') === response.headers.etag.replace(/^\s*W\//, '');
- } else if (this._resHeaders['last-modified']) {
- matches = this._resHeaders['last-modified'] === response.headers['last-modified'];
- } else {
- // If the new response does not include any form of validator (such as in the case where
- // a client generates an If-Modified-Since request from a source other than the Last-Modified
- // response header field), and there is only one stored response, and that stored response also
- // lacks a validator, then that stored response is selected for update.
- if (!this._resHeaders.etag && !this._resHeaders['last-modified'] && !response.headers.etag && !response.headers['last-modified']) {
- matches = true;
- }
- }
-
- if (!matches) {
- return {
- policy: new this.constructor(request, response),
- modified: true
- };
- }
-
- // use other header fields provided in the 304 (Not Modified) response to replace all instances
- // of the corresponding header fields in the stored response.
- var headers = {};
- for (var k in this._resHeaders) {
- headers[k] = k in response.headers && !excludedFromRevalidationUpdate[k] ? response.headers[k] : this._resHeaders[k];
- }
-
- var newResponse = Object.assign({}, response, {
- status: this._status,
- method: this._method,
- headers
- });
- return {
- policy: new this.constructor(request, newResponse),
- modified: false
- };
- };
-
- return CachePolicy;
-}(); \ No newline at end of file
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json
deleted file mode 100644
index af46309985..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "http-cache-semantics@^3.7.3",
- "_id": "http-cache-semantics@3.8.0",
- "_inBundle": false,
- "_integrity": "sha512-HGQFfBdru2fj/dwPn1oLx1fy6QMPeTAD1yzKcxD4l5biw+5QVaui/ehCqxaitoKJC/vHMLKv3Yd+nTlxboOJig==",
- "_location": "/pacote/make-fetch-happen/http-cache-semantics",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "http-cache-semantics@^3.7.3",
- "name": "http-cache-semantics",
- "escapedName": "http-cache-semantics",
- "rawSpec": "^3.7.3",
- "saveSpec": null,
- "fetchSpec": "^3.7.3"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.0.tgz",
- "_shasum": "1e3ce248730e189ac692a6697b9e3fdea2ff8da3",
- "_spec": "http-cache-semantics@^3.7.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen",
- "author": {
- "name": "Kornel Lesiński",
- "email": "kornel@geekhood.net",
- "url": "https://kornel.ski/"
- },
- "bugs": {
- "url": "https://github.com/pornel/http-cache-semantics/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Parses Cache-Control and other headers. Helps building correct HTTP caches and proxies",
- "devDependencies": {
- "babel-cli": "^6.24.1",
- "babel-preset-env": "^1.5.2",
- "mocha": "^3.4.2"
- },
- "files": [
- "node4/index.js",
- "index.js",
- "test"
- ],
- "homepage": "https://github.com/pornel/http-cache-semantics#readme",
- "license": "BSD-2-Clause",
- "main": "node4/index.js",
- "name": "http-cache-semantics",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/pornel/http-cache-semantics.git"
- },
- "scripts": {
- "compile": "babel -d node4/ index.js; babel -d node4/test test",
- "prepublish": "npm run compile",
- "test": "npm run compile; mocha node4/test"
- },
- "version": "3.8.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js
deleted file mode 100644
index 643567d962..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/misctest.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-
-describe('Other', function() {
- it('Thaw wrong object', function() {
- assert.throws(() => {
- CachePolicy.fromObject({});
- });
- });
-
- it('Missing headers', function() {
- assert.throws(() => {
- new CachePolicy({});
- });
- assert.throws(() => {
- new CachePolicy({headers:{}}, {});
- });
-
- const cache = new CachePolicy({headers:{}}, {headers:{}});
- assert.throws(() => {
- cache.satisfiesWithoutRevalidation({});
- });
- assert.throws(() => {
- cache.revalidatedPolicy({});
- });
- assert.throws(() => {
- cache.revalidatedPolicy({headers:{}}, {});
- });
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js
deleted file mode 100644
index 315f114ae8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/okhttptest.js
+++ /dev/null
@@ -1,301 +0,0 @@
-'use strict';
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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.
- */
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('okhttp tests', function(){
- it('responseCachingByResponseCode', function(){
- // Test each documented HTTP/1.1 code, plus the first unused value in each range.
- // http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
-
- assertCached(false, 100);
- assertCached(false, 101);
- assertCached(false, 102);
- assertCached(true, 200);
- assertCached(false, 201);
- assertCached(false, 202);
- assertCached(true, 203);
- assertCached(true, 204);
- assertCached(false, 205);
- assertCached(false, 206); //Electing to not cache partial responses
- assertCached(false, 207);
- assertCached(true, 300);
- assertCached(true, 301);
- assertCached(true, 302);
- // assertCached(false, 303);
- assertCached(false, 304);
- assertCached(false, 305);
- assertCached(false, 306);
- assertCached(true, 307);
- assertCached(true, 308);
- assertCached(false, 400);
- assertCached(false, 401);
- assertCached(false, 402);
- assertCached(false, 403);
- assertCached(true, 404);
- assertCached(true, 405);
- assertCached(false, 406);
- assertCached(false, 408);
- assertCached(false, 409);
- // the HTTP spec permits caching 410s, but the RI doesn't.
- assertCached(true, 410);
- assertCached(false, 411);
- assertCached(false, 412);
- assertCached(false, 413);
- assertCached(true, 414);
- assertCached(false, 415);
- assertCached(false, 416);
- assertCached(false, 417);
- assertCached(false, 418);
- assertCached(false, 429);
-
- assertCached(false, 500);
- assertCached(true, 501);
- assertCached(false, 502);
- assertCached(false, 503);
- assertCached(false, 504);
- assertCached(false, 505);
- assertCached(false, 506);
- });
-
- function assertCached(shouldPut, responseCode) {
- let expectedResponseCode = responseCode;
-
- const mockResponse = {headers:{
- "last-modified": formatDate(-1, 3600),
- "expires": formatDate(1, 3600),
- "www-authenticate": "challenge",
- },
- status: responseCode,
- body: "ABCDE",
- };
- if (responseCode == 407) {
- mockResponse.headers["proxy-authenticate"] = "Basic realm=\"protected area\"";
- } else if (responseCode == 401) {
- mockResponse.headers["www-authenticate"] = "Basic realm=\"protected area\"";
- } else if (responseCode == 204 || responseCode == 205) {
- mockResponse.body = ""; // We forbid bodies for 204 and 205.
- }
-
- const request = {url: "/", headers:{}};
-
- const cache = new CachePolicy(request, mockResponse, {shared:false});
-
- assert.equal(shouldPut, cache.storable());
- }
-
-
- it('defaultExpirationDateFullyCachedForLessThan24Hours', function() {
- // last modified: 105 seconds ago
- // served: 5 seconds ago
- // default lifetime: (105 - 5) / 10 = 10 seconds
- // expires: 10 seconds from served date = 5 seconds from now
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-105, 1),
- "date": formatDate(-5, 1),
- },
- body: "A"}, {shared:false});
-
- assert(cache.timeToLive() > 4000);
- });
-
- it('defaultExpirationDateFullyCachedForMoreThan24Hours', function() {
- // last modified: 105 days ago
- // served: 5 days ago
- // default lifetime: (105 - 5) / 10 = 10 days
- // expires: 10 days from served date = 5 days from now
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-105, 3600*24),
- "date": formatDate(-5, 3600*24),
- },
- body: "A"}, {shared:false});
-
- assert(cache.maxAge() >= 10*3600*24);
- assert(cache.timeToLive()+1000 >= 5*3600*24);
- });
-
- it('maxAgeInThePastWithDateHeaderButNoLastModifiedHeader', function() {
- // Chrome interprets max-age relative to the local clock. Both our cache
- // and Firefox both use the earlier of the local and server's clock.
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-120, 1),
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(cache.stale());
- });
-
- it('maxAgePreferredOverLowerSharedMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-2, 60),
- "cache-control": "s-maxage=60, max-age=180",
- }}, {shared:false});
-
- assert.equal(cache.maxAge(), 180);
- });
-
- it('maxAgePreferredOverHigherMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "date": formatDate(-3, 60),
- "cache-control": "s-maxage=60, max-age=180",
- }}, {shared:false});
-
- assert(cache.stale());
- });
-
- it('requestMethodOptionsIsNotCached', function() {
- testRequestMethodNotCached("OPTIONS");
- });
-
- it('requestMethodPutIsNotCached', function() {
- testRequestMethodNotCached("PUT");
- });
-
- it('requestMethodDeleteIsNotCached', function() {
- testRequestMethodNotCached("DELETE");
- });
-
- it('requestMethodTraceIsNotCached', function() {
- testRequestMethodNotCached("TRACE");
- });
-
- function testRequestMethodNotCached(method) {
- // 1. seed the cache (potentially)
- // 2. expect a cache hit or miss
- const cache = new CachePolicy({method, headers:{}}, {headers:{
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(cache.stale());
- }
-
- it('etagAndExpirationDateInTheFuture', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "etag": "v1",
- "last-modified": formatDate(-2, 3600),
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(cache.timeToLive() > 0);
- });
-
- it('clientSideNoStore', function() {
- const cache = new CachePolicy({headers:{
- "cache-control": "no-store",
- }}, {headers:{
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(!cache.storable());
- });
-
- it('requestMaxAge', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "last-modified": formatDate(-2, 3600),
- "date": formatDate(-1, 60),
- "expires": formatDate(1, 3600),
- }}, {shared:false});
-
- assert(!cache.stale());
- assert(cache.age() >= 60);
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-age=90",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-age=30",
- }}));
- });
-
- it('requestMinFresh', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=60",
- }}, {shared:false});
-
- assert(!cache.stale());
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "min-fresh=120",
- }}));
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "min-fresh=10",
- }}));
- });
-
- it('requestMaxStale', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=120",
- "date": formatDate(-4, 60),
- }}, {shared:false});
-
- assert(cache.stale());
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=180",
- }}));
-
- assert(cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=10",
- }}));
- });
-
- it('requestMaxStaleNotHonoredWithMustRevalidate', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "cache-control": "max-age=120, must-revalidate",
- "date": formatDate(-4, 60),
- }}, {shared:false});
-
- assert(cache.stale());
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale=180",
- }}));
-
- assert(!cache.satisfiesWithoutRevalidation({headers:{
- "cache-control": "max-stale",
- }}));
- });
-
- it('getHeadersDeletesCached100LevelWarnings', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "warning": "199 test danger, 200 ok ok",
- }});
-
- assert.equal("200 ok ok", cache.responseHeaders().warning);
- });
-
- it('doNotCachePartialResponse', function() {
- const cache = new CachePolicy({headers:{}}, {
- status: 206,
- headers:{
- "content-range": "bytes 100-100/200",
- "cache-control": "max-age=60",
- }});
- assert(!cache.storable());
- });
-
- function formatDate(delta, unit) {
- return new Date(Date.now() + delta*unit*1000).toUTCString();
- }
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js
deleted file mode 100644
index f668556ff8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/requesttest.js
+++ /dev/null
@@ -1,61 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const publicCacheableResponse = {headers:{'cache-control': 'public, max-age=222'}};
-const cacheableResponse = {headers:{'cache-control': 'max-age=111'}};
-
-describe('Request properties', function() {
- it('No store kills cache', function() {
- const cache = new CachePolicy({method:'GET',headers:{'cache-control':'no-store'}}, publicCacheableResponse);
- assert(cache.stale());
- assert(!cache.storable());
- });
-
- it('POST not cacheable by default', function() {
- const cache = new CachePolicy({method:'POST',headers:{}}, {headers:{'cache-control': 'public'}});
- assert(cache.stale());
- assert(!cache.storable());
- });
-
- it('POST cacheable explicitly', function() {
- const cache = new CachePolicy({method:'POST',headers:{}}, publicCacheableResponse);
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Public cacheable auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, publicCacheableResponse);
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Proxy cacheable auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, {headers:{'cache-control':'max-age=0,s-maxage=12'}});
- assert(!cache.stale());
- assert(cache.storable());
-
- const cache2 = CachePolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof CachePolicy);
- assert(!cache2.stale());
- assert(cache2.storable());
- });
-
- it('Private auth is OK', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, cacheableResponse, {shared:false});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Revalidated auth is OK', function() {
- const cache = new CachePolicy({headers:{'authorization': 'test'}}, {headers:{'cache-control':'max-age=88,must-revalidate'}});
- assert(cache.storable());
- });
-
- it('Auth prevents caching by default', function() {
- const cache = new CachePolicy({method:'GET',headers:{'authorization': 'test'}}, cacheableResponse);
- assert(cache.stale());
- assert(!cache.storable());
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js
deleted file mode 100644
index 763910b82c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/responsetest.js
+++ /dev/null
@@ -1,385 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const req = {method:'GET', headers:{}};
-
-describe('Response headers', function() {
- it('simple miss', function() {
- const cache = new CachePolicy(req, {headers:{}});
- assert(cache.stale());
- });
-
- it('simple hit', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'public, max-age=999999'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 999999);
- });
-
- it('weird syntax', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': ',,,,max-age = 456 ,'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 456);
-
- const cache2 = CachePolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof CachePolicy);
- assert(!cache2.stale());
- assert.equal(cache2.maxAge(), 456);
- });
-
- it('quoted syntax', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': ' max-age = "678" '}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 678);
- });
-
- it('IIS', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'private, public, max-age=259200'}}, {shared:false});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 259200);
- });
-
- it('pre-check tolerated', function() {
- const cc = 'pre-check=0, post-check=0, no-store, no-cache, max-age=100';
- const cache = new CachePolicy(req, {headers:{'cache-control': cc}});
- assert(cache.stale());
- assert(!cache.storable());
- assert.equal(cache.maxAge(), 0);
- assert.equal(cache.responseHeaders()['cache-control'], cc);
- });
-
- it('pre-check poison', function() {
- const origCC = 'pre-check=0, post-check=0, no-cache, no-store, max-age=100, custom, foo=bar';
- const res = {headers:{'cache-control': origCC, pragma: 'no-cache'}};
- const cache = new CachePolicy(req, res, {ignoreCargoCult:true});
- assert(!cache.stale());
- assert(cache.storable());
- assert.equal(cache.maxAge(), 100);
-
- const cc = cache.responseHeaders()['cache-control'];
- assert(!/pre-check/.test(cc), cc);
- assert(!/post-check/.test(cc), cc);
- assert(!/no-store/.test(cc), cc);
-
- assert(/max-age=100/.test(cc));
- assert(/custom(,|$)/.test(cc));
- assert(/foo=bar/.test(cc));
-
- assert.equal(res.headers['cache-control'], origCC);
- assert(res.headers['pragma']);
- assert(!cache.responseHeaders()['pragma']);
- });
-
- it('pre-check poison undefined header', function() {
- const origCC = 'pre-check=0, post-check=0, no-cache, no-store';
- const res = {headers:{'cache-control': origCC, expires: 'yesterday!'}};
- const cache = new CachePolicy(req, res, {ignoreCargoCult:true});
- assert(cache.stale());
- assert(cache.storable());
- assert.equal(cache.maxAge(), 0);
-
- const cc = cache.responseHeaders()['cache-control'];
- assert(!cc);
-
- assert(res.headers['expires']);
- assert(!cache.responseHeaders()['expires']);
- });
-
- it('cache with expires', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'expires': new Date(Date.now() + 2000).toGMTString(),
- }});
- assert(!cache.stale());
- assert.equal(2, cache.maxAge());
- });
-
- it('cache expires no date', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public',
- 'expires': new Date(Date.now()+3600*1000).toGMTString(),
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 3595);
- assert(cache.maxAge() < 3605);
- });
-
- it('Ages', function() {
- let now = 1000;
- class TimeTravellingPolicy extends CachePolicy {
- now() {
- return now;
- }
- }
- const cache = new TimeTravellingPolicy(req, {headers:{
- 'cache-control':'max-age=100',
- 'age': '50',
- }});
- assert(cache.storable());
-
- assert.equal(50*1000, cache.timeToLive());
- assert(!cache.stale());
- now += 48*1000;
- assert.equal(2*1000, cache.timeToLive());
- assert(!cache.stale());
- now += 5*1000;
- assert(cache.stale());
- assert.equal(0, cache.timeToLive());
- });
-
- it('Age can make stale', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=100',
- 'age': '101',
- }});
- assert(cache.stale());
- assert(cache.storable());
- });
-
- it('Age not always stale', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=20',
- 'age': '15',
- }});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('Bogus age ignored', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control':'max-age=20',
- 'age': 'golden',
- }});
- assert(!cache.stale());
- assert(cache.storable());
- });
-
- it('cache old files', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 100);
- });
-
- it('immutable simple hit', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=999999'}});
- assert(!cache.stale());
- assert.equal(cache.maxAge(), 999999);
- });
-
- it('immutable can expire', function() {
- const cache = new CachePolicy(req, {headers:{'cache-control': 'immutable, max-age=0'}});
- assert(cache.stale());
- assert.equal(cache.maxAge(), 0);
- });
-
- it('cache immutable files', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'cache-control':'immutable',
- 'last-modified': new Date().toGMTString(),
- }});
- assert(!cache.stale());
- assert(cache.maxAge() > 100);
- });
-
- it('immutable can be off', function() {
- const cache = new CachePolicy(req, {headers:{
- 'date': new Date().toGMTString(),
- 'cache-control':'immutable',
- 'last-modified': new Date().toGMTString(),
- }}, {immutableMinTimeToLive: 0});
- assert(cache.stale());
- assert.equal(cache.maxAge(), 0);
- });
-
- it('pragma: no-cache', function() {
- const cache = new CachePolicy(req, {headers:{
- 'pragma': 'no-cache',
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(cache.stale());
- });
-
- it('no-store', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'no-store, public, max-age=1',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('observe private cache', function() {
- const privateHeader = {
- 'cache-control': 'private, max-age=1234',
- };
- const proxyCache = new CachePolicy(req, {headers:privateHeader});
- assert(proxyCache.stale());
- assert.equal(0, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:privateHeader}, {shared:false});
- assert(!uaCache.stale());
- assert.equal(1234, uaCache.maxAge());
- });
-
- it('don\'t share cookies', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'max-age=99',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(proxyCache.stale());
- assert.equal(0, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:cookieHeader}, {shared:false});
- assert(!uaCache.stale());
- assert.equal(99, uaCache.maxAge());
- });
-
- it('do share cookies if immutable', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'immutable, max-age=99',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(!proxyCache.stale());
- assert.equal(99, proxyCache.maxAge());
- });
-
- it('cache explicitly public cookie', function() {
- const cookieHeader = {
- 'set-cookie': 'foo=bar',
- 'cache-control': 'max-age=5, public',
- };
- const proxyCache = new CachePolicy(req, {headers:cookieHeader}, {shared:true});
- assert(!proxyCache.stale());
- assert.equal(5, proxyCache.maxAge());
- });
-
- it('miss max-age=0', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=0',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('uncacheable 503', function() {
- const cache = new CachePolicy(req, {
- status: 503,
- headers:{
- 'cache-control': 'public, max-age=1000',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('cacheable 301', function() {
- const cache = new CachePolicy(req, {
- status: 301,
- headers:{
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(!cache.stale());
- });
-
- it('uncacheable 303', function() {
- const cache = new CachePolicy(req, {
- status: 303,
- headers:{
- 'last-modified': 'Mon, 07 Mar 2016 11:52:56 GMT',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('cacheable 303', function() {
- const cache = new CachePolicy(req, {
- status: 303,
- headers:{
- 'cache-control': 'max-age=1000',
- }});
- assert(!cache.stale());
- });
-
- it('uncacheable 412', function() {
- const cache = new CachePolicy(req, {
- status: 412,
- headers:{
- 'cache-control': 'public, max-age=1000',
- }});
- assert(cache.stale());
- assert.equal(0, cache.maxAge());
- });
-
- it('expired expires cached with max-age', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=9999',
- 'expires': 'Sat, 07 May 2016 15:35:18 GMT',
- }});
- assert(!cache.stale());
- assert.equal(9999, cache.maxAge());
- });
-
- it('expired expires cached with s-maxage', function() {
- const sMaxAgeHeaders = {
- 'cache-control': 'public, s-maxage=9999',
- 'expires': 'Sat, 07 May 2016 15:35:18 GMT',
- };
- const proxyCache = new CachePolicy(req, {headers:sMaxAgeHeaders});
- assert(!proxyCache.stale());
- assert.equal(9999, proxyCache.maxAge());
-
- const uaCache = new CachePolicy(req, {headers:sMaxAgeHeaders}, {shared:false});
- assert(uaCache.stale());
- assert.equal(0, uaCache.maxAge());
- });
-
- it('max-age wins over future expires', function() {
- const cache = new CachePolicy(req, {headers:{
- 'cache-control': 'public, max-age=333',
- 'expires': new Date(Date.now()+3600*1000).toGMTString(),
- }});
- assert(!cache.stale());
- assert.equal(333, cache.maxAge());
- });
-
- it('remove hop headers', function() {
- let now = 10000;
- class TimeTravellingPolicy extends CachePolicy {
- now() {
- return now;
- }
- }
-
- const res = {headers:{
- 'te': 'deflate',
- 'date': 'now',
- 'custom': 'header',
- 'oompa': 'lumpa',
- 'connection': 'close, oompa, header',
- 'age': '10',
- 'cache-control': 'public, max-age=333',
- }};
- const cache = new TimeTravellingPolicy(req, res);
-
- now += 1005;
- const h = cache.responseHeaders();
- assert(!h.connection);
- assert(!h.te);
- assert(!h.oompa);
- assert.equal(h['cache-control'], 'public, max-age=333');
- assert.equal(h.date, 'now', "date must stay the same for expires, age, etc");
- assert.equal(h.custom, 'header');
- assert.equal(h.age, '11');
- assert.equal(res.headers.age, '10');
-
- const cache2 = TimeTravellingPolicy.fromObject(JSON.parse(JSON.stringify(cache.toObject())));
- assert(cache2 instanceof TimeTravellingPolicy);
- const h2 = cache2.responseHeaders();
- assert.deepEqual(h, h2);
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js
deleted file mode 100644
index 9dc737718d..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/revalidatetest.js
+++ /dev/null
@@ -1,181 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const simpleRequest = {
- method:'GET',
- headers:{
- host:'www.w3c.org',
- connection: 'close',
- 'x-custom': 'yes',
- },
- url:'/Protocols/rfc2616/rfc2616-sec14.html',
-};
-function simpleRequestBut(overrides) {
- return Object.assign({}, simpleRequest, overrides);
-}
-
-const cacheableResponse = {headers:{'cache-control':'max-age=111'}};
-const etaggedResponse = {headers:Object.assign({'etag':'"123456789"'},cacheableResponse.headers)};
-const lastModifiedResponse = {headers:Object.assign({'last-modified':'Tue, 15 Nov 1994 12:45:26 GMT'},cacheableResponse.headers)};
-const multiValidatorResponse = {headers:Object.assign({},etaggedResponse.headers,lastModifiedResponse.headers)};
-const alwaysVariableResponse = {headers:Object.assign({'vary':'*'},cacheableResponse.headers)};
-
-function assertHeadersPassed(headers) {
- assert.strictEqual(headers.connection, undefined);
- assert.strictEqual(headers['x-custom'], 'yes');
-}
-function assertNoValidators(headers) {
- assert.strictEqual(headers['if-none-match'], undefined);
- assert.strictEqual(headers['if-modified-since'], undefined);
-}
-
-describe('Can be revalidated?', function() {
- it('ok if method changes to HEAD', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const headers = cache.revalidationHeaders(simpleRequestBut({method:'HEAD'}));
- assertHeadersPassed(headers);
- assert.equal(headers['if-none-match'], '"123456789"');
- });
-
- it('not if method mismatch (other than HEAD)', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({method:'POST'});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('not if url mismatch', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({url:'/yomomma'});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('not if host mismatch', function(){
- const cache = new CachePolicy(simpleRequest,etaggedResponse);
- const incomingRequest = simpleRequestBut({headers:{host:'www.w4c.org'}});
- const headers = cache.revalidationHeaders(incomingRequest);
- assertNoValidators(headers);
- assert.strictEqual(headers['x-custom'], undefined);
- });
-
- it('not if vary fields prevent', function(){
- const cache = new CachePolicy(simpleRequest,alwaysVariableResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- });
-
- it('when entity tag validator is present', function() {
- const cache = new CachePolicy(simpleRequest, etaggedResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assert.equal(headers['if-none-match'], '"123456789"');
- });
-
- it('skips weak validtors on post', function() {
- const postReq = simpleRequestBut({method:'POST', headers:{'if-none-match': 'W/"weak", "strong", W/"weak2"'}});
- const cache = new CachePolicy(postReq, multiValidatorResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.equal(headers['if-none-match'], '"strong", "123456789"');
- assert.strictEqual(undefined, headers['if-modified-since']);
- });
-
- it('skips weak validtors on post 2', function() {
- const postReq = simpleRequestBut({method:'POST', headers:{'if-none-match': 'W/"weak"'}});
- const cache = new CachePolicy(postReq, lastModifiedResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.strictEqual(undefined, headers['if-none-match']);
- assert.strictEqual(undefined, headers['if-modified-since']);
- });
-
- it('merges validtors', function() {
- const postReq = simpleRequestBut({headers:{'if-none-match': 'W/"weak", "strong", W/"weak2"'}});
- const cache = new CachePolicy(postReq, multiValidatorResponse);
- const headers = cache.revalidationHeaders(postReq);
- assert.equal(headers['if-none-match'], 'W/"weak", "strong", W/"weak2", "123456789"');
- assert.equal('Tue, 15 Nov 1994 12:45:26 GMT', headers['if-modified-since']);
- });
-
- it('when last-modified validator is present', function() {
- const cache = new CachePolicy(simpleRequest, lastModifiedResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assert.equal(headers['if-modified-since'], 'Tue, 15 Nov 1994 12:45:26 GMT');
- assert(!/113/.test(headers.warning));
- });
-
- it('not without validators', function() {
- const cache = new CachePolicy(simpleRequest, cacheableResponse);
- const headers = cache.revalidationHeaders(simpleRequest);
- assertHeadersPassed(headers);
- assertNoValidators(headers);
- assert(!/113/.test(headers.warning));
- })
-
- it('113 added', function() {
- const veryOldResponse = {
- headers: {
- age: 3600*72,
- 'last-modified': 'Tue, 15 Nov 1994 12:45:26 GMT',
- },
- };
-
- const cache = new CachePolicy(simpleRequest, veryOldResponse);
- const headers = cache.responseHeaders(simpleRequest);
- assert(/113/.test(headers.warning));
- })
-
-});
-
-describe('Validation request', function(){
- it('removes warnings', function() {
- const cache = new CachePolicy({headers:{}}, {headers:{
- "warning": "199 test danger",
- }});
-
- assert.strictEqual(undefined, cache.responseHeaders().warning);
- });
-
- it('must contain any etag', function(){
- const cache = new CachePolicy(simpleRequest,multiValidatorResponse);
- const expected = multiValidatorResponse.headers.etag;
- const actual = cache.revalidationHeaders(simpleRequest)['if-none-match'];
- assert.equal(actual,expected);
- });
-
- it('merges etags', function(){
- const cache = new CachePolicy(simpleRequest, etaggedResponse);
- const expected = `"foo", "bar", ${etaggedResponse.headers.etag}`;
- const headers = cache.revalidationHeaders(simpleRequestBut({headers:{
- host:'www.w3c.org',
- 'if-none-match': '"foo", "bar"',
- }}));
- assert.equal(headers['if-none-match'],expected);
- });
-
- it('should send the Last-Modified value', function(){
- const cache = new CachePolicy(simpleRequest,multiValidatorResponse);
- const expected = multiValidatorResponse.headers['last-modified'];
- const actual = cache.revalidationHeaders(simpleRequest)['if-modified-since'];
- assert.equal(actual,expected);
- });
-
- it('should not send the Last-Modified value for POST', function(){
- const postReq = {method:'POST', headers:{'if-modified-since':'yesterday'}};
- const cache = new CachePolicy(postReq, lastModifiedResponse);
- const actual = cache.revalidationHeaders(postReq)['if-modified-since'];
- assert.equal(actual, undefined);
- });
-
- it('should not send the Last-Modified value for range requests', function(){
- const rangeReq = {method:'GET', headers:{'accept-ranges':'1-3', 'if-modified-since':'yesterday'}};
- const cache = new CachePolicy(rangeReq, lastModifiedResponse);
- const actual = cache.revalidationHeaders(rangeReq)['if-modified-since'];
- assert.equal(actual, undefined);
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js
deleted file mode 100644
index 3131ee73d0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/satisfytest.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('Satisfies', function() {
- it('when URLs match', function() {
- const policy = new CachePolicy({url:'/',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({url:'/',headers:{}}));
- });
-
- it('when expires is present', function() {
- const policy = new CachePolicy({headers:{}}, {status:302,headers:{'expires':new Date(Date.now()+2000).toGMTString()}});
- assert(policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('not when URLs mismatch', function() {
- const policy = new CachePolicy({url:'/foo',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({url:'/foo?bar',headers:{}}));
- });
-
- it('when methods match', function() {
- const policy = new CachePolicy({method:'GET',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when hosts mismatch', function() {
- const policy = new CachePolicy({headers:{'host':'foo'}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({headers:{'host':'foo'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'host':'foofoo'}}));
- });
-
- it('when methods match HEAD', function() {
- const policy = new CachePolicy({method:'HEAD',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({method:'HEAD',headers:{}}));
- });
-
- it('not when methods mismatch', function() {
- const policy = new CachePolicy({method:'POST',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when methods mismatch HEAD', function() {
- const policy = new CachePolicy({method:'HEAD',headers:{}}, {status:200,headers:{'cache-control':'max-age=2'}});
- assert(!policy.satisfiesWithoutRevalidation({method:'GET',headers:{}}));
- });
-
- it('not when proxy revalidating', function() {
- const policy = new CachePolicy({headers:{}}, {status:200,headers:{'cache-control':'max-age=2, proxy-revalidate '}});
- assert(!policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('when not a proxy revalidating', function() {
- const policy = new CachePolicy({headers:{}}, {status:200,headers:{'cache-control':'max-age=2, proxy-revalidate '}}, {shared:false});
- assert(policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('not when no-cache requesting', function() {
- const policy = new CachePolicy({headers:{}}, {headers:{'cache-control':'max-age=2'}});
- assert(policy.satisfiesWithoutRevalidation({headers:{'cache-control':'fine'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'cache-control':'no-cache'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'pragma':'no-cache'}}));
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js
deleted file mode 100644
index 6d498c86e3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/updatetest.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-const simpleRequest = {
- method:'GET',
- headers:{
- host:'www.w3c.org',
- connection: 'close',
- },
- url:'/Protocols/rfc2616/rfc2616-sec14.html',
-};
-function withHeaders(request, headers) {
- return Object.assign({}, request, {
- headers: Object.assign({}, request.headers, headers),
- });
-}
-
-const cacheableResponse = {headers:{'cache-control':'max-age=111'}};
-const etaggedResponse = {headers:Object.assign({'etag':'"123456789"'},cacheableResponse.headers)};
-const weakTaggedResponse = {headers:Object.assign({'etag':'W/"123456789"'},cacheableResponse.headers)};
-const lastModifiedResponse = {headers:Object.assign({'last-modified':'Tue, 15 Nov 1994 12:45:26 GMT'},cacheableResponse.headers)};
-const multiValidatorResponse = {headers:Object.assign({},etaggedResponse.headers,lastModifiedResponse.headers)};
-
-function notModifiedResponseHeaders(firstRequest, firstResponse, secondRequest, secondResponse) {
- const cache = new CachePolicy(firstRequest, firstResponse);
- const headers = cache.revalidationHeaders(secondRequest);
- const {policy:newCache, modified} = cache.revalidatedPolicy({headers}, secondResponse);
- if (modified) {
- return false;
- }
- return newCache.responseHeaders();
-}
-
-function assertUpdates(firstRequest, firstResponse, secondRequest, secondResponse) {
- const headers = notModifiedResponseHeaders(firstRequest, withHeaders(firstResponse, {'foo': 'original', 'x-other':'original'}),
- secondRequest, withHeaders(secondResponse, {'foo': 'updated', 'x-ignore-new':'ignoreme'}));
- assert(headers);
- assert.equal(headers['foo'], 'updated');
- assert.equal(headers['x-other'], 'original');
- assert.strictEqual(headers['x-ignore-new'], undefined);
- assert.strictEqual(headers['etag'], secondResponse.headers.etag);
-}
-
-describe('Update revalidated', function() {
- it('Matching etags are updated', function(){
- assertUpdates(simpleRequest, etaggedResponse, simpleRequest, etaggedResponse);
- });
-
- it('Matching weak etags are updated', function(){
- assertUpdates(simpleRequest, weakTaggedResponse, simpleRequest, weakTaggedResponse);
- });
-
- it('Matching lastmod are updated', function(){
- assertUpdates(simpleRequest, lastModifiedResponse, simpleRequest, lastModifiedResponse);
- });
-
- it('Both matching are updated', function(){
- assertUpdates(simpleRequest, multiValidatorResponse, simpleRequest, multiValidatorResponse);
- });
-
- it('Checks status', function(){
- const response304 = Object.assign({}, multiValidatorResponse, {status:304});
- const response200 = Object.assign({}, multiValidatorResponse, {status:200});
- assertUpdates(simpleRequest, multiValidatorResponse, simpleRequest, response304);
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, response200));
- });
-
- it('Last-mod ignored if etag is wrong', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, withHeaders(multiValidatorResponse, {'etag':'bad'})));
- assert(!notModifiedResponseHeaders(simpleRequest, multiValidatorResponse, simpleRequest, withHeaders(multiValidatorResponse, {'etag':'W/bad'})));
- });
-
- it('Ignored if validator is missing', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, cacheableResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, weakTaggedResponse, simpleRequest, cacheableResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, cacheableResponse));
- });
-
- it('Skips update of content-length', function(){
- const etaggedResponseWithLenght1 = withHeaders(etaggedResponse, {'content-length':1});
- const etaggedResponseWithLenght2 = withHeaders(etaggedResponse, {'content-length':2});
- const headers = notModifiedResponseHeaders(simpleRequest, etaggedResponseWithLenght1, simpleRequest, etaggedResponseWithLenght2);
- assert.equal(1, headers['content-length']);
- });
-
- it('Ignored if validator is different', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, etaggedResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, weakTaggedResponse));
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, lastModifiedResponse));
- });
-
- it('Ignored if validator doesn\'t match', function(){
- assert(!notModifiedResponseHeaders(simpleRequest, etaggedResponse, simpleRequest, withHeaders(etaggedResponse, {etag:'"other"'})), "bad etag");
- assert(!notModifiedResponseHeaders(simpleRequest, lastModifiedResponse, simpleRequest, withHeaders(lastModifiedResponse, {'last-modified':'dunno'})), "bad lastmod");
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js
deleted file mode 100644
index 9d5cfb2325..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-cache-semantics/test/varytest.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-
-const assert = require('assert');
-const CachePolicy = require('..');
-
-describe('Vary', function() {
- it('Basic', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- });
-
- it("* doesn't match", function() {
- const policy = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'max-age=5','vary':'*'}});
-
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'ok'}}));
- });
-
- it("* is stale", function() {
- const policy1 = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'public,max-age=99', 'vary':'*'}});
- const policy2 = new CachePolicy({headers:{'weather': 'ok'}}, {headers:{'cache-control':'public,max-age=99', 'vary':'weather'}});
-
- assert(policy1.stale());
- assert(!policy2.stale());
- });
-
- it('Values are case-sensitive', function() {
- const policy = new CachePolicy({headers:{'weather': 'BAD'}}, {headers:{'cache-control':'max-age=5','vary':'Weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'BAD'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- });
-
- it('Irrelevant headers ignored', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'moon-phase'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'bad'}}));
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'moon-phase': 'full'}}));
- });
-
- it('Absence is meaningful', function() {
- const policy = new CachePolicy({headers:{'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'moon-phase, weather'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'moon-phase': ''}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{}}));
- });
-
- it('All values must match', function() {
- const policy = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather, sun'}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'bad'}}));
- });
-
- it('Whitespace is OK', function() {
- const policy = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':' weather , sun '}});
-
- assert(policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'weather': 'nice'}}));
- assert(!policy.satisfiesWithoutRevalidation({headers:{'sun': 'shining'}}));
- });
-
- it('Order is irrelevant', function() {
- const policy1 = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'weather, sun'}});
- const policy2 = new CachePolicy({headers:{'sun': 'shining', 'weather': 'nice'}}, {headers:{'cache-control':'max-age=5','vary':'sun, weather'}});
-
- assert(policy1.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'sun': 'shining'}}));
- assert(policy1.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- assert(policy2.satisfiesWithoutRevalidation({headers:{'weather': 'nice', 'sun': 'shining'}}));
- assert(policy2.satisfiesWithoutRevalidation({headers:{'sun': 'shining', 'weather': 'nice'}}));
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore
deleted file mode 100644
index 07e6e472cc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml
deleted file mode 100644
index 805d3d50d2..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-sudo: false
-
-language: node_js
-
-node_js:
- - "4"
- - "5"
- - "6"
- - "7"
- - "8"
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md
deleted file mode 100644
index 5dabbc6950..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/History.md
+++ /dev/null
@@ -1,94 +0,0 @@
-
-2.0.0 / 2017-06-27
-==================
-
- * drop support for Node.js < v4
- * update "mocha" to v3
- * update to "agent-base" v4
- * rename http-proxy-agent.js to index.js
- * remove `extend` dependency
- * test Node.js 4, 5, 6, 7 and 8 on Travis-CI
-
-1.0.0 / 2015-07-10
-==================
-
- * http-proxy-agent: use %o debug() formatter
- * http-proxy-agent: remove `defaults` merging logic
- * package: update "agent-base" to v2
- * test: add an assert() call
- * test: use ssl-cert-snakeoil self-signed SSL certs
- * README: add note about node-https-proxy-agent
-
-0.2.7 / 2015-07-06
-==================
-
- * travis: ensure latest npm before testing
- * travis: test node v0.8, v0.10, and v0.12
- * README: use SVG for Travis-CI badge
- * package: update "extend" to v3
- * package: update "mocha" to v2
- * package: update "debug" to v2
-
-0.2.6 / 2014-06-11
-==================
-
- * package: update "debug" to v1.0.0
-
-0.2.5 / 2014-04-09
-==================
-
- * package: update outdated deps
-
-0.2.4 / 2014-01-12
-==================
-
- * http-proxy-agent: fix using the agent after the first tick of creating the ClientRequest
- * http-proxy-agent: use "debug" module
- * History: fix whitespace
-
-0.2.3 / 2013-11-18
-==================
-
- * https-proxy-agent: allow "https" without trailing colon
-
-0.2.2 / 2013-11-16
-==================
-
- * http-proxy-agent: delete the `port` if it matches default port
- * http-proxy-agent: don't mix in the `proxy` opts to the endpoint opts
- * http-proxy-agent: delete `pathname` from the proxy opts as well
-
-0.2.1 / 2013-10-28
-==================
-
- * http-proxy-agent: properly proxy the query-string on request URLs (GH-1)
-
-0.2.0 / 2013-09-16
-==================
-
- * http-proxy-agent: update to `agent-base` v1.0.0 API
- * http-proxy-agent: rename `secure` option to `secureProxy`
- * http-proxy-agent: default the "port" to 80 if not set
- * http-proxy-agent: use "extend" module
- * test: refactor tests
- * test: add 407 auth test
- * test: add bad proxy info test
- * test: add "secureProxy" option tests
-
-0.1.0 / 2013-09-03
-==================
-
- * Add initial "Proxy-Authorization" Basic authentication support
-
-0.0.2 / 2013-07-11
-==================
-
- * test: make tests pass, ensure valid IP addresses are returned
- * test: add tests
- * throw an Error when no proxy info is given
- * add support for passing options to net/tls .connect()
-
-0.0.1 / 2013-07-09
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md
deleted file mode 100644
index 4f1fc372bd..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-http-proxy-agent
-================
-### An HTTP(s) proxy `http.Agent` implementation for HTTP
-[![Build Status](https://travis-ci.org/TooTallNate/node-http-proxy-agent.svg?branch=master)](https://travis-ci.org/TooTallNate/node-http-proxy-agent)
-
-This module provides an `http.Agent` implementation that connects to a specified
-HTTP or HTTPS proxy server, and can be used with the built-in `http` module.
-
-__Note:__ For HTTP proxy usage with the `https` module, check out
-[`node-https-proxy-agent`](https://github.com/TooTallNate/node-https-proxy-agent).
-
-Installation
-------------
-
-Install with `npm`:
-
-``` bash
-$ npm install http-proxy-agent
-```
-
-
-Example
--------
-
-``` js
-var url = require('url');
-var http = require('http');
-var HttpProxyAgent = require('http-proxy-agent');
-
-// HTTP/HTTPS proxy to connect to
-var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
-console.log('using proxy server %j', proxy);
-
-// HTTP endpoint for the proxy to connect to
-var endpoint = process.argv[2] || 'http://nodejs.org/api/';
-console.log('attempting to GET %j', endpoint);
-var opts = url.parse(endpoint);
-
-// create an instance of the `HttpProxyAgent` class with the proxy server information
-var agent = new HttpProxyAgent(proxy);
-opts.agent = agent;
-
-http.get(opts, function (res) {
- console.log('"response" event!', res.headers);
- res.pipe(process.stdout);
-});
-```
-
-
-License
--------
-
-(The MIT License)
-
-Copyright (c) 2013 Nathan Rajlich &lt;nathan@tootallnate.net&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js
deleted file mode 100644
index 4bc9704a10..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/index.js
+++ /dev/null
@@ -1,109 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var net = require('net');
-var tls = require('tls');
-var url = require('url');
-var Agent = require('agent-base');
-var inherits = require('util').inherits;
-var debug = require('debug')('http-proxy-agent');
-
-/**
- * Module exports.
- */
-
-module.exports = HttpProxyAgent;
-
-/**
- * The `HttpProxyAgent` implements an HTTP Agent subclass that connects to the
- * specified "HTTP proxy server" in order to proxy HTTP requests.
- *
- * @api public
- */
-
-function HttpProxyAgent (opts) {
- if (!(this instanceof HttpProxyAgent)) return new HttpProxyAgent(opts);
- if ('string' == typeof opts) opts = url.parse(opts);
- if (!opts) throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!');
- debug('creating new HttpProxyAgent instance: %o', opts);
- Agent.call(this, opts);
-
- var proxy = Object.assign({}, opts);
-
- // if `true`, then connect to the proxy server over TLS. defaults to `false`.
- this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
-
- // prefer `hostname` over `host`, and set the `port` if needed
- proxy.host = proxy.hostname || proxy.host;
- proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
-
- if (proxy.host && proxy.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 proxy.path;
- delete proxy.pathname;
- }
-
- this.proxy = proxy;
-}
-inherits(HttpProxyAgent, Agent);
-
-/**
- * Called when the node-core HTTP client library is creating a new HTTP request.
- *
- * @api public
- */
-
-HttpProxyAgent.prototype.callback = function connect (req, opts, fn) {
- var proxy = this.proxy;
-
- // change the `http.ClientRequest` instance's "path" field
- // to the absolute path of the URL that will be requested
- var parsed = url.parse(req.path);
- if (null == parsed.protocol) parsed.protocol = 'http:';
- if (null == parsed.hostname) parsed.hostname = opts.hostname || opts.host;
- if (null == parsed.port) parsed.port = opts.port;
- if (parsed.port == 80) {
- // if port is 80, then we can remove the port so that the
- // ":80" portion is not on the produced URL
- delete parsed.port;
- }
- var absolute = url.format(parsed);
- req.path = absolute;
-
- // inject the `Proxy-Authorization` header if necessary
- var auth = proxy.auth;
- if (auth) {
- req.setHeader('Proxy-Authorization', 'Basic ' + new Buffer(auth).toString('base64'));
- }
-
- // create a socket connection to the proxy server
- var socket;
- if (this.secureProxy) {
- socket = tls.connect(proxy);
- } else {
- socket = net.connect(proxy);
- }
-
- // at this point, the http ClientRequest's internal `_header` field might have
- // already been set. If this is the case then we'll need to re-generate the
- // string since we just changed the `req.path`
- if (req._header) {
- debug('regenerating stored HTTP header string for request');
- req._header = null;
- req._implicitHeader();
- if (req.output && req.output.length > 0) {
- debug('patching connection write() output buffer with updated header');
- // the _header has already been queued to be written to the socket
- var first = req.output[0];
- var endOfHeaders = first.indexOf('\r\n\r\n') + 4;
- req.output[0] = req._header + first.substring(endOfHeaders);
- debug('output buffer: %o', req.output);
- }
- }
-
- fn(null, socket);
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index e12180e423..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,105 +0,0 @@
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md b/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
deleted file mode 100644
index 4141cc840f..0000000000
--- a/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
+++ /dev/null
@@ -1,89 +0,0 @@
-[![Travis CI](https://travis-ci.org/digitaldesignlabs/es6-promisify.svg)](https://travis-ci.org/digitaldesignlabs/es6-promisify)
-
-# es6-promisify
-
-Converts callback-based functions to Promise-based functions.
-
-## Install
-
-Install with [npm](https://npmjs.org/package/es6-promisify)
-
-```bash
-npm install --save es6-promisify
-```
-
-## Example
-
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const fs = require("fs");
-
-// Convert the stat function
-const stat = promisify(fs.stat);
-
-// Now usable as a promise!
-stat("example.txt").then(function (stats) {
- console.log("Got stats", stats);
-}).catch(function (err) {
- console.error("Yikes!", err);
-});
-```
-
-## Promisify methods
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const redis = require("redis").createClient(6379, "localhost");
-
-// Create a promise-based version of send_command
-const client = promisify(redis.send_command, redis);
-
-// Send commands to redis and get a promise back
-client("ping").then(function (pong) {
- console.log("Got", pong);
-}).catch(function (err) {
- console.error("Unexpected error", err);
-}).then(function () {
- redis.quit();
-});
-```
-
-## Handle callback multiple arguments
-```js
-"use strict";
-
-// Declare functions
-function test(cb) {
- return cb(undefined, 1, 2, 3);
-}
-
-// Declare variables
-const promisify = require("es6-promisify");
-
-// Create promise-based version of test
-const single = promisify(test);
-const multi = promisify(test, {multiArgs: true});
-
-// Discards additional arguments
-single().then(function (result) {
- console.log(result); // 1
-});
-
-// Returns all arguments as an array
-multi().then(function (result) {
- console.log(result); // [1, 2, 3]
-});
-```
-
-### Tests
-Test with nodeunit
-```bash
-$ npm test
-```
-
-Published under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/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 b/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
deleted file mode 100644
index 2fe5c6103b..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-/* global self, window, module, global, require */
-module.exports = function () {
-
- "use strict";
-
- var globalObject = void 0;
-
- function isFunction(x) {
- return typeof x === "function";
- }
-
- // Seek the global object
- if (global !== undefined) {
- globalObject = global;
- } else if (window !== undefined && window.document) {
- globalObject = window;
- } else {
- globalObject = self;
- }
-
- // Test for any native promise implementation, and if that
- // implementation appears to conform to the specificaton.
- // This code mostly nicked from the es6-promise module polyfill
- // and then fooled with.
- var hasPromiseSupport = function () {
-
- // No promise object at all, and it's a non-starter
- if (!globalObject.hasOwnProperty("Promise")) {
- return false;
- }
-
- // There is a Promise object. Does it conform to the spec?
- var P = globalObject.Promise;
-
- // Some of these methods are missing from
- // Firefox/Chrome experimental implementations
- if (!P.hasOwnProperty("resolve") || !P.hasOwnProperty("reject")) {
- return false;
- }
-
- if (!P.hasOwnProperty("all") || !P.hasOwnProperty("race")) {
- return false;
- }
-
- // Older version of the spec had a resolver object
- // as the arg rather than a function
- return function () {
-
- var resolve = void 0;
-
- var p = new globalObject.Promise(function (r) {
- resolve = r;
- });
-
- if (p) {
- return isFunction(resolve);
- }
-
- return false;
- }();
- }();
-
- // Export the native Promise implementation if it
- // looks like it matches the spec
- if (hasPromiseSupport) {
- return globalObject.Promise;
- }
-
- // Otherwise, return the es6-promise polyfill by @jaffathecake.
- return require("es6-promise").Promise;
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ce38041b07..0000000000
--- a/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
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-/* global module, require */
-module.exports = function () {
-
- "use strict";
-
- // Get a promise object. This may be native, or it may be polyfilled
-
- var ES6Promise = require("./promise.js");
-
- /**
- * thatLooksLikeAPromiseToMe()
- *
- * Duck-types a promise.
- *
- * @param {object} o
- * @return {bool} True if this resembles a promise
- */
- function thatLooksLikeAPromiseToMe(o) {
- return o && typeof o.then === "function" && typeof o.catch === "function";
- }
-
- /**
- * promisify()
- *
- * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into
- * an ES6-compatible Promise. Promisify provides a default callback of the form (error, result)
- * and rejects when `error` is truthy. You can also supply settings object as the second argument.
- *
- * @param {function} original - The function to promisify
- * @param {object} settings - Settings object
- * @param {object} settings.thisArg - A `this` context to use. If not set, assume `settings` _is_ `thisArg`
- * @param {bool} settings.multiArgs - Should multiple arguments be returned as an array?
- * @return {function} A promisified version of `original`
- */
- return function promisify(original, settings) {
-
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var returnMultipleArguments = settings && settings.multiArgs;
-
- var target = void 0;
- if (settings && settings.thisArg) {
- target = settings.thisArg;
- } else if (settings) {
- target = settings;
- }
-
- // Return the promisified function
- return new ES6Promise(function (resolve, reject) {
-
- // Append the callback bound to the context
- args.push(function callback(err) {
-
- if (err) {
- return reject(err);
- }
-
- for (var _len2 = arguments.length, values = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- values[_key2 - 1] = arguments[_key2];
- }
-
- if (false === !!returnMultipleArguments) {
- return resolve(values[0]);
- }
-
- resolve(values);
- });
-
- // Call the function
- var response = original.apply(target, args);
-
- // If it looks like original already returns a promise,
- // then just resolve with that promise. Hopefully, the callback function we added will just be ignored.
- if (thatLooksLikeAPromiseToMe(response)) {
- resolve(response);
- }
- });
- };
- };
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index 954ec5992d..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and 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.
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 92bbf36e58..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file can be required in Browserify and Node.js for automatic polyfill
-// To use it: require('es6-promise/auto');
-'use strict';
-module.exports = require('./').polyfill();
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 77997866f8..0000000000
--- a/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
+++ /dev/null
@@ -1,3 +0,0 @@
-import Promise from './es6-promise';
-Promise.polyfill();
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 4f4d840d09..0000000000
--- a/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
+++ /dev/null
@@ -1,7 +0,0 @@
-import Promise from './es6-promise/promise';
-import polyfill from './es6-promise/polyfill';
-
-// Strange compat..
-Promise.polyfill = polyfill;
-Promise.Promise = Promise;
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 9ca3c063aa..0000000000
--- a/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
+++ /dev/null
@@ -1,52 +0,0 @@
-import Enumerator from '../enumerator';
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-export default function all(entries) {
- return new Enumerator(this, entries).promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 166dc820b5..0000000000
--- a/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
+++ /dev/null
@@ -1,84 +0,0 @@
-import {
- isArray
-} from "../utils";
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-export default function race(entries) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
- } else {
- return new Constructor((resolve, reject) => {
- let length = entries.length;
- for (let i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cd55faabf5..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-import {
- noop,
- reject as _reject
-} from '../-internal';
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-export default function reject(reason) {
- /*jshint validthis:true */
- let Constructor = this;
- let promise = new Constructor(noop);
- _reject(promise, reason);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index f4642b630e..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- noop,
- resolve as _resolve
-} from '../-internal';
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-export default function resolve(object) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- let promise = new Constructor(noop);
- _resolve(promise, object);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b79f0a14..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
- invokeCallback,
- subscribe,
- FULFILLED,
- REJECTED,
- noop,
- makePromise,
- PROMISE_ID
-} from './-internal';
-
-import { asap } from './asap';
-
-export default function then(onFulfillment, onRejection) {
- const parent = this;
-
- const child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- const { _state } = parent;
-
- if (_state) {
- const callback = arguments[_state - 1];
- asap(() => invokeCallback(_state, child, callback, parent._result));
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
diff --git a/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 b/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
deleted file mode 100644
index 72545c5e97..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-export function objectOrFunction(x) {
- let type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-export function isFunction(x) {
- return typeof x === 'function';
-}
-
-export function isMaybeThenable(x) {
- return x !== null && typeof x === 'object';
-}
-
-let _isArray;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
-}
-
-export const isArray = _isArray;
diff --git a/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 b/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
deleted file mode 100644
index 26008ffa00..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 7839fcf199..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/http-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index 952a19a778..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@4",
- "_id": "agent-base@4.1.2",
- "_inBundle": false,
- "_integrity": "sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent/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": [
- "/pacote/make-fetch-happen/http-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.2.tgz",
- "_shasum": "80fa6cde440f4dcf9af2617cf246099b5d99f0c8",
- "_spec": "agent-base@4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/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.1.2"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index 3891c13a8b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml
deleted file mode 100644
index 20a7068581..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore
deleted file mode 100644
index 5f60eecc84..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,9 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage
-bower.json
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c3b0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
- - "6"
- - "5"
- - "4"
-
-install:
- - make node_modules
-
-script:
- - make lint
- - make test
- - make coveralls
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index 553da1585e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-
-2.6.9 / 2017-09-22
-==================
-
- * remove ReDoS regexp in %o formatter (#504)
-
-2.6.8 / 2017-05-18
-==================
-
- * Fix: Check for undefined on browser globals (#462, @marbemac)
-
-2.6.7 / 2017-05-16
-==================
-
- * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
- * Fix: Inline extend function in node implementation (#452, @dougwilson)
- * Docs: Fix typo (#455, @msasad)
-
-2.6.5 / 2017-04-27
-==================
-
- * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
- * Misc: clean up browser reference checks (#447, @thebigredgeek)
- * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
-
-
-2.6.4 / 2017-04-20
-==================
-
- * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
- * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
- * Misc: update "ms" to v0.7.3 (@tootallnate)
-
-2.6.3 / 2017-03-13
-==================
-
- * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
- * Docs: Changelog fix (@thebigredgeek)
-
-2.6.2 / 2017-03-10
-==================
-
- * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
- * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
- * Docs: Add Slackin invite badge (@tootallnate)
-
-2.6.1 / 2017-02-10
-==================
-
- * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
- * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
- * Fix: IE8 "Expected identifier" error (#414, @vgoma)
- * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
- * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
- * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
- * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
- * Fix: reference error on window within webworkers (#393, @KlausTrainer)
- * Docs: fixed README typo (#391, @lurch)
- * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
- * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
- * Fix: wrong reference in bower file (@thebigredgeek)
- * Fix: webworker compatibility (@thebigredgeek)
- * Fix: output formatting issue (#388, @kribblo)
- * Fix: babel-loader compatibility (#383, @escwald)
- * Misc: removed built asset from repo and publications (@thebigredgeek)
- * Misc: moved source files to /src (#378, @yamikuronue)
- * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
- * Test: coveralls integration (#378, @yamikuronue)
- * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
- * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
- * Fix: custom log function (#379, @hsiliev)
- * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
- * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
- * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
- * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
- * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
- * Fix: browser colors (#367, @tootallnate)
- * Misc: travis ci integration (@thebigredgeek)
- * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
- * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
- * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
- * Fix: revert "handle regex special characters" (@tootallnate)
- * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
- * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
- * Improvement: allow colors in workers (#335, @botverse)
- * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
- * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
- * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
- * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
- * Fix: be super-safe in index.js as well (@TooTallNate)
- * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
- * Fix: Added electron compatibility (#324, @paulcbetts)
- * Improvement: Added performance optimizations (@tootallnate)
- * Readme: Corrected PowerShell environment variable example (#252, @gimre)
- * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
- * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
- * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
- * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
- * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
- * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
- * Package: Update "ms" to 0.7.2 (#315, @DevSide)
- * Package: removed superfluous version property from bower.json (#207 @kkirsche)
- * Readme: fix USE_COLORS to DEBUG_COLORS
- * Readme: Doc fixes for format string sugar (#269, @mlucool)
- * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
- * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
- * Readme: better docs for browser support (#224, @matthewmueller)
- * Tooling: Added yarn integration for development (#317, @thebigredgeek)
- * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
- * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
- * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE
deleted file mode 100644
index 54a5d93f4d..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile
deleted file mode 100644
index 584da8bf93..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
- @NODE_ENV= $(PKG) install
- @touch node_modules
-
-lint: .FORCE
- eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
- istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
- mkdir -p dist
-
- @$(BROWSERIFY) \
- --standalone debug \
- . > dist/debug.js
-
- karma start --single-run
- rimraf dist
-
-test: .FORCE
- concurrently \
- "make test-node" \
- "make test-browser"
-
-coveralls:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md
deleted file mode 100644
index bc59ae86e8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/README.md
+++ /dev/null
@@ -1,312 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
-[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
-
-
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
- When running through Node.js, you can set a few environment variables that will
- change the behavior of the debug logging:
-
-| Name | Purpose |
-|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disables specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
- __Note:__ The environment variables beginning with `DEBUG_` end up being
- converted into an Options object that gets used with `%o`/`%O` formatters.
- See the Node.js documentation for
- [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
- for the complete list.
-
-## Formatters
-
-
- Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O` | Pretty-print an Object on multiple lines. |
-| `%o` | Pretty-print an Object all on a single line. |
-| `%s` | String. |
-| `%d` | Number (both integer and float). |
-| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%` | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
- You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
- return v.toString('hex')
-}
-
-// ā€¦elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-// foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
- You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
- or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
- if you don't want to build it yourself.
-
- Debug's enable state is currently persisted by `localStorage`.
- Consider the situation shown below where you have `worker:a` and `worker:b`,
- and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
- By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
-
-<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
-
-<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json
deleted file mode 100644
index 9de26410f0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.6.9",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "src/browser.js",
- "scripts": [
- "src/browser.js",
- "src/debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js
deleted file mode 100644
index 103a82d15b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/karma.conf.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
- config.set({
-
- // base path that will be used to resolve all patterns (eg. files, exclude)
- basePath: '',
-
-
- // frameworks to use
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['mocha', 'chai', 'sinon'],
-
-
- // list of files / patterns to load in the browser
- files: [
- 'dist/debug.js',
- 'test/*spec.js'
- ],
-
-
- // list of files to exclude
- exclude: [
- 'src/node.js'
- ],
-
-
- // preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
- preprocessors: {
- },
-
- // test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
- reporters: ['progress'],
-
-
- // web server port
- port: 9876,
-
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: true,
-
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: false,
-
- // Concurrency level
- // how many browser should be started simultaneous
- concurrency: Infinity
- })
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js
deleted file mode 100644
index 7fc36fe6db..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./src/node');
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js
deleted file mode 100644
index 6a522b16b3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md
deleted file mode 100644
index 69b61253a3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json
deleted file mode 100644
index 6c1e6fc3cc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent/debug/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "ms@2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "2.0.0",
- "saveSpec": null,
- "fetchSpec": "2.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/http-proxy-agent/debug"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974ccc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json
deleted file mode 100644
index 3ec58fe84b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "debug@2",
- "_id": "debug@2.6.9",
- "_inBundle": false,
- "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent/debug",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "debug@2",
- "name": "debug",
- "escapedName": "debug",
- "rawSpec": "2",
- "saveSpec": null,
- "fetchSpec": "2"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/http-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
- "_spec": "debug@2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent",
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "browser": "./src/browser.js",
- "bugs": {
- "url": "https://github.com/visionmedia/debug/issues"
- },
- "bundleDependencies": false,
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- },
- "contributors": [
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io"
- },
- {
- "name": "Andrew Rhyne",
- "email": "rhyneandrew@gmail.com"
- }
- ],
- "dependencies": {
- "ms": "2.0.0"
- },
- "deprecated": false,
- "description": "small debugging utility",
- "devDependencies": {
- "browserify": "9.0.3",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "homepage": "https://github.com/visionmedia/debug#readme",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "license": "MIT",
- "main": "./src/index.js",
- "name": "debug",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "version": "2.6.9"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js
deleted file mode 100644
index 7106924934..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
-
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return;
-
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit')
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js
deleted file mode 100644
index 6a5e3fc94c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
- var hash = 0, i;
-
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
-
- return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
- function debug() {
- // disabled?
- if (!debug.enabled) return;
-
- var self = debug;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
-
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
-
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
-
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
-
- return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- exports.names = [];
- exports.skips = [];
-
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d58c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = require('./browser.js');
-} else {
- module.exports = require('./node.js');
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js
deleted file mode 100644
index 60ea6c04aa..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/inspector-log.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = inspectorLog;
-
-// black hole
-const nullStream = new (require('stream').Writable)();
-nullStream._write = () => {};
-
-/**
- * Outputs a `console.log()` to the Node.js Inspector console *only*.
- */
-function inspectorLog() {
- const stdout = console._stdout;
- console._stdout = nullStream;
- console.log.apply(console, arguments);
- console._stdout = stdout;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js
deleted file mode 100644
index b15109c905..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
-
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
-
- obj[prop] = val;
- return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
- util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
-
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
- return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
- debug.inspectOpts = {};
-
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json
deleted file mode 100644
index 38010f35e5..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "http-proxy-agent@^2.0.0",
- "_id": "http-proxy-agent@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-RkgqLwUjpNYIJVFwn0acs+SoX/Q=",
- "_location": "/pacote/make-fetch-happen/http-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "http-proxy-agent@^2.0.0",
- "name": "http-proxy-agent",
- "escapedName": "http-proxy-agent",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.0.0.tgz",
- "_shasum": "46482a2f0523a4d6082551709f469cb3e4a85ff4",
- "_spec": "http-proxy-agent@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-http-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "4",
- "debug": "2"
- },
- "deprecated": false,
- "description": "An HTTP(s) proxy `http.Agent` implementation for HTTP",
- "devDependencies": {
- "mocha": "3",
- "proxy": "~0.2.3"
- },
- "homepage": "https://github.com/TooTallNate/node-http-proxy-agent#readme",
- "keywords": [
- "http",
- "proxy",
- "endpoint",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "http-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-http-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js
deleted file mode 100644
index cc320c7fc2..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/http-proxy-agent/test/test.js
+++ /dev/null
@@ -1,303 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var fs = require('fs');
-var url = require('url');
-var http = require('http');
-var https = require('https');
-var assert = require('assert');
-var Proxy = require('proxy');
-var HttpProxyAgent = require('../');
-
-describe('HttpProxyAgent', function () {
-
- var server;
- var serverPort;
-
- var proxy;
- var proxyPort;
-
- var sslProxy;
- var sslProxyPort;
-
- before(function (done) {
- // setup HTTP proxy server
- proxy = Proxy();
- proxy.listen(function () {
- proxyPort = proxy.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup target HTTP server
- server = http.createServer();
- server.listen(function () {
- serverPort = server.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup SSL HTTP proxy server
- var options = {
- key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
- cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
- };
- sslProxy = Proxy(https.createServer(options));
- sslProxy.listen(function () {
- sslProxyPort = sslProxy.address().port;
- done();
- });
- });
-
- // shut down test HTTP server
- after(function (done) {
- proxy.once('close', function () { done(); });
- proxy.close();
- });
-
- after(function (done) {
- server.once('close', function () { done(); });
- server.close();
- });
-
- after(function (done) {
- sslProxy.once('close', function () { done(); });
- sslProxy.close();
- });
-
- describe('constructor', function () {
- it('should throw an Error if no "proxy" argument is given', function () {
- assert.throws(function () {
- new HttpProxyAgent();
- });
- });
- it('should accept a "string" proxy argument', function () {
- var agent = new HttpProxyAgent('http://127.0.0.1:' + proxyPort);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- it('should accept a `url.parse()` result object argument', function () {
- var opts = url.parse('http://127.0.0.1:' + proxyPort);
- var agent = new HttpProxyAgent(opts);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- describe('secureProxy', function () {
- it('should default to `false`', function () {
- var agent = new HttpProxyAgent({ port: proxyPort });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `false` when "http:" protocol is used', function () {
- var agent = new HttpProxyAgent({ port: proxyPort, protocol: 'http:' });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `true` when "https:" protocol is used', function () {
- var agent = new HttpProxyAgent({ port: proxyPort, protocol: 'https:' });
- assert.equal(true, agent.secureProxy);
- });
- it('should be `true` when "https" protocol is used', function () {
- var agent = new HttpProxyAgent({ port: proxyPort, protocol: 'https' });
- assert.equal(true, agent.secureProxy);
- });
- });
- });
-
- describe('"http" module', function () {
- it('should work over an HTTP proxy', function (done) {
- // set HTTP "request" event handler for this test
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- assert('via' in data);
- done();
- });
- });
- });
- it('should work over an HTTPS proxy', function (done) {
- // set HTTP "request" event handler for this test
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
- proxy = url.parse(proxy);
- proxy.rejectUnauthorized = false;
- var agent = new HttpProxyAgent(proxy);
- assert.equal(true, agent.secureProxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- assert('via' in data);
- done();
- });
- });
- });
- it('should proxy the query string of the request path', function (done) {
- // set HTTP "request" event handler for this test
- server.once('request', function (req, res) {
- res.end(JSON.stringify({
- url: req.url
- }));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort + '/test?foo=bar&1=2');
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('/test?foo=bar&1=2', data.url);
- done();
- });
- });
- });
- it('should receive the 407 authorization code on the `http.ClientResponse`', function (done) {
- // set a proxy authentication function for this test
- proxy.authenticate = function (req, fn) {
- // reject all requests
- fn(null, false);
- };
-
- var proxyUri = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpProxyAgent(proxyUri);
-
- var opts = {};
- // `host` and `port` don't really matter since the proxy will reject anyways
- opts.host = '127.0.0.1';
- opts.port = 80;
- opts.agent = agent;
-
- http.get(opts, function (res) {
- assert.equal(407, res.statusCode);
- assert('proxy-authenticate' in res.headers);
- delete proxy.authenticate;
- done();
- });
- });
- it('should send the "Proxy-Authorization" request header', function (done) {
- // set a proxy authentication function for this test
- proxy.authenticate = function (req, fn) {
- // username:password is "foo:bar"
- fn(null, req.headers['proxy-authorization'] == 'Basic Zm9vOmJhcg==');
- };
-
- // set HTTP "request" event handler for this test
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxyUri = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var proxyOpts = url.parse(proxyUri);
- proxyOpts.auth = 'foo:bar';
- var agent = new HttpProxyAgent(proxyOpts);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- assert('via' in data);
- delete proxy.authenticate;
- done();
- });
- });
- });
- it('should emit an "error" event on the `http.ClientRequest` if the proxy does not exist', function (done) {
- // port 4 is a reserved, but "unassigned" port
- var proxyUri = 'http://127.0.0.1:4';
- var agent = new HttpProxyAgent(proxyUri);
-
- var opts = url.parse('http://nodejs.org');
- opts.agent = agent;
-
- var req = http.get(opts);
- req.once('error', function (err) {
- assert.equal('ECONNREFUSED', err.code);
- req.abort();
- done();
- });
- });
- it('should work after the first tick of the `http.ClientRequest` instance', function (done) {
- // set HTTP "request" event handler for this test
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.url));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort + '/test');
- opts.agent = agent;
-
- // defer the "connect()" function logic, since calling .end() before the
- // "socket" event can cause weirdness since the HTTP header will have been
- // cached and the HttpProxyAgent `req.path` patches won't be respected
- var callback = agent.callback;
- agent.callback = function (req, opts, fn) {
- setTimeout(function () {
- agent.callback = callback;
- agent.callback(req, opts, fn);
- }, 10);
- };
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('/test', data);
- done();
- });
- });
- });
- });
-
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore
deleted file mode 100644
index c12f3a80c1..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/node_modules
-/?.js
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml
deleted file mode 100644
index 805d3d50d2..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-sudo: false
-
-language: node_js
-
-node_js:
- - "4"
- - "5"
- - "6"
- - "7"
- - "8"
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md
deleted file mode 100644
index c0b5cef88b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/History.md
+++ /dev/null
@@ -1,113 +0,0 @@
-
-2.1.0 / 2017-08-08
-==================
-
- * only include the port number in the Host header when non-default port (#22)
- * set ALPN to "http 1.1" by default when using tlsproxy (#25)
- * only set `ALPNProtocols` when the property does not already exist
- * support SNI (#14)
-
-2.0.0 / 2017-06-26
-==================
-
- * rename https-proxy-agent.js to index.js
- * update dependencies and remove semver-specific test case
- * update `agent-base` to v4
- * remove `extend` dependency
- * :arrow_up: update minimum version of debug dependency
- * opts/options
- * drop Node versions < v4 from Travis-CI
- * test Node.js 5, 6, 7 and 8 on Travis-CI
- * README: remove outdated `secureEndpoint` reference
- * README: remove `secureEndpoint` docs, add `headers`
- * https-proxy-agent: add support for proxy "headers"
-
-1.0.0 / 2015-07-10
-==================
-
- * upgrade to "agent-base" v2 API
- * test: test case is fixed
- * use %o debug() formatter
- * README: use SVG for Travis-CI badge
-
-0.3.6 / 2015-07-06
-==================
-
- * package: update "extend" to v3
- * package: update "mocha" to v2
- * package: update "debug" to v2
- * travis: test node v0.8, v0.10, and v0.12
- * test: use ssl-cert-snakeoil self-signed SSL certs
-
-0.3.5 / 2014-06-11
-==================
-
- * package: update "debug" to v1.0.0
-
-0.3.4 / 2014-04-09
-==================
-
- * gitignore: ignore root level ?.js files
- * package: update outdated dependencies
-
-0.3.3 / 2014-01-13
-==================
-
- * https-proxy-agnet: use debug() instead of console.error()
- * https-proxy-agent: fix debug() call
- * History: fix whitespace
-
-0.3.2 / 2013-11-18
-==================
-
- * https-proxy-agent: allow "https" without trailing colon
- * README: fix typo
-
-0.3.1 / 2013-11-16
-==================
-
- * test: enable the HTTPS over HTTPS test on node v0.11.8
- * https-proxy-agent: create the proxy socket connection first
- * https-proxy-agent: delete `pathname` from the proxy opts as well
- * https-proxy-agent: remove dead "end"-emitting code
-
-0.3.0 / 2013-09-16
-==================
-
- * https-proxy-agent: use "debug" module
- * https-proxy-agent: update to the "agent-base" v1 API
- * https-proxy-agent: default the "port" to 443 if not set
- * https-proxy-agent: augment the `opts` object for the `tls.connect` function
- * https-proxy-agent: use "extend" module
- * https-proxy-agent: remove use of `this` as much as possible
- * https-proxy-agent: listen for the "error" event of the socket
- * test: refactor of tests to use "proxy" module
- * test: add "error" event catching test
- * test: add 407 proxy response test
- * test: use "semver" module, disable the HTTPS over HTTPS test for node >= v0.11.3
-
-0.2.0 / 2013-09-03
-==================
-
- * Add initial "Proxy-Authorization" Basic authentication support
-
-0.1.0 / 2013-07-21
-==================
-
- * rename `secure` to `secureProxy`
- * added `secureEndpoint` option
- * various optimizations
- * README improvements
-
-0.0.2 / 2013-07-11
-==================
-
- * test: add mocha tests
- * don't use `socket.ondata`, use the official API instead
- * throw an Error when no proxy info is given
- * add support for passing options to net/tls .connect()
-
-0.0.1 / 2013-07-09
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md
deleted file mode 100644
index 5e0419cf9c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/README.md
+++ /dev/null
@@ -1,137 +0,0 @@
-https-proxy-agent
-================
-### An HTTP(s) proxy `http.Agent` implementation for HTTPS
-[![Build Status](https://travis-ci.org/TooTallNate/node-https-proxy-agent.svg?branch=master)](https://travis-ci.org/TooTallNate/node-https-proxy-agent)
-
-This module provides an `http.Agent` implementation that connects to a specified
-HTTP or HTTPS proxy server, and can be used with the built-in `https` module.
-
-Specifically, this `Agent` implementation connects to an intermediary "proxy"
-server and issues the [CONNECT HTTP method][CONNECT], which tells the proxy to
-open a direct TCP connection to the destination server.
-
-Since this agent implements the CONNECT HTTP method, it also works with other
-protocols that use this method when connecting over proxies (i.e. WebSockets).
-See the "Examples" section below for more.
-
-
-Installation
-------------
-
-Install with `npm`:
-
-``` bash
-$ npm install https-proxy-agent
-```
-
-
-Examples
---------
-
-#### `https` module example
-
-``` js
-var url = require('url');
-var https = require('https');
-var HttpsProxyAgent = require('https-proxy-agent');
-
-// HTTP/HTTPS proxy to connect to
-var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
-console.log('using proxy server %j', proxy);
-
-// HTTPS endpoint for the proxy to connect to
-var endpoint = process.argv[2] || 'https://graph.facebook.com/tootallnate';
-console.log('attempting to GET %j', endpoint);
-var options = url.parse(endpoint);
-
-// create an instance of the `HttpsProxyAgent` class with the proxy server information
-var agent = new HttpsProxyAgent(proxy);
-options.agent = agent;
-
-https.get(options, function (res) {
- console.log('"response" event!', res.headers);
- res.pipe(process.stdout);
-});
-```
-
-#### `ws` WebSocket connection example
-
-``` js
-var url = require('url');
-var WebSocket = require('ws');
-var HttpsProxyAgent = require('https-proxy-agent');
-
-// HTTP/HTTPS proxy to connect to
-var proxy = process.env.http_proxy || 'http://168.63.76.32:3128';
-console.log('using proxy server %j', proxy);
-
-// WebSocket endpoint for the proxy to connect to
-var endpoint = process.argv[2] || 'ws://echo.websocket.org';
-var parsed = url.parse(endpoint);
-console.log('attempting to connect to WebSocket %j', endpoint);
-
-// create an instance of the `HttpsProxyAgent` class with the proxy server information
-var options = url.parse(proxy);
-
-var agent = new HttpsProxyAgent(options);
-
-// finally, initiate the WebSocket connection
-var socket = new WebSocket(endpoint, { agent: agent });
-
-socket.on('open', function () {
- console.log('"open" event!');
- socket.send('hello world');
-});
-
-socket.on('message', function (data, flags) {
- console.log('"message" event! %j %j', data, flags);
- socket.close();
-});
-```
-
-API
----
-
-### new HttpsProxyAgent(Object options)
-
-The `HttpsProxyAgent` class implements an `http.Agent` subclass that connects
-to the specified "HTTP(s) proxy server" in order to proxy HTTPS and/or WebSocket
-requests. This is achieved by using the [HTTP `CONNECT` method][CONNECT].
-
-The `options` argument may either be a string URI of the proxy server to use, or an
-"options" object with more specific properties:
-
- * `host` - String - Proxy host to connect to (may use `hostname` as well). Required.
- * `port` - Number - Proxy port to connect to. Required.
- * `secureProxy` - Boolean - If `true`, then use TLS to connect to the proxy. Defaults to `false`.
- * `headers` - Object - Additional HTTP headers to be sent on the HTTP CONNECT method.
- * Any other options given are passed to the `net.connect()`/`tls.connect()` functions.
-
-
-License
--------
-
-(The MIT License)
-
-Copyright (c) 2013 Nathan Rajlich &lt;nathan@tootallnate.net&gt;
-
-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.
-
-[CONNECT]: http://en.wikipedia.org/wiki/HTTP_tunnel#HTTP_CONNECT_Tunneling
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js
deleted file mode 100644
index 699857804e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/index.js
+++ /dev/null
@@ -1,228 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var net = require('net');
-var tls = require('tls');
-var url = require('url');
-var Agent = require('agent-base');
-var inherits = require('util').inherits;
-var debug = require('debug')('https-proxy-agent');
-
-/**
- * Module exports.
- */
-
-module.exports = HttpsProxyAgent;
-
-/**
- * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to the
- * specified "HTTP(s) proxy server" in order to proxy HTTPS requests.
- *
- * @api public
- */
-
-function HttpsProxyAgent(opts) {
- if (!(this instanceof HttpsProxyAgent)) return new HttpsProxyAgent(opts);
- if ('string' == typeof opts) opts = url.parse(opts);
- if (!opts)
- throw new Error(
- 'an HTTP(S) proxy server `host` and `port` must be specified!'
- );
- debug('creating new HttpsProxyAgent instance: %o', opts);
- Agent.call(this, opts);
-
- var proxy = Object.assign({}, opts);
-
- // if `true`, then connect to the proxy server over TLS. defaults to `false`.
- this.secureProxy = proxy.protocol ? /^https:?$/i.test(proxy.protocol) : false;
-
- // prefer `hostname` over `host`, and set the `port` if needed
- proxy.host = proxy.hostname || proxy.host;
- proxy.port = +proxy.port || (this.secureProxy ? 443 : 80);
-
- // ALPN is supported by Node.js >= v5.
- // attempt to negotiate http/1.1 for proxy servers that support http/2
- if (this.secureProxy && !('ALPNProtocols' in proxy)) {
- proxy.ALPNProtocols = ['http 1.1']
- }
-
- if (proxy.host && proxy.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 proxy.path;
- delete proxy.pathname;
- }
-
- this.proxy = proxy;
-}
-inherits(HttpsProxyAgent, Agent);
-
-/**
- * Called when the node-core HTTP client library is creating a new HTTP request.
- *
- * @api public
- */
-
-HttpsProxyAgent.prototype.callback = function connect(req, opts, fn) {
- var proxy = this.proxy;
-
- // create a socket connection to the proxy server
- var socket;
- if (this.secureProxy) {
- socket = tls.connect(proxy);
- } else {
- socket = net.connect(proxy);
- }
-
- // we need to buffer any HTTP traffic that happens with the proxy before we get
- // the CONNECT response, so that if the response is anything other than an "200"
- // response code, then we can re-play the "data" events on the socket once the
- // HTTP parser is hooked up...
- var buffers = [];
- var buffersLength = 0;
-
- function read() {
- var b = socket.read();
- if (b) ondata(b);
- else socket.once('readable', read);
- }
-
- function cleanup() {
- socket.removeListener('data', ondata);
- socket.removeListener('end', onend);
- socket.removeListener('error', onerror);
- socket.removeListener('close', onclose);
- socket.removeListener('readable', read);
- }
-
- function onclose(err) {
- debug('onclose had error %o', err);
- }
-
- function onend() {
- debug('onend');
- }
-
- function onerror(err) {
- cleanup();
- fn(err);
- }
-
- function ondata(b) {
- buffers.push(b);
- buffersLength += b.length;
- var buffered = Buffer.concat(buffers, buffersLength);
- var str = buffered.toString('ascii');
-
- if (!~str.indexOf('\r\n\r\n')) {
- // keep buffering
- debug('have not received end of HTTP headers yet...');
- if (socket.read) {
- read();
- } else {
- socket.once('data', ondata);
- }
- return;
- }
-
- var firstLine = str.substring(0, str.indexOf('\r\n'));
- var statusCode = +firstLine.split(' ')[1];
- debug('got proxy server response: %o', firstLine);
-
- if (200 == statusCode) {
- // 200 Connected status code!
- var sock = socket;
-
- // nullify the buffered data since we won't be needing it
- buffers = buffered = null;
-
- if (opts.secureEndpoint) {
- // since the proxy is connecting to an SSL server, we have
- // to upgrade this socket connection to an SSL connection
- debug(
- 'upgrading proxy-connected socket to TLS connection: %o',
- opts.host
- );
- opts.socket = socket;
- opts.servername = opts.servername || opts.host;
- opts.host = null;
- opts.hostname = null;
- opts.port = null;
- sock = tls.connect(opts);
- }
-
- cleanup();
- fn(null, sock);
- } else {
- // some other status code that's not 200... need to re-play the HTTP header
- // "data" events onto the socket once the HTTP machinery is attached so that
- // the user can parse and handle the error status code
- cleanup();
-
- // save a reference to the concat'd Buffer for the `onsocket` callback
- buffers = buffered;
-
- // need to wait for the "socket" event to re-play the "data" events
- req.once('socket', onsocket);
- fn(null, socket);
- }
- }
-
- function onsocket(socket) {
- // replay the "buffers" Buffer onto the `socket`, since at this point
- // the HTTP module machinery has been hooked up for the user
- if ('function' == typeof socket.ondata) {
- // node <= v0.11.3, the `ondata` function is set on the socket
- socket.ondata(buffers, 0, buffers.length);
- } else if (socket.listeners('data').length > 0) {
- // node > v0.11.3, the "data" event is listened for directly
- socket.emit('data', buffers);
- } else {
- // never?
- throw new Error('should not happen...');
- }
-
- // nullify the cached Buffer instance
- buffers = null;
- }
-
- socket.on('error', onerror);
- socket.on('close', onclose);
- socket.on('end', onend);
-
- if (socket.read) {
- read();
- } else {
- socket.once('data', ondata);
- }
-
- var hostname = opts.host + ':' + opts.port;
- var msg = 'CONNECT ' + hostname + ' HTTP/1.1\r\n';
-
- var headers = Object.assign({}, proxy.headers);
- if (proxy.auth) {
- headers['Proxy-Authorization'] =
- 'Basic ' + new Buffer(proxy.auth).toString('base64');
- }
-
- // the Host header should only include the port
- // number when it is a non-standard port
- var host = opts.host;
- if (!isDefaultPort(opts.port, opts.secureEndpoint)) {
- host += ':' + opts.port;
- }
- headers['Host'] = host;
-
- headers['Connection'] = 'close';
- Object.keys(headers).forEach(function(name) {
- msg += name + ': ' + headers[name] + '\r\n';
- });
-
- socket.write(msg + '\r\n');
-};
-
-function isDefaultPort(port, secure) {
- return Boolean((!secure && port === 80) || (secure && port === 443));
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml
deleted file mode 100644
index 6ce862c6f6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index e12180e423..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,105 +0,0 @@
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md b/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
deleted file mode 100644
index 4141cc840f..0000000000
--- a/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
+++ /dev/null
@@ -1,89 +0,0 @@
-[![Travis CI](https://travis-ci.org/digitaldesignlabs/es6-promisify.svg)](https://travis-ci.org/digitaldesignlabs/es6-promisify)
-
-# es6-promisify
-
-Converts callback-based functions to Promise-based functions.
-
-## Install
-
-Install with [npm](https://npmjs.org/package/es6-promisify)
-
-```bash
-npm install --save es6-promisify
-```
-
-## Example
-
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const fs = require("fs");
-
-// Convert the stat function
-const stat = promisify(fs.stat);
-
-// Now usable as a promise!
-stat("example.txt").then(function (stats) {
- console.log("Got stats", stats);
-}).catch(function (err) {
- console.error("Yikes!", err);
-});
-```
-
-## Promisify methods
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const redis = require("redis").createClient(6379, "localhost");
-
-// Create a promise-based version of send_command
-const client = promisify(redis.send_command, redis);
-
-// Send commands to redis and get a promise back
-client("ping").then(function (pong) {
- console.log("Got", pong);
-}).catch(function (err) {
- console.error("Unexpected error", err);
-}).then(function () {
- redis.quit();
-});
-```
-
-## Handle callback multiple arguments
-```js
-"use strict";
-
-// Declare functions
-function test(cb) {
- return cb(undefined, 1, 2, 3);
-}
-
-// Declare variables
-const promisify = require("es6-promisify");
-
-// Create promise-based version of test
-const single = promisify(test);
-const multi = promisify(test, {multiArgs: true});
-
-// Discards additional arguments
-single().then(function (result) {
- console.log(result); // 1
-});
-
-// Returns all arguments as an array
-multi().then(function (result) {
- console.log(result); // [1, 2, 3]
-});
-```
-
-### Tests
-Test with nodeunit
-```bash
-$ npm test
-```
-
-Published under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/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 b/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
deleted file mode 100644
index 2fe5c6103b..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-/* global self, window, module, global, require */
-module.exports = function () {
-
- "use strict";
-
- var globalObject = void 0;
-
- function isFunction(x) {
- return typeof x === "function";
- }
-
- // Seek the global object
- if (global !== undefined) {
- globalObject = global;
- } else if (window !== undefined && window.document) {
- globalObject = window;
- } else {
- globalObject = self;
- }
-
- // Test for any native promise implementation, and if that
- // implementation appears to conform to the specificaton.
- // This code mostly nicked from the es6-promise module polyfill
- // and then fooled with.
- var hasPromiseSupport = function () {
-
- // No promise object at all, and it's a non-starter
- if (!globalObject.hasOwnProperty("Promise")) {
- return false;
- }
-
- // There is a Promise object. Does it conform to the spec?
- var P = globalObject.Promise;
-
- // Some of these methods are missing from
- // Firefox/Chrome experimental implementations
- if (!P.hasOwnProperty("resolve") || !P.hasOwnProperty("reject")) {
- return false;
- }
-
- if (!P.hasOwnProperty("all") || !P.hasOwnProperty("race")) {
- return false;
- }
-
- // Older version of the spec had a resolver object
- // as the arg rather than a function
- return function () {
-
- var resolve = void 0;
-
- var p = new globalObject.Promise(function (r) {
- resolve = r;
- });
-
- if (p) {
- return isFunction(resolve);
- }
-
- return false;
- }();
- }();
-
- // Export the native Promise implementation if it
- // looks like it matches the spec
- if (hasPromiseSupport) {
- return globalObject.Promise;
- }
-
- // Otherwise, return the es6-promise polyfill by @jaffathecake.
- return require("es6-promise").Promise;
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ce38041b07..0000000000
--- a/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
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-/* global module, require */
-module.exports = function () {
-
- "use strict";
-
- // Get a promise object. This may be native, or it may be polyfilled
-
- var ES6Promise = require("./promise.js");
-
- /**
- * thatLooksLikeAPromiseToMe()
- *
- * Duck-types a promise.
- *
- * @param {object} o
- * @return {bool} True if this resembles a promise
- */
- function thatLooksLikeAPromiseToMe(o) {
- return o && typeof o.then === "function" && typeof o.catch === "function";
- }
-
- /**
- * promisify()
- *
- * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into
- * an ES6-compatible Promise. Promisify provides a default callback of the form (error, result)
- * and rejects when `error` is truthy. You can also supply settings object as the second argument.
- *
- * @param {function} original - The function to promisify
- * @param {object} settings - Settings object
- * @param {object} settings.thisArg - A `this` context to use. If not set, assume `settings` _is_ `thisArg`
- * @param {bool} settings.multiArgs - Should multiple arguments be returned as an array?
- * @return {function} A promisified version of `original`
- */
- return function promisify(original, settings) {
-
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var returnMultipleArguments = settings && settings.multiArgs;
-
- var target = void 0;
- if (settings && settings.thisArg) {
- target = settings.thisArg;
- } else if (settings) {
- target = settings;
- }
-
- // Return the promisified function
- return new ES6Promise(function (resolve, reject) {
-
- // Append the callback bound to the context
- args.push(function callback(err) {
-
- if (err) {
- return reject(err);
- }
-
- for (var _len2 = arguments.length, values = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- values[_key2 - 1] = arguments[_key2];
- }
-
- if (false === !!returnMultipleArguments) {
- return resolve(values[0]);
- }
-
- resolve(values);
- });
-
- // Call the function
- var response = original.apply(target, args);
-
- // If it looks like original already returns a promise,
- // then just resolve with that promise. Hopefully, the callback function we added will just be ignored.
- if (thatLooksLikeAPromiseToMe(response)) {
- resolve(response);
- }
- });
- };
- };
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index 954ec5992d..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and 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.
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 92bbf36e58..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file can be required in Browserify and Node.js for automatic polyfill
-// To use it: require('es6-promise/auto');
-'use strict';
-module.exports = require('./').polyfill();
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 77997866f8..0000000000
--- a/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
+++ /dev/null
@@ -1,3 +0,0 @@
-import Promise from './es6-promise';
-Promise.polyfill();
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 4f4d840d09..0000000000
--- a/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
+++ /dev/null
@@ -1,7 +0,0 @@
-import Promise from './es6-promise/promise';
-import polyfill from './es6-promise/polyfill';
-
-// Strange compat..
-Promise.polyfill = polyfill;
-Promise.Promise = Promise;
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 9ca3c063aa..0000000000
--- a/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
+++ /dev/null
@@ -1,52 +0,0 @@
-import Enumerator from '../enumerator';
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-export default function all(entries) {
- return new Enumerator(this, entries).promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 166dc820b5..0000000000
--- a/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
+++ /dev/null
@@ -1,84 +0,0 @@
-import {
- isArray
-} from "../utils";
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-export default function race(entries) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
- } else {
- return new Constructor((resolve, reject) => {
- let length = entries.length;
- for (let i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cd55faabf5..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-import {
- noop,
- reject as _reject
-} from '../-internal';
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-export default function reject(reason) {
- /*jshint validthis:true */
- let Constructor = this;
- let promise = new Constructor(noop);
- _reject(promise, reason);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index f4642b630e..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- noop,
- resolve as _resolve
-} from '../-internal';
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-export default function resolve(object) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- let promise = new Constructor(noop);
- _resolve(promise, object);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b79f0a14..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
- invokeCallback,
- subscribe,
- FULFILLED,
- REJECTED,
- noop,
- makePromise,
- PROMISE_ID
-} from './-internal';
-
-import { asap } from './asap';
-
-export default function then(onFulfillment, onRejection) {
- const parent = this;
-
- const child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- const { _state } = parent;
-
- if (_state) {
- const callback = arguments[_state - 1];
- asap(() => invokeCallback(_state, child, callback, parent._result));
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
diff --git a/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 b/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
deleted file mode 100644
index 72545c5e97..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-export function objectOrFunction(x) {
- let type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-export function isFunction(x) {
- return typeof x === 'function';
-}
-
-export function isMaybeThenable(x) {
- return x !== null && typeof x === 'object';
-}
-
-let _isArray;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
-}
-
-export const isArray = _isArray;
diff --git a/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 b/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
deleted file mode 100644
index 5ed6cbbf62..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index bc6cd3bc2e..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/https-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index 51056e94b3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@^4.1.0",
- "_id": "agent-base@4.1.2",
- "_inBundle": false,
- "_integrity": "sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent/agent-base",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agent-base@^4.1.0",
- "name": "agent-base",
- "escapedName": "agent-base",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/https-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.2.tgz",
- "_shasum": "80fa6cde440f4dcf9af2617cf246099b5d99f0c8",
- "_spec": "agent-base@^4.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-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.1.2"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index 3891c13a8b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml
deleted file mode 100644
index 20a7068581..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.coveralls.yml
+++ /dev/null
@@ -1 +0,0 @@
-repo_token: SIAeZjKYlHK74rbcFvNHMUzjRiMpflxve
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore
deleted file mode 100644
index 5f60eecc84..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.npmignore
+++ /dev/null
@@ -1,9 +0,0 @@
-support
-test
-examples
-example
-*.sock
-dist
-yarn.lock
-coverage
-bower.json
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml
deleted file mode 100644
index 6c6090c3b0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/.travis.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-language: node_js
-node_js:
- - "6"
- - "5"
- - "4"
-
-install:
- - make node_modules
-
-script:
- - make lint
- - make test
- - make coveralls
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
deleted file mode 100644
index 553da1585e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/CHANGELOG.md
+++ /dev/null
@@ -1,362 +0,0 @@
-
-2.6.9 / 2017-09-22
-==================
-
- * remove ReDoS regexp in %o formatter (#504)
-
-2.6.8 / 2017-05-18
-==================
-
- * Fix: Check for undefined on browser globals (#462, @marbemac)
-
-2.6.7 / 2017-05-16
-==================
-
- * Fix: Update ms to 2.0.0 to fix regular expression denial of service vulnerability (#458, @hubdotcom)
- * Fix: Inline extend function in node implementation (#452, @dougwilson)
- * Docs: Fix typo (#455, @msasad)
-
-2.6.5 / 2017-04-27
-==================
-
- * Fix: null reference check on window.documentElement.style.WebkitAppearance (#447, @thebigredgeek)
- * Misc: clean up browser reference checks (#447, @thebigredgeek)
- * Misc: add npm-debug.log to .gitignore (@thebigredgeek)
-
-
-2.6.4 / 2017-04-20
-==================
-
- * Fix: bug that would occure if process.env.DEBUG is a non-string value. (#444, @LucianBuzzo)
- * Chore: ignore bower.json in npm installations. (#437, @joaovieira)
- * Misc: update "ms" to v0.7.3 (@tootallnate)
-
-2.6.3 / 2017-03-13
-==================
-
- * Fix: Electron reference to `process.env.DEBUG` (#431, @paulcbetts)
- * Docs: Changelog fix (@thebigredgeek)
-
-2.6.2 / 2017-03-10
-==================
-
- * Fix: DEBUG_MAX_ARRAY_LENGTH (#420, @slavaGanzin)
- * Docs: Add backers and sponsors from Open Collective (#422, @piamancini)
- * Docs: Add Slackin invite badge (@tootallnate)
-
-2.6.1 / 2017-02-10
-==================
-
- * Fix: Module's `export default` syntax fix for IE8 `Expected identifier` error
- * Fix: Whitelist DEBUG_FD for values 1 and 2 only (#415, @pi0)
- * Fix: IE8 "Expected identifier" error (#414, @vgoma)
- * Fix: Namespaces would not disable once enabled (#409, @musikov)
-
-2.6.0 / 2016-12-28
-==================
-
- * Fix: added better null pointer checks for browser useColors (@thebigredgeek)
- * Improvement: removed explicit `window.debug` export (#404, @tootallnate)
- * Improvement: deprecated `DEBUG_FD` environment variable (#405, @tootallnate)
-
-2.5.2 / 2016-12-25
-==================
-
- * Fix: reference error on window within webworkers (#393, @KlausTrainer)
- * Docs: fixed README typo (#391, @lurch)
- * Docs: added notice about v3 api discussion (@thebigredgeek)
-
-2.5.1 / 2016-12-20
-==================
-
- * Fix: babel-core compatibility
-
-2.5.0 / 2016-12-20
-==================
-
- * Fix: wrong reference in bower file (@thebigredgeek)
- * Fix: webworker compatibility (@thebigredgeek)
- * Fix: output formatting issue (#388, @kribblo)
- * Fix: babel-loader compatibility (#383, @escwald)
- * Misc: removed built asset from repo and publications (@thebigredgeek)
- * Misc: moved source files to /src (#378, @yamikuronue)
- * Test: added karma integration and replaced babel with browserify for browser tests (#378, @yamikuronue)
- * Test: coveralls integration (#378, @yamikuronue)
- * Docs: simplified language in the opening paragraph (#373, @yamikuronue)
-
-2.4.5 / 2016-12-17
-==================
-
- * Fix: `navigator` undefined in Rhino (#376, @jochenberger)
- * Fix: custom log function (#379, @hsiliev)
- * Improvement: bit of cleanup + linting fixes (@thebigredgeek)
- * Improvement: rm non-maintainted `dist/` dir (#375, @freewil)
- * Docs: simplified language in the opening paragraph. (#373, @yamikuronue)
-
-2.4.4 / 2016-12-14
-==================
-
- * Fix: work around debug being loaded in preload scripts for electron (#368, @paulcbetts)
-
-2.4.3 / 2016-12-14
-==================
-
- * Fix: navigation.userAgent error for react native (#364, @escwald)
-
-2.4.2 / 2016-12-14
-==================
-
- * Fix: browser colors (#367, @tootallnate)
- * Misc: travis ci integration (@thebigredgeek)
- * Misc: added linting and testing boilerplate with sanity check (@thebigredgeek)
-
-2.4.1 / 2016-12-13
-==================
-
- * Fix: typo that broke the package (#356)
-
-2.4.0 / 2016-12-13
-==================
-
- * Fix: bower.json references unbuilt src entry point (#342, @justmatt)
- * Fix: revert "handle regex special characters" (@tootallnate)
- * Feature: configurable util.inspect()`options for NodeJS (#327, @tootallnate)
- * Feature: %O`(big O) pretty-prints objects (#322, @tootallnate)
- * Improvement: allow colors in workers (#335, @botverse)
- * Improvement: use same color for same namespace. (#338, @lchenay)
-
-2.3.3 / 2016-11-09
-==================
-
- * Fix: Catch `JSON.stringify()` errors (#195, Jovan Alleyne)
- * Fix: Returning `localStorage` saved values (#331, Levi Thomason)
- * Improvement: Don't create an empty object when no `process` (Nathan Rajlich)
-
-2.3.2 / 2016-11-09
-==================
-
- * Fix: be super-safe in index.js as well (@TooTallNate)
- * Fix: should check whether process exists (Tom Newby)
-
-2.3.1 / 2016-11-09
-==================
-
- * Fix: Added electron compatibility (#324, @paulcbetts)
- * Improvement: Added performance optimizations (@tootallnate)
- * Readme: Corrected PowerShell environment variable example (#252, @gimre)
- * Misc: Removed yarn lock file from source control (#321, @fengmk2)
-
-2.3.0 / 2016-11-07
-==================
-
- * Fix: Consistent placement of ms diff at end of output (#215, @gorangajic)
- * Fix: Escaping of regex special characters in namespace strings (#250, @zacronos)
- * Fix: Fixed bug causing crash on react-native (#282, @vkarpov15)
- * Feature: Enabled ES6+ compatible import via default export (#212 @bucaran)
- * Feature: Added %O formatter to reflect Chrome's console.log capability (#279, @oncletom)
- * Package: Update "ms" to 0.7.2 (#315, @DevSide)
- * Package: removed superfluous version property from bower.json (#207 @kkirsche)
- * Readme: fix USE_COLORS to DEBUG_COLORS
- * Readme: Doc fixes for format string sugar (#269, @mlucool)
- * Readme: Updated docs for DEBUG_FD and DEBUG_COLORS environment variables (#232, @mattlyons0)
- * Readme: doc fixes for PowerShell (#271 #243, @exoticknight @unreadable)
- * Readme: better docs for browser support (#224, @matthewmueller)
- * Tooling: Added yarn integration for development (#317, @thebigredgeek)
- * Misc: Renamed History.md to CHANGELOG.md (@thebigredgeek)
- * Misc: Added license file (#226 #274, @CantemoInternal @sdaitzman)
- * Misc: Updated contributors (@thebigredgeek)
-
-2.2.0 / 2015-05-09
-==================
-
- * package: update "ms" to v0.7.1 (#202, @dougwilson)
- * README: add logging to file example (#193, @DanielOchoa)
- * README: fixed a typo (#191, @amir-s)
- * browser: expose `storage` (#190, @stephenmathieson)
- * Makefile: add a `distclean` target (#189, @stephenmathieson)
-
-2.1.3 / 2015-03-13
-==================
-
- * Updated stdout/stderr example (#186)
- * Updated example/stdout.js to match debug current behaviour
- * Renamed example/stderr.js to stdout.js
- * Update Readme.md (#184)
- * replace high intensity foreground color for bold (#182, #183)
-
-2.1.2 / 2015-03-01
-==================
-
- * dist: recompile
- * update "ms" to v0.7.0
- * package: update "browserify" to v9.0.3
- * component: fix "ms.js" repo location
- * changed bower package name
- * updated documentation about using debug in a browser
- * fix: security error on safari (#167, #168, @yields)
-
-2.1.1 / 2014-12-29
-==================
-
- * browser: use `typeof` to check for `console` existence
- * browser: check for `console.log` truthiness (fix IE 8/9)
- * browser: add support for Chrome apps
- * Readme: added Windows usage remarks
- * Add `bower.json` to properly support bower install
-
-2.1.0 / 2014-10-15
-==================
-
- * node: implement `DEBUG_FD` env variable support
- * package: update "browserify" to v6.1.0
- * package: add "license" field to package.json (#135, @panuhorsmalahti)
-
-2.0.0 / 2014-09-01
-==================
-
- * package: update "browserify" to v5.11.0
- * node: use stderr rather than stdout for logging (#29, @stephenmathieson)
-
-1.0.4 / 2014-07-15
-==================
-
- * dist: recompile
- * example: remove `console.info()` log usage
- * example: add "Content-Type" UTF-8 header to browser example
- * browser: place %c marker after the space character
- * browser: reset the "content" color via `color: inherit`
- * browser: add colors support for Firefox >= v31
- * debug: prefer an instance `log()` function over the global one (#119)
- * Readme: update documentation about styled console logs for FF v31 (#116, @wryk)
-
-1.0.3 / 2014-07-09
-==================
-
- * Add support for multiple wildcards in namespaces (#122, @seegno)
- * browser: fix lint
-
-1.0.2 / 2014-06-10
-==================
-
- * browser: update color palette (#113, @gscottolson)
- * common: make console logging function configurable (#108, @timoxley)
- * node: fix %o colors on old node <= 0.8.x
- * Makefile: find node path using shell/which (#109, @timoxley)
-
-1.0.1 / 2014-06-06
-==================
-
- * browser: use `removeItem()` to clear localStorage
- * browser, node: don't set DEBUG if namespaces is undefined (#107, @leedm777)
- * package: add "contributors" section
- * node: fix comment typo
- * README: list authors
-
-1.0.0 / 2014-06-04
-==================
-
- * make ms diff be global, not be scope
- * debug: ignore empty strings in enable()
- * node: make DEBUG_COLORS able to disable coloring
- * *: export the `colors` array
- * npmignore: don't publish the `dist` dir
- * Makefile: refactor to use browserify
- * package: add "browserify" as a dev dependency
- * Readme: add Web Inspector Colors section
- * node: reset terminal color for the debug content
- * node: map "%o" to `util.inspect()`
- * browser: map "%j" to `JSON.stringify()`
- * debug: add custom "formatters"
- * debug: use "ms" module for humanizing the diff
- * Readme: add "bash" syntax highlighting
- * browser: add Firebug color support
- * browser: add colors for WebKit browsers
- * node: apply log to `console`
- * rewrite: abstract common logic for Node & browsers
- * add .jshintrc file
-
-0.8.1 / 2014-04-14
-==================
-
- * package: re-add the "component" section
-
-0.8.0 / 2014-03-30
-==================
-
- * add `enable()` method for nodejs. Closes #27
- * change from stderr to stdout
- * remove unnecessary index.js file
-
-0.7.4 / 2013-11-13
-==================
-
- * remove "browserify" key from package.json (fixes something in browserify)
-
-0.7.3 / 2013-10-30
-==================
-
- * fix: catch localStorage security error when cookies are blocked (Chrome)
- * add debug(err) support. Closes #46
- * add .browser prop to package.json. Closes #42
-
-0.7.2 / 2013-02-06
-==================
-
- * fix package.json
- * fix: Mobile Safari (private mode) is broken with debug
- * fix: Use unicode to send escape character to shell instead of octal to work with strict mode javascript
-
-0.7.1 / 2013-02-05
-==================
-
- * add repository URL to package.json
- * add DEBUG_COLORED to force colored output
- * add browserify support
- * fix component. Closes #24
-
-0.7.0 / 2012-05-04
-==================
-
- * Added .component to package.json
- * Added debug.component.js build
-
-0.6.0 / 2012-03-16
-==================
-
- * Added support for "-" prefix in DEBUG [Vinay Pulim]
- * Added `.enabled` flag to the node version [TooTallNate]
-
-0.5.0 / 2012-02-02
-==================
-
- * Added: humanize diffs. Closes #8
- * Added `debug.disable()` to the CS variant
- * Removed padding. Closes #10
- * Fixed: persist client-side variant again. Closes #9
-
-0.4.0 / 2012-02-01
-==================
-
- * Added browser variant support for older browsers [TooTallNate]
- * Added `debug.enable('project:*')` to browser variant [TooTallNate]
- * Added padding to diff (moved it to the right)
-
-0.3.0 / 2012-01-26
-==================
-
- * Added millisecond diff when isatty, otherwise UTC string
-
-0.2.0 / 2012-01-22
-==================
-
- * Added wildcard support
-
-0.1.0 / 2011-12-02
-==================
-
- * Added: remove colors unless stderr isatty [TooTallNate]
-
-0.0.1 / 2010-01-03
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE
deleted file mode 100644
index 54a5d93f4d..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-(The MIT License)
-
-Copyright (c) 2014 TJ Holowaychuk <tj@vision-media.ca>
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile
deleted file mode 100644
index 584da8bf93..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-# get Makefile directory name: http://stackoverflow.com/a/5982798/376773
-THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
-
-# BIN directory
-BIN := $(THIS_DIR)/node_modules/.bin
-
-# Path
-PATH := node_modules/.bin:$(PATH)
-SHELL := /bin/bash
-
-# applications
-NODE ?= $(shell which node)
-YARN ?= $(shell which yarn)
-PKG ?= $(if $(YARN),$(YARN),$(NODE) $(shell which npm))
-BROWSERIFY ?= $(NODE) $(BIN)/browserify
-
-.FORCE:
-
-install: node_modules
-
-node_modules: package.json
- @NODE_ENV= $(PKG) install
- @touch node_modules
-
-lint: .FORCE
- eslint browser.js debug.js index.js node.js
-
-test-node: .FORCE
- istanbul cover node_modules/mocha/bin/_mocha -- test/**.js
-
-test-browser: .FORCE
- mkdir -p dist
-
- @$(BROWSERIFY) \
- --standalone debug \
- . > dist/debug.js
-
- karma start --single-run
- rimraf dist
-
-test: .FORCE
- concurrently \
- "make test-node" \
- "make test-browser"
-
-coveralls:
- cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js
-
-.PHONY: all install clean distclean
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md
deleted file mode 100644
index bc59ae86e8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/README.md
+++ /dev/null
@@ -1,312 +0,0 @@
-# debug
-[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers)
-[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors)
-
-
-
-A tiny node.js debugging utility modelled after node core's debugging technique.
-
-**Discussion around the V3 API is under way [here](https://github.com/visionmedia/debug/issues/370)**
-
-## Installation
-
-```bash
-$ npm install debug
-```
-
-## Usage
-
-`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole.
-
-Example _app.js_:
-
-```js
-var debug = require('debug')('http')
- , http = require('http')
- , name = 'My App';
-
-// fake app
-
-debug('booting %s', name);
-
-http.createServer(function(req, res){
- debug(req.method + ' ' + req.url);
- res.end('hello\n');
-}).listen(3000, function(){
- debug('listening');
-});
-
-// fake worker of some kind
-
-require('./worker');
-```
-
-Example _worker.js_:
-
-```js
-var debug = require('debug')('worker');
-
-setInterval(function(){
- debug('doing some work');
-}, 1000);
-```
-
- The __DEBUG__ environment variable is then used to enable these based on space or comma-delimited names. Here are some examples:
-
- ![debug http and worker](http://f.cl.ly/items/18471z1H402O24072r1J/Screenshot.png)
-
- ![debug worker](http://f.cl.ly/items/1X413v1a3M0d3C2c1E0i/Screenshot.png)
-
-#### Windows note
-
- On Windows the environment variable is set using the `set` command.
-
- ```cmd
- set DEBUG=*,-not_this
- ```
-
- Note that PowerShell uses different syntax to set environment variables.
-
- ```cmd
- $env:DEBUG = "*,-not_this"
- ```
-
-Then, run the program to be debugged as usual.
-
-## Millisecond diff
-
- When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls.
-
- ![](http://f.cl.ly/items/2i3h1d3t121M2Z1A3Q0N/Screenshot.png)
-
- When stdout is not a TTY, `Date#toUTCString()` is used, making it more useful for logging the debug information as shown below:
-
- ![](http://f.cl.ly/items/112H3i0e0o0P0a2Q2r11/Screenshot.png)
-
-## Conventions
-
- If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser".
-
-## Wildcards
-
- The `*` character may be used as a wildcard. Suppose for example your library has debuggers named "connect:bodyParser", "connect:compress", "connect:session", instead of listing all three with `DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do `DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`.
-
- You can also exclude specific debuggers by prefixing them with a "-" character. For example, `DEBUG=*,-connect:*` would include all debuggers except those starting with "connect:".
-
-## Environment Variables
-
- When running through Node.js, you can set a few environment variables that will
- change the behavior of the debug logging:
-
-| Name | Purpose |
-|-----------|-------------------------------------------------|
-| `DEBUG` | Enables/disables specific debugging namespaces. |
-| `DEBUG_COLORS`| Whether or not to use colors in the debug output. |
-| `DEBUG_DEPTH` | Object inspection depth. |
-| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. |
-
-
- __Note:__ The environment variables beginning with `DEBUG_` end up being
- converted into an Options object that gets used with `%o`/`%O` formatters.
- See the Node.js documentation for
- [`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options)
- for the complete list.
-
-## Formatters
-
-
- Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. Below are the officially supported formatters:
-
-| Formatter | Representation |
-|-----------|----------------|
-| `%O` | Pretty-print an Object on multiple lines. |
-| `%o` | Pretty-print an Object all on a single line. |
-| `%s` | String. |
-| `%d` | Number (both integer and float). |
-| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. |
-| `%%` | Single percent sign ('%'). This does not consume an argument. |
-
-### Custom formatters
-
- You can add custom formatters by extending the `debug.formatters` object. For example, if you wanted to add support for rendering a Buffer as hex with `%h`, you could do something like:
-
-```js
-const createDebug = require('debug')
-createDebug.formatters.h = (v) => {
- return v.toString('hex')
-}
-
-// ā€¦elsewhere
-const debug = createDebug('foo')
-debug('this is hex: %h', new Buffer('hello world'))
-// foo this is hex: 68656c6c6f20776f726c6421 +0ms
-```
-
-## Browser support
- You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify),
- or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest),
- if you don't want to build it yourself.
-
- Debug's enable state is currently persisted by `localStorage`.
- Consider the situation shown below where you have `worker:a` and `worker:b`,
- and wish to debug both. You can enable this using `localStorage.debug`:
-
-```js
-localStorage.debug = 'worker:*'
-```
-
-And then refresh the page.
-
-```js
-a = debug('worker:a');
-b = debug('worker:b');
-
-setInterval(function(){
- a('doing some work');
-}, 1000);
-
-setInterval(function(){
- b('doing some work');
-}, 1200);
-```
-
-#### Web Inspector Colors
-
- Colors are also enabled on "Web Inspectors" that understand the `%c` formatting
- option. These are WebKit web inspectors, Firefox ([since version
- 31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/))
- and the Firebug plugin for Firefox (any version).
-
- Colored output looks something like:
-
- ![](https://cloud.githubusercontent.com/assets/71256/3139768/b98c5fd8-e8ef-11e3-862a-f7253b6f47c6.png)
-
-
-## Output streams
-
- By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method:
-
-Example _stdout.js_:
-
-```js
-var debug = require('debug');
-var error = debug('app:error');
-
-// by default stderr is used
-error('goes to stderr!');
-
-var log = debug('app:log');
-// set this namespace to log via console.log
-log.log = console.log.bind(console); // don't forget to bind to console!
-log('goes to stdout');
-error('still goes to stderr!');
-
-// set all output to go via console.info
-// overrides all per-namespace log settings
-debug.log = console.info.bind(console);
-error('now goes to stdout via console.info');
-log('still goes to stdout, but via console.info now');
-```
-
-
-## Authors
-
- - TJ Holowaychuk
- - Nathan Rajlich
- - Andrew Rhyne
-
-## Backers
-
-Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)]
-
-<a href="https://opencollective.com/debug/backer/0/website" target="_blank"><img src="https://opencollective.com/debug/backer/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/1/website" target="_blank"><img src="https://opencollective.com/debug/backer/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/2/website" target="_blank"><img src="https://opencollective.com/debug/backer/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/3/website" target="_blank"><img src="https://opencollective.com/debug/backer/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/4/website" target="_blank"><img src="https://opencollective.com/debug/backer/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/5/website" target="_blank"><img src="https://opencollective.com/debug/backer/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/6/website" target="_blank"><img src="https://opencollective.com/debug/backer/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/7/website" target="_blank"><img src="https://opencollective.com/debug/backer/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/8/website" target="_blank"><img src="https://opencollective.com/debug/backer/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/9/website" target="_blank"><img src="https://opencollective.com/debug/backer/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/10/website" target="_blank"><img src="https://opencollective.com/debug/backer/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/11/website" target="_blank"><img src="https://opencollective.com/debug/backer/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/12/website" target="_blank"><img src="https://opencollective.com/debug/backer/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/13/website" target="_blank"><img src="https://opencollective.com/debug/backer/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/14/website" target="_blank"><img src="https://opencollective.com/debug/backer/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/15/website" target="_blank"><img src="https://opencollective.com/debug/backer/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/16/website" target="_blank"><img src="https://opencollective.com/debug/backer/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/17/website" target="_blank"><img src="https://opencollective.com/debug/backer/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/18/website" target="_blank"><img src="https://opencollective.com/debug/backer/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/19/website" target="_blank"><img src="https://opencollective.com/debug/backer/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/20/website" target="_blank"><img src="https://opencollective.com/debug/backer/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/21/website" target="_blank"><img src="https://opencollective.com/debug/backer/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/22/website" target="_blank"><img src="https://opencollective.com/debug/backer/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/23/website" target="_blank"><img src="https://opencollective.com/debug/backer/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/24/website" target="_blank"><img src="https://opencollective.com/debug/backer/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/25/website" target="_blank"><img src="https://opencollective.com/debug/backer/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/26/website" target="_blank"><img src="https://opencollective.com/debug/backer/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/27/website" target="_blank"><img src="https://opencollective.com/debug/backer/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/28/website" target="_blank"><img src="https://opencollective.com/debug/backer/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/backer/29/website" target="_blank"><img src="https://opencollective.com/debug/backer/29/avatar.svg"></a>
-
-
-## Sponsors
-
-Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)]
-
-<a href="https://opencollective.com/debug/sponsor/0/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/0/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/1/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/1/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/2/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/2/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/3/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/3/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/4/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/4/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/5/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/5/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/6/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/6/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/7/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/7/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/8/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/8/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/9/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/9/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/10/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/10/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/11/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/11/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/12/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/12/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/13/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/13/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/14/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/14/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/15/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/15/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/16/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/16/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/17/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/17/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/18/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/18/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/19/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/19/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/20/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/20/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/21/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/21/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/22/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/22/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/23/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/23/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/24/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/24/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/25/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/25/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/26/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/26/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/27/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/27/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/28/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/28/avatar.svg"></a>
-<a href="https://opencollective.com/debug/sponsor/29/website" target="_blank"><img src="https://opencollective.com/debug/sponsor/29/avatar.svg"></a>
-
-## License
-
-(The MIT License)
-
-Copyright (c) 2014-2016 TJ Holowaychuk &lt;tj@vision-media.ca&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json
deleted file mode 100644
index 9de26410f0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/component.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "name": "debug",
- "repo": "visionmedia/debug",
- "description": "small debugging utility",
- "version": "2.6.9",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "main": "src/browser.js",
- "scripts": [
- "src/browser.js",
- "src/debug.js"
- ],
- "dependencies": {
- "rauchg/ms.js": "0.7.1"
- }
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js
deleted file mode 100644
index 103a82d15b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/karma.conf.js
+++ /dev/null
@@ -1,70 +0,0 @@
-// Karma configuration
-// Generated on Fri Dec 16 2016 13:09:51 GMT+0000 (UTC)
-
-module.exports = function(config) {
- config.set({
-
- // base path that will be used to resolve all patterns (eg. files, exclude)
- basePath: '',
-
-
- // frameworks to use
- // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
- frameworks: ['mocha', 'chai', 'sinon'],
-
-
- // list of files / patterns to load in the browser
- files: [
- 'dist/debug.js',
- 'test/*spec.js'
- ],
-
-
- // list of files to exclude
- exclude: [
- 'src/node.js'
- ],
-
-
- // preprocess matching files before serving them to the browser
- // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
- preprocessors: {
- },
-
- // test results reporter to use
- // possible values: 'dots', 'progress'
- // available reporters: https://npmjs.org/browse/keyword/karma-reporter
- reporters: ['progress'],
-
-
- // web server port
- port: 9876,
-
-
- // enable / disable colors in the output (reporters and logs)
- colors: true,
-
-
- // level of logging
- // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
- logLevel: config.LOG_INFO,
-
-
- // enable / disable watching file and executing tests whenever any file changes
- autoWatch: true,
-
-
- // start these browsers
- // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
- browsers: ['PhantomJS'],
-
-
- // Continuous Integration mode
- // if true, Karma captures browsers, runs the tests and exits
- singleRun: false,
-
- // Concurrency level
- // how many browser should be started simultaneous
- concurrency: Infinity
- })
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js
deleted file mode 100644
index 7fc36fe6db..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node.js
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./src/node');
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js
deleted file mode 100644
index 6a522b16b3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-/**
- * Helpers.
- */
-
-var s = 1000;
-var m = s * 60;
-var h = m * 60;
-var d = h * 24;
-var y = d * 365.25;
-
-/**
- * Parse or format the given `val`.
- *
- * Options:
- *
- * - `long` verbose formatting [false]
- *
- * @param {String|Number} val
- * @param {Object} [options]
- * @throws {Error} throw an error if val is not a non-empty string or a number
- * @return {String|Number}
- * @api public
- */
-
-module.exports = function(val, options) {
- options = options || {};
- var type = typeof val;
- if (type === 'string' && val.length > 0) {
- return parse(val);
- } else if (type === 'number' && isNaN(val) === false) {
- return options.long ? fmtLong(val) : fmtShort(val);
- }
- throw new Error(
- 'val is not a non-empty string or a valid number. val=' +
- JSON.stringify(val)
- );
-};
-
-/**
- * Parse the given `str` and return milliseconds.
- *
- * @param {String} str
- * @return {Number}
- * @api private
- */
-
-function parse(str) {
- str = String(str);
- if (str.length > 100) {
- return;
- }
- var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(
- str
- );
- if (!match) {
- return;
- }
- var n = parseFloat(match[1]);
- var type = (match[2] || 'ms').toLowerCase();
- switch (type) {
- case 'years':
- case 'year':
- case 'yrs':
- case 'yr':
- case 'y':
- return n * y;
- case 'days':
- case 'day':
- case 'd':
- return n * d;
- case 'hours':
- case 'hour':
- case 'hrs':
- case 'hr':
- case 'h':
- return n * h;
- case 'minutes':
- case 'minute':
- case 'mins':
- case 'min':
- case 'm':
- return n * m;
- case 'seconds':
- case 'second':
- case 'secs':
- case 'sec':
- case 's':
- return n * s;
- case 'milliseconds':
- case 'millisecond':
- case 'msecs':
- case 'msec':
- case 'ms':
- return n;
- default:
- return undefined;
- }
-}
-
-/**
- * Short format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtShort(ms) {
- if (ms >= d) {
- return Math.round(ms / d) + 'd';
- }
- if (ms >= h) {
- return Math.round(ms / h) + 'h';
- }
- if (ms >= m) {
- return Math.round(ms / m) + 'm';
- }
- if (ms >= s) {
- return Math.round(ms / s) + 's';
- }
- return ms + 'ms';
-}
-
-/**
- * Long format for `ms`.
- *
- * @param {Number} ms
- * @return {String}
- * @api private
- */
-
-function fmtLong(ms) {
- return plural(ms, d, 'day') ||
- plural(ms, h, 'hour') ||
- plural(ms, m, 'minute') ||
- plural(ms, s, 'second') ||
- ms + ' ms';
-}
-
-/**
- * Pluralization helper.
- */
-
-function plural(ms, n, name) {
- if (ms < n) {
- return;
- }
- if (ms < n * 1.5) {
- return Math.floor(ms / n) + ' ' + name;
- }
- return Math.ceil(ms / n) + ' ' + name + 's';
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md
deleted file mode 100644
index 69b61253a3..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/license.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Zeit, Inc.
-
-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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json
deleted file mode 100644
index edaef6e355..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "ms@2.0.0",
- "_id": "ms@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent/debug/ms",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "ms@2.0.0",
- "name": "ms",
- "escapedName": "ms",
- "rawSpec": "2.0.0",
- "saveSpec": null,
- "fetchSpec": "2.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/https-proxy-agent/debug"
- ],
- "_resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "_shasum": "5608aeadfc00be6c2901df5f9861788de0d597c8",
- "_spec": "ms@2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug",
- "bugs": {
- "url": "https://github.com/zeit/ms/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Tiny milisecond conversion utility",
- "devDependencies": {
- "eslint": "3.19.0",
- "expect.js": "0.3.1",
- "husky": "0.13.3",
- "lint-staged": "3.4.1",
- "mocha": "3.4.1"
- },
- "eslintConfig": {
- "extends": "eslint:recommended",
- "env": {
- "node": true,
- "es6": true
- }
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zeit/ms#readme",
- "license": "MIT",
- "lint-staged": {
- "*.js": [
- "npm run lint",
- "prettier --single-quote --write",
- "git add"
- ]
- },
- "main": "./index",
- "name": "ms",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zeit/ms.git"
- },
- "scripts": {
- "lint": "eslint lib/* bin/*",
- "precommit": "lint-staged",
- "test": "mocha tests.js"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md
deleted file mode 100644
index 84a9974ccc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/node_modules/ms/readme.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# ms
-
-[![Build Status](https://travis-ci.org/zeit/ms.svg?branch=master)](https://travis-ci.org/zeit/ms)
-[![Slack Channel](http://zeit-slackin.now.sh/badge.svg)](https://zeit.chat/)
-
-Use this package to easily convert various time formats to milliseconds.
-
-## Examples
-
-```js
-ms('2 days') // 172800000
-ms('1d') // 86400000
-ms('10h') // 36000000
-ms('2.5 hrs') // 9000000
-ms('2h') // 7200000
-ms('1m') // 60000
-ms('5s') // 5000
-ms('1y') // 31557600000
-ms('100') // 100
-```
-
-### Convert from milliseconds
-
-```js
-ms(60000) // "1m"
-ms(2 * 60000) // "2m"
-ms(ms('10 hours')) // "10h"
-```
-
-### Time format written-out
-
-```js
-ms(60000, { long: true }) // "1 minute"
-ms(2 * 60000, { long: true }) // "2 minutes"
-ms(ms('10 hours'), { long: true }) // "10 hours"
-```
-
-## Features
-
-- Works both in [node](https://nodejs.org) and in the browser.
-- If a number is supplied to `ms`, a string with a unit is returned.
-- If a string that contains the number is supplied, it returns it as a number (e.g.: it returns `100` for `'100'`).
-- If you pass a string with a number and a valid unit, the number of equivalent ms is returned.
-
-## Caught a bug?
-
-1. [Fork](https://help.github.com/articles/fork-a-repo/) this repository to your own GitHub account and then [clone](https://help.github.com/articles/cloning-a-repository/) it to your local device
-2. Link the package to the global module directory: `npm link`
-3. Within the module you want to test your local development instance of ms, just link it to the dependencies: `npm link ms`. Instead of the default one from npm, node will now use your clone of ms!
-
-As always, you can run the tests using: `npm test`
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json
deleted file mode 100644
index 72abce8970..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "debug@^2.4.1",
- "_id": "debug@2.6.9",
- "_inBundle": false,
- "_integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent/debug",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "debug@^2.4.1",
- "name": "debug",
- "escapedName": "debug",
- "rawSpec": "^2.4.1",
- "saveSpec": null,
- "fetchSpec": "^2.4.1"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/https-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "_shasum": "5d128515df134ff327e90a4c93f4e077a536341f",
- "_spec": "debug@^2.4.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent",
- "author": {
- "name": "TJ Holowaychuk",
- "email": "tj@vision-media.ca"
- },
- "browser": "./src/browser.js",
- "bugs": {
- "url": "https://github.com/visionmedia/debug/issues"
- },
- "bundleDependencies": false,
- "component": {
- "scripts": {
- "debug/index.js": "browser.js",
- "debug/debug.js": "debug.js"
- }
- },
- "contributors": [
- {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io"
- },
- {
- "name": "Andrew Rhyne",
- "email": "rhyneandrew@gmail.com"
- }
- ],
- "dependencies": {
- "ms": "2.0.0"
- },
- "deprecated": false,
- "description": "small debugging utility",
- "devDependencies": {
- "browserify": "9.0.3",
- "chai": "^3.5.0",
- "concurrently": "^3.1.0",
- "coveralls": "^2.11.15",
- "eslint": "^3.12.1",
- "istanbul": "^0.4.5",
- "karma": "^1.3.0",
- "karma-chai": "^0.1.0",
- "karma-mocha": "^1.3.0",
- "karma-phantomjs-launcher": "^1.0.2",
- "karma-sinon": "^1.0.5",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0",
- "rimraf": "^2.5.4",
- "sinon": "^1.17.6",
- "sinon-chai": "^2.8.0"
- },
- "homepage": "https://github.com/visionmedia/debug#readme",
- "keywords": [
- "debug",
- "log",
- "debugger"
- ],
- "license": "MIT",
- "main": "./src/index.js",
- "name": "debug",
- "repository": {
- "type": "git",
- "url": "git://github.com/visionmedia/debug.git"
- },
- "version": "2.6.9"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
deleted file mode 100644
index 7106924934..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/browser.js
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * This is the web browser implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-exports.storage = 'undefined' != typeof chrome
- && 'undefined' != typeof chrome.storage
- ? chrome.storage.local
- : localstorage();
-
-/**
- * Colors.
- */
-
-exports.colors = [
- 'lightseagreen',
- 'forestgreen',
- 'goldenrod',
- 'dodgerblue',
- 'darkorchid',
- 'crimson'
-];
-
-/**
- * Currently only WebKit-based Web Inspectors, Firefox >= v31,
- * and the Firebug extension (any Firefox version) are known
- * to support "%c" CSS customizations.
- *
- * TODO: add a `localStorage` variable to explicitly enable/disable colors
- */
-
-function useColors() {
- // NB: In an Electron preload script, document will be defined but not fully
- // initialized. Since we know we're in Chrome, we'll just detect this case
- // explicitly
- if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {
- return true;
- }
-
- // is webkit? http://stackoverflow.com/a/16459606/376773
- // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632
- return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||
- // is firebug? http://stackoverflow.com/a/398120/376773
- (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||
- // is firefox >= v31?
- // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||
- // double check webkit in userAgent just in case we are in a worker
- (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/));
-}
-
-/**
- * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.
- */
-
-exports.formatters.j = function(v) {
- try {
- return JSON.stringify(v);
- } catch (err) {
- return '[UnexpectedJSONParseError]: ' + err.message;
- }
-};
-
-
-/**
- * Colorize log arguments if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var useColors = this.useColors;
-
- args[0] = (useColors ? '%c' : '')
- + this.namespace
- + (useColors ? ' %c' : ' ')
- + args[0]
- + (useColors ? '%c ' : ' ')
- + '+' + exports.humanize(this.diff);
-
- if (!useColors) return;
-
- var c = 'color: ' + this.color;
- args.splice(1, 0, c, 'color: inherit')
-
- // the final "%c" is somewhat tricky, because there could be other
- // arguments passed either before or after the %c, so we need to
- // figure out the correct index to insert the CSS into
- var index = 0;
- var lastC = 0;
- args[0].replace(/%[a-zA-Z%]/g, function(match) {
- if ('%%' === match) return;
- index++;
- if ('%c' === match) {
- // we only are interested in the *last* %c
- // (the user may have provided their own)
- lastC = index;
- }
- });
-
- args.splice(lastC, 0, c);
-}
-
-/**
- * Invokes `console.log()` when available.
- * No-op when `console.log` is not a "function".
- *
- * @api public
- */
-
-function log() {
- // this hackery is required for IE8/9, where
- // the `console.log` function doesn't have 'apply'
- return 'object' === typeof console
- && console.log
- && Function.prototype.apply.call(console.log, console, arguments);
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- try {
- if (null == namespaces) {
- exports.storage.removeItem('debug');
- } else {
- exports.storage.debug = namespaces;
- }
- } catch(e) {}
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- var r;
- try {
- r = exports.storage.debug;
- } catch(e) {}
-
- // If debug isn't set in LS, and we're in Electron, try to load $DEBUG
- if (!r && typeof process !== 'undefined' && 'env' in process) {
- r = process.env.DEBUG;
- }
-
- return r;
-}
-
-/**
- * Enable namespaces listed in `localStorage.debug` initially.
- */
-
-exports.enable(load());
-
-/**
- * Localstorage attempts to return the localstorage.
- *
- * This is necessary because safari throws
- * when a user disables cookies/localstorage
- * and you attempt to access it.
- *
- * @return {LocalStorage}
- * @api private
- */
-
-function localstorage() {
- try {
- return window.localStorage;
- } catch (e) {}
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js
deleted file mode 100644
index 6a5e3fc94c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/debug.js
+++ /dev/null
@@ -1,202 +0,0 @@
-
-/**
- * This is the common logic for both the Node.js and web browser
- * implementations of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = createDebug.debug = createDebug['default'] = createDebug;
-exports.coerce = coerce;
-exports.disable = disable;
-exports.enable = enable;
-exports.enabled = enabled;
-exports.humanize = require('ms');
-
-/**
- * The currently active debug mode names, and names to skip.
- */
-
-exports.names = [];
-exports.skips = [];
-
-/**
- * Map of special "%n" handling functions, for the debug "format" argument.
- *
- * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N".
- */
-
-exports.formatters = {};
-
-/**
- * Previous log timestamp.
- */
-
-var prevTime;
-
-/**
- * Select a color.
- * @param {String} namespace
- * @return {Number}
- * @api private
- */
-
-function selectColor(namespace) {
- var hash = 0, i;
-
- for (i in namespace) {
- hash = ((hash << 5) - hash) + namespace.charCodeAt(i);
- hash |= 0; // Convert to 32bit integer
- }
-
- return exports.colors[Math.abs(hash) % exports.colors.length];
-}
-
-/**
- * Create a debugger with the given `namespace`.
- *
- * @param {String} namespace
- * @return {Function}
- * @api public
- */
-
-function createDebug(namespace) {
-
- function debug() {
- // disabled?
- if (!debug.enabled) return;
-
- var self = debug;
-
- // set `diff` timestamp
- var curr = +new Date();
- var ms = curr - (prevTime || curr);
- self.diff = ms;
- self.prev = prevTime;
- self.curr = curr;
- prevTime = curr;
-
- // turn the `arguments` into a proper Array
- var args = new Array(arguments.length);
- for (var i = 0; i < args.length; i++) {
- args[i] = arguments[i];
- }
-
- args[0] = exports.coerce(args[0]);
-
- if ('string' !== typeof args[0]) {
- // anything else let's inspect with %O
- args.unshift('%O');
- }
-
- // apply any `formatters` transformations
- var index = 0;
- args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {
- // if we encounter an escaped % then don't increase the array index
- if (match === '%%') return match;
- index++;
- var formatter = exports.formatters[format];
- if ('function' === typeof formatter) {
- var val = args[index];
- match = formatter.call(self, val);
-
- // now we need to remove `args[index]` since it's inlined in the `format`
- args.splice(index, 1);
- index--;
- }
- return match;
- });
-
- // apply env-specific formatting (colors, etc.)
- exports.formatArgs.call(self, args);
-
- var logFn = debug.log || exports.log || console.log.bind(console);
- logFn.apply(self, args);
- }
-
- debug.namespace = namespace;
- debug.enabled = exports.enabled(namespace);
- debug.useColors = exports.useColors();
- debug.color = selectColor(namespace);
-
- // env-specific initialization logic for debug instances
- if ('function' === typeof exports.init) {
- exports.init(debug);
- }
-
- return debug;
-}
-
-/**
- * Enables a debug mode by namespaces. This can include modes
- * separated by a colon and wildcards.
- *
- * @param {String} namespaces
- * @api public
- */
-
-function enable(namespaces) {
- exports.save(namespaces);
-
- exports.names = [];
- exports.skips = [];
-
- var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/);
- var len = split.length;
-
- for (var i = 0; i < len; i++) {
- if (!split[i]) continue; // ignore empty strings
- namespaces = split[i].replace(/\*/g, '.*?');
- if (namespaces[0] === '-') {
- exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));
- } else {
- exports.names.push(new RegExp('^' + namespaces + '$'));
- }
- }
-}
-
-/**
- * Disable debug output.
- *
- * @api public
- */
-
-function disable() {
- exports.enable('');
-}
-
-/**
- * Returns true if the given mode name is enabled, false otherwise.
- *
- * @param {String} name
- * @return {Boolean}
- * @api public
- */
-
-function enabled(name) {
- var i, len;
- for (i = 0, len = exports.skips.length; i < len; i++) {
- if (exports.skips[i].test(name)) {
- return false;
- }
- }
- for (i = 0, len = exports.names.length; i < len; i++) {
- if (exports.names[i].test(name)) {
- return true;
- }
- }
- return false;
-}
-
-/**
- * Coerce `val`.
- *
- * @param {Mixed} val
- * @return {Mixed}
- * @api private
- */
-
-function coerce(val) {
- if (val instanceof Error) return val.stack || val.message;
- return val;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js
deleted file mode 100644
index e12cf4d58c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-/**
- * Detect Electron renderer process, which is node, but we should
- * treat as a browser.
- */
-
-if (typeof process !== 'undefined' && process.type === 'renderer') {
- module.exports = require('./browser.js');
-} else {
- module.exports = require('./node.js');
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js
deleted file mode 100644
index 60ea6c04aa..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/inspector-log.js
+++ /dev/null
@@ -1,15 +0,0 @@
-module.exports = inspectorLog;
-
-// black hole
-const nullStream = new (require('stream').Writable)();
-nullStream._write = () => {};
-
-/**
- * Outputs a `console.log()` to the Node.js Inspector console *only*.
- */
-function inspectorLog() {
- const stdout = console._stdout;
- console._stdout = nullStream;
- console.log.apply(console, arguments);
- console._stdout = stdout;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js
deleted file mode 100644
index b15109c905..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/node_modules/debug/src/node.js
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * Module dependencies.
- */
-
-var tty = require('tty');
-var util = require('util');
-
-/**
- * This is the Node.js implementation of `debug()`.
- *
- * Expose `debug()` as the module.
- */
-
-exports = module.exports = require('./debug');
-exports.init = init;
-exports.log = log;
-exports.formatArgs = formatArgs;
-exports.save = save;
-exports.load = load;
-exports.useColors = useColors;
-
-/**
- * Colors.
- */
-
-exports.colors = [6, 2, 3, 4, 5, 1];
-
-/**
- * Build up the default `inspectOpts` object from the environment variables.
- *
- * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js
- */
-
-exports.inspectOpts = Object.keys(process.env).filter(function (key) {
- return /^debug_/i.test(key);
-}).reduce(function (obj, key) {
- // camel-case
- var prop = key
- .substring(6)
- .toLowerCase()
- .replace(/_([a-z])/g, function (_, k) { return k.toUpperCase() });
-
- // coerce string value into JS value
- var val = process.env[key];
- if (/^(yes|on|true|enabled)$/i.test(val)) val = true;
- else if (/^(no|off|false|disabled)$/i.test(val)) val = false;
- else if (val === 'null') val = null;
- else val = Number(val);
-
- obj[prop] = val;
- return obj;
-}, {});
-
-/**
- * The file descriptor to write the `debug()` calls to.
- * Set the `DEBUG_FD` env variable to override with another value. i.e.:
- *
- * $ DEBUG_FD=3 node script.js 3>debug.log
- */
-
-var fd = parseInt(process.env.DEBUG_FD, 10) || 2;
-
-if (1 !== fd && 2 !== fd) {
- util.deprecate(function(){}, 'except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)')()
-}
-
-var stream = 1 === fd ? process.stdout :
- 2 === fd ? process.stderr :
- createWritableStdioStream(fd);
-
-/**
- * Is stdout a TTY? Colored output is enabled when `true`.
- */
-
-function useColors() {
- return 'colors' in exports.inspectOpts
- ? Boolean(exports.inspectOpts.colors)
- : tty.isatty(fd);
-}
-
-/**
- * Map %o to `util.inspect()`, all on a single line.
- */
-
-exports.formatters.o = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts)
- .split('\n').map(function(str) {
- return str.trim()
- }).join(' ');
-};
-
-/**
- * Map %o to `util.inspect()`, allowing multiple lines if needed.
- */
-
-exports.formatters.O = function(v) {
- this.inspectOpts.colors = this.useColors;
- return util.inspect(v, this.inspectOpts);
-};
-
-/**
- * Adds ANSI color escape codes if enabled.
- *
- * @api public
- */
-
-function formatArgs(args) {
- var name = this.namespace;
- var useColors = this.useColors;
-
- if (useColors) {
- var c = this.color;
- var prefix = ' \u001b[3' + c + ';1m' + name + ' ' + '\u001b[0m';
-
- args[0] = prefix + args[0].split('\n').join('\n' + prefix);
- args.push('\u001b[3' + c + 'm+' + exports.humanize(this.diff) + '\u001b[0m');
- } else {
- args[0] = new Date().toUTCString()
- + ' ' + name + ' ' + args[0];
- }
-}
-
-/**
- * Invokes `util.format()` with the specified arguments and writes to `stream`.
- */
-
-function log() {
- return stream.write(util.format.apply(util, arguments) + '\n');
-}
-
-/**
- * Save `namespaces`.
- *
- * @param {String} namespaces
- * @api private
- */
-
-function save(namespaces) {
- if (null == namespaces) {
- // If you set a process.env field to null or undefined, it gets cast to the
- // string 'null' or 'undefined'. Just delete instead.
- delete process.env.DEBUG;
- } else {
- process.env.DEBUG = namespaces;
- }
-}
-
-/**
- * Load `namespaces`.
- *
- * @return {String} returns the previously persisted debug modes
- * @api private
- */
-
-function load() {
- return process.env.DEBUG;
-}
-
-/**
- * Copied from `node/src/node.js`.
- *
- * XXX: It's lame that node doesn't expose this API out-of-the-box. It also
- * relies on the undocumented `tty_wrap.guessHandleType()` which is also lame.
- */
-
-function createWritableStdioStream (fd) {
- var stream;
- var tty_wrap = process.binding('tty_wrap');
-
- // Note stream._type is used for test-module-load-list.js
-
- switch (tty_wrap.guessHandleType(fd)) {
- case 'TTY':
- stream = new tty.WriteStream(fd);
- stream._type = 'tty';
-
- // Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- case 'FILE':
- var fs = require('fs');
- stream = new fs.SyncWriteStream(fd, { autoClose: false });
- stream._type = 'fs';
- break;
-
- case 'PIPE':
- case 'TCP':
- var net = require('net');
- stream = new net.Socket({
- fd: fd,
- readable: false,
- writable: true
- });
-
- // FIXME Should probably have an option in net.Socket to create a
- // stream from an existing fd which is writable only. But for now
- // we'll just add this hack and set the `readable` member to false.
- // Test: ./node test/fixtures/echo.js < /etc/passwd
- stream.readable = false;
- stream.read = null;
- stream._type = 'pipe';
-
- // FIXME Hack to have stream not keep the event loop alive.
- // See https://github.com/joyent/node/issues/1726
- if (stream._handle && stream._handle.unref) {
- stream._handle.unref();
- }
- break;
-
- default:
- // Probably an error on in uv_guess_handle()
- throw new Error('Implement me. Unknown stream file type!');
- }
-
- // For supporting legacy API we put the FD here.
- stream.fd = fd;
-
- stream._isStdio = true;
-
- return stream;
-}
-
-/**
- * Init logic for `debug` instances.
- *
- * Create a new `inspectOpts` object in case `useColors` is set
- * differently for a particular `debug` instance.
- */
-
-function init (debug) {
- debug.inspectOpts = {};
-
- var keys = Object.keys(exports.inspectOpts);
- for (var i = 0; i < keys.length; i++) {
- debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
- }
-}
-
-/**
- * Enable namespaces listed in `process.env.DEBUG` initially.
- */
-
-exports.enable(load());
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json
deleted file mode 100644
index 85a8f5b0e5..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "https-proxy-agent@^2.0.0",
- "_id": "https-proxy-agent@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-/DTVSUCbRc6AiyOV4DBRvPDpKKCJh4qQJNaCgypX0T41quD9hp/PB5iUyx/60XobuMPQa9ce1jNV9UOUq6PnTg==",
- "_location": "/pacote/make-fetch-happen/https-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "https-proxy-agent@^2.0.0",
- "name": "https-proxy-agent",
- "escapedName": "https-proxy-agent",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.1.0.tgz",
- "_shasum": "1391bee7fd66aeabc0df2a1fa90f58954f43e443",
- "_spec": "https-proxy-agent@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-https-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "^4.1.0",
- "debug": "^2.4.1"
- },
- "deprecated": false,
- "description": "An HTTP(s) proxy `http.Agent` implementation for HTTPS",
- "devDependencies": {
- "mocha": "^3.4.2",
- "proxy": "^0.2.4"
- },
- "homepage": "https://github.com/TooTallNate/node-https-proxy-agent#readme",
- "keywords": [
- "https",
- "proxy",
- "endpoint",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "https-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-https-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js
deleted file mode 100644
index 9017701f55..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/https-proxy-agent/test/test.js
+++ /dev/null
@@ -1,308 +0,0 @@
-
-/**
- * Module dependencies.
- */
-
-var fs = require('fs');
-var url = require('url');
-var http = require('http');
-var https = require('https');
-var assert = require('assert');
-var Proxy = require('proxy');
-var HttpsProxyAgent = require('../');
-
-describe('HttpsProxyAgent', function () {
-
- var server;
- var serverPort;
-
- var sslServer;
- var sslServerPort;
-
- var proxy;
- var proxyPort;
-
- var sslProxy;
- var sslProxyPort;
-
- before(function (done) {
- // setup target HTTP server
- server = http.createServer();
- server.listen(function () {
- serverPort = server.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup HTTP proxy server
- proxy = Proxy();
- proxy.listen(function () {
- proxyPort = proxy.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup target HTTPS server
- var options = {
- key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
- cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
- };
- sslServer = https.createServer(options);
- sslServer.listen(function () {
- sslServerPort = sslServer.address().port;
- done();
- });
- });
-
- before(function (done) {
- // setup SSL HTTP proxy server
- var options = {
- key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
- cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
- };
- sslProxy = Proxy(https.createServer(options));
- sslProxy.listen(function () {
- sslProxyPort = sslProxy.address().port;
- done();
- });
- });
-
- // shut down test HTTP server
- after(function (done) {
- server.once('close', function () { done(); });
- server.close();
- });
-
- after(function (done) {
- proxy.once('close', function () { done(); });
- proxy.close();
- });
-
- after(function (done) {
- sslServer.once('close', function () { done(); });
- sslServer.close();
- });
-
- after(function (done) {
- sslProxy.once('close', function () { done(); });
- sslProxy.close();
- });
-
- describe('constructor', function () {
- it('should throw an Error if no "proxy" argument is given', function () {
- assert.throws(function () {
- new HttpsProxyAgent();
- });
- });
- it('should accept a "string" proxy argument', function () {
- var agent = new HttpsProxyAgent('http://127.0.0.1:' + proxyPort);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- it('should accept a `url.parse()` result object argument', function () {
- var opts = url.parse('http://127.0.0.1:' + proxyPort);
- var agent = new HttpsProxyAgent(opts);
- assert.equal('127.0.0.1', agent.proxy.host);
- assert.equal(proxyPort, agent.proxy.port);
- });
- describe('secureProxy', function () {
- it('should default to `false`', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `false` when "http:" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'http:' });
- assert.equal(false, agent.secureProxy);
- });
- it('should be `true` when "https:" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https:' });
- assert.equal(true, agent.secureProxy);
- });
- it('should be `true` when "https" protocol is used', function () {
- var agent = new HttpsProxyAgent({ port: proxyPort, protocol: 'https' });
- assert.equal(true, agent.secureProxy);
- });
- });
- });
-
- describe('"http" module', function () {
-
- beforeEach(function () {
- delete proxy.authenticate;
- });
-
- it('should work over an HTTP proxy', function (done) {
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- var req = http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- done();
- });
- });
- req.once('error', done);
- });
- it('should work over an HTTPS proxy', function (done) {
- server.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
- proxy = url.parse(proxy);
- proxy.rejectUnauthorized = false;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('http://127.0.0.1:' + serverPort);
- opts.agent = agent;
-
- http.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + serverPort, data.host);
- done();
- });
- });
- });
- it('should receive the 407 authorization code on the `http.ClientResponse`', function (done) {
- // set a proxy authentication function for this test
- proxy.authenticate = function (req, fn) {
- // reject all requests
- fn(null, false);
- };
-
- var proxyUri = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxyUri);
-
- var opts = {};
- // `host` and `port` don't really matter since the proxy will reject anyways
- opts.host = '127.0.0.1';
- opts.port = 80;
- opts.agent = agent;
-
- var req = http.get(opts, function (res) {
- assert.equal(407, res.statusCode);
- assert('proxy-authenticate' in res.headers);
- done();
- });
- });
- it('should emit an "error" event on the `http.ClientRequest` if the proxy does not exist', function (done) {
- // port 4 is a reserved, but "unassigned" port
- var proxyUri = 'http://127.0.0.1:4';
- var agent = new HttpsProxyAgent(proxyUri);
-
- var opts = url.parse('http://nodejs.org');
- opts.agent = agent;
-
- var req = http.get(opts);
- req.once('error', function (err) {
- assert.equal('ECONNREFUSED', err.code);
- req.abort();
- done();
- });
- });
-
- it('should allow custom proxy "headers"', function (done) {
- server.once('connect', function (req, socket, head) {
- assert.equal('CONNECT', req.method);
- assert.equal('bar', req.headers.foo);
- socket.destroy();
- done();
- });
-
- var uri = 'http://127.0.0.1:' + serverPort;
- var proxyOpts = url.parse(uri);
- proxyOpts.headers = {
- 'Foo': 'bar'
- };
- var agent = new HttpsProxyAgent(proxyOpts);
-
- var opts = {};
- // `host` and `port` don't really matter since the proxy will reject anyways
- opts.host = '127.0.0.1';
- opts.port = 80;
- opts.agent = agent;
-
- http.get(opts);
- });
-
- });
-
- describe('"https" module', function () {
- it('should work over an HTTP proxy', function (done) {
- sslServer.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTP_PROXY || process.env.http_proxy || 'http://127.0.0.1:' + proxyPort;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('https://127.0.0.1:' + sslServerPort);
- opts.rejectUnauthorized = false;
- opts.agent = agent;
-
- https.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + sslServerPort, data.host);
- done();
- });
- });
- });
-
- it('should work over an HTTPS proxy', function (done) {
- sslServer.once('request', function (req, res) {
- res.end(JSON.stringify(req.headers));
- });
-
- var proxy = process.env.HTTPS_PROXY || process.env.https_proxy || 'https://127.0.0.1:' + sslProxyPort;
- proxy = url.parse(proxy);
- proxy.rejectUnauthorized = false;
- var agent = new HttpsProxyAgent(proxy);
-
- var opts = url.parse('https://127.0.0.1:' + sslServerPort);
- opts.agent = agent;
- opts.rejectUnauthorized = false;
-
- https.get(opts, function (res) {
- var data = '';
- res.setEncoding('utf8');
- res.on('data', function (b) {
- data += b;
- });
- res.on('end', function () {
- data = JSON.parse(data);
- assert.equal('127.0.0.1:' + sslServerPort, data.host);
- done();
- });
- });
- });
-
- });
-
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md
deleted file mode 100644
index a0cfe7f73e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/CHANGELOG.md
+++ /dev/null
@@ -1,252 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="2.0.2"></a>
-## [2.0.2](https://github.com/npm/node-fetch-npm/compare/v2.0.1...v2.0.2) (2017-08-15)
-
-
-### Bug Fixes
-
-* **json:** replace jju with a custom syntax error reporter ([#6](https://github.com/npm/node-fetch-npm/issues/6)) ([84d169c](https://github.com/npm/node-fetch-npm/commit/84d169c))
-
-
-
-<a name="2.0.1"></a>
-## [2.0.1](https://github.com/npm/node-fetch-npm/compare/v2.0.0...v2.0.1) (2017-05-24)
-
-
-### Bug Fixes
-
-* **json:** improve JSON parse error reporting ([1c810df](https://github.com/npm/node-fetch-npm/commit/1c810df))
-
-
-
-<a name="2.0.0"></a>
-# [2.0.0](https://github.com/npm/node-fetch-npm/compare/v1.0.1...v2.0.0) (2017-05-06)
-
-
-### Features
-
-* **version:** force bump to 2.0 ([39c5d50](https://github.com/npm/node-fetch-npm/commit/39c5d50))
-
-
-### BREAKING CHANGES
-
-* **version:** tooling got confused, so hitting 2.0.0 for reals now
-
-
-
-<a name="1.0.1"></a>
-## [1.0.1](https://github.com/npm/node-fetch-npm/compare/v1.0.0...v1.0.1) (2017-05-06)
-
-
-### Bug Fixes
-
-* **redirect:** Remove authorization header on redirect to different host ([#2](https://github.com/npm/node-fetch-npm/issues/2)) ([273260e](https://github.com/npm/node-fetch-npm/commit/273260e))
-
-
-
-<a name="1.0.0"></a>
-# [1.0.0](https://github.com/npm/node-fetch-npm/compare/v2.0.0-alpha.3...v1.0.0) (2017-04-26)
-
-
-### Bug Fixes
-
-* **proj:** initial fork changes ([0a190a8](https://github.com/npm/node-fetch-npm/commit/0a190a8))
-
-
-### BREAKING CHANGES
-
-* **proj:** this renames the library altogether
-
-
-
-
-Changelog
-=========
-
-
-# 2.x release
-
-## v2.0.0
-
-This is a major release. Check [our upgrade guide](https://github.com/bitinn/node-fetch/blob/master/UPGRADE-GUIDE.md) for an overview on some key differences between v1 and v2.
-
-### General changes
-
-- Major: Node.js 0.10.x and 0.12.x support is dropped
-- Major: `require('node-fetch/lib/response')` etc. is now unsupported; use `require('node-fetch').Response` or ES6 module imports
-- Enhance: start testing on Node.js 4, 6, 7
-- Enhance: use Rollup to produce a distributed bundle (less memory overhead and faster startup)
-- Enhance: make `Object.prototype.toString()` on Headers, Requests, and Responses return correct class strings
-- Other: rewrite in ES2015 using Babel
-- Other: use Codecov for code coverage tracking
-
-### HTTP requests
-
-- Major: overwrite user's `Content-Length` if we can be sure our information is correct (per spec)
-- Fix: support WHATWG URL objects, created by `whatwg-url` package or `require('url').URL` in Node.js 7+
-
-### Response and Request classes
-
-- Major: `response.text()` no longer attempts to detect encoding, instead always opting for UTF-8 (per spec); use `response.textConverted()` for the v1 behavior
-- Major: make `response.json()` throw error instead of returning an empty object on 204 no-content respose (per spec; reverts behavior changed in v1.6.2)
-- Major: internal methods are no longer exposed
-- Major: throw error when a `GET` or `HEAD` Request is constructed with a non-null body (per spec)
-- Enhance: add `response.arrayBuffer()` (also applies to Requests)
-- Enhance: add experimental `response.blob()` (also applies to Requests)
-- Fix: fix Request and Response with `null` body
-
-### Headers class
-
-- Major: remove `headers.getAll()`; make `get()` return all headers delimited by commas (per spec)
-- Enhance: make Headers iterable
-- Enhance: make Headers constructor accept an array of tuples
-- Enhance: make sure header names and values are valid in HTTP
-- Fix: coerce Headers prototype function parameters to strings, where applicable
-
-### Documentation
-
-- Enhance: more comprehensive API docs
-- Enhance: add a list of default headers in README
-
-
-# 1.x release
-
-## v1.6.3
-
-- Enhance: error handling document to explain `FetchError` design
-- Fix: support `form-data` 2.x releases (requires `form-data` >= 2.1.0)
-
-## v1.6.2
-
-- Enhance: minor document update
-- Fix: response.json() returns empty object on 204 no-content response instead of throwing a syntax error
-
-## v1.6.1
-
-- Fix: if `res.body` is a non-stream non-formdata object, we will call `body.toString` and send it as a string
-- Fix: `counter` value is incorrectly set to `follow` value when wrapping Request instance
-- Fix: documentation update
-
-## v1.6.0
-
-- Enhance: added `res.buffer()` api for convenience, it returns body as a Node.js buffer
-- Enhance: better old server support by handling raw deflate response
-- Enhance: skip encoding detection for non-HTML/XML response
-- Enhance: minor document update
-- Fix: HEAD request doesn't need decompression, as body is empty
-- Fix: `req.body` now accepts a Node.js buffer
-
-## v1.5.3
-
-- Fix: handle 204 and 304 responses when body is empty but content-encoding is gzip/deflate
-- Fix: allow resolving response and cloned response in any order
-- Fix: avoid setting `content-length` when `form-data` body use streams
-- Fix: send DELETE request with content-length when body is present
-- Fix: allow any url when calling new Request, but still reject non-http(s) url in fetch
-
-## v1.5.2
-
-- Fix: allow node.js core to handle keep-alive connection pool when passing a custom agent
-
-## v1.5.1
-
-- Fix: redirect mode `manual` should work even when there is no redirection or broken redirection
-
-## v1.5.0
-
-- Enhance: rejected promise now use custom `Error` (thx to @pekeler)
-- Enhance: `FetchError` contains `err.type` and `err.code`, allows for better error handling (thx to @pekeler)
-- Enhance: basic support for redirect mode `manual` and `error`, allows for location header extraction (thx to @jimmywarting for the initial PR)
-
-## v1.4.1
-
-- Fix: wrapping Request instance with FormData body again should preserve the body as-is
-
-## v1.4.0
-
-- Enhance: Request and Response now have `clone` method (thx to @kirill-konshin for the initial PR)
-- Enhance: Request and Response now have proper string and buffer body support (thx to @kirill-konshin)
-- Enhance: Body constructor has been refactored out (thx to @kirill-konshin)
-- Enhance: Headers now has `forEach` method (thx to @tricoder42)
-- Enhance: back to 100% code coverage
-- Fix: better form-data support (thx to @item4)
-- Fix: better character encoding detection under chunked encoding (thx to @dsuket for the initial PR)
-
-## v1.3.3
-
-- Fix: make sure `Content-Length` header is set when body is string for POST/PUT/PATCH requests
-- Fix: handle body stream error, for cases such as incorrect `Content-Encoding` header
-- Fix: when following certain redirects, use `GET` on subsequent request per Fetch Spec
-- Fix: `Request` and `Response` constructors now parse headers input using `Headers`
-
-## v1.3.2
-
-- Enhance: allow auto detect of form-data input (no `FormData` spec on node.js, this is form-data specific feature)
-
-## v1.3.1
-
-- Enhance: allow custom host header to be set (server-side only feature, as it's a forbidden header on client-side)
-
-## v1.3.0
-
-- Enhance: now `fetch.Request` is exposed as well
-
-## v1.2.1
-
-- Enhance: `Headers` now normalized `Number` value to `String`, prevent common mistakes
-
-## v1.2.0
-
-- Enhance: now fetch.Headers and fetch.Response are exposed, making testing easier
-
-## v1.1.2
-
-- Fix: `Headers` should only support `String` and `Array` properties, and ignore others
-
-## v1.1.1
-
-- Enhance: now req.headers accept both plain object and `Headers` instance
-
-## v1.1.0
-
-- Enhance: timeout now also applies to response body (in case of slow response)
-- Fix: timeout is now cleared properly when fetch is done/has failed
-
-## v1.0.6
-
-- Fix: less greedy content-type charset matching
-
-## v1.0.5
-
-- Fix: when `follow = 0`, fetch should not follow redirect
-- Enhance: update tests for better coverage
-- Enhance: code formatting
-- Enhance: clean up doc
-
-## v1.0.4
-
-- Enhance: test iojs support
-- Enhance: timeout attached to socket event only fire once per redirect
-
-## v1.0.3
-
-- Fix: response size limit should reject large chunk
-- Enhance: added character encoding detection for xml, such as rss/atom feed (encoding in DTD)
-
-## v1.0.2
-
-- Fix: added res.ok per spec change
-
-## v1.0.0
-
-- Enhance: better test coverage and doc
-
-
-# 0.x release
-
-## v0.1
-
-- Major: initial public release
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md
deleted file mode 100644
index 492632ff69..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 David Frank
-
-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/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md
deleted file mode 100644
index 6d3dd0e6a1..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/README.md
+++ /dev/null
@@ -1,398 +0,0 @@
-
-node-fetch-npm
-==============
-
-[![npm version][npm-image]][npm-url]
-[![build status][travis-image]][travis-url]
-[![coverage status][codecov-image]][codecov-url]
-
-A light-weight module that brings `window.fetch` to Node.js
-
-`node-fetch-npm` is a fork of [`node-fetch`](https://npm.im/node-fetch) used in
-npm itself, through [`make-fetch-happen`](https://npm.im/make-fetch-happen). It
-has more regular releases and accepts some patches that would not fit with
-`node-fetch`'s own design goals (such as picking a specific cookie library,
-removing `babel` dependency altogether, etc).
-
-This library is *not a replacement* for `node-fetch`, nor does it intend to
-supplant it. It's purely a fork maintained for the sake of easier patching of
-specific needs that it wouldn't be fair to shove down the main project's throat.
-This project will still send patches for shared bugs over and hopefully help
-improve its "parent".
-
-## Motivation
-
-Instead of implementing `XMLHttpRequest` in Node.js to run browser-specific [Fetch polyfill](https://github.com/github/fetch), why not go from native `http` to `fetch` API directly? Hence `node-fetch`, minimal code for a `window.fetch` compatible API on Node.js runtime.
-
-See Matt Andrews' [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch) for isomorphic usage (exports `node-fetch` for server-side, `whatwg-fetch` for client-side).
-
-
-## Features
-
-- Stay consistent with `window.fetch` API.
-- Make conscious trade-off when following [whatwg fetch spec][whatwg-fetch] and [stream spec](https://streams.spec.whatwg.org/) implementation details, document known difference.
-- Use native promise, but allow substituting it with [insert your favorite promise library].
-- Use native stream for body, on both request and response.
-- Decode content encoding (gzip/deflate) properly, and convert string output (such as `res.text()` and `res.json()`) to UTF-8 automatically.
-- Useful extensions such as timeout, redirect limit, response size limit, [explicit errors][] for troubleshooting.
-
-
-## Difference from client-side fetch
-
-- See [Known Differences](https://github.com/npm/node-fetch-npm/blob/master/LIMITS.md) for details.
-- If you happen to use a missing feature that `window.fetch` offers, feel free to open an issue.
-- Pull requests are welcomed too!
-
-
-## Install
-
-```sh
-$ npm install node-fetch-npm --save
-```
-
-
-## Usage
-
-```javascript
-import fetch from 'node-fetch';
-// or
-// const fetch = require('node-fetch');
-
-// if you are using your own Promise library, set it through fetch.Promise. Eg.
-
-// import Bluebird from 'bluebird';
-// fetch.Promise = Bluebird;
-
-// plain text or html
-
-fetch('https://github.com/')
- .then(res => res.text())
- .then(body => console.log(body));
-
-// json
-
-fetch('https://api.github.com/users/github')
- .then(res => res.json())
- .then(json => console.log(json));
-
-// catching network error
-// 3xx-5xx responses are NOT network errors, and should be handled in then()
-// you only need one catch() at the end of your promise chain
-
-fetch('http://domain.invalid/')
- .catch(err => console.error(err));
-
-// stream
-// the node.js way is to use stream when possible
-
-fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
- .then(res => {
- const dest = fs.createWriteStream('./octocat.png');
- res.body.pipe(dest);
- });
-
-// buffer
-// if you prefer to cache binary data in full, use buffer()
-// note that buffer() is a node-fetch only API
-
-import fileType from 'file-type';
-
-fetch('https://assets-cdn.github.com/images/modules/logos_page/Octocat.png')
- .then(res => res.buffer())
- .then(buffer => fileType(buffer))
- .then(type => { /* ... */ });
-
-// meta
-
-fetch('https://github.com/')
- .then(res => {
- console.log(res.ok);
- console.log(res.status);
- console.log(res.statusText);
- console.log(res.headers.raw());
- console.log(res.headers.get('content-type'));
- });
-
-// post
-
-fetch('http://httpbin.org/post', { method: 'POST', body: 'a=1' })
- .then(res => res.json())
- .then(json => console.log(json));
-
-// post with stream from file
-
-import { createReadStream } from 'fs';
-
-const stream = createReadStream('input.txt');
-fetch('http://httpbin.org/post', { method: 'POST', body: stream })
- .then(res => res.json())
- .then(json => console.log(json));
-
-// post with JSON
-
-var body = { a: 1 };
-fetch('http://httpbin.org/post', {
- method: 'POST',
- body: JSON.stringify(body),
- headers: { 'Content-Type': 'application/json' },
-})
- .then(res => res.json())
- .then(json => console.log(json));
-
-// post with form-data (detect multipart)
-
-import FormData from 'form-data';
-
-const form = new FormData();
-form.append('a', 1);
-fetch('http://httpbin.org/post', { method: 'POST', body: form })
- .then(res => res.json())
- .then(json => console.log(json));
-
-// post with form-data (custom headers)
-// note that getHeaders() is non-standard API
-
-import FormData from 'form-data';
-
-const form = new FormData();
-form.append('a', 1);
-fetch('http://httpbin.org/post', { method: 'POST', body: form, headers: form.getHeaders() })
- .then(res => res.json())
- .then(json => console.log(json));
-
-// node 7+ with async function
-
-(async function () {
- const res = await fetch('https://api.github.com/users/github');
- const json = await res.json();
- console.log(json);
-})();
-```
-
-See [test cases](https://github.com/npm/node-fetch-npm/blob/master/test/test.js) for more examples.
-
-
-## API
-
-### fetch(url[, options])
-
-- `url` A string representing the URL for fetching
-- `options` [Options](#fetch-options) for the HTTP(S) request
-- Returns: <code>Promise&lt;[Response](#class-response)&gt;</code>
-
-Perform an HTTP(S) fetch.
-
-`url` should be an absolute url, such as `http://example.com/`. A path-relative URL (`/file/under/root`) or protocol-relative URL (`//can-be-http-or-https.com/`) will result in a rejected promise.
-
-<a id="fetch-options"></a>
-#### Options
-
-The default values are shown after each option key.
-
-```js
-{
- // These properties are part of the Fetch Standard
- method: 'GET',
- headers: {}, // request headers. format is the identical to that accepted by the Headers constructor (see below)
- body: null, // request body. can be null, a string, a Buffer, a Blob, or a Node.js Readable stream
- redirect: 'follow', // set to `manual` to extract redirect headers, `error` to reject redirect
-
- // The following properties are node-fetch-npm extensions
- follow: 20, // maximum redirect count. 0 to not follow redirect
- timeout: 0, // req/res timeout in ms, it resets on redirect. 0 to disable (OS limit applies)
- compress: true, // support gzip/deflate content encoding. false to disable
- size: 0, // maximum response body size in bytes. 0 to disable
- agent: null // http(s).Agent instance, allows custom proxy, certificate etc.
-}
-```
-
-##### Default Headers
-
-If no values are set, the following request headers will be sent automatically:
-
-Header | Value
------------------ | --------------------------------------------------------
-`Accept-Encoding` | `gzip,deflate` _(when `options.compress === true`)_
-`Accept` | `*/*`
-`Connection` | `close` _(when no `options.agent` is present)_
-`Content-Length` | _(automatically calculated, if possible)_
-`User-Agent` | `node-fetch-npm/1.0 (+https://github.com/npm/node-fetch-npm)`
-
-<a id="class-request"></a>
-### Class: Request
-
-An HTTP(S) request containing information about URL, method, headers, and the body. This class implements the [Body](#iface-body) interface.
-
-Due to the nature of Node.js, the following properties are not implemented at this moment:
-
-- `type`
-- `destination`
-- `referrer`
-- `referrerPolicy`
-- `mode`
-- `credentials`
-- `cache`
-- `integrity`
-- `keepalive`
-
-The following node-fetch-npm extension properties are provided:
-
-- `follow`
-- `compress`
-- `counter`
-- `agent`
-
-See [options](#fetch-options) for exact meaning of these extensions.
-
-#### new Request(input[, options])
-
-<small>*(spec-compliant)*</small>
-
-- `input` A string representing a URL, or another `Request` (which will be cloned)
-- `options` [Options][#fetch-options] for the HTTP(S) request
-
-Constructs a new `Request` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request).
-
-In most cases, directly `fetch(url, options)` is simpler than creating a `Request` object.
-
-<a id="class-response"></a>
-### Class: Response
-
-An HTTP(S) response. This class implements the [Body](#iface-body) interface.
-
-The following properties are not implemented in node-fetch-npm at this moment:
-
-- `Response.error()`
-- `Response.redirect()`
-- `type`
-- `redirected`
-- `trailer`
-
-#### new Response([body[, options]])
-
-<small>*(spec-compliant)*</small>
-
-- `body` A string or [Readable stream][node-readable]
-- `options` A [`ResponseInit`][response-init] options dictionary
-
-Constructs a new `Response` object. The constructor is identical to that in the [browser](https://developer.mozilla.org/en-US/docs/Web/API/Response/Response).
-
-Because Node.js does not implement service workers (for which this class was designed), one rarely has to construct a `Response` directly.
-
-<a id="class-headers"></a>
-### Class: Headers
-
-This class allows manipulating and iterating over a set of HTTP headers. All methods specified in the [Fetch Standard][whatwg-fetch] are implemented.
-
-#### new Headers([init])
-
-<small>*(spec-compliant)*</small>
-
-- `init` Optional argument to pre-fill the `Headers` object
-
-Construct a new `Headers` object. `init` can be either `null`, a `Headers` object, an key-value map object, or any iterable object.
-
-```js
-// Example adapted from https://fetch.spec.whatwg.org/#example-headers-class
-
-const meta = {
- 'Content-Type': 'text/xml',
- 'Breaking-Bad': '<3'
-};
-const headers = new Headers(meta);
-
-// The above is equivalent to
-const meta = [
- [ 'Content-Type', 'text/xml' ],
- [ 'Breaking-Bad', '<3' ]
-];
-const headers = new Headers(meta);
-
-// You can in fact use any iterable objects, like a Map or even another Headers
-const meta = new Map();
-meta.set('Content-Type', 'text/xml');
-meta.set('Breaking-Bad', '<3');
-const headers = new Headers(meta);
-const copyOfHeaders = new Headers(headers);
-```
-
-<a id="iface-body"></a>
-### Interface: Body
-
-`Body` is an abstract interface with methods that are applicable to both `Request` and `Response` classes.
-
-The following methods are not yet implemented in node-fetch-npm at this moment:
-
-- `formData()`
-
-#### body.body
-
-<small>*(deviation from spec)*</small>
-
-* Node.js [`Readable` stream][node-readable]
-
-The data encapsulated in the `Body` object. Note that while the [Fetch Standard][whatwg-fetch] requires the property to always be a WHATWG `ReadableStream`, in node-fetch-npm it is a Node.js [`Readable` stream][node-readable].
-
-#### body.bodyUsed
-
-<small>*(spec-compliant)*</small>
-
-* `Boolean`
-
-A boolean property for if this body has been consumed. Per spec, a consumed body cannot be used again.
-
-#### body.arrayBuffer()
-#### body.blob()
-#### body.json()
-#### body.text()
-
-<small>*(spec-compliant)*</small>
-
-* Returns: <code>Promise</code>
-
-Consume the body and return a promise that will resolve to one of these formats.
-
-#### body.buffer()
-
-<small>*(node-fetch-npm extension)*</small>
-
-* Returns: <code>Promise&lt;Buffer&gt;</code>
-
-Consume the body and return a promise that will resolve to a Buffer.
-
-#### body.textConverted()
-
-<small>*(node-fetch-npm extension)*</small>
-
-* Returns: <code>Promise&lt;String&gt;</code>
-
-Identical to `body.text()`, except instead of always converting to UTF-8, encoding sniffing will be performed and text converted to UTF-8, if possible.
-
-<a id="class-fetcherror"></a>
-### Class: FetchError
-
-<small>*(node-fetch-npm extension)*</small>
-
-An operational error in the fetching process. See [ERROR-HANDLING.md][] for more info.
-
-## License
-
-MIT
-
-
-## Acknowledgement
-
-Thanks to [github/fetch](https://github.com/github/fetch) for providing a solid implementation reference.
-
-
-[npm-image]: https://img.shields.io/npm/v/node-fetch-npm.svg?style=flat-square
-[npm-url]: https://www.npmjs.com/package/node-fetch-npm
-[travis-image]: https://img.shields.io/travis/npm/node-fetch-npm.svg?style=flat-square
-[travis-url]: https://travis-ci.org/npm/node-fetch-npm
-[codecov-image]: https://img.shields.io/codecov/c/github/npm/node-fetch-npm.svg?style=flat-square
-[codecov-url]: https://codecov.io/gh/npm/node-fetch-npm
-[ERROR-HANDLING.md]: https://github.com/npm/node-fetch-npm/blob/master/ERROR-HANDLING.md
-[whatwg-fetch]: https://fetch.spec.whatwg.org/
-[response-init]: https://fetch.spec.whatwg.org/#responseinit
-[node-readable]: https://nodejs.org/api/stream.html#stream_readable_streams
-[mdn-headers]: https://developer.mozilla.org/en-US/docs/Web/API/Headers
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore
deleted file mode 100644
index b512c09d47..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules \ No newline at end of file
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml
deleted file mode 100644
index abc4f48cdd..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.travis.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-language: node_js
-sudo: false
-node_js:
- - "0.10"
- - 0.12
- - iojs
- - 4
- - 5
-env:
- - CXX=g++-4.8
-addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - g++-4.8
-notifications:
- email:
- - andris@kreata.ee
- webhooks:
- urls:
- - https://webhooks.gitter.im/e/0ed18fd9b3e529b3c2cc
- on_success: change # options: [always|never|change] default: always
- on_failure: always # options: [always|never|change] default: always
- on_start: false # default: false
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE
deleted file mode 100644
index 33f5a9a366..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/LICENSE
+++ /dev/null
@@ -1,16 +0,0 @@
-Copyright (c) 2012-2014 Andris Reinman
-
-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 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/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md
deleted file mode 100644
index 62e6bf88f7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/README.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Encoding
-
-**encoding** is a simple wrapper around [node-iconv](https://github.com/bnoordhuis/node-iconv) and [iconv-lite](https://github.com/ashtuchkin/iconv-lite/) to convert strings from one encoding to another. If node-iconv is not available for some reason,
-iconv-lite will be used instead of it as a fallback.
-
-[![Build Status](https://secure.travis-ci.org/andris9/encoding.svg)](http://travis-ci.org/andris9/Nodemailer)
-[![npm version](https://badge.fury.io/js/encoding.svg)](http://badge.fury.io/js/encoding)
-
-## Install
-
-Install through npm
-
- npm install encoding
-
-## Usage
-
-Require the module
-
- var encoding = require("encoding");
-
-Convert with encoding.convert()
-
- var resultBuffer = encoding.convert(text, toCharset, fromCharset);
-
-Where
-
- * **text** is either a Buffer or a String to be converted
- * **toCharset** is the characterset to convert the string
- * **fromCharset** (*optional*, defaults to UTF-8) is the source charset
-
-Output of the conversion is always a Buffer object.
-
-Example
-
- var result = encoding.convert("ƕƄƖƜ", "Latin_1");
- console.log(result); //<Buffer d5 c4 d6 dc>
-
-## iconv support
-
-By default only iconv-lite is bundled. If you need node-iconv support, you need to add it
-as an additional dependency for your project:
-
- ...,
- "dependencies":{
- "encoding": "*",
- "iconv": "*"
- },
- ...
-
-## License
-
-**MIT**
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js
deleted file mode 100644
index cbea3ced28..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/encoding.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'use strict';
-
-var iconvLite = require('iconv-lite');
-// Load Iconv from an external file to be able to disable Iconv for webpack
-// Add /\/iconv-loader$/ to webpack.IgnorePlugin to ignore it
-var Iconv = require('./iconv-loader');
-
-// Expose to the world
-module.exports.convert = convert;
-
-/**
- * Convert encoding of an UTF-8 string or a buffer
- *
- * @param {String|Buffer} str String to be converted
- * @param {String} to Encoding to be converted to
- * @param {String} [from='UTF-8'] Encoding to be converted from
- * @param {Boolean} useLite If set to ture, force to use iconvLite
- * @return {Buffer} Encoded string
- */
-function convert(str, to, from, useLite) {
- from = checkEncoding(from || 'UTF-8');
- to = checkEncoding(to || 'UTF-8');
- str = str || '';
-
- var result;
-
- if (from !== 'UTF-8' && typeof str === 'string') {
- str = new Buffer(str, 'binary');
- }
-
- if (from === to) {
- if (typeof str === 'string') {
- result = new Buffer(str);
- } else {
- result = str;
- }
- } else if (Iconv && !useLite) {
- try {
- result = convertIconv(str, to, from);
- } catch (E) {
- console.error(E);
- try {
- result = convertIconvLite(str, to, from);
- } catch (E) {
- console.error(E);
- result = str;
- }
- }
- } else {
- try {
- result = convertIconvLite(str, to, from);
- } catch (E) {
- console.error(E);
- result = str;
- }
- }
-
-
- if (typeof result === 'string') {
- result = new Buffer(result, 'utf-8');
- }
-
- return result;
-}
-
-/**
- * Convert encoding of a string with node-iconv (if available)
- *
- * @param {String|Buffer} str String to be converted
- * @param {String} to Encoding to be converted to
- * @param {String} [from='UTF-8'] Encoding to be converted from
- * @return {Buffer} Encoded string
- */
-function convertIconv(str, to, from) {
- var response, iconv;
- iconv = new Iconv(from, to + '//TRANSLIT//IGNORE');
- response = iconv.convert(str);
- return response.slice(0, response.length);
-}
-
-/**
- * Convert encoding of astring with iconv-lite
- *
- * @param {String|Buffer} str String to be converted
- * @param {String} to Encoding to be converted to
- * @param {String} [from='UTF-8'] Encoding to be converted from
- * @return {Buffer} Encoded string
- */
-function convertIconvLite(str, to, from) {
- if (to === 'UTF-8') {
- return iconvLite.decode(str, from);
- } else if (from === 'UTF-8') {
- return iconvLite.encode(str, to);
- } else {
- return iconvLite.encode(iconvLite.decode(str, from), to);
- }
-}
-
-/**
- * Converts charset name if needed
- *
- * @param {String} name Character set
- * @return {String} Character set name
- */
-function checkEncoding(name) {
- return (name || '').toString().trim().
- replace(/^latin[\-_]?(\d+)$/i, 'ISO-8859-$1').
- replace(/^win(?:dows)?[\-_]?(\d+)$/i, 'WINDOWS-$1').
- replace(/^utf[\-_]?(\d+)$/i, 'UTF-$1').
- replace(/^ks_c_5601\-1987$/i, 'CP949').
- replace(/^us[\-_]?ascii$/i, 'ASCII').
- toUpperCase();
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js
deleted file mode 100644
index 8e925fd8e0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/lib/iconv-loader.js
+++ /dev/null
@@ -1,14 +0,0 @@
-'use strict';
-
-var iconv_package;
-var Iconv;
-
-try {
- // this is to fool browserify so it doesn't try (in vain) to install iconv.
- iconv_package = 'iconv';
- Iconv = require(iconv_package).Iconv;
-} catch (E) {
- // node-iconv not present
-}
-
-module.exports = Iconv;
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore
deleted file mode 100644
index 5cd2673c9b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-*~
-*sublime-*
-generation
-test
-wiki
-coverage
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml
deleted file mode 100644
index 636d8d9123..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
- sudo: false
- language: node_js
- node_js:
- - "0.10"
- - "0.11"
- - "0.12"
- - "iojs"
- - "4"
- - "6"
- - "8"
- - "node"
-
-
- env:
- - CXX=g++-4.8
- addons:
- apt:
- sources:
- - ubuntu-toolchain-r-test
- packages:
- - gcc-4.8
- - g++-4.8
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md
deleted file mode 100644
index 5102d7ce95..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/Changelog.md
+++ /dev/null
@@ -1,132 +0,0 @@
-
-# 0.4.19 / 2017-09-09
-
- * Fixed iso8859-1 codec regression in handling untranslatable characters (#162, caused by #147)
- * Re-generated windows1255 codec, because it was updated in iconv project
- * Fixed grammar in error message when iconv-lite is loaded with encoding other than utf8
-
-
-# 0.4.18 / 2017-06-13
-
- * Fixed CESU-8 regression in Node v8.
-
-
-# 0.4.17 / 2017-04-22
-
- * Updated typescript definition file to support Angular 2 AoT mode (#153 by @larssn)
-
-
-# 0.4.16 / 2017-04-22
-
- * Added support for React Native (#150)
- * Changed iso8859-1 encoding to usine internal 'binary' encoding, as it's the same thing (#147 by @mscdex)
- * Fixed typo in Readme (#138 by @jiangzhuo)
- * Fixed build for Node v6.10+ by making correct version comparison
- * Added a warning if iconv-lite is loaded not as utf-8 (see #142)
-
-
-# 0.4.15 / 2016-11-21
-
- * Fixed typescript type definition (#137)
-
-
-# 0.4.14 / 2016-11-20
-
- * Preparation for v1.0
- * Added Node v6 and latest Node versions to Travis CI test rig
- * Deprecated Node v0.8 support
- * Typescript typings (@larssn)
- * Fix encoding of Euro character in GB 18030 (inspired by @lygstate)
- * Add ms prefix to dbcs windows encodings (@rokoroku)
-
-
-# 0.4.13 / 2015-10-01
-
- * Fix silly mistake in deprecation notice.
-
-
-# 0.4.12 / 2015-09-26
-
- * Node v4 support:
- * Added CESU-8 decoding (#106)
- * Added deprecation notice for `extendNodeEncodings`
- * Added Travis tests for Node v4 and io.js latest (#105 by @Mithgol)
-
-
-# 0.4.11 / 2015-07-03
-
- * Added CESU-8 encoding.
-
-
-# 0.4.10 / 2015-05-26
-
- * Changed UTF-16 endianness heuristic to take into account any ASCII chars, not
- just spaces. This should minimize the importance of "default" endianness.
-
-
-# 0.4.9 / 2015-05-24
-
- * Streamlined BOM handling: strip BOM by default, add BOM when encoding if
- addBOM: true. Added docs to Readme.
- * UTF16 now uses UTF16-LE by default.
- * Fixed minor issue with big5 encoding.
- * Added io.js testing on Travis; updated node-iconv version to test against.
- Now we just skip testing SBCS encodings that node-iconv doesn't support.
- * (internal refactoring) Updated codec interface to use classes.
- * Use strict mode in all files.
-
-
-# 0.4.8 / 2015-04-14
-
- * added alias UNICODE-1-1-UTF-7 for UTF-7 encoding (#94)
-
-
-# 0.4.7 / 2015-02-05
-
- * stop official support of Node.js v0.8. Should still work, but no guarantees.
- reason: Packages needed for testing are hard to get on Travis CI.
- * work in environment where Object.prototype is monkey patched with enumerable
- props (#89).
-
-
-# 0.4.6 / 2015-01-12
-
- * fix rare aliases of single-byte encodings (thanks @mscdex)
- * double the timeout for dbcs tests to make them less flaky on travis
-
-
-# 0.4.5 / 2014-11-20
-
- * fix windows-31j and x-sjis encoding support (@nleush)
- * minor fix: undefined variable reference when internal error happens
-
-
-# 0.4.4 / 2014-07-16
-
- * added encodings UTF-7 (RFC2152) and UTF-7-IMAP (RFC3501 Section 5.1.3)
- * fixed streaming base64 encoding
-
-
-# 0.4.3 / 2014-06-14
-
- * added encodings UTF-16BE and UTF-16 with BOM
-
-
-# 0.4.2 / 2014-06-12
-
- * don't throw exception if `extendNodeEncodings()` is called more than once
-
-
-# 0.4.1 / 2014-06-11
-
- * codepage 808 added
-
-
-# 0.4.0 / 2014-06-10
-
- * code is rewritten from scratch
- * all widespread encodings are supported
- * streaming interface added
- * browserify compatibility added
- * (optional) extend core primitive encodings to make usage even simpler
- * moved from vows to mocha as the testing framework
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE
deleted file mode 100644
index e3c1f8d36c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/LICENSE
+++ /dev/null
@@ -1,20 +0,0 @@
-Copyright (c) 2011 Alexander Shtuchkin
-
-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/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md
deleted file mode 100644
index 8c0bb9a48f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/README.md
+++ /dev/null
@@ -1,160 +0,0 @@
-## Pure JS character encoding conversion [![Build Status](https://travis-ci.org/ashtuchkin/iconv-lite.svg?branch=master)](https://travis-ci.org/ashtuchkin/iconv-lite)
-
- * Doesn't need native code compilation. Works on Windows and in sandboxed environments like [Cloud9](http://c9.io).
- * Used in popular projects like [Express.js (body_parser)](https://github.com/expressjs/body-parser),
- [Grunt](http://gruntjs.com/), [Nodemailer](http://www.nodemailer.com/), [Yeoman](http://yeoman.io/) and others.
- * Faster than [node-iconv](https://github.com/bnoordhuis/node-iconv) (see below for performance comparison).
- * Intuitive encode/decode API
- * Streaming support for Node v0.10+
- * [Deprecated] Can extend Node.js primitives (buffers, streams) to support all iconv-lite encodings.
- * In-browser usage via [Browserify](https://github.com/substack/node-browserify) (~180k gzip compressed with Buffer shim included).
- * Typescript [type definition file](https://github.com/ashtuchkin/iconv-lite/blob/master/lib/index.d.ts) included.
- * React Native is supported (need to explicitly `npm install` two more modules: `buffer` and `stream`).
- * License: MIT.
-
-[![NPM Stats](https://nodei.co/npm/iconv-lite.png?downloads=true&downloadRank=true)](https://npmjs.org/packages/iconv-lite/)
-
-## Usage
-### Basic API
-```javascript
-var iconv = require('iconv-lite');
-
-// Convert from an encoded buffer to js string.
-str = iconv.decode(new Buffer([0x68, 0x65, 0x6c, 0x6c, 0x6f]), 'win1251');
-
-// Convert from js string to an encoded buffer.
-buf = iconv.encode("Sample input string", 'win1251');
-
-// Check if encoding is supported
-iconv.encodingExists("us-ascii")
-```
-
-### Streaming API (Node v0.10+)
-```javascript
-
-// Decode stream (from binary stream to js strings)
-http.createServer(function(req, res) {
- var converterStream = iconv.decodeStream('win1251');
- req.pipe(converterStream);
-
- converterStream.on('data', function(str) {
- console.log(str); // Do something with decoded strings, chunk-by-chunk.
- });
-});
-
-// Convert encoding streaming example
-fs.createReadStream('file-in-win1251.txt')
- .pipe(iconv.decodeStream('win1251'))
- .pipe(iconv.encodeStream('ucs2'))
- .pipe(fs.createWriteStream('file-in-ucs2.txt'));
-
-// Sugar: all encode/decode streams have .collect(cb) method to accumulate data.
-http.createServer(function(req, res) {
- req.pipe(iconv.decodeStream('win1251')).collect(function(err, body) {
- assert(typeof body == 'string');
- console.log(body); // full request body string
- });
-});
-```
-
-### [Deprecated] Extend Node.js own encodings
-> NOTE: This doesn't work on latest Node versions. See [details](https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility).
-
-```javascript
-// After this call all Node basic primitives will understand iconv-lite encodings.
-iconv.extendNodeEncodings();
-
-// Examples:
-buf = new Buffer(str, 'win1251');
-buf.write(str, 'gbk');
-str = buf.toString('latin1');
-assert(Buffer.isEncoding('iso-8859-15'));
-Buffer.byteLength(str, 'us-ascii');
-
-http.createServer(function(req, res) {
- req.setEncoding('big5');
- req.collect(function(err, body) {
- console.log(body);
- });
-});
-
-fs.createReadStream("file.txt", "shift_jis");
-
-// External modules are also supported (if they use Node primitives, which they probably do).
-request = require('request');
-request({
- url: "http://github.com/",
- encoding: "cp932"
-});
-
-// To remove extensions
-iconv.undoExtendNodeEncodings();
-```
-
-## Supported encodings
-
- * All node.js native encodings: utf8, ucs2 / utf16-le, ascii, binary, base64, hex.
- * Additional unicode encodings: utf16, utf16-be, utf-7, utf-7-imap.
- * All widespread singlebyte encodings: Windows 125x family, ISO-8859 family,
- IBM/DOS codepages, Macintosh family, KOI8 family, all others supported by iconv library.
- Aliases like 'latin1', 'us-ascii' also supported.
- * All widespread multibyte encodings: CP932, CP936, CP949, CP950, GB2312, GBK, GB18030, Big5, Shift_JIS, EUC-JP.
-
-See [all supported encodings on wiki](https://github.com/ashtuchkin/iconv-lite/wiki/Supported-Encodings).
-
-Most singlebyte encodings are generated automatically from [node-iconv](https://github.com/bnoordhuis/node-iconv). Thank you Ben Noordhuis and libiconv authors!
-
-Multibyte encodings are generated from [Unicode.org mappings](http://www.unicode.org/Public/MAPPINGS/) and [WHATWG Encoding Standard mappings](http://encoding.spec.whatwg.org/). Thank you, respective authors!
-
-
-## Encoding/decoding speed
-
-Comparison with node-iconv module (1000x256kb, on MacBook Pro, Core i5/2.6 GHz, Node v0.12.0).
-Note: your results may vary, so please always check on your hardware.
-
- operation iconv@2.1.4 iconv-lite@0.4.7
- ----------------------------------------------------------
- encode('win1251') ~96 Mb/s ~320 Mb/s
- decode('win1251') ~95 Mb/s ~246 Mb/s
-
-## BOM handling
-
- * Decoding: BOM is stripped by default, unless overridden by passing `stripBOM: false` in options
- (f.ex. `iconv.decode(buf, enc, {stripBOM: false})`).
- A callback might also be given as a `stripBOM` parameter - it'll be called if BOM character was actually found.
- * If you want to detect UTF-8 BOM when decoding other encodings, use [node-autodetect-decoder-stream](https://github.com/danielgindi/node-autodetect-decoder-stream) module.
- * Encoding: No BOM added, unless overridden by `addBOM: true` option.
-
-## UTF-16 Encodings
-
-This library supports UTF-16LE, UTF-16BE and UTF-16 encodings. First two are straightforward, but UTF-16 is trying to be
-smart about endianness in the following ways:
- * Decoding: uses BOM and 'spaces heuristic' to determine input endianness. Default is UTF-16LE, but can be
- overridden with `defaultEncoding: 'utf-16be'` option. Strips BOM unless `stripBOM: false`.
- * Encoding: uses UTF-16LE and writes BOM by default. Use `addBOM: false` to override.
-
-## Other notes
-
-When decoding, be sure to supply a Buffer to decode() method, otherwise [bad things usually happen](https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding).
-Untranslatable characters are set to ļæ½ or ?. No transliteration is currently supported.
-Node versions 0.10.31 and 0.11.13 are buggy, don't use them (see #65, #77).
-
-## Testing
-
-```bash
-$ git clone git@github.com:ashtuchkin/iconv-lite.git
-$ cd iconv-lite
-$ npm install
-$ npm test
-
-$ # To view performance:
-$ node test/performance.js
-
-$ # To view test coverage:
-$ npm run coverage
-$ open coverage/lcov-report/index.html
-```
-
-## Adoption
-[![NPM](https://nodei.co/npm-dl/iconv-lite.png)](https://nodei.co/npm/iconv-lite/)
-[![Codeship Status for ashtuchkin/iconv-lite](https://www.codeship.com/projects/81670840-fa72-0131-4520-4a01a6c01acc/status)](https://www.codeship.com/projects/29053)
diff --git a/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 b/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
deleted file mode 100644
index f6072c2a6a..0000000000
--- a/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
+++ /dev/null
@@ -1,554 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Multibyte codec. In this scheme, a character is represented by 1 or more bytes.
-// Our codec supports UTF-16 surrogates, extensions for GB18030 and unicode sequences.
-// To save memory and loading time, we read table files only when requested.
-
-exports._dbcs = DBCSCodec;
-
-var UNASSIGNED = -1,
- GB18030_CODE = -2,
- SEQ_START = -10,
- NODE_START = -1000,
- UNASSIGNED_NODE = new Array(0x100),
- DEF_CHAR = -1;
-
-for (var i = 0; i < 0x100; i++)
- UNASSIGNED_NODE[i] = UNASSIGNED;
-
-
-// Class DBCSCodec reads and initializes mapping tables.
-function DBCSCodec(codecOptions, iconv) {
- this.encodingName = codecOptions.encodingName;
- if (!codecOptions)
- throw new Error("DBCS codec is called without the data.")
- if (!codecOptions.table)
- throw new Error("Encoding '" + this.encodingName + "' has no data.");
-
- // Load tables.
- var mappingTable = codecOptions.table();
-
-
- // Decode tables: MBCS -> Unicode.
-
- // decodeTables is a trie, encoded as an array of arrays of integers. Internal arrays are trie nodes and all have len = 256.
- // Trie root is decodeTables[0].
- // Values: >= 0 -> unicode character code. can be > 0xFFFF
- // == UNASSIGNED -> unknown/unassigned sequence.
- // == GB18030_CODE -> this is the end of a GB18030 4-byte sequence.
- // <= NODE_START -> index of the next node in our trie to process next byte.
- // <= SEQ_START -> index of the start of a character code sequence, in decodeTableSeq.
- this.decodeTables = [];
- this.decodeTables[0] = UNASSIGNED_NODE.slice(0); // Create root node.
-
- // Sometimes a MBCS char corresponds to a sequence of unicode chars. We store them as arrays of integers here.
- this.decodeTableSeq = [];
-
- // Actual mapping tables consist of chunks. Use them to fill up decode tables.
- for (var i = 0; i < mappingTable.length; i++)
- this._addDecodeChunk(mappingTable[i]);
-
- this.defaultCharUnicode = iconv.defaultCharUnicode;
-
-
- // Encode tables: Unicode -> DBCS.
-
- // `encodeTable` is array mapping from unicode char to encoded char. All its values are integers for performance.
- // Because it can be sparse, it is represented as array of buckets by 256 chars each. Bucket can be null.
- // Values: >= 0 -> it is a normal char. Write the value (if <=256 then 1 byte, if <=65536 then 2 bytes, etc.).
- // == UNASSIGNED -> no conversion found. Output a default char.
- // <= SEQ_START -> it's an index in encodeTableSeq, see below. The character starts a sequence.
- this.encodeTable = [];
-
- // `encodeTableSeq` is used when a sequence of unicode characters is encoded as a single code. We use a tree of
- // objects where keys correspond to characters in sequence and leafs are the encoded dbcs values. A special DEF_CHAR key
- // means end of sequence (needed when one sequence is a strict subsequence of another).
- // Objects are kept separately from encodeTable to increase performance.
- this.encodeTableSeq = [];
-
- // Some chars can be decoded, but need not be encoded.
- var skipEncodeChars = {};
- if (codecOptions.encodeSkipVals)
- for (var i = 0; i < codecOptions.encodeSkipVals.length; i++) {
- var val = codecOptions.encodeSkipVals[i];
- if (typeof val === 'number')
- skipEncodeChars[val] = true;
- else
- for (var j = val.from; j <= val.to; j++)
- skipEncodeChars[j] = true;
- }
-
- // Use decode trie to recursively fill out encode tables.
- this._fillEncodeTable(0, 0, skipEncodeChars);
-
- // Add more encoding pairs when needed.
- if (codecOptions.encodeAdd) {
- for (var uChar in codecOptions.encodeAdd)
- if (Object.prototype.hasOwnProperty.call(codecOptions.encodeAdd, uChar))
- this._setEncodeChar(uChar.charCodeAt(0), codecOptions.encodeAdd[uChar]);
- }
-
- this.defCharSB = this.encodeTable[0][iconv.defaultCharSingleByte.charCodeAt(0)];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = this.encodeTable[0]['?'];
- if (this.defCharSB === UNASSIGNED) this.defCharSB = "?".charCodeAt(0);
-
-
- // Load & create GB18030 tables when needed.
- if (typeof codecOptions.gb18030 === 'function') {
- this.gb18030 = codecOptions.gb18030(); // Load GB18030 ranges.
-
- // Add GB18030 decode tables.
- var thirdByteNodeIdx = this.decodeTables.length;
- var thirdByteNode = this.decodeTables[thirdByteNodeIdx] = UNASSIGNED_NODE.slice(0);
-
- var fourthByteNodeIdx = this.decodeTables.length;
- var fourthByteNode = this.decodeTables[fourthByteNodeIdx] = UNASSIGNED_NODE.slice(0);
-
- for (var i = 0x81; i <= 0xFE; i++) {
- var secondByteNodeIdx = NODE_START - this.decodeTables[0][i];
- var secondByteNode = this.decodeTables[secondByteNodeIdx];
- for (var j = 0x30; j <= 0x39; j++)
- secondByteNode[j] = NODE_START - thirdByteNodeIdx;
- }
- for (var i = 0x81; i <= 0xFE; i++)
- thirdByteNode[i] = NODE_START - fourthByteNodeIdx;
- for (var i = 0x30; i <= 0x39; i++)
- fourthByteNode[i] = GB18030_CODE
- }
-}
-
-DBCSCodec.prototype.encoder = DBCSEncoder;
-DBCSCodec.prototype.decoder = DBCSDecoder;
-
-// Decoder helpers
-DBCSCodec.prototype._getDecodeTrieNode = function(addr) {
- var bytes = [];
- for (; addr > 0; addr >>= 8)
- bytes.push(addr & 0xFF);
- if (bytes.length == 0)
- bytes.push(0);
-
- var node = this.decodeTables[0];
- for (var i = bytes.length-1; i > 0; i--) { // Traverse nodes deeper into the trie.
- var val = node[bytes[i]];
-
- if (val == UNASSIGNED) { // Create new node.
- node[bytes[i]] = NODE_START - this.decodeTables.length;
- this.decodeTables.push(node = UNASSIGNED_NODE.slice(0));
- }
- else if (val <= NODE_START) { // Existing node.
- node = this.decodeTables[NODE_START - val];
- }
- else
- throw new Error("Overwrite byte in " + this.encodingName + ", addr: " + addr.toString(16));
- }
- return node;
-}
-
-
-DBCSCodec.prototype._addDecodeChunk = function(chunk) {
- // First element of chunk is the hex mbcs code where we start.
- var curAddr = parseInt(chunk[0], 16);
-
- // Choose the decoding node where we'll write our chars.
- var writeTable = this._getDecodeTrieNode(curAddr);
- curAddr = curAddr & 0xFF;
-
- // Write all other elements of the chunk to the table.
- for (var k = 1; k < chunk.length; k++) {
- var part = chunk[k];
- if (typeof part === "string") { // String, write as-is.
- for (var l = 0; l < part.length;) {
- var code = part.charCodeAt(l++);
- if (0xD800 <= code && code < 0xDC00) { // Decode surrogate
- var codeTrail = part.charCodeAt(l++);
- if (0xDC00 <= codeTrail && codeTrail < 0xE000)
- writeTable[curAddr++] = 0x10000 + (code - 0xD800) * 0x400 + (codeTrail - 0xDC00);
- else
- throw new Error("Incorrect surrogate pair in " + this.encodingName + " at chunk " + chunk[0]);
- }
- else if (0x0FF0 < code && code <= 0x0FFF) { // Character sequence (our own encoding used)
- var len = 0xFFF - code + 2;
- var seq = [];
- for (var m = 0; m < len; m++)
- seq.push(part.charCodeAt(l++)); // Simple variation: don't support surrogates or subsequences in seq.
-
- writeTable[curAddr++] = SEQ_START - this.decodeTableSeq.length;
- this.decodeTableSeq.push(seq);
- }
- else
- writeTable[curAddr++] = code; // Basic char
- }
- }
- else if (typeof part === "number") { // Integer, meaning increasing sequence starting with prev character.
- var charCode = writeTable[curAddr - 1] + 1;
- for (var l = 0; l < part; l++)
- writeTable[curAddr++] = charCode++;
- }
- else
- throw new Error("Incorrect type '" + typeof part + "' given in " + this.encodingName + " at chunk " + chunk[0]);
- }
- if (curAddr > 0xFF)
- throw new Error("Incorrect chunk in " + this.encodingName + " at addr " + chunk[0] + ": too long" + curAddr);
-}
-
-// Encoder helpers
-DBCSCodec.prototype._getEncodeBucket = function(uCode) {
- var high = uCode >> 8; // This could be > 0xFF because of astral characters.
- if (this.encodeTable[high] === undefined)
- this.encodeTable[high] = UNASSIGNED_NODE.slice(0); // Create bucket on demand.
- return this.encodeTable[high];
-}
-
-DBCSCodec.prototype._setEncodeChar = function(uCode, dbcsCode) {
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 0xFF;
- if (bucket[low] <= SEQ_START)
- this.encodeTableSeq[SEQ_START-bucket[low]][DEF_CHAR] = dbcsCode; // There's already a sequence, set a single-char subsequence of it.
- else if (bucket[low] == UNASSIGNED)
- bucket[low] = dbcsCode;
-}
-
-DBCSCodec.prototype._setEncodeSequence = function(seq, dbcsCode) {
-
- // Get the root of character tree according to first character of the sequence.
- var uCode = seq[0];
- var bucket = this._getEncodeBucket(uCode);
- var low = uCode & 0xFF;
-
- var node;
- if (bucket[low] <= SEQ_START) {
- // There's already a sequence with - use it.
- node = this.encodeTableSeq[SEQ_START-bucket[low]];
- }
- else {
- // There was no sequence object - allocate a new one.
- node = {};
- if (bucket[low] !== UNASSIGNED) node[DEF_CHAR] = bucket[low]; // If a char was set before - make it a single-char subsequence.
- bucket[low] = SEQ_START - this.encodeTableSeq.length;
- this.encodeTableSeq.push(node);
- }
-
- // Traverse the character tree, allocating new nodes as needed.
- for (var j = 1; j < seq.length-1; j++) {
- var oldVal = node[uCode];
- if (typeof oldVal === 'object')
- node = oldVal;
- else {
- node = node[uCode] = {}
- if (oldVal !== undefined)
- node[DEF_CHAR] = oldVal
- }
- }
-
- // Set the leaf to given dbcsCode.
- uCode = seq[seq.length-1];
- node[uCode] = dbcsCode;
-}
-
-DBCSCodec.prototype._fillEncodeTable = function(nodeIdx, prefix, skipEncodeChars) {
- var node = this.decodeTables[nodeIdx];
- for (var i = 0; i < 0x100; i++) {
- var uCode = node[i];
- var mbCode = prefix + i;
- if (skipEncodeChars[mbCode])
- continue;
-
- if (uCode >= 0)
- this._setEncodeChar(uCode, mbCode);
- else if (uCode <= NODE_START)
- this._fillEncodeTable(NODE_START - uCode, mbCode << 8, skipEncodeChars);
- else if (uCode <= SEQ_START)
- this._setEncodeSequence(this.decodeTableSeq[SEQ_START - uCode], mbCode);
- }
-}
-
-
-
-// == Encoder ==================================================================
-
-function DBCSEncoder(options, codec) {
- // Encoder state
- this.leadSurrogate = -1;
- this.seqObj = undefined;
-
- // Static data
- this.encodeTable = codec.encodeTable;
- this.encodeTableSeq = codec.encodeTableSeq;
- this.defaultCharSingleByte = codec.defCharSB;
- this.gb18030 = codec.gb18030;
-}
-
-DBCSEncoder.prototype.write = function(str) {
- var newBuf = new Buffer(str.length * (this.gb18030 ? 4 : 3)),
- leadSurrogate = this.leadSurrogate,
- seqObj = this.seqObj, nextChar = -1,
- i = 0, j = 0;
-
- while (true) {
- // 0. Get next character.
- if (nextChar === -1) {
- if (i == str.length) break;
- var uCode = str.charCodeAt(i++);
- }
- else {
- var uCode = nextChar;
- nextChar = -1;
- }
-
- // 1. Handle surrogates.
- if (0xD800 <= uCode && uCode < 0xE000) { // Char is one of surrogates.
- if (uCode < 0xDC00) { // We've got lead surrogate.
- if (leadSurrogate === -1) {
- leadSurrogate = uCode;
- continue;
- } else {
- leadSurrogate = uCode;
- // Double lead surrogate found.
- uCode = UNASSIGNED;
- }
- } else { // We've got trail surrogate.
- if (leadSurrogate !== -1) {
- uCode = 0x10000 + (leadSurrogate - 0xD800) * 0x400 + (uCode - 0xDC00);
- leadSurrogate = -1;
- } else {
- // Incomplete surrogate pair - only trail surrogate found.
- uCode = UNASSIGNED;
- }
-
- }
- }
- else if (leadSurrogate !== -1) {
- // Incomplete surrogate pair - only lead surrogate found.
- nextChar = uCode; uCode = UNASSIGNED; // Write an error, then current char.
- leadSurrogate = -1;
- }
-
- // 2. Convert uCode character.
- var dbcsCode = UNASSIGNED;
- if (seqObj !== undefined && uCode != UNASSIGNED) { // We are in the middle of the sequence
- var resCode = seqObj[uCode];
- if (typeof resCode === 'object') { // Sequence continues.
- seqObj = resCode;
- continue;
-
- } else if (typeof resCode == 'number') { // Sequence finished. Write it.
- dbcsCode = resCode;
-
- } else if (resCode == undefined) { // Current character is not part of the sequence.
-
- // Try default character for this sequence
- resCode = seqObj[DEF_CHAR];
- if (resCode !== undefined) {
- dbcsCode = resCode; // Found. Write it.
- nextChar = uCode; // Current character will be written too in the next iteration.
-
- } else {
- // TODO: What if we have no default? (resCode == undefined)
- // Then, we should write first char of the sequence as-is and try the rest recursively.
- // Didn't do it for now because no encoding has this situation yet.
- // Currently, just skip the sequence and write current char.
- }
- }
- seqObj = undefined;
- }
- else if (uCode >= 0) { // Regular character
- var subtable = this.encodeTable[uCode >> 8];
- if (subtable !== undefined)
- dbcsCode = subtable[uCode & 0xFF];
-
- if (dbcsCode <= SEQ_START) { // Sequence start
- seqObj = this.encodeTableSeq[SEQ_START-dbcsCode];
- continue;
- }
-
- if (dbcsCode == UNASSIGNED && this.gb18030) {
- // Use GB18030 algorithm to find character(s) to write.
- var idx = findIdx(this.gb18030.uChars, uCode);
- if (idx != -1) {
- var dbcsCode = this.gb18030.gbChars[idx] + (uCode - this.gb18030.uChars[idx]);
- newBuf[j++] = 0x81 + Math.floor(dbcsCode / 12600); dbcsCode = dbcsCode % 12600;
- newBuf[j++] = 0x30 + Math.floor(dbcsCode / 1260); dbcsCode = dbcsCode % 1260;
- newBuf[j++] = 0x81 + Math.floor(dbcsCode / 10); dbcsCode = dbcsCode % 10;
- newBuf[j++] = 0x30 + dbcsCode;
- continue;
- }
- }
- }
-
- // 3. Write dbcsCode character.
- if (dbcsCode === UNASSIGNED)
- dbcsCode = this.defaultCharSingleByte;
-
- if (dbcsCode < 0x100) {
- newBuf[j++] = dbcsCode;
- }
- else if (dbcsCode < 0x10000) {
- newBuf[j++] = dbcsCode >> 8; // high byte
- newBuf[j++] = dbcsCode & 0xFF; // low byte
- }
- else {
- newBuf[j++] = dbcsCode >> 16;
- newBuf[j++] = (dbcsCode >> 8) & 0xFF;
- newBuf[j++] = dbcsCode & 0xFF;
- }
- }
-
- this.seqObj = seqObj;
- this.leadSurrogate = leadSurrogate;
- return newBuf.slice(0, j);
-}
-
-DBCSEncoder.prototype.end = function() {
- if (this.leadSurrogate === -1 && this.seqObj === undefined)
- return; // All clean. Most often case.
-
- var newBuf = new Buffer(10), j = 0;
-
- if (this.seqObj) { // We're in the sequence.
- var dbcsCode = this.seqObj[DEF_CHAR];
- if (dbcsCode !== undefined) { // Write beginning of the sequence.
- if (dbcsCode < 0x100) {
- newBuf[j++] = dbcsCode;
- }
- else {
- newBuf[j++] = dbcsCode >> 8; // high byte
- newBuf[j++] = dbcsCode & 0xFF; // low byte
- }
- } else {
- // See todo above.
- }
- this.seqObj = undefined;
- }
-
- if (this.leadSurrogate !== -1) {
- // Incomplete surrogate pair - only lead surrogate found.
- newBuf[j++] = this.defaultCharSingleByte;
- this.leadSurrogate = -1;
- }
-
- return newBuf.slice(0, j);
-}
-
-// Export for testing
-DBCSEncoder.prototype.findIdx = findIdx;
-
-
-// == Decoder ==================================================================
-
-function DBCSDecoder(options, codec) {
- // Decoder state
- this.nodeIdx = 0;
- this.prevBuf = new Buffer(0);
-
- // Static data
- this.decodeTables = codec.decodeTables;
- this.decodeTableSeq = codec.decodeTableSeq;
- this.defaultCharUnicode = codec.defaultCharUnicode;
- this.gb18030 = codec.gb18030;
-}
-
-DBCSDecoder.prototype.write = function(buf) {
- var newBuf = new Buffer(buf.length*2),
- nodeIdx = this.nodeIdx,
- prevBuf = this.prevBuf, prevBufOffset = this.prevBuf.length,
- seqStart = -this.prevBuf.length, // idx of the start of current parsed sequence.
- uCode;
-
- if (prevBufOffset > 0) // Make prev buf overlap a little to make it easier to slice later.
- prevBuf = Buffer.concat([prevBuf, buf.slice(0, 10)]);
-
- for (var i = 0, j = 0; i < buf.length; i++) {
- var curByte = (i >= 0) ? buf[i] : prevBuf[i + prevBufOffset];
-
- // Lookup in current trie node.
- var uCode = this.decodeTables[nodeIdx][curByte];
-
- if (uCode >= 0) {
- // Normal character, just use it.
- }
- else if (uCode === UNASSIGNED) { // Unknown char.
- // TODO: Callback with seq.
- //var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
- i = seqStart; // Try to parse again, after skipping first byte of the sequence ('i' will be incremented by 'for' cycle).
- uCode = this.defaultCharUnicode.charCodeAt(0);
- }
- else if (uCode === GB18030_CODE) {
- var curSeq = (seqStart >= 0) ? buf.slice(seqStart, i+1) : prevBuf.slice(seqStart + prevBufOffset, i+1 + prevBufOffset);
- var ptr = (curSeq[0]-0x81)*12600 + (curSeq[1]-0x30)*1260 + (curSeq[2]-0x81)*10 + (curSeq[3]-0x30);
- var idx = findIdx(this.gb18030.gbChars, ptr);
- uCode = this.gb18030.uChars[idx] + ptr - this.gb18030.gbChars[idx];
- }
- else if (uCode <= NODE_START) { // Go to next trie node.
- nodeIdx = NODE_START - uCode;
- continue;
- }
- else if (uCode <= SEQ_START) { // Output a sequence of chars.
- var seq = this.decodeTableSeq[SEQ_START - uCode];
- for (var k = 0; k < seq.length - 1; k++) {
- uCode = seq[k];
- newBuf[j++] = uCode & 0xFF;
- newBuf[j++] = uCode >> 8;
- }
- uCode = seq[seq.length-1];
- }
- else
- throw new Error("iconv-lite internal error: invalid decoding table value " + uCode + " at " + nodeIdx + "/" + curByte);
-
- // Write the character to buffer, handling higher planes using surrogate pair.
- if (uCode > 0xFFFF) {
- uCode -= 0x10000;
- var uCodeLead = 0xD800 + Math.floor(uCode / 0x400);
- newBuf[j++] = uCodeLead & 0xFF;
- newBuf[j++] = uCodeLead >> 8;
-
- uCode = 0xDC00 + uCode % 0x400;
- }
- newBuf[j++] = uCode & 0xFF;
- newBuf[j++] = uCode >> 8;
-
- // Reset trie node.
- nodeIdx = 0; seqStart = i+1;
- }
-
- this.nodeIdx = nodeIdx;
- this.prevBuf = (seqStart >= 0) ? buf.slice(seqStart) : prevBuf.slice(seqStart + prevBufOffset);
- return newBuf.slice(0, j).toString('ucs2');
-}
-
-DBCSDecoder.prototype.end = function() {
- var ret = '';
-
- // Try to parse all remaining chars.
- while (this.prevBuf.length > 0) {
- // Skip 1 character in the buffer.
- ret += this.defaultCharUnicode;
- var buf = this.prevBuf.slice(1);
-
- // Parse remaining as usual.
- this.prevBuf = new Buffer(0);
- this.nodeIdx = 0;
- if (buf.length > 0)
- ret += this.write(buf);
- }
-
- this.nodeIdx = 0;
- return ret;
-}
-
-// Binary search for GB18030. Returns largest i such that table[i] <= val.
-function findIdx(table, val) {
- if (table[0] > val)
- return -1;
-
- var l = 0, r = table.length;
- while (l < r-1) { // always table[l] <= val < table[r]
- var mid = l + Math.floor((r-l+1)/2);
- if (table[mid] <= val)
- l = mid;
- else
- r = mid;
- }
- return l;
-}
diff --git a/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 b/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
deleted file mode 100644
index 53cb75bd1b..0000000000
--- a/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
+++ /dev/null
@@ -1,176 +0,0 @@
-"use strict";
-
-// Description of supported double byte encodings and aliases.
-// Tables are not require()-d until they are needed to speed up library load.
-// require()-s are direct to support Browserify.
-
-module.exports = {
-
- // == Japanese/ShiftJIS ====================================================
- // All japanese encodings are based on JIS X set of standards:
- // JIS X 0201 - Single-byte encoding of ASCII + Ā„ + Kana chars at 0xA1-0xDF.
- // JIS X 0208 - Main set of 6879 characters, placed in 94x94 plane, to be encoded by 2 bytes.
- // Has several variations in 1978, 1983, 1990 and 1997.
- // JIS X 0212 - Supplementary plane of 6067 chars in 94x94 plane. 1990. Effectively dead.
- // JIS X 0213 - Extension and modern replacement of 0208 and 0212. Total chars: 11233.
- // 2 planes, first is superset of 0208, second - revised 0212.
- // Introduced in 2000, revised 2004. Some characters are in Unicode Plane 2 (0x2xxxx)
-
- // Byte encodings are:
- // * Shift_JIS: Compatible with 0201, uses not defined chars in top half as lead bytes for double-byte
- // encoding of 0208. Lead byte ranges: 0x81-0x9F, 0xE0-0xEF; Trail byte ranges: 0x40-0x7E, 0x80-0x9E, 0x9F-0xFC.
- // Windows CP932 is a superset of Shift_JIS. Some companies added more chars, notably KDDI.
- // * EUC-JP: Up to 3 bytes per character. Used mostly on *nixes.
- // 0x00-0x7F - lower part of 0201
- // 0x8E, 0xA1-0xDF - upper part of 0201
- // (0xA1-0xFE)x2 - 0208 plane (94x94).
- // 0x8F, (0xA1-0xFE)x2 - 0212 plane (94x94).
- // * JIS X 208: 7-bit, direct encoding of 0208. Byte ranges: 0x21-0x7E (94 values). Uncommon.
- // Used as-is in ISO2022 family.
- // * ISO2022-JP: Stateful encoding, with escape sequences to switch between ASCII,
- // 0201-1976 Roman, 0208-1978, 0208-1983.
- // * ISO2022-JP-1: Adds esc seq for 0212-1990.
- // * ISO2022-JP-2: Adds esc seq for GB2313-1980, KSX1001-1992, ISO8859-1, ISO8859-7.
- // * ISO2022-JP-3: Adds esc seq for 0201-1976 Kana set, 0213-2000 Planes 1, 2.
- // * ISO2022-JP-2004: Adds 0213-2004 Plane 1.
- //
- // After JIS X 0213 appeared, Shift_JIS-2004, EUC-JISX0213 and ISO2022-JP-2004 followed, with just changing the planes.
- //
- // Overall, it seems that it's a mess :( http://www8.plala.or.jp/tkubota1/unicode-symbols-map2.html
-
- 'shiftjis': {
- type: '_dbcs',
- table: function() { return require('./tables/shiftjis.json') },
- encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
- encodeSkipVals: [{from: 0xED40, to: 0xF940}],
- },
- 'csshiftjis': 'shiftjis',
- 'mskanji': 'shiftjis',
- 'sjis': 'shiftjis',
- 'windows31j': 'shiftjis',
- 'ms31j': 'shiftjis',
- 'xsjis': 'shiftjis',
- 'windows932': 'shiftjis',
- 'ms932': 'shiftjis',
- '932': 'shiftjis',
- 'cp932': 'shiftjis',
-
- 'eucjp': {
- type: '_dbcs',
- table: function() { return require('./tables/eucjp.json') },
- encodeAdd: {'\u00a5': 0x5C, '\u203E': 0x7E},
- },
-
- // TODO: KDDI extension to Shift_JIS
- // TODO: IBM CCSID 942 = CP932, but F0-F9 custom chars and other char changes.
- // TODO: IBM CCSID 943 = Shift_JIS = CP932 with original Shift_JIS lower 128 chars.
-
-
- // == Chinese/GBK ==========================================================
- // http://en.wikipedia.org/wiki/GBK
- // We mostly implement W3C recommendation: https://www.w3.org/TR/encoding/#gbk-encoder
-
- // Oldest GB2312 (1981, ~7600 chars) is a subset of CP936
- 'gb2312': 'cp936',
- 'gb231280': 'cp936',
- 'gb23121980': 'cp936',
- 'csgb2312': 'cp936',
- 'csiso58gb231280': 'cp936',
- 'euccn': 'cp936',
-
- // Microsoft's CP936 is a subset and approximation of GBK.
- 'windows936': 'cp936',
- 'ms936': 'cp936',
- '936': 'cp936',
- 'cp936': {
- type: '_dbcs',
- table: function() { return require('./tables/cp936.json') },
- },
-
- // GBK (~22000 chars) is an extension of CP936 that added user-mapped chars and some other.
- 'gbk': {
- type: '_dbcs',
- table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },
- },
- 'xgbk': 'gbk',
- 'isoir58': 'gbk',
-
- // GB18030 is an algorithmic extension of GBK.
- // Main source: https://www.w3.org/TR/encoding/#gbk-encoder
- // http://icu-project.org/docs/papers/gb18030.html
- // http://source.icu-project.org/repos/icu/data/trunk/charset/data/xml/gb-18030-2000.xml
- // http://www.khngai.com/chinese/charmap/tblgbk.php?page=0
- 'gb18030': {
- type: '_dbcs',
- table: function() { return require('./tables/cp936.json').concat(require('./tables/gbk-added.json')) },
- gb18030: function() { return require('./tables/gb18030-ranges.json') },
- encodeSkipVals: [0x80],
- encodeAdd: {'ā‚¬': 0xA2E3},
- },
-
- 'chinese': 'gb18030',
-
-
- // == Korean ===============================================================
- // EUC-KR, KS_C_5601 and KS X 1001 are exactly the same.
- 'windows949': 'cp949',
- 'ms949': 'cp949',
- '949': 'cp949',
- 'cp949': {
- type: '_dbcs',
- table: function() { return require('./tables/cp949.json') },
- },
-
- 'cseuckr': 'cp949',
- 'csksc56011987': 'cp949',
- 'euckr': 'cp949',
- 'isoir149': 'cp949',
- 'korean': 'cp949',
- 'ksc56011987': 'cp949',
- 'ksc56011989': 'cp949',
- 'ksc5601': 'cp949',
-
-
- // == Big5/Taiwan/Hong Kong ================================================
- // There are lots of tables for Big5 and cp950. Please see the following links for history:
- // http://moztw.org/docs/big5/ http://www.haible.de/bruno/charsets/conversion-tables/Big5.html
- // Variations, in roughly number of defined chars:
- // * Windows CP 950: Microsoft variant of Big5. Canonical: http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT
- // * Windows CP 951: Microsoft variant of Big5-HKSCS-2001. Seems to be never public. http://me.abelcheung.org/articles/research/what-is-cp951/
- // * Big5-2003 (Taiwan standard) almost superset of cp950.
- // * Unicode-at-on (UAO) / Mozilla 1.8. Falling out of use on the Web. Not supported by other browsers.
- // * Big5-HKSCS (-2001, -2004, -2008). Hong Kong standard.
- // many unicode code points moved from PUA to Supplementary plane (U+2XXXX) over the years.
- // Plus, it has 4 combining sequences.
- // Seems that Mozilla refused to support it for 10 yrs. https://bugzilla.mozilla.org/show_bug.cgi?id=162431 https://bugzilla.mozilla.org/show_bug.cgi?id=310299
- // because big5-hkscs is the only encoding to include astral characters in non-algorithmic way.
- // Implementations are not consistent within browsers; sometimes labeled as just big5.
- // MS Internet Explorer switches from big5 to big5-hkscs when a patch applied.
- // Great discussion & recap of what's going on https://bugzilla.mozilla.org/show_bug.cgi?id=912470#c31
- // In the encoder, it might make sense to support encoding old PUA mappings to Big5 bytes seq-s.
- // Official spec: http://www.ogcio.gov.hk/en/business/tech_promotion/ccli/terms/doc/2003cmp_2008.txt
- // http://www.ogcio.gov.hk/tc/business/tech_promotion/ccli/terms/doc/hkscs-2008-big5-iso.txt
- //
- // Current understanding of how to deal with Big5(-HKSCS) is in the Encoding Standard, http://encoding.spec.whatwg.org/#big5-encoder
- // Unicode mapping (http://www.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/OTHER/BIG5.TXT) is said to be wrong.
-
- 'windows950': 'cp950',
- 'ms950': 'cp950',
- '950': 'cp950',
- 'cp950': {
- type: '_dbcs',
- table: function() { return require('./tables/cp950.json') },
- },
-
- // Big5 has many variations and is an extension of cp950. We use Encoding Standard's as a consensus.
- 'big5': 'big5hkscs',
- 'big5hkscs': {
- type: '_dbcs',
- table: function() { return require('./tables/cp950.json').concat(require('./tables/big5-added.json')) },
- encodeSkipVals: [0xa2cc],
- },
-
- 'cnbig5': 'big5hkscs',
- 'csbig5': 'big5hkscs',
- 'xxbig5': 'big5hkscs',
-};
diff --git a/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 b/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
deleted file mode 100644
index 55144bd227..0000000000
--- a/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
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-
-// Update this array if you add/rename/remove files in this directory.
-// We support Browserify by skipping automatic module discovery and requiring modules directly.
-var modules = [
- require("./internal"),
- require("./utf16"),
- require("./utf7"),
- require("./sbcs-codec"),
- require("./sbcs-data"),
- require("./sbcs-data-generated"),
- require("./dbcs-codec"),
- require("./dbcs-data"),
-];
-
-// Put all encoding/alias/codec definitions to single object and export it.
-for (var i = 0; i < modules.length; i++) {
- var module = modules[i];
- for (var enc in module)
- if (Object.prototype.hasOwnProperty.call(module, enc))
- exports[enc] = module[enc];
-}
diff --git a/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 b/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
deleted file mode 100644
index 30e2c47568..0000000000
--- a/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
+++ /dev/null
@@ -1,188 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Export Node.js internal encodings.
-
-module.exports = {
- // Encodings
- utf8: { type: "_internal", bomAware: true},
- cesu8: { type: "_internal", bomAware: true},
- unicode11utf8: "utf8",
-
- ucs2: { type: "_internal", bomAware: true},
- utf16le: "ucs2",
-
- binary: { type: "_internal" },
- base64: { type: "_internal" },
- hex: { type: "_internal" },
-
- // Codec.
- _internal: InternalCodec,
-};
-
-//------------------------------------------------------------------------------
-
-function InternalCodec(codecOptions, iconv) {
- this.enc = codecOptions.encodingName;
- this.bomAware = codecOptions.bomAware;
-
- if (this.enc === "base64")
- this.encoder = InternalEncoderBase64;
- else if (this.enc === "cesu8") {
- this.enc = "utf8"; // Use utf8 for decoding.
- this.encoder = InternalEncoderCesu8;
-
- // Add decoder for versions of Node not supporting CESU-8
- if (new Buffer('eda0bdedb2a9', 'hex').toString() !== 'šŸ’©') {
- this.decoder = InternalDecoderCesu8;
- this.defaultCharUnicode = iconv.defaultCharUnicode;
- }
- }
-}
-
-InternalCodec.prototype.encoder = InternalEncoder;
-InternalCodec.prototype.decoder = InternalDecoder;
-
-//------------------------------------------------------------------------------
-
-// We use node.js internal decoder. Its signature is the same as ours.
-var StringDecoder = require('string_decoder').StringDecoder;
-
-if (!StringDecoder.prototype.end) // Node v0.8 doesn't have this method.
- StringDecoder.prototype.end = function() {};
-
-
-function InternalDecoder(options, codec) {
- StringDecoder.call(this, codec.enc);
-}
-
-InternalDecoder.prototype = StringDecoder.prototype;
-
-
-//------------------------------------------------------------------------------
-// Encoder is mostly trivial
-
-function InternalEncoder(options, codec) {
- this.enc = codec.enc;
-}
-
-InternalEncoder.prototype.write = function(str) {
- return new Buffer(str, this.enc);
-}
-
-InternalEncoder.prototype.end = function() {
-}
-
-
-//------------------------------------------------------------------------------
-// Except base64 encoder, which must keep its state.
-
-function InternalEncoderBase64(options, codec) {
- this.prevStr = '';
-}
-
-InternalEncoderBase64.prototype.write = function(str) {
- str = this.prevStr + str;
- var completeQuads = str.length - (str.length % 4);
- this.prevStr = str.slice(completeQuads);
- str = str.slice(0, completeQuads);
-
- return new Buffer(str, "base64");
-}
-
-InternalEncoderBase64.prototype.end = function() {
- return new Buffer(this.prevStr, "base64");
-}
-
-
-//------------------------------------------------------------------------------
-// CESU-8 encoder is also special.
-
-function InternalEncoderCesu8(options, codec) {
-}
-
-InternalEncoderCesu8.prototype.write = function(str) {
- var buf = new Buffer(str.length * 3), bufIdx = 0;
- for (var i = 0; i < str.length; i++) {
- var charCode = str.charCodeAt(i);
- // Naive implementation, but it works because CESU-8 is especially easy
- // to convert from UTF-16 (which all JS strings are encoded in).
- if (charCode < 0x80)
- buf[bufIdx++] = charCode;
- else if (charCode < 0x800) {
- buf[bufIdx++] = 0xC0 + (charCode >>> 6);
- buf[bufIdx++] = 0x80 + (charCode & 0x3f);
- }
- else { // charCode will always be < 0x10000 in javascript.
- buf[bufIdx++] = 0xE0 + (charCode >>> 12);
- buf[bufIdx++] = 0x80 + ((charCode >>> 6) & 0x3f);
- buf[bufIdx++] = 0x80 + (charCode & 0x3f);
- }
- }
- return buf.slice(0, bufIdx);
-}
-
-InternalEncoderCesu8.prototype.end = function() {
-}
-
-//------------------------------------------------------------------------------
-// CESU-8 decoder is not implemented in Node v4.0+
-
-function InternalDecoderCesu8(options, codec) {
- this.acc = 0;
- this.contBytes = 0;
- this.accBytes = 0;
- this.defaultCharUnicode = codec.defaultCharUnicode;
-}
-
-InternalDecoderCesu8.prototype.write = function(buf) {
- var acc = this.acc, contBytes = this.contBytes, accBytes = this.accBytes,
- res = '';
- for (var i = 0; i < buf.length; i++) {
- var curByte = buf[i];
- if ((curByte & 0xC0) !== 0x80) { // Leading byte
- if (contBytes > 0) { // Previous code is invalid
- res += this.defaultCharUnicode;
- contBytes = 0;
- }
-
- if (curByte < 0x80) { // Single-byte code
- res += String.fromCharCode(curByte);
- } else if (curByte < 0xE0) { // Two-byte code
- acc = curByte & 0x1F;
- contBytes = 1; accBytes = 1;
- } else if (curByte < 0xF0) { // Three-byte code
- acc = curByte & 0x0F;
- contBytes = 2; accBytes = 1;
- } else { // Four or more are not supported for CESU-8.
- res += this.defaultCharUnicode;
- }
- } else { // Continuation byte
- if (contBytes > 0) { // We're waiting for it.
- acc = (acc << 6) | (curByte & 0x3f);
- contBytes--; accBytes++;
- if (contBytes === 0) {
- // Check for overlong encoding, but support Modified UTF-8 (encoding NULL as C0 80)
- if (accBytes === 2 && acc < 0x80 && acc > 0)
- res += this.defaultCharUnicode;
- else if (accBytes === 3 && acc < 0x800)
- res += this.defaultCharUnicode;
- else
- // Actually add character.
- res += String.fromCharCode(acc);
- }
- } else { // Unexpected continuation byte
- res += this.defaultCharUnicode;
- }
- }
- }
- this.acc = acc; this.contBytes = contBytes; this.accBytes = accBytes;
- return res;
-}
-
-InternalDecoderCesu8.prototype.end = function() {
- var res = 0;
- if (this.contBytes > 0)
- res += this.defaultCharUnicode;
- return res;
-}
diff --git a/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 b/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
deleted file mode 100644
index 2f818e171d..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Single-byte codec. Needs a 'chars' string parameter that contains 256 or 128 chars that
-// correspond to encoded bytes (if 128 - then lower half is ASCII).
-
-exports._sbcs = SBCSCodec;
-function SBCSCodec(codecOptions, iconv) {
- if (!codecOptions)
- throw new Error("SBCS codec is called without the data.")
-
- // Prepare char buffer for decoding.
- if (!codecOptions.chars || (codecOptions.chars.length !== 128 && codecOptions.chars.length !== 256))
- throw new Error("Encoding '"+codecOptions.type+"' has incorrect 'chars' (must be of len 128 or 256)");
-
- if (codecOptions.chars.length === 128) {
- var asciiString = "";
- for (var i = 0; i < 128; i++)
- asciiString += String.fromCharCode(i);
- codecOptions.chars = asciiString + codecOptions.chars;
- }
-
- this.decodeBuf = new Buffer(codecOptions.chars, 'ucs2');
-
- // Encoding buffer.
- var encodeBuf = new Buffer(65536);
- encodeBuf.fill(iconv.defaultCharSingleByte.charCodeAt(0));
-
- for (var i = 0; i < codecOptions.chars.length; i++)
- encodeBuf[codecOptions.chars.charCodeAt(i)] = i;
-
- this.encodeBuf = encodeBuf;
-}
-
-SBCSCodec.prototype.encoder = SBCSEncoder;
-SBCSCodec.prototype.decoder = SBCSDecoder;
-
-
-function SBCSEncoder(options, codec) {
- this.encodeBuf = codec.encodeBuf;
-}
-
-SBCSEncoder.prototype.write = function(str) {
- var buf = new Buffer(str.length);
- for (var i = 0; i < str.length; i++)
- buf[i] = this.encodeBuf[str.charCodeAt(i)];
-
- return buf;
-}
-
-SBCSEncoder.prototype.end = function() {
-}
-
-
-function SBCSDecoder(options, codec) {
- this.decodeBuf = codec.decodeBuf;
-}
-
-SBCSDecoder.prototype.write = function(buf) {
- // Strings are immutable in JS -> we use ucs2 buffer to speed up computations.
- var decodeBuf = this.decodeBuf;
- var newBuf = new Buffer(buf.length*2);
- var idx1 = 0, idx2 = 0;
- for (var i = 0; i < buf.length; i++) {
- idx1 = buf[i]*2; idx2 = i*2;
- newBuf[idx2] = decodeBuf[idx1];
- newBuf[idx2+1] = decodeBuf[idx1+1];
- }
- return newBuf.toString('ucs2');
-}
-
-SBCSDecoder.prototype.end = function() {
-}
diff --git a/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 b/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
deleted file mode 100644
index 9b4823607b..0000000000
--- a/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
+++ /dev/null
@@ -1,451 +0,0 @@
-"use strict";
-
-// Generated data for sbcs codec. Don't edit manually. Regenerate using generation/gen-sbcs.js script.
-module.exports = {
- "437": "cp437",
- "737": "cp737",
- "775": "cp775",
- "850": "cp850",
- "852": "cp852",
- "855": "cp855",
- "856": "cp856",
- "857": "cp857",
- "858": "cp858",
- "860": "cp860",
- "861": "cp861",
- "862": "cp862",
- "863": "cp863",
- "864": "cp864",
- "865": "cp865",
- "866": "cp866",
- "869": "cp869",
- "874": "windows874",
- "922": "cp922",
- "1046": "cp1046",
- "1124": "cp1124",
- "1125": "cp1125",
- "1129": "cp1129",
- "1133": "cp1133",
- "1161": "cp1161",
- "1162": "cp1162",
- "1163": "cp1163",
- "1250": "windows1250",
- "1251": "windows1251",
- "1252": "windows1252",
- "1253": "windows1253",
- "1254": "windows1254",
- "1255": "windows1255",
- "1256": "windows1256",
- "1257": "windows1257",
- "1258": "windows1258",
- "28591": "iso88591",
- "28592": "iso88592",
- "28593": "iso88593",
- "28594": "iso88594",
- "28595": "iso88595",
- "28596": "iso88596",
- "28597": "iso88597",
- "28598": "iso88598",
- "28599": "iso88599",
- "28600": "iso885910",
- "28601": "iso885911",
- "28603": "iso885913",
- "28604": "iso885914",
- "28605": "iso885915",
- "28606": "iso885916",
- "windows874": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ļæ½ļæ½ļæ½ā€¦ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½"
- },
- "win874": "windows874",
- "cp874": "windows874",
- "windows1250": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°Å ā€¹ÅšÅ¤Å½Å¹ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Å”ā€ŗśńžÅŗĀ Ė‡Ė˜ÅĀ¤Ä„Ā¦Ā§ĀØĀ©ÅžĀ«Ā¬Ā­Ā®Å»Ā°Ā±Ė›Å‚Ā“ĀµĀ¶Ā·ĀøąşĀ»Ä½ĖÄ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™"
- },
- "win1250": "windows1250",
- "cp1250": "windows1250",
- "windows1251": {
- "type": "_sbcs",
- "chars": "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŠŒŠ‹ŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњќћџĀ ŠŽŃžŠˆĀ¤ŅĀ¦Ā§ŠĀ©Š„Ā«Ā¬Ā­Ā®Š‡Ā°Ā±Š†Ń–Ņ‘ĀµĀ¶Ā·Ń‘ā„–Ń”Ā»Ń˜Š…Ń•Ń—ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя"
- },
- "win1251": "windows1251",
- "cp1251": "windows1251",
- "windows1252": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½Å½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½Å¾ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ"
- },
- "win1252": "windows1252",
- "cp1252": "windows1252",
- "windows1253": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ī…Ī†Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ļæ½Ā«Ā¬Ā­Ā®ā€•Ā°Ā±Ā²Ā³Ī„ĀµĀ¶Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½"
- },
- "win1253": "windows1253",
- "cp1253": "windows1253",
- "windows1254": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ"
- },
- "win1254": "windows1254",
- "cp1254": "windows1254",
- "windows1255": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹ļæ½ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½Ā Ā”Ā¢Ā£ā‚ŖĀ„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ĀæÖ°Ö±Ö²Ö³Ö“ÖµÖ¶Ö·ÖøÖ¹ÖŗÖ»Ö¼Ö½Ö¾Öæ׀ׁׂ׃װױײ׳דļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½××‘גדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½"
- },
- "win1255": "windows1255",
- "cp1255": "windows1255",
- "windows1256": {
- "type": "_sbcs",
- "chars": "ā‚¬Ł¾ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Ł¹ā€¹Å’Ś†Ś˜ŚˆŚÆā€˜ā€™ā€œā€ā€¢ā€“ā€”Ś©ā„¢Ś‘ā€ŗœā€Œā€ŚŗĀ ŲŒĀ¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ś¾Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ų›Ā»Ā¼Ā½Ā¾ŲŸŪŲ”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ć—Ų·ŲøŲ¹ŲŗŁ€ŁŁ‚ŁƒĆ Ł„Ć¢Ł…Ł†Ł‡ŁˆĆ§ĆØĆ©ĆŖĆ«Ł‰ŁŠĆ®ĆÆŁ‹ŁŒŁŁŽĆ“ŁŁĆ·Ł‘Ć¹Ł’Ć»Ć¼ā€Žā€Ū’"
- },
- "win1256": "windows1256",
- "cp1256": "windows1256",
- "windows1257": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šļæ½ā€žā€¦ā€ ā€”ļæ½ā€°ļæ½ā€¹ļæ½ĀØĖ‡Āøļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ĀÆĖ›ļæ½Ā ļæ½Ā¢Ā£Ā¤ļæ½Ā¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾Ė™"
- },
- "win1257": "windows1257",
- "cp1257": "windows1257",
- "windows1258": {
- "type": "_sbcs",
- "chars": "ā‚¬ļæ½ā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°ļæ½ā€¹Å’ļæ½ļæ½ļæ½ļæ½ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢ļæ½ā€ŗœļæ½ļæ½ÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ"
- },
- "win1258": "windows1258",
- "cp1258": "windows1258",
- "iso88591": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ"
- },
- "cp28591": "iso88591",
- "iso88592": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ė˜ÅĀ¤Ä½ÅšĀ§ĀØŠŞŤŹĀ­Å½Å»Ā°Ä…Ė›Å‚Ā“ľśĖ‡ĀøŔşńÅŗĖÅ¾Å¼Å”ĆĆ‚Ä‚Ć„Ä¹Ä†Ć‡ÄŒĆ‰Ä˜Ć‹ÄšĆĆŽÄŽÄÅƒÅ‡Ć“Ć”ÅĆ–Ć—Å˜Å®ĆšÅ°ĆœĆÅ¢ĆŸÅ•Ć”Ć¢ÄƒĆ¤ÄŗÄ‡Ć§ÄĆ©Ä™Ć«Ä›Ć­Ć®ÄÄ‘Å„ÅˆĆ³Ć“Å‘Ć¶Ć·Å™ÅÆĆŗÅ±Ć¼Ć½Å£Ė™"
- },
- "cp28592": "iso88592",
- "iso88593": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä¦Ė˜Ā£Ā¤ļæ½Ä¤Ā§ĀØİŞĞēĀ­ļæ½Å»Ā°Ä§Ā²Ā³Ā“ĀµÄ„Ā·ĀøışğĵĀ½ļæ½Å¼Ć€ĆĆ‚ļæ½Ć„ÄŠÄˆĆ‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆļæ½Ć‘Ć’Ć“Ć”Ä Ć–Ć—ÄœĆ™ĆšĆ›ĆœÅ¬ÅœĆŸĆ Ć”Ć¢ļæ½Ć¤Ä‹Ä‰Ć§ĆØĆ©ĆŖƫƬƭƮĆÆļæ½Ć±Ć²Ć³Ć“Ä”Ć¶Ć·ÄĆ¹ĆŗĆ»Ć¼Å­ÅĖ™"
- },
- "cp28593": "iso88593",
- "iso88594": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ÄøŖĀ¤ÄØÄ»Ā§ĀØŠĒĢŦĀ­Å½ĀÆĀ°Ä…Ė›Å—Ā“ĩļĖ‡ĀøÅ”Ä“Ä£Å§ÅŠÅ¾Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽÄŖÄÅ…ÅŒÄ¶Ć”Ć•Ć–Ć—Ć˜Å²ĆšĆ›ĆœÅØÅŖĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®Ä«Ä‘Å†ÅÄ·Ć“ĆµĆ¶Ć·ĆøųĆŗĆ»Ć¼Å©Å«Ė™"
- },
- "cp28594": "iso88594",
- "iso88595": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŠƒŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ń“Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ"
- },
- "cp28595": "iso88595",
- "iso88596": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½ļæ½ļæ½Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ŲŒĀ­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ų›ļæ½ļæ½ļæ½ŲŸļæ½Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ŲøŲ¹Ųŗļæ½ļæ½ļæ½ļæ½ļæ½Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½"
- },
- "cp28596": "iso88596",
- "iso88597": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€˜ā€™Ā£ā‚¬ā‚ÆĀ¦Ā§ĀØĀ©ĶŗĀ«Ā¬Ā­ļæ½ā€•Ā°Ā±Ā²Ā³Ī„Ī…Ī†Ā·ĪˆĪ‰ĪŠĀ»ĪŒĀ½ĪŽĪĪĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”ļæ½Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©ĪŖĪ«Ī¬Ī­Ī®ĪÆĪ°Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻ‚ĻƒĻ„Ļ…Ļ†Ļ‡ĻˆĻ‰ĻŠĻ‹ĻŒĻĻŽļæ½"
- },
- "cp28597": "iso88597",
- "iso88598": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©Ć—Ā«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹Ć·Ā»Ā¼Ā½Ā¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā€—אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½ļæ½ā€Žā€ļæ½"
- },
- "cp28598": "iso88598",
- "iso88599": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄžĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœÄ°ÅžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄŸĆ±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ä±ÅŸĆæ"
- },
- "cp28599": "iso88599",
- "iso885910": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„Ä’Ä¢ÄŖÄØĶĀ§Ä»ÄÅ Å¦Å½Ā­ÅŖŊĀ°Ä…ēģīĩķĀ·Ä¼Ä‘Å”ŧžā€•Å«Å‹Ä€ĆĆ‚ĆƒĆ„Ć…Ć†Ä®ÄŒĆ‰Ä˜Ć‹Ä–ĆĆŽĆĆÅ…ÅŒĆ“Ć”Ć•Ć–ÅØĆ˜Å²ĆšĆ›ĆœĆĆžĆŸÄĆ”Ć¢Ć£Ć¤Ć„Ć¦ÄÆÄĆ©Ä™Ć«Ä—Ć­Ć®ĆÆĆ°Å†ÅĆ³Ć“ĆµĆ¶Å©ĆøųĆŗĆ»Ć¼Ć½Ć¾Äø"
- },
- "cp28600": "iso885910",
- "iso885911": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½"
- },
- "cp28601": "iso885911",
- "iso885913": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ā€Ā¢Ā£Ā¤ā€žĀ¦Ā§Ć˜Ā©Å–Ā«Ā¬Ā­Ā®Ć†Ā°Ā±Ā²Ā³ā€œĀµĀ¶Ā·ĆøĀ¹Å—Ā»Ā¼Ā½Ā¾Ć¦Ä„Ä®Ä€Ä†Ć„Ć…Ä˜Ä’ÄŒĆ‰Å¹Ä–Ä¢Ä¶ÄŖÄ»Å ÅƒÅ…Ć“ÅŒĆ•Ć–Ć—Å²ÅÅšÅŖĆœÅ»Å½ĆŸÄ…ÄÆÄÄ‡Ć¤Ć„Ä™Ä“ÄĆ©ÅŗÄ—Ä£Ä·Ä«Ä¼Å”Å„Å†Ć³ÅĆµĆ¶Ć·Å³Å‚Å›Å«Ć¼Å¼Å¾ā€™"
- },
- "cp28603": "iso885913",
- "iso885914": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ įø‚įøƒĀ£ÄŠÄ‹įøŠĀ§įŗ€Ā©įŗ‚įø‹į»²Ā­Ā®ÅøįøžįøŸÄ Ä”į¹€į¹Ā¶į¹–įŗį¹—įŗƒį¹ į»³įŗ„įŗ…į¹”Ć€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ“Ć‘Ć’Ć“Ć”Ć•Ć–į¹ŖĆ˜Ć™ĆšĆ›ĆœĆÅ¶ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅµĆ±Ć²Ć³Ć“ĆµĆ¶į¹«ĆøĆ¹ĆŗĆ»Ć¼Ć½Å·Ćæ"
- },
- "cp28604": "iso885914",
- "iso885915": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Å Ā§Å”Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Å½ĀµĀ¶Ā·Å¾Ā¹ĀŗĀ»Å’Å“ÅøĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆĆĆ‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆĆžĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ"
- },
- "cp28605": "iso885915",
- "iso885916": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ä„ąŁā‚¬ā€žÅ Ā§Å”Ā©Č˜Ā«Å¹Ā­ÅŗÅ»Ā°Ā±ÄŒÅ‚Žā€Ā¶Ā·Å¾ÄČ™Ā»Å’Å“ÅøÅ¼Ć€ĆĆ‚Ä‚Ć„Ä†Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÄÅƒĆ’Ć“Ć”ÅĆ–ÅšÅ°Ć™ĆšĆ›ĆœÄ˜ČšĆŸĆ Ć”Ć¢ÄƒĆ¤Ä‡Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÄ‘Å„Ć²Ć³Ć“Å‘Ć¶Å›Å±Ć¹ĆŗĆ»Ć¼Ä™Č›Ćæ"
- },
- "cp28606": "iso885916",
- "cp437": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm437": "cp437",
- "csibm437": "cp437",
- "cp737": {
- "type": "_sbcs",
- "chars": "Ī‘Ī’Ī“Ī”Ī•Ī–Ī—Ī˜Ī™ĪšĪ›ĪœĪĪžĪŸĪ Ī”Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³Ī“ĪµĪ¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ļ…Ļ†Ļ‡Ļˆā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ļ‰Ī¬Ī­Ī®ĻŠĪÆĻŒĻĻ‹ĻŽĪ†ĪˆĪ‰ĪŠĪŒĪŽĪĀ±ā‰„ā‰¤ĪŖĪ«Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm737": "cp737",
- "csibm737": "cp737",
- "cp775": {
- "type": "_sbcs",
- "chars": "Ä†Ć¼Ć©ÄĆ¤Ä£Ć„Ä‡Å‚Ä“Å–Å—Ä«Å¹Ć„Ć…Ć‰Ć¦Ć†ÅĆ¶Ä¢Ā¢ÅšÅ›Ć–ĆœĆøĀ£Ć˜Ć—Ā¤Ä€ÄŖĆ³Å»Å¼Åŗā€Ā¦Ā©Ā®Ā¬Ā½Ā¼ÅĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ä„ČĘĖā•£ā•‘ā•—ā•Ä®Å ā”ā””ā”“ā”¬ā”œā”€ā”¼Å²ÅŖā•šā•”ā•©ā•¦ā• ā•ā•¬Å½Ä…čęėÄÆŔųūžā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ć“ĆŸÅŒÅƒĆµĆ•ĀµÅ„ĶķĻļņĒŅā€™Ā­Ā±ā€œĀ¾Ā¶Ā§Ć·ā€žĀ°āˆ™Ā·Ā¹Ā³Ā²ā– Ā "
- },
- "ibm775": "cp775",
- "csibm775": "cp775",
- "cp850": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹ĆˆÄ±ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā "
- },
- "ibm850": "cp850",
- "csibm850": "cp850",
- "cp852": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤ÅÆÄ‡Ć§Å‚Ć«ÅÅ‘Ć®Å¹Ć„Ä†Ć‰Ä¹ÄŗĆ“Ć¶Ä½Ä¾ÅšÅ›Ć–ĆœÅ¤Å„ÅĆ—ÄĆ”Ć­Ć³ĆŗĄąŽžĘęĀ¬ÅŗČşĀ«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚ĚŞā•£ā•‘ā•—ā•Å»Å¼ā”ā””ā”“ā”¬ā”œā”€ā”¼Ä‚ăā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ä‘ÄÄŽĆ‹ÄÅ‡ĆĆŽÄ›ā”˜ā”Œā–ˆā–„ŢŮā–€Ć“ĆŸĆ”ÅƒÅ„ÅˆÅ Å”Å”ĆšÅ•Å°Ć½ĆÅ£Ā“Ā­ĖĖ›Ė‡Ė˜Ā§Ć·ĀøĀ°ĀØĖ™Å±Å˜Å™ā– Ā "
- },
- "ibm852": "cp852",
- "csibm852": "cp852",
- "cp855": {
- "type": "_sbcs",
- "chars": "ђŠ‚Ń“ŠƒŃ‘ŠŃ”Š„Ń•Š…Ń–Š†Ń—Š‡Ń˜ŠˆŃ™Š‰ŃšŠŠŃ›Š‹ŃœŠŒŃžŠŽŃŸŠŃŽŠ®ŃŠŠŖŠ°ŠŠ±Š‘цŠ¦Š“Š”ŠµŠ•Ń„Š¤Š³Š“Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤Ń…Š„ŠøŠ˜ā•£ā•‘ā•—ā•Š¹Š™ā”ā””ā”“ā”¬ā”œā”€ā”¼ŠŗŠšā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Š»Š›Š¼ŠœŠ½ŠŠ¾ŠžŠæā”˜ā”Œā–ˆā–„ŠŸŃā–€ŠÆрŠ ŃŠ”тŠ¢ŃƒŠ£Š¶Š–Š²Š’ŃŒŠ¬ā„–Ā­Ń‹Š«Š·Š—ŃˆŠØэŠ­Ń‰Š©Ń‡Š§Ā§ā– Ā "
- },
- "ibm855": "cp855",
- "csibm855": "cp855",
- "cp856": {
- "type": "_sbcs",
- "chars": "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×Ŗļæ½Ā£ļæ½Ć—ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ā®Ā¬Ā½Ā¼ļæ½Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ļæ½ļæ½ļæ½Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼ļæ½ļæ½ā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ā”˜ā”Œā–ˆā–„Ā¦ļæ½ā–€ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Āµļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā "
- },
- "ibm856": "cp856",
- "csibm856": "cp856",
- "cp857": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ä±Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹Ä°Ć–ĆœĆøĀ£Ć˜ÅžÅŸĆ”Ć­Ć³ĆŗĆ±Ć‘ÄžÄŸĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤ĀŗĀŖƊƋƈļæ½ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•Āµļæ½Ć—ƚƛƙƬĆæĀÆĀ“Ā­Ā±ļæ½Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā "
- },
- "ibm857": "cp857",
- "csibm857": "cp857",
- "cp858": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜Ć—Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæĀ®Ā¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĆĆ‚Ć€Ā©ā•£ā•‘ā•—ā•Ā¢Ā„ā”ā””ā”“ā”¬ā”œā”€ā”¼Ć£Ćƒā•šā•”ā•©ā•¦ā• ā•ā•¬Ā¤Ć°ĆĆŠĆ‹Ćˆā‚¬ĆĆŽĆā”˜ā”Œā–ˆā–„Ā¦ĆŒā–€Ć“ĆŸĆ”Ć’ĆµĆ•ĀµĆ¾ĆžĆšĆ›Ć™Ć½ĆĀÆĀ“Ā­Ā±ā€—Ā¾Ā¶Ā§Ć·ĀøĀ°ĀØĀ·Ā¹Ā³Ā²ā– Ā "
- },
- "ibm858": "cp858",
- "csibm858": "cp858",
- "cp860": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć£Ć ĆĆ§ĆŖƊĆØĆĆ”Ć¬ĆƒĆ‚Ć‰Ć€ĆˆĆ“ĆµĆ²ĆšĆ¹ĆŒĆ•ĆœĀ¢Ā£Ć™ā‚§Ć“Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæƒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm860": "cp860",
- "csibm860": "cp860",
- "cp861": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆĆ°ĆžĆ„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć¾Ć»ĆĆ½Ć–ĆœĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƁƍƓƚĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm861": "cp861",
- "csibm861": "cp861",
- "cp862": {
- "type": "_sbcs",
- "chars": "אבגדהוזחטיךכלםמןנהעףפׄצק×Øש×ŖĀ¢Ā£Ā„ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm862": "cp862",
- "csibm862": "cp862",
- "cp863": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć‚Ć Ā¶Ć§ĆŖĆ«ĆØĆÆĆ®ā€—Ć€Ā§Ć‰ĆˆĆŠĆ“Ć‹ĆĆ»Ć¹Ā¤Ć”ĆœĀ¢Ā£Ć™Ć›Ę’Ā¦Ā“Ć³ĆŗĀØĀøĀ³ĀÆƎāŒĀ¬Ā½Ā¼Ā¾Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm863": "cp863",
- "csibm863": "cp863",
- "cp864": {
- "type": "_sbcs",
- "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$ŁŖ&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ā°Ā·āˆ™āˆšā–’ā”€ā”‚ā”¼ā”¤ā”¬ā”œā”“ā”ā”Œā””ā”˜Ī²āˆžĻ†Ā±Ā½Ā¼ā‰ˆĀ«Ā»ļ»·ļ»øļæ½ļæ½ļ»»ļ»¼ļæ½Ā Ā­ļŗ‚Ā£Ā¤ļŗ„ļæ½ļæ½ļŗŽļŗļŗ•ļŗ™ŲŒļŗļŗ”ļŗ„Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļ»‘Ų›ļŗ±ļŗµļŗ¹ŲŸĀ¢ļŗ€ļŗļŗƒļŗ…ļ»Šļŗ‹ļŗļŗ‘ļŗ“ļŗ—ļŗ›ļŗŸļŗ£ļŗ§ļŗ©ļŗ«ļŗ­ļŗÆļŗ³ļŗ·ļŗ»ļŗæļ»ļ»…ļ»‹ļ»Ā¦Ā¬Ć·Ć—ļ»‰Ł€ļ»“ļ»—ļ»›ļ»Ÿļ»£ļ»§ļ»«ļ»­ļ»Æļ»³ļŗ½ļ»Œļ»Žļ»ļ»”ļ¹½Ł‘ļ»„ļ»©ļ»¬ļ»°ļ»²ļ»ļ»•ļ»µļ»¶ļ»ļ»™ļ»±ā– ļæ½"
- },
- "ibm864": "cp864",
- "csibm864": "cp864",
- "cp865": {
- "type": "_sbcs",
- "chars": "Ć‡Ć¼Ć©Ć¢Ć¤Ć Ć„Ć§ĆŖĆ«ĆØĆÆĆ®Ć¬Ć„Ć…Ć‰Ć¦Ć†Ć“Ć¶Ć²Ć»Ć¹ĆæƖƜĆøĀ£Ć˜ā‚§Ę’Ć”Ć­Ć³ĆŗƱƑĀŖĀŗĀæāŒĀ¬Ā½Ā¼Ā”Ā«Ā¤ā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ī±ĆŸĪ“Ļ€Ī£ĻƒĀµĻ„Ī¦Ī˜Ī©Ī“āˆžĻ†Īµāˆ©ā‰”Ā±ā‰„ā‰¤āŒ āŒ”Ć·ā‰ˆĀ°āˆ™Ā·āˆšāæĀ²ā– Ā "
- },
- "ibm865": "cp865",
- "csibm865": "cp865",
- "cp866": {
- "type": "_sbcs",
- "chars": "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–Ā¤ā– Ā "
- },
- "ibm866": "cp866",
- "csibm866": "cp866",
- "cp869": {
- "type": "_sbcs",
- "chars": "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½Ī†ļæ½Ā·Ā¬Ā¦ā€˜ā€™Īˆā€•Ī‰ĪŠĪŖĪŒļæ½ļæ½ĪŽĪ«Ā©ĪĀ²Ā³Ī¬Ā£Ī­Ī®ĪÆĻŠĪĻŒĻĪ‘Ī’Ī“Ī”Ī•Ī–Ī—Ā½Ī˜Ī™Ā«Ā»ā–‘ā–’ā–“ā”‚ā”¤ĪšĪ›ĪœĪā•£ā•‘ā•—ā•ĪžĪŸā”ā””ā”“ā”¬ā”œā”€ā”¼Ī Ī”ā•šā•”ā•©ā•¦ā• ā•ā•¬Ī£Ī¤Ī„Ī¦Ī§ĪØĪ©Ī±Ī²Ī³ā”˜ā”Œā–ˆā–„Ī“Īµā–€Ī¶Ī·ĪøĪ¹ĪŗĪ»Ī¼Ī½Ī¾ĪæĻ€ĻĻƒĻ‚Ļ„Ī„Ā­Ā±Ļ…Ļ†Ļ‡Ā§ĻˆĪ…Ā°ĀØĻ‰Ļ‹Ī°ĻŽā– Ā "
- },
- "ibm869": "cp869",
- "csibm869": "cp869",
- "cp922": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ā€¾Ā°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾ĀæĆ€ĆĆ‚ĆƒĆ„Ć…Ć†Ć‡ĆˆĆ‰ĆŠĆ‹ĆŒĆĆŽĆÅ Ć‘Ć’Ć“Ć”Ć•Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĆÅ½ĆŸĆ Ć”Ć¢Ć£Ć¤Ć„Ć¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆÅ”Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Å¾Ćæ"
- },
- "ibm922": "cp922",
- "csibm922": "cp922",
- "cp1046": {
- "type": "_sbcs",
- "chars": "ļŗˆĆ—Ć·ļ£¶ļ£µļ£“ļ£·ļ¹±Āˆā– ā”‚ā”€ā”ā”Œā””ā”˜ļ¹¹ļ¹»ļ¹½ļ¹æļ¹·ļŗŠļ»°ļ»³ļ»²ļ»Žļ»ļ»ļ»¶ļ»øļ»ŗļ»¼Ā ļ£ŗļ£¹ļ£øĀ¤ļ£»ļŗ‹ļŗ‘ļŗ—ļŗ›ļŗŸļŗ£ŲŒĀ­ļŗ§ļŗ³Ł Ł”Ł¢Ł£Ł¤Ł„Ł¦Ł§ŁØŁ©ļŗ·Ų›ļŗ»ļŗæļ»ŠŲŸļ»‹Ų”Ų¢Ų£Ų¤Ų„Ų¦Ų§ŲØŲ©ŲŖŲ«Ų¬Ų­Ų®ŲÆŲ°Ų±Ų²Ų³Ų“ŲµŲ¶Ų·ļ»‡Ų¹Ųŗļ»Œļŗ‚ļŗ„ļŗŽļ»“Ł€ŁŁ‚ŁƒŁ„Ł…Ł†Ł‡ŁˆŁ‰ŁŠŁ‹ŁŒŁŁŽŁŁŁ‘Ł’ļ»—ļ»›ļ»Ÿļ£¼ļ»µļ»·ļ»¹ļ»»ļ»£ļ»§ļ»¬ļ»©ļæ½"
- },
- "ibm1046": "cp1046",
- "csibm1046": "cp1046",
- "cp1124": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ŠŠ‚ŅŠ„Š…Š†Š‡ŠˆŠ‰ŠŠŠ‹ŠŒĀ­ŠŽŠŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюяā„–Ń‘Ń’Ņ‘Ń”Ń•Ń–Ń—Ń˜Ń™ŃšŃ›ŃœĀ§ŃžŃŸ"
- },
- "ibm1124": "cp1124",
- "csibm1124": "cp1124",
- "cp1125": {
- "type": "_sbcs",
- "chars": "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘ŅŅ‘Š„Ń”Š†Ń–Š‡Ń—Ā·āˆšā„–Ā¤ā– Ā "
- },
- "ibm1125": "cp1125",
- "csibm1125": "cp1125",
- "cp1129": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ"
- },
- "ibm1129": "cp1129",
- "csibm1129": "cp1129",
- "cp1133": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŖąŗŠąŗąŗ”ąŗ•ąŗ–ąŗ—ąŗ™ąŗšąŗ›ąŗœąŗąŗžąŗŸąŗ”ąŗ¢ąŗ£ąŗ„ąŗ§ąŗ«ąŗ­ąŗ®ļæ½ļæ½ļæ½ąŗÆąŗ°ąŗ²ąŗ³ąŗ“ąŗµąŗ¶ąŗ·ąŗøąŗ¹ąŗ¼ąŗ±ąŗ»ąŗ½ļæ½ļæ½ļæ½ą»€ą»ą»‚ą»ƒą»„ą»ˆą»‰ą»Šą»‹ą»Œą»ą»†ļæ½ą»œą»ā‚­ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą»ą»‘ą»’ą»“ą»”ą»•ą»–ą»—ą»˜ą»™ļæ½ļæ½Ā¢Ā¬Ā¦ļæ½"
- },
- "ibm1133": "cp1133",
- "csibm1133": "cp1133",
- "cp1161": {
- "type": "_sbcs",
- "chars": "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ą¹ˆąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗą¹‰ą¹Šą¹‹ā‚¬ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›Ā¢Ā¬Ā¦Ā "
- },
- "ibm1161": "cp1161",
- "csibm1161": "cp1161",
- "cp1162": {
- "type": "_sbcs",
- "chars": "ā‚¬ĀĀ‚ĀƒĀ„ā€¦Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½"
- },
- "ibm1162": "cp1162",
- "csibm1162": "cp1162",
- "cp1163": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ā”Ā¢Ā£ā‚¬Ā„Ā¦Ā§Å“Ā©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³ÅøĀµĀ¶Ā·Å’Ā¹ĀŗĀ»Ā¼Ā½Ā¾ĀæƀƁƂĂƄƅƆƇƈƉƊƋĢ€ĆĆŽĆÄĆ‘Ģ‰Ć“Ć”Ę Ć–Ć—Ć˜Ć™ĆšĆ›ĆœĘÆĢƒĆŸĆ Ć”Ć¢ÄƒĆ¤Ć„Ć¦Ć§ĆØĆ©ĆŖĆ«ĢĆ­Ć®ĆÆđƱĢ£Ć³Ć“ʔƶƷĆøĆ¹ĆŗĆ»Ć¼Ę°ā‚«Ćæ"
- },
- "ibm1163": "cp1163",
- "csibm1163": "cp1163",
- "maccroatian": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Å ā„¢Ā“ĀØā‰ Å½Ć˜āˆžĀ±ā‰¤ā‰„āˆ†Āµāˆ‚āˆ‘āˆÅ”āˆ«ĀŖĀŗā„¦Å¾ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆÄ†Ā«ÄŒā€¦Ā Ć€ĆƒĆ•Å’œĐā€”ā€œā€ā€˜ā€™Ć·ā—Šļæ½Ā©ā„Ā¤ā€¹ā€ŗƆĀ»ā€“Ā·ā€šā€žā€°Ć‚Ä‡ĆÄĆˆĆĆŽĆĆŒĆ“Ć”Ä‘Ć’ĆšĆ›Ć™Ä±Ė†ĖœĀÆĻ€Ć‹ĖšĀøƊƦĖ‡"
- },
- "maccyrillic": {
- "type": "_sbcs",
- "chars": "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµāˆ‚ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤"
- },
- "macgreek": {
- "type": "_sbcs",
- "chars": "ƄĀ¹Ā²Ć‰Ā³Ć–ĆœĪ…Ć Ć¢Ć¤Ī„ĀØƧƩĆØĆŖĆ«Ā£ā„¢Ć®ĆÆā€¢Ā½ā€°Ć“ƶĀ¦Ā­Ć¹Ć»Ć¼ā€ Ī“Ī”Ī˜Ī›ĪžĪ ĆŸĀ®Ā©Ī£ĪŖĀ§ā‰ Ā°Ī‡Ī‘Ā±ā‰¤ā‰„Ā„Ī’Ī•Ī–Ī—Ī™ĪšĪœĪ¦Ī«ĪØĪ©Ī¬ĪĀ¬ĪŸĪ”ā‰ˆĪ¤Ā«Ā»ā€¦Ā Ī„Ī§Ī†ĪˆÅ“ā€“ā€•ā€œā€ā€˜ā€™Ć·Ī‰ĪŠĪŒĪŽĪ­Ī®ĪÆĻŒĪĻĪ±Ī²ĻˆĪ“ĪµĻ†Ī³Ī·Ī¹Ī¾ĪŗĪ»Ī¼Ī½ĪæĻ€ĻŽĻĻƒĻ„ĪøĻ‰Ļ‚Ļ‡Ļ…Ī¶ĻŠĻ‹ĪĪ°ļæ½"
- },
- "maciceland": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ĆĀ°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ĆĆ°ĆžĆ¾Ć½Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡"
- },
- "macroman": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡"
- },
- "macromania": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ä‚ÅžāˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦ÄƒÅŸĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗŢţā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡"
- },
- "macthai": {
- "type": "_sbcs",
- "chars": "Ā«Ā»ā€¦ļ¢Œļ¢ļ¢’ļ¢•ļ¢˜ļ¢‹ļ¢Žļ¢‘ļ¢”ļ¢—ā€œā€ļ¢™ļæ½ā€¢ļ¢„ļ¢‰ļ¢…ļ¢†ļ¢‡ļ¢ˆļ¢Šļ¢ļ¢ļ¢“ļ¢–ā€˜ā€™ļæ½Ā ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļ»æā€‹ā€“ā€”ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ā„¢ą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™Ā®Ā©ļæ½ļæ½ļæ½ļæ½"
- },
- "macturkish": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøĞğİıŞşā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙļæ½Ė†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡"
- },
- "macukraine": {
- "type": "_sbcs",
- "chars": "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆā€ Ā°ŅĀ£Ā§ā€¢Ā¶Š†Ā®Ā©ā„¢Š‚Ń’ā‰ ŠƒŃ“āˆžĀ±ā‰¤ā‰„іĀµŅ‘ŠˆŠ„Ń”Š‡Ń—Š‰Ń™ŠŠŃšŃ˜Š…Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Š‹Ń›ŠŒŃœŃ•ā€“ā€”ā€œā€ā€˜ā€™Ć·ā€žŠŽŃžŠŃŸā„–ŠŃ‘яŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæрстуфхцчшщъыьэюĀ¤"
- },
- "koi8r": {
- "type": "_sbcs",
- "chars": "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘ā•“ā•”ā••ā•–ā•—ā•˜ā•™ā•šā•›ā•œā•ā•žā•Ÿā• ā•”Šā•¢ā•£ā•¤ā•„ā•¦ā•§ā•Øā•©ā•Ŗā•«ā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ"
- },
- "koi8u": {
- "type": "_sbcs",
- "chars": "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘ā•ā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅā•¬Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ"
- },
- "koi8ru": {
- "type": "_sbcs",
- "chars": "ā”€ā”‚ā”Œā”ā””ā”˜ā”œā”¤ā”¬ā”“ā”¼ā–€ā–„ā–ˆā–Œā–ā–‘ā–’ā–“āŒ ā– āˆ™āˆšā‰ˆā‰¤ā‰„Ā āŒ”Ā°Ā²Ā·Ć·ā•ā•‘ā•’Ń‘Ń”ā•”Ń–Ń—ā•—ā•˜ā•™ā•šā•›Ņ‘Ńžā•žā•Ÿā• ā•”ŠŠ„ā•£Š†Š‡ā•¦ā•§ā•Øā•©ā•ŖŅŠŽĀ©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ"
- },
- "koi8t": {
- "type": "_sbcs",
- "chars": "Ņ›Ņ“ā€šŅ’ā€žā€¦ā€ ā€”ļæ½ā€°Ņ³ā€¹Ņ²Ņ·Ņ¶ļæ½Ņšā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢ļæ½ā€ŗļæ½ļæ½ļæ½ļæ½ļæ½ÓÆӮёĀ¤Ó£Ā¦Ā§ļæ½ļæ½ļæ½Ā«Ā¬Ā­Ā®ļæ½Ā°Ā±Ā²Šļæ½Ó¢Ā¶Ā·ļæ½ā„–ļæ½Ā»ļæ½ļæ½ļæ½Ā©ŃŽŠ°Š±Ń†Š“ŠµŃ„Š³Ń…ŠøŠ¹ŠŗŠ»Š¼Š½Š¾ŠæярстуŠ¶Š²ŃŒŃ‹Š·ŃˆŃŃ‰Ń‡ŃŠŠ®ŠŠ‘Š¦Š”Š•Š¤Š“Š„Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠÆŠ Š”Š¢Š£Š–Š’Š¬Š«Š—ŠØŠ­Š©Š§ŠŖ"
- },
- "armscii8": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ ļæ½Ö‡Ö‰)(Ā»Ā«ā€”.՝,-֊ā€¦ÕœÕ›ÕžŌ±Õ”Ō²Õ¢Ō³Õ£Ō“Õ¤ŌµÕ„Ō¶Õ¦Ō·Õ§ŌøÕØŌ¹Õ©ŌŗÕŖŌ»Õ«Ō¼Õ¬Ō½Õ­Ō¾Õ®ŌæÕÆՀհՁձՂղՃճՄՓՅյՆնՇշՈÕøՉչՊÕŗՋջՌռՍսՎվՏÕæՐրՑցՒւՓփՔքՕօՖֆ՚ļæ½"
- },
- "rk1048": {
- "type": "_sbcs",
- "chars": "Š‚Šƒā€šŃ“ā€žā€¦ā€ ā€”ā‚¬ā€°Š‰ā€¹ŠŠŅšŅŗŠŃ’ā€˜ā€™ā€œā€ā€¢ā€“ā€”ļæ½ā„¢Ń™ā€ŗњŅ›Ņ»ŃŸĀ Ņ°Ņ±Ó˜Ā¤ÓØĀ¦Ā§ŠĀ©Ņ’Ā«Ā¬Ā­Ā®Ņ®Ā°Ā±Š†Ń–Ó©ĀµĀ¶Ā·Ń‘ā„–Ņ“Ā»Ó™Ņ¢Ņ£ŅÆŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя"
- },
- "tcvn": {
- "type": "_sbcs",
- "chars": "\u0000ƚį»¤\u0003į»Ŗį»¬į»®\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010į»Øį»°į»²į»¶į»øƝį»“\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ƀįŗ¢ĆƒĆįŗ įŗ¶įŗ¬Ćˆįŗŗįŗ¼Ć‰įŗøį»†ĆŒį»ˆÄØƍį»ŠĆ’į»ŽĆ•Ć“į»Œį»˜į»œį»žį» į»šį»¢Ć™į»¦ÅØĀ Ä‚ƂƊƔʠĘÆÄÄƒĆ¢ĆŖƓʔʰđįŗ°Ģ€Ģ‰ĢƒĢĢ£Ć įŗ£Ć£Ć”įŗ”įŗ²įŗ±įŗ³įŗµįŗÆįŗ“įŗ®įŗ¦įŗØįŗŖįŗ¤į»€įŗ·įŗ§įŗ©įŗ«įŗ„įŗ­ĆØį»‚įŗ»įŗ½Ć©įŗ¹į»į»ƒį»…įŗæį»‡Ć¬į»‰į»„įŗ¾į»’Ä©Ć­į»‹Ć²į»”į»ĆµĆ³į»į»“į»•į»—į»‘į»™į»į»Ÿį»”į»›į»£Ć¹į»–į»§Å©Ćŗį»„į»«į»­į»Æį»©į»±į»³į»·į»¹Ć½į»µį»"
- },
- "georgianacademy": {
- "type": "_sbcs",
- "chars": "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒÆįƒ°įƒ±įƒ²įƒ³įƒ“įƒµįƒ¶Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ"
- },
- "georgianps": {
- "type": "_sbcs",
- "chars": "Ā€Āā€šĘ’ā€žā€¦ā€ ā€”Ė†ā€°Å ā€¹Å’ĀĀŽĀĀā€˜ā€™ā€œā€ā€¢ā€“ā€”Ėœā„¢Å”ā€ŗœĀĀžÅøĀ Ā”Ā¢Ā£Ā¤Ā„Ā¦Ā§ĀØĀ©ĀŖĀ«Ā¬Ā­Ā®ĀÆĀ°Ā±Ā²Ā³Ā“ĀµĀ¶Ā·ĀøĀ¹ĀŗĀ»Ā¼Ā½Ā¾Āæįƒįƒ‘įƒ’įƒ“įƒ”įƒ•įƒ–įƒ±įƒ—įƒ˜įƒ™įƒšįƒ›įƒœįƒ²įƒįƒžįƒŸįƒ įƒ”įƒ¢įƒ³įƒ£įƒ¤įƒ„įƒ¦įƒ§įƒØįƒ©įƒŖįƒ«įƒ¬įƒ­įƒ®įƒ“įƒÆįƒ°įƒµĆ¦Ć§ĆØĆ©ĆŖƫƬƭƮĆÆĆ°Ć±Ć²Ć³Ć“ĆµĆ¶Ć·ĆøĆ¹ĆŗĆ»Ć¼Ć½Ć¾Ćæ"
- },
- "pt154": {
- "type": "_sbcs",
- "chars": "Ņ–Ņ’Ó®Ņ“ā€žā€¦Ņ¶Ņ®Ņ²ŅÆŅ Ó¢Ņ¢ŅšŅŗŅøŅ—ā€˜ā€™ā€œā€ā€¢ā€“ā€”Ņ³Ņ·Ņ”Ó£Ņ£Ņ›Ņ»Ņ¹Ā ŠŽŃžŠˆÓØŅ˜Ņ°Ā§ŠĀ©Ó˜Ā«Ā¬ÓÆĀ®ŅœĀ°Ņ±Š†Ń–Ņ™Ó©Ā¶Ā·Ń‘ā„–Ó™Ā»Ń˜ŅŖŅ«ŅŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæрстуфхцчшщъыьэюя"
- },
- "viscii": {
- "type": "_sbcs",
- "chars": "\u0000\u0001įŗ²\u0003\u0004įŗ“įŗŖ\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013į»¶\u0015\u0016\u0017\u0018į»ø\u001a\u001b\u001c\u001dį»“\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~įŗ įŗ®įŗ°įŗ¶įŗ¤įŗ¦įŗØįŗ¬įŗ¼įŗøįŗ¾į»€į»‚į»„į»†į»į»’į»”į»–į»˜į»¢į»šį»œį»žį»Šį»Žį»Œį»ˆį»¦ÅØį»¤į»²Ć•įŗÆįŗ±įŗ·įŗ„įŗ§įŗ©įŗ­įŗ½įŗ¹įŗæį»į»ƒį»…į»‡į»‘į»“į»•į»—į» Ę į»™į»į»Ÿį»‹į»°į»Øį»Ŗį»¬Ę”į»›ĘÆƀƁƂƃįŗ¢Ä‚įŗ³įŗµĆˆĆ‰ĆŠįŗŗƌƍÄØį»³Äį»©Ć’Ć“Ć”įŗ”į»·į»«į»­Ć™Ćšį»¹į»µĆį»”Ę°Ć Ć”Ć¢Ć£įŗ£Äƒį»Æįŗ«ĆØĆ©ĆŖįŗ»Ć¬Ć­Ä©į»‰Ä‘į»±Ć²Ć³Ć“Ƶį»į»į»„Ć¹ĆŗÅ©į»§Ć½į»£į»®"
- },
- "iso646cn": {
- "type": "_sbcs",
- "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#Ā„%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½"
- },
- "iso646jp": {
- "type": "_sbcs",
- "chars": "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[Ā„]^_`abcdefghijklmnopqrstuvwxyz{|}ā€¾ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½"
- },
- "hproman8": {
- "type": "_sbcs",
- "chars": "Ā€ĀĀ‚ĀƒĀ„Ā…Ā†Ā‡ĀˆĀ‰ĀŠĀ‹ĀŒĀĀŽĀĀĀ‘Ā’Ā“Ā”Ā•Ā–Ā—Ā˜Ā™ĀšĀ›ĀœĀĀžĀŸĀ Ć€Ć‚ĆˆĆŠĆ‹ĆŽĆĀ“Ė‹Ė†ĀØĖœĆ™Ć›ā‚¤ĀÆĆĆ½Ā°Ć‡Ć§Ć‘ƱĀ”ĀæĀ¤Ā£Ā„Ā§Ę’Ā¢Ć¢ĆŖĆ“Ć»Ć”Ć©Ć³ĆŗĆ ĆØĆ²Ć¹Ć¤Ć«Ć¶Ć¼Ć…Ć®Ć˜Ć†Ć„Ć­ĆøĆ¦Ć„Ć¬Ć–ĆœĆ‰ĆÆĆŸĆ”ĆĆƒĆ£ĆĆ°ĆĆŒĆ“Ć’Ć•ĆµÅ Å”ĆšÅøĆæĆžĆ¾Ā·ĀµĀ¶Ā¾ā€”Ā¼Ā½ĀŖĀŗĀ«ā– Ā»Ā±ļæ½"
- },
- "macintosh": {
- "type": "_sbcs",
- "chars": "Ć„Ć…Ć‡Ć‰Ć‘Ć–ĆœĆ”Ć Ć¢Ć¤Ć£Ć„Ć§Ć©ĆØĆŖƫƭƬƮĆÆĆ±Ć³Ć²Ć“Ć¶ĆµĆŗĆ¹Ć»Ć¼ā€ Ā°Ā¢Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ā“ĀØā‰ Ć†Ć˜āˆžĀ±ā‰¤ā‰„Ā„Āµāˆ‚āˆ‘āˆĻ€āˆ«ĀŖĀŗā„¦Ć¦ĆøĀæĀ”Ā¬āˆšĘ’ā‰ˆāˆ†Ā«Ā»ā€¦Ā Ć€ĆƒĆ•Å’Å“ā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠĆæÅøā„Ā¤ā€¹ā€ŗļ¬ļ¬‚ā€”Ā·ā€šā€žā€°Ć‚ĆŠĆĆ‹ĆˆĆĆŽĆĆŒĆ“Ć”ļæ½Ć’ƚƛƙıĖ†ĖœĀÆĖ˜Ė™ĖšĀøĖĖ›Ė‡"
- },
- "ascii": {
- "type": "_sbcs",
- "chars": "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½"
- },
- "tis620": {
- "type": "_sbcs",
- "chars": "ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ļæ½ąøąø‚ąøƒąø„ąø…ąø†ąø‡ąøˆąø‰ąøŠąø‹ąøŒąøąøŽąøąøąø‘ąø’ąø“ąø”ąø•ąø–ąø—ąø˜ąø™ąøšąø›ąøœąøąøžąøŸąø ąø”ąø¢ąø£ąø¤ąø„ąø¦ąø§ąøØąø©ąøŖąø«ąø¬ąø­ąø®ąøÆąø°ąø±ąø²ąø³ąø“ąøµąø¶ąø·ąøøąø¹ąøŗļæ½ļæ½ļæ½ļæ½ąøæą¹€ą¹ą¹‚ą¹ƒą¹„ą¹…ą¹†ą¹‡ą¹ˆą¹‰ą¹Šą¹‹ą¹Œą¹ą¹Žą¹ą¹ą¹‘ą¹’ą¹“ą¹”ą¹•ą¹–ą¹—ą¹˜ą¹™ą¹šą¹›ļæ½ļæ½ļæ½ļæ½"
- }
-} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 1009ad9901..0000000000
--- a/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
+++ /dev/null
@@ -1,168 +0,0 @@
-"use strict";
-
-// Manually added data to be used by sbcs codec in addition to generated one.
-
-module.exports = {
- // Not supported by iconv, not sure why.
- "10029": "maccenteuro",
- "maccenteuro": {
- "type": "_sbcs",
- "chars": "Ć„Ä€ÄĆ‰Ä„Ć–ĆœĆ”Ä…ÄŒĆ¤ÄÄ†Ä‡Ć©Å¹ÅŗÄŽĆ­ÄÄ’Ä“Ä–Ć³Ä—Ć“Ć¶ĆµĆŗÄšÄ›Ć¼ā€ Ā°Ä˜Ā£Ā§ā€¢Ā¶ĆŸĀ®Ā©ā„¢Ä™ĀØā‰ Ä£Ä®ÄÆÄŖā‰¤ā‰„īĶāˆ‚āˆ‘łĻļĽľĹÄŗŅņŃĀ¬āˆšÅ„Ňāˆ†Ā«Ā»ā€¦Ā ÅˆÅĆ•Å‘ÅŒā€“ā€”ā€œā€ā€˜ā€™Ć·ā—ŠÅÅ”ŕŘā€¹ā€ŗřŖŗŠā€šā€žÅ”ÅšÅ›ĆÅ¤Å„ĆÅ½Å¾ÅŖĆ“Ć”Å«Å®ĆšÅÆÅ°Å±Å²Å³ĆĆ½Ä·Å»ÅÅ¼Ä¢Ė‡"
- },
-
- "808": "cp808",
- "ibm808": "cp808",
- "cp808": {
- "type": "_sbcs",
- "chars": "ŠŠ‘Š’Š“Š”Š•Š–Š—Š˜Š™ŠšŠ›ŠœŠŠžŠŸŠ Š”Š¢Š£Š¤Š„Š¦Š§ŠØŠ©ŠŖŠ«Š¬Š­Š®ŠÆŠ°Š±Š²Š³Š“ŠµŠ¶Š·ŠøŠ¹ŠŗŠ»Š¼Š½Š¾Šæā–‘ā–’ā–“ā”‚ā”¤ā•”ā•¢ā•–ā••ā•£ā•‘ā•—ā•ā•œā•›ā”ā””ā”“ā”¬ā”œā”€ā”¼ā•žā•Ÿā•šā•”ā•©ā•¦ā• ā•ā•¬ā•§ā•Øā•¤ā•„ā•™ā•˜ā•’ā•“ā•«ā•Ŗā”˜ā”Œā–ˆā–„ā–Œā–ā–€Ń€ŃŃ‚ŃƒŃ„Ń…Ń†Ń‡ŃˆŃ‰ŃŠŃ‹ŃŒŃŃŽŃŠŃ‘Š„Ń”Š‡Ń—ŠŽŃžĀ°āˆ™Ā·āˆšā„–ā‚¬ā– Ā "
- },
-
- // Aliases of generated encodings.
- "ascii8bit": "ascii",
- "usascii": "ascii",
- "ansix34": "ascii",
- "ansix341968": "ascii",
- "ansix341986": "ascii",
- "csascii": "ascii",
- "cp367": "ascii",
- "ibm367": "ascii",
- "isoir6": "ascii",
- "iso646us": "ascii",
- "iso646irv": "ascii",
- "us": "ascii",
-
- "latin1": "iso88591",
- "latin2": "iso88592",
- "latin3": "iso88593",
- "latin4": "iso88594",
- "latin5": "iso88599",
- "latin6": "iso885910",
- "latin7": "iso885913",
- "latin8": "iso885914",
- "latin9": "iso885915",
- "latin10": "iso885916",
-
- "csisolatin1": "iso88591",
- "csisolatin2": "iso88592",
- "csisolatin3": "iso88593",
- "csisolatin4": "iso88594",
- "csisolatincyrillic": "iso88595",
- "csisolatinarabic": "iso88596",
- "csisolatingreek" : "iso88597",
- "csisolatinhebrew": "iso88598",
- "csisolatin5": "iso88599",
- "csisolatin6": "iso885910",
-
- "l1": "iso88591",
- "l2": "iso88592",
- "l3": "iso88593",
- "l4": "iso88594",
- "l5": "iso88599",
- "l6": "iso885910",
- "l7": "iso885913",
- "l8": "iso885914",
- "l9": "iso885915",
- "l10": "iso885916",
-
- "isoir14": "iso646jp",
- "isoir57": "iso646cn",
- "isoir100": "iso88591",
- "isoir101": "iso88592",
- "isoir109": "iso88593",
- "isoir110": "iso88594",
- "isoir144": "iso88595",
- "isoir127": "iso88596",
- "isoir126": "iso88597",
- "isoir138": "iso88598",
- "isoir148": "iso88599",
- "isoir157": "iso885910",
- "isoir166": "tis620",
- "isoir179": "iso885913",
- "isoir199": "iso885914",
- "isoir203": "iso885915",
- "isoir226": "iso885916",
-
- "cp819": "iso88591",
- "ibm819": "iso88591",
-
- "cyrillic": "iso88595",
-
- "arabic": "iso88596",
- "arabic8": "iso88596",
- "ecma114": "iso88596",
- "asmo708": "iso88596",
-
- "greek" : "iso88597",
- "greek8" : "iso88597",
- "ecma118" : "iso88597",
- "elot928" : "iso88597",
-
- "hebrew": "iso88598",
- "hebrew8": "iso88598",
-
- "turkish": "iso88599",
- "turkish8": "iso88599",
-
- "thai": "iso885911",
- "thai8": "iso885911",
-
- "celtic": "iso885914",
- "celtic8": "iso885914",
- "isoceltic": "iso885914",
-
- "tis6200": "tis620",
- "tis62025291": "tis620",
- "tis62025330": "tis620",
-
- "10000": "macroman",
- "10006": "macgreek",
- "10007": "maccyrillic",
- "10079": "maciceland",
- "10081": "macturkish",
-
- "cspc8codepage437": "cp437",
- "cspc775baltic": "cp775",
- "cspc850multilingual": "cp850",
- "cspcp852": "cp852",
- "cspc862latinhebrew": "cp862",
- "cpgr": "cp869",
-
- "msee": "cp1250",
- "mscyrl": "cp1251",
- "msansi": "cp1252",
- "msgreek": "cp1253",
- "msturk": "cp1254",
- "mshebr": "cp1255",
- "msarab": "cp1256",
- "winbaltrim": "cp1257",
-
- "cp20866": "koi8r",
- "20866": "koi8r",
- "ibm878": "koi8r",
- "cskoi8r": "koi8r",
-
- "cp21866": "koi8u",
- "21866": "koi8u",
- "ibm1168": "koi8u",
-
- "strk10482002": "rk1048",
-
- "tcvn5712": "tcvn",
- "tcvn57121": "tcvn",
-
- "gb198880": "iso646cn",
- "cn": "iso646cn",
-
- "csiso14jisc6220ro": "iso646jp",
- "jisc62201969ro": "iso646jp",
- "jp": "iso646jp",
-
- "cshproman8": "hproman8",
- "r8": "hproman8",
- "roman8": "hproman8",
- "xroman8": "hproman8",
- "ibm1051": "hproman8",
-
- "mac": "macintosh",
- "csmacintosh": "macintosh",
-};
diff --git a/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 b/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
deleted file mode 100644
index 3c3d3c2f7b..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-[
-["8740","䏰䰲䘃䖦ä•øš§‰§äµ·ä–³š§²±ä³¢š§³…ć®•äœ¶ä„ä±‡ä±€š¤Šæš£˜—š§’š¦ŗ‹š§ƒ’ä±—šŖ‘䝏䗚䲅š§±¬ä“‡äŖ¤äš”š¦¬£ēˆ„š„©”š”©£š£ø†š£½”ę™å›»"],
-["8767","ē¶•å¤šØ®¹ć·“霓š§ÆÆåƛš”µžåŖ¤ć˜„š©ŗ°å«‘å®·å³¼ę®č–“š©„…ē‘”ē’ć”µš”µ“š£šžš¦€”滬"],
-["87a1","š„£žć«µē«¼é¾—š¤…”šØ¤š£‡Ŗš ŖŠš£‰žäŒŠč’„é¾–éÆä¤°č˜“å¢–éŠéˆ˜ē§ēØ²ę™ ęØ©č¢ē‘ŒēÆ…ęž‚ēØ¬å‰é†ć“¦ē„š„¶¹ē“†éæ‡åž³ä¤Æ呌䄱š£šŽå ˜ē©²š§­„č®äš®š¦ŗˆä†š„¶™ē®®š¢’¼é戚¢“š¢“‰š¢“Œéæ‰č”„š£–»ä‚“éæŠä“”šŖ·æꋁē®éæ‹"],
-["8840","懀",4,"š „Œć‡…š ƒ‘š ƒć‡†ć‡‡š ƒ‹š”æØ懈š ƒŠć‡‰ć‡Šć‡‹ć‡Œš „Žć‡ć‡ŽÄ€ĆĒĆ€Ä’Ć‰ÄšĆˆÅŒĆ“Ē‘Ć’ąææƊĢ„įŗ¾ąææƊĢŒį»€ĆŠÄĆ”ĒŽĆ É‘Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜Ēš"],
-["88a1","ĒœĆ¼ąææĆŖĢ„įŗæąææĆŖĢŒį»ĆŖÉ”āšā›"],
-["8940","šŖŽ©š”……"],
-["8943","ꔊ"],
-["8946","äø½ę»éµŽé‡Ÿ"],
-["894c","š§œµę’‘会ä¼Øä¾Ø兖兓农凤劔åŠØ医华发变团声处备夲夓学实実岚åŗ†ę€»ę–‰ęŸ¾ę „ꔄ굎ē‚¼ē”µēŗ¤ēŗ¬ēŗŗē»‡ē»ē»Ÿē¼†ē¼·č‰ŗ苏čÆč§†č®¾čÆ¢č½¦č½§č½®"],
-["89a1","ē‘ē³¼ē·ę„†ē«‰åˆ§"],
-["89ab","醌ē¢øé…žč‚¼"],
-["89b0","č“‹čƒ¶š §§"],
-["89b5","č‚Ÿé»‡ä³é·‰éøŒä°¾š©·¶š§€ŽéøŠšŖ„³ć—"],
-["89c1","ęŗščˆ¾ē”™"],
-["89c5","䤑马éŖé¾™ē¦‡šØ‘¬š”·Šš —š¢«¦äø¤äŗäŗ€äŗ‡äŗæä»«ä¼·ć‘Œä¾½ć¹ˆå€ƒå‚ˆć‘½ć’“ć’„å††å¤…å‡›å‡¼åˆ…äŗ‰å‰¹åŠåŒ§ć—‡åŽ©ć•‘åŽ°ć•“å‚å£ć•­ć•²ćšå’“å’£å’“咹哐å“Æ唘唣å”Ø斘å”æć–„ć–æå——ć—…"],
-["8a40","š§¶„唄"],
-["8a43","š ±‚š “•š„„«å–š¢³†ć§¬š č¹†š¤¶øš©“„䁓šØ‚¾ēŗš¢°øćؓ䟕šØ…š¦§²š¤·Ŗꓝš µ¼š ¾“š ³•š”ƒ“ę’č¹¾š ŗ–š °‹š ½¤š¢²©šØ‰–š¤““"],
-["8a64","š µ†š©©šØƒ©äŸ“š¤ŗ§š¢³‚éŖ²ć©§š©—“ćæ­ć”†š„‹‡š©Ÿ”š§£ˆš¢µ„鵮頕"],
-["8a76","䏙š¦‚„ę’“å“£š¢µŒš¢ÆŠš”·ć§»š”Æ"],
-["8aa1","š¦›šš¦œ–š§¦ ę“Ŗš„’š ±ƒč¹Øš¢†”šØ­Œš œ±"],
-["8aac","䠋š †©ćæŗ唳š¢¶"],
-["8ab2","š¤—ˆš “¼š¦‚—š ½Œš ¶–啹䂻äŽŗ"],
-["8abb","äŖ“š¢©¦š”‚č†Ŗ飵š ¶œę¹ć§¾š¢µč·€åš”ę‘¼ć¹ƒ"],
-["8ac9","šŖ˜š ø‰š¢«š¢³‰"],
-["8ace","š”ƒˆš£§‚榒ć؆šØŠ›ć•øš„¹‰š¢ƒ‡å™’š ¼±š¢²²š©œ ć’¼ę°½š¤ø»"],
-["8adf","š§•“š¢ŗ‹š¢ˆˆšŖ™›šØ³š ¹ŗš °“š¦ œē¾“š”ƒš¢ ƒš¢¤¹ć—»š„‡£š ŗŒš ¾š ŗŖć¾“š ¼°š µ‡š”…š ¹Œ"],
-["8af6","š ŗ«š ®©š µˆš”ƒ€š”„½ć湚¢š–ę²š ¾­"],
-["8b40","š£“š§˜¹š¢ÆŽš µ¾š µæš¢±‘š¢±•ćؘš ŗ˜š”ƒ‡š ¼®šŖ˜²š¦­šØ³’šØ¶™šØ³Šé–Ŗå“Œč‹„å–¹"],
-["8b55","š©»ƒé°¦éŖ¶š§žš¢·®ē…€č…­čƒ¬å°œš¦•²č„“ćž—åŸšØ‚½é†¶š »ŗš øš ¹·š »»ć—š¤·«ć˜‰š ³–åšÆš¢žµš”ƒ‰š øš ¹øš”øš”…ˆšØˆ‡š”‘•š ¹¹š¤¹š¢¶¤å©”š”€š”€žš”ƒµš”ƒ¶åžœš ø‘"],
-["8ba1","š§š”šØ‹š ¾µš ¹»š„…¾ćœƒš ¾¶š”†€š„‹˜šŖŠ½š¤§šš” ŗš¤…·šØ‰¼å¢™å‰Ø昚š„œ½ē®²å­Ø䠀䬬鼧䧧鰟鮍š„­“š£„½å—»ć—²åš‰äøØ夂š”ƁšÆ”ø靑š ‚†ä¹›äŗ»ć”¾å°£å½‘åæ„ć£ŗę‰Œę”µę­ŗę°µę°ŗē¬ēˆ«äø¬ēŠ­š¤£©ē½’ē¤»ē³¹ē½“š¦‰Ŗ擁"],
-["8bde","š¦‹č€‚č‚€š¦˜’š¦„‘åč”¤č§š§¢²č® č“é’…é•øé•æé—ØšØøéŸ¦é”µé£Žé£žé„£š© é±¼éøŸé»„ę­Æļ¤‡äø·š ‚‡é˜ęˆ·é’¢"],
-["8c40","å€»ę·¾š©±³é¾¦ć·‰č¢š¤…Žē·å³µä¬ š„‡ć•™š„“°ę„¢šØØ²č¾§é‡¶ē†‘ęœ™ēŽŗš£ŠšŖ„‡ć²‹š”¦€ä¬ē£¤ē‚冮šØœä€‰ę©£šŖŠŗäˆ£č˜š ©ÆēØŖš©„‡šØ«Ŗ靕ēåŒ¤š¢¾é“ē›™šØ§£é¾§ēŸäŗ£äæ°å‚¼äøÆ众é¾Ø吓ē¶‹å¢’壐š”¶¶åŗ’åŗ™åæ‚š¢œ’ę–‹"],
-["8ca1","š£¹ę¤™ę©ƒš£±£ę³æ"],
-["8ca7","ēˆ€š¤”…ēŽŒć»›š¤Ø“嬕ē’¹č®ƒš„²¤š„š•ēŖ“ēƬē³ƒē¹¬č‹øč–—é¾©č¢é¾Ŗčŗ¹é¾«čæč•Ÿé§ éˆ”龬šØ¶¹š”æ䁱䊢åؚ"],
-["8cc9","é”Øę«ä‰¶åœ½"],
-["8cce","藖š¤„»čŠæš§„ä²š¦µ“åµ»š¦¬•š¦¾¾é¾­é¾®å®–é¾Æꛧē¹›ę¹—ē§Šć¶ˆä“ƒš£‰–š¢ž–䎚䔶"],
-["8ce6","峕š£¬šč«¹å±øć“’š£•‘åµøé¾²ē…—䕘š¤ƒ¬š”ø£ä±·ć„ø摊š †¤š¦±č«Œä¾“š ˆ¹å¦æ腬锖š©£ŗå¼»"],
-["8d40","š ®Ÿ"],
-["8d42","š¢‡šØ„­ä„‚äš»š©¹ć¼‡é¾³šŖ†µäƒøćŸ–ä›·š¦±†ä…¼šØš²š§æä•­ć£”š„’šä•”䔛䶉䱻䵶ä—Ŗć戚¤¬ć™”ä“žä’½ä‡­å“¾åµˆåµ–ć·¼ć å¶¤å¶¹ć  ć ø幂åŗ½å¼„å¾ƒć¤ˆć¤”ć¤æć„ęƒ—ę„½å³„ć¦‰ę†·ę†¹ę‡ć¦øęˆ¬ęŠę‹„ęŒ˜ć§ø嚱"],
-["8da1","ćØƒę¢ę»ę‡ę‘šć©‹ę“€å“•å˜”é¾ŸćŖ—ę–†ćŖ½ę—æę™“ć«²ęš’ć¬¢ęœ–ć­‚ęž¤ę €ć­˜ę”Šę¢„ć­²ć­±ć­»ę¤‰ę„ƒē‰œę„¤ę¦Ÿę¦…ć®¼ę§–ćÆę©„ę©“ę©±ęŖ‚ćƬęŖ™ćƲęŖ«ęŖµę«”꫶ꮁęƁęÆŖę±µę²Ŗć³‹ę“‚ę“†ę“¦ę¶ć³Æ궤궱ęø•ęø˜ęø©ęŗ†šØ§€ęŗ»ę»¢ę»šé½æę»Øę»©ę¼¤ę¼“ćµ†š£½ę¾ę¾¾ćµŖćµµē†·å²™ć¶Šē€¬ć¶‘ēē”ēÆēæē‚‰š Œ„äć—±š »˜"],
-["8e40","š£»—åž¾š¦»“ē„¾š„Ÿ ć™Žę¦¢šØÆ©å­“ē©‰š„£”š©“™ē©„ē©½š„¦¬ēŖ»ēŖ°ē«‚ē«ƒē‡‘š¦’ä‡Šē«šē«ē«Ŗä‡Æ咲š„°ē¬‹ē­•ē¬©š„ŒŽš„³¾ē®¢ē­Æ莜š„®“š¦±æēÆč”ē®’ē®øš„“ ć¶­š„±„蒒ēÆŗē°†ē°µš„³ē±„ē²ƒš¤¢‚ē²¦ę™½š¤•øē³‰ē³‡ē³¦ē±“ē³³ē³µē³Ž"],
-["8ea1","ē¹§ä”š¦¹„ēµš¦»–ē’ē¶‰ē¶«ē„µē¶³ē·’š¤—š¦€©ē·¤ć““ē·µš”Ÿ¹ē·„šØ­ēøš¦„”š¦…šē¹®ēŗ’䌫鑬ēø§ē½€ē½ē½‡ē¤¶š¦‹é§”ē¾—š¦‘ē¾£š”™”š Ø䕜š£¦ä”ƒšØŒŗēæŗš¦’‰č€…č€ˆč€č€Øč€ÆšŖ‚‡š¦³ƒč€»č€¼č”š¢œ”䦉š¦˜¦š£·£š¦›Øęœ„č‚§šØ©ˆč„‡č„šå¢°š¢›¶ę±æš¦’˜š¤¾øꓧš”’Ščˆ˜š””žę©“š¤©„š¤Ŗ•ä‘ŗ舩š ¬š¦©’š£µ¾ä湚”“½č“¢č¢š¦¬Šš¤¦§š£”°š”³š£·øčŠŖꤛšÆ¦”䇛"],
-["8f40","蕋苐茚š ø–š”ž“曁š£…½š£•šč‰»č‹¢čŒ˜š£ŗ‹š¦¶£š¦¬…š¦®—š£—Žć¶æčŒå—¬čŽ…ä”‹š¦¶„čŽ¬čč“ć‘¾š¦»”ę©—č•šć’–š¦¹‚š¢»Æ葘š„Æ¤č‘±ć·“ä“¤ęŖ§č‘Šš£²µē„˜č’Øš¦®–š¦¹·š¦¹ƒč“žččŽ‘䒠蒓蓤š„²‘䉀š„³€ä•ƒč”“嫲š¦ŗ™ä”§č•³ä”–ęžæ蘖"],
-["8fa1","šØ˜„šØ˜»č—š§‚ˆč˜‚š”–‚š§ƒšÆ¦²ä•Ŗč˜Ø晈š”¢¢å·š§Žšč™¾č±šŖƒøčŸ®š¢°§čž±čŸšč å™”č™¬ę”–ä˜č”…č”†š§— š£¶¹š§—¤č”žč¢œä™›č¢“č¢µęč£…ē·š§œč¦‡č¦Šč¦¦č¦©č¦§č¦¼šØØ„č§§š§¤¤š§Ŗ½čŖœēž“釾čŖš§©™ē«©š§¬ŗš£¾äœ“š§¬øē…¼č¬Œč¬Ÿš„°š„•„č¬æ譌譍čŖ©š¤©ŗ讐讛čŖÆš”›Ÿä˜•č”č²›š§µ”š§¶šÆ§”ćœ„š§µ“č³–š§¶˜š§¶½č“’č“ƒš”¤č³›ēœč“‘š¤³‰ć»čµ·"],
-["9040","趩šØ€‚š”€”š¤¦Šć­¼šØ†¼š§„Œē«§čŗ­čŗ¶č»ƒé‹”č¼™č¼­šØ„šØ’č¾„錃šŖŠŸš ©č¾³ä¤ŖšØ§žšØ”½š£¶»å»øš£‰¢č湚Ŗ€”šØš¼šØ”š¢Œ„榀š¦»—逷šØ”¼š§Ŗ¾é”šØ•¬šØ˜‹é‚ؚ؜“郄šØ›¦é‚®éƒ½é…§ć«°é†©é‡„ē²¬šØ¤³š”ŗ‰éˆŽę²Ÿé‰é‰¢š„–¹éŠ¹šØ«†š£²›šØ¬Œš„—›"],
-["90a1","š “±éŒ¬é«šØ«”šØÆ«ē‚å«ƒšØ«¢šØ«„䄄鉄šØƬšØ°¹šØÆæ鍳鑛čŗ¼é–…閦鐦閠ęæ¶äŠ¹š¢™ŗšØ›˜š”‰¼š£ø®ä§Ÿę°œé™»éš–䅬隣š¦»•ę‡šéš¶ē£µšØ« éš½åŒä¦”š¦²øš ‰“š¦š©‚Æš©ƒ„š¤«‘š”¤•š£ŒŠéœ±č™‚霶ä؏䔽䖅š¤«©ēµå­éœ›éœš©‡•é—å­Šš©‡«éŸé„僐š£‚·š£‚¼éž‰éžŸéž±éž¾éŸ€éŸ’韠š„‘¬éŸ®ēœš©³éŸæ韵š©š§„ŗä«‘é “é ³é”‹é”¦ć¬Žš§…µćµ‘š ˜°š¤…œ"],
-["9140","š„œ†é£Šé¢·é£ˆé£‡ä«æš¦“§š”›“喰飔飦飬éø餹š¤Ø©ä­²š©”—š©¤…駵é،éØ»éؐ驘š„œ„曄š©‚±š©Æ•é« é«¢š©¬…é«“䰎鬔鬭šØ˜€å€“鬓š¦¦Øć£ƒš£½é­é­€š©“¾å©…š””£é®Žš¤‰‹é°‚éÆæ鰌š©¹Ø鷔š©¾·šŖ†’šŖ†«šŖƒ”šŖ„£šŖ‡Ÿéµ¾é¶ƒšŖ„“éøŽę¢ˆ"],
-["91a1","鷄š¢…›šŖ†“šŖˆ š”¤»šŖˆ³é“¹šŖ‚¹šŖŠ“éŗéŗ•éŗžéŗ¢ä““éŗŖéŗÆš¤¤é»ć­ ć§„ć“ä¼²ćž¾šØ°«é¼‚鼈䮖鐤š¦¶¢é¼—鼖鼹嚟嚊齅é¦øš©‚‹éŸ²č‘æ齢齩ē«œé¾Žēˆ–䮾š¤„µš¤¦»ē…·š¤§øš¤ˆš¤©‘ēŽžšØƚš”£ŗē¦ŸšØ„¾šØø¶é©é³šØ©„鋬鎁鏋šØ„¬š¤’¹ēˆ—滫ē²ē©ƒēƒš¤‘³š¤øē…¾š”ŸÆē‚£š”¢¾š£–™ć»‡š”¢…š„Æš”Ÿøćœ¢š”›»š” ¹ć›”š”“š”£‘š„½‹ćœ£š”›€å›š¤Ø„š”¾š”ŠØ"],
-["9240","š”†š”’¶č”ƒš£š¦č”ƒč‘•š¤¦”š§…„š£ø±š„•œš£»»š§’ä““š£›®š©¦š¦¼¦ęŸ¹ćœ³ć°•ć·§å”¬š”¤¢ę ä—š£œæš¤ƒ”š¤‚‹š¤„š¦°”哋嚞š¦š±åš’š æŸš ®Øš øé†šØ¬“鎜ä»øå„«ć ™š¤¶äŗ¼š ‘„š æ佋侊š„™‘å©Øš †«š ‹ć¦™š ŒŠš ”ćµä¼©š ‹€šØŗ³š ‰µč«šš ˆŒäŗ˜"],
-["92a1","働儍侢伃š¤ØŽš£ŗŠä½‚倮偬傁äæŒäæ„å˜åƒ¼å…™å…›å…å…žę¹¶š£–•š£ø¹š£ŗæęµ²š”¢„š£ŗ‰å†Ø凃š — ä“š ’£š ’’š ’‘čµŗšØŖœš œŽå‰™åŠ¤š ”³å‹”鍮ä™ŗē†Œš¤ŽŒš ° š¤¦¬š”ƒ¤ę§‘š øē‘¹ć»žē’™ē”ē‘–ēŽ˜ä®Žš¤Ŗ¼š¤‚åć–„ēˆš¤ƒ‰å–“š …响š Æ†åœé‰é›“鍦埝垍åæć˜¾å£‹åŖ™šØ©†š”›ŗš”Æš”œåجå¦ø銏婾嫏åؒš„„†š”§³š”””š¤Š•ć›µę“…ē‘ƒåØ”š„ŗƒ"],
-["9340","åŖšØƗš “鏠ē’Œš”Œƒē„…䄲鐈šØ§»éŽ½ćž å°žå²žå¹žå¹ˆš”¦–š”„¼š£«®å»å­š”¤ƒš”¤„ćœš”¢ ć›š”›¾ć›“č„ŖšØ©‡š”¶ŗš£‘²šØ¦Ø弌弎š”¤§š”ž«å©«š”œ»å­„č˜”š§—½č” ę¾š¢” š¢˜«åæ›ćŗøš¢–Æš¢–¾š©‚ˆš¦½³ę‡€š €¾š †š¢˜›ę†™ę†˜ęµš¢²›š¢“‡š¤›”š©…"],
-["93a1","ꑱš¤™„š¢­ŖćØ©š¢¬¢š£‘š©£Ŗš¢¹øęŒ·šŖ‘›ę’¶ęŒ±ę‘š¤§£š¢µ§ęŠ¤š¢²”ę»ę•«ę„²ćÆ“š£‚Žš£Š­š¤¦‰š£Š«å”š£‹ š”£™š©æꛎš£Š‰š£†³ć« ä†š„–„šØ¬¢š„–š”›¼š„•›š„„ē£®š£„ƒš” Ŗš£ˆ“摤š£ˆš£†‚š¤‹‰ęšŽš¦“¤ę™«ä®“ę˜°š§”°š”·«ę™£š£‹’š£‹”ꘞš„”²ć£‘š£ ŗš£ž¼ć®™š£ž¢š£¾ē“ć®–꾏š¤˜Ŗę¢¶ę žćƄęŖ¾ć”£š£Ÿ•š¤’‡ęØ³ę©’ę«‰ę¬…š”¤’ę”‘ę¢˜ę©ŒćƗę©ŗꭗš£æ€š£²šéŽ é‹²šØÆŖšØ«‹"],
-["9440","銉šØ€žšØ§œé‘§ę¶„ę¼‹š¤§¬ęµ§š£½æć¶ęø„š¤€¼åؽęøŠå”‡ę“¤ē”‚ē„»š¤Œšš¤‰¶ēƒ±ē‰ēŠ‡ēŠ”š¤žš¤œ„兹š¤Ŗ¤š —«ē‘ŗš£»øš£™Ÿš¤©Šš¤¤—š„æ”ć¼†ćŗ±š¤«ŸšØ°£š£¼µę‚§ć»³ē“Œē¼éŽ‡ē·ä’Ÿš¦·Ŗ䕑ē–ƒć½£š¤³™š¤“†ć½˜ē••ē™³šŖ—†ć¬™ē‘ؚثŒš¤¦«š¤¦Žć«»"],
-["94a1","ć·š¤©Žć»æš¤§…š¤£³é‡ŗ圲鍂šØ«£š””¤åƒŸš„ˆ”š„‡§ēøš£ˆ²ēœŽēœē»š¤š—š£žć©žš¤£°ēøē’›ćŗ暤Ŗŗš¤«‡äƒˆš¤Ŗ–š¦†®éŒ‡š„–ē žē¢ē¢ˆē£’ēē„™š§š„›£ä„Žē¦›č’–ē¦„ęØ­š£»ŗēØŗē§“䅮š”›¦ä„²éˆµē§±š µŒš¤¦Œš Š™š£¶ŗš”®ć–—å•«ć•°ćšŖš ‡”š °ē«¢å©™š¢›µš„ŖÆš„Ŗœå؍š ‰›ē£°åØŖš„Ɔē«¾ä‡¹ē±ē±­äˆ‘š„®³š„ŗ¼š„ŗ¦ē³š¤§¹š”ž°ē²Žē±¼ē²®ęŖ²ē·œēø‡ē·“ē½Žš¦‰”"],
-["9540","š¦…œš§­ˆē¶—š„ŗ‚ä‰Ŗš¦­µš ¤–ęŸ–š Žš£—åŸ„š¦’š¦øš¤„¢ēæē¬§š  ¬š„«©š„µƒē¬Œš„øŽé§¦č™…é©£ę؜š£æć§¢š¤§·š¦–­é؟š¦– č’€š§„§š¦³‘ä“Ŗč„·ä‚čƒ†č„‰č…‚š¦ž“飃š¦©‚č‰¢č‰„š¦©‘č‘“š¦¶§č˜š§ˆ›åŖ†ä…æš””€å¬«š”¢”嫤š”£˜čš šÆ¦¼š£¶č ­š§¢å؂"],
-["95a1","č”®ä½…č¢‡č¢æč£¦č„„č„š„šƒč„”š§ž…š§ž„šØƵšØƙšØ®œšØ§¹ćŗ­č’£ä›µä›ćŸ²čؽč؜š©‘ˆå½éˆ«š¤Š„ę—”ē„©ēƒ„š””…éµ­č²Ÿč³©š§·œå¦šēŸƒå§°ä®ć›”čøŖčŗ§š¤°‰č¼°č½Šä‹“ę±˜ę¾»š¢Œ”ä¢›ę½¹ęŗ‹š”ŸšéÆ©ćšµš¤¤Æ邻邗啱䤆醻鐄šØ©‹ä¢šØ«¼é§šØ°šØ°»č“„čث閙閧閗閖šØ““ē‘…滂š¤£æš¤©‚š¤Ŗ滧š£ˆ„随šØ»§šØ¹¦šØ¹„ć»Œš¤§­š¤©øš£æ®ē’ē‘«ć»¼éš©‚°"],
-["9640","ꔇä؝š©‚“š„ŸŸééØšØ¦‰šØ°¦šØ¬Æš¦Ž¾éŠŗå¬‘č­©ä¤¼ē¹š¤ˆ›éž›é±é¤øš ¼¦å·šØƅš¤Ŗ²é Ÿš©“šé‹¶š©——釄䓀šØ­š¤©§šØ­¤é£œšØ©…ć¼€éˆŖä¤„č”é¤»é„š§¬†ć·½é¦›ä­Æé¦Ŗ驜šØ­„š„£ˆęŖéؔ嫾éØÆš©£±ä®š©„ˆé¦¼ä®½ä®—鍽唲š”Œ‚å ¢š¤¦ø"],
-["96a1","š”“Øē”„š¢œŸš£¶øę£…ćµ½é‘˜ć¤§ę…š¢žš¢„«ę„‡é±é±“鱻鰵鰐é­æéƏš©ø­é®ŸšŖ‡µšŖƒ¾é“”ä²®š¤„„éø˜ä²°é“ŒšŖ†“šŖƒ­šŖƒ³š©¤Æé¶„č’½š¦ø’š¦æŸš¦®‚č—¼ä”³š¦¶¤š¦ŗ„š¦·°č č—®š¦ø€š£Ÿ—š¦¤ē§¢š£–œš£™€ä¤­š¤§žćµ¢é›éŠ¾éˆš Šæē¢¹é‰·é‘äæ¤ć‘€é¤š„•ē ½ē””ē¢¶ē”‹š”—š£‡‰š¤„ćššä½²ęæšęæ™ē€žē€žå”š¤†µåž»å£³åžŠé“–埗ē„“ć’Æš¤†¬ē‡«š¦±€š¤¾—å¬Øš”žµšØ©‰"],
-["9740","ę„Œå«Žå؋䊼š¤’ˆćœ¬ä­»šØ§¼éŽ»éŽøš”£–š ¼č‘²š¦³€š”“š¤‹ŗš¢°¦š¤å¦”š£¶·š¦ē¶Øš¦…›š¦‚¤š¤¦¹š¤¦‹šØ§ŗé‹„ē¢ć»©ē’“šØ­£š”¢Ÿć»”š¤Ŗ³ę«˜ē³ē»ć»–š¤Ø¾š¤Ŗ”š”Ÿ™š¤©¦š Ž§š”¤š¤§„ē‘ˆš¤¤–ē‚„š¤„¶éŠ„ē¦éŸš “¾éŒ±šØ«ŽšØؖ鎆šØƧš„—•ä¤µšØŖ‚ē…«"],
-["97a1","š¤„ƒš ³æ嚤š ˜šš Æ«š ²ø唂ē§„š”Ÿŗē·¾š”›‚š¤©š””’ä”®éćœŠšØ«€š¤¦­å¦°š”¢æš”¢ƒš§’„åŖ”ć›¢š£µ›ćš°é‰Ÿå©¹šØŖš””¢é“ć³š Ŗ“äŖ–ć¦Šåƒ“ćµ©ćµŒš”Žœē…µä‹»šØˆ˜ęøš©ƒ¤ä“«ęµ—š§¹ē§ę²Æć³–š£æ­š£ø­ęø‚ę¼ŒćµÆš µē•‘ćš¼ć“ˆäš€ć»šä”±å§„é‰®ä¤¾č½šØ°œš¦Æ€å ’åŸˆć›–š”‘’ēƒ¾š¤¢š¤©±š¢æ£š”Š°š¢Ž½ę¢¹ę„§š”Ž˜š£“„š§Æ“š£›ŸšØŖƒš£Ÿ–š£ŗš¤²Ÿęؚš£š­š¦²·č¾ä“Ÿä“Ž"],
-["9840","š¦“¦š¦µ‘š¦²‚š¦æžę¼—š§„‰čŒ½š”œŗ菭š¦²€š§“š”Ÿ›å¦‰åŖ‚š”ž³å©”婱š”¤…š¤‡¼ćœ­å§Æš”œ¼ć›‡ē†ŽéŽęššš¤Š„å©®åØ«š¤Š“ęØ«š£»¹š§œ¶š¤‘›š¤‹Šē„š¤‰™šØ§”ä¾°š¦“Ø峂š¤“Žš§¹š¤Ž½ę،š¤‰–š”Œ„ē‚¦ē„³š¤©ć¶„ę³ŸšÆ „š¤©ē¹„姫å“Æć·³å½œš¤©š”ŸŸē¶¤č¦"],
-["98a1","咅š£«ŗš£Œ€š ˆ”坾š £•š ˜™ćæ„š”¾žšŖŠ¶ē€ƒš©…›åµ°ēŽē³“šØ©™š© äæˆēæ§ē‹ēŒš§«“ēŒøēŒ¹š„›¶ēēˆćŗ©š§¬˜é¬ē‡µš¤£²ē”臶滊ēœŒć»‘ę²¢å›½ē™ēžēŸć»¢ć»°ć»“ć»ŗē““ć¼Žć½“ē•‚ē•­ē•²ē–ć½¼ē—ˆē—œćæ€ē™ćæ—ē™“ćæœē™ŗš¤½œē†ˆå˜£č¦€å”©ä€ēƒä€¹ę”䁅旛ēž˜äŖäÆ属ēž¾ēŸ‹å£²ē ˜ē‚¹ē œä‚Øē ¹ē”‡ē”‘ē”¦č‘ˆš„”µē¤³ę ƒē¤²ä„ƒ"],
-["9940","䄉ē¦‘ē¦™č¾»ēØ†č¾¼ä…§ēŖ‘䆲ēŖ¼č‰¹ä‡„ē«ē«›ä‡äø”ē­¢ē­¬ē­»ē°’ē°›ä‰ ä‰ŗē±»ē²œäŠŒē²ø䊔ē³­č¾“ēƒ€š ³ē·ē·”ē·ē·½ē¾®ē¾“ēŠŸäŽ—耠耄ē¬¹č€®č€±č”ć·Œåž“ē‚ č‚·čƒ©ä­č„ŒēŒŖ脎脒ē• č„”äć¬¹č…–č…™č…š"],
-["99a1","䐓å ŗč…¼č†„ä„č†“ä­č†„åŸÆč‡č‡¤č‰”ä’čŠ¦č‰¶č‹Šč‹˜č‹æä’°č—é™©ę¦Šč…ēƒµč‘¤ęƒ£č’ˆä”„č’¾č“”č“ø蔐č”øč•’ä”»č•Æč•°č— ä•·č™²čš’čš²č›Æé™…čž‹ä˜†ä˜—č¢®č£æ褤脇覑š§„§čØ©čØøčŖ”čŖ“č±‘č³”č³²č“œäž˜å”Ÿč·ƒäŸ­ä»®čøŗå—˜å”č¹±å—µčŗ°ä ·č»Žč»¢č»¤č»­č»²č¾·čæčæŠčæŒé€³é§„䢭飠鈓䤞éˆØ鉘鉫銱銮éŠæ"],
-["9a40","鋣鋫鋳鋓鋽鍃鎄鎭䄅䄑éŗæ鐗匁鐝鐭鐾ä„Ŗé‘”é‘¹é”­é–¢ä¦§é—“é˜³ä§„ęž äؤ靀äص鞲韂噔䫤ęƒØ颹䬙飱唄餎餙冓餜餷鄂鄝鄢䭰駅䮝éؼ鬏ēŖƒé­©é®éƝéƱéÆ“ä±­é° ćÆš”Ƃ鵉é°ŗ"],
-["9aa1","é»¾å™é¶“é¶½é·€é·¼é“¶č¾¶é¹»éŗ¬éŗ±éŗ½é»†é“œé»¢é»±é»øē«ˆé½„š ‚”š Š·š Ž ę¤šé“ƒå¦¬š “—å”€é“ćž¹š —•š ˜•š ™¶š”šŗ块ē…³š «‚š «š ®æå‘ŖšÆ »š Æ‹å’žš Æ»š °»š ±“š ±„š ±¼ęƒ§š ²å™ŗš ²µš ³š ³­š µÆš ¶²š ·ˆę„•é°Æčž„š ø„š øŽš »—š ¾š ¼­š ¹³å° š ¾¼åø‹š”œš”š”¶ęœžš”»š”‚ˆš”‚–晇š”‚æš”ƒ“š”„Æš”„»å¤č’­š”‹£š”µš”Œ¶č®š”•·š”˜™š”Ÿƒš”Ÿ‡ä¹øē‚»š” ­š”„Ŗ"],
-["9b40","š”Ø­š”©…š”°Ŗš”±°š”²¬š”»ˆę‹ƒš”»•š”¼•ē†˜ę”•š¢…ę§©ć›ˆš¢‰¼š¢—š¢ŗš¢œŖš¢”±š¢„č‹½š¢„§š¢¦“š¢«•č¦„š¢«Øč¾ š¢¬Žéžøš¢¬æ锇éŖ½š¢±Œ"],
-["9b62","š¢²ˆš¢²·š„ÆØš¢“ˆš¢“’š¢¶·š¢¶•š¢¹‚š¢½“š¢æŒš£€³š£¦š£ŒŸš£žå¾±ę™ˆęšæš§©¹š£•§š£—³ēˆš¤¦ŗēŸ—š£˜šš£œ–ēŗ‡š †å¢µęœŽ"],
-["9ba1","ꤘš£Ŗ§š§™—š„梚£ø‘š£ŗ¹š§—¾š¢‚šä£äŖøš¤„™šØŖšš¤‹®š¤Œš¤€»š¤Œ“š¤Ž–š¤©…š —Šå‡’š ˜‘妟š”ŗØć®¾š£³æš¤„š¤“–垈š¤™“榛š¤œÆšØ—Øš©§‰ć¢š¢‡ƒč­žšØ­Žé§–š¤ ’š¤£»š¤Ø•ēˆ‰š¤«€š ±øå„„š¤ŗ„š¤¾†š ¹č»šš„€¬åŠåœæē…±š„Š™š„™š£½Šš¤Ŗ§å–¼š„‘†š„‘®š¦­’é‡”ć‘³š„”暧˜²š„•žäœ˜š„•¢š„•¦š„Ÿ‡š¤¤æš„”å¦ć“»š£Œęƒžš„¤ƒä¼šØ„ˆš„Ŗ®š„®‰š„°†š”¶åž”ē…‘ę¾¶š¦„‚š§°’遖š¦†²š¤¾šč­¢š¦‚š¦‘Š"],
-["9c40","嵛š¦Æ·č¼¶š¦’„š”¤œč«Ŗš¤§¶š¦’ˆš£æÆš¦”’äƀš¦–暦šµš¢œ›é‘„š„Ÿ”ꆕåاšÆ£ä¾»åš¹š¤””š¦›¼ä¹Ŗš¤¤“é™–ę¶š¦²½ć˜˜č„·š¦ž™š¦”®š¦‘š¦”žē‡Ÿš¦£‡ē­‚š©ƒ€š Ø‘š¦¤¦é„„š¦¤¹ē©…é·°š¦§ŗéئš¦Ø­ć™Ÿš¦‘©š €”ē¦ƒš¦Ø“š¦­›å“¬š£”™čš¦®ä›š¦²¤ē”»č”„š¦¶®å¢¶"],
-["9ca1","朜š¢–š§‹š§‡ć±”š§Š€š§Š…銁š¢…ŗš§Š‹éŒ°š§‹¦š¤§ę°¹é’Ÿš§‘š »øč §č£µš¢¤¦šØ‘³š”ž±ęŗøš¤ØŖš”  ć¦¤ćš¹å°ē§£ä”æꚶš©²­š©¢¤č„ƒš§ŸŒš§”˜å›–䃟š”˜Šć¦”š£œÆšØƒØš”…ē†­č¦š§§š©†Ø婧䲷š§‚ƚئ«š§§½š§ØŠš§¬‹š§µ¦š¤…ŗē­ƒē„¾šØ€‰ę¾µšŖ‹Ÿę؃šØŒ˜åŽ¢š¦ø‡éŽæę ¶éšØ…ƚ؀£š¦¦µš”­š£ˆÆšØˆå¶…šØ°°šØ‚ƒåœ•é £šØ„‰å¶«š¤¦ˆę–¾ę§•å’š¤Ŗ„š£¾ć°‘ęœ¶šØ‚šØƒ“šØ„®š”¾”šØ…"],
-["9d40","šØ†‰šØ†ÆšØˆššØŒ†šØŒÆšØŽŠć—ŠšØ‘ؚؚŖä£ŗę¦šØ„–ē ˆé‰•šØ¦ø䏲šØ§§äŸšØ§ØšØ­†šØƔå§øšØ°‰č¼‹šØæ…š©ƒ¬ē­‘š©„š©„¼ć··š©…žš¤«ŠčæēŠåš‹š©“§š©—©š©–°š©–øš©œ²š©£‘š©„‰š©„Ŗš©§ƒš©ØØš©¬Žš©µšš©¶›ēŗŸš©»øš©¼£ä²¤é•‡šŖŠ“ē†¢šŖ‹æ䶑递šŖ—‹ä¶œš ²œč¾¾å—"],
-["9da1","č¾ŗš¢’°č¾¹š¤Ŗ“䔉ē¹æę½–ęŖ±ä»Ŗ擤šØ¬¬š§¢ćœŗčŗ€š”ŸµšØ€¤šØ­¬šØ®™š§Ø¾š¦šÆć·«š§™•š£²·š„˜µš„„–äŗšš„ŗš¦‰˜åšæš ¹­čøŽå­­š£ŗˆš¤²žęžę‹š”Ÿ¶š””»ę”°å˜­š„±Šåšš„Œ‘ć·†š©¶˜ä±½å˜¢å˜žē½‰š„»˜å„µš£µ€č°äøœš æŖš µ‰š£šŗč„—éµžč“˜ē˜»é±…ē™Žēž¹é…å²č…ˆč‹·å˜„č„²č˜č‚½å—Ŗē„¢å™ƒå–š ŗć—Žå˜…å—±ę›±šØ‹¢ć˜­ē”“嗰å–ŗ咗啲š ±š ²–廐š„…ˆš ¹¶š¢±¢"],
-["9e40","š ŗ¢éŗ«ēµšå—žš”µęŠé­å’”č³ē‡¶é…¶ę¼ęŽ¹ę¾å•©š¢­ƒé±²š¢ŗ³å†šć“Ÿš ¶§å†§å‘å”žå”“ē™¦čø­š¦¢Šē–±č‚¶č „čž†č£‡č†¶čœš”ƒä“¬ēŒ„š¤œ†å®čŒ‹š¦¢“å™»š¢›“š§“Æš¤†£š§µ³š¦»š§Š¶é…°š”‡™éˆˆš£³¼šŖš©š ŗ¬š »¹ē‰¦š”²¢äŽš¤æ‚š§æ¹š æ«äƒŗ"],
-["9ea1","é±ę”Ÿš¢¶ ä£³š¤Ÿ š©µ¼š æ¬š øŠę¢š§–£š æ­"],
-["9ead","š¦ˆš”†‡ē†£ēŗŽéµäøšäø„ć•·å¬ę²²å§ćš¬ć§œå½ćš„š¤˜˜å¢šš¤­®čˆ­å‘‹åžŖš„Ŗ•š „¹"],
-["9ec5","ć©’š¢‘„ē“š©ŗ¬ä“‰éÆ­š£³¾š©¼°ä±›š¤¾©š©–žš©æžč‘œš£¶¶š§Š²š¦ž³š£œ ęŒ®ē“„š£»·š£ø¬ćØŖé€ˆå‹Œć¹“ć™ŗ䗩š ’Žē™€å«°š ŗ¶ē”ŗš§¼®å¢§ä‚æ噼鮋嵓ē™”šŖ“éŗ…ä³”ē—¹ćŸ»ę„™š£ƒšš¤²"],
-["9ef5","噝š”Š©åž§š¤„£š©ø†åˆ“š§‚®ć–­ę±Šéµ¼"],
-["9f40","ē±–鬹埞š”¬å±“ę““š©“š¦Œµš§…¤čš­š “Øš¦“¢š¤«¢š µ±"],
-["9f4f","凾š”¼å¶Žéœƒš”·‘éŗéŒē¬Ÿé¬‚峑ē®£ę‰ØęŒµé«æēƏé¬Ŗē±¾é¬®ē±‚ē²†é°•ēƼ鬉鼗鰛š¤¤¾é½šå•³åƃäæ½éŗ˜äæ²å‰ ćø†å‹‘坧偖妷åø’éŸˆé¶«č½œå‘©éž“é„€éžŗåŒ¬ę„°"],
-["9fa1","ę¤¬åšé°Šé“‚ä°»é™ę¦€å‚¦ē•†š”­é§šå‰³"],
-["9fae","酙隁酜"],
-["9fb2","酑šØŗ—ęæš¦“£ę«Šå˜‘醎ē•ŗꊅš ¼ēē±°š„°”š£³½"],
-["9fc1","š¤¤™ē›–鮝äøŖš ³”čŽ¾č”‚"],
-["9fc9","å±Šę§€åƒ­åŗåˆŸå·µä»Žę°±š ‡²ä¼¹å’œå“šåŠšč¶‚ć—¾å¼Œć—³"],
-["9fdb","ę­’é…¼é¾„é®—é ®é¢“éŖŗéŗØéŗ„ē…ŗē¬”"],
-["9fe7","ęÆŗ蠘ē½ø"],
-["9feb","嘠šŖ™Šč¹·é½“"],
-["9ff0","č·”č¹éøœčøęŠ‚šØ½čøØč¹µē«“š¤©·ēؾē£˜ę³Ŗ詧ē˜‡"],
-["a040","šØ©šé¼¦ę³ŽčŸ–ē—ƒšŖŠ²ē”“šÆ”€č“Œē‹¢ē±č¬­ēŒ‚ē“±č³«š¤Ŗ»č˜Æå¾ŗč¢ ä’·"],
-["a055","š” »š¦ø…"],
-["a058","č©¾š¢”›"],
-["a05b","ęƒ½ē™§é«—éµ„é®é®čŸµ"],
-["a063","č č³·ēŒ¬éœ”é®°ć—–ēŠ²ä°‡ē±‘é„Šš¦…™ę…™ä°„éŗ–ę…½"],
-["a073","坟ę…ÆęŠ¦ęˆ¹ę‹Žć©œę‡¢åŽŖš£µę¤ę ‚ć—’"],
-["a0a1","嵗šØƂčæššØø¹"],
-["a0a6","僙š”µ†ē¤†åŒ²é˜øš ¼»ä„"],
-["a0ae","ēŸ¾"],
-["a0b0","ē³‚š„¼šē³šēØ­č¦č£ēµē”…ē“²č¦”čˆšęœŒč¢š§’†č›ē“°č„ƒēœ¤č¦‰š¦ŸŒē•“š¦»‘čž©čŸŽč‡ˆčžŒč©‰č²­č­ƒēœ«ē“øč“šć˜µę¦²č¶¦"],
-["a0d4","覩ē‘Øę¶¹čŸš¤€‘ē“§ć·›ē…¶ę‚¤ę†œć³‘ē…¢ę·"],
-["a0e2","ē½±šØ¬­ē‰ęƒ©ä­¾åˆ ć°˜š£³‡š„»—š§™–š„”±š”„„š”‹¾š©¤ƒš¦·œš§‚­å³š¦†­šØ؏š£™·š ƒ®š¦”†š¤¼Žä•¢å¬Ÿš¦Œé½éŗ¦š¦‰«"],
-["a3c0","ā€",31,"ā”"],
-["c6a1","ā‘ ",9,"ā‘“",9,"ā…°",9,"äø¶äøæäŗ…äŗ å†‚冖冫勹åŒø卩厶夊宀巛ā¼³å¹æå»“å½å½”ę”“ę— ē–’ē™¶č¾µéš¶ĀØĖ†ćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ļ¼»ļ¼½āœ½ć",23],
-["c740","恙",58,"ć‚”ć‚¢ć‚£ć‚¤"],
-["c7a1","ć‚„",81,"Š",5,"ŠŠ–",4],
-["c840","Š›",26,"ёŠ¶",25,"ā‡§ā†øā†¹ć‡š ƒŒä¹šš ‚Šåˆ‚ä’‘"],
-["c8a1","龰冈龱š§˜‡"],
-["c8cd","ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”悛悜āŗ€āŗ„āŗ†āŗ‡āŗˆāŗŠāŗŒāŗāŗ•āŗœāŗāŗ„āŗ§āŗŖāŗ¬āŗ®āŗ¶āŗ¼āŗ¾ā»†ā»Šā»Œā»ā»ā»–ā»—ā»žā»£"],
-["c8f5","ŹƒÉÉ›É”ɵœĆøŋŹŠÉŖ"],
-["f9fe","ļæ­"],
-["fa40","š •‡é‹›š —Ÿš£æ…č•ŒäŠµēÆå†µć™‰š¤„‚šØ§¤é„š”§›č‹®š£³ˆē ¼ę„ę‹Ÿš¤¤³šØ¦Ŗš Š š¦®³š”Œ…侫š¢“­å€ˆš¦“©š§Ŗ„š£˜€š¤Ŗ±š¢”“倩š ¾å¾¤š Ž€š ‡ę»›š Ÿå½å„ć‘ŗå„Žé”¬ćƒč–š¤¦¤š ’‡å… š£Ž“å…Ŗš Æ暢ƒ¼š ‹„š¢”°š –Žš£ˆ³š”¦ƒå®‚č½š –³š£²™å†²å†ø"],
-["faa1","é““å‡‰å‡å‡‘ć³œå‡“š¤Ŗ¦å†³å‡¢å‚å‡­čę¤¾š£œ­å½»åˆ‹åˆ¦åˆ¼åŠµå‰—劔効勅ē°•č•‚å‹ č˜š¦¬“包šØ«žå•‰ę»™š£¾€š „”š£æ¬åŒ³å„š Æ¢ę³‹š”œ¦ę ›ē•ęŠćŗŖć£Œš”›Øē‡ä’¢å­å“šØš«å¾åæš”––š”˜“ēŸ¦åŽ“šØŖ›åŽ åŽ«åŽ®ēŽ§š„²ć½™ēŽœåå…ę±‰ä¹‰åŸ¾å™ćŖ«š ®å š£æ«š¢¶£å¶š ±·å“ē¹å”«ę™—ęµ›å‘­š¦­“š µ“啝咏咤䞦š”œš »ć¶“š µ"],
-["fb40","šØ¦¼š¢š˜å•‡ä³­åÆē—喆喩嘅š”£—š¤€ŗ䕒š¤µęš³š”‚“å˜·ę›š£ŠŠęš¤ęš­å™å™ē£±å›±éž‡å¾åœ€å›Æ园šØ­¦ć˜£š”‰å†š¤†„ę±®ē‚‹å‚ćš±š¦±¾åŸ¦š”–å ƒš”‘”š¤£å ¦š¤Æµå”œå¢Ŗć•”å£ å£œš”ˆ¼å£»åÆæ坃šŖ…š¤‰øé“ć–”å¤Ÿę¢¦ć›ƒę¹™"],
-["fba1","š”˜¾åؤ啓š”š’č”…å§‰š µŽš¦²š¦“Ŗš”Ÿœå§™š”Ÿ»š”ž²š¦¶¦ęµ±š” Øš”›•å§¹š¦¹…åŖ«å©£ć›¦š¤¦©å©·ćœˆåŖ–ē‘„嫓š¦¾”š¢•”涅š”¤‘ćœ²š”šøåŗƒå‹å­¶ę–ˆå­¼š§ØŽä€„䔝š ˆ„åÆ•ę… š”Ø“š„§Œš –„åƳ宝䓐尅š”­„å°“ēŽå°”š”²„š¦¬Ø屉䣝岅峩å³Æ嶋š”·¹š”ø·å“å“˜åµ†š”ŗ¤å²ŗå·—č‹¼ć ­š¤¤š¢‰š¢…³čŠ‡ć ¶ćƂåø®ęŖŠå¹µå¹ŗš¤’¼š ³“厦äŗ·å»åŽØš”±åø‰å»“šØ’‚"],
-["fc40","å»¹å»»ć¢ å»¼ę ¾é›å¼š ‡šÆ¢”ć«žä¢®š”Œŗå¼ŗš¦¢ˆš¢å½˜š¢‘±å½£éž½š¦¹®å½²é€šØØ¶å¾§å¶¶ćµŸš„‰š”½Ŗš§ƒøš¢™Ø釖š ŠžšØØ©ę€±ęš…š””·ć„£ć·‡ć˜¹åžš¢ž“ē„±ć¹€ę‚žę‚¤ę‚³š¤¦‚š¤¦š§©“ē’¤åƒ”åŖ ę…¤č¤ę…‚šÆ¢¦š¦»’ę†å‡“š ™–ꆇå®Ŗš£¾·"],
-["fca1","š¢”Ÿę‡“šØ®š©„ę‡ć¤²š¢¦€š¢£ę€£ę…œę”žęŽ‹š „˜ę‹…š”°ę‹•š¢øę¬š¤§Ÿćؗęøęøš”ŽŽš”Ÿ¼ę’ę¾Šš¢ø¶é ”š¤‚Œš„œę“”꓄鑻橦ęŗć©—ę•ę¼–š¤ØØš¤Ø£ę–…ę•­ę•Ÿš£¾ę–µš¤„€ä¬·ę—‘䃘š” ©ę— ę—£å柚£€ę˜˜š£‡·š£‡øꙄš£†¤š£†„ꙋš ¹µę™§š„‡¦ę™³ę™“š”ø½š£ˆ±šØ—“š£‡ˆš„Œ“ēŸ…š¢£·é¦¤ęœ‚š¤Žœš¤Ø”欫ę§ŗš£Ÿ‚ęžę§ę¢š¤‡š©ƒ­ęŸ—ä“©ę ¢ę¹éˆ¼ę š£¦š¦¶ ę”"],
-["fd40","š£‘Æ꧔ę؋šØ«Ÿę„³ę£ƒš£—ę¤ę¤€ć“²ć؁š£˜¼ć®€ęž¬ę„”šØ©Šä‹¼ę¤¶ę¦˜ć®”š ‰č£å‚ę§¹š£™™š¢„Ŗę©…š£œƒęŖćÆ³ęž±ę«ˆš©†œć°ę¬š ¤£ęƒžę¬µę­“š¢Ÿęŗµš£«›š Žµš”„˜ć€å”š£­šęÆ”š£»¼ęÆœę°·š¢’‹š¤£±š¦­‘ę±ščˆ¦ę±¹š£¶¼ä“…š£¶½š¤†¤š¤¤Œš¤¤€"],
-["fda1","š£³‰ć›„ć³«š “²é®ƒš£‡¹š¢’‘ē¾ę ·š¦“„š¦¶”š¦·«ę¶–ęµœę¹¼ę¼„š¤„暤‚…š¦¹²č”³š¦½“å‡‡ę²œęøč®šØ¬”ęøÆš£øÆē‘“š£¾‚ē§Œę¹åŖ‘š£‹ęæøćœę¾š£ø°ę»ŗš”’—š¤€½ä••é°ę½„ę½œćµŽę½“š©…°ć“»ę¾Ÿš¤…„ęæ“š¤‚‘š¤…•š¤€¹š£æ°š£¾“š¤„æ凟š¤…–š¤…—š¤…€š¦‡ē‹ē¾ē‚§ē‚ēƒŒēƒ•ēƒ–ēƒŸä„„ć·Øē†“ē†–š¤‰·ē„«ē……åŖˆē…Šē…®å²œš¤„ē…é¢š¤‹ē„¬š¤‘šš¤Ø§š¤Ø¢ē†ŗšØÆØē‚½ēˆŽ"],
-["fe40","鑂ēˆ•å¤‘鑃ēˆ¤éš„˜…ēˆ®ē‰€š¤„“ę¢½ē‰•ē‰—ć¹•š£„ę ę¼½ēŠ‚ēŒŖēŒ«š¤ £šØ «ä£­šØ „ēŒØēŒ®ēēŽŖš °ŗš¦Ø®ē‰ē‘‰š¤‡¢š”›§š¤Ø¤ę˜£ć›…š¤¦·š¤¦š¤§»ē·ē•ę¤ƒš¤Ø¦ē¹š —ƒć»—ē‘œš¢¢­ē‘ šØŗ²ē‘‡ē¤ē‘¶čŽ¹ē‘¬ćœ°ē‘“鏱ęجē’‚ä„“š¤ŖŒ"],
-["fea1","š¤…Ÿš¤©¹šØ®å­†šØ°ƒš”¢žē“ˆš”¦ˆē”Žē“©ē”žšØ»™š”©‹åƗšØŗ¬éŽ…ē•ē•Šē•§ē•®š¤¾‚ć¼„š¤““ē–Žē‘ē–žē–“ē˜‚ē˜¬ē™‘ē™ē™Æē™¶š¦µēšč‡ÆćŸøš¦¤‘š¦¤Žēš”ēš„ēš·ē›Œš¦¾Ÿč‘¢š„‚š„…½š”øœēœžēœ¦ē€ę’Æš„ˆ ē˜š£Š¬ēžÆšØ„¤šØ„Øš”›ēŸ“ē ‰š”¶š¤Ø’ę£Šē¢Æē£‡ē£“éš„ē¤®š„— ē£—ē¤“ē¢±š§˜Œč¾øč¢„šØ¬«š¦‚ƒš¢˜œē¦†č¤€ę¤‚ē¦€š„”—ē¦š§¬¹ē¤¼ē¦©ęøŖš§„¦ćŗØē§†š©„ē§”"]
-]
diff --git a/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 b/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
deleted file mode 100644
index 49ddb9a1d6..0000000000
--- a/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
+++ /dev/null
@@ -1,264 +0,0 @@
-[
-["0","\u0000",127,"ā‚¬"],
-["8140","äø‚äø„äø…äø†äøäø’äø—äøŸäø äø”äø£äø¦äø©äø®äøÆäø±äø³äøµäø·äø¼ä¹€ä¹ä¹‚乄乆乊乑乕乗乚乛乢乣乤乄乧ä¹Øä¹Ŗ",5,"乲乓",9,"ä¹æ",6,"äŗ‡äŗŠ"],
-["8180","äŗäŗ–äŗ—äŗ™äŗœäŗäŗžäŗ£äŗŖäŗÆäŗ°äŗ±äŗ“äŗ¶äŗ·äŗøäŗ¹äŗ¼äŗ½äŗ¾ä»ˆä»Œä»ä»ä»’仚仛仜仠仢仦仧仩仭仮ä»Æ仱仓ä»ø仹ä»ŗ仼仾伀伂",6,"伋伌伒",4,"伜伝伔伣ä¼Ø伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佔佢佦ä½Øä½Ŗ佫佭佮佱佲併佷ä½øä½¹ä½ŗ佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟侔侢"],
-["8240","侤侫侭侰",4,"侶",8,"äæ€äæäæ‚äæ†äæ‡äæˆäæ‰äæ‹äæŒäæäæ’",4,"äæ™äæ›äæ äæ¢äæ¤äæ„äæ§äæ«äæ¬äæ°äæ²äæ“äæµäæ¶äæ·äæ¹äæ»äæ¼äæ½äææ",11],
-["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫å€Æ",10,"倻倽å€æ偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"åø偹åŗ偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦å‚Ŗ傫傭",4,"傳",6,"傼"],
-["8340","傽",17,"僐",5,"僗僘僙僛",10,"åƒØ僩åƒŖ僫åƒÆ僰僱僲僓僶",4,"僼",9,"儈"],
-["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩å…Ŗå…Æ兲å…ŗ兾å…æ冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冔冣冦",4,"冭冮冓å†ø冹å†ŗ冾å†æ凁凂凃凅凈凊凍凎凐凒",5],
-["8440","凘凙凚凜凞凟凢凣凄",5,"凬凮凱凲凓凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刔刢刣刄刦刧åˆŖ刬åˆÆ刱刲刓刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],
-["8480","剙剚剛剝剟剠剢剣剤剦å‰Ø剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劄劦劧劮åŠÆ劰劓",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勔勢勣勄",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],
-["8540","匑匒匓匔匘匛匜匞匟匢匤匄匧åŒØ匩匫匬匭åŒÆ",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卄åØåŖ卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],
-["8580","厐",4,"厖厗厙厛厜厞厠厔厤厧åŽŖ厫厬厭åŽÆ",6,"厷åŽø厹åŽŗ厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叔叢叧叓åŗ叾åæ吀吂吅吇吋吔吘吙吚吜吢吤各åŖ吰吳吶吷åŗ吽åæ呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呄呧呩",7,"呓呹å‘ŗ呾å‘æ咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咔"],
-["8640","咢咄咮咰咲咵咶咷咹å’ŗ咼咾哃哅哊哋哖哘哛哠",4,"哫哬å“Æ哰哱哓",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唔唄唦"],
-["8680","å”Ø唩唫唭唲唓唵唶å”ø唹å”ŗ唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣å•Ø啩啫å•Æ",5,"啹å•ŗ啽å•æ喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"å–Ø",8,"喲喓営å–øå–ŗ喼å–æ",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗓嗶å—ø",4,"å—æ嘂嘃嘄嘅"],
-["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘔嘢嘄嘦å˜Ø嘩å˜Ŗ嘫嘮å˜Æ嘰嘳嘵嘷å˜øå˜ŗ嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],
-["8780","噣噄噦噧噭噮å™Æ噰噲噳噓噵噷å™ø噹å™ŗ噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"åšø嚹åšŗ嚻嚽",12,"囋",8,"囕囖囘囙囜団囄",5,"囬囮å›Æ囲図囶囷å›ø囻囼圀圁圂圅圇國",6],
-["8840","園",9,"圝圞圠圔圢圤圄圦圧圫圱圲圓",4,"圼圽åœæ坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坄坧坬坮坰坱坲坓坵åø坹åŗ坽坾åæ垀"],
-["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垄åžØåžŖ垬åžÆ垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埔埢埣埄",7,"埮埰埱埲埳埵埶執埻埼埾åŸæ堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堄",4,"å «",4,"報堲堳堓堶",7],
-["8940","å ¾",5,"å”…",6,"唎唏唐唒唓唕唖唗唙",4,"唟",5,"唦",4,"å”­",16,"å”æ墂墄墆墇墈墊墋墌"],
-["8980","墍",4,"墔",4,"墛墜墝墠",7,"å¢Ŗ",17,"墽墾å¢æ壀壂壃壄壆",10,"壒壓壔壖",13,"壄",5,"壭å£Æ壱売壓壵壷å£øå£ŗ",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夔夢夣夦å¤Ø夬夰夲夳夵夶夻"],
-["8a40","夽夾å¤æ儀儃儅儆儊儌儍儐儒儓儙儛",4,"儔儣儤儦",12,"儵儷å„ŗ儻儼儾å„æ妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妔妢妦"],
-["8a80","妧妬妭妰妱妳",5,"å¦ŗ妼妽å¦æ",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩å§Ŗ姫姭",11,"å§ŗ姼姽姾å؀å؂å؊å؋å؍å؎å؏åؐåؒåؔåؕåؖåؗåؙåؚå؛å؝å؞åØ”åØ¢åؤåئåاåØØåØŖ",6,"åسåصåØ·",4,"åؽåؾåØæ婁",4,"婇婈婋",9,"婖婗婘婙婛",5],
-["8b40","婔婣婤婄婦å©Øå©©å©«",8,"å©ø婹婻婼婽婾åŖ€",17,"åŖ“",6,"åŖœ",13,"åŖ«åŖ¬"],
-["8b80","åŖ­",4,"åŖ“åŖ¶åŖ·åŖ¹",4,"åŖæ嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫄嫧å«Øå«Ŗ嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶å¬ø",7,"孁",6],
-["8c40","孈",7,"孒孖孞孠孔孧å­Øå­«å­­å­®å­Æ孲孓孶孷å­ø孹孻孼孾å­æ宂宆宊宍宎宐宑宒宔宖実宧å®Ø宩宬宭宮å®Æ宱宲宷å®ŗ宻宼åƀåƁåƃåƈåƉåƊåƋåƍåƎåƏ"],
-["8c80","åƑåƔ",8,"åÆ åÆ¢åÆ£åƦåƧåÆ©",4,"åÆÆåƱ",6,"åƽåƾ尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尔尣尦å°Øå°©å°Ŗå°«å°­å°®å°Æ尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"å±°å±²",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],
-["8d40","å²Ŗå²®å²Æ岰岲岓岶岹å²ŗ岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮å³Æå³±",9,"å³¼",4],
-["8d80","品哄哅哈",5,"哏",4,"哕哗哘哙哚哜哝哟",4,"å“„å“Øå“Ŗ哫哬å“Æ",4,"哵",7,"å“æ",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"åµŖ嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],
-["8e40","嶔",21,"å¶ø",12,"巆",6,"巎",12,"巜巟巠巣巤å·Ŗ巬巭"],
-["8e80","巰巵巶å·ø",4,"å·æåø€åø„åø‡åø‰åøŠåø‹åøåøŽåø’åø“åø—åøž",7,"åøØ",4,"åøÆåø°åø²",4,"åø¹åøŗåø¾åøæ幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾åŗåŗ‚åŗƒåŗ…åŗˆåŗ‰åŗŒåŗåŗŽåŗ’åŗ˜åŗ›åŗåŗ”åŗ¢åŗ£åŗ¤åŗØ",4,"åŗ®",4,"åŗ“åŗŗåŗ»åŗ¼åŗ½åŗæ",6],
-["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵å»ø廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弔弢弣弤"],
-["8f80","å¼Ø弫弬弮弰弲",6,"弻弽弾å¼æ彁",14,"彑彔彙彚彛彜彞彟彠彣彄彧å½Ø彫彮å½Æ彲当彵彶å½øå½ŗ彽彾å½æ徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬å¾Æ",5,"徶å¾øå¾¹å¾ŗ徻徾",4,"åæ‡åæˆåæŠåæ‹åæŽåæ“åæ”åæ•åæšåæ›åæœåæžåæŸåæ¢åæ£åæ„åæ¦åæØåæ©åæ¬åæÆåæ°åæ²åæ³åæ“åæ¶åæ·åæ¹åæŗåæ¼ę€‡"],
-["9040","ę€ˆę€‰ę€‹ę€Œę€ę€‘ę€“ę€—ę€˜ę€šę€žę€Ÿę€¢ę€£ę€¤ę€¬ę€­ę€®ę€°",4,"ꀶ",4,"ę€½ę€¾ę€ę„",6,"ęŒęŽęę‘ę“ę”ę–ę—ę˜ę›ęœęžęŸę ę”ę„ę¦ę®ę±ę²ę“ęµę·ę¾ę‚€"],
-["9080","ę‚ę‚‚ę‚…ę‚†ę‚‡ę‚ˆę‚Šę‚‹ę‚Žę‚ę‚ę‚‘ę‚“ę‚•ę‚—ę‚˜ę‚™ę‚œę‚žę‚”ę‚¢ę‚¤ę‚„ę‚§ę‚©ę‚Ŗę‚®ę‚°ę‚³ę‚µę‚¶ę‚·ę‚¹ę‚ŗę‚½",7,"ꃇꃈꃉꃌ",4,"ęƒ’ęƒ“ęƒ”ęƒ–ęƒ—ęƒ™ęƒ›ęƒžęƒ”",4,"ęƒŖęƒ±ęƒ²ęƒµęƒ·ęƒøꃻ",4,"ꄂꄃꄄꄅꄇꄊꄋꄌꄐ",4,"ę„–ę„—ę„˜ę„™ę„›ę„œę„ę„žę„”ę„¢ę„„ę„Øę„©ę„Ŗꄬ",18,"ꅀ",6],
-["9140","ꅇꅉꅋꅍꅏꅐꅒꅓꅔꅖ",6,"ę…žę…Ÿę… ę…”ę…£ę…¤ę…„ę…¦ę…©",6,"ę…±ę…²ę…³ę…“ę…¶ę…ø",18,"ꆌꆍꆏ",4,"ꆕ"],
-["9180","ꆖ",6,"ꆞ",8,"ę†Ŗꆫꆭ",9,"ę†ø",5,"ę†æꇀꇁꇃ",4,"ꇉꇌ",4,"ꇓꇕ",16,"ꇧ",13,"ꇶ",8,"ꈀ",5,"ęˆ‡ęˆ‰ęˆ“ęˆ”ęˆ™ęˆœęˆęˆžęˆ ęˆ£ęˆ¦ęˆ§ęˆØꈩꈫꈭęˆÆęˆ°ęˆ±ęˆ²ęˆµęˆ¶ęˆø",4,"ꉂꉄꉅꉆꉊ"],
-["9240","ꉏꉐꉕꉖꉗꉙꉚꉜ",6,"ꉤꉄę‰Øę‰±ę‰²ę‰“ę‰µę‰·ę‰øę‰ŗę‰»ę‰½ęŠęŠ‚ęŠƒęŠ…ęŠ†ęŠ‡ęŠˆęŠ‹",5,"ęŠ”ęŠ™ęŠœęŠęŠžęŠ£ęŠ¦ęŠ§ęŠ©ęŠŖꊭꊮęŠÆęŠ°ęŠ²ęŠ³ęŠ“ęŠ¶ęŠ·ęŠøęŠŗęŠ¾ę‹€ę‹"],
-["9280","ę‹ƒę‹‹ę‹ę‹‘ę‹•ę‹ę‹žę‹ ę‹”ę‹¤ę‹Ŗę‹«ę‹°ę‹²ę‹µę‹øę‹¹ę‹ŗę‹»ęŒ€ęŒƒęŒ„ęŒ…ęŒ†ęŒŠęŒ‹ęŒŒęŒęŒęŒęŒ’ęŒ“ęŒ”ęŒ•ęŒ—ęŒ˜ęŒ™ęŒœęŒ¦ęŒ§ęŒ©ęŒ¬ęŒ­ęŒ®ęŒ°ęŒ±ęŒ³",5,"ęŒ»ęŒ¼ęŒ¾ęŒæꍀꍁꍄꍇꍈꍊꍑꍒꍓꍔꍖ",7,"ę ę¤ę„ę¦ęØęŖę«ę¬ęÆę°ę²ę³ę“ęµęøę¹ę¼ę½ę¾ęæꎁꎃꎄꎅꎆꎋꎍꎑꎓꎔꎕꎗꎙ",6,"ꎔꎤꎦꎫęŽÆęŽ±ęŽ²ęŽµęŽ¶ęŽ¹ęŽ»ęŽ½ęŽæꏀ"],
-["9340","ꏁꏂꏃꏅꏇꏈꏊꏋꏌꏑꏓꏔꏕꏗ",6,"ęŸę¢ę¤",4,"ę«ę¬ę®ęÆę°ę±ę³ęµę·ę¹ęŗę»ę¼ę¾ęƒę„ę†",4,"ꐍꐎꐑꐒꐕ",5,"ęęŸę¢ę£ę¤"],
-["9380","ꐄꐧęØꐩꐫꐮ",5,"ꐵ",4,"ę»ę¼ę¾ę‘€ę‘‚ę‘ƒę‘‰ę‘‹",6,"ꑓꑕꑖꑗꑙ",4,"ꑟ",7,"ę‘Øę‘Ŗꑫꑬꑮ",9,"ę‘»",6,"ꒃꒆꒈ",8,"꒓꒔꒗꒘꒚꒛꒜꒝꒟",4,"ꒄ꒦꒧ę’Øę’Ŗę’«ę’Æę’±ę’²ę’³ę’“ę’¶ę’¹ę’»ę’½ę’¾ę’æ꓁꓃꓄꓆",6,"꓏ꓑꓓꓔꓕꓖꓙꓚ"],
-["9440","ę“›ę“œę“ę“Ÿę“ ę“”ę“£ę“„ę“§",24,"ꔁ",7,"ꔊ",7,"ꔓ",4,"ꔙ",8],
-["9480","ę”¢ę”£ę”¤ę”¦",4,"ę”¬ę”­ę”°ę”±ę”²ę”³ę”·ę”ŗę”¼ę”½ę•€",4,"ę•†ę•‡ę•Šę•‹ę•ę•Žę•ę•’ę•“ę•”ę•—ę•˜ę•šę•œę•Ÿę• ę•”ę•¤ę•„ę•§ę•Øę•©ę•Ŗę•­ę•®ę•Æę•±ę•³ę•µę•¶ę•ø",14,"ę–ˆę–‰ę–Šę–ę–Žę–ę–’ę–”ę–•ę––ę–˜ę–šę–ę–žę– ę–¢ę–£ę–¦ę–Øę–Ŗꖬꖮꖱ",7,"ę–ŗę–»ę–¾ę–æꗀꗂꗇꗈꗉꗊꗍꗐꗑꗓꗔꗕꗘ",7,"ę—”ę—£ę—¤ę—Ŗę—«"],
-["9540","ę—²ę—³ę—“ę—µę—øę—¹ę—»",4,"ę˜ę˜„ę˜…ę˜‡ę˜ˆę˜‰ę˜‹ę˜ę˜ę˜‘ę˜’ę˜–ę˜—ę˜˜ę˜šę˜›ę˜œę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜²ę˜³ę˜·",4,"ę˜½ę˜æꙀꙂꙄ",6,"ꙍꙎꙐꙑꙘ"],
-["9580","ę™™ę™›ę™œę™ę™žę™ ę™¢ę™£ę™„ę™§ę™©",4,"ę™±ę™²ę™³ę™µę™øę™¹ę™»ę™¼ę™½ę™æꚀꚁꚃꚅꚆꚈꚉꚊꚋꚍꚎꚏꚐꚒꚓꚔꚕꚘ",4,"ꚞ",8,"ęš©",4,"ęšÆ",4,"ꚵꚶꚷęšøęšŗęš»ęš¼ęš½ęšæ",25,"ꛚꛞ",7,"ꛧę›Øę›Ŗ",5,"꛱꛵꛶ę›øę›ŗę›»ę›½ęœęœ‚ęœƒ"],
-["9640","꜄꜅꜆꜇꜌꜎꜏꜑꜒꜓꜖ꜘꜙꜚꜜꜞ꜠",5,"ęœ§ęœ©ęœ®ęœ°ęœ²ęœ³ęœ¶ęœ·ęœøęœ¹ęœ»ęœ¼ęœ¾ęœæꝁꝄꝅꝇꝊꝋꝍꝒꝔꝕꝗ",4,"ęę¢ę£ę¤ę¦ę§ę«ę¬ę®ę±ę“ę¶"],
-["9680","ęøę¹ęŗę»ę½ęž€ęž‚ęžƒęž…ęž†ęžˆęžŠęžŒęžęžŽęžęž‘ęž’ęž“ęž”ęž–ęž™ęž›ęžŸęž ęž”ęž¤ęž¦ęž©ęž¬ęž®ęž±ęž²ęž“ęž¹",7,"ꟂꟅ",9,"ęŸ•ęŸ–ęŸ—ęŸ›ęŸŸęŸ”ęŸ£ęŸ¤ęŸ¦ęŸ§ęŸØęŸŖęŸ«ęŸ­ęŸ®ęŸ²ęŸµ",7,"ęŸ¾ę ę ‚ę ƒę „ę †ę ę ę ’ę ”ę •ę ˜",4,"ę žę Ÿę  ę ¢",6,"ę «",6,"ꠓ꠵꠶ę ŗę »ę æę”‡ę”‹ę”ę”ę”’ę”–",5],
-["9740","ę”œę”ę”žę”Ÿę”Ŗꔬ",7,"ꔵę”ø",8,"ę¢‚ę¢„ę¢‡",7,"ę¢ę¢‘ę¢’ę¢”ę¢•ę¢–ę¢˜",9,"ę¢£ę¢¤ę¢„ę¢©ę¢Ŗę¢«ę¢¬ę¢®ę¢±ę¢²ę¢“ę¢¶ę¢·ę¢ø"],
-["9780","ę¢¹",6,"ę£ę£ƒ",5,"ę£Šę£Œę£Žę£ę£ę£‘ę£“ę£”ę£–ę£—ę£™ę£›",4,"ę£”ę£¢ę£¤",9,"ę£Æę£²ę£³ę£“ę£¶ę£·ę£øę£»ę£½ę£¾ę£æ꤀꤂꤃꤄꤆",4,"ꤌꤏꤑꤓ",11,"ę¤”ę¤¢ę¤£ę¤„",7,"꤮ę¤Æę¤±ę¤²ę¤³ę¤µę¤¶ę¤·ę¤øę¤ŗę¤»ę¤¼ę¤¾ę„€ę„ę„ƒ",16,"ę„•ę„–ę„˜ę„™ę„›ę„œę„Ÿ"],
-["9840","ę„”ę„¢ę„¤ę„„ę„§ę„Øę„©ę„Ŗꄬꄭę„Æę„°ę„²",4,"ę„ŗę„»ę„½ę„¾ę„æę¦ę¦ƒę¦…ę¦Šę¦‹ę¦Œę¦Ž",5,"ę¦–ę¦—ę¦™ę¦šę¦",9,"ꦩę¦Ŗꦬꦮę¦Æę¦°ę¦²ę¦³ę¦µę¦¶ę¦øę¦¹ę¦ŗę¦¼ę¦½"],
-["9880","ę¦¾ę¦æ꧀꧂",7,"꧋꧍ꧏ꧑꧒꧓꧕",5,"ę§œę§ę§žę§”",11,"ꧮę§Æę§°ę§±ę§³",9,"ę§¾ę؀",9,"ę؋",11,"ęؙ",5,"ęØ ęØ¢",5,"ęØ©ęØ«ęجęØ­ęØ®ęØ°ęزęسęØ“ęض",6,"ęØæ",4,"ę©…ę©†ę©ˆ",7,"ę©‘",6,"ę©š"],
-["9940","ę©œ",4,"ę©¢ę©£ę©¤ę©¦",10,"ę©²",6,"ę©ŗę©»ę©½ę©¾ę©æęŖęŖ‚ęŖƒęŖ…",8,"ęŖęŖ’",4,"ęŖ˜",7,"ęŖ”",5],
-["9980","ęŖ§ęŖØęŖŖęŖ­",114,"ꬄꬦę¬Ø",6],
-["9a40","ę¬Æę¬°ę¬±ę¬³ę¬“ę¬µę¬¶ę¬øę¬»ę¬¼ę¬½ę¬æꭀꭁꭂꭄꭅꭈꭊꭋꭍ",11,"ꭚ",7,"ę­Øę­©ę­«",13,"ę­ŗę­½ę­¾ę­æę®€ę®…ę®ˆ"],
-["9a80","ę®Œę®Žę®ę®ę®‘ę®”ę®•ę®—ę®˜ę®™ę®œ",4,"ę®¢",7,"ꮫ",7,"ꮶę®ø",6,"ęƀęƃęƄęƆ",4,"ęƌęƎęƐęƑęƘęƚęƜ",4,"ęÆ¢",7,"ęƬęÆ­ęÆ®ęÆ°ęƱęƲęÆ“ęƶęÆ·ęÆøęÆŗęÆ»ęƼęƾ",6,"갈",4,"ę°Žę°’ę°—ę°œę°ę°žę° ę°£ę°„ę°«ę°¬ę°­ę°±ę°³ę°¶ę°·ę°¹ę°ŗę°»ę°¼ę°¾ę°æę±ƒę±„ę±…ę±ˆę±‹",4,"ę±‘ę±’ę±“ę±–ę±˜"],
-["9b40","ę±™ę±šę±¢ę±£ę±„ę±¦ę±§ę±«",4,"ę±±ę±³ę±µę±·ę±øę±ŗę±»ę±¼ę±æę²€ę²„ę²‡ę²Šę²‹ę²ę²Žę²‘ę²’ę²•ę²–ę²—ę²˜ę²šę²œę²ę²žę² ę²¢ę²Øę²¬ę²Æę²°ę²“ę²µę²¶ę²·ę²ŗę³€ę³ę³‚ę³ƒę³†ę³‡ę³ˆę³‹ę³ę³Žę³ę³‘ę³’ę³˜"],
-["9b80","ę³™ę³šę³œę³ę³Ÿę³¤ę³¦ę³§ę³©ę³¬ę³­ę³²ę³“ę³¹ę³æę“€ę“‚ę“ƒę“…ę“†ę“ˆę“‰ę“Šę“ę“ę“ę“‘ę““ę“”ę“•ę“–ę“˜ę“œę“ę“Ÿ",5,"ꓦę“Øꓩꓬꓭę“Æꓰꓓꓶꓷę“øę“ŗę“æęµ€ęµ‚ęµ„ęµ‰ęµŒęµęµ•ęµ–ęµ—ęµ˜ęµ›ęµęµŸęµ”ęµ¢ęµ¤ęµ„ęµ§ęµØęµ«ęµ¬ęµ­ęµ°ęµ±ęµ²ęµ³ęµµęµ¶ęµ¹ęµŗęµ»ęµ½",4,"ę¶ƒę¶„ę¶†ę¶‡ę¶Šę¶‹ę¶ę¶ę¶ę¶’ę¶–",4,"ę¶œę¶¢ę¶„ę¶¬ę¶­ę¶°ę¶±ę¶³ę¶“ę¶¶ę¶·ę¶¹",5,"ę·ę·‚ę·ƒę·ˆę·‰ę·Š"],
-["9c40","ę·ę·Žę·ę·ę·’ę·“ę·”ę·•ę·—ę·šę·›ę·œę·Ÿę·¢ę·£ę·„ę·§ę·Øę·©ę·Ŗę·­ę·Æę·°ę·²ę·“ę·µę·¶ę·øę·ŗę·½",7,"ęø†ęø‡ęøˆęø‰ęø‹ęøęø’ęø“ęø•ęø˜ęø™ęø›ęøœęøžęøŸęø¢ęø¦ęø§ęøØęøŖęø¬ęø®ęø°ęø±ęø³ęøµ"],
-["9c80","ęø¶ęø·ęø¹ęø»",7,"ę¹…",7,"ę¹ę¹ę¹‘ę¹’ę¹•ę¹—ę¹™ę¹šę¹œę¹ę¹žę¹ ",10,"ę¹¬ę¹­ę¹Æ",14,"ęŗ€ęŗęŗ‚ęŗ„ęŗ‡ęŗˆęŗŠ",4,"ęŗ‘",6,"ęŗ™ęŗšęŗ›ęŗęŗžęŗ ęŗ”ęŗ£ęŗ¤ęŗ¦ęŗØęŗ©ęŗ«ęŗ¬ęŗ­ęŗ®ęŗ°ęŗ³ęŗµęŗøęŗ¹ęŗ¼ęŗ¾ęŗæę»€ę»ƒę»„ę»…ę»†ę»ˆę»‰ę»Šę»Œę»ę»Žę»ę»’ę»–ę»˜ę»™ę»›ę»œę»ę»£ę»§ę»Ŗ",5],
-["9d40","ę»°ę»±ę»²ę»³ę»µę»¶ę»·ę»øę»ŗ",7,"ę¼ƒę¼„ę¼…ę¼‡ę¼ˆę¼Š",4,"ę¼ę¼‘ę¼’ę¼–",9,"ę¼”ę¼¢ę¼£ę¼„ę¼¦ę¼§ę¼Øę¼¬ę¼®ę¼°ę¼²ę¼“ę¼µę¼·",6,"ę¼æę½€ę½ę½‚"],
-["9d80","ę½ƒę½„ę½…ę½ˆę½‰ę½Šę½Œę½Ž",9,"ę½™ę½šę½›ę½ę½Ÿę½ ę½”ę½£ę½¤ę½„ę½§",5,"ę½Æę½°ę½±ę½³ę½µę½¶ę½·ę½¹ę½»ę½½",6,"ę¾…ę¾†ę¾‡ę¾Šę¾‹ę¾",12,"ę¾ę¾žę¾Ÿę¾ ę¾¢",4,"ę¾Ø",10,"ę¾“ę¾µę¾·ę¾øę¾ŗ",5,"ęæęæƒ",5,"ęæŠ",6,"ęæ“",10,"ęæŸęæ¢ęæ£ęæ¤ęæ„"],
-["9e40","ęæ¦",7,"ęæ°",32,"ē€’",7,"ē€œ",6,"ē€¤",6],
-["9e80","ē€«",9,"ē€¶ē€·ē€øē€ŗ",17,"ēēŽē",13,"ēŸ",11,"ē®ē±ē²ē³ē“ē·ē¹ēŗē»ē½ē‚ē‚‚ē‚ƒē‚„ē‚†ē‚‡ē‚ˆē‚‹ē‚Œē‚ē‚ē‚ē‚‘ē‚“ē‚—ē‚˜ē‚šē‚›ē‚ž",12,"ē‚°ē‚²ē‚“ē‚µē‚¶ē‚ŗē‚¾ē‚æēƒ„ēƒ…ēƒ†ēƒ‡ēƒ‰ēƒ‹",12,"ēƒš"],
-["9f40","ēƒœēƒēƒžēƒ ēƒ”ēƒ¢ēƒ£ēƒ„ēƒŖēƒ®ēƒ°",6,"ēƒøēƒŗēƒ»ēƒ¼ēƒ¾",10,"ē„‹",4,"ē„‘ē„’ē„”ē„—ē„›",10,"ē„§",7,"ē„²ē„³ē„“"],
-["9f80","ē„µē„·",13,"ē…†ē…‡ē…ˆē…‰ē…‹ē…ē…",12,"ē…ē…Ÿ",4,"ē…„ē…©",4,"ē…Æē…°ē…±ē…“ē…µē…¶ē…·ē…¹ē…»ē…¼ē…¾",5,"ē†…",4,"ē†‹ē†Œē†ē†Žē†ē†‘ē†’ē†“ē†•ē†–ē†—ē†š",4,"ē†”",6,"ē†©ē†Ŗē†«ē†­",5,"ē†“ē†¶ē†·ē†øē†ŗ",8,"ē‡„",9,"ē‡",4],
-["a040","ē‡–",9,"ē‡”ē‡¢ē‡£ē‡¤ē‡¦ē‡Ø",5,"ē‡Æ",9,"ē‡ŗ",11,"ēˆ‡",19],
-["a080","ēˆ›ēˆœēˆž",9,"ēˆ©ēˆ«ēˆ­ēˆ®ēˆÆēˆ²ēˆ³ēˆ“ēˆŗēˆ¼ēˆ¾ē‰€",6,"ē‰‰ē‰Šē‰‹ē‰Žē‰ē‰ē‰‘ē‰“ē‰”ē‰•ē‰—ē‰˜ē‰šē‰œē‰žē‰ ē‰£ē‰¤ē‰„ē‰Øē‰Ŗē‰«ē‰¬ē‰­ē‰°ē‰±ē‰³ē‰“ē‰¶ē‰·ē‰øē‰»ē‰¼ē‰½ēŠ‚ēŠƒēŠ…",4,"ēŠŒēŠŽēŠēŠ‘ēŠ“",11,"ēŠ ",11,"ēŠ®ēŠ±ēŠ²ēŠ³ēŠµēŠŗ",6,"ē‹…ē‹†ē‹‡ē‹‰ē‹Šē‹‹ē‹Œē‹ē‹‘ē‹“ē‹”ē‹•ē‹–ē‹˜ē‹šē‹›"],
-["a1a1","怀态怂Ā·Ė‰Ė‡ĀØ怃怅ā€”ļ½žā€–ā€¦ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ",7,"怖怗怐怑Ā±Ć—Ć·āˆ¶āˆ§āˆØāˆ‘āˆāˆŖāˆ©āˆˆāˆ·āˆšāŠ„āˆ„āˆ āŒ’āŠ™āˆ«āˆ®ā‰”ā‰Œā‰ˆāˆ½āˆā‰ ā‰®ā‰Æā‰¤ā‰„āˆžāˆµāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļ¼„Ā¤ļæ ļæ”ā€°Ā§ā„–ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā€»ā†’ā†ā†‘ā†“怓"],
-["a2a1","ā…°",9],
-["a2b1","ā’ˆ",19,"ā‘“",19,"ā‘ ",9],
-["a2e5","戠",9],
-["a2f1","ā… ",11],
-["a3a1","ļ¼ļ¼‚ļ¼ƒļæ„ļ¼…",88,"ļæ£"],
-["a4a1","恁",82],
-["a5a1","ć‚”",85],
-["a6a1","Ī‘",16,"Ī£",6],
-["a6c1","Ī±",16,"Ļƒ",6],
-["a6e0","ļøµļø¶ļø¹ļøŗļøæļ¹€ļø½ļø¾ļ¹ļ¹‚ļ¹ƒļ¹„"],
-["a6ee","ļø»ļø¼ļø·ļøøļø±"],
-["a6f4","ļø³ļø“"],
-["a7a1","Š",5,"ŠŠ–",25],
-["a7d1","Š°",5,"ёŠ¶",25],
-["a840","ĖŠĖ‹Ė™ā€“ā€•ā€„ā€µā„…ā„‰ā†–ā†—ā†˜ā†™āˆ•āˆŸāˆ£ā‰’ā‰¦ā‰§āŠæā•",35,"ā–",6],
-["a880","ā–ˆ",7,"ā–“ā–”ā–•ā–¼ā–½ā—¢ā—£ā—¤ā—„ā˜‰āŠ•ć€’ć€ć€ž"],
-["a8a1","āƔĒŽĆ Ä“Ć©Ä›ĆØÄ«Ć­ĒĆ¬ÅĆ³Ē’Ć²Å«ĆŗĒ”Ć¹Ē–Ē˜ĒšĒœĆ¼ĆŖɑ"],
-["a8bd","ńň"],
-["a8c0","É”"],
-["a8c5","愅",36],
-["a940","怔",8,"ćŠ£ćŽŽćŽćŽœćŽćŽžćŽ”ć„ćŽć‘ć’ć•ļø°ļæ¢ļæ¤"],
-["a959","ā„”戱"],
-["a95c","ā€"],
-["a960","ćƒ¼ć‚›ć‚œćƒ½ćƒ¾ć€†ć‚ć‚žļ¹‰",9,"ļ¹”ļ¹•ļ¹–ļ¹—ļ¹™",8],
-["a980","ļ¹¢",4,"ļ¹Øļ¹©ļ¹Ŗļ¹«"],
-["a996","怇"],
-["a9a4","ā”€",75],
-["aa40","ē‹œē‹ē‹Ÿē‹¢",5,"ē‹Ŗē‹«ē‹µē‹¶ē‹¹ē‹½ē‹¾ē‹æēŒ€ēŒ‚ēŒ„",5,"ēŒ‹ēŒŒēŒēŒēŒēŒ‘ēŒ’ēŒ”ēŒ˜ēŒ™ēŒšēŒŸēŒ ēŒ£ēŒ¤ēŒ¦ēŒ§ēŒØēŒ­ēŒÆēŒ°ēŒ²ēŒ³ēŒµēŒ¶ēŒŗēŒ»ēŒ¼ēŒ½ē€",8],
-["aa80","ē‰ēŠē‹ēŒēŽēē‘ē“ē”ē•ē–ē˜",7,"ē”",10,"ē®ē°ē±"],
-["ab40","ē²",11,"ēæ",4,"ēŽ…ēŽ†ēŽˆēŽŠēŽŒēŽēŽēŽēŽ’ēŽ“ēŽ”ēŽ•ēŽ—ēŽ˜ēŽ™ēŽšēŽœēŽēŽžēŽ ēŽ”ēŽ£",5,"ēŽŖēŽ¬ēŽ­ēŽ±ēŽ“ēŽµēŽ¶ēŽøēŽ¹ēŽ¼ēŽ½ēŽ¾ēŽæēēƒ",4],
-["ab80","ē‹ēŒēŽē’",6,"ēšē›ēœēēŸē”ē¢ē£ē¤ē¦ēØēŖē«ē¬ē®ēÆē°ē±ē³",4],
-["ac40","ēø",10,"ē„ē‡ēˆē‹ēŒēēŽē‘",8,"ēœ",5,"ē£ē¤ē§ē©ē«ē­ēÆē±ē²ē·",4,"ē½ē¾ēæē‘€ē‘‚",11],
-["ac80","ē‘Ž",6,"ē‘–ē‘˜ē‘ē‘ ",12,"ē‘®ē‘Æē‘±",4,"ē‘øē‘¹ē‘ŗ"],
-["ad40","ē‘»ē‘¼ē‘½ē‘æē’‚ē’„ē’…ē’†ē’ˆē’‰ē’Šē’Œē’ē’ē’‘",10,"ē’ē’Ÿ",7,"ē’Ŗ",15,"ē’»",12],
-["ad80","ē“ˆ",9,"ē““",8,"ē“ē“Ÿē“”ē“„ē“§",6,"ē“°ē“±ē“²"],
-["ae40","ē“³ē“µē“ø",6,"ē”€ē”ē”‚ē”ƒē”…",7,"ē”Žē”ē”’ē””ē”•ē”–ē”—ē”›ē”ē”žē” ",4,"ē”¦ē”§ē”Ŗē”®ē”“ē”¶ē”¹ē”¼ē”½ē”æē•ē•‚ē•ƒē•„ē•†ē•‡ē•‰ē•Šē•ē•ē•‘ē•’ē•“ē••ē•–ē•—ē•˜"],
-["ae80","ē•",7,"ē•§ē•Øē•©ē•«",6,"ē•³ē•µē•¶ē•·ē•ŗ",4,"ē–€ē–ē–‚ē–„ē–…ē–‡"],
-["af40","ē–ˆē–‰ē–Šē–Œē–ē–Žē–ē–“ē–•ē–˜ē–›ē–œē–žē–¢ē–¦",4,"ē–­ē–¶ē–·ē–ŗē–»ē–æē—€ē—ē—†ē—‹ē—Œē—Žē—ē—ē—‘ē—“ē——ē—™ē—šē—œē—ē—Ÿē— ē—”ē—„ē—©ē—¬ē—­ē—®ē—Æē—²ē—³ē—µē—¶ē—·ē—øē—ŗē—»ē—½ē—¾ē˜‚ē˜„ē˜†ē˜‡"],
-["af80","ē˜ˆē˜‰ē˜‹ē˜ē˜Žē˜ē˜‘ē˜’ē˜“ē˜”ē˜–ē˜šē˜œē˜ē˜žē˜”ē˜£ē˜§ē˜Øē˜¬ē˜®ē˜Æē˜±ē˜²ē˜¶ē˜·ē˜¹ē˜ŗē˜»ē˜½ē™ē™‚ē™„"],
-["b040","ē™…",6,"ē™Ž",5,"ē™•ē™—",4,"ē™ē™Ÿē™ ē™”ē™¢ē™¤",6,"ē™¬ē™­ē™®ē™°",7,"ē™¹ē™ŗē™¼ē™æēš€ēšēšƒēš…ēš‰ēšŠēšŒēšēšēšēš’ēš”ēš•ēš—ēš˜ēššēš›"],
-["b080","ēšœ",7,"ēš„",8,"ēšÆēš°ēš³ēšµ",9,"ē›€ē›ē›ƒå•Šé˜æ埃ęŒØ哎唉哀ēš‘ē™Œč”¼ēŸ®č‰¾ē¢ēˆ±éš˜éžę°Ø安äæŗꌉꚗå²øčƒŗę”ˆč‚®ę˜‚ē›Žå‡¹ę•–ē†¬ēæ±č¢„å‚²å„„ę‡Šę¾³čŠ­ęŒę‰’å­å§ē¬†å…«ē–¤å·“ę‹”č·‹é¶ęŠŠč€™åéœøē½¢ēˆøē™½ęŸē™¾ę‘†ä½°č“„ꋜēØ—ę–‘ē­ę¬ę‰³čˆ¬é¢ęæē‰ˆę‰®ę‹Œä¼“ē“£åŠåŠžē»Šé‚¦åø®ę¢†ę¦œč†€ē»‘ę£’ē£…čšŒé•‘å‚č°¤č‹žčƒžåŒ…č¤’å‰„"],
-["b140","ē›„ē›‡ē›‰ē›‹ē›Œē›“ē›•ē›™ē›šē›œē›ē›žē› ",4,"ē›¦",7,"ē›°ē›³ē›µē›¶ē›·ē›ŗē›»ē›½ē›æēœ€ēœ‚ēœƒēœ…ēœ†ēœŠēœŒēœŽ",10,"ēœ›ēœœēœēœžēœ”ēœ£ēœ¤ēœ„ēœ§ēœŖēœ«"],
-["b180","ēœ¬ēœ®ēœ°",4,"ēœ¹ēœ»ēœ½ēœ¾ēœæē‚ē„ē…ē†ēˆ",7,"ē’",7,"ēœč–„雹äæå ”é„±å®ęŠ±ęŠ„ęš“č±¹é²ēˆ†ęÆē¢‘ę‚²å‘åŒ—č¾ˆčƒŒč“é’”倍ē‹ˆå¤‡ęƒ«ē„™č¢«å„”č‹Æęœ¬ē¬Øå“©ē»·ē”­ę³µč¹¦čæø逼鼻ęƔ鄙ē¬”å½¼ē¢§č“–č”½ęƕęƙęƖåøåŗ‡ē—¹é—­ę•å¼Šåæ…č¾Ÿå£č‡‚éæé™›éž­č¾¹ē¼–蓬ꉁä¾æ变卞č¾Øč¾©č¾«éę ‡å½Ŗ膘č”Øé³–ę†‹åˆ«ē˜Ŗå½¬ę–Œęæ’ę»Øå®¾ę‘ˆå…µå†°ęŸ„äø™ē§‰é„¼ē‚³"],
-["b240","ēēžēŸē ē¤ē§ē©ēŖē­",11,"ēŗē»ē¼ēžēž‚ēžƒēž†",5,"ēžēžēž“",11,"ēž”ēž£ēž¤ēž¦ēžØēž«ēž­ēž®ēžÆēž±ēž²ēž“ēž¶",4],
-["b280","ēž¼ēž¾ēŸ€",12,"ēŸŽ",8,"ēŸ˜ēŸ™ēŸšēŸ",4,"ēŸ¤ē—…并ēŽ»č ę’­ę‹Øé’µę³¢åšå‹ƒęé“‚ē®”ä¼Æåø›čˆ¶č„–膊ęø¤ę³Šé©³ę•åœå“ŗč”„åŸ äøåøƒę­„ē°æéƒØꀖꓦēŒœč£ęę‰č“¢ē¬čø©é‡‡å½©čœč””é¤å‚čš•ę®‹ęƒ­ęƒØēæč‹čˆ±ä»“ę²§č—ę“ē³™ę§½ę›¹č‰åŽ•ē­–ä¾§å†Œęµ‹å±‚č¹­ę’å‰čŒ¬čŒ¶ęŸ„ē¢“ę½åƟ岔差čÆ§ę‹†ęŸ“č±ŗꐀęŽŗč‰é¦‹č°—ē¼ é“²äŗ§é˜é¢¤ę˜ŒēŒ–"],
-["b340","ēŸ¦ēŸØēŸŖēŸÆēŸ°ēŸ±ēŸ²ēŸ“ēŸµēŸ·ēŸ¹ēŸŗēŸ»ēŸ¼ē ƒ",5,"ē Šē ‹ē Žē ē ē “ē •ē ™ē ›ē žē  ē ”ē ¢ē ¤ē Øē Ŗē «ē ®ē Æē ±ē ²ē ³ē µē ¶ē ½ē æē”ē”‚ē”ƒē”„ē”†ē”ˆē”‰ē”Šē”‹ē”ē”ē”‘ē”“ē””ē”˜ē”™ē”š"],
-["b380","ē”›ē”œē”ž",11,"ē”Æ",7,"ē”øē”¹ē”ŗē”»ē”½",6,"åœŗ尝åøøé•æåæč‚ åŽ‚ę•žē•…å”±å€”č¶…ęŠ„é’žęœå˜²ę½®å·¢åµē‚’č½¦ę‰Æę’¤ęŽ£å½»ę¾ˆéƒ“č‡£č¾°å°˜ę™Øåæ±ę²‰é™ˆč¶č”¬ę’‘ē§°åŸŽę©™ęˆå‘ˆä¹˜ēØ‹ęƒ©ę¾„čƚę‰æ逞éŖ‹ē§¤åƒē—“ęŒåŒ™ę± čæŸå¼›é©°č€»é½æ侈å°ŗ赤ēæ…ę–„ē‚½å……å†²č™«å“‡å® ęŠ½é…¬ē•“čøŒēØ ę„ē­¹ä»‡ē»øēž…äø‘č‡­åˆå‡ŗꩱåŽØčŗ‡é”„é›ę»é™¤ę„š"],
-["b440","ē¢„ē¢…ē¢†ē¢ˆē¢Šē¢‹ē¢ē¢ē¢’ē¢”ē¢•ē¢–ē¢™ē¢ē¢žē¢ ē¢¢ē¢¤ē¢¦ē¢Ø",7,"ē¢µē¢¶ē¢·ē¢øē¢ŗē¢»ē¢¼ē¢½ē¢æē£€ē£‚ē£ƒē£„ē£†ē£‡ē£ˆē£Œē£ē£Žē£ē£‘ē£’ē£“ē£–ē£—ē£˜ē£š",9],
-["b480","ē£¤ē£„ē£¦ē£§ē£©ē£Ŗē£«ē£­",4,"ē£³ē£µē£¶ē£øē£¹ē£»",5,"ē¤‚ē¤ƒē¤„ē¤†",6,"ē”€å‚ØēŸ—ęč§¦å¤„ę£å·ē©æę¤½ä¼ čˆ¹å–˜äø²ē–®ēŖ—å¹¢åŗŠé—Æ创吹ē‚Šę¶é”¤åž‚ę˜„ę¤æé†‡å”‡ę·³ēŗÆč ¢ęˆ³ē»°ē–µčŒØē£é›Œč¾žę…ˆē“·čÆę­¤åˆŗ赐ꬔčŖč‘±å›±åŒ†ä»Žäø›å‡‘ē²—醋ē°‡äæƒč¹æēÆ”ēŖœę‘§å“”å‚¬č„†ē˜ē²¹ę·¬ēæ ę‘å­˜åÆøē£‹ę’®ę“ęŽŖęŒ«é”™ę­č¾¾ē­”ē˜©ę‰“å¤§å‘†ę­¹å‚£ęˆ“åø¦ę®†ä»£č“·č¢‹å¾…逮"],
-["b540","ē¤",5,"ē¤”",9,"ē¤Ÿ",4,"ē¤„",14,"ē¤µ",4,"ē¤½ē¤æē„‚ē„ƒē„„ē„…ē„‡ē„Š",8,"ē„”ē„•ē„˜ē„™ē„”ē„£"],
-["b580","ē„¤ē„¦ē„©ē„Ŗē„«ē„¬ē„®ē„°",6,"ē„¹ē„»",4,"ē¦‚ē¦ƒē¦†ē¦‡ē¦ˆē¦‰ē¦‹ē¦Œē¦ē¦Žē¦ē¦‘ē¦’ę€ č€½ę‹…äø¹å•éƒøęŽøčƒ†ę—¦ę°®ä½†ęƒ®ę·”čÆžå¼¹č›‹å½“ęŒ”å…šč”ę”£åˆ€ę£č¹ˆå€’å²›ē„·åƼ到ēØ»ę‚¼é“ē›—å¾·å¾—ēš„č¹¬ēÆē™»ē­‰ēžŖå‡³é‚“å ¤ä½Žę»“čæŖꕌē¬›ē‹„궤ēæŸå«”ꊵåŗ•åœ°č’‚ē¬¬åøå¼Ÿé€’ē¼”é¢ ęŽ‚ę»‡ē¢˜ē‚¹å…ø靛垫ē”µä½ƒē”øåŗ—ęƒ¦å„ ę·€ę®æē¢‰å¼é›•å‡‹åˆęŽ‰åŠé’“č°ƒč·Œēˆ¹ē¢Ÿč¶čæ­č°å "],
-["b640","ē¦“",6,"ē¦›",11,"ē¦Ø",10,"ē¦“",4,"ē¦¼ē¦æē§‚ē§„ē§…ē§‡ē§ˆē§Šē§Œē§Žē§ē§ē§“ē§”ē§–ē§—ē§™",5,"ē§ ē§”ē§¢ē§„ē§Øē§Ŗ"],
-["b680","ē§¬ē§®ē§±",6,"ē§¹ē§ŗē§¼ē§¾ē§æē؁ē؄ē؅ē؇ē؈ē؉ē؊ē،ē؏",4,"ēؕēؖēؘēؙē؛ē؜äøē›Æå®é’‰é”¶é¼Žé”­å®šč®¢äø¢äøœå†¬č‘£ę‡‚åŠØę ‹ä¾—ę«å†»ę“žå…œęŠ–ę–—é™”č±†é€—ē—˜éƒ½ē£ęƒēŠŠē‹¬čƻ堵ē¹čµŒęœé•€č‚šåŗ¦ęø”妒ē«ÆēŸ­é”»ę®µę–­ē¼Žå †å…‘队åƹ墩åØč¹²ę•¦é”æ囤钝ē›¾éęŽ‡å“†å¤šå¤ŗ垛čŗ²ęœµč·ŗčˆµå‰ęƒ°å •č›¾å³Ø鹅äæ„é¢č®¹åØ„ę¶åŽ„ę‰¼éé„‚é„æę©č€Œå„æč€³å°”é„µę“±äŗŒ"],
-["b740","ē؝ē؟ēØ”ēØ¢ēؤ",14,"ēØ“ēصēضēØøēØŗēؾē©€",5,"ē©‡",9,"ē©’",4,"ē©˜",16],
-["b780","ē©©",6,"ē©±ē©²ē©³ē©µē©»ē©¼ē©½ē©¾ēŖ‚ēŖ…ēŖ‡ēŖ‰ēŖŠēŖ‹ēŖŒēŖŽēŖēŖēŖ“ēŖ”ēŖ™ēŖšēŖ›ēŖžēŖ”ēŖ¢č“°å‘ē½šē­ä¼ä¹é˜€ę³•ēč—©åø†ē•Ŗēæ»ę؊ēŸ¾é’’ē¹å‡”ēƒ¦åčæ”čŒƒč“©ēŠÆé„­ę³›åŠčŠ³ę–¹č‚Ŗęˆæ防å¦Øä»æč®æēŗŗę”¾č²éžå•”é£žč‚„åŒŖčƽ吠č‚ŗåŗŸę²øč“¹čŠ¬é…šå©ę°›åˆ†ēŗ·åŸē„šę±¾ē²‰å„‹ä»½åææꄤē²Ŗäø°å°ęž«čœ‚峰锋风ē–Æēƒ½é€¢å†Æē¼č®½å„‰å‡¤ä½›å¦å¤«ę•·č‚¤å­µę‰¶ę‹‚č¾å¹…ę°Ÿē¬¦ä¼äæ˜ęœ"],
-["b840","ēŖ£ēŖ¤ēŖ§ēŖ©ēŖŖēŖ«ēŖ®",4,"ēŖ“",10,"ē«€",10,"ē«Œ",9,"ē«—ē«˜ē«šē«›ē«œē«ē«”ē«¢ē«¤ē«§",5,"ē«®ē«°ē«±ē«²ē«³"],
-["b880","ē«“",4,"ē«»ē«¼ē«¾ē¬€ē¬ē¬‚ē¬…ē¬‡ē¬‰ē¬Œē¬ē¬Žē¬ē¬’ē¬“ē¬–ē¬—ē¬˜ē¬šē¬œē¬ē¬Ÿē¬”ē¬¢ē¬£ē¬§ē¬©ē¬­ęµ®ę¶Ŗē¦č¢±å¼—ē”«ęŠšč¾…äæÆ釜ꖧč„Æ腑åŗœč…čµ“å‰Æč¦†čµ‹å¤å‚…ä»˜é˜œēˆ¶č…¹č“ŸåÆŒč®£é™„å¦‡ē¼šå’å™¶å˜ŽčÆ„ę”¹ę¦‚é’™ē›–ęŗ‰å¹²ē”˜ę†ęŸ‘ē«æč‚čµ¶ę„Ÿē§†ę•¢čµ£å†ˆåˆšé’¢ē¼ø肛ēŗ²å²—ęøÆꝠēƙēš‹é«˜č†ē¾”ē³•ęžé•ēØæå‘Šå“„ę­Œęęˆˆéø½čƒ³ē–™å‰²é©č‘›ę ¼č›¤é˜éš”铬äøŖ各ē»™ę ¹č·Ÿč€•ę›“åŗšē¾¹"],
-["b940","ē¬Æē¬°ē¬²ē¬“ē¬µē¬¶ē¬·ē¬¹ē¬»ē¬½ē¬æ",5,"ē­†ē­ˆē­Šē­ē­Žē­“ē­•ē­—ē­™ē­œē­žē­Ÿē­”ē­£",10,"ē­Æē­°ē­³ē­“ē­¶ē­øē­ŗē­¼ē­½ē­æē®ē®‚ē®ƒē®„ē®†",6,"ē®Žē®"],
-["b980","ē®‘ē®’ē®“ē®–ē®˜ē®™ē®šē®›ē®žē®Ÿē® ē®£ē®¤ē®„ē®®ē®Æē®°ē®²ē®³ē®µē®¶ē®·ē®¹",7,"ēƂēƃēƄ埂č€æę¢—å·„ę”»åŠŸę­é¾šä¾›čŗ¬å…¬å®«å¼“å·©ę±žę‹±č“”å…±é’©å‹¾ę²Ÿč‹Ÿē‹—åž¢ęž„č“­å¤Ÿč¾œč‡å’•ē®ä¼°ę²½å­¤å§‘é¼“å¤č›ŠéŖØč°·č‚”ę•…é”¾å›ŗ雇刮ē“œå‰åÆ”ęŒ‚č¤‚ä¹–ę‹ę€Ŗę£ŗå…³å®˜å† č§‚ē®”馆ē½ęƒÆēŒč“Æ光å¹æ逛ē‘°č§„圭ē”…归龟é—ŗč½Ø鬼čÆ”ē™øę”‚ęŸœč·Ŗč“µåˆ½č¾Šę»šę£é”…éƒ­å›½ęžœč£¹čæ‡å“ˆ"],
-["ba40","ēƅēƈēƉēƊēƋēƍēƎēƏēƐēƒēƔ",4,"ēƛēƜēƞēƟēÆ ēÆ¢ēÆ£ēƤēƧēÆØēÆ©ēÆ«ēƬēÆ­ēÆÆēÆ°ēƲ",4,"ēÆøēƹēÆŗēÆ»ēƽēÆæ",7,"ē°ˆē°‰ē°Šē°ē°Žē°",5,"ē°—ē°˜ē°™"],
-["ba80","ē°š",4,"ē° ",5,"ē°Øē°©ē°«",12,"ē°¹",5,"ē±‚éŖøå­©ęµ·ę°¦äŗ„害éŖ‡é…£ę†Øé‚ÆéŸ©å«ę¶µåƒ函喊ē½•ēæ°ę’¼ęę—±ę†¾ę‚ē„Šę±—걉å¤ÆꝭčˆŖ壕嚎č±ŖęÆ«éƒå„½č€—å·ęµ©å‘µå–č·čę øē¦¾å’Œä½•åˆē›’č²‰é˜‚ę²³ę¶øčµ«č¤é¹¤č“ŗå˜æ黑ē—•å¾ˆē‹ ęØ哼äŗØęØŖč””ę’č½°å“„ēƒ˜č™¹éøæę“Ŗ宏弘ēŗ¢å–‰ä¾ÆēŒ“吼厚候后呼乎åæ½ē‘šå£¶č‘«čƒ”č“ē‹ē³Šę¹–"],
-["bb40","ē±ƒ",9,"ē±Ž",36,"ē±µ",5,"ē±¾",9],
-["bb80","ē²ˆē²Š",6,"ē²“ē²”ē²–ē²™ē²šē²›ē² ē²”ē²£ē²¦ē²§ē²Øē²©ē²«ē²¬ē²­ē²Æē²°ē²“",4,"ē²ŗē²»å¼§č™Žå”¬ęŠ¤äŗ’ę²Ŗęˆ·čŠ±å“—åŽēŒ¾ę»‘ē”»åˆ’化čÆę§å¾Šę€€ę·®åę¬¢ēŽÆꔓčæ˜ē¼“ę¢ę‚£å”¤ē—Ŗč±¢ē„•ę¶£å®¦å¹»č’ę…Œé»„ē£ŗ蝗ē°§ēš‡å‡°ęƒ¶ē…Œę™ƒå¹Œęč°Žē°ęŒ„č¾‰å¾½ę¢č›”å›žęÆę‚”ę…§å‰ęƒ ę™¦č“æē§½ä¼šēƒ©ę±‡č®³čƲē»˜č¤ę˜å©šé­‚ęµ‘ę··č±ę“»ä¼™ē«čŽ·ęˆ–ęƒ‘éœč“§ē„ø击圾åŸŗęœŗē•øēؽē§Æē®•"],
-["bc40","ē²æē³€ē³‚ē³ƒē³„ē³†ē³‰ē³‹ē³Ž",6,"ē³˜ē³šē³›ē³ē³žē³”",6,"ē³©",5,"ē³°",7,"ē³¹ē³ŗē³¼",13,"ē“‹",5],
-["bc80","ē“‘",14,"ē“”ē“£ē“¤ē“„ē“¦ē“Øē“©ē“Ŗē“¬ē“­ē“®ē“°",6,"č‚Œé„„čæ¹ęæ€č®„éø”姬ē»©ē¼‰å‰ęžę£˜č¾‘ē±é›†åŠę€„ē–¾ę±²å³å«‰ēŗ§ęŒ¤å‡ č„Šå·±č“ŸęŠ€å†€å­£ä¼Žē„­å‰‚ę‚ø굎åƄåÆ‚č®”č®°ę—¢åæŒé™…妓ē»§ēŗŖå˜‰ęž·å¤¹ä½³å®¶åŠ čšé¢Šč“¾ē”²é’¾å‡ēØ¼ä»·ęž¶é©¾å«ę­¼ē›‘坚尖ē¬ŗé—“ē…Žå…¼č‚©č‰°å„øē¼„čŒ§ę£€ęŸ¬ē¢±ē”·ę‹£ę”ē®€äæ­å‰Ŗå‡čę§›é‰“č·µč“±č§é”®ē®­ä»¶"],
-["bd40","ē“·",54,"ēµÆ",7],
-["bd80","ēµø",32,"å„čˆ°å‰‘é„Æęøęŗ…궧å»ŗåƒµå§œå°†ęµ†ę±Ÿē–†č’‹ę”Øå„–č®²åŒ é…±é™č•‰ę¤’ē¤ē„¦čƒ¶äŗ¤éƒŠęµ‡éŖ„åØ‡åš¼ę…é“°ēŸ«ä¾„脚ē‹”角é„ŗē¼“ē»žå‰æꕙ酵č½æč¾ƒå«ēŖ–ę­ęŽ„ēš†ē§øč”—é˜¶ęˆŖåŠ«čŠ‚ę””ę°ę·ē«ē«­ę“ē»“č§£å§ęˆ’č—‰čŠ„ē•Œå€Ÿä»‹ē–„čƫ届巾ē­‹ę–¤é‡‘ä»Šę“„č„Ÿē“§é”¦ä»…č°Øčæ›é³ę™‹ē¦čæ‘ēƒ¬ęµø"],
-["be40","ē¶™",12,"ē¶§",6,"ē¶Æ",42],
-["be80","ē·š",32,"å°½åŠ²č†å…¢čŒŽē›ę™¶é²øäŗ¬ęƒŠē²¾ē²³ē»äŗ•č­¦ę™Æé¢ˆé™å¢ƒę•¬é•œå¾„ē—‰é–ē«Ÿē«žå‡€ē‚ÆēŖ˜ęŖē©¶ēŗ ēŽ–韭久ēøä¹é…’åŽ©ę•‘ę—§č‡¼čˆ…å’Žå°±ē–šéž ę‹˜ē‹™ē–½å±…é©¹čŠå±€å’€ēŸ©äø¾ę²®čšę‹’ę®å·Øå…·č·čøžé”Æäæ±å„ꃧē‚¬å‰§ęé¹ƒå؟倦ēœ·å·ē»¢ę’…ę”«ęŠ‰ęŽ˜å€”ēˆµč§‰å†³čƀē»å‡čŒé’§å†›å›å³»"],
-["bf40","ē·»",62],
-["bf80","ēøŗēø¼",4,"ē¹‚",4,"ē¹ˆ",21,"äæŠē«£ęµšéƒ”éŖå–€å’–協å’Æå¼€ę©ę„·å‡Æę…Ø刊å Ŗ勘坎ē ēœ‹åŗ·ę…·ē³ ę‰›ęŠ—äŗ¢ē‚•č€ƒę‹·ēƒ¤é å·č‹›ęŸÆę£µē£•é¢—ē§‘壳咳åÆęø“克刻客čƾč‚Æå•ƒåž¦ę³å‘å­ē©ŗęå­”ęŽ§ęŠ å£ę‰£åƇęžÆ哭ēŖŸč‹¦é…·åŗ“č£¤å¤øåž®ęŒŽč·ØčƒÆ块ē­·ä¾©åæ«å®½ę¬¾åŒ”ē­ē‹‚ꔆēŸæēœ¶ę—·å†µäŗē›”å²æēŖ„č‘µå„Žé­å‚€"],
-["c040","ē¹ž",35,"ēŗƒ",23,"ēŗœēŗēŗž"],
-["c080","ēŗ®ēŗ“ēŗ»ēŗ¼ē»–ē»¤ē»¬ē»¹ē¼Šē¼ē¼žē¼·ē¼¹ē¼»",6,"ē½ƒē½†",9,"ē½’ē½“é¦ˆę„§ęŗƒå¤ę˜†ę†å›°ę‹¬ę‰©å»“é˜”åžƒę‹‰å–‡čœ”č…Šč¾£å•¦čŽ±ę„čµ–č“å©Ŗę ę‹¦ēÆ®é˜‘å…°ę¾œč°°ę½č§ˆę‡’ē¼†ēƒ‚껄ē…ꦔē‹¼å»ŠéƒŽęœ—ęµŖęžåŠ³ē‰¢č€ä½¬å§„é…Ŗēƒ™ę¶å‹’ä¹é›·é•­č•¾ē£Šē“Æå„”åž’ę“‚č‚‹ē±»ę³Ŗę£±ę„žå†·åŽ˜ę¢ØēŠé»ŽēƱē‹øē¦»ę¼“ē†ęŽé‡Œé²¤ē¤¼čŽ‰č”åę —äø½åŽ‰åŠ±ē ¾åŽ†åˆ©å‚ˆä¾‹äæ"],
-["c140","ē½–ē½™ē½›ē½œē½ē½žē½ ē½£",4,"ē½«ē½¬ē½­ē½Æē½°ē½³ē½µē½¶ē½·ē½øē½ŗē½»ē½¼ē½½ē½æē¾€ē¾‚",7,"ē¾‹ē¾ē¾",4,"ē¾•",4,"ē¾›ē¾œē¾ ē¾¢ē¾£ē¾„ē¾¦ē¾Ø",6,"ē¾±"],
-["c180","ē¾³",4,"ē¾ŗē¾»ē¾¾ēæ€ēæ‚ēæƒēæ„ēæ†ēæ‡ēæˆēæ‰ēæ‹ēæēæ",4,"ēæ–ēæ—ēæ™",5,"ēæ¢ēæ£ē—¢ē«‹ē²’ę²„隶力ē’ƒå“©äæ©č”čŽ²čæžé•°å»‰ę€œę¶Ÿåø˜ę•›č„øé“¾ę‹ē‚¼ē»ƒē²®å‡‰ę¢ē²±č‰Æäø¤č¾†é‡ę™¾äŗ®č°…ę’©čŠåƒšē–—ē‡ŽåÆ„č¾½ę½¦äŗ†ę’‚é•£å»–ę–™åˆ—č£‚ēƒˆåŠ£ēŒŽē³ęž—ē£·éœ–äø“é‚»é³žę·‹å‡›čµåę‹ŽēŽ²č±é›¶é¾„铃伶ē¾šå‡Œēµé™µå²­é¢†å¦ä»¤ęŗœē‰ę¦“ē”«é¦ē•™åˆ˜ē˜¤ęµęŸ³å…­é¾™č‹å’™ē¬¼ēŖæ"],
-["c240","ēæ¤ēæ§ēæØēæŖēæ«ēæ¬ēæ­ēæÆēæ²ēæ“",6,"ēæ½ēæ¾ēææč€‚č€‡č€ˆč€‰č€Šč€Žč€č€‘č€“č€šč€›č€č€žč€Ÿč€”č€£č€¤č€«",5,"č€²č€“č€¹č€ŗč€¼č€¾č€čč„č…č‡čˆč‰čŽččč‘č“č•č–č—"],
-["c280","聙聛",13,"聫",5,"č²",11,"éš†åž„ę‹¢é™‡ę„¼åØ„ę‚ēÆ“ę¼é™‹čŠ¦å¢é¢…åŗē‚‰ęŽ³å¤č™é²éŗ“ē¢Œéœ²č·Æ赂é¹æę½žē¦„å½•é™†ęˆ®é©“å•é“ä¾£ę—…å±„å±”ē¼•č™‘ę°Æ律ēŽ‡ę»¤ē»æå³¦ęŒ›å­Ŗę»¦åµä¹±ęŽ ē•„ęŠ”č½®ä¼¦ä»‘ę²¦ēŗ¶č®ŗ萝čžŗē½—逻锣ē®©éŖ”č£øč½ę“›éŖ†ē»œå¦ˆéŗ»ēŽ›ē čš‚马éŖ‚嘛吗埋买éŗ¦å–čæˆč„‰ēž’é¦’č›®ę»”č”“ę›¼ę…¢ę¼«"],
-["c340","č¾č‚č‚‚č‚…č‚ˆč‚Šč‚",5,"č‚”č‚•č‚—č‚™č‚žč‚£č‚¦č‚§č‚Øč‚¬č‚°č‚³č‚µč‚¶č‚øč‚¹č‚»čƒ…čƒ‡",4,"胏",6,"čƒ˜čƒŸčƒ čƒ¢čƒ£čƒ¦čƒ®čƒµčƒ·čƒ¹čƒ»čƒ¾čƒæ脀脁脃脄脅脇脈脋"],
-["c380","脌脕脗脙脛脜脝脟",12,"č„­č„®č„°č„³č„“č„µč„·č„¹",4,"č„æč°©čŠ’čŒ«ē›²ę°“åæ™čŽ½ēŒ«čŒ…锚ęƛēŸ›é“†åÆčŒ‚å†’åø½č²Œč“ø么ēŽ«ęžšę¢…酶霉ē…¤ę²”ēœ‰åŖ’镁ęƏē¾Žę˜§åƐ妹åŖšé—Øé—·ä»¬čŒč’™ęŖ¬ē›Ÿé”°ēŒ›ę¢¦å­ŸēœÆ醚靔ē³œčæ·č°œå¼„ē±³ē§˜č§…ę³ŒčœœåÆ†å¹‚ę£‰ēœ ē»µå†•å…å‹‰åØ©ē¼…é¢č‹—ęēž„藐ē§’ęøŗåŗ™å¦™č”‘ē­ę°‘ęŠæēšæꕏę‚Æé—½ę˜ŽčžŸéø£é“­åå‘½č°¬ę‘ø"],
-["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"č…”č…¢č…£č…¤č…¦č…Øč…Ŗč…«č…¬č…Æč…²č…³č…µč…¶č…·č…ø膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膄"],
-["c480","膧膩膫",7,"膓",5,"č†¼č†½č†¾č†æ臄臅臇臈臉臋臍",6,"ę‘¹č˜‘ęØ”č†œē£Øę‘©é­”ęŠ¹ęœ«čŽ«å¢Øé»˜ę²«ę¼ åÆžé™Œč°‹ē‰ŸęŸę‹‡ē‰”äŗ©å§†ęÆå¢“ęš®å¹•å‹Ÿę…•ęœØē›®ē¦ē‰§ē©†ę‹æå“Ŗ呐钠那å؜ēŗ³ę°–ä¹ƒå„¶č€å„ˆå—ē”·éš¾å›ŠęŒ č„‘ę¼é—¹ę·–å‘¢é¦å†…å«©čƒ½å¦®éœ“å€Ŗę³„å°¼ę‹Ÿä½ åŒæ腻逆ęŗŗč”«ę‹ˆå¹“ē¢¾ę’µę»åæµåؘé…æéøŸå°æęč‚å­½å•®é•Šé•ę¶…ę‚Ø꟠ē‹žå‡å®"],
-["c540","臔",14,"臤臄臦č‡Ø臩臫臮",4,"臵",5,"č‡½č‡æ舃與",4,"舎舏舑舓舕",5,"čˆčˆ čˆ¤čˆ„čˆ¦čˆ§čˆ©čˆ®čˆ²čˆŗčˆ¼čˆ½čˆæ"],
-["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"č‰©ę‹§ę³žē‰›ę‰­é’®ēŗ½č„“ęµ“å†œå¼„å„“åŠŖę€’å„³ęš–č™ē–ŸęŒŖꇦē³ÆčÆŗå“¦ę¬§éø„ę®“č—•å‘•å¶ę²¤å•Ŗ趓ēˆ¬åø•ę€•ē¶ę‹ęŽ’ē‰Œå¾˜ę¹ƒę“¾ę”€ę½˜ē›˜ē£ē›¼ē•”判叛乓åŗžę—č€Ŗčƒ–ęŠ›å’†åˆØē‚®č¢č·‘ę³”å‘øčƒšåŸ¹č£“čµ”é™Ŗé…ä½©ę²›å–·ē›†ē °ęŠØēƒ¹ę¾Žå½­č“¬ę£šē”¼ēÆ·č†Øęœ‹é¹ę§ē¢°åÆē ’éœ¹ę‰¹ęŠ«åŠˆēµęƗ"],
-["c640","č‰Ŗ艫艬艭艱艵艶艷č‰øč‰»č‰¼čŠ€čŠčŠƒčŠ…čŠ†čŠ‡čŠ‰čŠŒčŠčŠ“čŠ”čŠ•čŠ–čŠščŠ›čŠžčŠ čŠ¢čŠ£čŠ§čŠ²čŠµčŠ¶čŠŗčŠ»čŠ¼čŠæč‹€č‹‚č‹ƒč‹…č‹†č‹‰č‹č‹–č‹™č‹šč‹č‹¢č‹§č‹Øč‹©č‹Ŗč‹¬č‹­č‹®č‹°č‹²č‹³č‹µč‹¶č‹ø"],
-["c680","č‹ŗč‹¼",4,"茊茋茍茐茒茓茖茘茙茝",9,"čŒ©čŒŖčŒ®čŒ°čŒ²čŒ·čŒ»čŒ½å•¤č„¾ē–²ēš®åŒ¹ē—žåƒ»å±č­¬ēƇ偏ē‰‡éŖ—é£˜ę¼‚ē“¢ē„Øꒇēž„ę‹¼é¢‘č“«å“č˜ä¹’åŖč‹¹čå¹³å‡­ē“¶čÆ„å±å”ę³¼é¢‡å©†ē “魄čæ«ē²•å‰–ꉑé“ŗä»†čŽ†č‘”č©č’²åŸ”ęœ“åœƒę™®ęµ¦č°±ę›ē€‘ęœŸę¬ŗę –ęˆšå¦»äøƒå‡„ę¼†ęŸ’ę²å…¶ę£‹å„‡ę­§ē•¦å“Žč„é½ę——ē„ˆē„éŖ‘čµ·å²‚ä¹žä¼åÆå„‘ē Œå™Ø갔čæ„å¼ƒę±½ę³£č®«ęŽ"],
-["c740","čŒ¾čŒæ荁荂荄荅荈荊",4,"荓荕",4,"čč¢č°",6,"č¹čŗč¾",6,"čŽ‡čŽˆčŽŠčŽ‹čŽŒčŽčŽčŽčŽ‘čŽ”čŽ•čŽ–čŽ—čŽ™čŽščŽčŽŸčŽ”",6,"莬莭莮"],
-["c780","čŽÆčŽµčŽ»čŽ¾čŽæč‚čƒč„č†čˆč‰č‹ččŽčč‘č’č“č•č—č™čšč›čžč¢č£č¤č¦č§čØč«č¬č­ę°ę“½ē‰µę‰¦é’Žé“…千čæē­¾ä»Ÿč°¦ä¹¾é»”é’±é’³å‰ę½œé£ęµ…č°“å ‘åµŒę¬ ę­‰ęžŖå‘›č…”ē¾Œå¢™č”·å¼ŗęŠ¢ę©‡é”¹ę•²ę‚„ę”„ēž§ä¹”ä¾Øå·§éž˜ę’¬ēæ˜å³­äæēŖåˆ‡čŒ„äø”ę€ÆēŖƒé’¦ä¾µäŗ²ē§¦ē“å‹¤čŠ¹ę“’ē¦½åÆę²é’č½»ę°¢å€¾åæęø…ę“Žę™“ę°°ęƒ…é”·čÆ·åŗ†ē¼ē©·ē§‹äø˜é‚±ēƒę±‚å›šé…‹ę³…č¶‹åŒŗč›†ę›²čŗÆ屈驱ęø "],
-["c840","č®čÆč³",4,"čŗč»č¼č¾čæ萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"č²",5,"č¹čŗč»č¾",7,"葇葈葉"],
-["c880","葊",6,"葒",4,"č‘˜č‘č‘žč‘Ÿč‘ č‘¢č‘¤",4,"č‘Ŗč‘®č‘Æč‘°č‘²č‘“č‘·č‘¹č‘»č‘¼å–åØ¶é¾‹č¶£åŽ»åœˆé¢§ęƒé†›ę³‰å…Øē—Šę‹³ēŠ¬åˆø劝ē¼ŗē‚”ē˜øå“é¹Šę¦·ē”®é›€č£™ē¾¤ē„¶ē‡ƒå†‰ęŸ“ē“¤å£¤ę”˜åš·č®©é„¶ę‰°ē»•ęƒ¹ēƒ­å£¬ä»äŗŗåæéŸ§ä»»č®¤åˆƒå¦Šēŗ«ę‰”ä»ę—„ꈎčŒøč“‰č£čžē†”ęŗ¶å®¹ē»’å†—ę‰ęŸ”č‚‰čŒ¹č •å„’å­ŗå¦‚č¾±ä¹³ę±å…„č¤„č½Æé˜®č•Šē‘žé”é—°ę¶¦č‹„å¼±ę’’ę“’čØč…®é³ƒå”žčµ›äø‰å"],
-["c940","č‘½",4,"蒃蒄蒅蒆蒊蒍蒏",7,"č’˜č’šč’›č’č’žč’Ÿč’ č’¢",12,"č’°č’±č’³č’µč’¶č’·č’»č’¼č’¾č“€č“‚č“ƒč“…č“†č“‡č“ˆč“‹č“Œč“Žč“č“’č“”č“•č“—"],
-["c980","蓘",4,"č“žč“”č“¢č“¤č“§",4,"č“­č“®č“Æ蓱",10,"č“½č“¾č”€č”č”‚ä¼žę•£ę”‘å—“äø§ę”éŖšę‰«å«‚ē‘Ÿč‰²ę¶©ę£®åƒ§čŽŽē ‚ę€åˆ¹ę²™ēŗ±å‚»å•„ē…žē­›ę™’ēŠč‹«ę‰å±±åˆ ē…½č”«é—Ŗé™•ę“…čµ”č†³å–„ę±•ę‰‡ē¼®å¢’ä¼¤å•†čµę™ŒäøŠå°šč£³ę¢¢ęŽē؍ēƒ§čŠå‹ŗ韶少å“Ø邵ē»å„¢čµŠč›‡čˆŒčˆčµ¦ę‘„å°„ę…‘ę¶‰ē¤¾č®¾ē ·ē”³å‘»ä¼øčŗ«ę·±åØ ē»…ē„žę²ˆå®”婶ē”šč‚¾ę…Žęø—声ē”Ÿē”„ē‰²å‡ē»³"],
-["ca40","蔃",8,"č”č”Žč”č”č”’č””č”•č”–č”˜č”™č”›č”œč”č”žč” č”¢",8,"蔭",9,"č”¾",4,"蕄蕅蕆蕇蕋",10],
-["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕄蕦蕧蕩",8,"č•³č•µč•¶č•·č•øč•¼č•½č•æ薀薁ēœē››å‰©čƒœåœ£åøˆå¤±ē‹®ę–½ę¹æčƗå°øč™±åēŸ³ę‹¾ę—¶ä»€é£Ÿčš€å®žčƆ史ēŸ¢ä½æ屎驶始式ē¤ŗ士äø–ęŸæäŗ‹ę‹­čŖ“逝åŠæę˜Æå—œå™¬é€‚ä»•ä¾é‡Šé„°ę°åø‚ęƒå®¤č§†čÆ•ę”¶ę‰‹é¦–å®ˆåÆæęŽˆå”®å—ē˜¦å…½č”¬ęž¢ę¢³ę®ŠęŠ’č¾“å”čˆ’ę·‘ē–ä¹¦čµŽå­°ē†Ÿč–Æꚑꛙē½²čœ€é»é¼ å±žęœÆčæ°ę ‘ęŸęˆē«–墅åŗ¶ę•°ę¼±"],
-["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薄薦薧薩薫薬薭薱",5,"č–øč–ŗ",6,"藂",6,"藊",4,"藑藒"],
-["cb80","藔藖",5,"藝",6,"藄藦藧č—Øč—Ŗ",14,"ę•åˆ·č€ę‘”č”°ē”©åø…ę “ę‹“霜双ēˆ½č°ę°“ē”ē؎吮ēž¬é”ŗ舜čÆ“ē”•ęœ”ēƒę–Æę’•å˜¶ę€ē§åøäøę­»č‚†åÆŗ嗣四ä¼ŗä¼¼é„²å·³ę¾č€øę€‚é¢‚é€å®‹č®¼čÆµęœč‰˜ę“žå—½č‹é…„äæ—ē“ é€Ÿē²Ÿåƒ³å”‘ęŗÆå®æčÆ‰č‚ƒé…ø蒜ē®—č™½éš‹éšē»„髓ē¢Žå²ē©—遂隧ē„Ÿå­™ęŸē¬‹č“‘ę¢­å”†ē¼©ēē“¢é”ę‰€å”Œä»–它儹唔"],
-["cc40","č—¹č—ŗč—¼č—½č—¾č˜€",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"č˜Øč˜Ŗ",13,"č˜¹č˜ŗč˜»č˜½č˜¾č˜æ虀"],
-["cc80","虁",11,"虒虓處",4,"č™›č™œč™č™Ÿč™ č™”č™£",7,"ē­ęŒžč¹‹čøčƒŽč‹”ęŠ¬å°ę³°é…žå¤Ŗę€ę±°åę‘Šč“Ŗē˜«ę»©å›ęŖ€ē—°ę½­č°­č°ˆå¦ęÆÆč¢’ē¢³ęŽ¢å¹ē‚­ę±¤å”˜ęŖå ‚ę£ č†›å”ē³–倘čŗŗę·Œč¶Ÿēƒ«ęŽę¶›ę»”ē»¦č„ę”ƒé€ƒę·˜é™¶č®Øå„—ē‰¹č—¤č…¾ē–¼čŖŠę¢Æ剔čø¢é”‘ęé¢˜č¹„å•¼ä½“ę›æåšęƒ•ę¶•å‰ƒå±‰å¤©ę·»å”«ē”°ē”œę¬čˆ”č…†ęŒ‘ę”čæ¢ēœŗč·³č““é“åø–厅听ēƒƒ"],
-["cd40","虭č™Æč™°č™²",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"čš„čš¦čš«čš­čš®čš²čš³čš·čšøčš¹čš»",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],
-["cd80","č›č› č›”č›¢č›£č›„č›¦č›§č›Øč›Ŗ蛫蛬č›Æ蛵蛶蛷č›ŗč›»č›¼č›½č›æčœčœ„čœ…čœ†čœ‹čœŒčœŽčœčœčœ‘čœ”čœ–ę±€å»·åœäŗ­åŗ­ęŒŗ艇通ꔐ酮ēž³åŒé“œå½¤ē«„ę”¶ę…ē­’ē»Ÿē—›å·ęŠ•å¤“透å‡øē§ƒēŖå›¾å¾’é€”ę¶‚å± åœŸåå…”ę¹å›¢ęŽØ颓č…æ蜕č¤Ŗ退吞å±Æč‡€ę‹–ę‰˜č„±éøµé™€é©®é©¼ę¤­å¦„ę‹“å”¾ęŒ–å“‡č›™ę“¼å؃ē“¦č¢œę­Ŗå¤–č±Œå¼Æę¹¾ēŽ©é”½äøøēƒ·å®Œē¢—ęŒ½ę™šēš–ęƒ‹å®›å©‰äø‡č…•ę±ŖēŽ‹äŗ”꞉ē½‘å¾€ę—ŗꜛåæ˜å¦„å؁"],
-["ce40","čœ™čœ›čœčœŸčœ čœ¤čœ¦čœ§čœØčœŖčœ«čœ¬čœ­čœÆčœ°čœ²čœ³čœµčœ¶čœøčœ¹čœŗčœ¼čœ½č€",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"č”č¢č¦",7,"čÆč±č²č³čµ"],
-["ce80","č·čøč¹čŗčæ螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦čæę”…囓å”Æꃟäøŗę½ē»“č‹‡čŽå§”ä¼Ÿä¼Ŗå°¾ēŗ¬ęœŖč”šå‘³ē•čƒƒå–‚魏位ęø­č°“å°‰ę…°å«ē˜Ÿęø©čšŠę–‡é—»ēŗ¹å»ēسē“Šé—®å—”ēæē“®ęŒčœ—궔ēŖęˆ‘ę–”å§ę”ę²ƒå·«å‘œé’Øä¹Œę±”čÆ¬å±‹ę— čŠœę¢§å¾å“ęÆ‹ę­¦äŗ”ę‚åˆčˆžä¼ä¾®åžęˆŠé›¾ę™¤ē‰©å‹æåŠ”ę‚ŸčÆÆꘔē†™ęžč„æē”’ēŸ½ę™°å˜»åøé””ē‰ŗ"],
-["cf40","螄螦螧螩čžŖčž®čž°čž±čž²čž“čž¶čž·čžøčž¹čž»čž¼čž¾čžæ蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"čŸœčŸčŸžčŸŸčŸ”čŸ¢čŸ£čŸ¤čŸ¦čŸ§čŸØčŸ©čŸ«čŸ¬čŸ­čŸÆ",9],
-["cf80","čŸŗčŸ»čŸ¼čŸ½čŸæ蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"č £ē؀ęÆåøŒę‚‰č†å¤•ęƒœē†„ēƒÆęŗŖ걐ēŠ€ęŖ„č¢­åø­ä¹ åŖ³å–œé“£ę“—ē³»éš™ęˆē»†ēžŽč™¾åŒ£éœžč¾–ęš‡å³”ä¾ ē‹­äø‹åŽ¦å¤å“ꎀé”Ø先仙鲜ēŗ¤å’øč“¤č””čˆ·é—²ę¶Žå¼¦å«Œę˜¾é™©ēŽ°ēŒ®åŽæč…ŗ馅ē¾”å®Ŗ陷限ēŗæē›ø厢镶香ē®±č„„ę¹˜ä¹”ēæ”ē„„čÆ¦ęƒ³å“äŗ«é”¹å··ę©”åƒå‘č±”č§ē”éœ„å‰Šå“®åš£é”€ę¶ˆå®µę·†ę™“"],
-["d040","č ¤",13,"č ³",5,"č ŗč »č ½č ¾č æč”č”‚č”ƒč”†",5,"蔎",5,"č”•č”–č”˜č”š",6,"蔦蔧č”Ŗč”­č”Æč”±č”³č”“č”µč”¶č”øč”¹č”ŗ"],
-["d080","č”»č”¼č¢€č¢ƒč¢†č¢‡č¢‰č¢Šč¢Œč¢Žč¢č¢č¢‘č¢“č¢”č¢•č¢—",4,"č¢",4,"č¢£č¢„",5,"å°å­ę ”č‚–å•øē¬‘ę•ˆę„”äŗ›ę­‡čŽéž‹åęŒŸęŗé‚Ŗę–œčƒč°å†™ę¢°åøčŸ¹ę‡ˆę³„ę³»č°¢å±‘č–ŖčŠÆé”Œę¬£č¾›ę–°åæ»åæƒäæ”č”…ę˜Ÿč…„ēŒ©ęƒŗå…“åˆ‘åž‹å½¢é‚¢č”Œé†’å¹øęę€§å§“å…„å‡¶čƒøåŒˆę±¹é›„ē†Šä¼‘äæ®ē¾žęœ½å—…锈ē§€č¢–ē»£å¢ŸęˆŒéœ€č™šå˜˜é”»å¾č®øč“„é…—å™ę—­åŗē•œę¤ēµ®å©æē»Ŗē»­č½©å–§å®£ę‚¬ę—‹ēŽ„"],
-["d140","č¢¬č¢®č¢Æč¢°č¢²",4,"č¢øč¢¹č¢ŗč¢»č¢½č¢¾č¢æč£€č£ƒč£„č£‡č£ˆč£Šč£‹č£Œč£č£č£č£‘č£“č£–č£—č£š",4,"č£ č£”č£¦č£§č£©",6,"č£²č£µč£¶č£·č£ŗč£»č£½č£æ褀褁褃",5],
-["d180","褉褋",4,"褑褔",4,"褜",4,"č¤¢č¤£č¤¤č¤¦č¤§č¤Ø褩褬褭褮č¤Æč¤±č¤²č¤³č¤µč¤·é€‰ē™£ēœ©ē»šé“č–›å­¦ē©“é›Ŗč”€å‹‹ē†å¾Ŗę—¬čÆ¢åÆ»é©Æå·”ę®‰ę±›č®­č®Æ逊čæ…åŽ‹ęŠ¼éø¦éø­å‘€äø«čŠ½ē‰™čšœå“–č”™ę¶Æ雅哑äŗšč®¶ē„‰å’½é˜‰ēƒŸę·¹ē›äø„ē ”čœ’å²©å»¶č؀颜阎ē‚Žę²æå„„ęŽ©ēœ¼č”ę¼”č‰³å °ē‡•åŽŒē šé›å”å½¦ē„°å®“谚éŖŒę®ƒå¤®éøÆē§§ęØꉬä½Æē–”ē¾Šę“‹é˜³ę°§ä»°ē—’å…»ę ·ę¼¾é‚€č…°å¦–ē‘¶"],
-["d240","č¤ø",8,"č„‚č„ƒč„…",24,"č„ ",5,"脧",19,"č„¼"],
-["d280","č„½č„¾č¦€č¦‚č¦„č¦…č¦‡",26,"ę‘‡å°§é„ēŖ‘č°£å§šå’¬čˆ€čÆč¦č€€ę¤°å™Žč€¶ēˆ·é‡Žå†¶ä¹Ÿé”µęŽ–äøšå¶ę›³č…‹å¤œę¶²äø€å£¹åŒ»ę–é“±ä¾ä¼Šč”£é¢å¤·é—ē§»ä»Ŗ胰ē–‘ę²‚å®œå§Øå½ę¤…čšå€šå·²ä¹™ēŸ£ä»„č‰ŗęŠ‘ę˜“é‚‘å±¹äŗæå½¹č‡†é€ø肄ē–«äŗ¦č£”ę„ęƅåæ†ä¹‰ē›Šęŗ¢čÆ£č®®č°ŠčƑ异ēæ¼ēæŒē»ŽčŒµč«å› ę®·éŸ³é˜“å§»åŸé“¶ę·«åƅ鄮尹引隐"],
-["d340","č¦¢",30,"č§ƒč§č§“č§”č§•č§—č§˜č§™č§›č§č§Ÿč§ č§”č§¢č§¤č§§č§Ø觩č§Ŗč§¬č§­č§®č§°č§±č§²č§“",6],
-["d380","觻",4,"č؁",5,"č؈",21,"å°č‹±ęر婓鹰åŗ”ē¼ØčŽ¹č¤č„č§č‡čæŽčµ¢ē›ˆå½±é¢–ē”¬ę˜ å“Ÿę‹„ä½£č‡ƒē—ˆåŗø雍čøŠč›¹å’ę³³ę¶Œę°øęæ勇ē”Øå¹½ä¼˜ę‚ åæ§å°¤ē”±é‚®é“€ēŠ¹ę²¹ęøøé…‰ęœ‰å‹å³ä½‘é‡‰čƱ又幼čæ‚ę·¤äŗŽē›‚ę¦†č™žę„ščˆ†ä½™äæžé€¾é±¼ę„‰ęøęø”éš…äŗˆåرé›ØäøŽå±æē¦¹å®‡čÆ­ē¾½ēŽ‰åŸŸčŠ‹éƒåé‡å–»å³Ŗå¾”ę„ˆę¬²ē‹±č‚²čŖ‰"],
-["d440","č؞",31,"čØæ",8,"詉",21],
-["d480","č©Ÿ",25,"č©ŗ",6,"굓åÆ“č£•é¢„č±«é©­éø³ęøŠå†¤å…ƒåž£č¢åŽŸę“č¾•å›­å‘˜åœ†ēŒæęŗē¼˜čæœč‹‘ę„æę€Øé™¢ę›°ēŗ¦č¶Šč·ƒé’„å²³ē²¤ęœˆę‚¦é˜…č€˜äŗ‘郧匀é™Ø允čæč•“é…ę™•éŸµå­•åŒē øę‚ę ½å“‰ē¾å®°č½½å†åœØå’±ę”’ęš‚čµžčµƒč„č‘¬é­ē³Ÿå‡æč—»ęž£ę—©ę¾”čš¤čŗå™Ŗ造ēš‚ē¶ē‡„č“£ę‹©åˆ™ę³½č“¼ę€Žå¢žę†Žę›¾čµ ę‰Žå–³ęø£ęœ­č½§"],
-["d540","čŖ",7,"čŖ‹",7,"čŖ”",46],
-["d580","諃",32,"é“”é—øēœØꠅę¦Ø咋乍ē‚øčÆˆę‘˜ę–‹å®…ēŖ„å€ŗåÆØēž»ęÆ”č©¹ē²˜ę²¾ē›ę–©č¾—哭展č˜øę ˆå ęˆ˜ē«™ę¹›ē»½ę؟ē« å½°ę¼³å¼ ęŽŒę¶ØꝖäøˆåøč“¦ä»—čƒ€ē˜“éšœę‹›ę˜­ę‰¾ę²¼čµµē…§ē½©å…†č‚‡å¬é®ęŠ˜å“²č›°č¾™č€…é”—č”—čæ™ęµ™ēę–ŸēœŸē”„ē §č‡»č“žé’ˆä¾¦ęž•ē–¹čƊ震ęŒÆ镇阵č’øęŒ£ēå¾ē‹°äŗ‰ę€”ę•“ę‹Æę­£ę”æ"],
-["d640","諤",34,"謈",27],
-["d680","謤謄謧",30,"åø§ē—‡éƒ‘čÆčŠęžę”Æå±čœ˜ēŸ„č‚¢č„‚ę±ä¹‹ē»‡čŒē›“ę¤ę®–ę‰§å€¼ä¾„å€ęŒ‡ę­¢č¶¾åŖę—Øēŗøåæ—ęŒšęŽ·č‡³č‡“ē½®åøœå³™åˆ¶ę™ŗē§©ēؚč“Øē‚™ē—”ę»žę²»ēŖ’äø­ē›…åæ é’Ÿč”·ē»ˆē§č‚æé‡ä»²ä¼—čˆŸå‘Øå·žę“²čƌē²„č½“č‚˜åøšå’’ēš±å®™ę˜¼éŖ¤ē ę Ŗč››ęœ±ēŒŖčÆøčƛ逐ē«¹ēƒ›ē…®ę‹„ēž©å˜±äø»č‘—ęŸ±åŠ©č›€č“®é“øē­‘"],
-["d740","譆",31,"譧",4,"譭",25],
-["d780","讇",24,"讬讱讻čƇčƐčÆŖč°‰č°žä½ę³Øē„é©»ęŠ“ēˆŖę‹½äø“ē –č½¬ę’°čµšēÆ†ę”©åŗ„č£…å¦†ę’žå£®ēŠ¶ę¤Žé”„čæ½čµ˜å ē¼€č°†å‡†ę‰ę‹™å“ę”Œē¢čŒé…Œå•„ē€ē¼ęµŠå…¹å’Ø资å§æę»‹ę·„å­œē“«ä»”ē±½ę»“子č‡Ŗęøå­—é¬ƒę£•čøŖ宗ē»¼ę€»ēŗµé‚¹čµ°å„ęē§Ÿč¶³å’ę—ē„–čƅ阻ē»„é’»ēŗ‚嘓醉꜀ē½Ŗ尊遵ę˜Øå·¦ä½ęŸžåšä½œååŗ§"],
-["d840","č°ø",8,"č±‚č±ƒč±„č±…č±ˆč±Šč±‹č±",7,"č±–č±—č±˜č±™č±›",5,"č±£",6,"豬",6,"豓豵豶豷豻",6,"č²ƒč²„č²†č²‡"],
-["d880","č²ˆč²‹č²",6,"č²•č²–č²—č²™",20,"äŗäøŒå…€äøå»æ卅äø•äŗ˜äøžé¬²å­¬å™©äøØē¦ŗäøæ匕乇夭ēˆ»å®ę°å›Ÿčƒ¤é¦—ęƓē¾é¼—äø¶äŗŸé¼ä¹œä¹©äŗ“čŠˆå­›å•¬å˜ä»„åŽåŽåŽ£åŽ„åŽ®é„čµåŒšåµåŒ¦åŒ®åŒ¾čµœå¦å£åˆ‚åˆˆåˆŽåˆ­åˆ³åˆæ剀剌剞剔剜č’Æ剽劂劁劐劓冂ē½”äŗ»ä»ƒä»‰ä»‚ä»Ø仔仫仞伛仳伢佤仵伄伧伉伫佞佧ę”ø佚佝"],
-["d940","č²®",62],
-["d980","č³­",32,"佟佗伲伽佶体侑侉侃侏佾佻ä¾Ŗ佼侬侔äæ¦äæØäæŖäæ…äæšäæ£äæœäæ‘äæŸäæø倩偌äæ³å€¬å€å€®å€­äæ¾å€œå€Œå€„å€Ø偾偃偕偈偎偬偻傄傧傩å‚ŗåƒ–å„†åƒ­åƒ¬åƒ¦åƒ®å„‡å„‹ä»ę°½ä½˜ä½„äæŽé¾ ę±†ē±“兮巽黉馘冁夔勹匍č؇匐凫夙兕äŗ å…–äŗ³č”®č¢¤äŗµč„”č£’ē¦€å¬“蠃ē¾ø冫冱冽冼"],
-["da40","č“Ž",14,"č“ čµ‘čµ’čµ—čµŸčµ„čµØ赩čµŖ赬赮čµÆčµ±čµ²čµø",8,"č¶‚č¶ƒč¶†č¶‡č¶ˆč¶‰č¶Œ",4,"趒趓趕",9,"趠趔"],
-["da80","č¶¢č¶¤",12,"č¶²č¶¶č¶·č¶¹č¶»č¶½č·€č·č·‚č·…č·‡č·ˆč·‰č·Šč·č·č·’č·“č·”å‡‡å†–å†¢å†„č® č®¦č®§č®Ŗ讓讵讷čƂčƃčƋčƏčƎčƒčƓčƔčƖčƘčƙčƜčƟčÆ čƤčÆØčÆ©čÆ®čÆ°čƳčƶčƹčƼčÆæč°€č°‚č°„č°‡č°Œč°č°‘č°’č°”č°•č°–č°™č°›č°˜č°č°Ÿč° č°”č°„č°§č°Ŗč°«č°®č°Æč°²č°³č°µč°¶å©åŗ阝阢阔阱é˜Ŗ阽阼陂陉陔陟陧陬陲陓隈隍隗隰邗邛邝邙邬邔邓邳邶é‚ŗ"],
-["db40","č·•č·˜č·™č·œč· č·”č·¢č·„č·¦č·§č·©č·­č·®č·°č·±č·²č·“č·¶č·¼č·¾",6,"čø†čø‡čøˆčø‹čøčøŽčøčø‘čø’čø“čø•",7,"čø čø”čø¤",4,"čø«čø­čø°čø²čø³čø“čø¶čø·čøøčø»čø¼čø¾"],
-["db80","čøæč¹ƒč¹…č¹†č¹Œ",4,"č¹“",5,"č¹š",11,"č¹§č¹Øč¹Ŗč¹«č¹®č¹±é‚ø邰郏郅邾郐郄郇郓郦郢郜郗郛郫éƒÆ郾鄄鄢鄞鄣鄱é„Æ鄹酃酆刍儂劢劬劭劾å“æ勐勖勰叟ē‡®ēŸå»“凵凼é¬Æ厶弁ē•šå·Æ坌垩垔唾墼壅壑圩圬åœŖ圳圹圮åœÆ坜圻坂坩垅坫垆坼坻åØ坭坶坳垭垤垌垲埏垧垓垓垠埕埘埚埙埒åžø埓åŸÆåŸø埤埝"],
-["dc40","č¹³č¹µč¹·",4,"č¹½č¹¾čŗ€čŗ‚čŗƒčŗ„čŗ†čŗˆ",6,"čŗ‘čŗ’čŗ“čŗ•",6,"čŗčŗŸ",11,"čŗ­čŗ®čŗ°čŗ±čŗ³",6,"čŗ»",7],
-["dc80","軃",10,"č»",21,"堋堍埽埭堀堞堙唄堠唄唬墁墉墚墀é¦Ø鼙ę‡æč‰¹č‰½č‰æ芏芊čŠØ芄芎芑芗芙芫čŠøčŠ¾čŠ°č‹ˆč‹Šč‹£čŠ˜čŠ·čŠ®č‹‹č‹Œč‹čŠ©čŠ“čŠ”čŠŖčŠŸč‹„č‹ŽčŠ¤č‹”čŒ‰č‹·č‹¤čŒčŒ‡č‹œč‹“č‹’č‹˜čŒŒč‹»č‹“čŒ‘čŒščŒ†čŒ”čŒ•č‹ č‹•čŒœč‘č›čœčŒˆčŽ’čŒ¼čŒ“čŒ±čŽ›čžčŒÆ荏荇荃荟荀茗荠茭čŒŗčŒ³č¦č„"],
-["dd40","軄",62],
-["dd80","č¼¤",32,"čØčŒ›č©č¬čŖč­č®čŽ°čøčŽ³čŽ“čŽ čŽŖčŽ“čŽœčŽ…č¼čŽ¶čŽ©č½čŽøč»čŽ˜čŽžčŽØčŽŗčŽ¼ččč„č˜å ‡č˜č‹čč½č–čœčø萑萆菔菟萏萃čøč¹čŖč…č€č¦č°č”č‘œč‘‘č‘šč‘™č‘³č’‡č’ˆč‘ŗ蒉č‘øč¼č‘†č‘©č‘¶č’Œč’Žč±č‘­č“č“č“č“¦č’½č““č“Šč’æč’ŗč“ č’”č’¹č’“č’—č“„č“£č”Œē”č”øč“°č”¹č”Ÿč”ŗ"],
-["de40","č½…",32,"č½Ŗč¾€č¾Œč¾’č¾č¾ č¾”č¾¢č¾¤č¾„č¾¦č¾§č¾Ŗč¾¬č¾­č¾®č¾Æč¾²č¾³č¾“č¾µč¾·č¾øč¾ŗč¾»č¾¼č¾æčæ€čæƒčæ†"],
-["de80","čæ‰",4,"čæčæ’čæ–čæ—čæščæ čæ”čæ£čæ§čæ¬čæÆčæ±čæ²čæ“čæµčæ¶čæŗčæ»čæ¼čæ¾čææé€‡é€ˆé€Œé€Žé€“é€•é€˜č•–č”»č“æč“¼č•™č•ˆč•Ø蕤蕞č•ŗēž¢č•ƒč•²č•»č–¤č–Øč–‡č–č•¹č–®č–œč–…č–¹č–·č–°č—“č—č—œč—æč˜§č˜…č˜©č˜–č˜¼å»¾å¼ˆå¤¼å„č€·å„•å„šå„˜åŒå°¢å°„å°¬å°“ę‰Œę‰ŖęŠŸęŠ»ę‹Šę‹šę‹—ę‹®ęŒ¢ę‹¶ęŒ¹ę‹ęƒęŽ­ę¶ę±ęŗęŽŽęŽ“ę­ęŽ¬ęŽŠę©ęŽ®ęŽ¼ę²ęøꏠęæę„ęžęŽę‘’ę†ęŽ¾ę‘…ę‘ę‹ę›ę ęŒę¦ę”ę‘žę’„ę‘­ę’–"],
-["df40","這逜連逤逄逧",5,"逰",4,"逷逹é€ŗ逽é€æ遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適éŖ遫遬éÆ",4,"遶",6,"遾邁"],
-["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤還邧é‚Ø邩邫邭邲邷邼邽é‚æ郀ę‘ŗę’·ę’ø꒙ę’ŗę“€ę“ę“—ę“¤ę“¢ę”‰ę”„ę”®å¼‹åæ’ē”™å¼‘卟叱叽叩åØ叻吒吖吆呋呒呓呔呖呃吔呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咓哒咧咦哓哔呲咣哕咻å’æ哌哙哚哜咩å’Ŗ咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧å”Ŗ啧喏喵啉啭啁啕å”æ啐唼"],
-["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郄郩éƒŖ郬郮郰郱郲郳郵郶郷郹éƒŗ郻郼éƒæ鄀鄁鄃鄅",19,"鄚鄛鄜"],
-["e080","鄝鄟鄠鄔鄤",10,"鄰鄲",6,"é„ŗ",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙å—Ŗ嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄å—Æ嗄嗲嗳嗌嗍å—Øå—µå—¤č¾”å˜žå˜ˆå˜Œå˜å˜¤å˜£å—¾å˜€å˜§å˜­å™˜å˜¹å™—å˜¬å™å™¢å™™å™œå™Œå™”åš†å™¤å™±å™«å™»å™¼åš…åš“åšÆ囔囗囝囔囵囫囹å›æ圄圊圉圜åøåø™åø”åø‘åø±åø»åø¼"],
-["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧é…Ø酫酭酳é…ŗ酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷é†ø醹醻"],
-["e180","醼",10,"釈釋釐釒",9,"針",8,"åø·å¹„幔幛幞幔岌å±ŗ岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峄哂哃哧哦哮哤哞哆哛嵘哾哓哽嵬嵛åµÆåµåµ«åµ‹åµŠåµ©åµ“å¶‚å¶™å¶č±³å¶·å·…å½³å½·å¾‚å¾‡å¾‰å¾Œå¾•å¾™å¾œå¾Øå¾­å¾µå¾¼č”¢å½”ēŠ­ēŠ°ēŠ“ēŠ·ēŠøē‹ƒē‹ē‹Žē‹ē‹’ē‹Øē‹Æē‹©ē‹²ē‹“ē‹·ēŒē‹³ēŒƒē‹ŗ"],
-["e240","釦",62],
-["e280","鈄",32,"ē‹»ēŒ—ēŒ“ēŒ”ēŒŠēŒžēŒēŒ•ēŒ¢ēŒ¹ēŒ„ēŒ¬ēŒøēŒ±ēēē—ē ē¬ēÆē¾čˆ›å¤„飧夤夂鄣鄧",5,"鄓鄷鄽馀馄馇馊馍馐馑馓馔馕åŗ€åŗ‘åŗ‹åŗ–åŗ„åŗ åŗ¹åŗµåŗ¾åŗ³čµ“廒廑廛å»Øå»Ŗč†ŗåæ„åæ‰åæ–åæę€ƒåæ®ę€„åæ”åæ¤åæ¾ę€…ꀆåæŖåæ­åæøę€™ę€µę€¦ę€›ę€ę€ę€©ę€«ę€Šę€æꀔęøę¹ę»ęŗꁂ"],
-["e340","鉆",45,"鉵",16],
-["e380","銆",7,"銏",24,"ęŖę½ę‚–ę‚šę‚­ę‚ę‚ƒę‚’ę‚Œę‚›ęƒ¬ę‚»ę‚±ęƒęƒ˜ęƒ†ęƒšę‚“ę„ ę„¦ę„•ę„£ęƒ“ę„€ę„Žę„«ę…Šę…µę†¬ę†”ę†§ę†·ę‡”ę‡µåæéš³é—©é—«é—±é—³é—µé—¶é—¼é—¾é˜ƒé˜„阆阈阊阋阌阍阏阒阕阖阗阙阚äø¬ēˆæęˆ•ę°µę±”ę±œę±Šę²£ę²…ę²ę²”ę²Œę±Øę±©ę±“ę±¶ę²†ę²©ę³ę³”ę²­ę³·ę³øę³±ę³—ę²²ę³ ę³–ę³ŗę³«ę³®ę²±ę³“ę³Æę³¾"],
-["e440","éŠØ",5,"éŠÆ",24,"鋉",31],
-["e480","鋩",32,"ę“¹ę“§ę“Œęµƒęµˆę“‡ę“„ę“™ę“Žę“«ęµę“®ę“µę“šęµęµ’ęµ”ę“³ę¶‘ęµÆę¶žę¶ ęµžę¶“ę¶”ęµœęµ ęµ¼ęµ£ęøšę·‡ę·…ę·žęøŽę¶æę· ęø‘ę·¦ę·ę·™ęø–궫ęøŒę¶®ęø«ę¹®ę¹Žę¹«ęŗ²ę¹Ÿęŗ†ę¹“ę¹”ęø²ęø„ę¹„ę»Ÿęŗ±ęŗ˜ę» ę¼­ę»¢ęŗ„ęŗ§ęŗ½ęŗ»ęŗ·ę»—ęŗ“ę»ęŗę»‚ęŗŸę½¢ę½†ę½‡ę¼¤ę¼•ę»¹ę¼Æę¼¶ę½‹ę½“ę¼Ŗę¼‰ę¼©ę¾‰ę¾ę¾Œę½øę½²ę½¼ę½ŗęæ‘"],
-["e540","錊",51,"éŒæ",10],
-["e580","鍊",31,"鍫ęæ‰ę¾§ę¾¹ę¾¶ęæ‚ęæ”ęæ®ęæžęæ ęæÆē€šē€£ē€›ē€¹ē€µēēžå®€å®„宕宓宄å®øē”ÆéŖžę“åƤåÆ®č¤°åÆ°č¹‡č¬‡č¾¶čæ“čæ•čæ„čæ®čæ¤čæ©čæ¦čæ³čæØ逅逄逋逦逑逍逖途逵逶逭é€Æ遄遑遒遐éØé˜é¢é›ęš¹é“é½é‚‚é‚ˆé‚ƒé‚‹å½å½—å½–å½˜å°»å’«å±å±™å­±å±£å±¦ē¾¼å¼Ŗå¼©å¼­č‰“å¼¼é¬»å±®å¦å¦ƒå¦å¦©å¦Ŗ妣"],
-["e640","鍬",34,"鎐",27],
-["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲å¦Æ姗妾å؅å؆姝å؈姣姘姹å،å؉åزåØ“åؑåØ£åؓ婀婧婊婕åØ¼å©¢å©µčƒ¬åŖŖåŖ›å©·å©ŗåŖ¾å««åŖ²å«’å«”åŖø嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孄孳孑孓孢驵驷é©øé©ŗé©æ驽éŖ€éŖéŖ…éŖˆéŖŠéŖéŖ’éŖ“éŖ–éŖ˜éŖ›éŖœéŖéŖŸéŖ éŖ¢éŖ£éŖ„éŖ§ēŗŸēŗ”ēŗ£ēŗ„ēŗØēŗ©"],
-["e740","鏎",7,"鏗",54],
-["e780","鐎",32,"ēŗ­ēŗ°ēŗ¾ē»€ē»ē»‚ē»‰ē»‹ē»Œē»ē»”ē»—ē»›ē» ē»”ē»Øē»«ē»®ē»Æē»±ē»²ē¼ē»¶ē»ŗē»»ē»¾ē¼ē¼‚ē¼ƒē¼‡ē¼ˆē¼‹ē¼Œē¼ē¼‘ē¼’ē¼—ē¼™ē¼œē¼›ē¼Ÿē¼”",6,"ē¼Ŗē¼«ē¼¬ē¼­ē¼Æ",4,"ē¼µå¹ŗē•æ巛ē”¾é‚•ēŽŽēŽ‘ēŽ®ēŽ¢ēŽŸēē‚ē‘ēŽ·ēŽ³ē€ē‰ēˆē„ē™é”¼ēŠē©ē§ēžēŽŗē²ēēŖē‘›ē¦ē„ēØē°ē®ē¬"],
-["e840","éÆ",14,"éæ",43,"鑬鑭鑮é‘Æ"],
-["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠ē›ēšē‘ē‘œē‘—ē‘•ē‘™ē‘·ē‘­ē‘¾ē’œē’Žē’€ē’ē’‡ē’‹ē’žē’Øē’©ē’ē’§ē“’ē’ŗéŸŖéŸ«éŸ¬ęŒę“ęžęˆę©ęž„ęž‡ęŖę³ęž˜ęž§ęµęžØęžžęž­ęž‹ę·ę¼ęŸ°ę ‰ęŸ˜ę ŠęŸ©ęž°ę ŒęŸ™ęžµęŸšęž³ęŸę €ęŸƒęžøęŸ¢ę ŽęŸęŸ½ę ²ę ³ę” ę””ę”Žę”¢ę”„ę”¤ę¢ƒę ę”•ę”¦ę”ę”§ę”€ę ¾ę”Šę”‰ę ©ę¢µę¢ę”“ę”·ę¢“ę”«ę£‚ę„®ę£¼ę¤Ÿę¤ ę£¹"],
-["e940","锧锳锽镃镈镋镕镚镠镮镓镵長",7,"門",42],
-["e980","閫",32,"ę¤¤ę£°ę¤‹ę¤ę„—ę££ę¤ę„±ę¤¹ę„ ę„‚ę„ę¦„ę„«ę¦€ę¦˜ę„øę¤“ę§Œę¦‡ę¦ˆę§Žę¦‰ę„¦ę„£ę„¹ę¦›ę¦§ę¦»ę¦«ę¦­ę§”ę¦±ę§ę§Šę§Ÿę¦•ę§ ę¦ę§æęØÆꧭęؗęØ˜ę©„ę§²ę©„ęؾęŖ ę©ę©›ęصęŖŽę©¹ęؽęØØę©˜ę©¼ęŖ‘ęŖęŖ©ęŖ—ęŖ«ēŒ·ē’ę®ę®‚ę®‡ę®„ę®’ę®“ę®ę®šę®›ę®”ę®Ŗč½«č½­č½±č½²č½³č½µč½¶č½øč½·č½¹č½ŗč½¼č½¾č¾č¾‚č¾„č¾‡č¾‹"],
-["ea40","闌",27,"闬é—æ阇阓阘阛阞阠阣",6,"阫阬阭é˜Æ阰阷é˜ø阹é˜ŗ阾陁陃陊陎陏陑陒陓陖陗"],
-["ea80","陘陙陚陜陝陞陠陣附陦陫陭",4,"陳é™ø",12,"éš‡éš‰éšŠč¾č¾Žč¾č¾˜č¾šč»Žęˆ‹ęˆ—ęˆ›ęˆŸęˆ¢ęˆ”ęˆ„ęˆ¤ęˆ¬č‡§ē“Æē““ē“æē”ē”‘ē”“ꔓꗮę—Æę—°ę˜Šę˜™ę²ę˜ƒę˜•ę˜€ē‚…ę›·ę˜ę˜“ę˜±ę˜¶ę˜µč€†ę™Ÿę™”ę™ę™ę™–ę™”ę™—ę™·ęš„ęšŒęš§ęšęš¾ę››ę›œę›¦ę›©č“²č“³č“¶č“»č“½čµ€čµ…čµ†čµˆčµ‰čµ‡čµčµ•čµ™č§‡č§Šč§‹č§Œč§Žč§č§č§‘ē‰®ēŠŸē‰ē‰¦ē‰Æē‰¾ē‰æēŠ„ēŠ‹ēŠēŠēŠ’ęŒˆęŒ²ęŽ°"],
-["eb40","隌階隑隒隓隕隖隚際隝",9,"éšØ",7,"隱隲隓隵隷éšøéšŗ隻éšæ雂雃雈雊雋雐雑雓雔雖",9,"é›”",6,"雫"],
-["eb80","雬雭雮雰雱雲雓雵é›øé›ŗ電雼雽é›æ霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠ęæꓘ耄ęÆŖęƳęƽęƵęÆ¹ę°…ę°‡ę°†ę°ę°•ę°˜ę°™ę°šę°”ę°©ę°¤ę°Ŗę°²ę”µę••ę•«ē‰ē‰’ē‰–ēˆ°č™¢åˆ–č‚Ÿč‚œč‚“č‚¼ęœŠč‚½č‚±č‚«č‚­č‚“č‚·čƒ§čƒØ胩čƒŖčƒ›čƒ‚čƒ„čƒ™čƒčƒ—ęœčƒčƒ«čƒ±čƒ“čƒ­č„č„Žčƒ²čƒ¼ęœ•č„’č±šč„¶č„žč„¬č„˜č„²č…ˆč…Œč…“č…“č…™č…šč…±č… č…©č…¼č…½č…­č…§å”åŖµč†ˆč†‚č†‘ę»•č†£č†Ŗč‡Œęœ¦č‡Šč†»"],
-["ec40","霔",8,"霫霬霮éœÆ霱霳",4,"éœŗ霻霼霽éœæ",18,"靔靕靗靘靚靜靝靟靣靤靦靧éØéŖ",7],
-["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"č‡č†¦ę¬¤ę¬·ę¬¹ę­ƒę­†ę­™é£‘é£’é£“é£•é£™é£šę®³å½€ęÆ‚č§³ę–é½‘ę–“ę–¼ę—†ę—„ę—ƒę—Œę—Žę—’ę—–ē‚€ē‚œē‚–ē‚ē‚»ēƒ€ē‚·ē‚«ē‚±ēƒØēƒŠē„ē„“ē„–ē„Æē„±ē…³ē…œē…Øē……ē…²ē…Šē…øē…ŗē†˜ē†³ē†µē†Øē† ē‡ ē‡”ē‡§ē‡¹ēˆēˆØē¬ē„˜ē…¦ē†¹ęˆ¾ęˆ½ę‰ƒę‰ˆę‰‰ē¤»ē„€ē„†ē„‰ē„›ē„œē„“ē„šē„¢ē„—ē„ ē„Æē„§ē„ŗē¦…ē¦Šē¦šē¦§ē¦³åæ‘åæ"],
-["ed40","鞞鞟鞔鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],
-["ed80","韤韄éŸØ韮",4,"韓韷",23,"ę€¼ęęšę§ęę™ę£ę‚«ę„†ę„ę…ę†©ę†ę‡‹ę‡‘ęˆ†č‚€čæę²“ę³¶ę·¼ēŸ¶ēŸøē €ē ‰ē —ē ˜ē ‘ę–«ē ­ē œē ē ¹ē ŗē »ē Ÿē ¼ē „ē ¬ē £ē ©ē”Žē”­ē”–ē”—ē ¦ē”ē”‡ē”Œē”Ŗē¢›ē¢“ē¢šē¢‡ē¢œē¢”ē¢£ē¢²ē¢¹ē¢„ē£”ē£™ē£‰ē£¬ē£²ē¤…ē£“ē¤“ē¤¤ē¤žē¤“龛黹黻黼ē›±ēœ„ēœē›¹ēœ‡ēœˆēœšēœ¢ēœ™ēœ­ēœ¦ēœµēœøēē‘ē‡ēƒēšēØ"],
-["ee40","頏",62],
-["ee80","锎",32,"ē¢ē„ēæēžē½ēž€ēžŒēž‘ēžŸēž ēž°ēžµēž½ē”ŗē•€ē•Žē•‹ē•ˆē•›ē•²ē•¹ē–ƒē½˜ē½”ē½Ÿč©ˆē½Øē½“ē½±ē½¹ē¾ē½¾ē›ē›„č ²é’…é’†é’‡é’‹é’Šé’Œé’é’é’é’”é’—é’•é’šé’›é’œé’£é’¤é’«é’Ŗ钭钬é’Æ钰钲钓钶",4,"钼钽é’æ铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铄铧é“Øé“Ŗ"],
-["ef40","é”Æ",5,"颋颎颒颕颙颣é¢Ø",37,"飏飐飔飖飗飛飜飝飠",4],
-["ef80","飄飦飩",30,"铩铫铮é“Æ铳铓铵铷铹铼铽é“æ锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢é”Ŗ锫锩锬锱锲锓锶锷é”ø锼锾é”æ镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镔镢镤",8,"é•Æ镱镲镳é”ŗēŸ§ēŸ¬é›‰ē§•ē§­ē§£ē§«ē؆嵇ē؃ē؂ē؞ēؔ"],
-["f040","餈",4,"餎餏餑",28,"é¤Æ",26],
-["f080","é„Š",9,"é„–",12,"鄤鄦鄳é„ø鄹鄻鄾馂馃馉ēعēØ·ē©‘黏馄ē©°ēšˆēšŽēš“ēš™ēš¤ē“žē“ ē”¬éø éø¢éøØ",4,"éø²éø±éø¶éøøéø·éø¹éøŗéø¾é¹é¹‚鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳ē–’ē–”ē––ē– ē–ē–¬ē–£ē–³ē–“ē–øē—„ē–±ē–°ē—ƒē—‚ē—–ē—ē—£ē—Øē—¦ē—¤ē—«ē—§ē˜ƒē—±ē—¼ē—æē˜ē˜€ē˜…ē˜Œē˜—ē˜Šē˜„ē˜˜ē˜•ē˜™"],
-["f140","馌馎馚",10,"馦馧馩",47],
-["f180","駙",32,"ē˜›ē˜¼ē˜¢ē˜ ē™€ē˜­ē˜°ē˜æē˜µē™ƒē˜¾ē˜³ē™ē™žē™”ē™œē™–ē™«ē™ÆēæŠē«¦ē©øē©¹ēŖ€ēŖ†ēŖˆēŖ•ēŖ¦ēŖ ēŖ¬ēŖØēŖ­ēŖ³č”¤č”©č”²č”½č”æč¢‚č¢¢č£†č¢·č¢¼č£‰č£¢č£Žč££č£„č£±č¤šč£¼č£Øč£¾č£°č¤”č¤™č¤“č¤›č¤Šč¤“č¤«č¤¶č„č„¦č„»ē–‹čƒ„ēš²ēš“ēŸœč€’č€”č€–č€œč€ č€¢č€„耦耧耩č€Øč€±č€‹č€µčƒč†čč’č©č±č¦ƒé”ø颀颃"],
-["f240","é§ŗ",62],
-["f280","éع",32,"é¢‰é¢Œé¢é¢é¢”é¢šé¢›é¢žé¢Ÿé¢”é¢¢é¢„é¢¦č™č™”č™¬č™®č™æč™ŗč™¼č™»čšØčščš‹čš¬čščš§čš£čšŖ蚓蚩蚶蛄蚵蛎蚰čšŗčš±čšÆč›‰č›čš“č›©č›±č›²č›­č›³č›čœ“č›žč›“č›Ÿč›˜č›‘čœƒčœ‡č›øčœˆčœŠčœčœ‰čœ£čœ»čœžčœ„čœ®čœščœ¾čˆčœ“čœ±čœ©čœ·čœæčž‚čœ¢č½č¾č»č č°čŒč®čž‹č“č£č¼č¤č™č„čž“čžÆčžØ蟒"],
-["f340","驚",17,"驲éŖƒéŖ‰éŖéŖŽéŖ”éŖ•éŖ™éŖ¦éŖ©",6,"éŖ²éŖ³éŖ“éŖµéŖ¹éŖ»éŖ½éŖ¾éŖæ髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],
-["f380","髝髞髠髢髣髤髄髧é«Øé«©é«Ŗ髬髮髰",8,"é«ŗ髼",6,"é¬„é¬…é¬†čŸ†čžˆčž…čž­čž—čžƒčž«čŸ„čž¬čžµčž³čŸ‹čŸ“čž½čŸ‘čŸ€čŸŠčŸ›čŸŖčŸ čŸ®č –č “čŸ¾č Šč ›č ”č ¹č ¼ē¼¶ē½‚ē½„ē½…čˆē«ŗē«½ē¬ˆē¬ƒē¬„ē¬•ē¬Šē¬«ē¬ē­‡ē¬øē¬Ŗē¬™ē¬®ē¬±ē¬ ē¬„ē¬¤ē¬³ē¬¾ē¬žē­˜ē­šē­…ē­µē­Œē­ē­ ē­®ē­»ē­¢ē­²ē­±ē®ē®¦ē®§ē®øē®¬ē®ē®Øē®…ē®Ŗē®œē®¢ē®«ē®“ēƑēƁēƌēƝēƚēÆ„ēƦēÆŖē°ŒēƾēƼē°ē°–ē°‹"],
-["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬔鬢鬤",10,"鬰鬱鬳",7,"鬽鬾é¬æ魀魆魊魋魌魎魐魒魓魕",5],
-["f480","魛",32,"ē°Ÿē°Ŗē°¦ē°øē±ē±€č‡¾čˆčˆ‚čˆ„č‡¬č”„čˆ”čˆ¢čˆ£čˆ­čˆÆčˆØ舫čˆøčˆ»čˆ³čˆ“čˆ¾č‰„č‰‰č‰‹č‰č‰šč‰Ÿč‰Øč”¾č¢…č¢ˆč£˜č£Ÿč„žē¾ē¾Ÿē¾§ē¾Æē¾°ē¾²ē±¼ę•‰ē²‘ē²ē²œē²žē²¢ē²²ē²¼ē²½ē³ē³‡ē³Œē³ē³ˆē³…ē³—ē³Ø艮ęšØē¾æēæŽēæ•ēæ„ēæ”ēæ¦ēæ©ēæ®ēæ³ē³øēµ·ē¶¦ē¶®ē¹‡ēŗ›éŗøéŗ“čµ³č¶„č¶”č¶‘č¶±čµ§čµ­č±‡č±‰é…Šé…é…Žé…é…¤"],
-["f540","é­¼",62],
-["f580","é®»",32,"酢酔酰酩é…Æ酽酾酲酓酹醌醅醐醍醑醢醣é†Ŗ醭醮é†Æ醵醓é†ŗč±•é¹¾č¶øč·«čø…č¹™č¹©č¶µč¶æč¶¼č¶ŗč·„č·–č·—č·šč·žč·Žč·č·›č·†č·¬č··č·øč·£č·¹č·»č·¤čø‰č·½čø”čøčøŸčø¬čø®čø£čøÆčøŗč¹€čø¹čøµčø½čø±č¹‰č¹č¹‚č¹‘č¹’č¹Šč¹°č¹¶č¹¼č¹Æč¹“čŗ…čŗčŗ”čŗčŗœčŗžč±øč²‚č²Šč²…č²˜č²”ę–›č§–č§žč§šč§œ"],
-["f640","éƜ",62],
-["f680","鰛",32,"规觫č§ÆčØ¾č¬¦é“é›©é›³é›Æ霆霁霈霏霎éœŖ霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒ēžæ雠銎銮鋈錾éŖ鏊鎏鐾鑫é±æ鲂鲅鲆鲇鲈ēأ鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲄",4,"鲫鲭鲮鲰",7,"é²ŗ鲻鲼鲽鳄鳅鳆鳇鳊鳋"],
-["f740","é°¼",62],
-["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝é²Ŗ鲬é²Æ鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳔鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔éžÆ鞫鞣鞲鞓éŖ±éŖ°éŖ·é¹˜éŖ¶éŖŗéŖ¼é«é«€é«…髂髋髌髑魅魃魇魉魈魍魑é£Ø餍餮鄕鄔髟體髦é«Æ髫髻髭髹鬈鬏鬓鬟鬣éŗ½éŗ¾ēø»éŗ‚éŗ‡éŗˆéŗ‹éŗ’鏖éŗéŗŸé»›é»œé»é» é»Ÿé»¢é»©é»§é»„é»Ŗé»Æ鼢鼬é¼Æ鼹鼷鼽鼾齄"],
-["f840","é³£",62],
-["f880","é“¢",32],
-["f940","鵃",62],
-["f980","鶂",32],
-["fa40","鶣",62],
-["fa80","é·¢",32],
-["fb40","éøƒ",27,"éø¤éø§éø®éø°éø“éø»éø¼é¹€é¹é¹é¹’鹓鹔鹖鹙鹝鹟鹠鹔鹢鹄鹮é¹Æ鹲鹓",9,"éŗ€"],
-["fb80","éŗéŗƒéŗ„éŗ…éŗ†éŗ‰éŗŠéŗŒ",5,"éŗ”",8,"éŗžéŗ ",5,"éŗ§éŗØéŗ©éŗŖ"],
-["fc40","éŗ«",8,"éŗµéŗ¶éŗ·éŗ¹éŗŗéŗ¼éŗæ",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黔黣黤黦é»Ø黫黬黭黮黰",8,"é»ŗ黽é»æ",6],
-["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼔鼣",8,"鼭鼮鼰鼱"],
-["fd40","é¼²",4,"é¼øé¼ŗé¼¼é¼æ",4,"齅",10,"齒",38],
-["fd80","é½¹",5,"龁龂龍",11,"龜龝龞龔",4,"ļ¤¬ļ„¹ļ¦•ļ§§ļ§±"],
-["fe40","ļ،ļ؍ļ؎ļ؏ļؑļؓļؔļؘļ؟ļØ ļØ”ļØ£ļؤļاļØØļØ©"]
-]
diff --git a/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 b/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
deleted file mode 100644
index 2022a007ff..0000000000
--- a/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
+++ /dev/null
@@ -1,273 +0,0 @@
-[
-["0","\u0000",127],
-["8141","ź°‚ź°ƒź°…ź°†ź°‹",4,"ź°˜ź°žź°Ÿź°”ź°¢ź°£ź°„",6,"ź°®ź°²ź°³ź°“"],
-["8161","ź°µź°¶ź°·ź°ŗź°»ź°½ź°¾ź°æź±",9,"ź±Œź±Ž",5,"ź±•"],
-["8181","ź±–ź±—ź±™ź±šź±›ź±",18,"ź±²ź±³ź±µź±¶ź±¹ź±»",4,"ź²‚ź²‡ź²ˆź²ź²Žź²ź²‘ź²’ź²“ź²•",6,"ź²žź²¢",5,"ź²«ź²­ź²®ź²±",6,"ź²ŗź²¾ź²æź³€ź³‚ź³ƒź³…ź³†ź³‡ź³‰ź³Šź³‹ź³",7,"ź³–ź³˜",7,"ź³¢ź³£ź³„ź³¦ź³©ź³«ź³­ź³®ź³²ź³“ź³·",4,"ź³¾ź³æź“ź“‚ź“ƒź“…ź“‡",4,"ź“Žź“ź“’ź““"],
-["8241","ź“”ź“•ź“–ź“—ź“™ź“šź“›ź“ź“žź“Ÿź“”",7,"ź“Ŗź“«ź“®",5],
-["8261","ź“¶ź“·ź“¹ź“ŗź“»ź“½",6,"źµ†źµˆźµŠ",5,"źµ‘źµ’źµ“źµ•źµ–źµ—"],
-["8281","źµ™",7,"źµ¢źµ¤",7,"źµ®źµÆźµ±źµ²źµ·źµøźµ¹źµŗźµ¾ź¶€ź¶ƒ",4,"ź¶Šź¶‹ź¶ź¶Žź¶ź¶‘",10,"ź¶ž",5,"ź¶„",17,"ź¶ø",7,"ź·‚ź·ƒź·…ź·†ź·‡ź·‰",6,"ź·’ź·”",7,"ź·ź·žź·Ÿź·”ź·¢ź·£ź·„",18],
-["8341","ź·ŗź·»ź·½ź·¾źø‚",5,"źøŠźøŒźøŽ",5,"źø•",7],
-["8361","źø",18,"źø²źø³źøµźø¶źø¹źø»źø¼"],
-["8381","źø½źø¾źøæź¹‚ź¹„ź¹‡ź¹ˆź¹‰ź¹‹ź¹ź¹‘ź¹’ź¹“ź¹•ź¹—",4,"ź¹žź¹¢ź¹£ź¹¤ź¹¦ź¹§ź¹Ŗź¹«ź¹­ź¹®ź¹Æź¹±",6,"ź¹ŗź¹¾",5,"źŗ†",5,"źŗ",46,"źŗæź»ź»‚ź»ƒź»…",6,"ź»Žź»’",5,"ź»šź»›ź»",8],
-["8441","ź»¦ź»§ź»©ź»Ŗź»¬ź»®",5,"ź»µź»¶ź»·ź»¹ź»ŗź»»ź»½",8],
-["8461","ź¼†ź¼‰ź¼Šź¼‹ź¼Œź¼Žź¼ź¼‘",18],
-["8481","ź¼¤",7,"ź¼®ź¼Æź¼±ź¼³ź¼µ",6,"ź¼¾ź½€ź½„ź½…ź½†ź½‡ź½Š",5,"ź½‘",10,"ź½ž",5,"ź½¦",18,"ź½ŗ",5,"ź¾ź¾‚ź¾ƒź¾…ź¾†ź¾‡ź¾‰",6,"ź¾’ź¾“ź¾”ź¾–",5,"ź¾",26,"ź¾ŗź¾»ź¾½ź¾¾"],
-["8541","ź¾æźæ",5,"źæŠźæŒźæ",4,"źæ•",6,"źæ",4],
-["8561","źæ¢",5,"źæŖ",5,"źæ²źæ³źæµźæ¶źæ·źæ¹",6,"ė€‚ė€ƒ"],
-["8581","ė€…",6,"ė€ė€Žė€ė€‘ė€’ė€“ė€•",6,"ė€ž",9,"ė€©",26,"ė†ė‡ė‰ė‹ėėėė‘ė’ė–ė˜ėšė›ėœėž",29,"ė¾ėæė‚ė‚‚ė‚ƒė‚…",6,"ė‚Žė‚ė‚’",5,"ė‚›ė‚ė‚žė‚£ė‚¤"],
-["8641","ė‚„ė‚¦ė‚§ė‚Ŗė‚°ė‚²ė‚¶ė‚·ė‚¹ė‚ŗė‚»ė‚½",6,"ėƒ†ėƒŠ",5,"ėƒ’"],
-["8661","ėƒ“ėƒ•ėƒ–ėƒ—ėƒ™",6,"ėƒ”ėƒ¢ėƒ£ėƒ¤ėƒ¦",10],
-["8681","ėƒ±",22,"ė„Šė„ė„Žė„ė„‘ė„”ė„•ė„–ė„—ė„šė„ž",4,"ė„¦ė„§ė„©ė„Ŗė„«ė„­",6,"ė„¶ė„ŗ",5,"ė…‚ė…ƒė……ė…†ė…‡ė…‰",6,"ė…’ė…“ė…–ė…—ė…™ė…šė…›ė…ė…žė…Ÿė…”",22,"ė…ŗė…»ė…½ė…¾ė…æė†ė†ƒ",4,"ė†Šė†Œė†Žė†ė†ė†‘ė†•ė†–ė†—ė†™ė†šė†›ė†"],
-["8741","ė†ž",9,"ė†©",15],
-["8761","ė†¹",18,"ė‡ė‡Žė‡ė‡‘ė‡’ė‡“ė‡•"],
-["8781","ė‡–",5,"ė‡žė‡ ",7,"ė‡Ŗė‡«ė‡­ė‡®ė‡Æė‡±",7,"ė‡ŗė‡¼ė‡¾",5,"ėˆ†ėˆ‡ėˆ‰ėˆŠėˆ",6,"ėˆ–ėˆ˜ėˆš",5,"ėˆ”",18,"ėˆµ",6,"ėˆ½",26,"ė‰™ė‰šė‰›ė‰ė‰žė‰Ÿė‰”",6,"ė‰Ŗ",4],
-["8841","ė‰Æ",4,"ė‰¶",5,"ė‰½",6,"ėŠ†ėŠ‡ėŠˆėŠŠ",4],
-["8861","ėŠėŠ’ėŠ“ėŠ•ėŠ–ėŠ—ėŠ›",4,"ėŠ¢ėŠ¤ėŠ§ėŠØėŠ©ėŠ«ėŠ­ėŠ®ėŠÆėŠ±ėŠ²ėŠ³ėŠµėŠ¶ėŠ·"],
-["8881","ėŠø",15,"ė‹Šė‹‹ė‹ė‹Žė‹ė‹‘ė‹“",4,"ė‹šė‹œė‹žė‹Ÿė‹ ė‹”ė‹£ė‹§ė‹©ė‹Ŗė‹°ė‹±ė‹²ė‹¶ė‹¼ė‹½ė‹¾ėŒ‚ėŒƒėŒ…ėŒ†ėŒ‡ėŒ‰",6,"ėŒ’ėŒ–",5,"ėŒ",54,"ė—ė™ėšėė ė”ė¢ė£"],
-["8941","ė¦ėØėŖė¬ė­ėÆė²ė³ėµė¶ė·ė¹",6,"ėŽ‚ėŽ†",5,"ėŽ"],
-["8961","ėŽŽėŽėŽ‘ėŽ’ėŽ“ėŽ•",10,"ėŽ¢",5,"ėŽ©ėŽŖėŽ«ėŽ­"],
-["8981","ėŽ®",21,"ė†ė‡ė‰ėŠėėė‘ė’ė“ė–ė˜ėšėœėžėŸė”ė¢ė£ė„ė¦ė§ė©",18,"ė½",18,"ė‘",6,"ė™ėšė›ėėžėŸė”",6,"ėŖė¬",7,"ėµ",15],
-["8a41","ė‘…",10,"ė‘’ė‘“ė‘•ė‘–ė‘—ė‘™",6,"ė‘¢ė‘¤ė‘¦"],
-["8a61","ė‘§",4,"ė‘­",18,"ė’ė’‚"],
-["8a81","ė’ƒ",4,"ė’‰",19,"ė’ž",5,"ė’„ė’¦ė’§ė’©ė’Ŗė’«ė’­",7,"ė’¶ė’øė’ŗ",5,"ė“ė“‚ė“ƒė“…ė“†ė“‡ė“‰",6,"ė“‘ė“’ė““ė“”ė“–",5,"ė“žė“Ÿė“”ė“¢ė“„ė“§",4,"ė“®ė“°ė“²",5,"ė“¹",26,"ė”–ė”—ė”™ė”šė”"],
-["8b41","ė”ž",5,"ė”¦ė”«",4,"ė”²ė”³ė”µė”¶ė”·ė”¹",6,"ė•‚ė•†"],
-["8b61","ė•‡ė•ˆė•‰ė•Šė•Žė•ė•‘ė•’ė•“ė••",6,"ė•žė•¢",8],
-["8b81","ė•«",52,"ė–¢ė–£ė–„ė–¦ė–§ė–©ė–¬ė–­ė–®ė–Æė–²ė–¶",4,"ė–¾ė–æė—ė—‚ė—ƒė—…",6,"ė—Žė—’",5,"ė—™",18,"ė—­",18],
-["8c41","ė˜€",15,"ė˜’ė˜“ė˜•ė˜–ė˜—ė˜™",4],
-["8c61","ė˜ž",6,"ė˜¦",5,"ė˜­",6,"ė˜µ",5],
-["8c81","ė˜»",12,"ė™‰",26,"ė™„ė™¦ė™§ė™©",50,"ėšžėšŸėš”ėš¢ėš£ėš„",5,"ėš­ėš®ėšÆėš°ėš²",16],
-["8d41","ė›ƒ",16,"ė›•",8],
-["8d61","ė›ž",17,"ė›±ė›²ė›³ė›µė›¶ė›·ė›¹ė›ŗ"],
-["8d81","ė›»",4,"ėœ‚ėœƒėœ„ėœ†",33,"ėœŖėœ«ėœ­ėœ®ėœ±",6,"ėœŗėœ¼",7,"ė…ė†ė‡ė‰ėŠė‹ė",6,"ė–",9,"ė”ė¢ė£ė„ė¦ė§ė©",6,"ė²ė“ė¶",5,"ė¾ėæėžėž‚ėžƒėž…",6,"ėžŽėž“ėž”ėž•ėžšėž›ėžėžž"],
-["8e41","ėžŸėž”",6,"ėžŖėž®",5,"ėž¶ėž·ėž¹",8],
-["8e61","ėŸ‚",4,"ėŸˆėŸŠ",19],
-["8e81","ėŸž",13,"ėŸ®ėŸÆėŸ±ėŸ²ėŸ³ėŸµ",6,"ėŸ¾ė ‚",4,"ė Šė ‹ė ė Žė ė ‘",6,"ė šė œė ž",5,"ė ¦ė §ė ©ė Ŗė «ė ­",6,"ė ¶ė ŗ",5,"ė”ė”‚ė”ƒė”…",11,"ė”’ė””",7,"ė”žė”Ÿė””ė”¢ė”£ė”„",6,"ė”®ė”°ė”²",5,"ė”¹ė”ŗė”»ė”½",7],
-["8f41","ė¢…",7,"ė¢Ž",17],
-["8f61","ė¢ ",7,"ė¢©",6,"ė¢±ė¢²ė¢³ė¢µė¢¶ė¢·ė¢¹",4],
-["8f81","ė¢¾ė¢æė£‚ė£„ė£†",5,"ė£ė£Žė£ė£‘ė£’ė£“ė£•",7,"ė£žė£ ė£¢",5,"ė£Ŗė£«ė£­ė£®ė£Æė£±",6,"ė£ŗė£¼ė£¾",5,"ė¤…",18,"ė¤™",6,"ė¤”",26,"ė¤¾ė¤æė„ė„‚ė„ƒė„…",6,"ė„ė„Žė„ė„’",5],
-["9041","ė„šė„›ė„ė„žė„Ÿė„”",6,"ė„Ŗė„¬ė„®",5,"ė„¶ė„·ė„¹ė„ŗė„»ė„½"],
-["9061","ė„¾",5,"ė¦†ė¦ˆė¦‹ė¦Œė¦",15],
-["9081","ė¦Ÿ",12,"ė¦®ė¦Æė¦±ė¦²ė¦³ė¦µ",6,"ė¦¾ė§€ė§‚",5,"ė§Šė§‹ė§ė§“",4,"ė§šė§œė§Ÿė§ ė§¢ė§¦ė§§ė§©ė§Ŗė§«ė§­",6,"ė§¶ė§»",4,"ė؂",5,"ė؉",11,"ėؖ",33,"ėØŗėØ»ėؽėؾėØæė©ė©ƒė©„ė©…ė©†"],
-["9141","ė©‡ė©Šė©Œė©ė©ė©‘ė©’ė©–ė©—ė©™ė©šė©›ė©",6,"ė©¦ė©Ŗ",5],
-["9161","ė©²ė©³ė©µė©¶ė©·ė©¹",9,"ėŖ†ėŖˆėŖ‰ėŖŠėŖ‹ėŖ",5],
-["9181","ėŖ“",20,"ėŖŖėŖ­ėŖ®ėŖÆėŖ±ėŖ³",4,"ėŖŗėŖ¼ėŖ¾",5,"ė«…ė«†ė«‡ė«‰",14,"ė«š",33,"ė«½ė«¾ė«æė¬ė¬‚ė¬ƒė¬…",7,"ė¬Žė¬ė¬’",5,"ė¬™ė¬šė¬›ė¬ė¬žė¬Ÿė¬”",6],
-["9241","ė¬Øė¬Ŗė¬¬",7,"ė¬·ė¬¹ė¬ŗė¬æ",4,"ė­†ė­ˆė­Šė­‹ė­Œė­Žė­‘ė­’"],
-["9261","ė­“ė­•ė­–ė­—ė­™",7,"ė­¢ė­¤",7,"ė­­",4],
-["9281","ė­²",21,"ė®‰ė®Šė®‹ė®ė®Žė®ė®‘",18,"ė®„ė®¦ė®§ė®©ė®Ŗė®«ė®­",6,"ė®µė®¶ė®ø",7,"ėƁėƂėƃėƅėƆėƇėƉ",6,"ėƑėƒėƔ",35,"ėÆŗėÆ»ėƽėƾė°"],
-["9341","ė°ƒ",4,"ė°Šė°Žė°ė°’ė°“ė°™ė°šė° ė°”ė°¢ė°£ė°¦ė°Øė°Ŗė°«ė°¬ė°®ė°Æė°²ė°³ė°µ"],
-["9361","ė°¶ė°·ė°¹",6,"ė±‚ė±†ė±‡ė±ˆė±Šė±‹ė±Žė±ė±‘",8],
-["9381","ė±šė±›ė±œė±ž",37,"ė²†ė²‡ė²‰ė²Šė²ė²",4,"ė²–ė²˜ė²›",4,"ė²¢ė²£ė²„ė²¦ė²©",6,"ė²²ė²¶",5,"ė²¾ė²æė³ė³‚ė³ƒė³…",7,"ė³Žė³’ė³“ė³”ė³–ė³—ė³™ė³šė³›ė³",22,"ė³·ė³¹ė³ŗė³»ė³½"],
-["9441","ė³¾",5,"ė“†ė“ˆė“Š",5,"ė“‘ė“’ė““ė“•",8],
-["9461","ė“ž",5,"ė“„",6,"ė“­",12],
-["9481","ė“ŗ",5,"ėµ",6,"ėµŠėµ‹ėµėµŽėµėµ‘",6,"ėµš",9,"ėµ„ėµ¦ėµ§ėµ©",22,"ė¶‚ė¶ƒė¶…ė¶†ė¶‹",4,"ė¶’ė¶”ė¶–ė¶—ė¶˜ė¶›ė¶",6,"ė¶„",10,"ė¶±",6,"ė¶¹",24],
-["9541","ė·’ė·“ė·–ė·—ė·™ė·šė·›ė·",11,"ė·Ŗ",5,"ė·±"],
-["9561","ė·²ė·³ė·µė·¶ė··ė·¹",6,"ėøėø‚ėø„ėø†",5,"ėøŽėøėø‘ėø’ėø“"],
-["9581","ėø•",6,"ėøžėø ",35,"ė¹†ė¹‡ė¹‰ė¹Šė¹‹ė¹ė¹",4,"ė¹–ė¹˜ė¹œė¹ė¹žė¹Ÿė¹¢ė¹£ė¹„ė¹¦ė¹§ė¹©ė¹«",4,"ė¹²ė¹¶",4,"ė¹¾ė¹æėŗėŗ‚ėŗƒėŗ…",6,"ėŗŽėŗ’",5,"ėŗš",13,"ėŗ©",14],
-["9641","ėŗø",23,"ė»’ė»“"],
-["9661","ė»•ė»–ė»™",6,"ė»”ė»¢ė»¦",5,"ė»­",8],
-["9681","ė»¶",10,"ė¼‚",5,"ė¼Š",13,"ė¼šė¼ž",33,"ė½‚ė½ƒė½…ė½†ė½‡ė½‰",6,"ė½’ė½“ė½”ė½–",44],
-["9741","ė¾ƒ",16,"ė¾•",8],
-["9761","ė¾ž",17,"ė¾±",7],
-["9781","ė¾¹",11,"ėæ†",5,"ėæŽėæėæ‘ėæ’ėæ“ėæ•",6,"ėæėæžėæ ėæ¢",89,"ģ€½ģ€¾ģ€æ"],
-["9841","ģ€",16,"ģ’",5,"ģ™ģšģ›"],
-["9861","ģģžģŸģ”",6,"ģŖ",15],
-["9881","ģŗ",21,"ģ‚’ģ‚“ģ‚•ģ‚–ģ‚—ģ‚™",6,"ģ‚¢ģ‚¤ģ‚¦",5,"ģ‚®ģ‚±ģ‚²ģ‚·",4,"ģ‚¾ģƒ‚ģƒƒģƒ„ģƒ†ģƒ‡ģƒŠģƒ‹ģƒģƒŽģƒģƒ‘",6,"ģƒšģƒž",5,"ģƒ¦ģƒ§ģƒ©ģƒŖģƒ«ģƒ­",6,"ģƒ¶ģƒøģƒŗ",5,"ģ„ģ„‚ģ„ƒģ„…ģ„†ģ„‡ģ„‰",6,"ģ„‘ģ„’ģ„“ģ„”ģ„–",5,"ģ„”ģ„¢ģ„„ģ„Øģ„©ģ„Ŗģ„«ģ„®"],
-["9941","ģ„²ģ„³ģ„“ģ„µģ„·ģ„ŗģ„»ģ„½ģ„¾ģ„æģ…",6,"ģ…Šģ…Ž",5,"ģ…–ģ…—"],
-["9961","ģ…™ģ…šģ…›ģ…",6,"ģ…¦ģ…Ŗ",5,"ģ…±ģ…²ģ…³ģ…µģ…¶ģ…·ģ…¹ģ…ŗģ…»"],
-["9981","ģ…¼",8,"ģ††",5,"ģ†ģ†‘ģ†’ģ†“ģ†•ģ†—",4,"ģ†žģ† ģ†¢ģ†£ģ†¤ģ†¦ģ†§ģ†Ŗģ†«ģ†­ģ†®ģ†Æģ†±",11,"ģ†¾",5,"ģ‡…ģ‡†ģ‡‡ģ‡‰ģ‡Šģ‡‹ģ‡",6,"ģ‡•ģ‡–ģ‡™",6,"ģ‡”ģ‡¢ģ‡£ģ‡„ģ‡¦ģ‡§ģ‡©",6,"ģ‡²ģ‡“",7,"ģ‡¾ģ‡æģˆģˆ‚ģˆƒģˆ…",6,"ģˆŽģˆģˆ’",5,"ģˆšģˆ›ģˆģˆžģˆ”ģˆ¢ģˆ£"],
-["9a41","ģˆ¤ģˆ„ģˆ¦ģˆ§ģˆŖģˆ¬ģˆ®ģˆ°ģˆ³ģˆµ",16],
-["9a61","ģ‰†ģ‰‡ģ‰‰",6,"ģ‰’ģ‰“ģ‰•ģ‰–ģ‰—ģ‰™",6,"ģ‰”ģ‰¢ģ‰£ģ‰¤ģ‰¦"],
-["9a81","ģ‰§",4,"ģ‰®ģ‰Æģ‰±ģ‰²ģ‰³ģ‰µ",6,"ģ‰¾ģŠ€ģŠ‚",5,"ģŠŠ",5,"ģŠ‘",6,"ģŠ™ģŠšģŠœģŠž",5,"ģŠ¦ģŠ§ģŠ©ģŠŖģŠ«ģŠ®",5,"ģŠ¶ģŠøģŠŗ",33,"ģ‹žģ‹Ÿģ‹”ģ‹¢ģ‹„",5,"ģ‹®ģ‹°ģ‹²ģ‹³ģ‹“ģ‹µģ‹·ģ‹ŗģ‹½ģ‹¾ģ‹æģŒ",6,"ģŒŠģŒ‹ģŒŽģŒ"],
-["9b41","ģŒģŒ‘ģŒ’ģŒ–ģŒ—ģŒ™ģŒšģŒ›ģŒ",6,"ģŒ¦ģŒ§ģŒŖ",8],
-["9b61","ģŒ³",17,"ģ†",7],
-["9b81","ģŽ",25,"ģŖģ«ģ­ģ®ģÆģ±ģ³",4,"ģŗģ»ģ¾",5,"ģŽ…ģŽ†ģŽ‡ģŽ‰ģŽŠģŽ‹ģŽ",50,"ģ",22,"ģš"],
-["9c41","ģ›ģģžģ”ģ£",4,"ģŖģ«ģ¬ģ®",5,"ģ¶ģ·ģ¹",5],
-["9c61","ģæ",8,"ģ‰",6,"ģ‘",9],
-["9c81","ģ›",8,"ģ„",6,"ģ­ģ®ģÆģ±ģ²ģ³ģµ",6,"ģ¾",9,"ģ‘‰",26,"ģ‘¦ģ‘§ģ‘©ģ‘Ŗģ‘«ģ‘­",6,"ģ‘¶ģ‘·ģ‘øģ‘ŗ",5,"ģ’",18,"ģ’•",6,"ģ’",12],
-["9d41","ģ’Ŗ",13,"ģ’¹ģ’ŗģ’»ģ’½",8],
-["9d61","ģ“†",25],
-["9d81","ģ“ ",8,"ģ“Ŗ",5,"ģ“²ģ“³ģ“µģ“¶ģ“·ģ“¹ģ“»ģ“¼ģ“½ģ“¾ģ”‚",9,"ģ”ģ”Žģ”ģ”‘ģ”’ģ”“ģ”•",6,"ģ”",10,"ģ”Ŗģ”«ģ”­ģ”®ģ”Æģ”±",6,"ģ”ŗģ”¼ģ”¾",5,"ģ•†ģ•‡ģ•‹ģ•ģ•ģ•‘ģ•’ģ•–ģ•šģ•›ģ•œģ•Ÿģ•¢ģ•£ģ•„ģ•¦ģ•§ģ•©",6,"ģ•²ģ•¶",5,"ģ•¾ģ•æģ–ģ–‚ģ–ƒģ–…ģ–†ģ–ˆģ–‰ģ–Šģ–‹ģ–Žģ–ģ–’ģ–“ģ–”"],
-["9e41","ģ––ģ–™ģ–šģ–›ģ–ģ–žģ–Ÿģ–”",7,"ģ–Ŗ",9,"ģ–¶"],
-["9e61","ģ–·ģ–ŗģ–æ",4,"ģ—‹ģ—ģ—ģ—’ģ—“ģ—•ģ—–ģ——ģ—™",6,"ģ—¢ģ—¤ģ—¦ģ—§"],
-["9e81","ģ—Øģ—©ģ—Ŗģ—«ģ—Æģ—±ģ—²ģ—³ģ—µģ—øģ—¹ģ—ŗģ—»ģ˜‚ģ˜ƒģ˜„ģ˜‰ģ˜Šģ˜‹ģ˜ģ˜Žģ˜ģ˜‘",6,"ģ˜šģ˜",6,"ģ˜¦ģ˜§ģ˜©ģ˜Ŗģ˜«ģ˜Æģ˜±ģ˜²ģ˜¶ģ˜øģ˜ŗģ˜¼ģ˜½ģ˜¾ģ˜æģ™‚ģ™ƒģ™…ģ™†ģ™‡ģ™‰",6,"ģ™’ģ™–",5,"ģ™žģ™Ÿģ™”",10,"ģ™­ģ™®ģ™°ģ™²",5,"ģ™ŗģ™»ģ™½ģ™¾ģ™æģš",6,"ģšŠģšŒģšŽ",5,"ģš–ģš—ģš™ģššģš›ģš",6,"ģš¦"],
-["9f41","ģšØģšŖ",5,"ģš²ģš³ģšµģš¶ģš·ģš»",4,"ģ›‚ģ›„ģ›†",5,"ģ›Ž"],
-["9f61","ģ›ģ›‘ģ›’ģ›“ģ›•",6,"ģ›žģ›Ÿģ›¢",5,"ģ›Ŗģ›«ģ›­ģ›®ģ›Æģ›±ģ›²"],
-["9f81","ģ›³",4,"ģ›ŗģ›»ģ›¼ģ›¾",5,"ģœ†ģœ‡ģœ‰ģœŠģœ‹ģœ",6,"ģœ–ģœ˜ģœš",5,"ģœ¢ģœ£ģœ„ģœ¦ģœ§ģœ©",6,"ģœ²ģœ“ģœ¶ģœøģœ¹ģœŗģœ»ģœ¾ģœæģģ‚ģƒģ…",4,"ģ‹ģŽģģ™ģšģ›ģģžģŸģ”",6,"ģ©ģŖģ¬",7,"ģ¶ģ·ģ¹ģŗģ»ģæģž€ģžģž‚ģž†ģž‹ģžŒģžģžģž’ģž“ģž•ģž™ģž›",4,"ģž¢ģž§",4,"ģž®ģžÆģž±ģž²ģž³ģžµģž¶ģž·"],
-["a041","ģžøģž¹ģžŗģž»ģž¾ģŸ‚",5,"ģŸŠģŸ‹ģŸģŸģŸ‘",6,"ģŸ™ģŸšģŸ›ģŸœ"],
-["a061","ģŸž",5,"ģŸ„ģŸ¦ģŸ§ģŸ©ģŸŖģŸ«ģŸ­",13],
-["a081","ģŸ»",4,"ģ ‚ģ ƒģ …ģ †ģ ‡ģ ‰ģ ‹",4,"ģ ’ģ ”ģ —",4,"ģ žģ Ÿģ ”ģ ¢ģ £ģ „",6,"ģ ®ģ °ģ ²",5,"ģ ¹ģ ŗģ »ģ ½ģ ¾ģ æģ”",6,"ģ”Šģ”‹ģ”Ž",5,"ģ”•",26,"ģ”²ģ”³ģ”µģ”¶ģ”·ģ”¹ģ”»",4,"ģ¢‚ģ¢„ģ¢ˆģ¢‰ģ¢Šģ¢Ž",5,"ģ¢•",7,"ģ¢žģ¢ ģ¢¢ģ¢£ģ¢¤"],
-["a141","ģ¢„ģ¢¦ģ¢§ģ¢©",18,"ģ¢¾ģ¢æģ£€ģ£"],
-["a161","ģ£‚ģ£ƒģ£…ģ£†ģ£‡ģ£‰ģ£Šģ£‹ģ£",6,"ģ£–ģ£˜ģ£š",5,"ģ£¢ģ££ģ£„"],
-["a181","ģ£¦",14,"ģ£¶",5,"ģ£¾ģ£æģ¤ģ¤‚ģ¤ƒģ¤‡",4,"ģ¤Žć€€ć€ć€‚Ā·ā€„ā€¦ĀØ怃Ā­ā€•āˆ„ļ¼¼āˆ¼ā€˜ā€™ā€œā€ć€”ć€•ć€ˆ",9,"Ā±Ć—Ć·ā‰ ā‰¤ā‰„āˆžāˆ“Ā°ā€²ā€³ā„ƒā„«ļæ ļæ”ļæ„ā™‚ā™€āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’Ā§ā€»ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā†’ā†ā†‘ā†“ā†”怓ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©āˆ§āˆØļæ¢"],
-["a241","ģ¤ģ¤’",5,"ģ¤™",18],
-["a261","ģ¤­",6,"ģ¤µ",18],
-["a281","ģ„ˆ",7,"ģ„’ģ„“ģ„•ģ„–ģ„—ģ„™",6,"ģ„¢ģ„¤",7,"ģ„­ģ„®ģ„Æā‡’ā‡”āˆ€āˆƒĀ“ļ½žĖ‡Ė˜ĖĖšĖ™ĀøĖ›Ā”ĀæĖāˆ®āˆ‘āˆĀ¤ā„‰ā€°ā—ā—€ā–·ā–¶ā™¤ā™ ā™”ā™„ā™§ā™£āŠ™ā—ˆā–£ā—ā—‘ā–’ā–¤ā–„ā–Øā–§ā–¦ā–©ā™Øā˜ā˜Žā˜œā˜žĀ¶ā€ ā€”ā†•ā†—ā†™ā†–ā†˜ā™­ā™©ā™Ŗā™¬ć‰æ戜ā„–ć‡ā„¢ć‚ć˜ā„”ā‚¬Ā®"],
-["a341","ģ„±ģ„²ģ„³ģ„µ",6,"ģ„½",10,"ģ¦Šģ¦‹ģ¦ģ¦Žģ¦"],
-["a361","ģ¦‘",6,"ģ¦šģ¦œģ¦ž",16],
-["a381","ģ¦Æ",16,"ģ§‚ģ§ƒģ§…ģ§†ģ§‰ģ§‹",4,"ģ§’ģ§”ģ§—ģ§˜ģ§›ļ¼",58,"ļæ¦ļ¼½",32,"ļæ£"],
-["a441","ģ§žģ§Ÿģ§”ģ§£ģ§„ģ§¦ģ§Øģ§©ģ§Ŗģ§«ģ§®ģ§²",5,"ģ§ŗģ§»ģ§½ģ§¾ģ§æģ؁ģ؂ģ؃ģ؄"],
-["a461","ģ؅ģ؆ģ؇ģ؊ģ؎",5,"ģؕģؖģؗģؙ",12],
-["a481","ģئģاģØØģØŖ",28,"愱",93],
-["a541","ģ©‡",4,"ģ©Žģ©ģ©‘ģ©’ģ©“ģ©•",6,"ģ©žģ©¢",5,"ģ©©ģ©Ŗ"],
-["a561","ģ©«",17,"ģ©¾",5,"ģŖ…ģŖ†"],
-["a581","ģŖ‡",16,"ģŖ™",14,"ā…°",9],
-["a5b0","ā… ",9],
-["a5c1","Ī‘",16,"Ī£",6],
-["a5e1","Ī±",16,"Ļƒ",6],
-["a641","ģŖØ",19,"ģŖ¾ģŖæģ«ģ«‚ģ«ƒģ«…"],
-["a661","ģ«†",5,"ģ«Žģ«ģ«’ģ«”ģ«•ģ«–ģ«—ģ«š",5,"ģ«”",6],
-["a681","ģ«Øģ«©ģ«Ŗģ««ģ«­",6,"ģ«µ",18,"ģ¬‰ģ¬Šā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚ā”’ā”‘ā”šā”™ā”–ā”•ā”Žā”ā”žā”Ÿā””ā”¢ā”¦ā”§ā”©ā”Ŗā”­ā”®ā”±ā”²ā”µā”¶ā”¹ā”ŗā”½ā”¾ā•€ā•ā•ƒ",7],
-["a741","ģ¬‹",4,"ģ¬‘ģ¬’ģ¬“ģ¬•ģ¬–ģ¬—ģ¬™",6,"ģ¬¢",7],
-["a761","ģ¬Ŗ",22,"ģ­‚ģ­ƒģ­„"],
-["a781","ģ­…ģ­†ģ­‡ģ­Šģ­‹ģ­ģ­Žģ­ģ­‘",6,"ģ­šģ­›ģ­œģ­ž",5,"ģ­„",7,"掕掖掗ā„“ćŽ˜ć„ćŽ£ćŽ¤ćŽ„掦掙",9,"揊掍掎掏描授掉揈控ćŽØ掰",9,"掀",4,"ćŽŗ",5,"掐",4,"ā„¦ć€ććŽŠćŽ‹ćŽŒć–ć…ćŽ­ćŽ®ćŽÆć›ćŽ©ćŽŖćŽ«ćŽ¬ććć“ćƒć‰ćœć†"],
-["a841","ģ­­",10,"ģ­ŗ",14],
-["a861","ģ®‰",18,"ģ®",6],
-["a881","ģ®¤",19,"ģ®¹",11,"ƆƐĀŖĦ"],
-["a8a6","IJ"],
-["a8a8","ÄæÅĆ˜Å’ĀŗĆžÅ¦ÅŠ"],
-["a8b1","扠",27,"ā“",25,"ā‘ ",14,"Ā½ā…“ā…”Ā¼Ā¾ā…›ā…œā…ā…ž"],
-["a941","ģƅ",14,"ģƕ",10],
-["a961","ģÆ ģÆ”ģÆ¢ģÆ£ģÆ„ģƦģÆØģÆŖ",18],
-["a981","ģƽ",14,"ģ°Žģ°ģ°‘ģ°’ģ°“ģ°•",6,"ģ°žģ°Ÿģ° ģ°£ģ°¤Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøŀłĆøÅ“ĆŸĆ¾Å§Å‹Å‰ćˆ€",27,"ā’œ",25,"ā‘“",14,"Ā¹Ā²Ā³ā“āæā‚ā‚‚ā‚ƒā‚„"],
-["aa41","ģ°„ģ°¦ģ°Ŗģ°«ģ°­ģ°Æģ°±",6,"ģ°ŗģ°æ",4,"ģ±†ģ±‡ģ±‰ģ±Šģ±‹ģ±ģ±Ž"],
-["aa61","ģ±",4,"ģ±–ģ±š",5,"ģ±”ģ±¢ģ±£ģ±„ģ±§ģ±©",6,"ģ±±ģ±²"],
-["aa81","ģ±³ģ±“ģ±¶",29,"恁",82],
-["ab41","ģ²”ģ²•ģ²–ģ²—ģ²šģ²›ģ²ģ²žģ²Ÿģ²”",6,"ģ²Ŗģ²®",5,"ģ²¶ģ²·ģ²¹"],
-["ab61","ģ²ŗģ²»ģ²½",6,"ģ³†ģ³ˆģ³Š",5,"ģ³‘ģ³’ģ³“ģ³•",5],
-["ab81","ģ³›",8,"ģ³„",6,"ģ³­ģ³®ģ³Æģ³±",12,"ć‚”",85],
-["ac41","ģ³¾ģ³æģ“€ģ“‚",5,"ģ“Šģ“‹ģ“ģ“Žģ“ģ“‘",6,"ģ“šģ“œģ“žģ“Ÿģ“ "],
-["ac61","ģ“”ģ“¢ģ“£ģ“„ģ“¦ģ“§ģ“©ģ“Ŗģ“«ģ“­",11,"ģ“ŗ",4],
-["ac81","ģ“æ",28,"ģµģµžģµŸŠ",5,"ŠŠ–",25],
-["acd1","Š°",5,"ёŠ¶",25],
-["ad41","ģµ”ģµ¢ģµ£ģµ„",6,"ģµ®ģµ°ģµ²",5,"ģµ¹",7],
-["ad61","ģ¶",6,"ģ¶‰",10,"ģ¶–ģ¶—ģ¶™ģ¶šģ¶›ģ¶ģ¶žģ¶Ÿ"],
-["ad81","ģ¶ ģ¶”ģ¶¢ģ¶£ģ¶¦ģ¶Øģ¶Ŗ",5,"ģ¶±",18,"ģ·…"],
-["ae41","ģ·†",5,"ģ·ģ·Žģ·ģ·‘",16],
-["ae61","ģ·¢",5,"ģ·©ģ·Ŗģ·«ģ·­ģ·®ģ·Æģ·±",6,"ģ·ŗģ·¼ģ·¾",4],
-["ae81","ģøƒģø…ģø†ģø‡ģø‰ģøŠģø‹ģø",6,"ģø•ģø–ģø—ģø˜ģøš",5,"ģø¢ģø£ģø„ģø¦ģø§ģø©ģøŖģø«"],
-["af41","ģø¬ģø­ģø®ģøÆģø²ģø“ģø¶",19],
-["af61","ģ¹Š",13,"ģ¹šģ¹›ģ¹ģ¹žģ¹¢",5,"ģ¹Ŗģ¹¬"],
-["af81","ģ¹®",5,"ģ¹¶ģ¹·ģ¹¹ģ¹ŗģ¹»ģ¹½",6,"ģŗ†ģŗˆģŗŠ",5,"ģŗ’ģŗ“ģŗ•ģŗ–ģŗ—ģŗ™"],
-["b041","ģŗš",5,"ģŗ¢ģŗ¦",5,"ģŗ®",12],
-["b061","ģŗ»",5,"ģ»‚",19],
-["b081","ģ»–",13,"ģ»¦ģ»§ģ»©ģ»Ŗģ»­",6,"ģ»¶ģ»ŗ",5,"ź°€ź°ź°„ź°‡ź°ˆź°‰ź°Šź°",7,"ź°™",4,"ź° ź°¤ź°¬ź°­ź°Æź°°ź°±ź°øź°¹ź°¼ź±€ź±‹ź±ź±”ź±˜ź±œź±°ź±±ź±“ź±·ź±øź±ŗź²€ź²ź²ƒź²„ź²…ź²†ź²‰ź²Šź²‹ź²Œź²ź²”ź²œź²ź²Ÿź² ź²”ź²Øź²©ź²Ŗź²¬ź²Æź²°ź²øź²¹ź²»ź²¼ź²½ź³ź³„ź³ˆź³Œź³•ź³—ź³ ź³”ź³¤ź³§ź³Øź³Ŗź³¬ź³Æź³°ź³±ź³³ź³µź³¶ź³¼ź³½ź“€ź“„ź“†"],
-["b141","ģ¼‚ģ¼ƒģ¼…ģ¼†ģ¼‡ģ¼‰",6,"ģ¼’ģ¼”ģ¼–",5,"ģ¼ģ¼žģ¼Ÿģ¼”ģ¼¢ģ¼£"],
-["b161","ģ¼„",6,"ģ¼®ģ¼²",5,"ģ¼¹",11],
-["b181","ģ½…",14,"ģ½–ģ½—ģ½™ģ½šģ½›ģ½",6,"ģ½¦ģ½Øģ½Ŗģ½«ģ½¬ź“Œź“ź“ź“‘ź“˜ź“œź“ ź“©ź“¬ź“­ź““ź“µź“øź“¼źµ„źµ…źµ‡źµ‰źµźµ”źµ˜źµ”źµ£źµ¬źµ­źµ°źµ³źµ“źµµźµ¶źµ»źµ¼źµ½źµæź¶ź¶‚ź¶ˆź¶‰ź¶Œź¶ź¶œź¶ź¶¤ź¶·ź·€ź·ź·„ź·ˆź·ź·‘ź·“ź·œź· ź·¤ź·øź·¹ź·¼ź·æźø€źøźøˆźø‰źø‹źøźø”źø°źø±źø“źø·źøøźøŗź¹€ź¹ź¹ƒź¹…ź¹†ź¹Šź¹Œź¹ź¹Žź¹ź¹”ź¹–ź¹œź¹ź¹Ÿź¹ ź¹”ź¹„ź¹Øź¹©ź¹¬ź¹°ź¹ø"],
-["b241","ģ½­ģ½®ģ½Æģ½²ģ½³ģ½µģ½¶ģ½·ģ½¹",6,"ģ¾ģ¾‚ģ¾ƒģ¾„ģ¾†",5,"ģ¾"],
-["b261","ģ¾Ž",18,"ģ¾¢",5,"ģ¾©"],
-["b281","ģ¾Ŗ",5,"ģ¾±",18,"ģæ…",6,"ź¹¹ź¹»ź¹¼ź¹½źŗ„źŗ…źŗŒźŗ¼źŗ½źŗ¾ź»€ź»„ź»Œź»ź»ź»ź»‘ź»˜ź»™ź»œź»Øź»«ź»­ź»“ź»øź»¼ź¼‡ź¼ˆź¼ź¼ź¼¬ź¼­ź¼°ź¼²ź¼“ź¼¼ź¼½ź¼æź½ź½‚ź½ƒź½ˆź½‰ź½ź½œź½ź½¤ź½„ź½¹ź¾€ź¾„ź¾ˆź¾ź¾‘ź¾•ź¾œź¾øź¾¹ź¾¼źæ€źæ‡źæˆźæ‰źæ‹źæźæŽźæ”źæœźæØźæ©źæ°źæ±źæ“źæøė€€ė€ė€„ė€Œė€ė€”ė€œė€ė€Øė„ė…ėˆėŠėŒėŽė“ė”ė•ė—ė™"],
-["b341","ģæŒ",19,"ģæ¢ģæ£ģæ„ģæ¦ģæ§ģæ©"],
-["b361","ģæŖ",5,"ģæ²ģæ“ģæ¶",5,"ģæ½ģæ¾ģææķ€ķ€‚ķ€ƒķ€…",5],
-["b381","ķ€‹",5,"ķ€’",5,"ķ€™",19,"ėė¼ė½ė‚€ė‚„ė‚Œė‚ė‚ė‚‘ė‚˜ė‚™ė‚šė‚œė‚Ÿė‚ ė‚”ė‚¢ė‚Øė‚©ė‚«",4,"ė‚±ė‚³ė‚“ė‚µė‚øė‚¼ėƒ„ėƒ…ėƒ‡ėƒˆėƒ‰ėƒėƒ‘ėƒ”ėƒ˜ėƒ ėƒ„ė„ˆė„‰ė„‹ė„Œė„ė„’ė„“ė„˜ė„™ė„›ė„œė„ė„£ė„¤ė„„ė„Øė„¬ė„“ė„µė„·ė„øė„¹ė…€ė…ė…„ė…ˆė…ė…‘ė…”ė…•ė…˜ė…œė… ė…øė…¹ė…¼ė†€ė†‚ė†ˆė†‰ė†‹ė†ė†’ė†“ė†”ė†˜ė†œė†Øė‡Œė‡ė‡”ė‡œė‡"],
-["b441","ķ€®",5,"ķ€¶ķ€·ķ€¹ķ€ŗķ€»ķ€½",6,"ķ†ķˆķŠ",5],
-["b461","ķ‘ķ’ķ“ķ•ķ–ķ—ķ™",6,"ķ”",10,"ķ®ķÆ"],
-["b481","ķ±ķ²ķ³ķµ",6,"ķ¾ķæķ‚€ķ‚‚",18,"ė‡Ÿė‡Øė‡©ė‡¬ė‡°ė‡¹ė‡»ė‡½ėˆ„ėˆ…ėˆˆėˆ‹ėˆŒėˆ”ėˆ•ėˆ—ėˆ™ėˆ ėˆ“ėˆ¼ė‰˜ė‰œė‰ ė‰Øė‰©ė‰“ė‰µė‰¼ėŠ„ėŠ…ėŠ‰ėŠėŠ‘ėŠ”ėŠ˜ėŠ™ėŠšėŠ ėŠ”ėŠ£ėŠ„ėŠ¦ėŠŖėŠ¬ėŠ°ėŠ“ė‹ˆė‹‰ė‹Œė‹ė‹’ė‹˜ė‹™ė‹›ė‹ė‹¢ė‹¤ė‹„ė‹¦ė‹Øė‹«",4,"ė‹³ė‹“ė‹µė‹·",4,"ė‹æėŒ€ėŒėŒ„ėŒˆėŒėŒ‘ėŒ“ėŒ”ėŒ•ėŒœė”ė•ė–ė˜ė›ėœėžėŸė¤ė„"],
-["b541","ķ‚•",14,"ķ‚¦ķ‚§ķ‚©ķ‚Ŗķ‚«ķ‚­",5],
-["b561","ķ‚³ķ‚¶ķ‚øķ‚ŗ",5,"ķƒ‚ķƒƒķƒ…ķƒ†ķƒ‡ķƒŠ",5,"ķƒ’ķƒ–",4],
-["b581","ķƒ›ķƒžķƒŸķƒ”ķƒ¢ķƒ£ķƒ„",6,"ķƒ®ķƒ²",5,"ķƒ¹",11,"ė§ė©ė«ė®ė°ė±ė“ėøėŽ€ėŽėŽƒėŽ„ėŽ…ėŽŒėŽėŽ”ėŽ ėŽ”ėŽØėŽ¬ė„ė…ėˆė‹ėŒėŽėė”ė•ė—ė™ė›ėė ė¤ėØė¼ėė˜ėœė ėØė©ė«ė“ė‘ė‘‘ė‘”ė‘˜ė‘ ė‘”ė‘£ė‘„ė‘¬ė’€ė’ˆė’ė’¤ė’Øė’¬ė’µė’·ė’¹ė“€ė“„ė“ˆė“ė“•ė“œė“ė“ ė“£ė“¤ė“¦ė“¬ė“­ė“Æė“±ė“øė””ė”•ė”˜ė”›ė”œė”¤ė”„ė”§ė”Øė”©ė”Ŗė”°ė”±ė”“ė”ø"],
-["b641","ķ„…",7,"ķ„Ž",17],
-["b661","ķ„ ",15,"ķ„²ķ„³ķ„µķ„¶ķ„·ķ„¹ķ„»ķ„¼ķ„½ķ„¾"],
-["b681","ķ„æķ…‚ķ…†",5,"ķ…Žķ…ķ…‘ķ…’ķ…“ķ…•",6,"ķ…žķ… ķ…¢",5,"ķ…©ķ…Ŗķ…«ķ…­ė•€ė•ė•ƒė•„ė•…ė•‹ė•Œė•ė•ė•”ė•œė•ė•Ÿė• ė•”ė– ė–”ė–¤ė–Øė–Ŗė–«ė–°ė–±ė–³ė–“ė–µė–»ė–¼ė–½ė—€ė—„ė—Œė—ė—ė—ė—‘ė—˜ė—¬ė˜ė˜‘ė˜”ė˜˜ė˜„ė˜¬ė˜“ė™ˆė™¤ė™Øėšœėšėš ėš¤ėš«ėš¬ėš±ė›”ė›°ė›“ė›øėœ€ėœėœ…ėœØėœ©ėœ¬ėœÆėœ°ėœøėœ¹ėœ»ė„ėˆėŒė”ė•ė ė¤ėØė°ė±ė³ėµė¼ė½ėž€ėž„ėžŒėžėžėžėž‘ėž’ėž–ėž—"],
-["b741","ķ…®",13,"ķ…½",6,"ķ†…ķ††ķ†‡ķ†‰ķ†Š"],
-["b761","ķ†‹",20,"ķ†¢ķ†£ķ†„ķ†¦ķ†§"],
-["b781","ķ†©",6,"ķ†²ķ†“ķ†¶ķ†·ķ†øķ†¹ķ†»ķ†½ķ†¾ķ†æķ‡",14,"ėž˜ėž™ėžœėž ėžØėž©ėž«ėž¬ėž­ėž“ėžµėžøėŸ‡ėŸ‰ėŸ¬ėŸ­ėŸ°ėŸ“ėŸ¼ėŸ½ėŸæė €ė ė ‡ė ˆė ‰ė Œė ė ˜ė ™ė ›ė ė ¤ė „ė Øė ¬ė “ė µė ·ė øė ¹ė”€ė”„ė”‘ė”“ė”œė”ė” ė”¤ė”¬ė”­ė”Æė”±ė”øė”¼ė¢ė¢Øė¢°ė¢“ė¢øė£€ė£ė£ƒė£…ė£Œė£ė£”ė£ė£Ÿė£”ė£Øė£©ė£¬ė£°ė£øė£¹ė£»ė£½ė¤„ė¤˜ė¤ ė¤¼ė¤½ė„€ė„„ė„Œė„ė„‘ė„˜ė„™ė„œė„ ė„Øė„©"],
-["b841","ķ‡",7,"ķ‡™",17],
-["b861","ķ‡«",8,"ķ‡µķ‡¶ķ‡·ķ‡¹",13],
-["b881","ķˆˆķˆŠ",5,"ķˆ‘",24,"ė„«ė„­ė„“ė„µė„øė„¼ė¦„ė¦…ė¦‡ė¦‰ė¦Šė¦ė¦Žė¦¬ė¦­ė¦°ė¦“ė¦¼ė¦½ė¦æė§ė§ˆė§‰ė§Œė§Ž",4,"ė§˜ė§™ė§›ė§ė§žė§”ė§£ė§¤ė§„ė§Øė§¬ė§“ė§µė§·ė§øė§¹ė§ŗė؀ė؁ė؈ėؕėØøėعėؼė©€ė©‚ė©ˆė©‰ė©‹ė©ė©Žė©“ė©”ė©•ė©˜ė©œė©¤ė©„ė©§ė©Øė©©ė©°ė©±ė©“ė©øėŖƒėŖ„ėŖ…ėŖ‡ėŖŒėŖØėŖ©ėŖ«ėŖ¬ėŖ°ėŖ²ėŖøėŖ¹ėŖ»ėŖ½ė«„ė«ˆė«˜ė«™ė«¼"],
-["b941","ķˆŖķˆ«ķˆ®ķˆÆķˆ±ķˆ²ķˆ³ķˆµ",6,"ķˆ¾ķ‰€ķ‰‚",5,"ķ‰‰ķ‰Šķ‰‹ķ‰Œ"],
-["b961","ķ‰",14,"ķ‰",6,"ķ‰„ķ‰¦ķ‰§ķ‰Ø"],
-["b981","ķ‰©",22,"ķŠ‚ķŠƒķŠ…ķŠ†ķŠ‡ķŠ‰ķŠŠķŠ‹ķŠŒė¬€ė¬„ė¬ė¬ė¬‘ė¬˜ė¬œė¬ ė¬©ė¬«ė¬“ė¬µė¬¶ė¬øė¬»ė¬¼ė¬½ė¬¾ė­„ė­…ė­‡ė­‰ė­ė­ė­ė­”ė­˜ė­”ė­£ė­¬ė®ˆė®Œė®ė®¤ė®Øė®¬ė®“ė®·ėƀėƄėƈėƐėƓėÆøėƹėƼėÆæė°€ė°‚ė°ˆė°‰ė°‹ė°Œė°ė°ė°‘ė°”",4,"ė°›",4,"ė°¤ė°„ė°§ė°©ė°­ė°°ė°±ė°“ė°øė±€ė±ė±ƒė±„ė±…ė±‰ė±Œė±ė±ė±ė²„ė²…ė²ˆė²‹ė²Œė²Žė²”ė²•ė²—"],
-["ba41","ķŠķŠŽķŠķŠ’ķŠ“ķŠ”ķŠ–",5,"ķŠķŠžķŠŸķŠ”ķŠ¢ķŠ£ķŠ„",6,"ķŠ­"],
-["ba61","ķŠ®ķŠÆķŠ°ķŠ²",5,"ķŠŗķŠ»ķŠ½ķŠ¾ķ‹ķ‹ƒ",4,"ķ‹Šķ‹Œ",5],
-["ba81","ķ‹’ķ‹“ķ‹•ķ‹–ķ‹—ķ‹™ķ‹šķ‹›ķ‹",6,"ķ‹¦",9,"ķ‹²ķ‹³ķ‹µķ‹¶ķ‹·ķ‹¹ķ‹ŗė²™ė²šė² ė²”ė²¤ė²§ė²Øė²°ė²±ė²³ė²“ė²µė²¼ė²½ė³€ė³„ė³ė³ė³ė³‘ė³•ė³˜ė³œė³“ė³µė³¶ė³øė³¼ė“„ė“…ė“‡ė“‰ė“ė“”ė“¤ė“¬ėµ€ėµˆėµ‰ėµŒėµėµ˜ėµ™ėµ¤ėµØė¶€ė¶ė¶„ė¶‡ė¶ˆė¶‰ė¶Šė¶ė¶‘ė¶“ė¶•ė¶™ė¶šė¶œė¶¤ė¶°ė¶øė·”ė·•ė·˜ė·œė·©ė·°ė·“ė·øėø€ėøƒėø…ėøŒėøėøėø”ėøœėøėøŸė¹„ė¹…ė¹ˆė¹Œė¹Žė¹”ė¹•ė¹—ė¹™ė¹šė¹›ė¹ ė¹”ė¹¤"],
-["bb41","ķ‹»",4,"ķŒ‚ķŒ„ķŒ†",5,"ķŒķŒ‘ķŒ’ķŒ“ķŒ•ķŒ—",4,"ķŒžķŒ¢ķŒ£"],
-["bb61","ķŒ¤ķŒ¦ķŒ§ķŒŖķŒ«ķŒ­ķŒ®ķŒÆķŒ±",6,"ķŒŗķŒ¾",5,"ķ†ķ‡ķˆķ‰"],
-["bb81","ķŠ",31,"ė¹Øė¹Ŗė¹°ė¹±ė¹³ė¹“ė¹µė¹»ė¹¼ė¹½ėŗ€ėŗ„ėŗŒėŗėŗėŗėŗ‘ėŗ˜ėŗ™ėŗØė»ė»‘ė»”ė»—ė»˜ė» ė»£ė»¤ė»„ė»¬ė¼ė¼ˆė¼‰ė¼˜ė¼™ė¼›ė¼œė¼ė½€ė½ė½„ė½ˆė½ė½‘ė½•ė¾”ė¾°ėæ…ėæŒėæėæėæ”ėæœėæŸėæ”ģ€¼ģ‘ģ˜ģœģ ģØģ©ģ‚ģ‚‘ģ‚”ģ‚˜ģ‚ ģ‚”ģ‚£ģ‚„ģ‚¬ģ‚­ģ‚Æģ‚°ģ‚³ģ‚“ģ‚µģ‚¶ģ‚¼ģ‚½ģ‚æģƒ€ģƒģƒ…ģƒˆģƒ‰ģƒŒģƒģƒ˜ģƒ™ģƒ›ģƒœģƒģƒ¤"],
-["bc41","ķŖ",17,"ķ¾ķæķŽķŽ‚ķŽƒķŽ…ķŽ†ķŽ‡"],
-["bc61","ķŽˆķŽ‰ķŽŠķŽ‹ķŽŽķŽ’",5,"ķŽšķŽ›ķŽķŽžķŽŸķŽ”",6,"ķŽŖķŽ¬ķŽ®"],
-["bc81","ķŽÆ",4,"ķŽµķŽ¶ķŽ·ķŽ¹ķŽŗķŽ»ķŽ½",6,"ķ†ķ‡ķŠ",5,"ķ‘",5,"ģƒ„ģƒØģƒ¬ģƒ“ģƒµģƒ·ģƒ¹ģ„€ģ„„ģ„ˆģ„ģ„•ģ„œ",4,"ģ„£ģ„¤ģ„¦ģ„§ģ„¬ģ„­ģ„Æģ„°ģ„±ģ„¶ģ„øģ„¹ģ„¼ģ…€ģ…ˆģ…‰ģ…‹ģ…Œģ…ģ…”ģ…•ģ…˜ģ…œģ…¤ģ…„ģ…§ģ…Øģ…©ģ…°ģ…“ģ…øģ†…ģ†Œģ†ģ†Žģ†ģ†”ģ†–ģ†œģ†ģ†Ÿģ†”ģ†„ģ†Øģ†©ģ†¬ģ†°ģ†½ģ‡„ģ‡ˆģ‡Œģ‡”ģ‡—ģ‡˜ģ‡ ģ‡¤ģ‡Øģ‡°ģ‡±ģ‡³ģ‡¼ģ‡½ģˆ€ģˆ„ģˆŒģˆģˆģˆ‘ģˆ˜ģˆ™ģˆœģˆŸģˆ ģˆØģˆ©ģˆ«ģˆ­"],
-["bd41","ķ—ķ™",7,"ķ¢ķ¤",7,"ķ®ķÆķ±ķ²ķ³ķµķ¶ķ·"],
-["bd61","ķøķ¹ķŗķ»ķ¾ķ€ķ‚",5,"ķ‰",13],
-["bd81","ķ—",5,"ķž",25,"ģˆÆģˆ±ģˆ²ģˆ“ģ‰ˆģ‰ģ‰‘ģ‰”ģ‰˜ģ‰ ģ‰„ģ‰¬ģ‰­ģ‰°ģ‰“ģ‰¼ģ‰½ģ‰æģŠģŠˆģŠ‰ģŠģŠ˜ģŠ›ģŠģŠ¤ģŠ„ģŠØģŠ¬ģŠ­ģŠ“ģŠµģŠ·ģŠ¹ģ‹œģ‹ģ‹ ģ‹£ģ‹¤ģ‹«ģ‹¬ģ‹­ģ‹Æģ‹±ģ‹¶ģ‹øģ‹¹ģ‹»ģ‹¼ģŒ€ģŒˆģŒ‰ģŒŒģŒģŒ“ģŒ”ģŒ•ģŒ˜ģŒœģŒ¤ģŒ„ģŒØģŒ©ģ…ģØģ©ģ¬ģ°ģ²ģøģ¹ģ¼ģ½ģŽ„ģŽˆģŽŒģ€ģ˜ģ™ģœģŸģ ģ¢ģØģ©ģ­ģ“ģµģøģˆģģ¤ģ¬ģ°"],
-["be41","ķø",7,"ķ‘ķ‘‚ķ‘ƒķ‘…",14],
-["be61","ķ‘”",7,"ķ‘ķ‘žķ‘Ÿķ‘”ķ‘¢ķ‘£ķ‘„",7,"ķ‘®ķ‘°ķ‘±ķ‘²"],
-["be81","ķ‘³",4,"ķ‘ŗķ‘»ķ‘½ķ‘¾ķ’ķ’ƒ",4,"ķ’Šķ’Œķ’Ž",5,"ķ’•",8,"ģ“ģ¼ģ½ģ‘ˆģ‘¤ģ‘„ģ‘Øģ‘¬ģ‘“ģ‘µģ‘¹ģ’€ģ’”ģ’œģ’øģ’¼ģ“©ģ“°ģ“±ģ““ģ“øģ“ŗģ“æģ”€ģ”ģ”Œģ”ģ””ģ”œģ”Øģ”©ģ”¬ģ”°ģ”øģ”¹ģ”»ģ”½ģ•„ģ•…ģ•ˆģ•‰ģ•Šģ•Œģ•ģ•Žģ•“ģ•”ģ••ģ•—ģ•˜ģ•™ģ•ģ•žģ• ģ•”ģ•¤ģ•Øģ•°ģ•±ģ•³ģ•“ģ•µģ•¼ģ•½ģ–€ģ–„ģ–‡ģ–Œģ–ģ–ģ–‘ģ–•ģ–—ģ–˜ģ–œģ– ģ–©ģ–“ģ–µģ–øģ–¹ģ–»ģ–¼ģ–½ģ–¾ģ—„",6,"ģ—Œģ—Ž"],
-["bf41","ķ’ž",10,"ķ’Ŗ",14],
-["bf61","ķ’¹",18,"ķ“ķ“Žķ“ķ“‘ķ“’ķ““ķ“•"],
-["bf81","ķ“–",5,"ķ“ķ“žķ“ ",7,"ķ“©ķ“Ŗķ“«ķ“­ķ“®ķ“Æķ“±",6,"ķ“¹ķ“ŗķ“¼ģ—ģ—‘ģ—”ģ—˜ģ— ģ—”ģ—£ģ—„ģ—¬ģ—­ģ—®ģ—°ģ—“ģ—¶ģ—·ģ—¼",5,"ģ˜…ģ˜†ģ˜‡ģ˜ˆģ˜Œģ˜ģ˜˜ģ˜™ģ˜›ģ˜œģ˜¤ģ˜„ģ˜Øģ˜¬ģ˜­ģ˜®ģ˜°ģ˜³ģ˜“ģ˜µģ˜·ģ˜¹ģ˜»ģ™€ģ™ģ™„ģ™ˆģ™ģ™‘ģ™“ģ™”ģ™•ģ™œģ™ģ™ ģ™¬ģ™Æģ™±ģ™øģ™¹ģ™¼ģš€ģšˆģš‰ģš‹ģšģš”ģš•ģš˜ģšœģš¤ģš„ģš§ģš©ģš°ģš±ģš“ģšøģš¹ģšŗģ›€ģ›ģ›ƒģ›…ģ›Œģ›ģ›ģ›”ģ›œģ›ģ› ģ›”ģ›Ø"],
-["c041","ķ“¾",5,"ķ”…ķ”†ķ”‡ķ”‰ķ”Šķ”‹ķ”",6,"ķ”–ķ”˜",5],
-["c061","ķ”ž",25],
-["c081","ķ”øķ”¹ķ”ŗķ”»ķ”¾ķ”æķ•ķ•‚ķ•ƒķ•…",6,"ķ•Žķ•ķ•’",5,"ķ•šķ•›ķ•ķ•žķ•Ÿķ•”ķ•¢ķ•£ģ›©ģ›¬ģ›°ģ›øģ›¹ģ›½ģœ„ģœ…ģœˆģœŒģœ”ģœ•ģœ—ģœ™ģœ ģœ”ģœ¤ģœØģœ°ģœ±ģœ³ģœµģœ·ģœ¼ģœ½ģ€ģ„ģŠģŒģģģ‘",7,"ģœģ ģØģ«ģ“ģµģøģ¼ģ½ģ¾ģžƒģž„ģž…ģž‡ģžˆģž‰ģžŠģžŽģžģž‘ģž”ģž–ģž—ģž˜ģžšģž ģž”ģž£ģž¤ģž„ģž¦ģž¬ģž­ģž°ģž“ģž¼ģž½ģžæģŸ€ģŸģŸˆģŸ‰ģŸŒģŸŽģŸģŸ˜ģŸģŸ¤ģŸØģŸ¬ģ €ģ ģ „ģ ˆģ Š"],
-["c141","ķ•¤ķ•¦ķ•§ķ•Ŗķ•¬ķ•®",5,"ķ•¶ķ•·ķ•¹ķ•ŗķ•»ķ•½",6,"ķ–†ķ–Šķ–‹"],
-["c161","ķ–Œķ–ķ–Žķ–ķ–‘",19,"ķ–¦ķ–§"],
-["c181","ķ–Ø",31,"ģ ģ ‘ģ “ģ •ģ –ģ œģ ģ  ģ ¤ģ ¬ģ ­ģ Æģ ±ģ øģ ¼ģ”€ģ”ˆģ”‰ģ”Œģ”ģ””ģ”°ģ”±ģ”“ģ”øģ”ŗģ¢€ģ¢ģ¢ƒģ¢…ģ¢†ģ¢‡ģ¢‹ģ¢Œģ¢ģ¢”ģ¢ģ¢Ÿģ¢”ģ¢Øģ¢¼ģ¢½ģ£„ģ£ˆģ£Œģ£”ģ£•ģ£—ģ£™ģ£ ģ£”ģ£¤ģ£µģ£¼ģ£½ģ¤€ģ¤„ģ¤…ģ¤†ģ¤Œģ¤ģ¤ģ¤‘ģ¤˜ģ¤¬ģ¤“ģ„ģ„‘ģ„”ģ„˜ģ„ ģ„”ģ„£ģ„¬ģ„°ģ„“ģ„¼ģ¦ˆģ¦‰ģ¦Œģ¦ģ¦˜ģ¦™ģ¦›ģ¦ģ§€ģ§ģ§„ģ§‡ģ§ˆģ§Šģ§ģ§‘ģ§“"],
-["c241","ķ—Šķ—‹ķ—ķ—Žķ—ķ—‘ķ—“",4,"ķ—šķ—œķ—ž",5,"ķ—¦ķ—§ķ—©ķ—Ŗķ—«ķ—­ķ—®"],
-["c261","ķ—Æ",4,"ķ—¶ķ—øķ—ŗ",5,"ķ˜‚ķ˜ƒķ˜…ķ˜†ķ˜‡ķ˜‰",6,"ķ˜’"],
-["c281","ķ˜–",5,"ķ˜ķ˜žķ˜Ÿķ˜”ķ˜¢ķ˜£ķ˜„",7,"ķ˜®",9,"ķ˜ŗķ˜»ģ§•ģ§–ģ§™ģ§šģ§œģ§ģ§ ģ§¢ģ§¤ģ§§ģ§¬ģ§­ģ§Æģ§°ģ§±ģ§øģ§¹ģ§¼ģ؀ģ؈ģ؉ģ؋ģ،ģ؍ģؔģؘģØ©ģ©Œģ©ģ©ģ©”ģ©œģ©ģ©Ÿģ© ģ©”ģ©Øģ©½ģŖ„ģŖ˜ģŖ¼ģŖ½ģ«€ģ«„ģ«Œģ«ģ«ģ«‘ģ«“ģ«˜ģ«™ģ« ģ«¬ģ«“ģ¬ˆģ¬ģ¬”ģ¬˜ģ¬ ģ¬”ģ­ģ­ˆģ­‰ģ­Œģ­ģ­˜ģ­™ģ­ģ­¤ģ­øģ­¹ģ®œģ®øģƔģƤģƧģÆ©ģ°Œģ°ģ°ģ°”ģ°œģ°ģ°”ģ°¢ģ°§ģ°Øģ°©ģ°¬ģ°®ģ°°ģ°øģ°¹ģ°»"],
-["c341","ķ˜½ķ˜¾ķ˜æķ™ķ™‚ķ™ƒķ™„ķ™†ķ™‡ķ™Šķ™Œķ™Žķ™ķ™ķ™’ķ™“ķ™–ķ™—ķ™™ķ™šķ™›ķ™",4],
-["c361","ķ™¢",4,"ķ™Øķ™Ŗ",5,"ķ™²ķ™³ķ™µ",11],
-["c381","ķšķš‚ķš„ķš†",5,"ķšŽķšķš‘ķš’ķš“ķš•",7,"ķšžķš ķš¢",5,"ķš©ķšŖģ°¼ģ°½ģ°¾ģ±„ģ±…ģ±ˆģ±Œģ±”ģ±•ģ±—ģ±˜ģ±™ģ± ģ±¤ģ±¦ģ±Øģ±°ģ±µģ²˜ģ²™ģ²œģ² ģ²Øģ²©ģ²«ģ²¬ģ²­ģ²“ģ²µģ²øģ²¼ģ³„ģ³…ģ³‡ģ³‰ģ³ģ³”ģ³¤ģ³¬ģ³°ģ“ģ“ˆģ“‰ģ“Œģ“ģ“˜ģ“™ģ“›ģ“ģ“¤ģ“Øģ“¬ģ“¹ģµœģµ ģµ¤ģµ¬ģµ­ģµÆģµ±ģµøģ¶ˆģ¶”ģ¶•ģ¶˜ģ¶œģ¶¤ģ¶„ģ¶§ģ¶©ģ¶°ģ·„ģ·Œģ·ģ·Øģ·¬ģ·°ģ·øģ·¹ģ·»ģ·½ģø„ģøˆģøŒģø”ģø™ģø ģø”ģø¤ģøØģø°ģø±ģø³ģøµ"],
-["c441","ķš«ķš­ķš®ķšÆķš±",7,"ķšŗķš¼",7,"ķ›†ķ›‡ķ›‰ķ›Šķ›‹"],
-["c461","ķ›ķ›Žķ›ķ›ķ›’ķ›“ķ›•ķ›–ķ›˜ķ›š",5,"ķ›”ķ›¢ķ›£ķ›„ķ›¦ķ›§ķ›©",4],
-["c481","ķ›®ķ›Æķ›±ķ›²ķ›³ķ›“ķ›¶",5,"ķ›¾ķ›æķœķœ‚ķœƒķœ…",11,"ķœ’ķœ“ķœ”ģ¹˜ģ¹™ģ¹œģ¹Ÿģ¹ ģ¹”ģ¹Øģ¹©ģ¹«ģ¹­ģ¹“ģ¹µģ¹øģ¹¼ģŗ„ģŗ…ģŗ‡ģŗ‰ģŗģŗ‘ģŗ”ģŗ˜ģŗ ģŗ”ģŗ£ģŗ¤ģŗ„ģŗ¬ģŗ­ģ»ģ»¤ģ»„ģ»Øģ»«ģ»¬ģ»“ģ»µģ»·ģ»øģ»¹ģ¼€ģ¼ģ¼„ģ¼ˆģ¼ģ¼‘ģ¼“ģ¼•ģ¼œģ¼ ģ¼¤ģ¼¬ģ¼­ģ¼Æģ¼°ģ¼±ģ¼øģ½”ģ½•ģ½˜ģ½œģ½¤ģ½„ģ½§ģ½©ģ½°ģ½±ģ½“ģ½øģ¾€ģ¾…ģ¾Œģ¾”ģ¾Øģ¾°ģæ„ģæ ģæ”ģæ¤ģæØģæ°ģæ±ģæ³ģæµģæ¼ķ€€ķ€„ķ€‘ķ€˜ķ€­ķ€“ķ€µķ€øķ€¼"],
-["c541","ķœ•ķœ–ķœ—ķœšķœ›ķœķœžķœŸķœ”",6,"ķœŖķœ¬ķœ®",5,"ķœ¶ķœ·ķœ¹"],
-["c561","ķœŗķœ»ķœ½",6,"ķ…ķ†ķˆķŠ",5,"ķ’ķ“ķ•ķš",4],
-["c581","ķŸķ¢ķ¤ķ¦ķ§ķØķŖķ«ķ­ķ®ķÆķ±ķ²ķ³ķµ",6,"ķ¾ķæķž€ķž‚",5,"ķžŠķž‹ķ„ķ…ķ‡ķ‰ķķ”ķ˜ķ ķ¬ķ­ķ°ķ“ķ¼ķ½ķ‚ķ‚¤ķ‚„ķ‚Øķ‚¬ķ‚“ķ‚µķ‚·ķ‚¹ķƒ€ķƒķƒ„ķƒˆķƒ‰ķƒķƒ‘ķƒ“ķƒ”ķƒ•ķƒœķƒķƒ ķƒ¤ķƒ¬ķƒ­ķƒÆķƒ°ķƒ±ķƒøķ„ķ„°ķ„±ķ„“ķ„øķ„ŗķ…€ķ…ķ…ƒķ…„ķ……ķ…Œķ…ķ…ķ…”ķ…œķ…ķ…Ÿķ…”ķ…Øķ…¬ķ…¼ķ†„ķ†ˆķ† ķ†”ķ†¤ķ†Øķ†°ķ†±ķ†³ķ†µķ†ŗķ†¼ķ‡€ķ‡˜ķ‡“ķ‡øķˆ‡ķˆ‰ķˆķˆ¬ķˆ­ķˆ°ķˆ“ķˆ¼ķˆ½ķˆæķ‰ķ‰ˆķ‰œ"],
-["c641","ķžķžŽķžķž‘",6,"ķžšķžœķžž",5],
-["c6a1","ķ‰¤ķŠ€ķŠķŠ„ķŠˆķŠķŠ‘ķŠ•ķŠœķŠ ķŠ¤ķŠ¬ķŠ±ķŠøķŠ¹ķŠ¼ķŠæķ‹€ķ‹‚ķ‹ˆķ‹‰ķ‹‹ķ‹”ķ‹˜ķ‹œķ‹¤ķ‹„ķ‹°ķ‹±ķ‹“ķ‹øķŒ€ķŒķŒƒķŒ…ķŒŒķŒķŒŽķŒķŒ”ķŒ–ķŒœķŒķŒŸķŒ ķŒ”ķŒ„ķŒØķŒ©ķŒ¬ķŒ°ķŒøķŒ¹ķŒ»ķŒ¼ķŒ½ķ„ķ…ķ¼ķ½ķŽ€ķŽ„ķŽŒķŽķŽķŽķŽ‘ķŽ˜ķŽ™ķŽœķŽ ķŽØķŽ©ķŽ«ķŽ­ķŽ“ķŽøķŽ¼ķ„ķ…ķˆķ‰ķķ˜ķ”ķ£ķ¬ķ­ķ°ķ“ķ¼ķ½ķæķ"],
-["c7a1","ķˆķķ‘€ķ‘„ķ‘œķ‘ ķ‘¤ķ‘­ķ‘Æķ‘øķ‘¹ķ‘¼ķ‘æķ’€ķ’‚ķ’ˆķ’‰ķ’‹ķ’ķ’”ķ’©ķ“Œķ“ķ“”ķ“œķ“Ÿķ“Øķ“¬ķ“°ķ“øķ“»ķ“½ķ”„ķ”ˆķ”Œķ””ķ”•ķ”—ķ”¼ķ”½ķ•€ķ•„ķ•Œķ•ķ•ķ•‘ķ•˜ķ•™ķ•œķ• ķ•„ķ•Øķ•©ķ•«ķ•­ķ•“ķ•µķ•øķ•¼ķ–„ķ–…ķ–‡ķ–ˆķ–‰ķ–ķ–„ķ—ˆķ—‰ķ—Œķ—ķ—’ķ—˜ķ—™ķ—›ķ—ķ—¤ķ—„ķ—Øķ—¬ķ—“ķ—µķ—·ķ—¹ķ˜€ķ˜ķ˜„ķ˜ˆķ˜ķ˜‘ķ˜“ķ˜”ķ˜•ķ˜œķ˜ "],
-["c8a1","ķ˜¤ķ˜­ķ˜øķ˜¹ķ˜¼ķ™€ķ™…ķ™ˆķ™‰ķ™‹ķ™ķ™‘ķ™”ķ™•ķ™˜ķ™œķ™§ķ™©ķ™°ķ™±ķ™“ķšƒķš…ķšŒķšķšķš”ķšķšŸķš”ķšØķš¬ķš°ķš¹ķš»ķ›„ķ›…ķ›ˆķ›Œķ›‘ķ›”ķ›—ķ›™ķ› ķ›¤ķ›Øķ›°ķ›µķ›¼ķ›½ķœ€ķœ„ķœ‘ķœ˜ķœ™ķœœķœ ķœØķœ©ķœ«ķœ­ķœ“ķœµķœøķœ¼ķ„ķ‡ķ‰ķķ‘ķ”ķ–ķ—ķ˜ķ™ķ ķ”ķ£ķ„ķ©ķ¬ķ°ķ“ķ¼ķ½ķžķžˆķž‰ķžŒķžķž˜ķž™ķž›ķž"],
-["caa1","伽佳假價加åÆå‘µå“„å˜‰å«å®¶ęš‡ęž¶ęž·ęŸÆꭌē‚ē—‚ēØ¼č‹›čŒ„č”—č¢ˆčØ¶č³ˆč·č»»čæ¦é§•åˆ»å“各ęŖę…¤ę®¼ēč„šč¦ŗč§’é–£ä¾ƒåˆŠå¢¾å„øå§¦å¹²å¹¹ę‡‡ę€ę†ęŸ¬ę”æę¾—ē™Žēœ‹ē£µē؈ē«æē°”č‚č‰®č‰±č««é–“ä¹«å–ę›·ęø“ē¢£ē«­č‘›č¤čŽéžØ勘坎å ŖåµŒę„Ÿę†¾ęˆ”ę•¢ęŸ‘ę©„ęø›ē”˜ē–³ē›£ēž°ē“ŗé‚Æ鑑鑒龕"],
-["cba1","匣岬ē”²čƒ›é‰€é–˜å‰›å ˆå§œå²”å“—åŗ·å¼ŗå½Šę…·ę±Ÿē•ŗē–†ē³ ēµ³ē¶±ē¾Œč…”čˆ”č–‘č„č¬›é‹¼é™é±‡ä»‹ä»·å€‹å‡±å”ę„·ę„¾ę…Øę”¹ę§Ŗę¼‘ē–„ēš†ē›–ē®‡čŠ„蓋ļ¤€éŽ§é–‹å–€å®¢å‘ļ¤ē²³ē¾¹é†µå€Ø去居å·Øę‹’ę®ę“šę“§ęø ē‚¬ē„›č·čøžļ¤‚遽鉅é‹ø乾件偄巾å»ŗę„†ę„—č…±č™”č¹‡éµéØ«ä¹žå‚‘ę°ę”€å„‰åŠåŠ’ęŖ¢"],
-["cca1","ēž¼éˆé»”劫ę€Æčæ²åˆę†©ę­ę“Šę ¼ęŖ„ęæ€č†ˆč¦”隔堅ē‰½ēŠ¬ē”„ēµ¹ē¹­č‚©č¦‹č­“é£éµ‘ęŠ‰ę±ŗę½”ēµē¼ŗčØ£å…¼ę…Šē®č¬™é‰—鎌äŗ¬äæ“倞傾儆勁勍åæ坰境åŗšå¾‘ꅶꆬ꓎ꕬę™Æęš»ę›“ę¢—ę¶‡ē‚…ēƒ±ē’Ÿē’„ē“Šē—™ē”¬ē£¬ē«Ÿē«¶ēµ…ē¶“耕č€æč„›čŽ–č­¦č¼•é€•é”é ƒé ø驚éÆØäæ‚å•“å ŗ儑季屆ę‚øęˆ’ę”‚ę¢°"],
-["cda1","ę£ØęŗŖē•Œē™øē£Žēؽē³»ē¹«ē¹¼č؈čŖ”č°æ階鷄古叩告呱å›ŗ姑孤尻åŗ«ę‹·ę”·ę•…ę•²ęš ęžÆę§ę²½ē—¼ēšē¾ēØæē¾”č€ƒč‚”č†č‹¦č‹½č°č—č ±č¢“čŖ„ļ¤ƒč¾œéŒ®é›‡é”§é«˜é¼“å“­ę–›ę›²ę¢ē©€č°·éµ å›°å¤å“‘ę˜†ę¢±ę£ę»¾ēØč¢žéƤę±Øļ¤„éŖØä¾›å…¬å…±åŠŸå­”å·„ęę­ę‹±ęŽ§ę”»ē™ē©ŗčš£č²¢éžäø²åÆ”ęˆˆęžœē“œ"],
-["cea1","ē§‘č“čŖ‡čŖ²č·Ø過鍋锆廓ę§Øč—æ郭ļ¤…冠官åÆ¬ę…£ę£ŗę¬¾ēŒēÆē“˜ē®”ē½č…č§€č²«é—œé¤Øåˆ®ęę‹¬é€‚ä¾Šå…‰åŒ”å£™å»£ę› ę“øē‚šē‹‚ē–ē­čƒ±é‘›å¦ęŽ›ē½«ä¹–傀唊壞ę€Ŗę„§ę‹ę§é­å®ē“˜č‚±č½Ÿäŗ¤åƒ‘咬喬嬌嶠巧ę”Ŗꕎꠔꩋē‹”ēšŽēŸÆēµžēæ¹č† č•Žč›Ÿč¼ƒč½ŽéƒŠé¤ƒé©•é®«äø˜ä¹…九仇äæ±å…·å‹¾"],
-["cfa1","區口叄咎嘔坵垢åÆ‡å¶‡å»ę‡¼ę‹˜ę•‘ęžøęŸ©ę§‹ę­ęƆęÆ¬ę±‚ęŗēøē‹—ēŽ–ēƒēžæēŸ©ē©¶ēµæč€‰č‡¼čˆ…čˆŠč‹Ÿč”¢č¬³č³¼č»€é€‘é‚±é‰¤éŠ¶é§’é©…é³©é·—é¾œåœ‹å±€čŠéž éž«éŗ“君ēŖ˜ē¾¤č£™č»éƒ”å €å±ˆęŽ˜ēŖŸå®®å¼“ē©¹ēŖ®čŠŽčŗ¬å€¦åˆøå‹øå·åœˆę‹³ę²ę¬Šę·ƒēœ·åŽ„ē—č•Øč¹¶é—•ęœŗę«ƒę½°č©­č»Œé„‹ļ¤†ę™·ę­øč²“"],
-["d0a1","鬼ļ¤‡å«åœ­å„Žę†ę§»ēŖē”…ēŖŗē«…ē³¾č‘µč¦čµ³é€µé–Ø勻均ē•‡ē­ čŒéˆžļ¤ˆę©˜å…‹å‰‹åŠ‡ęˆŸę£˜ę„µéš™åƒ…åŠ¤å‹¤ę‡ƒę–¤ę ¹ę§æē‘¾ē­‹čŠ¹č«č¦²č¬¹čæ‘鄉ļ¤‰ä»Šå¦—ę“’ę˜‘ęŖŽē“ē¦ē¦½čŠ©č”¾č”æč„Ÿļ¤ŠéŒ¦ä¼‹åŠę€„ę‰±ę±²ē“šēµ¦äŗ˜å…¢ēŸœč‚Æ企伎其冀嗜å™Ø圻åŸŗ埼夔儇妓åƄ岐哎己幾åæŒęŠ€ę——ę—£"],
-["d1a1","ęœžęœŸęžę£‹ę£„ę©Ÿę¬ŗę°£ę±½ę²‚ę·‡ēŽ˜ē¦ēŖē’‚ē’£ē•øē•æē¢ē£Æē„ē„‡ē„ˆē„ŗē®•ē“€ē¶ŗē¾ˆč€†č€­č‚ŒčØ˜č­č±ˆčµ·éŒ”éŒ¤é£¢é„‘é؎é؏驄éŗ’ē·Šä½¶å‰ę‹®ę””金喫å„ŗļ¤‹ļ¤ŒåØœę‡¦ļ¤ę‹ę‹æļ¤Ž",5,"那ļ¤”",4,"č«¾ļ¤™ļ¤šļ¤›ļ¤œęš–ļ¤ē…–ļ¤žļ¤Ÿé›£ļ¤ ęęŗ南ļ¤”ęžę„ ę¹³ļ¤¢ē”·ļ¤£ļ¤¤ļ¤„"],
-["d2a1","ē“ļ¤¦ļ¤§č”²å›Šåؘļ¤Ø",4,"乃ļ¤­å…§å„ˆęŸ°č€ļ¤®å„³å¹“꒚ē§Šåæµę¬ę‹ˆę»åƧåƗåŠŖļ¤Æå„“å¼©ę€’ļ¤°ļ¤±ļ¤²ē‘™ļ¤³",5,"駑ļ¤¹",10,"ęæƒļ„„ļ„…č†æč¾²ęƒ±ļ„†ļ„‡č…¦ļ„ˆļ„‰å°æļ„Š",7,"å«©čØ„ę»ē“ļ„’",5,"čƒ½ļ„˜ļ„™å°¼ę³„åŒæęŗŗå¤ščŒ¶"],
-["d3a1","äø¹äŗ¶ä½†å–®åœ˜å£‡å½–ę–·ę—¦ęŖ€ę®µę¹ēŸ­ē«Æē°žē·žč›‹č¢’é„²é›ę’»ę¾¾ēŗē–ø達啖坍ę†ŗę“”ę›‡ę·”ę¹›ę½­ę¾¹ē—°čƒč†½č•č¦ƒč«‡č­šéŒŸę²“ē•“ē­”čøéå”å ‚å”˜å¹¢ęˆ‡ę’žę£ ē•¶ē³–čž³é»Ø代垈坮大對岱åø¶å¾…ęˆ“ę“”ēŽ³č‡ŗč¢‹č²øéšŠé»›å®…å¾·ę‚³å€’åˆ€åˆ°åœ–å µå”—å°Žå± å³¶å¶‹åŗ¦å¾’ę‚¼ęŒ‘ęŽ‰ę—ę”ƒ"],
-["d4a1","ę£¹ę«‚ę·˜ęø”ę»”ęæ¤ē‡¾ē›œē¹ē¦±ēØ»č„č¦©č³­č·³č¹ˆé€ƒé€”é“éƒ½éé™¶éŸœęƒē€†ē‰˜ēŠ¢ēØē£ē¦æēƤēŗ›č®€å¢©ęƒ‡ę•¦ę—½ęš¾ę²Œē„žē‡‰č±šé “ä¹­ēŖä»å†¬å‡å‹•åŒę†§ę±ę”ę£Ÿę“žę½¼ē–¼ēž³ē«„čƒ“č‘£éŠ…å…œę–—ęœęž“ē—˜ē«‡č³ļ„šč±†é€—é ­å±Æ臀芚遁éÆéˆå¾—å¶ę©™ē‡ˆē™»ē­‰č—¤č¬„鄧éØ°å–‡ę‡¶ļ„›ē™©ē¾…"],
-["d5a1","č˜æčžŗč£ø邏ļ„œę“›ēƒ™ēžēµ”č½ļ„é…Ŗ駱ļ„žäŗ‚åµę¬„ę¬’ē€¾ēˆ›č˜­éøžå‰Œč¾£åµę“„ꔬꬖęæ«ē±ƒēŗœč—č„¤č¦½ę‹‰č‡˜č Ÿå»Šęœ—ęµŖē‹¼ē…ē‘Æčž‚éƒžä¾†å“å¾ čŠå†·ęŽ ē•„äŗ®å€†å…©å‡‰ę¢ęؑē²®ē²±ē³§č‰Æč«’č¼›é‡ä¾¶å„·å‹µå‘‚å»¬ę…®ęˆ¾ę—…ę«šęæ¾ē¤Ŗč—œč £é–­é©¢é©Ŗéŗ—é»ŽåŠ›ę›†ę­·ē€ē¤«č½¢é‚ę†ęˆ€ę”£ę¼£"],
-["d6a1","ē…‰ē’‰ē·“čÆč“®č¼¦é€£éŠå†½åˆ—åŠ£ę“Œēƒˆč£‚å»‰ę–‚ę®®ęæ‚ē°¾ēµä»¤ä¼¶å›¹ļ„Ÿå²ŗå¶ŗꀜēŽ²ē¬­ē¾šēæŽč†é€žéˆ“é›¶éˆé ˜é½”ä¾‹ę¾§ē¦®é†“隷勞ļ„ ę’ˆę“„ę«“ę½žē€˜ēˆē›§č€č˜†č™œč·Æč¼…éœ²é­Æé·ŗé¹µē¢Œē„æē¶ č‰éŒ„é¹æéŗ“č«–å£Ÿå¼„ęœ§ē€§ē“ē± č¾å„”ē€Øē‰¢ē£Šč³‚č³šč³“雷äŗ†åƒšåÆ®å»–ę–™ē‡Žē™‚ēž­čŠč“¼"],
-["d7a1","遼鬧龍壘婁屢ęØ“ę·šę¼ē˜»ē“Æēø·č”žč¤øé¤é™‹åŠ‰ę—’ęŸ³ę¦“ęµęŗœē€ē‰ē‘ ē•™ē˜¤ē”«č¬¬é”žå…­ęˆ®é™ø侖倫哙ę·Ŗē¶øč¼Ŗå¾‹ę…„ę —ļ„”éš†å‹’č‚‹å‡œå‡Œę„žē؜ē¶¾č±é™µäæšåˆ©åŽ˜åå”Žå±„ꂧꝎę¢Ø구ēŠē‹øē†ē’ƒļ„¢ē—¢ē±¬ē½¹ē¾øčŽ‰č£č£”é‡Œé‡é›¢éÆ‰åę½¾ē‡ē’˜č—ŗčŗŖ隣鱗éŗŸęž—ę·‹ē³č‡Ø霖ē ¬"],
-["d8a1","ē«‹ē¬ ē²’ę‘©ē‘Ŗē—²ē¢¼ē£Ø馬魔éŗ»åÆžå¹•ę¼ č†œčŽ«é‚ˆäø‡ååØ©å·’å½Žę…¢ęŒ½ę™©ę›¼ę»æę¼«ē£ēžžč¬č”“č »č¼“é„…é°»å”œęŠ¹ęœ«ę²«čŒ‰č„Ŗéŗäŗ”妄åæ˜åæ™ęœ›ē¶²ē½”čŠ’čŒ«čŽ½č¼žé‚™åŸ‹å¦¹åŖ’åÆę˜§ęžšę¢…ęƏē…¤ē½µč²·č³£é‚é­…č„ˆč²Šé™Œé©€éŗ„å­Ÿę°“ēŒ›ē›²ē›ŸčŒå†Ŗč¦“å…å†•å‹‰ę£‰ę²”ēœ„ēœ ē¶æē·¬é¢éŗµę»…"],
-["d9a1","č”‘å†„åå‘½ę˜Žęšę¤§ęŗŸēšæēž‘čŒ—č“‚čžŸé…©éŠ˜é³“č¢‚ä¾®å†’å‹Ÿå§†åø½ę…•ę‘øę‘¹ęš®ęŸęØ”ęƍęƛē‰Ÿē‰”ē‘ēœøēŸ›č€—čŠ¼čŒ…č¬€č¬Øč²ŒęœØę²ē‰§ē›®ē¦ē©†é¶©ę­æę²’å¤¢ęœ¦č’™åÆå¢“å¦™å»Ÿęę˜“ę³ęøŗēŒ«ē«—č‹—éŒØå‹™å·«ę†®ę‡‹ęˆŠę‹‡ę’«ę— ę„™ę­¦ęƋē„”ē·ē•ē¹†čˆžčŒ‚č•ŖčŖ£č²æ霧鵔å¢Øé»˜å€‘åˆŽå»å•ę–‡"],
-["daa1","걶ē“Šē“‹čžčšŠé–€é›Æå‹æę²•ē‰©å‘³åŖšå°¾åµ‹å½Œå¾®ęœŖę¢¶ę„£ęø¼ę¹„ēœ‰ē±³ē¾Žč–‡č¬Žčæ·é”é»“å²·ę‚¶ę„ę†«ę•ę—»ę—¼ę°‘ę³ÆēŽŸē‰ē·”閔åÆ†čœœč¬å‰åšę‹ęę’²ęœ“ęØøę³Šē€ē’žē®”ē²•ēø›č†Ščˆ¶č–„čæ«é›¹é§ä¼“åŠåå›ę‹Œę¬ę”€ę–‘ę§ƒę³®ę½˜ē­ē•”ē˜¢ē›¤ē›¼ē£ē£»ē¤¬ēµ†čˆ¬čŸ čæ”é ’é£Æå‹ƒę‹”ę’„ęø¤ę½‘"],
-["dba1","ē™¼č·‹é†±é‰¢é«®é­ƒå€£å‚åŠå¦Øå°Ø幇彷ęˆæę”¾ę–¹ę—ę˜‰ęž‹ę¦œę»‚ē£…ē“”č‚Ŗč†€čˆ«čŠ³č’”čšŒčØŖč¬—é‚¦é˜²é¾å€äæ³ļ„£åŸ¹å¾˜ę‹œęŽ’ęÆę¹ƒē„™ē›ƒčƒŒčƒšč£“č£µč¤™č³ č¼©é…é™Ŗä¼Æä½°åø›ęŸę ¢ē™½ē™¾é­„å¹”ę؊ē…©ē‡”ē•Ŗļ„¤ē¹č•ƒč—©é£œä¼ē­ē½°é–„凔åø†ę¢µę°¾ę±Žę³›ēŠÆēÆ„čŒƒę³•ēŗåƒ»åŠˆå£ę“˜ęŖ—ē’§ē™–"],
-["dca1","ē¢§č˜—闢霹ļ„„åžå¼č®Šč¾Øč¾Æ邊刄ēž„鱉鼈äø™å€‚å…µå±›å¹·ę˜žę˜ŗęŸ„ę£…ē‚³ē”ē—…ē§‰ē«č¼§é¤ é؈äæå ”å ±åÆ¶ę™®ę­„ę“‘ę¹ŗę½½ē¤ē”«č©č£œč¤“č­œč¼”ä¼åƒ•åŒåœå®“å¾©ęœē¦č…¹čŒÆč””č¤‡č¦†č¼¹č¼»é¦„é°’ęœ¬ä¹¶äæø儉封å³Æå³°ę§ę£’ēƒ½ē†¢ē«ēø«č“¬čœ‚逢鋒鳳äøä»˜äæÆ傅剖å‰Æ否咐埠夫婦"],
-["dda1","孚孵åƌåŗœļ„¦ę‰¶ę•·ę–§ęµ®ęŗ„ēˆ¶ē¬¦ē°æē¼¶č…č…‘膚艀芙莩čØƒč² č³¦č³»čµ“č¶ŗéƒØ釜阜附駙鳧北分吩噓墳儔儮åææę†¤ę‰®ę˜ę±¾ē„šē›†ē²‰ē³žē“›čŠ¬č³é›°ļ„§ä½›å¼—å½æę‹‚å“©ęœ‹ę£šē”¼ē¹ƒéµ¬äø•å‚™åŒ•åŒŖ卑妃婢åŗ‡ę‚²ę†Šę‰‰ę‰¹ę–ęž‡ę¦§ęƔęƖęƗęƘę²øļ„Øēµē—ŗē ’ē¢‘ē§•ē§˜ē²ƒē·‹ēæ”č‚„"],
-["dea1","č„¾č‡‚č²čœšč£ØčŖ¹č­¬č²»é„™éžé£›é¼»åš¬å¬Ŗå½¬ę–ŒęŖ³ę®Æęµœęæ±ē€•ē‰ēŽ­č²§č³“é »ę†‘ę°·č˜é؁乍äŗ‹äŗ›ä»•ä¼ŗä¼¼ä½æäæŸåƒæ史åø唆嗣四士儢åؑåÆ«åÆŗ射巳åø«å¾™ę€ęØꖜę–ÆęŸ¶ęŸ»ę¢­ę­»ę²™ę³—ęø£ē€‰ē…ē ‚ē¤¾ē„€ē„ ē§ēÆ©ē“—ēµ²č‚†čˆčŽŽč“‘č›‡č£Ÿč©č©žč¬č³œčµ¦č¾­é‚Ŗ飼駟éŗå‰Šļ„©ęœ”ļ„Ŗ"],
-["dfa1","傘åˆŖå±±ę•£ę±•ēŠē”£ē–ē®—č’œé…øéœ°ä¹·ę’’ę®ŗē…žč–©äø‰ļ„«ę‰ę£®ęø—čŠŸč”˜č”«ę·ę¾éˆ’é¢ÆäøŠå‚·åƒå„Ÿå•†å–Ŗ嘗孀尙峠åøøåŗŠåŗ å»‚ęƒ³ę”‘ę©”ę¹˜ēˆ½ē‰€ē‹€ē›øē„„ē®±ēæ”č£³č§“č©³č±”č³žéœœå”žē’½č³½å—‡ļ„¬ē©”ē“¢č‰²ē‰²ē”Ÿē”„ļ„­ē¬™å¢…壻嶼åŗåŗ¶å¾ę•ęŠ’ęæꕍꚑꛙę›øę –ę£²ēŠ€ē‘žē­®ēµ®ē·–ē½²"],
-["e0a1","čƒ„čˆ’č–Æč„æčŖ“逝鋤黍鼠夕儭åø­ęƒœę˜”ę™³ęžę±ę·…ę½ŸēŸ³ē¢©č“†é‡‹éŒ«ä»™åƒŠå…ˆå–„å¬‹å®£ę‰‡ę•¾ę—‹ęø²ē…½ēē‘„ē’‡ē’æē™¬ē¦Ŗē·šē¹•ē¾Øč…ŗč†³čˆ¹č˜ščŸ¬č©µč·£éø銑鐄鄍鮮åØå±‘ę„”ę³„ę“©ęø«čˆŒč–›č¤»čØ­čŖŖé›Ŗé½§å‰”ęš¹ę®²ēŗ–čŸ¾č“é–ƒé™ę”ę¶‰ē‡®ļ„®åŸŽå§“å®¬ę€§ęƒŗꈐꘟꙟēŒ©ē¹ē››ēœē­¬"],
-["e1a1","č–č²č…„čŖ é†’äø–å‹¢ę­²ę“—ē؅ē¬¹ē“°ļ„Æč²°å¬å˜Æå”‘å®µå°å°‘å·¢ę‰€ęŽƒę”ę˜­ę¢³ę²¼ę¶ˆęŗÆē€Ÿē‚¤ē‡’ē”¦ē–ē–Žē˜™ē¬‘ēÆ ē°«ē“ ē“¹č”¬č•­č˜‡čؓ逍達邵銷韶éØ·äæ—å±¬ęŸę¶‘ē²ŸēŗŒč¬–č“–é€Ÿå­«å·½ęč“€éœé£”ēŽ‡å®‹ę‚šę¾ę·žč؟čŖ¦é€é Œåˆ·ļ„°ē‘ē¢ŽéŽ–蔰釗äæ®å—嗽囚垂壽嫂守岫峀åø„ꄁ"],
-["e2a1","ęˆę‰‹ęŽˆęœę”¶ę•øęØ¹ę®Šę°“ę“™ę¼±ē‡§ē‹©ēøē‡ē’²ē˜¦ē”ē§€ē©—ē«Ŗē²¹ē¶ē¶¬ē¹”ē¾žč„©čŒ±č’č“šč—Ŗč¢–čŖ°č®č¼ø遂邃酬銖銹隋隧éšØ雖需須首髓鬚叔唾夙孰å®æę·‘ę½šē†Ÿē”ē’¹č‚…č½å·”徇å¾Ŗꁂꗬꠒę„Æę©“ę®‰ę“µę·³ē£ē›¾ēž¬ē­ē“”č„£čˆœč€č““č•£č©¢č«„é†‡éŒžé †é¦“ęˆŒč”“čæ°é‰„哇哧"],
-["e3a1","嵩ē‘Ÿč†čØęæ•ę‹¾ēæ’č¤¶č„²äøžä¹˜åƒ§å‹å‡ę‰æꘇē¹©č …陞侍匙嘶始åŖ¤å°ø屎屍åø‚å¼‘ęƒę–½ę˜Æę™‚ęž¾ęŸ“ēŒœēŸ¢ē¤ŗēæ…č’”č“č¦–č©¦č©©č«”豕č±ŗ埓åƔ式ęÆę‹­ę¤ę®–ę¹œē†„ēÆ’č•č­˜č»¾é£Ÿé£¾ä¼ø侁äæ”呻åØ å®øę„¼ę–°ę™Øē‡¼ē”³ē„žē“³č…Žč‡£čŽ˜č–Ŗ藎蜃č؊čŗ«č¾›ļ„±čæ…失室åÆ¦ę‚‰åƩ尋åæƒę²"],
-["e4a1","ļ„²ę·±ē€‹ē”ščŠÆč«¶ä»€åļ„³é›™ę°äŗžäæ„å…’å•žåØ„å³Øꈑē‰™čŠ½čŽŖč›¾č”™č؝é˜æé›…é¤“é“‰éµå Šå²³å¶½å¹„ęƒ”ę„•ę”ę؂ęø„鄂鍔锎鰐齷安å²øęŒ‰ę™ę”ˆēœ¼é›éžé””é®Ÿę–”č¬č»‹é–¼å”µå²©å·–åŗµęš—ē™Œč“é—‡å£“ęŠ¼ē‹Žé“Øä»°å¤®ę€ę˜»ę®ƒē§§é“¦åŽ“å“€åŸƒå“–ę„›ę›–ę¶Æē¢č‰¾éš˜é„åŽ„ę‰¼ęŽ–ę¶²ēøŠč…‹é”"],
-["e5a1","ę«»ē½Œé¶Æéøšä¹Ÿå€»å†¶å¤œęƒ¹ę¶ę¤°ēˆŗ耶ļ„“野弱ļ„µļ„¶ē“„č‹„č‘Æ蒻藄čŗļ„·ä½Æļ„øļ„¹å£¤å­ƒę™ęšę”˜ę•­ęš˜ļ„ŗę„ŠęØ£ę“‹ē€ē…¬ē—’ē˜ē¦³ē©°ļ„»ē¾Šļ„¼č„„ļ„½č®“釀陽ļ„¾é¤Šåœ„å¾”ę–¼ę¼ē˜€ē¦¦čŖžé¦­é­šé½¬å„„ꆶꊑęŖč‡†åƒå °å½¦ē„‰č؀č«ŗå­¼č˜–äæŗå„¼åš“å„„ęŽ©ę·¹å¶Ŗę„­å††äŗˆä½™ļ„æļ¦€ļ¦å¦‚ļ¦‚"],
-["e6a1","ļ¦ƒę­Ÿę±ļ¦„ē’µē¤–ļ¦…čˆ‡č‰…čŒ¹č¼æč½ļ¦†é¤˜ļ¦‡ļ¦ˆļ¦‰äŗ¦ļ¦ŠåŸŸå½¹ę˜“ļ¦‹ļ¦Œē–«ē¹¹č­Æļ¦é€†é©›åš„å §å§øå؟宓ļ¦Žå»¶ļ¦ļ¦ęęŒ»ļ¦‘ę¤½ę²‡ę²æę¶Žę¶“ę·µę¼”ļ¦’ēƒŸē„¶ē…™ļ¦“ē‡ƒē‡•ļ¦”ē”ē”Æļ¦•ē­µē·£ļ¦–ēøÆļ¦—č”č»Ÿļ¦˜ļ¦™ļ¦šé‰›ļ¦›é³¶ļ¦œļ¦ļ¦žę‚…궅ļ¦Ÿē†±ļ¦ ļ¦”閱厭ļ¦¢ļ¦£ļ¦¤ęŸ“ļ¦„ē‚Žē„°ē°č‰¶č‹’"],
-["e7a1","ļ¦¦é–»é«„é¹½ę›„ļ¦§ē‡č‘‰ļ¦Øļ¦©å”‹ļ¦Ŗļ¦«å¶øå½±ļ¦¬ę˜ ęšŽę„¹ę¦®ę°øę³³ęø¶ę½ęæšē€›ē€Æē…ē‡Ÿē°ļ¦­ē‘›ļ¦®ē“”ē›ˆē©Žēŗ“ļ¦Æļ¦°č‹±č© čæŽļ¦±éˆļ¦²éœ™ļ¦³ļ¦“乂å€Ŗļ¦µåˆˆå”ę›³ę±­ęæŠēŒŠēæē©¢čŠ®č—č˜‚ļ¦¶č£”č©£č­½č±«ļ¦·éŠ³ļ¦ø霓預äŗ”伍äæ‰å‚²åˆå¾å³å—šå”¢å¢ŗ儧å؛åÆ¤ę‚Ÿļ¦¹ę‡Šę•–ę—æę™¤ę¢§ę±šę¾³"],
-["e8a1","ēƒē†¬ē’ē­½čœˆčŖ¤é°²é¼‡å±‹ę²ƒē„ēŽ‰éˆŗęŗ«ē‘„ē˜Ÿē©©ēø•č˜Šå…€å£…꓁ē“®ē”•ē™°ēæé‚•é›é„”ęø¦ē“¦ēŖ©ēŖŖ臄蛙čøčØ›å©‰å®Œå®›ę¢”ę¤€ęµ£ēŽ©ē“ē¬ē¢—ē·©ēæ«č„˜č…•čŽžč±Œé˜®é ‘ę›°å¾€ę—ŗ꞉ę±ŖēŽ‹å€­å؃ę­ŖēŸ®å¤–嵬巍ēŒ„ē•ļ¦ŗļ¦»åƒ„凹å Æ夭妖姚åÆ„ļ¦¼ļ¦½å¶¢ę‹—ę–ę’“ę“¾ļ¦¾ę›œļ¦æꩈļ§€ē‡æē‘¤ļ§"],
-["e9a1","ēŖˆēŖÆē¹‡ē¹žč€€č…°ļ§‚čŸÆ要謠遙ļ§ƒé‚€é„’ę…¾ę¬²ęµ“ēøŸč¤„č¾±äæ‘傭冗勇埇墉容åŗøę…‚ę¦•ę¶Œę¹§ęŗ¶ē†”ē‘¢ē”Øē”¬č³čŒø蓉čøŠéŽ”鏞ļ§„äŗŽä½‘偶å„Ŗ又友右宇åÆ“å°¤ę„šę†‚ę—“ē‰›ēŽ—ē‘€ē›‚ē„ē¦‘ē¦¹ē“†ē¾½čŠ‹č—•č™žčæ‚遇郵é‡Ŗ隅é›Øé›©å‹–å½§ę—­ę˜±ę Æē…œēض郁頊äŗ‘ļ§…ę©’ę®žę¾ē†‰č€˜čŠø蕓"],
-["eaa1","é‹éš•é›²éŸ»č”šé¬±äŗē†Šé›„元原哔圓園垣åŖ›å«„åƃę€Øę„æę“ę²…ę“¹ę¹²ęŗēˆ°ēŒæē‘—č‹‘č¢č½…é ļ§†é™¢é”˜é“›ęœˆč¶Šé‰žä½å‰åƒžå±åœå§”åØå°‰ę…°ęšęø­ēˆ²ē‘‹ē·ÆčƒƒčŽč‘¦č”æčŸč”›č¤˜č¬‚é•éŸ‹é­ä¹³ä¾‘å„’å…Ŗļ§‡å”Æ喩å­ŗ宄幼幽åŗ¾ę‚ ęƒŸę„ˆę„‰ę„ę”ø꜉ļ§ˆęŸ”ęŸšļ§‰ę„”ę„¢ę²¹ę“§ļ§Šęøøļ§‹"],
-["eba1","ęæ”ēŒ¶ēŒ·ļ§Œē‘œē”±ļ§ē™’ļ§Žļ§ē¶­č‡¾čøč£•čŖ˜č«›č«­čø°č¹‚遊逾éŗ酉釉鍮ļ§ļ§‘å ‰ļ§’ęÆ“č‚‰č‚²ļ§“ļ§”允儫尹ļ§•ļ§–ę½¤ēŽ§čƒ¤č“‡ļ§—鈗閏ļ§˜ļ§™ļ§šļ§›čæꈎē€œēµØ融ļ§œåž ę©ę…‡ę®·čŖ¾éŠ€éš±ä¹™åŸę·«č”­é™°éŸ³é£®ę–ę³£é‚‘å‡ę‡‰č†ŗé·¹ä¾å€šå„€å®œę„ę‡æꓬ꤅ęƅē–‘ēŸ£ē¾©č‰¤č–čŸ»č”£čŖ¼"],
-["eca1","議醫äŗŒä»„伊ļ§ļ§žå¤·å§Øļ§Ÿå·²å¼›å½›ę€”ļ§ ļ§”ļ§¢ļ§£ēˆ¾ē„ļ§¤ē•°ē—ļ§„ē§»ļ§¦č€Œč€³č‚„č‹”荑ļ§§ļ§Øč²½č²³é‚‡ļ§©ļ§Ŗ飓餌ļ§«ļ§¬ē€·ē›ŠēæŠēæŒēæ¼č¬šäŗŗ仁刃印ļ§­å’½å› å§»åƅ引åæę¹®ļ§®ļ§ÆēµŖčŒµļ§°čš“čŖļ§±é­é·ļ§²ļ§³äø€ä½šä½¾å£¹ę—„ęŗ¢é€øéŽ°é¦¹ä»»å£¬å¦Šå§™ęļ§“ļ§µēؔļ§¶čč³ƒå…„卄"],
-["eda1","ļ§·ļ§øļ§¹ä»å‰©å­•čŠæ仔åˆŗå’Ø姉å§æå­å­—å­œę£ę…ˆę»‹ē‚™ē…®ēŽ†ē“·ē–µē£ē“«č€…č‡ŖčŒØč”—č—‰č«®č³‡é›Œä½œå‹ŗåš¼ę–«ę˜Øē¼ē‚øēˆµē¶½čŠé…Œé›€éµ²å­±ę£§ę®˜ę½ŗē›žå²‘ęš«ę½›ē®“ē°Ŗč ¶é›œäøˆä»—匠堓墻å£Æ儬將åø³åŗ„å¼µęŽŒęš²ę–ę؟ęŖ£ę¬Œę¼æē‰†ļ§ŗēē’‹ē« ē²§č…øč‡Ÿč‡§čŽŠč‘¬č”£č–”č—č£č““é†¬é•·"],
-["eea1","障再哉åœØå®°ę‰ęę ½ę¢“ęø½ę»“ē½ēø”č£č²”č¼‰é½‹é½Žēˆ­ē®č«éŒšä½‡ä½Žå„²å’€å§åŗ•ęŠµęµę„®ęØ—ę²®ęøšē‹™ēŒŖē–½ē®øē“µč‹§č¹č‘—č—·č©›č²Æčŗ‡é€™é‚ø雎齟勣吊嫔åÆ‚ę‘˜ę•µę»“ē‹„ļ§»ēš„ē©ē¬›ē±ēø¾ēæŸč»č¬«č³Ščµ¤č·”č¹ŸčæŖčæ¹é©é‘佃ä½ŗ傳å…Øå…ø前å‰Ŗå””å”¼å„ å°ˆå±•å»›ę‚›ęˆ°ę “ę®æę°ˆę¾±"],
-["efa1","ē…Žē ē”°ē”øē•‘ē™²ē­Œē®‹ē®­ēƆēŗč©®č¼¾č½‰éˆæ銓錢鐫電锚锫餞切ęˆŖęŠ˜ęµ™ē™¤ē«Šēƀēµ¶å å²¾åŗ—ę¼øē‚¹ē²˜éœ‘鮎點ꎄę‘ŗč¶äøäŗ•äŗ­åœåµå‘ˆå§ƒå®šå¹€åŗ­å»·å¾ęƒ…ęŒŗę”æę•“ę—Œę™¶ę™øęŸ¾ę„ØęŖ‰ę­£ę±€ę·€ę·ØęøŸę¹žē€žē‚”ēŽŽē½ē”ŗē›ē¢‡ē¦Žē؋ē©½ē²¾ē¶Žč‰‡č؂č«Ŗč²žé„­é…Šé‡˜é‰¦é‹ŒéŒ éœ†é–"],
-["f0a1","靜頂鼎制劑啼堤åøå¼Ÿę‚Œęę¢ÆęæŸē„­ē¬¬č‡č–ŗč£½č«øč¹„é†é™¤éš›éœ½é”Œé½ŠäæŽå…†å‡‹åŠ©å˜²å¼”彫ęŽŖę“ę—©ę™ę›ŗę›¹ęœę¢ę£—ę§½ę¼•ę½®ē…§ē‡„ēˆŖē’Ŗēœŗē„–ē„šē§ŸēØ ēŖ•ē²—ē³Ÿēµ„ē¹°č‚‡č—»čš¤č©”čŖæ趙čŗé€ é­é‡£é˜»é›•é³„ꗏē°‡č¶³éƒå­˜å°Šå’ę‹™ēŒå€§å®—å¾žę‚°ę…«ę£•ę·™ē®ēØ®ēµ‚ē¶œēø±č…«"],
-["f1a1","čøŖčøµé¾é˜ä½åå·¦åŗ§ęŒ«ē½Ŗäø»ä½ä¾åšå§čƒ„å‘Ŗå‘Øå—¾å„å®™å·žå»šę™ęœ±ęŸ±ę Ŗę³Øę“²ę¹Šę¾ē‚·ē ē–‡ē±Œē“‚ē“¬ē¶¢čˆŸč››čØ»čŖ…čµ°čŗŠč¼³é€±é…Žé…’鑄駐ē«¹ē²„äæŠå„å‡†åŸˆåÆÆå³»ę™™ęØ½ęµšęŗ–ęæ¬ē„Œē•Æē«£č ¢é€”遵雋é§æ茁äø­ä»²č”†é‡å½ę«›ę„«ę±č‘ŗå¢žę†Žę›¾ę‹Æēƒē”‘ē—‡ē¹’č’øč­‰č“ˆä¹‹åŖ"],
-["f2a1","咫地址åæ—ęŒęŒ‡ę‘Æę”Æę—Øę™ŗęžęž³ę­¢ę± ę²šę¼¬ēŸ„ē „ē„‰ē„—ē“™č‚¢č„‚č‡³čŠčŠ·čœ˜čŖŒļ§¼č“„č¶¾é²ē›“ēؙēØ·ē¹”č·å”‡å—”å”µęŒÆę¢ę™‰ę™‹ę”­ę¦›ę®„ę“„ęŗ±ēē‘Øē’”ē•›ē–¹ē›”ēœžēž‹ē§¦ēø‰ēøč‡»č”Æč¢—čØŗč³‘č»«č¾°é€²éŽ­é™£é™³éœ‡ä¾„å±å§Ŗ嫉åø™ę”Žē“†ē–¾ē§©ēŖ’č†£č›­č³Ŗč·Œčæ­ę–Ÿęœ•ļ§½åŸ·ę½—ē·č¼Æ"],
-["f3a1","é¶é›†å¾µę‡²ę¾„äø”侘借叉嗟åµÆå·®ę¬”ę­¤ē£‹ē®šļ§¾č¹‰č»Šé®ę‰ę¾ē€ēŖ„éŒÆé‘æé½Ŗ꒰ę¾Æē‡¦ē’Øē“šē«„ē°’ēŗ‚ē²²ēŗ˜č®šč“Šé‘½é¤é„Œåˆ¹åÆŸę“¦ęœ­ē“®åƒ­åƒå”¹ę…˜ę…™ę‡ŗę–¬ē«™č®’č®–å€‰å€”創唱åØ¼å» å½°ę„“ę•žę˜Œę˜¶ęš¢ę§ę»„ę¼²ēŒ–ē˜”ēŖ“č„¹č‰™č–č’¼å‚µåŸ°åƀåÆØå½©ęŽ”ē ¦ē¶µčœč””é‡‡é‡µå†ŠęŸµē­–"],
-["f4a1","č²¬å‡„å¦»ę‚½č™•å€œļ§æ剔å°ŗę…½ęˆšę‹“ę“²ę–„ę»Œē˜ č„Šč¹ é™Ÿéš»ä»Ÿåƒå–˜å¤©å·ę“…ę³‰ę·ŗēŽ”ē©æčˆ›č–¦č³¤čøé·é‡§é—”阔韆å‡øå“²å–†å¾¹ę’¤ę¾ˆē¶“č¼Ÿč½éµåƒ‰å°–ę²¾ę·»ē”›ēž»ē°½ē±¤č©¹č«‚堞妾åø–ę·ē‰’ē–Šē«č«œč²¼č¼’å»³ę™“ę·øč½čč«‹é‘éƖļ؀剃ę›æ궕ę»Æē· č«¦é€®éžé«”初å‰æå“Øę†”ęŠ„ę‹›ę¢¢"],
-["f5a1","ꤒꄚęصē‚’ē„¦ē”ē¤ē¤Žē§’ēØč‚–č‰øč‹•č‰č•‰č²‚č¶…é…¢é†‹é†®äæƒå›‘ē‡­ēŸ—čœ€č§øåÆøåæ–ę‘é‚Ø叢唚åÆµę‚¤ę†ę‘ ēø½č°č”„éŠƒę’®å‚¬å“”ęœ€å¢œęŠ½ęŽØꤎę„øęØžę¹«ēšŗē§‹čŠ»č©č«č¶Øčæ½é„’酋醜錐錘鎚雛éض鰍äø‘ē•œē„ē«ŗē­‘ēƉēø®č“„č¹™č¹“č»øé€ę˜„ę¤æē‘ƒå‡ŗęœ®é»œå……åæ ę²–čŸ²č”č”·ę‚“č†µčƒ"],
-["f6a1","č“…å–å¹å˜“åض就ē‚Šēæ čšč„†č‡­č¶£é†‰é©Ÿé·²å“ä»„åŽ ęƒ»ęø¬å±¤ä¾ˆå€¤å—¤å³™å¹Ÿę„ę¢”ę²»ę·„ē†¾ē—”ē—“ē™”ēؚē©‰ē·‡ē·»ē½®č‡“čš©č¼œé›‰é¦³é½’å‰‡å‹…é£­č¦ŖäøƒęŸ’ę¼†ä¾µåÆ¢ęž•ę²ˆęµøē›ē §é‡é¼čŸ„ē§¤ēرåæ«ä»–å’¤å”¾å¢®å¦„ęƒ°ę‰“ę‹–ęœ¶ę„•čˆµé™€é¦±é§å€¬å“å•„å¼ļØę‰˜ļØ‚ę“¢ę™«ęŸęæęæÆē¢ēøčؗ"],
-["f7a1","éøå‘‘å˜†å¦å½ˆę†šę­Žē˜ē‚­ē¶»čŖ•å„Ŗč„«ęŽ¢ēœˆč€½č²Ŗå””ę­ę¦»å®•åø‘ę¹ÆļØƒč•©å…Œå°å¤Ŗę€ ę…‹ę®†ę±°ę³°ē¬žčƒŽč‹”č·†é‚°é¢±ļØ„ę“‡ę¾¤ę’‘ę”„å…ŽååœŸčØŽę…Ÿę”¶ļ؅ē—›ē­’ēµ±é€šå †ę§Œč…æč¤Ŗ退頹åøå„—å¦¬ęŠ•é€é¬Ŗꅝē‰¹é—–å”å©†å·“ęŠŠę’­ę“ŗę·ę³¢ę“¾ēˆ¬ē¶ē “ē½·čŠ­č·›é —判坂ęæē‰ˆē“£č²©č¾¦éˆ‘"],
-["f8a1","é˜Ŗå…«å­ęŒä½©å”„ę‚–ę•—ę²›ęµæē‰Œē‹½ēØ—č¦‡č²å½­ę¾Žēƒ¹č†Øꄎä¾æåę‰ē‰‡ēƇē·Øēæ©ééž­éØ™č²¶åŖå¹³ęž°čč©•å å¬–å¹£å»¢å¼Šę–ƒč‚ŗč”½é–‰é™›ä½ˆåŒ…åŒåŒå’†å“ŗ圃åøƒę€–ęŠ›ęŠ±ę•ļØ†ę³”ęµ¦ē–±ē ²čƒžč„Æč‹žč‘”č’²č¢č¤’é€‹é‹Ŗé£½é®‘å¹…ęš“ę›ē€‘ēˆ†ļ؇äæµå‰½å½ŖꅓꝓęØ™ę¼‚ē“¢ē„Øč”Øč±¹é£‡é£„é©ƒ"],
-["f9a1","品ēØŸę„“č«·č±Šé¢Øé¦®å½¼ęŠ«ē–²ēš®č¢«éæ陂匹弼åæ…ę³ŒēŒē•¢ē–‹ē­†č‹¾é¦ä¹é€¼äø‹ä½•åŽ¦å¤å»ˆę˜°ę²³ē‘•č·č¦č³€ééœžé°•å£‘å­ø虐謔鶓åƒęØę‚ę—±ę±—ę¼¢ę¾£ē€šē½•ēæ°é–‘é–’é™éŸ“å‰²č½„å‡½å«å’ø啣喊ęŖ»ę¶µē·˜č‰¦éŠœé™·é¹¹åˆå“ˆē›’č›¤é–¤é—”é™œäŗ¢ä¼‰å§®å«¦å··ę’ęŠ—ę­ę”ę²†ęøÆē¼ø肛čˆŖ"],
-["faa1","ļ؈ļ؉項äŗ„å•å’³åž“å„šå­©å®³ę‡ˆę„·ęµ·ē€£čŸ¹č§£č©²č«§é‚‚駭éŖø劾ę ø倖å¹øęč‡č”Œäŗ«å‘åš®ē¦é„•éŸæé¤‰é„—é¦™å™“å¢Ÿč™›čØ±ę†²ę«¶ē»č»’ę­‡éšŖé©—å„•ēˆ€čµ«é©äæ”峓弦ę‡øę™›ę³«ē‚«ēŽ„ēŽ¹ē¾ēœ©ēēµƒēµ¢ēø£čˆ·č”’ļØŠč³¢é‰‰é”Æ孑ē©“č”€é å«Œäæ å”å¤¾å³½ęŒ¾ęµ¹ē‹¹č„…č„‡čŽ¢é‹é °äŗØ兄刑型"],
-["fba1","å½¢ę³‚ę»Žē€…ēē‚Æē†’ē©ē‘©čŠčž¢č””逈邢鎣é¦Øå…®å½—ęƒ ę…§ęš³č•™č¹Šé†Æ鞋乎äŗ’呼壕å£ŗå„½å²µå¼§ęˆ¶ę‰ˆę˜Šę™§ęÆ«ęµ©ę·ę¹–ę»øę¾”ęæ ęæ©ēē‹ē„ē‘šē“ ēš“ē„œē³Šēøžčƒ”芦葫č’æč™Žč™Ÿč“č­·č±ŖéŽ¬é €é”„ęƒ‘ęˆ–é…·å©šę˜ę··ęø¾ēæ魂åæ½ęƒšē¬å“„å¼˜ę±žę³“ę“Ŗēƒ˜ē“…č™¹č،铻化和嬅ęØŗē«ē•µ"],
-["fca1","ē¦ē¦¾čŠ±čÆ話譁č²Ø靓ļØ‹ę““ę”«ē¢ŗē¢»ē©«äøøå–šå„å®¦å¹»ę‚£ę›ę­”ę™„ę”“ęø™ē…„ē’°ē“ˆé‚„é©©é°„ꓻ껑ēŒ¾č±é—Šå‡°å¹Œå¾Øęęƒ¶ę„°ę…Œę™ƒę™„ę¦„ę³ę¹Ÿę»‰ę½¢ē…Œē’œēš‡ēƁē°§č’č—é‘éšé»ƒåŒÆå›žå»»å¾Šę¢ę‚”ę‡·ę™¦ęœƒęŖœę·®ę¾®ē°ēŖē¹Ŗč†¾čŒ“č›”čŖØč³„åŠƒē²å®–ę©«é„å“®åš†å­ę•ˆę–…ę›‰ę¢Ÿę¶ę·†"],
-["fda1","ēˆ»č‚“酵驍ä¾Æ候厚后吼喉嗅åøæå¾Œęœ½ē…¦ēé€…勛勳唤壎ē„„ē†ē‡»č–°čØ“ęšˆč–Øå–§ęš„ē…Šč±å‰å–™ęÆå½™å¾½ę®ęš‰ē…‡č«±č¼éŗ¾ä¼‘ęŗēƒ‹ē•¦č™§ę¤č­Žé·øå…‡å‡¶åŒˆę“¶čƒøé»‘ę˜•ę¬£ē‚˜ē—•åƒå±¹ē“‡čØ–ę¬ ę¬½ę­†åøę°ę“½ēæ•čˆˆåƒ–凞喜噫囍姬嬉åøŒę†™ę†˜ęˆ±ę™žę›¦ē†™ē†¹ē†ŗēŠ§ē¦§ē؀ē¾²č©°"]
-]
diff --git a/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 b/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
deleted file mode 100644
index d8bc87178d..0000000000
--- a/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
+++ /dev/null
@@ -1,177 +0,0 @@
-[
-["0","\u0000",127],
-["a140","怀ļ¼Œć€ć€‚ļ¼Žā€§ļ¼›ļ¼šļ¼Ÿļ¼ļø°ā€¦ā€„ļ¹ļ¹‘ļ¹’Ā·ļ¹”ļ¹•ļ¹–ļ¹—ļ½œā€“ļø±ā€”ļø³ā•“ļø“ļ¹ļ¼ˆļ¼‰ļøµļø¶ļ½›ļ½ļø·ļøø怔怕ļø¹ļøŗ怐怑ļø»ļø¼ć€Šć€‹ļø½ļø¾ć€ˆć€‰ļøæļ¹€ć€Œć€ļ¹ļ¹‚ć€Žć€ļ¹ƒļ¹„ļ¹™ļ¹š"],
-["a1a1","ļ¹›ļ¹œļ¹ļ¹žā€˜ā€™ā€œā€ć€ć€žā€µā€²ļ¼ƒļ¼†ļ¼Šā€»Ā§ć€ƒā—‹ā—ā–³ā–²ā—Žā˜†ā˜…ā—‡ā—†ā–”ā– ā–½ā–¼ćŠ£ā„…ĀÆļæ£ļ¼æĖļ¹‰ļ¹Šļ¹ļ¹Žļ¹‹ļ¹Œļ¹Ÿļ¹ ļ¹”ļ¼‹ļ¼Ć—Ć·Ā±āˆšļ¼œļ¼žļ¼ā‰¦ā‰§ā‰ āˆžā‰’ā‰”ļ¹¢",4,"ļ½žāˆ©āˆŖāŠ„āˆ āˆŸāŠæ插揑āˆ«āˆ®āˆµāˆ“ā™€ā™‚āŠ•āŠ™ā†‘ā†“ā†ā†’ā†–ā†—ā†™ā†˜āˆ„āˆ£ļ¼"],
-["a240","ļ¼¼āˆ•ļ¹Øļ¼„ļæ„怒ļæ ļæ”ļ¼…ļ¼ ā„ƒā„‰ļ¹©ļ¹Ŗļ¹«ć•ćŽœćŽćŽžćŽćŽ”掎掏揄Ā°å…™å…›å…žå…å…”兣嗧ē“©ē³Žā–",7,"ā–ā–Žā–ā–Œā–‹ā–Šā–‰ā”¼ā”“ā”¬ā”¤ā”œā–”ā”€ā”‚ā–•ā”Œā”ā””ā”˜ā•­"],
-["a2a1","ā•®ā•°ā•Æā•ā•žā•Ŗā•”ā—¢ā—£ā—„ā—¤ā•±ā•²ā•³ļ¼",9,"ā… ",9,"怔",8,"十卄卅ļ¼”",25,"ļ½",21],
-["a340","ļ½—ļ½˜ļ½™ļ½šĪ‘",16,"Ī£",6,"Ī±",16,"Ļƒ",6,"愅",10],
-["a3a1","愐",25,"Ė™Ė‰ĖŠĖ‡Ė‹"],
-["a3e1","ā‚¬"],
-["a440","äø€ä¹™äøäøƒä¹ƒä¹äŗ†äŗŒäŗŗå„æ兄八几刀刁力匕十卜又äø‰äø‹äøˆäøŠäø«äøø凔久么也乞äŗŽäŗ”兀刃å‹ŗ千叉口土士夕大儳子孑孓åÆø小尢å°øå±±å·å·„å·±å·²å·³å·¾å¹²å»¾å¼‹å¼“ę‰"],
-["a4a1","äø‘äøäøäø­äø°äø¹ä¹‹å°¹äŗˆäŗ‘äŗ•äŗ’äŗ”äŗ¢ä»ä»€ä»ƒä»†ä»‡ä»ä»Šä»‹ä»„元允內六兮公冗凶分切刈勻勾å‹æ化匹午升卅卞厄友及反壬天夫å¤Ŗ夭孔少尤å°ŗå±Æå·“å¹»å»æ弔引åæƒęˆˆęˆ¶ę‰‹ę‰Žę”Æę–‡ę–—ę–¤ę–¹ę—„ę›°ęœˆęœØę¬ ę­¢ę­¹ęƋęƔęÆ›ę°ę°“ē«ēˆŖēˆ¶ēˆ»ē‰‡ē‰™ē‰›ēŠ¬ēŽ‹äø™"],
-["a540","äø–äø•äø”äø˜äø»ä¹ä¹ä¹Žä»„付仔仕他仗代令仙仞充兄冉冊冬凹å‡ŗå‡ø刊加功包匆北匝仟半卉協占åÆ卮去åÆ古右召叮叩åØ叼åø叵叫另åŖ史叱台叄叭叻四囚外"],
-["a5a1","央失儓儶孕它尼å·Ø巧左åø‚åøƒå¹³å¹¼å¼å¼˜å¼—åæ…ęˆŠę‰“ę‰”ę‰’ę‰‘ę–„ę—¦ęœ®ęœ¬ęœŖęœ«ęœ­ę­£ęÆę°‘ę°ę°øę±ę±€ę°¾ēŠÆēŽ„ēŽ‰ē“œē“¦ē”˜ē”Ÿē”Øē”©ē”°ē”±ē”²ē”³ē–‹ē™½ēš®ēšæē›®ēŸ›ēŸ¢ēŸ³ē¤ŗē¦¾ē©“ē«‹äøžäøŸä¹’乓乩äŗ™äŗ¤äŗ¦äŗ„ä»æ伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先å…Ø"],
-["a640","共再冰列刑划刎刖劣匈匔匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地åœØ圭圬åœÆ圩夙多夷å¤ø妄å„ø妃儽儹如妁字存宇守宅安åÆŗ尖屹州åø†å¹¶å¹“"],
-["a6a1","式弛åæ™åæ–ęˆŽęˆŒęˆęˆę‰£ę‰›ę‰˜ę”¶ę—©ę—Øę—¬ę—­ę›²ę›³ęœ‰ęœ½ęœ“ęœ±ęœµę¬”ę­¤ę­»ę°–ę±ę±—ę±™ę±Ÿę± ę±ę±•ę±”ę±›ę±ę±Žē°ē‰Ÿē‰ē™¾ē«¹ē±³ē³øē¼¶ē¾Šē¾½č€č€ƒč€Œč€’č€³čæč‚‰č‚‹č‚Œč‡£č‡Ŗč‡³č‡¼čˆŒčˆ›čˆŸč‰®č‰²č‰¾č™«č”€č”Œč”£č„æ阔äø²äŗØ位住佇佗佞伓佛何估佐佑伽ä¼ŗä¼ø佃佔似但佣"],
-["a740","作你ä¼Æ低伶余佝佈佚兌克免兵冶冷刄判利åˆŖåˆØ劫助åŠŖ劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻åø吮吵吶吠吼呀吱含吟听å›Ŗ困囤囫坊坑址坍"],
-["a7a1","均坎圾坐坏圻å£Æ夾妝妒å¦Ø妞妣妙妖妍妤妓妊妄孝孜孚孛完宋宏尬局屁å°æ尾岐岑岔岌巫åøŒåŗåŗ‡åŗŠå»·å¼„弟彤形彷役åæ˜åæŒåæ—åæåæ±åæ«åæøåæŖęˆ’ęˆ‘ęŠ„ęŠ—ęŠ–ęŠ€ę‰¶ęŠ‰ę‰­ęŠŠę‰¼ę‰¾ę‰¹ę‰³ęŠ’ę‰ÆęŠ˜ę‰®ęŠ•ęŠ“ęŠ‘ęŠ†ę”¹ę”»ę”øę—±ę›“ęŸęŽęęę‘ęœę–ęžę‰ę†ę "],
-["a840","ę“ę—ę­„ęÆę±‚ę±žę²™ę²ę²ˆę²‰ę²…ę²›ę±Ŗę±ŗę²ę±°ę²Œę±Øę²–ę²’ę±½ę²ƒę±²ę±¾ę±“ę²†ę±¶ę²ę²”ę²˜ę²‚ē¶ē¼ē½ēøē‰¢ē‰”ē‰ ē‹„ē‹‚ēŽ–ē”¬ē”«ē”·ē”øēš‚ē›ÆēŸ£ē§ē§€ē¦æē©¶ē³»ē½•č‚–č‚“č‚č‚˜č‚›č‚šč‚²č‰Æ芒"],
-["a8a1","čŠ‹čŠč¦‹č§’čØ€č°·č±†č±•č²čµ¤čµ°č¶³čŗ«č»Šč¾›č¾°čæ‚čæ†čæ…čæ„å·”邑邢é‚Ŗ邦那酉釆里防阮阱é˜Ŗ阬äø¦ä¹–ä¹³äŗ‹äŗ›äŗžäŗ«äŗ¬ä½Æ依侍佳ä½æ佬供例來侃佰併侈佩佻侖佾侏侑ä½ŗ兔兒兕兩具其å…ø冽函刻åˆø刷åˆŗ到刮制剁劾劻卒協卓卑卦卷åø卹取叔受味呵"],
-["a940","咖å‘ø咕咀呻呷咄咒咆呼咐呱呶和咚呢å‘Ø咋命咎å›ŗ垃坷åŖ坩坔坦坤坼夜儉儇儈億儔妾妻委妹妮姑姆姐姍始姓姊å¦Æ妳姒姅孟孤季宗定官宜宙宛尚屈居"],
-["a9a1","屆岷岔å²ø岩岫岱岳åø˜åøšåø–åø•åø›åø‘å¹øåŗšåŗ—åŗœåŗ•åŗ–延弦弧弩往征å½æå½¼åæåæ åæ½åæµåææꀏꀔę€Æꀵꀖę€Ŗę€•ę€”ę€§ę€©ę€«ę€›ęˆ–ęˆ•ęˆæęˆ¾ę‰€ę‰æꋉꋌꋄęŠæę‹‚ęŠ¹ę‹’ę‹›ęŠ«ę‹“ę‹”ę‹‹ę‹ˆęŠØęŠ½ęŠ¼ę‹ę‹™ę‹‡ę‹ęŠµę‹šęŠ±ę‹˜ę‹–ę‹—ę‹†ęŠ¬ę‹Žę”¾ę–§ę–¼ę—ŗꘔꘓꘌꘆꘂ꘎ꘀ꘏ꘕꘊ"],
-["aa40","ę˜‡ęœęœ‹ę­ęž‹ęž•ę±ęžœę³ę·ęž‡ęžęž—ęÆꝰęæęž‰ę¾ęžęµęžšęž“ę¼ęŖę²ę¬£ę­¦ę­§ę­æę°“ę°›ę³£ę³Øę³³ę²±ę³Œę³„ę²³ę²½ę²¾ę²¼ę³¢ę²«ę³•ę³“ę²øę³„ę²¹ę³ę²®ę³—ę³…ę³±ę²æę²»ę³”ę³›ę³Šę²¬ę³Æę³œę³–ę³ "],
-["aaa1","ē‚•ē‚Žē‚’ē‚Šē‚™ēˆ¬ēˆ­ēˆøē‰ˆē‰§ē‰©ē‹€ē‹Žē‹™ē‹—ē‹ēŽ©ēŽØēŽŸēŽ«ēŽ„ē”½ē–ē–™ē–šēš„ē›‚ē›²ē›“ēŸ„ēŸ½ē¤¾ē„€ē„ē§‰ē§ˆē©ŗē©¹ē«ŗē³¾ē½”ē¾Œē¾‹č€…č‚ŗč‚„č‚¢č‚±č‚”č‚«č‚©č‚“č‚Ŗč‚Æč‡„č‡¾čˆčŠ³čŠčŠ™čŠ­čŠ½čŠŸčŠ¹čŠ±čŠ¬čŠ„čŠÆčŠøčŠ£čŠ°čŠ¾čŠ·č™Žč™±åˆč”Ø軋čæŽčæ”čæ‘邵é‚ø邱邶采金長門阜陀é˜æ阻附"],
-["ab40","陂隹é›Ø青非äŗŸäŗ­äŗ®äæ”ä¾µä¾Æä¾æäæ äæ‘äæäæäæƒä¾¶äæ˜äæŸäæŠäæ—ä¾®äæäæ„äæ‚äæšäæŽäæžä¾·å…—冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀å’Ø哎哉å’ø咦咳哇哂咽å’Ŗ品"],
-["aba1","哄哈å’Æ咫咱咻咩咧å’æå›æ垂型垠垣垢城垮垓儕儑儏儎儐姜姘å§æ姣å§Øå؃姄å§Ŗ姚姦å؁姻孩宣宦室客宄封屎屏屍屋峙峒巷åøåø„åøŸå¹½åŗ åŗ¦å»ŗå¼ˆå¼­å½„å¾ˆå¾…å¾Šå¾‹å¾‡å¾Œå¾‰ę€’ę€ę€ ę€„ę€Žę€ØꁍꁰęØę¢ę†ęƒę¬ę«ęŖę¤ę‰ę‹œęŒ–ęŒ‰ę‹¼ę‹­ęŒę‹®ę‹½ęŒ‡ę‹±ę‹·"],
-["ac40","ę‹Æę‹¬ę‹¾ę‹“ęŒ‘ęŒ‚ę”æę•…ę–«ę–½ę—¢ę˜„ę˜­ę˜ ę˜§ę˜Æꘟę˜Øę˜±ę˜¤ę›·ęŸæęŸ“ęŸ±ęŸ”ęŸęŸ¬ęž¶ęžÆęŸµęŸ©ęŸÆęŸ„ęŸ‘ęž“ęŸšęŸ„ęžøęŸęŸžęŸ³ęž°ęŸ™ęŸ¢ęŸęŸ’ę­Ŗę®ƒę®†ę®µęƒęÆ—ę°Ÿę³‰ę“‹ę“²ę“Ŗęµę“„ę“Œę“±ę“žę“—"],
-["aca1","ę“»ę“½ę“¾ę“¶ę“›ę³µę“¹ę“§ę“øꓩꓮꓵ꓎ꓫē‚«ē‚ŗē‚³ē‚¬ē‚Æē‚­ē‚øē‚®ē‚¤ēˆ°ē‰²ē‰Æē‰“ē‹©ē‹ ē‹”ēŽ·ēŠēŽ»ēŽ²ēē€ēŽ³ē”šē”­ē•ē•Œē•Žē•‹ē–«ē–¤ē–„ē–¢ē–£ē™øēš†ēš‡ēšˆē›ˆē›†ē›ƒē›…ēœē›¹ē›øēœ‰ēœ‹ē›¾ē›¼ēœ‡ēŸœē ‚ē ”ē Œē ē„†ē„‰ē„ˆē„‡ē¦¹ē¦ŗē§‘ē§’ē§‹ē©æēŖē«æē«½ē±½ē“‚ē“…ē“€ē“‰ē“‡ē“„ē“†ē¼øē¾Žē¾æ耄"],
-["ad40","č€č€č€‘č€¶čƒ–čƒ„čƒščƒƒčƒ„čƒŒčƒ”čƒ›čƒŽčƒžčƒ¤čƒč‡“čˆ¢č‹§čŒƒčŒ…č‹£č‹›č‹¦čŒ„č‹„čŒ‚čŒ‰č‹’č‹—č‹±čŒč‹œč‹”č‹‘č‹žč‹“č‹Ÿč‹ÆčŒ†č™č™¹č™»č™ŗč”č”«č¦č§”č؈č؂čØƒč²žč² čµ“čµ³č¶“č»č»Œčæ°čæ¦čæ¢čæŖčæ„"],
-["ada1","čæ­čæ«čæ¤čæØ郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁é¢Ø飛食首香乘äŗ³å€Œå€å€£äæÆ倦倄äæø倩倖倆值借倚倒們äæŗ倀倔å€Øäæ±å€”個候倘äæ³äæ®å€­å€Ŗäæ¾å€«å€‰å…¼å†¤å†„冢凍凌准凋剖剜剔剛剝åŒŖåæ原厝叟å“Ø唐唁唷哼哄哲唆å“ŗ唔哩哭哔唉哮å“Ŗ"],
-["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏儗儘儚åؑåؘå؜å؟å؛åؓ姬åØ åØ£åØ©åØ„å،å؉孫屘宰害家宓宮宵容å®ø射屑展屐峭峽峻å³Ŗå³Ø峰島品峓差åø­åø«åŗ«åŗ­åŗ§å¼±å¾’å¾‘å¾ę™"],
-["aea1","ę£ę„ęę•ę­ę©ęÆę‚„ę‚Ÿę‚šę‚ę‚”ę‚Œę‚…ę‚–ę‰‡ę‹³ęŒˆę‹æęŽęŒ¾ęŒÆꍕꍂꍆꍏꍉęŒŗęęŒ½ęŒŖęŒ«ęŒØꍍꍌꕈꕉꖙꗁꗅꙂꙉꙏꙃꙒꙌꙅꙁę›øęœ”ęœ•ęœ—ę ”ę øę”ˆę”†ę”“ę ¹ę”‚ę””ę ©ę¢³ę —ę”Œę”‘ę ½ęŸ“ę”ę”€ę ¼ę”ƒę Ŗę”…ę “ę ˜ę”ę®Šę®‰ę®·ę°£ę°§ę°Øę°¦ę°¤ę³°ęµŖę¶•ę¶ˆę¶‡ęµ¦ęµø굷굙궓"],
-["af40","ęµ¬ę¶‰ęµ®ęµšęµ“ęµ©ę¶Œę¶Šęµ¹ę¶…ęµ„ę¶”ēƒŠēƒ˜ēƒ¤ēƒ™ēƒˆēƒēˆ¹ē‰¹ē‹¼ē‹¹ē‹½ē‹øē‹·ēŽ†ē­ē‰ē®ē ēŖēžē•”ē•ē•œē•šē•™ē–¾ē—…ē—‡ē–²ē–³ē–½ē–¼ē–¹ē—‚ē–øēš‹ēš°ē›Šē›ē›Žēœ©ēœŸēœ ēœØēŸ©ē °ē §ē øē ē “ē ·"],
-["afa1","ē „ē ­ē  ē Ÿē ²ē„•ē„ē„ ē„Ÿē„–ē„žē„ē„—ē„šē§¤ē§£ē§§ē§Ÿē§¦ē§©ē§˜ēŖ„ēŖˆē«™ē¬†ē¬‘ē²‰ē“”ē“—ē“‹ē“Šē“ ē“¢ē“”ē“ē“•ē“šē“œē“ē“™ē“›ē¼ŗē½Ÿē¾”ēæ…ēæč€†č€˜č€•č€™č€—č€½č€æčƒ±č„‚čƒ°č„…čƒ­čƒ“č„†čƒøčƒ³č„ˆčƒ½č„Ščƒ¼čƒÆč‡­č‡¬čˆ€čˆčˆŖ舫čˆØčˆ¬čŠ»čŒ«č’č”čŠčŒøčč‰čŒµčŒ“ččŒ²čŒ¹čŒ¶čŒ—č€čŒ±čŒØ荃"],
-["b040","虔蚊čšŖčš“čš¤čš©čšŒčš£čšœč”°č”·č¢č¢‚č”½č”¹čؘčؐč؎č،čؕč؊čؗčؓčؖč؏čØ‘č±ˆč±ŗč±¹č²”č²¢čµ·čŗ¬č»’č»”č»č¾±é€é€†čæ·é€€čæŗčæ“逃čæ½é€…čæø邕郔郝郢酒配酌釘針釗釜釙閃院陣陔"],
-["b0a1","陛陝除陘陞隻飢馬éŖØ高鬄鬲鬼乾åŗ偽停假偃偌做偉偄偶偎偕偵偓偷偏倏åÆ偭兜冕凰å‰Ŗå‰Æ勒務勘動匐匏匙åŒæå€åŒ¾åƒę›¼å•†å•Ŗ啦啄啞啔啃啊唱啖問啕å”Æ啤å”ø售啜唬啣唳啁啗圈國圉域堅堊堆埠埤åŸŗ堂堵執培夠儢åض婁婉婦å©Ŗ婀"],
-["b140","åؼ婢婚婆婊孰åƇåƅåƄåƂå®æåƆ尉專將屠屜屝哇哆哎哛哖哢哑哩哔哙哤哧哗巢åøøåø¶åø³åø·åŗ·åŗøåŗ¶åŗµåŗ¾å¼µå¼·å½—彬彩彫得徙從徘徔徠徜ęæę‚£ę‚‰ę‚ ę‚Øęƒ‹ę‚“ęƒ¦ę‚½"],
-["b1a1","ęƒ…ę‚»ę‚µęƒœę‚¼ęƒ˜ęƒ•ęƒ†ęƒŸę‚øęƒšęƒ‡ęˆšęˆ›ę‰ˆęŽ ęŽ§ę²ęŽ–ęŽ¢ęŽ„ę·ę§ęŽ˜ęŽŖę±ęŽ©ęŽ‰ęŽƒęŽ›ę«ęŽØęŽ„ęŽˆęŽ™ęŽ”ęŽ¬ęŽ’ęŽęŽ€ę»ę©ęØęŗę•ę•–ę•‘ę•™ę•—å•Ÿę•ę•˜ę••ę•”ę–œę–›ę–¬ę—ę—‹ę—Œę—Žę™ę™šę™¤ę™Øę™¦ę™žę›¹å‹—ęœ›ę¢ę¢Æę¢¢ę¢“ę¢µę”æę”¶ę¢±ę¢§ę¢—ę¢°ę¢ƒę£„ę¢­ę¢†ę¢…ę¢”ę¢ę¢Øę¢Ÿę¢”ę¢‚ę¬²ę®ŗ"],
-["b240","ęÆ«ęÆ¬ę°«ę¶Žę¶¼ę·³ę·™ę¶²ę·”ę·Œę·¤ę·»ę·ŗęø…귇귋ę¶Æę·‘ę¶®ę·žę·¹ę¶ø귷귵귅귒ęøšę¶µę·šę·«ę·˜ę·Ŗ귱귮ę·Ø귆귄ę¶Ŗę·¬ę¶æę·¦ēƒ¹ē„‰ē„Šēƒ½ēƒÆēˆ½ē‰½ēŠēŒœēŒ›ēŒ–ēŒ“ēŒ™ēŽ‡ē…ēŠēƒē†ē¾ēē“ ē“¶"],
-["b2a1","ē“·ē”œē”¢ē•„ē•¦ē•¢ē•°ē–ē—”ē—•ē–µē—Šē—ēšŽē›”ē›’ē››ēœ·ēœ¾ēœ¼ēœ¶ēœøēœŗē”«ē”ƒē”Žē„„ē„Øē„­ē§»ēŖ’ēŖ•ē¬ ē¬Øē¬›ē¬¬ē¬¦ē¬™ē¬žē¬®ē²’ē²—ē²•ēµ†ēµƒēµ±ē“®ē“¹ē“¼ēµ€ē“°ē“³ēµ„ē“Æēµ‚ē“²ē“±ē¼½ē¾žē¾šēæŒēæŽēæ’č€œčŠč†č„Æč„–č„£č„«č„©č„°č„¤čˆ‚čˆµčˆ·čˆ¶čˆ¹čŽŽčŽžčŽ˜čøčŽ¢čŽ–čŽ½čŽ«čŽ’čŽŠčŽ“čŽ‰čŽ č·č»č¼"],
-["b340","莆莧處å½Ŗ蛇蛀蚶蛄蚵蛆蛋蚱čšÆč›‰č”“č¢žč¢ˆč¢«č¢’č¢–č¢č¢‹č¦“č¦čØŖč؝čØ£čØ„čرčØ­č؟č؛čØ¢č±‰č±šč²©č²¬č²«č²Øč²Ŗč²§čµ§čµ¦č¶¾č¶ŗč»›č»Ÿé€™é€é€šé€—é€£é€Ÿé€é€é€•é€žé€ é€é€¢é€–é€›é€”"],
-["b3a1","éƒØ郭都酗野釵釦釣釧釭釩閉é™Ŗ陵陳é™ø陰陓陶陷陬雀é›Ŗ雩ē« ē«Ÿé ‚頃魚鳄鹵é¹æéŗ„éŗ»å‚¢å‚å‚…å‚™å‚‘å‚€å‚–å‚˜å‚šęœ€å‡±å‰²å‰“創剩勞勝勛博厄啻喀喧啼喊喝喘喂喜å–Ŗ喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍å Æå Ŗ堓堤堰報堔堝堠壹å£ŗå„ "],
-["b440","å©·åŖšå©æåŖ’åŖ›åŖ§å­³å­±åƒåƌåƓåƐ尊尋就嵌嵐哓嵇巽幅åø½å¹€å¹ƒå¹¾å»Šå»å»‚廄弼彭復å¾Ŗå¾Øęƒ‘ęƒ”ę‚²ę‚¶ęƒ ę„œę„£ęƒŗę„•ęƒ°ęƒ»ęƒ“ę…Øęƒ±ę„Žęƒ¶ę„‰ę„€ę„’ęˆŸę‰‰ęŽ£ęŽŒęę€ę©ę‰ę†ę"],
-["b4a1","ę’ę£ęę”ę–ę­ę®ę¶ę“ęŖę›ę‘’ęšę¹ę•žę•¦ę•¢ę•£ę–‘ę–ę–Æꙮ꙰ꙓꙶę™Æꚑę™ŗę™¾ę™·ę›¾ę›æꜟꜝę£ŗę£•ę£ ę£˜ę£—ę¤…ę£Ÿę£µę£®ę£§ę£¹ę£’ę£²ę££ę£‹ę£ę¤ę¤’ę¤Žę£‰ę£šę„®ę£»ę¬¾ę¬ŗę¬½ę®˜ę®–ę®¼ęÆÆę°®ę°Æę°¬ęøÆęøøę¹”ęø”ęø²ę¹§ę¹Šęø ęø„ęø£ęø›ę¹›ę¹˜ęø¤ę¹–ę¹®ęø­ęø¦ę¹Æęø“ę¹ęøŗęø¬ę¹ƒęøęø¾ę»‹"],
-["b540","ęŗ‰ęø™ę¹Žę¹£ę¹„ę¹²ę¹©ę¹Ÿē„™ē„šē„¦ē„°ē„”ē„¶ē…®ē„œē‰ŒēŠ„ēŠ€ēŒ¶ēŒ„ēŒ“ēŒ©ēŗēŖē³ē¢ē„ēµē¶ē“ēÆē›ē¦ēØē”„ē”¦ē•«ē•Ŗē—¢ē—›ē—£ē—™ē—˜ē—žē— ē™»ē™¼ēš–ēš“ēš“ē›œēēŸ­ē”ē”¬ē”Æē؍ē؈ē؋ē؅ē؀ēŖ˜"],
-["b5a1","ēŖ—ēŖ–ē«„ē«£ē­‰ē­–ē­†ē­ē­’ē­”ē­ē­‹ē­ē­‘ē²Ÿē²„ēµžēµēµØēµ•ē“«ēµ®ēµ²ēµ”ēµ¦ēµ¢ēµ°ēµ³å–„ēæ”ēæ•č€‹č’č‚…č…•č…”č…‹č…‘č…Žč„¹č…†č„¾č…Œč…“č…“čˆ’čˆœč©čƒčø萍菠菅萋菁čÆč±č“č‘—čŠč°čŒčŒč½č²čŠčøčŽč„čœč‡č”čŸč™›č›Ÿč›™č›­č›”č››č›¤č›č›žč”—č£č£‚č¢±č¦ƒč¦–čØ»č© č©•č©žčØ¼č©"],
-["b640","詔詛詐詆čØ“čØŗčØ¶č©–č±”č²‚č²Æč²¼č²³č²½č³č²»č³€č²“č²·č²¶č²æč²øč¶Šč¶…č¶č·Žč·č·‹č·šč·‘č·Œč·›č·†č»»č»øč»¼č¾œé€®é€µé€±é€ø進逶鄂郵鄉郾酣酄量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],
-["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇é›Æ雲韌項順須飧é£Ŗé£Æ飩飲飭馮馭黃黍黑äŗ‚傭債傲傳僅傾催傷傻å‚Æ僇å‰æ剷剽募勦勤勢勣åŒÆ嗟å—Ø嗓嗦嗎嗜嗇嗑嗣嗤å—Æ嗚嗔嗅嗆嗄嗉園圓唞唑唘唗唚唔唫唌唭唊唢唒唋儧嫁嫉嫌åŖ¾åŖ½åŖ¼"],
-["b740","åŖ³å«‚åŖ²åµ©åµÆå¹Œå¹¹å»‰å»ˆå¼’å½™å¾¬å¾®ę„šę„ę…ˆę„Ÿęƒ³ę„›ęƒ¹ę„ę„ˆę…Žę…Œę…„ę…ę„¾ę„“ę„§ę„ę„†ę„·ęˆ”ęˆ¢ę“ę¾ęžęŖę­ę½ę¬ęęœę”ęę¶ę–ę—ę†ę•¬ę–Ÿę–°ęš—ęš‰ęš‡ęšˆęš–ęš„ęš˜ęšęœƒę¦”ę„­"],
-["b7a1","ꄚꄷꄠꄔꄵꤰꦂꄊę„Øę„«ę„žę„“ę„¹ę¦†ę„ę„£ę„›ę­‡ę­²ęƀę®æęƓęƽęŗ¢ęŗÆ껓ęŗ¶ę»‚ęŗęŗę»‡ę»…ęŗ„ęŗ˜ęŗ¼ęŗŗęŗ«ę»‘ęŗ–ęŗœę»„ę»”ęŗŖęŗ§ęŗ“ē…Žē…™ē…©ē…¤ē…‰ē…§ē…œē…¬ē…¦ē…Œē…„ē…žē…†ē…Øē…–ēˆŗē‰’ēŒ·ē…ēŒæēŒ¾ē‘Æē‘šē‘•ē‘Ÿē‘žē‘ēæē‘™ē‘›ē‘œē•¶ē•øē˜€ē—°ē˜ē—²ē—±ē—ŗē—æē—“ē—³ē›žē›Ÿē›ē«ē¦ēžē£"],
-["b840","ē¹ēŖē¬ēœē„ēØē¢ēŸ®ē¢Žē¢°ē¢—ē¢˜ē¢Œē¢‰ē”¼ē¢‘ē¢“ē”æē„ŗē„æē¦č¬ē¦½ē؜ēؚēØ ēؔē؟ē؞ēŖŸēŖ ē­·ēƀē­ ē­®ē­§ē²±ē²³ē²µē¶“ēµ¹ē¶‘ē¶ē¶ēµ›ē½®ē½©ē½Ŗē½²ē¾©ē¾Øē¾¤č–č˜č‚†č‚„č…±č…°č…øč…„č…®č…³č…«"],
-["b8a1","č…¹č…ŗč…¦čˆ…č‰‡č’‚č‘·č½č±č‘µč‘¦č‘«č‘‰č‘¬č‘›č¼čµč‘”č‘£č‘©č‘­č‘†č™žč™œč™Ÿč›¹čœ“čœˆčœ‡čœ€č›¾č›»čœ‚čœƒčœ†čœŠč”™č£Ÿč£”č£™č£œč£˜č£č£”č£Šč£•č£’č¦œč§£č©«č©²č©³č©¦č©©č©°čŖ‡č©¼č©£čŖ č©±čŖ…č©­č©¢č©®č©¬č©¹č©»čؾč©Øč±¢č²Šč²‰č³Šč³‡č³ˆč³„č²²č³ƒč³‚č³…č·”č·Ÿč·Øč·Æč·³č·ŗč·Ŗ跤跦čŗ²č¼ƒč¼‰č»¾č¼Š"],
-["b940","č¾Ÿč¾²é‹éŠé“é‚é”é€¼é•éé‡ééŽéé‘é€¾éé„’é„—é…¬é…Ŗ酩釉鈷鉗éˆø鈽鉀鈾鉛鉋鉤鉑鈓鉉鉍鉅鈹éˆæ鉚閘隘隔隕雍雋雉雊雷電雹零靖靓靶預頑頓頊頒頌飼飓"],
-["b9a1","飽飾馳馱馓體鳩éŗ‚鼎鼓鼠僧僮僄僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖唵唾境墓墊唹墅唽壽处夢夤å„Ŗ儩嫔嫦嫩嫗嫖嫘嫣孵åƞåƧåÆ”åÆ„åƦåÆØåÆ¢åƤåÆŸå°å±¢å¶„å¶‡å¹›å¹£å¹•å¹—å¹”å»“å»–å¼Šå½†å½°å¾¹ę…‡"],
-["ba40","ę„æę…‹ę…·ę…¢ę…£ę…Ÿę…šę…˜ę…µęˆŖꒇꑘꑔ꒤ę‘øꑟę‘ŗę‘‘ę‘§ę“ę‘­ę‘»ę•²ę–”ę——ę—–ęš¢ęšØęšę¦œę¦Øę¦•ę§ę¦®ę§“ę§‹ę¦›ę¦·ę¦»ę¦«ę¦“ę§ę§ę¦­ę§Œę¦¦ę§ƒę¦£ę­‰ę­Œę°³ę¼³ę¼”ę»¾ę¼“ę»“ę¼©ę¼¾ę¼ ę¼¬ę¼ę¼‚ę¼¢"],
-["baa1","ę»æę»Æę¼†ę¼±ę¼øę¼²ę¼£ę¼•ę¼«ę¼Æę¾ˆę¼Ŗę»¬ę¼ę»²ę»Œę»·ē†”ē†™ē…½ē†Šē†„ē†’ēˆ¾ēŠ’ēŠ–ē„ēē‘¤ē‘£ē‘Ŗē‘°ē‘­ē”„ē–‘ē˜§ē˜ē˜‹ē˜‰ē˜“ē›”ē›£ēž„ē½ēæē”ē£ē¢Ÿē¢§ē¢³ē¢©ē¢£ē¦Žē¦ē¦ēØ®ēرēŖŖēŖ©ē«­ē«Æē®”ē®•ē®‹ē­µē®—ē®ē®”ē®ē®øē®‡ē®„ē²¹ē²½ē²¾ē¶»ē¶°ē¶œē¶½ē¶¾ē¶ ē·Šē¶“ē¶²ē¶±ē¶ŗē¶¢ē¶æē¶µē¶øē¶­ē·’ē·‡ē¶¬"],
-["bb40","ē½°ēæ ēæ”ēæŸčžčšč‚‡č…č†€č†č†ˆč†Šč…æ膂臧č‡ŗ與舔舞艋蓉č’æč“†č“„č’™č’žč’²č’œč“‹č’øč“€č““č’č’¼č“‘č“Ščœæčœœčœ»čœ¢čœ„čœ“čœ˜č•čœ·čœ©č£³č¤‚č£“č£¹č£øč£½č£Ø褚č£ÆčŖ¦čŖŒčŖžčŖ£čŖčŖ”čŖ“čŖ¤"],
-["bba1","čŖŖčŖ„čŖØčŖ˜čŖ‘čŖščŖ§č±Ŗč²č²Œč³“č³‘č³’čµ«č¶™č¶•č·¼č¼”č¼’č¼•č¼“č¾£é é˜éœé£é™éžé¢éé›é„™é„˜é„žé…µé…øé…·é…“é‰ø銀銅銘銖鉻銓銜éŠØ鉼銑閔é–Ø閩閣閄閤隙障際雌雒需靼鞅韶頗領é¢Æ颱餃餅餌餉駁éŖÆéŖ°é«¦é­é­‚鳓鳶鳳éŗ¼é¼»é½Šå„„儀僻僵價儂儈儉儅凜"],
-["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲å˜æ嘓嘩噓噎噗噓嘶å˜Æ嘰墀墟增墳墜墮墩墦儭嬉嫻嬋嫵嬌嬈åÆ®åƬåÆ©åÆ«å±¤å±„å¶å¶”å¹¢å¹Ÿå¹”å»¢å»šå»Ÿå»å»£å» å½ˆå½±å¾·å¾µę…¶ę…§ę…®ę…ę…•ę†‚"],
-["bca1","ę…¼ę…°ę…«ę…¾ę†§ę†ę†«ę†Žę†¬ę†šę†¤ę†”ę†®ęˆ®ę‘©ę‘Æę‘¹ę’žę’²ę’ˆę’ę’°ę’„ę’“ę’•ę’©ę’’ę’®ę’­ę’«ę’šę’¬ę’™ę’¢ę’³ę•µę•·ę•øꚮꚫꚓꚱęØ£ę؟ę§Øę؁ę؞ęØ™ę§½ęØ”ęؓęØŠę§³ę؂ęØ…ę§­ęØ‘ę­ę­Žę®¤ęƅęƆę¼æę½¼ę¾„ę½‘ę½¦ę½”ę¾†ę½­ę½›ę½øę½®ę¾Žę½ŗę½°ę½¤ę¾—ę½˜ę»•ę½Æę½ ę½Ÿē†Ÿē†¬ē†±ē†Øē‰–ēŠ›ēŽē—ē‘©ē’‹ē’ƒ"],
-["bd40","ē‘¾ē’€ē•æē˜ ē˜©ē˜Ÿē˜¤ē˜¦ē˜”ē˜¢ēššēšŗē›¤ēžŽēž‡ēžŒēž‘ēž‹ē£‹ē£…ē¢ŗē£Šē¢¾ē£•ē¢¼ē£ēØæēؼē©€ēؽēØ·ēØ»ēŖÆēŖ®ē®­ē®±ēƄē®“ēƆēƇēƁē® ēƌē³Šē· ē·“ē·Æē·»ē·˜ē·¬ē·ē·Øē·£ē·šē·žē·©ē¶žē·™ē·²ē·¹ē½µē½·ē¾Æ"],
-["bda1","ēæ©č€¦č†›č†œč†č† č†šč†˜č”—č”½č”šč“®č”¬č”­č”“č”‘č”£č””蔔蓬蔄č“æč”†čž‚č“č¶č č¦čøčØč™č—čŒč“č”›č”č¤č¤‡č¤’č¤“č¤•č¤ŠčŖ¼č«’談諄čŖ•č«‹č«øčŖ²č«‰č«‚čŖæčŖ°č«–č«čŖ¶čŖ¹č«›č±Œč±Žč±¬č³ č³žč³¦č³¤č³¬č³­č³¢č³£č³œč³Ŗč³”čµ­č¶Ÿč¶£čø«čøčøčø¢čøčø©čøŸčø”čøžčŗŗč¼č¼›č¼Ÿč¼©č¼¦č¼Ŗč¼œč¼ž"],
-["be40","č¼„é©é®éØ遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷é‹Ŗ銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頔頫頜颳養餓餒餘駝駐駟駛駑駕駒駙éŖ·é«®é«Æ鬧魅魄魷é­Æ铆铉"],
-["bea1","铃éŗ©éŗ¾é»Žå¢Ø齒儒儘儔儐儕冀å†Ŗ凝劑劓勳噙噫噹噩噤å™øå™Ŗå™Ø噄噱å™Æ噬噢噶壁墾壇壅儮嬝嬓å­øåÆ°å°Žå½Šę†²ę†‘ę†©ę†Šę‡ę†¶ę†¾ę‡Šę‡ˆęˆ°ę“…ę“ę“‹ę’»ę’¼ę“šę“„ę“‡ę“‚ę“ę’æę“’ę“”ę’¾ę•“ę›†ę›‰ęš¹ę›„ę›‡ęšøęؽęØøęØŗę©™ę©«ę©˜ęØ¹ę©„ę©¢ę©”ę©‹ę©‡ęØµę©Ÿę©ˆę­™ę­·ę°…ęæ‚ę¾±ę¾”"],
-["bf40","ęæƒę¾¤ęæę¾§ę¾³ęæ€ę¾¹ę¾¶ę¾¦ę¾ ę¾“ē†¾ē‡‰ē‡ē‡’ē‡ˆē‡•ē†¹ē‡Žē‡™ē‡œē‡ƒē‡„ēØē’œē’£ē’˜ē’Ÿē’žē“¢ē”Œē”ē˜“ē˜øē˜ŗē›§ē›„ēž ēžžēžŸēž„ē£Øē£šē£¬ē£§ē¦¦ē©ē©Žē©†ē©Œē©‹ēŖŗēƙē°‘ēƉēƤēƛēÆ”ēÆ©ēƦē³•ē³–ēøŠ"],
-["bfa1","ēø‘ēøˆēø›ēø£ēøžēøēø‰ēøē½¹ē¾²ēæ°ēæ±ēæ®č€Øč†³č†©č†Øč‡»čˆˆč‰˜č‰™č•Šč•™č•ˆč•Øč•©č•ƒč•‰č•­č•Ŗč•žčžƒčžŸčžžčž¢čžč””č¤Ŗč¤²č¤„č¤«č¤”č¦Ŗ覦諦č«ŗč««č«±č¬€č«œč«§č«®č«¾č¬č¬‚č«·č«­č«³č«¶č«¼č±«č±­č²“č³“č¹„čø±čø“č¹‚čø¹čøµč¼»č¼Æč¼øč¼³č¾Øč¾¦éµé“éø遲遼éŗ鄓醒錠錶é‹ø錳éŒÆ錢鋼錫錄錚"],
-["c040","錐錦錔錕錮錙閻隧éšØéšŖ雕霎霑霖霍霓霏靛靜靦鞘頰é ø頻頷頭頹頤餐é¤Ø餞餛餔餚駭駢駱éŖøéŖ¼é«»é«­é¬Ø鮑铕铣铦é“Ø铒铛默黔龍龜å„Ŗ償儔儲勵嚎嚀嚐嚅嚇"],
-["c0a1","嚏壕壓壑壎嬰å¬Ŗ嬤å­ŗå°·å±Ø嶼å¶ŗ嶽å¶øå¹«å½Œå¾½ę‡‰ę‡‚ę‡‡ę‡¦ę‡‹ęˆ²ęˆ“ę“Žę“Šę“˜ę“ ę“°ę“¦ę“¬ę“±ę“¢ę“­ę–‚ę–ƒę›™ę›–ęŖ€ęŖ”ęŖ„ęŖ¢ęŖœę«›ęŖ£ę©¾ęŖ—ęŖęŖ ę­œę®®ęÆšę°ˆęæ˜ęæ±ęæŸęæ ęæ›ęæ¤ęæ«ęæÆę¾€ęæ¬ęæ”ęæ©ęæ•ęæ®ęæ°ē‡§ē‡Ÿē‡®ē‡¦ē‡„ē‡­ē‡¬ē‡“ē‡ ēˆµē‰†ē°ē²ē’©ē’°ē’¦ē’Øē™†ē™‚ē™Œē›Ŗēž³ēžŖēž°ēž¬"],
-["c140","ēž§ēž­ēŸÆē£·ē£ŗē£“ē£Æē¤ē¦§ē¦Ŗē©—ēŖæē°‡ē°ēƾēÆ·ē°ŒēÆ ē³ ē³œē³žē³¢ē³Ÿē³™ē³ēø®ēø¾ē¹†ēø·ēø²ē¹ƒēø«ēø½ēø±ē¹…ē¹ēø“ēø¹ē¹ˆēøµēøæēøÆē½„ēæ³ēæ¼č±č²č°čÆč³č‡†č‡ƒč†ŗ臂臀č†æč†½č‡‰č†¾č‡Øčˆ‰č‰±č–Ŗ"],
-["c1a1","č–„č•¾č–œč–‘č–”č–Æ薛薇č–Øč–Šč™§čŸ€čŸ‘čž³čŸ’čŸ†čž«čž»čžŗčŸˆčŸ‹č¤»č¤¶č„„č¤øč¤½č¦¬č¬Žč¬—č¬™č¬›č¬Šč¬ č¬č¬„č¬č±č°æč±³č³ŗč³½č³¼č³øč³»č¶Øč¹‰č¹‹č¹ˆč¹Šč½„č¼¾č½‚č½…č¼æéæ遽還邁邂邀鄹醣醞醜鍍鎂éŒØ鍵鍊鍄鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱éšø雖霜霞鞠韓锆颶餵é؁"],
-["c240","é§æ鮮鮫é®Ŗé®­é“»é“æéŗ‹é»é»žé»œé»é»›é¼¾é½‹å¢åš•åš®å£™å£˜å¬øå½ę‡£ęˆ³ę““ę“²ę“¾ę”†ę“ŗę“»ę“·ę–·ę›œęœ¦ęŖ³ęŖ¬ę«ƒęŖ»ęŖøę«‚ęŖ®ęŖÆꭟę­øę®Æē€‰ē€‹ęæ¾ē€†ęæŗē€‘ē€ē‡»ē‡¼ē‡¾ē‡øē·ēµē’§ē’æē”•ē™–ē™˜"],
-["c2a1","ē™’ēž½ēžæēž»ēž¼ē¤Žē¦®ē©”ē©¢ē© ē«„ē«…ē°«ē°§ē°Ŗē°žē°£ē°”ē³§ē¹”ē¹•ē¹žē¹šē¹”ē¹’ē¹™ē½ˆēæ¹ēæ»č·č¶č‡č‡čˆŠč—č–©č—č—č—‰č–°č–ŗč–¹č–¦čŸÆčŸ¬čŸ²čŸ č¦†č¦²č§“č¬Øč¬¹č¬¬č¬«č±č“…č¹™č¹£č¹¦č¹¤č¹Ÿč¹•č»€č½‰č½é‚‡é‚ƒé‚ˆé†«é†¬é‡éŽ”éŽŠéŽ–éŽ¢éŽ³éŽ®éŽ¬éŽ°éŽ˜éŽšéŽ—é—”é—–é—é—•é›¢é›œé›™é››é›žéœ¤éž£éž¦"],
-["c340","鞭韹锍锏锌锎锓é¢ŗ餾é¤æ餽餮馄é؎髁鬃鬆魏魎魍éƊéƉéƽéƈéƀ鵑鵝鵠黠鼕鼬儳嚄壞壟壢åÆµé¾å»¬ę‡²ę‡·ę‡¶ę‡µę”€ę”ę› ę›ę«„ę«ę«šę«“ē€›ē€Ÿē€Øē€šē€ē€•ē€˜ēˆ†ēˆē‰˜ēŠ¢ēø"],
-["c3a1","ēŗē’½ē“Šē“£ē–‡ē–†ē™Ÿē™”ēŸ‡ē¤™ē¦±ē©«ē©©ē°¾ē°æē°øē°½ē°·ē±€ē¹«ē¹­ē¹¹ē¹©ē¹Ŗē¾…ē¹³ē¾¶ē¾¹ē¾øč‡˜č—©č—č—Ŗč—•č—¤č—„č—·čŸ»č …č čŸ¹čŸ¾č„ č„Ÿč„–č„žč­č­œč­˜č­‰č­šč­Žč­č­†č­™č“ˆč“Šč¹¼č¹²čŗ‡č¹¶č¹¬č¹ŗč¹“č½”č½Žč¾­é‚Šé‚‹é†±é†®é”é‘éŸéƒéˆéœéé–é¢éé˜é¤é—éØ關隓難éœŖ霧靔韜韻锞"],
-["c440","锘锛颼鄅鄉éؖéؙ鬍éÆØéƧéƖéƛ鶉鵔鵲éµŖ鵬éŗ’éŗ—éŗ“éŗ“å‹øåšØ嚷嚶嚓嚼壤孀孃孽åƶ巉ę‡øę‡ŗę”˜ę””ę”™ę›¦ęœ§ę«¬ē€¾ē€°ē€²ēˆē»ē“ē™¢ē™„ē¤¦ē¤Ŗē¤¬ē¤«ē«‡ē«¶ē±Œē±ƒē±ē³Æē³°č¾®ē¹½ē¹¼"],
-["c4a1","ēŗ‚ē½Œč€€č‡šč‰¦č—»č—¹č˜‘č—ŗč˜†č˜‹č˜‡č˜Šč ”č •č„¤č¦ŗč§ø議譬警č­Æč­Ÿč­«č“č“čŗ‰čŗčŗ…čŗ‚醓釋鐘鐃鏽闔霰飄鄒鄑é¦ØéØ«éØ°éØ·éص鰓鰍鹹éŗµé»Øé¼Æ齟齣齔儷å„øå›å›€å›‚å¤”å±¬å·ę‡¼ę‡¾ę”ę”œę–•ę›©ę«»ę¬„ę«ŗę®²ēŒēˆ›ēŠ§ē“–ē“”ē™©ēŸ“ē±ēŗēŗŒē¾¼č˜—č˜­č˜šč £č ¢č ”蠟č„Ŗč„¬č¦½č­“"],
-["c540","č­·č­½č““čŗŠčŗčŗ‹č½Ÿč¾Æé†ŗ鐮鐳鐵éŗéø鐲鐫闢éœø霹露éŸæ锧锄鄗驅驃驀éؾ髏魔魑鰭鰄é¶Æ鶓鷂é¶øéŗé»Æ鼙齜齦齧儼儻囈囊囉å­æ巔巒彎ę‡æꔤꬊꭔē‘ē˜ēŽ€ē“¤ē–Šē™®ē™¬"],
-["c5a1","ē¦³ē± ē±Ÿč¾č½č‡Ÿč„²č„Æč§¼č®€č“–č“—čŗ‘čŗ“č½”酈鑄鑑鑒霽霾韃韁锫鄕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼓齬é½Ŗé¾”å›Œå·–ęˆ€ę”£ę”«ę”Ŗꛬ꬐ē“šē«Šē±¤ē±£ē±„ēŗ“ēŗ–ēŗ”č‡¢č˜øč˜æč ±č®Šé‚é‚é‘£é‘ é‘¤éØé”Æ鄜驚驛驗髓體髑鱔鱗鱖鷄éŗŸé»“å›‘å£©ę”¬ēžē™±ē™²ēŸ—ē½ē¾ˆč ¶č ¹č”¢č®“č®’"],
-["c640","讖艷蓛釀é‘Ŗ靂靈靄韆锰驟鬢魘鱟鷹é·ŗé¹¼é¹½é¼‡é½·é½²å»³ę¬–ē£ē±¬ē±®č »č§€čŗ”釁鑲鑰锱鄞髖鬣黌ē¤ēŸšč®šé‘·éŸ‰é©¢é©„ēŗœč®œčŗŖ釅鑽鑾鑼鱷é±øé»·č±”é‘æéøšēˆØé©Ŗ鬱éø›éøžē±²"],
-["c940","乂乜凵匚厂äø‡äøŒä¹‡äŗå›—ļ،屮彳äøå†‡äøŽäø®äŗ“仂仉仈冘勼卬厹圠夃夬尐å·æę—”ę®³ęÆŒę°”ēˆæäø±äø¼ä»Ø仜仩仔仝仚刌匜卌圢圣夗å¤Æ宁宄尒尻屓屳åø„åŗ€åŗ‚åæ‰ęˆ‰ę‰ę°•"],
-["c9a1","갶걃ę°æę°»ēŠ®ēŠ°ēŽŠē¦øč‚Šé˜žä¼Žä¼˜ä¼¬ä»µä¼”ä»±ä¼€ä»·ä¼ˆä¼ä¼‚ä¼…ä¼¢ä¼“ä¼„ä»“ä¼’å†±åˆ“åˆ‰åˆåŠ¦åŒ¢åŒŸååŽŠå‡å›”å›Ÿåœ®åœŖ圓夼妀儼妅儻儾儷å„æå­–å°•å°„å±¼å±ŗ屻屾巟幵åŗ„异弚当åæ•åæ”åæę‰œę‰žę‰¤ę‰”ę‰¦ę‰¢ę‰™ę‰ ę‰šę‰„ę—Æę—®ęœ¾ęœ¹ęœøęœ»ęœŗęœæęœ¼ęœ³ę°˜ę±†ę±’ę±œę±ę±Šę±”ę±‹"],
-["ca40","ę±Œē±ē‰žēŠ“ēŠµēŽŽē”Ŗē™æē©µē½‘č‰øč‰¼čŠ€č‰½č‰æč™č„¾é‚™é‚—é‚˜é‚›é‚”é˜¢é˜¤é˜ é˜£ä½–ä¼»ä½¢ä½‰ä½“ä½¤ä¼¾ä½§ä½’ä½Ÿä½ä½˜ä¼­ä¼³ä¼æ佔冏冹刜刞刔劭劮匉卣卲厎厏吰吷åŖ呔呅吙吜各吘"],
-["caa1","吽呏呁åØ吤呇囮囧囄坁坅坌坉坋坒夆儀妦妘妠妗妎妢妐妏妧妔宎宒å°Øå°Ŗ岍岏岈岋岉岒岊岆岓岕巠åøŠåøŽåŗ‹åŗ‰åŗŒåŗˆåŗå¼…弝å½ø彶åæ’åæ‘åæåæ­åæØåæ®åæ³åæ”åæ¤åæ£åæŗåæÆåæ·åæ»ę€€åæ“ęˆŗęŠƒęŠŒęŠŽęŠęŠ”ęŠ‡ę‰±ę‰»ę‰ŗę‰°ęŠęŠˆę‰·ę‰½ę‰²ę‰“ę”·ę—°ę—“ę—³ę—²ę—µę…ę‡"],
-["cb40","ꝙꝕꝌꝈꝝꝍꝚꝋęÆę°™ę°šę±øę±§ę±«ę²„ę²‹ę²ę±±ę±Æę±©ę²šę±­ę²‡ę²•ę²œę±¦ę±³ę±„ę±»ę²Žē“ēŗē‰£ēŠæēŠ½ē‹ƒē‹†ē‹ēŠŗē‹…ēŽ•ēŽ—ēŽ“ēŽ”ēŽ’ē”ŗē”¹ē–”ē–•ēšē¤½č€“肕肙肐肒肜芐芏芅芎芑芓"],
-["cba1","芊芃芄č±øčæ‰č¾æ邟邔還邞邧邠阰é˜Øé˜Æ阭äø³ä¾˜ä½¼ä¾…佽侀侇佶体侉侄佷佌侗ä½Ŗ侚佹侁ä½ø侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇å‘æ咁咑咂咈呫å‘ŗ呾呄呬呓呦咍å‘Æ呔呠咘呣呧呤囷囹åÆ坲坭坫坱坰坶垀坵坻坳坓坢"],
-["cc40","åØ坽夌儅妵å¦ŗ姏姎妲姌姁妶妼姃姖妱妽姀姈妓姇孢孄宓宕屄屇岮岤岠岵å²Æå²Ø岬岟岣岭岢å²Ŗ岧岝岄岶岰岦åø—åø”åø™å¼Ø弢弣弤彔徂彾彽åæžåæ„ę€­ę€¦ę€™ę€²ę€‹"],
-["cca1","ę€“ę€Šę€—ę€³ę€šę€žę€¬ę€¢ę€ę€ę€®ę€“ę€‘ę€Œę€‰ę€œęˆ”ęˆ½ęŠ­ęŠ“ę‹‘ęŠ¾ęŠŖęŠ¶ę‹ŠęŠ®ęŠ³ęŠÆꊻꊩꊰęŠøę”½ę–Øę–»ę˜‰ę—¼ę˜„ę˜’ę˜ˆę—»ę˜ƒę˜‹ę˜ę˜…ę—½ę˜‘ę˜ę›¶ęœŠęž…ę¬ęžŽęž’ę¶ę»ęž˜ęž†ęž„ę“ęžęžŒęŗęžŸęž‘ęž™ęžƒę½ęžęøę¹ęž”ę¬„ę®€ę­¾ęÆžę°ę²“ę³¬ę³«ę³®ę³™ę²¶ę³”ę²­ę³§ę²·ę³ę³‚ę²ŗę³ƒę³†ę³­ę³²"],
-["cd40","ę³’ę³ę²“ę²Šę²ę²€ę³žę³€ę“°ę³ę³‡ę²°ę³¹ę³ę³©ę³‘ē‚”ē‚˜ē‚…ē‚“ē‚†ē‚„ē‚‘ē‚–ē‚‚ē‚šē‚ƒē‰Ŗē‹–ē‹‹ē‹˜ē‹‰ē‹œē‹’ē‹”ē‹šē‹Œē‹‘ēŽ¤ēŽ”ēŽ­ēŽ¦ēŽ¢ēŽ ēŽ¬ēŽē“ē“Øē”æē•€ē”¾ē–Œē–˜ēšÆē›³ē›±ē›°ē›µēŸøēŸ¼ēŸ¹ēŸ»ēŸŗ"],
-["cda1","ēŸ·ē„‚ē¤æē§…ē©øē©»ē«»ē±µē³½č€µč‚č‚®č‚£č‚øč‚µč‚­čˆ čŠ č‹€čŠ«čŠščŠ˜čŠ›čŠµčŠ§čŠ®čŠ¼čŠžčŠŗ芓čŠØčŠ”čŠ©č‹‚čŠ¤č‹ƒčŠ¶čŠ¢č™°č™Æ虭虮豖čæ’čæ‹čæ“čæčæ–čæ•čæ—邲邓é‚Æ邳邰阹阽阼é˜ŗ陃äæäæ…äæ“ä¾²äæ‰äæ‹äæäæ”äæœäæ™ä¾»ä¾³äæ›äæ‡äæ–ä¾ŗäæ€ä¾¹äæ¬å‰„剉勀勂匽卼厗厖厙厘å’ŗ咔咭咄哏"],
-["ce40","å“ƒčŒå’·å’®å“–å’¶å“…å“†å’ å‘°å’¼å’¢å’¾å‘²å“žå’°åžµåžžåžŸåž¤åžŒåž—åžåž›åž”åž˜åžåž™åž„åžšåž•å£“å¤å„“å§”å§žå§®å؀姱姝å§ŗ姽姼姶姤姲姷姛姩姳姵姠姾姓姭å®Ø屌峐峘峌峗峋峛"],
-["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟å³øå·¹åø”åø¢åø£åø åø¤åŗ°åŗ¤åŗ¢åŗ›åŗ£åŗ„å¼‡å¼®å½–å¾†ę€·ę€¹ę”ę²ęžę…ę“ę‡ę‰ę›ęŒę€ę‚ęŸę€¤ę„ę˜ę¦ę®ę‰‚ę‰ƒę‹ęŒęŒ‹ę‹µęŒŽęŒƒę‹«ę‹¹ęŒęŒŒę‹øę‹¶ęŒ€ęŒ“ęŒ”ę‹ŗęŒ•ę‹»ę‹°ę•ę•ƒę–Ŗę–æę˜¶ę˜”ę˜²ę˜µę˜œę˜¦ę˜¢ę˜³ę˜«ę˜ŗę˜ę˜“ę˜¹ę˜®ęœęœęŸęŸ²ęŸˆęžŗ"],
-["cf40","ęŸœęž»ęŸøęŸ˜ęŸ€ęž·ęŸ…ęŸ«ęŸ¤ęŸŸęžµęŸęž³ęŸ·ęŸ¶ęŸ®ęŸ£ęŸ‚ęž¹ęŸŽęŸ§ęŸ°ęž²ęŸ¼ęŸ†ęŸ­ęŸŒęž®ęŸ¦ęŸ›ęŸŗꟉꟊꟃęŸŖꟋę¬ØꮂꮄꮶęƖęƘęÆ ę° ę°”ę“Øę““ę“­ę“Ÿę“¼ę“æę“’ę“Šę³šę“³ę“„ę“™ę“ŗę“šę“‘ę“€ę“ęµ‚"],
-["cfa1","ę“ę“˜ę“·ę“ƒę“ęµ€ę“‡ę“ ę“¬ę“ˆę“¢ę“‰ę“ē‚·ē‚Ÿē‚¾ē‚±ē‚°ē‚”ē‚“ē‚µē‚©ē‰ē‰‰ē‰Šē‰¬ē‰°ē‰³ē‰®ē‹Šē‹¤ē‹Øē‹«ē‹Ÿē‹Ŗē‹¦ē‹£ēŽ…ēŒē‚ēˆē…ēŽ¹ēŽ¶ēŽµēŽ“ē«ēŽæē‡ēŽ¾ēƒē†ēŽøē‹ē“¬ē“®ē”®ē•‡ē•ˆē–§ē–Ŗē™¹ē›„ēœˆēœƒēœ„ēœ…ēœŠē›·ē›»ē›ŗēŸ§ēŸØē †ē ‘ē ’ē …ē ē ē Žē ‰ē ƒē “ē„Šē„Œē„‹ē„…ē„„ē§•ē§ē§ē§–ē§ŽēŖ€"],
-["d040","ē©¾ē«‘ē¬€ē¬ē±ŗē±øē±¹ē±æē²€ē²ē“ƒē“ˆē“ē½˜ē¾‘ē¾ē¾¾č€‡č€Žč€č€”č€·čƒ˜čƒ‡čƒ čƒ‘čƒˆčƒ‚čƒčƒ…čƒ£čƒ™čƒœčƒŠčƒ•čƒ‰čƒčƒ—čƒ¦čƒč‡æčˆ”čŠ”č‹™č‹¾č‹¹čŒ‡č‹Ø茀苕čŒŗč‹«č‹–č‹“č‹¬č‹”č‹²č‹µčŒŒč‹»č‹¶č‹°č‹Ŗ"],
-["d0a1","苤苠č‹ŗč‹³č‹­č™·č™“č™¼č™³č”č”Žč”§č”Ŗ蔩觓č؄čØ‡čµ²čæ£čæ”čæ®čæ éƒ±é‚½é‚æ郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛äæµäæ“倳倷倬äæ¶äæ·å€—倜倠倧倵å€Æ倱倎党冔冓凊凄凅凈凎剔剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚å“æ唄唈哫唑唅哱"],
-["d140","唊哻哷å“ø哠唎唃唋圁圂埌堲埕埒åžŗ埆垽垼åžø垶åžæ埇埐垹埁夎儊åؙåؖåØ­åØ®åؕå؏åؗå؊å؞åس孬宧宭宬尃屖屔峬å³æ峮峱峷哀峹åø©åøØåŗØåŗ®åŗŖåŗ¬å¼³å¼°å½§ęęšę§"],
-["d1a1","ęę‚¢ę‚ˆę‚€ę‚’ę‚ę‚ę‚ƒę‚•ę‚›ę‚—ę‚‡ę‚œę‚Žęˆ™ę‰†ę‹²ęŒę–ęŒ¬ę„ę…ęŒ¶ęƒę¤ęŒ¹ę‹ęŠęŒ¼ęŒ©ęęŒ“ę˜ę”ę™ęŒ­ę‡ęŒ³ęšę‘ęŒøę—ę€ęˆę•Šę•†ę—†ę—ƒę—„ę—‚ę™Šę™Ÿę™‡ę™‘ęœ’ęœ“ę Ÿę šę”‰ę ²ę ³ę »ę”‹ę”ę –ę ±ę œę µę «ę ­ę Æę”Žę”„ę “ę ę ’ę ”ę ¦ę Øę ®ę”ę ŗꠄꠠꬬę¬Æę¬­ę¬±ę¬“ę­­č‚‚ę®ˆęƦęƤ"],
-["d240","ęÆØęÆ£ęÆ¢ęÆ§ę°„ęµŗęµ£ęµ¤ęµ¶ę“ęµ”ę¶’ęµ˜ęµ¢ęµ­ęµÆę¶‘ę¶ę·Æęµæę¶†ęµžęµ§ęµ ę¶—ęµ°ęµ¼ęµŸę¶‚ę¶˜ę“ÆęµØę¶‹ęµ¾ę¶€ę¶„ę“–ę¶ƒęµ»ęµ½ęµµę¶ēƒœēƒ“ēƒ‘ēƒēƒ‹ē¼¹ēƒ¢ēƒ—ēƒ’ēƒžēƒ ēƒ”ēƒēƒ…ēƒ†ēƒ‡ēƒšēƒŽēƒ”ē‰‚ē‰ø"],
-["d2a1","ē‰·ē‰¶ēŒ€ē‹ŗē‹“ē‹¾ē‹¶ē‹³ē‹»ēŒē“ē™ē„ē–ēŽ¼ē§ē£ē©ēœē’ē›ē”ēēšē—ē˜ēØē“žē“Ÿē““ē“µē””ē•›ē•Ÿē–°ē—ē–»ē—„ē—€ē–æē–¶ē–ŗēšŠē›‰ēœēœ›ēœēœ“ēœ’ēœ£ēœ‘ēœ•ēœ™ēœšēœ¢ēœ§ē £ē ¬ē ¢ē µē Æē Øē ®ē «ē ”ē ©ē ³ē Ŗē ±ē„”ē„›ē„ē„œē„“ē„’ē„‘ē§«ē§¬ē§ ē§®ē§­ē§Ŗē§œē§žē§ēŖ†ēŖ‰ēŖ…ēŖ‹ēŖŒēŖŠēŖ‡ē«˜ē¬"],
-["d340","ē¬„ē¬“ē¬…ē¬ē¬ˆē¬Šē¬Žē¬‰ē¬’ē²„ē²‘ē²Šē²Œē²ˆē²ē²…ē“žē“ē“‘ē“Žē“˜ē“–ē““ē“Ÿē“’ē“ē“Œē½œē½”ē½žē½ ē½ē½›ē¾–ē¾’ēæƒēæ‚ēæ€č€–č€¾č€¹čƒŗčƒ²čƒ¹čƒµč„čƒ»č„€čˆčˆÆčˆ„čŒ³čŒ­č„čŒ™č‘čŒ„č–čŒæččŒ¦čŒœčŒ¢"],
-["d3a1","荂荎茛čŒŖčŒˆčŒ¼ččŒ–čŒ¤čŒ čŒ·čŒÆčŒ©č‡č…čŒč“čŒžčŒ¬č‹čŒ§čˆč™“č™’čš¢čšØčš–čščš‘čšžčš‡čš—čš†čš‹čšščš…čš„čš™čš”čš§čš•čš˜čšŽčščščš”č”ƒč”„č”­č”µč”¶č”²č¢€č”±č”æč”Æč¢ƒč”¾č”“č”¼čØ’č±‡č±—č±»č²¤č²£čµ¶čµø趵趷趶軑軓čæ¾čæµé€‚čææčæ»é€„čæ¼čæ¶éƒ–郠郙郚郣郟郄郘郛郗郜郤酐"],
-["d440","酎酏釕釢釚陜陟隼飣髟é¬Æä¹æ偰åŖ偔偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唓å”Ŗ啑啢唶唵唰啒啅"],
-["d4a1","唌唲啄啎唹啈唭唻啀啋圊圇埻堔埢埶埜埓堀埭埽堈åŸø堋埳埏堇埮埣埲埄埬埔堎埼堐埧堁堌埱埩埰堍堄儜婠婘婕婧婞åØøåص婭婐婟婄婬婓婤婗婃婝婒婄婛婈åŖŽåؾ婍åع婌婰婩婇婑婖婂婜孲孮åƁåƀ屙哞哋哝哚哠哌å“Ø响哦哄哏"],
-["d540","哰哒哣哟哮åø¾åø“åŗ±åŗ“åŗ¹åŗ²åŗ³å¼¶å¼øå¾›å¾–å¾Ÿę‚Šę‚ę‚†ę‚¾ę‚°ę‚ŗęƒ“ęƒ”ęƒęƒ¤ęƒ™ęƒęƒˆę‚±ęƒ›ę‚·ęƒŠę‚æęƒƒęƒęƒ€ęŒ²ę„ęŽŠęŽ‚ę½ęŽ½ęŽžęŽ­ęŽęŽ—ęŽ«ęŽŽęÆęŽ‡ęŽę®ęŽÆęµęŽœę­ęŽ®ę¼ęŽ¤ęŒ»ęŽŸ"],
-["d5a1","ęøęŽ…ęŽęŽ‘ęŽę°ę•“ę—ę™„ę™”ę™›ę™™ę™œę™¢ęœ˜ę”¹ę¢‡ę¢ę¢œę”­ę”®ę¢®ę¢«ę„–ę”Æę¢£ę¢¬ę¢©ę”µę”“ę¢²ę¢ę”·ę¢’ę”¼ę”«ę”²ę¢Ŗę¢€ę”±ę”¾ę¢›ę¢–ę¢‹ę¢ ę¢‰ę¢¤ę”øę”»ę¢‘ę¢Œę¢Šę”½ę¬¶ę¬³ę¬·ę¬øę®‘ę®ę®ę®Žę®Œę°Ŗę·€ę¶«ę¶“ę¶³ę¹“ę¶¬ę·©ę·¢ę¶·ę·¶ę·”ęø€ę·ˆę· ę·Ÿę·–ę¶¾ę·„ę·œę·ę·›ę·“ę·Šę¶½ę·­ę·°ę¶ŗę·•ę·‚ę·ę·‰"],
-["d640","ę·ę·²ę·“ę·½ę·—ę·ę·£ę¶»ēƒŗē„ēƒ·ē„—ēƒ“ē„Œēƒ°ē„„ēƒ³ē„ēƒ¼ēƒæē„†ē„“ē„€ēƒøēƒ¶ē„‹ē„‚ē„Žē‰¾ē‰»ē‰¼ē‰æēŒēŒ—ēŒ‡ēŒ‘ēŒ˜ēŒŠēŒˆē‹æēŒēŒžēŽˆē¶ēøēµē„ēē½ē‡ē€ēŗē¼ēæēŒē‹ē“ēˆē•¤ē•£ē—Žē—’ē—"],
-["d6a1","ē—‹ē—Œē—‘ē—ēšēš‰ē›“ēœ¹ēœÆēœ­ēœ±ēœ²ēœ“ēœ³ēœ½ēœ„ēœ»ēœµē”ˆē”’ē”‰ē”ē”Šē”Œē ¦ē”…ē”ē„¤ē„§ē„©ē„Ŗē„£ē„«ē„”ē¦»ē§ŗē§øē§¶ē§·ēŖēŖ”ēŖē¬µē­‡ē¬“ē¬„ē¬°ē¬¢ē¬¤ē¬³ē¬˜ē¬Ŗē¬ē¬±ē¬«ē¬­ē¬Æē¬²ē¬øē¬šē¬£ē²”ē²˜ē²–ē²£ē“µē“½ē“øē“¶ē“ŗēµ…ē“¬ē“©ēµēµ‡ē“¾ē“æēµŠē“»ē“Øē½£ē¾•ē¾œē¾ē¾›ēæŠēæ‹ēæēæēæ‘ēæ‡ēæēæ‰č€Ÿ"],
-["d740","č€žč€›č‡čƒčˆč„˜č„„č„™č„›č„­č„Ÿč„¬č„žč„”č„•č„§č„č„¢čˆ‘čˆøčˆ³čˆŗčˆ“čˆ²č‰“čŽčŽ£čŽØ莍čŗč³čŽ¤č“čŽčŽčŽ•čŽ™čµčŽ”čŽ©č½čŽƒčŽŒčŽčŽ›čŽŖčŽ‹č¾čŽ„čŽÆ莈莗莰čæčŽ¦čŽ‡čŽ®č¶čŽšč™™č™–čšæčš·"],
-["d7a1","蛂蛁蛅čšŗčš°č›ˆčš¹čš³čšøč›Œčš“čš»čš¼č›ƒčš½čš¾č”’č¢‰č¢•č¢Øč¢¢č¢Ŗč¢šč¢‘č¢”č¢Ÿč¢˜č¢§č¢™č¢›č¢—č¢¤č¢¬č¢Œč¢“č¢Žč¦‚č§–č§™č§•čØ°čاčجčØžč°¹č°»č±œč±č±½č²„čµ½čµ»čµ¹č¶¼č·‚č¶¹č¶æč·č»˜č»žč»č»œč»—č» č»”é€¤é€‹é€‘é€œé€Œé€”éƒÆéƒŖ郰郓郲郳郔郫郬郩酖酘酚酓酕釬釓釱釳é‡ø釤釹é‡Ŗ"],
-["d840","釫釷é‡Ø釮é•ŗ閆閈陼陭陫陱é™ÆéšæéŖ頄飄馗傛傕傔傞傋傣傃傌傎傝åØ傜傒傂傇兟凔匒匑厤厧喑å–Ø善喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦å•æ喕喔喎圌堩堷"],
-["d8a1","堙堞堧堣å Ø埵唈堄堜堛堳å æ堶堮堹å ø堭堬堻儔åŖÆåŖ”åŖŸå©ŗåŖ¢åŖžå©øåŖ¦å©¼åŖ„åŖ¬åŖ•åŖ®åØ·åŖ„åŖŠåŖ—åŖƒåŖ‹åŖ©å©»å©½åŖŒåŖœåŖåŖ“åŖåÆŖåƍåƋåƔåƑåƊåƎ尌尰哷嵃嵫嵁嵋å“æ哵嵑嵎嵕哳å“ŗ嵒哽哱嵙嵂哹嵉å“øå“¼å“²å“¶åµ€åµ…å¹„å¹å½˜å¾¦å¾„å¾«ęƒ‰ę‚¹ęƒŒęƒ¢ęƒŽęƒ„ę„”"],
-["d940","ęƒ²ę„Šę„–ę„…ęƒµę„“ęƒøęƒ¼ęƒ¾ęƒę„ƒę„˜ę„ę„ęƒæę„„ę„‹ę‰ŠęŽ”ęŽ±ęŽ°ęŽę„ęØęÆęƒę’ę³ęŠę ę¶ę•ę²ęµę‘”ęŸęŽ¾ęęœę„ę˜ę“ę‚ę‡ęŒę‹ęˆę°ę—ę™ę”²ę•§ę•Ŗꕤꕜę•Øę•„ę–Œę–ę–žę–®ę—ę—’"],
-["d9a1","ę™¼ę™¬ę™»ęš€ę™±ę™¹ę™Ŗę™²ęœę¤Œę£“ę¤„ę£œę¤Ŗę£¬ę£Ŗę£±ę¤ę£–ę£·ę£«ę£¤ę£¶ę¤“ę¤ę£³ę£”ę¤‡ę£Œę¤ˆę„°ę¢“ę¤‘ę£Æę£†ę¤”ę£øę£ę£½ę£¼ę£Øę¤‹ę¤Šę¤—ę£Žę£ˆę£ę£žę£¦ę£“ę£‘ę¤†ę£”ę£©ę¤•ę¤„ę£‡ę¬¹ę¬»ę¬æę¬¼ę®”ę®—ę®™ę®•ę®½ęÆ°ęƲęÆ³ę°°ę·¼ę¹†ę¹‡ęøŸę¹‰ęŗˆęø¼ęø½ę¹…ę¹¢ęø«ęøæę¹ę¹ę¹³ęøœęø³ę¹‹ę¹€ę¹‘ęø»ęøƒęø®ę¹ž"],
-["da40","ę¹Øę¹œę¹”ęø±ęøØę¹ ę¹±ę¹«ęø¹ęø¢ęø°ę¹“ę¹„ęø§ę¹øę¹¤ę¹·ę¹•ę¹¹ę¹’ę¹¦ęøµęø¶ę¹šē„ ē„žē„Æēƒ»ē„®ē„±ē„£ē„„ē„¢ē„²ē„Ÿē„Øē„ŗē„›ē‰‹ē‰šēŠˆēŠ‰ēŠ†ēŠ…ēŠ‹ēŒ’ēŒ‹ēŒ°ēŒ¢ēŒ±ēŒ³ēŒ§ēŒ²ēŒ­ēŒ¦ēŒ£ēŒµēŒŒē®ē¬ē°ē«ē–"],
-["daa1","ēšē”ē­ē±ē¤ē£ēē©ē ē²ē“»ē”Æē•Æē•¬ē—§ē—šē—”ē—¦ē—ē—Ÿē—¤ē——ēš•ēš’ē›šē†ē‡ē„ēē…ēŠēŽē‹ēŒēŸžēŸ¬ē” ē”¤ē”„ē”œē”­ē”±ē”Ŗē”®ē”°ē”©ē”Øē”žē”¢ē„“ē„³ē„²ē„°ē؂ē؊ē؃ē،ē؄ēŖ™ē«¦ē«¤ē­Šē¬»ē­„ē­ˆē­Œē­Žē­€ē­˜ē­…ē²¢ē²žē²Øē²”ēµ˜ēµÆēµ£ēµ“ēµ–ēµ§ēµŖēµēµ­ēµœēµ«ēµ’ēµ”ēµ©ēµ‘ēµŸēµŽē¼¾ē¼æē½„"],
-["db40","ē½¦ē¾¢ē¾ ē¾”ēæ—č‘čččƒ¾čƒ”č…ƒč…Šč…’č…č…‡č„½č…č„ŗ臦臮臷č‡øč‡¹čˆ„čˆ¼čˆ½čˆæč‰µčŒ»čč¹č£č€čØč’č§č¤č¼č¶čč†čˆč«č£čŽæččč„č˜čæč”č‹čŽč–čµč‰č‰ččžč‘č†č‚č³"],
-["dba1","菕čŗ菇菑čŖč“čƒč¬č®č„č»č—č¢č›č›č¾č›˜č›¢č›¦č›“č›£č›šč›Ŗč›č›«č›œč›¬č›©č›—č›Øč›‘č”ˆč”–č”•č¢ŗč£—č¢¹č¢øč£€č¢¾č¢¶č¢¼č¢·č¢½č¢²č¤č£‰č¦•č¦˜č¦—č§č§šč§›č©Žč©čØ¹č©™č©€č©—č©˜č©„č©…č©’č©ˆč©‘č©Šč©Œč©č±Ÿč²č²€č²ŗč²¾č²°č²¹č²µč¶„č¶€č¶‰č·˜č·“č·č·‡č·–č·œč·č·•č·™č·ˆč·—č·…č»Æč»·č»ŗ"],
-["dc40","č»¹č»¦č»®č»„č»µč»§č»Ø軶軫軱軬軓軩逭逓é€Æ鄆鄬鄄éƒæ郼鄈郹郻鄁鄀鄇鄅鄃酔酤酟酢酠鈁鈊鈄鈃鈚鈦鈏鈌鈀鈒é‡æ釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],
-["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹äŗƒäŗ„äŗ¶å‚½å‚æ僆傮僄僊傓僈僂傰僁å‚ŗ傱僋僉傶å‚ø凗å‰ŗå‰ø剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩å–æ嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔唓å”Ø唤唏唍唉å”Æ唕唎唝唙唄唛堽唣唱壼嫇嫄嫋åŖŗåŖøåŖ±åŖµåŖ°åŖæ嫈åŖ»å«†"],
-["dd40","åŖ·å«€å«ŠåŖ“åŖ¶å«åŖ¹åŖåƖåƘåƙ尟尳嵱嵣嵊嵄嵲嵬嵞åµØ嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀å¾Æå¾­ęƒ·ę…‰ę…Šę„«ę……ę„¶ę„²ę„®ę…†ę„Æę…ę„©ę…€ęˆ é…Øęˆ£ęˆ„ęˆ¤ę…ę±ę«ęę’ę‰ę ę¤"],
-["dda1","ę³ę‘ƒęŸę•ę˜ę¹ę·ę¢ę£ęŒę¦ę°ęØꑁꐵęÆęŠęšę‘€ę„ę§ę‹ę§ę›ę®ę”ęŽę•ÆꖒꗓꚆꚌꚕꚐꚋꚊꚙꚔę™øęœ ę„¦ę„Ÿę¤øę„Žę„¢ę„±ę¤æę„…ę„Ŗę¤¹ę„‚ę„—ę„™ę„ŗę„ˆę„‰ę¤µę„¬ę¤³ę¤½ę„„ę£°ę„øꤓꄩꄀę„Æę„„ę„¶ę„˜ę„ę„“ę„Œę¤»ę„‹ę¤·ę„œę„ę„‘ę¤²ę„’ę¤Æę„»ę¤¼ę­†ę­…ę­ƒę­‚ę­ˆę­ę®›ļ؍ęÆ»ęƼ"],
-["de40","ęƹęÆ·ęÆøęŗ›ę»–ę»ˆęŗę»€ęŗŸęŗ“ęŗ”ęŗ ęŗ±ęŗ¹ę»†ę»’ęŗ½ę»ęŗžę»‰ęŗ·ęŗ°ę»ęŗ¦ę»ęŗ²ęŗ¾ę»ƒę»œę»˜ęŗ™ęŗ’ęŗŽęŗęŗ¤ęŗ”ęŗæęŗ³ę»ę»Šęŗ—ęŗ®ęŗ£ē…‡ē…”ē…’ē…£ē… ē…ē…ē…¢ē…²ē…øē…Ŗē…”ē…‚ē…˜ē…ƒē…‹ē…°ē…Ÿē…ē…“"],
-["dea1","ē…„ē…ē…šē‰ēŠēŠŒēŠ‘ēŠēŠŽēŒ¼ē‚ēŒ»ēŒŗē€ēŠē‰ē‘„ē‘Šē‘‹ē‘’ē‘‘ē‘—ē‘€ē‘ē‘ē‘Žē‘‚ē‘†ē‘ē‘”ē“”ē“æē“¾ē“½ē”ē•¹ē•·ę¦ƒē—Æē˜ē˜ƒē—·ē—¾ē—¼ē—¹ē—øē˜ē—»ē—¶ē—­ē—µē—½ēš™ēšµē›ē•ēŸē ē’ē–ēšē©ē§ē”ē™ē­ēŸ ē¢‡ē¢šē¢”ē¢ē¢„ē¢•ē¢…ē¢†ē¢”ē¢ƒē”¹ē¢™ē¢€ē¢–ē”»ē„¼ē¦‚ē„½ē„¹ēؑēؘēؙēؒēؗēؕēØ¢ēؓ"],
-["df40","ē؛ēؐēŖ£ēŖ¢ēŖžē««ē­¦ē­¤ē­­ē­“ē­©ē­²ē­„ē­³ē­±ē­°ē­”ē­øē­¶ē­£ē²²ē²“ē²Æē¶ˆē¶†ē¶€ē¶ēµæē¶…ēµŗē¶Žēµ»ē¶ƒēµ¼ē¶Œē¶”ē¶„ēµ½ē¶’ē½­ē½«ē½§ē½Øē½¬ē¾¦ē¾„ē¾§ēæ›ēæœč€”č…¤č… č…·č…œč…©č…›č…¢č…²ęœ”č…žč…¶č…§č…Æ"],
-["dfa1","č…„č…”čˆč‰‰č‰„č‰€č‰‚č‰…č“±čæč‘–č‘¶č‘¹č’č’č‘„č‘‘č‘€č’†č‘§č°č‘č‘½č‘šč‘™č‘“č‘³č‘č”‡č‘žč·čŗ萓č‘ŗ葃č‘øč²č‘…č©č™č‘‹čÆč‘‚č­č‘Ÿč‘°č¹č‘Žč‘Œč‘’č‘Æč“…č’Žč»č‘‡č¶č³č‘Øč‘¾č‘„č«č‘ č‘”č‘®č‘čœ‹čœ„č›·čœŒč›ŗč›–č›µčč›øčœŽčœ‰čœč›¶čœčœ…č£–č£‹č£č£Žč£žč£›č£šč£Œč£č¦…č¦›č§Ÿč§„č§¤"],
-["e040","č§”č§ č§¢č§œč§¦č©¶čŖ†č©æč©”čØæč©·čŖ‚čŖ„詵čŖƒčŖč©“č©ŗč°¼č±‹č±Šč±„č±¤č±¦č²†č²„č²…č³ŒčµØčµ©č¶‘č¶Œč¶Žč¶č¶č¶“č¶”č¶č¶’č·°č· č·¬č·±č·®č·č·©č·£č·¢č·§č·²č·«č·“č¼†č»æč¼č¼€č¼…č¼‡č¼ˆč¼‚č¼‹é’é€æ"],
-["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮é…Æ鉈鉒鈰éˆŗ鉦鈳鉄鉞銃鈮鉊鉆鉭鉬鉏鉠鉧é‰Æ鈶鉔鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎é›ŗ雽é›ø雵靳靷éø靲頏頍頎颬飶飹é¦Æ馲馰馵éŖ­éŖ«é­›é³Ŗ鳭鳧éŗ€é»½åƒ¦åƒ”僗åƒØ僳僛åƒŖ僝僤僓僬僰åƒÆ僣僠"],
-["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂å—ŗ嘝嘄å—æ嗹墉唼墐墘墆墁å”æ唓墋å”ŗ墇墑墎唶墂墈唻墔墏壾儫嫜嫮嫄嫕å«Ŗ嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙å«Ø嫟孷åÆ "],
-["e1a1","åƣ屣嶂嶀嵽嶆åµŗ嶁嵷嶊嶉嶈嵾嵼嶍嵹åµæ幘幙幓廘廑廗廎廜廕廙廒廔彄彃å½Æå¾¶ę„¬ę„Øę…ę…žę…±ę…³ę…’ę…“ę…²ę…¬ę†€ę…“ę…”ę…ŗꅛꅄꄻę…Ŗę…”ę…–ęˆ©ęˆ§ęˆ«ę«ę‘ę‘›ę‘ę‘“ę‘¶ę‘²ę‘³ę‘½ę‘µę‘¦ę’¦ę‘Žę’‚ę‘žę‘œę‘‹ę‘“ę‘ ę‘ę‘æęæę‘¬ę‘«ę‘™ę‘„ę‘·ę•³ę– ęš”ęš ęšŸęœ…ęœ„ęœ¢ę¦±ę¦¶ę§‰"],
-["e240","ę¦ ę§Žę¦–ę¦°ę¦¬ę¦¼ę¦‘ę¦™ę¦Žę¦§ę¦ę¦©ę¦¾ę¦Æę¦æę§„ę¦½ę¦¤ę§”ę¦¹ę§Šę¦šę§ę¦³ę¦“ę¦Ŗę¦”ę¦žę§™ę¦—ę¦ę§‚ę¦µę¦„ę§†ę­Šę­ę­‹ę®žę®Ÿę® ęƃęƄęÆ¾ę»Žę»µę»±ę¼ƒę¼„ę»øę¼·ę»»ę¼®ę¼‰ę½Žę¼™ę¼šę¼§ę¼˜ę¼»ę¼’ę»­ę¼Š"],
-["e2a1","ę¼¶ę½³ę»¹ę»®ę¼­ę½€ę¼°ę¼¼ę¼µę»«ę¼‡ę¼Žę½ƒę¼…ę»½ę»¶ę¼¹ę¼œę»¼ę¼ŗę¼Ÿę¼ę¼žę¼ˆę¼”ē†‡ē†ē†‰ē†€ē†…ē†‚ē†ē…»ē††ē†ē†—ē‰„ē‰“ēŠ—ēŠ•ēŠ“ēƒēē‘ēŒē‘¢ē‘³ē‘±ē‘µē‘²ē‘§ē‘®ē”€ē”‚ē”ƒē•½ē–ē˜–ē˜ˆē˜Œē˜•ē˜‘ē˜Šē˜”ēšøēžē¼ēž…ēž‚ē®ēž€ēÆē¾ēžƒē¢²ē¢Ŗē¢“ē¢­ē¢Øē”¾ē¢«ē¢žē¢„ē¢ ē¢¬ē¢¢ē¢¤ē¦˜ē¦Šē¦‹ē¦–ē¦•ē¦”ē¦“"],
-["e340","ē¦—ē¦ˆē¦’ē¦ēØ«ē©ŠēØ°ēØÆēØØēئēŖØēŖ«ēŖ¬ē«®ē®ˆē®œē®Šē®‘ē®ē®–ē®ē®Œē®›ē®Žē®…ē®˜åŠ„ē®™ē®¤ē®‚ē²»ē²æē²¼ē²ŗē¶§ē¶·ē·‚ē¶£ē¶Ŗē·ē·€ē·…ē¶ē·Žē·„ē·†ē·‹ē·Œē¶Æē¶¹ē¶–ē¶¼ē¶Ÿē¶¦ē¶®ē¶©ē¶”ē·‰ē½³ēæ¢ēæ£ēæ„ēæž"],
-["e3a1","č€¤ččœč†‰č††č†ƒč†‡č†č†Œč†‹čˆ•č’—č’¤č’”č’Ÿč’ŗč“Žč“‚č’¬č’®č’«č’¹č’“č“č“č’Ŗč’šč’±č“č’č’§č’»č’¢č’”č“‡č“Œč’›č’©č’Æč’Øč“–č’˜č’¶č“č’ č“—č“”č“’č“›č’°č’‘č™”čœ³čœ£čœØč«č€čœ®čœžčœ”čœ™čœ›čƒčœ¬ččœ¾č†čœ čœ²čœŖčœ­čœ¼čœ’čœŗčœ±čœµč‚čœ¦čœ§čœøčœ¤čœščœ°čœ‘č£·č£§č£±č£²č£ŗč£¾č£®č£¼č£¶č£»"],
-["e440","č£°č£¬č£«č¦č¦”č¦Ÿč¦žč§©č§«č§ØčŖ«čŖ™čŖ‹čŖ’čŖčŖ–č°½č±Øč±©č³•č³č³—č¶–čø‰čø‚č·æčøč·½čøŠčøƒčø‡čø†čø…č·¾čø€čø„č¼č¼‘č¼Žč¼é„£é„œé„ é„¢é„Ÿé„é„šé„¤é„”鄛é…ŗ酲酹酳銄銤鉶銛é‰ŗ銠銔éŠŖ銍"],
-["e4a1","銦銚銫鉹銗é‰æ銣鋮銎銂銕銢鉽銈銔銊銆銌銙銧鉾銇銩銝銋鈭隞隔é›æ靘靽éŗ靾鞃鞀鞂靻鞄鞁éæ韎韍頖颭颮餂餀餇馝馜駃馹馻é¦ŗ駂馽駇éŖ±é«£é«§é¬¾é¬æ魠魔魟鳱鳲鳵éŗ§åƒæ儃儰åƒø儆儇僶僾儋儌僽儊劋劌勱å‹Æ噈噂噌嘵噁噊噉噆噘"],
-["e540","噚噀嘳嘽嘬嘾å˜øå˜Ŗå˜ŗ圚墫墝墱墠墣å¢Æ墬墄墔å£æå«æ嫓嫽嫷嫶嬃å«ø嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶔嶚嶞幩幝幠幜ē·³å»›å»žå»”å½‰å¾²ę†‹ę†ƒę…¹ę†±ę†°ę†¢ę†‰"],
-["e5a1","ꆛꆓę†Æꆭꆟꆒę†Ŗę†”ę†ę…¦ę†³ęˆ­ę‘®ę‘°ę’–ę’ ę’…ę’—ę’œę’ę’‹ę’Šę’Œę’£ę’Ÿę‘Øę’±ę’˜ę•¶ę•ŗę•¹ę•»ę–²ę–³ęšµęš°ęš©ęš²ęš·ęšŖęšÆę؀ę؆ęØ—ę§„ę§øęØ•ę§±ę§¤ęØ ę§æę§¬ę§¢ę؛ęØę§¾ęØ§ę§²ę§®ęØ”ę§·ę§§ę©€ęØˆę§¦ę§»ęØę§¼ę§«ę؉ę؄ęؘęØ„ęØę§¶ęئęØ‡ę§“ęØ–ę­‘ę®„ę®£ę®¢ę®¦ę°ę°€ęÆæę°‚ę½ę¼¦ę½¾ę¾‡ęæ†ę¾’"],
-["e640","ę¾ę¾‰ę¾Œę½¢ę½ę¾…ę½šę¾–ę½¶ę½¬ę¾‚ę½•ę½²ę½’ę½ę½—ę¾”ę¾“ę½ę¼€ę½”ę½«ę½½ę½§ę¾ę½“ę¾‹ę½©ę½æę¾•ę½£ę½·ę½Ŗę½»ē†²ē†Æē†›ē†°ē† ē†šē†©ē†µē†ē†„ē†žē†¤ē†”ē†Ŗē†œē†§ē†³ēŠ˜ēŠšē˜ē’ēžēŸē ēē›ē”ēšē™"],
-["e6a1","ē¢ē’‡ē’‰ē’Šē’†ē’ē‘½ē’…ē’ˆē‘¼ē‘¹ē”ˆē”‡ē•¾ē˜„ē˜žē˜™ē˜ē˜œē˜£ē˜šē˜Øē˜›ēšœēšēšžēš›ēžēžēž‰ēžˆē£ē¢»ē£ē£Œē£‘ē£Žē£”ē£ˆē£ƒē£„ē£‰ē¦šē¦”ē¦ ē¦œē¦¢ē¦›ę­¶ēعēŖ²ēŖ“ēŖ³ē®·ēƋē®¾ē®¬ēƎē®Æē®¹ēƊē®µē³…ē³ˆē³Œē³‹ē··ē·›ē·Ŗē·§ē·—ē·”ēøƒē·ŗē·¦ē·¶ē·±ē·°ē·®ē·Ÿē½¶ē¾¬ē¾°ē¾­ēæ­ēæ«ēæŖēæ¬ēæ¦ēæØč¤č§č†£č†Ÿ"],
-["e740","č†žč†•č†¢č†™č†—čˆ–č‰č‰“č‰’č‰č‰Žč‰‘č”¤č”»č”č”€č”©č”Žč”‰č”č”Ÿč”Šč”§č”œč“»č”«č“ŗč”ˆč”Œč““č”Ŗč“²č”•č“·č“«č“³č“¼č”’č“Ŗč“©č”–č“¾č”Øč”č”®č”‚č“½č”žč“¶č”±č”¦č“§č“Ø蓰č“Æč“¹č”˜č” č”°č”‹č”™č”Æč™¢"],
-["e7a1","č–č£č¤č·čŸ”č³č˜č”č›č’č”čšč‘čžč­čŖ蝐蝎蝟蝝čÆč¬čŗč®čœč„čč»čµč¢č§č©č”šč¤…č¤Œč¤”č¤‹č¤—č¤˜č¤™č¤†č¤–č¤‘č¤Žč¤‰č¦¢č¦¤č¦£č§­č§°č§¬č«č«†čŖø諓諑諔諕čŖ»č«—čŖ¾č«€č«…č«˜č«ƒčŖŗčŖ½č«™č°¾č±č²č³„č³Ÿč³™č³Øč³šč³č³§č¶ č¶œč¶”č¶›čø čø£čø„čø¤čø®čø•čø›čø–čø‘čø™čø¦čø§"],
-["e840","čø”čø’čø˜čø“čøœčø—čøšč¼¬č¼¤č¼˜č¼šč¼ č¼£č¼–č¼—é³é°éÆ遧遫é„Æ鄫鄩é„Ŗ鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌é‹Æ鋂é‹Ø鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],
-["e8a1","銵鋔鋆銓镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩é Ø頠頛頧颲餈é£ŗ餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌éŖ³é«¬é««é«³é«²é«±é­†é­ƒé­§é­“魱魦魶魵魰é­Ø魤魬鳼é³ŗé³½é³æ鳷铇铀鳹鳻铈铅铄éŗƒé»“鼏鼐儜儓儗儚儑凞匓叔噰噠噮"],
-["e940","噳噦噣噭噲噞噷圜圛壈墽壉å¢æå¢ŗ壂墼壆嬗嬙嬛嬔嬔嬓嬐嬖å¬Ø嬚嬠嬞åÆÆ嶬嶱嶩嶧嶵嶰嶮å¶Ŗå¶Ø嶲嶭å¶Æ嶓幧å¹Ø幦å¹Æ廩廧廦å»Øå»„å½‹å¾¼ę†ę†Øę†–ę‡…ę†“ę‡†ę‡ę‡Œę†ŗ"],
-["e9a1","ę†æę†øę†Œę“—ę“–ę“ę“ę“‰ę’½ę’‰ę“ƒę“›ę“³ę“™ę”³ę•æę•¼ę–¢ę›ˆęš¾ę›€ę›Šę›‹ę›ęš½ęš»ęšŗę›Œęœ£ęØ“ę©¦ę©‰ę©§ęزę©ØęØ¾ę©ę©­ę©¶ę©›ę©‘ęØØę©šęØ»ęØæꩁę©Ŗę©¤ę©ę©ę©”ę©Æę©©ę© ęØ¼ę©žę©–ę©•ę©ę©Žę©†ę­•ę­”ę­–ę®§ę®ŖꮫęƈęÆ‡ę°„ę°ƒę°†ę¾­ęæ‹ę¾£ęæ‡ę¾¼ęæŽęæˆę½žęæ„ę¾½ę¾žęæŠę¾Øē€„ę¾„ę¾®ę¾ŗę¾¬ę¾Ŗęæę¾æę¾ø"],
-["ea40","ę¾¢ęæ‰ę¾«ęæę¾Æę¾²ę¾°ē‡…ē‡‚ē†æē†øē‡–ē‡€ē‡ē‡‹ē‡”ē‡Šē‡‡ē‡ē†½ē‡˜ē†¼ē‡†ē‡šē‡›ēŠēŠžē©ē¦ē§ē¬ē„ē«ēŖē‘æē’šē’ ē’”ē’’ē’•ē’”ē”‹ē–€ē˜Æē˜­ē˜±ē˜½ē˜³ē˜¼ē˜µē˜²ē˜°ēš»ē›¦ēžšēžēž”ēžœēž›ēž¢ēž£ēž•ēž™"],
-["eaa1","ēž—ē£ē£©ē£„ē£Ŗē£žē££ē£›ē£”ē£¢ē£­ē£Ÿē£ ē¦¤ē©„ē©ˆē©‡ēŖ¶ēŖøēŖµēŖ±ēŖ·ēƞēÆ£ēƧēƝēƕēÆ„ēƚēÆØēƹēƔēÆŖēÆ¢ēƜēÆ«ēƘēƟē³’ē³”ē³—ē³ē³‘ēø’ēø”ēø—ēøŒēøŸēø ēø“ēøŽēøœēø•ēøšēø¢ēø‹ēøēø–ēøēø”ēø„ēø¤ē½ƒē½»ē½¼ē½ŗē¾±ēæÆč€Ŗč€©č¬č†±č†¦č†®č†¹č†µč†«č†°č†¬č†“č†²č†·č†§č‡²č‰•č‰–č‰—č•–č•…č•«č•č•“č•”č•˜"],
-["eb40","č•€č•†č•¤č•č•¢č•„č•‘č•‡č•£č”¾č•›č•±č•Žč•®č•µč••č•§č• č–Œč•¦č•č•”č•„č•¬č™£č™„č™¤čž›čžčž—čž“čž’čžˆčžčž–čž˜č¹čž‡čž£čž…čžčž‘čžčž„čž”čžœčžščž‰č¤žč¤¦č¤°č¤­č¤®č¤§č¤±č¤¢č¤©č¤£č¤Æč¤¬č¤Ÿč§±č« "],
-["eba1","č«¢č«²č«“č«µč«č¬”č«¤č«Ÿč«°č«ˆč«žč«”č«Øč«æč«Æč«»č²‘č²’č²č³µč³®č³±č³°č³³čµ¬čµ®č¶„č¶§čø³čø¾čøøč¹€č¹…čø¶čø¼čø½č¹čø°čøæčŗ½č¼¶č¼®č¼µč¼²č¼¹č¼·č¼“遶遹遻邆éƒŗ鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏éŗéŒø錼錛錣錒錁鍆錭錎錍鋋錝é‹ŗ錄錓鋹鋷錓錂錤é‹æ錩錹錵éŒŖ錔錌"],
-["ec40","錋鋾錉錀鋻錖閼闍閾閹é–ŗ閶é–æ閵閽隩雔霋霒霐鞙鞗鞔韰éŸøé µé Æ頲餤餟餧餩馞駮駬駄駤駰駣é§Ŗ駩駧éŖ¹éŖæéŖ“éŖ»é«¶é«ŗ髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐é­ŗ鮕"],
-["eca1","魽鮈铄铗铠铞铔铩铝铘铢铐铙铟éŗˆéŗ†éŗ‡éŗ®éŗ­é»•é»–é»ŗ鼒鼽儦億儢儤儠儩勓嚓嚌嚍嚆嚄嚃噾嚂å™æ嚁壖壔壏壒嬭嬄嬲嬣嬬嬧嬦å¬Æ嬮孻åƱåƲ嶷幬å¹Ŗå¾¾å¾»ę‡ƒę†µę†¼ę‡§ę‡ ę‡„ę‡¤ę‡Øꇞę“Æę“©ę“£ę“«ę“¤ę“ØꖁꖀꖶꗚꛒęŖęŖ–ęŖęŖ„ęŖ‰ęŖŸęŖ›ęŖ”ęŖžęŖ‡ęŖ“ęŖŽ"],
-["ed40","ęŖ•ęŖƒęŖØęŖ¤ęŖ‘ę©æęŖ¦ęŖšęŖ…ęŖŒęŖ’꭛ꮭ갉ęæŒę¾©ęæ“ęæ”ęæ£ęæœęæ­ęæ§ęæ¦ęæžęæ²ęæęæ¢ęæØē‡”ē‡±ē‡Øē‡²ē‡¤ē‡°ē‡¢ē³ē®ēÆē’—ē’²ē’«ē’ē’Ŗē’­ē’±ē’„ē’Æē”ē”‘ē”’ē”ē–„ē™ƒē™ˆē™‰ē™‡ēš¤ē›©ēžµēž«ēž²ēž·ēž¶"],
-["eda1","ēž“ēž±ēžØēŸ°ē£³ē£½ē¤‚ē£»ē£¼ē£²ē¤…ē£¹ē£¾ē¤„ē¦«ē¦Øē©œē©›ē©–ē©˜ē©”ē©šēŖ¾ē«€ē«ē°…ē°ēƲē°€ēÆæēÆ»ē°ŽēÆ“ē°‹ēƳē°‚ē°‰ē°ƒē°ēÆøēƽē°†ēÆ°ēƱē°ē°Šē³Øēø­ēø¼ē¹‚ēø³é”ˆēøøēøŖē¹‰ē¹€ē¹‡ēø©ē¹Œēø°ēø»ēø¶ē¹„ēøŗē½…ē½æē½¾ē½½ēæ“ēæ²č€¬č†»č‡„č‡Œč‡Šč‡…č‡‡č†¼č‡©č‰›č‰šč‰œč–ƒč–€č–č–§č–•č– č–‹č–£č•»č–¤č–šč–ž"],
-["ee40","č•·č•¼č–‰č–”č•ŗč•øč•—č–Žč––č–†č–č–™č–č–č–¢č–‚č–ˆč–…č•¹č•¶č–˜č–č–Ÿč™Øčž¾čžŖčž­čŸ…čž°čž¬čž¹čžµčž¼čž®čŸ‰čŸƒčŸ‚čŸŒčž·čžÆčŸ„čŸŠčž“čž¶čžæčžøčž½čŸžčž²č¤µč¤³č¤¼č¤¾č„č„’č¤·č„‚č¦­č¦Æč¦®č§²č§³č¬ž"],
-["eea1","č¬˜č¬–č¬‘č¬…č¬‹č¬¢č¬č¬’č¬•č¬‡č¬č¬ˆč¬†č¬œč¬“č¬šč±č±°č±²č±±č±Æč²•č²”č³¹čµÆč¹Žč¹č¹“č¹č¹Œč¹‡č½ƒč½€é‚…é¾é„ø醚醢醛醙醟醔醝醠鎔鎃éŽÆ鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌éŖ鍹鍗鍕鍒鍏鍱鍷鍻鍔鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞔鞜"],
-["ef40","鞞鞝韕韔韱锁锄锊锉锅锃餄餫餬é¤Ŗ餳餲é¤Æ餭餱餰馘馣馔é؂é§ŗ駓駷駹é§ø駶駻駽駾駼é؃éŖ¾é«¾é«½é¬é«¼é­ˆé®šé®Ø鮞鮛鮦鮔鮄鮤鮆鮢鮠é®Æ铳鵁鵧银铮é“Æ铱é“øé“°"],
-["efa1","鵅鵂鵃链铷鵀铽ēæµé“­éŗŠéŗ‰éŗéŗ°é»ˆé»šé»»é»æ鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙儰嬼屩å±Ŗå·€å¹­å¹®ę‡˜ę‡Ÿę‡­ę‡®ę‡±ę‡Ŗꇰꇫꇖꇩę“æę”„ę“½ę“øę”ę”ƒę“¼ę–”ę—›ę›šę››ę›˜ę«…ęŖ¹ęŖ½ę«”꫆ęŖŗęŖ¶ęŖ·ę«‡ęŖ“ęŖ­ę­žęÆ‰ę°‹ē€‡ē€Œē€ē€ē€…ē€”ē€Žęææē€€ęæ»ē€¦ęæ¼ęæ·ē€Šēˆē‡æē‡¹ēˆƒē‡½ē¶"],
-["f040","ē’øē“€ē’µē“ē’¾ē’¶ē’»ē“‚ē””ē”“ē™œē™¤ē™™ē™ē™“ē™—ē™šēš¦ēš½ē›¬ēŸ‚ēžŗē£æē¤Œē¤“ē¤”ē¤‰ē¤ē¤’ē¤‘ē¦­ē¦¬ē©Ÿē°œē°©ē°™ē° ē°Ÿē°­ē°ē°¦ē°Øē°¢ē°„ē°°ē¹œē¹ē¹–ē¹£ē¹˜ē¹¢ē¹Ÿē¹‘ē¹ ē¹—ē¹“ē¾µē¾³ēæ·ēæø聵臑臒"],
-["f0a1","č‡č‰Ÿč‰žč–“č—†č—€č—ƒč—‚č–³č–µč–½č—‡č—„č–æč—‹č—Žč—ˆč—…č–±č–¶č—’č˜¤č–øč–·č–¾č™©čŸ§čŸ¦čŸ¢čŸ›čŸ«čŸŖčŸ„čŸŸčŸ³čŸ¤čŸ”čŸœčŸ“čŸ­čŸ˜čŸ£čž¤čŸ—čŸ™č čŸ“čŸØčŸč„“č„‹č„č„Œč„†č„č„‘č„‰č¬Ŗč¬§č¬£č¬³č¬°č¬µč­‡č¬Æč¬¼č¬¾č¬±č¬„č¬·č¬¦č¬¶č¬®č¬¤č¬»č¬½č¬ŗč±‚č±µč²™č²˜č²—č³¾č“„č“‚č“€č¹œč¹¢č¹ č¹—č¹–č¹žč¹„č¹§"],
-["f140","č¹›č¹šč¹”č¹č¹©č¹”č½†č½‡č½ˆč½‹é„Øé„ŗ鄻鄾é†Ø醄醧é†Æé†Ŗ鎵鎌鎒鎷鎛鎝鎉鎧鎎éŽŖ鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤éŽØ鎓鎣鎄闒闓闑隳雗雚巂雟雘雝霣霢霄鞬鞮éžØ鞫鞤éžŖ"],
-["f1a1","鞢鞄韗韙韖韘éŸŗ锐锑锒é¢ø鄁餼é¤ŗé؏é؋é؉é؍é؄éؑé؊é؅é؇é؆髀髜鬈鬄鬅鬩鬵魊魌魋éƇéƆéƃé®æéƁ鮵é®øéƓ鮶éƄ鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚éŗŽéŗŒé»Ÿé¼é¼€é¼–鼄鼫é¼Ŗ鼩é¼Ø齌齕儓儵劖勷厓嚫嚭嚦嚧åšŖ嚬壚壝壛夒嬽嬾å¬æ巃幰"],
-["f240","å¾æę‡»ę”‡ę”ę”ę”‰ę”Œę”Žę–„ę—žę—ę›žę«§ę« ę«Œę«‘ę«™ę«‹ę«Ÿę«œę«ę««ę«ę«ę«žę­ ę®°ę°Œē€™ē€§ē€ ē€–ē€«ē€”ē€¢ē€£ē€©ē€—ē€¤ē€œē€ŖēˆŒēˆŠēˆ‡ēˆ‚ēˆ…ēŠ„ēŠ¦ēŠ¤ēŠ£ēŠ”ē“‹ē“…ē’·ē“ƒē”–ē™ ēŸ‰ēŸŠēŸ„ēŸ±ē¤ē¤›"],
-["f2a1","ē¤”ē¤œē¤—ē¤žē¦°ē©§ē©Øē°³ē°¼ē°¹ē°¬ē°»ē³¬ē³Ŗē¹¶ē¹µē¹øē¹°ē¹·ē¹Æē¹ŗē¹²ē¹“ē¹Øē½‹ē½Šē¾ƒē¾†ē¾·ēæ½ēæ¾čøč‡—č‡•č‰¤č‰”č‰£č—«č—±č—­č—™č—”č—Øč—šč——č—¬č—²č—øč—˜č—Ÿč—£č—œč—‘č—°č—¦č—Æč—žč—¢č €čŸŗč ƒčŸ¶čŸ·č ‰č Œč ‹č †čŸ¼č ˆčŸæč Šč ‚č„¢č„šč„›č„—č„”č„œč„˜č„č„™č¦ˆč¦·č¦¶č§¶č­č­ˆč­Šč­€č­“č­–č­”č­‹č­•"],
-["f340","č­‘č­‚č­’č­—č±ƒč±·č±¶č²šč“†č“‡č“‰č¶¬č¶Ŗč¶­č¶«č¹­č¹øč¹³č¹Ŗč¹Æč¹»č»‚č½’č½‘č½č½č½“č¾“é…€é„æ醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雔霩霫霬éœØ霦"],
-["f3a1","鞳鞷鞶韝韞韟锜错锝锗é¢æ颽颻颾鄈鄇鄃馦馧éؚéؕéØ„é؝éؤé؛éØ¢éØ éاéØ£é؞é؜éؔ髂鬋鬊鬎鬌鬷éÆŖéÆ«éÆ éƞéƤéƦéÆ¢éÆ°éƔéƗéƬéƜéƙéÆ„éƕéÆ”éƚ鵷鶁鶊鶄鶈鵱鶀éµø鶆鶋鶌鵽鵫鵓鵵鵰鵩鶅鵳鵻鶂éµÆéµ¹éµæ鶇éµØéŗ”éŗ‘黀黼鼭齀齁齍齖齗齘匷嚲"],
-["f440","嚵嚳壣孅巆巇廮å»Æåæ€åæę‡¹ę”—ę”–ę”•ę”“ę—Ÿę›Øę›£ę›¤ę«³ę«°ę«Ŗę«Øę«¹ę«±ę«®ę«Æē€¼ē€µē€Æē€·ē€“ē€±ē‚ē€øē€æē€ŗē€¹ē€ē€»ē€³ēēˆ“ēˆ”ēŠØē½ē¼ē’ŗēš«ēšŖēš¾ē›­ēŸŒēŸŽēŸēŸēŸ²ē¤„ē¤£ē¤§ē¤Øē¤¤ē¤©"],
-["f4a1","ē¦²ē©®ē©¬ē©­ē«·ē±‰ē±ˆē±Šē±‡ē±…ē³®ē¹»ē¹¾ēŗēŗ€ē¾ŗēææč¹č‡›č‡™čˆ‹č‰Øč‰©č˜¢č—æč˜č—¾č˜›č˜€č—¶č˜„č˜‰č˜…č˜Œč—½č ™č č ‘č —č “č –č„£č„¦č¦¹č§·č­ č­Ŗ譝č­Øč­£č­„č­§č­­č¶®čŗ†čŗˆčŗ„č½™č½–č½—č½•č½˜č½šé‚é…ƒé…é†·é†µé†²é†³é‹é“é»é éé”é¾é•ééØ鐙鐍鏵鐀鏷鐇鐎鐖鐒éŗ鐉éø鐊éæ"],
-["f540","鏼鐌鏶鐑鐆闞闠闟霮éœÆ鞹鞻韽韾锠锢锣锟飁飂鄐鄎鄙鄌鄋鄓éزéØ“éرéجéØŖéضéØ©éØ®éØøéح髇髊髆鬐鬒鬑鰋鰈éƷ鰅鰒éÆø鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],
-["f5a1","鶠鶔鶜é¶Ŗ鶗鶔鶚鶢é¶Ø鶞鶣é¶æ鶩鶖鶦鶧éŗ™éŗ›éŗšé»„黤黧黦鼰鼮齛齠齞齝齙龑å„ŗå„¹åŠ˜åŠ—å›ƒåš½åš¾å­ˆå­‡å·‹å·å»±ę‡½ę”›ę¬‚ę«¼ę¬ƒę«ø꬀ēƒē„ēŠēˆē‰ē…ē†ēˆēˆšēˆ™ē¾ē”—ē™ŖēŸē¤­ē¤±ē¤Æē±”ē±“ē³²ēŗŠēŗ‡ēŗˆēŗ‹ēŗ†ēŗē½ē¾»č€°č‡č˜˜č˜Ŗč˜¦č˜Ÿč˜£č˜œč˜™č˜§č˜®č˜”č˜ č˜©č˜žč˜„"],
-["f640","č ©č č ›č  č ¤č œč «č”Šč„­č„©č„®č„«č§ŗč­¹č­ø譅č­ŗ譻蓐蓔č¶ÆčŗŽčŗŒč½žč½›č½é…†é…„酅醹éæ鐻鐶鐩鐽鐼鐰鐹éŖ鐷鐬鑀鐱闄闤闣霵éœŗéžæ韔锤飉飆飀鄘鄖éعéؽ驆驄驂驁éØŗ"],
-["f6a1","éØæ髍鬕鬗鬘鬖é¬ŗ魒鰫鰝鰜鰬鰣é°Ø鰩鰤鰔鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹é¶ŗ鶬鷈鶱鶭鷌鶳鷍鶲é¹ŗéŗœé»«é»®é»­é¼›é¼˜é¼šé¼±é½Žé½„齤龒äŗ¹å›†å›…å›‹å„±å­‹å­Œå·•å·‘å»²ę””ę” ę”¦ę”¢ę¬‹ę¬ˆę¬‰ę°ē•ē–ē—ē’ēˆžēˆŸēŠ©ēæē“˜ē“•ē“™ē“—ē™­ēš­ē¤µē¦“ē©°ē©±ē±—ē±œē±™ē±›ē±š"],
-["f740","ē³“ē³±ēŗ‘ē½ē¾‡č‡žč‰«č˜“č˜µč˜³č˜¬č˜²č˜¶č ¬č Øč ¦č Ŗ蠄脱č¦æč¦¾č§»č­¾č®„č®‚č®†č®…č­æč“•čŗ•čŗ”čŗščŗ’čŗčŗ–čŗ—č½ č½¢é…‡é‘Œé‘é‘Šé‘‹é‘é‘‡é‘…é‘ˆé‘‰é‘†éœæ韣é”Ŗ锩飋鄔鄛驎驓驔驌驏驈驊"],
-["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈é°æ鱄鰹鰳鱁鰼鰷鰓鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝éŗ¶é»°é¼µé¼³é¼²é½‚齫龕龢儽劙å£Ø壧儲孍巘č Æå½ęˆęˆƒęˆ„ę”©ę”„ę––ę›«ę¬‘ę¬’ę¬ęƊē›ēšēˆ¢ēŽ‚ēŽēŽƒē™°ēŸ”ē±§ē±¦ēŗ•č‰¬č˜ŗč™€č˜¹č˜¼č˜±č˜»č˜¾č °č ²č ®č ³č„¶č„“č„³č§¾"],
-["f840","č®Œč®Žč®‹č®ˆč±…č“™čŗ˜č½¤č½£é†¼é‘¢é‘•é‘é‘—鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷é·Æ鷣鷫é·ø鷤鷶鷔鷮鷦鷲鷰鷢鷬鷓鷳é·Ø鷭黂黐黲黳鼆鼜é¼ø鼷鼶齃齏"],
-["f8a1","齱齰齮é½Æå›“å›å­Žå±­ę”­ę›­ę›®ę¬“ēŸē”ēē ēˆ£ē“›ē“„ēŸ•ē¤øē¦·ē¦¶ē±Ŗēŗ—ē¾‰č‰­č™ƒč ø蠷蠵蔋讔讕čŗžčŗŸčŗ čŗé†¾é†½é‡‚é‘«é‘Ø鑩雄靆靃靇韇韄驞髕魙鱣鱧鱦鱢鱞鱠éø‚é·¾éø‡éøƒéø†éø…éø€éøéø‰é·æé·½éø„éŗ é¼žé½†é½“é½µé½¶å›”ę”®ę–øę¬˜ę¬™ę¬—ę¬šē¢ēˆ¦ēŠŖēŸ˜ēŸ™ē¤¹ē±©ē±«ē³¶ēŗš"],
-["f940","ēŗ˜ēŗ›ēŗ™č‡ č‡”č™†č™‡č™ˆč„¹č„ŗč„¼č„»č§æč®˜č®™čŗ„čŗ¤čŗ£é‘®é‘­é‘Æ鑱鑳靉锲鄟é±Ø鱮鱭éø‹éøéøéøéø’éø‘éŗ”黵鼉齇é½øé½»é½ŗ齹圞ē¦ē±Æč ¼č¶²čŗ¦é‡ƒé‘“é‘ø鑶鑵驠鱓鱳鱱鱵éø”éø“黶鼊"],
-["f9a1","龤ēØē„ē³·č™Ŗč ¾č ½č æč®žč²œčŗ©č»‰é‹é”³é”“飌鄔馫驤驦驧鬤éø•éø—é½ˆęˆ‡ę¬žēˆ§č™ŒčŗØ钂钀钁驩é©Ø鬮éø™ēˆ©č™‹č®Ÿé’ƒé±¹éŗ·ē™µé©«é±ŗéøē©ēŖéŗ¤é½¾é½‰é¾˜ē¢éŠ¹č£å¢»ę’ē²§å«ŗā•”ā•¦ā•—ā• ā•¬ā•£ā•šā•©ā•ā•’ā•¤ā••ā•žā•Ŗā•”ā•˜ā•§ā•›ā•“ā•„ā•–ā•Ÿā•«ā•¢ā•™ā•Øā•œā•‘ā•ā•­ā•®ā•°ā•Æā–“"]
-]
diff --git a/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 b/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
deleted file mode 100644
index 4fa61ca116..0000000000
--- a/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
+++ /dev/null
@@ -1,182 +0,0 @@
-[
-["0","\u0000",127],
-["8ea1","ļ½”",62],
-["a1a1","怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ",9,"ļ¼‹ļ¼Ā±Ć—Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡"],
-["a2a1","ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"],
-["a2ba","āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"],
-["a2ca","āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"],
-["a2dc","āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"],
-["a2f2","ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"],
-["a2fe","ā—Æ"],
-["a3b0","ļ¼",9],
-["a3c1","ļ¼”",25],
-["a3e1","ļ½",25],
-["a4a1","恁",82],
-["a5a1","ć‚”",85],
-["a6a1","Ī‘",16,"Ī£",6],
-["a6c1","Ī±",16,"Ļƒ",6],
-["a7a1","Š",5,"ŠŠ–",25],
-["a7d1","Š°",5,"ёŠ¶",25],
-["a8a1","ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"],
-["ada1","ā‘ ",19,"ā… ",9],
-["adc0","ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"],
-["addf","ć»ć€ć€Ÿā„–揍ā„”护",4,"ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"],
-["b0a1","äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"],
-["b1a1","院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††åœ’å °å„„å®“延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœ"],
-["b2a1","ęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"],
-["b3a1","é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±"],
-["b4a1","ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"],
-["b5a1","ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬"],
-["b6a1","供侠僑兇ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"],
-["b7a1","ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØåŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²"],
-["b8a1","ꤜęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"],
-["b9a1","后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æé‹¼é–¤é™é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼"],
-["baa1","ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"],
-["bba1","åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗꅈꌁꙂ"],
-["bca1","ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"],
-["bda1","宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿ"],
-["bea1","勝匠升召å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"],
-["bfa1","ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾"],
-["c0a1","ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"],
-["c1a1","ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæęŽ»ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Ž"],
-["c2a1","č‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"],
-["c3a1","å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘蓄逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵ"],
-["c4a1","åø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"],
-["c5a1","é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°"],
-["c6a1","č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"],
-["c7a1","如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦"],
-["c8a1","函ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"],
-["c9a1","é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœ"],
-["caa1","ē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"],
-["cba1","ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€"],
-["cca1","ę¼«č”“å‘³ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"],
-["cda1","č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒ"],
-["cea1","ē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"],
-["cfa1","č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"],
-["d0a1","弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"],
-["d1a1","僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­å‡°å‡µå‡¾åˆ„åˆ‹åˆ”åˆŽåˆ§åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Ø"],
-["d2a1","č¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"],
-["d3a1","咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉"],
-["d4a1","圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"],
-["d5a1","å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓"],
-["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"],
-["d7a1","廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææę€”ę ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚š"],
-["d8a1","ę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"],
-["d9a1","ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼"],
-["daa1","ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"],
-["dba1","ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Žę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£"],
-["dca1","ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"],
-["dda1","ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆéŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾"],
-["dea1","ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"],
-["dfa1","ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼"],
-["e0a1","ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"],
-["e1a1","ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°"],
-["e2a1","ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"],
-["e3a1","ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­"],
-["e4a1","ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"],
-["e5a1","ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗ"],
-["e6a1","ē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"],
-["e7a1","éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™"],
-["e8a1","čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"],
-["e9a1","蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬č›Ÿč››č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™"],
-["eaa1","č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"],
-["eba1","脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«"],
-["eca1","č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"],
-["eda1","č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œč½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø"],
-["eea1","遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"],
-["efa1","錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞"],
-["f0a1","陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"],
-["f1a1","锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷"],
-["f2a1","髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"],
-["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠"],
-["f4a1","å Æ꧇遙ē‘¤å‡œē†™"],
-["f9a1","ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德"],
-["faa1","åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"],
-["fba1","ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚"],
-["fca1","釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"],
-["fcf1","ā…°",9,"ļæ¢ļæ¤ļ¼‡ļ¼‚"],
-["8fa2af","Ė˜Ė‡ĀøĖ™ĖĀÆĖ›Ėšļ½žĪ„Ī…"],
-["8fa2c2","Ā”Ā¦Āæ"],
-["8fa2eb","ĀŗĀŖĀ©Ā®ā„¢Ā¤ā„–"],
-["8fa6e1","Ī†ĪˆĪ‰ĪŠĪŖ"],
-["8fa6e7","ĪŒ"],
-["8fa6e9","ĪŽĪ«"],
-["8fa6ec","Ī"],
-["8fa6f1","Ī¬Ī­Ī®ĪÆĻŠĪĻŒĻ‚ĻĻ‹Ī°ĻŽ"],
-["8fa7c2","Š‚",10,"ŠŽŠ"],
-["8fa7f2","ђ",10,"ўџ"],
-["8fa9a1","ƆĐ"],
-["8fa9a4","Ħ"],
-["8fa9a6","IJ"],
-["8fa9a8","ŁÄæ"],
-["8fa9ab","ÅŠĆ˜Å’"],
-["8fa9af","Å¦Ćž"],
-["8fa9c1","Ć¦Ä‘Ć°Ä§Ä±Ä³ÄøłŀʼnŋĆøÅ“ĆŸÅ§Ć¾"],
-["8faaa1","ƁƀƄƂĂĒÄ€Ä„Ć…ĆƒÄ†ÄˆÄŒĆ‡ÄŠÄŽĆ‰ĆˆĆ‹ĆŠÄšÄ–Ä’Ä˜"],
-["8faaba","ÄœÄžÄ¢Ä Ä¤ĆĆŒĆĆŽĒÄ°ÄŖÄ®ÄØÄ“Ä¶Ä¹Ä½Ä»ÅƒÅ‡Å…Ć‘Ć“Ć’Ć–Ć”Ē‘ÅÅŒĆ•Å”Å˜Å–ÅšÅœÅ ÅžÅ¤Å¢ĆšĆ™ĆœĆ›Å¬Ē“Å°ÅŖŲŮÅØĒ—Ē›Ē™Ē•Å“ƝÅøŶŹŽŻ"],
-["8faba1","Ć”Ć Ć¤Ć¢ÄƒĒŽÄÄ…Ć„Ć£Ä‡Ä‰ÄĆ§Ä‹ÄĆ©ĆØĆ«ĆŖěėēęĒµÄÄŸ"],
-["8fabbd","ĔĄƭƬĆÆĆ®Ē"],
-["8fabc5","Ä«ÄÆĩĵķÄŗÄ¾Ä¼Å„ÅˆÅ†Ć±Ć³Ć²Ć¶Ć“Ē’Å‘ÅĆµÅ•Å™Å—Å›ÅÅ”ÅŸÅ„Å£ĆŗĆ¹Ć¼Ć»Å­Ē”űūųÅÆÅ©Ē˜ĒœĒšĒ–ÅµĆ½ĆæÅ·Åŗžż"],
-["8fb0a1","äø‚äø„äø…äøŒäø’äøŸäø£äø¤äøØäø«äø®äøÆäø°äøµä¹€ä¹ä¹„乇乑乚乜乣ä¹Ø乩乓乵乹ä¹æäŗäŗ–äŗ—äŗäŗÆäŗ¹ä»ƒä»ä»šä»›ä» ä»”仢ä»Øä»Æ仱仳仵份仾ä»æ伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣ä½Ŗ佬佮佱佷ä½øä½¹ä½ŗ佽佾侁侂侄"],
-["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾äæ€äæäæ…äæ†äæˆäæ‰äæ‹äæŒäæäæäæ’äæœäæ äæ¢äæ°äæ²äæ¼äæ½äææ倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧åŖ偭偰偱倻傁傃傄傆傊傎傏傐"],
-["8fb2a1","傒傓傔傖傛傜傞",4,"å‚Ŗå‚Æ傰傹å‚ŗ傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦åƒØ僩åƒÆ僱僶åƒŗ僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧å„Ø儬儭å„Æ儱儳儓儵å„ø儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冔冣冭å†øå†ŗ冼冾å†æ凂"],
-["8fb3a1","凈减凑凒凓凕凘凞凢凄凮凲凳凓凷刁刂刅划刓刕刖刘刢åˆØ刱刲刵刼剅剉剕剗剘剚剜剟剠剔剦剮剷å‰ø剹劀劂劅劊劌劓劕劖劗劘劚劜劤劄劦劧åŠÆ劰劶劷åŠøåŠŗ劻劽勀勄勆勈勌勏勑勔勖勛勜勔勄å‹Ø勩å‹Ŗ勬勰勱勓勶勷匀匃匊匋"],
-["8fb4a1","匌匑匓匘匛匜匞匟匄匧åŒØ匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛協卣卄卬卭卲卹卾厃厇厈厎厓厔厙厝厔厤åŽŖ厫åŽÆ厲厓厵厷åŽøåŽŗ厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吔吧åØåŖåÆ吱吓吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呓å‘æ"],
-["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咔咦咧咩å’Ŗ咭咮咱咷咹å’ŗ咻å’æ哆哊响哎哠å“Ŗ哬å“Æ哶哼哾å“æ唀唁唅唈唉唌唍唎唕å”Ŗ唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啔啤啦å•æ喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲å–æ嗁嗃嗆嗉嗋嗌嗎嗑嗒"],
-["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶å—æ嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽å˜æ噀噁噃噄噆噉噋噍噏噔噞噠噔噢噣噦噩噭å™Æ噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧åšØ嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囔囤",4,"囱囫园"],
-["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圄圩åœŖ圬圮åœÆ圳圓圽圾åœæ坅坆坌坍坒坢坄坧åØ坫坭",4,"坳坓坵坷坹åŗ坻坼坾垁垃垌垔垗垙垚垜垝垞垟垔垕垧åžØ垩垬åžø垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶åŸø埽埾åŸæ堃堄堈堉埔"],
-["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹å æ唉唌唍唏唐唕唟唔唤唧å”Øå”ø唼å”æå¢€å¢å¢‡å¢ˆå¢‰å¢Šå¢Œå¢å¢å¢å¢”å¢–å¢å¢ å¢”å¢¢å¢¦å¢©å¢±å¢²å£„å¢¼å£‚å£ˆå£å£Žå£å£’å£”å£–å£šå£å£”å£¢å£©å£³å¤…å¤†å¤‹å¤Œå¤’å¤“å¤”č™å¤å¤”å¤£å¤¤å¤Øå¤Æ夰夳夵夶å¤æ儃儆儒儓儙儛儝儞償儔儣儫儭"],
-["8fb9a1","å„Æ儲儵儶儹儻儼妋妌妎妒妕妗妟妤妧妭妮å¦Æ妰妳妷å¦ŗ妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮å§Æ姱姲姓姷å؀å؄å،å؍å؎åؒåؓå؞åØ£åؤåاåØØåØŖåØ­åذ婄婅婇婈婌婐婕婞婣婄婧婭婷å©ŗ婻婾åŖ‹åŖåŖ“åŖ–åŖ™åŖœåŖžåŖŸåŖ åŖ¢åŖ§åŖ¬åŖ±åŖ²åŖ³åŖµåŖøåŖŗåŖ»åŖæ"],
-["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫄å«Ŗ嫮嫵嫶嫽嬀嬁嬈嬗嬓嬙嬛嬝嬔嬄嬭å¬ø孁孋孌孒孖孞å­Øå­®å­Æ孼孽孾å­æ宁宄宆宊宎宐宑宓宔宖å®Ø宩宬宭å®Æ宱宲宷å®ŗ宼åƀåƁåƍåƏåƖ",4,"åÆ åÆÆåƱåÆ“åƽ尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧å±Ø屩"],
-["8fbba1","屭屰屓屵å±ŗ屻屼屽岇岈岊岏岒岝岟岠岢岣岦å²Ŗ岲岓岵å²ŗ峉峋峒峝峗峮峱峲峓品哆响哒哫哣哤哦哧哱哓哹哽å“æ嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵔嵢嵤åµŖåµ­åµ°åµ¹åµŗåµ¾åµæ嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶓å¶ø嶹巃巇巋巐巎巘巙巠巤"],
-["8fbca1","å·©å·øå·¹åø€åø‡åøåø’åø”åø•åø˜åøŸåø åø®åøØåø²åøµåø¾å¹‹å¹å¹‰å¹‘幖幘幛幜幞å¹Øå¹Ŗ",4,"å¹°åŗ€åŗ‹åŗŽåŗ¢åŗ¤åŗ„åŗØåŗŖåŗ¬åŗ±åŗ³åŗ½åŗ¾åŗæ廆廌廋廎廑廒廔廕廜廞廄廫异弆弇弈弎弙弜弝弔弢弣弤å¼Ø弫弬弮弰弓弶弻弽å¼æ彀彄彅彇彍彐彔彘彛彠彣彤彧"],
-["8fbda1","å½Æ彲当彵å½øå½ŗ彽彾徉徍徏徖徜徝徢徧徫徤徬å¾Æå¾°å¾±å¾øåæ„åæ‡åæˆåæ‰åæ‹åæ",4,"åæžåæ”åæ¢åæØåæ©åæŖåæ¬åæ­åæ®åæÆåæ²åæ³åæ¶åæŗåæ¼ę€‡ę€Šę€ę€“ę€”ę€—ę€˜ę€šę€Ÿę€¤ę€­ę€³ę€µę€ę‡ęˆę‰ęŒę‘ę”ę–ę—ęę”ę§ę±ę¾ęæę‚‚ę‚†ę‚ˆę‚Šę‚Žę‚‘ę‚“ę‚•ę‚˜ę‚ę‚žę‚¢ę‚¤ę‚„ę‚Øꂰꂱꂷ"],
-["8fbea1","ę‚»ę‚¾ęƒ‚ęƒ„ęƒˆęƒ‰ęƒŠęƒ‹ęƒŽęƒęƒ”ęƒ•ęƒ™ęƒ›ęƒęƒžęƒ¢ęƒ„ęƒ²ęƒµęƒøęƒ¼ęƒ½ę„‚ę„‡ę„Šę„Œę„",4,"ę„–ę„—ę„™ę„œę„žę„¢ę„Ŗę„«ę„°ę„±ę„µę„¶ę„·ę„¹ę…ę……ę…†ę…‰ę…žę… ę…¬ę…²ę…øę…»ę…¼ę…æę†€ę†ę†ƒę†„ę†‹ę†ę†’ę†“ę†—ę†˜ę†œę†ę†Ÿę† ę†„ę†Øę†Ŗꆭę†øę†¹ę†¼ę‡€ę‡ę‡‚ę‡Žę‡ę‡•ę‡œę‡ę‡žę‡Ÿę‡”ę‡¢ę‡§ę‡©ę‡„"],
-["8fbfa1","ꇬꇭę‡Æęˆęˆƒęˆ„ęˆ‡ęˆ“ęˆ•ęˆœęˆ ęˆ¢ęˆ£ęˆ§ęˆ©ęˆ«ęˆ¹ęˆ½ę‰‚ę‰ƒę‰„ę‰†ę‰Œę‰ę‰‘ę‰’ę‰”ę‰–ę‰šę‰œę‰¤ę‰­ę‰Æę‰³ę‰ŗę‰½ęŠęŠŽęŠęŠęŠ¦ęŠØęŠ³ęŠ¶ęŠ·ęŠŗęŠ¾ęŠæꋄꋎꋕꋖꋚę‹Ŗę‹²ę‹“ę‹¼ę‹½ęŒƒęŒ„ęŒŠęŒ‹ęŒęŒęŒ“ęŒ–ęŒ˜ęŒ©ęŒŖęŒ­ęŒµęŒ¶ęŒ¹ęŒ¼ęę‚ęƒę„ę†ęŠę‹ęŽę’ę“ę”ę˜ę›ę„ę¦ę¬ę­ę±ę“ęµ"],
-["8fc0a1","ęøę¼ę½ęæꎂꎄꎇꎊꎐꎔꎕꎙꎚꎞꎤꎦꎭꎮęŽÆęŽ½ęę…ęˆęŽę‘ę“ę”ę•ęœę ę„ęŖę¬ę²ę³ęµęøę¹ę‰ęŠęę’ę”ę˜ęžę ę¢ę¤ę„ę©ęŖęÆę°ęµę½ęæę‘‹ę‘ę‘‘ę‘’ę‘“ę‘”ę‘šę‘›ę‘œę‘ę‘Ÿę‘ ę‘”ę‘£ę‘­ę‘³ę‘“ę‘»ę‘½ę’…ę’‡ę’ę’ę’‘ę’˜ę’™ę’›ę’ę’Ÿę’”ę’£ę’¦ę’Øę’¬ę’³ę’½ę’¾ę’æ"],
-["8fc1a1","ę“„ę“‰ę“Šę“‹ę“Œę“Žę“ę“‘ę“•ę“—ę“¤ę“„ę“©ę“Ŗꓭꓰꓵꓷꓻę“æę”ę”„ę”ˆę”‰ę”Šę”ę”“ę””ę”–ę”™ę”›ę”žę”Ÿę”¢ę”¦ę”©ę”®ę”±ę”ŗę”¼ę”½ę•ƒę•‡ę•‰ę•ę•’ę•”ę•Ÿę• ę•§ę•«ę•ŗę•½ę–ę–…ę–Šę–’ę–•ę–˜ę–ę– ę–£ę–¦ę–®ę–²ę–³ę–“ę–æę—‚ę—ˆę—‰ę—Žę—ę—”ę—–ę—˜ę—Ÿę—°ę—²ę—“ę—µę—¹ę—¾ę—æꘀꘄꘈꘉ꘍ꘑꘒꘕꘖꘝ"],
-["8fc2a1","ę˜žę˜”ę˜¢ę˜£ę˜¤ę˜¦ę˜©ę˜Ŗę˜«ę˜¬ę˜®ę˜°ę˜±ę˜³ę˜¹ę˜·ę™€ę™…ę™†ę™Šę™Œę™‘ę™Žę™—ę™˜ę™™ę™›ę™œę™ ę™”ę›»ę™Ŗę™«ę™¬ę™¾ę™³ę™µę™æę™·ę™øę™¹ę™»ęš€ę™¼ęš‹ęšŒęšęšęš’ęš™ęššęš›ęšœęšŸęš ęš¤ęš­ęš±ęš²ęšµęš»ęšæꛀꛂꛃꛈꛌꛎꛏꛔꛛꛟę›Øꛫꛬꛮę›ŗęœ…ęœ‡ęœŽęœ“ęœ™ęœœęœ ęœ¢ęœ³ęœ¾ę…ę‡ęˆęŒę”ę•ę"],
-["8fc3a1","ę¦ę¬ę®ę“ę¶ę»ęžęž„ęžŽęžęž‘ęž“ęž–ęž˜ęž™ęž›ęž°ęž±ęž²ęžµęž»ęž¼ęž½ęŸ¹ęŸ€ęŸ‚ęŸƒęŸ…ęŸˆęŸ‰ęŸ’ęŸ—ęŸ™ęŸœęŸ”ęŸ¦ęŸ°ęŸ²ęŸ¶ęŸ·ę”’ę ”ę ™ę ę Ÿę Øꠧ꠬꠭ę Æę °ę ±ę ³ę »ę æę”„ę”…ę”Šę”Œę”•ę”—ę”˜ę”›ę”«ę”®",4,"ę”µę”¹ę”ŗę”»ę”¼ę¢‚ę¢„ę¢†ę¢ˆę¢–ę¢˜ę¢šę¢œę¢”ę¢£ę¢„ę¢©ę¢Ŗę¢®ę¢²ę¢»ę£…ę£ˆę£Œę£"],
-["8fc4a1","ę£ę£‘ę£“ę£–ę£™ę£œę£ę£„ę£Øę£Ŗę£«ę£¬ę£­ę£°ę£±ę£µę£¶ę£»ę£¼ę£½ę¤†ę¤‰ę¤Šę¤ę¤‘ę¤“ę¤–ę¤—ę¤±ę¤³ę¤µę¤øę¤»ę„‚ę„…ę„‰ę„Žę„—ę„›ę„£ę„¤ę„„ę„¦ę„Øę„©ę„¬ę„°ę„±ę„²ę„ŗę„»ę„æę¦€ę¦ę¦’ę¦–ę¦˜ę¦”ę¦„ę¦¦ę¦Øꦫꦭę¦Æꦷę¦øę¦ŗę¦¼ę§…ę§ˆę§‘ę§–ę§—ę§¢ę§„ę§®ę§Æę§±ę§³ę§µę§¾ę؀ę؁ę؃ę؏ęؑęؕęؚę؝ęØ ęؤęØØęØ°ęز"],
-["8fc5a1","ęØ“ęØ·ęØ»ęؾęØæꩅꩆꩉꩊ꩎꩐꩑꩒꩕꩖꩛ꩤꩧę©Ŗę©±ę©³ę©¾ęŖęŖƒęŖ†ęŖ‡ęŖ‰ęŖ‹ęŖ‘ęŖ›ęŖęŖžęŖŸęŖ„ęŖ«ęŖÆęŖ°ęŖ±ęŖ“ęŖ½ęŖ¾ęŖæę«†ę«‰ę«ˆę«Œę«ę«”ę«•ę«–ę«œę«ę«¤ę«§ę«¬ę«°ę«±ę«²ę«¼ę«½ę¬‚ę¬ƒę¬†ę¬‡ę¬‰ę¬ę¬ę¬‘ę¬—ę¬›ę¬žę¬¤ę¬Øꬫꬬę¬Æꬵꬶꬻę¬æę­†ę­Šę­ę­’ę­–ę­˜ę­ę­ ę­§ę­«ę­®ę­°ę­µę­½"],
-["8fc6a1","ę­¾ę®‚ę®…ę®—ę®›ę®Ÿę® ę®¢ę®£ę®Øꮩꮬꮭꮮꮰę®øę®¹ę®½ę®¾ęƃęƄęƉęƌęƖęƚęÆ”ęÆ£ęƦęƧęÆ®ęƱęÆ·ęƹęÆæę°‚ę°„ę°…ę°‰ę°ę°Žę°ę°’ę°™ę°Ÿę°¦ę°§ę°Øę°¬ę°®ę°³ę°µę°¶ę°ŗę°»ę°æę±Šę±‹ę±ę±ę±’ę±”ę±™ę±›ę±œę±«ę±­ę±Æ걓걶ę±øę±¹ę±»ę²…ę²†ę²‡ę²‰ę²”ę²•ę²—ę²˜ę²œę²Ÿę²°ę²²ę²“ę³‚ę³†ę³ę³ę³ę³‘ę³’ę³”ę³–"],
-["8fc7a1","ę³šę³œę³ ę³§ę³©ę³«ę³¬ę³®ę³²ę³“ę“„ę“‡ę“Šę“Žę“ę“‘ę““ę“šę“¦ę“§ę“Ø걧ꓮę“Æę“±ę“¹ę“¼ę“æęµ—ęµžęµŸęµ”ęµ„ęµ§ęµÆęµ°ęµ¼ę¶‚ę¶‡ę¶‘ę¶’ę¶”ę¶–ę¶—ę¶˜ę¶Ŗę¶¬ę¶“ę¶·ę¶¹ę¶½ę¶æę·„ę·ˆę·Šę·Žę·ę·–ę·›ę·ę·Ÿę· ę·¢ę·„ę·©ę·Æę·°ę·“ę·¶ę·¼ęø€ęø„ęøžęø¢ęø§ęø²ęø¶ęø¹ęø»ęø¼ę¹„ę¹…ę¹ˆę¹‰ę¹‹ę¹ę¹‘ę¹’ę¹“ę¹”ę¹—ę¹œę¹ę¹ž"],
-["8fc8a1","ę¹¢ę¹£ę¹Øę¹³ę¹»ę¹½ęŗęŗ“ęŗ™ęŗ ęŗ§ęŗ­ęŗ®ęŗ±ęŗ³ęŗ»ęŗæę»€ę»ę»ƒę»‡ę»ˆę»Šę»ę»Žę»ę»«ę»­ę»®ę»¹ę»»ę»½ę¼„ę¼ˆę¼Šę¼Œę¼ę¼–ę¼˜ę¼šę¼›ę¼¦ę¼©ę¼Ŗę¼Æę¼°ę¼³ę¼¶ę¼»ę¼¼ę¼­ę½ę½‘ę½’ę½“ę½—ę½™ę½šę½ę½žę½”ę½¢ę½Øę½¬ę½½ę½¾ę¾ƒę¾‡ę¾ˆę¾‹ę¾Œę¾ę¾ę¾’ę¾“ę¾”ę¾–ę¾šę¾Ÿę¾ ę¾„ę¾¦ę¾§ę¾Øę¾®ę¾Æę¾°ę¾µę¾¶ę¾¼ęæ…ęæ‡ęæˆęæŠ"],
-["8fc9a1","ęæšęæžęæØęæ©ęæ°ęæµęæ¹ęæ¼ęæ½ē€€ē€…ē€†ē€‡ē€ē€—ē€ ē€£ē€Æē€“ē€·ē€¹ē€¼ēƒē„ēˆē‰ēŠē‹ē”ē•ēēžēŽē¤ē„ē¬ē®ēµē¶ē¾ē‚ē‚…ē‚†ē‚”",4,"ē‚›ē‚¤ē‚«ē‚°ē‚±ē‚“ē‚·ēƒŠēƒ‘ēƒ“ēƒ”ēƒ•ēƒ–ēƒ˜ēƒœēƒ¤ēƒŗē„ƒ",4,"ē„‹ē„Œē„ē„žē„ ē„«ē„­ē„Æē„°ē„±ē„øē…ē……ē…†ē…‡ē…Šē…‹ē…ē…’ē…—ē…šē…œē…žē… "],
-["8fcaa1","ē…Øē…¹ē†€ē†…ē†‡ē†Œē†’ē†šē†›ē† ē†¢ē†Æē†°ē†²ē†³ē†ŗē†æē‡€ē‡ē‡„ē‡‹ē‡Œē‡“ē‡–ē‡™ē‡šē‡œē‡øē‡¾ēˆ€ēˆ‡ēˆˆēˆ‰ēˆ“ēˆ—ēˆšēˆēˆŸēˆ¤ēˆ«ēˆÆēˆ“ēˆøēˆ¹ē‰ē‰‚ē‰ƒē‰…ē‰Žē‰ē‰ē‰“ē‰•ē‰–ē‰šē‰œē‰žē‰ ē‰£ē‰Øē‰«ē‰®ē‰Æē‰±ē‰·ē‰øē‰»ē‰¼ē‰æēŠ„ēŠ‰ēŠēŠŽēŠ“ēŠ›ēŠØēŠ­ēŠ®ēŠ±ēŠ“ēŠ¾ē‹ē‹‡ē‹‰ē‹Œē‹•ē‹–ē‹˜ē‹Ÿē‹„ē‹³ē‹“ē‹ŗē‹»"],
-["8fcba1","ē‹¾ēŒ‚ēŒ„ēŒ…ēŒ‡ēŒ‹ēŒēŒ’ēŒ“ēŒ˜ēŒ™ēŒžēŒ¢ēŒ¤ēŒ§ēŒØēŒ¬ēŒ±ēŒ²ēŒµēŒŗēŒ»ēŒ½ēƒēēē’ē–ē˜ēēžēŸē ē¦ē§ē©ē«ē¬ē®ēÆē±ē·ē¹ē¼ēŽ€ēŽēŽƒēŽ…ēŽ†ēŽŽēŽēŽ“ēŽ•ēŽ—ēŽ˜ēŽœēŽžēŽŸēŽ ēŽ¢ēŽ„ēŽ¦ēŽŖēŽ«ēŽ­ēŽµēŽ·ēŽ¹ēŽ¼ēŽ½ēŽæē…ē†ē‰ē‹ēŒēē’ē“ē–ē™ēē”ē£ē¦ē§ē©ē“ēµē·ē¹ēŗē»ē½"],
-["8fcca1","ēæē€ēē„ē‡ēŠē‘ēšē›ē¤ē¦ēØ",9,"ē¹ē‘€ē‘ƒē‘„ē‘†ē‘‡ē‘‹ē‘ē‘‘ē‘’ē‘—ē‘ē‘¢ē‘¦ē‘§ē‘Øē‘«ē‘­ē‘®ē‘±ē‘²ē’€ē’ē’…ē’†ē’‡ē’‰ē’ē’ē’‘ē’’ē’˜ē’™ē’šē’œē’Ÿē’ ē’”ē’£ē’¦ē’Øē’©ē’Ŗē’«ē’®ē’Æē’±ē’²ē’µē’¹ē’»ē’æē“ˆē“‰ē“Œē“ē““ē“˜ē“šē“›ē“žē“Ÿē“¤ē“Øē“Ŗē“«ē“Æē““ē“ŗē“»ē“¼ē“æē”†"],
-["8fcda1","ē”’ē”–ē”—ē” ē””ē”¤ē”§ē”©ē”Ŗē”Æē”¶ē”¹ē”½ē”¾ē”æē•€ē•ƒē•‡ē•ˆē•Žē•ē•’ē•—ē•žē•Ÿē•”ē•Æē•±ē•¹",5,"ē–ē–…ē–ē–’ē–“ē–•ē–™ē–œē–¢ē–¤ē–“ē–ŗē–æē—€ē—ē—„ē—†ē—Œē—Žē—ē——ē—œē—Ÿē— ē—”ē—¤ē—§ē—¬ē—®ē—Æē—±ē—¹ē˜€ē˜‚ē˜ƒē˜„ē˜‡ē˜ˆē˜Šē˜Œē˜ē˜’ē˜“ē˜•ē˜–ē˜™ē˜›ē˜œē˜ē˜žē˜£ē˜„ē˜¦ē˜©ē˜­ē˜²ē˜³ē˜µē˜øē˜¹"],
-["8fcea1","ē˜ŗē˜¼ē™Šē™€ē™ē™ƒē™„ē™…ē™‰ē™‹ē™•ē™™ē™Ÿē™¤ē™„ē™­ē™®ē™Æē™±ē™“ēšēš…ēšŒēšēš•ēš›ēšœēšēšŸēš ēš¢",6,"ēšŖēš­ēš½ē›ē›…ē›‰ē›‹ē›Œē›Žē›”ē›™ē› ē›¦ē›Øē›¬ē›°ē›±ē›¶ē›¹ē›¼ēœ€ēœ†ēœŠēœŽēœ’ēœ”ēœ•ēœ—ēœ™ēœšēœœēœ¢ēœØēœ­ēœ®ēœÆēœ“ēœµēœ¶ēœ¹ēœ½ēœ¾ē‚ē…ē†ēŠēēŽēē’ē–ē—ēœēžēŸē ē¢"],
-["8fcfa1","ē¤ē§ēŖē¬ē°ē²ē³ē“ēŗē½ēž€ēž„ēžŒēžēž”ēž•ēž–ēžšēžŸēž¢ēž§ēžŖēž®ēžÆēž±ēžµēž¾ēŸƒēŸ‰ēŸ‘ēŸ’ēŸ•ēŸ™ēŸžēŸŸēŸ ēŸ¤ēŸ¦ēŸŖēŸ¬ēŸ°ēŸ±ēŸ“ēŸøēŸ»ē …ē †ē ‰ē ē Žē ‘ē ē ”ē ¢ē £ē ­ē ®ē °ē µē ·ē”ƒē”„ē”‡ē”ˆē”Œē”Žē”’ē”œē”žē” ē””ē”£ē”¤ē”Øē”Ŗē”®ē”ŗē”¾ē¢Šē¢ē¢”ē¢˜ē¢”ē¢ē¢žē¢Ÿē¢¤ē¢Øē¢¬ē¢­ē¢°ē¢±ē¢²ē¢³"],
-["8fd0a1","ē¢»ē¢½ē¢æē£‡ē£ˆē£‰ē£Œē£Žē£’ē£“ē£•ē£–ē£¤ē£›ē£Ÿē£ ē£”ē£¦ē£Ŗē£²ē£³ē¤€ē£¶ē£·ē£ŗē£»ē£æē¤†ē¤Œē¤ē¤šē¤œē¤žē¤Ÿē¤ ē¤„ē¤§ē¤©ē¤­ē¤±ē¤“ē¤µē¤»ē¤½ē¤æē„„ē„…ē„†ē„Šē„‹ē„ē„‘ē„”ē„˜ē„›ē„œē„§ē„©ē„«ē„²ē„¹ē„»ē„¼ē„¾ē¦‹ē¦Œē¦‘ē¦“ē¦”ē¦•ē¦–ē¦˜ē¦›ē¦œē¦”ē¦Øē¦©ē¦«ē¦Æē¦±ē¦“ē¦øē¦»ē§‚ē§„ē§‡ē§ˆē§Šē§ē§”ē§–ē§šē§ē§ž"],
-["8fd1a1","ē§ ē§¢ē§„ē§Ŗē§«ē§­ē§±ē§øē§¼ē؂ē؃ē؇ē؉ē؊ē،ēؑēؕē؛ē؞ēØ”ēاēØ«ēØ­ēØÆēØ°ēØ“ēصēØøēعēØŗē©„ē©…ē©‡ē©ˆē©Œē©•ē©–ē©™ē©œē©ē©Ÿē© ē©„ē©§ē©Ŗē©­ē©µē©øē©¾ēŖ€ēŖ‚ēŖ…ēŖ†ēŖŠēŖ‹ēŖēŖ‘ēŖ”ēŖžēŖ ēŖ£ēŖ¬ēŖ³ēŖµēŖ¹ēŖ»ēŖ¼ē«†ē«‰ē«Œē«Žē«‘ē«›ē«Øē«©ē««ē«¬ē«±ē«“ē«»ē«½ē«¾ē¬‡ē¬”ē¬Ÿē¬£ē¬§ē¬©ē¬Ŗē¬«ē¬­ē¬®ē¬Æē¬°"],
-["8fd2a1","ē¬±ē¬“ē¬½ē¬æē­€ē­ē­‡ē­Žē­•ē­ ē­¤ē­¦ē­©ē­Ŗē­­ē­Æē­²ē­³ē­·ē®„ē®‰ē®Žē®ē®‘ē®–ē®›ē®žē® ē®„ē®¬ē®Æē®°ē®²ē®µē®¶ē®ŗē®»ē®¼ē®½ēƂēƅēƈēƊēƔēƖēƗēƙēƚēƛēÆØēÆŖēƲēÆ“ēƵēÆøēƹēÆŗēƼēƾē°ē°‚ē°ƒē°„ē°†ē°‰ē°‹ē°Œē°Žē°ē°™ē°›ē° ē°„ē°¦ē°Øē°¬ē°±ē°³ē°“ē°¶ē°¹ē°ŗē±†ē±Šē±•ē±‘ē±’ē±“ē±™",5],
-["8fd3a1","ē±”ē±£ē±§ē±©ē±­ē±®ē±°ē±²ē±¹ē±¼ē±½ē²†ē²‡ē²ē²”ē²žē² ē²¦ē²°ē²¶ē²·ē²ŗē²»ē²¼ē²æē³„ē³‡ē³ˆē³‰ē³ē³ē³“ē³”ē³•ē³—ē³™ē³šē³ē³¦ē³©ē³«ē³µē“ƒē“‡ē“ˆē“‰ē“ē“‘ē“’ē““ē“–ē“ē“žē“£ē“¦ē“Ŗē“­ē“±ē“¼ē“½ē“¾ēµ€ēµēµ‡ēµˆēµēµ‘ēµ“ēµ—ēµ™ēµšēµœēµēµ„ēµ§ēµŖēµ°ēµøēµŗēµ»ēµæē¶ē¶‚ē¶ƒē¶…ē¶†ē¶ˆē¶‹ē¶Œē¶ē¶‘ē¶–ē¶—ē¶"],
-["8fd4a1","ē¶žē¶¦ē¶§ē¶Ŗē¶³ē¶¶ē¶·ē¶¹ē·‚",4,"ē·Œē·ē·Žē·—ē·™ēø€ē·¢ē·„ē·¦ē·Ŗē·«ē·­ē·±ē·µē·¶ē·¹ē·ŗēøˆēøēø‘ēø•ēø—ēøœēøēø ēø§ēøØēø¬ēø­ēøÆēø³ēø¶ēøæē¹„ē¹…ē¹‡ē¹Žē¹ē¹’ē¹˜ē¹Ÿē¹”ē¹¢ē¹„ē¹«ē¹®ē¹Æē¹³ē¹øē¹¾ēŗēŗ†ēŗ‡ēŗŠēŗēŗ‘ēŗ•ēŗ˜ēŗšēŗēŗžē¼¼ē¼»ē¼½ē¼¾ē¼æē½ƒē½„ē½‡ē½ē½’ē½“ē½›ē½œē½ē½”ē½£ē½¤ē½„ē½¦ē½­"],
-["8fd5a1","ē½±ē½½ē½¾ē½æē¾€ē¾‹ē¾ē¾ē¾ē¾‘ē¾–ē¾—ē¾œē¾”ē¾¢ē¾¦ē¾Ŗē¾­ē¾“ē¾¼ē¾æēæ€ēæƒēæˆēæŽēæēæ›ēæŸēæ£ēæ„ēæØēæ¬ēæ®ēæÆēæ²ēæŗēæ½ēæ¾ēææč€‡č€ˆč€Šč€č€Žč€č€‘č€“č€”č€–č€č€žč€Ÿč€ č€¤č€¦č€¬č€®č€°č€“č€µč€·č€¹č€ŗč€¼č€¾č€č„č č¤č¦č­č±čµč‚č‚ˆč‚Žč‚œč‚žč‚¦č‚§č‚«č‚øč‚¹čƒˆčƒčƒčƒ’čƒ”čƒ•čƒ—čƒ˜čƒ čƒ­čƒ®"],
-["8fd6a1","čƒ°čƒ²čƒ³čƒ¶čƒ¹čƒŗčƒ¾č„ƒč„‹č„–č„—č„˜č„œč„žč„ č„¤č„§č„¬č„°č„µč„ŗč„¼č……č…‡č…Šč…Œč…’č…—č… č…”č…§č…Øč…©č…­č…Æč…·č†č†č†„č†…č††č†‹č†Žč†–č†˜č†›č†žč†¢č†®č†²č†“č†»č‡‹č‡ƒč‡…č‡Šč‡Žč‡č‡•č‡—č‡›č‡č‡žč‡”č‡¤č‡«č‡¬č‡°č‡±č‡²č‡µč‡¶č‡øč‡¹č‡½č‡æčˆ€čˆƒčˆčˆ“čˆ”čˆ™čˆščˆčˆ”čˆ¢čˆØčˆ²čˆ“čˆŗ艃艄艅艆"],
-["8fd7a1","č‰‹č‰Žč‰č‰‘č‰–č‰œč‰ č‰£č‰§č‰­č‰“č‰»č‰½č‰æčŠ€čŠčŠƒčŠ„čŠ‡čŠ‰čŠŠčŠŽčŠ‘čŠ”čŠ–čŠ˜čŠščŠ›čŠ čŠ”čŠ£čŠ¤čŠ§čŠØ芩čŠŖčŠ®čŠ°čŠ²čŠ“čŠ·čŠŗčŠ¼čŠ¾čŠæč‹†č‹č‹•č‹šč‹ č‹¢č‹¤č‹Øč‹Ŗ苭č‹Æč‹¶č‹·č‹½č‹¾čŒ€čŒčŒ‡čŒˆčŒŠčŒ‹č”čŒ›čŒčŒžčŒŸčŒ”čŒ¢čŒ¬čŒ­čŒ®čŒ°čŒ³čŒ·čŒŗčŒ¼čŒ½č‚čƒč„č‡ččŽč‘č•č–č—č°čø"],
-["8fd8a1","č½čæčŽ€čŽ‚čŽ„čŽ†čŽčŽ’čŽ”čŽ•čŽ˜čŽ™čŽ›čŽœčŽčŽ¦čŽ§čŽ©čŽ¬čŽ¾čŽæ菀菇菉菏菐菑菔菝荓čØčŖč¶čøč¹č¼čč†čŠčč‘č•č™čŽ­čÆč¹č‘…č‘‡č‘ˆč‘Šč‘č‘č‘‘č‘’č‘–č‘˜č‘™č‘šč‘œč‘ č‘¤č‘„č‘§č‘Ŗč‘°č‘³č‘“č‘¶č‘øč‘¼č‘½č’č’…č’’č’“č’•č’žč’¦č’Øč’©č’Ŗč’Æ蒱蒓č’ŗč’½č’¾č“€č“‚č“‡č“ˆč“Œč“č““"],
-["8fd9a1","蓜蓧č“Ŗč“Æč“°č“±č“²č“·č”²č“ŗč“»č“½č”‚č”ƒč”‡č”Œč”Žč”č”œč”žč”¢č”£č”¤č”„č”§č”Ŗ蔫č”Æč”³č”“č”¶č”æ蕆蕏",4,"蕖蕙蕜",6,"蕤蕫č•Æč•¹č•ŗč•»č•½č•æč–č–…č–†č–‰č–‹č–Œč–č–“č–˜č–č–Ÿč– č–¢č–„č–§č–“č–¶č–·č–øč–¼č–½č–¾č–æč—‚č—‡č—Šč—‹č—Žč–­č—˜č—šč—Ÿč— č—¦č—Øč—­č—³č—¶č—¼"],
-["8fdaa1","č—æč˜€č˜„č˜…č˜č˜Žč˜č˜‘č˜’č˜˜č˜™č˜›č˜žč˜”č˜§č˜©č˜¶č˜øč˜ŗč˜¼č˜½č™€č™‚č™†č™’č™“č™–č™—č™˜č™™č™č™ ",4,"虩虬č™Æ虵虶虷č™ŗčščš‘čš–čš˜čšščšœčš”čš¦čš§čšØčš­čš±čš³čš“čšµčš·čšøčš¹čšæč›€č›č›ƒč›…č›‘č›’č›•č›—č›šč›œč› č›£č›„č›§čšˆč›ŗč›¼č›½čœ„čœ…čœ‡čœ‹čœŽčœčœčœ“čœ”čœ™čœžčœŸčœ”čœ£"],
-["8fdba1","čœØčœ®čœÆčœ±čœ²čœ¹čœŗčœ¼čœ½čœ¾č€čƒč…čč˜čč”č¤č„čÆč±č²č»čžƒ",6,"čž‹čžŒčžčž“čž•čž—čž˜čž™čžžčž čž£čž§čž¬čž­čž®čž±čžµčž¾čžæčŸčŸˆčŸ‰čŸŠčŸŽčŸ•čŸ–čŸ™čŸščŸœčŸŸčŸ¢čŸ£čŸ¤čŸŖčŸ«čŸ­čŸ±čŸ³čŸøčŸŗčŸæ蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟č Øč ­č ®č °č ²č µ"],
-["8fdca1","č ŗč ¼č”č”ƒč”…č”ˆč”‰č”Šč”‹č”Žč”‘č”•č”–č”˜č”šč”œč”Ÿč” č”¤č”©č”±č”¹č”»č¢€č¢˜č¢šč¢›č¢œč¢Ÿč¢ č¢Øč¢Ŗč¢ŗč¢½č¢¾č£€č£Š",4,"č£‘č£’č£“č£›č£žč£§č£Æč£°č£±č£µč£·č¤č¤†č¤č¤Žč¤č¤•č¤–č¤˜č¤™č¤šč¤œč¤ č¤¦č¤§č¤Øč¤°č¤±č¤²č¤µč¤¹č¤ŗč¤¾č„€č„‚č„…č„†č„‰č„č„’č„—č„šč„›č„œč„”č„¢č„£č„«č„®č„°č„³č„µč„ŗ"],
-["8fdda1","č„»č„¼č„½č¦‰č¦č¦č¦”č¦•č¦›č¦œč¦Ÿč¦ č¦„č¦°č¦“č¦µč¦¶č¦·č¦¼č§”",4,"č§„č§©č§«č§­č§±č§³č§¶č§¹č§½č§æč؄č؅č؇č؏čؑčؒčؔčؕč؞čØ čØ¢čؤčئčØ«čجčØÆčصčØ·čؽčØ¾č©€č©ƒč©…č©‡č©‰č©č©Žč©“č©–č©—č©˜č©œč©č©”č©„č©§č©µč©¶č©·č©¹č©ŗč©»č©¾č©æčŖ€čŖƒčŖ†čŖ‹čŖčŖčŖ’čŖ–čŖ—čŖ™čŖŸčŖ§čŖ©čŖ®čŖÆčŖ³"],
-["8fdea1","čŖ¶čŖ·čŖ»čŖ¾č«ƒč«†č«ˆč«‰č«Šč«‘č«“č«”č«•č«—č«č«Ÿč«¬č«°č«“č«µč«¶č«¼č«æč¬…č¬†č¬‹č¬‘č¬œč¬žč¬Ÿč¬Šč¬­č¬°č¬·č¬¼č­‚",4,"č­ˆč­’č­“č­”č­™č­č­žč­£č­­č­¶č­øč­¹č­¼č­¾č®č®„č®…č®‹č®č®č®”č®•č®œč®žč®Ÿč°øč°¹č°½č°¾č±…č±‡č±‰č±‹č±č±‘č±“č±”č±—č±˜č±›č±č±™č±£č±¤č±¦č±Øč±©č±­č±³č±µč±¶č±»č±¾č²†"],
-["8fdfa1","č²‡č²‹č²č²’č²“č²™č²›č²œč²¤č²¹č²ŗč³…č³†č³‰č³‹č³č³–č³•č³™č³č³”č³Øč³¬č³Æč³°č³²č³µč³·č³øč³¾č³æč“č“ƒč“‰č“’č“—č“›čµ„čµ©čµ¬čµ®čµæč¶‚č¶„č¶ˆč¶č¶č¶‘č¶•č¶žč¶Ÿč¶ č¶¦č¶«č¶¬č¶Æč¶²č¶µč¶·č¶¹č¶»č·€č·…č·†č·‡č·ˆč·Šč·Žč·‘č·”č·•č·—č·™č·¤č·„č·§č·¬č·°č¶¼č·±č·²č·“č·½čøčø„čø…čø†čø‹čø‘čø”čø–čø čø”čø¢"],
-["8fe0a1","čø£čø¦čø§čø±čø³čø¶čø·čøøčø¹čø½č¹€č¹č¹‹č¹č¹Žč¹č¹”č¹›č¹œč¹č¹žč¹”č¹¢č¹©č¹¬č¹­č¹Æč¹°č¹±č¹¹č¹ŗč¹»čŗ‚čŗƒčŗ‰čŗčŗ’čŗ•čŗščŗ›čŗčŗžčŗ¢čŗ§čŗ©čŗ­čŗ®čŗ³čŗµčŗŗčŗ»č»€č»č»ƒč»„č»‡č»č»‘č»”č»œč»Øč»®č»°č»±č»·č»¹č»ŗč»­č¼€č¼‚č¼‡č¼ˆč¼č¼č¼–č¼—č¼˜č¼žč¼ č¼”č¼£č¼„č¼§č¼Øč¼¬č¼­č¼®č¼“č¼µč¼¶č¼·č¼ŗč½€č½"],
-["8fe1a1","č½ƒč½‡č½č½‘",4,"č½˜č½č½žč½„č¾č¾ č¾”č¾¤č¾„č¾¦č¾µč¾¶č¾øč¾¾čæ€čæčæ†čæŠčæ‹čæčæčæ’čæ“čæ•čæ čæ£čæ¤čæØčæ®čæ±čæµčæ¶čæ»čæ¾é€‚逄逈逌逘逛é€Ø逩é€Æé€Ŗ逬逭逳逓逷é€æ遃遄遌遛遝遢遦遧遬遰道遹邅邈邋邌邎邐邕邗邘邙邛邠邔邢還邰邲邳邓邶邽郌邾郃"],
-["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郄郒郶郫éƒÆ郰郓郾éƒæ鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄄鄢鄣鄧鄩鄮é„Æ鄱鄓鄶鄷鄹é„ŗ鄼鄽酃酇酈酏酓酗酙酚酛酔酤酧酭酓酹é…ŗ酻醁醃醅醆醊醎醑醓醔醕醘醞醔醦é†Ø醬醭醮醰醱醲醳醶醻醼醽é†æ"],
-["8fe3a1","釂釃釅釓釔釗釙釚釞釤釄釩é‡Ŗ釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈄鈦éˆØ鈮éˆÆ鈰鈳鈵鈶éˆø鈹éˆŗ鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉔鉄鉧é‰Ø鉩鉮é‰Æ鉰鉵",4,"鉻鉼鉽é‰æ銈銉銊銍銎銒銗"],
-["8fe4a1","銙銟銠銤銄銧éŠØ銫éŠÆ銲銶éŠøéŠŗ銻銼銽éŠæ",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋔鋣鋄鋧é‹Ø鋬鋮鋰鋹鋻é‹æ錀錂錈錍錑錔錕錜錝錞錟錔錤錄錧錩éŒŖ錳錓錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍄鍧鍩éŖ鍭éÆ鍰鍱鍳鍓鍶"],
-["8fe5a1","éŗ鍽éæ鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎔鎣鎤鎦éŽØ鎫鎓鎵鎶éŽŗ鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷éøéŗ鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮éÆ鐱鐲鐳鐓鐻éæ鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑔鑣é‘Ø鑫鑭鑮é‘Æ鑱鑲钄钃é•ø镹"],
-["8fe6a1","镾閄閈閌閍閎閝閞閟閔閦閩閫閬間閶é–ŗ閽é–æ闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阄阦阬阱阳阷é˜ø阹é˜ŗ阼阽陁陒陔陖陗陘陔陮陓陻陼陾é™æ隁隂隃隄隉隑隖隚隝隟隤隄隦隩隮éšÆ隳éšŗ雊雒嶲雘雚雝雞雟雩é›Æ雱é›ŗ霂"],
-["8fe7a1","霃霅霉霚霛霝霔霢霣éœØ霱霳靁靃靊靎靏靕靗靘靚靛靣靧éŖ靮靳靶靷éø靻靽éæ鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶éžø鞹éžŗ鞼鞾éžæ韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韔韤éŸÆ韱韓韷éŸøéŸŗ頇頊頙頍頎頔頖頜頞頠頣頦"],
-["8fe8a1","é «é ®é Æ頰頲頳頵頄頾锄锇锊锑锒锓锖锗错锚锢锣锄锦é”Ŗ锬颫颭颮颰颓颷é¢øé¢ŗ颻é¢æ飂飅飈飌飔飣飄飦飧é£Ŗ飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹é¤ŗ餻餼鄀鄁鄆鄇鄈鄍鄎鄔鄘鄙鄛鄜鄞鄟鄠馛馝馟馦馰馱馲馵"],
-["8fe9a1","馹é¦ŗ馽é¦æ駃駉駓駔駙駚駜駞駧é§Ŗ駫駬駰駓駵駹駽駾é؂é؃é؄é؋é،éؐéؑéؖé؞éØ éØ¢éØ£éؤéاéØ­éØ®éسéصéضéØø驇驁驄驊驋驌驎驑驔驖驝éŖŖéŖ¬éŖ®éŖÆéŖ²éŖ“éŖµéŖ¶éŖ¹éŖ»éŖ¾éŖæ髁髃髆髈髎髐髒髕髖髗髛髜髠髤髄髧髩髬髲髳髵髹é«ŗ髽é«æ",4],
-["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬓鬵鬷鬹é¬ŗ鬽魈魋魌魕魖魗魛魞魔魣魄魦é­Øé­Ŗ",4,"魳魵魷é­øé­¹é­æ鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷é®ø鮻鮼鮾é®æéƁéƇéƈéƎéƐéƗéƘéƝéƟéÆ„éƧéÆŖéÆ«éÆÆéƳéÆ·éÆø"],
-["8feba1","éƹéÆŗéƽéÆæ鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩é±Ŗ鱜鱫é±Ø鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹铋铂铑铗铘铜铝铞é“Æ铰铲铳铓é“ŗ铼鵅铽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵄鵩éµŖ鵫鵰鵶鵷鵻"],
-["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶔é¶Ŗ鶬鶮鶱鶵鶹鶼é¶æ鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷄鷧鷩鷫鷮鷰鷳鷓鷾éøŠéø‚éø‡éøŽéøéø‘éø’éø•éø–éø™éøœéøé¹ŗ鹻鹼éŗ€éŗ‚éŗƒéŗ„éŗ…éŗ‡éŗŽéŗéŗ–éŗ˜éŗ›éŗžéŗ¤éŗØéŗ¬éŗ®éŗÆéŗ°éŗ³éŗ“éŗµé»†é»ˆé»‹é»•é»Ÿé»¤é»§é»¬é»­é»®é»°é»±é»²é»µ"],
-["8feda1","é»øé»æ鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦é¼Ŗ鼫é¼Æ鼱鼲鼓鼷鼹é¼ŗ鼼鼽é¼æ齁齃",4,"齓齕齖齗齘齚齝齞é½Ø齩齭",4,"齳齵é½ŗ齽龏龐龑龒龔龖龗龞龔龢龣龄"]
-]
diff --git a/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 b/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
deleted file mode 100644
index 85c6934757..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 8abfa9f7b9..0000000000
--- a/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
+++ /dev/null
@@ -1,55 +0,0 @@
-[
-["a140","ī“†",62],
-["a180","ī”…",32],
-["a240","ī”¦",62],
-["a280","ī•„",32],
-["a2ab","ī¦",5],
-["a2e3","ā‚¬ī­"],
-["a2ef","ī®īÆ"],
-["a2fd","ī°ī±"],
-["a340","ī–†",62],
-["a380","ī—…",31,"怀"],
-["a440","ī—¦",62],
-["a480","ī˜„",32],
-["a4f4","ī²",10],
-["a540","ī™†",62],
-["a580","īš…",32],
-["a5f7","ī½",7],
-["a640","īš¦",62],
-["a680","ī›„",32],
-["a6b9","īž…",7],
-["a6d9","īž",6],
-["a6ec","īž”īž•"],
-["a6f3","īž–"],
-["a6f6","īž—",8],
-["a740","īœ†",62],
-["a780","ī…",32],
-["a7c2","īž ",14],
-["a7f2","īžÆ",12],
-["a896","īž¼",10],
-["a8bc","īŸ‡"],
-["a8bf","Ē¹"],
-["a8c1","īŸ‰īŸŠīŸ‹īŸŒ"],
-["a8ea","īŸ",20],
-["a958","īŸ¢"],
-["a95b","īŸ£"],
-["a95d","īŸ¤īŸ„īŸ¦"],
-["a989","ć€¾āæ°",11],
-["a997","īŸ“",12],
-["a9f0","ī ",14],
-["aaa1","ī€€",93],
-["aba1","īž",93],
-["aca1","ī‚¼",93],
-["ada1","ī„š",93],
-["aea1","ī…ø",93],
-["afa1","ī‡–",93],
-["d7fa","ī ",4],
-["f8a1","īˆ“",93],
-["f9a1","īŠ’",93],
-["faa1","ī‹°",93],
-["fba1","īŽ",93],
-["fca1","īŽ¬",93],
-["fda1","īŠ",93],
-["fe50","āŗī –ī —ī ˜āŗ„ć‘³ć‘‡āŗˆāŗ‹ī žć–žć˜šć˜ŽāŗŒāŗ—ć„®ć¤˜ī ¦ć§ć§Ÿć©³ć§ī «ī ¬ć­Žć±®ć³ āŗ§ī ±ī ²āŗŖ䁖䅟āŗ®äŒ·āŗ³āŗ¶āŗ·ī »äŽ±äŽ¬āŗ»ää“–ä™”䙌ī”ƒ"],
-["fe80","䜣䜩䝼䞍ā»Šä„‡ä„ŗ䄽䦂䦃䦅䦆䦟䦛䦷䦶ī””ī”•ä²£ä²Ÿä² ä²”䱷䲢䓓",6,"䶮ī”¤ī‘Ø",93]
-]
diff --git a/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 b/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
deleted file mode 100644
index 5a3a43cf8c..0000000000
--- a/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
+++ /dev/null
@@ -1,125 +0,0 @@
-[
-["0","\u0000",128],
-["a1","ļ½”",62],
-["8140","怀态怂ļ¼Œļ¼Žćƒ»ļ¼šļ¼›ļ¼Ÿļ¼ć‚›ć‚œĀ“ļ½€ĀØļ¼¾ļæ£ļ¼æćƒ½ćƒ¾ć‚ć‚žć€ƒä»ć€…ć€†ć€‡ćƒ¼ā€•ā€ļ¼ļ¼¼ļ½žāˆ„ļ½œā€¦ā€„ā€˜ā€™ā€œā€ļ¼ˆļ¼‰ć€”怕ļ¼»ļ¼½ļ½›ļ½ć€ˆ",9,"ļ¼‹ļ¼Ā±Ć—"],
-["8180","Ć·ļ¼ā‰ ļ¼œļ¼žā‰¦ā‰§āˆžāˆ“ā™‚ā™€Ā°ā€²ā€³ā„ƒļæ„ļ¼„ļæ ļæ”ļ¼…ļ¼ƒļ¼†ļ¼Šļ¼ Ā§ā˜†ā˜…ā—‹ā—ā—Žā—‡ā—†ā–”ā– ā–³ā–²ā–½ā–¼ā€»ć€’ā†’ā†ā†‘ā†“怓"],
-["81b8","āˆˆāˆ‹āŠ†āŠ‡āŠ‚āŠƒāˆŖāˆ©"],
-["81c8","āˆ§āˆØļæ¢ā‡’ā‡”āˆ€āˆƒ"],
-["81da","āˆ āŠ„āŒ’āˆ‚āˆ‡ā‰”ā‰’ā‰Ŗā‰«āˆšāˆ½āˆāˆµāˆ«āˆ¬"],
-["81f0","ā„«ā€°ā™Æā™­ā™Ŗā€ ā€”Ā¶"],
-["81fc","ā—Æ"],
-["824f","ļ¼",9],
-["8260","ļ¼”",25],
-["8281","ļ½",25],
-["829f","恁",82],
-["8340","ć‚”",62],
-["8380","惠",22],
-["839f","Ī‘",16,"Ī£",6],
-["83bf","Ī±",16,"Ļƒ",6],
-["8440","Š",5,"ŠŠ–",25],
-["8470","Š°",5,"ёŠ¶",7],
-["8480","Š¾",17],
-["849f","ā”€ā”‚ā”Œā”ā”˜ā””ā”œā”¬ā”¤ā”“ā”¼ā”ā”ƒā”ā”“ā”›ā”—ā”£ā”³ā”«ā”»ā•‹ā” ā”Æā”Øā”·ā”æā”ā”°ā”„ā”øā•‚"],
-["8740","ā‘ ",19,"ā… ",9],
-["875f","ć‰ćŒ”ćŒ¢ććŒ˜ćŒ§ćŒƒćŒ¶ć‘ć—ćŒćŒ¦ćŒ£ćŒ«ćŠćŒ»ćŽœćŽćŽžćŽŽćŽć„ćŽ”"],
-["877e","ć»"],
-["8780","思怟ā„–揍ā„”护",4,"ćˆ±ćˆ²ćˆ¹ć¾ć½ć¼ā‰’ā‰”āˆ«āˆ®āˆ‘āˆšāŠ„āˆ āˆŸāŠæāˆµāˆ©āˆŖ"],
-["889f","äŗœå”–å؃é˜æå“€ę„›ęŒØå§¶é€¢č‘µčŒœē©ę‚Ŗę”ęø„ꗭ葦芦éÆµę¢“åœ§ę–”ę‰±å®›å§č™»é£“ēµ¢ē¶¾é®Žęˆ–ē²Ÿč¢·å®‰åŗµęŒ‰ęš—ę”ˆé—‡éžęä»„伊位依偉囲夷委åØå°‰ęƒŸę„ę…°ę˜“ę¤…ē‚ŗē•ē•°ē§»ē¶­ē·ÆčƒƒčŽč”£č¬‚é•éŗ医äŗ•äŗ„åŸŸč‚²éƒē£Æäø€å£±ęŗ¢é€øēزčŒØ芋é°Æå…å°å’½å“”å› å§»å¼•é£²ę·«čƒ¤č”­"],
-["8940","院陰隠韻吋右宇ēƒē¾½čæ‚é›ØåÆ鵜ēŖŗäø‘ē¢“č‡¼ęø¦å˜˜å”„ę¬č”šé°»å§„åŽ©ęµ¦ē“œé–å™‚äŗ‘é‹é›²čé¤Œå”å–¶å¬°å½±ę˜ ę›³ę „ę°øę³³ę“©ē‘›ē›ˆē©Žé “č‹±č”›č© é‹­ę¶²ē–«ē›Šé§…ę‚¦č¬č¶Šé–²ę¦ŽåŽ­å††"],
-["8980","園堰億宓延ę€ØęŽ©ę“ę²æę¼”ē‚Žē„”ē…™ē‡•ēŒæēøč‰¶č‹‘č–—é é‰›é“›å”©ę–¼ę±šē”„凹央億往åæœęŠ¼ę—ŗęØŖ꬧ꮓēŽ‹ēæč„–é“¬é“Žé»„å²”ę²–č»å„„å±‹ę†¶č‡†ę”¶ē‰”乙äæŗåøꁩęø©ē©éŸ³äø‹åŒ–仮何伽侔佳加åÆ嘉夏嫁家åÆ”ē§‘ęš‡ęžœęž¶ę­Œę²³ē«ē‚ē¦ē¦¾ēؼē®‡čŠ±č‹›čŒ„č·čÆč“č¦čŖ²å˜©č²Øčæ¦éŽéœžčšŠäæ„å³Øꈑē‰™ē”»č‡„čŠ½č›¾č³€é›…é¤“é§•ä»‹ä¼šč§£å›žå”Šå£Šå»»åæ«ę€Ŗę‚”ę¢ę‡ęˆ’ę‹ę”¹"],
-["8a40","é­ę™¦ę¢°ęµ·ē°ē•Œēš†ēµµčŠ„čŸ¹é–‹éšŽč²å‡±åŠ¾å¤–å’³å®³å“–ę…Øꦂę¶Æē¢č“‹č”—č©²éŽ§éŖø구é¦Øč›™åž£ęŸæč›ŽéˆŽåŠƒåš‡å„å»“ę‹”ę’¹ę ¼ę øę®»ē²ē¢ŗē©«č¦šč§’čµ«č¼ƒéƒ­é–£éš”é©å­¦å²³ę„½é”é”ŽęŽ›ē¬ ęØ«"],
-["8a80","ę©æę¢¶é°ę½Ÿå‰²å–ę°ę‹¬ę“»ęø‡ę»‘č‘›č¤č½„äø”é°¹å¶ę¤›ęØŗ鞄ę Ŗ兜ē«ƒč’²é‡œéŽŒå™›é“Øę ¢čŒ…č±ē²„åˆˆč‹…ē“¦ä¹¾ä¾ƒå† åƒ刊勘勧巻喚å Ŗ姦完官åÆ›å¹²å¹¹ę‚£ę„Ÿę…£ę†¾ę›ę•¢ęŸ‘ę”“ę£ŗę¬¾ę­“ę±—ę¼¢ę¾—ę½…ē’°ē”˜ē›£ēœ‹ē«æē®”ē°”ē·©ē¼¶ēæ°č‚č‰¦čŽžč¦³č«Œč²«é‚„鑑間閑関附韓é¤Ø舘äøø含å²ø巌ēŽ©ē™Œēœ¼å²©ēæ«č“‹é›é ‘锔锘企伎危喜å™ØåŸŗ儇嬉åƄ岐åøŒå¹¾åæŒę®ęœŗę——ę—¢ęœŸę£‹ę£„"],
-["8b40","ę©Ÿåø°ęÆ…ę°—ę±½ē•æē„ˆå­£ē؀ē“€å¾½č¦čØ˜č²“čµ·č»Œč¼é£¢é؎鬼äŗ€å½å„€å¦“宜ęˆÆꊀꓬę¬ŗēŠ ē–‘ē„‡ē¾©čŸ»čŖ¼č­°ęŽ¬čŠéž å‰åƒå–«ę””ę©˜č©°ē §ęµé»å“å®¢č„šč™é€†äø˜ä¹…仇休及åøå®®å¼“ę€„ę•‘"],
-["8b80","ęœ½ę±‚ę±²ę³£ēøēƒē©¶ēŖ®ē¬ˆē“šē³¾ēµ¦ę—§ē‰›åŽ»å±…å·Øꋒꋠꌙęø č™ščØ±č·é‹øę¼ē¦¦é­šäŗØäŗ«äŗ¬ä¾›ä¾ åƒ‘å…‡ē«¶å…±å‡¶å”匔åæ叫喬境峔強彊ę€Æęę­ęŒŸę•™ę©‹ę³ē‹‚ē‹­ēŸÆčƒøč„…čˆˆč•Žéƒ·é”éŸæé„—é©šä»°å‡å°­ęšę„­å±€ę›²ę„µēŽ‰ę”ē²åƒ…å‹¤å‡å·¾éŒ¦ę–¤ę¬£ę¬½ē“ē¦ē¦½ē­‹ē·ŠčŠ¹čŒč”æč„Ÿč¬¹čæ‘金吟銀九倶叄åŒŗē‹—ēŽ–ēŸ©č‹¦čŗÆé§†é§ˆé§’å…·ę„šč™žå–°ē©ŗ偶åƓ遇隅äø²ę«›é‡§å±‘屈"],
-["8c40","ꎘēŖŸę²“é“č½”ēŖŖē†Šéšˆē²‚ę —ē¹°ę”‘é¬å‹²å›č–«čؓē¾¤č»éƒ”å¦č¢ˆē„äæ‚傾刑兄啓圭ēŖåž‹å„‘å½¢å¾„ęµę…¶ę…§ę†©ęŽ²ęŗꕬę™Æꔂęø“ē•¦ēؽē³»ēµŒē¶™ē¹‹ē½«čŒŽčŠč›čØˆč©£č­¦č»½é šé¶čŠøčæŽéÆØ"],
-["8c80","åŠ‡ęˆŸę’ƒęæ€éš™ę”å‚‘ꬠę±ŗę½”ē©“ēµč”€čØ£ęœˆä»¶å€¹å€¦å„å…¼åˆø剣喧圏堅嫌å»ŗę†²ę‡øę‹³ę²ę¤œęØ©ē‰½ēŠ¬ēŒ®ē ”ē”Æēµ¹ēœŒč‚©č¦‹č¬™č³¢č»’遣鍵é™ŗ锕éؓé¹ø元原厳幻弦ęø›ęŗēŽ„ē¾ēµƒčˆ·č؀č«ŗ限乎個古呼å›ŗ姑孤己åŗ«å¼§ęˆøꕅęžÆę¹–ē‹ē³Šč¢“č‚”čƒ”č°č™ŽčŖ‡č·Ø鈷雇锧鼓äŗ”äŗ’伍午呉吾åØÆå¾Œå¾”ę‚Ÿę¢§ęŖŽē‘šē¢čŖžčŖ¤č­·é†ä¹žéƉäŗ¤ä½¼ä¾Æ候倖光公功効勾厚口向"],
-["8d40","后喉坑垢儽孔孝宏巄巧巷å¹øåŗƒåŗšåŗ·å¼˜ę’ę…ŒęŠ—ę‹˜ęŽ§ę”»ę˜‚ę™ƒę›“ę­ę ”ę¢—ę§‹ę±Ÿę“Ŗ굩ęøÆęŗē”²ēš‡ē”¬ēØæē³ ē“…ē“˜ēµžē¶±č€•č€ƒč‚Æč‚±č…”č†čˆŖč’č”Œč””č¬›č²¢č³¼éƒŠé…µé‰±ē æ鋼閤降"],
-["8d80","é …é¦™é«˜é“»å‰›åŠ«å·åˆå£•ę‹·ęæ č±Ŗč½Ÿéŗ¹å…‹åˆ»å‘Šå›½ē©€é…·éµ é»’ē„ę¼‰č…°ē”‘åæ½ęƒšéŖØē‹›č¾¼ę­¤é ƒä»Šå›°å¤å¢¾å©šęØę‡‡ę˜ę˜†ę ¹ę¢±ę··ē—•ē“ŗ艮魂äŗ›ä½å‰å”†åµÆå·¦å·®ęŸ»ę²™ē‘³ē ‚č©éŽ–č£Ÿååŗ§ęŒ«å‚µå‚¬å†ęœ€å“‰å”žå¦»å®°å½©ę‰ęŽ”ę ½ę­³ęøˆē½é‡‡ēŠ€ē •ē ¦ē„­ę–Žē“°čœč£č¼‰éš›å‰¤åœØꝐē½Ŗč²”å†“å‚é˜Ŗå ŗę¦Šč‚“å’²å“ŽåŸ¼ē¢•é·ŗä½œå‰Šå’‹ę¾ę˜Øęœ”ęŸµēŖ„ē­–ē“¢éŒÆę”œé®­ē¬¹åŒ™å†Šåˆ·"],
-["8e40","åÆŸę‹¶ę’®ę“¦ęœ­ę®ŗ薩雑ēšéÆ–ęŒéŒ†é®«ēšæꙒäø‰å‚˜å‚å±±ęƒØę’’ę•£ę”Ÿē‡¦ēŠē”£ē®—ēŗ‚čš•č®ƒč³›é…ø餐ꖬꚫꮋ仕仔ä¼ŗä½æåˆŗåø史嗣四士始姉å§æ子屍åø‚åø«åæ—ę€ęŒ‡ę”Æ孜ę–Æę–½ę—Øęžę­¢"],
-["8e80","ę­»ę°ē…ē„‰ē§ē³øē“™ē“«č‚¢č„‚č‡³č¦–č©žč©©č©¦čŖŒč«®č³‡č³œé›Œé£¼ę­Æäŗ‹ä¼¼ä¾å…å­—åÆŗę…ˆęŒę™‚ę¬”ę»‹ę²»ēˆ¾ē’½ē—”ē£ē¤ŗč€Œč€³č‡Ŗč’”č¾žę±é¹æå¼č­˜é“«ē«ŗč»ø宍雫äøƒå±åŸ·å¤±å«‰å®¤ę‚‰ę¹æę¼†ē–¾č³Ŗå®Ÿč”€ēÆ å²ęŸ“čŠå±”č•ŠēøžčˆŽå†™å°„ęØčµ¦ę–œē…®ē¤¾ē“—č€…č¬č»Šé®č›‡é‚Ŗ借å‹ŗå°ŗꝓē¼ēˆµé…Œé‡ˆéŒ«č‹„åÆ‚å¼±ęƒ¹äø»å–å®ˆę‰‹ęœ±ę®Šē‹©ē ēØ®č…«č¶£é…’é¦–å„’å—å‘ŖåÆæꎈęعē¶¬éœ€å›šåŽå‘Ø"],
-["8f40","宗就州äæ®ę„ę‹¾ę“²ē§€ē§‹ēµ‚ē¹ēæ’č‡­čˆŸč’č”†č„²č®č¹“č¼Æé€±é…‹é…¬é›†é†œä»€ä½å……åå¾“ęˆŽęŸ”ę±ęø‹ē£ēø¦é‡éŠƒå”夙å®æę·‘ē„ēø®ē²›å”¾ē†Ÿå‡ŗ蔓čæ°äæŠå³»ę˜„ēž¬ē«£čˆœé§æ准å¾Ŗę—¬ę„Æę®‰ę·³"],
-["8f80","ęŗ–ę½¤ē›¾ē“”å·”éµé†‡é †å‡¦åˆę‰€ęš‘ę›™ęøšåŗ¶ē·’ē½²ę›øč–Æč—·č«ø助叙儳åŗå¾ę•é‹¤é™¤å‚·å„Ÿå‹åŒ å‡å¬å“Ø商唱嘗å„Ø妾åؼ宵将小少尚åŗ„åŗŠå» å½°ę‰æęŠ„ę‹›ęŽŒę·ę˜‡ę˜Œę˜­ę™¶ę¾ę¢¢ę؟ęØµę²¼ę¶ˆęø‰ę¹˜ē„¼ē„¦ē…§ē—‡ēœē”ē¤ē„„ē§°ē« ē¬‘ē²§ē“¹č‚–č–č’‹č•‰č”č£³č؟čØ¼č©”č©³č±”č³žé†¤é‰¦é¾é˜éšœéž˜äøŠäøˆäøžä¹—冗剰城堓壌嬢åøøęƒ…ę“¾ę”ę–ęµ„ēŠ¶ē•³ē©£č’øč­²é†ø錠嘱埓飾"],
-["9040","ę‹­ę¤ę®–ē‡­ē¹”č·č‰²č§¦é£Ÿč•č¾±å°»ä¼øäæ”侵唇åØ åƝåÆ©åæƒę…ŽęŒÆę–°ę™‹ę£®ę¦›ęµøę·±ē”³ē–¹ēœŸē„žē§¦ē“³č‡£čŠÆč–Ŗč¦ŖčØŗčŗ«č¾›é€²é‡éœ‡äŗŗ仁刃唵壬尋ē”šå°½č…Žč؊čæ…陣靭ē¬„č«é ˆé…¢å›³åŽØ"],
-["9080","逗吹垂åø„ęŽØę°“ē‚Šē”ē²‹ēæ č”°é‚酔錐錘随ē‘žé«„å“‡åµ©ę•°ęž¢č¶Øé››ę®ę‰ę¤™č…é —é›€č£¾ę¾„ę‘ŗåÆøäø–ē€¬ē•ę˜Æå‡„åˆ¶å‹¢å§“å¾ę€§ęˆę”æę•“ę˜Ÿę™“ę£²ę –ę­£ęø…ē‰²ē”Ÿē››ē²¾č–å£°č£½č„æčŖ čŖ“č«‹é€é†’é’é™ę–‰ēØŽč„†éš»åø­ęƒœęˆšę–„ꘔꞐēŸ³ē©ē±ēø¾č„Šč²¬čµ¤č·”č¹Ÿē¢©åˆ‡ę‹™ęŽ„ꑂꊘčØ­ēŖƒēƀčŖ¬é›Ŗēµ¶čˆŒč‰ä»™å…ˆåƒå å®£å°‚å°–å·ęˆ¦ę‰‡ę’°ę “ę “ę³‰ęµ…ę“—ęŸ“ę½œē…Žē…½ę—‹ē©æē®­ē·š"],
-["9140","ē¹Šē¾Øč…ŗčˆ›čˆ¹č–¦č©®č³Žč·µéø遷銭銑閃鮮前善ę¼øē„¶å…Øē¦…ē¹•č†³ē³Žå™Œå”‘å²ØęŽŖę›¾ę›½ę„šē‹™ē–ē–Žē¤Žē„–ē§Ÿē²—ē“ ēµ„č˜‡čؓ阻達鼠僧創双叢倉å–Ŗ壮儏ēˆ½å®‹å±¤åŒęƒ£ęƒ³ęœęŽƒęŒæꎻ"],
-["9180","ę“ę—©ę›¹å·£ę§ę§½ę¼•ē‡„äŗ‰ē—©ē›øēŖ“ē³Ÿē·ē¶œč”č‰č˜č‘¬č’¼č—»č£…čµ°é€é­éŽ—éœœéØ’åƒå¢—ę†Žč‡“č”µč“ˆé€ äæƒå“則即ęÆꍉꝟęø¬č¶³é€Ÿäæ—å±žč³Šę—ē¶šå’č¢–å…¶ęƒå­˜å­«å°Šęę‘éœä»–å¤šå¤Ŗę±°č©‘å”¾å •å¦„ęƒ°ę‰“ęŸčˆµę„•é™€é§„éØØ体堆åÆ¾č€å²±åøÆå¾…ę€ ę…‹ęˆ“ę›æę³°ę»žčƒŽč…æč‹”č¢‹č²ø退逮隊黛éƛ代台大ē¬¬é†é”Œé·¹ę»ē€§å“å•„å®…ę‰˜ęŠžę‹“ę²¢ęæÆē¢čؗéøęæč«¾čŒø凧č›øåŖ"],
-["9240","å©ä½†é”č¾°å„Ŗč„±å·½ē«Ŗč¾æę£šč°·ē‹ø鱈ęؽčŖ°äø¹å˜å˜†å¦ę‹…ęŽ¢ę—¦ę­Žę·”ę¹›ē‚­ēŸ­ē«Æē®Ŗē¶»č€½čƒ†č›‹čŖ•é›å›£å£‡å¼¾ę–­ęš–ęŖ€ę®µē”·č«‡å€¤ēŸ„åœ°å¼›ę„ę™ŗę± ē—“ēؚē½®č‡“čœ˜é…é¦³ēƉē•œē«¹ē­‘č“„"],
-["9280","逐ē§©ēŖ’čŒ¶å«”ē€äø­ä»²å®™åæ ęŠ½ę˜¼ęŸ±ę³Ø虫蔷čػ酎鋳駐ęؗē€¦ēŒŖ苧著č²Æäøå…†å‡‹å–‹åƵåø–åø³åŗå¼”å¼µå½«å¾“ę‡²ęŒ‘ęš¢ęœę½®ē‰’ē”ŗēœŗč“č„¹č…øč¶čŖæč«œč¶…č·³éŠšé•·é ‚é³„å‹…ę—ē›“ęœ•ę²ˆēč³ƒéŽ®é™³ę“„å¢œę¤Žę§Œčæ½éŽšē—›é€šå”šę ‚ęŽ“ę§»ä½ƒę¼¬ęŸ˜č¾»č”¦ē¶“鍔ę¤æę½°åŖ壷嬬ē“¬ēˆŖ吊釣鶓äŗ­ä½Žåœåµå‰ƒč²žå‘ˆå ¤å®šåøåŗ•åŗ­å»·å¼Ÿę‚ŒęŠµęŒŗꏐę¢Æę±€ē¢‡ē¦Žē؋ē· č‰‡čØ‚č«¦č¹„é€“"],
-["9340","é‚øé„­é‡˜é¼Žę³„ę‘˜ę“¢ę•µę»“ēš„ē¬›é©é‘ęŗŗå“²å¾¹ę’¤č½čæ­é‰„å…ø唫天展åŗ—ę·»ēŗē”œč²¼č»¢é”›ē‚¹ä¼ę®æę¾±ē”°é›»å…Žåå µå”—å¦¬å± å¾’ę–—ęœęø”ē™»čŸč³­é€”都鍍ē „ē ŗåŠŖåŗ¦åœŸå„“ę€’å€’å…šå†¬"],
-["9380","å‡åˆ€å”å””å”˜å„—å®•å³¶å¶‹ę‚¼ęŠ•ę­ę±ę”ƒę¢¼ę£Ÿē›—ę·˜ę¹Æ궛ēÆē‡ˆå½“ē—˜ē„·ē­‰ē­”ē­’ē³–ēµ±åˆ°č‘£č•©č—¤čØŽč¬„č±†čøé€ƒé€é™é™¶é ­éØ°é—˜åƒå‹•åŒå ‚å°Žę†§ę’žę“žēž³ē«„čƒ“č„é“éŠ…å³ é“‡åŒæå¾—å¾³ę¶œē‰¹ē£ē¦æēƤęƒē‹¬čŖ­ę ƒę©”å‡øēŖę¤“å±Šé³¶č‹«åƅ酉ē€žå™øå±Æęƒ‡ę•¦ę²Œč±šéé “å‘‘ę›‡éˆå„ˆé‚£å†…ä¹å‡Ŗ薙謎ē˜ęŗé‹ę„¢é¦“ēø„ē•·å—ę„ č»Ÿé›£ę±äŗŒå°¼å¼čæ©åŒ‚č³‘č‚‰č™¹å»æę—„ä¹³å…„"],
-["9440","如å°æ韮任妊åæčŖęæ”ē¦°ē„¢åÆ§č‘±ēŒ«ē†±å¹“åæµę»ę’šē‡ƒē²˜ä¹ƒå»¼ä¹‹åŸœåš¢ę‚©ęæƒē“čƒ½č„³č†æč¾²č¦—čš¤å·“ęŠŠę’­č¦‡ę·ę³¢ę“¾ē¶ē “婆ē½µčŠ­é¦¬äæ³å»ƒę‹ęŽ’ę•—ęÆē›ƒē‰ŒčƒŒč‚ŗč¼©é…å€åŸ¹åŖ’ę¢…"],
-["9480","ę„³ē…¤ē‹½č²·å£²č³ é™Ŗ這čæē§¤ēŸ§č©ä¼Æå‰„åšę‹ęŸę³Šē™½ē®”ē²•čˆ¶č–„čæ«ę›ę¼ ēˆ†ēø›čŽ«é§éŗ¦å‡½ē®±ē”²ē®ø肇ē­ˆę«Øå¹”č‚Œē•‘ē• å…«é‰¢ęŗŒē™ŗ醗é«Ŗ伐ē½°ęŠœē­é–„鳩å™ŗå”™č›¤éš¼ä¼“åˆ¤åŠåå›åø†ę¬ę–‘ęæę°¾ę±Žē‰ˆēŠÆē­ē•”ē¹čˆ¬č—©č²©ēƄ釆ē…©é ’é£ÆęŒ½ę™©ē•Ŗē›¤ē£č•ƒč›®åŒŖ卑否妃åŗ‡å½¼ę‚²ę‰‰ę‰¹ęŠ«ę–ęÆ”ę³Œē–²ēš®ē¢‘ē§˜ē·‹ē½·č‚„č¢«čŖ¹č²»éæ非飛ę؋ē°øå‚™å°¾å¾®ęž‡ęƘēµēœ‰ē¾Ž"],
-["9540","é¼»ęŸŠēؗ匹ē–‹é«­å½¦č†č±č‚˜å¼¼åæ…ē•¢ē­†é€¼ę”§å§«åŖ›ē“ē™¾č¬¬äæµå½ŖęØ™ę°·ę¼‚ē“¢ē„Øč”Øč©•č±¹å»Ÿęē—…ē§’č‹—éŒØé‹²č’œč›­é°­å“å½¬ę–Œęµœē€•č²§č³“é »ę•ē“¶äøä»˜åŸ å¤«å©¦åƌå†Øåøƒåŗœę€–ꉶꕷ"],
-["9580","ꖧꙮ굮ēˆ¶ē¬¦č…č†ščŠ™č­œč² č³¦čµ“é˜œé™„ä¾®ę’«ę­¦čˆžč‘”č•ŖéƒØå°ę„“é¢Øč‘ŗč•—ä¼å‰Æå¾©å¹…ęœē¦č…¹č¤‡č¦†ę·µå¼—ꉕę²ø仏ē‰©é®’åˆ†å»å™“å¢³ę†¤ę‰®ē„šå„®ē²‰ē³žē“›é›°ę–‡čžäø™ä½µå…µå”€å¹£å¹³å¼ŠęŸ„äø¦č”½é–‰é™›ē±³é åƒ»å£ē™–ē¢§åˆ„ēž„蔑ē®†åå¤‰ē‰‡ēƇē·Øč¾ŗčæ”遍ä¾æ勉åة弁鞭äæčˆ—é‹Ŗåœƒę•ę­©ē”«č£œč¼”ē©‚å‹Ÿå¢“ę…•ęˆŠęš®ęƍē°æč©å€£äæø包呆報儉宝峰å³Æå“©åŗ–ęŠ±ę§ę”¾ę–¹ęœ‹"],
-["9640","ę³•ę³”ēƒ¹ē ²ēø«čƒžčŠ³čŒč“¬čœ‚褒čØŖč±Šé‚¦é‹’é£½é³³éµ¬ä¹äŗ”傍剖坊å¦Øåø½åæ˜åæ™ęˆæęš“ęœ›ęŸę£’å†’ē“”č‚Ŗč†Øč¬€č²Œč²æ鉾防吠頬北僕卜å¢Øę’²ęœ“ē‰§ē¦ē©†é‡¦å‹ƒę²”ę®†å €å¹Œå„”ęœ¬ēæ»å‡”ē›†"],
-["9680","ę‘©ē£Ø魔éŗ»åŸ‹å¦¹ę˜§ęžšęÆŽå“©ę§™å¹•č†œęž•é®ŖęŸ¾é±’ę”äŗ¦äæ£åˆęŠ¹ęœ«ę²«čæ„ä¾­ē¹­éŗæäø‡ę…¢ęŗ€ę¼«č”“味ęœŖ魅巳ē®•å²¬åÆ†čœœę¹Šč“‘ēØ”č„ˆå¦™ē²ę°‘ēœ å‹™å¤¢ē„”ē‰ŸēŸ›éœ§éµ”ꤋå©æåØ˜å†„åå‘½ę˜Žē›Ÿčæ·éŠ˜é³“å§Ŗē‰ę»…å…ę£‰ē¶æē·¬é¢éŗŗę‘øęØ”čŒ‚å¦„å­ŸęƛēŒ›ē›²ē¶²č€—č’™å„²ęœØ黙ē›®ę¢å‹æé¤…å°¤ęˆ»ē±¾č²°å•ę‚¶ē“‹é–€åŒä¹Ÿå†¶å¤œēˆŗč€¶é‡Žå¼„ēŸ¢åŽ„å½¹ē“„č–¬čسčŗé–ęŸ³č–®é‘“ę„‰ę„ˆę²¹ē™’"],
-["9740","č«­č¼øå”Æ佑å„Ŗå‹‡å‹å®„å¹½ę‚ ę†‚ę–ęœ‰ęŸšę¹§ę¶ŒēŒ¶ēŒ·ē”±ē„č£•čŖ˜éŠé‚‘éƒµé›„čžå¤•äŗˆä½™äøŽčŖ‰č¼æ預傭幼妖容åŗøꏚęŗę“ę›œę„Šę§˜ę“‹ęŗ¶ē†”ē”ØēŖÆē¾Šč€€č‘‰č“‰č¦č¬”čøŠé„é™½é¤Šę…¾ęŠ‘ę¬²"],
-["9780","ę²ƒęµ“ēæŒēæ¼ę·€ē¾…čžŗč£øę„čŽ±é ¼é›·ę“›ēµ”č½é…Ŗä¹±åµåµę¬„ęæ«č—č˜­č¦§åˆ©åå±„Ꝏę¢Øē†ē’ƒē—¢č£č£”里離é™ø律ēŽ‡ē«‹č‘ŽęŽ ē•„åŠ‰ęµęŗœē‰ē•™ē”«ē²’隆ē«œé¾ä¾¶ę…®ę—…č™œäŗ†äŗ®åƒšäø”凌åÆ®ę–™ę¢ę¶¼ēŒŸē™‚ēž­ē؜ē³§č‰Æč«’é¼é‡é™µé ˜åŠ›ē·‘å€«åŽ˜ęž—ę·‹ē‡ē³č‡Øč¼Ŗ隣鱗éŗŸē‘ å”ę¶™ē“Æ锞令伶例冷励å¶ŗꀜēŽ²ē¤¼č‹“鈓隷零霊éŗ—é½¢ęš¦ę­“列劣ēƒˆč£‚å»‰ę‹ę†ę¼£ē…‰ē°¾ē·“čÆ"],
-["9840","č“®é€£éŒ¬å‘‚é­Æę«“ē‚‰č³‚č·Æéœ²åŠ“å©å»Šå¼„ęœ—ę„¼ę¦”ęµŖę¼ē‰¢ē‹¼ēÆ­č€č¾č‹éƒŽå…­éŗ“ē¦„č‚‹éŒ²č«–å€­å’Œč©±ę­Ŗč³„č„‡ęƒ‘ęž é·²äŗ™äŗ˜é°č©«č—č•Øę¤€ę¹¾ē¢—č…•"],
-["989f","弌äøäø•äøŖäø±äø¶äø¼äøæ乂乖乘äŗ‚äŗ…豫äŗŠčˆ’弍äŗŽäŗžäŗŸäŗ äŗ¢äŗ°äŗ³äŗ¶ä»Žä»ä»„仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑ä½Æ來侖儘äæ”äæŸäæŽäæ˜äæ›äæ‘äæšäæäæ¤äæ„倚å€Ø倔å€Ŗ倄倅伜äæ¶å€”倩倬äæ¾äæÆå€‘å€†åƒå‡ęœƒå•ååˆåšå–å¬åø傀傚傅傓傲"],
-["9940","僉僊傳僂僖僞僄僭僣僮價僵儉儁儂儖儕儔儚儔å„ŗ儷儼儻å„æ兀兒兌兔兢ē«ø兩å…Ŗ兮冀冂囘册冉冏冑冓冕冖冤冦冢冩å†Ŗå†«å†³å†±å†²å†°å†µå†½å‡…å‡‰å‡›å‡ č™•å‡©å‡­"],
-["9980","凰凵凾刄刋刔刎刧åˆŖ刮刳刹剏剄剋剌剞剔å‰Ŗ剓剩剳å‰æ剽劍劔劒剱劈劑č¾Øč¾§åŠ¬åŠ­åŠ¼åŠµå‹å‹å‹—å‹žå‹£å‹¦é£­å‹ å‹³å‹µå‹ø勹匆匈ē”ø匍匐匏匕匚匣åŒÆ匱匳åŒø區卆卅äø—卉卍凖卞卩卮夘卻卷厂厖厠厦厄厮厰厶參ē°’é›™åŸę›¼ē‡®å®åØ叭åŗ吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢å’ø咄咬哄哈å’Ø"],
-["9a40","咫哂咤咾咼哘哄哦唏唔哽哮哭å“ŗ哢唹啀啣啌售啜啅啖啗å”ø唳啝喙喀å’Æ喊喟啻啾喘喞單啼喃喩喇å–Ø嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐ē‡Ÿå˜“嘶嘲å˜ø"],
-["9a80","噫噤å˜Æ噬å™Ŗ嚆嚀嚊嚠嚔嚏嚄嚮嚶嚓囂嚼囁囃囀囈囎囑囓囗囮囹圀å›æ圄圉圈國圍圓團圖嗇圜圦圷åœø坎圻址坏坩埀垈坔åæ垉垓垠垳垤åžŖ垰埃埆埔埒埓堊埖埣堋堙堝唲堔唢唋唰ęƀ唒堽唹墅墹墟墫å¢ŗ壞墻å¢ø墮壅壓壑壗壙壘壄壜壤壟å£Æå£ŗå£¹å£»å£¼å£½å¤‚å¤Šå¤å¤›ę¢¦å¤„å¤¬å¤­å¤²å¤ø夾ē«’儕儐儎儚儘儢儠儧儬儩"],
-["9b40","å„ø妁妝佞侫妣妲姆å§Ø姜妍姙姚åØ„å؟åؑå؜å؉åؚ婀婬婉åصåض婢å©ŖåŖšåŖ¼åŖ¾å«‹å«‚åŖ½å«£å«—嫦嫩嫖å«ŗ嫻嬌嬋嬖嬲嫐å¬Ŗ嬶嬾孃孅孀孑孕孚孛孄孩孰孳孵å­øꖈå­ŗ宀"],
-["9b80","它宦å®øåƃåƇåƉåƔåƐåƤåƦåÆ¢åƞåÆ„åÆ«åÆ°åƶåƳ尅將專對尓尠尢å°Øå°ø尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽å³ŗ峭嶌å³Ŗ哋哕哗嵜哟哛哑哔哢哚哙哘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵åø‹åøšåø™åø‘åø›åø¶åø·å¹„幃幀幎幗幔幟幢幤幇幵并å¹ŗéŗ¼å¹æåŗ å»å»‚廈廐廏"],
-["9c40","廖廣廝廚廛廢廔å»Ø廩廬廱廳廰廓å»ø廾弃弉彝彜弋弑弖弩弭å¼ø彁彈彌彎å¼Æ彑彖彗彙彔彭彳彷徃徂å½æ徊很徑徇從徙徘徠å¾Øå¾­å¾¼åæ–åæ»åæ¤åæøåæ±åæę‚³åææꀔꁠ"],
-["9c80","ę€™ę€ę€©ę€Žę€±ę€›ę€•ę€«ę€¦ę€ę€ŗꁚꁁęŖę·ęŸęŠę†ęę£ęƒę¤ę‚ę¬ę«ę™ę‚ę‚ęƒ§ę‚ƒę‚šę‚„ę‚›ę‚–ę‚—ę‚’ę‚§ę‚‹ęƒ”ę‚øęƒ ęƒ“ę‚“åæ°ę‚½ęƒ†ę‚µęƒ˜ę…ę„•ę„†ęƒ¶ęƒ·ę„€ęƒ“ęƒŗę„ƒę„”ęƒ»ęƒ±ę„ę„Žę…‡ę„¾ę„Øꄧꅊę„æę„¼ę„¬ę„“ę„½ę…‚ę…„ę…³ę…·ę…˜ę…™ę…šę…«ę…“ę…Æę…„ę…±ę…Ÿę…ę…“ę…µę†™ę†–ę†‡ę†¬ę†”ę†šę†Šę†‘ę†«ę†®ę‡Œę‡Šę‡‰ę‡·ę‡ˆę‡ƒę‡†ę†ŗꇋē½¹ę‡ę‡¦ę‡£ę‡¶ę‡ŗꇓę‡æę‡½ę‡¼ę‡¾ęˆ€ęˆˆęˆ‰ęˆęˆŒęˆ”ęˆ›"],
-["9d40","ęˆžęˆ”ęˆŖęˆ®ęˆ°ęˆ²ęˆ³ę‰ę‰Žę‰žę‰£ę‰›ę‰ ę‰Øę‰¼ęŠ‚ęŠ‰ę‰¾ęŠ’ęŠ“ęŠ–ę‹”ęŠƒęŠ”ę‹—ę‹‘ęŠ»ę‹ę‹æę‹†ę“”ę‹ˆę‹œę‹Œę‹Šę‹‚ę‹‡ęŠ›ę‹‰ęŒŒę‹®ę‹±ęŒ§ęŒ‚ęŒˆę‹Æę‹µęęŒ¾ęęœęęŽ–ęŽŽęŽ€ęŽ«ę¶ęŽ£ęŽęŽ‰ęŽŸęŽµę«"],
-["9d80","ę©ęŽ¾ę©ę€ę†ę£ę‰ę’ę¶ę„ę–ę“ę†ę“ę¦ę¶ę”ę—ęØꐏꑧę‘Æꑶꑎę”Ŗę’•ę’“ę’„ę’©ę’ˆę’¼ę“šę“’ę“…ę“‡ę’»ę“˜ę“‚ę“±ę“§čˆ‰ę“ ę“”ęŠ¬ę“£ę“Æę”¬ę“¶ę““ę“²ę“ŗę”€ę“½ę”˜ę”œę”…ę”¤ę”£ę”«ę”“ę”µę”·ę”¶ę”øē•‹ę•ˆę•–ę••ę•ę•˜ę•žę•ę•²ę•øę–‚ę–ƒč®Šę–›ę–Ÿę–«ę–·ę—ƒę—†ę—ę—„ę—Œę—’ę—›ę—™ę— ę—”ę—±ę²ę˜Šę˜ƒę—»ę³ę˜µę˜¶ę˜“ę˜œę™ę™„ę™‰ę™ę™žę™ę™¤ę™§ę™Øę™Ÿę™¢ę™°ęšƒęšˆęšŽęš‰ęš„ęš˜ęšę›ęš¹ę›‰ęš¾ęš¼"],
-["9e40","ꛄęšøꛖꛚꛠę˜æę›¦ę›©ę›°ę›µę›·ęœęœ–ęœžęœ¦ęœ§éœøęœ®ęœæęœ¶ęęœøęœ·ę†ęžę ę™ę£ę¤ęž‰ę°ęž©ę¼ęŖęžŒęž‹ęž¦ęž”ęž…ęž·ęŸÆęž“ęŸ¬ęž³ęŸ©ęžøęŸ¤ęŸžęŸęŸ¢ęŸ®ęž¹ęŸŽęŸ†ęŸ§ęŖœę žę”†ę ©ę”€ę”ę ²ę”Ž"],
-["9e80","ę¢³ę «ę”™ę”£ę”·ę”æę¢Ÿę¢ę¢­ę¢”ę¢ę¢›ę¢ƒęŖ®ę¢¹ę”“ę¢µę¢ ę¢ŗę¤ę¢ę”¾ę¤ę£Šę¤ˆę£˜ę¤¢ę¤¦ę£”ę¤Œę£ę£”ę£§ę£•ę¤¶ę¤’ę¤„ę£—ę££ę¤„ę£¹ę£ ę£Æę¤Øę¤Ŗę¤šę¤£ę¤”ę£†ę„¹ę„·ę„œę„øę„«ę„”ę„¾ę„®ę¤¹ę„“ę¤½ę„™ę¤°ę„”ę„žę„ę¦ę„Ŗę¦²ę¦®ę§ę¦æę§ę§“ę¦¾ę§ŽåÆØę§Šę§ę¦»ę§ƒę¦§ęØ®ę¦‘ę¦ ę¦œę¦•ę¦“ę§žę§Øę؂ę؛ę§æę¬Šę§¹ę§²ę§§ęØ…ę¦±ęØžę§­ęØ”ę§«ę؊ęØ’ę«ęØ£ęØ“ę©„ęØŒę©²ęضę©øę©‡ę©¢ę©™ę©¦ę©ˆęØøęØ¢ęŖęŖęŖ ęŖ„ęŖ¢ęŖ£"],
-["9f40","ęŖ—č˜—ęŖ»ę«ƒę«‚ęŖøęŖ³ęŖ¬ę«žę«‘ę«ŸęŖŖę«šę«Ŗę«»ę¬…č˜–ę«ŗę¬’ę¬–é¬±ę¬Ÿę¬øꬷē›œę¬¹é£®ę­‡ę­ƒę­‰ę­ę­™ę­”ę­›ę­Ÿę­”ę­øę­¹ę­æę®€ę®„ę®ƒę®ę®˜ę®•ę®žę®¤ę®Ŗꮫę®Æę®²ę®±ę®³ę®·ę®¼ęƆęƋęƓęƟęƬęÆ«ęƳęÆÆ"],
-["9f80","éŗ¾ę°ˆę°“ę°”ę°›ę°¤ę°£ę±žę±•ę±¢ę±Ŗę²‚ę²ę²šę²ę²›ę±¾ę±Øę±³ę²’ę²ę³„ę³±ę³“ę²½ę³—ę³…ę³ę²®ę²±ę²¾ę²ŗę³›ę³Æę³™ę³Ŗę“Ÿč”ę“¶ę“«ę“½ę“øę“™ę“µę“³ę“’ę“Œęµ£ę¶“ęµ¤ęµšęµ¹ęµ™ę¶Žę¶•ęæ¤ę¶…ę·¹ęø•ęøŠę¶µę·‡ę·¦ę¶øę·†ę·¬ę·žę·Œę·Øę·’ę·…ę·ŗ귙귤귕ę·Ŗę·®ęø­ę¹®ęø®ęø™ę¹²ę¹Ÿęø¾ęø£ę¹«ęø«ę¹¶ę¹ęøŸę¹ƒęøŗę¹Žęø¤ę»æęøęøøęŗ‚ęŗŖęŗ˜ę»‰ęŗ·ę»“ęŗ½ęŗÆ껄ęŗ²ę»”껕ęŗęŗ„껂ęŗŸę½ę¼‘ēŒę»¬ę»øę»¾ę¼æę»²ę¼±ę»Æę¼²ę»Œ"],
-["e040","ę¼¾ę¼“ę»·ę¾†ę½ŗę½øę¾ę¾€ę½Æę½›ęæ³ę½­ę¾‚ę½¼ę½˜ę¾Žę¾‘ęæ‚ę½¦ę¾³ę¾£ę¾”ę¾¤ę¾¹ęæ†ę¾ŖęæŸęæ•ęæ¬ęæ”ęæ˜ęæ±ęæ®ęæ›ē€‰ē€‹ęæŗē€‘ē€ē€ęæ¾ē€›ē€šę½“ē€ē€˜ē€Ÿē€°ē€¾ē€²ē‘ē£ē‚™ē‚’ē‚Æēƒ±ē‚¬ē‚øē‚³ē‚®ēƒŸēƒ‹ēƒ"],
-["e080","ēƒ™ē„‰ēƒ½ē„œē„™ē…„ē…•ē†ˆē…¦ē…¢ē…Œē…–ē…¬ē†ē‡»ē†„ē†•ē†Øē†¬ē‡—ē†¹ē†¾ē‡’ē‡‰ē‡”ē‡Žē‡ ē‡¬ē‡§ē‡µē‡¼ē‡¹ē‡æēˆēˆēˆ›ēˆØēˆ­ēˆ¬ēˆ°ēˆ²ēˆ»ēˆ¼ēˆæē‰€ē‰†ē‰‹ē‰˜ē‰“ē‰¾ēŠ‚ēŠēŠ‡ēŠ’ēŠ–ēŠ¢ēŠ§ēŠ¹ēŠ²ē‹ƒē‹†ē‹„ē‹Žē‹’ē‹¢ē‹ ē‹”ē‹¹ē‹·å€ēŒ—ēŒŠēŒœēŒ–ēŒēŒ“ēŒÆēŒ©ēŒ„ēŒ¾ēŽēé»˜ē—ēŖēØē°ēøēµē»ēŗēˆēŽ³ēŽēŽ»ē€ē„ē®ēžē’¢ē…ē‘Æē„ēøē²ēŗē‘•ēæē‘Ÿē‘™ē‘ē‘œē‘©ē‘°ē‘£ē‘Ŗē‘¶ē‘¾ē’‹ē’žē’§ē“Šē“ē“”ē±"],
-["e140","ē“ ē“£ē“§ē“©ē“®ē“²ē“°ē“±ē“øē“·ē”„ē”ƒē”…ē”Œē”Žē”ē”•ē”“ē”žē”¦ē”¬ē”¼ē•„ē•ē•Šē•‰ē•›ē•†ē•šē•©ē•¤ē•§ē•«ē•­ē•øē•¶ē–†ē–‡ē•“ē–Šē–‰ē–‚ē–”ē–šē–ē–„ē–£ē—‚ē–³ē—ƒē–µē–½ē–øē–¼ē–±ē—ē—Šē—’ē—™ē—£ē—žē—¾ē—æ"],
-["e180","ē—¼ē˜ē—°ē—ŗē—²ē—³ē˜‹ē˜ē˜‰ē˜Ÿē˜§ē˜ ē˜”ē˜¢ē˜¤ē˜“ē˜°ē˜»ē™‡ē™ˆē™†ē™œē™˜ē™”ē™¢ē™Øē™©ē™Ŗē™§ē™¬ē™°ē™²ē™¶ē™øē™¼ēš€ēšƒēšˆēš‹ēšŽēš–ēš“ēš™ēššēš°ēš“ēšøēš¹ēšŗē›‚ē›ē›–ē›’ē›žē›”ē›„ē›§ē›Ŗč˜Æē›»ēœˆēœ‡ēœ„ēœ©ēœ¤ēœžēœ„ēœ¦ēœ›ēœ·ēœøē‡ēšēØē«ē›ē„ēæē¾ē¹ēžŽēž‹ēž‘ēž ēžžēž°ēž¶ēž¹ēžæēž¼ēž½ēž»ēŸ‡ēŸēŸ—ēŸšēŸœēŸ£ēŸ®ēŸ¼ē Œē ’ē¤¦ē  ē¤Ŗē”…ē¢Žē”“ē¢†ē”¼ē¢šē¢Œē¢£ē¢µē¢Ŗē¢Æē£‘ē£†ē£‹ē£”ē¢¾ē¢¼ē£…ē£Šē£¬"],
-["e240","ē£§ē£šē£½ē£“ē¤‡ē¤’ē¤‘ē¤™ē¤¬ē¤«ē„€ē„ ē„—ē„Ÿē„šē„•ē„“ē„ŗē„æē¦Šē¦ē¦§é½‹ē¦Ŗē¦®ē¦³ē¦¹ē¦ŗē§‰ē§•ē§§ē§¬ē§”ē§£ē؈ē؍ēؘēؙēØ ē؟ē¦€ēرēØ»ēؾēØ·ē©ƒē©—ē©‰ē©”ē©¢ē©©é¾ē©°ē©¹ē©½ēŖˆēŖ—ēŖ•ēŖ˜ēŖ–ēŖ©ē«ˆēŖ°"],
-["e280","ēŖ¶ē«…ē«„ēŖæ邃ē«‡ē«Šē«ē«ē«•ē«“ē«™ē«šē«ē«”ē«¢ē«¦ē«­ē«°ē¬‚ē¬ē¬Šē¬†ē¬³ē¬˜ē¬™ē¬žē¬µē¬Øē¬¶ē­ē­ŗē¬„ē­ē¬‹ē­Œē­…ē­µē­„ē­“ē­§ē­°ē­±ē­¬ē­®ē®ē®˜ē®Ÿē®ē®œē®šē®‹ē®’ē®ē­ē®™ēƋēƁēƌēƏē®“ēƆēƝēÆ©ē°‘ē°”ēƦēÆ„ē± ē°€ē°‡ē°“ēƳēÆ·ē°—ē°ēƶē°£ē°§ē°Ŗē°Ÿē°·ē°«ē°½ē±Œē±ƒē±”ē±ē±€ē±ē±˜ē±Ÿē±¤ē±–ē±„ē±¬ē±µē²ƒē²ē²¤ē²­ē²¢ē²«ē²”ē²Øē²³ē²²ē²±ē²®ē²¹ē²½ē³€ē³…ē³‚ē³˜ē³’ē³œē³¢é¬»ē³Æē³²ē³“ē³¶ē³ŗē“†"],
-["e340","ē“‚ē“œē“•ē“Šēµ…ēµ‹ē“®ē“²ē“æē“µēµ†ēµ³ēµ–ēµŽēµ²ēµØēµ®ēµēµ£ē¶“ē¶‰ēµ›ē¶ēµ½ē¶›ē¶ŗē¶®ē¶£ē¶µē·‡ē¶½ē¶«ēø½ē¶¢ē¶Æē·œē¶øē¶Ÿē¶°ē·˜ē·ē·¤ē·žē·»ē·²ē·”ēø…ēøŠēø£ēø”ēø’ēø±ēøŸēø‰ēø‹ēø¢ē¹†ē¹¦ēø»ēøµēø¹ē¹ƒēø·"],
-["e380","ēø²ēøŗē¹§ē¹ē¹–ē¹žē¹™ē¹šē¹¹ē¹Ŗē¹©ē¹¼ē¹»ēŗƒē·•ē¹½č¾®ē¹æēŗˆēŗ‰ēŗŒēŗ’ēŗēŗ“ēŗ”ēŗ–ēŗŽēŗ›ēŗœē¼øē¼ŗē½…ē½Œē½ē½Žē½ē½‘ē½•ē½”ē½˜ē½Ÿē½ ē½Øē½©ē½§ē½øē¾‚ē¾†ē¾ƒē¾ˆē¾‡ē¾Œē¾”ē¾žē¾ē¾šē¾£ē¾Æē¾²ē¾¹ē¾®ē¾¶ē¾øč­±ēæ…ēæ†ēæŠēæ•ēæ”ēæ”ēæ¦ēæ©ēæ³ēæ¹é£œč€†č€„č€‹č€’č€˜č€™č€œč€”č€Øč€æč€»čŠč†č’č˜čščŸč¢čØč³č²č°č¶č¹č½čæč‚„č‚†č‚…č‚›č‚“č‚šč‚­å†č‚¬čƒ›čƒ„čƒ™čƒčƒ„čƒščƒ–č„‰čƒÆčƒ±č„›č„©č„£č„Æ腋"],
-["e440","éš‹č…†č„¾č…“č…‘čƒ¼č…±č…®č…„č…¦č…“č†ƒč†ˆč†Šč†€č†‚č† č†•č†¤č†£č…Ÿč†“č†©č†°č†µč†¾č†øč†½č‡€č‡‚č†ŗ臉臍臑臙臘臈臚臟臠臧č‡ŗč‡»č‡¾čˆčˆ‚čˆ…čˆ‡čˆŠčˆčˆčˆ–čˆ©čˆ«čˆøčˆ³č‰€č‰™č‰˜č‰č‰šč‰Ÿč‰¤"],
-["e480","č‰¢č‰Øč‰Ŗč‰«čˆ®č‰±č‰·č‰øč‰¾čŠčŠ’čŠ«čŠŸčŠ»čŠ¬č‹”č‹£č‹Ÿč‹’č‹“č‹³č‹ŗčŽ“čŒƒč‹»č‹¹č‹žčŒ†č‹œčŒ‰č‹™čŒµčŒ“čŒ–čŒ²čŒ±č€čŒ¹čč…čŒÆčŒ«čŒ—čŒ˜čŽ…čŽščŽŖčŽŸčŽ¢čŽ–čŒ£čŽŽčŽ‡čŽŠč¼čŽµč³čµčŽ čŽ‰čŽØč“č“č«čŽč½čƒč˜č‹čč·č‡č č²čč¢č čŽ½čøč”†č»č‘­čŖč¼č•šč’„č‘·č‘«č’­č‘®č’‚č‘©č‘†č¬č‘Æč‘¹čµč“Šč‘¢č’¹č’æč’Ÿč“™č“č’»č“šč“č“č“†č“–č’”č””č“æč““č”—č”˜č”¬č”Ÿč”•č””č“¼č•€č•£č•˜č•ˆ"],
-["e540","蕁蘂蕋蕕薀薤薈薑薊č–Ø蕭薔薛č—Ŗč–‡č–œč•·č•¾č–č—‰č–ŗč—č–¹č—č—•č—č—„č—œč—¹č˜Šč˜“č˜‹č—¾č—ŗč˜†č˜¢č˜šč˜°č˜æč™ä¹•č™”č™Ÿč™§č™±čš“čš£čš©čšŖčš‹čšŒčš¶čšÆč›„č›†čš°č›‰č £čš«č›”č›žč›©č›¬"],
-["e580","蛟蛛č›Æčœ’čœ†čœˆčœ€čœƒč›»čœ‘čœ‰čœč›¹čœŠčœ“čœæčœ·čœ»čœ„čœ©čœšč čŸčøčŒčŽč“č—čØč®č™č“č£čŖč …čž¢čžŸčž‚čžÆčŸ‹čž½čŸ€čŸé›–čž«čŸ„čž³čŸ‡čŸ†čž»čŸÆčŸ²čŸ č č čŸ¾čŸ¶čŸ·č ŽčŸ’č ‘č –č •č ¢č ”č ±č ¶č ¹č §č »č”„č”‚č”’č”™č”žč”¢č”«č¢č”¾č¢žč”µč”½č¢µč”²č¢‚č¢—č¢’č¢®č¢™č¢¢č¢č¢¤č¢°č¢æč¢±č£ƒč£„č£”č£˜č£™č£č£¹č¤‚č£¼č£“č£Øč£²č¤„č¤Œč¤Šč¤“č„ƒč¤žč¤„č¤Ŗ褫脁脄褻褶č¤øč„Œč¤č„ č„ž"],
-["e640","脦脤脭č„Ŗč„Æč„“č„·č„¾č¦ƒč¦ˆč¦Šč¦“č¦˜č¦”č¦©č¦¦č¦¬č¦Æč¦²č¦ŗč¦½č¦æč§€č§šč§œč§č§§č§“č§øč؃čؖčؐč،č؛č؝čØ„čØ¶č©č©›č©’č©†č©ˆč©¼č©­č©¬č©¢čŖ…čŖ‚čŖ„čŖØčŖ”čŖ‘čŖ„čŖ¦čŖščŖ£č«„č«č«‚č«šč««č«³č«§"],
-["e680","č«¤č«±č¬”č« č«¢č«·č«žč«›č¬Œč¬‡č¬šč«”č¬–č¬č¬—č¬ č¬³éž«č¬¦č¬«č¬¾č¬Øč­č­Œč­č­Žč­‰č­–č­›č­šč­«č­Ÿč­¬č­Æč­“č­½č®€č®Œč®Žč®’č®“č®–č®™č®šč°ŗ豁č°æč±ˆč±Œč±Žč±č±•č±¢č±¬č±øč±ŗč²‚č²‰č²…č²Šč²č²Žč²”č±¼č²˜ęˆč²­č²Ŗč²½č²²č²³č²®č²¶č³ˆč³č³¤č³£č³šč³½č³ŗč³»č“„č“…č“Šč“‡č“č“č“é½Žč““č³č“”č“–čµ§čµ­čµ±čµ³č¶č¶™č·‚č¶¾č¶ŗč·č·šč·–č·Œč·›č·‹č·Ŗč·«č·Ÿč·£č·¼čøˆčø‰č·æčøčøžčøčøŸč¹‚čøµčø°čø“č¹Š"],
-["e740","č¹‡č¹‰č¹Œč¹č¹ˆč¹™č¹¤č¹ čøŖč¹£č¹•č¹¶č¹²č¹¼čŗčŗ‡čŗ…čŗ„čŗ‹čŗŠčŗ“čŗ‘čŗ”čŗ™čŗŖčŗ”čŗ¬čŗ°č»†čŗ±čŗ¾č»…č»ˆč»‹č»›č»£č»¼č»»č»«č»¾č¼Šč¼…č¼•č¼’č¼™č¼“č¼œč¼Ÿč¼›č¼Œč¼¦č¼³č¼»č¼¹č½…č½‚č¼¾č½Œč½‰č½†č½Žč½—č½œ"],
-["e780","č½¢č½£č½¤č¾œč¾Ÿč¾£č¾­č¾Æč¾·čæščæ„čæ¢čæŖčæÆ邇čæ“逅čæ¹čæŗ逑逕途逍逞逖逋逧逶逵逹čæø遏遐遑遒逎遉逾遖遘遞éØéÆ遶éšØ遲邂遽邁邀邊邉邏é‚Øé‚Æé‚±é‚µéƒ¢éƒ¤ę‰ˆéƒ›é„‚é„’é„™é„²é„°é…Šé…–é…˜é…£é…„é…©é…³é…²é†‹é†‰é†‚é†¢é†«é†Æé†Ŗ醵醓é†ŗ釀釁釉釋釐釖釟釔釛釼釵釶鈞é‡æ鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕éˆæ鉋鉐銜銖銓銛鉚鋏銹銷鋩錏é‹ŗ鍄錮"],
-["e840","錙錢錚錣éŒŗ錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗éØ鏄鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐔éŗ鑁鑒鑄鑛鑠鑢鑞é‘Ŗ鈩鑰鑵鑷鑽鑚鑼鑾钁é‘æ閂閇閊閔閖閘閙"],
-["e880","閠é–Ø閧閭閼閻閹閾闊ęæ¶é—ƒé—é—Œé—•é—”闖關闔闄闢阔é˜Ø阮é˜Æ陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗éšŖ隧隱隲隰隓隶éšøéš¹é›Žé›‹é›‰é›č„é›œéœé›•é›¹éœ„éœ†éœˆéœ“éœŽéœ‘éœéœ–éœ™éœ¤éœŖ霰霹霽霾靄靆靈靂靉靜靠靤靦éØ勒靫靱靹鞅靼鞁éŗ鞆鞋鞏鞐鞜éžØ鞦鞣鞳鞓韃韆韈韋韜韭齏韲ē«ŸéŸ¶éŸµé é Œé ø頤頔頷頽锆锏锋锫é”Æé”°"],
-["e940","锱锓锳é¢Ŗé¢Æ颱颶飄飃飆飩飫餃餉餒餔餘餔餝餞餤餠餬餮餽餾鄂鄉鄅鄐鄋鄑鄒鄌鄕馗馘馄馭馮馼駟駛駝駘駑駭駮駱駲駻é§øé؁é؏é؅駢éؙéØ«éط驅驂驀驃"],
-["e980","éؾ驕驍驛驗驟驢驄驤驩驫é©ŖéŖ­éŖ°éŖ¼é«€é«é«‘髓體髞髟髢髣髦é«Æ髫髮髓髱髷髻鬆鬘鬚鬟鬢鬣鬄鬧é¬Ø鬩é¬Ŗ鬮é¬Æ鬲魄魃魏魍魎魑魘魓鮓鮃鮑鮖鮗鮟鮠é®Ø鮓éƀéƊ鮹éƆéƏéƑéƒéÆ£éÆ¢éƤéƔéÆ”é°ŗéƲéƱéư鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰄鰤鰔鰰鱇鰲鱆鰾鱚鱠鱧鱶é±ø鳧鳬鳰铉铈鳫铃铆é“Ŗ铦é¶Æ铣铟鵄铕铒鵁é“æ链鵆鵈"],
-["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫éµÆéµŗ鶚鶤鶩鶲鷄鷁鶻é¶øé¶ŗ鷆鷏鷂鷙鷓é·ø鷦鷭é·Æé·½éøšéø›éøžé¹µé¹¹é¹½éŗéŗˆéŗ‹éŗŒéŗ’éŗ•éŗ‘éŗéŗ„éŗ©éŗøéŗŖéŗ­é”黌黎黏黐黔黜點黝黠黄é»Øé»Æ"],
-["ea80","黓黶黷黹黻黼黽鼇鼈ēš·é¼•é¼”鼬鼾齊齒齔齣齟齠齔齦齧齬é½Ŗ齷齲齶龕龜龠å Æ꧇遙ē‘¤å‡œē†™"],
-["ed40","ēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏"],
-["ed80","ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±"],
-["ee40","ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™"],
-["ee80","č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"],
-["eeef","ā…°",9,"ļæ¢ļæ¤ļ¼‡ļ¼‚"],
-["f040","ī€€",62],
-["f080","ī€æ",124],
-["f140","ī‚¼",62],
-["f180","īƒ»",124],
-["f240","ī…ø",62],
-["f280","ī†·",124],
-["f340","īˆ“",62],
-["f380","ī‰³",124],
-["f440","ī‹°",62],
-["f480","īŒÆ",124],
-["f540","īŽ¬",62],
-["f580","ī«",124],
-["f640","ī‘Ø",62],
-["f680","ī’§",124],
-["f740","ī”¤",62],
-["f780","ī•£",124],
-["f840","ī— ",62],
-["f880","ī˜Ÿ",124],
-["f940","īšœ"],
-["fa40","ā…°",9,"ā… ",9,"ļæ¢ļæ¤ļ¼‡ļ¼‚ćˆ±ā„–ā„”āˆµēŗŠč¤œéˆéŠˆč“œäæ‰ē‚»ę˜±ę£ˆé‹¹ę›»å½…äøØ仔仼伀伃伹佖侒侊侚侔äæå€å€¢äææ倞偆偰偂傔僓僘兊"],
-["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝ļ؎咜咊咩å“æ喆坙坄垬埈埇ļ؏ļؐ增墲夋儓儛儝儣妤å¦ŗ孖åƀē”ÆåƘåƬ尞岦å²ŗ峵哧嵓ļؑ嵂嵭å¶ø嶹巐弔弓彧德åæžęę‚…ę‚Šęƒžęƒ•ę„ ęƒ²ę„‘ę„·ę„°ę†˜ęˆ“ęŠ¦ęµę‘ ę’ę“Žę•Žę˜€ę˜•ę˜»ę˜‰ę˜®ę˜žę˜¤ę™„ꙗꙙļØ’ę™³ęš™ęš ęš²ęšæę›ŗ꜎ļ¤©ę¦ęž»ę”’ęŸ€ę ę”„ę£ļؓę„ØļØ”ę¦˜ę§¢ęØ°ę©«ę©†ę©³ę©¾ę«¢ę«¤ęƖę°æę±œę²†ę±Æę³šę“„ę¶‡ęµÆ"],
-["fb40","ę¶–ę¶¬ę·ę·øę·²ę·¼ęø¹ę¹œęø§ęø¼ęŗæę¾ˆę¾µęæµē€…ē€‡ē€Øē‚…ē‚«ē„ē„„ē…œē…†ē…‡ļؕē‡ē‡¾ēŠ±ēŠ¾ēŒ¤ļؖē·ēŽ½ē‰ē–ē£ē’ē‡ēµē¦ēŖē©ē®ē‘¢ē’‰ē’Ÿē”ē•Æēš‚ēšœēšžēš›ēš¦ļؗē†åŠÆē ”ē”Žē”¤ē”ŗē¤°ļؘļؙ"],
-["fb80","ļؚē¦”ļ؛ē¦›ē«‘ē«§ļ؜ē««ē®žļ؝ēµˆēµœē¶·ē¶ ē·–ē¹’ē½‡ē¾”ļØžčŒč¢čæč‡č¶č‘ˆč’“č•“č•™č•«ļØŸč–°ļØ ļØ”č ‡č£µčؒčØ·č©¹čŖ§čŖ¾č«ŸļØ¢č«¶č­“č­æč³°č³“č“’čµ¶ļØ£č»ļؤļ؄遧郞ļئ鄕鄧釚釗釞釭釮釤釄鈆鈐鈊éˆŗ鉀鈼鉎鉙鉑鈹鉧銧鉷é‰ø鋧鋗鋙鋐ļا鋕鋠鋓錄錔鋻ļØØ錞é‹æ錝錂鍰鍗鎤鏆鏞éø鐱鑅鑈閒ļ§œļة隝éšÆ霳霻靃靍靏靑靕锗锄ļØŖļث餧ļج馞驎髙"],
-["fc40","髜魵魲鮏鮱鮻鰀鵰鵫ļØ­éø™é»‘"]
-]
diff --git a/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 b/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
deleted file mode 100644
index aa6cc716fb..0000000000
--- a/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
+++ /dev/null
@@ -1,175 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// Note: UTF16-LE (or UCS2) codec is Node.js native. See encodings/internal.js
-
-// == UTF16-BE codec. ==========================================================
-
-exports.utf16be = Utf16BECodec;
-function Utf16BECodec() {
-}
-
-Utf16BECodec.prototype.encoder = Utf16BEEncoder;
-Utf16BECodec.prototype.decoder = Utf16BEDecoder;
-Utf16BECodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf16BEEncoder() {
-}
-
-Utf16BEEncoder.prototype.write = function(str) {
- var buf = new Buffer(str, 'ucs2');
- for (var i = 0; i < buf.length; i += 2) {
- var tmp = buf[i]; buf[i] = buf[i+1]; buf[i+1] = tmp;
- }
- return buf;
-}
-
-Utf16BEEncoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf16BEDecoder() {
- this.overflowByte = -1;
-}
-
-Utf16BEDecoder.prototype.write = function(buf) {
- if (buf.length == 0)
- return '';
-
- var buf2 = new Buffer(buf.length + 1),
- i = 0, j = 0;
-
- if (this.overflowByte !== -1) {
- buf2[0] = buf[0];
- buf2[1] = this.overflowByte;
- i = 1; j = 2;
- }
-
- for (; i < buf.length-1; i += 2, j+= 2) {
- buf2[j] = buf[i+1];
- buf2[j+1] = buf[i];
- }
-
- this.overflowByte = (i == buf.length-1) ? buf[buf.length-1] : -1;
-
- return buf2.slice(0, j).toString('ucs2');
-}
-
-Utf16BEDecoder.prototype.end = function() {
-}
-
-
-// == UTF-16 codec =============================================================
-// Decoder chooses automatically from UTF-16LE and UTF-16BE using BOM and space-based heuristic.
-// Defaults to UTF-16LE, as it's prevalent and default in Node.
-// http://en.wikipedia.org/wiki/UTF-16 and http://encoding.spec.whatwg.org/#utf-16le
-// Decoder default can be changed: iconv.decode(buf, 'utf16', {defaultEncoding: 'utf-16be'});
-
-// Encoder uses UTF-16LE and prepends BOM (which can be overridden with addBOM: false).
-
-exports.utf16 = Utf16Codec;
-function Utf16Codec(codecOptions, iconv) {
- this.iconv = iconv;
-}
-
-Utf16Codec.prototype.encoder = Utf16Encoder;
-Utf16Codec.prototype.decoder = Utf16Decoder;
-
-
-// -- Encoding (pass-through)
-
-function Utf16Encoder(options, codec) {
- options = options || {};
- if (options.addBOM === undefined)
- options.addBOM = true;
- this.encoder = codec.iconv.getEncoder('utf-16le', options);
-}
-
-Utf16Encoder.prototype.write = function(str) {
- return this.encoder.write(str);
-}
-
-Utf16Encoder.prototype.end = function() {
- return this.encoder.end();
-}
-
-
-// -- Decoding
-
-function Utf16Decoder(options, codec) {
- this.decoder = null;
- this.initialBytes = [];
- this.initialBytesLen = 0;
-
- this.options = options || {};
- this.iconv = codec.iconv;
-}
-
-Utf16Decoder.prototype.write = function(buf) {
- if (!this.decoder) {
- // Codec is not chosen yet. Accumulate initial bytes.
- this.initialBytes.push(buf);
- this.initialBytesLen += buf.length;
-
- if (this.initialBytesLen < 16) // We need more bytes to use space heuristic (see below)
- return '';
-
- // We have enough bytes -> detect endianness.
- var buf = Buffer.concat(this.initialBytes),
- encoding = detectEncoding(buf, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
- this.initialBytes.length = this.initialBytesLen = 0;
- }
-
- return this.decoder.write(buf);
-}
-
-Utf16Decoder.prototype.end = function() {
- if (!this.decoder) {
- var buf = Buffer.concat(this.initialBytes),
- encoding = detectEncoding(buf, this.options.defaultEncoding);
- this.decoder = this.iconv.getDecoder(encoding, this.options);
-
- var res = this.decoder.write(buf),
- trail = this.decoder.end();
-
- return trail ? (res + trail) : res;
- }
- return this.decoder.end();
-}
-
-function detectEncoding(buf, defaultEncoding) {
- var enc = defaultEncoding || 'utf-16le';
-
- if (buf.length >= 2) {
- // Check BOM.
- if (buf[0] == 0xFE && buf[1] == 0xFF) // UTF-16BE BOM
- enc = 'utf-16be';
- else if (buf[0] == 0xFF && buf[1] == 0xFE) // UTF-16LE BOM
- enc = 'utf-16le';
- else {
- // No BOM found. Try to deduce encoding from initial content.
- // Most of the time, the content has ASCII chars (U+00**), but the opposite (U+**00) is uncommon.
- // So, we count ASCII as if it was LE or BE, and decide from that.
- var asciiCharsLE = 0, asciiCharsBE = 0, // Counts of chars in both positions
- _len = Math.min(buf.length - (buf.length % 2), 64); // Len is always even.
-
- for (var i = 0; i < _len; i += 2) {
- if (buf[i] === 0 && buf[i+1] !== 0) asciiCharsBE++;
- if (buf[i] !== 0 && buf[i+1] === 0) asciiCharsLE++;
- }
-
- if (asciiCharsBE > asciiCharsLE)
- enc = 'utf-16be';
- else if (asciiCharsBE < asciiCharsLE)
- enc = 'utf-16le';
- }
- }
-
- return enc;
-}
diff --git a/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 b/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
deleted file mode 100644
index 331457b1f6..0000000000
--- a/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
+++ /dev/null
@@ -1,288 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// UTF-7 codec, according to https://tools.ietf.org/html/rfc2152
-// See also below a UTF-7-IMAP codec, according to http://tools.ietf.org/html/rfc3501#section-5.1.3
-
-exports.utf7 = Utf7Codec;
-exports.unicode11utf7 = 'utf7'; // Alias UNICODE-1-1-UTF-7
-function Utf7Codec(codecOptions, iconv) {
- this.iconv = iconv;
-};
-
-Utf7Codec.prototype.encoder = Utf7Encoder;
-Utf7Codec.prototype.decoder = Utf7Decoder;
-Utf7Codec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-var nonDirectChars = /[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;
-
-function Utf7Encoder(options, codec) {
- this.iconv = codec.iconv;
-}
-
-Utf7Encoder.prototype.write = function(str) {
- // Naive implementation.
- // Non-direct chars are encoded as "+<base64>-"; single "+" char is encoded as "+-".
- return new Buffer(str.replace(nonDirectChars, function(chunk) {
- return "+" + (chunk === '+' ? '' :
- this.iconv.encode(chunk, 'utf16-be').toString('base64').replace(/=+$/, ''))
- + "-";
- }.bind(this)));
-}
-
-Utf7Encoder.prototype.end = function() {
-}
-
-
-// -- Decoding
-
-function Utf7Decoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = '';
-}
-
-var base64Regex = /[A-Za-z0-9\/+]/;
-var base64Chars = [];
-for (var i = 0; i < 256; i++)
- base64Chars[i] = base64Regex.test(String.fromCharCode(i));
-
-var plusChar = '+'.charCodeAt(0),
- minusChar = '-'.charCodeAt(0),
- andChar = '&'.charCodeAt(0);
-
-Utf7Decoder.prototype.write = function(buf) {
- var res = "", lastI = 0,
- inBase64 = this.inBase64,
- base64Accum = this.base64Accum;
-
- // The decoder is more involved as we must handle chunks in stream.
-
- for (var i = 0; i < buf.length; i++) {
- if (!inBase64) { // We're in direct mode.
- // Write direct chars until '+'
- if (buf[i] == plusChar) {
- res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
- lastI = i+1;
- inBase64 = true;
- }
- } else { // We decode base64.
- if (!base64Chars[buf[i]]) { // Base64 ended.
- if (i == lastI && buf[i] == minusChar) {// "+-" -> "+"
- res += "+";
- } else {
- var b64str = base64Accum + buf.slice(lastI, i).toString();
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- if (buf[i] != minusChar) // Minus is absorbed after base64.
- i--;
-
- lastI = i+1;
- inBase64 = false;
- base64Accum = '';
- }
- }
- }
-
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
- } else {
- var b64str = base64Accum + buf.slice(lastI).toString();
-
- var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
- base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
- b64str = b64str.slice(0, canBeDecoded);
-
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
-
- return res;
-}
-
-Utf7Decoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0)
- res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
-
- this.inBase64 = false;
- this.base64Accum = '';
- return res;
-}
-
-
-// UTF-7-IMAP codec.
-// RFC3501 Sec. 5.1.3 Modified UTF-7 (http://tools.ietf.org/html/rfc3501#section-5.1.3)
-// Differences:
-// * Base64 part is started by "&" instead of "+"
-// * Direct characters are 0x20-0x7E, except "&" (0x26)
-// * In Base64, "," is used instead of "/"
-// * Base64 must not be used to represent direct characters.
-// * No implicit shift back from Base64 (should always end with '-')
-// * String must end in non-shifted position.
-// * "-&" while in base64 is not allowed.
-
-
-exports.utf7imap = Utf7IMAPCodec;
-function Utf7IMAPCodec(codecOptions, iconv) {
- this.iconv = iconv;
-};
-
-Utf7IMAPCodec.prototype.encoder = Utf7IMAPEncoder;
-Utf7IMAPCodec.prototype.decoder = Utf7IMAPDecoder;
-Utf7IMAPCodec.prototype.bomAware = true;
-
-
-// -- Encoding
-
-function Utf7IMAPEncoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = new Buffer(6);
- this.base64AccumIdx = 0;
-}
-
-Utf7IMAPEncoder.prototype.write = function(str) {
- var inBase64 = this.inBase64,
- base64Accum = this.base64Accum,
- base64AccumIdx = this.base64AccumIdx,
- buf = new Buffer(str.length*5 + 10), bufIdx = 0;
-
- for (var i = 0; i < str.length; i++) {
- var uChar = str.charCodeAt(i);
- if (0x20 <= uChar && uChar <= 0x7E) { // Direct character or '&'.
- if (inBase64) {
- if (base64AccumIdx > 0) {
- bufIdx += buf.write(base64Accum.slice(0, base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
- base64AccumIdx = 0;
- }
-
- buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
- inBase64 = false;
- }
-
- if (!inBase64) {
- buf[bufIdx++] = uChar; // Write direct character
-
- if (uChar === andChar) // Ampersand -> '&-'
- buf[bufIdx++] = minusChar;
- }
-
- } else { // Non-direct character
- if (!inBase64) {
- buf[bufIdx++] = andChar; // Write '&', then go to base64 mode.
- inBase64 = true;
- }
- if (inBase64) {
- base64Accum[base64AccumIdx++] = uChar >> 8;
- base64Accum[base64AccumIdx++] = uChar & 0xFF;
-
- if (base64AccumIdx == base64Accum.length) {
- bufIdx += buf.write(base64Accum.toString('base64').replace(/\//g, ','), bufIdx);
- base64AccumIdx = 0;
- }
- }
- }
- }
-
- this.inBase64 = inBase64;
- this.base64AccumIdx = base64AccumIdx;
-
- return buf.slice(0, bufIdx);
-}
-
-Utf7IMAPEncoder.prototype.end = function() {
- var buf = new Buffer(10), bufIdx = 0;
- if (this.inBase64) {
- if (this.base64AccumIdx > 0) {
- bufIdx += buf.write(this.base64Accum.slice(0, this.base64AccumIdx).toString('base64').replace(/\//g, ',').replace(/=+$/, ''), bufIdx);
- this.base64AccumIdx = 0;
- }
-
- buf[bufIdx++] = minusChar; // Write '-', then go to direct mode.
- this.inBase64 = false;
- }
-
- return buf.slice(0, bufIdx);
-}
-
-
-// -- Decoding
-
-function Utf7IMAPDecoder(options, codec) {
- this.iconv = codec.iconv;
- this.inBase64 = false;
- this.base64Accum = '';
-}
-
-var base64IMAPChars = base64Chars.slice();
-base64IMAPChars[','.charCodeAt(0)] = true;
-
-Utf7IMAPDecoder.prototype.write = function(buf) {
- var res = "", lastI = 0,
- inBase64 = this.inBase64,
- base64Accum = this.base64Accum;
-
- // The decoder is more involved as we must handle chunks in stream.
- // It is forgiving, closer to standard UTF-7 (for example, '-' is optional at the end).
-
- for (var i = 0; i < buf.length; i++) {
- if (!inBase64) { // We're in direct mode.
- // Write direct chars until '&'
- if (buf[i] == andChar) {
- res += this.iconv.decode(buf.slice(lastI, i), "ascii"); // Write direct chars.
- lastI = i+1;
- inBase64 = true;
- }
- } else { // We decode base64.
- if (!base64IMAPChars[buf[i]]) { // Base64 ended.
- if (i == lastI && buf[i] == minusChar) { // "&-" -> "&"
- res += "&";
- } else {
- var b64str = base64Accum + buf.slice(lastI, i).toString().replace(/,/g, '/');
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- if (buf[i] != minusChar) // Minus may be absorbed after base64.
- i--;
-
- lastI = i+1;
- inBase64 = false;
- base64Accum = '';
- }
- }
- }
-
- if (!inBase64) {
- res += this.iconv.decode(buf.slice(lastI), "ascii"); // Write direct chars.
- } else {
- var b64str = base64Accum + buf.slice(lastI).toString().replace(/,/g, '/');
-
- var canBeDecoded = b64str.length - (b64str.length % 8); // Minimal chunk: 2 quads -> 2x3 bytes -> 3 chars.
- base64Accum = b64str.slice(canBeDecoded); // The rest will be decoded in future.
- b64str = b64str.slice(0, canBeDecoded);
-
- res += this.iconv.decode(new Buffer(b64str, 'base64'), "utf16-be");
- }
-
- this.inBase64 = inBase64;
- this.base64Accum = base64Accum;
-
- return res;
-}
-
-Utf7IMAPDecoder.prototype.end = function() {
- var res = "";
- if (this.inBase64 && this.base64Accum.length > 0)
- res = this.iconv.decode(new Buffer(this.base64Accum, 'base64'), "utf16-be");
-
- this.inBase64 = false;
- this.base64Accum = '';
- return res;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b1e426d6..0000000000
--- a/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
+++ /dev/null
@@ -1,51 +0,0 @@
-"use strict";
-
-var BOMChar = '\uFEFF';
-
-exports.PrependBOM = PrependBOMWrapper
-function PrependBOMWrapper(encoder, options) {
- this.encoder = encoder;
- this.addBOM = true;
-}
-
-PrependBOMWrapper.prototype.write = function(str) {
- if (this.addBOM) {
- str = BOMChar + str;
- this.addBOM = false;
- }
-
- return this.encoder.write(str);
-}
-
-PrependBOMWrapper.prototype.end = function() {
- return this.encoder.end();
-}
-
-
-//------------------------------------------------------------------------------
-
-exports.StripBOM = StripBOMWrapper;
-function StripBOMWrapper(decoder, options) {
- this.decoder = decoder;
- this.pass = false;
- this.options = options || {};
-}
-
-StripBOMWrapper.prototype.write = function(buf) {
- var res = this.decoder.write(buf);
- if (this.pass || !res)
- return res;
-
- if (res[0] === BOMChar) {
- res = res.slice(1);
- if (typeof this.options.stripBOM === 'function')
- this.options.stripBOM();
- }
-
- this.pass = true;
- return res;
-}
-
-StripBOMWrapper.prototype.end = function() {
- return this.decoder.end();
-}
diff --git a/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 b/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
deleted file mode 100644
index 40d1aa571f..0000000000
--- a/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
+++ /dev/null
@@ -1,215 +0,0 @@
-"use strict";
-var Buffer = require("buffer").Buffer;
-
-// == Extend Node primitives to use iconv-lite =================================
-
-module.exports = function (iconv) {
- var original = undefined; // Place to keep original methods.
-
- // Node authors rewrote Buffer internals to make it compatible with
- // Uint8Array and we cannot patch key functions since then.
- iconv.supportsNodeEncodingsExtension = !(new Buffer(0) instanceof Uint8Array);
-
- iconv.extendNodeEncodings = function extendNodeEncodings() {
- if (original) return;
- original = {};
-
- if (!iconv.supportsNodeEncodingsExtension) {
- console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");
- console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");
- return;
- }
-
- var nodeNativeEncodings = {
- 'hex': true, 'utf8': true, 'utf-8': true, 'ascii': true, 'binary': true,
- 'base64': true, 'ucs2': true, 'ucs-2': true, 'utf16le': true, 'utf-16le': true,
- };
-
- Buffer.isNativeEncoding = function(enc) {
- return enc && nodeNativeEncodings[enc.toLowerCase()];
- }
-
- // -- SlowBuffer -----------------------------------------------------------
- var SlowBuffer = require('buffer').SlowBuffer;
-
- original.SlowBufferToString = SlowBuffer.prototype.toString;
- SlowBuffer.prototype.toString = function(encoding, start, end) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.SlowBufferToString.call(this, encoding, start, end);
-
- // Otherwise, use our decoding method.
- if (typeof start == 'undefined') start = 0;
- if (typeof end == 'undefined') end = this.length;
- return iconv.decode(this.slice(start, end), encoding);
- }
-
- original.SlowBufferWrite = SlowBuffer.prototype.write;
- SlowBuffer.prototype.write = function(string, offset, length, encoding) {
- // Support both (string, offset, length, encoding)
- // and the legacy (string, encoding, offset, length)
- if (isFinite(offset)) {
- if (!isFinite(length)) {
- encoding = length;
- length = undefined;
- }
- } else { // legacy
- var swap = encoding;
- encoding = offset;
- offset = length;
- length = swap;
- }
-
- offset = +offset || 0;
- var remaining = this.length - offset;
- if (!length) {
- length = remaining;
- } else {
- length = +length;
- if (length > remaining) {
- length = remaining;
- }
- }
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.SlowBufferWrite.call(this, string, offset, length, encoding);
-
- if (string.length > 0 && (length < 0 || offset < 0))
- throw new RangeError('attempt to write beyond buffer bounds');
-
- // Otherwise, use our encoding method.
- var buf = iconv.encode(string, encoding);
- if (buf.length < length) length = buf.length;
- buf.copy(this, offset, 0, length);
- return length;
- }
-
- // -- Buffer ---------------------------------------------------------------
-
- original.BufferIsEncoding = Buffer.isEncoding;
- Buffer.isEncoding = function(encoding) {
- return Buffer.isNativeEncoding(encoding) || iconv.encodingExists(encoding);
- }
-
- original.BufferByteLength = Buffer.byteLength;
- Buffer.byteLength = SlowBuffer.byteLength = function(str, encoding) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferByteLength.call(this, str, encoding);
-
- // Slow, I know, but we don't have a better way yet.
- return iconv.encode(str, encoding).length;
- }
-
- original.BufferToString = Buffer.prototype.toString;
- Buffer.prototype.toString = function(encoding, start, end) {
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferToString.call(this, encoding, start, end);
-
- // Otherwise, use our decoding method.
- if (typeof start == 'undefined') start = 0;
- if (typeof end == 'undefined') end = this.length;
- return iconv.decode(this.slice(start, end), encoding);
- }
-
- original.BufferWrite = Buffer.prototype.write;
- Buffer.prototype.write = function(string, offset, length, encoding) {
- var _offset = offset, _length = length, _encoding = encoding;
- // Support both (string, offset, length, encoding)
- // and the legacy (string, encoding, offset, length)
- if (isFinite(offset)) {
- if (!isFinite(length)) {
- encoding = length;
- length = undefined;
- }
- } else { // legacy
- var swap = encoding;
- encoding = offset;
- offset = length;
- length = swap;
- }
-
- encoding = String(encoding || 'utf8').toLowerCase();
-
- // Use native conversion when possible
- if (Buffer.isNativeEncoding(encoding))
- return original.BufferWrite.call(this, string, _offset, _length, _encoding);
-
- offset = +offset || 0;
- var remaining = this.length - offset;
- if (!length) {
- length = remaining;
- } else {
- length = +length;
- if (length > remaining) {
- length = remaining;
- }
- }
-
- if (string.length > 0 && (length < 0 || offset < 0))
- throw new RangeError('attempt to write beyond buffer bounds');
-
- // Otherwise, use our encoding method.
- var buf = iconv.encode(string, encoding);
- if (buf.length < length) length = buf.length;
- buf.copy(this, offset, 0, length);
- return length;
-
- // TODO: Set _charsWritten.
- }
-
-
- // -- Readable -------------------------------------------------------------
- if (iconv.supportsStreams) {
- var Readable = require('stream').Readable;
-
- original.ReadableSetEncoding = Readable.prototype.setEncoding;
- Readable.prototype.setEncoding = function setEncoding(enc, options) {
- // Use our own decoder, it has the same interface.
- // We cannot use original function as it doesn't handle BOM-s.
- this._readableState.decoder = iconv.getDecoder(enc, options);
- this._readableState.encoding = enc;
- }
-
- Readable.prototype.collect = iconv._collect;
- }
- }
-
- // Remove iconv-lite Node primitive extensions.
- iconv.undoExtendNodeEncodings = function undoExtendNodeEncodings() {
- if (!iconv.supportsNodeEncodingsExtension)
- return;
- if (!original)
- throw new Error("require('iconv-lite').undoExtendNodeEncodings(): Nothing to undo; extendNodeEncodings() is not called.")
-
- delete Buffer.isNativeEncoding;
-
- var SlowBuffer = require('buffer').SlowBuffer;
-
- SlowBuffer.prototype.toString = original.SlowBufferToString;
- SlowBuffer.prototype.write = original.SlowBufferWrite;
-
- Buffer.isEncoding = original.BufferIsEncoding;
- Buffer.byteLength = original.BufferByteLength;
- Buffer.prototype.toString = original.BufferToString;
- Buffer.prototype.write = original.BufferWrite;
-
- if (iconv.supportsStreams) {
- var Readable = require('stream').Readable;
-
- Readable.prototype.setEncoding = original.ReadableSetEncoding;
- delete Readable.prototype.collect;
- }
-
- original = undefined;
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index b9c83613ef..0000000000
--- a/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
+++ /dev/null
@@ -1,24 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License.
- * REQUIREMENT: This definition is dependent on the @types/node definition.
- * Install with `npm install @types/node --save-dev`
- *--------------------------------------------------------------------------------------------*/
-
-declare module 'iconv-lite' {
- export function decode(buffer: NodeBuffer, encoding: string, options?: Options): string;
-
- export function encode(content: string, encoding: string, options?: Options): NodeBuffer;
-
- export function encodingExists(encoding: string): boolean;
-
- export function decodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-
- export function encodeStream(encoding: string, options?: Options): NodeJS.ReadWriteStream;
-}
-
-export interface Options {
- stripBOM?: boolean;
- addBOM?: boolean;
- defaultEncoding?: string;
-}
diff --git a/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 b/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
deleted file mode 100644
index 990b421b39..0000000000
--- a/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
+++ /dev/null
@@ -1,148 +0,0 @@
-"use strict";
-
-// Some environments don't have global Buffer (e.g. React Native).
-// Solution would be installing npm modules "buffer" and "stream" explicitly.
-var Buffer = require("buffer").Buffer;
-
-var bomHandling = require("./bom-handling"),
- iconv = module.exports;
-
-// All codecs and aliases are kept here, keyed by encoding name/alias.
-// They are lazy loaded in `iconv.getCodec` from `encodings/index.js`.
-iconv.encodings = null;
-
-// Characters emitted in case of error.
-iconv.defaultCharUnicode = 'ļæ½';
-iconv.defaultCharSingleByte = '?';
-
-// Public API.
-iconv.encode = function encode(str, encoding, options) {
- str = "" + (str || ""); // Ensure string.
-
- var encoder = iconv.getEncoder(encoding, options);
-
- var res = encoder.write(str);
- var trail = encoder.end();
-
- return (trail && trail.length > 0) ? Buffer.concat([res, trail]) : res;
-}
-
-iconv.decode = function decode(buf, encoding, options) {
- if (typeof buf === 'string') {
- if (!iconv.skipDecodeWarning) {
- console.error('Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding');
- iconv.skipDecodeWarning = true;
- }
-
- buf = new Buffer("" + (buf || ""), "binary"); // Ensure buffer.
- }
-
- var decoder = iconv.getDecoder(encoding, options);
-
- var res = decoder.write(buf);
- var trail = decoder.end();
-
- return trail ? (res + trail) : res;
-}
-
-iconv.encodingExists = function encodingExists(enc) {
- try {
- iconv.getCodec(enc);
- return true;
- } catch (e) {
- return false;
- }
-}
-
-// Legacy aliases to convert functions
-iconv.toEncoding = iconv.encode;
-iconv.fromEncoding = iconv.decode;
-
-// Search for a codec in iconv.encodings. Cache codec data in iconv._codecDataCache.
-iconv._codecDataCache = {};
-iconv.getCodec = function getCodec(encoding) {
- if (!iconv.encodings)
- iconv.encodings = require("../encodings"); // Lazy load all encoding definitions.
-
- // Canonicalize encoding name: strip all non-alphanumeric chars and appended year.
- var enc = (''+encoding).toLowerCase().replace(/[^0-9a-z]|:\d{4}$/g, "");
-
- // Traverse iconv.encodings to find actual codec.
- var codecOptions = {};
- while (true) {
- var codec = iconv._codecDataCache[enc];
- if (codec)
- return codec;
-
- var codecDef = iconv.encodings[enc];
-
- switch (typeof codecDef) {
- case "string": // Direct alias to other encoding.
- enc = codecDef;
- break;
-
- case "object": // Alias with options. Can be layered.
- for (var key in codecDef)
- codecOptions[key] = codecDef[key];
-
- if (!codecOptions.encodingName)
- codecOptions.encodingName = enc;
-
- enc = codecDef.type;
- break;
-
- case "function": // Codec itself.
- if (!codecOptions.encodingName)
- codecOptions.encodingName = enc;
-
- // The codec function must load all tables and return object with .encoder and .decoder methods.
- // It'll be called only once (for each different options object).
- codec = new codecDef(codecOptions, iconv);
-
- iconv._codecDataCache[codecOptions.encodingName] = codec; // Save it to be reused later.
- return codec;
-
- default:
- throw new Error("Encoding not recognized: '" + encoding + "' (searched as: '"+enc+"')");
- }
- }
-}
-
-iconv.getEncoder = function getEncoder(encoding, options) {
- var codec = iconv.getCodec(encoding),
- encoder = new codec.encoder(options, codec);
-
- if (codec.bomAware && options && options.addBOM)
- encoder = new bomHandling.PrependBOM(encoder, options);
-
- return encoder;
-}
-
-iconv.getDecoder = function getDecoder(encoding, options) {
- var codec = iconv.getCodec(encoding),
- decoder = new codec.decoder(options, codec);
-
- if (codec.bomAware && !(options && options.stripBOM === false))
- decoder = new bomHandling.StripBOM(decoder, options);
-
- return decoder;
-}
-
-
-// Load extensions in Node. All of them are omitted in Browserify build via 'browser' field in package.json.
-var nodeVer = typeof process !== 'undefined' && process.versions && process.versions.node;
-if (nodeVer) {
-
- // Load streaming support in Node v0.10+
- var nodeVerArr = nodeVer.split(".").map(Number);
- if (nodeVerArr[0] > 0 || nodeVerArr[1] >= 10) {
- require("./streams")(iconv);
- }
-
- // Load Node primitive extensions.
- require("./extend-node")(iconv);
-}
-
-if ("Ā" != "\u0100") {
- console.error("iconv-lite warning: javascript files use encoding different from utf-8. See https://github.com/ashtuchkin/iconv-lite/wiki/Javascript-source-file-encodings for more info.");
-}
diff --git a/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 b/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
deleted file mode 100644
index bb4dbdaf4a..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-"use strict";
-
-var Buffer = require("buffer").Buffer,
- Transform = require("stream").Transform;
-
-
-// == Exports ==================================================================
-module.exports = function(iconv) {
-
- // Additional Public API.
- iconv.encodeStream = function encodeStream(encoding, options) {
- return new IconvLiteEncoderStream(iconv.getEncoder(encoding, options), options);
- }
-
- iconv.decodeStream = function decodeStream(encoding, options) {
- return new IconvLiteDecoderStream(iconv.getDecoder(encoding, options), options);
- }
-
- iconv.supportsStreams = true;
-
-
- // Not published yet.
- iconv.IconvLiteEncoderStream = IconvLiteEncoderStream;
- iconv.IconvLiteDecoderStream = IconvLiteDecoderStream;
- iconv._collect = IconvLiteDecoderStream.prototype.collect;
-};
-
-
-// == Encoder stream =======================================================
-function IconvLiteEncoderStream(conv, options) {
- this.conv = conv;
- options = options || {};
- options.decodeStrings = false; // We accept only strings, so we don't need to decode them.
- Transform.call(this, options);
-}
-
-IconvLiteEncoderStream.prototype = Object.create(Transform.prototype, {
- constructor: { value: IconvLiteEncoderStream }
-});
-
-IconvLiteEncoderStream.prototype._transform = function(chunk, encoding, done) {
- if (typeof chunk != 'string')
- return done(new Error("Iconv encoding stream needs strings as its input."));
- try {
- var res = this.conv.write(chunk);
- if (res && res.length) this.push(res);
- done();
- }
- catch (e) {
- done(e);
- }
-}
-
-IconvLiteEncoderStream.prototype._flush = function(done) {
- try {
- var res = this.conv.end();
- if (res && res.length) this.push(res);
- done();
- }
- catch (e) {
- done(e);
- }
-}
-
-IconvLiteEncoderStream.prototype.collect = function(cb) {
- var chunks = [];
- this.on('error', cb);
- this.on('data', function(chunk) { chunks.push(chunk); });
- this.on('end', function() {
- cb(null, Buffer.concat(chunks));
- });
- return this;
-}
-
-
-// == Decoder stream =======================================================
-function IconvLiteDecoderStream(conv, options) {
- this.conv = conv;
- options = options || {};
- options.encoding = this.encoding = 'utf8'; // We output strings.
- Transform.call(this, options);
-}
-
-IconvLiteDecoderStream.prototype = Object.create(Transform.prototype, {
- constructor: { value: IconvLiteDecoderStream }
-});
-
-IconvLiteDecoderStream.prototype._transform = function(chunk, encoding, done) {
- if (!Buffer.isBuffer(chunk))
- return done(new Error("Iconv decoding stream needs buffers as its input."));
- try {
- var res = this.conv.write(chunk);
- if (res && res.length) this.push(res, this.encoding);
- done();
- }
- catch (e) {
- done(e);
- }
-}
-
-IconvLiteDecoderStream.prototype._flush = function(done) {
- try {
- var res = this.conv.end();
- if (res && res.length) this.push(res, this.encoding);
- done();
- }
- catch (e) {
- done(e);
- }
-}
-
-IconvLiteDecoderStream.prototype.collect = function(cb) {
- var res = '';
- this.on('error', cb);
- this.on('data', function(chunk) { res += chunk; });
- this.on('end', function() {
- cb(null, res);
- });
- return this;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json
deleted file mode 100644
index 51b1938ed4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/node_modules/iconv-lite/package.json
+++ /dev/null
@@ -1,123 +0,0 @@
-{
- "_from": "iconv-lite@~0.4.13",
- "_id": "iconv-lite@0.4.19",
- "_inBundle": false,
- "_integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
- "_location": "/pacote/make-fetch-happen/node-fetch-npm/encoding/iconv-lite",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "iconv-lite@~0.4.13",
- "name": "iconv-lite",
- "escapedName": "iconv-lite",
- "rawSpec": "~0.4.13",
- "saveSpec": null,
- "fetchSpec": "~0.4.13"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/node-fetch-npm/encoding"
- ],
- "_resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "_shasum": "f7468f60135f5e5dad3399c0a81be9a1603a082b",
- "_spec": "iconv-lite@~0.4.13",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding",
- "author": {
- "name": "Alexander Shtuchkin",
- "email": "ashtuchkin@gmail.com"
- },
- "browser": {
- "./extend-node": false,
- "./streams": false
- },
- "bugs": {
- "url": "https://github.com/ashtuchkin/iconv-lite/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jinwu Zhan",
- "url": "https://github.com/jenkinv"
- },
- {
- "name": "Adamansky Anton",
- "url": "https://github.com/adamansky"
- },
- {
- "name": "George Stagas",
- "url": "https://github.com/stagas"
- },
- {
- "name": "Mike D Pilsbury",
- "url": "https://github.com/pekim"
- },
- {
- "name": "Niggler",
- "url": "https://github.com/Niggler"
- },
- {
- "name": "wychi",
- "url": "https://github.com/wychi"
- },
- {
- "name": "David Kuo",
- "url": "https://github.com/david50407"
- },
- {
- "name": "ChangZhuo Chen",
- "url": "https://github.com/czchen"
- },
- {
- "name": "Lee Treveil",
- "url": "https://github.com/leetreveil"
- },
- {
- "name": "Brian White",
- "url": "https://github.com/mscdex"
- },
- {
- "name": "Mithgol",
- "url": "https://github.com/Mithgol"
- },
- {
- "name": "Nazar Leush",
- "url": "https://github.com/nleush"
- }
- ],
- "deprecated": false,
- "description": "Convert character encodings in pure javascript.",
- "devDependencies": {
- "async": "*",
- "errto": "*",
- "iconv": "*",
- "istanbul": "*",
- "mocha": "*",
- "request": "*",
- "semver": "*",
- "unorm": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "homepage": "https://github.com/ashtuchkin/iconv-lite",
- "keywords": [
- "iconv",
- "convert",
- "charset",
- "icu"
- ],
- "license": "MIT",
- "main": "./lib/index.js",
- "name": "iconv-lite",
- "repository": {
- "type": "git",
- "url": "git://github.com/ashtuchkin/iconv-lite.git"
- },
- "scripts": {
- "coverage": "istanbul cover _mocha -- --grep .",
- "coverage-open": "open coverage/lcov-report/index.html",
- "test": "mocha --reporter spec --grep ."
- },
- "typings": "./lib/index.d.ts",
- "version": "0.4.19"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json
deleted file mode 100644
index eff80f3397..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "_from": "encoding@^0.1.11",
- "_id": "encoding@0.1.12",
- "_inBundle": false,
- "_integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=",
- "_location": "/pacote/make-fetch-happen/node-fetch-npm/encoding",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "encoding@^0.1.11",
- "name": "encoding",
- "escapedName": "encoding",
- "rawSpec": "^0.1.11",
- "saveSpec": null,
- "fetchSpec": "^0.1.11"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/node-fetch-npm"
- ],
- "_resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
- "_shasum": "538b66f3ee62cd1ab51ec323829d1f9480c74beb",
- "_spec": "encoding@^0.1.11",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm",
- "author": {
- "name": "Andris Reinman"
- },
- "bugs": {
- "url": "https://github.com/andris9/encoding/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "iconv-lite": "~0.4.13"
- },
- "deprecated": false,
- "description": "Convert encodings, uses iconv by default and fallbacks to iconv-lite if needed",
- "devDependencies": {
- "iconv": "~2.1.11",
- "nodeunit": "~0.9.1"
- },
- "homepage": "https://github.com/andris9/encoding#readme",
- "license": "MIT",
- "main": "lib/encoding.js",
- "name": "encoding",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/andris9/encoding.git"
- },
- "scripts": {
- "test": "nodeunit test"
- },
- "version": "0.1.12"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js
deleted file mode 100644
index 0de4dcb175..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/test/test.js
+++ /dev/null
@@ -1,75 +0,0 @@
-'use strict';
-
-var Iconv = require('../lib/iconv-loader');
-var encoding = require('../lib/encoding');
-
-exports['General tests'] = {
-
- 'Iconv is available': function (test) {
- test.ok(Iconv);
- test.done();
- },
-
- 'From UTF-8 to Latin_1 with Iconv': function (test) {
- var input = 'ƕƄƖƜ',
- expected = new Buffer([0xd5, 0xc4, 0xd6, 0xdc]);
- test.deepEqual(encoding.convert(input, 'latin1'), expected);
- test.done();
- },
-
- 'From Latin_1 to UTF-8 with Iconv': function (test) {
- var input = new Buffer([0xd5, 0xc4, 0xd6, 0xdc]),
- expected = 'ƕƄƖƜ';
- test.deepEqual(encoding.convert(input, 'utf-8', 'latin1').toString(), expected);
- test.done();
- },
-
- 'From UTF-8 to UTF-8 with Iconv': function (test) {
- var input = 'ƕƄƖƜ',
- expected = new Buffer('ƕƄƖƜ');
- test.deepEqual(encoding.convert(input, 'utf-8', 'utf-8'), expected);
- test.done();
- },
-
- 'From Latin_13 to Latin_15 with Iconv': function (test) {
- var input = new Buffer([0xd5, 0xc4, 0xd6, 0xdc, 0xd0]),
- expected = new Buffer([0xd5, 0xc4, 0xd6, 0xdc, 0xA6]);
- test.deepEqual(encoding.convert(input, 'latin_15', 'latin13'), expected);
- test.done();
- },
-
- 'From ISO-2022-JP to UTF-8 with Iconv': function (test) {
- var input = new Buffer('GyRCM1g5OzU7PVEwdzgmPSQ4IUYkMnFKczlwGyhC', 'base64'),
- expected = new Buffer('5a2m5qCh5oqA6KGT5ZOh56CU5L+u5qSc6KiO5Lya5aCx5ZGK', 'base64');
- test.deepEqual(encoding.convert(input, 'utf-8', 'ISO-2022-JP'), expected);
- test.done();
- },
-
- 'From UTF-8 to Latin_1 with iconv-lite': function (test) {
- var input = 'ƕƄƖƜ',
- expected = new Buffer([0xd5, 0xc4, 0xd6, 0xdc]);
- test.deepEqual(encoding.convert(input, 'latin1', false, true), expected);
- test.done();
- },
-
- 'From Latin_1 to UTF-8 with iconv-lite': function (test) {
- var input = new Buffer([0xd5, 0xc4, 0xd6, 0xdc]),
- expected = 'ƕƄƖƜ';
- test.deepEqual(encoding.convert(input, 'utf-8', 'latin1', true).toString(), expected);
- test.done();
- },
-
- 'From UTF-8 to UTF-8 with iconv-lite': function (test) {
- var input = 'ƕƄƖƜ',
- expected = new Buffer('ƕƄƖƜ');
- test.deepEqual(encoding.convert(input, 'utf-8', 'utf-8', true), expected);
- test.done();
- },
-
- 'From Latin_13 to Latin_15 with iconv-lite': function (test) {
- var input = new Buffer([0xd5, 0xc4, 0xd6, 0xdc, 0xd0]),
- expected = new Buffer([0xd5, 0xc4, 0xd6, 0xdc, 0xA6]);
- test.deepEqual(encoding.convert(input, 'latin_15', 'latin13', true), expected);
- test.done();
- }
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md
deleted file mode 100644
index 843a0bcb94..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="1.0.1"></a>
-## [1.0.1](https://github.com/zkat/json-parse-better-errors/compare/v1.0.0...v1.0.1) (2017-08-16)
-
-
-### Bug Fixes
-
-* **license:** oops. Forgot to update license.md ([efe2958](https://github.com/zkat/json-parse-better-errors/commit/efe2958))
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([562c977](https://github.com/zkat/json-parse-better-errors/commit/562c977))
-
-
-### BREAKING CHANGES
-
-* **init:** This is the first commit!
-
-
-
-<a name="0.1.0"></a>
-# 0.1.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([9dd1a19](https://github.com/zkat/json-parse-better-errors/commit/9dd1a19))
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md
deleted file mode 100644
index c51842cc4a..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/LICENSE.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright 2017 Kat MarchƔn
-
-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/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md
deleted file mode 100644
index 667323c775..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# json-parse-better-errors [![npm version](https://img.shields.io/npm/v/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![license](https://img.shields.io/npm/l/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![Travis](https://img.shields.io/travis/zkat/json-parse-better-errors.svg)](https://travis-ci.org/zkat/json-parse-better-errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/json-parse-better-errors?svg=true)](https://ci.appveyor.com/project/zkat/json-parse-better-errors) [![Coverage Status](https://coveralls.io/repos/github/zkat/json-parse-better-errors/badge.svg?branch=latest)](https://coveralls.io/github/zkat/json-parse-better-errors?branch=latest)
-
-[`json-parse-better-errors`](https://github.com/zkat/json-parse-better-errors) is a Node.js library for managing
-local key and content address caches. It's really fast, really good at
-concurrency, and it will never give you corrupted data, even if cache files
-get corrupted or manipulated.
-
-It was originally written to be used as [npm](https://npm.im)'s local cache, but
-can just as easily be used on its own
-
-_Translations: [espaƱol](README.es.md)_
-
-## Install
-
-`$ npm install --save json-parse-better-errors`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * [`parse`](#parse)
-
-### Example
-
-```javascript
-const parseJson = require('json-parse-better-errors')
-
-parseJson('"foo"')
-parseJson('garbage') // more useful error message
-```
-
-### Features
-
-* Like JSON.parse, but the errors are better.
-
-### Contributing
-
-The json-parse-better-errors team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
-
-All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
-
-Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
-
-Happy hacking!
-
-### API
-
-#### <a name="parse"></a> `> parse(txt, ?reviver, ?context=20)`
-
-Works just like `JSON.parse`, but will include a bit more information when an
-error happens.
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js
deleted file mode 100644
index 32c3635866..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict'
-
-module.exports = parseJson
-function parseJson (txt, reviver, context) {
- context = context || 20
- try {
- return JSON.parse(txt, reviver)
- } catch (e) {
- const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i)
- const errIdx = syntaxErr
- ? +syntaxErr[1]
- : e.message.match(/^Unexpected end of JSON.*/i)
- ? txt.length - 1
- : null
- if (errIdx != null) {
- const start = errIdx <= context
- ? 0
- : errIdx - context
- const end = errIdx + context >= txt.length
- ? txt.length
- : errIdx + context
- e.message += ` while parsing near '${
- start === 0 ? '' : '...'
- }${txt.slice(start, end)}${
- end === txt.length ? '' : '...'
- }'`
- } else {
- e.message += ` while parsing '${txt.slice(0, context * 2)}'`
- }
- throw e
- }
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json
deleted file mode 100644
index c088bb6a98..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/json-parse-better-errors/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "json-parse-better-errors@^1.0.0",
- "_id": "json-parse-better-errors@1.0.1",
- "_inBundle": false,
- "_integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
- "_location": "/pacote/make-fetch-happen/node-fetch-npm/json-parse-better-errors",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-parse-better-errors@^1.0.0",
- "name": "json-parse-better-errors",
- "escapedName": "json-parse-better-errors",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/node-fetch-npm"
- ],
- "_resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
- "_shasum": "50183cd1b2d25275de069e9e71b467ac9eab973a",
- "_spec": "json-parse-better-errors@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/json-parse-better-errors/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "deprecated": false,
- "description": "JSON.parse with context information on error",
- "devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/json-parse-better-errors#readme",
- "keywords": [
- "JSON",
- "parser"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "json-parse-better-errors",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/json-parse-better-errors.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json
deleted file mode 100644
index fb0b79a0d4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/package.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "_from": "node-fetch-npm@^2.0.1",
- "_id": "node-fetch-npm@2.0.2",
- "_inBundle": false,
- "_integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==",
- "_location": "/pacote/make-fetch-happen/node-fetch-npm",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "node-fetch-npm@^2.0.1",
- "name": "node-fetch-npm",
- "escapedName": "node-fetch-npm",
- "rawSpec": "^2.0.1",
- "saveSpec": null,
- "fetchSpec": "^2.0.1"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz",
- "_shasum": "7258c9046182dca345b4208eda918daf33697ff7",
- "_spec": "node-fetch-npm@^2.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen",
- "author": {
- "name": "David Frank"
- },
- "bugs": {
- "url": "https://github.com/npm/node-fetch-npm/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org"
- },
- {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- }
- ],
- "dependencies": {
- "encoding": "^0.1.11",
- "json-parse-better-errors": "^1.0.0",
- "safe-buffer": "^5.1.1"
- },
- "deprecated": false,
- "description": "An npm cli-oriented fork of the excellent node-fetch",
- "devDependencies": {
- "chai": "^3.5.0",
- "chai-as-promised": "^6.0.0",
- "chai-iterator": "^1.1.1",
- "chai-string": "^1.4.0",
- "codecov": "^1.0.1",
- "cross-env": "^3.1.4",
- "form-data": "^2.2.0",
- "is-builtin-module": "^1.0.0",
- "mocha": "^3.5.0",
- "nyc": "^10.3.2",
- "parted": "^0.1.1",
- "promise": "^7.3.1",
- "resumer": "0.0.0",
- "standard": "^10.0.3",
- "standard-version": "^4.2.0",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8",
- "whatwg-url": "^4.8.0"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "src/*.js"
- ],
- "homepage": "https://github.com/npm/node-fetch-npm",
- "keywords": [
- "fetch",
- "http",
- "promise"
- ],
- "license": "MIT",
- "main": "src/index.js",
- "name": "node-fetch-npm",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/npm/node-fetch-npm.git"
- },
- "scripts": {
- "coverage": "nyc --reporter json --reporter text mocha -R spec test/test.js && codecov -f coverage/coverage-final.json",
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard src/*",
- "release": "standard-version -s",
- "report": "nyc --reporter lcov --reporter text mocha -R spec test/test.js",
- "test": "mocha test/test.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "2.0.2"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js
deleted file mode 100644
index 0a4462abd6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/blob.js
+++ /dev/null
@@ -1,109 +0,0 @@
-'use strict'
-// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js
-// (MIT licensed)
-
-const Buffer = require('safe-buffer').Buffer
-
-const BUFFER = Symbol('buffer')
-const TYPE = Symbol('type')
-const CLOSED = Symbol('closed')
-
-class Blob {
- constructor () {
- Object.defineProperty(this, Symbol.toStringTag, {
- value: 'Blob',
- writable: false,
- enumerable: false,
- configurable: true
- })
-
- this[CLOSED] = false
- this[TYPE] = ''
-
- const blobParts = arguments[0]
- const options = arguments[1]
-
- const buffers = []
-
- if (blobParts) {
- const a = blobParts
- const length = Number(a.length)
- for (let i = 0; i < length; i++) {
- const element = a[i]
- let buffer
- if (Buffer.isBuffer(element)) {
- buffer = element
- } else if (ArrayBuffer.isView(element)) {
- buffer = Buffer.from(new Uint8Array(element.buffer, element.byteOffset, element.byteLength))
- } else if (element instanceof ArrayBuffer) {
- buffer = Buffer.from(new Uint8Array(element))
- } else if (element instanceof Blob) {
- buffer = element[BUFFER]
- } else {
- buffer = Buffer.from(typeof element === 'string' ? element : String(element))
- }
- buffers.push(buffer)
- }
- }
-
- this[BUFFER] = Buffer.concat(buffers)
-
- let type = options && options.type !== undefined && String(options.type).toLowerCase()
- if (type && !/[^\u0020-\u007E]/.test(type)) {
- this[TYPE] = type
- }
- }
- get size () {
- return this[CLOSED] ? 0 : this[BUFFER].length
- }
- get type () {
- return this[TYPE]
- }
- get isClosed () {
- return this[CLOSED]
- }
- slice () {
- const size = this.size
-
- const start = arguments[0]
- const end = arguments[1]
- let relativeStart, relativeEnd
- if (start === undefined) {
- relativeStart = 0
- } else if (start < 0) {
- relativeStart = Math.max(size + start, 0)
- } else {
- relativeStart = Math.min(start, size)
- }
- if (end === undefined) {
- relativeEnd = size
- } else if (end < 0) {
- relativeEnd = Math.max(size + end, 0)
- } else {
- relativeEnd = Math.min(end, size)
- }
- const span = Math.max(relativeEnd - relativeStart, 0)
-
- const buffer = this[BUFFER]
- const slicedBuffer = buffer.slice(
- relativeStart,
- relativeStart + span
- )
- const blob = new Blob([], { type: arguments[2] })
- blob[BUFFER] = slicedBuffer
- blob[CLOSED] = this[CLOSED]
- return blob
- }
- close () {
- this[CLOSED] = true
- }
-}
-exports = module.exports = Blob
-exports.BUFFER = BUFFER
-
-Object.defineProperty(Blob.prototype, Symbol.toStringTag, {
- value: 'BlobPrototype',
- writable: false,
- enumerable: false,
- configurable: true
-})
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js
deleted file mode 100644
index 9e7481857a..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/body.js
+++ /dev/null
@@ -1,411 +0,0 @@
-'use strict'
-
-/**
- * body.js
- *
- * Body interface provides common methods for Request and Response
- */
-
-const Buffer = require('safe-buffer').Buffer
-
-const Blob = require('./blob.js')
-const BUFFER = Blob.BUFFER
-const convert = require('encoding').convert
-const parseJson = require('json-parse-better-errors')
-const FetchError = require('./fetch-error.js')
-const Stream = require('stream')
-
-const PassThrough = Stream.PassThrough
-const DISTURBED = Symbol('disturbed')
-
-/**
- * Body class
- *
- * Cannot use ES6 class because Body must be called with .call().
- *
- * @param Stream body Readable stream
- * @param Object opts Response options
- * @return Void
- */
-exports = module.exports = Body
-
-function Body (body, opts) {
- if (!opts) opts = {}
- const size = opts.size == null ? 0 : opts.size
- const timeout = opts.timeout == null ? 0 : opts.timeout
- if (body == null) {
- // body is undefined or null
- body = null
- } else if (typeof body === 'string') {
- // body is string
- } else if (body instanceof Blob) {
- // body is blob
- } else if (Buffer.isBuffer(body)) {
- // body is buffer
- } else if (body instanceof Stream) {
- // body is stream
- } else {
- // none of the above
- // coerce to string
- body = String(body)
- }
- this.body = body
- this[DISTURBED] = false
- this.size = size
- this.timeout = timeout
-}
-
-Body.prototype = {
- get bodyUsed () {
- return this[DISTURBED]
- },
-
- /**
- * Decode response as ArrayBuffer
- *
- * @return Promise
- */
- arrayBuffer () {
- return consumeBody.call(this).then(buf => buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength))
- },
-
- /**
- * Return raw response as Blob
- *
- * @return Promise
- */
- blob () {
- let ct = (this.headers && this.headers.get('content-type')) || ''
- return consumeBody.call(this).then(buf => Object.assign(
- // Prevent copying
- new Blob([], {
- type: ct.toLowerCase()
- }),
- {
- [BUFFER]: buf
- }
- ))
- },
-
- /**
- * Decode response as json
- *
- * @return Promise
- */
- json () {
- return consumeBody.call(this).then(buffer => parseJson(buffer.toString()))
- },
-
- /**
- * Decode response as text
- *
- * @return Promise
- */
- text () {
- return consumeBody.call(this).then(buffer => buffer.toString())
- },
-
- /**
- * Decode response as buffer (non-spec api)
- *
- * @return Promise
- */
- buffer () {
- return consumeBody.call(this)
- },
-
- /**
- * Decode response as text, while automatically detecting the encoding and
- * trying to decode to UTF-8 (non-spec api)
- *
- * @return Promise
- */
- textConverted () {
- return consumeBody.call(this).then(buffer => convertBody(buffer, this.headers))
- }
-
-}
-
-Body.mixIn = function (proto) {
- for (const name of Object.getOwnPropertyNames(Body.prototype)) {
- // istanbul ignore else: future proof
- if (!(name in proto)) {
- const desc = Object.getOwnPropertyDescriptor(Body.prototype, name)
- Object.defineProperty(proto, name, desc)
- }
- }
-}
-
-/**
- * Decode buffers into utf-8 string
- *
- * @return Promise
- */
-function consumeBody (body) {
- if (this[DISTURBED]) {
- return Body.Promise.reject(new Error(`body used already for: ${this.url}`))
- }
-
- this[DISTURBED] = true
-
- // body is null
- if (this.body === null) {
- return Body.Promise.resolve(Buffer.alloc(0))
- }
-
- // body is string
- if (typeof this.body === 'string') {
- return Body.Promise.resolve(Buffer.from(this.body))
- }
-
- // body is blob
- if (this.body instanceof Blob) {
- return Body.Promise.resolve(this.body[BUFFER])
- }
-
- // body is buffer
- if (Buffer.isBuffer(this.body)) {
- return Body.Promise.resolve(this.body)
- }
-
- // istanbul ignore if: should never happen
- if (!(this.body instanceof Stream)) {
- return Body.Promise.resolve(Buffer.alloc(0))
- }
-
- // body is stream
- // get ready to actually consume the body
- let accum = []
- let accumBytes = 0
- let abort = false
-
- return new Body.Promise((resolve, reject) => {
- let resTimeout
-
- // allow timeout on slow response body
- if (this.timeout) {
- resTimeout = setTimeout(() => {
- abort = true
- reject(new FetchError(`Response timeout while trying to fetch ${this.url} (over ${this.timeout}ms)`, 'body-timeout'))
- }, this.timeout)
- }
-
- // handle stream error, such as incorrect content-encoding
- this.body.on('error', err => {
- reject(new FetchError(`Invalid response body while trying to fetch ${this.url}: ${err.message}`, 'system', err))
- })
-
- this.body.on('data', chunk => {
- if (abort || chunk === null) {
- return
- }
-
- if (this.size && accumBytes + chunk.length > this.size) {
- abort = true
- reject(new FetchError(`content size at ${this.url} over limit: ${this.size}`, 'max-size'))
- return
- }
-
- accumBytes += chunk.length
- accum.push(chunk)
- })
-
- this.body.on('end', () => {
- if (abort) {
- return
- }
-
- clearTimeout(resTimeout)
- resolve(Buffer.concat(accum))
- })
- })
-}
-
-/**
- * Detect buffer encoding and convert to target encoding
- * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding
- *
- * @param Buffer buffer Incoming buffer
- * @param String encoding Target encoding
- * @return String
- */
-function convertBody (buffer, headers) {
- const ct = headers.get('content-type')
- let charset = 'utf-8'
- let res, str
-
- // header
- if (ct) {
- res = /charset=([^;]*)/i.exec(ct)
- }
-
- // no charset in content type, peek at response body for at most 1024 bytes
- str = buffer.slice(0, 1024).toString()
-
- // html5
- if (!res && str) {
- res = /<meta.+?charset=(['"])(.+?)\1/i.exec(str)
- }
-
- // html4
- if (!res && str) {
- res = /<meta[\s]+?http-equiv=(['"])content-type\1[\s]+?content=(['"])(.+?)\2/i.exec(str)
-
- if (res) {
- res = /charset=(.*)/i.exec(res.pop())
- }
- }
-
- // xml
- if (!res && str) {
- res = /<\?xml.+?encoding=(['"])(.+?)\1/i.exec(str)
- }
-
- // found charset
- if (res) {
- charset = res.pop()
-
- // prevent decode issues when sites use incorrect encoding
- // ref: https://hsivonen.fi/encoding-menu/
- if (charset === 'gb2312' || charset === 'gbk') {
- charset = 'gb18030'
- }
- }
-
- // turn raw buffers into a single utf-8 buffer
- return convert(
- buffer
- , 'UTF-8'
- , charset
- ).toString()
-}
-
-/**
- * Clone body given Res/Req instance
- *
- * @param Mixed instance Response or Request instance
- * @return Mixed
- */
-exports.clone = function clone (instance) {
- let p1, p2
- let body = instance.body
-
- // don't allow cloning a used body
- if (instance.bodyUsed) {
- throw new Error('cannot clone body after it is used')
- }
-
- // check that body is a stream and not form-data object
- // note: we can't clone the form-data object without having it as a dependency
- if ((body instanceof Stream) && (typeof body.getBoundary !== 'function')) {
- // tee instance body
- p1 = new PassThrough()
- p2 = new PassThrough()
- body.pipe(p1)
- body.pipe(p2)
- // set instance body to teed body and return the other teed body
- instance.body = p1
- body = p2
- }
-
- return body
-}
-
-/**
- * Performs the operation "extract a `Content-Type` value from |object|" as
- * specified in the specification:
- * https://fetch.spec.whatwg.org/#concept-bodyinit-extract
- *
- * This function assumes that instance.body is present and non-null.
- *
- * @param Mixed instance Response or Request instance
- */
-exports.extractContentType = function extractContentType (instance) {
- const body = instance.body
-
- // istanbul ignore if: Currently, because of a guard in Request, body
- // can never be null. Included here for completeness.
- if (body === null) {
- // body is null
- return null
- } else if (typeof body === 'string') {
- // body is string
- return 'text/plain;charset=UTF-8'
- } else if (body instanceof Blob) {
- // body is blob
- return body.type || null
- } else if (Buffer.isBuffer(body)) {
- // body is buffer
- return null
- } else if (typeof body.getBoundary === 'function') {
- // detect form data input from form-data module
- return `multipart/form-data;boundary=${body.getBoundary()}`
- } else {
- // body is stream
- // can't really do much about this
- return null
- }
-}
-
-exports.getTotalBytes = function getTotalBytes (instance) {
- const body = instance.body
-
- // istanbul ignore if: included for completion
- if (body === null) {
- // body is null
- return 0
- } else if (typeof body === 'string') {
- // body is string
- return Buffer.byteLength(body)
- } else if (body instanceof Blob) {
- // body is blob
- return body.size
- } else if (Buffer.isBuffer(body)) {
- // body is buffer
- return body.length
- } else if (body && typeof body.getLengthSync === 'function') {
- // detect form data input from form-data module
- if ((
- // 1.x
- body._lengthRetrievers &&
- body._lengthRetrievers.length === 0
- ) || (
- // 2.x
- body.hasKnownLength && body.hasKnownLength()
- )) {
- return body.getLengthSync()
- }
- return null
- } else {
- // body is stream
- // can't really do much about this
- return null
- }
-}
-
-exports.writeToStream = function writeToStream (dest, instance) {
- const body = instance.body
-
- if (body === null) {
- // body is null
- dest.end()
- } else if (typeof body === 'string') {
- // body is string
- dest.write(body)
- dest.end()
- } else if (body instanceof Blob) {
- // body is blob
- dest.write(body[BUFFER])
- dest.end()
- } else if (Buffer.isBuffer(body)) {
- // body is buffer
- dest.write(body)
- dest.end()
- } else {
- // body is stream
- body.pipe(dest)
- }
-}
-
-// expose Promise
-Body.Promise = global.Promise
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js
deleted file mode 100644
index 47b57c794c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/common.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict'
-/**
- * A set of utilities borrowed from Node.js' _http_common.js
- */
-
-/**
- * Verifies that the given val is a valid HTTP token
- * per the rules defined in RFC 7230
- * See https://tools.ietf.org/html/rfc7230#section-3.2.6
- *
- * Allowed characters in an HTTP token:
- * ^_`a-z 94-122
- * A-Z 65-90
- * - 45
- * 0-9 48-57
- * ! 33
- * #$%&' 35-39
- * *+ 42-43
- * . 46
- * | 124
- * ~ 126
- *
- * This implementation of checkIsHttpToken() loops over the string instead of
- * using a regular expression since the former is up to 180% faster with v8 4.9
- * depending on the string length (the shorter the string, the larger the
- * performance difference)
- *
- * Additionally, checkIsHttpToken() is currently designed to be inlinable by v8,
- * so take care when making changes to the implementation so that the source
- * code size does not exceed v8's default max_inlined_source_size setting.
- **/
-/* istanbul ignore next */
-function isValidTokenChar (ch) {
- if (ch >= 94 && ch <= 122) { return true }
- if (ch >= 65 && ch <= 90) { return true }
- if (ch === 45) { return true }
- if (ch >= 48 && ch <= 57) { return true }
- if (ch === 34 || ch === 40 || ch === 41 || ch === 44) { return false }
- if (ch >= 33 && ch <= 46) { return true }
- if (ch === 124 || ch === 126) { return true }
- return false
-}
-/* istanbul ignore next */
-function checkIsHttpToken (val) {
- if (typeof val !== 'string' || val.length === 0) { return false }
- if (!isValidTokenChar(val.charCodeAt(0))) { return false }
- const len = val.length
- if (len > 1) {
- if (!isValidTokenChar(val.charCodeAt(1))) { return false }
- if (len > 2) {
- if (!isValidTokenChar(val.charCodeAt(2))) { return false }
- if (len > 3) {
- if (!isValidTokenChar(val.charCodeAt(3))) { return false }
- for (var i = 4; i < len; i++) {
- if (!isValidTokenChar(val.charCodeAt(i))) { return false }
- }
- }
- }
- }
- return true
-}
-exports.checkIsHttpToken = checkIsHttpToken
-
-/**
- * True if val contains an invalid field-vchar
- * field-value = *( field-content / obs-fold )
- * field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ]
- * field-vchar = VCHAR / obs-text
- *
- * checkInvalidHeaderChar() is currently designed to be inlinable by v8,
- * so take care when making changes to the implementation so that the source
- * code size does not exceed v8's default max_inlined_source_size setting.
- **/
-/* istanbul ignore next */
-function checkInvalidHeaderChar (val) {
- val += ''
- if (val.length < 1) { return false }
- var c = val.charCodeAt(0)
- if ((c <= 31 && c !== 9) || c > 255 || c === 127) { return true }
- if (val.length < 2) { return false }
- c = val.charCodeAt(1)
- if ((c <= 31 && c !== 9) || c > 255 || c === 127) { return true }
- if (val.length < 3) { return false }
- c = val.charCodeAt(2)
- if ((c <= 31 && c !== 9) || c > 255 || c === 127) { return true }
- for (var i = 3; i < val.length; ++i) {
- c = val.charCodeAt(i)
- if ((c <= 31 && c !== 9) || c > 255 || c === 127) { return true }
- }
- return false
-}
-exports.checkInvalidHeaderChar = checkInvalidHeaderChar
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js
deleted file mode 100644
index 338e1e2729..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/fetch-error.js
+++ /dev/null
@@ -1,35 +0,0 @@
-'use strict'
-
-/**
- * fetch-error.js
- *
- * FetchError interface for operational errors
- */
-
-/**
- * Create FetchError instance
- *
- * @param String message Error message for human
- * @param String type Error type for machine
- * @param String systemError For Node.js system error
- * @return FetchError
- */
-module.exports = FetchError
-function FetchError (message, type, systemError) {
- Error.call(this, message)
-
- this.message = message
- this.type = type
-
- // when err.type is `system`, err.code contains system error code
- if (systemError) {
- this.code = this.errno = systemError.code
- }
-
- // hide custom error implementation details from end-users
- Error.captureStackTrace(this, this.constructor)
-}
-
-FetchError.prototype = Object.create(Error.prototype)
-FetchError.prototype.constructor = FetchError
-FetchError.prototype.name = 'FetchError'
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js
deleted file mode 100644
index 28f71cd9b8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/headers.js
+++ /dev/null
@@ -1,296 +0,0 @@
-'use strict'
-
-/**
- * headers.js
- *
- * Headers class offers convenient helpers
- */
-
-const common = require('./common.js')
-const checkInvalidHeaderChar = common.checkInvalidHeaderChar
-const checkIsHttpToken = common.checkIsHttpToken
-
-function sanitizeName (name) {
- name += ''
- if (!checkIsHttpToken(name)) {
- throw new TypeError(`${name} is not a legal HTTP header name`)
- }
- return name.toLowerCase()
-}
-
-function sanitizeValue (value) {
- value += ''
- if (checkInvalidHeaderChar(value)) {
- throw new TypeError(`${value} is not a legal HTTP header value`)
- }
- return value
-}
-
-const MAP = Symbol('map')
-class Headers {
- /**
- * Headers class
- *
- * @param Object headers Response headers
- * @return Void
- */
- constructor (init) {
- this[MAP] = Object.create(null)
-
- if (init instanceof Headers) {
- const rawHeaders = init.raw()
- const headerNames = Object.keys(rawHeaders)
-
- for (const headerName of headerNames) {
- for (const value of rawHeaders[headerName]) {
- this.append(headerName, value)
- }
- }
-
- return
- }
-
- // We don't worry about converting prop to ByteString here as append()
- // will handle it.
- if (init == null) {
- // no op
- } else if (typeof init === 'object') {
- const method = init[Symbol.iterator]
- if (method != null) {
- if (typeof method !== 'function') {
- throw new TypeError('Header pairs must be iterable')
- }
-
- // sequence<sequence<ByteString>>
- // Note: per spec we have to first exhaust the lists then process them
- const pairs = []
- for (const pair of init) {
- if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') {
- throw new TypeError('Each header pair must be iterable')
- }
- pairs.push(Array.from(pair))
- }
-
- for (const pair of pairs) {
- if (pair.length !== 2) {
- throw new TypeError('Each header pair must be a name/value tuple')
- }
- this.append(pair[0], pair[1])
- }
- } else {
- // record<ByteString, ByteString>
- for (const key of Object.keys(init)) {
- const value = init[key]
- this.append(key, value)
- }
- }
- } else {
- throw new TypeError('Provided initializer must be an object')
- }
-
- Object.defineProperty(this, Symbol.toStringTag, {
- value: 'Headers',
- writable: false,
- enumerable: false,
- configurable: true
- })
- }
-
- /**
- * Return first header value given name
- *
- * @param String name Header name
- * @return Mixed
- */
- get (name) {
- const list = this[MAP][sanitizeName(name)]
- if (!list) {
- return null
- }
-
- return list.join(', ')
- }
-
- /**
- * Iterate over all headers
- *
- * @param Function callback Executed for each item with parameters (value, name, thisArg)
- * @param Boolean thisArg `this` context for callback function
- * @return Void
- */
- forEach (callback, thisArg) {
- let pairs = getHeaderPairs(this)
- let i = 0
- while (i < pairs.length) {
- const name = pairs[i][0]
- const value = pairs[i][1]
- callback.call(thisArg, value, name, this)
- pairs = getHeaderPairs(this)
- i++
- }
- }
-
- /**
- * Overwrite header values given name
- *
- * @param String name Header name
- * @param String value Header value
- * @return Void
- */
- set (name, value) {
- this[MAP][sanitizeName(name)] = [sanitizeValue(value)]
- }
-
- /**
- * Append a value onto existing header
- *
- * @param String name Header name
- * @param String value Header value
- * @return Void
- */
- append (name, value) {
- if (!this.has(name)) {
- this.set(name, value)
- return
- }
-
- this[MAP][sanitizeName(name)].push(sanitizeValue(value))
- }
-
- /**
- * Check for header name existence
- *
- * @param String name Header name
- * @return Boolean
- */
- has (name) {
- return !!this[MAP][sanitizeName(name)]
- }
-
- /**
- * Delete all header values given name
- *
- * @param String name Header name
- * @return Void
- */
- delete (name) {
- delete this[MAP][sanitizeName(name)]
- };
-
- /**
- * Return raw headers (non-spec api)
- *
- * @return Object
- */
- raw () {
- return this[MAP]
- }
-
- /**
- * Get an iterator on keys.
- *
- * @return Iterator
- */
- keys () {
- return createHeadersIterator(this, 'key')
- }
-
- /**
- * Get an iterator on values.
- *
- * @return Iterator
- */
- values () {
- return createHeadersIterator(this, 'value')
- }
-
- /**
- * Get an iterator on entries.
- *
- * This is the default iterator of the Headers object.
- *
- * @return Iterator
- */
- [Symbol.iterator] () {
- return createHeadersIterator(this, 'key+value')
- }
-}
-Headers.prototype.entries = Headers.prototype[Symbol.iterator]
-
-Object.defineProperty(Headers.prototype, Symbol.toStringTag, {
- value: 'HeadersPrototype',
- writable: false,
- enumerable: false,
- configurable: true
-})
-
-function getHeaderPairs (headers, kind) {
- const keys = Object.keys(headers[MAP]).sort()
- return keys.map(
- kind === 'key'
- ? k => [k]
- : k => [k, headers.get(k)]
- )
-}
-
-const INTERNAL = Symbol('internal')
-
-function createHeadersIterator (target, kind) {
- const iterator = Object.create(HeadersIteratorPrototype)
- iterator[INTERNAL] = {
- target,
- kind,
- index: 0
- }
- return iterator
-}
-
-const HeadersIteratorPrototype = Object.setPrototypeOf({
- next () {
- // istanbul ignore if
- if (!this ||
- Object.getPrototypeOf(this) !== HeadersIteratorPrototype) {
- throw new TypeError('Value of `this` is not a HeadersIterator')
- }
-
- const target = this[INTERNAL].target
- const kind = this[INTERNAL].kind
- const index = this[INTERNAL].index
- const values = getHeaderPairs(target, kind)
- const len = values.length
- if (index >= len) {
- return {
- value: undefined,
- done: true
- }
- }
-
- const pair = values[index]
- this[INTERNAL].index = index + 1
-
- let result
- if (kind === 'key') {
- result = pair[0]
- } else if (kind === 'value') {
- result = pair[1]
- } else {
- result = pair
- }
-
- return {
- value: result,
- done: false
- }
- }
-}, Object.getPrototypeOf(
- Object.getPrototypeOf([][Symbol.iterator]())
-))
-
-Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, {
- value: 'HeadersIterator',
- writable: false,
- enumerable: false,
- configurable: true
-})
-
-module.exports = Headers
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js
deleted file mode 100644
index b2cf80f9ec..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/index.js
+++ /dev/null
@@ -1,214 +0,0 @@
-'use strict'
-
-/**
- * index.js
- *
- * a request API compatible with window.fetch
- */
-
-const url = require('url')
-const http = require('http')
-const https = require('https')
-const zlib = require('zlib')
-const PassThrough = require('stream').PassThrough
-
-const Body = require('./body.js')
-const writeToStream = Body.writeToStream
-const Response = require('./response')
-const Headers = require('./headers')
-const Request = require('./request')
-const getNodeRequestOptions = Request.getNodeRequestOptions
-const FetchError = require('./fetch-error')
-const isURL = /^https?:/
-
-/**
- * Fetch function
- *
- * @param Mixed url Absolute url or Request instance
- * @param Object opts Fetch options
- * @return Promise
- */
-exports = module.exports = fetch
-function fetch (uri, opts) {
- // allow custom promise
- if (!fetch.Promise) {
- throw new Error('native promise missing, set fetch.Promise to your favorite alternative')
- }
-
- Body.Promise = fetch.Promise
-
- // wrap http.request into fetch
- return new fetch.Promise((resolve, reject) => {
- // build request object
- const request = new Request(uri, opts)
- const options = getNodeRequestOptions(request)
-
- const send = (options.protocol === 'https:' ? https : http).request
-
- // http.request only support string as host header, this hack make custom host header possible
- if (options.headers.host) {
- options.headers.host = options.headers.host[0]
- }
-
- // send request
- const req = send(options)
- let reqTimeout
-
- if (request.timeout) {
- req.once('socket', socket => {
- reqTimeout = setTimeout(() => {
- req.abort()
- reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout'))
- }, request.timeout)
- })
- }
-
- req.on('error', err => {
- clearTimeout(reqTimeout)
- reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err))
- })
-
- req.on('response', res => {
- clearTimeout(reqTimeout)
-
- // handle redirect
- if (fetch.isRedirect(res.statusCode) && request.redirect !== 'manual') {
- if (request.redirect === 'error') {
- reject(new FetchError(`redirect mode is set to error: ${request.url}`, 'no-redirect'))
- return
- }
-
- if (request.counter >= request.follow) {
- reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect'))
- return
- }
-
- if (!res.headers.location) {
- reject(new FetchError(`redirect location header missing at: ${request.url}`, 'invalid-redirect'))
- return
- }
- // Remove authorization if changing hostnames (but not if just
- // changing ports or protocols). This matches the behavior of request:
- // https://github.com/request/request/blob/b12a6245/lib/redirect.js#L134-L138
- const resolvedUrl = url.resolve(request.url, res.headers.location)
- let redirectURL = ''
- if (!isURL.test(res.headers.location)) {
- redirectURL = url.parse(resolvedUrl)
- } else {
- redirectURL = url.parse(res.headers.location)
- }
- if (url.parse(request.url).hostname !== redirectURL.hostname) {
- request.headers.delete('authorization')
- }
-
- // per fetch spec, for POST request with 301/302 response, or any request with 303 response, use GET when following redirect
- if (res.statusCode === 303 ||
- ((res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST')) {
- request.method = 'GET'
- request.body = null
- request.headers.delete('content-length')
- }
-
- request.counter++
-
- resolve(fetch(resolvedUrl, request))
- return
- }
-
- // normalize location header for manual redirect mode
- const headers = new Headers()
- for (const name of Object.keys(res.headers)) {
- if (Array.isArray(res.headers[name])) {
- for (const val of res.headers[name]) {
- headers.append(name, val)
- }
- } else {
- headers.append(name, res.headers[name])
- }
- }
- if (request.redirect === 'manual' && headers.has('location')) {
- headers.set('location', url.resolve(request.url, headers.get('location')))
- }
-
- // prepare response
- let body = res.pipe(new PassThrough())
- const responseOptions = {
- url: request.url,
- status: res.statusCode,
- statusText: res.statusMessage,
- headers: headers,
- size: request.size,
- timeout: request.timeout
- }
-
- // HTTP-network fetch step 16.1.2
- const codings = headers.get('Content-Encoding')
-
- // HTTP-network fetch step 16.1.3: handle content codings
-
- // in following scenarios we ignore compression support
- // 1. compression support is disabled
- // 2. HEAD request
- // 3. no Content-Encoding header
- // 4. no content response (204)
- // 5. content not modified response (304)
- if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) {
- resolve(new Response(body, responseOptions))
- return
- }
-
- // Be less strict when decoding compressed responses, since sometimes
- // servers send slightly invalid responses that are still accepted
- // by common browsers.
- // Always using Z_SYNC_FLUSH is what cURL does.
- const zlibOptions = {
- flush: zlib.Z_SYNC_FLUSH,
- finishFlush: zlib.Z_SYNC_FLUSH
- }
-
- // for gzip
- if (codings === 'gzip' || codings === 'x-gzip') {
- body = body.pipe(zlib.createGunzip(zlibOptions))
- resolve(new Response(body, responseOptions))
- return
- }
-
- // for deflate
- if (codings === 'deflate' || codings === 'x-deflate') {
- // handle the infamous raw deflate response from old servers
- // a hack for old IIS and Apache servers
- const raw = res.pipe(new PassThrough())
- raw.once('data', chunk => {
- // see http://stackoverflow.com/questions/37519828
- if ((chunk[0] & 0x0F) === 0x08) {
- body = body.pipe(zlib.createInflate(zlibOptions))
- } else {
- body = body.pipe(zlib.createInflateRaw(zlibOptions))
- }
- resolve(new Response(body, responseOptions))
- })
- return
- }
-
- // otherwise, use response as-is
- resolve(new Response(body, responseOptions))
- })
-
- writeToStream(req, request)
- })
-};
-
-/**
- * Redirect code matching
- *
- * @param Number code Status code
- * @return Boolean
- */
-fetch.isRedirect = code => code === 301 || code === 302 || code === 303 || code === 307 || code === 308
-
-// expose Promise
-fetch.Promise = global.Promise
-exports.Headers = Headers
-exports.Request = Request
-exports.Response = Response
-exports.FetchError = FetchError
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js
deleted file mode 100644
index 326dc4606f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/request.js
+++ /dev/null
@@ -1,174 +0,0 @@
-'use strict'
-
-/**
- * request.js
- *
- * Request class contains server only options
- */
-
-const url = require('url')
-const Headers = require('./headers.js')
-const Body = require('./body.js')
-const clone = Body.clone
-const extractContentType = Body.extractContentType
-const getTotalBytes = Body.getTotalBytes
-
-const PARSED_URL = Symbol('url')
-
-/**
- * Request class
- *
- * @param Mixed input Url or Request instance
- * @param Object init Custom options
- * @return Void
- */
-class Request {
- constructor (input, init) {
- if (!init) init = {}
- let parsedURL
-
- // normalize input
- if (!(input instanceof Request)) {
- if (input && input.href) {
- // in order to support Node.js' Url objects; though WHATWG's URL objects
- // will fall into this branch also (since their `toString()` will return
- // `href` property anyway)
- parsedURL = url.parse(input.href)
- } else {
- // coerce input to a string before attempting to parse
- parsedURL = url.parse(`${input}`)
- }
- input = {}
- } else {
- parsedURL = url.parse(input.url)
- }
-
- let method = init.method || input.method || 'GET'
-
- if ((init.body != null || (input instanceof Request && input.body !== null)) &&
- (method === 'GET' || method === 'HEAD')) {
- throw new TypeError('Request with GET/HEAD method cannot have body')
- }
-
- let inputBody = init.body != null
- ? init.body
- : input instanceof Request && input.body !== null
- ? clone(input)
- : null
-
- Body.call(this, inputBody, {
- timeout: init.timeout || input.timeout || 0,
- size: init.size || input.size || 0
- })
-
- // fetch spec options
- this.method = method.toUpperCase()
- this.redirect = init.redirect || input.redirect || 'follow'
- this.headers = new Headers(init.headers || input.headers || {})
-
- if (init.body != null) {
- const contentType = extractContentType(this)
- if (contentType !== null && !this.headers.has('Content-Type')) {
- this.headers.append('Content-Type', contentType)
- }
- }
-
- // server only options
- this.follow = init.follow !== undefined
- ? init.follow : input.follow !== undefined
- ? input.follow : 20
- this.compress = init.compress !== undefined
- ? init.compress : input.compress !== undefined
- ? input.compress : true
- this.counter = init.counter || input.counter || 0
- this.agent = init.agent || input.agent
-
- this[PARSED_URL] = parsedURL
- Object.defineProperty(this, Symbol.toStringTag, {
- value: 'Request',
- writable: false,
- enumerable: false,
- configurable: true
- })
- }
-
- get url () {
- return url.format(this[PARSED_URL])
- }
-
- /**
- * Clone this request
- *
- * @return Request
- */
- clone () {
- return new Request(this)
- }
-}
-
-Body.mixIn(Request.prototype)
-
-Object.defineProperty(Request.prototype, Symbol.toStringTag, {
- value: 'RequestPrototype',
- writable: false,
- enumerable: false,
- configurable: true
-})
-
-exports = module.exports = Request
-
-exports.getNodeRequestOptions = function getNodeRequestOptions (request) {
- const parsedURL = request[PARSED_URL]
- const headers = new Headers(request.headers)
-
- // fetch step 3
- if (!headers.has('Accept')) {
- headers.set('Accept', '*/*')
- }
-
- // Basic fetch
- if (!parsedURL.protocol || !parsedURL.hostname) {
- throw new TypeError('Only absolute URLs are supported')
- }
-
- if (!/^https?:$/.test(parsedURL.protocol)) {
- throw new TypeError('Only HTTP(S) protocols are supported')
- }
-
- // HTTP-network-or-cache fetch steps 5-9
- let contentLengthValue = null
- if (request.body == null && /^(POST|PUT)$/i.test(request.method)) {
- contentLengthValue = '0'
- }
- if (request.body != null) {
- const totalBytes = getTotalBytes(request)
- if (typeof totalBytes === 'number') {
- contentLengthValue = String(totalBytes)
- }
- }
- if (contentLengthValue) {
- headers.set('Content-Length', contentLengthValue)
- }
-
- // HTTP-network-or-cache fetch step 12
- if (!headers.has('User-Agent')) {
- headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)')
- }
-
- // HTTP-network-or-cache fetch step 16
- if (request.compress) {
- headers.set('Accept-Encoding', 'gzip,deflate')
- }
- if (!headers.has('Connection') && !request.agent) {
- headers.set('Connection', 'close')
- }
-
- // HTTP-network fetch step 4
- // chunked encoding is handled by Node.js
-
- return Object.assign({}, parsedURL, {
- method: request.method,
- headers: headers.raw(),
- agent: request.agent
- })
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js
deleted file mode 100644
index 6fb050d74c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/node-fetch-npm/src/response.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict'
-
-/**
- * response.js
- *
- * Response class provides content decoding
- */
-
-const STATUS_CODES = require('http').STATUS_CODES
-const Headers = require('./headers.js')
-const Body = require('./body.js')
-const clone = Body.clone
-
-/**
- * Response class
- *
- * @param Stream body Readable stream
- * @param Object opts Response options
- * @return Void
- */
-class Response {
- constructor (body, opts) {
- if (!opts) opts = {}
- Body.call(this, body, opts)
-
- this.url = opts.url
- this.status = opts.status || 200
- this.statusText = opts.statusText || STATUS_CODES[this.status]
-
- this.headers = new Headers(opts.headers)
-
- Object.defineProperty(this, Symbol.toStringTag, {
- value: 'Response',
- writable: false,
- enumerable: false,
- configurable: true
- })
- }
-
- /**
- * Convenience property representing if the request ended normally
- */
- get ok () {
- return this.status >= 200 && this.status < 300
- }
-
- /**
- * Clone this response
- *
- * @return Response
- */
- clone () {
- return new Response(clone(this), {
- url: this.url,
- status: this.status,
- statusText: this.statusText,
- headers: this.headers,
- ok: this.ok
- })
- }
-}
-
-Body.mixIn(Response.prototype)
-
-Object.defineProperty(Response.prototype, Symbol.toStringTag, {
- value: 'ResponsePrototype',
- writable: false,
- enumerable: false,
- configurable: true
-})
-module.exports = Response
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore
deleted file mode 100644
index 07e6e472cc..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-/node_modules
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml
deleted file mode 100644
index 805d3d50d2..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/.travis.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-sudo: false
-
-language: node_js
-
-node_js:
- - "4"
- - "5"
- - "6"
- - "7"
- - "8"
-
-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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml
deleted file mode 100644
index 6ce862c6f6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md
deleted file mode 100644
index e12180e423..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/History.md
+++ /dev/null
@@ -1,105 +0,0 @@
-
-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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md
deleted file mode 100644
index 64175a43a4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/README.md
+++ /dev/null
@@ -1,136 +0,0 @@
-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);
-});
-```
-
-You can also return a Promise or use an `async` function:
-
-```js
-agent(async function (req, opts) {
- await sleep(1000);
- // etcā€¦
-});
-```
-
-
-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 &lt;nathan@tootallnate.net&gt;
-
-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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js
deleted file mode 100644
index df3ca727a7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/index.js
+++ /dev/null
@@ -1,158 +0,0 @@
-'use strict';
-
-/**
- * Module dependencies.
- */
-
-require('./patch-core');
-const inherits = require('util').inherits;
-const promisify = require('es6-promisify');
-const EventEmitter = require('events').EventEmitter;
-
-/**
- * Module exports.
- */
-
-module.exports = Agent;
-
-/**
- * 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);
-
- 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() {
- 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);
- }
- onerror(err);
- }
-
- function onsocket(socket) {
- if (timedOut) return;
- if (timeout != null) {
- clearTimeout(timeout);
- }
- 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.callback.length >= 3) {
- // legacy callback function, convert to Promise
- this.callback = promisify(this.callback, this);
- }
-
- 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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify/README.md b/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
deleted file mode 100644
index 4141cc840f..0000000000
--- a/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
+++ /dev/null
@@ -1,89 +0,0 @@
-[![Travis CI](https://travis-ci.org/digitaldesignlabs/es6-promisify.svg)](https://travis-ci.org/digitaldesignlabs/es6-promisify)
-
-# es6-promisify
-
-Converts callback-based functions to Promise-based functions.
-
-## Install
-
-Install with [npm](https://npmjs.org/package/es6-promisify)
-
-```bash
-npm install --save es6-promisify
-```
-
-## Example
-
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const fs = require("fs");
-
-// Convert the stat function
-const stat = promisify(fs.stat);
-
-// Now usable as a promise!
-stat("example.txt").then(function (stats) {
- console.log("Got stats", stats);
-}).catch(function (err) {
- console.error("Yikes!", err);
-});
-```
-
-## Promisify methods
-```js
-"use strict";
-
-// Declare variables
-const promisify = require("es6-promisify");
-const redis = require("redis").createClient(6379, "localhost");
-
-// Create a promise-based version of send_command
-const client = promisify(redis.send_command, redis);
-
-// Send commands to redis and get a promise back
-client("ping").then(function (pong) {
- console.log("Got", pong);
-}).catch(function (err) {
- console.error("Unexpected error", err);
-}).then(function () {
- redis.quit();
-});
-```
-
-## Handle callback multiple arguments
-```js
-"use strict";
-
-// Declare functions
-function test(cb) {
- return cb(undefined, 1, 2, 3);
-}
-
-// Declare variables
-const promisify = require("es6-promisify");
-
-// Create promise-based version of test
-const single = promisify(test);
-const multi = promisify(test, {multiArgs: true});
-
-// Discards additional arguments
-single().then(function (result) {
- console.log(result); // 1
-});
-
-// Returns all arguments as an array
-multi().then(function (result) {
- console.log(result); // [1, 2, 3]
-});
-```
-
-### Tests
-Test with nodeunit
-```bash
-$ npm test
-```
-
-Published under the [MIT License](http://opensource.org/licenses/MIT).
diff --git a/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 b/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
deleted file mode 100644
index 2fe5c6103b..0000000000
--- a/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
+++ /dev/null
@@ -1,73 +0,0 @@
-"use strict";
-
-/* global self, window, module, global, require */
-module.exports = function () {
-
- "use strict";
-
- var globalObject = void 0;
-
- function isFunction(x) {
- return typeof x === "function";
- }
-
- // Seek the global object
- if (global !== undefined) {
- globalObject = global;
- } else if (window !== undefined && window.document) {
- globalObject = window;
- } else {
- globalObject = self;
- }
-
- // Test for any native promise implementation, and if that
- // implementation appears to conform to the specificaton.
- // This code mostly nicked from the es6-promise module polyfill
- // and then fooled with.
- var hasPromiseSupport = function () {
-
- // No promise object at all, and it's a non-starter
- if (!globalObject.hasOwnProperty("Promise")) {
- return false;
- }
-
- // There is a Promise object. Does it conform to the spec?
- var P = globalObject.Promise;
-
- // Some of these methods are missing from
- // Firefox/Chrome experimental implementations
- if (!P.hasOwnProperty("resolve") || !P.hasOwnProperty("reject")) {
- return false;
- }
-
- if (!P.hasOwnProperty("all") || !P.hasOwnProperty("race")) {
- return false;
- }
-
- // Older version of the spec had a resolver object
- // as the arg rather than a function
- return function () {
-
- var resolve = void 0;
-
- var p = new globalObject.Promise(function (r) {
- resolve = r;
- });
-
- if (p) {
- return isFunction(resolve);
- }
-
- return false;
- }();
- }();
-
- // Export the native Promise implementation if it
- // looks like it matches the spec
- if (hasPromiseSupport) {
- return globalObject.Promise;
- }
-
- // Otherwise, return the es6-promise polyfill by @jaffathecake.
- return require("es6-promise").Promise;
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ce38041b07..0000000000
--- a/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
+++ /dev/null
@@ -1,85 +0,0 @@
-"use strict";
-
-/* global module, require */
-module.exports = function () {
-
- "use strict";
-
- // Get a promise object. This may be native, or it may be polyfilled
-
- var ES6Promise = require("./promise.js");
-
- /**
- * thatLooksLikeAPromiseToMe()
- *
- * Duck-types a promise.
- *
- * @param {object} o
- * @return {bool} True if this resembles a promise
- */
- function thatLooksLikeAPromiseToMe(o) {
- return o && typeof o.then === "function" && typeof o.catch === "function";
- }
-
- /**
- * promisify()
- *
- * Transforms callback-based function -- func(arg1, arg2 .. argN, callback) -- into
- * an ES6-compatible Promise. Promisify provides a default callback of the form (error, result)
- * and rejects when `error` is truthy. You can also supply settings object as the second argument.
- *
- * @param {function} original - The function to promisify
- * @param {object} settings - Settings object
- * @param {object} settings.thisArg - A `this` context to use. If not set, assume `settings` _is_ `thisArg`
- * @param {bool} settings.multiArgs - Should multiple arguments be returned as an array?
- * @return {function} A promisified version of `original`
- */
- return function promisify(original, settings) {
-
- return function () {
- for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
- args[_key] = arguments[_key];
- }
-
- var returnMultipleArguments = settings && settings.multiArgs;
-
- var target = void 0;
- if (settings && settings.thisArg) {
- target = settings.thisArg;
- } else if (settings) {
- target = settings;
- }
-
- // Return the promisified function
- return new ES6Promise(function (resolve, reject) {
-
- // Append the callback bound to the context
- args.push(function callback(err) {
-
- if (err) {
- return reject(err);
- }
-
- for (var _len2 = arguments.length, values = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
- values[_key2 - 1] = arguments[_key2];
- }
-
- if (false === !!returnMultipleArguments) {
- return resolve(values[0]);
- }
-
- resolve(values);
- });
-
- // Call the function
- var response = original.apply(target, args);
-
- // If it looks like original already returns a promise,
- // then just resolve with that promise. Hopefully, the callback function we added will just be ignored.
- if (thatLooksLikeAPromiseToMe(response)) {
- resolve(response);
- }
- });
- };
- };
-}(); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 6ff0013622..0000000000
--- a/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
+++ /dev/null
@@ -1,122 +0,0 @@
-# Master
-
-# 4.1.0
-
-* [BUGFIX] Fix memory leak [#269]
-* [BUGFIX] Auto Bundles within an AMD Environment [#263]
-
-# 4.0.5
-
-* fix require('es6-promise/auto') for Node < 4
-
-# 4.0.4
-
-* fix asap when using https://github.com/Kinvey/titanium-sdk
-
-# 4.0.3
-
-* fix Readme links
-
-# 4.0.2
-
-* fix require('es6-promise/auto');
-
-# 4.0.0
-
-* no longer polyfill automatically, if needed one can still invoke
- `require('es6-promise/auto')` directly.
-
-# 3.3.1
-
-* fix links in readme
-
-# 3.3.0
-
-* support polyfil on WebMAF (playstation env)
-* fix tampering related bug global `constructor` was referenced by mistake.
-* provide TS Typings
-* increase compatibliity with sinon.useFakeTimers();
-* update build tools (use rollup)
-* directly export promise;
-
-# 3.2.2
-
-* IE8: use isArray
-* update build dependencies
-
-# 3.2.1
-
-* fix race tampering issue
-* use eslint
-* fix Promise.all tampering
-* remove unused code
-* fix issues with NWJS/electron
-
-# 3.2.0
-
-* improve tamper resistence of Promise.all Promise.race and
- Promise.prototype.then (note, this isn't complete, but addresses an exception
- when used \w core-js, follow up work will address entirely)
-* remove spec incompatible then chaining fast-path
-* add eslint
-* update build deps
-
-# 3.1.2
-
-* fix node detection issues with NWJS/electron
-
-# 3.1.0
-
-* improve performance of Promise.all when it encounters a non-promise input object input
-* then/resolve tamper protection
-* reduce AST size of promise constructor, to facilitate more inlining
-* Update README.md with details about PhantomJS requirement for running tests
-* Mangle and compress the minified version
-
-# 3.0.2
-
-* correctly bump both bower and package.json versions
-
-# 3.0.1
-
-* no longer include dist/test in npm releases
-
-# 3.0.0
-
-* use nextTick() instead of setImmediate() to schedule microtasks with node 0.10. Later versions of
- nodes are not affected as they were already using nextTick(). Note that using nextTick() might
- trigger a depreciation warning on 0.10 as described at https://github.com/cujojs/when/issues/410.
- The reason why nextTick() is preferred is that is setImmediate() would schedule a macrotask
- instead of a microtask and might result in a different scheduling.
- If needed you can revert to the former behavior as follow:
-
- var Promise = require('es6-promise').Promise;
- Promise._setScheduler(setImmediate);
-
-# 2.3.0
-
-* #121: Ability to override the internal asap implementation
-* #120: Use an ascii character for an apostrophe, for source maps
-
-# 2.2.0
-
-* #116: Expose asap() and a way to override the scheduling mechanism on Promise
-* Lock to v0.2.3 of ember-cli
-
-# 2.1.1
-
-* Fix #100 via #105: tell browserify to ignore vertx require
-* Fix #101 via #102: "follow thenable state, not own state"
-
-# 2.1.0
-
-* #59: Automatic polyfill. No need to invoke `ES6Promise.polyfill()` anymore.
-* ... (see the commit log)
-
-# 2.0.0
-
-* re-sync with RSVP. Many large performance improvements and bugfixes.
-
-# 1.0.0
-
-* first subset of RSVP
diff --git a/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 b/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
deleted file mode 100644
index 954ec5992d..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and 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.
diff --git a/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 b/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
deleted file mode 100644
index bb07d25c17..0000000000
--- a/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
+++ /dev/null
@@ -1,82 +0,0 @@
-# ES6-Promise (subset of [rsvp.js](https://github.com/tildeio/rsvp.js)) [![Build Status](https://travis-ci.org/stefanpenner/es6-promise.svg?branch=master)](https://travis-ci.org/stefanpenner/es6-promise)
-
-This is a polyfill of the [ES6 Promise](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-promise-constructor). The implementation is a subset of [rsvp.js](https://github.com/tildeio/rsvp.js) extracted by @jakearchibald, if you're wanting extra features and more debugging options, check out the [full library](https://github.com/tildeio/rsvp.js).
-
-For API details and how to use promises, see the <a href="http://www.html5rocks.com/en/tutorials/es6/promises/">JavaScript Promises HTML5Rocks article</a>.
-
-## Downloads
-
-* [es6-promise 27.86 KB (7.33 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.js)
-* [es6-promise-auto 27.78 KB (7.3 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.js) - Automatically provides/replaces `Promise` if missing or broken.
-* [es6-promise-min 6.17 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.min.js)
-* [es6-promise-auto-min 6.19 KB (2.4 KB gzipped)](https://raw.githubusercontent.com/stefanpenner/es6-promise/master/dist/es6-promise.auto.min.js) - Minified version of `es6-promise-auto` above.
-
-## Node.js
-
-To install:
-
-```sh
-npm install es6-promise
-```
-
-To use:
-
-```js
-var Promise = require('es6-promise').Promise;
-```
-
-## Bower
-
-To install:
-
-```sh
-bower install es6-promise --save
-```
-
-
-## Usage in IE<9
-
-`catch` is a reserved word in IE<9, meaning `promise.catch(func)` throws a syntax error. To work around this, you can use a string to access the property as shown in the following example.
-
-However, please remember that such technique is already provided by most common minifiers, making the resulting code safe for old browsers and production:
-
-```js
-promise['catch'](function(err) {
- // ...
-});
-```
-
-Or use `.then` instead:
-
-```js
-promise.then(undefined, function(err) {
- // ...
-});
-```
-
-## Auto-polyfill
-
-To polyfill the global environment (either in Node or in the browser via CommonJS) use the following code snippet:
-
-```js
-require('es6-promise').polyfill();
-```
-
-Alternatively
-
-```js
-require('es6-promise/auto');
-```
-
-Notice that we don't assign the result of `polyfill()` to any variable. The `polyfill()` method will patch the global environment (in this case to the `Promise` name) when called.
-
-## Building & Testing
-
-You will need to have PhantomJS installed globally in order to run the tests.
-
-`npm install -g phantomjs`
-
-* `npm run build` to build
-* `npm test` to run tests
-* `npm start` to run a build watcher, and webserver to test
-* `npm run test:server` for a testem test runner and watching builder
diff --git a/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 b/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
deleted file mode 100644
index 92bbf36e58..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-// This file can be required in Browserify and Node.js for automatic polyfill
-// To use it: require('es6-promise/auto');
-'use strict';
-module.exports = require('./').polyfill();
diff --git a/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 b/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
deleted file mode 100644
index 51eb80a648..0000000000
--- a/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
+++ /dev/null
@@ -1,1159 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$3) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$3(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$3 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$3.all = all$1;
-Promise$3.race = race$1;
-Promise$3.resolve = resolve$1;
-Promise$3.reject = reject$1;
-Promise$3._setScheduler = setScheduler;
-Promise$3._setAsap = setAsap;
-Promise$3._asap = asap;
-
-Promise$3.prototype = {
- constructor: Promise$3,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$3;
-}
-
-// Strange compat..
-Promise$3.polyfill = polyfill$1;
-Promise$3.Promise = Promise$3;
-
-Promise$3.polyfill();
-
-return Promise$3;
-
-})));
-
-//# sourceMappingURL=es6-promise.auto.map
diff --git a/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 b/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
deleted file mode 100644
index 1e06e2c73c..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ba34fa7ced..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U.polyfill(),U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 3ada8df844..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js","lib/es6-promise.auto.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;","'use strict';\n\nimport Promise from './es6-promise';\nPromise.polyfill();\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.auto.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index b3724141a8..0000000000
--- a/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
+++ /dev/null
@@ -1,1157 +0,0 @@
-/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
-
-(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
-}(this, (function () { 'use strict';
-
-function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-function isFunction(x) {
- return typeof x === 'function';
-}
-
-var _isArray = undefined;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
-}
-
-var isArray = _isArray;
-
-var len = 0;
-var vertxNext = undefined;
-var customSchedulerFn = undefined;
-
-var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-};
-
-function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-function setAsap(asapFn) {
- asap = asapFn;
-}
-
-var browserWindow = typeof window !== 'undefined' ? window : undefined;
-var browserGlobal = browserWindow || {};
-var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return function () {
- node.data = iterations = ++iterations % 2;
- };
-}
-
-// web worker
-function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
-}
-
-var queue = new Array(1000);
-function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- var r = require;
- var vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
-}
-
-var scheduleFlush = undefined;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
-
-function then(onFulfillment, onRejection) {
- var _arguments = arguments;
-
- var parent = this;
-
- var child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- var _state = parent._state;
-
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
-}
-
-var PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-var PENDING = void 0;
-var FULFILLED = 1;
-var REJECTED = 2;
-
-var GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
-
- if (subscribers.length === 0) {
- return;
- }
-
- var child = undefined,
- callback = undefined,
- detail = promise._result;
-
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-var TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
-}
-
-var id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-}
-
-Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
-
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
-
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
-};
-
-Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
-
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
-};
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
-}
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
-}
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise$2.all = all$1;
-Promise$2.race = race$1;
-Promise$2.resolve = resolve$1;
-Promise$2.reject = reject$1;
-Promise$2._setScheduler = setScheduler;
-Promise$2._setAsap = setAsap;
-Promise$2._asap = asap;
-
-Promise$2.prototype = {
- constructor: Promise$2,
-
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
-
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
-
-/*global self*/
-function polyfill$1() {
- var local = undefined;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- var P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
-
- local.Promise = Promise$2;
-}
-
-// Strange compat..
-Promise$2.polyfill = polyfill$1;
-Promise$2.Promise = Promise$2;
-
-return Promise$2;
-
-})));
-
-//# sourceMappingURL=es6-promise.map
diff --git a/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 b/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
deleted file mode 100644
index 98c7af7ba4..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index 7696ed71f1..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.ES6Promise=e()}(this,function(){"use strict";function t(t){var e=typeof t;return null!==t&&("object"===e||"function"===e)}function e(t){return"function"==typeof t}function n(t){I=t}function r(t){J=t}function o(){return function(){return process.nextTick(a)}}function i(){return"undefined"!=typeof H?function(){H(a)}:c()}function s(){var t=0,e=new V(a),n=document.createTextNode("");return e.observe(n,{characterData:!0}),function(){n.data=t=++t%2}}function u(){var t=new MessageChannel;return t.port1.onmessage=a,function(){return t.port2.postMessage(0)}}function c(){var t=setTimeout;return function(){return t(a,1)}}function a(){for(var t=0;t<G;t+=2){var e=$[t],n=$[t+1];e(n),$[t]=void 0,$[t+1]=void 0}G=0}function f(){try{var t=require,e=t("vertx");return H=e.runOnLoop||e.runOnContext,i()}catch(n){return c()}}function l(t,e){var n=arguments,r=this,o=new this.constructor(p);void 0===o[et]&&k(o);var i=r._state;return i?!function(){var t=n[i-1];J(function(){return x(i,o,t,r._result)})}():E(r,o,t,e),o}function h(t){var e=this;if(t&&"object"==typeof t&&t.constructor===e)return t;var n=new e(p);return g(n,t),n}function p(){}function v(){return new TypeError("You cannot resolve a promise with itself")}function d(){return new TypeError("A promises callback cannot return that same promise.")}function _(t){try{return t.then}catch(e){return it.error=e,it}}function y(t,e,n,r){try{t.call(e,n,r)}catch(o){return o}}function m(t,e,n){J(function(t){var r=!1,o=y(n,e,function(n){r||(r=!0,e!==n?g(t,n):S(t,n))},function(e){r||(r=!0,j(t,e))},"Settle: "+(t._label||" unknown promise"));!r&&o&&(r=!0,j(t,o))},t)}function b(t,e){e._state===rt?S(t,e._result):e._state===ot?j(t,e._result):E(e,void 0,function(e){return g(t,e)},function(e){return j(t,e)})}function w(t,n,r){n.constructor===t.constructor&&r===l&&n.constructor.resolve===h?b(t,n):r===it?(j(t,it.error),it.error=null):void 0===r?S(t,n):e(r)?m(t,n,r):S(t,n)}function g(e,n){e===n?j(e,v()):t(n)?w(e,n,_(n)):S(e,n)}function A(t){t._onerror&&t._onerror(t._result),T(t)}function S(t,e){t._state===nt&&(t._result=e,t._state=rt,0!==t._subscribers.length&&J(T,t))}function j(t,e){t._state===nt&&(t._state=ot,t._result=e,J(A,t))}function E(t,e,n,r){var o=t._subscribers,i=o.length;t._onerror=null,o[i]=e,o[i+rt]=n,o[i+ot]=r,0===i&&t._state&&J(T,t)}function T(t){var e=t._subscribers,n=t._state;if(0!==e.length){for(var r=void 0,o=void 0,i=t._result,s=0;s<e.length;s+=3)r=e[s],o=e[s+n],r?x(n,r,o,i):o(i);t._subscribers.length=0}}function M(){this.error=null}function P(t,e){try{return t(e)}catch(n){return st.error=n,st}}function x(t,n,r,o){var i=e(r),s=void 0,u=void 0,c=void 0,a=void 0;if(i){if(s=P(r,o),s===st?(a=!0,u=s.error,s.error=null):c=!0,n===s)return void j(n,d())}else s=o,c=!0;n._state!==nt||(i&&c?g(n,s):a?j(n,u):t===rt?S(n,s):t===ot&&j(n,s))}function C(t,e){try{e(function(e){g(t,e)},function(e){j(t,e)})}catch(n){j(t,n)}}function O(){return ut++}function k(t){t[et]=ut++,t._state=void 0,t._result=void 0,t._subscribers=[]}function Y(t,e){this._instanceConstructor=t,this.promise=new t(p),this.promise[et]||k(this.promise),B(e)?(this.length=e.length,this._remaining=e.length,this._result=new Array(this.length),0===this.length?S(this.promise,this._result):(this.length=this.length||0,this._enumerate(e),0===this._remaining&&S(this.promise,this._result))):j(this.promise,q())}function q(){return new Error("Array Methods must be provided an Array")}function F(t){return new Y(this,t).promise}function D(t){var e=this;return new e(B(t)?function(n,r){for(var o=t.length,i=0;i<o;i++)e.resolve(t[i]).then(n,r)}:function(t,e){return e(new TypeError("You must pass an array to race."))})}function K(t){var e=this,n=new e(p);return j(n,t),n}function L(){throw new TypeError("You must pass a resolver function as the first argument to the promise constructor")}function N(){throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.")}function U(t){this[et]=O(),this._result=this._state=void 0,this._subscribers=[],p!==t&&("function"!=typeof t&&L(),this instanceof U?C(this,t):N())}function W(){var t=void 0;if("undefined"!=typeof global)t=global;else if("undefined"!=typeof self)t=self;else try{t=Function("return this")()}catch(e){throw new Error("polyfill failed because global object is unavailable in this environment")}var n=t.Promise;if(n){var r=null;try{r=Object.prototype.toString.call(n.resolve())}catch(e){}if("[object Promise]"===r&&!n.cast)return}t.Promise=U}var z=void 0;z=Array.isArray?Array.isArray:function(t){return"[object Array]"===Object.prototype.toString.call(t)};var B=z,G=0,H=void 0,I=void 0,J=function(t,e){$[G]=t,$[G+1]=e,G+=2,2===G&&(I?I(a):tt())},Q="undefined"!=typeof window?window:void 0,R=Q||{},V=R.MutationObserver||R.WebKitMutationObserver,X="undefined"==typeof self&&"undefined"!=typeof process&&"[object process]"==={}.toString.call(process),Z="undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof importScripts&&"undefined"!=typeof MessageChannel,$=new Array(1e3),tt=void 0;tt=X?o():V?s():Z?u():void 0===Q&&"function"==typeof require?f():c();var et=Math.random().toString(36).substring(16),nt=void 0,rt=1,ot=2,it=new M,st=new M,ut=0;return Y.prototype._enumerate=function(t){for(var e=0;this._state===nt&&e<t.length;e++)this._eachEntry(t[e],e)},Y.prototype._eachEntry=function(t,e){var n=this._instanceConstructor,r=n.resolve;if(r===h){var o=_(t);if(o===l&&t._state!==nt)this._settledAt(t._state,e,t._result);else if("function"!=typeof o)this._remaining--,this._result[e]=t;else if(n===U){var i=new n(p);w(i,t,o),this._willSettleAt(i,e)}else this._willSettleAt(new n(function(e){return e(t)}),e)}else this._willSettleAt(r(t),e)},Y.prototype._settledAt=function(t,e,n){var r=this.promise;r._state===nt&&(this._remaining--,t===ot?j(r,n):this._result[e]=n),0===this._remaining&&S(r,this._result)},Y.prototype._willSettleAt=function(t,e){var n=this;E(t,void 0,function(t){return n._settledAt(rt,e,t)},function(t){return n._settledAt(ot,e,t)})},U.all=F,U.race=D,U.resolve=h,U.reject=K,U._setScheduler=n,U._setAsap=r,U._asap=J,U.prototype={constructor:U,then:l,"catch":function(t){return this.then(null,t)}},U.polyfill=W,U.Promise=U,U}); \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index ac752492db..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["config/versionTemplate.txt","lib/es6-promise/utils.js","lib/es6-promise/asap.js","lib/es6-promise/then.js","lib/es6-promise/promise/resolve.js","lib/es6-promise/-internal.js","lib/es6-promise/enumerator.js","lib/es6-promise/promise/all.js","lib/es6-promise/promise/race.js","lib/es6-promise/promise/reject.js","lib/es6-promise/promise.js","lib/es6-promise/polyfill.js","lib/es6-promise.js"],"sourcesContent":["/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version 4.1.1\n */\n","'use strict';\n\nexport { objectOrFunction };\nexport { isFunction };\nexport { isMaybeThenable };\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\nfunction isMaybeThenable(x) {\n return x !== null && typeof x === 'object';\n}\n\nvar _isArray = undefined;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\nexport { isArray };","'use strict';\n\nexport { setScheduler };\nexport { setAsap };\nvar len = 0;\nvar vertxNext = undefined;\nvar customSchedulerFn = undefined;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nexport { asap };\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var r = require;\n var vertx = r('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = undefined;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}","'use strict';\n\nexport default then;\nimport { invokeCallback, subscribe, FULFILLED, REJECTED, noop, makePromise, PROMISE_ID } from './-internal';\n\nimport { asap } from './asap';\nfunction then(onFulfillment, onRejection) {\n var _arguments = arguments;\n\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n if (_state) {\n (function () {\n var callback = _arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n })();\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}","'use strict';\n\nexport default resolve;\nimport { noop, resolve as _resolve } from '../-internal';\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n _resolve(promise, object);\n return promise;\n}","'use strict';\n\nimport { objectOrFunction, isFunction } from './utils';\n\nimport { asap } from './asap';\n\nimport originalThen from './then';\nimport originalResolve from './promise/resolve';\n\nvar PROMISE_ID = Math.random().toString(36).substring(16);\n\nexport { PROMISE_ID };\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nvar GET_THEN_ERROR = new ErrorObject();\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction getThen(promise) {\n try {\n return promise.then;\n } catch (error) {\n GET_THEN_ERROR.error = error;\n return GET_THEN_ERROR;\n }\n}\n\nfunction tryThen(then, value, fulfillmentHandler, rejectionHandler) {\n try {\n then.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then) {\n if (maybeThenable.constructor === promise.constructor && then === originalThen && maybeThenable.constructor.resolve === originalResolve) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then === GET_THEN_ERROR) {\n reject(promise, GET_THEN_ERROR.error);\n GET_THEN_ERROR.error = null;\n } else if (then === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then)) {\n handleForeignThenable(promise, maybeThenable, then);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n handleMaybeThenable(promise, value, getThen(value));\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = undefined,\n callback = undefined,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction ErrorObject() {\n this.error = null;\n}\n\nvar TRY_CATCH_ERROR = new ErrorObject();\n\nfunction tryCatch(callback, detail) {\n try {\n return callback(detail);\n } catch (e) {\n TRY_CATCH_ERROR.error = e;\n return TRY_CATCH_ERROR;\n }\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = undefined,\n error = undefined,\n succeeded = undefined,\n failed = undefined;\n\n if (hasCallback) {\n value = tryCatch(callback, detail);\n\n if (value === TRY_CATCH_ERROR) {\n failed = true;\n error = value.error;\n value.error = null;\n } else {\n succeeded = true;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n succeeded = true;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (failed) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nexport { nextId, makePromise, getThen, noop, resolve, reject, fulfill, subscribe, publish, publishRejection, initializePromise, invokeCallback, FULFILLED, REJECTED, PENDING, handleMaybeThenable };","'use strict';\n\nimport { isArray, isMaybeThenable } from './utils';\n\nimport { noop, reject, fulfill, subscribe, FULFILLED, REJECTED, PENDING, getThen, handleMaybeThenable } from './-internal';\n\nimport then from './then';\nimport Promise from './promise';\nimport originalResolve from './promise/resolve';\nimport originalThen from './then';\nimport { makePromise, PROMISE_ID } from './-internal';\n\nexport default Enumerator;\nfunction Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n};\n\nEnumerator.prototype._enumerate = function (input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n};\n\nEnumerator.prototype._eachEntry = function (entry, i) {\n var c = this._instanceConstructor;\n var resolve = c.resolve;\n\n if (resolve === originalResolve) {\n var _then = getThen(entry);\n\n if (_then === originalThen && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise) {\n var promise = new c(noop);\n handleMaybeThenable(promise, entry, _then);\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve) {\n return resolve(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve(entry), i);\n }\n};\n\nEnumerator.prototype._settledAt = function (state, i, value) {\n var promise = this.promise;\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n};\n\nEnumerator.prototype._willSettleAt = function (promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n};","'use strict';\n\nexport default all;\nimport Enumerator from '../enumerator';\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}","\"use strict\";\n\nexport default race;\nimport { isArray } from \"../utils\";\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}","'use strict';\n\nexport default reject;\nimport { noop, reject as _reject } from '../-internal';\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n _reject(promise, reason);\n return promise;\n}","'use strict';\n\nexport default Promise;\n\nimport { isFunction } from './utils';\n\nimport { noop, nextId, PROMISE_ID, initializePromise } from './-internal';\n\nimport { asap, setAsap, setScheduler } from './asap';\n\nimport all from './promise/all';\nimport race from './promise/race';\nimport Resolve from './promise/resolve';\nimport Reject from './promise/reject';\nimport then from './then';\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {function} resolver\n Useful for tooling.\n @constructor\n*/\nfunction Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n}\n\nPromise.all = all;\nPromise.race = race;\nPromise.resolve = Resolve;\nPromise.reject = Reject;\nPromise._setScheduler = setScheduler;\nPromise._setAsap = setAsap;\nPromise._asap = asap;\n\nPromise.prototype = {\n constructor: Promise,\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n \n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n \n Chaining\n --------\n \n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n \n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n \n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n \n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n \n Assimilation\n ------------\n \n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n \n If the assimliated promise rejects, then the downstream promise will also reject.\n \n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n \n Simple Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let result;\n \n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n \n Advanced Example\n --------------\n \n Synchronous Example\n \n ```javascript\n let author, books;\n \n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n \n Errback Example\n \n ```js\n \n function foundBooks(books) {\n \n }\n \n function failure(reason) {\n \n }\n \n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n \n Promise Example;\n \n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n \n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n then: then,\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n \n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n \n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n \n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n \n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n 'catch': function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n};","/*global self*/\n'use strict';\n\nexport default polyfill;\nimport Promise from './promise';\nfunction polyfill() {\n var local = undefined;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise;\n}","'use strict';\n\nimport Promise from './es6-promise/promise';\nimport polyfill from './es6-promise/polyfill';\n\n// Strange compat..\nPromise.polyfill = polyfill;\nPromise.Promise = Promise;\nexport default Promise;"],"names":["resolve","_resolve","then","originalThen","originalResolve","Enumerator","Promise","all","race","reject","_reject","Resolve","Reject","polyfill"],"mappings":"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","file":"es6-promise.min.js"} \ No newline at end of file
diff --git a/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 b/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
deleted file mode 100644
index d90ab85a59..0000000000
--- a/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
+++ /dev/null
@@ -1,74 +0,0 @@
-export interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Thenable<U>;
-}
-
-export class Promise <R> implements Thenable <R> {
- /**
- * If you call resolve in the body of the callback passed to the constructor,
- * your promise is fulfilled with result object passed to resolve.
- * If you call reject your promise is rejected with the object passed to resolve.
- * For consistency and debugging (eg stack traces), obj should be an instanceof Error.
- * Any errors thrown in the constructor callback will be implicitly passed to reject().
- */
- constructor (callback: (resolve : (value?: R | Thenable<R>) => void, reject: (error?: any) => void) => void);
-
- /**
- * onFulfilled is called when/if "promise" resolves. onRejected is called when/if "promise" rejects.
- * Both are optional, if either/both are omitted the next onFulfilled/onRejected in the chain is called.
- * Both callbacks have a single parameter , the fulfillment value or rejection reason.
- * "then" returns a new promise equivalent to the value you return from onFulfilled/onRejected after being passed through Promise.resolve.
- * If an error is thrown in the callback, the returned promise rejects with that error.
- *
- * @param onFulfilled called when/if "promise" resolves
- * @param onRejected called when/if "promise" rejects
- */
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => void): Promise<U>;
-
- /**
- * Sugar for promise.then(undefined, onRejected)
- *
- * @param onRejected called when/if "promise" rejects
- */
- catch <U> (onRejected?: (error: any) => U | Thenable<U>): Promise<U>;
-
- /**
- * Make a new promise from the thenable.
- * A thenable is promise-like in as far as it has a "then" method.
- */
- static resolve (): Promise<void>;
- static resolve <R> (value: R | Thenable<R>): Promise<R>;
-
- /**
- * Make a promise that rejects to obj. For consistency and debugging (eg stack traces), obj should be an instanceof Error
- */
- static reject <R> (error: any): Promise<R>;
-
- /**
- * Make a promise that fulfills when every item in the array fulfills, and rejects if (and when) any item rejects.
- * the array passed to all can be a mixture of promise-like objects and other objects.
- * The fulfillment value is an array (in order) of fulfillment values. The rejection value is the first rejection value.
- */
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>, T10 | Thenable<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>, T9 | Thenable<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;
- static all<T1, T2, T3, T4, T5, T6, T7, T8>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>, T8 | Thenable<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>;
- static all<T1, T2, T3, T4, T5, T6, T7>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>, T7 | Thenable<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>;
- static all<T1, T2, T3, T4, T5, T6>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>, T6 | Thenable<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>;
- static all<T1, T2, T3, T4, T5>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>, T5 | Thenable<T5>]): Promise<[T1, T2, T3, T4, T5]>;
- static all<T1, T2, T3, T4>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>, T4 | Thenable <T4>]): Promise<[T1, T2, T3, T4]>;
- static all<T1, T2, T3>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>, T3 | Thenable<T3>]): Promise<[T1, T2, T3]>;
- static all<T1, T2>(values: [T1 | Thenable<T1>, T2 | Thenable<T2>]): Promise<[T1, T2]>;
- static all<T1>(values: [T1 | Thenable<T1>]): Promise<[T1]>;
- static all<TAll>(values: Array<TAll | Thenable<TAll>>): Promise<TAll[]>;
-
- /**
- * Make a Promise that fulfills when any item fulfills, and rejects if any item rejects.
- */
- static race <R> (promises: (R | Thenable<R>)[]): Promise<R>;
-}
-
-/**
- * The polyfill method will patch the global environment (in this case to the Promise name) when called.
- */
-export function polyfill (): void;
diff --git a/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 b/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
deleted file mode 100644
index 77997866f8..0000000000
--- a/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
+++ /dev/null
@@ -1,3 +0,0 @@
-import Promise from './es6-promise';
-Promise.polyfill();
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 4f4d840d09..0000000000
--- a/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
+++ /dev/null
@@ -1,7 +0,0 @@
-import Promise from './es6-promise/promise';
-import polyfill from './es6-promise/polyfill';
-
-// Strange compat..
-Promise.polyfill = polyfill;
-Promise.Promise = Promise;
-export default Promise;
diff --git a/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 b/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
deleted file mode 100644
index 038140d8d8..0000000000
--- a/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
+++ /dev/null
@@ -1,271 +0,0 @@
-import {
- objectOrFunction,
- isFunction
-} from './utils';
-
-import {
- asap
-} from './asap';
-
-import originalThen from './then';
-import originalResolve from './promise/resolve';
-
-export const PROMISE_ID = Math.random().toString(36).substring(16);
-
-function noop() {}
-
-const PENDING = void 0;
-const FULFILLED = 1;
-const REJECTED = 2;
-
-const GET_THEN_ERROR = new ErrorObject();
-
-function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
-}
-
-function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
-}
-
-function getThen(promise) {
- try {
- return promise.then;
- } catch(error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
-}
-
-function tryThen(then, value, fulfillmentHandler, rejectionHandler) {
- try {
- then.call(value, fulfillmentHandler, rejectionHandler);
- } catch(e) {
- return e;
- }
-}
-
-function handleForeignThenable(promise, thenable, then) {
- asap(promise => {
- var sealed = false;
- var error = tryThen(then, thenable, value => {
- if (sealed) { return; }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, reason => {
- if (sealed) { return; }
- sealed = true;
-
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
-
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
-}
-
-function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, value => resolve(promise, value),
- reason => reject(promise, reason))
- }
-}
-
-function handleMaybeThenable(promise, maybeThenable, then) {
- if (maybeThenable.constructor === promise.constructor &&
- then === originalThen &&
- maybeThenable.constructor.resolve === originalResolve) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then)) {
- handleForeignThenable(promise, maybeThenable, then);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
-}
-
-function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
-}
-
-function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
-
- publish(promise);
-}
-
-function fulfill(promise, value) {
- if (promise._state !== PENDING) { return; }
-
- promise._result = value;
- promise._state = FULFILLED;
-
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
-}
-
-function reject(promise, reason) {
- if (promise._state !== PENDING) { return; }
- promise._state = REJECTED;
- promise._result = reason;
-
- asap(publishRejection, promise);
-}
-
-function subscribe(parent, child, onFulfillment, onRejection) {
- let { _subscribers } = parent;
- let { length } = _subscribers;
-
- parent._onerror = null;
-
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
-
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
-}
-
-function publish(promise) {
- let subscribers = promise._subscribers;
- let settled = promise._state;
-
- if (subscribers.length === 0) { return; }
-
- let child, callback, detail = promise._result;
-
- for (let i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
-
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
-
- promise._subscribers.length = 0;
-}
-
-function ErrorObject() {
- this.error = null;
-}
-
-const TRY_CATCH_ERROR = new ErrorObject();
-
-function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch(e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
-}
-
-function invokeCallback(settled, promise, callback, detail) {
- let hasCallback = isFunction(callback),
- value, error, succeeded, failed;
-
- if (hasCallback) {
- value = tryCatch(callback, detail);
-
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
-
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
-
- } else {
- value = detail;
- succeeded = true;
- }
-
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
-}
-
-function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value){
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch(e) {
- reject(promise, e);
- }
-}
-
-let id = 0;
-function nextId() {
- return id++;
-}
-
-function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
-}
-
-export {
- nextId,
- makePromise,
- getThen,
- noop,
- resolve,
- reject,
- fulfill,
- subscribe,
- publish,
- publishRejection,
- initializePromise,
- invokeCallback,
- FULFILLED,
- REJECTED,
- PENDING,
- handleMaybeThenable
-};
diff --git a/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 b/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
deleted file mode 100644
index 1055b92e75..0000000000
--- a/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
+++ /dev/null
@@ -1,120 +0,0 @@
-let len = 0;
-let vertxNext;
-let customSchedulerFn;
-
-export var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
-}
-
-export function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
-}
-
-export function setAsap(asapFn) {
- asap = asapFn;
-}
-
-const browserWindow = (typeof window !== 'undefined') ? window : undefined;
-const browserGlobal = browserWindow || {};
-const BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
-const isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';
-
-// test for web worker but not in IE10
-const isWorker = typeof Uint8ClampedArray !== 'undefined' &&
- typeof importScripts !== 'undefined' &&
- typeof MessageChannel !== 'undefined';
-
-// node
-function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return () => process.nextTick(flush);
-}
-
-// vertx
-function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function() {
- vertxNext(flush);
- };
- }
-
- return useSetTimeout();
-}
-
-function useMutationObserver() {
- let iterations = 0;
- const observer = new BrowserMutationObserver(flush);
- const node = document.createTextNode('');
- observer.observe(node, { characterData: true });
-
- return () => {
- node.data = (iterations = ++iterations % 2);
- };
-}
-
-// web worker
-function useMessageChannel() {
- const channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return () => channel.port2.postMessage(0);
-}
-
-function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- const globalSetTimeout = setTimeout;
- return () => globalSetTimeout(flush, 1);
-}
-
-const queue = new Array(1000);
-function flush() {
- for (let i = 0; i < len; i+=2) {
- let callback = queue[i];
- let arg = queue[i+1];
-
- callback(arg);
-
- queue[i] = undefined;
- queue[i+1] = undefined;
- }
-
- len = 0;
-}
-
-function attemptVertx() {
- try {
- const r = require;
- const vertx = r('vertx');
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch(e) {
- return useSetTimeout();
- }
-}
-
-let scheduleFlush;
-// Decide what async method to use to triggering processing of queued callbacks:
-if (isNode) {
- scheduleFlush = useNextTick();
-} else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
-} else if (isWorker) {
- scheduleFlush = useMessageChannel();
-} else if (browserWindow === undefined && typeof require === 'function') {
- scheduleFlush = attemptVertx();
-} else {
- scheduleFlush = useSetTimeout();
-}
diff --git a/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 b/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
deleted file mode 100644
index df4faca879..0000000000
--- a/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
+++ /dev/null
@@ -1,111 +0,0 @@
-import {
- isArray,
- isMaybeThenable
-} from './utils';
-
-import {
- noop,
- reject,
- fulfill,
- subscribe,
- FULFILLED,
- REJECTED,
- PENDING,
- getThen,
- handleMaybeThenable
-} from './-internal';
-
-import then from './then';
-import Promise from './promise';
-import originalResolve from './promise/resolve';
-import originalThen from './then';
-import { makePromise, PROMISE_ID } from './-internal';
-
-export default Enumerator;
-function Enumerator(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
-
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
-
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
-
- this._result = new Array(this.length);
-
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
-}
-
-function validationError() {
- return new Error('Array Methods must be provided an Array');
-};
-
-Enumerator.prototype._enumerate = function(input) {
- for (let i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
-};
-
-Enumerator.prototype._eachEntry = function(entry, i) {
- let c = this._instanceConstructor;
- let { resolve } = c;
-
- if (resolve === originalResolve) {
- let then = getThen(entry);
-
- if (then === originalThen &&
- entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise) {
- let promise = new c(noop);
- handleMaybeThenable(promise, entry, then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(resolve => resolve(entry)), i);
- }
- } else {
- this._willSettleAt(resolve(entry), i);
- }
-};
-
-Enumerator.prototype._settledAt = function(state, i, value) {
- let { promise } = this;
-
- if (promise._state === PENDING) {
- this._remaining--;
-
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
-
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
-};
-
-Enumerator.prototype._willSettleAt = function(promise, i) {
- let enumerator = this;
-
- subscribe(promise, undefined, value => enumerator._settledAt(FULFILLED, i, value),
- reason => enumerator._settledAt(REJECTED, i, reason));
-};
diff --git a/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 b/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
deleted file mode 100644
index 83ddf0662b..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-/*global self*/
-import Promise from './promise';
-
-export default function polyfill() {
- let local;
-
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
-
- let P = local.Promise;
-
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch(e) {
- // silently ignored
- }
-
- if (promiseToString === '[object Promise]' && !P.cast){
- return;
- }
- }
-
- local.Promise = Promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 20558cbeea..0000000000
--- a/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
+++ /dev/null
@@ -1,383 +0,0 @@
-import {
- isFunction
-} from './utils';
-
-import {
- noop,
- nextId,
- PROMISE_ID,
- initializePromise
-} from './-internal';
-
-import {
- asap,
- setAsap,
- setScheduler
-} from './asap';
-
-import all from './promise/all';
-import race from './promise/race';
-import Resolve from './promise/resolve';
-import Reject from './promise/reject';
-import then from './then';
-
-
-function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
-}
-
-function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
-}
-
-/**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
-
- Terminology
- -----------
-
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
-
- A promise can be in one of three states: pending, fulfilled, or rejected.
-
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
-
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
-
-
- Basic Usage:
- ------------
-
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
-
- // on failure
- reject(reason);
- });
-
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Advanced Usage:
- ---------------
-
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
-
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
-
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
-
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
-
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
-
- Unlike callbacks, promises are great composable primitives.
-
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
-
- return values;
- });
- ```
-
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
-*/
-export default function Promise(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
-
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise ? initializePromise(this, resolver) : needsNew();
- }
-}
-
-Promise.all = all;
-Promise.race = race;
-Promise.resolve = Resolve;
-Promise.reject = Reject;
-Promise._setScheduler = setScheduler;
-Promise._setAsap = setAsap;
-Promise._asap = asap;
-
-Promise.prototype = {
- constructor: Promise,
-
-/**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
-*/
- then: then,
-
-/**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
-*/
- catch(onRejection) {
- return this.then(null, onRejection);
- }
-};
diff --git a/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 b/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
deleted file mode 100644
index 9ca3c063aa..0000000000
--- a/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
+++ /dev/null
@@ -1,52 +0,0 @@
-import Enumerator from '../enumerator';
-
-/**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
-
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
-
- Example:
-
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
-
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
-
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
-*/
-export default function all(entries) {
- return new Enumerator(this, entries).promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index 166dc820b5..0000000000
--- a/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
+++ /dev/null
@@ -1,84 +0,0 @@
-import {
- isArray
-} from "../utils";
-
-/**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
-
- Example:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
-
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
-
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
-
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
-
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
-
- An example real-world use case is implementing timeouts:
-
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
-
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
-*/
-export default function race(entries) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (!isArray(entries)) {
- return new Constructor((_, reject) => reject(new TypeError('You must pass an array to race.')));
- } else {
- return new Constructor((resolve, reject) => {
- let length = entries.length;
- for (let i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cd55faabf5..0000000000
--- a/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
+++ /dev/null
@@ -1,46 +0,0 @@
-import {
- noop,
- reject as _reject
-} from '../-internal';
-
-/**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
-
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
-
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
-*/
-export default function reject(reason) {
- /*jshint validthis:true */
- let Constructor = this;
- let promise = new Constructor(noop);
- _reject(promise, reason);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index f4642b630e..0000000000
--- a/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
+++ /dev/null
@@ -1,48 +0,0 @@
-import {
- noop,
- resolve as _resolve
-} from '../-internal';
-
-/**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
-
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- Instead of writing the above, your code now simply becomes the following:
-
- ```javascript
- let promise = Promise.resolve(1);
-
- promise.then(function(value){
- // value === 1
- });
- ```
-
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
-*/
-export default function resolve(object) {
- /*jshint validthis:true */
- let Constructor = this;
-
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
-
- let promise = new Constructor(noop);
- _resolve(promise, object);
- return promise;
-}
diff --git a/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 b/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
deleted file mode 100644
index b2b79f0a14..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-import {
- invokeCallback,
- subscribe,
- FULFILLED,
- REJECTED,
- noop,
- makePromise,
- PROMISE_ID
-} from './-internal';
-
-import { asap } from './asap';
-
-export default function then(onFulfillment, onRejection) {
- const parent = this;
-
- const child = new this.constructor(noop);
-
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
-
- const { _state } = parent;
-
- if (_state) {
- const callback = arguments[_state - 1];
- asap(() => invokeCallback(_state, child, callback, parent._result));
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
-
- return child;
-}
diff --git a/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 b/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
deleted file mode 100644
index 72545c5e97..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-export function objectOrFunction(x) {
- let type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
-}
-
-export function isFunction(x) {
- return typeof x === 'function';
-}
-
-export function isMaybeThenable(x) {
- return x !== null && typeof x === 'object';
-}
-
-let _isArray;
-if (Array.isArray) {
- _isArray = Array.isArray;
-} else {
- _isArray = x => Object.prototype.toString.call(x) === '[object Array]';
-}
-
-export const isArray = _isArray;
diff --git a/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 b/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
deleted file mode 100644
index 3eeaa7e3d6..0000000000
--- a/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
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "es6-promise@^4.0.3",
- "_id": "es6-promise@4.1.1",
- "_inBundle": false,
- "_integrity": "sha512-OaU1hHjgJf+b0NzsxCg7NdIYERD6Hy/PEmFLTjw+b65scuisG3Kt4QoTvJ66BBkPZ581gr0kpoVzKnxniM8nng==",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify/es6-promise",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promise@^4.0.3",
- "name": "es6-promise",
- "escapedName": "es6-promise",
- "rawSpec": "^4.0.3",
- "saveSpec": null,
- "fetchSpec": "^4.0.3"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.1.1.tgz",
- "_shasum": "8811e90915d9a0dba36274f0b242dbda78f9c92a",
- "_spec": "es6-promise@^4.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/node_modules/es6-promisify",
- "author": {
- "name": "Yehuda Katz, Tom Dale, Stefan Penner and contributors",
- "url": "Conversion to ES6 API by Jake Archibald"
- },
- "browser": {
- "vertx": false
- },
- "bugs": {
- "url": "https://github.com/stefanpenner/es6-promise/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A lightweight library that provides tools for organizing asynchronous code",
- "devDependencies": {
- "broccoli-babel-transpiler": "^5.6.1",
- "broccoli-concat": "^3.1.0",
- "broccoli-merge-trees": "^1.2.3",
- "broccoli-rollup": "^1.0.2",
- "broccoli-stew": "^1.2.0",
- "broccoli-uglify-js": "^0.2.0",
- "broccoli-watchify": "^1.0.1",
- "ember-cli": "2.12.2",
- "ember-cli-dependency-checker": "^1.3.0",
- "ember-publisher": "0.0.7",
- "git-repo-version": "0.4.1",
- "json3": "^3.3.2",
- "mocha": "^3.1.0",
- "promises-aplus-tests-phantom": "^2.1.0-revise",
- "release-it": "2.7.1"
- },
- "directories": {
- "lib": "lib"
- },
- "files": [
- "dist",
- "lib",
- "es6-promise.d.ts",
- "auto.js",
- "!dist/test"
- ],
- "homepage": "https://github.com/stefanpenner/es6-promise#readme",
- "keywords": [
- "promises",
- "promise",
- "polyfill",
- "futures"
- ],
- "license": "MIT",
- "main": "dist/es6-promise.js",
- "name": "es6-promise",
- "namespace": "es6-promise",
- "repository": {
- "type": "git",
- "url": "git://github.com/stefanpenner/es6-promise.git"
- },
- "scripts": {
- "build": "ember build --environment production",
- "build:production": "ember build --env production",
- "dry-run-release": "ember build --environment production && release-it --dry-run --non-interactive",
- "lint": "jshint lib",
- "prepublish": "ember build --environment production",
- "start": "ember s",
- "test": "ember test",
- "test:node": "ember build && mocha ./dist/test/browserify",
- "test:server": "ember test --server"
- },
- "spm": {
- "main": "dist/es6-promise.js"
- },
- "typings": "es6-promise.d.ts",
- "version": "4.1.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index c0fdd1680a..0000000000
--- a/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
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "es6-promisify@^5.0.0",
- "_id": "es6-promisify@5.0.0",
- "_inBundle": false,
- "_integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/agent-base/es6-promisify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "es6-promisify@^5.0.0",
- "name": "es6-promisify",
- "escapedName": "es6-promisify",
- "rawSpec": "^5.0.0",
- "saveSpec": null,
- "fetchSpec": "^5.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent/agent-base"
- ],
- "_resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
- "_shasum": "5109d62f3e56ea967c4b63505aef08291c8a5203",
- "_spec": "es6-promisify@^5.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base",
- "author": {
- "name": "Mike Hall",
- "email": "mikehall314@gmail.com"
- },
- "bugs": {
- "url": "http://github.com/digitaldesignlabs/es6-promisify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "es6-promise": "^4.0.3"
- },
- "deprecated": false,
- "description": "Converts callback-based functions to ES6 Promises",
- "devDependencies": {
- "babel-preset-es2015": "^6.9.0",
- "eslint": "^2.13.1",
- "gulp": "^3.9.1",
- "gulp-babel": "^6.1.2",
- "nodeunit": "^0.10.0"
- },
- "files": [
- "dist/promisify.js",
- "dist/promise.js"
- ],
- "greenkeeper": {
- "ignore": [
- "eslint"
- ]
- },
- "homepage": "https://github.com/digitaldesignlabs/es6-promisify#readme",
- "keywords": [
- "promises",
- "es6",
- "promisify"
- ],
- "license": "MIT",
- "main": "dist/promisify.js",
- "name": "es6-promisify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/digitaldesignlabs/es6-promisify.git"
- },
- "scripts": {
- "pretest": "./node_modules/eslint/bin/eslint.js ./lib/*.js ./tests/*.js",
- "test": "gulp && nodeunit tests"
- },
- "version": "5.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json
deleted file mode 100644
index 73baf0b326..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "agent-base@^4.1.0",
- "_id": "agent-base@4.1.2",
- "_inBundle": false,
- "_integrity": "sha512-VE6QoEdaugY86BohRtfGmTDabxdU5sCKOkbcPA6PXKJsRzEi/7A3RCTxJal1ft/4qSfPht5/iQLhMh/wzSkkNw==",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/agent-base",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "agent-base@^4.1.0",
- "name": "agent-base",
- "escapedName": "agent-base",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.1.2.tgz",
- "_shasum": "80fa6cde440f4dcf9af2617cf246099b5d99f0c8",
- "_spec": "agent-base@^4.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-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.1.2"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js
deleted file mode 100644
index 3891c13a8b..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/patch-core.js
+++ /dev/null
@@ -1,38 +0,0 @@
-'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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js
deleted file mode 100644
index 23814e2c32..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/agent-base/test/test.js
+++ /dev/null
@@ -1,631 +0,0 @@
-/**
- * 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('../');
-
-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'
- );
- if ('function' == typeof stream.ondata) {
- // node <= v0.11.3
- stream.ondata(buf, 0, buf.length);
- } else {
- // node > v0.11.3
- 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('"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('"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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc
deleted file mode 100644
index dbaae20574..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.jscsrc
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- "disallowKeywordsOnNewLine": [ "else" ],
- "disallowMixedSpacesAndTabs": true,
- "disallowMultipleLineStrings": true,
- "disallowMultipleVarDecl": true,
- "disallowNewlineBeforeBlockStatements": true,
- "disallowQuotedKeysInObjects": true,
- "disallowSpaceAfterObjectKeys": true,
- "disallowSpaceAfterPrefixUnaryOperators": true,
- "disallowSpaceBeforePostfixUnaryOperators": true,
- "disallowSpacesInCallExpression": true,
- "disallowTrailingComma": true,
- "disallowTrailingWhitespace": true,
- "disallowYodaConditions": true,
-
- "requireCommaBeforeLineBreak": true,
- "requireOperatorBeforeLineBreak": true,
- "requireSpaceAfterBinaryOperators": true,
- "requireSpaceAfterKeywords": [ "if", "for", "while", "else", "try", "catch" ],
- "requireSpaceAfterLineComment": true,
- "requireSpaceBeforeBinaryOperators": true,
- "requireSpaceBeforeBlockStatements": true,
- "requireSpaceBeforeKeywords": [ "else", "catch" ],
- "requireSpaceBeforeObjectValues": true,
- "requireSpaceBetweenArguments": true,
- "requireSpacesInAnonymousFunctionExpression": {
- "beforeOpeningCurlyBrace": true
- },
- "requireSpacesInFunctionDeclaration": {
- "beforeOpeningCurlyBrace": true
- },
- "requireSpacesInFunctionExpression": {
- "beforeOpeningCurlyBrace": true
- },
- "requireSpacesInConditionalExpression": true,
- "requireSpacesInForStatement": true,
- "requireSpacesInsideArrayBrackets": "all",
- "requireSpacesInsideObjectBrackets": "all",
- "requireDotNotation": true,
-
- "maximumLineLength": 80,
- "validateIndentation": 2,
- "validateLineBreaks": "LF",
- "validateParameterSeparator": ", ",
- "validateQuoteMarks": "'"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore
deleted file mode 100644
index 1ca957177f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml
deleted file mode 100644
index a3a8fad6b6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/.travis.yml
+++ /dev/null
@@ -1,15 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
- - "0.12"
- - "4"
- - "6"
-
-before_install:
- - travis_retry npm install -g npm@2.14.5
- - travis_retry npm install
-
-script:
- - npm test
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md
deleted file mode 100644
index 9035fd71b1..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/README.md
+++ /dev/null
@@ -1,90 +0,0 @@
-# IP
-[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip)
-
-IP address utilities for node.js
-
-## Installation
-
-### npm
-```shell
-npm install ip
-```
-
-### git
-
-```shell
-git clone https://github.com/indutny/node-ip.git
-```
-
-## Usage
-Get your ip address, compare ip addresses, validate ip addresses, etc.
-
-```js
-var ip = require('ip');
-
-ip.address() // my ip address
-ip.isEqual('::1', '::0:1'); // true
-ip.toBuffer('127.0.0.1') // Buffer([127, 0, 0, 1])
-ip.toString(new Buffer([127, 0, 0, 1])) // 127.0.0.1
-ip.fromPrefixLen(24) // 255.255.255.0
-ip.mask('192.168.1.134', '255.255.255.0') // 192.168.1.0
-ip.cidr('192.168.1.134/26') // 192.168.1.128
-ip.not('255.255.255.0') // 0.0.0.255
-ip.or('192.168.1.134', '0.0.0.255') // 192.168.1.255
-ip.isPrivate('127.0.0.1') // true
-ip.isV4Format('127.0.0.1'); // true
-ip.isV6Format('::ffff:127.0.0.1'); // true
-
-// operate on buffers in-place
-var buf = new Buffer(128);
-var offset = 64;
-ip.toBuffer('127.0.0.1', buf, offset); // [127, 0, 0, 1] at offset 64
-ip.toString(buf, offset, 4); // '127.0.0.1'
-
-// subnet information
-ip.subnet('192.168.1.134', '255.255.255.192')
-// { networkAddress: '192.168.1.128',
-// firstAddress: '192.168.1.129',
-// lastAddress: '192.168.1.190',
-// broadcastAddress: '192.168.1.191',
-// subnetMask: '255.255.255.192',
-// subnetMaskLength: 26,
-// numHosts: 62,
-// length: 64,
-// contains: function(addr){...} }
-ip.cidrSubnet('192.168.1.134/26')
-// Same as previous.
-
-// range checking
-ip.cidrSubnet('192.168.1.134/26').contains('192.168.1.190') // true
-
-
-// ipv4 long conversion
-ip.toLong('127.0.0.1'); // 2130706433
-ip.fromLong(2130706433); // '127.0.0.1'
-```
-
-### License
-
-This software is licensed under the MIT License.
-
-Copyright Fedor Indutny, 2012.
-
-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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js
deleted file mode 100644
index c1799a8c50..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/lib/ip.js
+++ /dev/null
@@ -1,416 +0,0 @@
-'use strict';
-
-var ip = exports;
-var Buffer = require('buffer').Buffer;
-var os = require('os');
-
-ip.toBuffer = function(ip, buff, offset) {
- offset = ~~offset;
-
- var result;
-
- if (this.isV4Format(ip)) {
- result = buff || new Buffer(offset + 4);
- ip.split(/\./g).map(function(byte) {
- result[offset++] = parseInt(byte, 10) & 0xff;
- });
- } else if (this.isV6Format(ip)) {
- var sections = ip.split(':', 8);
-
- var i;
- for (i = 0; i < sections.length; i++) {
- var isv4 = this.isV4Format(sections[i]);
- var v4Buffer;
-
- if (isv4) {
- v4Buffer = this.toBuffer(sections[i]);
- sections[i] = v4Buffer.slice(0, 2).toString('hex');
- }
-
- if (v4Buffer && ++i < 8) {
- sections.splice(i, 0, v4Buffer.slice(2, 4).toString('hex'));
- }
- }
-
- if (sections[0] === '') {
- while (sections.length < 8) sections.unshift('0');
- } else if (sections[sections.length - 1] === '') {
- while (sections.length < 8) sections.push('0');
- } else if (sections.length < 8) {
- for (i = 0; i < sections.length && sections[i] !== ''; i++);
- var argv = [ i, 1 ];
- for (i = 9 - sections.length; i > 0; i--) {
- argv.push('0');
- }
- sections.splice.apply(sections, argv);
- }
-
- result = buff || new Buffer(offset + 16);
- for (i = 0; i < sections.length; i++) {
- var word = parseInt(sections[i], 16);
- result[offset++] = (word >> 8) & 0xff;
- result[offset++] = word & 0xff;
- }
- }
-
- if (!result) {
- throw Error('Invalid ip address: ' + ip);
- }
-
- return result;
-};
-
-ip.toString = function(buff, offset, length) {
- offset = ~~offset;
- length = length || (buff.length - offset);
-
- var result = [];
- if (length === 4) {
- // IPv4
- for (var i = 0; i < length; i++) {
- result.push(buff[offset + i]);
- }
- result = result.join('.');
- } else if (length === 16) {
- // IPv6
- for (var i = 0; i < length; i += 2) {
- result.push(buff.readUInt16BE(offset + i).toString(16));
- }
- result = result.join(':');
- result = result.replace(/(^|:)0(:0)*:0(:|$)/, '$1::$3');
- result = result.replace(/:{3,4}/, '::');
- }
-
- return result;
-};
-
-var ipv4Regex = /^(\d{1,3}\.){3,3}\d{1,3}$/;
-var ipv6Regex =
- /^(::)?(((\d{1,3}\.){3}(\d{1,3}){1})?([0-9a-f]){0,4}:{0,2}){1,8}(::)?$/i;
-
-ip.isV4Format = function(ip) {
- return ipv4Regex.test(ip);
-};
-
-ip.isV6Format = function(ip) {
- return ipv6Regex.test(ip);
-};
-function _normalizeFamily(family) {
- return family ? family.toLowerCase() : 'ipv4';
-}
-
-ip.fromPrefixLen = function(prefixlen, family) {
- if (prefixlen > 32) {
- family = 'ipv6';
- } else {
- family = _normalizeFamily(family);
- }
-
- var len = 4;
- if (family === 'ipv6') {
- len = 16;
- }
- var buff = new Buffer(len);
-
- for (var i = 0, n = buff.length; i < n; ++i) {
- var bits = 8;
- if (prefixlen < 8) {
- bits = prefixlen;
- }
- prefixlen -= bits;
-
- buff[i] = ~(0xff >> bits) & 0xff;
- }
-
- return ip.toString(buff);
-};
-
-ip.mask = function(addr, mask) {
- addr = ip.toBuffer(addr);
- mask = ip.toBuffer(mask);
-
- var result = new Buffer(Math.max(addr.length, mask.length));
-
- var i = 0;
- // Same protocol - do bitwise and
- if (addr.length === mask.length) {
- for (i = 0; i < addr.length; i++) {
- result[i] = addr[i] & mask[i];
- }
- } else if (mask.length === 4) {
- // IPv6 address and IPv4 mask
- // (Mask low bits)
- for (i = 0; i < mask.length; i++) {
- result[i] = addr[addr.length - 4 + i] & mask[i];
- }
- } else {
- // IPv6 mask and IPv4 addr
- for (var i = 0; i < result.length - 6; i++) {
- result[i] = 0;
- }
-
- // ::ffff:ipv4
- result[10] = 0xff;
- result[11] = 0xff;
- for (i = 0; i < addr.length; i++) {
- result[i + 12] = addr[i] & mask[i + 12];
- }
- i = i + 12;
- }
- for (; i < result.length; i++)
- result[i] = 0;
-
- return ip.toString(result);
-};
-
-ip.cidr = function(cidrString) {
- var cidrParts = cidrString.split('/');
-
- var addr = cidrParts[0];
- if (cidrParts.length !== 2)
- throw new Error('invalid CIDR subnet: ' + addr);
-
- var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10));
-
- return ip.mask(addr, mask);
-};
-
-ip.subnet = function(addr, mask) {
- var networkAddress = ip.toLong(ip.mask(addr, mask));
-
- // Calculate the mask's length.
- var maskBuffer = ip.toBuffer(mask);
- var maskLength = 0;
-
- for (var i = 0; i < maskBuffer.length; i++) {
- if (maskBuffer[i] === 0xff) {
- maskLength += 8;
- } else {
- var octet = maskBuffer[i] & 0xff;
- while (octet) {
- octet = (octet << 1) & 0xff;
- maskLength++;
- }
- }
- }
-
- var numberOfAddresses = Math.pow(2, 32 - maskLength);
-
- return {
- networkAddress: ip.fromLong(networkAddress),
- firstAddress: numberOfAddresses <= 2 ?
- ip.fromLong(networkAddress) :
- ip.fromLong(networkAddress + 1),
- lastAddress: numberOfAddresses <= 2 ?
- ip.fromLong(networkAddress + numberOfAddresses - 1) :
- ip.fromLong(networkAddress + numberOfAddresses - 2),
- broadcastAddress: ip.fromLong(networkAddress + numberOfAddresses - 1),
- subnetMask: mask,
- subnetMaskLength: maskLength,
- numHosts: numberOfAddresses <= 2 ?
- numberOfAddresses : numberOfAddresses - 2,
- length: numberOfAddresses,
- contains: function(other) {
- return networkAddress === ip.toLong(ip.mask(other, mask));
- }
- };
-};
-
-ip.cidrSubnet = function(cidrString) {
- var cidrParts = cidrString.split('/');
-
- var addr = cidrParts[0];
- if (cidrParts.length !== 2)
- throw new Error('invalid CIDR subnet: ' + addr);
-
- var mask = ip.fromPrefixLen(parseInt(cidrParts[1], 10));
-
- return ip.subnet(addr, mask);
-};
-
-ip.not = function(addr) {
- var buff = ip.toBuffer(addr);
- for (var i = 0; i < buff.length; i++) {
- buff[i] = 0xff ^ buff[i];
- }
- return ip.toString(buff);
-};
-
-ip.or = function(a, b) {
- a = ip.toBuffer(a);
- b = ip.toBuffer(b);
-
- // same protocol
- if (a.length === b.length) {
- for (var i = 0; i < a.length; ++i) {
- a[i] |= b[i];
- }
- return ip.toString(a);
-
- // mixed protocols
- } else {
- var buff = a;
- var other = b;
- if (b.length > a.length) {
- buff = b;
- other = a;
- }
-
- var offset = buff.length - other.length;
- for (var i = offset; i < buff.length; ++i) {
- buff[i] |= other[i - offset];
- }
-
- return ip.toString(buff);
- }
-};
-
-ip.isEqual = function(a, b) {
- a = ip.toBuffer(a);
- b = ip.toBuffer(b);
-
- // Same protocol
- if (a.length === b.length) {
- for (var i = 0; i < a.length; i++) {
- if (a[i] !== b[i]) return false;
- }
- return true;
- }
-
- // Swap
- if (b.length === 4) {
- var t = b;
- b = a;
- a = t;
- }
-
- // a - IPv4, b - IPv6
- for (var i = 0; i < 10; i++) {
- if (b[i] !== 0) return false;
- }
-
- var word = b.readUInt16BE(10);
- if (word !== 0 && word !== 0xffff) return false;
-
- for (var i = 0; i < 4; i++) {
- if (a[i] !== b[i + 12]) return false;
- }
-
- return true;
-};
-
-ip.isPrivate = function(addr) {
- return /^(::f{4}:)?10\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i
- .test(addr) ||
- /^(::f{4}:)?192\.168\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(addr) ||
- /^(::f{4}:)?172\.(1[6-9]|2\d|30|31)\.([0-9]{1,3})\.([0-9]{1,3})$/i
- .test(addr) ||
- /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(addr) ||
- /^(::f{4}:)?169\.254\.([0-9]{1,3})\.([0-9]{1,3})$/i.test(addr) ||
- /^f[cd][0-9a-f]{2}:/i.test(addr) ||
- /^fe80:/i.test(addr) ||
- /^::1$/.test(addr) ||
- /^::$/.test(addr);
-};
-
-ip.isPublic = function(addr) {
- return !ip.isPrivate(addr);
-};
-
-ip.isLoopback = function(addr) {
- return /^(::f{4}:)?127\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/
- .test(addr) ||
- /^fe80::1$/.test(addr) ||
- /^::1$/.test(addr) ||
- /^::$/.test(addr);
-};
-
-ip.loopback = function(family) {
- //
- // Default to `ipv4`
- //
- family = _normalizeFamily(family);
-
- if (family !== 'ipv4' && family !== 'ipv6') {
- throw new Error('family must be ipv4 or ipv6');
- }
-
- return family === 'ipv4' ? '127.0.0.1' : 'fe80::1';
-};
-
-//
-// ### function address (name, family)
-// #### @name {string|'public'|'private'} **Optional** Name or security
-// of the network interface.
-// #### @family {ipv4|ipv6} **Optional** IP family of the address (defaults
-// to ipv4).
-//
-// Returns the address for the network interface on the current system with
-// the specified `name`:
-// * String: First `family` address of the interface.
-// If not found see `undefined`.
-// * 'public': the first public ip address of family.
-// * 'private': the first private ip address of family.
-// * undefined: First address with `ipv4` or loopback address `127.0.0.1`.
-//
-ip.address = function(name, family) {
- var interfaces = os.networkInterfaces();
- var all;
-
- //
- // Default to `ipv4`
- //
- family = _normalizeFamily(family);
-
- //
- // If a specific network interface has been named,
- // return the address.
- //
- if (name && name !== 'private' && name !== 'public') {
- var res = interfaces[name].filter(function(details) {
- var itemFamily = details.family.toLowerCase();
- return itemFamily === family;
- });
- if (res.length === 0)
- return undefined;
- return res[0].address;
- }
-
- var all = Object.keys(interfaces).map(function (nic) {
- //
- // Note: name will only be `public` or `private`
- // when this is called.
- //
- var addresses = interfaces[nic].filter(function (details) {
- details.family = details.family.toLowerCase();
- if (details.family !== family || ip.isLoopback(details.address)) {
- return false;
- } else if (!name) {
- return true;
- }
-
- return name === 'public' ? ip.isPrivate(details.address) :
- ip.isPublic(details.address);
- });
-
- return addresses.length ? addresses[0].address : undefined;
- }).filter(Boolean);
-
- return !all.length ? ip.loopback(family) : all[0];
-};
-
-ip.toLong = function(ip) {
- var ipl = 0;
- ip.split('.').forEach(function(octet) {
- ipl <<= 8;
- ipl += parseInt(octet);
- });
- return(ipl >>> 0);
-};
-
-ip.fromLong = function(ipl) {
- return ((ipl >>> 24) + '.' +
- (ipl >> 16 & 255) + '.' +
- (ipl >> 8 & 255) + '.' +
- (ipl & 255) );
-};
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json
deleted file mode 100644
index 4ea7f79628..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/ip/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "_from": "ip@^1.1.4",
- "_id": "ip@1.1.5",
- "_inBundle": false,
- "_integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/socks/ip",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ip@^1.1.4",
- "name": "ip",
- "escapedName": "ip",
- "rawSpec": "^1.1.4",
- "saveSpec": null,
- "fetchSpec": "^1.1.4"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent/socks"
- ],
- "_resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "_shasum": "bdded70114290828c0a039e72ef25f5aaec4354a",
- "_spec": "ip@^1.1.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks",
- "author": {
- "name": "Fedor Indutny",
- "email": "fedor@indutny.com"
- },
- "bugs": {
- "url": "https://github.com/indutny/node-ip/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "[![](https://badge.fury.io/js/ip.svg)](https://www.npmjs.com/package/ip)",
- "devDependencies": {
- "jscs": "^2.1.1",
- "jshint": "^2.8.0",
- "mocha": "~1.3.2"
- },
- "homepage": "https://github.com/indutny/node-ip",
- "license": "MIT",
- "main": "lib/ip",
- "name": "ip",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/indutny/node-ip.git"
- },
- "scripts": {
- "fix": "jscs lib/*.js test/*.js --fix",
- "test": "jscs lib/*.js test/*.js && jshint lib/*.js && mocha --reporter spec test/*-test.js"
- },
- "version": "1.1.5"
-}
diff --git a/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 b/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
deleted file mode 100644
index 2e390f986d..0000000000
--- a/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
+++ /dev/null
@@ -1,407 +0,0 @@
-'use strict';
-
-var ip = require('..');
-var assert = require('assert');
-var net = require('net');
-var os = require('os');
-
-describe('IP library for node.js', function() {
- describe('toBuffer()/toString() methods', function() {
- it('should convert to buffer IPv4 address', function() {
- var buf = ip.toBuffer('127.0.0.1');
- assert.equal(buf.toString('hex'), '7f000001');
- assert.equal(ip.toString(buf), '127.0.0.1');
- });
-
- it('should convert to buffer IPv4 address in-place', function() {
- var buf = new Buffer(128);
- var offset = 64;
- ip.toBuffer('127.0.0.1', buf, offset);
- assert.equal(buf.toString('hex', offset, offset + 4), '7f000001');
- assert.equal(ip.toString(buf, offset, 4), '127.0.0.1');
- });
-
- it('should convert to buffer IPv6 address', function() {
- var buf = ip.toBuffer('::1');
- assert(/(00){15,15}01/.test(buf.toString('hex')));
- assert.equal(ip.toString(buf), '::1');
- assert.equal(ip.toString(ip.toBuffer('1::')), '1::');
- assert.equal(ip.toString(ip.toBuffer('abcd::dcba')), 'abcd::dcba');
- });
-
- it('should convert to buffer IPv6 address in-place', function() {
- var buf = new Buffer(128);
- var offset = 64;
- ip.toBuffer('::1', buf, offset);
- assert(/(00){15,15}01/.test(buf.toString('hex', offset, offset + 16)));
- assert.equal(ip.toString(buf, offset, 16), '::1');
- assert.equal(ip.toString(ip.toBuffer('1::', buf, offset),
- offset, 16), '1::');
- assert.equal(ip.toString(ip.toBuffer('abcd::dcba', buf, offset),
- offset, 16), 'abcd::dcba');
- });
-
- it('should convert to buffer IPv6 mapped IPv4 address', function() {
- var buf = ip.toBuffer('::ffff:127.0.0.1');
- assert.equal(buf.toString('hex'), '00000000000000000000ffff7f000001');
- assert.equal(ip.toString(buf), '::ffff:7f00:1');
-
- buf = ip.toBuffer('ffff::127.0.0.1');
- assert.equal(buf.toString('hex'), 'ffff000000000000000000007f000001');
- assert.equal(ip.toString(buf), 'ffff::7f00:1');
-
- buf = ip.toBuffer('0:0:0:0:0:ffff:127.0.0.1');
- assert.equal(buf.toString('hex'), '00000000000000000000ffff7f000001');
- assert.equal(ip.toString(buf), '::ffff:7f00:1');
- });
- });
-
- describe('fromPrefixLen() method', function() {
- it('should create IPv4 mask', function() {
- assert.equal(ip.fromPrefixLen(24), '255.255.255.0');
- });
- it('should create IPv6 mask', function() {
- assert.equal(ip.fromPrefixLen(64), 'ffff:ffff:ffff:ffff::');
- });
- it('should create IPv6 mask explicitly', function() {
- assert.equal(ip.fromPrefixLen(24, 'IPV6'), 'ffff:ff00::');
- });
- });
-
- describe('not() method', function() {
- it('should reverse bits in address', function() {
- assert.equal(ip.not('255.255.255.0'), '0.0.0.255');
- });
- });
-
- describe('or() method', function() {
- it('should or bits in ipv4 addresses', function() {
- assert.equal(ip.or('0.0.0.255', '192.168.1.10'), '192.168.1.255');
- });
- it('should or bits in ipv6 addresses', function() {
- assert.equal(ip.or('::ff', '::abcd:dcba:abcd:dcba'),
- '::abcd:dcba:abcd:dcff');
- });
- it('should or bits in mixed addresses', function() {
- assert.equal(ip.or('0.0.0.255', '::abcd:dcba:abcd:dcba'),
- '::abcd:dcba:abcd:dcff');
- });
- });
-
- describe('mask() method', function() {
- it('should mask bits in address', function() {
- assert.equal(ip.mask('192.168.1.134', '255.255.255.0'), '192.168.1.0');
- assert.equal(ip.mask('192.168.1.134', '::ffff:ff00'), '::ffff:c0a8:100');
- });
-
- it('should not leak data', function() {
- for (var i = 0; i < 10; i++)
- assert.equal(ip.mask('::1', '0.0.0.0'), '::');
- });
- });
-
- describe('subnet() method', function() {
- // Test cases calculated with http://www.subnet-calculator.com/
- var ipv4Subnet = ip.subnet('192.168.1.134', '255.255.255.192');
-
- it('should compute ipv4 network address', function() {
- assert.equal(ipv4Subnet.networkAddress, '192.168.1.128');
- });
-
- it('should compute ipv4 network\'s first address', function() {
- assert.equal(ipv4Subnet.firstAddress, '192.168.1.129');
- });
-
- it('should compute ipv4 network\'s last address', function() {
- assert.equal(ipv4Subnet.lastAddress, '192.168.1.190');
- });
-
- it('should compute ipv4 broadcast address', function() {
- assert.equal(ipv4Subnet.broadcastAddress, '192.168.1.191');
- });
-
- it('should compute ipv4 subnet number of addresses', function() {
- assert.equal(ipv4Subnet.length, 64);
- });
-
- it('should compute ipv4 subnet number of addressable hosts', function() {
- assert.equal(ipv4Subnet.numHosts, 62);
- });
-
- it('should compute ipv4 subnet mask', function() {
- assert.equal(ipv4Subnet.subnetMask, '255.255.255.192');
- });
-
- it('should compute ipv4 subnet mask\'s length', function() {
- assert.equal(ipv4Subnet.subnetMaskLength, 26);
- });
-
- it('should know whether a subnet contains an address', function() {
- assert.equal(ipv4Subnet.contains('192.168.1.180'), true);
- });
-
- it('should know whether a subnet does not contain an address', function() {
- assert.equal(ipv4Subnet.contains('192.168.1.195'), false);
- });
- });
-
- describe('subnet() method with mask length 32', function() {
- // Test cases calculated with http://www.subnet-calculator.com/
- var ipv4Subnet = ip.subnet('192.168.1.134', '255.255.255.255');
- it('should compute ipv4 network\'s first address', function() {
- assert.equal(ipv4Subnet.firstAddress, '192.168.1.134');
- });
-
- it('should compute ipv4 network\'s last address', function() {
- assert.equal(ipv4Subnet.lastAddress, '192.168.1.134');
- });
-
- it('should compute ipv4 subnet number of addressable hosts', function() {
- assert.equal(ipv4Subnet.numHosts, 1);
- });
- });
-
- describe('subnet() method with mask length 31', function() {
- // Test cases calculated with http://www.subnet-calculator.com/
- var ipv4Subnet = ip.subnet('192.168.1.134', '255.255.255.254');
- it('should compute ipv4 network\'s first address', function() {
- assert.equal(ipv4Subnet.firstAddress, '192.168.1.134');
- });
-
- it('should compute ipv4 network\'s last address', function() {
- assert.equal(ipv4Subnet.lastAddress, '192.168.1.135');
- });
-
- it('should compute ipv4 subnet number of addressable hosts', function() {
- assert.equal(ipv4Subnet.numHosts, 2);
- });
- });
-
- describe('cidrSubnet() method', function() {
- // Test cases calculated with http://www.subnet-calculator.com/
- var ipv4Subnet = ip.cidrSubnet('192.168.1.134/26');
-
- it('should compute an ipv4 network address', function() {
- assert.equal(ipv4Subnet.networkAddress, '192.168.1.128');
- });
-
- it('should compute an ipv4 network\'s first address', function() {
- assert.equal(ipv4Subnet.firstAddress, '192.168.1.129');
- });
-
- it('should compute an ipv4 network\'s last address', function() {
- assert.equal(ipv4Subnet.lastAddress, '192.168.1.190');
- });
-
- it('should compute an ipv4 broadcast address', function() {
- assert.equal(ipv4Subnet.broadcastAddress, '192.168.1.191');
- });
-
- it('should compute an ipv4 subnet number of addresses', function() {
- assert.equal(ipv4Subnet.length, 64);
- });
-
- it('should compute an ipv4 subnet number of addressable hosts', function() {
- assert.equal(ipv4Subnet.numHosts, 62);
- });
-
- it('should compute an ipv4 subnet mask', function() {
- assert.equal(ipv4Subnet.subnetMask, '255.255.255.192');
- });
-
- it('should compute an ipv4 subnet mask\'s length', function() {
- assert.equal(ipv4Subnet.subnetMaskLength, 26);
- });
-
- it('should know whether a subnet contains an address', function() {
- assert.equal(ipv4Subnet.contains('192.168.1.180'), true);
- });
-
- it('should know whether a subnet contains an address', function() {
- assert.equal(ipv4Subnet.contains('192.168.1.195'), false);
- });
-
- });
-
- describe('cidr() method', function() {
- it('should mask address in CIDR notation', function() {
- assert.equal(ip.cidr('192.168.1.134/26'), '192.168.1.128');
- assert.equal(ip.cidr('2607:f0d0:1002:51::4/56'), '2607:f0d0:1002::');
- });
- });
-
- describe('isEqual() method', function() {
- it('should check if addresses are equal', function() {
- assert(ip.isEqual('127.0.0.1', '::7f00:1'));
- assert(!ip.isEqual('127.0.0.1', '::7f00:2'));
- assert(ip.isEqual('127.0.0.1', '::ffff:7f00:1'));
- assert(!ip.isEqual('127.0.0.1', '::ffaf:7f00:1'));
- assert(ip.isEqual('::ffff:127.0.0.1', '::ffff:127.0.0.1'));
- assert(ip.isEqual('::ffff:127.0.0.1', '127.0.0.1'));
- });
- });
-
-
- describe('isPrivate() method', function() {
- it('should check if an address is localhost', function() {
- assert.equal(ip.isPrivate('127.0.0.1'), true);
- });
-
- it('should check if an address is from a 192.168.x.x network', function() {
- assert.equal(ip.isPrivate('192.168.0.123'), true);
- assert.equal(ip.isPrivate('192.168.122.123'), true);
- assert.equal(ip.isPrivate('192.162.1.2'), false);
- });
-
- it('should check if an address is from a 172.16.x.x network', function() {
- assert.equal(ip.isPrivate('172.16.0.5'), true);
- assert.equal(ip.isPrivate('172.16.123.254'), true);
- assert.equal(ip.isPrivate('171.16.0.5'), false);
- assert.equal(ip.isPrivate('172.25.232.15'), true);
- assert.equal(ip.isPrivate('172.15.0.5'), false);
- assert.equal(ip.isPrivate('172.32.0.5'), false);
- });
-
- it('should check if an address is from a 169.254.x.x network', function() {
- assert.equal(ip.isPrivate('169.254.2.3'), true);
- assert.equal(ip.isPrivate('169.254.221.9'), true);
- assert.equal(ip.isPrivate('168.254.2.3'), false);
- });
-
- it('should check if an address is from a 10.x.x.x network', function() {
- assert.equal(ip.isPrivate('10.0.2.3'), true);
- assert.equal(ip.isPrivate('10.1.23.45'), true);
- assert.equal(ip.isPrivate('12.1.2.3'), false);
- });
-
- it('should check if an address is from a private IPv6 network', function() {
- assert.equal(ip.isPrivate('fd12:3456:789a:1::1'), true);
- assert.equal(ip.isPrivate('fe80::f2de:f1ff:fe3f:307e'), true);
- assert.equal(ip.isPrivate('::ffff:10.100.1.42'), true);
- assert.equal(ip.isPrivate('::FFFF:172.16.200.1'), true);
- assert.equal(ip.isPrivate('::ffff:192.168.0.1'), true);
- });
-
- it('should check if an address is from the internet', function() {
- assert.equal(ip.isPrivate('165.225.132.33'), false); // joyent.com
- });
-
- it('should check if an address is a loopback IPv6 address', function() {
- assert.equal(ip.isPrivate('::'), true);
- assert.equal(ip.isPrivate('::1'), true);
- assert.equal(ip.isPrivate('fe80::1'), true);
- });
- });
-
- describe('loopback() method', function() {
- describe('undefined', function() {
- it('should respond with 127.0.0.1', function() {
- assert.equal(ip.loopback(), '127.0.0.1')
- });
- });
-
- describe('ipv4', function() {
- it('should respond with 127.0.0.1', function() {
- assert.equal(ip.loopback('ipv4'), '127.0.0.1')
- });
- });
-
- describe('ipv6', function() {
- it('should respond with fe80::1', function() {
- assert.equal(ip.loopback('ipv6'), 'fe80::1')
- });
- });
- });
-
- describe('isLoopback() method', function() {
- describe('127.0.0.1', function() {
- it('should respond with true', function() {
- assert.ok(ip.isLoopback('127.0.0.1'))
- });
- });
-
- describe('127.8.8.8', function () {
- it('should respond with true', function () {
- assert.ok(ip.isLoopback('127.8.8.8'))
- });
- });
-
- describe('8.8.8.8', function () {
- it('should respond with false', function () {
- assert.equal(ip.isLoopback('8.8.8.8'), false);
- });
- });
-
- describe('fe80::1', function() {
- it('should respond with true', function() {
- assert.ok(ip.isLoopback('fe80::1'))
- });
- });
-
- describe('::1', function() {
- it('should respond with true', function() {
- assert.ok(ip.isLoopback('::1'))
- });
- });
-
- describe('::', function() {
- it('should respond with true', function() {
- assert.ok(ip.isLoopback('::'))
- });
- });
- });
-
- describe('address() method', function() {
- describe('undefined', function() {
- it('should respond with a private ip', function() {
- assert.ok(ip.isPrivate(ip.address()));
- });
- });
-
- describe('private', function() {
- [ undefined, 'ipv4', 'ipv6' ].forEach(function(family) {
- describe(family, function() {
- it('should respond with a private ip', function() {
- assert.ok(ip.isPrivate(ip.address('private', family)));
- });
- });
- });
- });
-
- var interfaces = os.networkInterfaces();
-
- Object.keys(interfaces).forEach(function(nic) {
- describe(nic, function() {
- [ undefined, 'ipv4' ].forEach(function(family) {
- describe(family, function() {
- it('should respond with an ipv4 address', function() {
- var addr = ip.address(nic, family);
- assert.ok(!addr || net.isIPv4(addr));
- });
- });
- });
-
- describe('ipv6', function() {
- it('should respond with an ipv6 address', function() {
- var addr = ip.address(nic, 'ipv6');
- assert.ok(!addr || net.isIPv6(addr));
- });
- })
- });
- });
- });
-
- describe('toLong() method', function() {
- it('should respond with a int', function() {
- assert.equal(ip.toLong('127.0.0.1'), 2130706433);
- assert.equal(ip.toLong('255.255.255.255'), 4294967295);
- });
- });
-
- describe('fromLong() method', function() {
- it('should repond with ipv4 address', function() {
- assert.equal(ip.fromLong(2130706433), '127.0.0.1');
- assert.equal(ip.fromLong(4294967295), '255.255.255.255');
- });
- })
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json
deleted file mode 100644
index 82fc8ae532..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/node_modules/smart-buffer/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "smart-buffer@^1.0.13",
- "_id": "smart-buffer@1.1.15",
- "_inBundle": false,
- "_integrity": "sha1-fxFLW2X6s+KjWqd1uxLw0cZJvxY=",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/socks/smart-buffer",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "smart-buffer@^1.0.13",
- "name": "smart-buffer",
- "escapedName": "smart-buffer",
- "rawSpec": "^1.0.13",
- "saveSpec": null,
- "fetchSpec": "^1.0.13"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent/socks"
- ],
- "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-1.1.15.tgz",
- "_shasum": "7f114b5b65fab3e2a35aa775bb12f0d1c649bf16",
- "_spec": "smart-buffer@^1.0.13",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks",
- "author": {
- "name": "Josh Glazebrook"
- },
- "bugs": {
- "url": "https://github.com/JoshGlazebrook/smart-buffer/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "A smarter Buffer that keeps track of its own read and write positions while growing endlessly.",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.15",
- "istanbul": "^0.4.3",
- "mocha": "^3.2.0",
- "mocha-lcov-reporter": "^1.2.0"
- },
- "engines": {
- "node": ">= 0.10.15",
- "npm": ">= 1.3.5"
- },
- "homepage": "https://github.com/JoshGlazebrook/smart-buffer/",
- "keywords": [
- "buffer",
- "smart",
- "serialize",
- "packet",
- "network",
- "cursor",
- "simple"
- ],
- "license": "MIT",
- "main": "lib/smart-buffer.js",
- "name": "smart-buffer",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git"
- },
- "scripts": {
- "coverage": "istanbul cover node_modules/mocha/bin/_mocha recursive test",
- "fullcoverage": "istanbul -include-all-sources cover node_modules/mocha/bin/_mocha recursive test",
- "test": "mocha test/smart-buffer.test.js"
- },
- "typings": "typings/index",
- "version": "1.1.15"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json
deleted file mode 100644
index 8d639ef6b4..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/node_modules/socks/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "socks@^1.1.10",
- "_id": "socks@1.1.10",
- "_inBundle": false,
- "_integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent/socks",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "socks@^1.1.10",
- "name": "socks",
- "escapedName": "socks",
- "rawSpec": "^1.1.10",
- "saveSpec": null,
- "fetchSpec": "^1.1.10"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen/socks-proxy-agent"
- ],
- "_resolved": "https://registry.npmjs.org/socks/-/socks-1.1.10.tgz",
- "_shasum": "5b8b7fc7c8f341c53ed056e929b7bf4de8ba7b5a",
- "_spec": "socks@^1.1.10",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent",
- "author": {
- "name": "Josh Glazebrook"
- },
- "bugs": {
- "url": "https://github.com/JoshGlazebrook/socks/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Samuel Gordalina"
- }
- ],
- "dependencies": {
- "ip": "^1.1.4",
- "smart-buffer": "^1.0.13"
- },
- "deprecated": false,
- "description": "A SOCKS proxy client supporting SOCKS 4, 4a, and 5. (also supports BIND/Associate)",
- "engines": {
- "node": ">= 0.10.0",
- "npm": ">= 1.3.5"
- },
- "homepage": "https://github.com/JoshGlazebrook/socks",
- "keywords": [
- "socks",
- "proxy",
- "client",
- "tor",
- "bind",
- "associate",
- "socks 4",
- "socks 4a",
- "socks 5",
- "agent"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "socks",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/JoshGlazebrook/socks.git"
- },
- "version": "1.1.10"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json
deleted file mode 100644
index e980811cfb..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "socks-proxy-agent@^3.0.0",
- "_id": "socks-proxy-agent@3.0.1",
- "_inBundle": false,
- "_integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==",
- "_location": "/pacote/make-fetch-happen/socks-proxy-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "socks-proxy-agent@^3.0.0",
- "name": "socks-proxy-agent",
- "escapedName": "socks-proxy-agent",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz",
- "_shasum": "2eae7cf8e2a82d34565761539a7f9718c5617659",
- "_spec": "socks-proxy-agent@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/make-fetch-happen",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bugs": {
- "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agent-base": "^4.1.0",
- "socks": "^1.1.10"
- },
- "deprecated": false,
- "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
- "devDependencies": {
- "mocha": "^3.4.2",
- "raw-body": "^2.2.0",
- "socksv5": "0.0.6"
- },
- "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
- "keywords": [
- "socks",
- "socks4",
- "socks4a",
- "proxy",
- "http",
- "https",
- "agent"
- ],
- "license": "MIT",
- "main": "./index.js",
- "name": "socks-proxy-agent",
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
- },
- "scripts": {
- "test": "mocha --reporter spec"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
deleted file mode 100644
index fd12501220..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
+++ /dev/null
@@ -1,15 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
deleted file mode 100644
index b115a5e914..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
+++ /dev/null
@@ -1,12 +0,0 @@
------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/pacote/node_modules/make-fetch-happen/package.json b/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/package.json
deleted file mode 100644
index ccbc6defab..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/make-fetch-happen/package.json
+++ /dev/null
@@ -1,97 +0,0 @@
-{
- "_from": "make-fetch-happen@^2.6.0",
- "_id": "make-fetch-happen@2.6.0",
- "_inBundle": false,
- "_integrity": "sha512-FFq0lNI0ax+n9IWzWpH8A4JdgYiAp2DDYIZ3rsaav8JDe8I+72CzK6PQW/oom15YDZpV5bYW/9INd6nIJ2ZfZw==",
- "_location": "/pacote/make-fetch-happen",
- "_phantomChildren": {
- "safe-buffer": "5.1.1"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "make-fetch-happen@^2.6.0",
- "name": "make-fetch-happen",
- "escapedName": "make-fetch-happen",
- "rawSpec": "^2.6.0",
- "saveSpec": null,
- "fetchSpec": "^2.6.0"
- },
- "_requiredBy": [
- "/pacote"
- ],
- "_resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-2.6.0.tgz",
- "_shasum": "8474aa52198f6b1ae4f3094c04e8370d35ea8a38",
- "_spec": "make-fetch-happen@^2.6.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/make-fetch-happen/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "agentkeepalive": "^3.3.0",
- "cacache": "^10.0.0",
- "http-cache-semantics": "^3.8.0",
- "http-proxy-agent": "^2.0.0",
- "https-proxy-agent": "^2.1.0",
- "lru-cache": "^4.1.1",
- "mississippi": "^1.2.0",
- "node-fetch-npm": "^2.0.2",
- "promise-retry": "^1.1.1",
- "socks-proxy-agent": "^3.0.1",
- "ssri": "^5.0.0"
- },
- "deprecated": false,
- "description": "Opinionated, caching, retrying fetch client",
- "devDependencies": {
- "bluebird": "^3.5.0",
- "mkdirp": "^0.5.1",
- "nock": "^9.0.14",
- "npmlog": "^4.1.2",
- "nyc": "^11.0.3",
- "require-inject": "^1.4.2",
- "rimraf": "^2.5.4",
- "safe-buffer": "^5.1.1",
- "standard": "^10.0.1",
- "standard-version": "^4.2.0",
- "tacks": "^1.2.6",
- "tap": "^10.7.0",
- "weallbehave": "^1.0.0",
- "weallcontribute": "^1.0.7"
- },
- "files": [
- "*.js",
- "lib"
- ],
- "homepage": "https://github.com/zkat/make-fetch-happen#readme",
- "keywords": [
- "http",
- "request",
- "fetch",
- "mean girls",
- "caching",
- "cache",
- "subresource integrity"
- ],
- "license": "CC0-1.0",
- "main": "index.js",
- "name": "make-fetch-happen",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/make-fetch-happen.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard lib test *.js",
- "release": "standard-version -s",
- "test": "nyc --all -- tap --timeout=35 -J test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "2.6.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/README.md b/deps/npm/node_modules/pacote/node_modules/minimatch/README.md
deleted file mode 100644
index ad72b8133e..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/README.md
+++ /dev/null
@@ -1,209 +0,0 @@
-# minimatch
-
-A minimal matching utility.
-
-[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch)
-
-
-This is the matching library used internally by npm.
-
-It works by converting glob expressions into JavaScript `RegExp`
-objects.
-
-## Usage
-
-```javascript
-var minimatch = require("minimatch")
-
-minimatch("bar.foo", "*.foo") // true!
-minimatch("bar.foo", "*.bar") // false!
-minimatch("bar.foo", "*.+(bar|foo)", { debug: true }) // true, and noisy!
-```
-
-## Features
-
-Supports these glob features:
-
-* Brace Expansion
-* Extended glob matching
-* "Globstar" `**` matching
-
-See:
-
-* `man sh`
-* `man bash`
-* `man 3 fnmatch`
-* `man 5 gitignore`
-
-## Minimatch Class
-
-Create a minimatch object by instantiating the `minimatch.Minimatch` class.
-
-```javascript
-var Minimatch = require("minimatch").Minimatch
-var mm = new Minimatch(pattern, options)
-```
-
-### Properties
-
-* `pattern` The original pattern the minimatch object represents.
-* `options` The options supplied to the constructor.
-* `set` A 2-dimensional array of regexp or string expressions.
- Each row in the
- array corresponds to a brace-expanded pattern. Each item in the row
- corresponds to a single path-part. For example, the pattern
- `{a,b/c}/d` would expand to a set of patterns like:
-
- [ [ a, d ]
- , [ b, c, d ] ]
-
- If a portion of the pattern doesn't have any "magic" in it
- (that is, it's something like `"foo"` rather than `fo*o?`), then it
- will be left as a string rather than converted to a regular
- expression.
-
-* `regexp` Created by the `makeRe` method. A single regular expression
- expressing the entire pattern. This is useful in cases where you wish
- to use the pattern somewhat like `fnmatch(3)` with `FNM_PATH` enabled.
-* `negate` True if the pattern is negated.
-* `comment` True if the pattern is a comment.
-* `empty` True if the pattern is `""`.
-
-### Methods
-
-* `makeRe` Generate the `regexp` member if necessary, and return it.
- Will return `false` if the pattern is invalid.
-* `match(fname)` Return true if the filename matches the pattern, or
- false otherwise.
-* `matchOne(fileArray, patternArray, partial)` Take a `/`-split
- filename, and match it against a single row in the `regExpSet`. This
- method is mainly for internal use, but is exposed so that it can be
- used by a glob-walker that needs to avoid excessive filesystem calls.
-
-All other methods are internal, and will be called as necessary.
-
-### minimatch(path, pattern, options)
-
-Main export. Tests a path against the pattern using the options.
-
-```javascript
-var isJS = minimatch(file, "*.js", { matchBase: true })
-```
-
-### minimatch.filter(pattern, options)
-
-Returns a function that tests its
-supplied argument, suitable for use with `Array.filter`. Example:
-
-```javascript
-var javascripts = fileList.filter(minimatch.filter("*.js", {matchBase: true}))
-```
-
-### minimatch.match(list, pattern, options)
-
-Match against the list of
-files, in the style of fnmatch or glob. If nothing is matched, and
-options.nonull is set, then return a list containing the pattern itself.
-
-```javascript
-var javascripts = minimatch.match(fileList, "*.js", {matchBase: true}))
-```
-
-### minimatch.makeRe(pattern, options)
-
-Make a regular expression object from the pattern.
-
-## Options
-
-All options are `false` by default.
-
-### debug
-
-Dump a ton of stuff to stderr.
-
-### nobrace
-
-Do not expand `{a,b}` and `{1..3}` brace sets.
-
-### noglobstar
-
-Disable `**` matching against multiple folder names.
-
-### dot
-
-Allow patterns to match filenames starting with a period, even if
-the pattern does not explicitly have a period in that spot.
-
-Note that by default, `a/**/b` will **not** match `a/.d/b`, unless `dot`
-is set.
-
-### noext
-
-Disable "extglob" style patterns like `+(a|b)`.
-
-### nocase
-
-Perform a case-insensitive match.
-
-### nonull
-
-When a match is not found by `minimatch.match`, return a list containing
-the pattern itself if this option is set. When not set, an empty list
-is returned if there are no matches.
-
-### matchBase
-
-If set, then patterns without slashes will be matched
-against the basename of the path if it contains slashes. For example,
-`a?b` would match the path `/xyz/123/acb`, but not `/xyz/acb/123`.
-
-### nocomment
-
-Suppress the behavior of treating `#` at the start of a pattern as a
-comment.
-
-### nonegate
-
-Suppress the behavior of treating a leading `!` character as negation.
-
-### flipNegate
-
-Returns from negate expressions the same as if they were not negated.
-(Ie, true on a hit, false on a miss.)
-
-
-## Comparisons to other fnmatch/glob implementations
-
-While strict compliance with the existing standards is a worthwhile
-goal, some discrepancies exist between minimatch and other
-implementations, and are intentional.
-
-If the pattern starts with a `!` character, then it is negated. Set the
-`nonegate` flag to suppress this behavior, and treat leading `!`
-characters normally. This is perhaps relevant if you wish to start the
-pattern with a negative extglob pattern like `!(a|B)`. Multiple `!`
-characters at the start of a pattern will negate the pattern multiple
-times.
-
-If a pattern starts with `#`, then it is treated as a comment, and
-will not match anything. Use `\#` to match a literal `#` at the
-start of a line, or set the `nocomment` flag to suppress this behavior.
-
-The double-star character `**` is supported by default, unless the
-`noglobstar` flag is set. This is supported in the manner of bsdglob
-and bash 4.1, where `**` only has special significance if it is the only
-thing in a path part. That is, `a/**/b` will match `a/x/y/b`, but
-`a/**b` will not.
-
-If an escaped pattern has no matches, and the `nonull` flag is set,
-then minimatch.match returns the pattern as-provided, rather than
-interpreting the character escapes. For example,
-`minimatch.match([], "\\*a\\?")` will return `"\\*a\\?"` rather than
-`"*a?"`. This is akin to setting the `nullglob` option in bash, except
-that it does not resolve escaped pattern characters.
-
-If brace expansion is not disabled, then it is performed before any
-other interpretation of the glob pattern. Thus, a pattern like
-`+(a|{b),c)}`, which would not be valid in bash or zsh, is expanded
-**first** into the set of `+(a|b)` and `+(a|c)`, and those patterns are
-checked for validity. Since those two are valid, matching proceeds.
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js b/deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js
deleted file mode 100644
index 5b5f8cf444..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/minimatch.js
+++ /dev/null
@@ -1,923 +0,0 @@
-module.exports = minimatch
-minimatch.Minimatch = Minimatch
-
-var path = { sep: '/' }
-try {
- path = require('path')
-} catch (er) {}
-
-var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}
-var expand = require('brace-expansion')
-
-var plTypes = {
- '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},
- '?': { open: '(?:', close: ')?' },
- '+': { open: '(?:', close: ')+' },
- '*': { open: '(?:', close: ')*' },
- '@': { open: '(?:', close: ')' }
-}
-
-// any single thing other than /
-// don't need to escape / when using new RegExp()
-var qmark = '[^/]'
-
-// * => any number of characters
-var star = qmark + '*?'
-
-// ** when dots are allowed. Anything goes, except .. and .
-// not (^ or / followed by one or two dots followed by $ or /),
-// followed by anything, any number of times.
-var twoStarDot = '(?:(?!(?:\\\/|^)(?:\\.{1,2})($|\\\/)).)*?'
-
-// not a ^ or / followed by a dot,
-// followed by anything, any number of times.
-var twoStarNoDot = '(?:(?!(?:\\\/|^)\\.).)*?'
-
-// characters that need to be escaped in RegExp.
-var reSpecials = charSet('().*{}+?[]^$\\!')
-
-// "abc" -> { a:true, b:true, c:true }
-function charSet (s) {
- return s.split('').reduce(function (set, c) {
- set[c] = true
- return set
- }, {})
-}
-
-// normalizes slashes.
-var slashSplit = /\/+/
-
-minimatch.filter = filter
-function filter (pattern, options) {
- options = options || {}
- return function (p, i, list) {
- return minimatch(p, pattern, options)
- }
-}
-
-function ext (a, b) {
- a = a || {}
- b = b || {}
- var t = {}
- Object.keys(b).forEach(function (k) {
- t[k] = b[k]
- })
- Object.keys(a).forEach(function (k) {
- t[k] = a[k]
- })
- return t
-}
-
-minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return minimatch
-
- var orig = minimatch
-
- var m = function minimatch (p, pattern, options) {
- return orig.minimatch(p, pattern, ext(def, options))
- }
-
- m.Minimatch = function Minimatch (pattern, options) {
- return new orig.Minimatch(pattern, ext(def, options))
- }
-
- return m
-}
-
-Minimatch.defaults = function (def) {
- if (!def || !Object.keys(def).length) return Minimatch
- return minimatch.defaults(def).Minimatch
-}
-
-function minimatch (p, pattern, options) {
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
-
- // shortcut: comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- return false
- }
-
- // "" only matches ""
- if (pattern.trim() === '') return p === ''
-
- return new Minimatch(pattern, options).match(p)
-}
-
-function Minimatch (pattern, options) {
- if (!(this instanceof Minimatch)) {
- return new Minimatch(pattern, options)
- }
-
- if (typeof pattern !== 'string') {
- throw new TypeError('glob pattern string required')
- }
-
- if (!options) options = {}
- pattern = pattern.trim()
-
- // windows support: need to use /, not \
- if (path.sep !== '/') {
- pattern = pattern.split(path.sep).join('/')
- }
-
- this.options = options
- this.set = []
- this.pattern = pattern
- this.regexp = null
- this.negate = false
- this.comment = false
- this.empty = false
-
- // make the set of regexps etc.
- this.make()
-}
-
-Minimatch.prototype.debug = function () {}
-
-Minimatch.prototype.make = make
-function make () {
- // don't do it more than once.
- if (this._made) return
-
- var pattern = this.pattern
- var options = this.options
-
- // empty patterns and comments match nothing.
- if (!options.nocomment && pattern.charAt(0) === '#') {
- this.comment = true
- return
- }
- if (!pattern) {
- this.empty = true
- return
- }
-
- // step 1: figure out negation, etc.
- this.parseNegate()
-
- // step 2: expand braces
- var set = this.globSet = this.braceExpand()
-
- if (options.debug) this.debug = console.error
-
- this.debug(this.pattern, set)
-
- // step 3: now we have a set, so turn each one into a series of path-portion
- // matching patterns.
- // These will be regexps, except in the case of "**", which is
- // set to the GLOBSTAR object for globstar behavior,
- // and will not contain any / characters
- set = this.globParts = set.map(function (s) {
- return s.split(slashSplit)
- })
-
- this.debug(this.pattern, set)
-
- // glob --> regexps
- set = set.map(function (s, si, set) {
- return s.map(this.parse, this)
- }, this)
-
- this.debug(this.pattern, set)
-
- // filter out everything that didn't compile properly.
- set = set.filter(function (s) {
- return s.indexOf(false) === -1
- })
-
- this.debug(this.pattern, set)
-
- this.set = set
-}
-
-Minimatch.prototype.parseNegate = parseNegate
-function parseNegate () {
- var pattern = this.pattern
- var negate = false
- var options = this.options
- var negateOffset = 0
-
- if (options.nonegate) return
-
- for (var i = 0, l = pattern.length
- ; i < l && pattern.charAt(i) === '!'
- ; i++) {
- negate = !negate
- negateOffset++
- }
-
- if (negateOffset) this.pattern = pattern.substr(negateOffset)
- this.negate = negate
-}
-
-// Brace expansion:
-// a{b,c}d -> abd acd
-// a{b,}c -> abc ac
-// a{0..3}d -> a0d a1d a2d a3d
-// a{b,c{d,e}f}g -> abg acdfg acefg
-// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg
-//
-// Invalid sets are not expanded.
-// a{2..}b -> a{2..}b
-// a{b}c -> a{b}c
-minimatch.braceExpand = function (pattern, options) {
- return braceExpand(pattern, options)
-}
-
-Minimatch.prototype.braceExpand = braceExpand
-
-function braceExpand (pattern, options) {
- if (!options) {
- if (this instanceof Minimatch) {
- options = this.options
- } else {
- options = {}
- }
- }
-
- pattern = typeof pattern === 'undefined'
- ? this.pattern : pattern
-
- if (typeof pattern === 'undefined') {
- throw new TypeError('undefined pattern')
- }
-
- if (options.nobrace ||
- !pattern.match(/\{.*\}/)) {
- // shortcut. no need to expand.
- return [pattern]
- }
-
- return expand(pattern)
-}
-
-// parse a component of the expanded set.
-// At this point, no pattern may contain "/" in it
-// so we're going to return a 2d array, where each entry is the full
-// pattern, split on '/', and then turned into a regular expression.
-// A regexp is made at the end which joins each array with an
-// escaped /, and another full one which joins each regexp with |.
-//
-// Following the lead of Bash 4.1, note that "**" only has special meaning
-// when it is the *only* thing in a path portion. Otherwise, any series
-// of * is equivalent to a single *. Globstar behavior is enabled by
-// default, and can be disabled by setting options.noglobstar.
-Minimatch.prototype.parse = parse
-var SUBPARSE = {}
-function parse (pattern, isSub) {
- if (pattern.length > 1024 * 64) {
- throw new TypeError('pattern is too long')
- }
-
- var options = this.options
-
- // shortcuts
- if (!options.noglobstar && pattern === '**') return GLOBSTAR
- if (pattern === '') return ''
-
- var re = ''
- var hasMagic = !!options.nocase
- var escaping = false
- // ? => one single character
- var patternListStack = []
- var negativeLists = []
- var stateChar
- var inClass = false
- var reClassStart = -1
- var classStart = -1
- // . and .. never match anything that doesn't start with .,
- // even when options.dot is set.
- var patternStart = pattern.charAt(0) === '.' ? '' // anything
- // not (start or / followed by . or .. followed by / or end)
- : options.dot ? '(?!(?:^|\\\/)\\.{1,2}(?:$|\\\/))'
- : '(?!\\.)'
- var self = this
-
- function clearStateChar () {
- if (stateChar) {
- // we had some state-tracking character
- // that wasn't consumed by this pass.
- switch (stateChar) {
- case '*':
- re += star
- hasMagic = true
- break
- case '?':
- re += qmark
- hasMagic = true
- break
- default:
- re += '\\' + stateChar
- break
- }
- self.debug('clearStateChar %j %j', stateChar, re)
- stateChar = false
- }
- }
-
- for (var i = 0, len = pattern.length, c
- ; (i < len) && (c = pattern.charAt(i))
- ; i++) {
- this.debug('%s\t%s %s %j', pattern, i, re, c)
-
- // skip over any that are escaped.
- if (escaping && reSpecials[c]) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- switch (c) {
- case '/':
- // completely not allowed, even escaped.
- // Should already be path-split by now.
- return false
-
- case '\\':
- clearStateChar()
- escaping = true
- continue
-
- // the various stateChar values
- // for the "extglob" stuff.
- case '?':
- case '*':
- case '+':
- case '@':
- case '!':
- this.debug('%s\t%s %s %j <-- stateChar', pattern, i, re, c)
-
- // all of those are literals inside a class, except that
- // the glob [!a] means [^a] in regexp
- if (inClass) {
- this.debug(' in class')
- if (c === '!' && i === classStart + 1) c = '^'
- re += c
- continue
- }
-
- // if we already have a stateChar, then it means
- // that there was something like ** or +? in there.
- // Handle the stateChar, then proceed with this one.
- self.debug('call clearStateChar %j', stateChar)
- clearStateChar()
- stateChar = c
- // if extglob is disabled, then +(asdf|foo) isn't a thing.
- // just clear the statechar *now*, rather than even diving into
- // the patternList stuff.
- if (options.noext) clearStateChar()
- continue
-
- case '(':
- if (inClass) {
- re += '('
- continue
- }
-
- if (!stateChar) {
- re += '\\('
- continue
- }
-
- patternListStack.push({
- type: stateChar,
- start: i - 1,
- reStart: re.length,
- open: plTypes[stateChar].open,
- close: plTypes[stateChar].close
- })
- // negation is (?:(?!js)[^/]*)
- re += stateChar === '!' ? '(?:(?!(?:' : '(?:'
- this.debug('plType %j %j', stateChar, re)
- stateChar = false
- continue
-
- case ')':
- if (inClass || !patternListStack.length) {
- re += '\\)'
- continue
- }
-
- clearStateChar()
- hasMagic = true
- var pl = patternListStack.pop()
- // negation is (?:(?!js)[^/]*)
- // The others are (?:<pattern>)<type>
- re += pl.close
- if (pl.type === '!') {
- negativeLists.push(pl)
- }
- pl.reEnd = re.length
- continue
-
- case '|':
- if (inClass || !patternListStack.length || escaping) {
- re += '\\|'
- escaping = false
- continue
- }
-
- clearStateChar()
- re += '|'
- continue
-
- // these are mostly the same in regexp and glob
- case '[':
- // swallow any state-tracking char before the [
- clearStateChar()
-
- if (inClass) {
- re += '\\' + c
- continue
- }
-
- inClass = true
- classStart = i
- reClassStart = re.length
- re += c
- continue
-
- case ']':
- // a right bracket shall lose its special
- // meaning and represent itself in
- // a bracket expression if it occurs
- // first in the list. -- POSIX.2 2.8.3.2
- if (i === classStart + 1 || !inClass) {
- re += '\\' + c
- escaping = false
- continue
- }
-
- // handle the case where we left a class open.
- // "[z-a]" is valid, equivalent to "\[z-a\]"
- if (inClass) {
- // split where the last [ was, make sure we don't have
- // an invalid re. if so, re-walk the contents of the
- // would-be class to re-translate any characters that
- // were passed through as-is
- // TODO: It would probably be faster to determine this
- // without a try/catch and a new RegExp, but it's tricky
- // to do safely. For now, this is safe and works.
- var cs = pattern.substring(classStart + 1, i)
- try {
- RegExp('[' + cs + ']')
- } catch (er) {
- // not a valid class!
- var sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]'
- hasMagic = hasMagic || sp[1]
- inClass = false
- continue
- }
- }
-
- // finish up the class.
- hasMagic = true
- inClass = false
- re += c
- continue
-
- default:
- // swallow any state char that wasn't consumed
- clearStateChar()
-
- if (escaping) {
- // no need
- escaping = false
- } else if (reSpecials[c]
- && !(c === '^' && inClass)) {
- re += '\\'
- }
-
- re += c
-
- } // switch
- } // for
-
- // handle the case where we left a class open.
- // "[abc" is valid, equivalent to "\[abc"
- if (inClass) {
- // split where the last [ was, and escape it
- // this is a huge pita. We now have to re-walk
- // the contents of the would-be class to re-translate
- // any characters that were passed through as-is
- cs = pattern.substr(classStart + 1)
- sp = this.parse(cs, SUBPARSE)
- re = re.substr(0, reClassStart) + '\\[' + sp[0]
- hasMagic = hasMagic || sp[1]
- }
-
- // handle the case where we had a +( thing at the *end*
- // of the pattern.
- // each pattern list stack adds 3 chars, and we need to go through
- // and escape any | chars that were passed through as-is for the regexp.
- // Go through and escape them, taking care not to double-escape any
- // | chars that were already escaped.
- for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {
- var tail = re.slice(pl.reStart + pl.open.length)
- this.debug('setting tail', re, pl)
- // maybe some even number of \, then maybe 1 \, followed by a |
- tail = tail.replace(/((?:\\{2}){0,64})(\\?)\|/g, function (_, $1, $2) {
- if (!$2) {
- // the | isn't already escaped, so escape it.
- $2 = '\\'
- }
-
- // need to escape all those slashes *again*, without escaping the
- // one that we need for escaping the | character. As it works out,
- // escaping an even number of slashes can be done by simply repeating
- // it exactly after itself. That's why this trick works.
- //
- // I am sorry that you have to see this.
- return $1 + $1 + $2 + '|'
- })
-
- this.debug('tail=%j\n %s', tail, tail, pl, re)
- var t = pl.type === '*' ? star
- : pl.type === '?' ? qmark
- : '\\' + pl.type
-
- hasMagic = true
- re = re.slice(0, pl.reStart) + t + '\\(' + tail
- }
-
- // handle trailing things that only matter at the very end.
- clearStateChar()
- if (escaping) {
- // trailing \\
- re += '\\\\'
- }
-
- // only need to apply the nodot start if the re starts with
- // something that could conceivably capture a dot
- var addPatternStart = false
- switch (re.charAt(0)) {
- case '.':
- case '[':
- case '(': addPatternStart = true
- }
-
- // Hack to work around lack of negative lookbehind in JS
- // A pattern like: *.!(x).!(y|z) needs to ensure that a name
- // like 'a.xyz.yz' doesn't match. So, the first negative
- // lookahead, has to look ALL the way ahead, to the end of
- // the pattern.
- for (var n = negativeLists.length - 1; n > -1; n--) {
- var nl = negativeLists[n]
-
- var nlBefore = re.slice(0, nl.reStart)
- var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)
- var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)
- var nlAfter = re.slice(nl.reEnd)
-
- nlLast += nlAfter
-
- // Handle nested stuff like *(*.js|!(*.json)), where open parens
- // mean that we should *not* include the ) in the bit that is considered
- // "after" the negated section.
- var openParensBefore = nlBefore.split('(').length - 1
- var cleanAfter = nlAfter
- for (i = 0; i < openParensBefore; i++) {
- cleanAfter = cleanAfter.replace(/\)[+*?]?/, '')
- }
- nlAfter = cleanAfter
-
- var dollar = ''
- if (nlAfter === '' && isSub !== SUBPARSE) {
- dollar = '$'
- }
- var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast
- re = newRe
- }
-
- // if the re is not "" at this point, then we need to make sure
- // it doesn't match against an empty path part.
- // Otherwise a/* will match a/, which it should not.
- if (re !== '' && hasMagic) {
- re = '(?=.)' + re
- }
-
- if (addPatternStart) {
- re = patternStart + re
- }
-
- // parsing just a piece of a larger pattern.
- if (isSub === SUBPARSE) {
- return [re, hasMagic]
- }
-
- // skip the regexp for non-magical patterns
- // unescape anything in it, though, so that it'll be
- // an exact match against a file etc.
- if (!hasMagic) {
- return globUnescape(pattern)
- }
-
- var flags = options.nocase ? 'i' : ''
- try {
- var regExp = new RegExp('^' + re + '$', flags)
- } catch (er) {
- // If it was an invalid regular expression, then it can't match
- // anything. This trick looks for a character after the end of
- // the string, which is of course impossible, except in multi-line
- // mode, but it's not a /m regex.
- return new RegExp('$.')
- }
-
- regExp._glob = pattern
- regExp._src = re
-
- return regExp
-}
-
-minimatch.makeRe = function (pattern, options) {
- return new Minimatch(pattern, options || {}).makeRe()
-}
-
-Minimatch.prototype.makeRe = makeRe
-function makeRe () {
- if (this.regexp || this.regexp === false) return this.regexp
-
- // at this point, this.set is a 2d array of partial
- // pattern strings, or "**".
- //
- // It's better to use .match(). This function shouldn't
- // be used, really, but it's pretty convenient sometimes,
- // when you just want to work with a regex.
- var set = this.set
-
- if (!set.length) {
- this.regexp = false
- return this.regexp
- }
- var options = this.options
-
- var twoStar = options.noglobstar ? star
- : options.dot ? twoStarDot
- : twoStarNoDot
- var flags = options.nocase ? 'i' : ''
-
- var re = set.map(function (pattern) {
- return pattern.map(function (p) {
- return (p === GLOBSTAR) ? twoStar
- : (typeof p === 'string') ? regExpEscape(p)
- : p._src
- }).join('\\\/')
- }).join('|')
-
- // must match entire pattern
- // ending in a * or ** will make it less strict.
- re = '^(?:' + re + ')$'
-
- // can match anything, as long as it's not this.
- if (this.negate) re = '^(?!' + re + ').*$'
-
- try {
- this.regexp = new RegExp(re, flags)
- } catch (ex) {
- this.regexp = false
- }
- return this.regexp
-}
-
-minimatch.match = function (list, pattern, options) {
- options = options || {}
- var mm = new Minimatch(pattern, options)
- list = list.filter(function (f) {
- return mm.match(f)
- })
- if (mm.options.nonull && !list.length) {
- list.push(pattern)
- }
- return list
-}
-
-Minimatch.prototype.match = match
-function match (f, partial) {
- this.debug('match', f, this.pattern)
- // short-circuit in the case of busted things.
- // comments, etc.
- if (this.comment) return false
- if (this.empty) return f === ''
-
- if (f === '/' && partial) return true
-
- var options = this.options
-
- // windows: need to use /, not \
- if (path.sep !== '/') {
- f = f.split(path.sep).join('/')
- }
-
- // treat the test path as a set of pathparts.
- f = f.split(slashSplit)
- this.debug(this.pattern, 'split', f)
-
- // just ONE of the pattern sets in this.set needs to match
- // in order for it to be valid. If negating, then just one
- // match means that we have failed.
- // Either way, return on the first hit.
-
- var set = this.set
- this.debug(this.pattern, 'set', set)
-
- // Find the basename of the path by looking for the last non-empty segment
- var filename
- var i
- for (i = f.length - 1; i >= 0; i--) {
- filename = f[i]
- if (filename) break
- }
-
- for (i = 0; i < set.length; i++) {
- var pattern = set[i]
- var file = f
- if (options.matchBase && pattern.length === 1) {
- file = [filename]
- }
- var hit = this.matchOne(file, pattern, partial)
- if (hit) {
- if (options.flipNegate) return true
- return !this.negate
- }
- }
-
- // didn't get any hits. this is success if it's a negative
- // pattern, failure otherwise.
- if (options.flipNegate) return false
- return this.negate
-}
-
-// set partial to true to test if, for example,
-// "/a/b" matches the start of "/*/b/*/d"
-// Partial means, if you run out of file before you run
-// out of pattern, then that's fine, as long as all
-// the parts match.
-Minimatch.prototype.matchOne = function (file, pattern, partial) {
- var options = this.options
-
- this.debug('matchOne',
- { 'this': this, file: file, pattern: pattern })
-
- this.debug('matchOne', file.length, pattern.length)
-
- for (var fi = 0,
- pi = 0,
- fl = file.length,
- pl = pattern.length
- ; (fi < fl) && (pi < pl)
- ; fi++, pi++) {
- this.debug('matchOne loop')
- var p = pattern[pi]
- var f = file[fi]
-
- this.debug(pattern, p, f)
-
- // should be impossible.
- // some invalid regexp stuff in the set.
- if (p === false) return false
-
- if (p === GLOBSTAR) {
- this.debug('GLOBSTAR', [pattern, p, f])
-
- // "**"
- // a/**/b/**/c would match the following:
- // a/b/x/y/z/c
- // a/x/y/z/b/c
- // a/b/x/b/x/c
- // a/b/c
- // To do this, take the rest of the pattern after
- // the **, and see if it would match the file remainder.
- // If so, return success.
- // If not, the ** "swallows" a segment, and try again.
- // This is recursively awful.
- //
- // a/**/b/**/c matching a/b/x/y/z/c
- // - a matches a
- // - doublestar
- // - matchOne(b/x/y/z/c, b/**/c)
- // - b matches b
- // - doublestar
- // - matchOne(x/y/z/c, c) -> no
- // - matchOne(y/z/c, c) -> no
- // - matchOne(z/c, c) -> no
- // - matchOne(c, c) yes, hit
- var fr = fi
- var pr = pi + 1
- if (pr === pl) {
- this.debug('** at the end')
- // a ** at the end will just swallow the rest.
- // We have found a match.
- // however, it will not swallow /.x, unless
- // options.dot is set.
- // . and .. are *never* matched by **, for explosively
- // exponential reasons.
- for (; fi < fl; fi++) {
- if (file[fi] === '.' || file[fi] === '..' ||
- (!options.dot && file[fi].charAt(0) === '.')) return false
- }
- return true
- }
-
- // ok, let's see if we can swallow whatever we can.
- while (fr < fl) {
- var swallowee = file[fr]
-
- this.debug('\nglobstar while', file, fr, pattern, pr, swallowee)
-
- // XXX remove this slice. Just pass the start index.
- if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {
- this.debug('globstar found match!', fr, fl, swallowee)
- // found a match.
- return true
- } else {
- // can't swallow "." or ".." ever.
- // can only swallow ".foo" when explicitly asked.
- if (swallowee === '.' || swallowee === '..' ||
- (!options.dot && swallowee.charAt(0) === '.')) {
- this.debug('dot detected!', file, fr, pattern, pr)
- break
- }
-
- // ** swallows a segment, and continue.
- this.debug('globstar swallow a segment, and continue')
- fr++
- }
- }
-
- // no match was found.
- // However, in partial mode, we can't say this is necessarily over.
- // If there's more *pattern* left, then
- if (partial) {
- // ran out of file
- this.debug('\n>>> no match, partial?', file, fr, pattern, pr)
- if (fr === fl) return true
- }
- return false
- }
-
- // something other than **
- // non-magic patterns just have to match exactly
- // patterns with magic have been turned into regexps.
- var hit
- if (typeof p === 'string') {
- if (options.nocase) {
- hit = f.toLowerCase() === p.toLowerCase()
- } else {
- hit = f === p
- }
- this.debug('string match', p, f, hit)
- } else {
- hit = f.match(p)
- this.debug('pattern match', p, f, hit)
- }
-
- if (!hit) return false
- }
-
- // Note: ending in / means that we'll get a final ""
- // at the end of the pattern. This can only match a
- // corresponding "" at the end of the file.
- // If the file ends in /, then it can only match a
- // a pattern that ends in /, unless the pattern just
- // doesn't have any more for it. But, a/b/ should *not*
- // match "a/b/*", even though "" matches against the
- // [^/]*? pattern, except in partial mode, where it might
- // simply not be reached yet.
- // However, a/b/ should still satisfy a/*
-
- // now either we fell off the end of the pattern, or we're done.
- if (fi === fl && pi === pl) {
- // ran out of pattern and filename at the same time.
- // an exact hit!
- return true
- } else if (fi === fl) {
- // ran out of file, but still had pattern left.
- // this is ok if we're doing the match as part of
- // a glob fs traversal.
- return partial
- } else if (pi === pl) {
- // ran out of pattern, still have file left.
- // this is only acceptable if we're on the very last
- // empty segment of a file with a trailing slash.
- // a/* should match a/b/
- var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')
- return emptyFileEnd
- }
-
- // should be unreachable.
- throw new Error('wtf?')
-}
-
-// replace stuff like \* with *
-function globUnescape (s) {
- return s.replace(/\\(.)/g, '$1')
-}
-
-function regExpEscape (s) {
- return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, '\\$&')
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md
deleted file mode 100644
index 778a1c3c1d..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/README.md
+++ /dev/null
@@ -1,123 +0,0 @@
-# brace-expansion
-
-[Brace expansion](https://www.gnu.org/software/bash/manual/html_node/Brace-Expansion.html),
-as known from sh/bash, in JavaScript.
-
-[![build status](https://secure.travis-ci.org/juliangruber/brace-expansion.svg)](http://travis-ci.org/juliangruber/brace-expansion)
-[![downloads](https://img.shields.io/npm/dm/brace-expansion.svg)](https://www.npmjs.org/package/brace-expansion)
-[![Greenkeeper badge](https://badges.greenkeeper.io/juliangruber/brace-expansion.svg)](https://greenkeeper.io/)
-
-[![testling badge](https://ci.testling.com/juliangruber/brace-expansion.png)](https://ci.testling.com/juliangruber/brace-expansion)
-
-## Example
-
-```js
-var expand = require('brace-expansion');
-
-expand('file-{a,b,c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('-v{,,}')
-// => ['-v', '-v', '-v']
-
-expand('file{0..2}.jpg')
-// => ['file0.jpg', 'file1.jpg', 'file2.jpg']
-
-expand('file-{a..c}.jpg')
-// => ['file-a.jpg', 'file-b.jpg', 'file-c.jpg']
-
-expand('file{2..0}.jpg')
-// => ['file2.jpg', 'file1.jpg', 'file0.jpg']
-
-expand('file{0..4..2}.jpg')
-// => ['file0.jpg', 'file2.jpg', 'file4.jpg']
-
-expand('file-{a..e..2}.jpg')
-// => ['file-a.jpg', 'file-c.jpg', 'file-e.jpg']
-
-expand('file{00..10..5}.jpg')
-// => ['file00.jpg', 'file05.jpg', 'file10.jpg']
-
-expand('{{A..C},{a..c}}')
-// => ['A', 'B', 'C', 'a', 'b', 'c']
-
-expand('ppp{,config,oe{,conf}}')
-// => ['ppp', 'pppconfig', 'pppoe', 'pppoeconf']
-```
-
-## API
-
-```js
-var expand = require('brace-expansion');
-```
-
-### var expanded = expand(str)
-
-Return an array of all possible and valid expansions of `str`. If none are
-found, `[str]` is returned.
-
-Valid expansions are:
-
-```js
-/^(.*,)+(.+)?$/
-// {a,b,...}
-```
-
-A comma seperated list of options, like `{a,b}` or `{a,{b,c}}` or `{,a,}`.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-A numeric sequence from `x` to `y` inclusive, with optional increment.
-If `x` or `y` start with a leading `0`, all the numbers will be padded
-to have equal length. Negative numbers and backwards iteration work too.
-
-```js
-/^-?\d+\.\.-?\d+(\.\.-?\d+)?$/
-// {x..y[..incr]}
-```
-
-An alphabetic sequence from `x` to `y` inclusive, with optional increment.
-`x` and `y` must be exactly one character, and if given, `incr` must be a
-number.
-
-For compatibility reasons, the string `${` is not eligible for brace expansion.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install brace-expansion
-```
-
-## Contributors
-
-- [Julian Gruber](https://github.com/juliangruber)
-- [Isaac Z. Schlueter](https://github.com/isaacs)
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js
deleted file mode 100644
index 2b6f4f85c9..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/index.js
+++ /dev/null
@@ -1,200 +0,0 @@
-var concatMap = require('concat-map');
-var balanced = require('balanced-match');
-
-module.exports = expandTop;
-
-var escSlash = '\0SLASH'+Math.random()+'\0';
-var escOpen = '\0OPEN'+Math.random()+'\0';
-var escClose = '\0CLOSE'+Math.random()+'\0';
-var escComma = '\0COMMA'+Math.random()+'\0';
-var escPeriod = '\0PERIOD'+Math.random()+'\0';
-
-function numeric(str) {
- return parseInt(str, 10) == str
- ? parseInt(str, 10)
- : str.charCodeAt(0);
-}
-
-function escapeBraces(str) {
- return str.split('\\\\').join(escSlash)
- .split('\\{').join(escOpen)
- .split('\\}').join(escClose)
- .split('\\,').join(escComma)
- .split('\\.').join(escPeriod);
-}
-
-function unescapeBraces(str) {
- return str.split(escSlash).join('\\')
- .split(escOpen).join('{')
- .split(escClose).join('}')
- .split(escComma).join(',')
- .split(escPeriod).join('.');
-}
-
-
-// Basically just str.split(","), but handling cases
-// where we have nested braced sections, which should be
-// treated as individual members, like {a,{b,c},d}
-function parseCommaParts(str) {
- if (!str)
- return [''];
-
- var parts = [];
- var m = balanced('{', '}', str);
-
- if (!m)
- return str.split(',');
-
- var pre = m.pre;
- var body = m.body;
- var post = m.post;
- var p = pre.split(',');
-
- p[p.length-1] += '{' + body + '}';
- var postParts = parseCommaParts(post);
- if (post.length) {
- p[p.length-1] += postParts.shift();
- p.push.apply(p, postParts);
- }
-
- parts.push.apply(parts, p);
-
- return parts;
-}
-
-function expandTop(str) {
- if (!str)
- return [];
-
- // I don't know why Bash 4.3 does this, but it does.
- // Anything starting with {} will have the first two bytes preserved
- // but *only* at the top level, so {},a}b will not expand to anything,
- // but a{},b}c will be expanded to [a}c,abc].
- // One could argue that this is a bug in Bash, but since the goal of
- // this module is to match Bash's rules, we escape a leading {}
- if (str.substr(0, 2) === '{}') {
- str = '\\{\\}' + str.substr(2);
- }
-
- return expand(escapeBraces(str), true).map(unescapeBraces);
-}
-
-function identity(e) {
- return e;
-}
-
-function embrace(str) {
- return '{' + str + '}';
-}
-function isPadded(el) {
- return /^-?0\d/.test(el);
-}
-
-function lte(i, y) {
- return i <= y;
-}
-function gte(i, y) {
- return i >= y;
-}
-
-function expand(str, isTop) {
- var expansions = [];
-
- var m = balanced('{', '}', str);
- if (!m || /\$$/.test(m.pre)) return [str];
-
- var isNumericSequence = /^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(m.body);
- var isAlphaSequence = /^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(m.body);
- var isSequence = isNumericSequence || isAlphaSequence;
- var isOptions = m.body.indexOf(',') >= 0;
- if (!isSequence && !isOptions) {
- // {a},b}
- if (m.post.match(/,.*\}/)) {
- str = m.pre + '{' + m.body + escClose + m.post;
- return expand(str);
- }
- return [str];
- }
-
- var n;
- if (isSequence) {
- n = m.body.split(/\.\./);
- } else {
- n = parseCommaParts(m.body);
- if (n.length === 1) {
- // x{{a,b}}y ==> x{a}y x{b}y
- n = expand(n[0], false).map(embrace);
- if (n.length === 1) {
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
- return post.map(function(p) {
- return m.pre + n[0] + p;
- });
- }
- }
- }
-
- // at this point, n is the parts, and we know it's not a comma set
- // with a single entry.
-
- // no need to expand pre, since it is guaranteed to be free of brace-sets
- var pre = m.pre;
- var post = m.post.length
- ? expand(m.post, false)
- : [''];
-
- var N;
-
- if (isSequence) {
- var x = numeric(n[0]);
- var y = numeric(n[1]);
- var width = Math.max(n[0].length, n[1].length)
- var incr = n.length == 3
- ? Math.abs(numeric(n[2]))
- : 1;
- var test = lte;
- var reverse = y < x;
- if (reverse) {
- incr *= -1;
- test = gte;
- }
- var pad = n.some(isPadded);
-
- N = [];
-
- for (var i = x; test(i, y); i += incr) {
- var c;
- if (isAlphaSequence) {
- c = String.fromCharCode(i);
- if (c === '\\')
- c = '';
- } else {
- c = String(i);
- if (pad) {
- var need = width - c.length;
- if (need > 0) {
- var z = new Array(need + 1).join('0');
- if (i < 0)
- c = '-' + z + c.slice(1);
- else
- c = z + c;
- }
- }
- }
- N.push(c);
- }
- } else {
- N = concatMap(n, function(el) { return expand(el, false) });
- }
-
- for (var j = 0; j < N.length; j++) {
- for (var k = 0; k < post.length; k++) {
- var expansion = pre + N[j] + post[k];
- if (!isTop || isSequence || expansion)
- expansions.push(expansion);
- }
- }
-
- return expansions;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
deleted file mode 100644
index ae5d8c36ac..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/.npmignore
+++ /dev/null
@@ -1,5 +0,0 @@
-test
-.gitignore
-.travis.yml
-Makefile
-example.js
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
deleted file mode 100644
index 2cdc8e4148..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
deleted file mode 100644
index 08e918c0db..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/README.md
+++ /dev/null
@@ -1,91 +0,0 @@
-# balanced-match
-
-Match balanced string pairs, like `{` and `}` or `<b>` and `</b>`. Supports regular expressions as well!
-
-[![build status](https://secure.travis-ci.org/juliangruber/balanced-match.svg)](http://travis-ci.org/juliangruber/balanced-match)
-[![downloads](https://img.shields.io/npm/dm/balanced-match.svg)](https://www.npmjs.org/package/balanced-match)
-
-[![testling badge](https://ci.testling.com/juliangruber/balanced-match.png)](https://ci.testling.com/juliangruber/balanced-match)
-
-## Example
-
-Get the first matching pair of braces:
-
-```js
-var balanced = require('balanced-match');
-
-console.log(balanced('{', '}', 'pre{in{nested}}post'));
-console.log(balanced('{', '}', 'pre{first}between{second}post'));
-console.log(balanced(/\s+\{\s+/, /\s+\}\s+/, 'pre { in{nest} } post'));
-```
-
-The matches are:
-
-```bash
-$ node example.js
-{ start: 3, end: 14, pre: 'pre', body: 'in{nested}', post: 'post' }
-{ start: 3,
- end: 9,
- pre: 'pre',
- body: 'first',
- post: 'between{second}post' }
-{ start: 3, end: 17, pre: 'pre', body: 'in{nest}', post: 'post' }
-```
-
-## API
-
-### var m = balanced(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-object with those keys:
-
-* **start** the index of the first match of `a`
-* **end** the index of the matching `b`
-* **pre** the preamble, `a` and `b` not included
-* **body** the match, `a` and `b` not included
-* **post** the postscript, `a` and `b` not included
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `['{', 'a', '']` and `{a}}` will match `['', 'a', '}']`.
-
-### var r = balanced.range(a, b, str)
-
-For the first non-nested matching pair of `a` and `b` in `str`, return an
-array with indexes: `[ <a index>, <b index> ]`.
-
-If there's no match, `undefined` will be returned.
-
-If the `str` contains more `a` than `b` / there are unmatched pairs, the first match that was closed will be used. For example, `{{a}` will match `[ 1, 3 ]` and `{a}}` will match `[0, 2]`.
-
-## Installation
-
-With [npm](https://npmjs.org) do:
-
-```bash
-npm install balanced-match
-```
-
-## License
-
-(MIT)
-
-Copyright (c) 2013 Julian Gruber &lt;julian@juliangruber.com&gt;
-
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
deleted file mode 100644
index 1685a76293..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'use strict';
-module.exports = balanced;
-function balanced(a, b, str) {
- if (a instanceof RegExp) a = maybeMatch(a, str);
- if (b instanceof RegExp) b = maybeMatch(b, str);
-
- var r = range(a, b, str);
-
- return r && {
- start: r[0],
- end: r[1],
- pre: str.slice(0, r[0]),
- body: str.slice(r[0] + a.length, r[1]),
- post: str.slice(r[1] + b.length)
- };
-}
-
-function maybeMatch(reg, str) {
- var m = str.match(reg);
- return m ? m[0] : null;
-}
-
-balanced.range = range;
-function range(a, b, str) {
- var begs, beg, left, right, result;
- var ai = str.indexOf(a);
- var bi = str.indexOf(b, ai + 1);
- var i = ai;
-
- if (ai >= 0 && bi > 0) {
- begs = [];
- left = str.length;
-
- while (i >= 0 && !result) {
- if (i == ai) {
- begs.push(i);
- ai = str.indexOf(a, i + 1);
- } else if (begs.length == 1) {
- result = [ begs.pop(), bi ];
- } else {
- beg = begs.pop();
- if (beg < left) {
- left = beg;
- right = bi;
- }
-
- bi = str.indexOf(b, i + 1);
- }
-
- i = ai < bi && ai >= 0 ? ai : bi;
- }
-
- if (begs.length) {
- result = [ left, right ];
- }
- }
-
- return result;
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
deleted file mode 100644
index b350ab14e8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/balanced-match/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "balanced-match@^1.0.0",
- "_id": "balanced-match@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
- "_location": "/pacote/minimatch/brace-expansion/balanced-match",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "balanced-match@^1.0.0",
- "name": "balanced-match",
- "escapedName": "balanced-match",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/pacote/minimatch/brace-expansion"
- ],
- "_resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "_shasum": "89b4d199ab2bee49de164ea02b89ce462d71b767",
- "_spec": "balanced-match@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/balanced-match/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Match balanced character pairs, like \"{\" and \"}\"",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/balanced-match",
- "keywords": [
- "match",
- "regexp",
- "test",
- "balanced",
- "parse"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "balanced-match",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/balanced-match.git"
- },
- "scripts": {
- "bench": "make bench",
- "test": "make test"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
deleted file mode 100644
index f1d0f13c8a..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
deleted file mode 100644
index ee27ba4b44..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
deleted file mode 100644
index 408f70a1be..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/README.markdown
+++ /dev/null
@@ -1,62 +0,0 @@
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
deleted file mode 100644
index 33656217b6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/example/map.js
+++ /dev/null
@@ -1,6 +0,0 @@
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
deleted file mode 100644
index b29a7812e5..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/index.js
+++ /dev/null
@@ -1,13 +0,0 @@
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
deleted file mode 100644
index 8730fadd83..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "concat-map@0.0.1",
- "_id": "concat-map@0.0.1",
- "_inBundle": false,
- "_integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
- "_location": "/pacote/minimatch/brace-expansion/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": [
- "/pacote/minimatch/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/zkat/Documents/code/npm/node_modules/pacote/node_modules/minimatch/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/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
deleted file mode 100644
index fdbd7022f6..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/test/map.js
+++ /dev/null
@@ -1,39 +0,0 @@
-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/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json b/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json
deleted file mode 100644
index 0ba0e63cb8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/node_modules/brace-expansion/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "brace-expansion@^1.1.7",
- "_id": "brace-expansion@1.1.8",
- "_inBundle": false,
- "_integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "_location": "/pacote/minimatch/brace-expansion",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "brace-expansion@^1.1.7",
- "name": "brace-expansion",
- "escapedName": "brace-expansion",
- "rawSpec": "^1.1.7",
- "saveSpec": null,
- "fetchSpec": "^1.1.7"
- },
- "_requiredBy": [
- "/pacote/minimatch"
- ],
- "_resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "_shasum": "c07b211c7c952ec1f8efd51a77ef0d1d3990a292",
- "_spec": "brace-expansion@^1.1.7",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/minimatch",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bugs": {
- "url": "https://github.com/juliangruber/brace-expansion/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- },
- "deprecated": false,
- "description": "Brace expansion as known from sh/bash",
- "devDependencies": {
- "matcha": "^0.7.0",
- "tape": "^4.6.0"
- },
- "homepage": "https://github.com/juliangruber/brace-expansion",
- "keywords": [],
- "license": "MIT",
- "main": "index.js",
- "name": "brace-expansion",
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/brace-expansion.git"
- },
- "scripts": {
- "bench": "matcha test/perf/bench.js",
- "gentest": "bash test/generate.sh",
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "firefox/20..latest",
- "firefox/nightly",
- "chrome/25..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.1.8"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/package.json b/deps/npm/node_modules/pacote/node_modules/minimatch/package.json
deleted file mode 100644
index b369453195..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "minimatch@^3.0.4",
- "_id": "minimatch@3.0.4",
- "_inBundle": false,
- "_integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "_location": "/pacote/minimatch",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimatch@^3.0.4",
- "name": "minimatch",
- "escapedName": "minimatch",
- "rawSpec": "^3.0.4",
- "saveSpec": null,
- "fetchSpec": "^3.0.4"
- },
- "_requiredBy": [
- "/pacote"
- ],
- "_resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "_shasum": "5166e286457f03306064be5497e8dbb0c3d32083",
- "_spec": "minimatch@^3.0.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minimatch/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "deprecated": false,
- "description": "a glob matcher in javascript",
- "devDependencies": {
- "tap": "^10.3.2"
- },
- "engines": {
- "node": "*"
- },
- "files": [
- "minimatch.js"
- ],
- "homepage": "https://github.com/isaacs/minimatch#readme",
- "license": "ISC",
- "main": "minimatch.js",
- "name": "minimatch",
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/minimatch.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --cov"
- },
- "version": "3.0.4"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json b/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json
deleted file mode 100644
index d06ecf6177..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/npm-pick-manifest/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "_from": "npm-pick-manifest@^2.1.0",
- "_id": "npm-pick-manifest@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-q9zLP8cTr8xKPmMZN3naxp1k/NxVFsjxN6uWuO1tiw9gxg7wZWQ/b5UTfzD0ANw2q1lQxdLKTeCCksq+bPSgbQ==",
- "_location": "/pacote/npm-pick-manifest",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-pick-manifest@^2.1.0",
- "name": "npm-pick-manifest",
- "escapedName": "npm-pick-manifest",
- "rawSpec": "^2.1.0",
- "saveSpec": null,
- "fetchSpec": "^2.1.0"
- },
- "_requiredBy": [
- "/pacote"
- ],
- "_resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.1.0.tgz",
- "_shasum": "dc381bdd670c35d81655e1d5a94aa3dd4d87fce5",
- "_spec": "npm-pick-manifest@^2.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/npm-pick-manifest/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "dependencies": {
- "npm-package-arg": "^6.0.0",
- "semver": "^5.4.1"
- },
- "deprecated": false,
- "description": "Resolves a matching manifest from a package metadata document according to standard npm semver resolution rules.",
- "devDependencies": {
- "nyc": "^11.2.1",
- "standard": "^10.0.3",
- "standard-version": "^4.2.0",
- "tap": "^10.7.0",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/npm-pick-manifest#readme",
- "keywords": [
- "npm",
- "semver",
- "package manager"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "npm-pick-manifest",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/npm-pick-manifest.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --100 --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig b/deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig
deleted file mode 100644
index 8bc4f108d5..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/.editorconfig
+++ /dev/null
@@ -1,15 +0,0 @@
-root = true
-
-[*]
-indent_style = space
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[*.md]
-trim_trailing_whitespace = false
-
-[package.json]
-indent_size = 2
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore b/deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore
deleted file mode 100644
index a22dcdd470..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-npm-debug.*
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml b/deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml
deleted file mode 100644
index f85680370f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
- - "0.12"
- - "4"
- - "5"
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE b/deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE
deleted file mode 100644
index db5e914de1..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-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/pacote/node_modules/promise-retry/README.md b/deps/npm/node_modules/pacote/node_modules/promise-retry/README.md
deleted file mode 100644
index 85c3bc57e8..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/README.md
+++ /dev/null
@@ -1,92 +0,0 @@
-# node-promise-retry
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-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/promise-retry
-[downloads-image]:http://img.shields.io/npm/dm/promise-retry.svg
-[npm-image]:http://img.shields.io/npm/v/promise-retry.svg
-[travis-url]:https://travis-ci.org/IndigoUnited/node-promise-retry
-[travis-image]:http://img.shields.io/travis/IndigoUnited/node-promise-retry/master.svg
-[david-dm-url]:https://david-dm.org/IndigoUnited/node-promise-retry
-[david-dm-image]:https://img.shields.io/david/IndigoUnited/node-promise-retry.svg
-[david-dm-dev-url]:https://david-dm.org/IndigoUnited/node-promise-retry#info=devDependencies
-[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/node-promise-retry.svg
-
-Retries a function that returns a promise, leveraging the power of the [retry](https://github.com/tim-kos/node-retry) module to the promises world.
-
-There's already some modules that are able to retry functions that return promises but
-they were rather difficult to use or do not offer an easy way to do conditional retries.
-
-
-## Installation
-
-`$ npm install promise-retry`
-
-
-## Usage
-
-### promiseRetry(fn, [options])
-
-Calls `fn` until the returned promise ends up fulfilled or rejected with an error different than
-a `retry` error.
-The `options` argument is an object which maps to the [retry](https://github.com/tim-kos/node-retry) module options:
-
-- `retries`: The maximum amount of times to retry the operation. Default is `10`.
-- `factor`: The exponential factor to use. Default is `2`.
-- `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`.
-- `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`.
-- `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`.
-
-
-The `fn` function will receive a `retry` function as its first argument that should be called with an error whenever you want to retry `fn`. The `retry` function will always throw an error.
-If there's retries left, it will throw a special `retry` error that will be handled internally to call `fn` again.
-If there's no retries left, it will throw the actual error passed to it.
-
-If you prefer, you can pass the options first using the alternative function signature `promiseRetry([options], fn)`.
-
-## Example
-```js
-var promiseRetry = require('promise-retry');
-
-// Simple example
-promiseRetry(function (retry, number) {
- console.log('attempt number', number);
-
- return doSomething()
- .catch(retry);
-})
-.then(function (value) {
- // ..
-}, function (err) {
- // ..
-});
-
-// Conditional example
-promiseRetry(function (retry, number) {
- console.log('attempt number', number);
-
- return doSomething()
- .catch(function (err) {
- if (err.code === 'ETIMEDOUT') {
- retry(err);
- }
-
- throw err;
- });
-})
-.then(function (value) {
- // ..
-}, function (err) {
- // ..
-});
-```
-
-
-## Tests
-
-`$ npm test`
-
-
-## License
-
-Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/index.js b/deps/npm/node_modules/pacote/node_modules/promise-retry/index.js
deleted file mode 100644
index 092f275686..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/index.js
+++ /dev/null
@@ -1,52 +0,0 @@
-'use strict';
-
-var errcode = require('err-code');
-var retry = require('retry');
-
-var hasOwn = Object.prototype.hasOwnProperty;
-
-function isRetryError(err) {
- return err && err.code === 'EPROMISERETRY' && hasOwn.call(err, 'retried');
-}
-
-function promiseRetry(fn, options) {
- var temp;
- var operation;
-
- if (typeof fn === 'object' && typeof options === 'function') {
- // Swap options and fn when using alternate signature (options, fn)
- temp = options;
- options = fn;
- fn = temp;
- }
-
- operation = retry.operation(options);
-
- return new Promise(function (resolve, reject) {
- operation.attempt(function (number) {
- Promise.resolve()
- .then(function () {
- return fn(function (err) {
- if (isRetryError(err)) {
- err = err.retried;
- }
-
- throw errcode('Retrying', 'EPROMISERETRY', { retried: err });
- }, number);
- })
- .then(resolve, function (err) {
- if (isRetryError(err)) {
- err = err.retried;
-
- if (operation.retry(err || new Error())) {
- return;
- }
- }
-
- reject(err);
- });
- });
- });
-}
-
-module.exports = promiseRetry;
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig
deleted file mode 100644
index 829280bee1..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.editorconfig
+++ /dev/null
@@ -1,12 +0,0 @@
-root = true
-
-[*]
-indent_style = space
-indent_size = 4
-end_of_line = lf
-charset = utf-8
-trim_trailing_whitespace = true
-insert_final_newline = true
-
-[package.json]
-indent_size = 2
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json
deleted file mode 100644
index f34b41d96c..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.eslintrc.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "root": true,
- "extends": [
- "@satazor/eslint-config/es5",
- "@satazor/eslint-config/addons/node"
- ]
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore
deleted file mode 100644
index a22dcdd470..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules
-npm-debug.*
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml
deleted file mode 100644
index f85680370f..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
- - "0.12"
- - "4"
- - "5"
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md
deleted file mode 100644
index 19a390df08..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/README.md
+++ /dev/null
@@ -1,72 +0,0 @@
-# err-code
-
-[![NPM version][npm-image]][npm-url] [![Downloads][downloads-image]][npm-url] [![Build Status][travis-image]][travis-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/err-code
-[downloads-image]:http://img.shields.io/npm/dm/err-code.svg
-[npm-image]:http://img.shields.io/npm/v/err-code.svg
-[travis-url]:https://travis-ci.org/IndigoUnited/js-err-code
-[travis-image]:http://img.shields.io/travis/IndigoUnited/js-err-code/master.svg
-[david-dm-url]:https://david-dm.org/IndigoUnited/js-err-code
-[david-dm-image]:https://img.shields.io/david/IndigoUnited/js-err-code.svg
-[david-dm-dev-url]:https://david-dm.org/IndigoUnited/js-err-code#info=devDependencies
-[david-dm-dev-image]:https://img.shields.io/david/dev/IndigoUnited/js-err-code.svg
-
-Create new error instances with a code and additional properties.
-
-
-## Installation
-
-`$ npm install err-code` - `NPM`
-`$ bower install err-code` - `bower`
-
-The browser file is named index.umd.js which supports CommonJS, AMD and globals (errCode).
-
-
-## Why
-
-I find myself doing this repeatedly:
-
-```js
-var err = new Error('My message');
-err.code = 'SOMECODE';
-err.detail = 'Additional information about the error';
-throw err;
-```
-
-
-## Usage
-
-Simple usage.
-
-```js
-var errcode = require('err-code');
-
-// fill error with message + code
-throw errcode(new Error('My message'), 'ESOMECODE');
-// fill error with message + code + props
-throw errcode(new Error('My message'), 'ESOMECODE', { detail: 'Additional information about the error' });
-// fill error with message + props
-throw errcode(new Error('My message'), { detail: 'Additional information about the error' });
-
-
-// You may also pass a string in the first argument and an error will be automatically created
-// for you, though the stack trace will contain err-code in it.
-
-// create error with message + code
-throw errcode('My message', 'ESOMECODE');
-// create error with message + code + props
-throw errcode('My message', 'ESOMECODE', { detail: 'Additional information about the error' });
-// create error with message + props
-throw errcode('My message', { detail: 'Additional information about the error' });
-```
-
-
-## Tests
-
-`$ npm test`
-
-
-## License
-
-Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json
deleted file mode 100644
index a39cb702ce..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/bower.json
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- "name": "err-code",
- "version": "1.1.1",
- "description": "Create new error instances with a code and additional properties",
- "main": "index.umd.js",
- "homepage": "https://github.com/IndigoUnited/js-err-code",
- "authors": [
- "IndigoUnited <hello@indigounited.com> (http://indigounited.com)"
- ],
- "moduleType": [
- "amd",
- "globals",
- "node"
- ],
- "keywords": [
- "error",
- "err",
- "code",
- "properties",
- "property"
- ],
- "license": "MIT",
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests"
- ]
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js
deleted file mode 100644
index 1a0a69f626..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.js
+++ /dev/null
@@ -1,22 +0,0 @@
-'use strict';
-
-function createError(msg, code, props) {
- var err = msg instanceof Error ? msg : new Error(msg);
- var key;
-
- if (typeof code === 'object') {
- props = code;
- } else if (code != null) {
- err.code = code;
- }
-
- if (props) {
- for (key in props) {
- err[key] = props[key];
- }
- }
-
- return err;
-}
-
-module.exports = createError;
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js
deleted file mode 100644
index d1dbdf7335..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/index.umd.js
+++ /dev/null
@@ -1,26 +0,0 @@
-(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.errCode = 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<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
-'use strict';
-
-function createError(msg, code, props) {
- var err = msg instanceof Error ? msg : new Error(msg);
- var key;
-
- if (typeof code === 'object') {
- props = code;
- } else if (code != null) {
- err.code = code;
- }
-
- if (props) {
- for (key in props) {
- err[key] = props[key];
- }
- }
-
- return err;
-}
-
-module.exports = createError;
-
-},{}]},{},[1])(1)
-}); \ No newline at end of file
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json
deleted file mode 100644
index 559e5bfb66..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "err-code@^1.0.0",
- "_id": "err-code@1.1.2",
- "_inBundle": false,
- "_integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=",
- "_location": "/pacote/promise-retry/err-code",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "err-code@^1.0.0",
- "name": "err-code",
- "escapedName": "err-code",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/pacote/promise-retry"
- ],
- "_resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
- "_shasum": "06e0116d3028f6aef4806849eb0ea6a748ae6960",
- "_spec": "err-code@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/promise-retry",
- "author": {
- "name": "IndigoUnited",
- "email": "hello@indigounited.com",
- "url": "http://indigounited.com"
- },
- "bugs": {
- "url": "https://github.com/IndigoUnited/js-err-code/issues/"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Create an error with a code",
- "devDependencies": {
- "@satazor/eslint-config": "^3.0.0",
- "browserify": "^14.0.0",
- "eslint": "^3.0.0",
- "expect.js": "^0.3.1",
- "mocha": "^3.0.2"
- },
- "homepage": "https://github.com/IndigoUnited/js-err-code#readme",
- "keywords": [
- "error",
- "err",
- "code",
- "properties",
- "property"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "err-code",
- "repository": {
- "type": "git",
- "url": "git://github.com/IndigoUnited/js-err-code.git"
- },
- "scripts": {
- "browserify": "browserify -s err-code index.js > index.umd.js",
- "lint": "eslint '{*.js,test/**/*.js}' --ignore-pattern *.umd.js",
- "test": "mocha --bail"
- },
- "version": "1.1.2"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json
deleted file mode 100644
index f9fbb2d6ce..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/.eslintrc.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "env": {
- "mocha": true
- }
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js b/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js
deleted file mode 100644
index 81b2b26d37..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/node_modules/err-code/test/test.js
+++ /dev/null
@@ -1,92 +0,0 @@
-'use strict';
-
-var errcode = require('../index');
-var expect = require('expect.js');
-
-describe('errcode', function () {
- describe('string as first argument', function () {
- it('should create an error object without code', function () {
- var err = errcode('my message');
-
- expect(err).to.be.an(Error);
- expect(err.hasOwnProperty(err.code)).to.be(false);
- });
-
- it('should create an error object with code', function () {
- var err = errcode('my message', 'ESOME');
-
- expect(err).to.be.an(Error);
- expect(err.code).to.be('ESOME');
- });
-
- it('should create an error object with code and properties', function () {
- var err = errcode('my message', 'ESOME', { foo: 'bar', bar: 'foo' });
-
- expect(err).to.be.an(Error);
- expect(err.code).to.be('ESOME');
- expect(err.foo).to.be('bar');
- expect(err.bar).to.be('foo');
- });
-
- it('should create an error object without code but with properties', function () {
- var err = errcode('my message', { foo: 'bar', bar: 'foo' });
-
- expect(err).to.be.an(Error);
- expect(err.code).to.be(undefined);
- expect(err.foo).to.be('bar');
- expect(err.bar).to.be('foo');
- });
- });
-
- describe('error as first argument', function () {
- it('should accept an error and do nothing', function () {
- var myErr = new Error('my message');
- var err = errcode(myErr);
-
- expect(err).to.be(myErr);
- expect(err.hasOwnProperty(err.code)).to.be(false);
- });
-
- it('should accept an error and add a code', function () {
- var myErr = new Error('my message');
- var err = errcode(myErr, 'ESOME');
-
- expect(err).to.be(myErr);
- expect(err.code).to.be('ESOME');
- });
-
- it('should accept an error object and add code & properties', function () {
- var myErr = new Error('my message');
- var err = errcode(myErr, 'ESOME', { foo: 'bar', bar: 'foo' });
-
- expect(err).to.be.an(Error);
- expect(err.code).to.be('ESOME');
- expect(err.foo).to.be('bar');
- expect(err.bar).to.be('foo');
- });
-
- it('should create an error object without code but with properties', function () {
- var myErr = new Error('my message');
- var err = errcode(myErr, { foo: 'bar', bar: 'foo' });
-
- expect(err).to.be.an(Error);
- expect(err.code).to.be(undefined);
- expect(err.foo).to.be('bar');
- expect(err.bar).to.be('foo');
- });
- });
-
- it('should allow passing null & undefined in the first argument', function () {
- var err;
-
- err = errcode(null, 'ESOME');
- expect(err).to.be.an(Error);
- expect(err.message).to.be('null');
- expect(err.code).to.be('ESOME');
-
- err = errcode(undefined, 'ESOME');
- expect(err).to.be.an(Error);
- expect(err.message).to.be('');
- expect(err.code).to.be('ESOME');
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/package.json b/deps/npm/node_modules/pacote/node_modules/promise-retry/package.json
deleted file mode 100644
index a7efb9ffb7..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "promise-retry@^1.1.1",
- "_id": "promise-retry@1.1.1",
- "_inBundle": false,
- "_integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
- "_location": "/pacote/promise-retry",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "promise-retry@^1.1.1",
- "name": "promise-retry",
- "escapedName": "promise-retry",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/pacote",
- "/pacote/make-fetch-happen"
- ],
- "_resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
- "_shasum": "6739e968e3051da20ce6497fb2b50f6911df3d6d",
- "_spec": "promise-retry@^1.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "IndigoUnited",
- "email": "hello@indigounited.com",
- "url": "http://indigounited.com"
- },
- "bugs": {
- "url": "https://github.com/IndigoUnited/node-promise-retry/issues/"
- },
- "bundleDependencies": false,
- "dependencies": {
- "err-code": "^1.0.0",
- "retry": "^0.10.0"
- },
- "deprecated": false,
- "description": "Retries a function that returns a promise, leveraging the power of the retry module.",
- "devDependencies": {
- "expect.js": "^0.3.1",
- "mocha": "^3.0.0",
- "sleep-promise": "^2.0.0"
- },
- "engines": {
- "node": ">=0.12"
- },
- "homepage": "https://github.com/IndigoUnited/node-promise-retry#readme",
- "keywords": [
- "retry",
- "promise",
- "backoff",
- "repeat",
- "replay"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "promise-retry",
- "repository": {
- "type": "git",
- "url": "git://github.com/IndigoUnited/node-promise-retry.git"
- },
- "scripts": {
- "test": "mocha --bail -t 10000"
- },
- "version": "1.1.1"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js b/deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js
deleted file mode 100644
index 466b0991e0..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/promise-retry/test/test.js
+++ /dev/null
@@ -1,263 +0,0 @@
-'use strict';
-
-var expect = require('expect.js');
-var promiseRetry = require('../');
-var promiseDelay = require('sleep-promise');
-
-describe('promise-retry', function () {
- it('should call fn again if retry was called', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- if (count <= 2) {
- retry(new Error('foo'));
- }
-
- return 'final';
- });
- }, { factor: 1 })
- .then(function (value) {
- expect(value).to.be('final');
- expect(count).to.be(3);
- }, function () {
- throw new Error('should not fail');
- });
- });
-
- it('should call fn with the attempt number', function () {
- var count = 0;
-
- return promiseRetry(function (retry, number) {
- count += 1;
- expect(count).to.equal(number);
-
- return promiseDelay(10)
- .then(function () {
- if (count <= 2) {
- retry(new Error('foo'));
- }
-
- return 'final';
- });
- }, { factor: 1 })
- .then(function (value) {
- expect(value).to.be('final');
- expect(count).to.be(3);
- }, function () {
- throw new Error('should not fail');
- });
- });
-
- it('should not retry on fulfillment if retry was not called', function () {
- var count = 0;
-
- return promiseRetry(function () {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- return 'final';
- });
- })
- .then(function (value) {
- expect(value).to.be('final');
- expect(count).to.be(1);
- }, function () {
- throw new Error('should not fail');
- });
- });
-
- it('should not retry on rejection if retry was not called', function () {
- var count = 0;
-
- return promiseRetry(function () {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- throw new Error('foo');
- });
- })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- expect(count).to.be(1);
- });
- });
-
- it('should not retry on rejection if nr of retries is 0', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- throw new Error('foo');
- })
- .catch(retry);
- }, { retries : 0 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- expect(count).to.be(1);
- });
- });
-
- it('should reject the promise if the retries were exceeded', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- throw new Error('foo');
- })
- .catch(retry);
- }, { retries: 2, factor: 1 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- expect(count).to.be(3);
- });
- });
-
- it('should pass options to the underlying retry module', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- return promiseDelay(10)
- .then(function () {
- if (count < 2) {
- count += 1;
- retry(new Error('foo'));
- }
-
- return 'final';
- });
- }, { retries: 1, factor: 1 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- });
- });
-
- it('should convert direct fulfillments into promises', function () {
- return promiseRetry(function () {
- return 'final';
- }, { factor: 1 })
- .then(function (value) {
- expect(value).to.be('final');
- }, function () {
- throw new Error('should not fail');
- });
- });
-
- it('should convert direct rejections into promises', function () {
- promiseRetry(function () {
- throw new Error('foo');
- }, { retries: 1, factor: 1 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- });
- });
-
- it('should not crash on undefined rejections', function () {
- return promiseRetry(function () {
- throw undefined;
- }, { retries: 1, factor: 1 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err).to.be(undefined);
- })
- .then(function () {
- return promiseRetry(function (retry) {
- retry();
- }, { retries: 1, factor: 1 });
- })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err).to.be(undefined);
- });
- });
-
- it('should retry if retry() was called with undefined', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- if (count <= 2) {
- retry();
- }
-
- return 'final';
- });
- }, { factor: 1 })
- .then(function (value) {
- expect(value).to.be('final');
- expect(count).to.be(3);
- }, function () {
- throw new Error('should not fail');
- });
- });
-
- it('should work with several retries in the same chain', function () {
- var count = 0;
-
- return promiseRetry(function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- retry(new Error('foo'));
- })
- .catch(function (err) {
- retry(err);
- });
- }, { retries: 1, factor: 1 })
- .then(function () {
- throw new Error('should not succeed');
- }, function (err) {
- expect(err.message).to.be('foo');
- expect(count).to.be(2);
- });
- });
-
- it('should allow options to be passed first', function () {
- var count = 0;
-
- return promiseRetry({ factor: 1 }, function (retry) {
- count += 1;
-
- return promiseDelay(10)
- .then(function () {
- if (count <= 2) {
- retry(new Error('foo'));
- }
-
- return 'final';
- });
- }).then(function (value) {
- expect(value).to.be('final');
- expect(count).to.be(3);
- }, function () {
- throw new Error('should not fail');
- });
- });
-});
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md b/deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md
deleted file mode 100644
index 61b1c9878a..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/CHANGELOG.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="4.0.0"></a>
-# [4.0.0](https://github.com/zkat/protoduck/compare/v3.3.2...v4.0.0) (2017-04-17)
-
-
-### Bug Fixes
-
-* **test:** .name is inconsistently available ([3483f4a](https://github.com/zkat/protoduck/commit/3483f4a))
-
-
-### Features
-
-* **api:** Fresh New APIā„¢ ([#2](https://github.com/zkat/protoduck/issues/2)) ([534e5cf](https://github.com/zkat/protoduck/commit/534e5cf))
-* **constraints:** added optional where-constraints ([16ad124](https://github.com/zkat/protoduck/commit/16ad124))
-* **defaults:** allow default impls without arrays in defs ([6cf7d84](https://github.com/zkat/protoduck/commit/6cf7d84))
-* **deps:** use genfun[@4](https://github.com/4) ([f6810a7](https://github.com/zkat/protoduck/commit/f6810a7))
-* **meta:** bringing project stuff up to date ([61791da](https://github.com/zkat/protoduck/commit/61791da))
-
-
-### BREAKING CHANGES
-
-* **api:** The API was significantly overhauled.
-
-* New protocol creating is now through protoduck.define() instead of protoduck()
-* Implementations are through Duck#impl instead of Duck(...)
-* The `private` option was removed
-* Static protocols were removed -- only method-style protocols are available now.
-* As part of that: the target argument to impl can no longer be omitted
-* The main export object is now the metaobject. protoduck.impl can be used to extend to MOP
-* .isDerivable is now a property on Duck instances, not a static method
-* .hasImpl is now a method on Duck instances, not a static method
-* Protoduck will now genfunnify existing functions as default methods for genfuns declared in a protocol when implementing
-* Error messages have been overhauled to be more helpful
-* **deps:** nextMethod is now an extra argument to methods
-* **meta:** node@<4 is no longer supported
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json b/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json
deleted file mode 100644
index b1b7bc8f69..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/node_modules/genfun/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "genfun@^4.0.1",
- "_id": "genfun@4.0.1",
- "_inBundle": false,
- "_integrity": "sha1-7RAEHy5KfxsKOEZtF6XD4n3x38E=",
- "_location": "/pacote/protoduck/genfun",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "genfun@^4.0.1",
- "name": "genfun",
- "escapedName": "genfun",
- "rawSpec": "^4.0.1",
- "saveSpec": null,
- "fetchSpec": "^4.0.1"
- },
- "_requiredBy": [
- "/pacote/protoduck"
- ],
- "_resolved": "https://registry.npmjs.org/genfun/-/genfun-4.0.1.tgz",
- "_shasum": "ed10041f2e4a7f1b0a38466d17a5c3e27df1dfc1",
- "_spec": "genfun@^4.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote/node_modules/protoduck",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/genfun/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Fast, prototype-friendly multimethods.",
- "devDependencies": {
- "mocha": "^3.2.0",
- "nyc": "^10.2.0",
- "standard": "^10.0.2",
- "standard-version": "^4.0.0",
- "weallbehave": "^1.0.3",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "lib/*.js"
- ],
- "homepage": "http://github.com/zkat/genfun",
- "keywords": [
- "clos",
- "functional",
- "oop",
- "util",
- "object oriented",
- "prototypes",
- "multimethod",
- "generic functions",
- "multiple dispatch",
- "polymorphism",
- "polymorphic",
- "protocols"
- ],
- "license": "CC0-1.0",
- "main": "lib/genfun.js",
- "name": "genfun",
- "repository": {
- "type": "git",
- "url": "git://github.com/zkat/genfun.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard lib",
- "release": "standard-version -s",
- "test": "nyc -- mocha --reporter spec",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/package.json b/deps/npm/node_modules/pacote/node_modules/protoduck/package.json
deleted file mode 100644
index b436c22e87..0000000000
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "protoduck@^4.0.0",
- "_id": "protoduck@4.0.0",
- "_inBundle": false,
- "_integrity": "sha1-/kh02MeRM2bP2erRJFOiLNNlf44=",
- "_location": "/pacote/protoduck",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "protoduck@^4.0.0",
- "name": "protoduck",
- "escapedName": "protoduck",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/pacote"
- ],
- "_resolved": "https://registry.npmjs.org/protoduck/-/protoduck-4.0.0.tgz",
- "_shasum": "fe4874d8c7913366cfd9ead12453a22cd3657f8e",
- "_spec": "protoduck@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/pacote",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/protoduck/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "genfun": "^4.0.1"
- },
- "deprecated": false,
- "description": "Fancy duck typing for the most serious of ducks.",
- "devDependencies": {
- "mocha": "^3.2.0",
- "nyc": "^10.2.0",
- "standard": "^10.0.2",
- "standard-version": "^4.0.0",
- "tap": "^10.3.2",
- "weallbehave": "^1.0.3",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/zkat/protoduck#readme",
- "keywords": [
- "oop",
- "util",
- "object oriented",
- "duck type",
- "ducktype",
- "ducktyping",
- "protocols",
- "multimethod",
- "clojure",
- "haskell",
- "rust",
- "generic",
- "functions",
- "clos",
- "polymorphism",
- "impl",
- "typeclass",
- "traits"
- ],
- "license": "CC0-1.0",
- "main": "index.js",
- "name": "protoduck",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/protoduck.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "4.0.0"
-}
diff --git a/deps/npm/node_modules/pacote/package.json b/deps/npm/node_modules/pacote/package.json
index 7e230fc18f..6287584c9c 100644
--- a/deps/npm/node_modules/pacote/package.json
+++ b/deps/npm/node_modules/pacote/package.json
@@ -1,37 +1,33 @@
{
- "_from": "pacote@7.0.2",
- "_id": "pacote@7.0.2",
+ "_args": [
+ [
+ "pacote@8.1.6",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "pacote@8.1.6",
+ "_id": "pacote@8.1.6",
"_inBundle": false,
- "_integrity": "sha512-cTiugiG2ujDcqDtYtJ3doDrS6E3eU0bhuYAHhMTWgBezrhoqTEjc0axSBpbjw4QQkNT5AGRF15Mj2tF2HuBz7w==",
+ "_integrity": "sha512-wTOOfpaAQNEQNtPEx92x9Y9kRWVu45v583XT8x2oEV2xRB74+xdqMZIeGW4uFvAyZdmSBtye+wKdyyLaT8pcmw==",
"_location": "/pacote",
- "_phantomChildren": {
- "cacache": "10.0.1",
- "lru-cache": "4.1.1",
- "mississippi": "1.3.0",
- "npm-package-arg": "6.0.0",
- "retry": "0.10.1",
- "safe-buffer": "5.1.1",
- "semver": "5.4.1",
- "ssri": "5.0.0"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "pacote@7.0.2",
+ "raw": "pacote@8.1.6",
"name": "pacote",
"escapedName": "pacote",
- "rawSpec": "7.0.2",
+ "rawSpec": "8.1.6",
"saveSpec": null,
- "fetchSpec": "7.0.2"
+ "fetchSpec": "8.1.6"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/libcipm"
],
- "_resolved": "https://registry.npmjs.org/pacote/-/pacote-7.0.2.tgz",
- "_shasum": "c60610c994b8ecdd8fbb7c6a5c0bcd8de52f829c",
- "_spec": "pacote@7.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/pacote/-/pacote-8.1.6.tgz",
+ "_spec": "8.1.6",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Kat MarchƔn",
"email": "kzm@sykosomatic.org"
@@ -39,7 +35,6 @@
"bugs": {
"url": "https://github.com/zkat/pacote/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Charlotte Spencer",
@@ -52,42 +47,42 @@
],
"dependencies": {
"bluebird": "^3.5.1",
- "cacache": "^10.0.1",
+ "cacache": "^11.0.2",
"get-stream": "^3.0.0",
"glob": "^7.1.2",
- "lru-cache": "^4.1.1",
- "make-fetch-happen": "^2.6.0",
+ "lru-cache": "^4.1.3",
+ "make-fetch-happen": "^4.0.1",
"minimatch": "^3.0.4",
- "mississippi": "^1.2.0",
+ "minipass": "^2.3.3",
+ "mississippi": "^3.0.0",
+ "mkdirp": "^0.5.1",
"normalize-package-data": "^2.4.0",
- "npm-package-arg": "^6.0.0",
+ "npm-package-arg": "^6.1.0",
"npm-packlist": "^1.1.10",
"npm-pick-manifest": "^2.1.0",
- "osenv": "^0.1.4",
+ "osenv": "^0.1.5",
"promise-inflight": "^1.0.1",
"promise-retry": "^1.1.1",
- "protoduck": "^4.0.0",
- "safe-buffer": "^5.1.1",
- "semver": "^5.4.1",
- "ssri": "^5.0.0",
- "tar": "^4.0.2",
+ "protoduck": "^5.0.0",
+ "rimraf": "^2.6.2",
+ "safe-buffer": "^5.1.2",
+ "semver": "^5.5.0",
+ "ssri": "^6.0.0",
+ "tar": "^4.4.3",
"unique-filename": "^1.1.0",
"which": "^1.3.0"
},
- "deprecated": false,
"description": "JavaScript package downloader",
"devDependencies": {
- "mkdirp": "^0.5.1",
- "nock": "^9.0.22",
+ "nock": "^9.2.6",
"npmlog": "^4.1.2",
- "nyc": "^11.2.1",
- "require-inject": "^1.4.2",
- "rimraf": "^2.6.2",
- "standard": "^10.0.3",
- "standard-version": "^4.2.0",
+ "nyc": "^11.8.0",
+ "require-inject": "^1.4.3",
+ "standard": "^11.0.1",
+ "standard-version": "^4.4.0",
"tacks": "^1.2.6",
- "tap": "^10.7.2",
- "tar-stream": "^1.5.4",
+ "tap": "^12.0.1",
+ "tar-stream": "^1.6.1",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.7"
},
@@ -111,12 +106,12 @@
"scripts": {
"postrelease": "npm publish && git push --follow-tags",
"prerelease": "npm t",
- "pretest": "standard lib test *.js",
+ "pretest": "standard",
"release": "standard-version -s",
"test": "nyc --all -- tap -J test/*.js",
"test-docker": "docker run -it --rm --name pacotest -v \"$PWD\":/tmp -w /tmp node:latest npm test",
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "7.0.2"
+ "version": "8.1.6"
}
diff --git a/deps/npm/node_modules/pacote/tarball.js b/deps/npm/node_modules/pacote/tarball.js
index f1f3ed9342..e0ad52ab3e 100644
--- a/deps/npm/node_modules/pacote/tarball.js
+++ b/deps/npm/node_modules/pacote/tarball.js
@@ -2,94 +2,66 @@
const BB = require('bluebird')
-const cacache = require('cacache')
const fs = require('fs')
const getStream = require('get-stream')
const mkdirp = BB.promisify(require('mkdirp'))
const npa = require('npm-package-arg')
-const optCheck = require('./lib/util/opt-check')
+const optCheck = require('./lib/util/opt-check.js')
+const PassThrough = require('stream').PassThrough
const path = require('path')
-const pipe = BB.promisify(require('mississippi').pipe)
+const rimraf = BB.promisify(require('rimraf'))
+const withTarballStream = require('./lib/with-tarball-stream.js')
module.exports = tarball
function tarball (spec, opts) {
opts = optCheck(opts)
spec = npa(spec, opts.where)
- const startTime = Date.now()
- if (opts.integrity && !opts.preferOnline) {
- opts.log.silly('tarball', 'checking if', opts.integrity, 'is already cached')
- return cacache.get.byDigest(opts.cache, opts.integrity).then(data => {
- if (data) {
- opts.log.silly('tarball', `cached content available for ${spec} (${Date.now() - startTime}ms)`)
- return data
- } else {
- return getStream.buffer(tarballByManifest(startTime, spec, opts))
- }
- })
- } else {
- opts.log.silly('tarball', `no integrity hash provided for ${spec} - fetching by manifest`)
- return getStream.buffer(tarballByManifest(startTime, spec, opts))
- }
+ return withTarballStream(spec, opts, stream => getStream.buffer(stream))
}
module.exports.stream = tarballStream
function tarballStream (spec, opts) {
opts = optCheck(opts)
spec = npa(spec, opts.where)
- const startTime = Date.now()
- if (opts.integrity && !opts.preferOnline) {
- opts.log.silly('tarball', 'checking if', opts.integrity, 'is already cached')
- return cacache.get.hasContent(opts.cache, opts.integrity).then(info => {
- if (info) {
- opts.log.silly('tarball', `cached content available for ${spec} (${Date.now() - startTime}ms)`)
- return cacache.get.stream.byDigest(opts.cache, opts.integrity, opts)
- } else {
- return tarballByManifest(startTime, spec, opts)
- }
- })
- } else {
- opts.log.silly('tarball', `no integrity hash provided for ${spec} - fetching by manifest`)
- return tarballByManifest(startTime, spec, opts)
- }
+ const output = new PassThrough()
+ let hasTouchedOutput = false
+ let lastError = null
+ withTarballStream(spec, opts, stream => {
+ if (hasTouchedOutput && lastError) {
+ throw lastError
+ } else if (hasTouchedOutput) {
+ throw new Error('abort, abort!')
+ } else {
+ return new BB((resolve, reject) => {
+ stream.on('error', reject)
+ output.on('error', reject)
+ output.on('error', () => { hasTouchedOutput = true })
+ output.on('finish', resolve)
+ stream.pipe(output)
+ stream.once('data', () => { hasTouchedOutput = true })
+ }).catch(err => {
+ lastError = err
+ throw err
+ })
+ }
+ })
+ .catch(err => output.emit('error', err))
+ return output
}
module.exports.toFile = tarballToFile
function tarballToFile (spec, dest, opts) {
opts = optCheck(opts)
spec = npa(spec, opts.where)
- const startTime = Date.now()
- return mkdirp(path.dirname(dest)).then(() => {
- if (opts.integrity && !opts.preferOnline) {
- opts.log.silly('tarball', 'checking if', opts.integrity, 'is already cached')
- return cacache.get.copy.byDigest(opts.cache, opts.integrity, dest, opts)
- .then(() => {
- opts.log.silly('tarball', `cached content for ${spec} copied (${Date.now() - startTime}ms)`)
- }, err => {
- if (err.code === 'ENOENT') {
- return pipe(
- tarballByManifest(startTime, spec, opts),
- fs.createWriteStream(dest)
- )
- } else {
- throw err
- }
- })
- } else {
- opts.log.silly('tarball', `no integrity hash provided for ${spec} - fetching by manifest`)
- return pipe(
- tarballByManifest(startTime, spec, opts),
- fs.createWriteStream(dest)
- )
- }
- })
-}
-
-let fetch
-function tarballByManifest (start, spec, opts) {
- if (!fetch) {
- fetch = require('./lib/fetch')
- }
- return fetch.tarball(spec, opts).on('end', () => {
- opts.log.silly('tarball', `${spec} done in ${Date.now() - start}ms`)
- })
+ return mkdirp(path.dirname(dest))
+ .then(() => withTarballStream(spec, opts, stream => {
+ return rimraf(dest)
+ .then(() => new BB((resolve, reject) => {
+ const writer = fs.createWriteStream(dest)
+ stream.on('error', reject)
+ writer.on('error', reject)
+ writer.on('close', resolve)
+ stream.pipe(writer)
+ }))
+ }))
}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.npmignore b/deps/npm/node_modules/parallel-transform/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.npmignore
+++ b/deps/npm/node_modules/parallel-transform/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/LICENSE b/deps/npm/node_modules/parallel-transform/LICENSE
index 4b30ed5d95..4b30ed5d95 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/LICENSE
+++ b/deps/npm/node_modules/parallel-transform/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/README.md b/deps/npm/node_modules/parallel-transform/README.md
index f53e130849..f53e130849 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/README.md
+++ b/deps/npm/node_modules/parallel-transform/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/index.js b/deps/npm/node_modules/parallel-transform/index.js
index 77329e4ccf..77329e4ccf 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/index.js
+++ b/deps/npm/node_modules/parallel-transform/index.js
diff --git a/deps/npm/node_modules/parallel-transform/package.json b/deps/npm/node_modules/parallel-transform/package.json
new file mode 100644
index 0000000000..b3261189e7
--- /dev/null
+++ b/deps/npm/node_modules/parallel-transform/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "parallel-transform@^1.1.0",
+ "_id": "parallel-transform@1.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=",
+ "_location": "/parallel-transform",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "parallel-transform@^1.1.0",
+ "name": "parallel-transform",
+ "escapedName": "parallel-transform",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz",
+ "_shasum": "d410f065b05da23081fcd10f28854c29bda33b06",
+ "_spec": "parallel-transform@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/parallel-transform/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "cyclist": "~0.2.2",
+ "inherits": "^2.0.3",
+ "readable-stream": "^2.1.5"
+ },
+ "deprecated": false,
+ "description": "Transform stream that allows you to run your transforms in parallel without changing the order",
+ "homepage": "https://github.com/mafintosh/parallel-transform#readme",
+ "keywords": [
+ "transform",
+ "stream",
+ "parallel",
+ "preserve",
+ "order"
+ ],
+ "license": "MIT",
+ "name": "parallel-transform",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/parallel-transform.git"
+ },
+ "version": "1.1.0"
+}
diff --git a/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 b/deps/npm/node_modules/path-exists/index.js
index 16ae60acb1..16ae60acb1 100644
--- a/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
+++ b/deps/npm/node_modules/path-exists/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/license b/deps/npm/node_modules/path-exists/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/code-point-at/license
+++ b/deps/npm/node_modules/path-exists/license
diff --git a/deps/npm/node_modules/path-exists/package.json b/deps/npm/node_modules/path-exists/package.json
new file mode 100644
index 0000000000..539aff886d
--- /dev/null
+++ b/deps/npm/node_modules/path-exists/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "path-exists@^3.0.0",
+ "_id": "path-exists@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
+ "_location": "/path-exists",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "path-exists@^3.0.0",
+ "name": "path-exists",
+ "escapedName": "path-exists",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/locate-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "_shasum": "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515",
+ "_spec": "path-exists@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/locate-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-exists/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Check if a path exists",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/path-exists#readme",
+ "keywords": [
+ "path",
+ "exists",
+ "exist",
+ "file",
+ "filepath",
+ "fs",
+ "filesystem",
+ "file-system",
+ "access",
+ "stat"
+ ],
+ "license": "MIT",
+ "name": "path-exists",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-exists.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/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 b/deps/npm/node_modules/path-exists/readme.md
index 1b65fa705d..1b65fa705d 100644
--- a/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
+++ b/deps/npm/node_modules/path-exists/readme.md
diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js b/deps/npm/node_modules/path-is-absolute/index.js
index 22aa6c3560..22aa6c3560 100644
--- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/index.js
+++ b/deps/npm/node_modules/path-is-absolute/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/path-is-absolute/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ b/deps/npm/node_modules/path-is-absolute/license
diff --git a/deps/npm/node_modules/path-is-absolute/package.json b/deps/npm/node_modules/path-is-absolute/package.json
new file mode 100644
index 0000000000..2161a3c273
--- /dev/null
+++ b/deps/npm/node_modules/path-is-absolute/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "path-is-absolute@^1.0.0",
+ "_id": "path-is-absolute@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "_location": "/path-is-absolute",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "path-is-absolute@^1.0.0",
+ "name": "path-is-absolute",
+ "escapedName": "path-is-absolute",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/glob"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "_shasum": "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f",
+ "_spec": "path-is-absolute@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/glob",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-is-absolute/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Node.js 0.12 path.isAbsolute() ponyfill",
+ "devDependencies": {
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/path-is-absolute#readme",
+ "keywords": [
+ "path",
+ "paths",
+ "file",
+ "dir",
+ "absolute",
+ "isabsolute",
+ "is-absolute",
+ "built-in",
+ "util",
+ "utils",
+ "core",
+ "ponyfill",
+ "polyfill",
+ "shim",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "path-is-absolute",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-is-absolute.git"
+ },
+ "scripts": {
+ "test": "xo && node test.js"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md b/deps/npm/node_modules/path-is-absolute/readme.md
index 8dbdf5fcb7..8dbdf5fcb7 100644
--- a/deps/npm/node_modules/glob/node_modules/path-is-absolute/readme.md
+++ b/deps/npm/node_modules/path-is-absolute/readme.md
diff --git a/deps/npm/node_modules/path-is-inside/package.json b/deps/npm/node_modules/path-is-inside/package.json
index 9f7652535f..9ff6e10448 100644
--- a/deps/npm/node_modules/path-is-inside/package.json
+++ b/deps/npm/node_modules/path-is-inside/package.json
@@ -1,42 +1,44 @@
{
- "_from": "path-is-inside@~1.0.2",
+ "_args": [
+ [
+ "path-is-inside@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "path-is-inside@1.0.2",
"_id": "path-is-inside@1.0.2",
+ "_inBundle": false,
"_integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=",
"_location": "/path-is-inside",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "path-is-inside@~1.0.2",
+ "raw": "path-is-inside@1.0.2",
"name": "path-is-inside",
"escapedName": "path-is-inside",
- "rawSpec": "~1.0.2",
+ "rawSpec": "1.0.2",
"saveSpec": null,
- "fetchSpec": "~1.0.2"
+ "fetchSpec": "1.0.2"
},
"_requiredBy": [
"/",
+ "/eslint",
"/fs-vacuum",
- "/standard/eslint",
- "/standard/eslint/file-entry-cache/flat-cache/del/is-path-in-cwd/is-path-inside"
+ "/gentle-fs",
+ "/is-path-inside"
],
"_resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz",
- "_shasum": "365417dede44430d1c11af61027facf074bdfc53",
- "_shrinkwrap": null,
- "_spec": "path-is-inside@~1.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Domenic Denicola",
"email": "d@domenic.me",
"url": "https://domenic.me"
},
- "bin": null,
"bugs": {
"url": "https://github.com/domenic/path-is-inside/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Tests whether one path is inside another path",
"devDependencies": {
"jshint": "~2.3.0",
@@ -56,8 +58,6 @@
"license": "(WTFPL OR MIT)",
"main": "lib/path-is-inside.js",
"name": "path-is-inside",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/domenic/path-is-inside.git"
diff --git a/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 b/deps/npm/node_modules/path-key/index.js
index 62c8250ab4..62c8250ab4 100644
--- a/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
+++ b/deps/npm/node_modules/path-key/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license b/deps/npm/node_modules/path-key/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/node_modules/number-is-nan/license
+++ b/deps/npm/node_modules/path-key/license
diff --git a/deps/npm/node_modules/path-key/package.json b/deps/npm/node_modules/path-key/package.json
new file mode 100644
index 0000000000..68bfde6f78
--- /dev/null
+++ b/deps/npm/node_modules/path-key/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "path-key@^2.0.0",
+ "_id": "path-key@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
+ "_location": "/path-key",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "path-key@^2.0.0",
+ "name": "path-key",
+ "escapedName": "path-key",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/npm-run-path"
+ ],
+ "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
+ "_spec": "path-key@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-run-path",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/path-key/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Get the PATH environment variable key cross-platform",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/path-key#readme",
+ "keywords": [
+ "path",
+ "key",
+ "environment",
+ "env",
+ "variable",
+ "var",
+ "get",
+ "cross-platform",
+ "windows"
+ ],
+ "license": "MIT",
+ "name": "path-key",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/path-key.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.1",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/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 b/deps/npm/node_modules/path-key/readme.md
index cb5710aace..cb5710aace 100644
--- a/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
+++ b/deps/npm/node_modules/path-key/readme.md
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/.npmignore b/deps/npm/node_modules/performance-now/.npmignore
index 496ee2ca6a..496ee2ca6a 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/.npmignore
+++ b/deps/npm/node_modules/performance-now/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/.tm_properties b/deps/npm/node_modules/performance-now/.tm_properties
index 4b8eb3f610..4b8eb3f610 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/.tm_properties
+++ b/deps/npm/node_modules/performance-now/.tm_properties
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/.travis.yml b/deps/npm/node_modules/performance-now/.travis.yml
index 1543c1990e..1543c1990e 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/.travis.yml
+++ b/deps/npm/node_modules/performance-now/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/README.md b/deps/npm/node_modules/performance-now/README.md
index 28080f856a..28080f856a 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/README.md
+++ b/deps/npm/node_modules/performance-now/README.md
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js b/deps/npm/node_modules/performance-now/lib/performance-now.js
index 37f569da1e..37f569da1e 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js
+++ b/deps/npm/node_modules/performance-now/lib/performance-now.js
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js.map b/deps/npm/node_modules/performance-now/lib/performance-now.js.map
index bef83626d8..bef83626d8 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/lib/performance-now.js.map
+++ b/deps/npm/node_modules/performance-now/lib/performance-now.js.map
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/license.txt b/deps/npm/node_modules/performance-now/license.txt
index 0bf51b460f..0bf51b460f 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/license.txt
+++ b/deps/npm/node_modules/performance-now/license.txt
diff --git a/deps/npm/node_modules/performance-now/package.json b/deps/npm/node_modules/performance-now/package.json
new file mode 100644
index 0000000000..ef3c7d69e4
--- /dev/null
+++ b/deps/npm/node_modules/performance-now/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "performance-now@^2.1.0",
+ "_id": "performance-now@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
+ "_location": "/performance-now",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "performance-now@^2.1.0",
+ "name": "performance-now",
+ "escapedName": "performance-now",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "_shasum": "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b",
+ "_spec": "performance-now@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Braveg1rl",
+ "email": "braveg1rl@outlook.com"
+ },
+ "bugs": {
+ "url": "https://github.com/braveg1rl/performance-now/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Implements performance.now (based on process.hrtime).",
+ "devDependencies": {
+ "bluebird": "^3.4.7",
+ "call-delayed": "^1.0.0",
+ "chai": "^3.5.0",
+ "chai-increasing": "^1.2.0",
+ "coffee-script": "~1.12.2",
+ "mocha": "~3.2.0",
+ "pre-commit": "^1.2.2"
+ },
+ "homepage": "https://github.com/braveg1rl/performance-now",
+ "keywords": [],
+ "license": "MIT",
+ "main": "lib/performance-now.js",
+ "name": "performance-now",
+ "optionalDependencies": {},
+ "private": false,
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/braveg1rl/performance-now.git"
+ },
+ "scripts": {
+ "build": "mkdir -p lib && rm -rf lib/* && node_modules/.bin/coffee --compile -m --output lib/ src/",
+ "prepublish": "npm test",
+ "pretest": "npm run build",
+ "test": "mocha",
+ "watch": "coffee --watch --compile --output lib/ src/"
+ },
+ "typings": "src/index.d.ts",
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/src/index.d.ts b/deps/npm/node_modules/performance-now/src/index.d.ts
index 68dca8eddc..68dca8eddc 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/src/index.d.ts
+++ b/deps/npm/node_modules/performance-now/src/index.d.ts
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/src/performance-now.coffee b/deps/npm/node_modules/performance-now/src/performance-now.coffee
index a8e075a40f..a8e075a40f 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/src/performance-now.coffee
+++ b/deps/npm/node_modules/performance-now/src/performance-now.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/mocha.opts b/deps/npm/node_modules/performance-now/test/mocha.opts
index 55d8492707..55d8492707 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/mocha.opts
+++ b/deps/npm/node_modules/performance-now/test/mocha.opts
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/performance-now.coffee b/deps/npm/node_modules/performance-now/test/performance-now.coffee
index c99e95cd2c..c99e95cd2c 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/performance-now.coffee
+++ b/deps/npm/node_modules/performance-now/test/performance-now.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts.coffee b/deps/npm/node_modules/performance-now/test/scripts.coffee
index 16312f185c..16312f185c 100644
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts.coffee
+++ b/deps/npm/node_modules/performance-now/test/scripts.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-call.coffee b/deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee
index 0c3bab5949..0c3bab5949 100755
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-call.coffee
+++ b/deps/npm/node_modules/performance-now/test/scripts/delayed-call.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-require.coffee b/deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee
index 3ddee952f2..3ddee952f2 100755
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/delayed-require.coffee
+++ b/deps/npm/node_modules/performance-now/test/scripts/delayed-require.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/difference.coffee b/deps/npm/node_modules/performance-now/test/scripts/difference.coffee
index 0b5edf6c6b..0b5edf6c6b 100755
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/difference.coffee
+++ b/deps/npm/node_modules/performance-now/test/scripts/difference.coffee
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/initial-value.coffee b/deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee
index 19ef4e0f3e..19ef4e0f3e 100755
--- a/deps/npm/node_modules/request/node_modules/performance-now/test/scripts/initial-value.coffee
+++ b/deps/npm/node_modules/performance-now/test/scripts/initial-value.coffee
diff --git a/deps/npm/node_modules/pify/index.js b/deps/npm/node_modules/pify/index.js
new file mode 100644
index 0000000000..1dee43ad08
--- /dev/null
+++ b/deps/npm/node_modules/pify/index.js
@@ -0,0 +1,84 @@
+'use strict';
+
+const processFn = (fn, opts) => function () {
+ const P = opts.promiseModule;
+ const args = new Array(arguments.length);
+
+ for (let i = 0; i < arguments.length; i++) {
+ args[i] = arguments[i];
+ }
+
+ return new P((resolve, reject) => {
+ if (opts.errorFirst) {
+ args.push(function (err, result) {
+ if (opts.multiArgs) {
+ const results = new Array(arguments.length - 1);
+
+ for (let i = 1; i < arguments.length; i++) {
+ results[i - 1] = arguments[i];
+ }
+
+ if (err) {
+ results.unshift(err);
+ reject(results);
+ } else {
+ resolve(results);
+ }
+ } else if (err) {
+ reject(err);
+ } else {
+ resolve(result);
+ }
+ });
+ } else {
+ args.push(function (result) {
+ if (opts.multiArgs) {
+ const results = new Array(arguments.length - 1);
+
+ for (let i = 0; i < arguments.length; i++) {
+ results[i] = arguments[i];
+ }
+
+ resolve(results);
+ } else {
+ resolve(result);
+ }
+ });
+ }
+
+ fn.apply(this, args);
+ });
+};
+
+module.exports = (obj, opts) => {
+ opts = Object.assign({
+ exclude: [/.+(Sync|Stream)$/],
+ errorFirst: true,
+ promiseModule: Promise
+ }, opts);
+
+ const filter = key => {
+ const match = pattern => typeof pattern === 'string' ? key === pattern : pattern.test(key);
+ return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
+ };
+
+ let ret;
+ if (typeof obj === 'function') {
+ ret = function () {
+ if (opts.excludeMain) {
+ return obj.apply(this, arguments);
+ }
+
+ return processFn(obj, opts).apply(this, arguments);
+ };
+ } else {
+ ret = Object.create(Object.getPrototypeOf(obj));
+ }
+
+ for (const key in obj) { // eslint-disable-line guard-for-in
+ const x = obj[key];
+ ret[key] = typeof x === 'function' && filter(key) ? processFn(x, opts) : x;
+ }
+
+ return ret;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license b/deps/npm/node_modules/pify/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/license
+++ b/deps/npm/node_modules/pify/license
diff --git a/deps/npm/node_modules/pify/package.json b/deps/npm/node_modules/pify/package.json
new file mode 100644
index 0000000000..9c065821e6
--- /dev/null
+++ b/deps/npm/node_modules/pify/package.json
@@ -0,0 +1,84 @@
+{
+ "_from": "pify@^3.0.0",
+ "_id": "pify@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=",
+ "_location": "/pify",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pify@^3.0.0",
+ "name": "pify",
+ "escapedName": "pify",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/make-dir",
+ "/pkg-conf/load-json-file"
+ ],
+ "_resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "_shasum": "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176",
+ "_spec": "pify@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-dir",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/pify/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Promisify a callback-style function",
+ "devDependencies": {
+ "ava": "*",
+ "pinkie-promise": "^2.0.0",
+ "v8-natives": "^1.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/pify#readme",
+ "keywords": [
+ "promise",
+ "promises",
+ "promisify",
+ "all",
+ "denodify",
+ "denodeify",
+ "callback",
+ "cb",
+ "node",
+ "then",
+ "thenify",
+ "convert",
+ "transform",
+ "wrap",
+ "wrapper",
+ "bind",
+ "to",
+ "async",
+ "await",
+ "es2015",
+ "bluebird"
+ ],
+ "license": "MIT",
+ "name": "pify",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/pify.git"
+ },
+ "scripts": {
+ "optimization-test": "node --allow-natives-syntax optimization-test.js",
+ "test": "xo && ava && npm run optimization-test"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/pify/readme.md b/deps/npm/node_modules/pify/readme.md
new file mode 100644
index 0000000000..376ca4e59d
--- /dev/null
+++ b/deps/npm/node_modules/pify/readme.md
@@ -0,0 +1,131 @@
+# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify)
+
+> Promisify a callback-style function
+
+
+## Install
+
+```
+$ npm install --save pify
+```
+
+
+## Usage
+
+```js
+const fs = require('fs');
+const pify = require('pify');
+
+// Promisify a single function
+pify(fs.readFile)('package.json', 'utf8').then(data => {
+ console.log(JSON.parse(data).name);
+ //=> 'pify'
+});
+
+// Promisify all methods in a module
+pify(fs).readFile('package.json', 'utf8').then(data => {
+ console.log(JSON.parse(data).name);
+ //=> 'pify'
+});
+```
+
+
+## API
+
+### pify(input, [options])
+
+Returns a `Promise` wrapped version of the supplied function or module.
+
+#### input
+
+Type: `Function` `Object`
+
+Callback-style function or module whose methods you want to promisify.
+
+#### options
+
+##### multiArgs
+
+Type: `boolean`<br>
+Default: `false`
+
+By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument. This also applies to rejections, where it returns an array of all the callback arguments, including the error.
+
+```js
+const request = require('request');
+const pify = require('pify');
+
+pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => {
+ const [httpResponse, body] = result;
+});
+```
+
+##### include
+
+Type: `string[]` `RegExp[]`
+
+Methods in a module to promisify. Remaining methods will be left untouched.
+
+##### exclude
+
+Type: `string[]` `RegExp[]`<br>
+Default: `[/.+(Sync|Stream)$/]`
+
+Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default.
+
+##### excludeMain
+
+Type: `boolean`<br>
+Default: `false`
+
+If given module is a function itself, it will be promisified. Turn this option on if you want to promisify only methods of the module.
+
+```js
+const pify = require('pify');
+
+function fn() {
+ return true;
+}
+
+fn.method = (data, callback) => {
+ setImmediate(() => {
+ callback(null, data);
+ });
+};
+
+// Promisify methods but not `fn()`
+const promiseFn = pify(fn, {excludeMain: true});
+
+if (promiseFn()) {
+ promiseFn.method('hi').then(data => {
+ console.log(data);
+ });
+}
+```
+
+##### errorFirst
+
+Type: `boolean`<br>
+Default: `true`
+
+Whether the callback has an error as the first argument. You'll want to set this to `false` if you're dealing with an API that doesn't have an error as the first argument, like `fs.exists()`, some browser APIs, Chrome Extension APIs, etc.
+
+##### promiseModule
+
+Type: `Function`
+
+Custom promise module to use instead of the native one.
+
+Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill.
+
+
+## Related
+
+- [p-event](https://github.com/sindresorhus/p-event) - Promisify an event by waiting for it to be emitted
+- [p-map](https://github.com/sindresorhus/p-map) - Map over promises concurrently
+- [Moreā€¦](https://github.com/sindresorhus/promise-fun)
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/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 b/deps/npm/node_modules/prepend-http/index.js
index 60f532ac59..60f532ac59 100644
--- a/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
+++ b/deps/npm/node_modules/prepend-http/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/license b/deps/npm/node_modules/prepend-http/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/license
+++ b/deps/npm/node_modules/prepend-http/license
diff --git a/deps/npm/node_modules/prepend-http/package.json b/deps/npm/node_modules/prepend-http/package.json
new file mode 100644
index 0000000000..163369f25e
--- /dev/null
+++ b/deps/npm/node_modules/prepend-http/package.json
@@ -0,0 +1,67 @@
+{
+ "_from": "prepend-http@^1.0.1",
+ "_id": "prepend-http@1.0.4",
+ "_inBundle": false,
+ "_integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
+ "_location": "/prepend-http",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "prepend-http@^1.0.1",
+ "name": "prepend-http",
+ "escapedName": "prepend-http",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/url-parse-lax"
+ ],
+ "_resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
+ "_shasum": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc",
+ "_spec": "prepend-http@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/url-parse-lax",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/prepend-http/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Prepend `http://` to humanized URLs like todomvc.com and localhost",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/prepend-http#readme",
+ "keywords": [
+ "prepend",
+ "protocol",
+ "scheme",
+ "url",
+ "uri",
+ "http",
+ "https",
+ "humanized"
+ ],
+ "license": "MIT",
+ "name": "prepend-http",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/prepend-http.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.4"
+}
diff --git a/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 b/deps/npm/node_modules/prepend-http/readme.md
index df7557e368..df7557e368 100644
--- a/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
+++ b/deps/npm/node_modules/prepend-http/readme.md
diff --git a/deps/npm/node_modules/process-nextick-args/index.js b/deps/npm/node_modules/process-nextick-args/index.js
new file mode 100644
index 0000000000..ce045c6560
--- /dev/null
+++ b/deps/npm/node_modules/process-nextick-args/index.js
@@ -0,0 +1,43 @@
+'use strict';
+
+if (!process.version ||
+ process.version.indexOf('v0.') === 0 ||
+ process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
+ module.exports = { nextTick: nextTick };
+} else {
+ module.exports = process
+}
+
+function nextTick(fn, arg1, arg2, arg3) {
+ if (typeof fn !== 'function') {
+ throw new TypeError('"callback" argument must be a function');
+ }
+ var len = arguments.length;
+ var args, i;
+ switch (len) {
+ case 0:
+ case 1:
+ return process.nextTick(fn);
+ case 2:
+ return process.nextTick(function afterTickOne() {
+ fn.call(null, arg1);
+ });
+ case 3:
+ return process.nextTick(function afterTickTwo() {
+ fn.call(null, arg1, arg2);
+ });
+ case 4:
+ return process.nextTick(function afterTickThree() {
+ fn.call(null, arg1, arg2, arg3);
+ });
+ default:
+ args = new Array(len - 1);
+ i = 0;
+ while (i < args.length) {
+ args[i++] = arguments[i];
+ }
+ return process.nextTick(function afterTick() {
+ fn.apply(null, args);
+ });
+ }
+}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md b/deps/npm/node_modules/process-nextick-args/license.md
index c67e3532b5..c67e3532b5 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/license.md
+++ b/deps/npm/node_modules/process-nextick-args/license.md
diff --git a/deps/npm/node_modules/process-nextick-args/package.json b/deps/npm/node_modules/process-nextick-args/package.json
new file mode 100644
index 0000000000..9eafcd2d08
--- /dev/null
+++ b/deps/npm/node_modules/process-nextick-args/package.json
@@ -0,0 +1,50 @@
+{
+ "_from": "process-nextick-args@~2.0.0",
+ "_id": "process-nextick-args@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
+ "_location": "/process-nextick-args",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "process-nextick-args@~2.0.0",
+ "name": "process-nextick-args",
+ "escapedName": "process-nextick-args",
+ "rawSpec": "~2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~2.0.0"
+ },
+ "_requiredBy": [
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+ "_shasum": "a37d732f4271b4ab1ad070d35508e8290788ffaa",
+ "_spec": "process-nextick-args@~2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
+ "author": "",
+ "bugs": {
+ "url": "https://github.com/calvinmetcalf/process-nextick-args/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "process.nextTick but always with args",
+ "devDependencies": {
+ "tap": "~0.2.6"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/calvinmetcalf/process-nextick-args",
+ "license": "MIT",
+ "main": "index.js",
+ "name": "process-nextick-args",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/process-nextick-args/readme.md b/deps/npm/node_modules/process-nextick-args/readme.md
new file mode 100644
index 0000000000..ecb432c9b2
--- /dev/null
+++ b/deps/npm/node_modules/process-nextick-args/readme.md
@@ -0,0 +1,18 @@
+process-nextick-args
+=====
+
+[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args)
+
+```bash
+npm install --save process-nextick-args
+```
+
+Always be able to pass arguments to process.nextTick, no matter the platform
+
+```js
+var pna = require('process-nextick-args');
+
+pna.nextTick(function (a, b, c) {
+ console.log(a, b, c);
+}, 'step', 3, 'profit');
+```
diff --git a/deps/npm/node_modules/promise-inflight/package.json b/deps/npm/node_modules/promise-inflight/package.json
index b3251d4a9c..ff79836b58 100644
--- a/deps/npm/node_modules/promise-inflight/package.json
+++ b/deps/npm/node_modules/promise-inflight/package.json
@@ -1,41 +1,44 @@
{
- "_from": "promise-inflight@~1.0.1",
+ "_args": [
+ [
+ "promise-inflight@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "promise-inflight@1.0.1",
"_id": "promise-inflight@1.0.1",
+ "_inBundle": false,
"_integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=",
"_location": "/promise-inflight",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "promise-inflight@~1.0.1",
+ "raw": "promise-inflight@1.0.1",
"name": "promise-inflight",
"escapedName": "promise-inflight",
- "rawSpec": "~1.0.1",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "~1.0.1"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
"/",
"/cacache",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
"/pacote"
],
"_resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
- "_shasum": "98472870bf228132fcbdd868129bad12c3c029e3",
- "_shrinkwrap": null,
- "_spec": "promise-inflight@~1.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
"url": "http://re-becca.org/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/iarna/promise-inflight/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "One promise for multiple requests in flight to avoid async duplication",
"devDependencies": {},
"files": [
@@ -46,8 +49,6 @@
"license": "ISC",
"main": "inflight.js",
"name": "promise-inflight",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/promise-inflight.git"
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.editorconfig b/deps/npm/node_modules/promise-retry/.editorconfig
index 8bc4f108d5..8bc4f108d5 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/.editorconfig
+++ b/deps/npm/node_modules/promise-retry/.editorconfig
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.npmignore b/deps/npm/node_modules/promise-retry/.npmignore
index a22dcdd470..a22dcdd470 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.npmignore
+++ b/deps/npm/node_modules/promise-retry/.npmignore
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.travis.yml b/deps/npm/node_modules/promise-retry/.travis.yml
index f85680370f..f85680370f 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/node_modules/err-code/.travis.yml
+++ b/deps/npm/node_modules/promise-retry/.travis.yml
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/LICENSE b/deps/npm/node_modules/promise-retry/LICENSE
index db5e914de1..db5e914de1 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/LICENSE
+++ b/deps/npm/node_modules/promise-retry/LICENSE
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/README.md b/deps/npm/node_modules/promise-retry/README.md
index 85c3bc57e8..85c3bc57e8 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/README.md
+++ b/deps/npm/node_modules/promise-retry/README.md
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/index.js b/deps/npm/node_modules/promise-retry/index.js
index 092f275686..092f275686 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/index.js
+++ b/deps/npm/node_modules/promise-retry/index.js
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/.npmignore b/deps/npm/node_modules/promise-retry/node_modules/retry/.npmignore
new file mode 100644
index 0000000000..e7726a071b
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/.npmignore
@@ -0,0 +1,2 @@
+/node_modules/*
+npm-debug.log
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/License b/deps/npm/node_modules/promise-retry/node_modules/retry/License
new file mode 100644
index 0000000000..0b58de379f
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/License
@@ -0,0 +1,21 @@
+Copyright (c) 2011:
+Tim KoschĆ¼tzki (tim@debuggable.com)
+Felix Geisendƶrfer (felix@debuggable.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/promise-retry/node_modules/retry/Makefile b/deps/npm/node_modules/promise-retry/node_modules/retry/Makefile
new file mode 100644
index 0000000000..98e7167bbe
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/Makefile
@@ -0,0 +1,21 @@
+SHELL := /bin/bash
+
+test:
+ @node test/runner.js
+
+release-major: test
+ npm version major -m "Release %s"
+ git push
+ npm publish
+
+release-minor: test
+ npm version minor -m "Release %s"
+ git push
+ npm publish
+
+release-patch: test
+ npm version patch -m "Release %s"
+ git push
+ npm publish
+
+.PHONY: test
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/README.md b/deps/npm/node_modules/promise-retry/node_modules/retry/README.md
new file mode 100644
index 0000000000..eee05f7bb6
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/README.md
@@ -0,0 +1,215 @@
+# retry
+
+Abstraction for exponential and custom retry strategies for failed operations.
+
+## Installation
+
+ npm install retry
+
+## Current Status
+
+This module has been tested and is ready to be used.
+
+## Tutorial
+
+The example below will retry a potentially failing `dns.resolve` operation
+`10` times using an exponential backoff strategy. With the default settings, this
+means the last attempt is made after `17 minutes and 3 seconds`.
+
+``` javascript
+var dns = require('dns');
+var retry = require('retry');
+
+function faultTolerantResolve(address, cb) {
+ var operation = retry.operation();
+
+ operation.attempt(function(currentAttempt) {
+ dns.resolve(address, function(err, addresses) {
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(err ? operation.mainError() : null, addresses);
+ });
+ });
+}
+
+faultTolerantResolve('nodejs.org', function(err, addresses) {
+ console.log(err, addresses);
+});
+```
+
+Of course you can also configure the factors that go into the exponential
+backoff. See the API documentation below for all available settings.
+currentAttempt is an int representing the number of attempts so far.
+
+``` javascript
+var operation = retry.operation({
+ retries: 5,
+ factor: 3,
+ minTimeout: 1 * 1000,
+ maxTimeout: 60 * 1000,
+ randomize: true,
+});
+```
+
+## API
+
+### retry.operation([options])
+
+Creates a new `RetryOperation` object. `options` is the same as `retry.timeouts()`'s `options`, with two additions:
+
+* `forever`: Whether to retry forever, defaults to `false`.
+* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+
+### retry.timeouts([options])
+
+Returns an array of timeouts. All time `options` and return values are in
+milliseconds. If `options` is an array, a copy of that array is returned.
+
+`options` is a JS object that can contain any of the following keys:
+
+* `retries`: The maximum amount of times to retry the operation. Default is `10`.
+* `factor`: The exponential factor to use. Default is `2`.
+* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`.
+* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`.
+* `randomize`: Randomizes the timeouts by multiplying with a factor between `1` to `2`. Default is `false`.
+
+The formula used to calculate the individual timeouts is:
+
+```
+Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout)
+```
+
+Have a look at [this article][article] for a better explanation of approach.
+
+If you want to tune your `factor` / `times` settings to attempt the last retry
+after a certain amount of time, you can use wolfram alpha. For example in order
+to tune for `10` attempts in `5 minutes`, you can use this equation:
+
+![screenshot](https://github.com/tim-kos/node-retry/raw/master/equation.gif)
+
+Explaining the various values from left to right:
+
+* `k = 0 ... 9`: The `retries` value (10)
+* `1000`: The `minTimeout` value in ms (1000)
+* `x^k`: No need to change this, `x` will be your resulting factor
+* `5 * 60 * 1000`: The desired total amount of time for retrying in ms (5 minutes)
+
+To make this a little easier for you, use wolfram alpha to do the calculations:
+
+<http://www.wolframalpha.com/input/?i=Sum%5B1000*x^k%2C+{k%2C+0%2C+9}%5D+%3D+5+*+60+*+1000>
+
+[article]: http://dthain.blogspot.com/2009/02/exponential-backoff-in-distributed.html
+
+### retry.createTimeout(attempt, opts)
+
+Returns a new `timeout` (integer in milliseconds) based on the given parameters.
+
+`attempt` is an integer representing for which retry the timeout should be calculated. If your retry operation was executed 4 times you had one attempt and 3 retries. If you then want to calculate a new timeout, you should set `attempt` to 4 (attempts are zero-indexed).
+
+`opts` can include `factor`, `minTimeout`, `randomize` (boolean) and `maxTimeout`. They are documented above.
+
+`retry.createTimeout()` is used internally by `retry.timeouts()` and is public for you to be able to create your own timeouts for reinserting an item, see [issue #13](https://github.com/tim-kos/node-retry/issues/13).
+
+### retry.wrap(obj, [options], [methodNames])
+
+Wrap all functions of the `obj` with retry. Optionally you can pass operation options and
+an array of method names which need to be wrapped.
+
+```
+retry.wrap(obj)
+
+retry.wrap(obj, ['method1', 'method2'])
+
+retry.wrap(obj, {retries: 3})
+
+retry.wrap(obj, {retries: 3}, ['method1', 'method2'])
+```
+The `options` object can take any options that the usual call to `retry.operation` can take.
+
+### new RetryOperation(timeouts, [options])
+
+Creates a new `RetryOperation` where `timeouts` is an array where each value is
+a timeout given in milliseconds.
+
+Available options:
+* `forever`: Whether to retry forever, defaults to `false`.
+* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+
+If `forever` is true, the following changes happen:
+* `RetryOperation.errors()` will only output an array of one item: the last error.
+* `RetryOperation` will repeatedly use the `timeouts` array. Once all of its timeouts have been used up, it restarts with the first timeout, then uses the second and so on.
+
+#### retryOperation.errors()
+
+Returns an array of all errors that have been passed to
+`retryOperation.retry()` so far.
+
+#### retryOperation.mainError()
+
+A reference to the error object that occured most frequently. Errors are
+compared using the `error.message` property.
+
+If multiple error messages occured the same amount of time, the last error
+object with that message is returned.
+
+If no errors occured so far, the value is `null`.
+
+#### retryOperation.attempt(fn, timeoutOps)
+
+Defines the function `fn` that is to be retried and executes it for the first
+time right away. The `fn` function can receive an optional `currentAttempt` callback that represents the number of attempts to execute `fn` so far.
+
+Optionally defines `timeoutOps` which is an object having a property `timeout` in miliseconds and a property `cb` callback function.
+Whenever your retry operation takes longer than `timeout` to execute, the timeout callback function `cb` is called.
+
+
+#### retryOperation.try(fn)
+
+This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead.
+
+#### retryOperation.start(fn)
+
+This is an alias for `retryOperation.attempt(fn)`. This is deprecated. Please use `retryOperation.attempt(fn)` instead.
+
+#### retryOperation.retry(error)
+
+Returns `false` when no `error` value is given, or the maximum amount of retries
+has been reached.
+
+Otherwise it returns `true`, and retries the operation after the timeout for
+the current attempt number.
+
+#### retryOperation.stop()
+
+Allows you to stop the operation being retried. Useful for aborting the operation on a fatal error etc.
+
+#### retryOperation.attempts()
+
+Returns an int representing the number of attempts it took to call `fn` before it was successful.
+
+## License
+
+retry is licensed under the MIT license.
+
+
+# Changelog
+
+0.10.0 Adding `stop` functionality, thanks to @maxnachlinger.
+
+0.9.0 Adding `unref` functionality, thanks to @satazor.
+
+0.8.0 Implementing retry.wrap.
+
+0.7.0 Some bug fixes and made retry.createTimeout() public. Fixed issues [#10](https://github.com/tim-kos/node-retry/issues/10), [#12](https://github.com/tim-kos/node-retry/issues/12), and [#13](https://github.com/tim-kos/node-retry/issues/13).
+
+0.6.0 Introduced optional timeOps parameter for the attempt() function which is an object having a property timeout in milliseconds and a property cb callback function. Whenever your retry operation takes longer than timeout to execute, the timeout callback function cb is called.
+
+0.5.0 Some minor refactoring.
+
+0.4.0 Changed retryOperation.try() to retryOperation.attempt(). Deprecated the aliases start() and try() for it.
+
+0.3.0 Added retryOperation.start() which is an alias for retryOperation.try().
+
+0.2.0 Added attempts() function and parameter to retryOperation.try() representing the number of attempts it took to call fn().
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/equation.gif b/deps/npm/node_modules/promise-retry/node_modules/retry/equation.gif
new file mode 100644
index 0000000000..97107237ba
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/equation.gif
Binary files differ
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/example/dns.js b/deps/npm/node_modules/promise-retry/node_modules/retry/example/dns.js
new file mode 100644
index 0000000000..446729b6f9
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/example/dns.js
@@ -0,0 +1,31 @@
+var dns = require('dns');
+var retry = require('../lib/retry');
+
+function faultTolerantResolve(address, cb) {
+ var opts = {
+ retries: 2,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: 2 * 1000,
+ randomize: true
+ };
+ var operation = retry.operation(opts);
+
+ operation.attempt(function(currentAttempt) {
+ dns.resolve(address, function(err, addresses) {
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(operation.mainError(), operation.errors(), addresses);
+ });
+ });
+}
+
+faultTolerantResolve('nodejs.org', function(err, errors, addresses) {
+ console.warn('err:');
+ console.log(err);
+
+ console.warn('addresses:');
+ console.log(addresses);
+}); \ No newline at end of file
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/example/stop.js b/deps/npm/node_modules/promise-retry/node_modules/retry/example/stop.js
new file mode 100644
index 0000000000..e1ceafeeba
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/example/stop.js
@@ -0,0 +1,40 @@
+var retry = require('../lib/retry');
+
+function attemptAsyncOperation(someInput, cb) {
+ var opts = {
+ retries: 2,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: 2 * 1000,
+ randomize: true
+ };
+ var operation = retry.operation(opts);
+
+ operation.attempt(function(currentAttempt) {
+ failingAsyncOperation(someInput, function(err, result) {
+
+ if (err && err.message === 'A fatal error') {
+ operation.stop();
+ return cb(err);
+ }
+
+ if (operation.retry(err)) {
+ return;
+ }
+
+ cb(operation.mainError(), operation.errors(), result);
+ });
+ });
+}
+
+attemptAsyncOperation('test input', function(err, errors, result) {
+ console.warn('err:');
+ console.log(err);
+
+ console.warn('result:');
+ console.log(result);
+});
+
+function failingAsyncOperation(input, cb) {
+ return setImmediate(cb.bind(null, new Error('A fatal error')));
+}
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/index.js b/deps/npm/node_modules/promise-retry/node_modules/retry/index.js
new file mode 100644
index 0000000000..ee62f3a112
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/index.js
@@ -0,0 +1 @@
+module.exports = require('./lib/retry'); \ No newline at end of file
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry.js b/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry.js
new file mode 100644
index 0000000000..77428cfd00
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry.js
@@ -0,0 +1,99 @@
+var RetryOperation = require('./retry_operation');
+
+exports.operation = function(options) {
+ var timeouts = exports.timeouts(options);
+ return new RetryOperation(timeouts, {
+ forever: options && options.forever,
+ unref: options && options.unref
+ });
+};
+
+exports.timeouts = function(options) {
+ if (options instanceof Array) {
+ return [].concat(options);
+ }
+
+ var opts = {
+ retries: 10,
+ factor: 2,
+ minTimeout: 1 * 1000,
+ maxTimeout: Infinity,
+ randomize: false
+ };
+ for (var key in options) {
+ opts[key] = options[key];
+ }
+
+ if (opts.minTimeout > opts.maxTimeout) {
+ throw new Error('minTimeout is greater than maxTimeout');
+ }
+
+ var timeouts = [];
+ for (var i = 0; i < opts.retries; i++) {
+ timeouts.push(this.createTimeout(i, opts));
+ }
+
+ if (options && options.forever && !timeouts.length) {
+ timeouts.push(this.createTimeout(i, opts));
+ }
+
+ // sort the array numerically ascending
+ timeouts.sort(function(a,b) {
+ return a - b;
+ });
+
+ return timeouts;
+};
+
+exports.createTimeout = function(attempt, opts) {
+ var random = (opts.randomize)
+ ? (Math.random() + 1)
+ : 1;
+
+ var timeout = Math.round(random * opts.minTimeout * Math.pow(opts.factor, attempt));
+ timeout = Math.min(timeout, opts.maxTimeout);
+
+ return timeout;
+};
+
+exports.wrap = function(obj, options, methods) {
+ if (options instanceof Array) {
+ methods = options;
+ options = null;
+ }
+
+ if (!methods) {
+ methods = [];
+ for (var key in obj) {
+ if (typeof obj[key] === 'function') {
+ methods.push(key);
+ }
+ }
+ }
+
+ for (var i = 0; i < methods.length; i++) {
+ var method = methods[i];
+ var original = obj[method];
+
+ obj[method] = function retryWrapper() {
+ var op = exports.operation(options);
+ var args = Array.prototype.slice.call(arguments);
+ var callback = args.pop();
+
+ args.push(function(err) {
+ if (op.retry(err)) {
+ return;
+ }
+ if (err) {
+ arguments[0] = op.mainError();
+ }
+ callback.apply(this, arguments);
+ });
+
+ op.attempt(function() {
+ original.apply(obj, args);
+ });
+ };
+ obj[method].options = options;
+ }
+};
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js b/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js
new file mode 100644
index 0000000000..2b3db8e177
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/lib/retry_operation.js
@@ -0,0 +1,143 @@
+function RetryOperation(timeouts, options) {
+ // Compatibility for the old (timeouts, retryForever) signature
+ if (typeof options === 'boolean') {
+ options = { forever: options };
+ }
+
+ this._timeouts = timeouts;
+ this._options = options || {};
+ this._fn = null;
+ this._errors = [];
+ this._attempts = 1;
+ this._operationTimeout = null;
+ this._operationTimeoutCb = null;
+ this._timeout = null;
+
+ if (this._options.forever) {
+ this._cachedTimeouts = this._timeouts.slice(0);
+ }
+}
+module.exports = RetryOperation;
+
+RetryOperation.prototype.stop = function() {
+ if (this._timeout) {
+ clearTimeout(this._timeout);
+ }
+
+ this._timeouts = [];
+ this._cachedTimeouts = null;
+};
+
+RetryOperation.prototype.retry = function(err) {
+ if (this._timeout) {
+ clearTimeout(this._timeout);
+ }
+
+ if (!err) {
+ return false;
+ }
+
+ this._errors.push(err);
+
+ var timeout = this._timeouts.shift();
+ if (timeout === undefined) {
+ if (this._cachedTimeouts) {
+ // retry forever, only keep last error
+ this._errors.splice(this._errors.length - 1, this._errors.length);
+ this._timeouts = this._cachedTimeouts.slice(0);
+ timeout = this._timeouts.shift();
+ } else {
+ return false;
+ }
+ }
+
+ var self = this;
+ var timer = setTimeout(function() {
+ self._attempts++;
+
+ if (self._operationTimeoutCb) {
+ self._timeout = setTimeout(function() {
+ self._operationTimeoutCb(self._attempts);
+ }, self._operationTimeout);
+
+ if (this._options.unref) {
+ self._timeout.unref();
+ }
+ }
+
+ self._fn(self._attempts);
+ }, timeout);
+
+ if (this._options.unref) {
+ timer.unref();
+ }
+
+ return true;
+};
+
+RetryOperation.prototype.attempt = function(fn, timeoutOps) {
+ this._fn = fn;
+
+ if (timeoutOps) {
+ if (timeoutOps.timeout) {
+ this._operationTimeout = timeoutOps.timeout;
+ }
+ if (timeoutOps.cb) {
+ this._operationTimeoutCb = timeoutOps.cb;
+ }
+ }
+
+ var self = this;
+ if (this._operationTimeoutCb) {
+ this._timeout = setTimeout(function() {
+ self._operationTimeoutCb();
+ }, self._operationTimeout);
+ }
+
+ this._fn(this._attempts);
+};
+
+RetryOperation.prototype.try = function(fn) {
+ console.log('Using RetryOperation.try() is deprecated');
+ this.attempt(fn);
+};
+
+RetryOperation.prototype.start = function(fn) {
+ console.log('Using RetryOperation.start() is deprecated');
+ this.attempt(fn);
+};
+
+RetryOperation.prototype.start = RetryOperation.prototype.try;
+
+RetryOperation.prototype.errors = function() {
+ return this._errors;
+};
+
+RetryOperation.prototype.attempts = function() {
+ return this._attempts;
+};
+
+RetryOperation.prototype.mainError = function() {
+ if (this._errors.length === 0) {
+ return null;
+ }
+
+ var counts = {};
+ var mainError = null;
+ var mainErrorCount = 0;
+
+ for (var i = 0; i < this._errors.length; i++) {
+ var error = this._errors[i];
+ var message = error.message;
+ var count = (counts[message] || 0) + 1;
+
+ counts[message] = count;
+
+ if (count >= mainErrorCount) {
+ mainError = error;
+ mainErrorCount = count;
+ }
+ }
+
+ return mainError;
+};
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/package.json b/deps/npm/node_modules/promise-retry/node_modules/retry/package.json
new file mode 100644
index 0000000000..7d6b1f99f5
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "retry@^0.10.0",
+ "_id": "retry@0.10.1",
+ "_inBundle": false,
+ "_integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+ "_location": "/promise-retry/retry",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "retry@^0.10.0",
+ "name": "retry",
+ "escapedName": "retry",
+ "rawSpec": "^0.10.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.10.0"
+ },
+ "_requiredBy": [
+ "/promise-retry"
+ ],
+ "_resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
+ "_shasum": "e76388d217992c252750241d3d3956fed98d8ff4",
+ "_spec": "retry@^0.10.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/promise-retry",
+ "author": {
+ "name": "Tim KoschĆ¼tzki",
+ "email": "tim@debuggable.com",
+ "url": "http://debuggable.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/tim-kos/node-retry/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Abstraction for exponential and custom retry strategies for failed operations.",
+ "devDependencies": {
+ "fake": "0.2.0",
+ "far": "0.0.1"
+ },
+ "directories": {
+ "lib": "./lib"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "homepage": "https://github.com/tim-kos/node-retry",
+ "license": "MIT",
+ "main": "index",
+ "name": "retry",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/tim-kos/node-retry.git"
+ },
+ "version": "0.10.1"
+}
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/common.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/common.js
new file mode 100644
index 0000000000..224720696e
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/common.js
@@ -0,0 +1,10 @@
+var common = module.exports;
+var path = require('path');
+
+var rootDir = path.join(__dirname, '..');
+common.dir = {
+ lib: rootDir + '/lib'
+};
+
+common.assert = require('assert');
+common.fake = require('fake'); \ No newline at end of file
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js
new file mode 100644
index 0000000000..b41307cb52
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-forever.js
@@ -0,0 +1,24 @@
+var common = require('../common');
+var assert = common.assert;
+var retry = require(common.dir.lib + '/retry');
+
+(function testForeverUsesFirstTimeout() {
+ var operation = retry.operation({
+ retries: 0,
+ minTimeout: 100,
+ maxTimeout: 100,
+ forever: true
+ });
+
+ operation.attempt(function(numAttempt) {
+ console.log('>numAttempt', numAttempt);
+ var err = new Error("foo");
+ if (numAttempt == 10) {
+ operation.stop();
+ }
+
+ if (operation.retry(err)) {
+ return;
+ }
+ });
+})();
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js
new file mode 100644
index 0000000000..916936424f
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-operation.js
@@ -0,0 +1,176 @@
+var common = require('../common');
+var assert = common.assert;
+var fake = common.fake.create();
+var retry = require(common.dir.lib + '/retry');
+
+(function testErrors() {
+ var operation = retry.operation();
+
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+ operation._errors.push(error);
+ operation._errors.push(error2);
+
+ assert.deepEqual(operation.errors(), [error, error2]);
+})();
+
+(function testMainErrorReturnsMostFrequentError() {
+ var operation = retry.operation();
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+
+ operation._errors.push(error);
+ operation._errors.push(error2);
+ operation._errors.push(error);
+
+ assert.strictEqual(operation.mainError(), error);
+})();
+
+(function testMainErrorReturnsLastErrorOnEqualCount() {
+ var operation = retry.operation();
+ var error = new Error('some error');
+ var error2 = new Error('some other error');
+
+ operation._errors.push(error);
+ operation._errors.push(error2);
+
+ assert.strictEqual(operation.mainError(), error2);
+})();
+
+(function testAttempt() {
+ var operation = retry.operation();
+ var fn = new Function();
+
+ var timeoutOpts = {
+ timeout: 1,
+ cb: function() {}
+ };
+ operation.attempt(fn, timeoutOpts);
+
+ assert.strictEqual(fn, operation._fn);
+ assert.strictEqual(timeoutOpts.timeout, operation._operationTimeout);
+ assert.strictEqual(timeoutOpts.cb, operation._operationTimeoutCb);
+})();
+
+(function testRetry() {
+ var times = 3;
+ var error = new Error('some error');
+ var operation = retry.operation([1, 2, 3]);
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (operation.retry(error)) {
+ return;
+ }
+
+ assert.strictEqual(attempts, 4);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testRetryForever() {
+ var error = new Error('some error');
+ var operation = retry.operation({ retries: 3, forever: true });
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (attempts !== 6 && operation.retry(error)) {
+ return;
+ }
+
+ assert.strictEqual(attempts, 6);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testRetryForeverNoRetries() {
+ var error = new Error('some error');
+ var delay = 50
+ var operation = retry.operation({
+ retries: null,
+ forever: true,
+ minTimeout: delay,
+ maxTimeout: delay
+ });
+
+ var attempts = 0;
+ var startTime = new Date().getTime();
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (attempts !== 4 && operation.retry(error)) {
+ return;
+ }
+
+ var endTime = new Date().getTime();
+ var minTime = startTime + (delay * 3);
+ var maxTime = minTime + 20 // add a little headroom for code execution time
+ assert(endTime > minTime)
+ assert(endTime < maxTime)
+ assert.strictEqual(attempts, 4);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ };
+
+ fn();
+})();
+
+(function testStop() {
+ var error = new Error('some error');
+ var operation = retry.operation([1, 2, 3]);
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+
+ if (attempts === 2) {
+ operation.stop();
+
+ assert.strictEqual(attempts, 2);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ }
+
+ if (operation.retry(error)) {
+ return;
+ }
+ });
+ };
+
+ fn();
+})();
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js
new file mode 100644
index 0000000000..7ca8bc7eb5
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-retry-wrap.js
@@ -0,0 +1,77 @@
+var common = require('../common');
+var assert = common.assert;
+var fake = common.fake.create();
+var retry = require(common.dir.lib + '/retry');
+
+function getLib() {
+ return {
+ fn1: function() {},
+ fn2: function() {},
+ fn3: function() {}
+ };
+}
+
+(function wrapAll() {
+ var lib = getLib();
+ retry.wrap(lib);
+ assert.equal(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+}());
+
+(function wrapAllPassOptions() {
+ var lib = getLib();
+ retry.wrap(lib, {retries: 2});
+ assert.equal(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn1.options.retries, 2);
+ assert.equal(lib.fn2.options.retries, 2);
+ assert.equal(lib.fn3.options.retries, 2);
+}());
+
+(function wrapDefined() {
+ var lib = getLib();
+ retry.wrap(lib, ['fn2', 'fn3']);
+ assert.notEqual(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+}());
+
+(function wrapDefinedAndPassOptions() {
+ var lib = getLib();
+ retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);
+ assert.notEqual(lib.fn1.name, 'retryWrapper');
+ assert.equal(lib.fn2.name, 'retryWrapper');
+ assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn2.options.retries, 2);
+ assert.equal(lib.fn3.options.retries, 2);
+}());
+
+(function runWrappedWithoutError() {
+ var callbackCalled;
+ var lib = {method: function(a, b, callback) {
+ assert.equal(a, 1);
+ assert.equal(b, 2);
+ assert.equal(typeof callback, 'function');
+ callback();
+ }};
+ retry.wrap(lib);
+ lib.method(1, 2, function() {
+ callbackCalled = true;
+ });
+ assert.ok(callbackCalled);
+}());
+
+(function runWrappedWithError() {
+ var callbackCalled;
+ var lib = {method: function(callback) {
+ callback(new Error('Some error'));
+ }};
+ retry.wrap(lib, {retries: 1});
+ lib.method(function(err) {
+ callbackCalled = true;
+ assert.ok(err instanceof Error);
+ });
+ assert.ok(!callbackCalled);
+}());
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js
new file mode 100644
index 0000000000..7206b0fb0b
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/integration/test-timeouts.js
@@ -0,0 +1,69 @@
+var common = require('../common');
+var assert = common.assert;
+var retry = require(common.dir.lib + '/retry');
+
+(function testDefaultValues() {
+ var timeouts = retry.timeouts();
+
+ assert.equal(timeouts.length, 10);
+ assert.equal(timeouts[0], 1000);
+ assert.equal(timeouts[1], 2000);
+ assert.equal(timeouts[2], 4000);
+})();
+
+(function testDefaultValuesWithRandomize() {
+ var minTimeout = 5000;
+ var timeouts = retry.timeouts({
+ minTimeout: minTimeout,
+ randomize: true
+ });
+
+ assert.equal(timeouts.length, 10);
+ assert.ok(timeouts[0] > minTimeout);
+ assert.ok(timeouts[1] > timeouts[0]);
+ assert.ok(timeouts[2] > timeouts[1]);
+})();
+
+(function testPassedTimeoutsAreUsed() {
+ var timeoutsArray = [1000, 2000, 3000];
+ var timeouts = retry.timeouts(timeoutsArray);
+ assert.deepEqual(timeouts, timeoutsArray);
+ assert.notStrictEqual(timeouts, timeoutsArray);
+})();
+
+(function testTimeoutsAreWithinBoundaries() {
+ var minTimeout = 1000;
+ var maxTimeout = 10000;
+ var timeouts = retry.timeouts({
+ minTimeout: minTimeout,
+ maxTimeout: maxTimeout
+ });
+ for (var i = 0; i < timeouts; i++) {
+ assert.ok(timeouts[i] >= minTimeout);
+ assert.ok(timeouts[i] <= maxTimeout);
+ }
+})();
+
+(function testTimeoutsAreIncremental() {
+ var timeouts = retry.timeouts();
+ var lastTimeout = timeouts[0];
+ for (var i = 0; i < timeouts; i++) {
+ assert.ok(timeouts[i] > lastTimeout);
+ lastTimeout = timeouts[i];
+ }
+})();
+
+(function testTimeoutsAreIncrementalForFactorsLessThanOne() {
+ var timeouts = retry.timeouts({
+ retries: 3,
+ factor: 0.5
+ });
+
+ var expected = [250, 500, 1000];
+ assert.deepEqual(expected, timeouts);
+})();
+
+(function testRetries() {
+ var timeouts = retry.timeouts({retries: 2});
+ assert.strictEqual(timeouts.length, 2);
+})();
diff --git a/deps/npm/node_modules/promise-retry/node_modules/retry/test/runner.js b/deps/npm/node_modules/promise-retry/node_modules/retry/test/runner.js
new file mode 100644
index 0000000000..e0ee2f570f
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/node_modules/retry/test/runner.js
@@ -0,0 +1,5 @@
+var far = require('far').create();
+
+far.add(__dirname);
+far.include(/\/test-.*\.js$/);
+far.execute();
diff --git a/deps/npm/node_modules/promise-retry/package.json b/deps/npm/node_modules/promise-retry/package.json
new file mode 100644
index 0000000000..1e2f40d71a
--- /dev/null
+++ b/deps/npm/node_modules/promise-retry/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "promise-retry@^1.1.1",
+ "_id": "promise-retry@1.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=",
+ "_location": "/promise-retry",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "promise-retry@^1.1.1",
+ "name": "promise-retry",
+ "escapedName": "promise-retry",
+ "rawSpec": "^1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.1"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen",
+ "/npm-profile/make-fetch-happen",
+ "/npm-registry-fetch/make-fetch-happen",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
+ "_shasum": "6739e968e3051da20ce6497fb2b50f6911df3d6d",
+ "_spec": "promise-retry@^1.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/pacote",
+ "author": {
+ "name": "IndigoUnited",
+ "email": "hello@indigounited.com",
+ "url": "http://indigounited.com"
+ },
+ "bugs": {
+ "url": "https://github.com/IndigoUnited/node-promise-retry/issues/"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "err-code": "^1.0.0",
+ "retry": "^0.10.0"
+ },
+ "deprecated": false,
+ "description": "Retries a function that returns a promise, leveraging the power of the retry module.",
+ "devDependencies": {
+ "expect.js": "^0.3.1",
+ "mocha": "^3.0.0",
+ "sleep-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.12"
+ },
+ "homepage": "https://github.com/IndigoUnited/node-promise-retry#readme",
+ "keywords": [
+ "retry",
+ "promise",
+ "backoff",
+ "repeat",
+ "replay"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "promise-retry",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/IndigoUnited/node-promise-retry.git"
+ },
+ "scripts": {
+ "test": "mocha --bail -t 10000"
+ },
+ "version": "1.1.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/test/test.js b/deps/npm/node_modules/promise-retry/test/test.js
index 466b0991e0..466b0991e0 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/promise-retry/test/test.js
+++ b/deps/npm/node_modules/promise-retry/test/test.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore b/deps/npm/node_modules/promzard/.npmignore
index 15a1789a69..15a1789a69 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/.npmignore
+++ b/deps/npm/node_modules/promzard/.npmignore
diff --git a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE b/deps/npm/node_modules/promzard/LICENSE
index 05eeeb88c2..05eeeb88c2 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/npm-package-arg/LICENSE
+++ b/deps/npm/node_modules/promzard/LICENSE
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/README.md b/deps/npm/node_modules/promzard/README.md
index 93c0418a6c..93c0418a6c 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/README.md
+++ b/deps/npm/node_modules/promzard/README.md
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js b/deps/npm/node_modules/promzard/example/buffer.js
index 828f9d1df9..828f9d1df9 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/buffer.js
+++ b/deps/npm/node_modules/promzard/example/buffer.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js b/deps/npm/node_modules/promzard/example/index.js
index 435131f3a6..435131f3a6 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/index.js
+++ b/deps/npm/node_modules/promzard/example/index.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md b/deps/npm/node_modules/promzard/example/npm-init/README.md
index 46e5592c30..46e5592c30 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/README.md
+++ b/deps/npm/node_modules/promzard/example/npm-init/README.md
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js b/deps/npm/node_modules/promzard/example/npm-init/init-input.js
index ba7781b353..ba7781b353 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init-input.js
+++ b/deps/npm/node_modules/promzard/example/npm-init/init-input.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js b/deps/npm/node_modules/promzard/example/npm-init/init.js
index 09484cd1c1..09484cd1c1 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/init.js
+++ b/deps/npm/node_modules/promzard/example/npm-init/init.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json b/deps/npm/node_modules/promzard/example/npm-init/package.json
index 89c6d1fb6e..89c6d1fb6e 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/npm-init/package.json
+++ b/deps/npm/node_modules/promzard/example/npm-init/package.json
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js b/deps/npm/node_modules/promzard/example/substack-input.js
index bf7aedb82d..c049c20f9a 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/example/substack-input.js
+++ b/deps/npm/node_modules/promzard/example/substack-input.js
@@ -17,7 +17,7 @@ module.exports = {
;
}
catch (e) {}
-
+
return prompt('description', value);
})(),
"main" : prompt('entry point', 'index.js'),
diff --git a/deps/npm/node_modules/promzard/package.json b/deps/npm/node_modules/promzard/package.json
new file mode 100644
index 0000000000..dcc05e8dd1
--- /dev/null
+++ b/deps/npm/node_modules/promzard/package.json
@@ -0,0 +1,53 @@
+{
+ "_from": "promzard@^0.3.0",
+ "_id": "promzard@0.3.0",
+ "_inBundle": false,
+ "_integrity": "sha1-JqXW7ox97kyxIggwWs+5O6OCqe4=",
+ "_location": "/promzard",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "promzard@^0.3.0",
+ "name": "promzard",
+ "escapedName": "promzard",
+ "rawSpec": "^0.3.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.3.0"
+ },
+ "_requiredBy": [
+ "/init-package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz",
+ "_shasum": "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee",
+ "_spec": "promzard@^0.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/init-package-json",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/promzard/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "read": "1"
+ },
+ "deprecated": false,
+ "description": "prompting wizardly",
+ "devDependencies": {
+ "tap": "~0.2.5"
+ },
+ "homepage": "https://github.com/isaacs/promzard#readme",
+ "license": "ISC",
+ "main": "promzard.js",
+ "name": "promzard",
+ "repository": {
+ "url": "git://github.com/isaacs/promzard.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "0.3.0"
+}
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js b/deps/npm/node_modules/promzard/promzard.js
index da1abca953..424152a802 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/promzard.js
+++ b/deps/npm/node_modules/promzard/promzard.js
@@ -235,4 +235,3 @@ PromZard.prototype.prompt = function (pdt, cb) {
read({ prompt: prompt + ':' , default: def }, cb)
}
-
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js b/deps/npm/node_modules/promzard/test/basic.js
index ad1c92df9c..ad1c92df9c 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/basic.js
+++ b/deps/npm/node_modules/promzard/test/basic.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js b/deps/npm/node_modules/promzard/test/buffer.js
index e1d240e2e4..e1d240e2e4 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/buffer.js
+++ b/deps/npm/node_modules/promzard/test/buffer.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input b/deps/npm/node_modules/promzard/test/exports.input
index 061cbfe105..061cbfe105 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.input
+++ b/deps/npm/node_modules/promzard/test/exports.input
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js b/deps/npm/node_modules/promzard/test/exports.js
index c17993a4e9..c17993a4e9 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/exports.js
+++ b/deps/npm/node_modules/promzard/test/exports.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input b/deps/npm/node_modules/promzard/test/fn.input
index ed6c3f1c80..ed6c3f1c80 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.input
+++ b/deps/npm/node_modules/promzard/test/fn.input
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js b/deps/npm/node_modules/promzard/test/fn.js
index 899ebedbdd..899ebedbdd 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/fn.js
+++ b/deps/npm/node_modules/promzard/test/fn.js
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input b/deps/npm/node_modules/promzard/test/simple.input
index e49def6470..e49def6470 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.input
+++ b/deps/npm/node_modules/promzard/test/simple.input
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js b/deps/npm/node_modules/promzard/test/simple.js
index 034a86475a..bcf8791113 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/simple.js
+++ b/deps/npm/node_modules/promzard/test/simple.js
@@ -3,7 +3,7 @@ var promzard = require('../');
test('simple', function (t) {
t.plan(1);
-
+
var ctx = { tmpdir : '/tmp' }
var file = __dirname + '/simple.input';
promzard(file, ctx, function (err, output) {
@@ -19,11 +19,11 @@ test('simple', function (t) {
output
);
});
-
+
setTimeout(function () {
process.stdin.emit('data', '\n');
}, 100);
-
+
setTimeout(function () {
process.stdin.emit('data', '55\n');
}, 200);
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input b/deps/npm/node_modules/promzard/test/validate.input
index 839c065229..839c065229 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.input
+++ b/deps/npm/node_modules/promzard/test/validate.input
diff --git a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js b/deps/npm/node_modules/promzard/test/validate.js
index a120681494..a120681494 100644
--- a/deps/npm/node_modules/init-package-json/node_modules/promzard/test/validate.js
+++ b/deps/npm/node_modules/promzard/test/validate.js
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/LICENSE b/deps/npm/node_modules/proto-list/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/LICENSE
+++ b/deps/npm/node_modules/proto-list/LICENSE
diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md b/deps/npm/node_modules/proto-list/README.md
index 43cfa35893..43cfa35893 100644
--- a/deps/npm/node_modules/config-chain/node_modules/proto-list/README.md
+++ b/deps/npm/node_modules/proto-list/README.md
diff --git a/deps/npm/node_modules/proto-list/package.json b/deps/npm/node_modules/proto-list/package.json
new file mode 100644
index 0000000000..84c735f6b2
--- /dev/null
+++ b/deps/npm/node_modules/proto-list/package.json
@@ -0,0 +1,51 @@
+{
+ "_from": "proto-list@~1.2.1",
+ "_id": "proto-list@1.2.4",
+ "_inBundle": false,
+ "_integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=",
+ "_location": "/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",
+ "_spec": "proto-list@~1.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/config-chain",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/proto-list/issues"
+ },
+ "bundleDependencies": false,
+ "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",
+ "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/proto-list/proto-list.js
index b55c25c052..b55c25c052 100644
--- a/deps/npm/node_modules/config-chain/node_modules/proto-list/proto-list.js
+++ b/deps/npm/node_modules/proto-list/proto-list.js
diff --git a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js b/deps/npm/node_modules/proto-list/test/basic.js
index 5cd66bef15..5cd66bef15 100644
--- a/deps/npm/node_modules/config-chain/node_modules/proto-list/test/basic.js
+++ b/deps/npm/node_modules/proto-list/test/basic.js
diff --git a/deps/npm/node_modules/protoduck/CHANGELOG.md b/deps/npm/node_modules/protoduck/CHANGELOG.md
new file mode 100644
index 0000000000..dd7669aa13
--- /dev/null
+++ b/deps/npm/node_modules/protoduck/CHANGELOG.md
@@ -0,0 +1,55 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/zkat/protoduck/compare/v4.0.0...v5.0.0) (2017-12-12)
+
+
+### Bug Fixes
+
+* **license:** relicense to MIT ([55cdd89](https://github.com/zkat/protoduck/commit/55cdd89))
+* **platforms:** drop support for node 4 and 7 ([07a19b1](https://github.com/zkat/protoduck/commit/07a19b1))
+
+
+### BREAKING CHANGES
+
+* **platforms:** node 4 and node 7 are no longer officially supported
+* **license:** license changed from CC0-1.0 to MIT
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/zkat/protoduck/compare/v3.3.2...v4.0.0) (2017-04-17)
+
+
+### Bug Fixes
+
+* **test:** .name is inconsistently available ([3483f4a](https://github.com/zkat/protoduck/commit/3483f4a))
+
+
+### Features
+
+* **api:** Fresh New APIā„¢ ([#2](https://github.com/zkat/protoduck/issues/2)) ([534e5cf](https://github.com/zkat/protoduck/commit/534e5cf))
+* **constraints:** added optional where-constraints ([16ad124](https://github.com/zkat/protoduck/commit/16ad124))
+* **defaults:** allow default impls without arrays in defs ([6cf7d84](https://github.com/zkat/protoduck/commit/6cf7d84))
+* **deps:** use genfun[@4](https://github.com/4) ([f6810a7](https://github.com/zkat/protoduck/commit/f6810a7))
+* **meta:** bringing project stuff up to date ([61791da](https://github.com/zkat/protoduck/commit/61791da))
+
+
+### BREAKING CHANGES
+
+* **api:** The API was significantly overhauled.
+
+* New protocol creating is now through protoduck.define() instead of protoduck()
+* Implementations are through Duck#impl instead of Duck(...)
+* The `private` option was removed
+* Static protocols were removed -- only method-style protocols are available now.
+* As part of that: the target argument to impl can no longer be omitted
+* The main export object is now the metaobject. protoduck.impl can be used to extend to MOP
+* .isDerivable is now a property on Duck instances, not a static method
+* .hasImpl is now a method on Duck instances, not a static method
+* Protoduck will now genfunnify existing functions as default methods for genfuns declared in a protocol when implementing
+* Error messages have been overhauled to be more helpful
+* **deps:** nextMethod is now an extra argument to methods
+* **meta:** node@<4 is no longer supported
diff --git a/deps/npm/node_modules/protoduck/LICENSE b/deps/npm/node_modules/protoduck/LICENSE
new file mode 100644
index 0000000000..1e0a1d6f8d
--- /dev/null
+++ b/deps/npm/node_modules/protoduck/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+Copyright (c) 2017 Kat MarchƔn
+
+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/pacote/node_modules/protoduck/README.md b/deps/npm/node_modules/protoduck/README.md
index 2dc70a3071..2dc70a3071 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/README.md
+++ b/deps/npm/node_modules/protoduck/README.md
diff --git a/deps/npm/node_modules/pacote/node_modules/protoduck/index.js b/deps/npm/node_modules/protoduck/index.js
index 3596bb3299..3596bb3299 100644
--- a/deps/npm/node_modules/pacote/node_modules/protoduck/index.js
+++ b/deps/npm/node_modules/protoduck/index.js
diff --git a/deps/npm/node_modules/protoduck/package.json b/deps/npm/node_modules/protoduck/package.json
new file mode 100644
index 0000000000..2211df2086
--- /dev/null
+++ b/deps/npm/node_modules/protoduck/package.json
@@ -0,0 +1,89 @@
+{
+ "_from": "protoduck@^5.0.0",
+ "_id": "protoduck@5.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-agsGWD8/RZrS4ga6v82Fxb0RHIS2RZnbsSue6A9/MBRhB/jcqOANAMNrqM9900b8duj+Gx+T/JMy5IowDoO/hQ==",
+ "_location": "/protoduck",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "protoduck@^5.0.0",
+ "name": "protoduck",
+ "escapedName": "protoduck",
+ "rawSpec": "^5.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.0.0"
+ },
+ "_requiredBy": [
+ "/libcipm",
+ "/pacote"
+ ],
+ "_resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.0.tgz",
+ "_shasum": "752145e6be0ad834cb25716f670a713c860dce70",
+ "_spec": "protoduck@^5.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/libcipm",
+ "author": {
+ "name": "Kat MarchƔn",
+ "email": "kzm@sykosomatic.org"
+ },
+ "bugs": {
+ "url": "https://github.com/zkat/protoduck/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "genfun": "^4.0.1"
+ },
+ "deprecated": false,
+ "description": "Fancy duck typing for the most serious of ducks.",
+ "devDependencies": {
+ "mocha": "^3.2.0",
+ "nyc": "^10.2.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0",
+ "tap": "^10.3.2",
+ "weallbehave": "^1.0.3",
+ "weallcontribute": "^1.0.8"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/zkat/protoduck#readme",
+ "keywords": [
+ "oop",
+ "util",
+ "object oriented",
+ "duck type",
+ "ducktype",
+ "ducktyping",
+ "protocols",
+ "multimethod",
+ "clojure",
+ "haskell",
+ "rust",
+ "generic",
+ "functions",
+ "clos",
+ "polymorphism",
+ "impl",
+ "typeclass",
+ "traits"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "protoduck",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zkat/protoduck.git"
+ },
+ "scripts": {
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap -J --coverage test/*.js",
+ "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
+ "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
+ },
+ "version": "5.0.0"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore b/deps/npm/node_modules/prr/.npmignore
index b512c09d47..b512c09d47 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/node-fetch-npm/node_modules/encoding/.npmignore
+++ b/deps/npm/node_modules/prr/.npmignore
diff --git a/deps/npm/node_modules/prr/.travis.yml b/deps/npm/node_modules/prr/.travis.yml
new file mode 100644
index 0000000000..33dcbc3a86
--- /dev/null
+++ b/deps/npm/node_modules/prr/.travis.yml
@@ -0,0 +1,10 @@
+language: node_js
+node_js:
+ - 0.8
+ - "0.10"
+branches:
+ only:
+ - master
+notifications:
+ email:
+ - rod@vagg.org \ No newline at end of file
diff --git a/deps/npm/node_modules/prr/LICENSE.md b/deps/npm/node_modules/prr/LICENSE.md
new file mode 100644
index 0000000000..29b95e39a5
--- /dev/null
+++ b/deps/npm/node_modules/prr/LICENSE.md
@@ -0,0 +1,11 @@
+The MIT License (MIT)
+=====================
+
+Copyright (c) 2014 Rod Vagg
+---------------------------
+
+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/prr/README.md b/deps/npm/node_modules/prr/README.md
new file mode 100644
index 0000000000..b934048235
--- /dev/null
+++ b/deps/npm/node_modules/prr/README.md
@@ -0,0 +1,47 @@
+# prr [![Build Status](https://secure.travis-ci.org/rvagg/prr.png)](http://travis-ci.org/rvagg/prr)
+
+An sensible alternative to `Object.defineProperty()`. Available in npm and Ender as **prr**.
+
+## Usage
+
+Set the property `'foo'` (`obj.foo`) to have the value `'bar'` with default options (`'enumerable'`, `'configurable'` and `'writable'` are all `false`):
+
+```js
+prr(obj, 'foo', 'bar')
+```
+
+Adjust the default options:
+
+```js
+prr(obj, 'foo', 'bar', { enumerable: true, writable: true })
+```
+
+Do the same operation for multiple properties:
+
+```js
+prr(obj, { one: 'one', two: 'two' })
+// or with options:
+prr(obj, { one: 'one', two: 'two' }, { enumerable: true, writable: true })
+```
+
+### Simplify!
+
+But obviously, having to write out the full options object makes it nearly as bad as the original `Object.defineProperty()` so we can simplify.
+
+As an alternative method we can use an options string where each character represents a option: `'e'=='enumerable'`, `'c'=='configurable'` and `'w'=='writable'`:
+
+```js
+prr(obj, 'foo', 'bar', 'ew') // enumerable and writable but not configurable
+// muliple properties:
+prr(obj, { one: 'one', two: 'two' }, 'ewc') // configurable too
+```
+
+## Where can I use it?
+
+Anywhere! For pre-ES5 environments *prr* will simply fall-back to an `object[property] = value` so you can get close to what you want.
+
+*prr* is Ender-compatible so you can include it in your Ender build and `$.prr(...)` or `var prr = require('prr'); prr(...)`.
+
+## Licence
+
+prr is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details.
diff --git a/deps/npm/node_modules/prr/package.json b/deps/npm/node_modules/prr/package.json
new file mode 100644
index 0000000000..e0f4dde38b
--- /dev/null
+++ b/deps/npm/node_modules/prr/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "prr@~1.0.1",
+ "_id": "prr@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=",
+ "_location": "/prr",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "prr@~1.0.1",
+ "name": "prr",
+ "escapedName": "prr",
+ "rawSpec": "~1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~1.0.1"
+ },
+ "_requiredBy": [
+ "/errno"
+ ],
+ "_resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
+ "_shasum": "d3fc114ba06995a45ec6893f484ceb1d78f5f476",
+ "_spec": "prr@~1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/errno",
+ "author": {
+ "name": "Rod Vagg",
+ "email": "rod@vagg.org",
+ "url": "https://github.com/rvagg"
+ },
+ "bugs": {
+ "url": "https://github.com/rvagg/prr/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "A better Object.defineProperty()",
+ "devDependencies": {
+ "tap": "*"
+ },
+ "homepage": "https://github.com/rvagg/prr",
+ "keywords": [
+ "property",
+ "properties",
+ "defineProperty",
+ "ender"
+ ],
+ "license": "MIT",
+ "main": "./prr.js",
+ "name": "prr",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rvagg/prr.git"
+ },
+ "scripts": {
+ "test": "node ./test.js"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/prr.js b/deps/npm/node_modules/prr/prr.js
index 94f58628be..94f58628be 100644
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/prr.js
+++ b/deps/npm/node_modules/prr/prr.js
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/test.js b/deps/npm/node_modules/prr/test.js
index 5222e3073c..5222e3073c 100644
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/test.js
+++ b/deps/npm/node_modules/prr/test.js
diff --git a/deps/npm/node_modules/pacote/node_modules/minimatch/LICENSE b/deps/npm/node_modules/pseudomap/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/pacote/node_modules/minimatch/LICENSE
+++ b/deps/npm/node_modules/pseudomap/LICENSE
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/README.md b/deps/npm/node_modules/pseudomap/README.md
index 778bf01dfa..778bf01dfa 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/README.md
+++ b/deps/npm/node_modules/pseudomap/README.md
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/map.js b/deps/npm/node_modules/pseudomap/map.js
index 7db1599461..7db1599461 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/map.js
+++ b/deps/npm/node_modules/pseudomap/map.js
diff --git a/deps/npm/node_modules/pseudomap/package.json b/deps/npm/node_modules/pseudomap/package.json
new file mode 100644
index 0000000000..af3e4a1794
--- /dev/null
+++ b/deps/npm/node_modules/pseudomap/package.json
@@ -0,0 +1,54 @@
+{
+ "_from": "pseudomap@^1.0.2",
+ "_id": "pseudomap@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
+ "_location": "/pseudomap",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pseudomap@^1.0.2",
+ "name": "pseudomap",
+ "escapedName": "pseudomap",
+ "rawSpec": "^1.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.2"
+ },
+ "_requiredBy": [
+ "/lru-cache"
+ ],
+ "_resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
+ "_shasum": "f052a28da70e618917ef0a8ac34c1ae5a68286b3",
+ "_spec": "pseudomap@^1.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/lru-cache",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/pseudomap/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A thing that is a lot like ES6 `Map`, but without iterators, for use in environments where `for..of` syntax and `Map` are not available.",
+ "devDependencies": {
+ "tap": "^2.3.1"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "homepage": "https://github.com/isaacs/pseudomap#readme",
+ "license": "ISC",
+ "main": "map.js",
+ "name": "pseudomap",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/pseudomap.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js b/deps/npm/node_modules/pseudomap/pseudomap.js
index 25a21d829e..25a21d829e 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/pseudomap.js
+++ b/deps/npm/node_modules/pseudomap/pseudomap.js
diff --git a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/test/basic.js b/deps/npm/node_modules/pseudomap/test/basic.js
index 4378e4541e..4378e4541e 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/pseudomap/test/basic.js
+++ b/deps/npm/node_modules/pseudomap/test/basic.js
diff --git a/deps/npm/node_modules/pump/.travis.yml b/deps/npm/node_modules/pump/.travis.yml
new file mode 100644
index 0000000000..17f94330e7
--- /dev/null
+++ b/deps/npm/node_modules/pump/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.10"
+
+script: "npm test"
diff --git a/deps/npm/node_modules/pump/LICENSE b/deps/npm/node_modules/pump/LICENSE
new file mode 100644
index 0000000000..757562ec59
--- /dev/null
+++ b/deps/npm/node_modules/pump/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Mathias Buus
+
+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/pump/README.md b/deps/npm/node_modules/pump/README.md
new file mode 100644
index 0000000000..4c81471a0e
--- /dev/null
+++ b/deps/npm/node_modules/pump/README.md
@@ -0,0 +1,65 @@
+# pump
+
+pump is a small node module that pipes streams together and destroys all of them if one of them closes.
+
+```
+npm install pump
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump)
+
+## What problem does it solve?
+
+When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error.
+You are also not able to provide a callback to tell when then pipe has finished.
+
+pump does these two things for you
+
+## Usage
+
+Simply pass the streams you want to pipe together to pump and add an optional callback
+
+``` js
+var pump = require('pump')
+var fs = require('fs')
+
+var source = fs.createReadStream('/dev/random')
+var dest = fs.createWriteStream('/dev/null')
+
+pump(source, dest, function(err) {
+ console.log('pipe finished', err)
+})
+
+setTimeout(function() {
+ dest.destroy() // when dest is closed pump will destroy source
+}, 1000)
+```
+
+You can use pump to pipe more than two streams together as well
+
+``` js
+var transform = someTransformStream()
+
+pump(source, transform, anotherTransform, dest, function(err) {
+ console.log('pipe finished', err)
+})
+```
+
+If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed.
+
+Similarly to `stream.pipe()`, `pump()` returns the last stream passed in, so you can do:
+
+```
+return pump(s1, s2) // returns s2
+```
+
+If you want to return a stream that combines *both* s1 and s2 to a single stream use
+[pumpify](https://github.com/mafintosh/pumpify) instead.
+
+## License
+
+MIT
+
+## Related
+
+`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/pump/index.js b/deps/npm/node_modules/pump/index.js
new file mode 100644
index 0000000000..c15059f176
--- /dev/null
+++ b/deps/npm/node_modules/pump/index.js
@@ -0,0 +1,82 @@
+var once = require('once')
+var eos = require('end-of-stream')
+var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
+
+var noop = function () {}
+var ancient = /^v?\.0/.test(process.version)
+
+var isFn = function (fn) {
+ return typeof fn === 'function'
+}
+
+var isFS = function (stream) {
+ if (!ancient) return false // newer node version do not need to care about fs is a special way
+ if (!fs) return false // browser
+ return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
+}
+
+var isRequest = function (stream) {
+ return stream.setHeader && isFn(stream.abort)
+}
+
+var destroyer = function (stream, reading, writing, callback) {
+ callback = once(callback)
+
+ var closed = false
+ stream.on('close', function () {
+ closed = true
+ })
+
+ eos(stream, {readable: reading, writable: writing}, function (err) {
+ if (err) return callback(err)
+ closed = true
+ callback()
+ })
+
+ var destroyed = false
+ return function (err) {
+ if (closed) return
+ if (destroyed) return
+ destroyed = true
+
+ if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
+ if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
+
+ if (isFn(stream.destroy)) return stream.destroy()
+
+ callback(err || new Error('stream was destroyed'))
+ }
+}
+
+var call = function (fn) {
+ fn()
+}
+
+var pipe = function (from, to) {
+ return from.pipe(to)
+}
+
+var pump = function () {
+ var streams = Array.prototype.slice.call(arguments)
+ var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
+
+ if (Array.isArray(streams[0])) streams = streams[0]
+ if (streams.length < 2) throw new Error('pump requires two streams per minimum')
+
+ var error
+ var destroys = streams.map(function (stream, i) {
+ var reading = i < streams.length - 1
+ var writing = i > 0
+ return destroyer(stream, reading, writing, function (err) {
+ if (!error) error = err
+ if (err) destroys.forEach(call)
+ if (reading) return
+ destroys.forEach(call)
+ callback(error)
+ })
+ })
+
+ return streams.reduce(pipe)
+}
+
+module.exports = pump
diff --git a/deps/npm/node_modules/pump/package.json b/deps/npm/node_modules/pump/package.json
new file mode 100644
index 0000000000..b797bee123
--- /dev/null
+++ b/deps/npm/node_modules/pump/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "pump@^3.0.0",
+ "_id": "pump@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
+ "_location": "/pump",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pump@^3.0.0",
+ "name": "pump",
+ "escapedName": "pump",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "_shasum": "b4a2116815bde2f4e1ea602354e8c75565107a64",
+ "_spec": "pump@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "browser": {
+ "fs": false
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pump/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "deprecated": false,
+ "description": "pipe streams together and close all of them if one of them closes",
+ "homepage": "https://github.com/mafintosh/pump#readme",
+ "keywords": [
+ "streams",
+ "pipe",
+ "destroy",
+ "callback"
+ ],
+ "license": "MIT",
+ "name": "pump",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pump.git"
+ },
+ "scripts": {
+ "test": "node test-browser.js && node test-node.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/pump/test-browser.js b/deps/npm/node_modules/pump/test-browser.js
new file mode 100644
index 0000000000..9a06c8a4cc
--- /dev/null
+++ b/deps/npm/node_modules/pump/test-browser.js
@@ -0,0 +1,66 @@
+var stream = require('stream')
+var pump = require('./index')
+
+var rs = new stream.Readable()
+var ws = new stream.Writable()
+
+rs._read = function (size) {
+ this.push(Buffer(size).fill('abc'))
+}
+
+ws._write = function (chunk, encoding, cb) {
+ setTimeout(function () {
+ cb()
+ }, 100)
+}
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-browser.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('finish', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('end', function () {
+ rsClosed = true
+ check()
+})
+
+var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+if (res !== ws) {
+ throw new Error('should return last stream')
+}
+
+setTimeout(function () {
+ rs.push(null)
+ rs.emit('close')
+}, 1000)
+
+var timeout = setTimeout(function () {
+ check()
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/pump/test-node.js b/deps/npm/node_modules/pump/test-node.js
new file mode 100644
index 0000000000..561251a082
--- /dev/null
+++ b/deps/npm/node_modules/pump/test-node.js
@@ -0,0 +1,53 @@
+var pump = require('./index')
+
+var rs = require('fs').createReadStream('/dev/random')
+var ws = require('fs').createWriteStream('/dev/null')
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-node.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('close', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('close', function () {
+ rsClosed = true
+ check()
+})
+
+var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+if (res !== ws) {
+ throw new Error('should return last stream')
+}
+
+setTimeout(function () {
+ rs.destroy()
+}, 1000)
+
+var timeout = setTimeout(function () {
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/.travis.yml b/deps/npm/node_modules/pumpify/.travis.yml
index 32e71a6b55..32e71a6b55 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/.travis.yml
+++ b/deps/npm/node_modules/pumpify/.travis.yml
diff --git a/deps/npm/node_modules/pumpify/LICENSE b/deps/npm/node_modules/pumpify/LICENSE
new file mode 100644
index 0000000000..757562ec59
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Mathias Buus
+
+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/mississippi/node_modules/pumpify/README.md b/deps/npm/node_modules/pumpify/README.md
index 4988f7b126..4988f7b126 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/README.md
+++ b/deps/npm/node_modules/pumpify/README.md
diff --git a/deps/npm/node_modules/pumpify/index.js b/deps/npm/node_modules/pumpify/index.js
new file mode 100644
index 0000000000..473e25663b
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/index.js
@@ -0,0 +1,60 @@
+var pump = require('pump')
+var inherits = require('inherits')
+var Duplexify = require('duplexify')
+
+var toArray = function(args) {
+ if (!args.length) return []
+ return Array.isArray(args[0]) ? args[0] : Array.prototype.slice.call(args)
+}
+
+var define = function(opts) {
+ var Pumpify = function() {
+ var streams = toArray(arguments)
+ if (!(this instanceof Pumpify)) return new Pumpify(streams)
+ Duplexify.call(this, null, null, opts)
+ if (streams.length) this.setPipeline(streams)
+ }
+
+ inherits(Pumpify, Duplexify)
+
+ Pumpify.prototype.setPipeline = function() {
+ var streams = toArray(arguments)
+ var self = this
+ var ended = false
+ var w = streams[0]
+ var r = streams[streams.length-1]
+
+ r = r.readable ? r : null
+ w = w.writable ? w : null
+
+ var onclose = function() {
+ streams[0].emit('error', new Error('stream was destroyed'))
+ }
+
+ this.on('close', onclose)
+ this.on('prefinish', function() {
+ if (!ended) self.cork()
+ })
+
+ pump(streams, function(err) {
+ self.removeListener('close', onclose)
+ if (err) return self.destroy(err.message === 'premature close' ? null : err)
+ ended = true
+ // pump ends after the last stream is not writable *but*
+ // pumpify still forwards the readable part so we need to catch errors
+ // still, so reenable autoDestroy in this case
+ if (self._autoDestroy === false) self._autoDestroy = true
+ self.uncork()
+ })
+
+ if (this.destroyed) return onclose()
+ this.setWritable(w)
+ this.setReadable(r)
+ }
+
+ return Pumpify
+}
+
+module.exports = define({autoDestroy:false, destroy:false})
+module.exports.obj = define({autoDestroy: false, destroy:false, objectMode:true, highWaterMark:16})
+module.exports.ctor = define
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/.travis.yml b/deps/npm/node_modules/pumpify/node_modules/pump/.travis.yml
new file mode 100644
index 0000000000..17f94330e7
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/.travis.yml
@@ -0,0 +1,5 @@
+language: node_js
+node_js:
+ - "0.10"
+
+script: "npm test"
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/LICENSE b/deps/npm/node_modules/pumpify/node_modules/pump/LICENSE
new file mode 100644
index 0000000000..757562ec59
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/LICENSE
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2014 Mathias Buus
+
+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/pumpify/node_modules/pump/README.md b/deps/npm/node_modules/pumpify/node_modules/pump/README.md
new file mode 100644
index 0000000000..5029b27d68
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/README.md
@@ -0,0 +1,56 @@
+# pump
+
+pump is a small node module that pipes streams together and destroys all of them if one of them closes.
+
+```
+npm install pump
+```
+
+[![build status](http://img.shields.io/travis/mafintosh/pump.svg?style=flat)](http://travis-ci.org/mafintosh/pump)
+
+## What problem does it solve?
+
+When using standard `source.pipe(dest)` source will _not_ be destroyed if dest emits close or an error.
+You are also not able to provide a callback to tell when then pipe has finished.
+
+pump does these two things for you
+
+## Usage
+
+Simply pass the streams you want to pipe together to pump and add an optional callback
+
+``` js
+var pump = require('pump')
+var fs = require('fs')
+
+var source = fs.createReadStream('/dev/random')
+var dest = fs.createWriteStream('/dev/null')
+
+pump(source, dest, function(err) {
+ console.log('pipe finished', err)
+})
+
+setTimeout(function() {
+ dest.destroy() // when dest is closed pump will destroy source
+}, 1000)
+```
+
+You can use pump to pipe more than two streams together as well
+
+``` js
+var transform = someTransformStream()
+
+pump(source, transform, anotherTransform, dest, function(err) {
+ console.log('pipe finished', err)
+})
+```
+
+If `source`, `transform`, `anotherTransform` or `dest` closes all of them will be destroyed.
+
+## License
+
+MIT
+
+## Related
+
+`pump` is part of the [mississippi stream utility collection](https://github.com/maxogden/mississippi) which includes more useful stream modules similar to this one.
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/index.js b/deps/npm/node_modules/pumpify/node_modules/pump/index.js
new file mode 100644
index 0000000000..d9ca0335cb
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/index.js
@@ -0,0 +1,82 @@
+var once = require('once')
+var eos = require('end-of-stream')
+var fs = require('fs') // we only need fs to get the ReadStream and WriteStream prototypes
+
+var noop = function () {}
+var ancient = /^v?\.0/.test(process.version)
+
+var isFn = function (fn) {
+ return typeof fn === 'function'
+}
+
+var isFS = function (stream) {
+ if (!ancient) return false // newer node version do not need to care about fs is a special way
+ if (!fs) return false // browser
+ return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close)
+}
+
+var isRequest = function (stream) {
+ return stream.setHeader && isFn(stream.abort)
+}
+
+var destroyer = function (stream, reading, writing, callback) {
+ callback = once(callback)
+
+ var closed = false
+ stream.on('close', function () {
+ closed = true
+ })
+
+ eos(stream, {readable: reading, writable: writing}, function (err) {
+ if (err) return callback(err)
+ closed = true
+ callback()
+ })
+
+ var destroyed = false
+ return function (err) {
+ if (closed) return
+ if (destroyed) return
+ destroyed = true
+
+ if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks
+ if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want
+
+ if (isFn(stream.destroy)) return stream.destroy()
+
+ callback(err || new Error('stream was destroyed'))
+ }
+}
+
+var call = function (fn) {
+ fn()
+}
+
+var pipe = function (from, to) {
+ return from.pipe(to)
+}
+
+var pump = function () {
+ var streams = Array.prototype.slice.call(arguments)
+ var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop
+
+ if (Array.isArray(streams[0])) streams = streams[0]
+ if (streams.length < 2) throw new Error('pump requires two streams per minimum')
+
+ var error
+ var destroys = streams.map(function (stream, i) {
+ var reading = i < streams.length - 1
+ var writing = i > 0
+ return destroyer(stream, reading, writing, function (err) {
+ if (!error) error = err
+ if (err) destroys.forEach(call)
+ if (reading) return
+ destroys.forEach(call)
+ callback(error)
+ })
+ })
+
+ streams.reduce(pipe)
+}
+
+module.exports = pump
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/package.json b/deps/npm/node_modules/pumpify/node_modules/pump/package.json
new file mode 100644
index 0000000000..4557d16534
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "pump@^2.0.0",
+ "_id": "pump@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==",
+ "_location": "/pumpify/pump",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pump@^2.0.0",
+ "name": "pump",
+ "escapedName": "pump",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/pumpify"
+ ],
+ "_resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz",
+ "_shasum": "12399add6e4cf7526d973cbc8b5ce2e2908b3909",
+ "_spec": "pump@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/pumpify",
+ "author": {
+ "name": "Mathias Buus Madsen",
+ "email": "mathiasbuus@gmail.com"
+ },
+ "browser": {
+ "fs": false
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pump/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "once": "^1.3.1"
+ },
+ "deprecated": false,
+ "description": "pipe streams together and close all of them if one of them closes",
+ "homepage": "https://github.com/mafintosh/pump#readme",
+ "keywords": [
+ "streams",
+ "pipe",
+ "destroy",
+ "callback"
+ ],
+ "license": "MIT",
+ "name": "pump",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pump.git"
+ },
+ "scripts": {
+ "test": "node test-browser.js && node test-node.js"
+ },
+ "version": "2.0.1"
+}
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/test-browser.js b/deps/npm/node_modules/pumpify/node_modules/pump/test-browser.js
new file mode 100644
index 0000000000..75ea4a292e
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/test-browser.js
@@ -0,0 +1,62 @@
+var stream = require('stream')
+var pump = require('./index')
+
+var rs = new stream.Readable()
+var ws = new stream.Writable()
+
+rs._read = function (size) {
+ this.push(Buffer(size).fill('abc'))
+}
+
+ws._write = function (chunk, encoding, cb) {
+ setTimeout(function () {
+ cb()
+ }, 100)
+}
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-browser.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('finish', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('end', function () {
+ rsClosed = true
+ check()
+})
+
+pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+setTimeout(function () {
+ rs.push(null)
+ rs.emit('close')
+}, 1000)
+
+var timeout = setTimeout(function () {
+ check()
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/pumpify/node_modules/pump/test-node.js b/deps/npm/node_modules/pumpify/node_modules/pump/test-node.js
new file mode 100644
index 0000000000..034a65414d
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/node_modules/pump/test-node.js
@@ -0,0 +1,53 @@
+var pump = require('./index')
+
+var rs = require('fs').createReadStream('/dev/random')
+var ws = require('fs').createWriteStream('/dev/null')
+
+var toHex = function () {
+ var reverse = new (require('stream').Transform)()
+
+ reverse._transform = function (chunk, enc, callback) {
+ reverse.push(chunk.toString('hex'))
+ callback()
+ }
+
+ return reverse
+}
+
+var wsClosed = false
+var rsClosed = false
+var callbackCalled = false
+
+var check = function () {
+ if (wsClosed && rsClosed && callbackCalled) {
+ console.log('test-node.js passes')
+ clearTimeout(timeout)
+ }
+}
+
+ws.on('close', function () {
+ wsClosed = true
+ check()
+})
+
+rs.on('close', function () {
+ rsClosed = true
+ check()
+})
+
+var res = pump(rs, toHex(), toHex(), toHex(), ws, function () {
+ callbackCalled = true
+ check()
+})
+
+if (res) {
+ process.exit(1)
+}
+
+setTimeout(function () {
+ rs.destroy()
+}, 1000)
+
+var timeout = setTimeout(function () {
+ throw new Error('timeout')
+}, 5000)
diff --git a/deps/npm/node_modules/pumpify/package.json b/deps/npm/node_modules/pumpify/package.json
new file mode 100644
index 0000000000..91b291b35e
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "pumpify@^1.3.3",
+ "_id": "pumpify@1.5.1",
+ "_inBundle": false,
+ "_integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==",
+ "_location": "/pumpify",
+ "_phantomChildren": {
+ "end-of-stream": "1.4.1",
+ "once": "1.4.0"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "pumpify@^1.3.3",
+ "name": "pumpify",
+ "escapedName": "pumpify",
+ "rawSpec": "^1.3.3",
+ "saveSpec": null,
+ "fetchSpec": "^1.3.3"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz",
+ "_shasum": "36513be246ab27570b1a374a5ce278bfd74370ce",
+ "_spec": "pumpify@^1.3.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/pumpify/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "duplexify": "^3.6.0",
+ "inherits": "^2.0.3",
+ "pump": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Combine an array of streams into a single duplex stream using pump and duplexify",
+ "devDependencies": {
+ "tape": "^4.8.0",
+ "through2": "^2.0.3"
+ },
+ "homepage": "https://github.com/mafintosh/pumpify",
+ "keywords": [
+ "pump",
+ "duplexify",
+ "duplex",
+ "streams",
+ "stream",
+ "pipeline",
+ "combine"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "pumpify",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/mafintosh/pumpify.git"
+ },
+ "scripts": {
+ "test": "tape test.js"
+ },
+ "version": "1.5.1"
+}
diff --git a/deps/npm/node_modules/pumpify/test.js b/deps/npm/node_modules/pumpify/test.js
new file mode 100644
index 0000000000..b603c4d80a
--- /dev/null
+++ b/deps/npm/node_modules/pumpify/test.js
@@ -0,0 +1,235 @@
+var tape = require('tape')
+var through = require('through2')
+var pumpify = require('./')
+var stream = require('stream')
+var duplexify = require('duplexify')
+
+tape('basic', function(t) {
+ t.plan(3)
+
+ var pipeline = pumpify(
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'hello')
+ cb(null, data.toString().toUpperCase())
+ }),
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'HELLO')
+ cb(null, data.toString().toLowerCase())
+ })
+ )
+
+ pipeline.write('hello')
+ pipeline.on('data', function(data) {
+ t.same(data.toString(), 'hello')
+ t.end()
+ })
+})
+
+tape('3 times', function(t) {
+ t.plan(4)
+
+ var pipeline = pumpify(
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'hello')
+ cb(null, data.toString().toUpperCase())
+ }),
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'HELLO')
+ cb(null, data.toString().toLowerCase())
+ }),
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'hello')
+ cb(null, data.toString().toUpperCase())
+ })
+ )
+
+ pipeline.write('hello')
+ pipeline.on('data', function(data) {
+ t.same(data.toString(), 'HELLO')
+ t.end()
+ })
+})
+
+tape('destroy', function(t) {
+ var test = through()
+ test.destroy = function() {
+ t.ok(true)
+ t.end()
+ }
+
+ var pipeline = pumpify(through(), test)
+
+ pipeline.destroy()
+})
+
+tape('close', function(t) {
+ var test = through()
+ var pipeline = pumpify(through(), test)
+
+ pipeline.on('error', function(err) {
+ t.same(err.message, 'lol')
+ t.end()
+ })
+
+ test.emit('error', new Error('lol'))
+})
+
+tape('end waits for last one', function(t) {
+ var ran = false
+
+ var a = through()
+ var b = through()
+ var c = through(function(data, enc, cb) {
+ setTimeout(function() {
+ ran = true
+ cb()
+ }, 100)
+ })
+
+ var pipeline = pumpify(a, b, c)
+
+ pipeline.write('foo')
+ pipeline.end(function() {
+ t.ok(ran)
+ t.end()
+ })
+
+ t.ok(!ran)
+})
+
+tape('always wait for finish', function(t) {
+ var a = new stream.Readable()
+ a._read = function() {}
+ a.push('hello')
+
+ var pipeline = pumpify(a, through(), through())
+ var ran = false
+
+ pipeline.on('finish', function() {
+ t.ok(ran)
+ t.end()
+ })
+
+ setTimeout(function() {
+ ran = true
+ a.push(null)
+ }, 100)
+})
+
+tape('async', function(t) {
+ var pipeline = pumpify()
+
+ t.plan(4)
+
+ pipeline.write('hello')
+ pipeline.on('data', function(data) {
+ t.same(data.toString(), 'HELLO')
+ t.end()
+ })
+
+ setTimeout(function() {
+ pipeline.setPipeline(
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'hello')
+ cb(null, data.toString().toUpperCase())
+ }),
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'HELLO')
+ cb(null, data.toString().toLowerCase())
+ }),
+ through(function(data, enc, cb) {
+ t.same(data.toString(), 'hello')
+ cb(null, data.toString().toUpperCase())
+ })
+ )
+ }, 100)
+})
+
+tape('early destroy', function(t) {
+ var a = through()
+ var b = through()
+ var c = through()
+
+ b.destroy = function() {
+ t.ok(true)
+ t.end()
+ }
+
+ var pipeline = pumpify()
+
+ pipeline.destroy()
+ setTimeout(function() {
+ pipeline.setPipeline(a, b, c)
+ }, 100)
+})
+
+tape('preserves error', function (t) {
+ var a = through()
+ var b = through(function (data, enc, cb) {
+ cb(new Error('stop'))
+ })
+ var c = through()
+ var s = pumpify()
+
+ s.on('error', function (err) {
+ t.same(err.message, 'stop')
+ t.end()
+ })
+
+ s.setPipeline(a, b, c)
+ s.resume()
+ s.write('hi')
+})
+
+tape('preserves error again', function (t) {
+ var ws = new stream.Writable()
+ var rs = new stream.Readable({highWaterMark: 16})
+
+ ws._write = function (data, enc, cb) {
+ cb(null)
+ }
+
+ rs._read = function () {
+ process.nextTick(function () {
+ rs.push('hello world')
+ })
+ }
+
+ var pumpifyErr = pumpify(
+ through(),
+ through(function(chunk, _, cb) {
+ cb(new Error('test'))
+ }),
+ ws
+ )
+
+ rs.pipe(pumpifyErr)
+ .on('error', function (err) {
+ t.ok(err)
+ t.ok(err.message !== 'premature close', 'does not close with premature close')
+ t.end()
+ })
+})
+
+tape('returns error from duplexify', function (t) {
+ var a = through()
+ var b = duplexify()
+ var s = pumpify()
+
+ s.setPipeline(a, b)
+
+ s.on('error', function (err) {
+ t.same(err.message, 'stop')
+ t.end()
+ })
+
+ s.write('data')
+ // Test passes if `.end()` is not called
+ s.end()
+
+ b.setWritable(through())
+
+ setImmediate(function () {
+ b.destroy(new Error('stop'))
+ })
+})
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt b/deps/npm/node_modules/punycode/LICENSE-MIT.txt
index a41e0a7ef9..a41e0a7ef9 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/LICENSE-MIT.txt
+++ b/deps/npm/node_modules/punycode/LICENSE-MIT.txt
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md b/deps/npm/node_modules/punycode/README.md
index 7ad7d1faaa..7ad7d1faaa 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/README.md
+++ b/deps/npm/node_modules/punycode/README.md
diff --git a/deps/npm/node_modules/punycode/package.json b/deps/npm/node_modules/punycode/package.json
new file mode 100644
index 0000000000..1bc2edc043
--- /dev/null
+++ b/deps/npm/node_modules/punycode/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "punycode@^1.4.1",
+ "_id": "punycode@1.4.1",
+ "_inBundle": false,
+ "_integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
+ "_location": "/punycode",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "punycode@^1.4.1",
+ "name": "punycode",
+ "escapedName": "punycode",
+ "rawSpec": "^1.4.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.4.1"
+ },
+ "_requiredBy": [
+ "/tough-cookie",
+ "/unicode-length"
+ ],
+ "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+ "_shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e",
+ "_spec": "punycode@^1.4.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/tough-cookie",
+ "author": {
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ },
+ "bugs": {
+ "url": "https://github.com/bestiejs/punycode.js/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Mathias Bynens",
+ "url": "https://mathiasbynens.be/"
+ },
+ {
+ "name": "John-David Dalton",
+ "url": "http://allyoucanleet.com/"
+ }
+ ],
+ "deprecated": false,
+ "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.",
+ "devDependencies": {
+ "coveralls": "^2.11.4",
+ "grunt": "^0.4.5",
+ "grunt-contrib-uglify": "^0.11.0",
+ "grunt-shell": "^1.1.2",
+ "istanbul": "^0.4.1",
+ "qunit-extras": "^1.4.4",
+ "qunitjs": "~1.11.0",
+ "requirejs": "^2.1.22"
+ },
+ "files": [
+ "LICENSE-MIT.txt",
+ "punycode.js"
+ ],
+ "homepage": "https://mths.be/punycode",
+ "jspm": {
+ "map": {
+ "./punycode.js": {
+ "node": "@node/punycode"
+ }
+ }
+ },
+ "keywords": [
+ "punycode",
+ "unicode",
+ "idn",
+ "idna",
+ "dns",
+ "url",
+ "domain"
+ ],
+ "license": "MIT",
+ "main": "punycode.js",
+ "name": "punycode",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/bestiejs/punycode.js.git"
+ },
+ "scripts": {
+ "test": "node tests/tests.js"
+ },
+ "version": "1.4.1"
+}
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js b/deps/npm/node_modules/punycode/punycode.js
index 2c87f6cc48..2c87f6cc48 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/punycode.js
+++ b/deps/npm/node_modules/punycode/punycode.js
diff --git a/deps/npm/node_modules/qrcode-terminal/.npmignore b/deps/npm/node_modules/qrcode-terminal/.npmignore
deleted file mode 100644
index 1ca957177f..0000000000
--- a/deps/npm/node_modules/qrcode-terminal/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-node_modules/
-npm-debug.log
diff --git a/deps/npm/node_modules/qrcode-terminal/README.md b/deps/npm/node_modules/qrcode-terminal/README.md
index 41d4f19688..8fdcae2637 100644
--- a/deps/npm/node_modules/qrcode-terminal/README.md
+++ b/deps/npm/node_modules/qrcode-terminal/README.md
@@ -51,6 +51,7 @@ If you want to display small output, provide `opts` with `small`:
$ qrcode-terminal --help
$ qrcode-terminal 'http://github.com'
+ $ echo 'http://github.com' | qrcode-terminal
# Support
diff --git a/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js b/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js
index fcc7ee9d9a..64762879ef 100755
--- a/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js
+++ b/deps/npm/node_modules/qrcode-terminal/bin/qrcode-terminal.js
@@ -9,35 +9,68 @@ var qrcode = require('../lib/main'),
fs = require('fs');
/*!
- * Parse the process name and input
+ * Parse the process name
*/
-var name = process.argv[1].replace(/^.*[\\\/]/, '').replace('.js', ''),
- input = process.argv[2];
+var name = process.argv[1].replace(/^.*[\\\/]/, '').replace('.js', '');
/*!
- * Display help
+ * Parse the input
*/
-if (!input || input === '-h' || input === '--help') {
- help();
- process.exit();
-}
+if (process.stdin.isTTY) {
+ // called with input as argument, e.g.:
+ // ./qrcode-terminal.js "INPUT"
-/*!
- * Display version
- */
+ var input = process.argv[2];
+ handleInput(input);
+} else {
+ // called with piped input, e.g.:
+ // echo "INPUT" | ./qrcode-terminal.js
-if (input === '-v' || input === '--version') {
- version();
- process.exit();
+ var readline = require('readline');
+
+ var interface = readline.createInterface({
+ input: process.stdin,
+ output: process.stdout,
+ terminal: false
+ });
+
+ interface.on('line', function(line) {
+ handleInput(line);
+ });
}
/*!
- * Render the QR Code
+ * Process the input
*/
-qrcode.generate(input);
+function handleInput(input) {
+
+ /*!
+ * Display help
+ */
+
+ if (!input || input === '-h' || input === '--help') {
+ help();
+ process.exit();
+ }
+
+ /*!
+ * Display version
+ */
+
+ if (input === '-v' || input === '--version') {
+ version();
+ process.exit();
+ }
+
+ /*!
+ * Render the QR Code
+ */
+
+ qrcode.generate(input);
+}
/*!
* Helper functions
diff --git a/deps/npm/node_modules/qrcode-terminal/package.json b/deps/npm/node_modules/qrcode-terminal/package.json
index fd1e2f2b74..5ce56c352b 100644
--- a/deps/npm/node_modules/qrcode-terminal/package.json
+++ b/deps/npm/node_modules/qrcode-terminal/package.json
@@ -1,27 +1,31 @@
{
- "_from": "qrcode-terminal",
- "_id": "qrcode-terminal@0.11.0",
+ "_args": [
+ [
+ "qrcode-terminal@0.12.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "qrcode-terminal@0.12.0",
+ "_id": "qrcode-terminal@0.12.0",
"_inBundle": false,
- "_integrity": "sha1-/8bCii/Av7RwUrR+I/T0RqX7254=",
+ "_integrity": "sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ==",
"_location": "/qrcode-terminal",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "qrcode-terminal",
+ "raw": "qrcode-terminal@0.12.0",
"name": "qrcode-terminal",
"escapedName": "qrcode-terminal",
- "rawSpec": "",
+ "rawSpec": "0.12.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "0.12.0"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.11.0.tgz",
- "_shasum": "ffc6c28a2fc0bfb47052b47e23f4f446a5fbdb9e",
- "_spec": "qrcode-terminal",
+ "_resolved": "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz",
+ "_spec": "0.12.0",
"_where": "/Users/rebecca/code/npm",
"bin": {
"qrcode-terminal": "./bin/qrcode-terminal.js"
@@ -29,7 +33,6 @@
"bugs": {
"url": "https://github.com/gtanner/qrcode-terminal/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Gord Tanner",
@@ -42,7 +45,6 @@
"url": "http://github.com/mwbrooks"
}
],
- "deprecated": false,
"description": "QRCodes, in the terminal",
"devDependencies": {
"expect.js": "*",
@@ -72,5 +74,5 @@
"scripts": {
"test": "./node_modules/jshint/bin/jshint lib vendor && node example/basic.js && ./node_modules/mocha/bin/mocha -R nyan"
},
- "version": "0.11.0"
+ "version": "0.12.0"
}
diff --git a/deps/npm/node_modules/request/node_modules/qs/.editorconfig b/deps/npm/node_modules/qs/.editorconfig
index b2654e7ac5..b2654e7ac5 100644
--- a/deps/npm/node_modules/request/node_modules/qs/.editorconfig
+++ b/deps/npm/node_modules/qs/.editorconfig
diff --git a/deps/npm/node_modules/request/node_modules/qs/.eslintignore b/deps/npm/node_modules/qs/.eslintignore
index 1521c8b765..1521c8b765 100644
--- a/deps/npm/node_modules/request/node_modules/qs/.eslintignore
+++ b/deps/npm/node_modules/qs/.eslintignore
diff --git a/deps/npm/node_modules/qs/CHANGELOG.md b/deps/npm/node_modules/qs/CHANGELOG.md
new file mode 100644
index 0000000000..fe52320912
--- /dev/null
+++ b/deps/npm/node_modules/qs/CHANGELOG.md
@@ -0,0 +1,226 @@
+## **6.5.2**
+- [Fix] use `safer-buffer` instead of `Buffer` constructor
+- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230)
+- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify`
+
+## **6.5.1**
+- [Fix] Fix parsing & compacting very deep objects (#224)
+- [Refactor] name utils functions
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
+- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesnā€™t break older node
+- [Tests] Use precise dist for Node.js 0.6 runtime (#225)
+- [Tests] make 0.6 required, now that itā€™s passing
+- [Tests] on `node` `v8.2`; fix npm on node 0.6
+
+## **6.5.0**
+- [New] add `utils.assign`
+- [New] pass default encoder/decoder to custom encoder/decoder functions (#206)
+- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213)
+- [Fix] Handle stringifying empty objects with addQueryPrefix (#217)
+- [Fix] do not mutate `options` argument (#207)
+- [Refactor] `parse`: cache index to reuse in else statement (#182)
+- [Docs] add various badges to readme (#208)
+- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape`
+- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4
+- [Tests] add `editorconfig-tools`
+
+## **6.4.0**
+- [New] `qs.stringify`: add `encodeValuesOnly` option
+- [Fix] follow `allowPrototypes` option during merge (#201, #201)
+- [Fix] support keys starting with brackets (#202, #200)
+- [Fix] chmod a-x
+- [Dev Deps] update `eslint`
+- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
+- [eslint] reduce warnings
+
+## **6.3.2**
+- [Fix] follow `allowPrototypes` option during merge (#201, #200)
+- [Dev Deps] update `eslint`
+- [Fix] chmod a-x
+- [Fix] support keys starting with brackets (#202, #200)
+- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
+
+## **6.3.1**
+- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!)
+- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape`
+- [Tests] on all node minors; improve test matrix
+- [Docs] document stringify option `allowDots` (#195)
+- [Docs] add empty object and array values example (#195)
+- [Docs] Fix minor inconsistency/typo (#192)
+- [Docs] document stringify option `sort` (#191)
+- [Refactor] `stringify`: throw faster with an invalid encoder
+- [Refactor] remove unnecessary escapes (#184)
+- Remove contributing.md, since `qs` is no longer part of `hapi` (#183)
+
+## **6.3.0**
+- [New] Add support for RFC 1738 (#174, #173)
+- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159)
+- [Fix] ensure `utils.merge` handles merging two arrays
+- [Refactor] only constructors should be capitalized
+- [Refactor] capitalized var names are for constructors only
+- [Refactor] avoid using a sparse array
+- [Robustness] `formats`: cache `String#replace`
+- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest`
+- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix
+- [Tests] flesh out arrayLimit/arrayFormat tests (#107)
+- [Tests] skip Object.create tests when null objects are not available
+- [Tests] Turn on eslint for test files (#175)
+
+## **6.2.3**
+- [Fix] follow `allowPrototypes` option during merge (#201, #200)
+- [Fix] chmod a-x
+- [Fix] support keys starting with brackets (#202, #200)
+- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
+
+## **6.2.2**
+- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
+
+## **6.2.1**
+- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
+- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call`
+- [Tests] remove `parallelshell` since it does not reliably report failures
+- [Tests] up to `node` `v6.3`, `v5.12`
+- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv`
+
+## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed)
+- [New] pass Buffers to the encoder/decoder directly (#161)
+- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160)
+- [Fix] fix compacting of nested sparse arrays (#150)
+
+## **6.1.2
+- [Fix] follow `allowPrototypes` option during merge (#201, #200)
+- [Fix] chmod a-x
+- [Fix] support keys starting with brackets (#202, #200)
+- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
+
+## **6.1.1**
+- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
+
+## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed)
+- [New] allowDots option for `stringify` (#151)
+- [Fix] "sort" option should work at a depth of 3 or more (#151)
+- [Fix] Restore `dist` directory; will be removed in v7 (#148)
+
+## **6.0.4**
+- [Fix] follow `allowPrototypes` option during merge (#201, #200)
+- [Fix] chmod a-x
+- [Fix] support keys starting with brackets (#202, #200)
+- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
+
+## **6.0.3**
+- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
+- [Fix] Restore `dist` directory; will be removed in v7 (#148)
+
+## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed)
+- Revert ES6 requirement and restore support for node down to v0.8.
+
+## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed)
+- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json
+
+## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed)
+- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4
+
+## **5.2.1**
+- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
+
+## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed)
+- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string
+
+## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed)
+- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional
+- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify
+
+## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed)
+- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false
+- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm
+
+## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed)
+- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional
+
+## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed)
+- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation"
+
+## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed)
+- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties
+- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost
+- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing
+- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object
+- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option
+- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects.
+- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47
+- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986
+- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign
+- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute
+
+## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed)
+- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object #<Object> is not a function
+
+## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed)
+- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option
+
+## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed)
+- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57
+- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader
+
+## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed)
+- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object
+
+## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed)
+- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError".
+
+## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed)
+- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46
+
+## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed)
+- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer?
+- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45
+- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39
+
+## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed)
+- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number
+
+## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed)
+- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array
+- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x
+
+## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed)
+- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value
+- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty
+- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver?
+
+## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed)
+- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31
+- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects
+
+## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed)
+- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present
+- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays
+- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge
+- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters?
+
+## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed)
+- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter
+
+## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed)
+- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit?
+- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit
+- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20
+
+## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed)
+- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values
+
+## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed)
+- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters
+- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block
+
+## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed)
+- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument
+- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed
+
+## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed)
+- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted
+- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null
+- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README
+
+## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed)
+- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index
diff --git a/deps/npm/node_modules/request/node_modules/qs/LICENSE b/deps/npm/node_modules/qs/LICENSE
index d4569487a0..d4569487a0 100644
--- a/deps/npm/node_modules/request/node_modules/qs/LICENSE
+++ b/deps/npm/node_modules/qs/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/qs/README.md b/deps/npm/node_modules/qs/README.md
index d81196662b..d81196662b 100644
--- a/deps/npm/node_modules/request/node_modules/qs/README.md
+++ b/deps/npm/node_modules/qs/README.md
diff --git a/deps/npm/node_modules/request/node_modules/qs/dist/qs.js b/deps/npm/node_modules/qs/dist/qs.js
index 713c6d1e86..ecf7ba44cf 100644
--- a/deps/npm/node_modules/request/node_modules/qs/dist/qs.js
+++ b/deps/npm/node_modules/qs/dist/qs.js
@@ -1,4 +1,4 @@
-(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.Qs = 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<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+(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.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
'use strict';
var replace = String.prototype.replace;
@@ -456,7 +456,7 @@ var compactQueue = function compactQueue(queue) {
return obj;
};
-exports.arrayToObject = function arrayToObject(source, options) {
+var arrayToObject = function arrayToObject(source, options) {
var obj = options && options.plainObjects ? Object.create(null) : {};
for (var i = 0; i < source.length; ++i) {
if (typeof source[i] !== 'undefined') {
@@ -467,7 +467,7 @@ exports.arrayToObject = function arrayToObject(source, options) {
return obj;
};
-exports.merge = function merge(target, source, options) {
+var merge = function merge(target, source, options) {
if (!source) {
return target;
}
@@ -492,14 +492,14 @@ exports.merge = function merge(target, source, options) {
var mergeTarget = target;
if (Array.isArray(target) && !Array.isArray(source)) {
- mergeTarget = exports.arrayToObject(target, options);
+ mergeTarget = arrayToObject(target, options);
}
if (Array.isArray(target) && Array.isArray(source)) {
source.forEach(function (item, i) {
if (has.call(target, i)) {
if (target[i] && typeof target[i] === 'object') {
- target[i] = exports.merge(target[i], item, options);
+ target[i] = merge(target[i], item, options);
} else {
target.push(item);
}
@@ -514,7 +514,7 @@ exports.merge = function merge(target, source, options) {
var value = source[key];
if (has.call(acc, key)) {
- acc[key] = exports.merge(acc[key], value, options);
+ acc[key] = merge(acc[key], value, options);
} else {
acc[key] = value;
}
@@ -522,14 +522,14 @@ exports.merge = function merge(target, source, options) {
}, mergeTarget);
};
-exports.assign = function assignSingleSource(target, source) {
+var assign = function assignSingleSource(target, source) {
return Object.keys(source).reduce(function (acc, key) {
acc[key] = source[key];
return acc;
}, target);
};
-exports.decode = function (str) {
+var decode = function (str) {
try {
return decodeURIComponent(str.replace(/\+/g, ' '));
} catch (e) {
@@ -537,7 +537,7 @@ exports.decode = function (str) {
}
};
-exports.encode = function encode(str) {
+var encode = function encode(str) {
// This code was originally written by Brian White (mscdex) for the io.js core querystring library.
// It has been adapted here for stricter adherence to RFC 3986
if (str.length === 0) {
@@ -589,7 +589,7 @@ exports.encode = function encode(str) {
return out;
};
-exports.compact = function compact(value) {
+var compact = function compact(value) {
var queue = [{ obj: { o: value }, prop: 'o' }];
var refs = [];
@@ -611,11 +611,11 @@ exports.compact = function compact(value) {
return compactQueue(queue);
};
-exports.isRegExp = function isRegExp(obj) {
+var isRegExp = function isRegExp(obj) {
return Object.prototype.toString.call(obj) === '[object RegExp]';
};
-exports.isBuffer = function isBuffer(obj) {
+var isBuffer = function isBuffer(obj) {
if (obj === null || typeof obj === 'undefined') {
return false;
}
@@ -623,5 +623,16 @@ exports.isBuffer = function isBuffer(obj) {
return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
};
+module.exports = {
+ arrayToObject: arrayToObject,
+ assign: assign,
+ compact: compact,
+ decode: decode,
+ encode: encode,
+ isBuffer: isBuffer,
+ isRegExp: isRegExp,
+ merge: merge
+};
+
},{}]},{},[2])(2)
-}); \ No newline at end of file
+});
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/formats.js b/deps/npm/node_modules/qs/lib/formats.js
index df45997529..df45997529 100644
--- a/deps/npm/node_modules/request/node_modules/qs/lib/formats.js
+++ b/deps/npm/node_modules/qs/lib/formats.js
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/index.js b/deps/npm/node_modules/qs/lib/index.js
index 0d6a97dcf0..0d6a97dcf0 100644
--- a/deps/npm/node_modules/request/node_modules/qs/lib/index.js
+++ b/deps/npm/node_modules/qs/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/parse.js b/deps/npm/node_modules/qs/lib/parse.js
index 8c9872ecc6..8c9872ecc6 100644
--- a/deps/npm/node_modules/request/node_modules/qs/lib/parse.js
+++ b/deps/npm/node_modules/qs/lib/parse.js
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js b/deps/npm/node_modules/qs/lib/stringify.js
index ab915ac463..ab915ac463 100644
--- a/deps/npm/node_modules/request/node_modules/qs/lib/stringify.js
+++ b/deps/npm/node_modules/qs/lib/stringify.js
diff --git a/deps/npm/node_modules/qs/lib/utils.js b/deps/npm/node_modules/qs/lib/utils.js
new file mode 100644
index 0000000000..8775a3270c
--- /dev/null
+++ b/deps/npm/node_modules/qs/lib/utils.js
@@ -0,0 +1,213 @@
+'use strict';
+
+var has = Object.prototype.hasOwnProperty;
+
+var hexTable = (function () {
+ var array = [];
+ for (var i = 0; i < 256; ++i) {
+ array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
+ }
+
+ return array;
+}());
+
+var compactQueue = function compactQueue(queue) {
+ var obj;
+
+ while (queue.length) {
+ var item = queue.pop();
+ obj = item.obj[item.prop];
+
+ if (Array.isArray(obj)) {
+ var compacted = [];
+
+ for (var j = 0; j < obj.length; ++j) {
+ if (typeof obj[j] !== 'undefined') {
+ compacted.push(obj[j]);
+ }
+ }
+
+ item.obj[item.prop] = compacted;
+ }
+ }
+
+ return obj;
+};
+
+var arrayToObject = function arrayToObject(source, options) {
+ var obj = options && options.plainObjects ? Object.create(null) : {};
+ for (var i = 0; i < source.length; ++i) {
+ if (typeof source[i] !== 'undefined') {
+ obj[i] = source[i];
+ }
+ }
+
+ return obj;
+};
+
+var merge = function merge(target, source, options) {
+ if (!source) {
+ return target;
+ }
+
+ if (typeof source !== 'object') {
+ if (Array.isArray(target)) {
+ target.push(source);
+ } else if (typeof target === 'object') {
+ if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
+ target[source] = true;
+ }
+ } else {
+ return [target, source];
+ }
+
+ return target;
+ }
+
+ if (typeof target !== 'object') {
+ return [target].concat(source);
+ }
+
+ var mergeTarget = target;
+ if (Array.isArray(target) && !Array.isArray(source)) {
+ mergeTarget = arrayToObject(target, options);
+ }
+
+ if (Array.isArray(target) && Array.isArray(source)) {
+ source.forEach(function (item, i) {
+ if (has.call(target, i)) {
+ if (target[i] && typeof target[i] === 'object') {
+ target[i] = merge(target[i], item, options);
+ } else {
+ target.push(item);
+ }
+ } else {
+ target[i] = item;
+ }
+ });
+ return target;
+ }
+
+ return Object.keys(source).reduce(function (acc, key) {
+ var value = source[key];
+
+ if (has.call(acc, key)) {
+ acc[key] = merge(acc[key], value, options);
+ } else {
+ acc[key] = value;
+ }
+ return acc;
+ }, mergeTarget);
+};
+
+var assign = function assignSingleSource(target, source) {
+ return Object.keys(source).reduce(function (acc, key) {
+ acc[key] = source[key];
+ return acc;
+ }, target);
+};
+
+var decode = function (str) {
+ try {
+ return decodeURIComponent(str.replace(/\+/g, ' '));
+ } catch (e) {
+ return str;
+ }
+};
+
+var encode = function encode(str) {
+ // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
+ // It has been adapted here for stricter adherence to RFC 3986
+ if (str.length === 0) {
+ return str;
+ }
+
+ var string = typeof str === 'string' ? str : String(str);
+
+ var out = '';
+ for (var i = 0; i < string.length; ++i) {
+ var c = string.charCodeAt(i);
+
+ if (
+ c === 0x2D // -
+ || c === 0x2E // .
+ || c === 0x5F // _
+ || c === 0x7E // ~
+ || (c >= 0x30 && c <= 0x39) // 0-9
+ || (c >= 0x41 && c <= 0x5A) // a-z
+ || (c >= 0x61 && c <= 0x7A) // A-Z
+ ) {
+ out += string.charAt(i);
+ continue;
+ }
+
+ if (c < 0x80) {
+ out = out + hexTable[c];
+ continue;
+ }
+
+ if (c < 0x800) {
+ out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
+ continue;
+ }
+
+ if (c < 0xD800 || c >= 0xE000) {
+ out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
+ continue;
+ }
+
+ i += 1;
+ c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
+ out += hexTable[0xF0 | (c >> 18)]
+ + hexTable[0x80 | ((c >> 12) & 0x3F)]
+ + hexTable[0x80 | ((c >> 6) & 0x3F)]
+ + hexTable[0x80 | (c & 0x3F)];
+ }
+
+ return out;
+};
+
+var compact = function compact(value) {
+ var queue = [{ obj: { o: value }, prop: 'o' }];
+ var refs = [];
+
+ for (var i = 0; i < queue.length; ++i) {
+ var item = queue[i];
+ var obj = item.obj[item.prop];
+
+ var keys = Object.keys(obj);
+ for (var j = 0; j < keys.length; ++j) {
+ var key = keys[j];
+ var val = obj[key];
+ if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
+ queue.push({ obj: obj, prop: key });
+ refs.push(val);
+ }
+ }
+ }
+
+ return compactQueue(queue);
+};
+
+var isRegExp = function isRegExp(obj) {
+ return Object.prototype.toString.call(obj) === '[object RegExp]';
+};
+
+var isBuffer = function isBuffer(obj) {
+ if (obj === null || typeof obj === 'undefined') {
+ return false;
+ }
+
+ return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
+};
+
+module.exports = {
+ arrayToObject: arrayToObject,
+ assign: assign,
+ compact: compact,
+ decode: decode,
+ encode: encode,
+ isBuffer: isBuffer,
+ isRegExp: isRegExp,
+ merge: merge
+};
diff --git a/deps/npm/node_modules/qs/package.json b/deps/npm/node_modules/qs/package.json
new file mode 100644
index 0000000000..fbdc0277c7
--- /dev/null
+++ b/deps/npm/node_modules/qs/package.json
@@ -0,0 +1,80 @@
+{
+ "_from": "qs@~6.5.1",
+ "_id": "qs@6.5.2",
+ "_inBundle": false,
+ "_integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+ "_location": "/qs",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "qs@~6.5.1",
+ "name": "qs",
+ "escapedName": "qs",
+ "rawSpec": "~6.5.1",
+ "saveSpec": null,
+ "fetchSpec": "~6.5.1"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+ "_shasum": "cb3ae806e8740444584ef154ce8ee98d403f3e36",
+ "_spec": "qs@~6.5.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "bugs": {
+ "url": "https://github.com/ljharb/qs/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Jordan Harband",
+ "email": "ljharb@gmail.com",
+ "url": "http://ljharb.codes"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "A querystring parser that supports nesting and arrays, with a depth limit",
+ "devDependencies": {
+ "@ljharb/eslint-config": "^12.2.1",
+ "browserify": "^16.2.0",
+ "covert": "^1.1.0",
+ "editorconfig-tools": "^0.1.1",
+ "eslint": "^4.19.1",
+ "evalmd": "^0.0.17",
+ "iconv-lite": "^0.4.21",
+ "mkdirp": "^0.5.1",
+ "qs-iconv": "^1.0.4",
+ "safe-publish-latest": "^1.1.1",
+ "safer-buffer": "^2.1.2",
+ "tape": "^4.9.0"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "homepage": "https://github.com/ljharb/qs",
+ "keywords": [
+ "querystring",
+ "qs"
+ ],
+ "license": "BSD-3-Clause",
+ "main": "lib/index.js",
+ "name": "qs",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ljharb/qs.git"
+ },
+ "scripts": {
+ "coverage": "covert test",
+ "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
+ "lint": "eslint lib/*.js test/*.js",
+ "prelint": "editorconfig-tools check * lib/* test/*",
+ "prepublish": "safe-publish-latest && npm run dist",
+ "pretest": "npm run --silent readme && npm run --silent lint",
+ "readme": "evalmd README.md",
+ "test": "npm run --silent coverage",
+ "tests-only": "node test"
+ },
+ "version": "6.5.2"
+}
diff --git a/deps/npm/node_modules/request/node_modules/qs/test/index.js b/deps/npm/node_modules/qs/test/index.js
index 5e6bc8fbd9..5e6bc8fbd9 100644
--- a/deps/npm/node_modules/request/node_modules/qs/test/index.js
+++ b/deps/npm/node_modules/qs/test/index.js
diff --git a/deps/npm/node_modules/qs/test/parse.js b/deps/npm/node_modules/qs/test/parse.js
new file mode 100644
index 0000000000..0f8fe4578a
--- /dev/null
+++ b/deps/npm/node_modules/qs/test/parse.js
@@ -0,0 +1,574 @@
+'use strict';
+
+var test = require('tape');
+var qs = require('../');
+var utils = require('../lib/utils');
+var iconv = require('iconv-lite');
+var SaferBuffer = require('safer-buffer').Buffer;
+
+test('parse()', function (t) {
+ t.test('parses a simple string', function (st) {
+ st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
+ st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
+ st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
+ st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
+ st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
+ st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
+ st.deepEqual(qs.parse('foo'), { foo: '' });
+ st.deepEqual(qs.parse('foo='), { foo: '' });
+ st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
+ st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
+ st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
+ st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
+ st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
+ st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
+ st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
+ st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
+ cht: 'p3',
+ chd: 't:60,40',
+ chs: '250x100',
+ chl: 'Hello|World'
+ });
+ st.end();
+ });
+
+ t.test('allows enabling dot notation', function (st) {
+ st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
+ st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
+ st.end();
+ });
+
+ t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
+ t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
+ t.deepEqual(
+ qs.parse('a[b][c][d][e][f][g][h]=i'),
+ { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
+ 'defaults to a depth of 5'
+ );
+
+ t.test('only parses one level when depth = 1', function (st) {
+ st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
+ st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
+ st.end();
+ });
+
+ t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
+
+ t.test('parses an explicit array', function (st) {
+ st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
+ st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
+ st.end();
+ });
+
+ t.test('parses a mix of simple and explicit arrays', function (st) {
+ st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
+
+ st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
+
+ st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
+
+ st.end();
+ });
+
+ t.test('parses a nested array', function (st) {
+ st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
+ st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
+ st.end();
+ });
+
+ t.test('allows to specify array indices', function (st) {
+ st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
+ st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
+ st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
+ st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
+ st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
+ st.end();
+ });
+
+ t.test('limits specific array indices to arrayLimit', function (st) {
+ st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] });
+ st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } });
+ st.end();
+ });
+
+ t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
+
+ t.test('supports encoded = signs', function (st) {
+ st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
+ st.end();
+ });
+
+ t.test('is ok with url encoded strings', function (st) {
+ st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
+ st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
+ st.end();
+ });
+
+ t.test('allows brackets in the value', function (st) {
+ st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
+ st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
+ st.end();
+ });
+
+ t.test('allows empty values', function (st) {
+ st.deepEqual(qs.parse(''), {});
+ st.deepEqual(qs.parse(null), {});
+ st.deepEqual(qs.parse(undefined), {});
+ st.end();
+ });
+
+ t.test('transforms arrays to objects', function (st) {
+ st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
+ st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
+ st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
+ st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
+ st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
+ st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
+
+ st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } });
+ st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
+ st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } });
+ st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
+ st.end();
+ });
+
+ t.test('transforms arrays to objects (dot notation)', function (st) {
+ st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
+ st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
+ st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
+ st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
+ st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
+ st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
+ st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
+ st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
+ st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
+ st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
+ st.end();
+ });
+
+ t.test('correctly prunes undefined values when converting an array to an object', function (st) {
+ st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
+ st.end();
+ });
+
+ t.test('supports malformed uri characters', function (st) {
+ st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
+ st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
+ st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
+ st.end();
+ });
+
+ t.test('doesn\'t produce empty keys', function (st) {
+ st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
+ st.end();
+ });
+
+ t.test('cannot access Object prototype', function (st) {
+ qs.parse('constructor[prototype][bad]=bad');
+ qs.parse('bad[constructor][prototype][bad]=bad');
+ st.equal(typeof Object.prototype.bad, 'undefined');
+ st.end();
+ });
+
+ t.test('parses arrays of objects', function (st) {
+ st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
+ st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
+ st.end();
+ });
+
+ t.test('allows for empty strings in arrays', function (st) {
+ st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
+
+ st.deepEqual(
+ qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
+ { a: ['b', null, 'c', ''] },
+ 'with arrayLimit 20 + array indices: null then empty string works'
+ );
+ st.deepEqual(
+ qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
+ { a: ['b', null, 'c', ''] },
+ 'with arrayLimit 0 + array brackets: null then empty string works'
+ );
+
+ st.deepEqual(
+ qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
+ { a: ['b', '', 'c', null] },
+ 'with arrayLimit 20 + array indices: empty string then null works'
+ );
+ st.deepEqual(
+ qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
+ { a: ['b', '', 'c', null] },
+ 'with arrayLimit 0 + array brackets: empty string then null works'
+ );
+
+ st.deepEqual(
+ qs.parse('a[]=&a[]=b&a[]=c'),
+ { a: ['', 'b', 'c'] },
+ 'array brackets: empty strings work'
+ );
+ st.end();
+ });
+
+ t.test('compacts sparse arrays', function (st) {
+ st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
+ st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
+ st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
+ st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
+ st.end();
+ });
+
+ t.test('parses semi-parsed strings', function (st) {
+ st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
+ st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
+ st.end();
+ });
+
+ t.test('parses buffers correctly', function (st) {
+ var b = SaferBuffer.from('test');
+ st.deepEqual(qs.parse({ a: b }), { a: b });
+ st.end();
+ });
+
+ t.test('continues parsing when no parent is found', function (st) {
+ st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
+ st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
+ st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
+ st.end();
+ });
+
+ t.test('does not error when parsing a very long array', function (st) {
+ var str = 'a[]=a';
+ while (Buffer.byteLength(str) < 128 * 1024) {
+ str = str + '&' + str;
+ }
+
+ st.doesNotThrow(function () {
+ qs.parse(str);
+ });
+
+ st.end();
+ });
+
+ t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) {
+ Object.prototype.crash = '';
+ Array.prototype.crash = '';
+ st.doesNotThrow(qs.parse.bind(null, 'a=b'));
+ st.deepEqual(qs.parse('a=b'), { a: 'b' });
+ st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
+ st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
+ delete Object.prototype.crash;
+ delete Array.prototype.crash;
+ st.end();
+ });
+
+ t.test('parses a string with an alternative string delimiter', function (st) {
+ st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
+ st.end();
+ });
+
+ t.test('parses a string with an alternative RegExp delimiter', function (st) {
+ st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
+ st.end();
+ });
+
+ t.test('does not use non-splittable objects as delimiters', function (st) {
+ st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
+ st.end();
+ });
+
+ t.test('allows overriding parameter limit', function (st) {
+ st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
+ st.end();
+ });
+
+ t.test('allows setting the parameter limit to Infinity', function (st) {
+ st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
+ st.end();
+ });
+
+ t.test('allows overriding array limit', function (st) {
+ st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
+ st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
+ st.end();
+ });
+
+ t.test('allows disabling array parsing', function (st) {
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } });
+ st.end();
+ });
+
+ t.test('allows for query string prefix', function (st) {
+ st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
+ st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
+ st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' });
+ st.end();
+ });
+
+ t.test('parses an object', function (st) {
+ var input = {
+ 'user[name]': { 'pop[bob]': 3 },
+ 'user[email]': null
+ };
+
+ var expected = {
+ user: {
+ name: { 'pop[bob]': 3 },
+ email: null
+ }
+ };
+
+ var result = qs.parse(input);
+
+ st.deepEqual(result, expected);
+ st.end();
+ });
+
+ t.test('parses an object in dot notation', function (st) {
+ var input = {
+ 'user.name': { 'pop[bob]': 3 },
+ 'user.email.': null
+ };
+
+ var expected = {
+ user: {
+ name: { 'pop[bob]': 3 },
+ email: null
+ }
+ };
+
+ var result = qs.parse(input, { allowDots: true });
+
+ st.deepEqual(result, expected);
+ st.end();
+ });
+
+ t.test('parses an object and not child values', function (st) {
+ var input = {
+ 'user[name]': { 'pop[bob]': { test: 3 } },
+ 'user[email]': null
+ };
+
+ var expected = {
+ user: {
+ name: { 'pop[bob]': { test: 3 } },
+ email: null
+ }
+ };
+
+ var result = qs.parse(input);
+
+ st.deepEqual(result, expected);
+ st.end();
+ });
+
+ t.test('does not blow up when Buffer global is missing', function (st) {
+ var tempBuffer = global.Buffer;
+ delete global.Buffer;
+ var result = qs.parse('a=b&c=d');
+ global.Buffer = tempBuffer;
+ st.deepEqual(result, { a: 'b', c: 'd' });
+ st.end();
+ });
+
+ t.test('does not crash when parsing circular references', function (st) {
+ var a = {};
+ a.b = a;
+
+ var parsed;
+
+ st.doesNotThrow(function () {
+ parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
+ });
+
+ st.equal('foo' in parsed, true, 'parsed has "foo" property');
+ st.equal('bar' in parsed.foo, true);
+ st.equal('baz' in parsed.foo, true);
+ st.equal(parsed.foo.bar, 'baz');
+ st.deepEqual(parsed.foo.baz, a);
+ st.end();
+ });
+
+ t.test('does not crash when parsing deep objects', function (st) {
+ var parsed;
+ var str = 'foo';
+
+ for (var i = 0; i < 5000; i++) {
+ str += '[p]';
+ }
+
+ str += '=bar';
+
+ st.doesNotThrow(function () {
+ parsed = qs.parse(str, { depth: 5000 });
+ });
+
+ st.equal('foo' in parsed, true, 'parsed has "foo" property');
+
+ var depth = 0;
+ var ref = parsed.foo;
+ while ((ref = ref.p)) {
+ depth += 1;
+ }
+
+ st.equal(depth, 5000, 'parsed is 5000 properties deep');
+
+ st.end();
+ });
+
+ t.test('parses null objects correctly', { skip: !Object.create }, function (st) {
+ var a = Object.create(null);
+ a.b = 'c';
+
+ st.deepEqual(qs.parse(a), { b: 'c' });
+ var result = qs.parse({ a: a });
+ st.equal('a' in result, true, 'result has "a" property');
+ st.deepEqual(result.a, a);
+ st.end();
+ });
+
+ t.test('parses dates correctly', function (st) {
+ var now = new Date();
+ st.deepEqual(qs.parse({ a: now }), { a: now });
+ st.end();
+ });
+
+ t.test('parses regular expressions correctly', function (st) {
+ var re = /^test$/;
+ st.deepEqual(qs.parse({ a: re }), { a: re });
+ st.end();
+ });
+
+ t.test('does not allow overwriting prototype properties', function (st) {
+ st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {});
+ st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {});
+
+ st.deepEqual(
+ qs.parse('toString', { allowPrototypes: false }),
+ {},
+ 'bare "toString" results in {}'
+ );
+
+ st.end();
+ });
+
+ t.test('can allow overwriting prototype properties', function (st) {
+ st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } });
+ st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' });
+
+ st.deepEqual(
+ qs.parse('toString', { allowPrototypes: true }),
+ { toString: '' },
+ 'bare "toString" results in { toString: "" }'
+ );
+
+ st.end();
+ });
+
+ t.test('params starting with a closing bracket', function (st) {
+ st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
+ st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
+ st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' });
+ st.end();
+ });
+
+ t.test('params starting with a starting bracket', function (st) {
+ st.deepEqual(qs.parse('[=toString'), { '[': 'toString' });
+ st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' });
+ st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' });
+ st.end();
+ });
+
+ t.test('add keys to objects', function (st) {
+ st.deepEqual(
+ qs.parse('a[b]=c&a=d'),
+ { a: { b: 'c', d: true } },
+ 'can add keys to objects'
+ );
+
+ st.deepEqual(
+ qs.parse('a[b]=c&a=toString'),
+ { a: { b: 'c' } },
+ 'can not overwrite prototype'
+ );
+
+ st.deepEqual(
+ qs.parse('a[b]=c&a=toString', { allowPrototypes: true }),
+ { a: { b: 'c', toString: true } },
+ 'can overwrite prototype with allowPrototypes true'
+ );
+
+ st.deepEqual(
+ qs.parse('a[b]=c&a=toString', { plainObjects: true }),
+ { a: { b: 'c', toString: true } },
+ 'can overwrite prototype with plainObjects true'
+ );
+
+ st.end();
+ });
+
+ t.test('can return null objects', { skip: !Object.create }, function (st) {
+ var expected = Object.create(null);
+ expected.a = Object.create(null);
+ expected.a.b = 'c';
+ expected.a.hasOwnProperty = 'd';
+ st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
+ st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null));
+ var expectedArray = Object.create(null);
+ expectedArray.a = Object.create(null);
+ expectedArray.a[0] = 'b';
+ expectedArray.a.c = 'd';
+ st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
+ st.end();
+ });
+
+ t.test('can parse with custom encoding', function (st) {
+ st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
+ decoder: function (str) {
+ var reg = /%([0-9A-F]{2})/ig;
+ var result = [];
+ var parts = reg.exec(str);
+ while (parts) {
+ result.push(parseInt(parts[1], 16));
+ parts = reg.exec(str);
+ }
+ return iconv.decode(SaferBuffer.from(result), 'shift_jis').toString();
+ }
+ }), { ēœŒ: '大é˜Ŗåŗœ' });
+ st.end();
+ });
+
+ t.test('receives the default decoder as a second argument', function (st) {
+ st.plan(1);
+ qs.parse('a', {
+ decoder: function (str, defaultDecoder) {
+ st.equal(defaultDecoder, utils.decode);
+ }
+ });
+ st.end();
+ });
+
+ t.test('throws error with wrong decoder', function (st) {
+ st['throws'](function () {
+ qs.parse({}, { decoder: 'string' });
+ }, new TypeError('Decoder has to be a function.'));
+ st.end();
+ });
+
+ t.test('does not mutate the options argument', function (st) {
+ var options = {};
+ qs.parse('a[b]=true', options);
+ st.deepEqual(options, {});
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/deps/npm/node_modules/qs/test/stringify.js b/deps/npm/node_modules/qs/test/stringify.js
new file mode 100644
index 0000000000..165ac621fe
--- /dev/null
+++ b/deps/npm/node_modules/qs/test/stringify.js
@@ -0,0 +1,597 @@
+'use strict';
+
+var test = require('tape');
+var qs = require('../');
+var utils = require('../lib/utils');
+var iconv = require('iconv-lite');
+var SaferBuffer = require('safer-buffer').Buffer;
+
+test('stringify()', function (t) {
+ t.test('stringifies a querystring object', function (st) {
+ st.equal(qs.stringify({ a: 'b' }), 'a=b');
+ st.equal(qs.stringify({ a: 1 }), 'a=1');
+ st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2');
+ st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z');
+ st.equal(qs.stringify({ a: 'ā‚¬' }), 'a=%E2%82%AC');
+ st.equal(qs.stringify({ a: 'ī€€' }), 'a=%EE%80%80');
+ st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90');
+ st.equal(qs.stringify({ a: 'š·' }), 'a=%F0%90%90%B7');
+ st.end();
+ });
+
+ t.test('adds query prefix', function (st) {
+ st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
+ st.end();
+ });
+
+ t.test('with query prefix, outputs blank string given an empty object', function (st) {
+ st.equal(qs.stringify({}, { addQueryPrefix: true }), '');
+ st.end();
+ });
+
+ t.test('stringifies a nested object', function (st) {
+ st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
+ st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
+ st.end();
+ });
+
+ t.test('stringifies a nested object with dots notation', function (st) {
+ st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
+ st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
+ st.end();
+ });
+
+ t.test('stringifies an array value', function (st) {
+ st.equal(
+ qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }),
+ 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
+ 'indices => indices'
+ );
+ st.equal(
+ qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }),
+ 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify({ a: ['b', 'c', 'd'] }),
+ 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
+ 'default => indices'
+ );
+ st.end();
+ });
+
+ t.test('omits nulls when asked', function (st) {
+ st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b');
+ st.end();
+ });
+
+ t.test('omits nested nulls when asked', function (st) {
+ st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
+ st.end();
+ });
+
+ t.test('omits array indices when asked', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
+ st.end();
+ });
+
+ t.test('stringifies a nested array value', function (st) {
+ st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
+ st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d');
+ st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
+ st.end();
+ });
+
+ t.test('stringifies a nested array value with dots notation', function (st) {
+ st.equal(
+ qs.stringify(
+ { a: { b: ['c', 'd'] } },
+ { allowDots: true, encode: false, arrayFormat: 'indices' }
+ ),
+ 'a.b[0]=c&a.b[1]=d',
+ 'indices: stringifies with dots + indices'
+ );
+ st.equal(
+ qs.stringify(
+ { a: { b: ['c', 'd'] } },
+ { allowDots: true, encode: false, arrayFormat: 'brackets' }
+ ),
+ 'a.b[]=c&a.b[]=d',
+ 'brackets: stringifies with dots + brackets'
+ );
+ st.equal(
+ qs.stringify(
+ { a: { b: ['c', 'd'] } },
+ { allowDots: true, encode: false }
+ ),
+ 'a.b[0]=c&a.b[1]=d',
+ 'default: stringifies with dots + indices'
+ );
+ st.end();
+ });
+
+ t.test('stringifies an object inside an array', function (st) {
+ st.equal(
+ qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
+ 'a%5B0%5D%5Bb%5D=c',
+ 'indices => brackets'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
+ 'a%5B%5D%5Bb%5D=c',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: 'c' }] }),
+ 'a%5B0%5D%5Bb%5D=c',
+ 'default => indices'
+ );
+
+ st.equal(
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }),
+ 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
+ 'indices => indices'
+ );
+
+ st.equal(
+ qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }),
+ 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1',
+ 'brackets => brackets'
+ );
+
+ st.equal(
+ qs.stringify({ a: [{ b: { c: [1] } }] }),
+ 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
+ 'default => indices'
+ );
+
+ st.end();
+ });
+
+ t.test('stringifies an array with mixed objects and primitives', function (st) {
+ st.equal(
+ qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }),
+ 'a[0][b]=1&a[1]=2&a[2]=3',
+ 'indices => indices'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }),
+ 'a[][b]=1&a[]=2&a[]=3',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }),
+ 'a[0][b]=1&a[1]=2&a[2]=3',
+ 'default => indices'
+ );
+
+ st.end();
+ });
+
+ t.test('stringifies an object inside an array with dots notation', function (st) {
+ st.equal(
+ qs.stringify(
+ { a: [{ b: 'c' }] },
+ { allowDots: true, encode: false, arrayFormat: 'indices' }
+ ),
+ 'a[0].b=c',
+ 'indices => indices'
+ );
+ st.equal(
+ qs.stringify(
+ { a: [{ b: 'c' }] },
+ { allowDots: true, encode: false, arrayFormat: 'brackets' }
+ ),
+ 'a[].b=c',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify(
+ { a: [{ b: 'c' }] },
+ { allowDots: true, encode: false }
+ ),
+ 'a[0].b=c',
+ 'default => indices'
+ );
+
+ st.equal(
+ qs.stringify(
+ { a: [{ b: { c: [1] } }] },
+ { allowDots: true, encode: false, arrayFormat: 'indices' }
+ ),
+ 'a[0].b.c[0]=1',
+ 'indices => indices'
+ );
+ st.equal(
+ qs.stringify(
+ { a: [{ b: { c: [1] } }] },
+ { allowDots: true, encode: false, arrayFormat: 'brackets' }
+ ),
+ 'a[].b.c[]=1',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify(
+ { a: [{ b: { c: [1] } }] },
+ { allowDots: true, encode: false }
+ ),
+ 'a[0].b.c[0]=1',
+ 'default => indices'
+ );
+
+ st.end();
+ });
+
+ t.test('does not omit object keys when indices = false', function (st) {
+ st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c');
+ st.end();
+ });
+
+ t.test('uses indices notation for arrays when indices=true', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c');
+ st.end();
+ });
+
+ t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c');
+ st.end();
+ });
+
+ t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
+ st.end();
+ });
+
+ t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
+ st.end();
+ });
+
+ t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) {
+ st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
+ st.end();
+ });
+
+ t.test('stringifies a complicated object', function (st) {
+ st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e');
+ st.end();
+ });
+
+ t.test('stringifies an empty value', function (st) {
+ st.equal(qs.stringify({ a: '' }), 'a=');
+ st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a');
+
+ st.equal(qs.stringify({ a: '', b: '' }), 'a=&b=');
+ st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b=');
+
+ st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D=');
+ st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D');
+ st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D=');
+
+ st.end();
+ });
+
+ t.test('stringifies a null object', { skip: !Object.create }, function (st) {
+ var obj = Object.create(null);
+ obj.a = 'b';
+ st.equal(qs.stringify(obj), 'a=b');
+ st.end();
+ });
+
+ t.test('returns an empty string for invalid input', function (st) {
+ st.equal(qs.stringify(undefined), '');
+ st.equal(qs.stringify(false), '');
+ st.equal(qs.stringify(null), '');
+ st.equal(qs.stringify(''), '');
+ st.end();
+ });
+
+ t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) {
+ var obj = { a: Object.create(null) };
+
+ obj.a.b = 'c';
+ st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
+ st.end();
+ });
+
+ t.test('drops keys with a value of undefined', function (st) {
+ st.equal(qs.stringify({ a: undefined }), '');
+
+ st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D');
+ st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D=');
+ st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D=');
+ st.end();
+ });
+
+ t.test('url encodes values', function (st) {
+ st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
+ st.end();
+ });
+
+ t.test('stringifies a date', function (st) {
+ var now = new Date();
+ var str = 'a=' + encodeURIComponent(now.toISOString());
+ st.equal(qs.stringify({ a: now }), str);
+ st.end();
+ });
+
+ t.test('stringifies the weird object from qs', function (st) {
+ st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F');
+ st.end();
+ });
+
+ t.test('skips properties that are part of the object prototype', function (st) {
+ Object.prototype.crash = 'test';
+ st.equal(qs.stringify({ a: 'b' }), 'a=b');
+ st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
+ delete Object.prototype.crash;
+ st.end();
+ });
+
+ t.test('stringifies boolean values', function (st) {
+ st.equal(qs.stringify({ a: true }), 'a=true');
+ st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true');
+ st.equal(qs.stringify({ b: false }), 'b=false');
+ st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false');
+ st.end();
+ });
+
+ t.test('stringifies buffer values', function (st) {
+ st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test');
+ st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test');
+ st.end();
+ });
+
+ t.test('stringifies an object using an alternative delimiter', function (st) {
+ st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
+ st.end();
+ });
+
+ t.test('doesn\'t blow up when Buffer global is missing', function (st) {
+ var tempBuffer = global.Buffer;
+ delete global.Buffer;
+ var result = qs.stringify({ a: 'b', c: 'd' });
+ global.Buffer = tempBuffer;
+ st.equal(result, 'a=b&c=d');
+ st.end();
+ });
+
+ t.test('selects properties when filter=array', function (st) {
+ st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
+ st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
+
+ st.equal(
+ qs.stringify(
+ { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
+ { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' }
+ ),
+ 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
+ 'indices => indices'
+ );
+ st.equal(
+ qs.stringify(
+ { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
+ { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' }
+ ),
+ 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3',
+ 'brackets => brackets'
+ );
+ st.equal(
+ qs.stringify(
+ { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
+ { filter: ['a', 'b', 0, 2] }
+ ),
+ 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
+ 'default => indices'
+ );
+
+ st.end();
+ });
+
+ t.test('supports custom representations when filter=function', function (st) {
+ var calls = 0;
+ var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
+ var filterFunc = function (prefix, value) {
+ calls += 1;
+ if (calls === 1) {
+ st.equal(prefix, '', 'prefix is empty');
+ st.equal(value, obj);
+ } else if (prefix === 'c') {
+ return void 0;
+ } else if (value instanceof Date) {
+ st.equal(prefix, 'e[f]');
+ return value.getTime();
+ }
+ return value;
+ };
+
+ st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000');
+ st.equal(calls, 5);
+ st.end();
+ });
+
+ t.test('can disable uri encoding', function (st) {
+ st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
+ st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
+ st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c');
+ st.end();
+ });
+
+ t.test('can sort the keys', function (st) {
+ var sort = function (a, b) {
+ return a.localeCompare(b);
+ };
+ st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
+ st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
+ st.end();
+ });
+
+ t.test('can sort the keys at depth 3 or more too', function (st) {
+ var sort = function (a, b) {
+ return a.localeCompare(b);
+ };
+ st.equal(
+ qs.stringify(
+ { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
+ { sort: sort, encode: false }
+ ),
+ 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'
+ );
+ st.equal(
+ qs.stringify(
+ { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
+ { sort: null, encode: false }
+ ),
+ 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'
+ );
+ st.end();
+ });
+
+ t.test('can stringify with custom encoding', function (st) {
+ st.equal(qs.stringify({ ēœŒ: '大é˜Ŗåŗœ', '': '' }, {
+ encoder: function (str) {
+ if (str.length === 0) {
+ return '';
+ }
+ var buf = iconv.encode(str, 'shiftjis');
+ var result = [];
+ for (var i = 0; i < buf.length; ++i) {
+ result.push(buf.readUInt8(i).toString(16));
+ }
+ return '%' + result.join('%');
+ }
+ }), '%8c%a7=%91%e5%8d%e3%95%7b&=');
+ st.end();
+ });
+
+ t.test('receives the default encoder as a second argument', function (st) {
+ st.plan(2);
+ qs.stringify({ a: 1 }, {
+ encoder: function (str, defaultEncoder) {
+ st.equal(defaultEncoder, utils.encode);
+ }
+ });
+ st.end();
+ });
+
+ t.test('throws error with wrong encoder', function (st) {
+ st['throws'](function () {
+ qs.stringify({}, { encoder: 'string' });
+ }, new TypeError('Encoder has to be a function.'));
+ st.end();
+ });
+
+ t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
+ st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, {
+ encoder: function (buffer) {
+ if (typeof buffer === 'string') {
+ return buffer;
+ }
+ return String.fromCharCode(buffer.readUInt8(0) + 97);
+ }
+ }), 'a=b');
+ st.end();
+ });
+
+ t.test('serializeDate option', function (st) {
+ var date = new Date();
+ st.equal(
+ qs.stringify({ a: date }),
+ 'a=' + date.toISOString().replace(/:/g, '%3A'),
+ 'default is toISOString'
+ );
+
+ var mutatedDate = new Date();
+ mutatedDate.toISOString = function () {
+ throw new SyntaxError();
+ };
+ st['throws'](function () {
+ mutatedDate.toISOString();
+ }, SyntaxError);
+ st.equal(
+ qs.stringify({ a: mutatedDate }),
+ 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'),
+ 'toISOString works even when method is not locally present'
+ );
+
+ var specificDate = new Date(6);
+ st.equal(
+ qs.stringify(
+ { a: specificDate },
+ { serializeDate: function (d) { return d.getTime() * 7; } }
+ ),
+ 'a=42',
+ 'custom serializeDate function called'
+ );
+
+ st.end();
+ });
+
+ t.test('RFC 1738 spaces serialization', function (st) {
+ st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c');
+ st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d');
+ st.end();
+ });
+
+ t.test('RFC 3986 spaces serialization', function (st) {
+ st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c');
+ st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d');
+ st.end();
+ });
+
+ t.test('Backward compatibility to RFC 3986', function (st) {
+ st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
+ st.end();
+ });
+
+ t.test('Edge cases and unknown formats', function (st) {
+ ['UFO1234', false, 1234, null, {}, []].forEach(
+ function (format) {
+ st['throws'](
+ function () {
+ qs.stringify({ a: 'b c' }, { format: format });
+ },
+ new TypeError('Unknown format option provided.')
+ );
+ }
+ );
+ st.end();
+ });
+
+ t.test('encodeValuesOnly', function (st) {
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
+ { encodeValuesOnly: true }
+ ),
+ 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'
+ );
+ st.equal(
+ qs.stringify(
+ { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }
+ ),
+ 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h'
+ );
+ st.end();
+ });
+
+ t.test('encodeValuesOnly - strictNullHandling', function (st) {
+ st.equal(
+ qs.stringify(
+ { a: { b: null } },
+ { encodeValuesOnly: true, strictNullHandling: true }
+ ),
+ 'a[b]'
+ );
+ st.end();
+ });
+
+ t.test('does not mutate the options argument', function (st) {
+ var options = {};
+ qs.stringify({}, options);
+ st.deepEqual(options, {});
+ st.end();
+ });
+
+ t.end();
+});
diff --git a/deps/npm/node_modules/request/node_modules/qs/test/utils.js b/deps/npm/node_modules/qs/test/utils.js
index eff4011a40..eff4011a40 100644
--- a/deps/npm/node_modules/request/node_modules/qs/test/utils.js
+++ b/deps/npm/node_modules/qs/test/utils.js
diff --git a/deps/npm/node_modules/query-string/index.js b/deps/npm/node_modules/query-string/index.js
index 7da4fead5f..523c87fdfb 100644
--- a/deps/npm/node_modules/query-string/index.js
+++ b/deps/npm/node_modules/query-string/index.js
@@ -1,52 +1,49 @@
'use strict';
-var strictUriEncode = require('strict-uri-encode');
-var objectAssign = require('object-assign');
-var decodeComponent = require('decode-uri-component');
+const strictUriEncode = require('strict-uri-encode');
+const decodeComponent = require('decode-uri-component');
-function encoderForArrayFormat(opts) {
- switch (opts.arrayFormat) {
+function encoderForArrayFormat(options) {
+ switch (options.arrayFormat) {
case 'index':
- return function (key, value, index) {
+ return (key, value, index) => {
return value === null ? [
- encode(key, opts),
+ encode(key, options),
'[',
index,
']'
].join('') : [
- encode(key, opts),
+ encode(key, options),
'[',
- encode(index, opts),
+ encode(index, options),
']=',
- encode(value, opts)
+ encode(value, options)
].join('');
};
-
case 'bracket':
- return function (key, value) {
- return value === null ? encode(key, opts) : [
- encode(key, opts),
+ return (key, value) => {
+ return value === null ? [encode(key, options), '[]'].join('') : [
+ encode(key, options),
'[]=',
- encode(value, opts)
+ encode(value, options)
].join('');
};
-
default:
- return function (key, value) {
- return value === null ? encode(key, opts) : [
- encode(key, opts),
+ return (key, value) => {
+ return value === null ? encode(key, options) : [
+ encode(key, options),
'=',
- encode(value, opts)
+ encode(value, options)
].join('');
};
}
}
-function parserForArrayFormat(opts) {
- var result;
+function parserForArrayFormat(options) {
+ let result;
- switch (opts.arrayFormat) {
+ switch (options.arrayFormat) {
case 'index':
- return function (key, value, accumulator) {
+ return (key, value, accumulator) => {
result = /\[(\d*)\]$/.exec(key);
key = key.replace(/\[\d*\]$/, '');
@@ -62,25 +59,25 @@ function parserForArrayFormat(opts) {
accumulator[key][result[1]] = value;
};
-
case 'bracket':
- return function (key, value, accumulator) {
+ return (key, value, accumulator) => {
result = /(\[\])$/.exec(key);
key = key.replace(/\[\]$/, '');
if (!result) {
accumulator[key] = value;
return;
- } else if (accumulator[key] === undefined) {
+ }
+
+ if (accumulator[key] === undefined) {
accumulator[key] = [value];
return;
}
accumulator[key] = [].concat(accumulator[key], value);
};
-
default:
- return function (key, value, accumulator) {
+ return (key, value, accumulator) => {
if (accumulator[key] === undefined) {
accumulator[key] = value;
return;
@@ -91,9 +88,17 @@ function parserForArrayFormat(opts) {
}
}
-function encode(value, opts) {
- if (opts.encode) {
- return opts.strict ? strictUriEncode(value) : encodeURIComponent(value);
+function encode(value, options) {
+ if (options.encode) {
+ return options.strict ? strictUriEncode(value) : encodeURIComponent(value);
+ }
+
+ return value;
+}
+
+function decode(value, options) {
+ if (options.decode) {
+ return decodeComponent(value);
}
return value;
@@ -102,109 +107,116 @@ function encode(value, opts) {
function keysSorter(input) {
if (Array.isArray(input)) {
return input.sort();
- } else if (typeof input === 'object') {
- return keysSorter(Object.keys(input)).sort(function (a, b) {
- return Number(a) - Number(b);
- }).map(function (key) {
- return input[key];
- });
+ }
+
+ if (typeof input === 'object') {
+ return keysSorter(Object.keys(input))
+ .sort((a, b) => Number(a) - Number(b))
+ .map(key => input[key]);
}
return input;
}
-exports.extract = function (str) {
- var queryStart = str.indexOf('?');
+function extract(input) {
+ const queryStart = input.indexOf('?');
if (queryStart === -1) {
return '';
}
- return str.slice(queryStart + 1);
-};
+ return input.slice(queryStart + 1);
+}
-exports.parse = function (str, opts) {
- opts = objectAssign({arrayFormat: 'none'}, opts);
+function parse(input, options) {
+ options = Object.assign({decode: true, arrayFormat: 'none'}, options);
- var formatter = parserForArrayFormat(opts);
+ const formatter = parserForArrayFormat(options);
// Create an object with no prototype
- // https://github.com/sindresorhus/query-string/issues/47
- var ret = Object.create(null);
+ const ret = Object.create(null);
- if (typeof str !== 'string') {
+ if (typeof input !== 'string') {
return ret;
}
- str = str.trim().replace(/^[?#&]/, '');
+ input = input.trim().replace(/^[?#&]/, '');
- if (!str) {
+ if (!input) {
return ret;
}
- str.split('&').forEach(function (param) {
- var parts = param.replace(/\+/g, ' ').split('=');
- // Firefox (pre 40) decodes `%3D` to `=`
- // https://github.com/sindresorhus/query-string/pull/37
- var key = parts.shift();
- var val = parts.length > 0 ? parts.join('=') : undefined;
+ for (const param of input.split('&')) {
+ let [key, value] = param.replace(/\+/g, ' ').split('=');
- // missing `=` should be `null`:
+ // Missing `=` should be `null`:
// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters
- val = val === undefined ? null : decodeComponent(val);
+ value = value === undefined ? null : decode(value, options);
- formatter(decodeComponent(key), val, ret);
- });
+ formatter(decode(key, options), value, ret);
+ }
- return Object.keys(ret).sort().reduce(function (result, key) {
- var val = ret[key];
- if (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {
+ return Object.keys(ret).sort().reduce((result, key) => {
+ const value = ret[key];
+ if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {
// Sort object keys, not values
- result[key] = keysSorter(val);
+ result[key] = keysSorter(value);
} else {
- result[key] = val;
+ result[key] = value;
}
return result;
}, Object.create(null));
-};
+}
+
+exports.extract = extract;
+exports.parse = parse;
-exports.stringify = function (obj, opts) {
- var defaults = {
+exports.stringify = (obj, options) => {
+ const defaults = {
encode: true,
strict: true,
arrayFormat: 'none'
};
- opts = objectAssign(defaults, opts);
+ options = Object.assign(defaults, options);
- var formatter = encoderForArrayFormat(opts);
+ if (options.sort === false) {
+ options.sort = () => {};
+ }
+
+ const formatter = encoderForArrayFormat(options);
- return obj ? Object.keys(obj).sort().map(function (key) {
- var val = obj[key];
+ return obj ? Object.keys(obj).sort(options.sort).map(key => {
+ const value = obj[key];
- if (val === undefined) {
+ if (value === undefined) {
return '';
}
- if (val === null) {
- return encode(key, opts);
+ if (value === null) {
+ return encode(key, options);
}
- if (Array.isArray(val)) {
- var result = [];
+ if (Array.isArray(value)) {
+ const result = [];
- val.slice().forEach(function (val2) {
- if (val2 === undefined) {
- return;
+ for (const value2 of value.slice()) {
+ if (value2 === undefined) {
+ continue;
}
- result.push(formatter(key, val2, result.length));
- });
+ result.push(formatter(key, value2, result.length));
+ }
return result.join('&');
}
- return encode(key, opts) + '=' + encode(val, opts);
- }).filter(function (x) {
- return x.length > 0;
- }).join('&') : '';
+ return encode(key, options) + '=' + encode(value, options);
+ }).filter(x => x.length > 0).join('&') : '';
+};
+
+exports.parseUrl = (input, options) => {
+ return {
+ url: input.split('?')[0] || '',
+ query: parse(extract(input), options)
+ };
};
diff --git a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json b/deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json
deleted file mode 100644
index a5fe214ca1..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/decode-uri-component/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "decode-uri-component@^0.2.0",
- "_id": "decode-uri-component@0.2.0",
- "_inBundle": false,
- "_integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=",
- "_location": "/query-string/decode-uri-component",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "decode-uri-component@^0.2.0",
- "name": "decode-uri-component",
- "escapedName": "decode-uri-component",
- "rawSpec": "^0.2.0",
- "saveSpec": null,
- "fetchSpec": "^0.2.0"
- },
- "_requiredBy": [
- "/query-string"
- ],
- "_resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
- "_shasum": "eb3913333458775cb84cd1a1fae062106bb87545",
- "_spec": "decode-uri-component@^0.2.0",
- "_where": "/Users/rebecca/code/npm/node_modules/query-string",
- "author": {
- "name": "Sam Verschueren",
- "email": "sam.verschueren@gmail.com",
- "url": "github.com/SamVerschueren"
- },
- "bugs": {
- "url": "https://github.com/SamVerschueren/decode-uri-component/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A better decodeURIComponent",
- "devDependencies": {
- "ava": "^0.17.0",
- "coveralls": "^2.13.1",
- "nyc": "^10.3.2",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/SamVerschueren/decode-uri-component#readme",
- "keywords": [
- "decode",
- "uri",
- "component",
- "decodeuricomponent",
- "components",
- "decoder",
- "url"
- ],
- "license": "MIT",
- "name": "decode-uri-component",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/SamVerschueren/decode-uri-component.git"
- },
- "scripts": {
- "coveralls": "nyc report --reporter=text-lcov | coveralls",
- "test": "xo && nyc ava"
- },
- "version": "0.2.0"
-}
diff --git a/deps/npm/node_modules/query-string/node_modules/object-assign/index.js b/deps/npm/node_modules/query-string/node_modules/object-assign/index.js
deleted file mode 100644
index 0930cf8890..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/object-assign/index.js
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
-object-assign
-(c) Sindre Sorhus
-@license MIT
-*/
-
-'use strict';
-/* eslint-disable no-unused-vars */
-var getOwnPropertySymbols = Object.getOwnPropertySymbols;
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
-function toObject(val) {
- if (val === null || val === undefined) {
- throw new TypeError('Object.assign cannot be called with null or undefined');
- }
-
- return Object(val);
-}
-
-function shouldUseNative() {
- try {
- if (!Object.assign) {
- return false;
- }
-
- // Detect buggy property enumeration order in older V8 versions.
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
- test1[5] = 'de';
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test2 = {};
- for (var i = 0; i < 10; i++) {
- test2['_' + String.fromCharCode(i)] = i;
- }
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
- return test2[n];
- });
- if (order2.join('') !== '0123456789') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test3 = {};
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
- test3[letter] = letter;
- });
- if (Object.keys(Object.assign({}, test3)).join('') !==
- 'abcdefghijklmnopqrst') {
- return false;
- }
-
- return true;
- } catch (err) {
- // We don't expect any of the above to throw, but better to be safe.
- return false;
- }
-}
-
-module.exports = shouldUseNative() ? Object.assign : function (target, source) {
- var from;
- var to = toObject(target);
- var symbols;
-
- for (var s = 1; s < arguments.length; s++) {
- from = Object(arguments[s]);
-
- for (var key in from) {
- if (hasOwnProperty.call(from, key)) {
- to[key] = from[key];
- }
- }
-
- if (getOwnPropertySymbols) {
- symbols = getOwnPropertySymbols(from);
- for (var i = 0; i < symbols.length; i++) {
- if (propIsEnumerable.call(from, symbols[i])) {
- to[symbols[i]] = from[symbols[i]];
- }
- }
- }
- }
-
- return to;
-};
diff --git a/deps/npm/node_modules/query-string/node_modules/object-assign/package.json b/deps/npm/node_modules/query-string/node_modules/object-assign/package.json
deleted file mode 100644
index 80ff3c78c4..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/object-assign/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "object-assign@^4.1.0",
- "_id": "object-assign@4.1.1",
- "_inBundle": false,
- "_integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "_location": "/query-string/object-assign",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "object-assign@^4.1.0",
- "name": "object-assign",
- "escapedName": "object-assign",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/query-string"
- ],
- "_resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "_shasum": "2109adc7965887cfc05cbbd442cac8bfbb360863",
- "_spec": "object-assign@^4.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/query-string",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/object-assign/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "ES2015 `Object.assign()` ponyfill",
- "devDependencies": {
- "ava": "^0.16.0",
- "lodash": "^4.16.4",
- "matcha": "^0.7.0",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/object-assign#readme",
- "keywords": [
- "object",
- "assign",
- "extend",
- "properties",
- "es2015",
- "ecmascript",
- "harmony",
- "ponyfill",
- "prollyfill",
- "polyfill",
- "shim",
- "browser"
- ],
- "license": "MIT",
- "name": "object-assign",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/object-assign.git"
- },
- "scripts": {
- "bench": "matcha bench.js",
- "test": "xo && ava"
- },
- "version": "4.1.1"
-}
diff --git a/deps/npm/node_modules/query-string/node_modules/object-assign/readme.md b/deps/npm/node_modules/query-string/node_modules/object-assign/readme.md
deleted file mode 100644
index 1be09d35c7..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/object-assign/readme.md
+++ /dev/null
@@ -1,61 +0,0 @@
-# object-assign [![Build Status](https://travis-ci.org/sindresorhus/object-assign.svg?branch=master)](https://travis-ci.org/sindresorhus/object-assign)
-
-> ES2015 [`Object.assign()`](http://www.2ality.com/2014/01/object-assign.html) [ponyfill](https://ponyfill.com)
-
-
-## Use the built-in
-
-Node.js 4 and up, as well as every evergreen browser (Chrome, Edge, Firefox, Opera, Safari),
-support `Object.assign()` :tada:. If you target only those environments, then by all
-means, use `Object.assign()` instead of this package.
-
-
-## Install
-
-```
-$ npm install --save object-assign
-```
-
-
-## Usage
-
-```js
-const objectAssign = require('object-assign');
-
-objectAssign({foo: 0}, {bar: 1});
-//=> {foo: 0, bar: 1}
-
-// multiple sources
-objectAssign({foo: 0}, {bar: 1}, {baz: 2});
-//=> {foo: 0, bar: 1, baz: 2}
-
-// overwrites equal keys
-objectAssign({foo: 0}, {foo: 1}, {foo: 2});
-//=> {foo: 2}
-
-// ignores null and undefined sources
-objectAssign({foo: 0}, null, {bar: 1}, undefined);
-//=> {foo: 0, bar: 1}
-```
-
-
-## API
-
-### objectAssign(target, [source, ...])
-
-Assigns enumerable own properties of `source` objects to the `target` object and returns the `target` object. Additional `source` objects will overwrite previous ones.
-
-
-## Resources
-
-- [ES2015 spec - Object.assign](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign)
-
-
-## Related
-
-- [deep-assign](https://github.com/sindresorhus/deep-assign) - Recursive `Object.assign()`
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js b/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js
deleted file mode 100644
index 414de96c51..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-'use strict';
-module.exports = function (str) {
- return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {
- return '%' + c.charCodeAt(0).toString(16).toUpperCase();
- });
-};
diff --git a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license b/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license
deleted file mode 100644
index e0e915823d..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Kevin MĆ„rtensson <kevinmartensson@gmail.com> (github.com/kevva)
-
-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/query-string/node_modules/strict-uri-encode/package.json b/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/package.json
deleted file mode 100644
index 344b83ab40..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "strict-uri-encode@^1.0.0",
- "_id": "strict-uri-encode@1.1.0",
- "_inBundle": false,
- "_integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=",
- "_location": "/query-string/strict-uri-encode",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strict-uri-encode@^1.0.0",
- "name": "strict-uri-encode",
- "escapedName": "strict-uri-encode",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/query-string"
- ],
- "_resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz",
- "_shasum": "279b225df1d582b1f54e65addd4352e18faa0713",
- "_spec": "strict-uri-encode@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/query-string",
- "author": {
- "name": "Kevin MĆ„rtensson",
- "email": "kevinmartensson@gmail.com",
- "url": "github.com/kevva"
- },
- "bugs": {
- "url": "https://github.com/kevva/strict-uri-encode/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A stricter URI encode adhering to RFC 3986",
- "devDependencies": {
- "ava": "^0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/kevva/strict-uri-encode#readme",
- "keywords": [
- "component",
- "encode",
- "RFC3986",
- "uri"
- ],
- "license": "MIT",
- "name": "strict-uri-encode",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kevva/strict-uri-encode.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md b/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md
deleted file mode 100644
index b2407903a9..0000000000
--- a/deps/npm/node_modules/query-string/node_modules/strict-uri-encode/readme.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# strict-uri-encode [![Build Status](https://travis-ci.org/kevva/strict-uri-encode.svg?branch=master)](https://travis-ci.org/kevva/strict-uri-encode)
-
-> A stricter URI encode adhering to [RFC 3986](http://tools.ietf.org/html/rfc3986)
-
-
-## Install
-
-```
-$ npm install --save strict-uri-encode
-```
-
-
-## Usage
-
-```js
-var strictUriEncode = require('strict-uri-encode');
-
-strictUriEncode('unicorn!foobar')
-//=> 'unicorn%21foobar'
-
-strictUriEncode('unicorn*foobar')
-//=> 'unicorn%2Afoobar'
-```
-
-
-## API
-
-### strictUriEncode(string)
-
-#### string
-
-*Required*
-Type: `string`, `number`
-
-String to URI encode.
-
-
-## License
-
-MIT Ā© [Kevin MĆ„rtensson](http://github.com/kevva)
diff --git a/deps/npm/node_modules/query-string/package.json b/deps/npm/node_modules/query-string/package.json
index 00bf7c58df..d29777ef1c 100644
--- a/deps/npm/node_modules/query-string/package.json
+++ b/deps/npm/node_modules/query-string/package.json
@@ -1,28 +1,32 @@
{
- "_from": "query-string@5.0.1",
- "_id": "query-string@5.0.1",
+ "_args": [
+ [
+ "query-string@6.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "query-string@6.1.0",
+ "_id": "query-string@6.1.0",
"_inBundle": false,
- "_integrity": "sha512-aM+MkQClojlNiKkO09tiN2Fv8jM/L7GWIjG2liWeKljlOdOPNWr+bW3KQ+w5V/uKprpezC7fAsAMsJtJ+2rLKA==",
+ "_integrity": "sha512-pNB/Gr8SA8ff8KpUFM36o/WFAlthgaThka5bV19AD9PNTH20Pwq5Zxodif2YyHwrctp6SkL4GqlOot0qR/wGaw==",
"_location": "/query-string",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "query-string@5.0.1",
+ "raw": "query-string@6.1.0",
"name": "query-string",
"escapedName": "query-string",
- "rawSpec": "5.0.1",
+ "rawSpec": "6.1.0",
"saveSpec": null,
- "fetchSpec": "5.0.1"
+ "fetchSpec": "6.1.0"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/query-string/-/query-string-5.0.1.tgz",
- "_shasum": "6e2b86fe0e08aef682ecbe86e85834765402bd88",
- "_spec": "query-string@5.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/query-string/-/query-string-6.1.0.tgz",
+ "_spec": "6.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
@@ -31,20 +35,19 @@
"bugs": {
"url": "https://github.com/sindresorhus/query-string/issues"
},
- "bundleDependencies": false,
"dependencies": {
"decode-uri-component": "^0.2.0",
- "object-assign": "^4.1.0",
- "strict-uri-encode": "^1.0.0"
+ "strict-uri-encode": "^2.0.0"
},
- "deprecated": false,
"description": "Parse and stringify URL query strings",
"devDependencies": {
- "ava": "^0.17.0",
- "xo": "^0.16.0"
+ "ava": "*",
+ "deep-equal": "^1.0.1",
+ "fast-check": "^1.0.1",
+ "xo": "*"
},
"engines": {
- "node": ">=0.10.0"
+ "node": ">=6"
},
"files": [
"index.js"
@@ -59,11 +62,11 @@
"param",
"parameter",
"url",
- "uri",
"parse",
"stringify",
"encode",
- "decode"
+ "decode",
+ "searchparams"
],
"license": "MIT",
"name": "query-string",
@@ -74,5 +77,5 @@
"scripts": {
"test": "xo && ava"
},
- "version": "5.0.1"
+ "version": "6.1.0"
}
diff --git a/deps/npm/node_modules/query-string/readme.md b/deps/npm/node_modules/query-string/readme.md
index 8d2148c9d1..f81bd6aea2 100644
--- a/deps/npm/node_modules/query-string/readme.md
+++ b/deps/npm/node_modules/query-string/readme.md
@@ -1,10 +1,10 @@
# query-string [![Build Status](https://travis-ci.org/sindresorhus/query-string.svg?branch=master)](https://travis-ci.org/sindresorhus/query-string)
-> Parse and stringify URL [query strings](http://en.wikipedia.org/wiki/Query_string)
+> Parse and stringify URL [query strings](https://en.wikipedia.org/wiki/Query_string)
---
-<p align="center"><b>šŸ”„ Want to strengthen your core JavaScript skills and master ES6?</b><br>I would personally recommend this awesome <a href="https://ES6.io/friend/AWESOME">ES6 course</a> by Wes Bos. You might also like his <a href="https://ReactForBeginners.com/friend/AWESOME">React course</a>.</p>
+<p align="center"><b>šŸ”„ Want to strengthen your core JavaScript skills and master ES6?</b><br>I would personally recommend this awesome <a href="https://ES6.io/friend/AWESOME">ES6 course</a> by Wes Bos.<br>Also check out his <a href="https://LearnNode.com/friend/AWESOME">Node.js</a>, <a href="https://ReactForBeginners.com/friend/AWESOME">React</a>, <a href="https://SublimeTextBook.com/friend/AWESOME">Sublime</a> courses.</p>
---
@@ -15,6 +15,12 @@
$ npm install query-string
```
+This module targets Node.js 6 or later and the latest version of Chrome, Firefox, and Safari. If you want support for older browsers, use version 5: `npm install query-string@5`.
+
+<a href="https://www.patreon.com/sindresorhus">
+ <img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" width="160">
+</a>
+
## Usage
@@ -56,7 +62,12 @@ Parse a query string into an object. Leading `?` or `#` are ignored, so you can
The returned object is created with [`Object.create(null)`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create) and thus does not have a `prototype`.
-URI components are decoded with [`decode-uri-component`](https://github.com/SamVerschueren/decode-uri-component).
+#### decode
+
+Type: `boolean`<br>
+Default: `true`
+
+Decode the keys and values. URI components are decoded with [`decode-uri-component`](https://github.com/SamVerschueren/decode-uri-component).
#### arrayFormat
@@ -133,10 +144,44 @@ queryString.stringify({foo: [1,2,3]});
// => foo=1&foo=2&foo=3
```
+#### sort
+
+Type: `Function` `boolean`
+
+Supports both `Function` as a custom sorting function or `false` to disable sorting.
+
+```js
+const order = ['c', 'a', 'b'];
+queryString.stringify({ a: 1, b: 2, c: 3}, {
+ sort: (m, n) => order.indexOf(m) >= order.indexOf(n)
+});
+// => 'c=3&a=1&b=2'
+```
+
+```js
+queryString.stringify({ b: 1, c: 2, a: 3}, {sort: false});
+// => 'c=3&a=1&b=2'
+```
+
+If omitted, keys are sorted using `Array#sort`, which means, converting them to strings and comparing strings in Unicode code point order.
+
### .extract(*string*)
Extract a query string from a URL that can be passed into `.parse()`.
+### .parseUrl(*string*, *[options]*)
+
+Extract the URL and the query string as an object.
+
+The `options` are the same as for `.parse()`.
+
+Returns an object with a `url` and `query` property.
+
+```js
+queryString.parseUrl('https://foo.bar?foo=bar');
+//=> {url: 'https://foo.bar', query: {foo: 'bar'}}
+```
+
## Nesting
diff --git a/deps/npm/node_modules/qw/package.json b/deps/npm/node_modules/qw/package.json
index fb4c272f35..dd53aac491 100644
--- a/deps/npm/node_modules/qw/package.json
+++ b/deps/npm/node_modules/qw/package.json
@@ -1,27 +1,31 @@
{
- "_from": "qw",
+ "_args": [
+ [
+ "qw@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "qw@1.0.1",
"_id": "qw@1.0.1",
"_inBundle": false,
"_integrity": "sha1-77/cdA+a0FQwRCassYNBLMi5ltQ=",
"_location": "/qw",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "qw",
+ "raw": "qw@1.0.1",
"name": "qw",
"escapedName": "qw",
- "rawSpec": "",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
- "#USER",
"/"
],
"_resolved": "https://registry.npmjs.org/qw/-/qw-1.0.1.tgz",
- "_shasum": "efbfdc740f9ad054304426acb183412cc8b996d4",
- "_spec": "qw",
+ "_spec": "1.0.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -31,9 +35,7 @@
"bugs": {
"url": "https://github.com/iarna/node-qw/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Quoted word literals!",
"devDependencies": {
"tap": "^8.0.0"
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2 b/deps/npm/node_modules/rc/LICENSE.APACHE2
index 6366c04716..6366c04716 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.APACHE2
+++ b/deps/npm/node_modules/rc/LICENSE.APACHE2
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.BSD b/deps/npm/node_modules/rc/LICENSE.BSD
index c6f2e5490c..c6f2e5490c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.BSD
+++ b/deps/npm/node_modules/rc/LICENSE.BSD
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT b/deps/npm/node_modules/rc/LICENSE.MIT
index 49e7da41fe..49e7da41fe 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/LICENSE.MIT
+++ b/deps/npm/node_modules/rc/LICENSE.MIT
diff --git a/deps/npm/node_modules/rc/README.md b/deps/npm/node_modules/rc/README.md
new file mode 100644
index 0000000000..0a411d3629
--- /dev/null
+++ b/deps/npm/node_modules/rc/README.md
@@ -0,0 +1,227 @@
+# rc
+
+The non-configurable configuration loader for lazy people.
+
+## Usage
+
+The only option is to pass rc the name of your app, and your default configuration.
+
+```javascript
+var conf = require('rc')(appname, {
+ //defaults go here.
+ port: 2468,
+
+ //defaults which are objects will be merged, not replaced
+ views: {
+ engine: 'jade'
+ }
+});
+```
+
+`rc` will return your configuration options merged with the defaults you specify.
+If you pass in a predefined defaults object, it will be mutated:
+
+```javascript
+var conf = {};
+require('rc')(appname, conf);
+```
+
+If `rc` finds any config files for your app, the returned config object will have
+a `configs` array containing their paths:
+
+```javascript
+var appCfg = require('rc')(appname, conf);
+appCfg.configs[0] // /etc/appnamerc
+appCfg.configs[1] // /home/dominictarr/.config/appname
+appCfg.config // same as appCfg.configs[appCfg.configs.length - 1]
+```
+
+## Standards
+
+Given your application name (`appname`), rc will look in all the obvious places for configuration.
+
+ * command line arguments, parsed by minimist _(e.g. `--foo baz`, also nested: `--foo.bar=baz`)_
+ * environment variables prefixed with `${appname}_`
+ * or use "\_\_" to indicate nested properties <br/> _(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_
+ * if you passed an option `--config file` then from that file
+ * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc.
+ * `$HOME/.${appname}rc`
+ * `$HOME/.${appname}/config`
+ * `$HOME/.config/${appname}`
+ * `$HOME/.config/${appname}/config`
+ * `/etc/${appname}rc`
+ * `/etc/${appname}/config`
+ * the defaults object you passed in.
+
+All configuration sources that were found will be flattened into one object,
+so that sources **earlier** in this list override later ones.
+
+
+## Configuration File Formats
+
+Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. **No** file extension (`.json` or `.ini`) should be used. The example configurations below are equivalent:
+
+
+#### Formatted as `ini`
+
+```
+; You can include comments in `ini` format if you want.
+
+dependsOn=0.10.0
+
+
+; `rc` has built-in support for ini sections, see?
+
+[commands]
+ www = ./commands/www
+ console = ./commands/repl
+
+
+; You can even do nested sections
+
+[generators.options]
+ engine = ejs
+
+[generators.modules]
+ new = generate-new
+ engine = generate-backend
+
+```
+
+#### Formatted as `json`
+
+```javascript
+{
+ // You can even comment your JSON, if you want
+ "dependsOn": "0.10.0",
+ "commands": {
+ "www": "./commands/www",
+ "console": "./commands/repl"
+ },
+ "generators": {
+ "options": {
+ "engine": "ejs"
+ },
+ "modules": {
+ "new": "generate-new",
+ "backend": "generate-backend"
+ }
+ }
+}
+```
+
+Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments).
+
+> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings.
+
+To ensure that string representations of booleans and numbers are always converted into their proper types (especially useful if you intend to do strict `===` comparisons), consider using a module such as [parse-strings-in-object](https://github.com/anselanza/parse-strings-in-object) to wrap the config object returned from rc.
+
+
+## Simple example demonstrating precedence
+Assume you have an application like this (notice the hard-coded defaults passed to rc):
+```
+const conf = require('rc')('myapp', {
+ port: 12345,
+ mode: 'test'
+});
+
+console.log(JSON.stringify(conf, null, 2));
+```
+You also have a file `config.json`, with these contents:
+```
+{
+ "port": 9000,
+ "foo": "from config json",
+ "something": "else"
+}
+```
+And a file `.myapprc` in the same folder, with these contents:
+```
+{
+ "port": "3001",
+ "foo": "bar"
+}
+```
+Here is the expected output from various commands:
+
+`node .`
+```
+{
+ "port": "3001",
+ "mode": "test",
+ "foo": "bar",
+ "_": [],
+ "configs": [
+ "/Users/stephen/repos/conftest/.myapprc"
+ ],
+ "config": "/Users/stephen/repos/conftest/.myapprc"
+}
+```
+*Default `mode` from hard-coded object is retained, but port is overridden by `.myapprc` file (automatically found based on appname match), and `foo` is added.*
+
+
+`node . --foo baz`
+```
+{
+ "port": "3001",
+ "mode": "test",
+ "foo": "baz",
+ "_": [],
+ "configs": [
+ "/Users/stephen/repos/conftest/.myapprc"
+ ],
+ "config": "/Users/stephen/repos/conftest/.myapprc"
+}
+```
+*Same result as above but `foo` is overridden because command-line arguments take precedence over `.myapprc` file.*
+
+`node . --foo barbar --config config.json`
+```
+{
+ "port": 9000,
+ "mode": "test",
+ "foo": "barbar",
+ "something": "else",
+ "_": [],
+ "config": "config.json",
+ "configs": [
+ "/Users/stephen/repos/conftest/.myapprc",
+ "config.json"
+ ]
+}
+```
+*Now the `port` comes from the `config.json` file specified (overriding the value from `.myapprc`), and `foo` value is overriden by command-line despite also being specified in the `config.json` file.*
+
+
+
+## Advanced Usage
+
+#### Pass in your own `argv`
+
+You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12).
+
+```javascript
+require('rc')(appname, defaults, customArgvParser);
+```
+
+## Pass in your own parser
+
+If you have a special need to use a non-standard parser,
+you can do so by passing in the parser as the 4th argument.
+(leave the 3rd as null to get the default args parser)
+
+```javascript
+require('rc')(appname, defaults, null, parser);
+```
+
+This may also be used to force a more strict format,
+such as strict, valid JSON only.
+
+## Note on Performance
+
+`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler)
+
+
+## License
+
+Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/browser.js b/deps/npm/node_modules/rc/browser.js
index 9ea1a3e395..9ea1a3e395 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/browser.js
+++ b/deps/npm/node_modules/rc/browser.js
diff --git a/deps/npm/node_modules/rc/cli.js b/deps/npm/node_modules/rc/cli.js
new file mode 100755
index 0000000000..ab05b6072b
--- /dev/null
+++ b/deps/npm/node_modules/rc/cli.js
@@ -0,0 +1,4 @@
+#! /usr/bin/env node
+var rc = require('./index')
+
+console.log(JSON.stringify(rc(process.argv[2]), false, 2))
diff --git a/deps/npm/node_modules/rc/index.js b/deps/npm/node_modules/rc/index.js
new file mode 100755
index 0000000000..65eb47afe2
--- /dev/null
+++ b/deps/npm/node_modules/rc/index.js
@@ -0,0 +1,53 @@
+var cc = require('./lib/utils')
+var join = require('path').join
+var deepExtend = require('deep-extend')
+var etc = '/etc'
+var win = process.platform === "win32"
+var home = win
+ ? process.env.USERPROFILE
+ : process.env.HOME
+
+module.exports = function (name, defaults, argv, parse) {
+ if('string' !== typeof name)
+ throw new Error('rc(name): name *must* be string')
+ if(!argv)
+ argv = require('minimist')(process.argv.slice(2))
+ defaults = (
+ 'string' === typeof defaults
+ ? cc.json(defaults) : defaults
+ ) || {}
+
+ parse = parse || cc.parse
+
+ var env = cc.env(name + '_')
+
+ var configs = [defaults]
+ var configFiles = []
+ function addConfigFile (file) {
+ if (configFiles.indexOf(file) >= 0) return
+ var fileConfig = cc.file(file)
+ if (fileConfig) {
+ configs.push(parse(fileConfig))
+ configFiles.push(file)
+ }
+ }
+
+ // which files do we look at?
+ if (!win)
+ [join(etc, name, 'config'),
+ join(etc, name + 'rc')].forEach(addConfigFile)
+ if (home)
+ [join(home, '.config', name, 'config'),
+ join(home, '.config', name),
+ join(home, '.' + name, 'config'),
+ join(home, '.' + name + 'rc')].forEach(addConfigFile)
+ addConfigFile(cc.find('.'+name+'rc'))
+ if (env.config) addConfigFile(env.config)
+ if (argv.config) addConfigFile(argv.config)
+
+ return deepExtend.apply(null, configs.concat([
+ env,
+ argv,
+ configFiles.length ? {configs: configFiles, config: configFiles[configFiles.length - 1]} : undefined,
+ ]))
+}
diff --git a/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 b/deps/npm/node_modules/rc/lib/utils.js
index 52c201f7e1..52c201f7e1 100644
--- a/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
+++ b/deps/npm/node_modules/rc/lib/utils.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/.travis.yml
index 74c57bf15e..74c57bf15e 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/.travis.yml
diff --git a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE b/deps/npm/node_modules/rc/node_modules/minimist/LICENSE
index ee27ba4b44..ee27ba4b44 100644
--- a/deps/npm/node_modules/npm-packlist/node_modules/ignore-walk/node_modules/minimatch/node_modules/brace-expansion/node_modules/concat-map/LICENSE
+++ b/deps/npm/node_modules/rc/node_modules/minimist/LICENSE
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/example/parse.js
index abff3e8ee8..abff3e8ee8 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/example/parse.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/index.js
index e06783fb1c..e06783fb1c 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/index.js
diff --git a/deps/npm/node_modules/rc/node_modules/minimist/package.json b/deps/npm/node_modules/rc/node_modules/minimist/package.json
new file mode 100644
index 0000000000..e22b6fc47a
--- /dev/null
+++ b/deps/npm/node_modules/rc/node_modules/minimist/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "minimist@^1.2.0",
+ "_id": "minimist@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
+ "_location": "/rc/minimist",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "minimist@^1.2.0",
+ "name": "minimist",
+ "escapedName": "minimist",
+ "rawSpec": "^1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.0"
+ },
+ "_requiredBy": [
+ "/rc"
+ ],
+ "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "_shasum": "a35008b20f41383eec1fb914f4cd5df79a264284",
+ "_spec": "minimist@^1.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/rc",
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/minimist/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "parse argument options",
+ "devDependencies": {
+ "covert": "^1.0.0",
+ "tap": "~0.4.0",
+ "tape": "^3.5.0"
+ },
+ "homepage": "https://github.com/substack/minimist",
+ "keywords": [
+ "argv",
+ "getopt",
+ "parser",
+ "optimist"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "minimist",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/minimist.git"
+ },
+ "scripts": {
+ "coverage": "covert test/*.js",
+ "test": "tap test/*.js"
+ },
+ "testling": {
+ "files": "test/*.js",
+ "browsers": [
+ "ie/6..latest",
+ "ff/5",
+ "firefox/latest",
+ "chrome/10",
+ "chrome/latest",
+ "safari/5.1",
+ "safari/latest",
+ "opera/12"
+ ]
+ },
+ "version": "1.2.0"
+}
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/readme.markdown
index 30a74cf8c1..30a74cf8c1 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/readme.markdown
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/all_bool.js
index 25df1654bc..25df1654bc 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/all_bool.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/bool.js
index 6e793e4b64..6e793e4b64 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/bool.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/dash.js
index 5a4fa5be41..5a4fa5be41 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/dash.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/default_bool.js
index 780a311270..780a311270 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/default_bool.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/dotted.js
index d8b3e856ec..d8b3e856ec 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/dotted.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/kv_short.js
index ae880be466..ae880be466 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/kv_short.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/long.js
index 5d3a1e09d3..5d3a1e09d3 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/long.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/num.js
index 2cc77f4d62..2cc77f4d62 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/num.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/parse.js
index 58f24572c4..58f24572c4 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/parse.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/parse_modified.js
index a22248532f..a22248532f 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/parse_modified.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/short.js
index ac18880f1e..ac18880f1e 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/short.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/stop_early.js
index bdf9fbcb0b..bdf9fbcb0b 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/stop_early.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/unknown.js
index 462a36bdd7..462a36bdd7 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/unknown.js
diff --git a/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 b/deps/npm/node_modules/rc/node_modules/minimist/test/whitespace.js
index 8a52a58cec..8a52a58cec 100644
--- a/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
+++ b/deps/npm/node_modules/rc/node_modules/minimist/test/whitespace.js
diff --git a/deps/npm/node_modules/rc/package.json b/deps/npm/node_modules/rc/package.json
new file mode 100644
index 0000000000..ba78e395b4
--- /dev/null
+++ b/deps/npm/node_modules/rc/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "rc@^1.1.6",
+ "_id": "rc@1.2.7",
+ "_inBundle": false,
+ "_integrity": "sha512-LdLD8xD4zzLsAT5xyushXDNscEjB7+2ulnl8+r1pnESlYtlJtVSoCMBGr30eDRJ3+2Gq89jK9P9e4tCEH1+ywA==",
+ "_location": "/rc",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "rc@^1.1.6",
+ "name": "rc",
+ "escapedName": "rc",
+ "rawSpec": "^1.1.6",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.6"
+ },
+ "_requiredBy": [
+ "/registry-auth-token",
+ "/registry-url"
+ ],
+ "_resolved": "https://registry.npmjs.org/rc/-/rc-1.2.7.tgz",
+ "_shasum": "8a10ca30d588d00464360372b890d06dacd02297",
+ "_spec": "rc@^1.1.6",
+ "_where": "/Users/rebecca/code/npm/node_modules/registry-auth-token",
+ "author": {
+ "name": "Dominic Tarr",
+ "email": "dominic.tarr@gmail.com",
+ "url": "dominictarr.com"
+ },
+ "bin": {
+ "rc": "./cli.js"
+ },
+ "browser": "browser.js",
+ "bugs": {
+ "url": "https://github.com/dominictarr/rc/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "deep-extend": "^0.5.1",
+ "ini": "~1.3.0",
+ "minimist": "^1.2.0",
+ "strip-json-comments": "~2.0.1"
+ },
+ "deprecated": false,
+ "description": "hardwired configuration loader",
+ "homepage": "https://github.com/dominictarr/rc#readme",
+ "keywords": [
+ "config",
+ "rc",
+ "unix",
+ "defaults"
+ ],
+ "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
+ "main": "index.js",
+ "name": "rc",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/dominictarr/rc.git"
+ },
+ "scripts": {
+ "test": "set -e; node test/test.js; node test/ini.js; node test/nested-env-vars.js"
+ },
+ "version": "1.2.7"
+}
diff --git a/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 b/deps/npm/node_modules/rc/test/ini.js
index cdb1990062..cdb1990062 100644
--- a/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
+++ b/deps/npm/node_modules/rc/test/ini.js
diff --git a/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 b/deps/npm/node_modules/rc/test/nested-env-vars.js
index 0ecd176344..0ecd176344 100644
--- a/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
+++ b/deps/npm/node_modules/rc/test/nested-env-vars.js
diff --git a/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 b/deps/npm/node_modules/rc/test/test.js
index 4f6335189b..4f6335189b 100644
--- a/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
+++ b/deps/npm/node_modules/rc/test/test.js
diff --git a/deps/npm/node_modules/read-cmd-shim/package.json b/deps/npm/node_modules/read-cmd-shim/package.json
index dc9d91ee86..8df095488f 100644
--- a/deps/npm/node_modules/read-cmd-shim/package.json
+++ b/deps/npm/node_modules/read-cmd-shim/package.json
@@ -1,41 +1,44 @@
{
- "_from": "read-cmd-shim@~1.0.1",
+ "_args": [
+ [
+ "read-cmd-shim@1.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "read-cmd-shim@1.0.1",
"_id": "read-cmd-shim@1.0.1",
+ "_inBundle": false,
"_integrity": "sha1-LV0Vd4ajfAVdIgd8MsU/gynpHHs=",
"_location": "/read-cmd-shim",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "read-cmd-shim@~1.0.1",
+ "raw": "read-cmd-shim@1.0.1",
"name": "read-cmd-shim",
"escapedName": "read-cmd-shim",
- "rawSpec": "~1.0.1",
+ "rawSpec": "1.0.1",
"saveSpec": null,
- "fetchSpec": "~1.0.1"
+ "fetchSpec": "1.0.1"
},
"_requiredBy": [
- "/"
+ "/",
+ "/gentle-fs"
],
"_resolved": "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-1.0.1.tgz",
- "_shasum": "2d5d157786a37c055d22077c32c53f8329e91c7b",
- "_shrinkwrap": null,
- "_spec": "read-cmd-shim@~1.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
"url": "http://re-becca.org/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/read-cmd-shim/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.2"
},
- "deprecated": false,
"description": "Figure out what a cmd-shim is pointing at. This acts as the equivalent of fs.readlink.",
"devDependencies": {
"cmd-shim": "^2.0.1",
@@ -47,8 +50,6 @@
"license": "ISC",
"main": "index.js",
"name": "read-cmd-shim",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/read-cmd-shim.git"
diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/package.json b/deps/npm/node_modules/read-installed/node_modules/util-extend/package.json
deleted file mode 100644
index dfd3c2f4b6..0000000000
--- a/deps/npm/node_modules/read-installed/node_modules/util-extend/package.json
+++ /dev/null
@@ -1,49 +0,0 @@
-{
- "_from": "util-extend@^1.0.1",
- "_id": "util-extend@1.0.3",
- "_integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
- "_location": "/read-installed/util-extend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "util-extend@^1.0.1",
- "name": "util-extend",
- "escapedName": "util-extend",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/read-installed"
- ],
- "_resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz",
- "_shasum": "a7c216d267545169637b3b6edc6ca9119e2ff93f",
- "_shrinkwrap": null,
- "_spec": "util-extend@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/read-installed",
- "author": "",
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/util-extend/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Node's internal object extension function",
- "devDependencies": {},
- "homepage": "https://github.com/isaacs/util-extend#readme",
- "license": "MIT",
- "main": "extend.js",
- "name": "util-extend",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/util-extend.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.3"
-}
diff --git a/deps/npm/node_modules/read-installed/package.json b/deps/npm/node_modules/read-installed/package.json
index a1e5c222fd..f84ec75665 100644
--- a/deps/npm/node_modules/read-installed/package.json
+++ b/deps/npm/node_modules/read-installed/package.json
@@ -1,37 +1,40 @@
{
- "_from": "read-installed@~4.0.3",
+ "_args": [
+ [
+ "read-installed@4.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "read-installed@4.0.3",
"_id": "read-installed@4.0.3",
+ "_inBundle": false,
"_integrity": "sha1-/5uLZ/GH0eTCm5/rMfayI6zRkGc=",
"_location": "/read-installed",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "read-installed@~4.0.3",
+ "raw": "read-installed@4.0.3",
"name": "read-installed",
"escapedName": "read-installed",
- "rawSpec": "~4.0.3",
+ "rawSpec": "4.0.3",
"saveSpec": null,
- "fetchSpec": "~4.0.3"
+ "fetchSpec": "4.0.3"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/read-installed/-/read-installed-4.0.3.tgz",
- "_shasum": "ff9b8b67f187d1e4c29b9feb31f6b223acd19067",
- "_shrinkwrap": null,
- "_spec": "read-installed@~4.0.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "4.0.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/read-installed/issues"
},
- "bundleDependencies": false,
"dependencies": {
"debuglog": "^1.0.1",
"graceful-fs": "^4.1.2",
@@ -41,7 +44,6 @@
"slide": "~1.1.3",
"util-extend": "^1.0.1"
},
- "deprecated": false,
"description": "Read all the installed packages in a folder, and return a tree structure with all the data.",
"devDependencies": {
"mkdirp": "^0.5.0",
@@ -55,7 +57,6 @@
"optionalDependencies": {
"graceful-fs": "^4.1.2"
},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/read-installed.git"
diff --git a/deps/npm/node_modules/read-package-json/CHANGELOG.md b/deps/npm/node_modules/read-package-json/CHANGELOG.md
new file mode 100644
index 0000000000..25e9896cec
--- /dev/null
+++ b/deps/npm/node_modules/read-package-json/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="2.0.13"></a>
+## [2.0.13](https://github.com/npm/read-package-json/compare/v2.0.12...v2.0.13) (2018-03-08)
+
+
+### Bug Fixes
+
+* **git:** support git packed refs --all mode ([#77](https://github.com/npm/read-package-json/issues/77)) ([1869940](https://github.com/npm/read-package-json/commit/1869940))
diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md b/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md
deleted file mode 100644
index 843a0bcb94..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/CHANGELOG.md
+++ /dev/null
@@ -1,36 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="1.0.1"></a>
-## [1.0.1](https://github.com/zkat/json-parse-better-errors/compare/v1.0.0...v1.0.1) (2017-08-16)
-
-
-### Bug Fixes
-
-* **license:** oops. Forgot to update license.md ([efe2958](https://github.com/zkat/json-parse-better-errors/commit/efe2958))
-
-
-
-<a name="1.0.0"></a>
-# 1.0.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([562c977](https://github.com/zkat/json-parse-better-errors/commit/562c977))
-
-
-### BREAKING CHANGES
-
-* **init:** This is the first commit!
-
-
-
-<a name="0.1.0"></a>
-# 0.1.0 (2017-08-15)
-
-
-### Features
-
-* **init:** Initial Commit ([9dd1a19](https://github.com/zkat/json-parse-better-errors/commit/9dd1a19))
diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md b/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md
deleted file mode 100644
index c51842cc4a..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/LICENSE.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Copyright 2017 Kat MarchƔn
-
-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/read-package-json/node_modules/json-parse-better-errors/README.md b/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/README.md
deleted file mode 100644
index 667323c775..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/README.md
+++ /dev/null
@@ -1,53 +0,0 @@
-# json-parse-better-errors [![npm version](https://img.shields.io/npm/v/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![license](https://img.shields.io/npm/l/json-parse-better-errors.svg)](https://npm.im/json-parse-better-errors) [![Travis](https://img.shields.io/travis/zkat/json-parse-better-errors.svg)](https://travis-ci.org/zkat/json-parse-better-errors) [![AppVeyor](https://ci.appveyor.com/api/projects/status/github/zkat/json-parse-better-errors?svg=true)](https://ci.appveyor.com/project/zkat/json-parse-better-errors) [![Coverage Status](https://coveralls.io/repos/github/zkat/json-parse-better-errors/badge.svg?branch=latest)](https://coveralls.io/github/zkat/json-parse-better-errors?branch=latest)
-
-[`json-parse-better-errors`](https://github.com/zkat/json-parse-better-errors) is a Node.js library for managing
-local key and content address caches. It's really fast, really good at
-concurrency, and it will never give you corrupted data, even if cache files
-get corrupted or manipulated.
-
-It was originally written to be used as [npm](https://npm.im)'s local cache, but
-can just as easily be used on its own
-
-_Translations: [espaƱol](README.es.md)_
-
-## Install
-
-`$ npm install --save json-parse-better-errors`
-
-## Table of Contents
-
-* [Example](#example)
-* [Features](#features)
-* [Contributing](#contributing)
-* [API](#api)
- * [`parse`](#parse)
-
-### Example
-
-```javascript
-const parseJson = require('json-parse-better-errors')
-
-parseJson('"foo"')
-parseJson('garbage') // more useful error message
-```
-
-### Features
-
-* Like JSON.parse, but the errors are better.
-
-### Contributing
-
-The json-parse-better-errors team enthusiastically welcomes contributions and project participation! There's a bunch of things you can do if you want to contribute! The [Contributor Guide](CONTRIBUTING.md) has all the information you need for everything from reporting bugs to contributing entire new features. Please don't hesitate to jump in if you'd like to, or even ask us questions if something isn't clear.
-
-All participants and maintainers in this project are expected to follow [Code of Conduct](CODE_OF_CONDUCT.md), and just generally be excellent to each other.
-
-Please refer to the [Changelog](CHANGELOG.md) for project history details, too.
-
-Happy hacking!
-
-### API
-
-#### <a name="parse"></a> `> parse(txt, ?reviver, ?context=20)`
-
-Works just like `JSON.parse`, but will include a bit more information when an
-error happens.
diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js b/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js
deleted file mode 100644
index 32c3635866..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict'
-
-module.exports = parseJson
-function parseJson (txt, reviver, context) {
- context = context || 20
- try {
- return JSON.parse(txt, reviver)
- } catch (e) {
- const syntaxErr = e.message.match(/^Unexpected token.*position\s+(\d+)/i)
- const errIdx = syntaxErr
- ? +syntaxErr[1]
- : e.message.match(/^Unexpected end of JSON.*/i)
- ? txt.length - 1
- : null
- if (errIdx != null) {
- const start = errIdx <= context
- ? 0
- : errIdx - context
- const end = errIdx + context >= txt.length
- ? txt.length
- : errIdx + context
- e.message += ` while parsing near '${
- start === 0 ? '' : '...'
- }${txt.slice(start, end)}${
- end === txt.length ? '' : '...'
- }'`
- } else {
- e.message += ` while parsing '${txt.slice(0, context * 2)}'`
- }
- throw e
- }
-}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json b/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json
deleted file mode 100644
index f1dd5890c7..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/json-parse-better-errors/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "json-parse-better-errors@^1.0.0",
- "_id": "json-parse-better-errors@1.0.1",
- "_inBundle": false,
- "_integrity": "sha512-xyQpxeWWMKyJps9CuGJYeng6ssI5bpqS9ltQpdVQ90t4ql6NdnxFKh95JcRt2cun/DjMVNrdjniLPuMA69xmCw==",
- "_location": "/read-package-json/json-parse-better-errors",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-parse-better-errors@^1.0.0",
- "name": "json-parse-better-errors",
- "escapedName": "json-parse-better-errors",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/read-package-json"
- ],
- "_resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz",
- "_shasum": "50183cd1b2d25275de069e9e71b467ac9eab973a",
- "_spec": "json-parse-better-errors@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/read-package-json",
- "author": {
- "name": "Kat MarchƔn",
- "email": "kzm@sykosomatic.org"
- },
- "bugs": {
- "url": "https://github.com/zkat/json-parse-better-errors/issues"
- },
- "bundleDependencies": false,
- "config": {
- "nyc": {
- "exclude": [
- "node_modules/**",
- "test/**"
- ]
- }
- },
- "deprecated": false,
- "description": "JSON.parse with context information on error",
- "devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
- "weallbehave": "^1.2.0",
- "weallcontribute": "^1.0.8"
- },
- "files": [
- "*.js"
- ],
- "homepage": "https://github.com/zkat/json-parse-better-errors#readme",
- "keywords": [
- "JSON",
- "parser"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "json-parse-better-errors",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zkat/json-parse-better-errors.git"
- },
- "scripts": {
- "postrelease": "npm publish && git push --follow-tags",
- "prerelease": "npm t",
- "pretest": "standard",
- "release": "standard-version -s",
- "test": "tap -J --coverage test/*.js",
- "update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
- "update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/slash/package.json b/deps/npm/node_modules/read-package-json/node_modules/slash/package.json
deleted file mode 100644
index 847f1844de..0000000000
--- a/deps/npm/node_modules/read-package-json/node_modules/slash/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "slash@^1.0.0",
- "_id": "slash@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "_location": "/read-package-json/slash",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "slash@^1.0.0",
- "name": "slash",
- "escapedName": "slash",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/read-package-json"
- ],
- "_resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
- "_shasum": "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55",
- "_spec": "slash@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/read-package-json",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/slash/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Convert Windows backslash paths to slash paths",
- "devDependencies": {
- "mocha": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/slash#readme",
- "keywords": [
- "path",
- "seperator",
- "sep",
- "slash",
- "backslash",
- "windows",
- "win"
- ],
- "license": "MIT",
- "name": "slash",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/slash.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/read-package-json/package.json b/deps/npm/node_modules/read-package-json/package.json
index 0df406db67..d4b3405c7a 100644
--- a/deps/npm/node_modules/read-package-json/package.json
+++ b/deps/npm/node_modules/read-package-json/package.json
@@ -1,30 +1,35 @@
{
- "_from": "read-package-json@2.0.12",
- "_id": "read-package-json@2.0.12",
+ "_args": [
+ [
+ "read-package-json@2.0.13",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "read-package-json@2.0.13",
+ "_id": "read-package-json@2.0.13",
"_inBundle": false,
- "_integrity": "sha512-m7/I0+tP6D34EVvSlzCtuVA4D/dHL6OpLcn2e4XVP5X57pCKGUy1JjRSBVKHWpB+vUU91sL85h84qX0MdXzBSw==",
+ "_integrity": "sha512-/1dZ7TRZvGrYqE0UAfN6qQb5GYBsNcqS1C0tNK601CFOJmtHI7NIGXwetEPU/OtoFHZL3hDxm4rolFFVE9Bnmg==",
"_location": "/read-package-json",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "read-package-json@2.0.12",
+ "raw": "read-package-json@2.0.13",
"name": "read-package-json",
"escapedName": "read-package-json",
- "rawSpec": "2.0.12",
+ "rawSpec": "2.0.13",
"saveSpec": null,
- "fetchSpec": "2.0.12"
+ "fetchSpec": "2.0.13"
},
"_requiredBy": [
- "#USER",
"/",
"/init-package-json",
+ "/libcipm",
"/read-installed",
"/read-package-tree"
],
- "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.12.tgz",
- "_shasum": "68ea45f98b3741cb6e10ae3bbd42a605026a6951",
- "_spec": "read-package-json@2.0.12",
+ "_resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.0.13.tgz",
+ "_spec": "2.0.13",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -34,19 +39,18 @@
"bugs": {
"url": "https://github.com/npm/read-package-json/issues"
},
- "bundleDependencies": false,
"dependencies": {
"glob": "^7.1.1",
"graceful-fs": "^4.1.2",
- "json-parse-better-errors": "^1.0.0",
+ "json-parse-better-errors": "^1.0.1",
"normalize-package-data": "^2.0.0",
"slash": "^1.0.0"
},
- "deprecated": false,
"description": "The thing npm uses to read package.json files with semantics and defaults and validation",
"devDependencies": {
- "standard": "^9.0.1",
- "tap": "^10.3.0"
+ "standard": "^11.0.0",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.2"
},
"files": [
"read-json.js"
@@ -63,7 +67,11 @@
"url": "git+https://github.com/npm/read-package-json.git"
},
"scripts": {
- "test": "standard && tap -J test/*.js"
+ "postrelease": "npm publish && git push --follow-tags",
+ "prerelease": "npm t",
+ "pretest": "standard",
+ "release": "standard-version -s",
+ "test": "tap --nyc-arg=--all --coverage test/*.js"
},
- "version": "2.0.12"
+ "version": "2.0.13"
}
diff --git a/deps/npm/node_modules/read-package-json/read-json.js b/deps/npm/node_modules/read-package-json/read-json.js
index 969bcc030b..243af8e271 100644
--- a/deps/npm/node_modules/read-package-json/read-json.js
+++ b/deps/npm/node_modules/read-package-json/read-json.js
@@ -339,10 +339,26 @@ function githead_ (file, data, dir, head, cb) {
data.gitHead = head.trim()
return cb(null, data)
}
- var headFile = head.replace(/^ref: /, '').trim()
- headFile = path.resolve(dir, '.git', headFile)
+ var headRef = head.replace(/^ref: /, '').trim()
+ var headFile = path.resolve(dir, '.git', headRef)
fs.readFile(headFile, 'utf8', function (er, head) {
- if (er || !head) return cb(null, data)
+ if (er || !head) {
+ var packFile = path.resolve(dir, '.git/packed-refs')
+ return fs.readFile(packFile, 'utf8', function (er, refs) {
+ if (er || !refs) {
+ return cb(null, data)
+ }
+ refs = refs.split('\n')
+ for (var i = 0; i < refs.length; i++) {
+ var match = refs[i].match(/^([0-9a-f]{40}) (.+)$/)
+ if (match && match[2].trim() === headRef) {
+ data.gitHead = match[1]
+ break
+ }
+ }
+ return cb(null, data)
+ })
+ }
head = head.replace(/^ref: /, '').trim()
data.gitHead = head
return cb(null, data)
@@ -371,7 +387,7 @@ function checkBinReferences_ (file, data, warn, cb) {
var relName = data.bin[key]
try {
var binPath = path.resolve(dirName, relName)
- fs.exists(binPath, handleExists.bind(null, relName))
+ fs.stat(binPath, (err) => handleExists(relName, !err))
} catch (error) {
if (error.message === 'Arguments to path.resolve must be strings' || error.message.indexOf('Path must be a string') === 0) {
warn('Bin filename for ' + key + ' is not a string: ' + util.inspect(relName))
diff --git a/deps/npm/node_modules/read-package-tree/package.json b/deps/npm/node_modules/read-package-tree/package.json
index 55513a9394..bb7295dada 100644
--- a/deps/npm/node_modules/read-package-tree/package.json
+++ b/deps/npm/node_modules/read-package-tree/package.json
@@ -1,27 +1,31 @@
{
- "_from": "read-package-tree@5.1.6",
- "_id": "read-package-tree@5.1.6",
+ "_args": [
+ [
+ "read-package-tree@5.2.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "read-package-tree@5.2.1",
+ "_id": "read-package-tree@5.2.1",
"_inBundle": false,
- "_integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==",
+ "_integrity": "sha512-2CNoRoh95LxY47LvqrehIAfUVda2JbuFE/HaGYs42bNrGG+ojbw1h3zOcPcQ+1GQ3+rkzNndZn85u1XyZ3UsIA==",
"_location": "/read-package-tree",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "read-package-tree@5.1.6",
+ "raw": "read-package-tree@5.2.1",
"name": "read-package-tree",
"escapedName": "read-package-tree",
- "rawSpec": "5.1.6",
+ "rawSpec": "5.2.1",
"saveSpec": null,
- "fetchSpec": "5.1.6"
+ "fetchSpec": "5.2.1"
},
"_requiredBy": [
- "#USER",
"/"
],
- "_resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.6.tgz",
- "_shasum": "4f03e83d0486856fb60d97c94882841c2a7b1b7a",
- "_spec": "read-package-tree@5.1.6",
+ "_resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.2.1.tgz",
+ "_spec": "5.2.1",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -31,7 +35,6 @@
"bugs": {
"url": "https://github.com/npm/read-package-tree/issues"
},
- "bundleDependencies": false,
"dependencies": {
"debuglog": "^1.0.1",
"dezalgo": "^1.0.0",
@@ -39,7 +42,6 @@
"read-package-json": "^2.0.0",
"readdir-scoped-modules": "^1.0.0"
},
- "deprecated": false,
"description": "Read the contents of node_modules.",
"devDependencies": {
"archy": "^1.0.0",
@@ -64,5 +66,5 @@
"scripts": {
"test": "tap test/*.js"
},
- "version": "5.1.6"
+ "version": "5.2.1"
}
diff --git a/deps/npm/node_modules/read-package-tree/rpt.js b/deps/npm/node_modules/read-package-tree/rpt.js
index 96f1520120..c577ea1801 100644
--- a/deps/npm/node_modules/read-package-tree/rpt.js
+++ b/deps/npm/node_modules/read-package-tree/rpt.js
@@ -47,6 +47,12 @@ function Node (pkg, logical, physical, er, cache, fromLink) {
debug(node.constructor.name, dpath(physical), pkg && pkg._id)
+ const parent = path.dirname(logical)
+ if (parent[0] === '@') {
+ node.name = path.basename(parent) + '/' + path.basename(logical)
+ } else {
+ node.name = path.basename(logical)
+ }
node.path = logical
node.realpath = physical
node.error = er
@@ -77,6 +83,13 @@ function Link (pkg, logical, physical, realpath, er, cache) {
debug(this.constructor.name, dpath(physical), pkg && pkg._id)
+ const dir = path.dirname(logical)
+ const parent = path.dirname(dir)
+ if (parent[0] === '@') {
+ this.name = path.basename(parent) + '/' + path.basename(dir)
+ } else {
+ this.name = path.basename(dir)
+ }
this.id = ID++
this.path = logical
this.realpath = realpath
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml b/deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml
deleted file mode 100644
index 99f2bbf506..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-language: node_js
-language: node_js
-node_js:
- - '0.8'
- - '0.10'
- - '0.12'
- - 'iojs'
-before_install:
- - npm install -g npm@latest
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html
deleted file mode 100644
index de0934d61f..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for __root__/</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="../prettify.css" />
- <link rel="stylesheet" href="../base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- <a href="../index.html">all files</a> __root__/
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">77.03% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>57/74</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">57.14% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>28/49</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">93.33% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>14/15</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">79.1% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>53/67</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file medium" data-value="mute.js"><a href="mute.js.html">mute.js</a></td>
- <td data-value="77.03" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 77%;"></div><div class="cover-empty" style="width:23%;"></div></div></td>
- <td data-value="77.03" class="pct medium">77.03%</td>
- <td data-value="74" class="abs medium">57/74</td>
- <td data-value="57.14" class="pct medium">57.14%</td>
- <td data-value="49" class="abs medium">28/49</td>
- <td data-value="93.33" class="pct high">93.33%</td>
- <td data-value="15" class="abs high">14/15</td>
- <td data-value="79.1" class="pct medium">79.1%</td>
- <td data-value="67" class="abs medium">53/67</td>
- </tr>
-
-</tbody>
-</table>
-</div><div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 12 2016 22:19:00 GMT-0800 (PST)
-</div>
-</div>
-<script src="../prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="../sorter.js"></script>
-</body>
-</html>
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html
deleted file mode 100644
index 375a832652..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/__root__/mute.js.html
+++ /dev/null
@@ -1,500 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for mute.js</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="../prettify.css" />
- <link rel="stylesheet" href="../base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(../sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- <a href="../index.html">all files</a> / <a href="index.html">__root__/</a> mute.js
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">77.03% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>57/74</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">57.14% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>28/49</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">93.33% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>14/15</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">79.1% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>53/67</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<pre><table class="coverage">
-<tr><td class="line-count quiet">1
-2
-3
-4
-5
-6
-7
-8
-9
-10
-11
-12
-13
-14
-15
-16
-17
-18
-19
-20
-21
-22
-23
-24
-25
-26
-27
-28
-29
-30
-31
-32
-33
-34
-35
-36
-37
-38
-39
-40
-41
-42
-43
-44
-45
-46
-47
-48
-49
-50
-51
-52
-53
-54
-55
-56
-57
-58
-59
-60
-61
-62
-63
-64
-65
-66
-67
-68
-69
-70
-71
-72
-73
-74
-75
-76
-77
-78
-79
-80
-81
-82
-83
-84
-85
-86
-87
-88
-89
-90
-91
-92
-93
-94
-95
-96
-97
-98
-99
-100
-101
-102
-103
-104
-105
-106
-107
-108
-109
-110
-111
-112
-113
-114
-115
-116
-117
-118
-119
-120
-121
-122
-123
-124
-125
-126
-127
-128
-129
-130
-131
-132
-133
-134
-135
-136
-137
-138
-139
-140
-141
-142
-143
-144
-145
-146</td><td class="line-coverage quiet"><span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-yes">7Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">10Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">6Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">5Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">8Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">5Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">5Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">25Ɨ</span>
-<span class="cline-any cline-yes">13Ɨ</span>
-<span class="cline-any cline-yes">8Ɨ</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">8Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">20Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-yes">2Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">3Ɨ</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-no">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-neutral">&nbsp;</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-yes">1Ɨ</span>
-<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">var Stream = require('stream')
-&nbsp;
-module.exports = MuteStream
-&nbsp;
-// var out = new MuteStream(process.stdout)
-// argument auto-pipes
-function MuteStream (opts) {
- Stream.apply(this)
- opts = opts || {}
- this.writable = this.readable = true
- this.muted = false
- this.on('pipe', this._onpipe)
- this.replace = opts.replace
-&nbsp;
- // For readline-type situations
- // This much at the start of a line being redrawn after a ctrl char
- // is seen (such as backspace) won't be redrawn as the replacement
- this._prompt = opts.prompt || null
- this._hadControl = false
-}
-&nbsp;
-MuteStream.prototype = Object.create(Stream.prototype)
-&nbsp;
-Object.defineProperty(MuteStream.prototype, 'constructor', {
- value: MuteStream,
- enumerable: false
-})
-&nbsp;
-MuteStream.prototype.mute = function () {
- this.muted = true
-}
-&nbsp;
-MuteStream.prototype.unmute = function () {
- this.muted = false
-}
-&nbsp;
-Object.defineProperty(MuteStream.prototype, '_onpipe', {
- value: onPipe,
- enumerable: false,
- writable: true,
- configurable: true
-})
-&nbsp;
-function onPipe (src) {
- this._src = src
-}
-&nbsp;
-Object.defineProperty(MuteStream.prototype, 'isTTY', {
- get: getIsTTY,
- set: setIsTTY,
- enumerable: true,
- configurable: true
-})
-&nbsp;
-function getIsTTY () {
- return( (this._dest) ? this._dest.isTTY
- : (this._src) ? this._src.isTTY
- : false
- )
-}
-&nbsp;
-// basically just get replace the getter/setter with a regular value
-function setIsTTY (isTTY) {
- Object.defineProperty(this, 'isTTY', {
- value: isTTY,
- enumerable: true,
- writable: true,
- configurable: true
- })
-}
-&nbsp;
-Object.defineProperty(MuteStream.prototype, 'rows', {
- get: function () {
- return( this._dest ? this._dest.rows
- : this._src ? <span class="branch-0 cbranch-no" title="branch not covered" >this._src.rows</span>
- : undefined )
- }, enumerable: true, configurable: true })
-&nbsp;
-Object.defineProperty(MuteStream.prototype, 'columns', {
- get: function () {
- return( this._dest ? this._dest.columns
- : this._src ? <span class="branch-0 cbranch-no" title="branch not covered" >this._src.columns</span>
- : undefined )
- }, enumerable: true, configurable: true })
-&nbsp;
-&nbsp;
-MuteStream.prototype.pipe = function (dest, options) {
- this._dest = dest
- return Stream.prototype.pipe.call(this, dest, options)
-}
-&nbsp;
-MuteStream.prototype.pause = function () {
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this._src) return this._src.pause()
-}
-&nbsp;
-MuteStream.prototype.resume = function () {
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this._src) return this._src.resume()
-}
-&nbsp;
-MuteStream.prototype.write = function (c) {
- if (this.muted) {
- if (!this.replace) return true
- <span class="missing-if-branch" title="if path not taken" >I</span>if (c.match(/^\u001b/)) {
-<span class="cstat-no" title="statement not covered" > if(c.indexOf(this._prompt) === 0) {</span>
-<span class="cstat-no" title="statement not covered" > c = c.substr(this._prompt.length);</span>
-<span class="cstat-no" title="statement not covered" > c = c.replace(/./g, this.replace);</span>
-<span class="cstat-no" title="statement not covered" > c = this._prompt + c;</span>
- }
-<span class="cstat-no" title="statement not covered" > this._hadControl = true</span>
-<span class="cstat-no" title="statement not covered" > return this.emit('data', c)</span>
- } else {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (this._prompt &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >this._hadControl </span>&amp;&amp;
-<span class="branch-2 cbranch-no" title="branch not covered" > c.indexOf(this._prompt) === 0)</span> {
-<span class="cstat-no" title="statement not covered" > this._hadControl = false</span>
-<span class="cstat-no" title="statement not covered" > this.emit('data', this._prompt)</span>
-<span class="cstat-no" title="statement not covered" > c = c.substr(this._prompt.length)</span>
- }
- c = c.toString().replace(/./g, this.replace)
- }
- }
- this.emit('data', c)
-}
-&nbsp;
-MuteStream.prototype.end = function (c) {
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this.muted) {
- <span class="missing-if-branch" title="if path not taken" >I</span>if (c &amp;&amp; this.replace) {
-<span class="cstat-no" title="statement not covered" > c = c.toString().replace(/./g, this.replace)</span>
- } else {
- c = null
- }
- }
- <span class="missing-if-branch" title="if path not taken" >I</span>if (c) <span class="cstat-no" title="statement not covered" >this.emit('data', c)</span>
- this.emit('end')
-}
-&nbsp;
-function proxy (fn) { return <span class="fstat-no" title="function not covered" >function () {</span>
-<span class="cstat-no" title="statement not covered" > var d = this._dest</span>
-<span class="cstat-no" title="statement not covered" > var s = this._src</span>
-<span class="cstat-no" title="statement not covered" > if (d &amp;&amp; d[fn]) <span class="cstat-no" title="statement not covered" >d[fn].apply(d, arguments)</span></span>
-<span class="cstat-no" title="statement not covered" > if (s &amp;&amp; s[fn]) <span class="cstat-no" title="statement not covered" >s[fn].apply(s, arguments)</span></span>
-}}
-&nbsp;
-MuteStream.prototype.destroy = proxy('destroy')
-MuteStream.prototype.destroySoon = proxy('destroySoon')
-MuteStream.prototype.close = proxy('close')
-&nbsp;</pre></td></tr>
-</table></pre>
-<div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 12 2016 22:19:00 GMT-0800 (PST)
-</div>
-</div>
-<script src="../prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="../sorter.js"></script>
-</body>
-</html>
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css
deleted file mode 100644
index 0c0571dad9..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/base.css
+++ /dev/null
@@ -1,212 +0,0 @@
-body, html {
- margin:0; padding: 0;
- height: 100%;
-}
-body {
- font-family: Helvetica Neue, Helvetica, Arial;
- font-size: 14px;
- color:#333;
-}
-.small { font-size: 12px;; }
-*, *:after, *:before {
- -webkit-box-sizing:border-box;
- -moz-box-sizing:border-box;
- box-sizing:border-box;
- }
-h1 { font-size: 20px; margin: 0;}
-h2 { font-size: 14px; }
-pre {
- font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
- margin: 0;
- padding: 0;
- -moz-tab-size: 2;
- -o-tab-size: 2;
- tab-size: 2;
-}
-a { color:#0074D9; text-decoration:none; }
-a:hover { text-decoration:underline; }
-.strong { font-weight: bold; }
-.space-top1 { padding: 10px 0 0 0; }
-.pad2y { padding: 20px 0; }
-.pad1y { padding: 10px 0; }
-.pad2x { padding: 0 20px; }
-.pad2 { padding: 20px; }
-.pad1 { padding: 10px; }
-.space-left2 { padding-left:55px; }
-.space-right2 { padding-right:20px; }
-.center { text-align:center; }
-.clearfix { display:block; }
-.clearfix:after {
- content:'';
- display:block;
- height:0;
- clear:both;
- visibility:hidden;
- }
-.fl { float: left; }
-@media only screen and (max-width:640px) {
- .col3 { width:100%; max-width:100%; }
- .hide-mobile { display:none!important; }
-}
-
-.quiet {
- color: #7f7f7f;
- color: rgba(0,0,0,0.5);
-}
-.quiet a { opacity: 0.7; }
-
-.fraction {
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
- font-size: 10px;
- color: #555;
- background: #E8E8E8;
- padding: 4px 5px;
- border-radius: 3px;
- vertical-align: middle;
-}
-
-div.path a:link, div.path a:visited { color: #333; }
-table.coverage {
- border-collapse: collapse;
- margin: 10px 0 0 0;
- padding: 0;
-}
-
-table.coverage td {
- margin: 0;
- padding: 0;
- vertical-align: top;
-}
-table.coverage td.line-count {
- text-align: right;
- padding: 0 5px 0 20px;
-}
-table.coverage td.line-coverage {
- text-align: right;
- padding-right: 10px;
- min-width:20px;
-}
-
-table.coverage td span.cline-any {
- display: inline-block;
- padding: 0 5px;
- width: 100%;
-}
-.missing-if-branch {
- display: inline-block;
- margin-right: 5px;
- border-radius: 3px;
- position: relative;
- padding: 0 4px;
- background: #333;
- color: yellow;
-}
-
-.skip-if-branch {
- display: none;
- margin-right: 10px;
- position: relative;
- padding: 0 4px;
- background: #ccc;
- color: white;
-}
-.missing-if-branch .typ, .skip-if-branch .typ {
- color: inherit !important;
-}
-.coverage-summary {
- border-collapse: collapse;
- width: 100%;
-}
-.coverage-summary tr { border-bottom: 1px solid #bbb; }
-.keyline-all { border: 1px solid #ddd; }
-.coverage-summary td, .coverage-summary th { padding: 10px; }
-.coverage-summary tbody { border: 1px solid #bbb; }
-.coverage-summary td { border-right: 1px solid #bbb; }
-.coverage-summary td:last-child { border-right: none; }
-.coverage-summary th {
- text-align: left;
- font-weight: normal;
- white-space: nowrap;
-}
-.coverage-summary th.file { border-right: none !important; }
-.coverage-summary th.pct { }
-.coverage-summary th.pic,
-.coverage-summary th.abs,
-.coverage-summary td.pct,
-.coverage-summary td.abs { text-align: right; }
-.coverage-summary td.file { white-space: nowrap; }
-.coverage-summary td.pic { min-width: 120px !important; }
-.coverage-summary tfoot td { }
-
-.coverage-summary .sorter {
- height: 10px;
- width: 7px;
- display: inline-block;
- margin-left: 0.5em;
- background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
-}
-.coverage-summary .sorted .sorter {
- background-position: 0 -20px;
-}
-.coverage-summary .sorted-desc .sorter {
- background-position: 0 -10px;
-}
-.status-line { height: 10px; }
-/* dark red */
-.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
-.low .chart { border:1px solid #C21F39 }
-/* medium red */
-.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
-/* light red */
-.low, .cline-no { background:#FCE1E5 }
-/* light green */
-.high, .cline-yes { background:rgb(230,245,208) }
-/* medium green */
-.cstat-yes { background:rgb(161,215,106) }
-/* dark green */
-.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
-.high .chart { border:1px solid rgb(77,146,33) }
-
-
-.medium .chart { border:1px solid #666; }
-.medium .cover-fill { background: #666; }
-
-.cbranch-no { background: yellow !important; color: #111; }
-
-.cstat-skip { background: #ddd; color: #111; }
-.fstat-skip { background: #ddd; color: #111 !important; }
-.cbranch-skip { background: #ddd !important; color: #111; }
-
-span.cline-neutral { background: #eaeaea; }
-.medium { background: #eaeaea; }
-
-.cover-fill, .cover-empty {
- display:inline-block;
- height: 12px;
-}
-.chart {
- line-height: 0;
-}
-.cover-empty {
- background: white;
-}
-.cover-full {
- border-right: none !important;
-}
-pre.prettyprint {
- border: none !important;
- padding: 0 !important;
- margin: 0 !important;
-}
-.com { color: #999 !important; }
-.ignore-none { color: #999; font-weight: normal; }
-
-.wrapper {
- min-height: 100%;
- height: auto !important;
- height: 100%;
- margin: 0 auto -48px;
-}
-.footer, .push {
- height: 48px;
-}
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html
deleted file mode 100644
index 17d7a760e8..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/index.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
- <title>Code coverage report for All files</title>
- <meta charset="utf-8" />
- <link rel="stylesheet" href="prettify.css" />
- <link rel="stylesheet" href="base.css" />
- <meta name="viewport" content="width=device-width, initial-scale=1">
- <style type='text/css'>
- .coverage-summary .sorter {
- background-image: url(sort-arrow-sprite.png);
- }
- </style>
-</head>
-<body>
-<div class='wrapper'>
- <div class='pad1'>
- <h1>
- /
- </h1>
- <div class='clearfix'>
- <div class='fl pad1y space-right2'>
- <span class="strong">77.03% </span>
- <span class="quiet">Statements</span>
- <span class='fraction'>57/74</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">57.14% </span>
- <span class="quiet">Branches</span>
- <span class='fraction'>28/49</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">93.33% </span>
- <span class="quiet">Functions</span>
- <span class='fraction'>14/15</span>
- </div>
- <div class='fl pad1y space-right2'>
- <span class="strong">79.1% </span>
- <span class="quiet">Lines</span>
- <span class='fraction'>53/67</span>
- </div>
- </div>
- </div>
- <div class='status-line medium'></div>
-<div class="pad1">
-<table class="coverage-summary">
-<thead>
-<tr>
- <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
- <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
- <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
- <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
- <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
- <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
- <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
- <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
-</tr>
-</thead>
-<tbody><tr>
- <td class="file medium" data-value="__root__/"><a href="__root__/index.html">__root__/</a></td>
- <td data-value="77.03" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 77%;"></div><div class="cover-empty" style="width:23%;"></div></div></td>
- <td data-value="77.03" class="pct medium">77.03%</td>
- <td data-value="74" class="abs medium">57/74</td>
- <td data-value="57.14" class="pct medium">57.14%</td>
- <td data-value="49" class="abs medium">28/49</td>
- <td data-value="93.33" class="pct high">93.33%</td>
- <td data-value="15" class="abs high">14/15</td>
- <td data-value="79.1" class="pct medium">79.1%</td>
- <td data-value="67" class="abs medium">53/67</td>
- </tr>
-
-</tbody>
-</table>
-</div><div class='push'></div><!-- for sticky footer -->
-</div><!-- /wrapper -->
-<div class='footer quiet pad2 space-top1 center small'>
- Code coverage
- generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Fri Feb 12 2016 22:19:00 GMT-0800 (PST)
-</div>
-</div>
-<script src="prettify.js"></script>
-<script>
-window.onload = function () {
- if (typeof prettyPrint === 'function') {
- prettyPrint();
- }
-};
-</script>
-<script src="sorter.js"></script>
-</body>
-</html>
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css
deleted file mode 100644
index b317a7cda3..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.css
+++ /dev/null
@@ -1 +0,0 @@
-.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js
deleted file mode 100644
index ef51e03866..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/prettify.js
+++ /dev/null
@@ -1 +0,0 @@
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png
deleted file mode 100644
index 03f704a609..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sort-arrow-sprite.png
+++ /dev/null
Binary files differ
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js
deleted file mode 100644
index 6c5034e403..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov-report/sorter.js
+++ /dev/null
@@ -1,158 +0,0 @@
-var addSorting = (function () {
- "use strict";
- var cols,
- currentSort = {
- index: 0,
- desc: false
- };
-
- // returns the summary table element
- function getTable() { return document.querySelector('.coverage-summary'); }
- // returns the thead element of the summary table
- function getTableHeader() { return getTable().querySelector('thead tr'); }
- // returns the tbody element of the summary table
- function getTableBody() { return getTable().querySelector('tbody'); }
- // returns the th element for nth column
- function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
-
- // loads all columns
- function loadColumns() {
- var colNodes = getTableHeader().querySelectorAll('th'),
- colNode,
- cols = [],
- col,
- i;
-
- for (i = 0; i < colNodes.length; i += 1) {
- colNode = colNodes[i];
- col = {
- key: colNode.getAttribute('data-col'),
- sortable: !colNode.getAttribute('data-nosort'),
- type: colNode.getAttribute('data-type') || 'string'
- };
- cols.push(col);
- if (col.sortable) {
- col.defaultDescSort = col.type === 'number';
- colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
- }
- }
- return cols;
- }
- // attaches a data attribute to every tr element with an object
- // of data values keyed by column name
- function loadRowData(tableRow) {
- var tableCols = tableRow.querySelectorAll('td'),
- colNode,
- col,
- data = {},
- i,
- val;
- for (i = 0; i < tableCols.length; i += 1) {
- colNode = tableCols[i];
- col = cols[i];
- val = colNode.getAttribute('data-value');
- if (col.type === 'number') {
- val = Number(val);
- }
- data[col.key] = val;
- }
- return data;
- }
- // loads all row data
- function loadData() {
- var rows = getTableBody().querySelectorAll('tr'),
- i;
-
- for (i = 0; i < rows.length; i += 1) {
- rows[i].data = loadRowData(rows[i]);
- }
- }
- // sorts the table using the data for the ith column
- function sortByIndex(index, desc) {
- var key = cols[index].key,
- sorter = function (a, b) {
- a = a.data[key];
- b = b.data[key];
- return a < b ? -1 : a > b ? 1 : 0;
- },
- finalSorter = sorter,
- tableBody = document.querySelector('.coverage-summary tbody'),
- rowNodes = tableBody.querySelectorAll('tr'),
- rows = [],
- i;
-
- if (desc) {
- finalSorter = function (a, b) {
- return -1 * sorter(a, b);
- };
- }
-
- for (i = 0; i < rowNodes.length; i += 1) {
- rows.push(rowNodes[i]);
- tableBody.removeChild(rowNodes[i]);
- }
-
- rows.sort(finalSorter);
-
- for (i = 0; i < rows.length; i += 1) {
- tableBody.appendChild(rows[i]);
- }
- }
- // removes sort indicators for current column being sorted
- function removeSortIndicators() {
- var col = getNthColumn(currentSort.index),
- cls = col.className;
-
- cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
- col.className = cls;
- }
- // adds sort indicators for current column being sorted
- function addSortIndicators() {
- getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
- }
- // adds event listeners for all sorter widgets
- function enableUI() {
- var i,
- el,
- ithSorter = function ithSorter(i) {
- var col = cols[i];
-
- return function () {
- var desc = col.defaultDescSort;
-
- if (currentSort.index === i) {
- desc = !currentSort.desc;
- }
- sortByIndex(i, desc);
- removeSortIndicators();
- currentSort.index = i;
- currentSort.desc = desc;
- addSortIndicators();
- };
- };
- for (i =0 ; i < cols.length; i += 1) {
- if (cols[i].sortable) {
- // add the click event handler on the th so users
- // dont have to click on those tiny arrows
- el = getNthColumn(i).querySelector('.sorter').parentElement;
- if (el.addEventListener) {
- el.addEventListener('click', ithSorter(i));
- } else {
- el.attachEvent('onclick', ithSorter(i));
- }
- }
- }
- }
- // adds sorting functionality to the UI
- return function () {
- if (!getTable()) {
- return;
- }
- cols = loadColumns();
- loadData(cols);
- addSortIndicators();
- enableUI();
- };
-})();
-
-window.addEventListener('load', addSorting);
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info b/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info
deleted file mode 100644
index 5f2a58e42d..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/coverage/lcov.info
+++ /dev/null
@@ -1,155 +0,0 @@
-TN:
-SF:./mute.js
-FN:7,MuteStream
-FN:29,(anonymous_2)
-FN:33,(anonymous_3)
-FN:44,onPipe
-FN:55,getIsTTY
-FN:63,setIsTTY
-FN:73,(anonymous_7)
-FN:80,(anonymous_8)
-FN:87,(anonymous_9)
-FN:92,(anonymous_10)
-FN:96,(anonymous_11)
-FN:100,(anonymous_12)
-FN:124,(anonymous_13)
-FN:136,proxy
-FN:136,(anonymous_15)
-FNF:15
-FNH:14
-FNDA:7,MuteStream
-FNDA:10,(anonymous_2)
-FNDA:6,(anonymous_3)
-FNDA:5,onPipe
-FNDA:8,getIsTTY
-FNDA:2,setIsTTY
-FNDA:5,(anonymous_7)
-FNDA:5,(anonymous_8)
-FNDA:2,(anonymous_9)
-FNDA:2,(anonymous_10)
-FNDA:2,(anonymous_11)
-FNDA:25,(anonymous_12)
-FNDA:2,(anonymous_13)
-FNDA:3,proxy
-FNDA:0,(anonymous_15)
-DA:1,1
-DA:3,1
-DA:7,1
-DA:8,7
-DA:9,7
-DA:10,7
-DA:11,7
-DA:12,7
-DA:13,7
-DA:18,7
-DA:19,7
-DA:22,1
-DA:24,1
-DA:29,1
-DA:30,10
-DA:33,1
-DA:34,6
-DA:37,1
-DA:44,1
-DA:45,5
-DA:48,1
-DA:55,1
-DA:56,8
-DA:63,1
-DA:64,2
-DA:72,1
-DA:74,5
-DA:79,1
-DA:81,5
-DA:87,1
-DA:88,2
-DA:89,2
-DA:92,1
-DA:93,2
-DA:96,1
-DA:97,2
-DA:100,1
-DA:101,25
-DA:102,13
-DA:103,8
-DA:104,0
-DA:105,0
-DA:106,0
-DA:107,0
-DA:109,0
-DA:110,0
-DA:112,8
-DA:114,0
-DA:115,0
-DA:116,0
-DA:118,8
-DA:121,20
-DA:124,1
-DA:125,2
-DA:126,2
-DA:127,0
-DA:129,2
-DA:132,2
-DA:133,2
-DA:136,3
-DA:137,0
-DA:138,0
-DA:139,0
-DA:140,0
-DA:143,1
-DA:144,1
-DA:145,1
-LF:67
-LH:53
-BRDA:9,1,0,7
-BRDA:9,1,1,5
-BRDA:18,2,0,7
-BRDA:18,2,1,7
-BRDA:56,3,0,3
-BRDA:56,3,1,5
-BRDA:57,4,0,3
-BRDA:57,4,1,2
-BRDA:74,5,0,4
-BRDA:74,5,1,1
-BRDA:75,6,0,0
-BRDA:75,6,1,1
-BRDA:81,7,0,4
-BRDA:81,7,1,1
-BRDA:82,8,0,0
-BRDA:82,8,1,1
-BRDA:93,9,0,2
-BRDA:93,9,1,0
-BRDA:97,10,0,2
-BRDA:97,10,1,0
-BRDA:101,11,0,13
-BRDA:101,11,1,12
-BRDA:102,12,0,5
-BRDA:102,12,1,8
-BRDA:103,13,0,0
-BRDA:103,13,1,8
-BRDA:104,14,0,0
-BRDA:104,14,1,0
-BRDA:112,15,0,0
-BRDA:112,15,1,8
-BRDA:112,16,0,8
-BRDA:112,16,1,0
-BRDA:112,16,2,0
-BRDA:125,17,0,2
-BRDA:125,17,1,0
-BRDA:126,18,0,0
-BRDA:126,18,1,2
-BRDA:126,19,0,2
-BRDA:126,19,1,1
-BRDA:132,20,0,0
-BRDA:132,20,1,2
-BRDA:139,21,0,0
-BRDA:139,21,1,0
-BRDA:139,22,0,0
-BRDA:139,22,1,0
-BRDA:140,23,0,0
-BRDA:140,23,1,0
-BRDA:140,24,0,0
-BRDA:140,24,1,0
-BRF:49
-BRH:28
-end_of_record
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/package.json b/deps/npm/node_modules/read/node_modules/mute-stream/package.json
deleted file mode 100644
index f3982383e1..0000000000
--- a/deps/npm/node_modules/read/node_modules/mute-stream/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "mute-stream@~0.0.4",
- "_id": "mute-stream@0.0.7",
- "_integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=",
- "_location": "/read/mute-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "mute-stream@~0.0.4",
- "name": "mute-stream",
- "escapedName": "mute-stream",
- "rawSpec": "~0.0.4",
- "saveSpec": null,
- "fetchSpec": "~0.0.4"
- },
- "_requiredBy": [
- "/read"
- ],
- "_resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
- "_shasum": "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab",
- "_shrinkwrap": null,
- "_spec": "mute-stream@~0.0.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/read",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/mute-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Bytes go in, but they don't come out (when muted).",
- "devDependencies": {
- "tap": "^5.4.4"
- },
- "directories": {
- "test": "test"
- },
- "homepage": "https://github.com/isaacs/mute-stream#readme",
- "keywords": [
- "mute",
- "stream",
- "pipe"
- ],
- "license": "ISC",
- "main": "mute.js",
- "name": "mute-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/mute-stream.git"
- },
- "scripts": {
- "test": "tap test/*.js --cov"
- },
- "version": "0.0.7"
-}
diff --git a/deps/npm/node_modules/read/package.json b/deps/npm/node_modules/read/package.json
index 621382ff91..4f04e47771 100644
--- a/deps/npm/node_modules/read/package.json
+++ b/deps/npm/node_modules/read/package.json
@@ -1,43 +1,45 @@
{
- "_from": "read@~1.0.7",
+ "_args": [
+ [
+ "read@1.0.7",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "read@1.0.7",
"_id": "read@1.0.7",
+ "_inBundle": false,
"_integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
"_location": "/read",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "read@~1.0.7",
+ "raw": "read@1.0.7",
"name": "read",
"escapedName": "read",
- "rawSpec": "~1.0.7",
+ "rawSpec": "1.0.7",
"saveSpec": null,
- "fetchSpec": "~1.0.7"
+ "fetchSpec": "1.0.7"
},
"_requiredBy": [
"/",
"/init-package-json",
- "/init-package-json/promzard"
+ "/promzard"
],
"_resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
- "_shasum": "b3da19bd052431a97671d44a42634adf710b40c4",
- "_shrinkwrap": null,
- "_spec": "read@~1.0.7",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.7",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/read/issues"
},
- "bundleDependencies": false,
"dependencies": {
"mute-stream": "~0.0.4"
},
- "deprecated": false,
"description": "read(1) for node programs",
"devDependencies": {
"tap": "^1.2.0"
@@ -52,8 +54,6 @@
"license": "ISC",
"main": "lib/read.js",
"name": "read",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/read.git"
diff --git a/deps/npm/node_modules/readable-stream/.npmignore b/deps/npm/node_modules/readable-stream/.npmignore
deleted file mode 100644
index 6d270c6ccb..0000000000
--- a/deps/npm/node_modules/readable-stream/.npmignore
+++ /dev/null
@@ -1,9 +0,0 @@
-build/
-test/
-examples/
-fs.js
-zlib.js
-.zuul.yml
-.nyc_output
-coverage
-docs/
diff --git a/deps/npm/node_modules/readable-stream/.travis.yml b/deps/npm/node_modules/readable-stream/.travis.yml
index 0c5d2bc262..40992555bf 100644
--- a/deps/npm/node_modules/readable-stream/.travis.yml
+++ b/deps/npm/node_modules/readable-stream/.travis.yml
@@ -46,18 +46,8 @@ matrix:
env: TASK=test
- node_js: 8
env: TASK=test
- - node_js: 6
- env: TASK=browser BROWSER_NAME=ie BROWSER_VERSION="9..latest"
- - node_js: 6
- env: TASK=browser BROWSER_NAME=opera BROWSER_VERSION="11..latest"
- - node_js: 6
- env: TASK=browser BROWSER_NAME=chrome BROWSER_VERSION="-3..latest"
- - node_js: 6
- env: TASK=browser BROWSER_NAME=firefox BROWSER_VERSION="-3..latest"
- - node_js: 6
- env: TASK=browser BROWSER_NAME=safari BROWSER_VERSION="5..latest"
- - node_js: 6
- env: TASK=browser BROWSER_NAME=microsoftedge BROWSER_VERSION=latest
+ - node_js: 9
+ env: TASK=test
script: "npm run $TASK"
env:
global:
diff --git a/deps/npm/node_modules/readable-stream/README.md b/deps/npm/node_modules/readable-stream/README.md
index b24a2c88f8..23fe3f3e30 100644
--- a/deps/npm/node_modules/readable-stream/README.md
+++ b/deps/npm/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core v8.1.3 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
@@ -18,7 +18,7 @@ npm install --save readable-stream
This package is a mirror of the Streams2 and Streams3 implementations in
Node-core.
-Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.1.3/docs/api/stream.html).
+Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html).
If you want to guarantee a stable streams base, regardless of what version of
Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
@@ -55,3 +55,4 @@ Node.js. The responsibilities of the Streams Working Group include:
* **Domenic Denicola** ([@domenic](https://github.com/domenic)) &lt;d@domenic.me&gt;
* **Matteo Collina** ([@mcollina](https://github.com/mcollina)) &lt;matteo.collina@gmail.com&gt;
- Release GPG key: 3ABC01543F22DD2239285CDD818674489FBC127E
+* **Irina Shestak** ([@lrlna](https://github.com/lrlna)) &lt;shestak.irina@gmail.com&gt;
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
index c599463dd8..a1ca813e5a 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_duplex.js
@@ -28,7 +28,7 @@
/*<replacement>*/
-var processNextTick = require('process-nextick-args');
+var pna = require('process-nextick-args');
/*</replacement>*/
/*<replacement>*/
@@ -52,10 +52,13 @@ var Writable = require('./_stream_writable');
util.inherits(Duplex, Readable);
-var keys = objectKeys(Writable.prototype);
-for (var v = 0; v < keys.length; v++) {
- var method = keys[v];
- if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+{
+ // avoid scope creep, the keys array can then be collected
+ var keys = objectKeys(Writable.prototype);
+ for (var v = 0; v < keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+ }
}
function Duplex(options) {
@@ -74,6 +77,16 @@ function Duplex(options) {
this.once('end', onend);
}
+Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', {
+ // making it explicit this property is not enumerable
+ // because otherwise some prototype manipulation in
+ // userland will fail
+ enumerable: false,
+ get: function () {
+ return this._writableState.highWaterMark;
+ }
+});
+
// the no-half-open enforcer
function onend() {
// if we allow half-open state, or if the writable side ended,
@@ -82,7 +95,7 @@ function onend() {
// no more data can be written.
// But allow more writes to happen in this tick.
- processNextTick(onEndNT, this);
+ pna.nextTick(onEndNT, this);
}
function onEndNT(self) {
@@ -114,11 +127,5 @@ Duplex.prototype._destroy = function (err, cb) {
this.push(null);
this.end();
- processNextTick(cb, err);
-};
-
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-} \ No newline at end of file
+ pna.nextTick(cb, err);
+}; \ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
index ee9001cdf0..bf34ac65e1 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_readable.js
@@ -23,7 +23,7 @@
/*<replacement>*/
-var processNextTick = require('process-nextick-args');
+var pna = require('process-nextick-args');
/*</replacement>*/
module.exports = Readable;
@@ -50,9 +50,8 @@ var EElistenerCount = function (emitter, type) {
var Stream = require('./internal/streams/stream');
/*</replacement>*/
-// TODO(bmeurer): Change this back to const once hole checks are
-// properly optimized away early in Ignition+TurboFan.
/*<replacement>*/
+
var Buffer = require('safe-buffer').Buffer;
var OurUint8Array = global.Uint8Array || function () {};
function _uint8ArrayToBuffer(chunk) {
@@ -61,6 +60,7 @@ function _uint8ArrayToBuffer(chunk) {
function _isUint8Array(obj) {
return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
+
/*</replacement>*/
/*<replacement>*/
@@ -89,15 +89,13 @@ var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];
function prependListener(emitter, event, fn) {
// Sadly this is not cacheable as some libraries bundle their own
// event emitter implementation with them.
- if (typeof emitter.prependListener === 'function') {
- return emitter.prependListener(event, fn);
- } else {
- // This is a hack to make sure that our error handler is attached before any
- // userland ones. NEVER DO THIS. This is here only because this code needs
- // to continue to work with older versions of Node.js that do not include
- // the prependListener() method. The goal is to eventually remove this hack.
- if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
- }
+ if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);
+
+ // This is a hack to make sure that our error handler is attached before any
+ // userland ones. NEVER DO THIS. This is here only because this code needs
+ // to continue to work with older versions of Node.js that do not include
+ // the prependListener() method. The goal is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
}
function ReadableState(options, stream) {
@@ -105,17 +103,26 @@ function ReadableState(options, stream) {
options = options || {};
+ // Duplex streams are both readable and writable, but share
+ // the same options object.
+ // However, some cases require setting options to different
+ // values for the readable and the writable sides of the duplex stream.
+ // These options can be provided separately as readableXXX and writableXXX.
+ var isDuplex = stream instanceof Duplex;
+
// object stream flag. Used to make read(n) ignore n and to
// make all the buffer merging and length checks go away
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+ if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
// the point at which it stops calling _read() to fill the buffer
// Note: 0 is a valid value, means "don't call _read preemptively ever"
var hwm = options.highWaterMark;
+ var readableHwm = options.readableHighWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;
// cast to ints.
this.highWaterMark = Math.floor(this.highWaterMark);
@@ -488,7 +495,7 @@ function emitReadable(stream) {
if (!state.emittedReadable) {
debug('emitReadable', state.flowing);
state.emittedReadable = true;
- if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
+ if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);
}
}
@@ -507,7 +514,7 @@ function emitReadable_(stream) {
function maybeReadMore(stream, state) {
if (!state.readingMore) {
state.readingMore = true;
- processNextTick(maybeReadMore_, stream, state);
+ pna.nextTick(maybeReadMore_, stream, state);
}
}
@@ -552,7 +559,7 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;
var endFn = doEnd ? onend : unpipe;
- if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
+ if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);
dest.on('unpipe', onunpipe);
function onunpipe(readable, unpipeInfo) {
@@ -742,7 +749,7 @@ Readable.prototype.on = function (ev, fn) {
state.readableListening = state.needReadable = true;
state.emittedReadable = false;
if (!state.reading) {
- processNextTick(nReadingNextTick, this);
+ pna.nextTick(nReadingNextTick, this);
} else if (state.length) {
emitReadable(this);
}
@@ -773,7 +780,7 @@ Readable.prototype.resume = function () {
function resume(stream, state) {
if (!state.resumeScheduled) {
state.resumeScheduled = true;
- processNextTick(resume_, stream, state);
+ pna.nextTick(resume_, stream, state);
}
}
@@ -810,18 +817,19 @@ function flow(stream) {
// This is *not* part of the readable stream interface.
// It is an ugly unfortunate mess of history.
Readable.prototype.wrap = function (stream) {
+ var _this = this;
+
var state = this._readableState;
var paused = false;
- var self = this;
stream.on('end', function () {
debug('wrapped end');
if (state.decoder && !state.ended) {
var chunk = state.decoder.end();
- if (chunk && chunk.length) self.push(chunk);
+ if (chunk && chunk.length) _this.push(chunk);
}
- self.push(null);
+ _this.push(null);
});
stream.on('data', function (chunk) {
@@ -831,7 +839,7 @@ Readable.prototype.wrap = function (stream) {
// don't skip over falsy values in objectMode
if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;
- var ret = self.push(chunk);
+ var ret = _this.push(chunk);
if (!ret) {
paused = true;
stream.pause();
@@ -852,12 +860,12 @@ Readable.prototype.wrap = function (stream) {
// proxy certain important events.
for (var n = 0; n < kProxyEvents.length; n++) {
- stream.on(kProxyEvents[n], self.emit.bind(self, kProxyEvents[n]));
+ stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));
}
// when we try to consume some more bytes, simply unpause the
// underlying stream.
- self._read = function (n) {
+ this._read = function (n) {
debug('wrapped _read', n);
if (paused) {
paused = false;
@@ -865,9 +873,19 @@ Readable.prototype.wrap = function (stream) {
}
};
- return self;
+ return this;
};
+Object.defineProperty(Readable.prototype, 'readableHighWaterMark', {
+ // making it explicit this property is not enumerable
+ // because otherwise some prototype manipulation in
+ // userland will fail
+ enumerable: false,
+ get: function () {
+ return this._readableState.highWaterMark;
+ }
+});
+
// exposed for testing purposes only.
Readable._fromList = fromList;
@@ -980,7 +998,7 @@ function endReadable(stream) {
if (!state.endEmitted) {
state.ended = true;
- processNextTick(endReadableNT, state, stream);
+ pna.nextTick(endReadableNT, state, stream);
}
}
@@ -993,12 +1011,6 @@ function endReadableNT(state, stream) {
}
}
-function forEach(xs, f) {
- for (var i = 0, l = xs.length; i < l; i++) {
- f(xs[i], i);
- }
-}
-
function indexOf(xs, x) {
for (var i = 0, l = xs.length; i < l; i++) {
if (xs[i] === x) return i;
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
index a0c23173da..5d1f8b876d 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_transform.js
@@ -74,39 +74,28 @@ util.inherits = require('inherits');
util.inherits(Transform, Duplex);
-function TransformState(stream) {
- this.afterTransform = function (er, data) {
- return afterTransform(stream, er, data);
- };
-
- this.needTransform = false;
- this.transforming = false;
- this.writecb = null;
- this.writechunk = null;
- this.writeencoding = null;
-}
-
-function afterTransform(stream, er, data) {
- var ts = stream._transformState;
+function afterTransform(er, data) {
+ var ts = this._transformState;
ts.transforming = false;
var cb = ts.writecb;
if (!cb) {
- return stream.emit('error', new Error('write callback called multiple times'));
+ return this.emit('error', new Error('write callback called multiple times'));
}
ts.writechunk = null;
ts.writecb = null;
- if (data !== null && data !== undefined) stream.push(data);
+ if (data != null) // single equals check for both `null` and `undefined`
+ this.push(data);
cb(er);
- var rs = stream._readableState;
+ var rs = this._readableState;
rs.reading = false;
if (rs.needReadable || rs.length < rs.highWaterMark) {
- stream._read(rs.highWaterMark);
+ this._read(rs.highWaterMark);
}
}
@@ -115,9 +104,14 @@ function Transform(options) {
Duplex.call(this, options);
- this._transformState = new TransformState(this);
-
- var stream = this;
+ this._transformState = {
+ afterTransform: afterTransform.bind(this),
+ needTransform: false,
+ transforming: false,
+ writecb: null,
+ writechunk: null,
+ writeencoding: null
+ };
// start out asking for a readable event once data is transformed.
this._readableState.needReadable = true;
@@ -134,11 +128,19 @@ function Transform(options) {
}
// When the writable side finishes, then flush out anything remaining.
- this.once('prefinish', function () {
- if (typeof this._flush === 'function') this._flush(function (er, data) {
- done(stream, er, data);
- });else done(stream);
- });
+ this.on('prefinish', prefinish);
+}
+
+function prefinish() {
+ var _this = this;
+
+ if (typeof this._flush === 'function') {
+ this._flush(function (er, data) {
+ done(_this, er, data);
+ });
+ } else {
+ done(this, null, null);
+ }
}
Transform.prototype.push = function (chunk, encoding) {
@@ -188,27 +190,25 @@ Transform.prototype._read = function (n) {
};
Transform.prototype._destroy = function (err, cb) {
- var _this = this;
+ var _this2 = this;
Duplex.prototype._destroy.call(this, err, function (err2) {
cb(err2);
- _this.emit('close');
+ _this2.emit('close');
});
};
function done(stream, er, data) {
if (er) return stream.emit('error', er);
- if (data !== null && data !== undefined) stream.push(data);
+ if (data != null) // single equals check for both `null` and `undefined`
+ stream.push(data);
// if there's nothing in the write buffer, then that means
// that nothing more will ever be provided
- var ws = stream._writableState;
- var ts = stream._transformState;
-
- if (ws.length) throw new Error('Calling transform done when ws.length != 0');
+ if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');
- if (ts.transforming) throw new Error('Calling transform done when still transforming');
+ if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');
return stream.push(null);
} \ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
index d20da88c75..b3f4e85a2f 100644
--- a/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
+++ b/deps/npm/node_modules/readable-stream/lib/_stream_writable.js
@@ -27,7 +27,7 @@
/*<replacement>*/
-var processNextTick = require('process-nextick-args');
+var pna = require('process-nextick-args');
/*</replacement>*/
module.exports = Writable;
@@ -54,7 +54,7 @@ function CorkedRequest(state) {
/* </replacement> */
/*<replacement>*/
-var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
+var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;
/*</replacement>*/
/*<replacement>*/
@@ -79,6 +79,7 @@ var Stream = require('./internal/streams/stream');
/*</replacement>*/
/*<replacement>*/
+
var Buffer = require('safe-buffer').Buffer;
var OurUint8Array = global.Uint8Array || function () {};
function _uint8ArrayToBuffer(chunk) {
@@ -87,6 +88,7 @@ function _uint8ArrayToBuffer(chunk) {
function _isUint8Array(obj) {
return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;
}
+
/*</replacement>*/
var destroyImpl = require('./internal/streams/destroy');
@@ -100,18 +102,27 @@ function WritableState(options, stream) {
options = options || {};
+ // Duplex streams are both readable and writable, but share
+ // the same options object.
+ // However, some cases require setting options to different
+ // values for the readable and the writable sides of the duplex stream.
+ // These options can be provided separately as readableXXX and writableXXX.
+ var isDuplex = stream instanceof Duplex;
+
// object stream flag to indicate whether or not this stream
// contains buffers or objects.
this.objectMode = !!options.objectMode;
- if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+ if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
// the point at which write() starts returning false
// Note: 0 is a valid value, means that we always return false if
// the entire buffer is not flushed immediately on write()
var hwm = options.highWaterMark;
+ var writableHwm = options.writableHighWaterMark;
var defaultHwm = this.objectMode ? 16 : 16 * 1024;
- this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+
+ if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;
// cast to ints.
this.highWaterMark = Math.floor(this.highWaterMark);
@@ -225,6 +236,7 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot
Object.defineProperty(Writable, Symbol.hasInstance, {
value: function (object) {
if (realHasInstance.call(this, object)) return true;
+ if (this !== Writable) return false;
return object && object._writableState instanceof WritableState;
}
@@ -276,7 +288,7 @@ function writeAfterEnd(stream, cb) {
var er = new Error('write after end');
// TODO: defer error events consistently everywhere, not just the cb
stream.emit('error', er);
- processNextTick(cb, er);
+ pna.nextTick(cb, er);
}
// Checks that a user-supplied chunk is valid, especially for the particular
@@ -293,7 +305,7 @@ function validChunk(stream, state, chunk, cb) {
}
if (er) {
stream.emit('error', er);
- processNextTick(cb, er);
+ pna.nextTick(cb, er);
valid = false;
}
return valid;
@@ -302,7 +314,7 @@ function validChunk(stream, state, chunk, cb) {
Writable.prototype.write = function (chunk, encoding, cb) {
var state = this._writableState;
var ret = false;
- var isBuf = _isUint8Array(chunk) && !state.objectMode;
+ var isBuf = !state.objectMode && _isUint8Array(chunk);
if (isBuf && !Buffer.isBuffer(chunk)) {
chunk = _uint8ArrayToBuffer(chunk);
@@ -356,6 +368,16 @@ function decodeChunk(state, chunk, encoding) {
return chunk;
}
+Object.defineProperty(Writable.prototype, 'writableHighWaterMark', {
+ // making it explicit this property is not enumerable
+ // because otherwise some prototype manipulation in
+ // userland will fail
+ enumerable: false,
+ get: function () {
+ return this._writableState.highWaterMark;
+ }
+});
+
// if we're already writing something, then just put this
// in the queue, and wait our turn. Otherwise, call _write
// If we return false, then we need a drain event, so set that flag.
@@ -413,10 +435,10 @@ function onwriteError(stream, state, sync, er, cb) {
if (sync) {
// defer the callback if we are being called synchronously
// to avoid piling up things on the stack
- processNextTick(cb, er);
+ pna.nextTick(cb, er);
// this can emit finish, and it will always happen
// after error
- processNextTick(finishMaybe, stream, state);
+ pna.nextTick(finishMaybe, stream, state);
stream._writableState.errorEmitted = true;
stream.emit('error', er);
} else {
@@ -514,6 +536,7 @@ function clearBuffer(stream, state) {
} else {
state.corkedRequestsFree = new CorkedRequest(state);
}
+ state.bufferedRequestCount = 0;
} else {
// Slow case, write chunks one-by-one
while (entry) {
@@ -524,6 +547,7 @@ function clearBuffer(stream, state) {
doWrite(stream, state, false, len, chunk, encoding, cb);
entry = entry.next;
+ state.bufferedRequestCount--;
// if we didn't call the onwrite immediately, then
// it means that we need to wait until it does.
// also, that means that the chunk and cb are currently
@@ -536,7 +560,6 @@ function clearBuffer(stream, state) {
if (entry === null) state.lastBufferedRequest = null;
}
- state.bufferedRequestCount = 0;
state.bufferedRequest = entry;
state.bufferProcessing = false;
}
@@ -590,7 +613,7 @@ function prefinish(stream, state) {
if (typeof stream._final === 'function') {
state.pendingcb++;
state.finalCalled = true;
- processNextTick(callFinal, stream, state);
+ pna.nextTick(callFinal, stream, state);
} else {
state.prefinished = true;
stream.emit('prefinish');
@@ -614,7 +637,7 @@ function endWritable(stream, state, cb) {
state.ending = true;
finishMaybe(stream, state);
if (cb) {
- if (state.finished) processNextTick(cb);else stream.once('finish', cb);
+ if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);
}
state.ended = true;
stream.writable = false;
diff --git a/deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js b/deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js
index d467615978..aefc68bd90 100644
--- a/deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js
+++ b/deps/npm/node_modules/readable-stream/lib/internal/streams/BufferList.js
@@ -1,11 +1,9 @@
'use strict';
-/*<replacement>*/
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Buffer = require('safe-buffer').Buffer;
-/*</replacement>*/
+var util = require('util');
function copyBuffer(src, target, offset) {
src.copy(target, offset);
@@ -71,4 +69,11 @@ module.exports = function () {
};
return BufferList;
-}(); \ No newline at end of file
+}();
+
+if (util && util.inspect && util.inspect.custom) {
+ module.exports.prototype[util.inspect.custom] = function () {
+ var obj = util.inspect({ length: this.length });
+ return this.constructor.name + ' ' + obj;
+ };
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js b/deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js
index b3e58c33bc..5a0a0d88ce 100644
--- a/deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js
+++ b/deps/npm/node_modules/readable-stream/lib/internal/streams/destroy.js
@@ -2,7 +2,7 @@
/*<replacement>*/
-var processNextTick = require('process-nextick-args');
+var pna = require('process-nextick-args');
/*</replacement>*/
// undocumented cb() API, needed for core, not for public API
@@ -16,9 +16,9 @@ function destroy(err, cb) {
if (cb) {
cb(err);
} else if (err && (!this._writableState || !this._writableState.errorEmitted)) {
- processNextTick(emitErrorNT, this, err);
+ pna.nextTick(emitErrorNT, this, err);
}
- return;
+ return this;
}
// we set destroyed to true before firing error callbacks in order
@@ -35,7 +35,7 @@ function destroy(err, cb) {
this._destroy(err || null, function (err) {
if (!cb && err) {
- processNextTick(emitErrorNT, _this, err);
+ pna.nextTick(emitErrorNT, _this, err);
if (_this._writableState) {
_this._writableState.errorEmitted = true;
}
@@ -43,6 +43,8 @@ function destroy(err, cb) {
cb(err);
}
});
+
+ return this;
}
function undestroy() {
diff --git a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json
deleted file mode 100644
index a87745dfbc..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "core-util-is@~1.0.0",
- "_id": "core-util-is@1.0.2",
- "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "_location": "/readable-stream/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"
- ],
- "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "_shrinkwrap": null,
- "_spec": "core-util-is@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/core-util-is/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/readable-stream/node_modules/isarray/.npmignore b/deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile b/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile
deleted file mode 100644
index 787d56e1e9..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-
-test:
- @node_modules/.bin/tape test.js
-
-.PHONY: test
-
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
deleted file mode 100644
index 81795b00ab..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "isarray@~1.0.0",
- "_id": "isarray@1.0.0",
- "_integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "_location": "/readable-stream/isarray",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "isarray@~1.0.0",
- "name": "isarray",
- "escapedName": "isarray",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "_shasum": "bb935d48582cba168c06834957a54a3e07124f11",
- "_shrinkwrap": null,
- "_spec": "isarray@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/juliangruber/isarray/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Array#isArray for older browsers",
- "devDependencies": {
- "tape": "~2.13.4"
- },
- "homepage": "https://github.com/juliangruber/isarray",
- "keywords": [
- "browser",
- "isarray",
- "array"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "isarray",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/isarray.git"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "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.0.0"
-}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js b/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js
deleted file mode 100644
index e0c3444d85..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/test.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var isArray = require('./');
-var test = require('tape');
-
-test('is array', function(t){
- t.ok(isArray([]));
- t.notOk(isArray({}));
- t.notOk(isArray(null));
- t.notOk(isArray(false));
-
- var obj = {};
- obj[0] = true;
- t.notOk(isArray(obj));
-
- var arr = [];
- arr.foo = 'bar';
- t.ok(isArray(arr));
-
- t.end();
-});
-
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml b/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml
deleted file mode 100644
index 36201b1001..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/.travis.yml
+++ /dev/null
@@ -1,12 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
- - "0.11"
- - "0.12"
- - "1.7.1"
- - 1
- - 2
- - 3
- - 4
- - 5
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js b/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js
deleted file mode 100644
index a4f40f845f..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-if (!process.version ||
- process.version.indexOf('v0.') === 0 ||
- process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {
- module.exports = nextTick;
-} else {
- module.exports = process.nextTick;
-}
-
-function nextTick(fn, arg1, arg2, arg3) {
- if (typeof fn !== 'function') {
- throw new TypeError('"callback" argument must be a function');
- }
- var len = arguments.length;
- var args, i;
- switch (len) {
- case 0:
- case 1:
- return process.nextTick(fn);
- case 2:
- return process.nextTick(function afterTickOne() {
- fn.call(null, arg1);
- });
- case 3:
- return process.nextTick(function afterTickTwo() {
- fn.call(null, arg1, arg2);
- });
- case 4:
- return process.nextTick(function afterTickThree() {
- fn.call(null, arg1, arg2, arg3);
- });
- default:
- args = new Array(len - 1);
- i = 0;
- while (i < args.length) {
- args[i++] = arguments[i];
- }
- return process.nextTick(function afterTick() {
- fn.apply(null, args);
- });
- }
-}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json b/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json
deleted file mode 100644
index 5d463a4b3f..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "process-nextick-args@~1.0.6",
- "_id": "process-nextick-args@1.0.7",
- "_integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "_location": "/readable-stream/process-nextick-args",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "process-nextick-args@~1.0.6",
- "name": "process-nextick-args",
- "escapedName": "process-nextick-args",
- "rawSpec": "~1.0.6",
- "saveSpec": null,
- "fetchSpec": "~1.0.6"
- },
- "_requiredBy": [
- "/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "_shasum": "150e20b756590ad3f91093f25a4f2ad8bff30ba3",
- "_shrinkwrap": null,
- "_spec": "process-nextick-args@~1.0.6",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream",
- "author": "",
- "bin": null,
- "bugs": {
- "url": "https://github.com/calvinmetcalf/process-nextick-args/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "process.nextTick but always with args",
- "devDependencies": {
- "tap": "~0.2.6"
- },
- "homepage": "https://github.com/calvinmetcalf/process-nextick-args",
- "license": "MIT",
- "main": "index.js",
- "name": "process-nextick-args",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/calvinmetcalf/process-nextick-args.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.7"
-}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md b/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md
deleted file mode 100644
index 78e7cfaeb7..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/readme.md
+++ /dev/null
@@ -1,18 +0,0 @@
-process-nextick-args
-=====
-
-[![Build Status](https://travis-ci.org/calvinmetcalf/process-nextick-args.svg?branch=master)](https://travis-ci.org/calvinmetcalf/process-nextick-args)
-
-```bash
-npm install --save process-nextick-args
-```
-
-Always be able to pass arguments to process.nextTick, no matter the platform
-
-```js
-var nextTick = require('process-nextick-args');
-
-nextTick(function (a, b, c) {
- console.log(a, b, c);
-}, 'step', 3, 'profit');
-```
diff --git a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js b/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js
deleted file mode 100644
index ef15721584..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/process-nextick-args/test.js
+++ /dev/null
@@ -1,24 +0,0 @@
-var test = require("tap").test;
-var nextTick = require('./');
-
-test('should work', function (t) {
- t.plan(5);
- nextTick(function (a) {
- t.ok(a);
- nextTick(function (thing) {
- t.equals(thing, 7);
- }, 7);
- }, true);
- nextTick(function (a, b, c) {
- t.equals(a, 'step');
- t.equals(b, 3);
- t.equals(c, 'profit');
- }, 'step', 3, 'profit');
-});
-
-test('correct number of arguments', function (t) {
- t.plan(1);
- nextTick(function () {
- t.equals(2, arguments.length, 'correct number');
- }, 1, 2);
-});
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md
deleted file mode 100644
index dc3a2d2160..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# string_decoder
-
-***Node-core v7.0.0 string_decoder for userland***
-
-
-[![NPM](https://nodei.co/npm/string_decoder.png?downloads=true&downloadRank=true)](https://nodei.co/npm/string_decoder/)
-[![NPM](https://nodei.co/npm-dl/string_decoder.png?&months=6&height=3)](https://nodei.co/npm/string_decoder/)
-
-
-```bash
-npm install --save string_decoder
-```
-
-***Node-core string_decoderstring_decoder for userland***
-
-This package is a mirror of the string_decoder implementation in Node-core.
-
-Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v7.8.0/docs/api/).
-
-As of version 1.0.0 **string_decoder** uses semantic versioning.
-
-## Previous versions
-
-Previous version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10.
-
-## Update
-
-The *build/* directory contains a build script that will scrape the source from the [nodejs/node](https://github.com/nodejs/node) repo given a specific Node version.
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json
deleted file mode 100644
index 18fd806ea4..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "string_decoder@~1.0.0",
- "_id": "string_decoder@1.0.3",
- "_inBundle": false,
- "_integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "_location": "/readable-stream/string_decoder",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string_decoder@~1.0.0",
- "name": "string_decoder",
- "escapedName": "string_decoder",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "_shasum": "0fc67d7c141825de94282dd536bec6b9bce860ab",
- "_spec": "string_decoder@~1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
- "bugs": {
- "url": "https://github.com/rvagg/string_decoder/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "safe-buffer": "~5.1.0"
- },
- "deprecated": false,
- "description": "The string_decoder module from Node core",
- "devDependencies": {
- "babel-polyfill": "^6.23.0",
- "tap": "~0.4.8"
- },
- "homepage": "https://github.com/rvagg/string_decoder",
- "keywords": [
- "string",
- "decoder",
- "browser",
- "browserify"
- ],
- "license": "MIT",
- "main": "lib/string_decoder.js",
- "name": "string_decoder",
- "repository": {
- "type": "git",
- "url": "git://github.com/rvagg/string_decoder.git"
- },
- "scripts": {
- "test": "tap test/parallel/*.js && node test/verify-dependencies"
- },
- "version": "1.0.3"
-}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json b/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json
deleted file mode 100644
index 5cede8b070..0000000000
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "util-deprecate@~1.0.1",
- "_id": "util-deprecate@1.0.2",
- "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "_location": "/readable-stream/util-deprecate",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "util-deprecate@~1.0.1",
- "name": "util-deprecate",
- "escapedName": "util-deprecate",
- "rawSpec": "~1.0.1",
- "saveSpec": null,
- "fetchSpec": "~1.0.1"
- },
- "_requiredBy": [
- "/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
- "_shrinkwrap": null,
- "_spec": "util-deprecate@~1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream",
- "author": {
- "name": "Nathan Rajlich",
- "email": "nathan@tootallnate.net",
- "url": "http://n8.io/"
- },
- "bin": null,
- "browser": "browser.js",
- "bugs": {
- "url": "https://github.com/TooTallNate/util-deprecate/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "The Node.js `util.deprecate()` function with browser support",
- "devDependencies": {},
- "homepage": "https://github.com/TooTallNate/util-deprecate",
- "keywords": [
- "util",
- "deprecate",
- "browserify",
- "browser",
- "node"
- ],
- "license": "MIT",
- "main": "node.js",
- "name": "util-deprecate",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/TooTallNate/util-deprecate.git"
- },
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/readable-stream/package.json b/deps/npm/node_modules/readable-stream/package.json
index e6813c0db6..a5db7b6129 100644
--- a/deps/npm/node_modules/readable-stream/package.json
+++ b/deps/npm/node_modules/readable-stream/package.json
@@ -1,46 +1,43 @@
{
- "_from": "readable-stream@2.3.3",
- "_id": "readable-stream@2.3.3",
+ "_args": [
+ [
+ "readable-stream@2.3.6",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "readable-stream@2.3.6",
+ "_id": "readable-stream@2.3.6",
"_inBundle": false,
- "_integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
+ "_integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"_location": "/readable-stream",
- "_phantomChildren": {
- "safe-buffer": "5.1.1"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "readable-stream@2.3.3",
+ "raw": "readable-stream@2.3.6",
"name": "readable-stream",
"escapedName": "readable-stream",
- "rawSpec": "2.3.3",
+ "rawSpec": "2.3.6",
"saveSpec": null,
- "fetchSpec": "2.3.3"
+ "fetchSpec": "2.3.6"
},
"_requiredBy": [
- "#USER",
"/",
+ "/are-we-there-yet",
+ "/concat-stream",
+ "/duplexify",
+ "/flush-write-stream",
+ "/from2",
"/fs-write-stream-atomic",
- "/mississippi/concat-stream",
- "/mississippi/duplexify",
- "/mississippi/flush-write-stream",
- "/mississippi/from2",
- "/mississippi/parallel-transform",
- "/mississippi/through2",
- "/npm-registry-client/concat-stream",
- "/npmlog/are-we-there-yet",
- "/pacote/tar-stream",
- "/pacote/tar-stream/bl",
+ "/parallel-transform",
"/sha",
- "/sorted-union-stream/stream-iterate",
- "/standard/eslint/concat-stream",
- "/tap",
- "/tap/tap-mocha-reporter",
- "/tap/tap-parser"
+ "/stream-iterate",
+ "/tap-mocha-reporter",
+ "/tap-mocha-reporter/tap-parser",
+ "/through2"
],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "_shasum": "368f2512d79f9d46fdfc71349ae7878bbc1eb95c",
- "_spec": "readable-stream@2.3.3",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+ "_spec": "2.3.6",
"_where": "/Users/rebecca/code/npm",
"browser": {
"util": false,
@@ -52,26 +49,24 @@
"bugs": {
"url": "https://github.com/nodejs/readable-stream/issues"
},
- "bundleDependencies": false,
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
- "process-nextick-args": "~1.0.6",
+ "process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
- "string_decoder": "~1.0.3",
+ "string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
},
- "deprecated": false,
"description": "Streams3, a user-land copy of the stream library from Node.js",
"devDependencies": {
- "assert": "~1.4.0",
+ "assert": "^1.4.0",
"babel-polyfill": "^6.9.1",
"buffer": "^4.9.0",
+ "lolex": "^2.3.2",
"nyc": "^6.4.0",
- "tap": "~0.7.1",
- "tape": "~4.5.1",
- "zuul": "~3.10.0"
+ "tap": "^0.7.0",
+ "tape": "^4.8.0"
},
"homepage": "https://github.com/nodejs/readable-stream#readme",
"keywords": [
@@ -92,12 +87,10 @@
"url": "git://github.com/nodejs/readable-stream.git"
},
"scripts": {
- "browser": "npm run write-zuul && zuul --browser-retries 2 -- test/browser.js",
+ "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js",
"cover": "nyc npm test",
- "local": "zuul --local 3000 --no-coverage -- test/browser.js",
"report": "nyc report --reporter=lcov",
- "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js",
- "write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml"
+ "test": "tap test/parallel/*.js test/ours/*.js && node test/verify-dependencies.js"
},
- "version": "2.3.3"
+ "version": "2.3.6"
}
diff --git a/deps/npm/node_modules/readdir-scoped-modules/package.json b/deps/npm/node_modules/readdir-scoped-modules/package.json
index 60c2b25edb..92afa2d992 100644
--- a/deps/npm/node_modules/readdir-scoped-modules/package.json
+++ b/deps/npm/node_modules/readdir-scoped-modules/package.json
@@ -1,18 +1,25 @@
{
- "_from": "readdir-scoped-modules@*",
+ "_args": [
+ [
+ "readdir-scoped-modules@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "readdir-scoped-modules@1.0.2",
"_id": "readdir-scoped-modules@1.0.2",
+ "_inBundle": false,
"_integrity": "sha1-n6+jfShr5dksuuve4DDcm19AZ0c=",
"_location": "/readdir-scoped-modules",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "readdir-scoped-modules@*",
+ "raw": "readdir-scoped-modules@1.0.2",
"name": "readdir-scoped-modules",
"escapedName": "readdir-scoped-modules",
- "rawSpec": "*",
+ "rawSpec": "1.0.2",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "1.0.2"
},
"_requiredBy": [
"/",
@@ -20,27 +27,22 @@
"/read-package-tree"
],
"_resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.0.2.tgz",
- "_shasum": "9fafa37d286be5d92cbaebdee030dc9b5f406747",
- "_shrinkwrap": null,
- "_spec": "readdir-scoped-modules@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/readdir-scoped-modules/issues"
},
- "bundleDependencies": false,
"dependencies": {
"debuglog": "^1.0.1",
"dezalgo": "^1.0.0",
"graceful-fs": "^4.1.2",
"once": "^1.3.0"
},
- "deprecated": false,
"description": "Like `fs.readdir` but handling `@org/module` dirs as if they were a single entry.",
"devDependencies": {
"tap": "^1.2.0"
@@ -52,8 +54,6 @@
"license": "ISC",
"main": "readdir.js",
"name": "readdir-scoped-modules",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/readdir-scoped-modules.git"
diff --git a/deps/npm/node_modules/registry-auth-token/CHANGELOG.md b/deps/npm/node_modules/registry-auth-token/CHANGELOG.md
new file mode 100644
index 0000000000..75f7b6f2f7
--- /dev/null
+++ b/deps/npm/node_modules/registry-auth-token/CHANGELOG.md
@@ -0,0 +1,106 @@
+# Change Log
+
+All notable changes will be documented in this file.
+
+## [3.3.2] - 2018-01-26
+
+### Changes
+
+- Support password with ENV variable tokens (Nowell Strite)
+
+## [3.3.1] - 2017-05-02
+
+### Fixes
+
+- Auth legacy token is basic auth (Hutson Betts)
+
+## [3.3.0] - 2017-04-24
+
+### Changes
+
+- Support legacy auth token config key (Zoltan Kochan)
+- Use safe-buffer module for backwards-compatible base64 encoding/decoding (Espen Hovlandsdal)
+- Change to standard.js coding style (Espen Hovlandsdal)
+
+## [3.2.0] - 2017-04-20
+
+### Changes
+
+- Allow passing parsed npmrc from outside (Zoltan Kochan)
+
+## [3.1.2] - 2017-04-07
+
+### Changes
+
+- Avoid infinite loop on invalid URL (Zoltan Kochan)
+
+## [3.1.1] - 2017-04-06
+
+### Changes
+
+- Nerf-dart URLs even if recursive is set to false (Espen Hovlandsdal)
+
+## [3.1.0] - 2016-10-19
+
+### Changes
+
+- Return the password and username for Basic authorization (Zoltan Kochan)
+
+## [3.0.1] - 2016-08-07
+
+### Changes
+
+- Fix recursion bug (Lukas Eipert)
+- Implement alternative base64 encoding/decoding implementation for Node 6 (Lukas Eipert)
+
+## [3.0.0] - 2016-08-04
+
+### Added
+
+- Support for Basic Authentication (username/password) (Lukas Eipert)
+
+### Changes
+
+- The result format of the output changed from a simple string to an object which contains the token type
+
+```js
+ // before: returns 'tokenString'
+ // after: returns {token: 'tokenString', type: 'Bearer'}
+ getAuthToken()
+```
+
+## [2.1.1] - 2016-07-10
+
+### Changes
+
+- Fix infinite loop when recursively resolving registry URLs on Windows (Espen Hovlandsdal)
+
+## [2.1.0] - 2016-07-07
+
+### Added
+
+- Add feature to find configured registry URL for a scope (Espen Hovlandsdal)
+
+## [2.0.0] - 2016-06-17
+
+### Changes
+
+- Fix tokens defined by reference to environment variables (Dan MacTough)
+
+## [1.1.1] - 2016-04-26
+
+### Changes
+
+- Fix for registries with port number in URL (Ryan Day)
+
+[1.1.1]: https://github.com/rexxars/registry-auth-token/compare/a5b4fe2f5ff982110eb8a813ba1b3b3c5d851af1...v1.1.1
+[2.0.0]: https://github.com/rexxars/registry-auth-token/compare/v1.1.1...v2.0.0
+[2.1.0]: https://github.com/rexxars/registry-auth-token/compare/v2.0.0...v2.1.0
+[2.1.1]: https://github.com/rexxars/registry-auth-token/compare/v2.1.0...v2.1.1
+[3.0.0]: https://github.com/rexxars/registry-auth-token/compare/v2.1.1...v3.0.0
+[3.0.1]: https://github.com/rexxars/registry-auth-token/compare/v3.0.0...v3.0.1
+[3.1.0]: https://github.com/rexxars/registry-auth-token/compare/v3.0.1...v3.1.0
+[3.1.1]: https://github.com/rexxars/registry-auth-token/compare/v3.1.0...v3.1.1
+[3.1.2]: https://github.com/rexxars/registry-auth-token/compare/v3.1.1...v3.1.2
+[3.2.0]: https://github.com/rexxars/registry-auth-token/compare/v3.1.2...v3.2.0
+[3.3.0]: https://github.com/rexxars/registry-auth-token/compare/v3.2.0...v3.3.0
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/LICENSE b/deps/npm/node_modules/registry-auth-token/LICENSE
index 0de12e3380..0de12e3380 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/LICENSE
+++ b/deps/npm/node_modules/registry-auth-token/LICENSE
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/README.md b/deps/npm/node_modules/registry-auth-token/README.md
index 5ac9c1ab6c..5ac9c1ab6c 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/README.md
+++ b/deps/npm/node_modules/registry-auth-token/README.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/base64.js b/deps/npm/node_modules/registry-auth-token/base64.js
index d208ae18dd..d208ae18dd 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/base64.js
+++ b/deps/npm/node_modules/registry-auth-token/base64.js
diff --git a/deps/npm/node_modules/registry-auth-token/index.js b/deps/npm/node_modules/registry-auth-token/index.js
new file mode 100644
index 0000000000..d68f7eeb4b
--- /dev/null
+++ b/deps/npm/node_modules/registry-auth-token/index.js
@@ -0,0 +1,118 @@
+var url = require('url')
+var base64 = require('./base64')
+
+var decodeBase64 = base64.decodeBase64
+var encodeBase64 = base64.encodeBase64
+
+var tokenKey = ':_authToken'
+var userKey = ':username'
+var passwordKey = ':_password'
+
+module.exports = function () {
+ var checkUrl
+ var options
+ if (arguments.length >= 2) {
+ checkUrl = arguments[0]
+ options = arguments[1]
+ } else if (typeof arguments[0] === 'string') {
+ checkUrl = arguments[0]
+ } else {
+ options = arguments[0]
+ }
+ options = options || {}
+ options.npmrc = options.npmrc || require('rc')('npm', {registry: 'https://registry.npmjs.org/'})
+ checkUrl = checkUrl || options.npmrc.registry
+ return getRegistryAuthInfo(checkUrl, options) || getLegacyAuthInfo(options.npmrc)
+}
+
+function getRegistryAuthInfo (checkUrl, options) {
+ var parsed = url.parse(checkUrl, false, true)
+ var pathname
+
+ while (pathname !== '/' && parsed.pathname !== pathname) {
+ pathname = parsed.pathname || '/'
+
+ var regUrl = '//' + parsed.host + pathname.replace(/\/$/, '')
+ var authInfo = getAuthInfoForUrl(regUrl, options.npmrc)
+ if (authInfo) {
+ return authInfo
+ }
+
+ // break if not recursive
+ if (!options.recursive) {
+ return /\/$/.test(checkUrl)
+ ? undefined
+ : getRegistryAuthInfo(url.resolve(checkUrl, '.'), options)
+ }
+
+ parsed.pathname = url.resolve(normalizePath(pathname), '..') || '/'
+ }
+
+ return undefined
+}
+
+function getLegacyAuthInfo (npmrc) {
+ if (npmrc._auth) {
+ return {token: npmrc._auth, type: 'Basic'}
+ }
+ return undefined
+}
+
+function normalizePath (path) {
+ return path[path.length - 1] === '/' ? path : path + '/'
+}
+
+function getAuthInfoForUrl (regUrl, npmrc) {
+ // try to get bearer token
+ var bearerAuth = getBearerToken(npmrc[regUrl + tokenKey] || npmrc[regUrl + '/' + tokenKey])
+ if (bearerAuth) {
+ return bearerAuth
+ }
+
+ // try to get basic token
+ var username = npmrc[regUrl + userKey] || npmrc[regUrl + '/' + userKey]
+ var password = npmrc[regUrl + passwordKey] || npmrc[regUrl + '/' + passwordKey]
+ var basicAuth = getTokenForUsernameAndPassword(username, password)
+ if (basicAuth) {
+ return basicAuth
+ }
+
+ return undefined
+}
+
+function getBearerToken (tok) {
+ if (!tok) {
+ return undefined
+ }
+
+ // check if bearer token
+ var token = tok.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) {
+ return process.env[envVar]
+ })
+
+ return {token: token, type: 'Bearer'}
+}
+
+function getTokenForUsernameAndPassword (username, password) {
+ if (!username || !password) {
+ return undefined
+ }
+
+ // passwords are base64 encoded, so we need to decode it
+ // See https://github.com/npm/npm/blob/v3.10.6/lib/config/set-credentials-by-uri.js#L26
+ var pass = decodeBase64(password.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) {
+ return process.env[envVar]
+ }))
+
+ // a basic auth token is base64 encoded 'username:password'
+ // See https://github.com/npm/npm/blob/v3.10.6/lib/config/get-credentials-by-uri.js#L70
+ var token = encodeBase64(username + ':' + pass)
+
+ // we found a basicToken token so let's exit the loop
+ return {
+ token: token,
+ type: 'Basic',
+ password: pass,
+ username: username
+ }
+}
diff --git a/deps/npm/node_modules/registry-auth-token/package.json b/deps/npm/node_modules/registry-auth-token/package.json
new file mode 100644
index 0000000000..3be95088b8
--- /dev/null
+++ b/deps/npm/node_modules/registry-auth-token/package.json
@@ -0,0 +1,74 @@
+{
+ "_from": "registry-auth-token@^3.0.1",
+ "_id": "registry-auth-token@3.3.2",
+ "_inBundle": false,
+ "_integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==",
+ "_location": "/registry-auth-token",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "registry-auth-token@^3.0.1",
+ "name": "registry-auth-token",
+ "escapedName": "registry-auth-token",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.2.tgz",
+ "_shasum": "851fd49038eecb586911115af845260eec983f20",
+ "_spec": "registry-auth-token@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/package-json",
+ "author": {
+ "name": "Espen Hovlandsdal",
+ "email": "espen@hovlandsdal.com"
+ },
+ "bugs": {
+ "url": "https://github.com/rexxars/registry-auth-token/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "rc": "^1.1.6",
+ "safe-buffer": "^5.0.1"
+ },
+ "deprecated": false,
+ "description": "Get the auth token set for an npm registry (if any)",
+ "devDependencies": {
+ "istanbul": "^0.4.2",
+ "mocha": "^3.3.0",
+ "require-uncached": "^1.0.2",
+ "standard": "^10.0.2"
+ },
+ "homepage": "https://github.com/rexxars/registry-auth-token#readme",
+ "keywords": [
+ "npm",
+ "conf",
+ "config",
+ "npmconf",
+ "registry",
+ "auth",
+ "token",
+ "authtoken"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "registry-auth-token",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/rexxars/registry-auth-token.git"
+ },
+ "scripts": {
+ "coverage": "istanbul cover _mocha",
+ "posttest": "standard",
+ "test": "mocha"
+ },
+ "standard": {
+ "ignore": [
+ "coverage/**"
+ ]
+ },
+ "version": "3.3.2"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/registry-url.js b/deps/npm/node_modules/registry-auth-token/registry-url.js
index 9da9a44bfb..9da9a44bfb 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/registry-url.js
+++ b/deps/npm/node_modules/registry-auth-token/registry-url.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/auth-token.test.js b/deps/npm/node_modules/registry-auth-token/test/auth-token.test.js
index 9f06a997e6..824d1bf92e 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/auth-token.test.js
+++ b/deps/npm/node_modules/registry-auth-token/test/auth-token.test.js
@@ -288,6 +288,56 @@ describe('auth-token', function () {
})
})
+ it('should return password defined by reference to an environment variable (with curly braces)', function (done) {
+ var environmentVariable = '__REGISTRY_PASSWORD__'
+ var content = [
+ 'registry=http://registry.foobar.cc/',
+ '//registry.foobar.cc/:username=username',
+ '//registry.foobar.cc/:_password=${' + environmentVariable + '}', ''
+ ].join('\n')
+ process.env[environmentVariable] = encodeBase64('password')
+
+ fs.writeFile(npmRcPath, content, function (err) {
+ var getAuthToken = requireUncached('../index')
+ assert(!err, err)
+ var token = getAuthToken()
+ assert.deepEqual(token, {
+ type: 'Basic',
+ username: 'username',
+ password: 'password',
+ token: 'dXNlcm5hbWU6cGFzc3dvcmQ='
+ })
+ assert.equal(decodeBase64(token.token), 'username:password')
+ delete process.env[environmentVariable]
+ done()
+ })
+ })
+
+ it('should return password defined by reference to an environment variable (without curly braces)', function (done) {
+ var environmentVariable = '__REGISTRY_PASSWORD__'
+ var content = [
+ 'registry=http://registry.foobar.cc/',
+ '//registry.foobar.cc/:username=username',
+ '//registry.foobar.cc/:_password=$' + environmentVariable, ''
+ ].join('\n')
+ process.env[environmentVariable] = encodeBase64('password')
+
+ fs.writeFile(npmRcPath, content, function (err) {
+ var getAuthToken = requireUncached('../index')
+ assert(!err, err)
+ var token = getAuthToken()
+ assert.deepEqual(token, {
+ type: 'Basic',
+ username: 'username',
+ password: 'password',
+ token: 'dXNlcm5hbWU6cGFzc3dvcmQ='
+ })
+ assert.equal(decodeBase64(token.token), 'username:password')
+ delete process.env[environmentVariable]
+ done()
+ })
+ })
+
it('should try with and without a slash at the end of registry url', function (done) {
var content = [
'registry=http://registry.foobar.eu',
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/registry-url.test.js b/deps/npm/node_modules/registry-auth-token/test/registry-url.test.js
index adb6951bad..adb6951bad 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/test/registry-url.test.js
+++ b/deps/npm/node_modules/registry-auth-token/test/registry-url.test.js
diff --git a/deps/npm/node_modules/registry-auth-token/yarn.lock b/deps/npm/node_modules/registry-auth-token/yarn.lock
new file mode 100644
index 0000000000..23f7b13a76
--- /dev/null
+++ b/deps/npm/node_modules/registry-auth-token/yarn.lock
@@ -0,0 +1,1512 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+abbrev@1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
+
+abbrev@1.0.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+
+acorn-jsx@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
+ dependencies:
+ acorn "^3.0.4"
+
+acorn@^3.0.4:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
+
+acorn@^5.2.1:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.3.0.tgz#7446d39459c54fb49a80e6ee6478149b940ec822"
+
+ajv-keywords@^1.0.0:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
+
+ajv@^4.7.0:
+ version "4.11.8"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
+ dependencies:
+ co "^4.6.0"
+ json-stable-stringify "^1.0.1"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-escapes@^1.1.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+argparse@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+array-union@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
+ dependencies:
+ array-uniq "^1.0.1"
+
+array-uniq@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
+
+array.prototype.find@^2.0.1:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90"
+ dependencies:
+ define-properties "^1.1.2"
+ es-abstract "^1.7.0"
+
+arrify@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+async@1.x, async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+babel-code-frame@^6.16.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+brace-expansion@^1.1.7:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+browser-stdout@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
+
+builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+caller-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
+ dependencies:
+ callsites "^0.2.0"
+
+callsites@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+circular-json@^0.3.1:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66"
+
+cli-cursor@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
+ dependencies:
+ restore-cursor "^1.0.1"
+
+cli-width@^2.0.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+commander@2.9.0:
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
+ dependencies:
+ graceful-readlink ">= 1.0.0"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+concat-stream@^1.5.2:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
+ dependencies:
+ inherits "^2.0.3"
+ readable-stream "^2.2.2"
+ typedarray "^0.0.6"
+
+contains-path@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
+
+core-util-is@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+d@1:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
+ dependencies:
+ es5-ext "^0.10.9"
+
+debug-log@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
+
+debug@2.6.8:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.1.1, debug@^2.2.0, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+deep-extend@~0.4.0:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f"
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+
+define-properties@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
+ dependencies:
+ foreach "^2.0.5"
+ object-keys "^1.0.8"
+
+deglob@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a"
+ dependencies:
+ find-root "^1.0.0"
+ glob "^7.0.5"
+ ignore "^3.0.9"
+ pkg-config "^1.1.0"
+ run-parallel "^1.1.2"
+ uniq "^1.0.1"
+
+del@^2.0.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
+ dependencies:
+ globby "^5.0.0"
+ is-path-cwd "^1.0.0"
+ is-path-in-cwd "^1.0.0"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ rimraf "^2.2.8"
+
+diff@3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
+
+doctrine@1.5.0, doctrine@^1.2.2:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
+ dependencies:
+ esutils "^2.0.2"
+ isarray "^1.0.0"
+
+doctrine@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
+ dependencies:
+ esutils "^2.0.2"
+
+error-ex@^1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+es-abstract@^1.7.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.10.0.tgz#1ecb36c197842a00d8ee4c2dfd8646bb97d60864"
+ dependencies:
+ es-to-primitive "^1.1.1"
+ function-bind "^1.1.1"
+ has "^1.0.1"
+ is-callable "^1.1.3"
+ is-regex "^1.0.4"
+
+es-to-primitive@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
+ dependencies:
+ is-callable "^1.1.1"
+ is-date-object "^1.0.1"
+ is-symbol "^1.0.1"
+
+es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14:
+ version "0.10.38"
+ resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.38.tgz#fa7d40d65bbc9bb8a67e1d3f9cc656a00530eed3"
+ dependencies:
+ es6-iterator "~2.0.3"
+ es6-symbol "~3.1.1"
+
+es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.35"
+ es6-symbol "^3.1.1"
+
+es6-map@^0.1.3:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-set "~0.1.5"
+ es6-symbol "~3.1.1"
+ event-emitter "~0.3.5"
+
+es6-set@~0.1.5:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+ es6-iterator "~2.0.1"
+ es6-symbol "3.1.1"
+ event-emitter "~0.3.5"
+
+es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+es6-weak-map@^2.0.1:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
+ dependencies:
+ d "1"
+ es5-ext "^0.10.14"
+ es6-iterator "^2.0.1"
+ es6-symbol "^3.1.1"
+
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+escodegen@1.8.x:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ dependencies:
+ esprima "^2.7.1"
+ estraverse "^1.9.1"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.2.0"
+
+escope@^3.6.0:
+ version "3.6.0"
+ resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
+ dependencies:
+ es6-map "^0.1.3"
+ es6-weak-map "^2.0.1"
+ esrecurse "^4.1.0"
+ estraverse "^4.1.1"
+
+eslint-config-standard-jsx@4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.2.tgz#009e53c4ddb1e9ee70b4650ffe63a7f39f8836e1"
+
+eslint-config-standard@10.2.1:
+ version "10.2.1"
+ resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591"
+
+eslint-import-resolver-node@^0.2.0:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
+ dependencies:
+ debug "^2.2.0"
+ object-assign "^4.0.1"
+ resolve "^1.1.6"
+
+eslint-module-utils@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.1.1.tgz#abaec824177613b8a95b299639e1b6facf473449"
+ dependencies:
+ debug "^2.6.8"
+ pkg-dir "^1.0.0"
+
+eslint-plugin-import@~2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e"
+ dependencies:
+ builtin-modules "^1.1.1"
+ contains-path "^0.1.0"
+ debug "^2.2.0"
+ doctrine "1.5.0"
+ eslint-import-resolver-node "^0.2.0"
+ eslint-module-utils "^2.0.0"
+ has "^1.0.1"
+ lodash.cond "^4.3.0"
+ minimatch "^3.0.3"
+ pkg-up "^1.0.0"
+
+eslint-plugin-node@~4.2.2:
+ version "4.2.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-4.2.3.tgz#c04390ab8dbcbb6887174023d6f3a72769e63b97"
+ dependencies:
+ ignore "^3.0.11"
+ minimatch "^3.0.2"
+ object-assign "^4.0.1"
+ resolve "^1.1.7"
+ semver "5.3.0"
+
+eslint-plugin-promise@~3.5.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz#78fbb6ffe047201627569e85a6c5373af2a68fca"
+
+eslint-plugin-react@~6.10.0:
+ version "6.10.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78"
+ dependencies:
+ array.prototype.find "^2.0.1"
+ doctrine "^1.2.2"
+ has "^1.0.1"
+ jsx-ast-utils "^1.3.4"
+ object.assign "^4.0.4"
+
+eslint-plugin-standard@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2"
+
+eslint@~3.19.0:
+ version "3.19.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
+ dependencies:
+ babel-code-frame "^6.16.0"
+ chalk "^1.1.3"
+ concat-stream "^1.5.2"
+ debug "^2.1.1"
+ doctrine "^2.0.0"
+ escope "^3.6.0"
+ espree "^3.4.0"
+ esquery "^1.0.0"
+ estraverse "^4.2.0"
+ esutils "^2.0.2"
+ file-entry-cache "^2.0.0"
+ glob "^7.0.3"
+ globals "^9.14.0"
+ ignore "^3.2.0"
+ imurmurhash "^0.1.4"
+ inquirer "^0.12.0"
+ is-my-json-valid "^2.10.0"
+ is-resolvable "^1.0.0"
+ js-yaml "^3.5.1"
+ json-stable-stringify "^1.0.0"
+ levn "^0.3.0"
+ lodash "^4.0.0"
+ mkdirp "^0.5.0"
+ natural-compare "^1.4.0"
+ optionator "^0.8.2"
+ path-is-inside "^1.0.1"
+ pluralize "^1.2.1"
+ progress "^1.1.8"
+ require-uncached "^1.0.2"
+ shelljs "^0.7.5"
+ strip-bom "^3.0.0"
+ strip-json-comments "~2.0.1"
+ table "^3.7.8"
+ text-table "~0.2.0"
+ user-home "^2.0.0"
+
+espree@^3.4.0:
+ version "3.5.2"
+ resolved "https://registry.yarnpkg.com/espree/-/espree-3.5.2.tgz#756ada8b979e9dcfcdb30aad8d1a9304a905e1ca"
+ dependencies:
+ acorn "^5.2.1"
+ acorn-jsx "^3.0.0"
+
+esprima@2.7.x, esprima@^2.7.1:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+
+esprima@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esquery@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
+ dependencies:
+ estraverse "^4.0.0"
+
+esrecurse@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163"
+ dependencies:
+ estraverse "^4.1.0"
+ object-assign "^4.0.1"
+
+estraverse@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+
+estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+event-emitter@~0.3.5:
+ version "0.3.5"
+ resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
+ dependencies:
+ d "1"
+ es5-ext "~0.10.14"
+
+exit-hook@^1.0.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+figures@^1.3.5:
+ version "1.7.0"
+ resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
+ dependencies:
+ escape-string-regexp "^1.0.5"
+ object-assign "^4.1.0"
+
+file-entry-cache@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
+ dependencies:
+ flat-cache "^1.2.1"
+ object-assign "^4.0.1"
+
+find-root@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+flat-cache@^1.2.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.0.tgz#d3030b32b38154f4e3b7e9c709f490f7ef97c481"
+ dependencies:
+ circular-json "^0.3.1"
+ del "^2.0.2"
+ graceful-fs "^4.1.2"
+ write "^0.2.1"
+
+foreach@^2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+function-bind@^1.0.2, function-bind@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
+
+generate-function@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
+
+generate-object-property@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
+ dependencies:
+ is-property "^1.0.0"
+
+get-stdin@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
+
+glob@7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.2"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^5.0.15:
+ version "5.0.15"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^9.14.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
+globby@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
+ dependencies:
+ array-union "^1.0.1"
+ arrify "^1.0.0"
+ glob "^7.0.3"
+ object-assign "^4.0.1"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+graceful-fs@^4.1.2:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+"graceful-readlink@>= 1.0.0":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
+
+growl@1.9.2:
+ version "1.9.2"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
+
+handlebars@^4.0.1:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+has-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
+
+has@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
+ dependencies:
+ function-bind "^1.0.2"
+
+he@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+ignore@^3.0.11, ignore@^3.0.9, ignore@^3.2.0:
+ version "3.3.7"
+ resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2, inherits@^2.0.3, inherits@~2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ini@~1.3.0:
+ version "1.3.5"
+ resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
+
+inquirer@^0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
+ dependencies:
+ ansi-escapes "^1.1.0"
+ ansi-regex "^2.0.0"
+ chalk "^1.0.0"
+ cli-cursor "^1.0.1"
+ cli-width "^2.0.0"
+ figures "^1.3.5"
+ lodash "^4.3.0"
+ readline2 "^1.0.1"
+ run-async "^0.1.0"
+ rx-lite "^3.1.2"
+ string-width "^1.0.1"
+ strip-ansi "^3.0.0"
+ through "^2.3.6"
+
+interpret@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+is-callable@^1.1.1, is-callable@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
+
+is-date-object@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-my-json-valid@^2.10.0:
+ version "2.17.1"
+ resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.1.tgz#3da98914a70a22f0a8563ef1511a246c6fc55471"
+ dependencies:
+ generate-function "^2.0.0"
+ generate-object-property "^1.1.0"
+ jsonpointer "^4.0.0"
+ xtend "^4.0.0"
+
+is-path-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
+
+is-path-in-cwd@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
+ dependencies:
+ is-path-inside "^1.0.0"
+
+is-path-inside@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036"
+ dependencies:
+ path-is-inside "^1.0.1"
+
+is-property@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
+
+is-regex@^1.0.4:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
+ dependencies:
+ has "^1.0.1"
+
+is-resolvable@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
+
+is-symbol@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
+
+isarray@^1.0.0, isarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+istanbul@^0.4.2:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
+ dependencies:
+ abbrev "1.0.x"
+ async "1.x"
+ escodegen "1.8.x"
+ esprima "2.7.x"
+ glob "^5.0.15"
+ handlebars "^4.0.1"
+ js-yaml "3.x"
+ mkdirp "0.5.x"
+ nopt "3.x"
+ once "1.x"
+ resolve "1.1.x"
+ supports-color "^3.1.0"
+ which "^1.1.1"
+ wordwrap "^1.0.0"
+
+js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+js-yaml@3.x, js-yaml@^3.5.1:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+json-parse-better-errors@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.1.tgz#50183cd1b2d25275de069e9e71b467ac9eab973a"
+
+json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ dependencies:
+ jsonify "~0.0.0"
+
+json3@3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
+
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+
+jsonpointer@^4.0.0:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
+
+jsx-ast-utils@^1.3.4:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
+
+kind-of@^3.0.2:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+levn@^0.3.0, levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+load-json-file@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^4.0.0"
+ pify "^3.0.0"
+ strip-bom "^3.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash._baseassign@^3.0.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
+ dependencies:
+ lodash._basecopy "^3.0.0"
+ lodash.keys "^3.0.0"
+
+lodash._basecopy@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
+
+lodash._basecreate@^3.0.0:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
+
+lodash._getnative@^3.0.0:
+ version "3.9.1"
+ resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
+
+lodash._isiterateecall@^3.0.0:
+ version "3.0.9"
+ resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
+
+lodash.cond@^4.3.0:
+ version "4.5.2"
+ resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
+
+lodash.create@3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
+ dependencies:
+ lodash._baseassign "^3.0.0"
+ lodash._basecreate "^3.0.0"
+ lodash._isiterateecall "^3.0.0"
+
+lodash.isarguments@^3.0.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
+
+lodash.isarray@^3.0.0:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
+
+lodash.keys@^3.0.0:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
+ dependencies:
+ lodash._getnative "^3.0.0"
+ lodash.isarguments "^3.0.0"
+ lodash.isarray "^3.0.0"
+
+lodash@^4.0.0, lodash@^4.3.0:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.1.0, minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+
+mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+mocha@^3.3.0:
+ version "3.5.3"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.3.tgz#1e0480fe36d2da5858d1eb6acc38418b26eaa20d"
+ dependencies:
+ browser-stdout "1.3.0"
+ commander "2.9.0"
+ debug "2.6.8"
+ diff "3.2.0"
+ escape-string-regexp "1.0.5"
+ glob "7.1.1"
+ growl "1.9.2"
+ he "1.1.1"
+ json3 "3.3.2"
+ lodash.create "3.1.1"
+ mkdirp "0.5.1"
+ supports-color "3.1.2"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+mute-stream@0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
+
+natural-compare@^1.4.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
+
+nopt@3.x:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object-keys@^1.0.11, object-keys@^1.0.8:
+ version "1.0.11"
+ resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
+
+object.assign@^4.0.4:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
+ dependencies:
+ define-properties "^1.1.2"
+ function-bind "^1.1.1"
+ has-symbols "^1.0.0"
+ object-keys "^1.0.11"
+
+once@1.x, once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+onetime@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+optionator@^0.8.1, optionator@^0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.4"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ wordwrap "~1.0.0"
+
+os-homedir@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+p-limit@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+parse-json@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
+ dependencies:
+ error-ex "^1.3.1"
+ json-parse-better-errors "^1.0.1"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-is-inside@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pify@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-conf@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.1.0.tgz#2126514ca6f2abfebd168596df18ba57867f0058"
+ dependencies:
+ find-up "^2.0.0"
+ load-json-file "^4.0.0"
+
+pkg-config@^1.1.0:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4"
+ dependencies:
+ debug-log "^1.0.0"
+ find-root "^1.0.0"
+ xtend "^4.0.1"
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+pkg-up@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26"
+ dependencies:
+ find-up "^1.0.0"
+
+pluralize@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+process-nextick-args@~1.0.6:
+ version "1.0.7"
+ resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
+
+progress@^1.1.8:
+ version "1.1.8"
+ resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
+
+rc@^1.1.6:
+ version "1.2.4"
+ resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3"
+ dependencies:
+ deep-extend "~0.4.0"
+ ini "~1.3.0"
+ minimist "^1.2.0"
+ strip-json-comments "~2.0.1"
+
+readable-stream@^2.2.2:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c"
+ dependencies:
+ core-util-is "~1.0.0"
+ inherits "~2.0.3"
+ isarray "~1.0.0"
+ process-nextick-args "~1.0.6"
+ safe-buffer "~5.1.1"
+ string_decoder "~1.0.3"
+ util-deprecate "~1.0.1"
+
+readline2@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ mute-stream "0.0.5"
+
+rechoir@^0.6.2:
+ version "0.6.2"
+ resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
+ dependencies:
+ resolve "^1.1.6"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+require-uncached@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
+ dependencies:
+ caller-path "^0.1.0"
+ resolve-from "^1.0.0"
+
+resolve-from@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
+
+resolve@1.1.x:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+resolve@^1.1.6, resolve@^1.1.7:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.5.0.tgz#1f09acce796c9a762579f31b2c1cc4c3cddf9f36"
+ dependencies:
+ path-parse "^1.0.5"
+
+restore-cursor@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
+ dependencies:
+ exit-hook "^1.0.0"
+ onetime "^1.0.0"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@^2.2.8:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+run-async@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
+ dependencies:
+ once "^1.3.0"
+
+run-parallel@^1.1.2:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039"
+
+rx-lite@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
+
+safe-buffer@^5.0.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+semver@5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
+shelljs@^0.7.5:
+ version "0.7.8"
+ resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3"
+ dependencies:
+ glob "^7.0.0"
+ interpret "^1.0.0"
+ rechoir "^0.6.2"
+
+slice-ansi@0.0.4:
+ version "0.0.4"
+ resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+standard-engine@~7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-7.0.0.tgz#ebb77b9c8fc2c8165ffa353bd91ba0dff41af690"
+ dependencies:
+ deglob "^2.1.0"
+ get-stdin "^5.0.1"
+ minimist "^1.1.0"
+ pkg-conf "^2.0.0"
+
+standard@^10.0.2:
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/standard/-/standard-10.0.3.tgz#7869bcbf422bdeeaab689a1ffb1fea9677dd50ea"
+ dependencies:
+ eslint "~3.19.0"
+ eslint-config-standard "10.2.1"
+ eslint-config-standard-jsx "4.0.2"
+ eslint-plugin-import "~2.2.0"
+ eslint-plugin-node "~4.2.2"
+ eslint-plugin-promise "~3.5.0"
+ eslint-plugin-react "~6.10.0"
+ eslint-plugin-standard "~3.0.1"
+ standard-engine "~7.0.0"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+string_decoder@~1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab"
+ dependencies:
+ safe-buffer "~5.1.0"
+
+strip-ansi@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-json-comments@~2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+supports-color@3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+supports-color@^3.1.0:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+table@^3.7.8:
+ version "3.8.3"
+ resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
+ dependencies:
+ ajv "^4.7.0"
+ ajv-keywords "^1.0.0"
+ chalk "^1.1.1"
+ lodash "^4.0.0"
+ slice-ansi "0.0.4"
+ string-width "^2.0.0"
+
+text-table@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
+
+through@^2.3.6:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ dependencies:
+ prelude-ls "~1.1.2"
+
+typedarray@^0.0.6:
+ version "0.0.6"
+ resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
+
+uglify-js@^2.6:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+uniq@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
+
+user-home@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
+ dependencies:
+ os-homedir "^1.0.0"
+
+util-deprecate@~1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
+
+which@^1.1.1:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wordwrap@^1.0.0, wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
+ dependencies:
+ mkdirp "^0.5.1"
+
+xtend@^4.0.0, xtend@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/index.js b/deps/npm/node_modules/registry-url/index.js
index 5502a235ab..5502a235ab 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/index.js
+++ b/deps/npm/node_modules/registry-url/index.js
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/license b/deps/npm/node_modules/registry-url/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/strip-ansi/node_modules/ansi-regex/license
+++ b/deps/npm/node_modules/registry-url/license
diff --git a/deps/npm/node_modules/registry-url/package.json b/deps/npm/node_modules/registry-url/package.json
new file mode 100644
index 0000000000..4845d876ad
--- /dev/null
+++ b/deps/npm/node_modules/registry-url/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "registry-url@^3.0.3",
+ "_id": "registry-url@3.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
+ "_location": "/registry-url",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "registry-url@^3.0.3",
+ "name": "registry-url",
+ "escapedName": "registry-url",
+ "rawSpec": "^3.0.3",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.3"
+ },
+ "_requiredBy": [
+ "/package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
+ "_shasum": "3d4ef870f73dde1d77f0cf9a381432444e174942",
+ "_spec": "registry-url@^3.0.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/package-json",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/registry-url/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "rc": "^1.0.1"
+ },
+ "deprecated": false,
+ "description": "Get the set npm registry URL",
+ "devDependencies": {
+ "ava": "*",
+ "pify": "^2.3.0",
+ "require-uncached": "^1.0.2",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/registry-url#readme",
+ "keywords": [
+ "npm",
+ "conf",
+ "config",
+ "npmconf",
+ "registry",
+ "url",
+ "uri",
+ "scope"
+ ],
+ "license": "MIT",
+ "name": "registry-url",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/registry-url.git"
+ },
+ "scripts": {
+ "test": "xo && ava --serial"
+ },
+ "version": "3.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/readme.md b/deps/npm/node_modules/registry-url/readme.md
index 6fc55bc5fe..6fc55bc5fe 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/readme.md
+++ b/deps/npm/node_modules/registry-url/readme.md
diff --git a/deps/npm/node_modules/request/CHANGELOG.md b/deps/npm/node_modules/request/CHANGELOG.md
index af76719b4b..059d98d2fe 100644
--- a/deps/npm/node_modules/request/CHANGELOG.md
+++ b/deps/npm/node_modules/request/CHANGELOG.md
@@ -1,7 +1,38 @@
## Change Log
+### v2.86.0 (2018/05/15)
+- [#2885](https://github.com/request/request/pull/2885) Remove redundant code (for Node.js 0.9.4 and below) and dependency (@ChALkeR)
+- [#2942](https://github.com/request/request/pull/2942) Make Test GREEN Again! (@simov)
+- [#2923](https://github.com/request/request/pull/2923) Alterations for failing CI tests (@gareth-robinson)
+
+### v2.85.0 (2018/03/12)
+- [#2880](https://github.com/request/request/pull/2880) Revert "Update hawk to 7.0.7 (#2880)" (@simov)
+
+### v2.84.0 (2018/03/12)
+- [#2793](https://github.com/request/request/pull/2793) Fixed calculation of oauth_body_hash, issue #2792 (@dvishniakov)
+- [#2880](https://github.com/request/request/pull/2880) Update hawk to 7.0.7 (#2880) (@kornel-kedzierski)
+
+### v2.83.0 (2017/09/27)
+- [#2776](https://github.com/request/request/pull/2776) Updating tough-cookie due to security fix. (#2776) (@karlnorling)
+
+### v2.82.0 (2017/09/19)
+- [#2703](https://github.com/request/request/pull/2703) Add Node.js v8 to Travis CI (@ryysud)
+- [#2751](https://github.com/request/request/pull/2751) Update of hawk and qs to latest version (#2751) (@Olivier-Moreau)
+- [#2658](https://github.com/request/request/pull/2658) Fixed some text in README.md (#2658) (@Marketionist)
+- [#2635](https://github.com/request/request/pull/2635) chore(package): update aws-sign2 to version 0.7.0 (#2635) (@greenkeeperio-bot)
+- [#2641](https://github.com/request/request/pull/2641) Update README to simplify & update convenience methods (#2641) (@FredKSchott)
+- [#2541](https://github.com/request/request/pull/2541) Add convenience method for HTTP OPTIONS (#2541) (@jamesseanwright)
+- [#2605](https://github.com/request/request/pull/2605) Add promise support section to README (#2605) (@FredKSchott)
+- [#2579](https://github.com/request/request/pull/2579) refactor(lint): replace eslint with standard (#2579) (@ahmadnassri)
+- [#2598](https://github.com/request/request/pull/2598) Update codecov to version 2.0.2 šŸš€ (@greenkeeperio-bot)
+- [#2590](https://github.com/request/request/pull/2590) Adds test-timing keepAlive test (@nicjansma)
+- [#2589](https://github.com/request/request/pull/2589) fix tabulation on request example README.MD (@odykyi)
+- [#2594](https://github.com/request/request/pull/2594) chore(dependencies): har-validator to 5.x [removes babel dep] (@ahmadnassri)
+
### v2.81.0 (2017/03/09)
- [#2584](https://github.com/request/request/pull/2584) Security issue: Upgrade qs to version 6.4.0 (@sergejmueller)
+- [#2578](https://github.com/request/request/pull/2578) safe-buffer doesn't zero-fill by default, its just a polyfill. (#2578) (@mikeal)
+- [#2566](https://github.com/request/request/pull/2566) Timings: Tracks 'lookup', adds 'wait' time, fixes connection re-use (#2566) (@nicjansma)
- [#2574](https://github.com/request/request/pull/2574) Migrating to safe-buffer for improved security. (@mikeal)
- [#2573](https://github.com/request/request/pull/2573) fixes #2572 (@ahmadnassri)
@@ -186,7 +217,8 @@
- [#1687](https://github.com/request/request/pull/1687) Fix caseless bug - content-type not being set for multipart/form-data (@simov, @garymathews)
### v2.59.0 (2015/07/20)
-- [#1671](https://github.com/request/request/pull/1671) Add tests and docs for using the agent, agentClass, agentOptions and forever options. Forever option defaults to using http(s).Agent in node 0.12+ (@simov)
+- [#1671](https://github.com/request/request/pull/1671) Add tests and docs for using the agent, agentClass, agentOptions and forever options.
+ Forever option defaults to using http(s).Agent in node 0.12+ (@simov)
- [#1679](https://github.com/request/request/pull/1679) Fix - do not remove OAuth param when using OAuth realm (@simov, @jhalickman)
- [#1668](https://github.com/request/request/pull/1668) updated dependencies (@deamme)
- [#1656](https://github.com/request/request/pull/1656) Fix form method (@simov)
diff --git a/deps/npm/node_modules/request/README.md b/deps/npm/node_modules/request/README.md
index cedc19d51d..81ffd95efd 100644
--- a/deps/npm/node_modules/request/README.md
+++ b/deps/npm/node_modules/request/README.md
@@ -187,7 +187,7 @@ var formData = {
// Pass a simple key-value pair
my_field: 'my_value',
// Pass data via Buffers
- my_buffer: new Buffer([1, 2, 3]),
+ my_buffer: Buffer.from([1, 2, 3]),
// Pass data via Streams
my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
// Pass multiple values /w an Array
@@ -221,7 +221,7 @@ For advanced cases, you can access the form-data object itself via `r.form()`. T
var r = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {...})
var form = r.form();
form.append('my_field', 'my_value');
-form.append('my_buffer', new Buffer([1, 2, 3]));
+form.append('my_buffer', Buffer.from([1, 2, 3]));
form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'});
```
See the [form-data README](https://github.com/form-data/form-data) for more information & examples.
diff --git a/deps/npm/node_modules/request/lib/oauth.js b/deps/npm/node_modules/request/lib/oauth.js
index 0c9c57cfee..01c6262827 100644
--- a/deps/npm/node_modules/request/lib/oauth.js
+++ b/deps/npm/node_modules/request/lib/oauth.js
@@ -71,7 +71,7 @@ OAuth.prototype.buildBodyHash = function (_oauth, body) {
shasum.update(body || '')
var sha1 = shasum.digest('hex')
- return Buffer.from(sha1).toString('base64')
+ return Buffer.from(sha1, 'hex').toString('base64')
}
OAuth.prototype.concatParams = function (oa, sep, wrap) {
diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/index.js b/deps/npm/node_modules/request/node_modules/aws-sign2/index.js
deleted file mode 100644
index fb35f6db01..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws-sign2/index.js
+++ /dev/null
@@ -1,212 +0,0 @@
-
-/*!
- * Copyright 2010 LearnBoost <dev@learnboost.com>
- *
- * 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.
- */
-
-/**
- * Module dependencies.
- */
-
-var crypto = require('crypto')
- , parse = require('url').parse
- ;
-
-/**
- * Valid keys.
- */
-
-var keys =
- [ 'acl'
- , 'location'
- , 'logging'
- , 'notification'
- , 'partNumber'
- , 'policy'
- , 'requestPayment'
- , 'torrent'
- , 'uploadId'
- , 'uploads'
- , 'versionId'
- , 'versioning'
- , 'versions'
- , 'website'
- ]
-
-/**
- * Return an "Authorization" header value with the given `options`
- * in the form of "AWS <key>:<signature>"
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function authorization (options) {
- return 'AWS ' + options.key + ':' + sign(options)
-}
-
-module.exports = authorization
-module.exports.authorization = authorization
-
-/**
- * Simple HMAC-SHA1 Wrapper
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function hmacSha1 (options) {
- return crypto.createHmac('sha1', options.secret).update(options.message).digest('base64')
-}
-
-module.exports.hmacSha1 = hmacSha1
-
-/**
- * Create a base64 sha1 HMAC for `options`.
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function sign (options) {
- options.message = stringToSign(options)
- return hmacSha1(options)
-}
-module.exports.sign = sign
-
-/**
- * Create a base64 sha1 HMAC for `options`.
- *
- * Specifically to be used with S3 presigned URLs
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function signQuery (options) {
- options.message = queryStringToSign(options)
- return hmacSha1(options)
-}
-module.exports.signQuery= signQuery
-
-/**
- * Return a string for sign() with the given `options`.
- *
- * Spec:
- *
- * <verb>\n
- * <md5>\n
- * <content-type>\n
- * <date>\n
- * [headers\n]
- * <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function stringToSign (options) {
- var headers = options.amazonHeaders || ''
- if (headers) headers += '\n'
- var r =
- [ options.verb
- , options.md5
- , options.contentType
- , options.date ? options.date.toUTCString() : ''
- , headers + options.resource
- ]
- return r.join('\n')
-}
-module.exports.stringToSign = stringToSign
-
-/**
- * Return a string for sign() with the given `options`, but is meant exclusively
- * for S3 presigned URLs
- *
- * Spec:
- *
- * <date>\n
- * <resource>
- *
- * @param {Object} options
- * @return {String}
- * @api private
- */
-
-function queryStringToSign (options){
- return 'GET\n\n\n' + options.date + '\n' + options.resource
-}
-module.exports.queryStringToSign = queryStringToSign
-
-/**
- * Perform the following:
- *
- * - ignore non-amazon headers
- * - lowercase fields
- * - sort lexicographically
- * - trim whitespace between ":"
- * - join with newline
- *
- * @param {Object} headers
- * @return {String}
- * @api private
- */
-
-function canonicalizeHeaders (headers) {
- var buf = []
- , fields = Object.keys(headers)
- ;
- for (var i = 0, len = fields.length; i < len; ++i) {
- var field = fields[i]
- , val = headers[field]
- , field = field.toLowerCase()
- ;
- if (0 !== field.indexOf('x-amz')) continue
- buf.push(field + ':' + val)
- }
- return buf.sort().join('\n')
-}
-module.exports.canonicalizeHeaders = canonicalizeHeaders
-
-/**
- * Perform the following:
- *
- * - ignore non sub-resources
- * - sort lexicographically
- *
- * @param {String} resource
- * @return {String}
- * @api private
- */
-
-function canonicalizeResource (resource) {
- var url = parse(resource, true)
- , path = url.pathname
- , buf = []
- ;
-
- Object.keys(url.query).forEach(function(key){
- if (!~keys.indexOf(key)) return
- var val = '' == url.query[key] ? '' : '=' + encodeURIComponent(url.query[key])
- buf.push(key + val)
- })
-
- return path + (buf.length ? '?' + buf.sort().join('&') : '')
-}
-module.exports.canonicalizeResource = canonicalizeResource
diff --git a/deps/npm/node_modules/request/node_modules/aws-sign2/package.json b/deps/npm/node_modules/request/node_modules/aws-sign2/package.json
deleted file mode 100644
index b3a175b2af..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws-sign2/package.json
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- "_from": "aws-sign2@~0.7.0",
- "_id": "aws-sign2@0.7.0",
- "_inBundle": false,
- "_integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "_location": "/request/aws-sign2",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "aws-sign2@~0.7.0",
- "name": "aws-sign2",
- "escapedName": "aws-sign2",
- "rawSpec": "~0.7.0",
- "saveSpec": null,
- "fetchSpec": "~0.7.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "_shasum": "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8",
- "_spec": "aws-sign2@~0.7.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com",
- "url": "http://www.futurealoof.com"
- },
- "bugs": {
- "url": "https://github.com/mikeal/aws-sign/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "AWS signing. Originally pulled from LearnBoost/knox, maintained as vendor in request, now a standalone module.",
- "devDependencies": {},
- "engines": {
- "node": "*"
- },
- "homepage": "https://github.com/mikeal/aws-sign#readme",
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "aws-sign2",
- "optionalDependencies": {},
- "repository": {
- "url": "git+https://github.com/mikeal/aws-sign.git"
- },
- "version": "0.7.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/aws4/.npmignore b/deps/npm/node_modules/request/node_modules/aws4/.npmignore
deleted file mode 100644
index 6c6ade6ff0..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws4/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-test
-examples
-example.js
-browser
diff --git a/deps/npm/node_modules/request/node_modules/aws4/.tern-port b/deps/npm/node_modules/request/node_modules/aws4/.tern-port
deleted file mode 100644
index 7fd1b5223d..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws4/.tern-port
+++ /dev/null
@@ -1 +0,0 @@
-62638 \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/aws4/README.md b/deps/npm/node_modules/request/node_modules/aws4/README.md
deleted file mode 100644
index 6b002d02f7..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws4/README.md
+++ /dev/null
@@ -1,523 +0,0 @@
-aws4
-----
-
-[![Build Status](https://secure.travis-ci.org/mhart/aws4.png?branch=master)](http://travis-ci.org/mhart/aws4)
-
-A small utility to sign vanilla node.js http(s) request options using Amazon's
-[AWS Signature Version 4](http://docs.amazonwebservices.com/general/latest/gr/signature-version-4.html).
-
-Can also be used [in the browser](./browser).
-
-This signature is supported by nearly all Amazon services, including
-[S3](http://docs.aws.amazon.com/AmazonS3/latest/API/),
-[EC2](http://docs.aws.amazon.com/AWSEC2/latest/APIReference/),
-[DynamoDB](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/API.html),
-[Kinesis](http://docs.aws.amazon.com/kinesis/latest/APIReference/),
-[Lambda](http://docs.aws.amazon.com/lambda/latest/dg/API_Reference.html),
-[SQS](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/),
-[SNS](http://docs.aws.amazon.com/sns/latest/api/),
-[IAM](http://docs.aws.amazon.com/IAM/latest/APIReference/),
-[STS](http://docs.aws.amazon.com/STS/latest/APIReference/),
-[RDS](http://docs.aws.amazon.com/AmazonRDS/latest/APIReference/),
-[CloudWatch](http://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/),
-[CloudWatch Logs](http://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/),
-[CodeDeploy](http://docs.aws.amazon.com/codedeploy/latest/APIReference/),
-[CloudFront](http://docs.aws.amazon.com/AmazonCloudFront/latest/APIReference/),
-[CloudTrail](http://docs.aws.amazon.com/awscloudtrail/latest/APIReference/),
-[ElastiCache](http://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/),
-[EMR](http://docs.aws.amazon.com/ElasticMapReduce/latest/API/),
-[Glacier](http://docs.aws.amazon.com/amazonglacier/latest/dev/amazon-glacier-api.html),
-[CloudSearch](http://docs.aws.amazon.com/cloudsearch/latest/developerguide/APIReq.html),
-[Elastic Load Balancing](http://docs.aws.amazon.com/ElasticLoadBalancing/latest/APIReference/),
-[Elastic Transcoder](http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/api-reference.html),
-[CloudFormation](http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/),
-[Elastic Beanstalk](http://docs.aws.amazon.com/elasticbeanstalk/latest/api/),
-[Storage Gateway](http://docs.aws.amazon.com/storagegateway/latest/userguide/AWSStorageGatewayAPI.html),
-[Data Pipeline](http://docs.aws.amazon.com/datapipeline/latest/APIReference/),
-[Direct Connect](http://docs.aws.amazon.com/directconnect/latest/APIReference/),
-[Redshift](http://docs.aws.amazon.com/redshift/latest/APIReference/),
-[OpsWorks](http://docs.aws.amazon.com/opsworks/latest/APIReference/),
-[SES](http://docs.aws.amazon.com/ses/latest/APIReference/),
-[SWF](http://docs.aws.amazon.com/amazonswf/latest/apireference/),
-[AutoScaling](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/),
-[Mobile Analytics](http://docs.aws.amazon.com/mobileanalytics/latest/ug/server-reference.html),
-[Cognito Identity](http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/),
-[Cognito Sync](http://docs.aws.amazon.com/cognitosync/latest/APIReference/),
-[Container Service](http://docs.aws.amazon.com/AmazonECS/latest/APIReference/),
-[AppStream](http://docs.aws.amazon.com/appstream/latest/developerguide/appstream-api-rest.html),
-[Key Management Service](http://docs.aws.amazon.com/kms/latest/APIReference/),
-[Config](http://docs.aws.amazon.com/config/latest/APIReference/),
-[CloudHSM](http://docs.aws.amazon.com/cloudhsm/latest/dg/api-ref.html),
-[Route53](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rest.html) and
-[Route53 Domains](http://docs.aws.amazon.com/Route53/latest/APIReference/requests-rpc.html).
-
-Indeed, the only AWS services that *don't* support v4 as of 2014-12-30 are
-[Import/Export](http://docs.aws.amazon.com/AWSImportExport/latest/DG/api-reference.html) and
-[SimpleDB](http://docs.aws.amazon.com/AmazonSimpleDB/latest/DeveloperGuide/SDB_API.html)
-(they only support [AWS Signature Version 2](https://github.com/mhart/aws2)).
-
-It also provides defaults for a number of core AWS headers and
-request parameters, making it very easy to query AWS services, or
-build out a fully-featured AWS library.
-
-Example
--------
-
-```javascript
-var http = require('http'),
- https = require('https'),
- aws4 = require('aws4')
-
-// given an options object you could pass to http.request
-var opts = {host: 'sqs.us-east-1.amazonaws.com', path: '/?Action=ListQueues'}
-
-// alternatively (as aws4 can infer the host):
-opts = {service: 'sqs', region: 'us-east-1', path: '/?Action=ListQueues'}
-
-// alternatively (as us-east-1 is default):
-opts = {service: 'sqs', path: '/?Action=ListQueues'}
-
-aws4.sign(opts) // assumes AWS credentials are available in process.env
-
-console.log(opts)
-/*
-{
- host: 'sqs.us-east-1.amazonaws.com',
- path: '/?Action=ListQueues',
- headers: {
- Host: 'sqs.us-east-1.amazonaws.com',
- 'X-Amz-Date': '20121226T061030Z',
- Authorization: 'AWS4-HMAC-SHA256 Credential=ABCDEF/20121226/us-east-1/sqs/aws4_request, ...'
- }
-}
-*/
-
-// we can now use this to query AWS using the standard node.js http API
-http.request(opts, function(res) { res.pipe(process.stdout) }).end()
-/*
-<?xml version="1.0"?>
-<ListQueuesResponse xmlns="http://queue.amazonaws.com/doc/2012-11-05/">
-...
-*/
-```
-
-More options
-------------
-
-```javascript
-// you can also pass AWS credentials in explicitly (otherwise taken from process.env)
-aws4.sign(opts, {accessKeyId: '', secretAccessKey: ''})
-
-// can also add the signature to query strings
-aws4.sign({service: 's3', path: '/my-bucket?X-Amz-Expires=12345', signQuery: true})
-
-// create a utility function to pipe to stdout (with https this time)
-function request(o) { https.request(o, function(res) { res.pipe(process.stdout) }).end(o.body || '') }
-
-// aws4 can infer the HTTP method if a body is passed in
-// method will be POST and Content-Type: 'application/x-www-form-urlencoded; charset=utf-8'
-request(aws4.sign({service: 'iam', body: 'Action=ListGroups&Version=2010-05-08'}))
-/*
-<ListGroupsResponse xmlns="https://iam.amazonaws.com/doc/2010-05-08/">
-...
-*/
-
-// can specify any custom option or header as per usual
-request(aws4.sign({
- service: 'dynamodb',
- region: 'ap-southeast-2',
- method: 'POST',
- path: '/',
- headers: {
- 'Content-Type': 'application/x-amz-json-1.0',
- 'X-Amz-Target': 'DynamoDB_20120810.ListTables'
- },
- body: '{}'
-}))
-/*
-{"TableNames":[]}
-...
-*/
-
-// works with all other services that support Signature Version 4
-
-request(aws4.sign({service: 's3', path: '/', signQuery: true}))
-/*
-<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
-...
-*/
-
-request(aws4.sign({service: 'ec2', path: '/?Action=DescribeRegions&Version=2014-06-15'}))
-/*
-<DescribeRegionsResponse xmlns="http://ec2.amazonaws.com/doc/2014-06-15/">
-...
-*/
-
-request(aws4.sign({service: 'sns', path: '/?Action=ListTopics&Version=2010-03-31'}))
-/*
-<ListTopicsResponse xmlns="http://sns.amazonaws.com/doc/2010-03-31/">
-...
-*/
-
-request(aws4.sign({service: 'sts', path: '/?Action=GetSessionToken&Version=2011-06-15'}))
-/*
-<GetSessionTokenResponse xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
-...
-*/
-
-request(aws4.sign({service: 'cloudsearch', path: '/?Action=ListDomainNames&Version=2013-01-01'}))
-/*
-<ListDomainNamesResponse xmlns="http://cloudsearch.amazonaws.com/doc/2013-01-01/">
-...
-*/
-
-request(aws4.sign({service: 'ses', path: '/?Action=ListIdentities&Version=2010-12-01'}))
-/*
-<ListIdentitiesResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'autoscaling', path: '/?Action=DescribeAutoScalingInstances&Version=2011-01-01'}))
-/*
-<DescribeAutoScalingInstancesResponse xmlns="http://autoscaling.amazonaws.com/doc/2011-01-01/">
-...
-*/
-
-request(aws4.sign({service: 'elasticloadbalancing', path: '/?Action=DescribeLoadBalancers&Version=2012-06-01'}))
-/*
-<DescribeLoadBalancersResponse xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/">
-...
-*/
-
-request(aws4.sign({service: 'cloudformation', path: '/?Action=ListStacks&Version=2010-05-15'}))
-/*
-<ListStacksResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
-...
-*/
-
-request(aws4.sign({service: 'elasticbeanstalk', path: '/?Action=ListAvailableSolutionStacks&Version=2010-12-01'}))
-/*
-<ListAvailableSolutionStacksResponse xmlns="http://elasticbeanstalk.amazonaws.com/docs/2010-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'rds', path: '/?Action=DescribeDBInstances&Version=2012-09-17'}))
-/*
-<DescribeDBInstancesResponse xmlns="http://rds.amazonaws.com/doc/2012-09-17/">
-...
-*/
-
-request(aws4.sign({service: 'monitoring', path: '/?Action=ListMetrics&Version=2010-08-01'}))
-/*
-<ListMetricsResponse xmlns="http://monitoring.amazonaws.com/doc/2010-08-01/">
-...
-*/
-
-request(aws4.sign({service: 'redshift', path: '/?Action=DescribeClusters&Version=2012-12-01'}))
-/*
-<DescribeClustersResponse xmlns="http://redshift.amazonaws.com/doc/2012-12-01/">
-...
-*/
-
-request(aws4.sign({service: 'cloudfront', path: '/2014-05-31/distribution'}))
-/*
-<DistributionList xmlns="http://cloudfront.amazonaws.com/doc/2014-05-31/">
-...
-*/
-
-request(aws4.sign({service: 'elasticache', path: '/?Action=DescribeCacheClusters&Version=2014-07-15'}))
-/*
-<DescribeCacheClustersResponse xmlns="http://elasticache.amazonaws.com/doc/2014-07-15/">
-...
-*/
-
-request(aws4.sign({service: 'elasticmapreduce', path: '/?Action=DescribeJobFlows&Version=2009-03-31'}))
-/*
-<DescribeJobFlowsResponse xmlns="http://elasticmapreduce.amazonaws.com/doc/2009-03-31">
-...
-*/
-
-request(aws4.sign({service: 'route53', path: '/2013-04-01/hostedzone'}))
-/*
-<ListHostedZonesResponse xmlns="https://route53.amazonaws.com/doc/2013-04-01/">
-...
-*/
-
-request(aws4.sign({service: 'appstream', path: '/applications'}))
-/*
-{"_links":{"curie":[{"href":"http://docs.aws.amazon.com/appstream/latest/...
-...
-*/
-
-request(aws4.sign({service: 'cognito-sync', path: '/identitypools'}))
-/*
-{"Count":0,"IdentityPoolUsages":[],"MaxResults":16,"NextToken":null}
-...
-*/
-
-request(aws4.sign({service: 'elastictranscoder', path: '/2012-09-25/pipelines'}))
-/*
-{"NextPageToken":null,"Pipelines":[]}
-...
-*/
-
-request(aws4.sign({service: 'lambda', path: '/2014-11-13/functions/'}))
-/*
-{"Functions":[],"NextMarker":null}
-...
-*/
-
-request(aws4.sign({service: 'ecs', path: '/?Action=ListClusters&Version=2014-11-13'}))
-/*
-<ListClustersResponse xmlns="http://ecs.amazonaws.com/doc/2014-11-13/">
-...
-*/
-
-request(aws4.sign({service: 'glacier', path: '/-/vaults', headers: {'X-Amz-Glacier-Version': '2012-06-01'}}))
-/*
-{"Marker":null,"VaultList":[]}
-...
-*/
-
-request(aws4.sign({service: 'storagegateway', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'StorageGateway_20120630.ListGateways'
-}}))
-/*
-{"Gateways":[]}
-...
-*/
-
-request(aws4.sign({service: 'datapipeline', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'DataPipeline.ListPipelines'
-}}))
-/*
-{"hasMoreResults":false,"pipelineIdList":[]}
-...
-*/
-
-request(aws4.sign({service: 'opsworks', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'OpsWorks_20130218.DescribeStacks'
-}}))
-/*
-{"Stacks":[]}
-...
-*/
-
-request(aws4.sign({service: 'route53domains', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'Route53Domains_v20140515.ListDomains'
-}}))
-/*
-{"Domains":[]}
-...
-*/
-
-request(aws4.sign({service: 'kinesis', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'Kinesis_20131202.ListStreams'
-}}))
-/*
-{"HasMoreStreams":false,"StreamNames":[]}
-...
-*/
-
-request(aws4.sign({service: 'cloudtrail', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'CloudTrail_20131101.DescribeTrails'
-}}))
-/*
-{"trailList":[]}
-...
-*/
-
-request(aws4.sign({service: 'logs', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'Logs_20140328.DescribeLogGroups'
-}}))
-/*
-{"logGroups":[]}
-...
-*/
-
-request(aws4.sign({service: 'codedeploy', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'CodeDeploy_20141006.ListApplications'
-}}))
-/*
-{"applications":[]}
-...
-*/
-
-request(aws4.sign({service: 'directconnect', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'OvertureService.DescribeConnections'
-}}))
-/*
-{"connections":[]}
-...
-*/
-
-request(aws4.sign({service: 'kms', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'TrentService.ListKeys'
-}}))
-/*
-{"Keys":[],"Truncated":false}
-...
-*/
-
-request(aws4.sign({service: 'config', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'StarlingDoveService.DescribeDeliveryChannels'
-}}))
-/*
-{"DeliveryChannels":[]}
-...
-*/
-
-request(aws4.sign({service: 'cloudhsm', body: '{}', headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'CloudHsmFrontendService.ListAvailableZones'
-}}))
-/*
-{"AZList":["us-east-1a","us-east-1b","us-east-1c"]}
-...
-*/
-
-request(aws4.sign({
- service: 'swf',
- body: '{"registrationStatus":"REGISTERED"}',
- headers: {
- 'Content-Type': 'application/x-amz-json-1.0',
- 'X-Amz-Target': 'SimpleWorkflowService.ListDomains'
- }
-}))
-/*
-{"domainInfos":[]}
-...
-*/
-
-request(aws4.sign({
- service: 'cognito-identity',
- body: '{"MaxResults": 1}',
- headers: {
- 'Content-Type': 'application/x-amz-json-1.1',
- 'X-Amz-Target': 'AWSCognitoIdentityService.ListIdentityPools'
- }
-}))
-/*
-{"IdentityPools":[]}
-...
-*/
-
-request(aws4.sign({
- service: 'mobileanalytics',
- path: '/2014-06-05/events',
- body: JSON.stringify({events:[{
- eventType: 'a',
- timestamp: new Date().toISOString(),
- session: {},
- }]}),
- headers: {
- 'Content-Type': 'application/json',
- 'X-Amz-Client-Context': JSON.stringify({
- client: {client_id: 'a', app_title: 'a'},
- custom: {},
- env: {platform: 'a'},
- services: {},
- }),
- }
-}))
-/*
-(HTTP 202, empty response)
-*/
-
-// Generate CodeCommit Git access password
-var signer = new aws4.RequestSigner({
- service: 'codecommit',
- host: 'git-codecommit.us-east-1.amazonaws.com',
- method: 'GIT',
- path: '/v1/repos/MyAwesomeRepo',
-})
-var password = signer.getDateTime() + 'Z' + signer.signature()
-```
-
-API
----
-
-### aws4.sign(requestOptions, [credentials])
-
-This calculates and populates the `Authorization` header of
-`requestOptions`, and any other necessary AWS headers and/or request
-options. Returns `requestOptions` as a convenience for chaining.
-
-`requestOptions` is an object holding the same options that the node.js
-[http.request](http://nodejs.org/docs/latest/api/http.html#http_http_request_options_callback)
-function takes.
-
-The following properties of `requestOptions` are used in the signing or
-populated if they don't already exist:
-
-- `hostname` or `host` (will be determined from `service` and `region` if not given)
-- `method` (will use `'GET'` if not given or `'POST'` if there is a `body`)
-- `path` (will use `'/'` if not given)
-- `body` (will use `''` if not given)
-- `service` (will be calculated from `hostname` or `host` if not given)
-- `region` (will be calculated from `hostname` or `host` or use `'us-east-1'` if not given)
-- `headers['Host']` (will use `hostname` or `host` or be calculated if not given)
-- `headers['Content-Type']` (will use `'application/x-www-form-urlencoded; charset=utf-8'`
- if not given and there is a `body`)
-- `headers['Date']` (used to calculate the signature date if given, otherwise `new Date` is used)
-
-Your AWS credentials (which can be found in your
-[AWS console](https://portal.aws.amazon.com/gp/aws/securityCredentials))
-can be specified in one of two ways:
-
-- As the second argument, like this:
-
-```javascript
-aws4.sign(requestOptions, {
- secretAccessKey: "<your-secret-access-key>",
- accessKeyId: "<your-access-key-id>",
- sessionToken: "<your-session-token>"
-})
-```
-
-- From `process.env`, such as this:
-
-```
-export AWS_SECRET_ACCESS_KEY="<your-secret-access-key>"
-export AWS_ACCESS_KEY_ID="<your-access-key-id>"
-export AWS_SESSION_TOKEN="<your-session-token>"
-```
-
-(will also use `AWS_ACCESS_KEY` and `AWS_SECRET_KEY` if available)
-
-The `sessionToken` property and `AWS_SESSION_TOKEN` environment variable are optional for signing
-with [IAM STS temporary credentials](http://docs.aws.amazon.com/STS/latest/UsingSTS/using-temp-creds.html).
-
-Installation
-------------
-
-With [npm](http://npmjs.org/) do:
-
-```
-npm install aws4
-```
-
-Can also be used [in the browser](./browser).
-
-Thanks
-------
-
-Thanks to [@jed](https://github.com/jed) for his
-[dynamo-client](https://github.com/jed/dynamo-client) lib where I first
-committed and subsequently extracted this code.
-
-Also thanks to the
-[official node.js AWS SDK](https://github.com/aws/aws-sdk-js) for giving
-me a start on implementing the v4 signature.
-
diff --git a/deps/npm/node_modules/request/node_modules/aws4/package.json b/deps/npm/node_modules/request/node_modules/aws4/package.json
deleted file mode 100644
index 68cb0353b1..0000000000
--- a/deps/npm/node_modules/request/node_modules/aws4/package.json
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "aws4@^1.2.1",
- "_id": "aws4@1.6.0",
- "_integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
- "_location": "/request/aws4",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "aws4@^1.2.1",
- "name": "aws4",
- "escapedName": "aws4",
- "rawSpec": "^1.2.1",
- "saveSpec": null,
- "fetchSpec": "^1.2.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "_shasum": "83ef5ca860b2b32e4a0deedee8c771b9db57471e",
- "_shrinkwrap": null,
- "_spec": "aws4@^1.2.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Michael Hart",
- "email": "michael.hart.au@gmail.com",
- "url": "http://github.com/mhart"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mhart/aws4/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Signs and prepares requests using AWS Signature Version 4",
- "devDependencies": {
- "mocha": "^2.4.5",
- "should": "^8.2.2"
- },
- "homepage": "https://github.com/mhart/aws4#readme",
- "keywords": [
- "amazon",
- "aws",
- "signature",
- "s3",
- "ec2",
- "autoscaling",
- "cloudformation",
- "elasticloadbalancing",
- "elb",
- "elasticbeanstalk",
- "cloudsearch",
- "dynamodb",
- "kinesis",
- "lambda",
- "glacier",
- "sqs",
- "sns",
- "iam",
- "sts",
- "ses",
- "swf",
- "storagegateway",
- "datapipeline",
- "directconnect",
- "redshift",
- "opsworks",
- "rds",
- "monitoring",
- "cloudtrail",
- "cloudfront",
- "codedeploy",
- "elasticache",
- "elasticmapreduce",
- "elastictranscoder",
- "emr",
- "cloudwatch",
- "mobileanalytics",
- "cognitoidentity",
- "cognitosync",
- "cognito",
- "containerservice",
- "ecs",
- "appstream",
- "keymanagementservice",
- "kms",
- "config",
- "cloudhsm",
- "route53",
- "route53domains",
- "logs"
- ],
- "license": "MIT",
- "main": "aws4.js",
- "name": "aws4",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mhart/aws4.git"
- },
- "scripts": {
- "test": "mocha ./test/fast.js ./test/slow.js -b -t 100s -R list"
- },
- "version": "1.6.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/caseless/package.json b/deps/npm/node_modules/request/node_modules/caseless/package.json
deleted file mode 100644
index d34ef232a8..0000000000
--- a/deps/npm/node_modules/request/node_modules/caseless/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "caseless@~0.12.0",
- "_id": "caseless@0.12.0",
- "_integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
- "_location": "/request/caseless",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "caseless@~0.12.0",
- "name": "caseless",
- "escapedName": "caseless",
- "rawSpec": "~0.12.0",
- "saveSpec": null,
- "fetchSpec": "~0.12.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "_shasum": "1b681c21ff84033c826543090689420d187151dc",
- "_shrinkwrap": null,
- "_spec": "caseless@~0.12.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mikeal/caseless/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Caseless object set/get/has, very useful when working with HTTP headers.",
- "devDependencies": {
- "tape": "^2.10.2"
- },
- "homepage": "https://github.com/mikeal/caseless#readme",
- "keywords": [
- "headers",
- "http",
- "caseless"
- ],
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "caseless",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mikeal/caseless.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "test": "node test.js",
- "version": "0.12.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/Readme.md b/deps/npm/node_modules/request/node_modules/combined-stream/Readme.md
deleted file mode 100644
index 3a9e025fb4..0000000000
--- a/deps/npm/node_modules/request/node_modules/combined-stream/Readme.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# combined-stream
-
-A stream that emits multiple other streams one after another.
-
-**NB** Currently `combined-stream` works with streams vesrion 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 compatability 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/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile b/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile
deleted file mode 100644
index b4ff85a33b..0000000000
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-SHELL := /bin/bash
-
-test:
- @./test/run.js
-
-.PHONY: test
-
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json b/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json
deleted file mode 100644
index 16eaf985ba..0000000000
--- a/deps/npm/node_modules/request/node_modules/combined-stream/node_modules/delayed-stream/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "delayed-stream@~1.0.0",
- "_id": "delayed-stream@1.0.0",
- "_integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "_location": "/request/combined-stream/delayed-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "delayed-stream@~1.0.0",
- "name": "delayed-stream",
- "escapedName": "delayed-stream",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/request/combined-stream"
- ],
- "_resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "_shasum": "df3ae199acadfb7d440aaae0b29e2272b24ec619",
- "_shrinkwrap": null,
- "_spec": "delayed-stream@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/combined-stream",
- "author": {
- "name": "Felix Geisendƶrfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/felixge/node-delayed-stream/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Mike Atkins",
- "email": "apeherder@gmail.com"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Buffers events from a stream until you are ready to handle them.",
- "devDependencies": {
- "fake": "0.2.0",
- "far": "0.0.1"
- },
- "engines": {
- "node": ">=0.4.0"
- },
- "homepage": "https://github.com/felixge/node-delayed-stream",
- "license": "MIT",
- "main": "./lib/delayed_stream",
- "name": "delayed-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-delayed-stream.git"
- },
- "scripts": {
- "test": "make test"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/combined-stream/package.json b/deps/npm/node_modules/request/node_modules/combined-stream/package.json
deleted file mode 100644
index 59c5c534b6..0000000000
--- a/deps/npm/node_modules/request/node_modules/combined-stream/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "combined-stream@~1.0.5",
- "_id": "combined-stream@1.0.5",
- "_integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
- "_location": "/request/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": [
- "/request",
- "/request/form-data"
- ],
- "_resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "_shasum": "938370a57b4a51dea2c77c15d5c5fdf895164009",
- "_shrinkwrap": null,
- "_spec": "combined-stream@~1.0.5",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Felix Geisendƶrfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "bin": null,
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/felixge/node-combined-stream.git"
- },
- "scripts": {
- "test": "node test/run.js"
- },
- "version": "1.0.5"
-}
diff --git a/deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md b/deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md
deleted file mode 100644
index 0fe5287646..0000000000
--- a/deps/npm/node_modules/request/node_modules/extend/CHANGELOG.md
+++ /dev/null
@@ -1,77 +0,0 @@
-3.0.1 / 2017-04-27
-==================
- * [Fix] deep extending should work with a non-object (#46)
- * [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`
- * [Tests] up to `node` `v7.9`, `v6.10`, `v4.8`; improve matrix
- * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG.
- * [Docs] Add example to readme (#34)
-
-3.0.0 / 2015-07-01
-==================
- * [Possible breaking change] Use global "strict" directive (#32)
- * [Tests] `int` is an ES3 reserved word
- * [Tests] Test up to `io.js` `v2.3`
- * [Tests] Add `npm run eslint`
- * [Dev Deps] Update `covert`, `jscs`
-
-2.0.1 / 2015-04-25
-==================
- * Use an inline `isArray` check, for ES3 browsers. (#27)
- * Some old browsers fail when an identifier is `toString`
- * Test latest `node` and `io.js` versions on `travis-ci`; speed up builds
- * Add license info to package.json (#25)
- * Update `tape`, `jscs`
- * Adding a CHANGELOG
-
-2.0.0 / 2014-10-01
-==================
- * Increase code coverage to 100%; run code coverage as part of tests
- * Add `npm run lint`; Run linter as part of tests
- * Remove nodeType and setInterval checks in isPlainObject
- * Updating `tape`, `jscs`, `covert`
- * General style and README cleanup
-
-1.3.0 / 2014-06-20
-==================
- * Add component.json for browser support (#18)
- * Use SVG for badges in README (#16)
- * Updating `tape`, `covert`
- * Updating travis-ci to work with multiple node versions
- * Fix `deep === false` bug (returning target as {}) (#14)
- * Fixing constructor checks in isPlainObject
- * Adding additional test coverage
- * Adding `npm run coverage`
- * Add LICENSE (#13)
- * Adding a warning about `false`, per #11
- * General style and whitespace cleanup
-
-1.2.1 / 2013-09-14
-==================
- * Fixing hasOwnProperty bugs that would only have shown up in specific browsers. Fixes #8
- * Updating `tape`
-
-1.2.0 / 2013-09-02
-==================
- * Updating the README: add badges
- * Adding a missing variable reference.
- * Using `tape` instead of `buster` for tests; add more tests (#7)
- * Adding node 0.10 to Travis CI (#6)
- * Enabling "npm test" and cleaning up package.json (#5)
- * Add Travis CI.
-
-1.1.3 / 2012-12-06
-==================
- * Added unit tests.
- * Ensure extend function is named. (Looks nicer in a stack trace.)
- * README cleanup.
-
-1.1.1 / 2012-11-07
-==================
- * README cleanup.
- * Added installation instructions.
- * Added a missing semicolon
-
-1.0.0 / 2012-04-08
-==================
- * Initial commit
-
diff --git a/deps/npm/node_modules/request/node_modules/extend/LICENSE b/deps/npm/node_modules/request/node_modules/extend/LICENSE
deleted file mode 100644
index e16d6a56ca..0000000000
--- a/deps/npm/node_modules/request/node_modules/extend/LICENSE
+++ /dev/null
@@ -1,23 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2014 Stefan Thomas
-
-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/request/node_modules/extend/README.md b/deps/npm/node_modules/request/node_modules/extend/README.md
deleted file mode 100644
index 5b8249aa95..0000000000
--- a/deps/npm/node_modules/request/node_modules/extend/README.md
+++ /dev/null
@@ -1,81 +0,0 @@
-[![Build Status][travis-svg]][travis-url]
-[![dependency status][deps-svg]][deps-url]
-[![dev dependency status][dev-deps-svg]][dev-deps-url]
-
-# extend() for Node.js <sup>[![Version Badge][npm-version-png]][npm-url]</sup>
-
-`node-extend` is a port of the classic extend() method from jQuery. It behaves as you expect. It is simple, tried and true.
-
-Notes:
-
-* Since Node.js >= 4,
- [`Object.assign`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)
- now offers the same functionality natively (but without the "deep copy" option).
- See [ECMAScript 2015 (ES6) in Node.js](https://nodejs.org/en/docs/es6).
-* Some native implementations of `Object.assign` in both Node.js and many
- browsers (since NPM modules are for the browser too) may not be fully
- spec-compliant.
- Check [`object.assign`](https://www.npmjs.com/package/object.assign) module for
- a compliant candidate.
-
-## Installation
-
-This package is available on [npm][npm-url] as: `extend`
-
-``` sh
-npm install extend
-```
-
-## Usage
-
-**Syntax:** extend **(** [`deep`], `target`, `object1`, [`objectN`] **)**
-
-*Extend one object with one or more others, returning the modified object.*
-
-**Example:**
-
-``` js
-var extend = require('extend');
-extend(targetObject, object1, object2);
-```
-
-Keep in mind that the target object will be modified, and will be returned from extend().
-
-If a boolean true is specified as the first argument, extend performs a deep copy, recursively copying any objects it finds. Otherwise, the copy will share structure with the original object(s).
-Undefined properties are not copied. However, properties inherited from the object's prototype will be copied over.
-Warning: passing `false` as the first argument is not supported.
-
-### Arguments
-
-* `deep` *Boolean* (optional)
-If set, the merge becomes recursive (i.e. deep copy).
-* `target` *Object*
-The object to extend.
-* `object1` *Object*
-The object that will be merged into the first.
-* `objectN` *Object* (Optional)
-More objects to merge into the first.
-
-## License
-
-`node-extend` is licensed under the [MIT License][mit-license-url].
-
-## Acknowledgements
-
-All credit to the jQuery authors for perfecting this amazing utility.
-
-Ported to Node.js by [Stefan Thomas][github-justmoon] with contributions by [Jonathan Buchanan][github-insin] and [Jordan Harband][github-ljharb].
-
-[travis-svg]: https://travis-ci.org/justmoon/node-extend.svg
-[travis-url]: https://travis-ci.org/justmoon/node-extend
-[npm-url]: https://npmjs.org/package/extend
-[mit-license-url]: http://opensource.org/licenses/MIT
-[github-justmoon]: https://github.com/justmoon
-[github-insin]: https://github.com/insin
-[github-ljharb]: https://github.com/ljharb
-[npm-version-png]: http://versionbadg.es/justmoon/node-extend.svg
-[deps-svg]: https://david-dm.org/justmoon/node-extend.svg
-[deps-url]: https://david-dm.org/justmoon/node-extend
-[dev-deps-svg]: https://david-dm.org/justmoon/node-extend/dev-status.svg
-[dev-deps-url]: https://david-dm.org/justmoon/node-extend#info=devDependencies
-
diff --git a/deps/npm/node_modules/request/node_modules/extend/component.json b/deps/npm/node_modules/request/node_modules/extend/component.json
deleted file mode 100644
index 1500a2f371..0000000000
--- a/deps/npm/node_modules/request/node_modules/extend/component.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "name": "extend",
- "author": "Stefan Thomas <justmoon@members.fsf.org> (http://www.justmoon.net)",
- "version": "3.0.0",
- "description": "Port of jQuery.extend for node.js and the browser.",
- "scripts": [
- "index.js"
- ],
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "repository" : {
- "type": "git",
- "url": "https://github.com/justmoon/node-extend.git"
- },
- "dependencies": {
- },
- "devDependencies": {
- "tape" : "~3.0.0",
- "covert": "~0.4.0",
- "jscs": "~1.6.2"
- }
-}
-
diff --git a/deps/npm/node_modules/request/node_modules/extend/package.json b/deps/npm/node_modules/request/node_modules/extend/package.json
deleted file mode 100644
index 6403cdb086..0000000000
--- a/deps/npm/node_modules/request/node_modules/extend/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "extend@~3.0.0",
- "_id": "extend@3.0.1",
- "_integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
- "_location": "/request/extend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "extend@~3.0.0",
- "name": "extend",
- "escapedName": "extend",
- "rawSpec": "~3.0.0",
- "saveSpec": null,
- "fetchSpec": "~3.0.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "_shasum": "a755ea7bc1adfcc5a31ce7e762dbaadc5e636444",
- "_shrinkwrap": null,
- "_spec": "extend@~3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Stefan Thomas",
- "email": "justmoon@members.fsf.org",
- "url": "http://www.justmoon.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/justmoon/node-extend/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "url": "https://github.com/ljharb"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Port of jQuery.extend for node.js and the browser",
- "devDependencies": {
- "@ljharb/eslint-config": "^11.0.0",
- "covert": "^1.1.0",
- "eslint": "^3.19.0",
- "jscs": "^3.0.7",
- "tape": "^4.6.3"
- },
- "homepage": "https://github.com/justmoon/node-extend#readme",
- "keywords": [
- "extend",
- "clone",
- "merge"
- ],
- "license": "MIT",
- "main": "index",
- "name": "extend",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/justmoon/node-extend.git"
- },
- "scripts": {
- "coverage": "covert test/index.js",
- "coverage-quiet": "covert test/index.js --quiet",
- "eslint": "eslint *.js */*.js",
- "jscs": "jscs *.js */*.js",
- "lint": "npm run jscs && npm run eslint",
- "posttest": "npm run coverage-quiet",
- "pretest": "npm run lint",
- "test": "npm run tests-only",
- "tests-only": "node test"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/index.js b/deps/npm/node_modules/request/node_modules/forever-agent/index.js
deleted file mode 100644
index 416c7abd70..0000000000
--- a/deps/npm/node_modules/request/node_modules/forever-agent/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-module.exports = ForeverAgent
-ForeverAgent.SSL = ForeverAgentSSL
-
-var util = require('util')
- , Agent = require('http').Agent
- , net = require('net')
- , tls = require('tls')
- , AgentSSL = require('https').Agent
-
-function getConnectionName(host, port) {
- var name = ''
- if (typeof host === 'string') {
- name = host + ':' + port
- } else {
- // For node.js v012.0 and iojs-v1.5.1, host is an object. And any existing localAddress is part of the connection name.
- name = host.host + ':' + host.port + ':' + (host.localAddress ? (host.localAddress + ':') : ':')
- }
- return name
-}
-
-function ForeverAgent(options) {
- var self = this
- self.options = options || {}
- self.requests = {}
- self.sockets = {}
- self.freeSockets = {}
- self.maxSockets = self.options.maxSockets || Agent.defaultMaxSockets
- self.minSockets = self.options.minSockets || ForeverAgent.defaultMinSockets
- self.on('free', function(socket, host, port) {
- var name = getConnectionName(host, port)
-
- if (self.requests[name] && self.requests[name].length) {
- self.requests[name].shift().onSocket(socket)
- } else if (self.sockets[name].length < self.minSockets) {
- if (!self.freeSockets[name]) self.freeSockets[name] = []
- self.freeSockets[name].push(socket)
-
- // if an error happens while we don't use the socket anyway, meh, throw the socket away
- var onIdleError = function() {
- socket.destroy()
- }
- socket._onIdleError = onIdleError
- socket.on('error', onIdleError)
- } else {
- // If there are no pending requests just destroy the
- // socket and it will get removed from the pool. This
- // gets us out of timeout issues and allows us to
- // default to Connection:keep-alive.
- socket.destroy()
- }
- })
-
-}
-util.inherits(ForeverAgent, Agent)
-
-ForeverAgent.defaultMinSockets = 5
-
-
-ForeverAgent.prototype.createConnection = net.createConnection
-ForeverAgent.prototype.addRequestNoreuse = Agent.prototype.addRequest
-ForeverAgent.prototype.addRequest = function(req, host, port) {
- var name = getConnectionName(host, port)
-
- if (typeof host !== 'string') {
- var options = host
- port = options.port
- host = options.host
- }
-
- if (this.freeSockets[name] && this.freeSockets[name].length > 0 && !req.useChunkedEncodingByDefault) {
- var idleSocket = this.freeSockets[name].pop()
- idleSocket.removeListener('error', idleSocket._onIdleError)
- delete idleSocket._onIdleError
- req._reusedSocket = true
- req.onSocket(idleSocket)
- } else {
- this.addRequestNoreuse(req, host, port)
- }
-}
-
-ForeverAgent.prototype.removeSocket = function(s, name, host, port) {
- if (this.sockets[name]) {
- var index = this.sockets[name].indexOf(s)
- if (index !== -1) {
- this.sockets[name].splice(index, 1)
- }
- } else if (this.sockets[name] && this.sockets[name].length === 0) {
- // don't leak
- delete this.sockets[name]
- delete this.requests[name]
- }
-
- if (this.freeSockets[name]) {
- var index = this.freeSockets[name].indexOf(s)
- if (index !== -1) {
- this.freeSockets[name].splice(index, 1)
- if (this.freeSockets[name].length === 0) {
- delete this.freeSockets[name]
- }
- }
- }
-
- if (this.requests[name] && this.requests[name].length) {
- // If we have pending requests and a socket gets closed a new one
- // needs to be created to take over in the pool for the one that closed.
- this.createSocket(name, host, port).emit('free')
- }
-}
-
-function ForeverAgentSSL (options) {
- ForeverAgent.call(this, options)
-}
-util.inherits(ForeverAgentSSL, ForeverAgent)
-
-ForeverAgentSSL.prototype.createConnection = createConnectionSSL
-ForeverAgentSSL.prototype.addRequestNoreuse = AgentSSL.prototype.addRequest
-
-function createConnectionSSL (port, host, options) {
- if (typeof port === 'object') {
- options = port;
- } else if (typeof host === 'object') {
- options = host;
- } else if (typeof options === 'object') {
- options = options;
- } else {
- options = {};
- }
-
- if (typeof port === 'number') {
- options.port = port;
- }
-
- if (typeof host === 'string') {
- options.host = host;
- }
-
- return tls.connect(options);
-}
diff --git a/deps/npm/node_modules/request/node_modules/forever-agent/package.json b/deps/npm/node_modules/request/node_modules/forever-agent/package.json
deleted file mode 100644
index fcbeb2b78d..0000000000
--- a/deps/npm/node_modules/request/node_modules/forever-agent/package.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
- "_from": "forever-agent@~0.6.1",
- "_id": "forever-agent@0.6.1",
- "_integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "_location": "/request/forever-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "forever-agent@~0.6.1",
- "name": "forever-agent",
- "escapedName": "forever-agent",
- "rawSpec": "~0.6.1",
- "saveSpec": null,
- "fetchSpec": "~0.6.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "_shasum": "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91",
- "_shrinkwrap": null,
- "_spec": "forever-agent@~0.6.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com",
- "url": "http://www.futurealoof.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mikeal/forever-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "HTTP Agent that keeps socket connections alive between keep-alive requests. Formerly part of mikeal/request, now a standalone module.",
- "devDependencies": {},
- "engines": {
- "node": "*"
- },
- "homepage": "https://github.com/mikeal/forever-agent#readme",
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "forever-agent",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "url": "git+https://github.com/mikeal/forever-agent.git"
- },
- "version": "0.6.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/Readme.md b/deps/npm/node_modules/request/node_modules/form-data/Readme.md
deleted file mode 100644
index 518ee84ddf..0000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/Readme.md
+++ /dev/null
@@ -1,234 +0,0 @@
-# Form-Data [![NPM Module](https://img.shields.io/npm/v/form-data.svg)](https://www.npmjs.com/package/form-data) [![Join the chat at https://gitter.im/form-data/form-data](http://form-data.github.io/images/gitterbadge.svg)](https://gitter.im/form-data/form-data)
-
-A library to create readable ```"multipart/form-data"``` streams. Can be used to submit forms and file uploads to other web applications.
-
-The API of this library is inspired by the [XMLHttpRequest-2 FormData Interface][xhr2-fd].
-
-[xhr2-fd]: http://dev.w3.org/2006/webapi/XMLHttpRequest-2/Overview.html#the-formdata-interface
-
-[![Linux Build](https://img.shields.io/travis/form-data/form-data/v2.3.1.svg?label=linux:0.12-8.x)](https://travis-ci.org/form-data/form-data)
-[![MacOS Build](https://img.shields.io/travis/form-data/form-data/v2.3.1.svg?label=macos:0.12-8.x)](https://travis-ci.org/form-data/form-data)
-[![Windows Build](https://img.shields.io/appveyor/ci/alexindigo/form-data/v2.3.1.svg?label=windows:0.12-8.x)](https://ci.appveyor.com/project/alexindigo/form-data)
-
-[![Coverage Status](https://img.shields.io/coveralls/form-data/form-data/v2.3.1.svg?label=code+coverage)](https://coveralls.io/github/form-data/form-data?branch=master)
-[![Dependency Status](https://img.shields.io/david/form-data/form-data.svg)](https://david-dm.org/form-data/form-data)
-[![bitHound Overall Score](https://www.bithound.io/github/form-data/form-data/badges/score.svg)](https://www.bithound.io/github/form-data/form-data)
-
-## Install
-
-```
-npm install --save form-data
-```
-
-## Usage
-
-In this example we are constructing a form with 3 fields that contain a string,
-a buffer and a file stream.
-
-``` javascript
-var FormData = require('form-data');
-var fs = require('fs');
-
-var form = new FormData();
-form.append('my_field', 'my value');
-form.append('my_buffer', new Buffer(10));
-form.append('my_file', fs.createReadStream('/foo/bar.jpg'));
-```
-
-Also you can use http-response stream:
-
-``` javascript
-var FormData = require('form-data');
-var http = require('http');
-
-var form = new FormData();
-
-http.request('http://nodejs.org/images/logo.png', function(response) {
- form.append('my_field', 'my value');
- form.append('my_buffer', new Buffer(10));
- form.append('my_logo', response);
-});
-```
-
-Or @mikeal's [request](https://github.com/request/request) stream:
-
-``` javascript
-var FormData = require('form-data');
-var request = require('request');
-
-var form = new FormData();
-
-form.append('my_field', 'my value');
-form.append('my_buffer', new Buffer(10));
-form.append('my_logo', request('http://nodejs.org/images/logo.png'));
-```
-
-In order to submit this form to a web application, call ```submit(url, [callback])``` method:
-
-``` javascript
-form.submit('http://example.org/', function(err, res) {
- // res ā€“ response object (http.IncomingMessage) //
- res.resume();
-});
-
-```
-
-For more advanced request manipulations ```submit()``` method returns ```http.ClientRequest``` object, or you can choose from one of the alternative submission methods.
-
-### Custom options
-
-You can provide custom options, such as `maxDataSize`:
-
-``` javascript
-var FormData = require('form-data');
-
-var form = new FormData({ maxDataSize: 20971520 });
-form.append('my_field', 'my value');
-form.append('my_buffer', /* something big */);
-```
-
-List of available options could be found in [combined-stream](https://github.com/felixge/node-combined-stream/blob/master/lib/combined_stream.js#L7-L15)
-
-### Alternative submission methods
-
-You can use node's http client interface:
-
-``` javascript
-var http = require('http');
-
-var request = http.request({
- method: 'post',
- host: 'example.org',
- path: '/upload',
- headers: form.getHeaders()
-});
-
-form.pipe(request);
-
-request.on('response', function(res) {
- console.log(res.statusCode);
-});
-```
-
-Or if you would prefer the `'Content-Length'` header to be set for you:
-
-``` javascript
-form.submit('example.org/upload', function(err, res) {
- console.log(res.statusCode);
-});
-```
-
-To use custom headers and pre-known length in parts:
-
-``` javascript
-var CRLF = '\r\n';
-var form = new FormData();
-
-var options = {
- header: CRLF + '--' + form.getBoundary() + CRLF + 'X-Custom-Header: 123' + CRLF + CRLF,
- knownLength: 1
-};
-
-form.append('my_buffer', buffer, options);
-
-form.submit('http://example.com/', function(err, res) {
- if (err) throw err;
- console.log('Done');
-});
-```
-
-Form-Data can recognize and fetch all the required information from common types of streams (```fs.readStream```, ```http.response``` and ```mikeal's request```), for some other types of streams you'd need to provide "file"-related information manually:
-
-``` javascript
-someModule.stream(function(err, stdout, stderr) {
- if (err) throw err;
-
- var form = new FormData();
-
- form.append('file', stdout, {
- filename: 'unicycle.jpg', // ... or:
- filepath: 'photos/toys/unicycle.jpg',
- contentType: 'image/jpeg',
- knownLength: 19806
- });
-
- form.submit('http://example.com/', function(err, res) {
- if (err) throw err;
- console.log('Done');
- });
-});
-```
-
-The `filepath` property overrides `filename` and may contain a relative path. This is typically used when uploading [multiple files from a directory](https://wicg.github.io/entries-api/#dom-htmlinputelement-webkitdirectory).
-
-For edge cases, like POST request to URL with query string or to pass HTTP auth credentials, object can be passed to `form.submit()` as first parameter:
-
-``` javascript
-form.submit({
- host: 'example.com',
- path: '/probably.php?extra=params',
- auth: 'username:password'
-}, function(err, res) {
- console.log(res.statusCode);
-});
-```
-
-In case you need to also send custom HTTP headers with the POST request, you can use the `headers` key in first parameter of `form.submit()`:
-
-``` javascript
-form.submit({
- host: 'example.com',
- path: '/surelynot.php',
- headers: {'x-test-header': 'test-header-value'}
-}, function(err, res) {
- console.log(res.statusCode);
-});
-```
-
-### Integration with other libraries
-
-#### Request
-
-Form submission using [request](https://github.com/request/request):
-
-```javascript
-var formData = {
- my_field: 'my_value',
- my_file: fs.createReadStream(__dirname + '/unicycle.jpg'),
-};
-
-request.post({url:'http://service.com/upload', formData: formData}, function(err, httpResponse, body) {
- if (err) {
- return console.error('upload failed:', err);
- }
- console.log('Upload successful! Server responded with:', body);
-});
-```
-
-For more details see [request readme](https://github.com/request/request#multipartform-data-multipart-form-uploads).
-
-#### node-fetch
-
-You can also submit a form using [node-fetch](https://github.com/bitinn/node-fetch):
-
-```javascript
-var form = new FormData();
-
-form.append('a', 1);
-
-fetch('http://example.com', { method: 'POST', body: form })
- .then(function(res) {
- return res.json();
- }).then(function(json) {
- console.log(json);
- });
-```
-
-## Notes
-
-- ```getLengthSync()``` method DOESN'T calculate length for streams, use ```knownLength``` options as workaround.
-- Starting version `2.x` FormData has dropped support for `node@0.10.x`.
-
-## License
-
-Form-Data is released under the [MIT](License) license.
diff --git a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json b/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json
deleted file mode 100644
index abd2bb5e5c..0000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/node_modules/asynckit/package.json
+++ /dev/null
@@ -1,94 +0,0 @@
-{
- "_from": "asynckit@^0.4.0",
- "_id": "asynckit@0.4.0",
- "_integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "_location": "/request/form-data/asynckit",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asynckit@^0.4.0",
- "name": "asynckit",
- "escapedName": "asynckit",
- "rawSpec": "^0.4.0",
- "saveSpec": null,
- "fetchSpec": "^0.4.0"
- },
- "_requiredBy": [
- "/request/form-data"
- ],
- "_resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "_shasum": "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79",
- "_shrinkwrap": null,
- "_spec": "asynckit@^0.4.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/form-data",
- "author": {
- "name": "Alex Indigo",
- "email": "iam@alexindigo.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/alexindigo/asynckit/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Minimal async jobs utility library, with streams support",
- "devDependencies": {
- "browserify": "^13.0.0",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.9",
- "eslint": "^2.9.0",
- "istanbul": "^0.4.3",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.7",
- "pre-commit": "^1.1.3",
- "reamde": "^1.1.0",
- "rimraf": "^2.5.2",
- "size-table": "^0.2.0",
- "tap-spec": "^4.1.1",
- "tape": "^4.5.1"
- },
- "homepage": "https://github.com/alexindigo/asynckit#readme",
- "keywords": [
- "async",
- "jobs",
- "parallel",
- "serial",
- "iterator",
- "array",
- "object",
- "stream",
- "destroy",
- "terminate",
- "abort"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "asynckit",
- "optionalDependencies": {},
- "peerDependencies": {},
- "pre-commit": [
- "clean",
- "lint",
- "test",
- "browser",
- "report",
- "size"
- ],
- "repository": {
- "type": "git",
- "url": "git+https://github.com/alexindigo/asynckit.git"
- },
- "scripts": {
- "browser": "browserify -t browserify-istanbul test/lib/browserify_adjustment.js test/test-*.js | obake --coverage | tap-spec",
- "clean": "rimraf coverage",
- "debug": "tape test/test-*.js",
- "lint": "eslint *.js lib/*.js test/*.js",
- "report": "istanbul report",
- "size": "browserify index.js | size-table asynckit",
- "test": "istanbul cover --reporter=json tape -- 'test/test-*.js' | tap-spec",
- "win-test": "tape test/test-*.js"
- },
- "version": "0.4.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/form-data/package.json b/deps/npm/node_modules/request/node_modules/form-data/package.json
deleted file mode 100644
index 8df3274a71..0000000000
--- a/deps/npm/node_modules/request/node_modules/form-data/package.json
+++ /dev/null
@@ -1,98 +0,0 @@
-{
- "_from": "form-data@~2.3.1",
- "_id": "form-data@2.3.1",
- "_inBundle": false,
- "_integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
- "_location": "/request/form-data",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "form-data@~2.3.1",
- "name": "form-data",
- "escapedName": "form-data",
- "rawSpec": "~2.3.1",
- "saveSpec": null,
- "fetchSpec": "~2.3.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
- "_shasum": "6fb94fbd71885306d73d15cc497fe4cc4ecd44bf",
- "_spec": "form-data@~2.3.1",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Felix Geisendƶrfer",
- "email": "felix@debuggable.com",
- "url": "http://debuggable.com/"
- },
- "browser": "./lib/browser",
- "bugs": {
- "url": "https://github.com/form-data/form-data/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.5",
- "mime-types": "^2.1.12"
- },
- "deprecated": false,
- "description": "A library to create readable \"multipart/form-data\" streams. Can be used to submit forms and file uploads to other web applications.",
- "devDependencies": {
- "browserify": "^13.1.1",
- "browserify-istanbul": "^2.0.0",
- "coveralls": "^2.11.14",
- "cross-spawn": "^4.0.2",
- "eslint": "^3.9.1",
- "fake": "^0.2.2",
- "far": "^0.0.7",
- "formidable": "^1.0.17",
- "in-publish": "^2.0.0",
- "is-node-modern": "^1.0.0",
- "istanbul": "^0.4.5",
- "obake": "^0.1.2",
- "phantomjs-prebuilt": "^2.1.13",
- "pkgfiles": "^2.3.0",
- "pre-commit": "^1.1.3",
- "request": "2.76.0",
- "rimraf": "^2.5.4",
- "tape": "^4.6.2"
- },
- "engines": {
- "node": ">= 0.12"
- },
- "homepage": "https://github.com/form-data/form-data#readme",
- "license": "MIT",
- "main": "./lib/form_data",
- "name": "form-data",
- "pre-commit": [
- "lint",
- "ci-test",
- "check"
- ],
- "repository": {
- "type": "git",
- "url": "git://github.com/form-data/form-data.git"
- },
- "scripts": {
- "browser": "browserify -t browserify-istanbul test/run-browser.js | obake --coverage",
- "check": "istanbul check-coverage coverage/coverage*.json",
- "ci-lint": "is-node-modern 6 && npm run lint || is-node-not-modern 6",
- "ci-test": "npm run test && npm run browser && npm run report",
- "debug": "verbose=1 ./test/run.js",
- "files": "pkgfiles --sort=name",
- "get-version": "node -e \"console.log(require('./package.json').version)\"",
- "lint": "eslint lib/*.js test/*.js test/integration/*.js",
- "postpublish": "npm run restore-readme",
- "posttest": "istanbul report lcov text",
- "predebug": "rimraf coverage test/tmp",
- "prepublish": "in-publish && npm run update-readme || not-in-publish",
- "pretest": "rimraf coverage test/tmp",
- "report": "istanbul report lcov text",
- "restore-readme": "mv README.md.bak README.md",
- "test": "istanbul cover test/run.js",
- "update-readme": "sed -i.bak 's/\\/master\\.svg/\\/v'$(npm --silent run get-version)'.svg/g' README.md"
- },
- "version": "2.3.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md
deleted file mode 100644
index e011fda8ef..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/README.md
+++ /dev/null
@@ -1,1303 +0,0 @@
-<img align="right" alt="Ajv logo" width="160" src="http://epoberezkin.github.io/ajv/images/ajv_logo.png">
-
-# 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 downloads](https://img.shields.io/npm/dm/ajv.svg)](https://www.npmjs.com/package/ajv)
-[![Code Climate](https://codeclimate.com/github/epoberezkin/ajv/badges/gpa.svg)](https://codeclimate.com/github/epoberezkin/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)
-
-
-## 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)
-
-
-Performace 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:%7Cajv%7Cis-my-json-valid%7Cjsen%7Cschemasaurus%7Cthemis%7Cz-schema%7Cjsck%7Cjsonschema%7Cskeemas%7Ctv4%7Cjayschema&chd=t:100,68,61,22.8,17.6,6.6,2.7,0.9,0.7,0.4,0.1)](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 nodejs 0.10-7.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
-```
-
-
-## <a name="usage"></a>Getting started
-
-Try it in the node 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
-// ...
-ajv.addSchema(schema, 'mySchema');
-var valid = ajv.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 [json-stable-stringify](https://github.com/substack/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 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
-<script src="ajv.min.js"></script>
-```
-
-This bundle can be used with different module systems or 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 to change the behaviour in case an unknown format is encountered - 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).
-
-
-## <a name="ref"></a>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:
-
-```
-var ajv = new Ajv({schemas: [schema, defsSchema]});
-var validate = ajv.getSchema('http://example.com/schemas/schema.json');
-```
-
-or use `addSchema` method:
-
-```
-var ajv = new Ajv;
-ajv.addSchema(defsSchema);
-var validate = ajv.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 explicitely 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 REPL: https://tonicdev.com/esp/ajv-asynchronous-validation
-
-You can define custom formats and keywords that perform validation asyncronously by accessing database or some service. You should add `async: true` in the keyword or format defnition (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 syncronous 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 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 has 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 asyncronous 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<br>speed*|run-time<br>speed*|bundle<br>size|
-|---|:-:|:-:|:-:|
-|es7 async<br>(native)|-|0.75|-|
-|generators<br>(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 v.7, 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 nodejs and the latest Chrome
-- much better performace 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) -&gt; Object
-
-Create Ajv instance.
-
-
-##### .compile(Object schema) -&gt; Function&lt;Object data&gt;
-
-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).
-
-
-##### <a name="api-compileAsync"></a>.compileAsync(Object schema [, Boolean meta] [, Function callback]) -&gt; Promise
-
-Asyncronous 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 callback if passed will be called with an error) when:
-
-- missing schema can't be loaded (`loadSchema` returns the Promise that rejects).
-- the schema containing missing reference is loaded, but the reference cannot be resolved.
-- schema (or some 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) -&gt; 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&lt;Object&gt;|Object schema [, String key])
-
-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.
-
-
-##### .addMetaSchema(Array&lt;Object&gt;|Object schema [, String key])
-
-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`.
-
-
-##### <a name="api-validateschema"></a>.validateSchema(Object schema) -&gt; 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) -&gt; Function&lt;Object data&gt;
-
-Retrieve compiled schema previously added with `addSchema` by the key passed to `addSchema` or by its full reference (id). Returned validating function has `schema` property with the reference to the original schema.
-
-
-##### .removeSchema([Object schema|String key|String ref|RegExp pattern])
-
-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.
-
-
-##### <a name="api-addformat"></a>.addFormat(String name, String|RegExp|Function|Object format)
-
-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.
-
-
-##### <a name="api-addkeyword"></a>.addKeyword(String keyword, Object definition)
-
-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) -&gt; Object|Boolean
-
-Returns custom keyword definition, `true` for pre-defined keywords and `false` if the keyword is unknown.
-
-
-##### .removeKeyword(String keyword)
-
-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&lt;Object&gt; errors [, Object options]]) -&gt; 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: {},
- // 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` propery 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.
-
-
-##### 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 recomended 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`/`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 [json-stable-stringify](https://github.com/substack/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 in case `validate` or `validateSchema` methods were called). In case of [asynchronous validation](#asynchronous-validation) the returned promise is rejected with the exception of the class `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 dependedncies).
-- `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-cli](https://github.com/epoberezkin/ajv-cli) - command line interface for Ajv
-- [ajv-i18n](https://github.com/epoberezkin/ajv-i18n) - internationalised error messages
-- [ajv-merge-patch](https://github.com/epoberezkin/ajv-merge-patch) - keywordsĀ $merge and $patch.
-- [ajv-keywords](https://github.com/epoberezkin/ajv-keywords) - several custom keywords that can be used with Ajv (typeof, instanceof, range, propertyNames)
-- [ajv-errors](https://github.com/epoberezkin/ajv-errors) - custom error messages for Ajv
-
-
-## 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/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js
deleted file mode 100644
index 967b4e0b9c..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js
+++ /dev/null
@@ -1,3 +0,0 @@
-/* ajv 5.2.3: Another JSON Schema Validator */
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).Ajv=e()}}(function(){return function e(r,t,a){function s(i,n){if(!t[i]){if(!r[i]){var l="function"==typeof require&&require;if(!n&&l)return l(i,!0);if(o)return o(i,!0);var h=new Error("Cannot find module '"+i+"'");throw h.code="MODULE_NOT_FOUND",h}var u=t[i]={exports:{}};r[i][0].call(u.exports,function(e){var t=r[i][1][e];return s(t||e)},u,u.exports,e,r,t,a)}return t[i].exports}for(var o="function"==typeof require&&require,i=0;i<a.length;i++)s(a[i]);return s}({1:[function(e,r,t){"use strict";var a=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];r.exports=function(e,r){for(var t=0;t<r.length;t++){e=JSON.parse(JSON.stringify(e));var s,o=r[t].split("/"),i=e;for(s=1;s<o.length;s++)i=i[o[s]];for(s=0;s<a.length;s++){var n=a[s],l=i[n];l&&(i[n]={anyOf:[l,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#"}]})}}return e}},{}],2:[function(e,r,t){"use strict";var a=r.exports=function(){this._cache={}};a.prototype.put=function(e,r){this._cache[e]=r},a.prototype.get=function(e){return this._cache[e]},a.prototype.del=function(e){delete this._cache[e]},a.prototype.clear=function(){this._cache={}}},{}],3:[function(e,r,t){"use strict";r.exports={$ref:e("../dotjs/ref"),allOf:e("../dotjs/allOf"),anyOf:e("../dotjs/anyOf"),const:e("../dotjs/const"),contains:e("../dotjs/contains"),dependencies:e("../dotjs/dependencies"),enum:e("../dotjs/enum"),format:e("../dotjs/format"),items:e("../dotjs/items"),maximum:e("../dotjs/_limit"),minimum:e("../dotjs/_limit"),maxItems:e("../dotjs/_limitItems"),minItems:e("../dotjs/_limitItems"),maxLength:e("../dotjs/_limitLength"),minLength:e("../dotjs/_limitLength"),maxProperties:e("../dotjs/_limitProperties"),minProperties:e("../dotjs/_limitProperties"),multipleOf:e("../dotjs/multipleOf"),not:e("../dotjs/not"),oneOf:e("../dotjs/oneOf"),pattern:e("../dotjs/pattern"),properties:e("../dotjs/properties"),propertyNames:e("../dotjs/propertyNames"),required:e("../dotjs/required"),uniqueItems:e("../dotjs/uniqueItems"),validate:e("../dotjs/validate")}},{"../dotjs/_limit":13,"../dotjs/_limitItems":14,"../dotjs/_limitLength":15,"../dotjs/_limitProperties":16,"../dotjs/allOf":17,"../dotjs/anyOf":18,"../dotjs/const":19,"../dotjs/contains":20,"../dotjs/dependencies":22,"../dotjs/enum":23,"../dotjs/format":24,"../dotjs/items":25,"../dotjs/multipleOf":26,"../dotjs/not":27,"../dotjs/oneOf":28,"../dotjs/pattern":29,"../dotjs/properties":30,"../dotjs/propertyNames":31,"../dotjs/ref":32,"../dotjs/required":33,"../dotjs/uniqueItems":34,"../dotjs/validate":35}],4:[function(e,r,t){"use strict";function a(e,r,t){function o(e){var r=e.$schema;return r&&!n.getSchema(r)?a.call(n,{$ref:r},!0):Promise.resolve()}function i(e){try{return n._compile(e)}catch(t){if(t instanceof s)return function(t){function a(){delete n._loadingSchemas[l]}function s(e){return n._refs[e]||n._schemas[e]}var l=t.missingSchema;if(s(l))throw new Error("Schema "+l+" is loaded but "+t.missingRef+" cannot be resolved");var h=n._loadingSchemas[l];return h||(h=n._loadingSchemas[l]=n._opts.loadSchema(l)).then(a,a),h.then(function(e){if(!s(l))return o(e).then(function(){s(l)||n.addSchema(e,l,void 0,r)})}).then(function(){return i(e)})}(t);throw t}}var n=this;if("function"!=typeof this._opts.loadSchema)throw new Error("options.loadSchema should be a function");"function"==typeof r&&(t=r,r=void 0);var l=o(e).then(function(){var t=n._addSchema(e,void 0,r);return t.validate||i(t)});return t&&l.then(function(e){t(null,e)},t),l}var s=e("./error_classes").MissingRef;r.exports=a},{"./error_classes":5}],5:[function(e,r,t){"use strict";function a(e){this.message="validation failed",this.errors=e,this.ajv=this.validation=!0}function s(e,r,t){this.message=t||s.message(e,r),this.missingRef=i.url(e,r),this.missingSchema=i.normalizeId(i.fullPath(this.missingRef))}function o(e){return e.prototype=Object.create(Error.prototype),e.prototype.constructor=e,e}var i=e("./resolve");r.exports={Validation:o(a),MissingRef:o(s)},s.message=function(e,r){return"can't resolve reference "+r+" from id "+e}},{"./resolve":8}],6:[function(e,r,t){"use strict";function a(e){return e="full"==e?"full":"fast",u.copy(a[e])}function s(e){var r=e.match(c);if(!r)return!1;var t=+r[1],a=+r[2];return t>=1&&t<=12&&a>=1&&a<=f[t]}function o(e,r){var t=e.match(d);if(!t)return!1;var a=t[1],s=t[2],o=t[3],i=t[5];return a<=23&&s<=59&&o<=59&&(!r||i)}function i(e){var r=e.split(w);return 2==r.length&&s(r[0])&&o(r[1],!0)}function n(e){return e.length<=255&&p.test(e)}function l(e){return j.test(e)&&m.test(e)}function h(e){if(S.test(e))return!1;try{return new RegExp(e),!0}catch(e){return!1}}var u=e("./util"),c=/^\d\d\d\d-(\d\d)-(\d\d)$/,f=[0,31,29,31,30,31,30,31,31,30,31,30,31],d=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i,p=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*$/i,m=/^(?:[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,v=/^(?:[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,y=/^(?:(?:[^\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,g=/^(?:(?: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,P=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,E=/^(?:\/(?:[^~/]|~0|~1)*)*$|^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,b=/^(?: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":y,url:g,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:p,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:h,uuid:P,"json-pointer":E,"relative-json-pointer":b},a.full={date:s,time:o,"date-time":i,uri:l,"uri-reference":v,"uri-template":y,url:g,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:n,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:h,uuid:P,"json-pointer":E,"relative-json-pointer":b};var w=/t|\s/i,j=/\/|:/,S=/[^\\]\\Z/},{"./util":12}],7:[function(e,r,t){"use strict";function a(e,r,t,i){function b(){var e=V.validate,r=e.apply(null,arguments);return b.errors=e.errors,r}function w(e,t,s,o){var i=!t||t&&t.schema==e;if(t.schema!=r.schema)return a.call(D,e,t,s,o);var m=!0===e.$async,b=v({isTop:!0,schema:e,isRoot:i,baseId:o,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:p.MissingRef,RULES:T,validate:v,util:d,resolve:f,resolveRef:j,usePattern:$,useDefault:R,useCustomRule:O,opts:I,formats:N,self:D});b=c(A,h)+c(q,n)+c(L,l)+c(Q,u)+b,I.processCode&&(b=I.processCode(b));var w;try{w=new Function("self","RULES","formats","root","refVal","defaults","customRules","co","equal","ucs2length","ValidationError",b)(D,T,N,r,A,L,Q,y,P,g,E),A[0]=w}catch(e){throw console.error("Error compiling schema, function code:",b),e}return w.schema=e,w.errors=null,w.refs=k,w.refVal=A,w.root=i?w:t,m&&(w.$async=!0),!0===I.sourceCode&&(w.source={code:b,patterns:q,defaults:L}),w}function j(e,s,o){s=f.url(e,s);var i,n,l=k[s];if(void 0!==l)return i=A[l],n="refVal["+l+"]",F(i,n);if(!o&&r.refs){var h=r.refs[s];if(void 0!==h)return i=r.refVal[h],n=S(s,i),F(i,n)}n=S(s);var u=f.call(D,w,r,s);if(void 0===u){var c=t&&t[s];c&&(u=f.inlineRef(c,I.inlineRefs)?c:a.call(D,c,r,t,e))}if(void 0!==u)return x(s,u),F(u,n);_(s)}function S(e,r){var t=A.length;return A[t]=r,k[e]=t,"refVal"+t}function _(e){delete k[e]}function x(e,r){A[k[e]]=r}function F(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=C[e];return void 0===r&&(r=C[e]=q.length,q[r]=e),"pattern"+r}function R(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return d.toQuotedString(e);case"object":if(null===e)return"null";var r=m(e),t=z[r];return void 0===t&&(t=z[r]=L.length,L[t]=e),"default"+t}}function O(e,r,t,a){var s=e.definition.validateSchema;if(s&&!1!==D._opts.validateSchema&&!s(r)){var o="keyword schema is invalid: "+D.errorsText(s.errors);if("log"!=D._opts.validateSchema)throw new Error(o);console.error(o)}var i,n=e.definition.compile,l=e.definition.inline,h=e.definition.macro;if(n)i=n.call(D,r,t,a);else if(h)i=h.call(D,r,t,a),!1!==I.validateSchema&&D.validateSchema(i,!0);else if(l)i=l.call(D,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=Q.length;return Q[u]=i,{code:"customRule"+u,validate:i}}var D=this,I=this._opts,A=[void 0],k={},q=[],C={},L=[],z={},Q=[];r=r||{schema:e,refVal:A,refs:k};var U=s.call(this,e,r,i),V=this._compilations[U.index];if(U.compiling)return V.callValidate=b;var N=this._formats,T=this.RULES;try{var M=w(e,r,t,i);V.validate=M;var B=V.callValidate;return B&&(B.schema=M.schema,B.errors=null,B.refs=M.refs,B.refVal=M.refVal,B.root=M.root,B.$async=M.$async,I.sourceCode&&(B.source=M.source)),M}finally{o.call(this,e,r,i)}}function s(e,r,t){var a=i.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})}function o(e,r,t){var a=i.call(this,e,r,t);a>=0&&this._compilations.splice(a,1)}function i(e,r,t){for(var a=0;a<this._compilations.length;a++){var s=this._compilations[a];if(s.schema==e&&s.root==r&&s.baseId==t)return a}return-1}function n(e,r){return"var pattern"+e+" = new RegExp("+d.toQuotedString(r[e])+");"}function l(e){return"var default"+e+" = defaults["+e+"];"}function h(e,r){return void 0===r[e]?"":"var refVal"+e+" = refVal["+e+"];"}function u(e){return"var customRule"+e+" = customRules["+e+"];"}function c(e,r){if(!e.length)return"";for(var t="",a=0;a<e.length;a++)t+=r(a,e);return t}var f=e("./resolve"),d=e("./util"),p=e("./error_classes"),m=e("json-stable-stringify"),v=e("../dotjs/validate"),y=e("co"),g=d.ucs2length,P=e("fast-deep-equal"),E=p.Validation;r.exports=a},{"../dotjs/validate":35,"./error_classes":5,"./resolve":8,"./util":12,co:40,"fast-deep-equal":41,"json-stable-stringify":43}],8:[function(e,r,t){"use strict";function a(e,r,t){var o=this._refs[t];if("string"==typeof o){if(!this._refs[o])return a.call(this,e,r,o);o=this._refs[o]}if((o=o||this._schemas[t])instanceof g)return n(o.schema,this._opts.inlineRefs)?o.schema:o.validate||this._compile(o);var i,l,h,u=s.call(this,r,t);return u&&(i=u.schema,r=u.root,h=u.baseId),i instanceof g?l=i.validate||e.call(this,i.schema,r,void 0,h):void 0!==i&&(l=n(i,this._opts.inlineRefs)?i:e.call(this,i,r,void 0,h)),l}function s(e,r){var t=m.parse(r,!1,!0),a=c(t),s=u(this._getId(e.schema));if(a!==s){var n=f(a),l=this._refs[n];if("string"==typeof l)return o.call(this,e,l,t);if(l instanceof g)l.validate||this._compile(l),e=l;else{if(!((l=this._schemas[n])instanceof g))return;if(l.validate||this._compile(l),n==f(r))return{schema:l,root:e,baseId:s};e=l}if(!e.schema)return;s=u(this._getId(e.schema))}return i.call(this,t,s,e.schema,e)}function o(e,r,t){var a=s.call(this,e,r);if(a){var o=a.schema,n=a.baseId;e=a.root;var l=this._getId(o);return l&&(n=d(n,l)),i.call(this,t,n,o,e)}}function i(e,r,t,a){if("#/"==(e.hash=e.hash||"").slice(0,2)){for(var o=e.hash.split("/"),i=1;i<o.length;i++){var n=o[i];if(n){if(n=y.unescapeFragment(n),void 0===(t=t[n]))break;var l;if(!E[n]&&((l=this._getId(t))&&(r=d(r,l)),t.$ref)){var h=d(r,t.$ref),u=s.call(this,a,h);u&&(t=u.schema,a=u.root,r=u.baseId)}}}return void 0!==t&&t!==a.schema?{schema:t,root:a,baseId:r}:void 0}}function n(e,r){return!1!==r&&(void 0===r||!0===r?l(e):r?h(e)<=r:void 0)}function l(e){var r;if(Array.isArray(e)){for(var t=0;t<e.length;t++)if("object"==typeof(r=e[t])&&!l(r))return!1}else for(var a in e){if("$ref"==a)return!1;if("object"==typeof(r=e[a])&&!l(r))return!1}return!0}function h(e){var r,t=0;if(Array.isArray(e)){for(var a=0;a<e.length;a++)if("object"==typeof(r=e[a])&&(t+=h(r)),t==1/0)return 1/0}else for(var s in e){if("$ref"==s)return 1/0;if(b[s])t++;else if("object"==typeof(r=e[s])&&(t+=h(r)+1),t==1/0)return 1/0}return t}function u(e,r){return!1!==r&&(e=f(e)),c(m.parse(e,!1,!0))}function c(e){var r=e.protocol||"//"==e.href.slice(0,2)?"//":"";return(e.protocol||"")+r+(e.host||"")+(e.path||"")+"#"}function f(e){return e?e.replace(w,""):""}function d(e,r){return r=f(r),m.resolve(e,r)}function p(e){var r=f(this._getId(e)),t={"":r},a={"":u(r,!1)},s={},o=this;return P(e,{allKeys:!0},function(e,r,i,n,l,h,u){if(""!==r){var c=o._getId(e),d=t[n],p=a[n]+"/"+l;if(void 0!==u&&(p+="/"+("number"==typeof u?u:y.escapeFragment(u))),"string"==typeof c){c=d=f(d?m.resolve(d,c):c);var g=o._refs[c];if("string"==typeof g&&(g=o._refs[g]),g&&g.schema){if(!v(e,g.schema))throw new Error('id "'+c+'" resolves to more than one schema')}else if(c!=f(p))if("#"==c[0]){if(s[c]&&!v(e,s[c]))throw new Error('id "'+c+'" resolves to more than one schema');s[c]=e}else o._refs[c]=p}t[r]=d,a[r]=p}}),s}var m=e("url"),v=e("fast-deep-equal"),y=e("./util"),g=e("./schema_obj"),P=e("json-schema-traverse");r.exports=a,a.normalizeId=f,a.fullPath=u,a.url=d,a.ids=p,a.inlineRef=n,a.schema=s;var E=y.toHash(["properties","patternProperties","enum","dependencies","definitions"]),b=y.toHash(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum"]),w=/#\/?$/},{"./schema_obj":10,"./util":12,"fast-deep-equal":41,"json-schema-traverse":42,url:51}],9:[function(e,r,t){"use strict";var a=e("./_rules"),s=e("./util").toHash;r.exports=function(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","uniqueItems","contains","items"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf"]}],r=["type"],t=["additionalItems","$schema","id","title","description","default","definitions"],o=["number","integer","string","array","object","boolean","null"];return e.all=s(r),e.types=s(o),e.forEach(function(t){t.rules=t.rules.map(function(t){var s;if("object"==typeof t){var o=Object.keys(t)[0];s=t[o],t=o,s.forEach(function(t){r.push(t),e.all[t]=!0})}return r.push(t),e.all[t]={keyword:t,code:a[t],implements:s}}),t.type&&(e.types[t.type]=t)}),e.keywords=s(r.concat(t)),e.custom={},e}},{"./_rules":3,"./util":12}],10:[function(e,r,t){"use strict";function a(e){s.copy(e,this)}var s=e("./util");r.exports=a},{"./util":12}],11:[function(e,r,t){"use strict";r.exports=function(e){for(var r,t=0,a=e.length,s=0;s<a;)t++,(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<a&&56320==(64512&(r=e.charCodeAt(s)))&&s++;return t}},{}],12:[function(e,r,t){"use strict";function a(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function s(e,r,t){var a=t?" !== ":" === ",s=t?" || ":" && ",o=t?"!":"",i=t?"":"!";switch(e){case"null":return r+a+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+s+"typeof "+r+a+'"object"'+s+i+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+a+'"number"'+s+i+"("+r+" % 1)"+s+r+a+r+")";default:return"typeof "+r+a+'"'+e+'"'}}function o(e,r){switch(e.length){case 1:return s(e[0],r,!0);default:var t="",a=n(e);a.array&&a.object&&(t=a.null?"(":"(!"+r+" || ",t+="typeof "+r+' !== "object")',delete a.null,delete a.array,delete a.object),a.number&&delete a.integer;for(var o in a)t+=(t?" && ":"")+s(o,r,!0);return t}}function i(e,r){if(Array.isArray(r)){for(var t=[],a=0;a<r.length;a++){var s=r[a];_[s]?t[t.length]=s:"array"===e&&"array"===s&&(t[t.length]=s)}if(t.length)return t}else{if(_[r])return[r];if("array"===e&&"array"===r)return["array"]}}function n(e){for(var r={},t=0;t<e.length;t++)r[e[t]]=!0;return r}function l(e){return"number"==typeof e?"["+e+"]":x.test(e)?"."+e:"['"+h(e)+"']"}function h(e){return e.replace(F,"\\$&").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\f/g,"\\f").replace(/\t/g,"\\t")}function u(e,r){r+="[^0-9]";var t=e.match(new RegExp(r,"g"));return t?t.length:0}function c(e,r,t){return r+="([^0-9])",t=t.replace(/\$/g,"$$$$"),e.replace(new RegExp(r,"g"),t+"$1")}function f(e){return e.replace($,"").replace(R,"").replace(O,"if (!($1))")}function d(e,r){var t=e.match(D);return t&&2==t.length&&(e=r?e.replace(A,"").replace(C,L):e.replace(I,"").replace(k,q)),t=e.match(z),t&&3===t.length?e.replace(Q,""):e}function p(e,r){if("boolean"==typeof e)return!e;for(var t in e)if(r[t])return!0}function m(e,r,t){if("boolean"==typeof e)return!e&&"not"!=t;for(var a in e)if(a!=t&&r[a])return!0}function v(e){return"'"+h(e)+"'"}function y(e,r,t,a){return E(e,t?"'/' + "+r+(a?"":".replace(/~/g, '~0').replace(/\\//g, '~1')"):a?"'[' + "+r+" + ']'":"'[\\'' + "+r+" + '\\']'")}function g(e,r,t){return E(e,v(t?"/"+j(r):l(r)))}function P(e,r,t){var a,s,o,i;if(""===e)return"rootData";if("/"==e[0]){if(!U.test(e))throw new Error("Invalid JSON-pointer: "+e);s=e,o="rootData"}else{if(!(i=e.match(V)))throw new Error("Invalid JSON-pointer: "+e);if(a=+i[1],"#"==(s=i[2])){if(a>=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(o="data"+(r-a||""),!s)return o}for(var n=o,h=s.split("/"),u=0;u<h.length;u++){var c=h[u];c&&(n+=" && "+(o+=l(S(c))))}return n}function E(e,r){return'""'==e?r:(e+" + "+r).replace(/' \+ '/g,"")}function b(e){return S(decodeURIComponent(e))}function w(e){return encodeURIComponent(j(e))}function j(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function S(e){return e.replace(/~1/g,"/").replace(/~0/g,"~")}r.exports={copy:a,checkDataType:s,checkDataTypes:o,coerceToTypes:i,toHash:n,getProperty:l,escapeQuotes:h,equal:e("fast-deep-equal"),ucs2length:e("./ucs2length"),varOccurences:u,varReplace:c,cleanUpCode:f,finalCleanUpCode:d,schemaHasRules:p,schemaHasRulesExcept:m,toQuotedString:v,getPathExpr:y,getPath:g,getData:P,unescapeFragment:b,unescapeJsonPointer:S,escapeFragment:w,escapeJsonPointer:j};var _=n(["string","number","integer","boolean","null"]),x=/^[a-z$_][a-z$_0-9]*$/i,F=/'|\\/g,$=/else\s*{\s*}/g,R=/if\s*\([^)]+\)\s*\{\s*\}(?!\s*else)/g,O=/if\s*\(([^)]+)\)\s*\{\s*\}\s*else(?!\s*if)/g,D=/[^v.]errors/g,I=/var errors = 0;|var vErrors = null;|validate.errors = vErrors;/g,A=/var errors = 0;|var vErrors = null;/g,k="return errors === 0;",q="validate.errors = null; return true;",C=/if \(errors === 0\) return data;\s*else throw new ValidationError\(vErrors\);/,L="return data;",z=/[^A-Za-z_$]rootData[^A-Za-z0-9_$]/g,Q=/if \(rootData === undefined\) rootData = data;/,U=/^\/(?:[^~]|~0|~1)*$/,V=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/},{"./ucs2length":11,"fast-deep-equal":41}],13:[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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maximum"==r,p=d?"exclusiveMaximum":"exclusiveMinimum",m=e.schema[p],v=e.opts.$data&&m&&m.$data,y=d?"<":">",g=d?">":"<",P=void 0;if(v){var E=e.util.getData(m.$data,i,e.dataPathArr),b="exclusive"+o,w="exclType"+o,j="exclIsNumber"+o,S="' + "+(_="op"+o)+" + '";s+=" var schemaExcl"+o+" = "+E+"; ",s+=" var "+b+"; var "+w+" = typeof "+(E="schemaExcl"+o)+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";P=p;(x=x||[]).push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_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+=" {} ";F=s;s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",s+=" } else if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+w+" == 'number' ? ( ("+b+" = "+a+" === undefined || "+E+" "+y+"= "+a+") ? "+c+" "+g+"= "+E+" : "+c+" "+g+" "+a+" ) : ( ("+b+" = "+E+" === true) ? "+c+" "+g+"= "+a+" : "+c+" "+g+" "+a+" ) || "+c+" !== "+c+") { var op"+o+" = "+b+" ? '"+y+"' : '"+y+"=';"}else{S=y;if((j="number"==typeof m)&&f){_="'"+S+"'";s+=" if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" ( "+a+" === undefined || "+m+" "+y+"= "+a+" ? "+c+" "+g+"= "+m+" : "+c+" "+g+" "+a+" ) || "+c+" !== "+c+") { "}else{j&&void 0===n?(b=!0,P=p,h=e.errSchemaPath+"/"+p,a=m,g+="="):(j&&(a=Math[d?"min":"max"](m,n)),m===(!j||a)?(b=!0,P=p,h=e.errSchemaPath+"/"+p,g+="="):(b=!1,S+="="));var _="'"+S+"'";s+=" if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+" "+g+" "+a+" || "+c+" !== "+c+") { "}}P=P||r;var x=x||[];x.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(P||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { comparison: "+_+", limit: "+a+", exclusive: "+b+" } ",!1!==e.opts.messages&&(s+=" , message: 'should be "+S+" ",s+=f?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var F=s;return s=x.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; 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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxItems"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" "+c+".length "+d+" "+a+") { ";var p=r,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_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+=f?"' + "+a+" + '":""+n,s+=" items' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; 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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxLength"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=!1===e.opts.unicode?" "+c+".length ":" ucs2length("+c+") ",s+=" "+d+" "+a+") { ";var p=r,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_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+=f?"' + "+a+" + '":""+n,s+=" characters' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; 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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d="maxProperties"==r?">":"<";s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'number') || "),s+=" Object.keys("+c+").length "+d+" "+a+") { ";var p=r,m=m||[];m.push(s),s="",!1!==e.createErrors?(s+=" { keyword: '"+(p||"_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+=f?"' + "+a+" + '":""+n,s+=" properties' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var v=s;return s=m.pop(),s+=!e.compositeRule&&u?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; 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="",u="valid"+ ++l.level,c=l.baseId,f=!0,d=s;if(d)for(var p,m=-1,v=d.length-1;m<v;)p=d[m+=1],e.util.schemaHasRules(p,e.RULES.all)&&(f=!1,l.schema=p,l.schemaPath=o+"["+m+"]",l.errSchemaPath=i+"/"+m,a+=" "+e.validate(l)+" ",l.baseId=c,n&&(a+=" if ("+u+") { ",h+="}"));return n&&(a+=f?" if (true) { ":" "+h.slice(0,-1)+" "),a=e.util.cleanUpCode(a)}},{}],18:[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,f="errs__"+s,d=e.util.copy(e),p="",m="valid"+ ++d.level;if(i.every(function(r){return e.util.schemaHasRules(r,e.RULES.all)})){var v=d.baseId;a+=" var "+f+" = errors; var "+c+" = false; ";var y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v,a+=" "+c+" = "+c+" || "+m+"; if (!"+c+") { ",p+="}";e.compositeRule=d.compositeRule=y,a+=" "+p+" if (!"+c+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'anyOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should match some schema in anyOf' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+=" } else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } ",e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}else h&&(a+=" if (true) { ");return a}},{}],19:[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,f=e.opts.$data&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; "),f||(a+=" var schema"+s+" = validate.schema"+n+";"),a+="var "+c+" = equal("+u+", schema"+s+"); if (!"+c+") { ";var d=d||[];d.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'const' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to constant' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var p=a;return a=d.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+p+"]); ":" validate.errors = ["+p+"]; return false; ":" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",h&&(a+=" else { "),a}},{}],20:[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,f="errs__"+s,d=e.util.copy(e),p="valid"+ ++d.level,m="i"+s,v=d.dataLevel=e.dataLevel+1,y="data"+v,g=e.baseId,P=e.util.schemaHasRules(i,e.RULES.all);if(a+="var "+f+" = errors;var "+c+";",P){var E=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" var "+p+" = false; for (var "+m+" = 0; "+m+" < "+u+".length; "+m+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers,!0);var b=u+"["+m+"]";d.dataPathArr[v]=m;var w=e.validate(d);d.baseId=g,e.util.varOccurences(w,y)<2?a+=" "+e.util.varReplace(w,y,b)+" ":a+=" var "+y+" = "+b+"; "+w+" ",a+=" if ("+p+") break; } ",e.compositeRule=d.compositeRule=E,a+=" if (!"+p+") {"}else a+=" if ("+u+".length == 0) {";var j=j||[];j.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'contains' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should contain a valid item' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var S=a;return a=j.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+=" } else { ",P&&(a+=" errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; } "),e.opts.allErrors&&(a+=" } "),a=e.util.cleanUpCode(a)}},{}],21:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],h=e.schemaPath+e.util.getProperty(r),u=e.errSchemaPath+"/"+r,c=!e.opts.allErrors,f="data"+(n||""),d="valid"+i,p="errs__"+i,m=e.opts.$data&&l&&l.$data;m?(o+=" var schema"+i+" = "+e.util.getData(l.$data,n,e.dataPathArr)+"; ",s="schema"+i):s=l;var v,y,g,P,E,b=this,w="definition"+i,j=b.definition,S="";if(m&&j.$data){E="keywordValidate"+i;var _=j.validateSchema;o+=" var "+w+" = RULES.custom['"+r+"'].definition; var "+E+" = "+w+".validate;"}else{if(!(P=e.useCustomRule(b,l,e.schema,e)))return;s="validate.schema"+h,E=P.code,v=j.compile,y=j.inline,g=j.macro}var x=E+".errors",F="i"+i,$="ruleErr"+i,R=j.async;if(R&&!e.async)throw new Error("async keyword in sync schema");if(y||g||(o+=x+" = null;"),o+="var "+p+" = errors;var "+d+";",m&&j.$data&&(S+="}",o+=" if ("+s+" === undefined) { "+d+" = true; } else { ",_&&(S+="}",o+=" "+d+" = "+w+".validateSchema("+s+"); if ("+d+") { ")),y)o+=j.statements?" "+P.validate+" ":" "+d+" = "+P.validate+"; ";else if(g){var O=e.util.copy(e),S="",D="valid"+ ++O.level;O.schema=P.validate,O.schemaPath="";var I=e.compositeRule;e.compositeRule=O.compositeRule=!0;var A=e.validate(O).replace(/validate\.schema/g,E);e.compositeRule=O.compositeRule=I,o+=" "+A}else{(L=L||[]).push(o),o="",o+=" "+E+".call( ",o+=e.opts.passContext?"this":"self",o+=v||!1===j.schema?" , "+f+" ":" , "+s+" , "+f+" , validate.schema"+e.schemaPath+" ",o+=" , (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var k=n?"data"+(n-1||""):"parentData",q=n?e.dataPathArr[n]:"parentDataProperty",C=o+=" , "+k+" , "+q+" , rootData ) ";o=L.pop(),!1===j.errors?(o+=" "+d+" = ",R&&(o+=""+e.yieldAwait),o+=C+"; "):o+=R?" var "+(x="customErrors"+i)+" = null; try { "+d+" = "+e.yieldAwait+C+"; } catch (e) { "+d+" = false; if (e instanceof ValidationError) "+x+" = e.errors; else throw e; } ":" "+x+" = null; "+d+" = "+C+"; "}if(j.modifying&&(o+=" if ("+k+") "+f+" = "+k+"["+q+"];"),o+=""+S,j.valid)c&&(o+=" if (true) { ");else{o+=" if ( ",void 0===j.valid?(o+=" !",o+=g?""+D:""+d):o+=" "+!j.valid+" ",o+=") { ",a=b.keyword;var L=L||[];L.push(o),o="",(L=L||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+b.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+b.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),o+=" } "):o+=" {} ";var z=o;o=L.pop();var Q=o+=!e.compositeRule&&c?e.async?" throw new ValidationError(["+z+"]); ":" validate.errors = ["+z+"]; return false; ":" var err = "+z+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";o=L.pop(),y?j.errors?"full"!=j.errors&&(o+=" for (var "+F+"="+p+"; "+F+"<errors; "+F+"++) { var "+$+" = vErrors["+F+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+f+"; "),o+=" } "):!1===j.errors?o+=" "+Q+" ":(o+=" if ("+p+" == errors) { "+Q+" } else { for (var "+F+"="+p+"; "+F+"<errors; "+F+"++) { var "+$+" = vErrors["+F+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; if ("+$+".schemaPath === undefined) { "+$+'.schemaPath = "'+u+'"; } ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+f+"; "),o+=" } } "):g?(o+=" var err = ",!1!==e.createErrors?(o+=" { keyword: '"+(a||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(u)+" , params: { keyword: '"+b.keyword+"' } ",!1!==e.opts.messages&&(o+=" , message: 'should pass \""+b.keyword+"\" keyword validation' "),e.opts.verbose&&(o+=" , schema: validate.schema"+h+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "),o+=" } "):o+=" {} ",o+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",!e.compositeRule&&c&&(o+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; ")):!1===j.errors?o+=" "+Q+" ":(o+=" if (Array.isArray("+x+")) { if (vErrors === null) vErrors = "+x+"; else vErrors = vErrors.concat("+x+"); errors = vErrors.length; for (var "+F+"="+p+"; "+F+"<errors; "+F+"++) { var "+$+" = vErrors["+F+"]; if ("+$+".dataPath === undefined) "+$+".dataPath = (dataPath || '') + "+e.errorPath+"; "+$+'.schemaPath = "'+u+'"; ',e.opts.verbose&&(o+=" "+$+".schema = "+s+"; "+$+".data = "+f+"; "),o+=" } } else { "+Q+" } "),o+=" } ",c&&(o+=" else { ")}return o}},{}],22:[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,f=e.util.copy(e),d="",p="valid"+ ++f.level,m={},v={},y=e.opts.ownProperties;for(b in i){var g=i[b],P=Array.isArray(g)?v:m;P[b]=g}a+="var "+c+" = errors;";var E=e.errorPath;a+="var missing"+s+";";for(var b in v)if((P=v[b]).length){if(a+=" if ( "+u+e.util.getProperty(b)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(b)+"') "),h){a+=" && ( ";var w=P;if(w)for(var j=-1,S=w.length-1;j<S;)O=w[j+=1],j&&(a+=" || "),a+=" ( ( "+(k=u+(A=e.util.getProperty(O)))+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?O:A)+") ) ";a+=")) { ";var _="missing"+s,x="' + "+_+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,_,!0):E+" + "+_);var F=F||[];F.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(b)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(b)+" is present' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var $=a;a=F.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+$+"]); ":" validate.errors = ["+$+"]; return false; ":" var err = "+$+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else{a+=" ) { ";var R=P;if(R)for(var O,D=-1,I=R.length-1;D<I;){O=R[D+=1];var A=e.util.getProperty(O),x=e.util.escapeQuotes(O),k=u+A;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,O,e.opts.jsonPointers)),a+=" if ( "+k+" === undefined ",y&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(O)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'dependencies' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(b)+"', missingProperty: '"+x+"', depsCount: "+P.length+", deps: '"+e.util.escapeQuotes(1==P.length?P[0]:P.join(", "))+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should have ",a+=1==P.length?"property "+e.util.escapeQuotes(P[0]):"properties "+e.util.escapeQuotes(P.join(", ")),a+=" when property "+e.util.escapeQuotes(b)+" is present' "),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++; } "}}a+=" } ",h&&(d+="}",a+=" else { ")}e.errorPath=E;var q=f.baseId;for(var b in m){g=m[b];e.util.schemaHasRules(g,e.RULES.all)&&(a+=" "+p+" = true; if ( "+u+e.util.getProperty(b)+" !== undefined ",y&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(b)+"') "),a+=") { ",f.schema=g,f.schemaPath=n+e.util.getProperty(b),f.errSchemaPath=l+"/"+e.util.escapeFragment(b),a+=" "+e.validate(f)+" ",f.baseId=q,a+=" } ",h&&(a+=" if ("+p+") { ",d+="}"))}return h&&(a+=" "+d+" if ("+c+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],23:[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,f=e.opts.$data&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var d="i"+s,p="schema"+s;f||(a+=" var "+p+" = validate.schema"+n+";"),a+="var "+c+";",f&&(a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"),a+=c+" = false;for (var "+d+"=0; "+d+"<"+p+".length; "+d+"++) if (equal("+u+", "+p+"["+d+"])) { "+c+" = true; break; }",f&&(a+=" } "),a+=" if (!"+c+") { ";var m=m||[];m.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'enum' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ",!1!==e.opts.messages&&(a+=" , message: 'should be equal to one of the allowed values' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var v=a;return a=m.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+v+"]); ":" validate.errors = ["+v+"]; return false; ":" var err = "+v+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" }",h&&(a+=" else { "),a}},{}],24:[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||"");if(!1===e.opts.format)return h&&(a+=" if (true) { "),a;var c,f=e.opts.$data&&i&&i.$data;f?(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ",c="schema"+s):c=i;var d=e.opts.unknownFormats,p=Array.isArray(d);if(f)a+=" var "+(m="format"+s)+" = formats["+c+"]; var "+(v="isObject"+s)+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+(y="formatType"+s)+" = "+v+" && "+m+".type || 'string'; if ("+v+") { ",e.async&&(a+=" var async"+s+" = "+m+".async; "),a+=" "+m+" = "+m+".validate; } if ( ",f&&(a+=" ("+c+" !== undefined && typeof "+c+" != 'string') || "),a+=" (","ignore"!=d&&(a+=" ("+c+" && !"+m+" ",p&&(a+=" && self._opts.unknownFormats.indexOf("+c+") == -1 "),a+=") || "),a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ",a+=e.async?" (async"+s+" ? "+e.yieldAwait+" "+m+"("+u+") : "+m+"("+u+")) ":" "+m+"("+u+") ",a+=" : "+m+".test("+u+"))))) {";else{var m=e.formats[i];if(!m){if("ignore"==d)return console.warn('unknown format "'+i+'" ignored in schema at path "'+e.errSchemaPath+'"'),h&&(a+=" if (true) { "),a;if(p&&d.indexOf(i)>=0)return h&&(a+=" if (true) { "),a;throw new Error('unknown format "'+i+'" is used in schema at path "'+e.errSchemaPath+'"')}var v="object"==typeof m&&!(m instanceof RegExp)&&m.validate,y=v&&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");P="formats"+e.util.getProperty(i)+".validate";a+=" if (!("+e.yieldAwait+" "+P+"("+u+"))) { "}else{a+=" if (! ";var 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+=f?""+c:""+e.util.toQuotedString(i),a+=" } ",!1!==e.opts.messages&&(a+=" , message: 'should match format \"",a+=f?"' + "+c+" + '":""+e.util.escapeQuotes(i),a+="\"' "),e.opts.verbose&&(a+=" , schema: ",a+=f?"validate.schema"+n:""+e.util.toQuotedString(i),a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var b=a;return a=E.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+=" } ",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,f="errs__"+s,d=e.util.copy(e),p="",m="valid"+ ++d.level,v="i"+s,y=d.dataLevel=e.dataLevel+1,g="data"+y,P=e.baseId;if(a+="var "+f+" = errors;var "+c+";",Array.isArray(i)){var E=e.schema.additionalItems;if(!1===E){a+=" "+c+" = "+u+".length <= "+i.length+"; ";var b=l;l=e.errSchemaPath+"/additionalItems",a+=" if (!"+c+") { ";var w=w||[];w.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 j=a;a=w.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+=" } ",l=b,h&&(p+="}",a+=" else { ")}var S=i;if(S)for(var _,x=-1,F=S.length-1;x<F;)if(_=S[x+=1],e.util.schemaHasRules(_,e.RULES.all)){a+=" "+m+" = true; if ("+u+".length > "+x+") { ";$=u+"["+x+"]";d.schema=_,d.schemaPath=n+"["+x+"]",d.errSchemaPath=l+"/"+x,d.errorPath=e.util.getPathExpr(e.errorPath,x,e.opts.jsonPointers,!0),d.dataPathArr[y]=x;R=e.validate(d);d.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)){d.schema=E,d.schemaPath=e.schemaPath+".additionalItems",d.errSchemaPath=e.errSchemaPath+"/additionalItems",a+=" "+m+" = true; if ("+u+".length > "+i.length+") { for (var "+v+" = "+i.length+"; "+v+" < "+u+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);$=u+"["+v+"]";d.dataPathArr[y]=v;R=e.validate(d);d.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)){d.schema=i,d.schemaPath=n,d.errSchemaPath=l,a+=" for (var "+v+" = 0; "+v+" < "+u+".length; "+v+"++) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers,!0);var $=u+"["+v+"]";d.dataPathArr[y]=v;var R=e.validate(d);d.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 ("+f+" == 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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,s+="var division"+o+";if (",f&&(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+=" ) ",f&&(s+=" ) "),s+=" ) { ";var d=d||[];d.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+=f?"' + "+a:a+"'"),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+n,s+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),s+=" } "):s+=" {} ";var p=s;return s=d.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,f=e.util.copy(e),d="valid"+ ++f.level;if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l,a+=" var "+c+" = errors; ";var p=e.compositeRule;e.compositeRule=f.compositeRule=!0,f.createErrors=!1;var m;f.opts.allErrors&&(m=f.opts.allErrors,f.opts.allErrors=!1),a+=" "+e.validate(f)+" ",f.createErrors=!0,m&&(f.opts.allErrors=m),e.compositeRule=f.compositeRule=p,a+=" if ("+d+") { ";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,f="errs__"+s,d=e.util.copy(e),p="",m="valid"+ ++d.level;a+="var "+f+" = errors;var prevValid"+s+" = false;var "+c+" = false;";var v=d.baseId,y=e.compositeRule;e.compositeRule=d.compositeRule=!0;var g=i;if(g)for(var P,E=-1,b=g.length-1;E<b;)P=g[E+=1],e.util.schemaHasRules(P,e.RULES.all)?(d.schema=P,d.schemaPath=n+"["+E+"]",d.errSchemaPath=l+"/"+E,a+=" "+e.validate(d)+" ",d.baseId=v):a+=" var "+m+" = true; ",E&&(a+=" if ("+m+" && prevValid"+s+") "+c+" = false; else { ",p+="}"),a+=" if ("+m+") "+c+" = prevValid"+s+" = true;";return e.compositeRule=d.compositeRule=y,a+=p+"if (!"+c+") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'oneOf' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ",!1!==e.opts.messages&&(a+=" , message: 'should match exactly one schema in oneOf' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),a+="} else { errors = "+f+"; if (vErrors !== null) { if ("+f+") vErrors.length = "+f+"; else vErrors = null; }",e.opts.allErrors&&(a+=" } "),a}},{}],29:[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||""),f=e.opts.$data&&n&&n.$data;f?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n;var d=f?"(new RegExp("+a+"))":e.usePattern(n);s+="if ( ",f&&(s+=" ("+a+" !== undefined && typeof "+a+" != 'string') || "),s+=" !"+d+".test("+c+") ) { ";var p=p||[];p.push(s),s="",!1!==e.createErrors?(s+=" { keyword: 'pattern' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { pattern: ",s+=f?""+a:""+e.util.toQuotedString(n),s+=" } ",!1!==e.opts.messages&&(s+=" , message: 'should match pattern \"",s+=f?"' + "+a+" + '":""+e.util.escapeQuotes(n),s+="\"' "),e.opts.verbose&&(s+=" , schema: ",s+=f?"validate.schema"+l:""+e.util.toQuotedString(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}},{}],30:[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,f="errs__"+s,d=e.util.copy(e),p="",m="valid"+ ++d.level,v="key"+s,y="idx"+s,g=d.dataLevel=e.dataLevel+1,P="data"+g,E="dataProperties"+s,b=Object.keys(i||{}),w=e.schema.patternProperties||{},j=Object.keys(w),S=e.schema.additionalProperties,_=b.length||j.length,x=!1===S,F="object"==typeof S&&Object.keys(S).length,$=e.opts.removeAdditional,R=x||F||$,O=e.opts.ownProperties,D=e.baseId,I=e.schema.required;if(I&&(!e.opts.v5||!I.$data)&&I.length<e.opts.loopRequired)var A=e.util.toHash(I);if(e.opts.patternGroups)var k=e.schema.patternGroups||{},q=Object.keys(k);if(a+="var "+f+" = errors;var "+m+" = true;",O&&(a+=" var "+E+" = undefined;"),R){if(a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",_){if(a+=" var isAdditional"+s+" = !(false ",b.length)if(b.length>5)a+=" || validate.schema"+n+"["+v+"] ";else{var C=b;if(C)for(var L=-1,z=C.length-1;L<z;)J=C[L+=1],a+=" || "+v+" == "+e.util.toQuotedString(J)+" "}if(j.length){var Q=j;if(Q)for(var U=-1,V=Q.length-1;U<V;)oe=Q[U+=1],a+=" || "+e.usePattern(oe)+".test("+v+") "}if(e.opts.patternGroups&&q.length){var N=q;if(N)for(var U=-1,T=N.length-1;U<T;)he=N[U+=1],a+=" || "+e.usePattern(he)+".test("+v+") "}a+=" ); if (isAdditional"+s+") { "}if("all"==$)a+=" delete "+u+"["+v+"]; ";else{var M=e.errorPath,B="' + "+v+" + '";if(e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers)),x)if($)a+=" delete "+u+"["+v+"]; ";else{a+=" "+m+" = false; ";te=l;l=e.errSchemaPath+"/additionalProperties",(Ee=Ee||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'additionalProperties' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { additionalProperty: '"+B+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have additional properties' "),e.opts.verbose&&(a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";be=a;a=Ee.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+be+"]); ":" validate.errors = ["+be+"]; return false; ":" var err = "+be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=te,h&&(a+=" break; ")}else if(F)if("failing"==$){a+=" var "+f+" = errors; ";var H=e.compositeRule;e.compositeRule=d.compositeRule=!0,d.schema=S,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);X=u+"["+v+"]";d.dataPathArr[g]=v;pe=e.validate(d);d.baseId=D,e.util.varOccurences(pe,P)<2?a+=" "+e.util.varReplace(pe,P,X)+" ":a+=" var "+P+" = "+X+"; "+pe+" ",a+=" if (!"+m+") { errors = "+f+"; if (validate.errors !== null) { if (errors) validate.errors.length = errors; else validate.errors = null; } delete "+u+"["+v+"]; } ",e.compositeRule=d.compositeRule=H}else{d.schema=S,d.schemaPath=e.schemaPath+".additionalProperties",d.errSchemaPath=e.errSchemaPath+"/additionalProperties",d.errorPath=e.opts._errorDataPathProperty?e.errorPath:e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);X=u+"["+v+"]";d.dataPathArr[g]=v;pe=e.validate(d);d.baseId=D,e.util.varOccurences(pe,P)<2?a+=" "+e.util.varReplace(pe,P,X)+" ":a+=" var "+P+" = "+X+"; "+pe+" ",h&&(a+=" if (!"+m+") break; ")}e.errorPath=M}_&&(a+=" } "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}var K=e.opts.useDefaults&&!e.compositeRule;if(b.length){var G=b;if(G)for(var J,Z=-1,Y=G.length-1;Z<Y;){de=i[J=G[Z+=1]];if(e.util.schemaHasRules(de,e.RULES.all)){var W=e.util.getProperty(J),X=u+W,ee=K&&void 0!==de.default;d.schema=de,d.schemaPath=n+W,d.errSchemaPath=l+"/"+e.util.escapeFragment(J),d.errorPath=e.util.getPath(e.errorPath,J,e.opts.jsonPointers),d.dataPathArr[g]=e.util.toQuotedString(J);pe=e.validate(d);if(d.baseId=D,e.util.varOccurences(pe,P)<2){pe=e.util.varReplace(pe,P,X);re=X}else{var re=P;a+=" var "+P+" = "+X+"; "}if(ee)a+=" "+pe+" ";else{if(A&&A[J]){a+=" if ( "+re+" === undefined ",O&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=") { "+m+" = false; ";var M=e.errorPath,te=l,ae=e.util.escapeQuotes(J);e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(M,J,e.opts.jsonPointers)),l=e.errSchemaPath+"/required",(Ee=Ee||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+ae+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+ae+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";be=a;a=Ee.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+be+"]); ":" validate.errors = ["+be+"]; return false; ":" var err = "+be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",l=te,e.errorPath=M,a+=" } else { "}else h?(a+=" if ( "+re+" === undefined ",O&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=") { "+m+" = true; } else { "):(a+=" if ("+re+" !== undefined ",O&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(J)+"') "),a+=" ) { ");a+=" "+pe+" } "}}h&&(a+=" if ("+m+") { ",p+="}")}}if(j.length){var se=j;if(se)for(var oe,ie=-1,ne=se.length-1;ie<ne;){de=w[oe=se[ie+=1]];if(e.util.schemaHasRules(de,e.RULES.all)){d.schema=de,d.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(oe),d.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(oe),a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",a+=" if ("+e.usePattern(oe)+".test("+v+")) { ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);X=u+"["+v+"]";d.dataPathArr[g]=v;pe=e.validate(d);d.baseId=D,e.util.varOccurences(pe,P)<2?a+=" "+e.util.varReplace(pe,P,X)+" ":a+=" var "+P+" = "+X+"; "+pe+" ",h&&(a+=" if (!"+m+") break; "),a+=" } ",h&&(a+=" else "+m+" = true; "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}")}}}if(e.opts.patternGroups&&q.length){var le=q;if(le)for(var he,ue=-1,ce=le.length-1;ue<ce;){var fe=k[he=le[ue+=1]],de=fe.schema;if(e.util.schemaHasRules(de,e.RULES.all)){d.schema=de,d.schemaPath=e.schemaPath+".patternGroups"+e.util.getProperty(he)+".schema",d.errSchemaPath=e.errSchemaPath+"/patternGroups/"+e.util.escapeFragment(he)+"/schema",a+=" var pgPropCount"+s+" = 0; ",a+=O?" "+E+" = "+E+" || Object.keys("+u+"); for (var "+y+"=0; "+y+"<"+E+".length; "+y+"++) { var "+v+" = "+E+"["+y+"]; ":" for (var "+v+" in "+u+") { ",a+=" if ("+e.usePattern(he)+".test("+v+")) { pgPropCount"+s+"++; ",d.errorPath=e.util.getPathExpr(e.errorPath,v,e.opts.jsonPointers);X=u+"["+v+"]";d.dataPathArr[g]=v;var pe=e.validate(d);d.baseId=D,e.util.varOccurences(pe,P)<2?a+=" "+e.util.varReplace(pe,P,X)+" ":a+=" var "+P+" = "+X+"; "+pe+" ",h&&(a+=" if (!"+m+") break; "),a+=" } ",h&&(a+=" else "+m+" = true; "),a+=" } ",h&&(a+=" if ("+m+") { ",p+="}");var me=fe.minimum,ve=fe.maximum;if(void 0!==me||void 0!==ve){a+=" var "+c+" = true; ";te=l;if(void 0!==me){var ye=me,ge="minimum",Pe="less";a+=" "+c+" = pgPropCount"+s+" >= "+me+"; ",l=e.errSchemaPath+"/patternGroups/minimum",a+=" if (!"+c+") { ",(Ee=Ee||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(he)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(he)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";be=a;a=Ee.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+be+"]); ":" validate.errors = ["+be+"]; return false; ":" var err = "+be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } ",void 0!==ve&&(a+=" else ")}if(void 0!==ve){var ye=ve,ge="maximum",Pe="more";a+=" "+c+" = pgPropCount"+s+" <= "+ve+"; ",l=e.errSchemaPath+"/patternGroups/maximum",a+=" if (!"+c+") { ";var Ee=Ee||[];Ee.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'patternGroups' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { reason: '"+ge+"', limit: "+ye+", pattern: '"+e.util.escapeQuotes(he)+"' } ",!1!==e.opts.messages&&(a+=" , message: 'should NOT have "+Pe+" than "+ye+' properties matching pattern "'+e.util.escapeQuotes(he)+"\"' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var be=a;a=Ee.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+be+"]); ":" validate.errors = ["+be+"]; return false; ":" var err = "+be+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } "}l=te,h&&(a+=" if ("+c+") { ",p+="}")}}}}return h&&(a+=" "+p+" if ("+f+" == 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,f=e.util.copy(e),d="valid"+ ++f.level;if(e.util.schemaHasRules(i,e.RULES.all)){f.schema=i,f.schemaPath=n,f.errSchemaPath=l;var p="key"+s,m="idx"+s,v="i"+s,y="' + "+p+" + '",g="data"+(f.dataLevel=e.dataLevel+1),P="dataProperties"+s,E=e.opts.ownProperties,b=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 w=p,j=e.compositeRule;e.compositeRule=f.compositeRule=!0;var S=e.validate(f);f.baseId=b,e.util.varOccurences(S,g)<2?a+=" "+e.util.varReplace(S,g,w)+" ":a+=" var "+g+" = "+w+"; "+S+" ",e.compositeRule=f.compositeRule=j,a+=" if (!"+d+") { for (var "+v+"=startErrs"+s+"; "+v+"<errors; "+v+"++) { vErrors["+v+"].propertyName = "+p+"; } var err = ",!1!==e.createErrors?(a+=" { keyword: 'propertyNames' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { propertyName: '"+y+"' } ",!1!==e.opts.messages&&(a+=" , message: 'property name \\'"+y+"\\' is invalid' "),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++; ",!e.compositeRule&&h&&(a+=e.async?" throw new ValidationError(vErrors); ":" validate.errors = vErrors; return false; "),h&&(a+=" break; "),a+=" } }"}return h&&(a+=" if ("+c+" == errors) {"),a=e.util.cleanUpCode(a)}},{}],32:[function(e,r,t){"use strict";r.exports=function(e,r,t){var a,s,o=" ",i=e.level,n=e.dataLevel,l=e.schema[r],h=e.errSchemaPath+"/"+r,u=!e.opts.allErrors,c="data"+(n||""),f="valid"+i;if("#"==l||"#/"==l)e.isRoot?(a=e.async,s="validate"):(a=!0===e.root.schema.$async,s="root.refVal[0]");else{var d=e.resolveRef(e.baseId,l,e.isRoot);if(void 0===d){var p=e.MissingRefError.message(e.baseId,l);if("fail"==e.opts.missingRefs){console.error(p),(g=g||[]).push(o),o="",!1!==e.createErrors?(o+=" { keyword: '$ref' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(h)+" , params: { ref: '"+e.util.escapeQuotes(l)+"' } ",!1!==e.opts.messages&&(o+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(l)+"' "),e.opts.verbose&&(o+=" , schema: "+e.util.toQuotedString(l)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "),o+=" } "):o+=" {} ";var m=o;o=g.pop(),o+=!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++; ",u&&(o+=" if (false) { ")}else{if("ignore"!=e.opts.missingRefs)throw new e.MissingRefError(e.baseId,l,p);console.warn(p),u&&(o+=" if (true) { ")}}else if(d.inline){var v=e.util.copy(e),y="valid"+ ++v.level;v.schema=d.schema,v.schemaPath="",v.errSchemaPath=l,o+=" "+e.validate(v).replace(/validate\.schema/g,d.code)+" ",u&&(o+=" if ("+y+") { ")}else a=!0===d.$async,s=d.code}if(s){var g=g||[];g.push(o),o="",o+=e.opts.passContext?" "+s+".call(this, ":" "+s+"( ",o+=" "+c+", (dataPath || '')",'""'!=e.errorPath&&(o+=" + "+e.errorPath);var P=o+=" , "+(n?"data"+(n-1||""):"parentData")+" , "+(n?e.dataPathArr[n]:"parentDataProperty")+", rootData) ";if(o=g.pop(),a){if(!e.async)throw new Error("async schema referenced by sync schema");u&&(o+=" var "+f+"; "),o+=" try { "+e.yieldAwait+" "+P+"; ",u&&(o+=" "+f+" = true; "),o+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ",u&&(o+=" "+f+" = false; "),o+=" } ",u&&(o+=" if ("+f+") { ")}else o+=" if (!"+P+") { if (vErrors === null) vErrors = "+s+".errors; else vErrors = vErrors.concat("+s+".errors); errors = vErrors.length; } ",u&&(o+=" else { ")}return o}},{}],33:[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,f=e.opts.$data&&i&&i.$data;f&&(a+=" var schema"+s+" = "+e.util.getData(i.$data,o,e.dataPathArr)+"; ");var d="schema"+s;if(!f)if(i.length<e.opts.loopRequired&&e.schema.properties&&Object.keys(e.schema.properties).length){var p=[],m=i;if(m)for(var v,y=-1,g=m.length-1;y<g;){v=m[y+=1];var P=e.schema.properties[v];P&&e.util.schemaHasRules(P,e.RULES.all)||(p[p.length]=v)}}else p=i;if(f||p.length){var E=e.errorPath,b=f||p.length>=e.opts.loopRequired,w=e.opts.ownProperties;if(h)if(a+=" var missing"+s+"; ",b){f||(a+=" var "+d+" = validate.schema"+n+"; ");R="' + "+($="schema"+s+"["+(S="i"+s)+"]")+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,$,e.opts.jsonPointers)),a+=" var "+c+" = true; ",f&&(a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"),a+=" for (var "+S+" = 0; "+S+" < "+d+".length; "+S+"++) { "+c+" = "+u+"["+d+"["+S+"]] !== undefined ",w&&(a+=" && Object.prototype.hasOwnProperty.call("+u+", "+d+"["+S+"]) "),a+="; if (!"+c+") break; } ",f&&(a+=" } "),a+=" if (!"+c+") { ",(x=x||[]).push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+R+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";F=a;a=x.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else{a+=" if ( ";var j=p;if(j)for(var S=-1,_=j.length-1;S<_;)D=j[S+=1],S&&(a+=" || "),a+=" ( ( "+(q=u+(k=e.util.getProperty(D)))+" === undefined ",w&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(D)+"') "),a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?D:k)+") ) ";a+=") { ";R="' + "+($="missing"+s)+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,$,!0):E+" + "+$);var x=x||[];x.push(a),a="",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+R+"\\'",a+="' "),e.opts.verbose&&(a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "),a+=" } "):a+=" {} ";var F=a;a=x.pop(),a+=!e.compositeRule&&h?e.async?" throw new ValidationError(["+F+"]); ":" validate.errors = ["+F+"]; return false; ":" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",a+=" } else { "}else if(b){f||(a+=" var "+d+" = validate.schema"+n+"; ");var $="schema"+s+"["+(S="i"+s)+"]",R="' + "+$+" + '";e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPathExpr(E,$,e.opts.jsonPointers)),f&&(a+=" if ("+d+" && !Array.isArray("+d+")) { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+R+"\\'",a+="' "),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++; } else if ("+d+" !== undefined) { "),a+=" for (var "+S+" = 0; "+S+" < "+d+".length; "+S+"++) { if ("+u+"["+d+"["+S+"]] === undefined ",w&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", "+d+"["+S+"]) "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+R+"\\'",a+="' "),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++; } } ",f&&(a+=" } ")}else{var O=p;if(O)for(var D,I=-1,A=O.length-1;I<A;){D=O[I+=1];var k=e.util.getProperty(D),R=e.util.escapeQuotes(D),q=u+k;e.opts._errorDataPathProperty&&(e.errorPath=e.util.getPath(E,D,e.opts.jsonPointers)),a+=" if ( "+q+" === undefined ",w&&(a+=" || ! Object.prototype.hasOwnProperty.call("+u+", '"+e.util.escapeQuotes(D)+"') "),a+=") { var err = ",!1!==e.createErrors?(a+=" { keyword: 'required' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ",!1!==e.opts.messages&&(a+=" , message: '",a+=e.opts._errorDataPathProperty?"is a required property":"should have required property \\'"+R+"\\'",a+="' "),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++; } "}}e.errorPath=E}else h&&(a+=" if (true) {");return a}},{}],34:[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||""),f="valid"+o,d=e.opts.$data&&n&&n.$data;if(d?(s+=" var schema"+o+" = "+e.util.getData(n.$data,i,e.dataPathArr)+"; ",a="schema"+o):a=n,(n||d)&&!1!==e.opts.uniqueItems){d&&(s+=" var "+f+"; if ("+a+" === false || "+a+" === undefined) "+f+" = true; else if (typeof "+a+" != 'boolean') "+f+" = false; else { "),s+=" var "+f+" = true; if ("+c+".length > 1) { var i = "+c+".length, j; outer: for (;i--;) { for (j = i; j--;) { if (equal("+c+"[i], "+c+"[j])) { "+f+" = false; break outer; } } } } ",d&&(s+=" } "),s+=" if (!"+f+") { ";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+=d?"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;t<r.length;t++)if(s(r[t]))return!0}function s(r){return void 0!==e.schema[r.keyword]||r.implements&&o(r)}function o(r){for(var t=r.implements,a=0;a<t.length;a++)if(void 0!==e.schema[t[a]])return!0}var i="",n=!0===e.schema.$async,l=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),h=e.self._getId(e.schema);if(e.isTop){if(n){e.async=!0;var u="es7"==e.opts.async;e.yieldAwait=u?"await":"yield"}i+=" var validate = ",n?u?i+=" (async function ":("*"!=e.opts.async&&(i+="co.wrap"),i+="(function* "):i+=" (function ",i+=" (data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ",h&&(e.opts.sourceCode||e.opts.processCode)&&(i+=" /*# sourceURL="+h+" */ ")}if("boolean"==typeof e.schema||!l&&!e.schema.$ref){var c=e.level,f=e.dataLevel,d=e.schema["false schema"],p=e.schemaPath+e.util.getProperty("false schema"),m=e.errSchemaPath+"/false schema",v=!e.opts.allErrors,y="data"+(f||""),g="valid"+c;if(!1===e.schema){e.isTop?v=!0:i+=" var "+g+" = false; ",(X=X||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(E||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(m)+" , params: {} ",!1!==e.opts.messages&&(i+=" , message: 'boolean schema is false' "),e.opts.verbose&&(i+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";ee=i;i=X.pop(),i+=!e.compositeRule&&v?e.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}else i+=e.isTop?n?" return data; ":" validate.errors = null; return true; ":" var "+g+" = true; ";return e.isTop&&(i+=" }); return validate; "),i}if(e.isTop){var P=e.isTop,c=e.level=0,f=e.dataLevel=0,y="data";e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema)),e.baseId=e.baseId||e.rootId,delete e.isTop,e.dataPathArr=[void 0],i+=" var vErrors = null; ",i+=" var errors = 0; ",i+=" if (rootData === undefined) rootData = data; "}else{var c=e.level,y="data"+((f=e.dataLevel)||"");if(h&&(e.baseId=e.resolve.url(e.baseId,h)),n&&!e.async)throw new Error("async schema in sync schema");i+=" var errs_"+c+" = errors;"}var E,g="valid"+c,v=!e.opts.allErrors,b="",w="",j=e.schema.type,S=Array.isArray(j);if(S&&1==j.length&&(j=j[0],S=!1),e.schema.$ref&&l){if("fail"==e.opts.extendRefs)throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)');!0!==e.opts.extendRefs&&(l=!1,console.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"'))}if(j){if(e.opts.coerceTypes)var _=e.util.coerceToTypes(e.opts.coerceTypes,j);L=e.RULES.types[j];if(_||S||!0===L||L&&!a(L)){var p=e.schemaPath+".type",m=e.errSchemaPath+"/type",p=e.schemaPath+".type",m=e.errSchemaPath+"/type",x=S?"checkDataTypes":"checkDataType";if(i+=" if ("+e.util[x](j,y,!0)+") { ",_){var F="dataType"+c,$="coerced"+c;i+=" var "+F+" = typeof "+y+"; ","array"==e.opts.coerceTypes&&(i+=" if ("+F+" == 'object' && Array.isArray("+y+")) "+F+" = 'array'; "),i+=" var "+$+" = undefined; ";var R="",O=_;if(O)for(var D,I=-1,A=O.length-1;I<A;)D=O[I+=1],I&&(i+=" if ("+$+" === undefined) { ",R+="}"),"array"==e.opts.coerceTypes&&"array"!=D&&(i+=" if ("+F+" == 'array' && "+y+".length == 1) { "+$+" = "+y+" = "+y+"[0]; "+F+" = typeof "+y+"; } "),"string"==D?i+=" if ("+F+" == 'number' || "+F+" == 'boolean') "+$+" = '' + "+y+"; else if ("+y+" === null) "+$+" = ''; ":"number"==D||"integer"==D?(i+=" if ("+F+" == 'boolean' || "+y+" === null || ("+F+" == 'string' && "+y+" && "+y+" == +"+y+" ","integer"==D&&(i+=" && !("+y+" % 1)"),i+=")) "+$+" = +"+y+"; "):"boolean"==D?i+=" if ("+y+" === 'false' || "+y+" === 0 || "+y+" === null) "+$+" = false; else if ("+y+" === 'true' || "+y+" === 1) "+$+" = true; ":"null"==D?i+=" if ("+y+" === '' || "+y+" === 0 || "+y+" === false) "+$+" = null; ":"array"==e.opts.coerceTypes&&"array"==D&&(i+=" if ("+F+" == 'string' || "+F+" == 'number' || "+F+" == 'boolean' || "+y+" == null) "+$+" = ["+y+"]; ");i+=" "+R+" if ("+$+" === undefined) { ",(X=X||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(m)+" , params: { type: '",i+=S?""+j.join(","):""+j,i+="' } ",!1!==e.opts.messages&&(i+=" , message: 'should be ",i+=S?""+j.join(","):""+j,i+="' "),e.opts.verbose&&(i+=" , schema: validate.schema"+p+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";ee=i;i=X.pop(),i+=!e.compositeRule&&v?e.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } else { ";var k=f?"data"+(f-1||""):"parentData",q=f?e.dataPathArr[f]:"parentDataProperty";i+=" "+y+" = "+$+"; ",f||(i+="if ("+k+" !== undefined)"),i+=" "+k+"["+q+"] = "+$+"; } "}else{(X=X||[]).push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(m)+" , params: { type: '",i+=S?""+j.join(","):""+j,i+="' } ",!1!==e.opts.messages&&(i+=" , message: 'should be ",i+=S?""+j.join(","):""+j,i+="' "),e.opts.verbose&&(i+=" , schema: validate.schema"+p+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";ee=i;i=X.pop(),i+=!e.compositeRule&&v?e.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}i+=" } "}}if(e.schema.$ref&&!l)i+=" "+e.RULES.all.$ref.code(e,"$ref")+" ",v&&(i+=" } if (errors === ",i+=P?"0":"errs_"+c,i+=") { ",w+="}");else{e.opts.v5&&e.schema.patternGroups&&console.warn('keyword "patternGroups" is deprecated and disabled. Use option patternGroups: true to enable.');var C=e.RULES;if(C)for(var L,z=-1,Q=C.length-1;z<Q;)if(L=C[z+=1],a(L)){if(L.type&&(i+=" if ("+e.util.checkDataType(L.type,y)+") { "),e.opts.useDefaults&&!e.compositeRule)if("object"==L.type&&e.schema.properties){var d=e.schema.properties,U=Object.keys(d);if(U)for(var V,N=-1,T=U.length-1;N<T;)void 0!==(B=d[V=U[N+=1]]).default&&(i+=" if ("+(K=y+e.util.getProperty(V))+" === undefined) "+K+" = ",i+="shared"==e.opts.useDefaults?" "+e.useDefault(B.default)+" ":" "+JSON.stringify(B.default)+" ",i+="; ")}else if("array"==L.type&&Array.isArray(e.schema.items)){var M=e.schema.items;if(M)for(var B,I=-1,H=M.length-1;I<H;)if(void 0!==(B=M[I+=1]).default){var K=y+"["+I+"]";i+=" if ("+K+" === undefined) "+K+" = ",i+="shared"==e.opts.useDefaults?" "+e.useDefault(B.default)+" ":" "+JSON.stringify(B.default)+" ",i+="; "}}var G=L.rules;if(G)for(var J,Z=-1,Y=G.length-1;Z<Y;)if(J=G[Z+=1],s(J)){var W=J.code(e,J.keyword,L.type);W&&(i+=" "+W+" ",v&&(b+="}"))}if(v&&(i+=" "+b+" ",b=""),L.type&&(i+=" } ",j&&j===L.type&&!_)){i+=" else { ";var p=e.schemaPath+".type",m=e.errSchemaPath+"/type",X=X||[];X.push(i),i="",!1!==e.createErrors?(i+=" { keyword: '"+(E||"type")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(m)+" , params: { type: '",i+=S?""+j.join(","):""+j,i+="' } ",!1!==e.opts.messages&&(i+=" , message: 'should be ",i+=S?""+j.join(","):""+j,i+="' "),e.opts.verbose&&(i+=" , schema: validate.schema"+p+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+y+" "),i+=" } "):i+=" {} ";var ee=i;i=X.pop(),i+=!e.compositeRule&&v?e.async?" throw new ValidationError(["+ee+"]); ":" validate.errors = ["+ee+"]; return false; ":" var err = "+ee+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ",i+=" } "}v&&(i+=" if (errors === ",i+=P?"0":"errs_"+c,i+=") { ",w+="}")}}return v&&(i+=" "+w+" "),P?(n?(i+=" if (errors === 0) return data; ",i+=" else throw new ValidationError(vErrors); "):(i+=" validate.errors = vErrors; ",i+=" return errors === 0; "),i+=" }); return validate;"):i+=" var "+g+" = errors === errs_"+c+";",i=e.util.cleanUpCode(i),P&&(i=e.util.finalCleanUpCode(i,n)),i}},{}],36:[function(e,r,t){"use strict";function a(e,r){function t(e,r,t){for(var a,o=0;o<s.length;o++){var i=s[o];if(i.type==r){a=i;break}}a||(a={type:r,rules:[]},s.push(a));var l={keyword:e,definition:t,custom:!0,code:n,implements:t.implements};a.rules.push(l),s.custom[e]=l}function a(e){if(!s.types[e])throw new Error("Unknown type "+e)}var s=this.RULES;if(s.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!i.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){if(r.macro&&void 0!==r.valid)throw new Error('"valid" option cannot be used with macro keywords');var o=r.type;if(Array.isArray(o)){var l,h=o.length;for(l=0;l<h;l++)a(o[l]);for(l=0;l<h;l++)t(e,o[l],r)}else o&&a(o),t(e,o,r);var u=!0===r.$data&&this._opts.$data;if(u&&!r.validate)throw new Error('$data support: "validate" function is not defined');var c=r.metaSchema;c&&(u&&(c={anyOf:[c,{$ref:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#"}]}),r.validateSchema=this.compile(c,!0))}s.keywords[e]=s.all[e]=!0}function s(e){var r=this.RULES.custom[e];return r?r.definition:this.RULES.keywords[e]||!1}function o(e){var r=this.RULES;delete r.keywords[e],delete r.all[e],delete r.custom[e];for(var t=0;t<r.length;t++)for(var a=r[t].rules,s=0;s<a.length;s++)if(a[s].keyword==e){a.splice(s,1);break}}var i=/^[a-z_$][a-z0-9_$-]*$/i,n=e("./dotjs/custom");r.exports={add:a,get:s,remove:o}},{"./dotjs/custom":21}],37:[function(e,r,t){"use strict";r.exports=function(e){var r=e._opts.defaultMeta,t="string"==typeof r?{$ref:r}:e.getSchema("http://json-schema.org/draft-06/schema")?{$ref:"http://json-schema.org/draft-06/schema"}:{};e.addKeyword("patternGroups",{metaSchema:{type:"object",additionalProperties:{type:"object",required:["schema"],properties:{maximum:{type:"integer",minimum:0},minimum:{type:"integer",minimum:0},schema:t},additionalProperties:!1}}}),e.RULES.all.properties.implements.push("patternGroups")}},{}],38:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"https://raw.githubusercontent.com/epoberezkin/ajv/master/lib/refs/$data.json#",description:"Meta-schema for $data reference (JSON-schema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}},{}],39:[function(e,r,t){r.exports={$schema:"http://json-schema.org/draft-06/schema#",$id:"http://json-schema.org/draft-06/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},title:{type:"string"},description:{type:"string"},default:{},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:{}},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:{},enum:{type:"array",minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:{}}},{}],40:[function(e,r,t){function a(e){var r=this,t=f.call(arguments,1);return new Promise(function(a,o){function i(r){var t;try{t=e.next(r)}catch(e){return o(e)}h(t)}function n(r){var t;try{t=e.throw(r)}catch(e){return o(e)}h(t)}function h(e){if(e.done)return a(e.value);var t=s.call(r,e.value);return t&&l(t)?t.then(i,n):n(new TypeError('You may only yield a function, promise, generator, array, or object, but the following object was passed: "'+String(e.value)+'"'))}if("function"==typeof e&&(e=e.apply(r,t)),!e||"function"!=typeof e.next)return a(e);i()})}function s(e){return e?l(e)?e:u(e)||h(e)?a.call(this,e):"function"==typeof e?o.call(this,e):Array.isArray(e)?i.call(this,e):c(e)?n.call(this,e):e:e}function o(e){var r=this;return new Promise(function(t,a){e.call(r,function(e,r){if(e)return a(e);arguments.length>2&&(r=f.call(arguments,1)),t(r)})})}function i(e){return Promise.all(e.map(s,this))}function n(e){for(var r=new e.constructor,t=Object.keys(e),a=[],o=0;o<t.length;o++){var i=t[o],n=s.call(this,e[i]);n&&l(n)?function(e,t){r[t]=void 0,a.push(e.then(function(e){r[t]=e}))}(n,i):r[i]=e[i]}return Promise.all(a).then(function(){return r})}function l(e){return"function"==typeof e.then}function h(e){return"function"==typeof e.next&&"function"==typeof e.throw}function u(e){var r=e.constructor;return!!r&&("GeneratorFunction"===r.name||"GeneratorFunction"===r.displayName||h(r.prototype))}function c(e){return Object==e.constructor}var f=Array.prototype.slice;r.exports=a.default=a.co=a,a.wrap=function(e){function r(){return a.call(this,e.apply(this,arguments))}return r.__generatorFunction__=e,r}},{}],41:[function(e,r,t){"use strict";r.exports=function e(r,t){if(r===t)return!0;var a,s=Array.isArray(r),o=Array.isArray(t);if(s&&o){if(r.length!=t.length)return!1;for(a=0;a<r.length;a++)if(!e(r[a],t[a]))return!1;return!0}if(s!=o)return!1;if(r&&t&&"object"==typeof r&&"object"==typeof t){var i=Object.keys(r);if(i.length!==Object.keys(t).length)return!1;var n=r instanceof Date,l=t instanceof Date;if(n&&l)return r.getTime()==t.getTime();if(n!=l)return!1;var h=r instanceof RegExp,u=t instanceof RegExp;if(h&&u)return r.toString()==t.toString();if(h!=u)return!1;for(a=0;a<i.length;a++)if(!Object.prototype.hasOwnProperty.call(t,i[a]))return!1;for(a=0;a<i.length;a++)if(!e(r[i[a]],t[i[a]]))return!1;return!0}return!1}},{}],42:[function(e,r,t){"use strict";function a(e,r,t,i,n,l,h,u,c){if(t&&"object"==typeof t&&!Array.isArray(t)){r(t,i,n,l,h,u,c);for(var f in t){var d=t[f];if(Array.isArray(d)){if(f in o.arrayKeywords)for(var p=0;p<d.length;p++)a(e,r,d[p],i+"/"+f+"/"+p,n,i,f,t,p)}else if(f in o.propsKeywords){if(d&&"object"==typeof d)for(var m in d)a(e,r,d[m],i+"/"+f+"/"+s(m),n,i,f,t,m)}else(f in o.keywords||e.allKeys&&!(f in o.skipKeywords))&&a(e,r,d,i+"/"+f,n,i,f,t)}}}function s(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}var o=r.exports=function(e,r,t){"function"==typeof r&&(t=r,r={}),a(r,t,e,"",e)};o.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0},o.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0},o.propsKeywords={definitions:!0,properties:!0,patternProperties:!0,dependencies:!0},o.skipKeywords={enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0}},{}],43:[function(e,r,t){var a="undefined"!=typeof JSON?JSON:e("jsonify");r.exports=function(e,r){r||(r={}),"function"==typeof r&&(r={cmp:r});var t=r.space||"";"number"==typeof t&&(t=Array(t+1).join(" "));var i="boolean"==typeof r.cycles&&r.cycles,n=r.replacer||function(e,r){return r},l=r.cmp&&function(e){return function(r){return function(t,a){return e({key:t,value:r[t]},{key:a,value:r[a]})}}}(r.cmp),h=[];return function e(r,u,c,f){var d=t?"\n"+new Array(f+1).join(t):"",p=t?": ":":";if(c&&c.toJSON&&"function"==typeof c.toJSON&&(c=c.toJSON()),void 0!==(c=n.call(r,u,c))){if("object"!=typeof c||null===c)return a.stringify(c);if(s(c)){for(var m=[],v=0;v<c.length;v++){var y=e(c,v,c[v],f+1)||a.stringify(null);m.push(d+t+y)}return"["+m.join(",")+d+"]"}if(-1!==h.indexOf(c)){if(i)return a.stringify("__cycle__");throw new TypeError("Converting circular structure to JSON")}h.push(c);for(var g=o(c).sort(l&&l(c)),m=[],v=0;v<g.length;v++){var P=e(c,u=g[v],c[u],f+1);if(P){var E=a.stringify(u)+p+P;m.push(d+t+E)}}return h.splice(h.indexOf(c),1),"{"+m.join(",")+d+"}"}}({"":e},"",e,0)};var s=Array.isArray||function(e){return"[object Array]"==={}.toString.call(e)},o=Object.keys||function(e){var r=Object.prototype.hasOwnProperty||function(){return!0},t=[];for(var a in e)r.call(e,a)&&t.push(a);return t}},{jsonify:44}],44:[function(e,r,t){t.parse=e("./lib/parse"),t.stringify=e("./lib/stringify")},{"./lib/parse":45,"./lib/stringify":46}],45:[function(e,r,t){var a,s,o,i,n={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},l=function(e){throw{name:"SyntaxError",message:e,at:a,text:o}},h=function(e){return e&&e!==s&&l("Expected '"+e+"' instead of '"+s+"'"),s=o.charAt(a),a+=1,s},u=function(){var e,r="";for("-"===s&&(r="-",h("-"));s>="0"&&s<="9";)r+=s,h();if("."===s)for(r+=".";h()&&s>="0"&&s<="9";)r+=s;if("e"===s||"E"===s)for(r+=s,h(),"-"!==s&&"+"!==s||(r+=s,h());s>="0"&&s<="9";)r+=s,h();if(e=+r,isFinite(e))return e;l("Bad number")},c=function(){var e,r,t,a="";if('"'===s)for(;h();){if('"'===s)return h(),a;if("\\"===s)if(h(),"u"===s){for(t=0,r=0;r<4&&(e=parseInt(h(),16),isFinite(e));r+=1)t=16*t+e;a+=String.fromCharCode(t)}else{if("string"!=typeof n[s])break;a+=n[s]}else a+=s}l("Bad string")},f=function(){for(;s&&s<=" ";)h()},d=function(){switch(s){case"t":return h("t"),h("r"),h("u"),h("e"),!0;case"f":return h("f"),h("a"),h("l"),h("s"),h("e"),!1;case"n":return h("n"),h("u"),h("l"),h("l"),null}l("Unexpected '"+s+"'")},p=function(){var e=[];if("["===s){if(h("["),f(),"]"===s)return h("]"),e;for(;s;){if(e.push(i()),f(),"]"===s)return h("]"),e;h(","),f()}}l("Bad array")},m=function(){var e,r={};if("{"===s){if(h("{"),f(),"}"===s)return h("}"),r;for(;s;){if(e=c(),f(),h(":"),Object.hasOwnProperty.call(r,e)&&l('Duplicate key "'+e+'"'),r[e]=i(),f(),"}"===s)return h("}"),r;h(","),f()}}l("Bad object")};i=function(){switch(f(),s){case"{":return m();case"[":return p();case'"':return c();case"-":return u();default:return s>="0"&&s<="9"?u():d()}},r.exports=function(e,r){var t;return o=e,a=0,s=" ",t=i(),f(),s&&l("Syntax error"),"function"==typeof r?function e(t,a){var s,o,i=t[a];if(i&&"object"==typeof i)for(s in i)Object.prototype.hasOwnProperty.call(i,s)&&(void 0!==(o=e(i,s))?i[s]=o:delete i[s]);return r.call(t,a,i)}({"":t},""):t}},{}],46:[function(e,r,t){function a(e){return l.lastIndex=0,l.test(e)?'"'+e.replace(l,function(e){var r=h[e];return"string"==typeof r?r:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function s(e,r){var t,l,h,u,c,f=o,d=r[e];switch(d&&"object"==typeof d&&"function"==typeof d.toJSON&&(d=d.toJSON(e)),"function"==typeof n&&(d=n.call(r,e,d)),typeof d){case"string":return a(d);case"number":return isFinite(d)?String(d):"null";case"boolean":case"null":return String(d);case"object":if(!d)return"null";if(o+=i,c=[],"[object Array]"===Object.prototype.toString.apply(d)){for(u=d.length,t=0;t<u;t+=1)c[t]=s(t,d)||"null";return h=0===c.length?"[]":o?"[\n"+o+c.join(",\n"+o)+"\n"+f+"]":"["+c.join(",")+"]",o=f,h}if(n&&"object"==typeof n)for(u=n.length,t=0;t<u;t+=1)"string"==typeof(l=n[t])&&(h=s(l,d))&&c.push(a(l)+(o?": ":":")+h);else for(l in d)Object.prototype.hasOwnProperty.call(d,l)&&(h=s(l,d))&&c.push(a(l)+(o?": ":":")+h);return h=0===c.length?"{}":o?"{\n"+o+c.join(",\n"+o)+"\n"+f+"}":"{"+c.join(",")+"}",o=f,h}}var o,i,n,l=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,h={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};r.exports=function(e,r,t){var a;if(o="",i="","number"==typeof t)for(a=0;a<t;a+=1)i+=" ";else"string"==typeof t&&(i=t);if(n=r,r&&"function"!=typeof r&&("object"!=typeof r||"number"!=typeof r.length))throw new Error("JSON.stringify");return s("",{"":e})}},{}],47:[function(e,r,t){(function(e){!function(a){function s(e){throw new RangeError(A[e])}function o(e,r){for(var t=e.length,a=[];t--;)a[t]=r(e[t]);return a}function i(e,r){var t=e.split("@"),a="";return t.length>1&&(a=t[0]+"@",e=t[1]),a+o((e=e.replace(I,".")).split("."),r).join(".")}function n(e){for(var r,t,a=[],s=0,o=e.length;s<o;)(r=e.charCodeAt(s++))>=55296&&r<=56319&&s<o?56320==(64512&(t=e.charCodeAt(s++)))?a.push(((1023&r)<<10)+(1023&t)+65536):(a.push(r),s--):a.push(r);return a}function l(e){return o(e,function(e){var r="";return e>65535&&(r+=C((e-=65536)>>>10&1023|55296),e=56320|1023&e),r+=C(e)}).join("")}function h(e){return e-48<10?e-22:e-65<26?e-65:e-97<26?e-97:w}function u(e,r){return e+22+75*(e<26)-((0!=r)<<5)}function c(e,r,t){var a=0;for(e=t?q(e/x):e>>1,e+=q(e/r);e>k*S>>1;a+=w)e=q(e/k);return q(a+(k+1)*e/(e+_))}function f(e){var r,t,a,o,i,n,u,f,d,p,m=[],v=e.length,y=0,g=$,P=F;for((t=e.lastIndexOf(R))<0&&(t=0),a=0;a<t;++a)e.charCodeAt(a)>=128&&s("not-basic"),m.push(e.charCodeAt(a));for(o=t>0?t+1:0;o<v;){for(i=y,n=1,u=w;o>=v&&s("invalid-input"),((f=h(e.charCodeAt(o++)))>=w||f>q((b-y)/n))&&s("overflow"),y+=f*n,d=u<=P?j:u>=P+S?S:u-P,!(f<d);u+=w)n>q(b/(p=w-d))&&s("overflow"),n*=p;P=c(y-i,r=m.length+1,0==i),q(y/r)>b-g&&s("overflow"),g+=q(y/r),y%=r,m.splice(y++,0,g)}return l(m)}function d(e){var r,t,a,o,i,l,h,f,d,p,m,v,y,g,P,E=[];for(v=(e=n(e)).length,r=$,t=0,i=F,l=0;l<v;++l)(m=e[l])<128&&E.push(C(m));for(a=o=E.length,o&&E.push(R);a<v;){for(h=b,l=0;l<v;++l)(m=e[l])>=r&&m<h&&(h=m);for(h-r>q((b-t)/(y=a+1))&&s("overflow"),t+=(h-r)*y,r=h,l=0;l<v;++l)if((m=e[l])<r&&++t>b&&s("overflow"),m==r){for(f=t,d=w;p=d<=i?j:d>=i+S?S:d-i,!(f<p);d+=w)P=f-p,g=w-p,E.push(C(u(p+P%g,0))),f=q(P/g);E.push(C(u(f,0))),i=c(t,y,a==o),t=0,++a}++t,++r}return E.join("")}function p(e){return i(e,function(e){return O.test(e)?f(e.slice(4).toLowerCase()):e})}function m(e){return i(e,function(e){return D.test(e)?"xn--"+d(e):e})}var v="object"==typeof t&&t&&!t.nodeType&&t,y="object"==typeof r&&r&&!r.nodeType&&r,g="object"==typeof e&&e;g.global!==g&&g.window!==g&&g.self!==g||(a=g);var P,E,b=2147483647,w=36,j=1,S=26,_=38,x=700,F=72,$=128,R="-",O=/^xn--/,D=/[^\x20-\x7E]/,I=/[\x2E\u3002\uFF0E\uFF61]/g,A={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},k=w-j,q=Math.floor,C=String.fromCharCode;if(P={version:"1.4.1",ucs2:{decode:n,encode:l},decode:f,encode:d,toASCII:m,toUnicode:p},v&&y)if(r.exports==v)y.exports=P;else for(E in P)P.hasOwnProperty(E)&&(v[E]=P[E]);else a.punycode=P}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],48:[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<h;++u){var c,f,d,p,m=e[u].replace(n,"%20"),v=m.indexOf(t);v>=0?(c=m.substr(0,v),f=m.substr(v+1)):(c=m,f=""),d=decodeURIComponent(c),p=decodeURIComponent(f),a(i,d)?s(i[d])?i[d].push(p):i[d]=[i[d],p]:i[d]=p}return i};var s=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],49:[function(e,r,t){"use strict";function a(e,r){if(e.map)return e.map(r);for(var t=[],a=0;a<e.length;a++)t.push(r(e[a],a));return t}var s=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};r.exports=function(e,r,t,n){return r=r||"&",t=t||"=",null===e&&(e=void 0),"object"==typeof e?a(i(e),function(i){var n=encodeURIComponent(s(i))+t;return o(e[i])?a(e[i],function(e){return n+encodeURIComponent(s(e))}).join(r):n+encodeURIComponent(s(e[i]))}).join(r):n?encodeURIComponent(s(n))+t+encodeURIComponent(s(e)):""};var o=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},i=Object.keys||function(e){var r=[];for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&r.push(t);return r}},{}],50:[function(e,r,t){"use strict";t.decode=t.parse=e("./decode"),t.encode=t.stringify=e("./encode")},{"./decode":48,"./encode":49}],51:[function(e,r,t){"use strict";function a(){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}function s(e,r,t){if(e&&h.isObject(e)&&e instanceof a)return e;var s=new a;return s.parse(e,r,t),s}function o(e){return h.isString(e)&&(e=s(e)),e instanceof a?e.format():a.prototype.format.call(e)}function i(e,r){return s(e,!1,!0).resolve(r)}function n(e,r){return e?s(e,!1,!0).resolveObject(r):r}var l=e("punycode"),h=e("./util");t.parse=s,t.resolve=i,t.resolveObject=n,t.format=o,t.Url=a;var u=/^([a-z0-9.+-]+:)/i,c=/:[0-9]*$/,f=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,d=["<",">",'"',"`"," ","\r","\n","\t"],p=["{","}","|","\\","^","`"].concat(d),m=["'"].concat(p),v=["%","/","?",";","#"].concat(m),y=["/","?","#"],g=/^[+a-z0-9A-Z_-]{0,63}$/,P=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,E={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},w={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},j=e("querystring");a.prototype.parse=function(e,r,t){if(!h.isString(e))throw new TypeError("Parameter 'url' must be a string, not "+typeof e);var a=e.indexOf("?"),s=-1!==a&&a<e.indexOf("#")?"?":"#",o=e.split(s),i=/\\/g;o[0]=o[0].replace(i,"/");var n=e=o.join(s);if(n=n.trim(),!t&&1===e.split("#").length){var c=f.exec(n);if(c)return this.path=n,this.href=n,this.pathname=c[1],c[2]?(this.search=c[2],this.query=r?j.parse(this.search.substr(1)):this.search.substr(1)):r&&(this.search="",this.query={}),this}var d=u.exec(n);if(d){var p=(d=d[0]).toLowerCase();this.protocol=p,n=n.substr(d.length)}if(t||d||n.match(/^\/\/[^@\/]+@[^@\/]+/)){var S="//"===n.substr(0,2);!S||d&&b[d]||(n=n.substr(2),this.slashes=!0)}if(!b[d]&&(S||d&&!w[d])){for(var _=-1,x=0;x<y.length;x++)-1!==(R=n.indexOf(y[x]))&&(-1===_||R<_)&&(_=R);var F,$;-1!==($=-1===_?n.lastIndexOf("@"):n.lastIndexOf("@",_))&&(F=n.slice(0,$),n=n.slice($+1),this.auth=decodeURIComponent(F)),_=-1;for(x=0;x<v.length;x++){var R=n.indexOf(v[x]);-1!==R&&(-1===_||R<_)&&(_=R)}-1===_&&(_=n.length),this.host=n.slice(0,_),n=n.slice(_),this.parseHost();var O="["===(this.hostname=this.hostname||"")[0]&&"]"===this.hostname[this.hostname.length-1];if(!O)for(var D=this.hostname.split(/\./),x=0,I=D.length;x<I;x++){var A=D[x];if(A&&!A.match(g)){for(var k="",q=0,C=A.length;q<C;q++)A.charCodeAt(q)>127?k+="x":k+=A[q];if(!k.match(g)){var L=D.slice(0,x),z=D.slice(x+1),Q=A.match(P);Q&&(L.push(Q[1]),z.unshift(Q[2])),z.length&&(n="/"+z.join(".")+n),this.hostname=L.join(".");break}}}this.hostname=this.hostname.length>255?"":this.hostname.toLowerCase(),O||(this.hostname=l.toASCII(this.hostname));var U=this.port?":"+this.port:"",V=this.hostname||"";this.host=V+U,this.href+=this.host,O&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==n[0]&&(n="/"+n))}if(!E[p])for(var x=0,I=m.length;x<I;x++){var N=m[x];if(-1!==n.indexOf(N)){var T=encodeURIComponent(N);T===N&&(T=escape(N)),n=n.split(N).join(T)}}var M=n.indexOf("#");-1!==M&&(this.hash=n.substr(M),n=n.slice(0,M));var B=n.indexOf("?");if(-1!==B?(this.search=n.substr(B),this.query=n.substr(B+1),r&&(this.query=j.parse(this.query)),n=n.slice(0,B)):r&&(this.search="",this.query={}),n&&(this.pathname=n),w[p]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var U=this.pathname||"",H=this.search||"";this.path=U+H}return this.href=this.format(),this},a.prototype.format=function(){var e=this.auth||"";e&&(e=(e=encodeURIComponent(e)).replace(/%3A/i,":"),e+="@");var r=this.protocol||"",t=this.pathname||"",a=this.hash||"",s=!1,o="";this.host?s=e+this.host:this.hostname&&(s=e+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(s+=":"+this.port)),this.query&&h.isObject(this.query)&&Object.keys(this.query).length&&(o=j.stringify(this.query));var i=this.search||o&&"?"+o||"";return r&&":"!==r.substr(-1)&&(r+=":"),this.slashes||(!r||w[r])&&!1!==s?(s="//"+(s||""),t&&"/"!==t.charAt(0)&&(t="/"+t)):s||(s=""),a&&"#"!==a.charAt(0)&&(a="#"+a),i&&"?"!==i.charAt(0)&&(i="?"+i),t=t.replace(/[?#]/g,function(e){return encodeURIComponent(e)}),i=i.replace("#","%23"),r+s+t+i+a},a.prototype.resolve=function(e){return this.resolveObject(s(e,!1,!0)).format()},a.prototype.resolveObject=function(e){if(h.isString(e)){var r=new a;r.parse(e,!1,!0),e=r}for(var t=new a,s=Object.keys(this),o=0;o<s.length;o++){var i=s[o];t[i]=this[i]}if(t.hash=e.hash,""===e.href)return t.href=t.format(),t;if(e.slashes&&!e.protocol){for(var n=Object.keys(e),l=0;l<n.length;l++){var u=n[l];"protocol"!==u&&(t[u]=e[u])}return w[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(e.protocol&&e.protocol!==t.protocol){if(!w[e.protocol]){for(var c=Object.keys(e),f=0;f<c.length;f++){var d=c[f];t[d]=e[d]}return t.href=t.format(),t}if(t.protocol=e.protocol,e.host||b[e.protocol])t.pathname=e.pathname;else{for(j=(e.pathname||"").split("/");j.length&&!(e.host=j.shift()););e.host||(e.host=""),e.hostname||(e.hostname=""),""!==j[0]&&j.unshift(""),j.length<2&&j.unshift(""),t.pathname=j.join("/")}if(t.search=e.search,t.query=e.query,t.host=e.host||"",t.auth=e.auth,t.hostname=e.hostname||e.host,t.port=e.port,t.pathname||t.search){var p=t.pathname||"",m=t.search||"";t.path=p+m}return t.slashes=t.slashes||e.slashes,t.href=t.format(),t}var v=t.pathname&&"/"===t.pathname.charAt(0),y=e.host||e.pathname&&"/"===e.pathname.charAt(0),g=y||v||t.host&&e.pathname,P=g,E=t.pathname&&t.pathname.split("/")||[],j=e.pathname&&e.pathname.split("/")||[],S=t.protocol&&!w[t.protocol];if(S&&(t.hostname="",t.port=null,t.host&&(""===E[0]?E[0]=t.host:E.unshift(t.host)),t.host="",e.protocol&&(e.hostname=null,e.port=null,e.host&&(""===j[0]?j[0]=e.host:j.unshift(e.host)),e.host=null),g=g&&(""===j[0]||""===E[0])),y)t.host=e.host||""===e.host?e.host:t.host,t.hostname=e.hostname||""===e.hostname?e.hostname:t.hostname,t.search=e.search,t.query=e.query,E=j;else if(j.length)E||(E=[]),E.pop(),E=E.concat(j),t.search=e.search,t.query=e.query;else if(!h.isNullOrUndefined(e.search))return S&&(t.hostname=t.host=E.shift(),(O=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=O.shift(),t.host=t.hostname=O.shift())),t.search=e.search,t.query=e.query,h.isNull(t.pathname)&&h.isNull(t.search)||(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t;if(!E.length)return t.pathname=null,t.path=t.search?"/"+t.search:null,t.href=t.format(),t;for(var _=E.slice(-1)[0],x=(t.host||e.host||E.length>1)&&("."===_||".."===_)||""===_,F=0,$=E.length;$>=0;$--)"."===(_=E[$])?E.splice($,1):".."===_?(E.splice($,1),F++):F&&(E.splice($,1),F--);if(!g&&!P)for(;F--;F)E.unshift("..");!g||""===E[0]||E[0]&&"/"===E[0].charAt(0)||E.unshift(""),x&&"/"!==E.join("/").substr(-1)&&E.push("");var R=""===E[0]||E[0]&&"/"===E[0].charAt(0);if(S){t.hostname=t.host=R?"":E.length?E.shift():"";var O=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@");O&&(t.auth=O.shift(),t.host=t.hostname=O.shift())}return(g=g||t.host&&E.length)&&!R&&E.unshift(""),E.length?t.pathname=E.join("/"):(t.pathname=null,t.path=null),h.isNull(t.pathname)&&h.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=c.exec(e);r&&(":"!==(r=r[0])&&(this.port=r.substr(1)),e=e.substr(0,e.length-r.length)),e&&(this.hostname=e)}},{"./util":52,punycode:47,querystring:50}],52:[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(e){if(!(this instanceof a))return new a(e);e=this._opts=L.copy(e)||{},this._schemas={},this._refs={},this._fragments={},this._formats=A(e.format);var r=this._schemaUriFormat=this._formats["uri-reference"];this._schemaUriFormatFunc=function(e){return r.test(e)},this._cache=e.cache||new O,this._loadingSchemas={},this._compilations=[],this.RULES=k(),this._getId=y(e),e.loopRequired=e.loopRequired||1/0,"property"==e.errorDataPath&&(e._errorDataPathProperty=!0),void 0===e.serialize&&(e.serialize=I),this._metaOpts=F(this),e.formats&&_(this),j(this),"object"==typeof e.meta&&this.addMetaSchema(e.meta),S(this),e.patternGroups&&C(this)}function s(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?z(s):s:(this.errors=t.errors,s)}function o(e,r){var t=this._addSchema(e,void 0,r);return t.validate||this._compile(t)}function i(e,r,t,a){if(Array.isArray(e))for(var s=0;s<e.length;s++)this.addSchema(e[s],void 0,t,a);else{var o=this._getId(e);if(void 0!==o&&"string"!=typeof o)throw new Error("schema id must be string");x(this,r=R.normalizeId(r||o)),this._schemas[r]=this._addSchema(e,t,a,!0)}}function n(e,r,t){this.addSchema(e,r,t,!0)}function l(e,r){var t=e.$schema;if(void 0!==t&&"string"!=typeof t)throw new Error("$schema must be a string");if(!(t=t||this._opts.defaultMeta||h(this)))return console.warn("meta-schema not available"),this.errors=null,!0;var a=this._formats.uri;this._formats.uri="function"==typeof a?this._schemaUriFormatFunc:this._schemaUriFormat;var s;try{s=this.validate(t,e)}finally{this._formats.uri=a}if(!s&&r){var o="schema is invalid: "+this.errorsText();if("log"!=this._opts.validateSchema)throw new Error(o);console.error(o)}return s}function h(e){var r=e._opts.meta;return e._opts.defaultMeta="object"==typeof r?e._getId(r)||r:e.getSchema(V)?V:void 0}function u(e){var r=f(this,e);switch(typeof r){case"object":return r.validate||this._compile(r);case"string":return this.getSchema(r);case"undefined":return c(this,e)}}function c(e,r){var t=R.schema.call(e,{schema:{}},r);if(t){var a=t.schema,s=t.root,o=t.baseId,i=$.call(e,a,s,void 0,o);return e._fragments[r]=new D({ref:r,fragment:!0,schema:a,root:s,baseId:o,validate:i}),i}}function f(e,r){return r=R.normalizeId(r),e._schemas[r]||e._refs[r]||e._fragments[r]}function d(e){if(e instanceof RegExp)return p(this,this._schemas,e),void p(this,this._refs,e);switch(typeof e){case"undefined":return p(this,this._schemas),p(this,this._refs),void this._cache.clear();case"string":var r=f(this,e);return r&&this._cache.del(r.cacheKey),delete this._schemas[e],void delete this._refs[e];case"object":var t=this._opts.serialize,a=t?t(e):e;this._cache.del(a);var s=this._getId(e);s&&(s=R.normalizeId(s),delete this._schemas[s],delete this._refs[s])}}function p(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 m(e,r,t,a){if("object"!=typeof e&&"boolean"!=typeof e)throw new Error("schema should be object or boolean");var s=this._opts.serialize,o=s?s(e):e,i=this._cache.get(o);if(i)return i;a=a||!1!==this._opts.addUsedSchema;var n=R.normalizeId(this._getId(e));n&&a&&x(this,n);var l,h=!1!==this._opts.validateSchema&&!r;h&&!(l=n&&n==R.normalizeId(e.$schema))&&this.validateSchema(e,!0);var u=R.ids.call(this,e),c=new D({id:n,schema:e,localRefs:u,cacheKey:o,meta:t});return"#"!=n[0]&&a&&(this._refs[n]=c),this._cache.put(o,c),h&&l&&this.validateSchema(e,!0),c}function v(e,r){function t(){var r=e.validate,a=r.apply(null,arguments);return t.errors=r.errors,a}if(e.compiling)return e.validate=t,t.schema=e.schema,t.errors=null,t.root=r||t,!0===e.schema.$async&&(t.$async=!0),t;e.compiling=!0;var a;e.meta&&(a=this._opts,this._opts=this._metaOpts);var s;try{s=$.call(this,e.schema,r,e.localRefs)}finally{e.compiling=!1,e.meta&&(this._opts=a)}return e.validate=s,e.refs=s.refs,e.refVal=s.refVal,e.root=s.root,s}function y(e){switch(e.schemaId){case"$id":return P;case"id":return g;default:return E}}function g(e){return e.$id&&console.warn("schema $id ignored",e.$id),e.id}function P(e){return e.id&&console.warn("schema id ignored",e.id),e.$id}function E(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 b(e,r){if(!(e=e||this.errors))return"No errors";for(var t=void 0===(r=r||{}).separator?", ":r.separator,a=void 0===r.dataVar?"data":r.dataVar,s="",o=0;o<e.length;o++){var i=e[o];i&&(s+=a+i.dataPath+" "+i.message+t)}return s.slice(0,-t.length)}function w(e,r){"string"==typeof r&&(r=new RegExp(r)),this._formats[e]=r}function j(r){var t;if(r._opts.$data&&(t=e("./refs/$data.json"),r.addMetaSchema(t,t.$id,!0)),!1!==r._opts.meta){var a=e("./refs/json-schema-draft-06.json");r._opts.$data&&(a=q(a,T)),r.addMetaSchema(a,V,!0),r._refs["http://json-schema.org/schema"]=V}}function S(e){var r=e._opts.schemas;if(r)if(Array.isArray(r))e.addSchema(r);else for(var t in r)e.addSchema(r[t],t)}function _(e){for(var r in e._opts.formats){var t=e._opts.formats[r];e.addFormat(r,t)}}function x(e,r){if(e._schemas[r]||e._refs[r])throw new Error('schema with key or id "'+r+'" already exists')}function F(e){for(var r=L.copy(e._opts),t=0;t<N.length;t++)delete r[N[t]];return r}var $=e("./compile"),R=e("./compile/resolve"),O=e("./cache"),D=e("./compile/schema_obj"),I=e("json-stable-stringify"),A=e("./compile/formats"),k=e("./compile/rules"),q=e("./$data"),C=e("./patternGroups"),L=e("./compile/util"),z=e("co");r.exports=a,a.prototype.validate=s,a.prototype.compile=o,a.prototype.addSchema=i,a.prototype.addMetaSchema=n,a.prototype.validateSchema=l,a.prototype.getSchema=u,a.prototype.removeSchema=d,a.prototype.addFormat=w,a.prototype.errorsText=b,a.prototype._addSchema=m,a.prototype._compile=v,a.prototype.compileAsync=e("./compile/async");var Q=e("./keyword");a.prototype.addKeyword=Q.add,a.prototype.getKeyword=Q.get,a.prototype.removeKeyword=Q.remove;var U=e("./compile/error_classes");a.ValidationError=U.Validation,a.MissingRefError=U.MissingRef,a.$dataMetaSchema=q;var V="http://json-schema.org/draft-06/schema",N=["removeAdditional","useDefaults","coerceTypes"],T=["/properties"]},{"./$data":1,"./cache":2,"./compile":7,"./compile/async":4,"./compile/error_classes":5,"./compile/formats":6,"./compile/resolve":8,"./compile/rules":9,"./compile/schema_obj":10,"./compile/util":12,"./keyword":36,"./patternGroups":37,"./refs/$data.json":38,"./refs/json-schema-draft-06.json":39,co:40,"json-stable-stringify":43}]},{},[])("ajv")});
-//# sourceMappingURL=ajv.min.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map
deleted file mode 100644
index c91d60f919..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/ajv.min.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["0"],"names":["f","exports","module","define","amd","window","global","self","this","Ajv","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","KEYWORDS","metaSchema","keywordsJsonPointers","JSON","parse","stringify","j","segments","split","keywords","key","schema","anyOf","$ref","2","Cache","_cache","prototype","put","value","get","del","clear","3","allOf","const","contains","dependencies","enum","format","items","maximum","minimum","maxItems","minItems","maxLength","minLength","maxProperties","minProperties","multipleOf","not","oneOf","pattern","properties","propertyNames","required","uniqueItems","validate","../dotjs/_limit","../dotjs/_limitItems","../dotjs/_limitLength","../dotjs/_limitProperties","../dotjs/allOf","../dotjs/anyOf","../dotjs/const","../dotjs/contains","../dotjs/dependencies","../dotjs/enum","../dotjs/format","../dotjs/items","../dotjs/multipleOf","../dotjs/not","../dotjs/oneOf","../dotjs/pattern","../dotjs/properties","../dotjs/propertyNames","../dotjs/ref","../dotjs/required","../dotjs/uniqueItems","../dotjs/validate","4","compileAsync","meta","callback","loadMetaSchemaOf","sch","$schema","getSchema","Promise","resolve","_compileAsync","schemaObj","_compile","MissingRefError","removePromise","_loadingSchemas","ref","added","_refs","_schemas","missingSchema","missingRef","schemaPromise","_opts","loadSchema","then","addSchema","undefined","p","_addSchema","v","MissingRef","./error_classes","5","ValidationError","errors","message","ajv","validation","baseId","url","normalizeId","fullPath","errorSubclass","Subclass","Object","create","constructor","Validation","./resolve","6","formats","mode","util","copy","date","str","matches","match","DATE","month","day","DAYS","time","full","TIME","hour","minute","second","timeZone","date_time","dateTime","DATE_TIME_SEPARATOR","hostname","HOSTNAME","test","uri","NOT_URI_FRAGMENT","URI","regex","Z_ANCHOR","RegExp","URIREF","URITEMPLATE","URL","UUID","JSON_POINTER","RELATIVE_JSON_POINTER","fast","date-time","uri-reference","uri-template","email","ipv4","ipv6","uuid","json-pointer","relative-json-pointer","./util","7","compile","root","localRefs","callValidate","compilation","result","apply","arguments","localCompile","_schema","_root","isRoot","$async","sourceCode","validateGenerator","isTop","schemaPath","errSchemaPath","errorPath","errorClasses","RULES","resolveRef","usePattern","useDefault","useCustomRule","opts","vars","refVal","refValCode","patterns","patternCode","defaults","defaultCode","customRules","customRuleCode","processCode","Function","co","equal","ucs2length","console","error","refs","source","_refVal","refCode","refIndex","resolvedRef","rootRefId","addLocalRef","localSchema","inlineRef","inlineRefs","replaceLocalRef","removeLocalRef","refId","inline","regexStr","index","patternsHash","toQuotedString","valueStr","stableStringify","defaultsHash","rule","parentSchema","it","validateSchema","definition","errorsText","macro","keyword","c","checkCompiling","_compilations","compiling","_formats","cv","endCompiling","compIndex","splice","arr","statement","fast-deep-equal","json-stable-stringify","8","SchemaObject","res","resolveSchema","refPath","_getFullPath","getFullPath","_getId","id","resolveRecursive","getJsonPointer","parsedRef","resolveUrl","hash","slice","parts","part","unescapeFragment","PREVENT_SCOPE_CHANGE","limit","checkNoRef","countKeys","item","Array","isArray","count","Infinity","SIMPLE_INLINED","normalize","protocolSeparator","protocol","href","host","path","replace","TRAILING_SLASH_HASH","resolveIds","schemaId","baseIds","","fullPaths","traverse","allKeys","jsonPtr","rootSchema","parentJsonPtr","parentKeyword","keyIndex","escapeFragment","ids","toHash","./schema_obj","json-schema-traverse","9","ruleModules","type","rules","ALL","TYPES","all","types","forEach","group","map","implKeywords","keys","k","push","implements","concat","custom","./_rules","10","obj","11","len","pos","charCodeAt","12","to","checkDataType","dataType","data","negate","EQUAL","AND","OK","NOT","checkDataTypes","dataTypes","array","object","null","number","integer","coerceToTypes","optionCoerceTypes","COERCE_TO_TYPES","getProperty","IDENTIFIER","escapeQuotes","SINGLE_QUOTE","varOccurences","dataVar","varReplace","expr","cleanUpCode","out","EMPTY_ELSE","EMPTY_IF_NO_ELSE","EMPTY_IF_WITH_ELSE","finalCleanUpCode","async","ERRORS_REGEXP","REMOVE_ERRORS_ASYNC","RETURN_ASYNC","RETURN_DATA_ASYNC","REMOVE_ERRORS","RETURN_VALID","RETURN_TRUE","ROOTDATA_REGEXP","REMOVE_ROOTDATA","schemaHasRules","schemaHasRulesExcept","exceptKeyword","getPathExpr","currentPath","jsonPointers","isNumber","joinPaths","getPath","prop","escapeJsonPointer","getData","$data","lvl","paths","up","jsonPointer","segment","unescapeJsonPointer","b","decodeURIComponent","encodeURIComponent","./ucs2length","13","$keyword","$ruleType","$schemaValue","$lvl","level","$dataLvl","dataLevel","$schemaPath","$errSchemaPath","$breakOnError","allErrors","$isData","dataPathArr","$isMax","$exclusiveKeyword","$schemaExcl","$isDataExcl","$op","$notOp","$errorKeyword","$schemaValueExcl","$exclusive","$exclType","$exclIsNumber","$opStr","$opExpr","$$outStack","createErrors","messages","verbose","__err","pop","compositeRule","Math","14","15","unicode","16","17","$it","$closingBraces","$nextValid","$currentBaseId","$allSchemasEmpty","arr1","$sch","$i","l1","18","$valid","$errs","every","$wasComposite","19","20","$idx","$dataNxt","$nextData","$nonEmptySchema","$passData","$code","21","$compile","$inline","$macro","$ruleValidate","$validateCode","$rule","$definition","$rDef","$validateSchema","$ruleErrs","$ruleErr","$asyncKeyword","statements","passContext","$parentData","$parentDataProperty","def_callRuleValidate","modifying","valid","def_customError","22","$schemaDeps","$propertyDeps","$ownProperties","ownProperties","$property","$deps","$currentErrorPath","$propertyKey","$useData","$prop","$propertyPath","$missingProperty","_errorDataPathProperty","join","arr2","i2","l2","23","$vSchema","24","$unknownFormats","unknownFormats","$allowUnknown","$format","$isObject","$formatType","warn","indexOf","$formatRef","25","$additionalItems","additionalItems","$currErrSchemaPath","26","multipleOfPrecision","27","$allErrorsOption","28","29","$regexp","30","$key","$dataProperties","$schemaKeys","$pProperties","patternProperties","$pPropertyKeys","$aProperties","additionalProperties","$someProperties","$noAdditional","$additionalIsSchema","$removeAdditional","removeAdditional","$checkAdditional","$required","v5","loopRequired","$requiredHash","patternGroups","$pgProperties","$pgPropertyKeys","i1","$pProperty","arr3","l3","$pgProperty","$additionalProperty","$useDefaults","useDefaults","arr4","i4","l4","$hasDefault","default","arr5","i5","l5","arr6","i6","l6","$pgSchema","$pgMin","$pgMax","$limit","$reason","$moreOrLess","31","$invalidName","32","$refCode","$refVal","$message","missingRefs","__callValidate","33","$propertySch","$loopRequired","i3","34","35","$shouldUseGroup","$rulesGroup","$shouldUseRule","$ruleImlementsSomeKeyword","impl","$refKeywords","$id","$es7","yieldAwait","$top","rootId","$closingBraces1","$closingBraces2","$typeSchema","$typeIsArray","extendRefs","coerceTypes","$coerceToTypes","$method","$dataType","$coerced","$bracesCoercion","$type","36","addKeyword","_addRule","ruleGroup","rg","getKeyword","removeKeyword","add","remove","./dotjs/custom","37","defaultMeta","metaSchemaRef","38","description","39","title","definitions","schemaArray","nonNegativeInteger","nonNegativeIntegerDefault0","simpleTypes","stringArray","exclusiveMinimum","exclusiveMaximum","40","gen","ctx","args","reject","onFulfilled","ret","next","onRejected","err","throw","done","toPromise","isPromise","TypeError","String","isGeneratorFunction","isGenerator","thunkToPromise","arrayToPromise","isObject","objectToPromise","fn","results","promises","promise","name","displayName","val","wrap","createPromise","__generatorFunction__","41","arrA","arrB","dateA","Date","dateB","getTime","regexpA","regexpB","toString","hasOwnProperty","42","_traverse","cb","arrayKeywords","propsKeywords","escapeJsonPtr","skipKeywords","43","json","cmp","space","cycles","replacer","node","seen","parent","indent","colonSeparator","toJSON","objectKeys","sort","keyValue","x","has","jsonify","44","./lib/parse","./lib/stringify","45","at","ch","text","escapee","\"","\\","/","m","charAt","string","isFinite","hex","uffff","parseInt","fromCharCode","white","word","reviver","walk","holder","46","quote","escapable","lastIndex","partial","mind","gap","rep","\b","\t","\n","\f","\r","47","RangeError","mapDomain","regexSeparators","ucs2decode","extra","output","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","base","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","floor","damp","baseMinusTMin","tMax","skew","decode","input","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toLowerCase","toASCII","regexNonASCII","freeExports","nodeType","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","version","ucs2","48","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","idx","substr","xs","49","stringifyPrimitive","ks","50","./decode","./encode","51","Url","slashes","auth","port","search","query","pathname","urlParse","parseQueryString","slashesDenoteHost","urlFormat","isString","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","simplePathPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","http","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","querystring","queryIndex","splitter","uSplit","slashRegex","rest","trim","simplePath","exec","proto","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","unshift","h","ae","esc","escape","qm","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","isAbsolute","52","arg","_fragments","schemaUriFormat","_schemaUriFormat","_schemaUriFormatFunc","cache","chooseGetId","errorDataPath","serialize","_metaOpts","getMetaSchemaOptions","addInitialFormats","addDraft6MetaSchema","addMetaSchema","addInitialSchemas","schemaKeyRef","_meta","_skipValidation","checkUnique","skipValidation","throwOrLogError","currentUriFormat","META_SCHEMA_ID","keyRef","_getSchemaObj","_getSchemaFragment","compileSchema","fragment","removeSchema","_removeAllSchemas","cacheKey","schemas","shouldAddSchema","cached","addUsedSchema","recursiveMeta","willValidate","_validate","currentOpts","_get$Id","_get$IdOrId","separator","dataPath","addFormat","$dataSchema","$dataMetaSchema","META_SUPPORT_DATA","optsSchemas","metaOpts","META_IGNORE_OPTIONS","customKeyword","./$data","./cache","./compile","./compile/async","./compile/error_classes","./compile/formats","./compile/resolve","./compile/rules","./compile/schema_obj","./compile/util","./keyword","./patternGroups","./refs/$data.json","./refs/json-schema-draft-06.json"],"mappings":"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","file":"ajv.min.js"} \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js
deleted file mode 100644
index 688046f425..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/nodent.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* nodent 3.0.17: NoDent - Asynchronous Javascript language extensions */
-require=function e(t,n,r){function i(o,a){if(!n[o]){if(!t[o]){var u="function"==typeof require&&require;if(!a&&u)return u(o,!0);if(s)return s(o,!0);var c=new Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return i(n||e)},l,l.exports,e,t,n,r)}return n[o].exports}for(var s="function"==typeof require&&require,o=0;o<r.length;o++)i(r[o]);return i}({1:[function(e,t,n){t.exports=function(t){switch(parseInt(t.version)){case 2:case 3:t.plugins.asyncawait=e("./acorn-v3");break;case 4:case 5:t.plugins.asyncawait=e("./acorn-v4");break;default:throw new Error("acorn-es7-plugin requires Acorn v2, 3, 4 or 5")}return t}},{"./acorn-v3":2,"./acorn-v4":3}],2:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(p,"$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}function o(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(c,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(c,this,!0)){var a=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=a}}else if("object"==typeof t&&t.asyncExits&&i(u,this)){this.next();var l=this.parseStatement(n,r);return l.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 o,u=this.start,c=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 o=this.parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),n(h),h;if(this.input.slice(p.end).match(l))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,(o=s(this,u-4).parseExprSubscripts()).end<=u))return o=s(this,u).parseExprSubscripts(),h.operator="await",h.argument=o,h=this.finishNodeAt(h,"AwaitExpression",o.end,o.loc&&o.loc.end),this.pos=o.end,this.end=o.end,this.endLoc=o.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:a}}};if("SequenceExpression"===(o=s(this,this.start,m,!0).parseExpression()).type&&(o=o.expressions[0]),"CallExpression"===o.type&&(o=o.callee),"FunctionExpression"===o.type||"FunctionDeclaration"===o.type||"ArrowFunctionExpression"===o.type)return"SequenceExpression"===(o=s(this,this.start,m).parseExpression()).type&&(o=o.expressions[0]),"CallExpression"===o.type&&(o=o.callee),o.async=!0,o.start=u,o.loc&&(o.loc.start=c),o.range&&(o.range[0]=u),this.pos=o.end,this.end=o.end,this.endLoc=o.endLoc,this.next(),n(o),o}catch(e){if(e!==a)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(l)||(h.test(this.input.slice(i.end))?(i=e.apply(this,arguments),t.__asyncValue=!0):(n(t),"set"===t.kind&&this.raise(i.start,"'set <member>(value)' cannot be be async"),"Identifier"===(i=e.apply(this,arguments)).type&&"set"===i.name&&this.raise(i.start,"'set <member>(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}})}var a={},u=/^async[\t ]+(return|throw)/,c=/^async[\t ]+function/,l=/^\s*[():;]/,p=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g,h=/\s*(get|set)\s*\(/;t.exports=o},{}],3:[function(e,t,n){function r(e,t){return e.lineStart>=t}function i(e,t,n){var r=t.input.slice(t.start);return n&&(r=r.replace(c,"$1 $3")),e.test(r)}function s(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}function o(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,o=this.startLoc;if("name"===this.type.label&&t.asyncExits&&i(a,this)){this.next();var u=this.parseStatement(n,r);return u.async=!0,u.start=s,u.loc&&(u.loc.start=o),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(r){var i,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((i=s(this,o-4,c).parseExprSubscripts()).end<=o)return i=s(this,o,c).parseExprSubscripts(),u.argument=i,u=this.finishNodeAt(u,"AwaitExpression",i.end,i.loc&&i.loc.end),this.pos=i.end,this.end=i.end,this.endLoc=i.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 i=t.key&&t.key.name,s=e.apply(this,arguments);"get"===this.value&&(t.__maybeStaticAsyncGetter=!0);return n[this.value]?s:("Identifier"!==s.type||"async"!==s.name&&"async"!==i||r(this,s.end)||this.input.slice(s.end).match(u)?delete t.__maybeStaticAsyncGetter:"set"===t.kind||"set"===s.name?this.raise(s.start,"'set <member>(value)' cannot be be async"):(this.__isAsyncProp=!0,"Identifier"===(s=e.apply(this,arguments)).type&&"set"===s.name&&this.raise(s.start,"'set <member>(value)' cannot be be async")),s)}}),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}})}var a=/^async[\t ]+(return|throw)/,u=/^\s*[):;]/,c=/([^\n])\/\*(\*(?!\/)|[^\n*])*\*\/([^\n])/g;t.exports=o},{}],4:[function(e,t,n){"use strict";function r(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 3*e.length/4-r(e)}function s(e){var t,n,i,s,o,a,u=e.length;o=r(e),a=new p(3*u/4-o),i=o>0?u-4:u;var c=0;for(t=0,n=0;t<i;t+=4,n+=3)s=l[e.charCodeAt(t)]<<18|l[e.charCodeAt(t+1)]<<12|l[e.charCodeAt(t+2)]<<6|l[e.charCodeAt(t+3)],a[c++]=s>>16&255,a[c++]=s>>8&255,a[c++]=255&s;return 2===o?(s=l[e.charCodeAt(t)]<<2|l[e.charCodeAt(t+1)]>>4,a[c++]=255&s):1===o&&(s=l[e.charCodeAt(t)]<<10|l[e.charCodeAt(t+1)]<<4|l[e.charCodeAt(t+2)]>>2,a[c++]=s>>8&255,a[c++]=255&s),a}function o(e){return c[e>>18&63]+c[e>>12&63]+c[e>>6&63]+c[63&e]}function a(e,t,n){for(var r,i=[],s=t;s<n;s+=3)r=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(o(r));return i.join("")}function u(e){for(var t,n=e.length,r=n%3,i="",s=[],o=0,u=n-r;o<u;o+=16383)s.push(a(e,o,o+16383>u?u:o+16383));return 1===r?(t=e[n-1],i+=c[t>>2],i+=c[t<<4&63],i+="=="):2===r&&(t=(e[n-2]<<8)+e[n-1],i+=c[t>>10],i+=c[t>>4&63],i+=c[t<<2&63],i+="="),s.push(i),s.join("")}n.byteLength=i,n.toByteArray=s,n.fromByteArray=u;for(var c=[],l=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=h.length;f<d;++f)c[f]=h[f],l[h.charCodeAt(f)]=f;l["-".charCodeAt(0)]=62,l["_".charCodeAt(0)]=63},{}],5:[function(e,t,n){},{}],6:[function(e,t,n){"use strict";function r(e){if(e>H)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 u(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 e instanceof ArrayBuffer?p(e,t,n):"string"==typeof e?c(e,t):h(e)}function o(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function a(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)}function u(e){return o(e),r(e<0?0:0|f(e))}function c(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var n=0|y(e,t),s=r(n),o=s.write(e,t);return o!==n&&(s=s.slice(0,o)),s}function l(e){for(var t=e.length<0?0:0|f(e.length),n=r(t),i=0;i<t;i+=1)n[i]=255&e[i];return n}function p(e,t,n){if(t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(n||0))throw new RangeError("'length' is out of bounds");var r;return r=void 0===t&&void 0===n?new Uint8Array(e):void 0===n?new Uint8Array(e,t):new Uint8Array(e,t,n),r.__proto__=i.prototype,r}function h(e){if(i.isBuffer(e)){var t=0|f(e.length),n=r(t);return 0===n.length?n:(e.copy(n,0,0,t),n)}if(e){if(W(e)||"length"in e)return"number"!=typeof e.length||G(e.length)?r(0):l(e);if("Buffer"===e.type&&Array.isArray(e.data))return l(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function f(e){if(e>=H)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+H.toString(16)+" bytes");return 0|e}function d(e){return+e!=e&&(e=0),i.alloc(+e)}function y(e,t){if(i.isBuffer(e))return e.length;if(W(e)||e instanceof ArrayBuffer)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 M(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return U(e).length;default:if(r)return M(e).length;t=(""+t).toLowerCase(),r=!0}}function m(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 N(this,t,n);case"utf8":case"utf-8":return C(this,t,n);case"ascii":return P(this,t,n);case"latin1":case"binary":return T(this,t,n);case"base64":return _(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,s){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,G(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:b(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):b(e,[t],n,r,s);throw new TypeError("val must be string, number or Buffer")}function b(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;c<a;c++)if(s(e,c)===s(t,-1===l?0:c-l)){if(-1===l&&(l=c),c-l+1===u)return l*o}else-1!==l&&(c-=c-l),l=-1}else for(n+u>a&&(n=a-u),c=n;c>=0;c--){for(var p=!0,h=0;h<u;h++)if(s(e,c+h)!==s(t,h)){p=!1;break}if(p)return c}return-1}function x(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(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<r;++o){var a=parseInt(t.substr(2*o,2),16);if(G(a))return o;e[n+o]=a}return o}function w(e,t,n,r){return z(M(t,e.length-n),e,n,r)}function E(e,t,n,r){return z(V(t),e,n,r)}function S(e,t,n,r){return E(e,t,n,r)}function k(e,t,n,r){return z(U(t),e,n,r)}function A(e,t,n,r){return z(q(t,e.length-n),e,n,r)}function _(e,t,n){return 0===t&&n===e.length?J.fromByteArray(e):J.fromByteArray(e.slice(t,n))}function C(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var s=e[i],o=null,a=s>239?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 L(r)}function L(e){var t=e.length;if(t<=Z)return String.fromCharCode.apply(String,e);for(var n="",r=0;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=Z));return n}function P(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function T(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function N(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",s=t;s<n;++s)i+=D(e[s]);return i}function F(e,t,n){for(var r=e.slice(t,n),i="",s=0;s<r.length;s+=2)i+=String.fromCharCode(r[s]+256*r[s+1]);return i}function O(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function $(e,t,n,r,s,o){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<o)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function B(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 R(e,t,n,r,i){return t=+t,n>>>=0,i||B(e,t,n,4,3.4028234663852886e38,-3.4028234663852886e38),Y.write(e,t,n,r,23,4),n+4}function I(e,t,n,r,i){return t=+t,n>>>=0,i||B(e,t,n,8,1.7976931348623157e308,-1.7976931348623157e308),Y.write(e,t,n,r,52,8),n+8}function j(e){if((e=e.trim().replace(Q,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function D(e){return e<16?"0"+e.toString(16):e.toString(16)}function M(e,t){t=t||1/0;for(var n,r=e.length,i=null,s=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&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 V(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}function q(e,t){for(var n,r,i,s=[],o=0;o<e.length&&!((t-=2)<0);++o)r=(n=e.charCodeAt(o))>>8,i=n%256,s.push(i),s.push(r);return s}function U(e){return J.toByteArray(j(e))}function z(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}function W(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function G(e){return e!==e}var J=e("base64-js"),Y=e("ieee754");n.Buffer=i,n.SlowBuffer=d,n.INSPECT_MAX_BYTES=50;var H=2147483647;n.kMaxLength=H,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}}(),i.TYPED_ARRAY_SUPPORT||"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 a(e,t,n)},i.allocUnsafe=function(e){return u(e)},i.allocUnsafeSlow=function(e){return u(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);s<o;++s)if(e[s]!==t[s]){n=e[s],r=t[s];break}return n<r?-1:r<n?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=i.allocUnsafe(t),s=0;for(n=0;n<e.length;++n){var o=e[n];if(!i.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,s),s+=o.length}return r},i.byteLength=y,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?C(this,0,e):m.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=n.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+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<u;++p)if(c[p]!==l[p]){o=c[p],a=l[p];break}return o<a?-1:a<o?1:0},i.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},i.prototype.indexOf=function(e,t,n){return v(this,e,t,n,!0)},i.prototype.lastIndexOf=function(e,t,n){return v(this,e,t,n,!1)},i.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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 x(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return E(this,e,t,n);case"latin1":case"binary":return S(this,e,t,n);case"base64":return k(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A(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 Z=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<e&&(t=e);var r=this.subarray(e,t);return r.__proto__=i.prototype,r},i.prototype.readUIntLE=function(e,t,n){e>>>=0,t>>>=0,n||O(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return r},i.prototype.readUIntBE=function(e,t,n){e>>>=0,t>>>=0,n||O(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||O(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(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||O(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||O(e,t,this.length);for(var r=this[e],i=1,s=0;++s<t&&(i*=256);)r+=this[e+s]*i;return i*=128,r>=i&&(r-=Math.pow(2,8*t)),r},i.prototype.readIntBE=function(e,t,n){e>>>=0,t>>>=0,n||O(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||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||O(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||O(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||O(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||O(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||O(e,4,this.length),Y.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),Y.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),Y.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),Y.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||$(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,s=0;for(this[t]=255&e;++s<n&&(i*=256);)this[t+s]=e/i&255;return t+n},i.prototype.writeUIntBE=function(e,t,n,r){e=+e,t>>>=0,n>>>=0,r||$(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||$(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||$(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||$(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||$(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||$(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);$(this,e,t,n,i-1,-i)}var s=0,o=1,a=0;for(this[t]=255&e;++s<n&&(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.writeIntBE=function(e,t,n,r){if(e=+e,t>>>=0,!r){var i=Math.pow(2,8*n-1);$(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||$(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||$(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||$(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||$(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||$(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 R(this,e,t,!0,n)},i.prototype.writeFloatBE=function(e,t,n){return R(this,e,t,!1,n)},i.prototype.writeDoubleLE=function(e,t,n){return I(this,e,t,!0,n)},i.prototype.writeDoubleBE=function(e,t,n){return I(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<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=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<r-n&&(r=e.length-t+n);var i,s=r-n;if(this===e&&n<t&&t<r)for(i=s-1;i>=0;--i)e[i+t]=this[i+n];else if(s<1e3)for(i=0;i<s;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+s),t);return s},i.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!i.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0);var o;if("number"==typeof e)for(o=t;o<n;++o)this[o]=e;else{var a=i.isBuffer(e)?e:new i(e,r),u=a.length;for(o=0;o<n-t;++o)this[o+t]=a[o%u]}return this};var Q=/[^+/0-9A-Za-z-_]/g},{"base64-js":4,ieee754:7}],7:[function(e,t,n){n.read=function(e,t,n,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,c=u>>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<<c)-1,p=l>>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<<i|a,c+=i;c>0;e[n+f]=255&o,f+=d,o/=256,c-=8);e[n+f-d]|=128*y}},{}],8:[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":9,"./zousan":10}],9:[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(e,t){this.resolve=e,this.reject=t}function s(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 o(e){this._resolver=e,this.then=s}return n.prototype={resolve:r,reject:r,then:i},o.resolve=function(e){return o.isThenable(e)?e:{then:function(t){return t(e)}}},o.isThenable=e,o}},{}],10:[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;n++)r(t.c[n],e)})}},reject:function(e){if(void 0===this.state){this.state=i,this.v=e;var t=this.c;t&&s(function(){for(var n=0,r=t.length;n<r;n++)i(t[n],e)})}},then:function(e,t){var r=new n,i={y:e,n:t,p:r};if(void 0===this.state)this.c?this.c.push(i):this.c=[i];else{var o=this.state,a=this.v;s(function(){o(i,a)})}return r}},n.resolve=function(e){if(e&&e instanceof n)return e;var t=new n;return t.resolve(e),t},n.reject=function(e){if(e&&e instanceof n)return e;var t=new n;return t.reject(e),t},n.version="2.3.3-nodent",n}}).call(this,e("_process"))},{_process:31}],11:[function(e,t,n){t.exports=function(e,t,n,r){var i=[[],[]],s=[/(.*)(<script[^>]*>)(.*)/i,/(.*)(<\/script>)(.*)/i],o=0,a=!0;t=t.split("\n");for(var u=0;u<t.length;){var c=s[o].exec(t[u]);c&&0==o&&c[2].match("src=")&&(c=null),c?(1==o?(i[o].push(c[1]),pr=e.compile(i[1].join("\n"),n,3,r.compiler).code,a&&r.runtime&&(a=!1,r.runtime&&i[0].push("Function.prototype.$asyncbind = "+e.$asyncbind.toString()+";\n")),i[0].push(pr),i[1]=[],i[o=0].push(c[2])):(i[o].push(c[1]),i[o].push(c[2]),o=1),t[u]=c[3]):i[o].push(t[u++])}return i[0].join("\n")}},{}],12:[function(e,t,n){(function(n){"use strict";function r(e){if(Array.isArray(e))return e.map(function(e){return r(e)});var t={};return Object.keys(e).forEach(function(n){t[n]=e[n]}),t}function i(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 s(){}function o(e){return e?(b.node=e,b):{}}function a(e,t,n){if(!e)return null;if(t&&"object"==typeof t){var r=Object.keys(t);return a(e,function(e){return r.every(function(n){return e[n]==t[n]})})}var i,s={};if(Array.isArray(e)){for(var u=0;u<e.length;u++)if(i=a(e[u],t))return i;return null}var c=n;"function"!=typeof n&&(c=n?function(e){return!0}:function(e){return!o(e).isScope});try{y.treeWalker(e,function(n,r,i){if(t(n))throw s.path=i,s;(n===e||c(n))&&r()})}catch(e){if(e===s)return s.path;throw e}return null}function u(e){return a(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden})}function c(e){return a(e,function(e){return"AwaitExpression"===e.type&&!e.$hidden},function(e){var t=o(e);return!t.isBlockStatement&&!t.isScope})}function l(e){return a(e,{type:"ThisExpression"})}function p(e){if(null===e)return{type:"NullLiteral",value:null,raw:"null"};if(!0===e||!1===e)return{type:"BooleanLiteral",value:e,raw:JSON.stringify(e)};if(e instanceof RegExp){var t=e.toString(),n=t.split("/");return{type:"RegExpLiteral",value:e,raw:t,pattern:n[1],flags:n[2]}}return"number"==typeof e?{type:"NumericLiteral",value:e,raw:JSON.stringify(e)}:{type:"StringLiteral",value:e,raw:JSON.stringify(e)}}function h(e,t){return{type:"Identifier",name:e,loc:t}}function f(e){var t={};for(var n in e)t[n]="string"==typeof e[n]?h(e[n]):e[n];return t}function d(e,t,n,d){function m(e,t){if(n.es6target&&!e.id&&!t&&0===e.type.indexOf("Function"))return e.type="ArrowFunctionExpression",e;if(n.noRuntime){if(t){if(o(t).isLiteral)throw new Error("Nodent: 'noRuntime' option only compatible with -promise and -engine modes");e.body.body=y.part("try {$:0} catch($2) {return $1($2)}",[r(e.body),t,h("$boundEx")]).body}else if(n.es6target&&!e.id&&0===e.type.indexOf("Function"))return e.type="ArrowFunctionExpression",e;return n.es6target&&!e.id?(e.type="ArrowFunctionExpression",e):y.part("$0.bind(this)",[e]).expr}return t?y.part("$0.$1(this,$2)",[e,me.asyncbind,t]).expr:y.part("$0.$1(this)",[e,me.asyncbind]).expr}function g(e,t,n,r){return y.part("var $0 = $1",[h(e),m({type:"FunctionExpression",id:null,generator:!1,expression:!1,params:n||[],body:Array.isArray(t)?{type:"BlockStatement",body:t}:t},r)]).body[0]}function v(t){return e.filename+(t&&t.loc&&t.loc.start?"("+t.loc.start.line+":"+t.loc.start.column+")\t":"\t")}function b(e){return n.babelTree?p(e):{type:"Literal",value:e,raw:JSON.stringify(e)}}function x(e){return e?!n.babelTree||"ClassMethod"!==e.type&&"ObjectMethod"!==e.type?(!n.babelTree&&"MethodDefinition"===e.type||"Property"===e.type&&(e.method||"get"==e.kind||"set"==e.kind))&&o(e.value).isFunction?e.value:null:e:null}function w(e,t){if(!o(e).isFunction)throw new Error("Can only replace 'arguments' in functions");return"$usesArguments"in e||(y.treeWalker(e,function(t,r,i){"Identifier"===t.type&&"arguments"===t.name?(i[0].parent.shorthand&&(i[0].parent.shorthand=!1,i[0].parent.key=h("arguments"),e.$usesArguments=!0),"key"!==i[0].field&&(t.name=n.$arguments,e.$usesArguments=!0)):t!==e&&o(t).isFunction?"ArrowFunctionExpression"===t.type&&(w(t),e.$usesArguments=e.$usesArguments||t.$usesArguments):r()}),e.$usesArguments=e.$usesArguments||!1),e.$usesArguments&&"ArrowFunctionExpression"!==e.type}function E(e){return"string"!=typeof e&&(e=e.type.replace(/Statement|Expression/g,"")),n.generatedSymbolPrefix+e+"_"+ye++}function S(e,t){return e&&(e.$exit=f({$error:t.$error,$return:t.$return})),e}function k(e){for(var t=0;t<e.length;t++){if(e[t].self.$exit)return e[t].self;if(e[t].parent&&e[t].parent.$exit)return e[t].parent}return null}function A(e,t){var n=k(e);if(n)return n.$exit;if(t)for(var r=0;r<t.length;r++)if(t[r])return f(t[r]);return null}function _(e,t){var r=!(n.promises||n.generators||n.engine)&&n.lazyThenables;ce(e),oe(e),D(e),Q(e),Z(e),(r?Y:s)(e),$(e),O(e),U(e,[q,r?s:J,R,I,B]),z(e,t),le(e),fe(e)}function C(e,t){var n={$continuation:!0,type:e?"FunctionDeclaration":"FunctionExpression",id:e?"string"==typeof e?h(e):e:void 0,params:[],body:{type:"BlockStatement",body:r(t)}};return e&&(de[e]={def:n}),n}function L(e){return{type:"AwaitExpression",argument:Q({type:"FunctionExpression",generator:!1,expression:!1,async:!0,params:[],body:{type:"BlockStatement",body:e}}).body.body[0].argument}}function P(e,t){"string"==typeof e&&(e=h(e));var n=y.part("$0.call($1)",[e,[{type:"ThisExpression"}].concat(t||[])]).expr;return e.$thisCall=n,n.$thisCallName=e.name,n}function T(e,t){return{type:"ReturnStatement",argument:P(e,t)}}function N(e,t){return{type:"CallExpression",callee:h(e.$seh+"Finally"),arguments:t?[t]:[]}}function F(e,t){if(Array.isArray(e))return e.map(function(e){return F(e,t)});var r=0,i=0;return y.treeWalker(e,function(e,t,s){if("ReturnStatement"!==e.type||e.$mapped){if("ThrowStatement"===e.type){var a=o(e).isAsync;if(r>0){if(!a)return t(e);delete e.async}return void(!a&&i?t():(e.type="ReturnStatement",e.$mapped=!0,e.argument={type:"CallExpression",callee:A(s,[n]).$error,arguments:[e.argument]}))}return"TryStatement"===e.type?(i++,t(e),void i--):o(e).isFunction?(r++,t(e),void r--):void t(e)}if(r>0){if(!o(e).isAsync)return t(e);delete e.async}return e.$mapped=!0,void(o(e.argument).isUnaryExpression&&"void"===e.argument.operator?e.argument=e.argument.argument:e.argument={type:"CallExpression",callee:A(s,[n]).$return,arguments:e.argument?[e.argument]:[]})},t)}function O(e,t){return Array.isArray(e)?e.map(function(e){return O(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"ConditionalExpression"===e.type&&(u(e.alternate)||u(e.consequent))){h(E("condOp"));i(e,L(y.part("if ($0) return $1 ; return $2",[e.test,e.consequent,e.alternate]).body))}},t),e)}function $(e,t){return Array.isArray(e)?e.map(function(e){return $(e,t)}):(y.treeWalker(e,function(e,t,n){if(t(),"LogicalExpression"===e.type&&u(e.right)){var r,s=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"}i(e,L(y.part(r,[s,e.left,e.right]).body))}},t),e)}function B(e,t,n){if("SwitchCase"!==e.type&&o(e).isBlockStatement)for(var r=0;r<e.body.length;){var i=e.body[r];if("SwitchCase"!==i.type&&o(i).isBlockStatement)if(he(i.body))if(c(i)){var s=E(i),a=e.body.splice(r+1,e.body.length-(r+1));if(a.length){var u=C(s,a);delete de[s],i.body.push(T(s)),e.body.push(u),r++}else r++}else r++;else e.body.splice.apply(e.body,[r,1].concat(i.body));else r++}}function R(e,t,n){if("IfStatement"===e.type&&u([e.consequent,e.alternate])){var s=E(e),a=t[0],c={type:"BlockStatement",body:[e]};if("index"in a){var l=a.index,p=a.parent[a.field].splice(l+1,a.parent[a.field].length-(l+1));if(a.replace(c),p.length){var h=T(s);c.body.push(n(C(s,p))),[e.consequent,e.alternate].forEach(function(e){if(e){var t;(t=o(e).isBlockStatement?e.body[e.body.length-1]:e)&&"ReturnStatement"===t.type||("BlockStatement"!==e.type&&i(e,{type:"BlockStatement",body:[r(e)]}),e.$deferred=!0,e.body.push(r(h))),n(e)}}),e.consequent&&e.alternate&&e.consequent.$deferred&&e.alternate.$deferred||c.body.push(r(h))}}else a.parent[a.field]=c}}function I(e,t,n){if(!e.$switched&&"SwitchStatement"===e.type&&u(e.cases)){e.$switched=!0;var i,s,o,a=t[0];if("index"in a){var c=a.index+1;(o=a.parent[a.field].splice(c,a.parent[a.field].length-c)).length&&"BreakStatement"===o[o.length-1].type&&a.parent[a.field].push(o.pop()),i=E(e),s=T(i),a.parent[a.field].unshift(C(i,o)),a.parent[a.field].push(r(s))}return e.cases.forEach(function(e,t){if("SwitchCase"!==e.type)throw new Error("switch contains non-case/default statement: "+e.type);if(u(e.consequent)){var n=e.consequent[e.consequent.length-1];"BreakStatement"===n.type?e.consequent[e.consequent.length-1]=r(s):"ReturnStatement"===n.type||"ThrowStatement"===n.type||(d(v(e)+"switch-case fall-through not supported - added break. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"),e.consequent.push(r(s)))}}),!0}}function j(e){return"ReturnStatement"===e.type||"ThrowStatement"===e.type}function D(t,r){return y.treeWalker(t,function(t,i,s){if("TryStatement"===t.type&&!t.$seh&&(o(s[0].parent).isBlockStatement||(s[0].parent[s[0].field]={type:"BlockStatement",body:[t]}),t.$seh=E("Try")+"_",t.$containedAwait=!!u(t),t.$finallyExit=t.finalizer&&V(s)&&!!a(t.finalizer.body,j),t.$containedAwait||t.$finallyExit)){t.$needsMapping=!r||!t.$finallyExit;var c=A(s,[n]);if(t.finalizer&&!t.handler){var l=h(E("exception"));t.handler={type:"CatchClause",param:l,body:{type:"BlockStatement",body:[{type:"ThrowStatement",argument:l}]}}}if(!t.handler&&!t.finalizer){var p=new SyntaxError(v(t.value)+"try requires catch and/or finally clause",e.filename,t.start);throw p.pos=t.start,p.loc=t.loc.start,p}t.finalizer?(S(t.block,{$error:t.$seh+"Catch",$return:N(t,c.$return)}),S(t.handler,{$error:N(t,c.$error),$return:N(t,c.$return)})):S(t.block,{$error:t.$seh+"Catch",$return:c.$return})}i()}),t}function M(e,t){for(var n=0;n<e.length;n++)if(!o(e[n]).isDirective)return void e.splice.apply(e,[n,0].concat(t));e.splice.apply(e,[e.length,0].concat(t))}function V(e){for(var t=0;t<e.length;t++)if(o(e[t].self).isFunction)return e[t].self.async||e[t].self.$wasAsync;return!1}function q(t,i,s){if(t.$needsMapping){var o,a,u,c=i[0];if(!("index"in c))throw new Error(e.filename+" - malformed try/catch blocks");var l=c.index+1,p=c.parent[c.field].splice(l,c.parent[c.field].length-l);if(p.length){var f=s(g(a=t.$seh+"Post",p,[],A(i,[n]).$error));c.parent[c.field].splice(c.index,0,f),o=y.part("return $0()",[t.finalizer?N(t,h(a)):h(a)]).body[0]}else t.finalizer&&(o=T(N(t)));t.$mapped=!0,o&&(t.block.body.push(r(o)),t.handler.body.body.push(r(o)));var d=A(i,[n]);if(t.handler){var v=h(t.$seh+"Catch");u=r(t.handler.body);var b=g(v.name,u,[r(t.handler.param)],t.finalizer?N(t,d.$error):d.$error);t.handler.body.body=[{type:"CallExpression",callee:v,arguments:[r(t.handler.param)]}],c.parent[c.field].splice(c.index,0,b)}if(t.finalizer){var x={exit:h(t.$seh+"Exit"),value:h(t.$seh+"Value"),body:r(t.finalizer.body)},w=y.part("(function ($value) { {$:body} return $exit && ($exit.call(this, $value)); })",x).expr,E={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:h(t.$seh+"Finally"),init:m({type:"FunctionExpression",params:[x.exit],id:null,body:{type:"BlockStatement",body:[{type:"ReturnStatement",argument:m(w,d.$error)}]}})}]};M(c.parent[c.field],[E]);var S=y.part("return $0()",[t.finalizer?N(t,h(a)):h(a)]).body[0];u.body[u.length-1]=S,t.block.body[t.block.body.length-1]=S,delete t.finalizer}}}function U(e,t,n){function r(e,n){return y.treeWalker(e,function(e,n,s){function o(e){return r(e,s)}i.indexOf(e)<0&&(i.push(e),t.forEach(function(t){t(e,s,o)})),n()},n)}var i=[];return r(e,n),e}function z(e,t,s){return y.treeWalker(e,function(e,a,c){if("IfStatement"==e.type&&("BlockStatement"!=e.consequent.type&&u(e.consequent)&&(e.consequent={type:"BlockStatement",body:[e.consequent]}),e.alternate&&"BlockStatement"!=e.alternate.type&&u(e.alternate)&&(e.alternate={type:"BlockStatement",body:[e.alternate]})),a(),o(e).isAwait){var l=e.loc;if(!(t=t||c.some(function(e){return e.self&&e.self.$wasAsync}))||"warn"===t){var p=v(e)+"'await' used inside non-async function. ";n.promises?p+="'return' value Promise runtime-specific":p+="'return' value from await is synchronous",d(p+". See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification")}var f=c[0].parent;"LogicalExpression"===f.type&&f.right===e&&d(v(e.argument)+"'"+printNode(f)+"' on right of "+f.operator+" will always evaluate '"+printNode(e.argument)+"'"),"ConditionalExpression"===f.type&&f.test!==e&&d(v(e.argument)+"'"+printNode(f)+"' will always evaluate '"+printNode(e.argument)+"'");var y=h(E("await")),g=r(e.argument);i(e,y);for(var b,x,w=1;w<c.length;w++)if(x=o(c[w].self).isBlockStatement){b=c[w-1];break}if(!b)throw new Error(v(e)+"Illegal await not contained in a statement");var S,k,_=A(c,[s,n]),C=b.index,L=x.splice(C,x.length-C).slice(1);"ReturnStatement"===b.self.type&&"CallExpression"===b.self.argument.type&&1===b.self.argument.arguments.length&&b.self.argument.arguments[0].name===y.name?k=S=b.self.argument.callee:"Identifier"===b.self.type||b.self.name===y.name||"ExpressionStatement"===b.self.type&&"Identifier"===b.self.expression.type&&b.self.expression.name===y.name?S=L.length?{type:"FunctionExpression",params:[r(y)],body:z({type:"BlockStatement",body:r(L)},t,_)}:{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}:(L.unshift(b.self),S={type:"FunctionExpression",params:[r(y)],body:z({type:"BlockStatement",body:r(L)},t,_)}),k||(k=S?m(S,_.$error):{type:"FunctionExpression",params:[],body:{type:"BlockStatement",body:[]}}),n.wrapAwait&&(g={type:"CallExpression",arguments:[g],callee:n.promises||n.generators?{type:"MemberExpression",object:h("Promise"),property:h("resolve")}:{type:"MemberExpression",object:h("Object"),property:h("$makeThenable")}});var P={type:"CallExpression",callee:{type:"MemberExpression",object:g,property:h("then",l),computed:!1},arguments:[k,_.$error]};x.push({loc:l,type:"ReturnStatement",argument:P})}return!0}),e}function W(e,t){var n=e.$label;delete e.$label;var r=h(E("idx")),s=h(E("in")),a=y.part("var $0,$1 = [];for ($0 in $2) $1.push($0)",[r,s,e.right]).body,u=y.part("for ($0; $1.length;){ $2 = $1.shift(); $:3 ; }",[e.left,s,"VariableDeclaration"===e.left.type?e.left.declarations[0].id:e.left,e.body]).body[0];u.$label=n;for(var c=0;c<t.length;c++)if(o(t[c].parent).isBlockStatement){t[c].parent[t[c].field].splice(t[c].index,0,a[0],a[1]);break}i(e,u)}function G(e,t){"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[e.body]});var n,r,i=y.part("[$0[Symbol.iterator]()]",[e.right]).expr;if("VariableDeclaration"===e.left.type){"const"===e.left.kind&&(e.left.kind="let"),n=e.left.declarations[0].id;var s=ie(e.left.declarations[0].id);r=h(E("iterator_"+s.join("_"))),e.left.declarations=s.map(function(e){return{type:"VariableDeclarator",id:h(e)}}),e.left.declarations.push({type:"VariableDeclarator",id:r,init:i}),e.init=e.left}else{var o={type:"VariableDeclaration",kind:"var",declarations:[{type:"VariableDeclarator",id:r=h(E("iterator_"+(n=e.left).name)),init:i}]};e.init=o}e.type="ForStatement",e.test=y.part("!($0[1] = $0[0].next()).done && (($1 = $0[1].value) || true)",[r,n]).expr,delete e.left,delete e.right}function J(e,t,r){function i(e){return"AwaitExpression"===e.type&&!e.$hidden||c&&("BreakStatement"===e.type||"ContinueStatement"===e.type)&&e.label}var s=e.$depth;"ForInStatement"===e.type&&u(e)?W(e,t):"ForOfStatement"===e.type&&u(e)&&G(e,t);var c=t.some(function(e){return"$label"in e.self&&"ForStatement"===e.self.type&&e.self.$mapped});if(!e.$mapped&&o(e).isLoop&&a(e,i)){t[0].self.$mapped=!0;var l=[],p=e.init,f=e.test||b(!0),d=e.update,m=e.body;d&&(d={type:"ExpressionStatement",expression:d}),p&&(o(p).isStatement||(p={type:"ExpressionStatement",expression:p}),l.push(p));var g,v;e.$label?(v=e.$label.name,g=t[1]):(v=ye++,g=t[0]);var x,w,E=h((v=n.generatedSymbolPrefix+"Loop_"+v)+"_trampoline"),S=h(v),k=d?h(v+"_step"):S,_=h(v+"_exit");h("q"),h("$exception");if("index"in g){var L=g.index;w=g.parent[g.field].splice(L+1,g.parent[g.field].length-(L+1))}else w=[];x=C(_,w);var P={type:"ReturnStatement",argument:S},T={type:"ReturnStatement",argument:k},N={type:"ReturnStatement",argument:{type:"ArrayExpression",elements:[b(1)]}};y.treeWalker(m,function(e,t,n){if(o(e).isFunction||o(e).isLoop)return!0;if("BreakStatement"===e.type||"ContinueStatement"===e.type)if(e.label)for(var r=(n.filter(function(e){return"$label"in e.self}).map(function(e,t){return e.self.$label&&e.self.$label.name})),i=[],s=0;s<r.length;s++){if(r[s]===e.label.name){"BreakStatement"===e.type&&i.push(b(1)),n[0].replace({type:"ReturnStatement",argument:{type:"ArrayExpression",elements:i.reverse()}});break}i.push(b(0))}else"BreakStatement"===e.type?n[0].replace(N):n[0].replace(T);else t()},t),m="BlockStatement"===m.type?m.body.slice(0):[m],m="DoWhileStatement"===e.type?m.concat({type:"IfStatement",test:{type:"UnaryExpression",argument:f,prefix:!0,operator:"!"},consequent:N,alternate:T}):[{type:"IfStatement",test:f,consequent:{type:"BlockStatement",body:m.concat(T)},alternate:N}],n.noRuntime&&l.push({type:"VariableDeclaration",declarations:[{type:"VariableDeclarator",id:E}],kind:"var"});var F,O=A(t,[n]).$error;F=n.noRuntime?y.part(n.es6target?"($idTrampoline = ((q) => { $$setMapped: while (q) { if (q.then) "+(1===s?" 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===s?" 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:E,exit:O,idIter:S,idContinuation:_,idStep:k}).expr:y.part("(Function.$0.trampoline(this,$1,$2,$3,$5)($4))",[me.asyncbind,_,k,O,S,b(1===s)]).expr,l.push({type:"ReturnStatement",argument:F}),l.push({$label:e.$label,type:"FunctionDeclaration",id:S,params:[],body:{type:"BlockStatement",body:m}}),d&&l.push({type:"FunctionDeclaration",id:k,params:[],body:{type:"BlockStatement",body:[d,P]}}),!p||"VariableDeclaration"!==p.type||"let"!==p.kind&&"const"!==p.kind?(l.push(x),t[0].replace(l.map(r))):("const"===p.kind&&(p.kind="let"),t[0].replace([{type:"BlockStatement",body:l.map(r)},r(x)]))}}function Y(e,t){return y.treeWalker(e,function(e,t,s){function a(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:P(e||S)}}}function c(e,t){if("BreakStatement"===e.type)i(e,r(A(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_exit")));else if("ContinueStatement"===e.type)i(e,r(a(e.label&&n.generatedSymbolPrefix+"Loop_"+e.label.name+"_next")));else if(o(e).isFunction)return!0;t()}"ForInStatement"===e.type&&u(e)?W(e,s):"ForOfStatement"===e.type&&u(e)&&G(e,s),t();var p;if(o(e).isLoop&&u(e)){var f=e.init,d=e.test||b(!0),g=e.update,v=e.body,x=l(v);f&&(o(f).isStatement||(f={type:"ExpressionStatement",expression:f})),g=g&&{type:"ExpressionStatement",expression:g},v=o(v).isBlockStatement?r(v).body:[r(v)];var w=e.$label&&e.$label.name;w="Loop_"+(w||ye++);var E=n.generatedSymbolPrefix+(w+"_exit"),S=n.generatedSymbolPrefix+(w+"_next"),k=h(n.generatedSymbolPrefix+w),A=function(e){return{type:"ReturnStatement",argument:{type:"UnaryExpression",operator:"void",prefix:!0,argument:{type:"CallExpression",callee:h(e||E),arguments:[]}}}},_=C(S,[{type:"ReturnStatement",argument:{type:"CallExpression",callee:x?m(k):k,arguments:[h(E),me.error]}}]);g&&_.body.body.unshift(g);for(var L=0;L<v.length;L++)y.treeWalker(v[L],c);v.push(r(a()));var T={type:"FunctionExpression",id:k,params:[h(E),me.error],body:{type:"BlockStatement",body:[_]}};if("DoWhileStatement"===e.type)_.body.body=[{type:"IfStatement",test:r(d),consequent:{type:"BlockStatement",body:r(_.body.body)},alternate:{type:"ReturnStatement",argument:{type:"CallExpression",callee:h(E),arguments:[]}}}],T.body.body=[_].concat(v);else{var N={type:"IfStatement",test:r(d),consequent:{type:"BlockStatement",body:v},alternate:r(A())};T.body.body.push(N)}var F={type:"ExpressionStatement",expression:{type:"AwaitExpression",argument:m(T,b(0))}};for(!f||"VariableDeclaration"!==f.type||"let"!==f.kind&&"const"!==f.kind||("const"===f.kind&&(f.kind="let"),F={type:"BlockStatement",body:[r(f),F]},f=null),p=0;p<s.length;p++){var O=s[p];if("index"in O)return f?O.parent[O.field].splice(O.index,1,r(f),F):O.parent[O.field][O.index]=F,!0}}return!0},t),e}function H(e){if(!o(e).isFunction)throw new Error("Cannot examine non-Function node types for async exits");return a(e.body,function(e){return"Identifier"===e.type&&(e.name===n.$return||e.name===n.$error)||j(e)&&o(e).isAsync},function(e){return!(o(e).isFunction&&(e.$wasAsync||o(e).isAsync))})}function Z(t){return y.treeWalker(t,function(t,r,i){var s=x(t);if(r(),s&&o(s).isAsync){if("set"==t.kind){var a=new SyntaxError(v(s)+"method 'async set' cannot be invoked",e.filename,t.start);throw a.pos=t.start,a.loc=t.loc.start,a}s.async=!1;var u=w(s);H(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:[me.return,me.error],body:Z(F(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&&M(s.body.body,[ge])}})}function Q(e){return y.treeWalker(e,function(e,t,r){if(t(),o(e).isAsync&&o(e).isFunction){var i;(i=x(r[0].parent))&&o(i).isAsync&&"get"===r[0].parent.kind&&ee(r[0].parent.key),delete e.async;var s,a=w(e);return o(e.body).isBlockStatement?(H(e)||0!==e.body.body.length&&"ReturnStatement"===e.body.body[e.body.body.length-1].type||e.body.body.push({type:"ReturnStatement"}),s={type:"BlockStatement",body:e.body.body.map(function(e){return F(e,r)})}):(s={type:"BlockStatement",body:[F({type:"ReturnStatement",argument:e.body},r)]},e.expression=!1),s=m(S({type:"FunctionExpression",params:[me.return,me.error],body:s,$wasAsync:!0},n),n.promises||n.generators||n.engine?null:b(!n.lazyThenables||0)),n.promises&&(s={type:"NewExpression",callee:h("Promise"),arguments:[s]}),s={type:"BlockStatement",body:[{type:"ReturnStatement",loc:e.loc,argument:s}]},a&&M(s.body,[ge]),void(e.body=s)}}),e}function X(e){if(Array.isArray(e))return e.map(X);var t=0;return y.treeWalker(e,function(e,n,r){if("ThrowStatement"!==e.type&&"ReturnStatement"!==e.type||e.$mapped){if(o(e).isFunction)return t++,n(e),void t--}else if(t>0&&o(e).isAsync)return delete e.async,e.argument={type:"CallExpression",callee:"ThrowStatement"===e.type?me.error:me.return,arguments:e.argument?[e.argument]:[]},void(e.type="ReturnStatement");n(e)})}function K(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:me.return,error:me.error,asyncspawn:me.asyncspawn,body:X(e).concat(t?[{type:"ReturnStatement",argument:me.return}]:[])}).body[0]}function ee(e){e.$asyncgetwarninig||(e.$asyncgetwarninig=!0,d(v(e)+"'async get "+printNode(e)+"(){...}' is non-standard. See https://github.com/MatAtBread/nodent#differences-from-the-es7-specification"))}function te(e,t){function s(e,t){y.treeWalker(e,function(n,r,i){n!==e&&o(n).isFunction||(o(n).isAwait?t?(n.$hidden=!0,r()):(delete n.operator,n.delegate=!1,n.type="YieldExpression",r()):r())})}function a(e){var t=n.promises;n.promises=!0,_(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,r){n();var l,p,h;if(o(e).isAsync&&o(e).isFunction){var f;(f=x(r[0].parent))&&o(f).isAsync&&"get"===r[0].parent.kind&&ee(r[0].parent.key),(p=H(e))?(c(p,e.body),a(e)):t?"get"!==r[0].parent.kind&&s(e,!0):(delete(l=e).async,h=w(l),s(l,!1),(l=u(l)).body=K(l.body.body,p),h&&M(l.body.body,[ge]),l.id&&"ExpressionStatement"===r[0].parent.type?(l.type="FunctionDeclaration",r[1].replace(l)):r[0].replace(l))}else(l=x(e))&&o(l).isAsync&&((p=H(l))?(c(p,l),a(e)):t&&"get"!==e.kind||(t?a(e):(e.async=!1,h=w(l),s(l,!1),i(l,u(l)),l.body=K(l.body.body,p)),h&&M(l.body.body,[ge])))});var l=r(n);return n.engine=!1,n.generators=!1,ce(e),oe(e),D(e,l.engine),$(e),O(e),U(e,[q,J,R,I,B]),z(e,"warn"),n.engine=l.engine,n.generators=l.generators,e}function ne(e,t,n){var r=[];return y.treeWalker(e,function(i,s,a){if(i===e)return s();t(i,a)?r.push([].concat(a)):n||o(i).isScope||s()}),r}function re(e,t){var n=[],i={};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?i[e]=o.declarations[u]:s[e]=o.declarations[u]}for(var n=e[0],o=n.self,a=(o.kind,[]),u=0;u<o.declarations.length;u++){var c=o.declarations[u];if(ie(c.id).forEach(t),c.init){var l={type:"AssignmentExpression",left:r(c.id),operator:"=",right:r(c.init)};a.push(l)}}if(0==a.length)n.remove();else{var p=a.length>1?{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:i}}function ie(e){if(!e)return[];if(Array.isArray(e))return e.reduce(function(e,t){return e.concat(ie(t.id))},[]);switch(e.type){case"Identifier":return[e.name];case"AssignmentPattern":return ie(e.left);case"ArrayPattern":return e.elements.reduce(function(e,t){return e.concat(ie(t))},[]);case"ObjectPattern":return e.properties.reduce(function(e,t){return e.concat(ie(t))},[]);case"ObjectProperty":case"Property":return ie(e.value);case"RestElement":case"RestProperty":return ie(e.argument)}}function se(e){function t(e){d(v(e)+"Possible assignment to 'const "+printNode(e)+"'")}function n(e){switch(e.type){case"Identifier":"const"===r[e.name]&&t(e);break;case"ArrayPattern":e.elements.forEach(function(e){"const"===r[e.name]&&t(e)});break;case"ObjectPattern":e.properties.forEach(function(e){"const"===r[e.key.name]&&t(e)})}}var r={};y.treeWalker(e,function(e,t,i){var s=o(e).isBlockStatement;if(s){r=Object.create(r);for(var a=0;a<s.length;a++)if("VariableDeclaration"===s[a].type)for(var u=0;u<s[a].declarations.length;u++)ie(s[a].declarations[u].id).forEach(function(e){r[e]=s[a].kind})}t(),"AssignmentExpression"===e.type?n(e.left):"UpdateExpression"===e.type&&n(e.argument),s&&(r=Object.getPrototypeOf(r))})}function oe(e){function t(e){return a(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 s(e,t){return!("FunctionDeclaration"!==e.type||!e.id)&&(o(e).isAsync||!e.$continuation)}var c={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,s){var a;if(n(),e.type in c&&!e.$hoisted){var s,l=c[e.type](e),p=[];for(a=0;a<l.length;a++)if(!o(l[a]).isScope){if((s=u(l[a]))&&function(e){p.length&&(e.argument={type:"SequenceExpression",expressions:p.map(function(e){var t=r(e);return i(e,e.left),t}).concat(e.argument)},p=[])}(s[0].self),!u(l.slice(a+1)))break;(s=t(l[a]))&&p.push(s[0].self)}}else if("VariableDeclaration"===e.type)for(a=e.declarations.length-1;a>0;a--)if(e.declarations[a]&&e.declarations[a].init&&u(e.declarations[a].init)){var h={type:"VariableDeclaration",kind:e.kind,declarations:e.declarations.splice(a)},f=s[0];if(!("index"in f))throw new Error("VariableDeclaration not in a block");f.parent[f.field].splice(f.index+1,0,h)}}),se(e);var l=!1;return y.treeWalker(e,function(e,t,r){var i=l;if(l=l||pe(e),o(e).isBlockStatement){if(u(e)){var a,c,p,f,y;if(!r[0].parent||o(r[0].parent).isScope){var m={},g={};(c=ne(e,n(["const"]),!1)).forEach(function(e){e[0].self.declarations.forEach(function(e){ie(e.id).forEach(function(t){m[t]||g[t]?(delete m[t],g[t]=e):m[t]=e})})}),c.forEach(function(e){for(var t=0;t<e.length&&!o(e[t].parent).isBlockStatement;t++);var n=e[t];n.append({type:"ExpressionStatement",expression:{type:"SequenceExpression",expressions:e[0].self.declarations.map(function(e){var t={type:"AssignmentExpression",operator:"=",left:e.id,right:e.init};return e.init=null,t})}});var r=ie(e[0].self.declarations),i=r.filter(function(e){return e in g});i.length&&e[0].append({type:"VariableDeclaration",kind:"let",declarations:i.map(function(e){return{type:"VariableDeclarator",id:h(e)}})}),e[0].self.kind="var",(i=r.filter(function(e){return e in m})).length?e[0].self.declarations=i.map(function(e){return{type:"VariableDeclarator",id:h(e)}}):n.remove()}),p=ne(e,n(["var"]),!1),f=[]}else f=ne(e,n(["const"]),!0);f=f.concat(ne(e,n(["let"]),!0)),a=ne(e,function(e){return o(e).isDirective},!0),y=ne(e,s,l),p=p?re(p,"var"):{duplicates:{},decls:[]},f=f?re(f,"let"):{duplicates:{},decls:[]},Object.keys(p.duplicates).forEach(function(e){d(v(p.duplicates[e])+"Duplicate declaration '"+printNode(p.duplicates[e])+"'")}),Object.keys(f.duplicates).forEach(function(e){d(v(f.duplicates[e])+"Duplicate declaration '"+printNode(f.duplicates[e])+"'")}),y=y.map(function(e){var t,n=e[0];return o(n.self).isAsync?(t=n.self.id.name,o(n.parent).isBlockStatement?(n.self.type="FunctionDeclaration",n.remove(),n.self):n.replace(h(t))):(t=n.self.id.name,"FunctionDeclaration"===n.self.type?n.remove():n.replace(h(t)))}),((a=a.map(function(e){return e[0].remove()})).length||p.decls.length||f.decls.length||y.length)&&(e.body=a.concat(p.decls).concat(f.decls).concat(y).concat(e.body))}l=i}if(t(),"ForOfStatement"===e.type||"ForInStatement"===e.type||o(e).isLoop){for(var b=0,x=0;x<r.length;x++)if("ForOfStatement"===r[x].self.type||"ForInStatement"===r[x].self.type||o(r[x].self).isLoop)b+=1;else if(o(r[x].self).isFunction)break;e.$depth=b,"LabeledStatement"===r[0].parent.type?e.$label=r[0].parent.label:e.$label=null}return!0}),e}function ae(e,t){function n(){return e.$superID=e.$superID||h("$super$"+ye++)}return function(e){(e=x(e))&&o(e).isAsync&&(!t||"get"===e.kind||a(e,function(e){return o(e).isFunction&&a(e,function(e){return"Super"===e.type})&&a(e,function(e){return e.async&&("ReturnStatement"===e.type||"ThrowStatement"===e.type)})},!0))&&y.treeWalker(e.body,function(e,t,r){var i;o(e).isClass||(t(),"Super"===e.type&&("MemberExpression"===r[0].parent.type?"CallExpression"===r[1].parent.type&&"callee"===r[1].field?(i=y.part("this.$super($field).call(this,$args)",{super:n(),field:r[0].parent.computed?r[0].parent.property:b(r[0].parent.property.name),args:r[1].parent.arguments}).expr,r[2].replace(i)):(i=y.part("this.$super($field)",{super:n(),field:r[0].parent.computed?r[0].parent.property:b(r[0].parent.property.name)}).expr,r[1].replace(i)):d(v(e)+"'super' in async methods must be deferenced. 'async constructor()'/'await super()' not valid.")))})}}function ue(e,t){return y.treeWalker(e,function(e,r,i){if(r(),("ClassDeclaration"===e.type||"ClassExpression"===e.type)&&(e.body.body.forEach(ae(e,t)),e.$superID)){var s=y.part("(function($field) { return super[$field] })",{field:h("$field")}).expr;n.babelTree?(s.type="ClassMethod",s.key=e.$superID,s.kind="method",e.body.body.push(s)):e.body.body.push({type:"MethodDefinition",key:e.$superID,kind:"method",value:s})}})}function ce(e){return y.treeWalker(e,function(e,t,n){return u(e)&&"ArrowFunctionExpression"===e.type&&"BlockStatement"!==e.body.type&&(e.body={type:"BlockStatement",body:[{type:"ReturnStatement",argument:e.body}]}),t(),!0}),e}function le(e){return y.treeWalker(e,function(e,t,r){t(),"Identifier"===e.type&&"__nodent"===e.name&&i(e,b(n))}),e}function pe(e){if("Program"===e.type&&"module"===e.sourceType)return!0;var t;if("Program"===e.type)t=e.body;else{if(!o(e).isFunction)return!1;t=e.body.body}if(t)for(var n=0;n<t.length;n++)if(o(t[n]).isDirective&&t[n].expression.value.match(/^\s*use\s+strict\s*$/))return!0;return!1}function he(e){for(var t=0;t<e.length;t++){var n=e[t];if("ClassDeclaration"===n.type||"VariableDeclaration"===n.type&&("let"===n.kind||"const"===n.kind)||"FunctionDeclaration"===n.type&&n.id&&n.id.name&&!n.$continuation)return!0}return!1}function fe(e){y.treeWalker(e,function(e,t,n){if(t(),"ArrowFunctionExpression"===e.type&&"BlockStatement"===e.body.type&&1===e.body.body.length&&"ReturnStatement"===e.body.body[0].type)e.body=e.body.body[0].argument;else{var r,i;if(r=o(e).isBlockStatement)for(var s=0;s<r.length;s++)(i=o(r[s]).isBlockStatement)&&!he(i)&&(he(r[s])||[].splice.apply(r,[s,1].concat(i)))}}),y.treeWalker(e,function(e,t,n){if(t(),o(e).isJump){var r=n[0];if("index"in r)for(var i=r.index+1,s=r.parent[r.field];i<s.length;)"VariableDeclaration"===s[i].type||o(s[i]).isFunction&&s[i].id?i+=1:s.splice(i,1)}}),y.treeWalker(e,function(e,t,n){t(),e.$thisCall&&de[e.name]&&(de[e.name].ref?delete de[e.name]:de[e.name].ref=e.$thisCall)});var t=Object.keys(de).map(function(e){return de[e].ref});if(t.length){y.treeWalker(e,function(e,n,i){if(n(),t.indexOf(e)>=0&&"ReturnStatement"===i[1].self.type){var s=e.$thisCallName,a=r(de[s].def.body.body);de[s].$inlined=!0,o(i[1].self).isJump||a.push({type:"ReturnStatement"}),i[1].replace(a)}});var n=Object.keys(de).map(function(e){return de[e].$inlined&&de[e].def});y.treeWalker(e,function(e,t,r){t(),n.indexOf(e)>=0&&r[0].remove()})}if(!("Program"===e.type&&"module"===e.sourceType||a(e,function(e){return o(e).isES6},!0))){var i=pe(e);!function(e){y.treeWalker(e,function(e,t,n){if("Program"===e.type||"FunctionDeclaration"===e.type||"FunctionExpression"===e.type){var r=i;if(i=i||pe(e)){t();var s="Program"===e.type?e:e.body,o=ne(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();i=r}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 de={},ye=1,me={};Object.keys(n).filter(function(e){return"$"===e[0]}).forEach(function(e){me[e.slice(1)]=h(n[e])});var ge=y.part("var $0 = arguments",[me.arguments]).body[0];return n.engine?(e.ast=ue(e.ast,!0),e.ast=te(e.ast,n.engine),e.ast=le(e.ast),fe(e.ast)):n.generators?(e.ast=ue(e.ast),e.ast=te(e.ast),e.ast=le(e.ast),fe(e.ast)):(e.ast=ue(e.ast),_(e.ast)),n.babelTree&&y.treeWalker(e.ast,function(e,t,n){t(),"Literal"===e.type&&i(e,b(e.value))}),e}var y=e("./parser"),m=e("./output");n.printNode=function e(t){if(!t)return"";if(Array.isArray(t))return t.map(e).join("|\n");try{return m(t)}catch(e){return e.message+": "+(t&&t.type)}};var 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:printNode,babelLiteralNode:p,asynchronize:function(e,t,n,r){try{return d(e,t,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}}}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./output":13,"./parser":14}],13:[function(e,t,n){"use strict";function r(e){var t=y[e.type]||y[e.type+e.operator]||y[e.type+e.operator+(e.prefix?"prefix":"")];return void 0!==t?t:20}function i(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))}function s(e,t,n,i){2===i||r(n)<r(t)||r(n)==r(t)&&(i||t.right===n)?(e.write(null,"("),this.out(n,e,n.type),e.write(null,")")):this.out(n,e,n.type)}function o(e,t){var n;if(t.write(null,"("),null!=e&&e.length>0){this.out(e[0],t,e[0].type);for(var r=1,i=e.length;r<i;r++)n=e[r],t.write(n,", "),this.out(n,t,n.type)}t.write(null,") ")}var a,u,c,l,p,h,f=e("source-map").SourceMapGenerator;if("".repeat)h=function(e,t){return t&&e?e.repeat(t):""};else{var d={};h=function(e,t){if(!t||!e)return"";var n=""+e+t;if(!d[n]){for(var r=[];t--;)r.push(e);d[n]=r.join("")}return d[n]}}var y={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},m={type:"comma-separated-list"},g={out:i,expr:s,formatParameters:o,Program:function(e,t){for(var n,r,i=h(t.indent,t.indentLevel),s=t.lineEnd,o=0,a=(n=e.body).length;o<a;o++)r=n[o],t.write(null,i),this.out(r,t,r.type),t.write(null,s)},BlockStatement:p=function(e,t){var n,r,i=h(t.indent,t.indentLevel++),s=t.lineEnd,o=i+t.indent;if(t.write(e,"{"),null!=(n=e.body)&&n.length>0){t.write(null,s);for(var a=0,u=n.length;a<u;a++)r=n[a],t.write(null,o),this.out(r,t,r.type),t.write(null,s);t.write(null,i)}t.write(e.loc?{loc:{start:{line:e.loc.end.line,column:0}}}:null,"}"),t.indentLevel--},ClassBody:p,EmptyStatement:function(e,t){t.write(e,";")},ParenthesizedExpression:function(e,t){this.expr(t,e,e.expression,2)},ExpressionStatement:function(e,t){"FunctionExpression"===e.expression.type||"ObjectExpression"===e.expression.type?(t.write(null,"("),this.expr(t,e,e.expression),t.write(null,")")):this.expr(t,e,e.expression),t.write(null,";")},IfStatement:function(e,t){t.write(e,"if ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.consequent,t,e.consequent.type),null!=e.alternate&&("BlockStatement"!==e.consequent.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel)),t.write(null," else "),"BlockStatement"!==e.alternate.type&&"IfStatement"!==e.alternate.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.alternate,t,e.alternate.type))},LabeledStatement:function(e,t){this.out(e.label,t,e.label.type),t.write(null,":"),this.out(e.body,t,e.body.type)},BreakStatement:function(e,t){t.write(e,"break"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},ContinueStatement:function(e,t){t.write(e,"continue"),e.label&&(t.write(null," "),this.out(e.label,t,e.label.type)),t.write(null,";")},WithStatement:function(e,t){t.write(e,"with ("),this.out(e.object,t,e.object.type),t.write(null,") "),this.out(e.body,t,e.body.type)},SwitchStatement:function(e,t){var n,r,i,s=h(t.indent,t.indentLevel++),o=t.lineEnd;t.indentLevel++;var a=s+t.indent,u=a+t.indent;t.write(e,"switch ("),this.out(e.discriminant,t,e.discriminant.type),t.write(null,") {",o);for(var c=e.cases,l=0;l<c.length;l++){(n=c[l]).test?(t.write(n,a,"case "),this.out(n.test,t,n.test.type),t.write(null,":",o)):t.write(n,a,"default:",o),r=n.consequent;for(var p=0;p<r.length;p++)i=r[p],t.write(null,u),this.out(i,t,i.type),t.write(null,o)}t.indentLevel-=2,t.write(null,s,"}")},ReturnStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"return"),e.argument&&(t.write(null," "),this.out(e.argument,t,e.argument.type)),t.write(null,";")},ThrowStatement:function(e,t){e.async&&t.write(e," async "),t.write(e,"throw "),this.out(e.argument,t,e.argument.type),t.write(null,";")},TryStatement:function(e,t){t.write(e,"try "),this.out(e.block,t,e.block.type),e.handler&&this.out(e.handler,t,e.handler.type),e.finalizer&&(t.write(e.finalizer," finally "),this.out(e.finalizer,t,e.finalizer.type))},CatchClause:function(e,t){t.write(e," catch ("),this.out(e.param,t,e.param.type),t.write(null,") "),this.out(e.body,t,e.body.type)},WhileStatement:function(e,t){t.write(e,"while ("),this.out(e.test,t,e.test.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},DoWhileStatement:function(e,t){t.write(e,"do "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type),t.write(null," while ("),this.out(e.test,t,e.test.type),t.write(null,");")},ForStatement:function(e,t){if(t.write(e,"for ("),null!=e.init){var n=e.init,r=n.type;t.inForInit++,this.out(n,t,r),t.inForInit--,"VariableDeclaration"!==r&&t.write(null,"; ")}else t.write(null,"; ");e.test&&this.out(e.test,t,e.test.type),t.write(null,"; "),e.update&&this.out(e.update,t,e.update.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForInStatement:a=function(e,t){t.write(e,"for (");var n=e.left,r=n.type;t.inForInit++,this.out(n,t,r),"V"===r[0]&&19===r.length&&t.back(),t.inForInit--,t.write(null,"I"===e.type[3]?" in ":" of "),this.out(e.right,t,e.right.type),t.write(null,") "),"BlockStatement"!==e.body.type&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1)),this.out(e.body,t,e.body.type)},ForOfStatement:a,DebuggerStatement:function(e,t){t.write(e,"debugger;")},Function:function(e,t){e.async&&t.write(e,"async "),t.write(e,e.generator?"function* ":"function "),e.id&&t.write(e.id,e.id.name),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},FunctionDeclaration:function(e,t){this.Function(e,t),t.write(null,t.lineEnd,h(t.indent,t.indentLevel))},FunctionExpression:function(e,t){this.Function(e,t)},VariableDeclaration:function(e,t){var n=e.declarations;t.write(e,e.kind," ");var r=n.length;if(r>0){this.out(n[0],t,"VariableDeclarator");for(var i=1;i<r;i++)t.write(null,", "),this.out(n[i],t,"VariableDeclarator")}t.write(null,";")},VariableDeclarator:function(e,t){this.out(e.id,t,e.id.type),null!=e.init&&(t.write(null," = "),this.expr(t,m,e.init))},ClassDeclaration:function(e,t){t.write(e,"class "),e.id&&t.write(e.id,e.id.name+" "),e.superClass&&(t.write(null,"extends "),this.out(e.superClass,t,e.superClass.type),t.write(null," ")),this.out(e.body,t,"BlockStatement")},ImportSpecifier:function(e,t){e.local.name==e.imported.name?this.out(e.local,t,e.local.type):(this.out(e.imported,t,e.imported.type),t.write(null," as "),this.out(e.local,t,e.local.type))},ImportDefaultSpecifier:function(e,t){this.out(e.local,t,e.local.type)},ImportNamespaceSpecifier:function(e,t){t.write(null,"* as "),this.out(e.local,t,e.local.type)},ImportDeclaration:function(e,t){t.write(e,"import ");var n=e.specifiers,r=n.length,i=!0;if(r>0){for(var s=0;s<r;s++)"ImportSpecifier"===n[s].type&&i&&(i=!1,t.write(null,"{")),this.out(n[s],t,n[s].type),s<r-1&&t.write(null,", ");"ImportSpecifier"===n[r-1].type&&t.write(null,"}"),t.write(null," from ")}t.write(e.source,e.source.raw),t.write(null,";")},ExportDefaultDeclaration:function(e,t){t.write(e,"export default "),this.out(e.declaration,t,e.declaration.type)},ExportSpecifier:function(e,t){e.local.name==e.exported.name?this.out(e.local,t,e.local.type):(this.out(e.local,t,e.local.type),t.write(null," as "),this.out(e.exported,t,e.exported.type))},ExportNamedDeclaration:function(e,t){if(t.write(e,"export "),e.declaration)this.out(e.declaration,t,e.declaration.type);else{var n=e.specifiers;if(t.write(e,"{"),n&&n.length>0)for(var r=0;r<n.length;r++)this.out(n[r],t,n[r].type),r<n.length-1&&t.write(null,", ");t.write(null,"}"),e.source&&t.write(e.source," from ",e.source.raw),t.write(null,";")}},ExportAllDeclaration:function(e,t){t.write(e,"export * from "),t.write(e.source,e.source.raw,";")},MethodDefinition:function(e,t){switch(e.value.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.value.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.value.params,t),this.out(e.value.body,t,e.value.body.type)},ClassMethod:function(e,t){switch(e.async&&t.write(e,"async "),e.static&&t.write(e,"static "),e.kind){case"get":case"set":t.write(e,e.kind," ")}e.generator&&t.write(null,"*"),e.computed?(t.write(null,"["),this.out(e.key,t,e.key.type),t.write(null,"]")):this.out(e.key,t,e.key.type),this.formatParameters(e.params,t),this.out(e.body,t,e.body.type)},ClassExpression:function(e,t){this.out(e,t,"ClassDeclaration")},ArrowFunctionExpression:function(e,t){e.async&&t.write(e,"async "),1===e.params.length&&"Identifier"===e.params[0].type?(this.out(e.params[0],t,e.params[0].type),t.write(e," => ")):(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:u=function(e,t){t.write(e,"..."),this.out(e.argument,t,e.argument.type)},SpreadElement:u,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;s<o;s++)n=i[s],t.write(r[s].value,r[s].value.raw),t.write(null,"${"),this.out(n,t,n.type),t.write(null,"}");t.write(r[r.length-1].value,r[r.length-1].value.raw),t.write(e,"`")},TaggedTemplateExpression:function(e,t){this.out(e.tag,t,e.tag.type),this.out(e.quasi,t,e.quasi.type)},ArrayExpression:l=function(e,t){if(t.write(e,"["),e.elements.length>0)for(var n=e.elements,r=n.length,i=0;;){var s=n[i];if(s&&this.expr(t,m,s),((i+=1)<r||null===s)&&t.write(null,","),i>=r)break;t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(t.indent,t.indentLevel+1))}t.write(null,"]")},ArrayPattern:l,ObjectExpression:function(e,t){var n,r=h(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"),++u<a;)t.write(e,",",i),t.lineLength()>t.wrapColumn&&t.write(null,t.lineEnd,h(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,m,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"),++i<r;)t.write(null,", ");t.write(null,"}")},SequenceExpression:function(e,t){var n,r=e.expressions;if(r.length>0)for(var i=r.length,s=0;s<i;s++)n=r[s],s&&t.write(null,", "),this.expr(t,m,n)},UnaryExpression:function(e,t){e.prefix?(t.write(e,e.operator),e.operator.length>1&&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:c=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:c,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.out(e,t,"CallExpression")},CallExpression:function(e,t){this.expr(t,e,e.callee,"ObjectExpression"===e.callee.type?2:0),t.write(e,"(");var n=e.arguments;if(n.length>0)for(var r=n.length,i=0;i<r;i++)0!=i&&t.write(null,", "),this.expr(t,m,n[i]);t.write(null,")")},MemberExpression:function(e,t){!("ObjectExpression"===e.object.type||e.object.type.match(/Literal$/)&&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){function r(e){l=arguments[arguments.length-1];for(var n=1;n<arguments.length;n++){if(c&&e&&e.loc&&e.loc.start){c.addMapping({source:t.map.file,original:{line:e.loc.start.line,column:e.loc.start.column},generated:{line:t.map.startLine+u.length+1,column:a.length}})}if(arguments[n]===y.lineEnd){if(d.length&&(d.forEach(function(e){"Line"===e.type?a+=" // "+e.value:((" /*"+e.value+"*/").split("\n").forEach(function(e){a+=e,u.push(a),a=""}),a=u.pop())}),d=[]),u.push(a),a="",p.length){var r=u.pop();p.forEach(function(e){var t=h(y.indent,e.indent);"Line"===e.type?u.push(t+"//"+e.value):(t+"/*"+e.value+"*/").split("\n").forEach(function(e){u.push(e)})}),u.push(r),p=[]}}else a+=arguments[n],e&&e.$comments&&(e.$comments.forEach(function(t){var n=e.loc.start.column<t.loc.start.column;t.indent=y.indentLevel,n?d.push(t):p.push(t)}),e.$comments=null)}}function i(){return a.length}function s(e,t){return n?n.substring(e,t):"/* Omitted Non-standard node */"}function o(){a=a.substring(0,a.length-l.length)}var a="",u=[],c=(t=t||{}).map&&new f(t.map);c&&t.map.sourceContent&&c.setSourceContent(t.map.file,t.map.sourceContent);var l="",p=[],d=[],y={inForInit:0,lineLength:i,sourceAt:s,write:r,back:o,indent:" ",lineEnd:"\n",indentLevel:0,wrapColumn:80};g.out(e,y),d=e.$comments||[],y.write(e,y.lineEnd);var m=u.join(y.lineEnd);return t&&t.map?{code:m,map:c}:m}},{"source-map":27}],14:[function(e,t,n){"use strict";function r(e,t){["start","end","loc","range"].forEach(function(n){n in e&&!(n in t)&&(t[n]=e[n])})}function i(e,t,n){function r(e){e.replace=l.replace,e.append=l.append,e.index?(Object.defineProperties(e,{index:{enumerable:!0,get:l.index}}),e.remove=l.removeElement):e.remove=l.removeNode,n.unshift(e),i(e.self,t,n),n.shift()}function s(){e.type in c&&c[e.type](e,n,function t(i,s,o){if(i===e)return c[o||e.type](e,n,t);for(var a=Object.keys(e),u=0;u<a.length;u++){var l=e[a[u]];Array.isArray(l)?l.indexOf(i)>=0&&r({self:i,parent:e,field:a[u],index:!0}):l instanceof Object&&i===l&&r({self:i,parent:e,field:a[u]})}})}return n||((n=[{self:e}]).replace=function(e,t){n[e].replace(t)}),t(e,s,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(a.version)<4)&&(p||(parseInt(a.version)<4&&console.warn("Nodent: Warning - noNodentExtensions option requires acorn >=v4.x. Extensions installed."),e("acorn-es7-plugin")(a),p=!0),s.plugins=s.plugins||{},s.plugins.asyncawait={asyncExits:!0,awaitAnywhere:!0}),n)for(var o in n)"noNodentExtensions"!==o&&(s[o]=n[o]);var u=a.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}function o(e,t){function n(e,r){if(Array.isArray(r)&&!Array.isArray(e))throw new Error("Can't substitute an array for a node");return r=r||{},Object.keys(e).forEach(function(i){function s(e){return"function"==typeof e&&(e=e()),r=r.concat(e)}function o(e){return"function"==typeof e&&(e=e()),r[i]=e,r}if(!(e[i]instanceof Object))return r[i]=e[i];if(Array.isArray(e[i]))return r[i]=n(e[i],[]);var a;if(a=Array.isArray(r)?s:o,"Identifier"===e[i].type&&"$"===e[i].name[0])return a(t[e[i].name.slice(1)]);if("LabeledStatement"===e[i].type&&"$"===e[i].label.name){var u=e[i].body.expression;return a(t[u.name||u.value])}return a("LabeledStatement"===e[i].type&&"$$"===e[i].label.name.slice(0,2)?t[e[i].label.name.slice(2)](n(e[i]).body):n(e[i]))}),r}h[e]||(h[e]=s(e,{noNodentExtensions:!0,locations:!1,ranges:!1,onComment:null}));var r=n(h[e]);return{body:r.body,expr:"ExpressionStatement"===r.body[0].type?r.body[0].expression:null}}var a=e("acorn"),u={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<e.cases.length;++r)n(e.cases[r],t)},SwitchCase:function(e,t,n){e.test&&n(e.test,t,"Expression");for(var r=0;r<e.consequent.length;++r)n(e.consequent[r],t,"Statement")},TryStatement:function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t,"Statement"),e.finalizer&&n(e.finalizer,t,"Statement")},CatchClause:function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},Class:function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression"),n(e.body,t)},ClassBody:function(e,t,n){for(var r=0;r<e.body.length;r++)n(e.body[r],t)},ClassProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ClassMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")},ObjectProperty:function(e,t,n){e.key&&n(e.key,t,"Expression"),e.value&&n(e.value,t,"Expression")},ObjectMethod:function(e,t,n){e.key&&n(e.key,t,"Expression"),n(e,t,"Function")}},c=e("acorn/dist/walk").make(u),l={replace:function(e){return Array.isArray(e)&&1===e.length&&(e=e[0]),"index"in this?(r(this.parent[this.field][this.index],e),Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index,1].concat(e)):this.parent[this.field][this.index]=e):(r(this.parent[this.field],e),Array.isArray(e)?this.parent[this.field]={type:"BlockStatement",body:e}:this.parent[this.field]=e),this.self},append:function(e){if(Array.isArray(e)&&1===e.length&&(e=e[0]),!("index"in this))throw new Error("Cannot append Element node to non-array");return Array.isArray(e)?[].splice.apply(this.parent[this.field],[this.index+1,0].concat(e)):this.parent[this.field].splice(this.index+1,0,e),this.self},index:function(){return this.parent[this.field].indexOf(this.self)},removeElement:function(){return this.parent[this.field].splice(this.index,1)[0]},removeNode:function(){var e=this.parent[this.field];return delete this.parent[this.field],e}},p=!1,h={};t.exports={part:o,parse:s,treeWalker:i}},{acorn:15,"acorn-es7-plugin":1,"acorn/dist/walk":16}],15:[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;r<t.length;r+=2){if((n+=t[r])>e)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&&k.test(String.fromCharCode(e)):!1!==n&&t(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&&A.test(String.fromCharCode(e)):!1!==n&&(t(e,_)||t(e,C)))))}function i(e,t){return new L(e,{beforeExpr:!0,binop:t})}function s(e,t){return void 0===t&&(t={}),t.keyword=e,N[e]=new L(e,t)}function o(e){return 10===e||13===e||8232===e||8233===e}function a(e,t){return j.call(e,t)}function u(e,t){for(var n=1,r=0;;){$.lastIndex=r;var i=$.exec(e);if(!(i&&i.index<t))return new V(n,t-r);++n,r=i.index+i[0].length}}function c(e){var t={};for(var n in U)t[n]=e&&a(e,n)?e[n]:U[n];if(t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),M(t.onToken)){var r=t.onToken;t.onToken=function(e){return r.push(e)}}return M(t.onComment)&&(t.onComment=l(t,t.onComment)),t}function l(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 q(this,o,a)),e.ranges&&(u.range=[i,s]),t.push(u)}}function p(e){return new RegExp("^("+e.replace(/ /g,"|")+")$")}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)))}function y(e,t){return new W(t,e).parse()}function m(e,t,n){var r=new W(n,e,t);return r.nextToken(),r.parseExpression()}function g(e,t){return new W(t,e)}function v(t,n,r){e.parse_dammit=t,e.LooseParser=n,e.pluginsLoose=r}var b={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"},x="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",w={5:x,6:x+" const class extends export import super"},E="ĀŖĀµĀŗƀ-ƖƘ-ƶĆø-ĖĖ†-Ė‘Ė -Ė¤Ė¬Ė®Ķ°-Ķ“Ķ¶Ķ·Ķŗ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-Ī”Ī£-ĻµĻ·-ŅŅŠ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײŲ -ŁŠŁ®ŁÆŁ±-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-Ū¼Ūæܐܒ-ÜÆŻ-Ž„Ž±ßŠ-ßŖß“ßµßŗą €-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ą¢“ą¢¶-ą¢½ą¤„-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ą¦€ą¦…-ą¦Œą¦ą¦ą¦“-ą¦Øą¦Ŗ-ą¦°ą¦²ą¦¶-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-ą§”ą§°ą§±ąØ…-ąØŠąØąØąØ“-ąØØąØŖ-ąØ°ąØ²ąØ³ąØµąØ¶ąØøąØ¹ą©™-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-ąŖ°ąŖ²ąŖ³ąŖµ-ąŖ¹ąŖ½ą«ą« ą«”ą«¹ą¬…-ą¬Œą¬ą¬ą¬“-ą¬Øą¬Ŗ-ą¬°ą¬²ą¬³ą¬µ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ą®ą®’-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-ą®Ŗą®®-ą®¹ąÆą°…-ą°Œą°Ž-ą°ą°’-ą°Øą°Ŗ-ą°¹ą°½ą±˜-ą±šą± ą±”ą²€ą²…-ą²Œą²Ž-ą²ą²’-ą²Øą²Ŗ-ą²³ą²µ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ”-ąµ–ąµŸ-ąµ”ąµŗ-ąµæą¶…-ą¶–ą¶š-ą¶±ą¶³-ą¶»ą¶½ą·€-ą·†ąø-ąø°ąø²ąø³ą¹€-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ąŗŸąŗ”-ąŗ£ąŗ„ąŗ§ąŗŖąŗ«ąŗ­-ąŗ°ąŗ²ąŗ³ąŗ½ą»€-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ą½‡ą½‰-ą½¬ą¾ˆ-ą¾Œį€€-į€Ŗį€æį-į•įš-įį”į„į¦į®-į°įµ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-įƒŗįƒ¼-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -įŠˆįŠŠ-įŠįŠ-įŠ°įŠ²-įŠµįŠø-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -įµįø-į½į-į™¬į™Æ-į™æįš-įššįš -į›Ŗį›®-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -į”·į¢€-į¢Øį¢Ŗį¢°-į£µį¤€-į¤žį„-į„­į„°-į„“į¦€-į¦«į¦°-į§‰į؀-įؖįØ -į©”įŖ§į¬…-į¬³į­…-į­‹į®ƒ-į® į®®į®Æį®ŗ-įÆ„į°€-į°£į±-į±į±š-į±½į²€-į²ˆį³©-į³¬į³®-į³±į³µį³¶į“€-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-į½½į¾€-į¾“į¾¶-į¾¼į¾¾įæ‚-įæ„įæ†-įæŒįæ-įæ“įæ–-įæ›įæ -įæ¬įæ²-įæ“įæ¶-įæ¼ā±āæā‚-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„˜-ā„ā„¤ā„¦ā„Øā„Ŗ-ā„¹ā„¼-ā„æā……-ā…‰ā…Žā… -ā†ˆā°€-ā°®ā°°-ā±žā± -ā³¤ā³«-ā³®ā³²ā³³ā“€-ā“„ā“§ā“­ā“°-āµ§āµÆā¶€-ā¶–ā¶ -ā¶¦ā¶Ø-ā¶®ā¶°-ā¶¶ā¶ø-ā¶¾ā·€-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žć€…-怇怔-怩怱-怵ć€ø-ć€¼ć-悖悛-ć‚Ÿć‚”-ćƒŗćƒ¼-ćƒæ愅-愭愱-憎憠-ć†ŗ懰-ć‡æ搀-䶵äø€-éæ•ź€€-ź’Œź“-ź“½ź”€-ź˜Œź˜-ź˜Ÿź˜Ŗź˜«ź™€-ź™®ź™æ-źšźš -ź›Æźœ—-źœŸźœ¢-źžˆźž‹-źž®źž°-źž·źŸ·-ź ź ƒ-ź …ź ‡-ź Šź Œ-ź ¢ź”€-ź”³ź¢‚-ź¢³ź£²-ź£·ź£»ź£½ź¤Š-ź¤„ź¤°-ź„†ź„ -ź„¼ź¦„-ź¦²ź§ź§ -ź§¤ź§¦-ź§Æź§ŗ-ź§¾źØ€-źØØź©€-ź©‚ź©„-ź©‹ź© -ź©¶ź©ŗź©¾-źŖÆźŖ±źŖµźŖ¶źŖ¹-źŖ½ź«€ź«‚ź«›-ź«ź« -ź«Ŗź«²-ź«“ź¬-ź¬†ź¬‰-ź¬Žź¬‘-ź¬–ź¬ -ź¬¦ź¬Ø-ź¬®ź¬°-ź­šź­œ-ź­„ź­°-źÆ¢ź°€-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-ļ«™ļ¬€-ļ¬†ļ¬“-ļ¬—ļ¬ļ¬Ÿ-ļ¬Øļ¬Ŗ-ļ¬¶ļ¬ø-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ļ®±ļƓ-ļ“½ļµ-ļ¶ļ¶’-ļ·‡ļ·°-ļ·»ļ¹°-ļ¹“ļ¹¶-ļ»¼ļ¼”-ļ¼ŗļ½-ļ½šļ½¦-ļ¾¾ļæ‚-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ļæœ",S="ā€Œā€Ā·Ģ€-ĶÆĪ‡Ņƒ-Ņ‡Ö‘-Ö½ÖæׇׁׂׅׄŲ-ŲšŁ‹-Ł©Ł°Ū–-ŪœŪŸ-Ū¤Ū§ŪØŪŖ-Ū­Ū°-Ū¹Ü‘Ü°-ŻŠŽ¦-Ž°ß€-߉߫-ß³ą –-ą ™ą ›-ą £ą „-ą §ą ©-ą ­ą”™-ą”›ą£”-ą£”ą££-ą¤ƒą¤ŗ-ą¤¼ą¤¾-ą„ą„‘-ą„—ą„¢ą„£ą„¦-ą„Æą¦-ą¦ƒą¦¼ą¦¾-ą§„ą§‡ą§ˆą§‹-ą§ą§—ą§¢ą§£ą§¦-ą§ÆąØ-ąØƒąØ¼ąØ¾-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©¦-ą©±ą©µąŖ-ąŖƒąŖ¼ąŖ¾-ą«…ą«‡-ą«‰ą«‹-ą«ą«¢ą«£ą«¦-ą«Æą¬-ą¬ƒą¬¼ą¬¾-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­¢ą­£ą­¦-ą­Æą®‚ą®¾-ąÆ‚ąÆ†-ąÆˆąÆŠ-ąÆąÆ—ąÆ¦-ąÆÆą°€-ą°ƒą°¾-ą±„ą±†-ą±ˆą±Š-ą±ą±•ą±–ą±¢ą±£ą±¦-ą±Æą²-ą²ƒą²¼ą²¾-ą³„ą³†-ą³ˆą³Š-ą³ą³•ą³–ą³¢ą³£ą³¦-ą³Æą“-ą“ƒą“¾-ąµ„ąµ†-ąµˆąµŠ-ąµąµ—ąµ¢ąµ£ąµ¦-ąµÆą¶‚ą¶ƒą·Šą·-ą·”ą·–ą·˜-ą·Ÿą·¦-ą·Æą·²ą·³ąø±ąø“-ąøŗą¹‡-ą¹Žą¹-ą¹™ąŗ±ąŗ“-ąŗ¹ąŗ»ąŗ¼ą»ˆ-ą»ą»-ą»™ą¼˜ą¼™ą¼ -ą¼©ą¼µą¼·ą¼¹ą¼¾ą¼æą½±-ą¾„ą¾†ą¾‡ą¾-ą¾—ą¾™-ą¾¼ąæ†į€«-į€¾į€-į‰į–-į™įž-į į¢-į¤į§-į­į±-į“į‚‚-į‚į‚-į‚į-įŸį©-į±įœ’-įœ”įœ²-įœ“į’į“į²į³įž“-įŸ“įŸįŸ -įŸ©į ‹-į į -į ™į¢©į¤ -į¤«į¤°-į¤»į„†-į„į§-į§šįؗ-į؛į©•-į©žį© -į©¼į©æ-įŖ‰įŖ-įŖ™įŖ°-įŖ½į¬€-į¬„į¬“-į­„į­-į­™į­«-į­³į®€-į®‚į®”-į®­į®°-į®¹įƦ-įƳį°¤-į°·į±€-į±‰į±-į±™į³-į³’į³”-į³Øį³­į³²-į³“į³øį³¹į·€-į·µį·»-į·æā€æā€ā”āƒ-āƒœāƒ”āƒ„-āƒ°ā³Æ-ā³±āµæā· -ā·æć€Ŗ-ć€Æ悙悚ź˜ -ź˜©ź™Æź™“-ź™½źšžźšŸź›°ź›±ź ‚ź †ź ‹ź £-ź §ź¢€ź¢ź¢“-ź£…ź£-ź£™ź£ -ź£±ź¤€-ź¤‰ź¤¦-ź¤­ź„‡-ź„“ź¦€-ź¦ƒź¦³-ź§€ź§-ź§™ź§„ź§°-ź§¹źØ©-źØ¶ź©ƒź©Œź©ź©-ź©™ź©»-ź©½źŖ°źŖ²-źŖ“źŖ·źŖøźŖ¾źŖæź«ź««-ź«Æź«µź«¶źÆ£-źÆŖźÆ¬źÆ­źÆ°-źÆ¹ļ¬žļø€-ļøļø -ļøÆļø³ļø“ļ¹-ļ¹ļ¼-ļ¼™ļ¼æ",k=new RegExp("["+E+"]"),A=new RegExp("["+E+S+"]");E=S=null;var _=[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],C=[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],L=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},P={beforeExpr:!0},T={startsExpr:!0},N={},F={num:new L("num",T),regexp:new L("regexp",T),string:new L("string",T),name:new L("name",T),eof:new L("eof"),bracketL:new L("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new L("]"),braceL:new L("{",{beforeExpr:!0,startsExpr:!0}),braceR:new L("}"),parenL:new L("(",{beforeExpr:!0,startsExpr:!0}),parenR:new L(")"),comma:new L(",",P),semi:new L(";",P),colon:new L(":",P),dot:new L("."),question:new L("?",P),arrow:new L("=>",P),template:new L("template"),ellipsis:new L("...",P),backQuote:new L("`",T),dollarBraceL:new L("${",{beforeExpr:!0,startsExpr:!0}),eq:new L("=",{beforeExpr:!0,isAssign:!0}),assign:new L("_=",{beforeExpr:!0,isAssign:!0}),incDec:new L("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new L("prefix",{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 L("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:i("%",10),star:i("*",10),slash:i("/",10),starstar:new L("**",{beforeExpr:!0}),_break:s("break"),_case:s("case",P),_catch:s("catch"),_continue:s("continue"),_debugger:s("debugger"),_default:s("default",P),_do:s("do",{isLoop:!0,beforeExpr:!0}),_else:s("else",P),_finally:s("finally"),_for:s("for",{isLoop:!0}),_function:s("function",T),_if:s("if"),_return:s("return",P),_switch:s("switch"),_throw:s("throw",P),_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",T),_super:s("super",T),_class:s("class"),_extends:s("extends",P),_export:s("export"),_import:s("import"),_null:s("null",T),_true:s("true",T),_false:s("false",T),_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/,$=new RegExp(O.source,"g"),B=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,R=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g,I=Object.prototype,j=I.hasOwnProperty,D=I.toString,M=Array.isArray||function(e){return"[object Array]"===D.call(e)},V=function(e,t){this.line=e,this.column=t};V.prototype.offset=function(e){return new V(this.line,this.column+e)};var q=function(e,t,n){this.start=t,this.end=n,null!==e.sourceFile&&(this.source=e.sourceFile)},U={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:{}},z={},W=function(e,t,n){this.options=e=c(e),this.sourceFile=e.sourceFile,this.keywords=p(w[e.ecmaVersion>=6?6:5]);var r="";if(!e.allowReserved){for(var i=e.ecmaVersion;!(r=b[i]);i--);"module"==e.sourceType&&(r+=" await")}this.reservedWords=p(r);var s=(r?r+" ":"")+b.strict;this.reservedWordsStrict=p(s),this.reservedWordsStrictBind=p(s+" "+b.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=F.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()};W.prototype.isKeyword=function(e){return this.keywords.test(e)},W.prototype.isReservedWord=function(e){return this.reservedWords.test(e)},W.prototype.extend=function(e,t){this[e]=t(this[e])},W.prototype.loadPlugins=function(e){var t=this;for(var n in e){var r=z[n];if(!r)throw new Error("Plugin '"+n+"' not found");r(t,e[n])}},W.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)};var G=W.prototype,J=/^(?:'((?:[^']|\.)*)'|"((?:[^"]|\.)*)"|;)/;G.strictDirective=function(e){for(var t=this;;){R.lastIndex=e,e+=R.exec(t.input)[0].length;var n=J.exec(t.input.slice(e));if(!n)return!1;if("use strict"==(n[1]||n[2]))return!0;e+=n[0].length}},G.eat=function(e){return this.type===e&&(this.next(),!0)},G.isContextual=function(e){return this.type===F.name&&this.value===e},G.eatContextual=function(e){return this.value===e&&this.eat(F.name)},G.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},G.canInsertSemicolon=function(){return this.type===F.eof||this.type===F.braceR||O.test(this.input.slice(this.lastTokEnd,this.start))},G.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},G.semicolon=function(){this.eat(F.semi)||this.insertSemicolon()||this.unexpected()},G.afterTrailingComma=function(e,t){if(this.type==e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},G.expect=function(e){this.eat(e)||this.unexpected()},G.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")};var Y=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=-1};G.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")}},G.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")},G.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos<this.awaitPos)&&this.raise(this.yieldPos,"Yield expression cannot be a default value"),this.awaitPos&&this.raise(this.awaitPos,"Await expression cannot be a default value")},G.isSimpleAssignTarget=function(e){return"ParenthesizedExpression"===e.type?this.isSimpleAssignTarget(e.expression):"Identifier"===e.type||"MemberExpression"===e.type};var H=W.prototype;H.parseTopLevel=function(e){var t=this,n={};for(e.body||(e.body=[]);this.type!==F.eof;){var r=t.parseStatement(!0,!0,n);e.body.push(r)}return this.next(),this.options.ecmaVersion>=6&&(e.sourceType=this.options.sourceType),this.finishNode(e,"Program")};var Z={kind:"loop"},Q={kind:"switch"};H.isLet=function(){if(this.type!==F.name||this.options.ecmaVersion<6||"let"!=this.value)return!1;R.lastIndex=this.pos;var e=R.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},H.isAsyncFunction=function(){if(this.type!==F.name||this.options.ecmaVersion<8||"async"!=this.value)return!1;R.lastIndex=this.pos;var e=R.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)))},H.parseStatement=function(e,t,n){var r,i=this.type,s=this.startNode();switch(this.isLet()&&(i=F._var,r="let"),i){case F._break:case F._continue:return this.parseBreakContinueStatement(s,i.keyword);case F._debugger:return this.parseDebuggerStatement(s);case F._do:return this.parseDoStatement(s);case F._for:return this.parseForStatement(s);case F._function:return!e&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(s,!1);case F._class:return e||this.unexpected(),this.parseClass(s,!0);case F._if:return this.parseIfStatement(s);case F._return:return this.parseReturnStatement(s);case F._switch:return this.parseSwitchStatement(s);case F._throw:return this.parseThrowStatement(s);case F._try:return this.parseTryStatement(s);case F._const:case F._var:return r=r||this.value,e||"var"==r||this.unexpected(),this.parseVarStatement(s,r);case F._while:return this.parseWhileStatement(s);case F._with:return this.parseWithStatement(s);case F.braceL:return this.parseBlock();case F.semi:return this.parseEmptyStatement(s);case F._export:case F._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===F._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===F.name&&"Identifier"===a.type&&this.eat(F.colon)?this.parseLabeledStatement(s,o,a):this.parseExpressionStatement(s,a)}},H.parseBreakContinueStatement=function(e,t){var n=this,r="break"==t;this.next(),this.eat(F.semi)||this.insertSemicolon()?e.label=null:this.type!==F.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var i=0;i<this.labels.length;++i){var s=n.labels[i];if(null==e.label||s.name===e.label.name){if(null!=s.kind&&(r||"loop"===s.kind))break;if(e.label&&r)break}}return i===this.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},H.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},H.parseDoStatement=function(e){return this.next(),this.labels.push(Z),e.body=this.parseStatement(!1),this.labels.pop(),this.expect(F._while),e.test=this.parseParenExpression(),this.options.ecmaVersion>=6?this.eat(F.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},H.parseForStatement=function(e){if(this.next(),this.labels.push(Z),this.enterLexicalScope(),this.expect(F.parenL),this.type===F.semi)return this.parseFor(e,null);var t=this.isLet();if(this.type===F._var||this.type===F._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===F._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 Y,s=this.parseExpression(!0,i);return this.type===F._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))},H.parseFunctionStatement=function(e,t){return this.next(),this.parseFunction(e,!0,!1,t)},H.isFunction=function(){return this.type===F._function||this.isAsyncFunction()},H.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!this.strict&&this.isFunction()),e.alternate=this.eat(F._else)?this.parseStatement(!this.strict&&this.isFunction()):null,this.finishNode(e,"IfStatement")},H.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(F.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},H.parseSwitchStatement=function(e){var t=this;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(F.braceL),this.labels.push(Q),this.enterLexicalScope();for(var n,r=!1;this.type!=F.braceR;)if(t.type===F._case||t.type===F._default){var i=t.type===F._case;n&&t.finishNode(n,"SwitchCase"),e.cases.push(n=t.startNode()),n.consequent=[],t.next(),i?n.test=t.parseExpression():(r&&t.raiseRecoverable(t.lastTokStart,"Multiple default clauses"),r=!0,n.test=null),t.expect(F.colon)}else n||t.unexpected(),n.consequent.push(t.parseStatement(!0));return this.exitLexicalScope(),n&&this.finishNode(n,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},H.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 X=[];H.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===F._catch){var t=this.startNode();this.next(),this.expect(F.parenL),t.param=this.parseBindingAtom(),this.enterLexicalScope(),this.checkLVal(t.param,"let"),this.expect(F.parenR),t.body=this.parseBlock(!1),this.exitLexicalScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(F._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},H.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},H.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(Z),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"WhileStatement")},H.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")},H.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},H.parseLabeledStatement=function(e,t,n){for(var r=this,i=0;i<this.labels.length;++i)r.labels[i].name===t&&r.raise(n.start,"Label '"+t+"' is already declared");for(var s=this.type.isLoop?"loop":this.type===F._switch?"switch":null,o=this.labels.length-1;o>=0;o--){var a=r.labels[o];if(a.statementStart!=e.start)break;a.statementStart=r.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")},H.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},H.parseBlock=function(e){var t=this;void 0===e&&(e=!0);var n=this.startNode();for(n.body=[],this.expect(F.braceL),e&&this.enterLexicalScope();!this.eat(F.braceR);){var r=t.parseStatement(!0);n.body.push(r)}return e&&this.exitLexicalScope(),this.finishNode(n,"BlockStatement")},H.parseFor=function(e,t){return e.init=t,this.expect(F.semi),e.test=this.type===F.semi?null:this.parseExpression(),this.expect(F.semi),e.update=this.type===F.parenR?null:this.parseExpression(),this.expect(F.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,"ForStatement")},H.parseForIn=function(e,t){var n=this.type===F._in?"ForInStatement":"ForOfStatement";return this.next(),e.left=t,e.right=this.parseExpression(),this.expect(F.parenR),this.exitLexicalScope(),e.body=this.parseStatement(!1),this.labels.pop(),this.finishNode(e,n)},H.parseVar=function(e,t,n){var r=this;for(e.declarations=[],e.kind=n;;){var i=r.startNode();if(r.parseVarId(i,n),r.eat(F.eq)?i.init=r.parseMaybeAssign(t):"const"!==n||r.type===F._in||r.options.ecmaVersion>=6&&r.isContextual("of")?"Identifier"==i.id.type||t&&(r.type===F._in||r.isContextual("of"))?i.init=null:r.raise(r.lastTokEnd,"Complex binding patterns require an initialization value"):r.unexpected(),e.declarations.push(r.finishNode(i,"VariableDeclarator")),!r.eat(F.comma))break}return e},H.parseVarId=function(e,t){e.id=this.parseBindingAtom(t),this.checkLVal(e.id,t,!1)},H.parseFunction=function(e,t,n,r){this.initFunction(e),this.options.ecmaVersion>=6&&!r&&(e.generator=this.eat(F.star)),this.options.ecmaVersion>=8&&(e.async=!!r),t&&(e.id="nullableID"===t&&this.type!=F.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==F.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")},H.parseFunctionParams=function(e){this.expect(F.parenL),e.params=this.parseBindingList(F.parenR,!1,this.options.ecmaVersion>=8,!0),this.checkYieldAwaitInDefaultParams()},H.parseClass=function(e,t){var n=this;this.next(),this.parseClassId(e,t),this.parseClassSuper(e);var r=this.startNode(),i=!1;for(r.body=[],this.expect(F.braceL);!this.eat(F.braceR);)if(!n.eat(F.semi)){var s=n.startNode(),o=n.eat(F.star),a=!1,u=n.type===F.name&&"static"===n.value;n.parsePropertyName(s),s.static=u&&n.type!==F.parenL,s.static&&(o&&n.unexpected(),o=n.eat(F.star),n.parsePropertyName(s)),n.options.ecmaVersion>=8&&!o&&!s.computed&&"Identifier"===s.key.type&&"async"===s.key.name&&n.type!==F.parenL&&!n.canInsertSemicolon()&&(a=!0,n.parsePropertyName(s)),s.kind="method";var c=!1;if(!s.computed){var l=s.key;o||a||"Identifier"!==l.type||n.type===F.parenL||"get"!==l.name&&"set"!==l.name||(c=!0,s.kind=l.name,l=n.parsePropertyName(s)),!s.static&&("Identifier"===l.type&&"constructor"===l.name||"Literal"===l.type&&"constructor"===l.value)&&(i&&n.raise(l.start,"Duplicate constructor in the same class"),c&&n.raise(l.start,"Constructor can't have get/set modifier"),o&&n.raise(l.start,"Constructor can't be a generator"),a&&n.raise(l.start,"Constructor can't be an async method"),s.kind="constructor",i=!0)}if(n.parseClassMethod(r,s,o,a),c){var p="get"===s.kind?0:1;if(s.value.params.length!==p){var h=s.value.start;"get"===s.kind?n.raiseRecoverable(h,"getter should have no params"):n.raiseRecoverable(h,"setter should have exactly one param")}else"set"===s.kind&&"RestElement"===s.value.params[0].type&&n.raiseRecoverable(s.value.params[0].start,"Setter cannot use rest params")}}return e.body=this.finishNode(r,"ClassBody"),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},H.parseClassMethod=function(e,t,n,r){t.value=this.parseMethod(n,r),e.body.push(this.finishNode(t,"MethodDefinition"))},H.parseClassId=function(e,t){e.id=this.type===F.name?this.parseIdent():!0===t?this.unexpected():null},H.parseClassSuper=function(e){e.superClass=this.eat(F._extends)?this.parseExprSubscripts():null},H.parseExport=function(e,t){var n=this;if(this.next(),this.eat(F.star))return this.expectContextual("from"),e.source=this.type===F.string?this.parseExprAtom():this.unexpected(),this.semicolon(),this.finishNode(e,"ExportAllDeclaration");if(this.eat(F._default)){this.checkExport(t,"default",this.lastTokStart);var r;if(this.type===F._function||(r=this.isAsyncFunction())){var i=this.startNode();this.next(),r&&this.next(),e.declaration=this.parseFunction(i,"nullableID",!1,r)}else if(this.type===F._class){var s=this.startNode();e.declaration=this.parseClass(s,"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===F.string?this.parseExprAtom():this.unexpected();else{for(var o=0;o<e.specifiers.length;o++)(n.keywords.test(e.specifiers[o].local.name)||n.reservedWords.test(e.specifiers[o].local.name))&&n.unexpected(e.specifiers[o].local.start);e.source=null}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},H.checkExport=function(e,t,n){e&&(a(e,t)&&this.raiseRecoverable(n,"Duplicate export '"+t+"'"),e[t]=!0)},H.checkPatternExport=function(e,t){var n=this,r=t.type;if("Identifier"==r)this.checkExport(e,t.name,t.start);else if("ObjectPattern"==r)for(var i=0;i<t.properties.length;++i)n.checkPatternExport(e,t.properties[i].value);else if("ArrayPattern"==r)for(var s=0;s<t.elements.length;++s){var o=t.elements[s];o&&n.checkPatternExport(e,o)}else"AssignmentPattern"==r?this.checkPatternExport(e,t.left):"ParenthesizedExpression"==r&&this.checkPatternExport(e,t.expression)},H.checkVariableExport=function(e,t){var n=this;if(e)for(var r=0;r<t.length;r++)n.checkPatternExport(e,t[r].id)},H.shouldParseExportStatement=function(){return"var"===this.type.keyword||"const"===this.type.keyword||"class"===this.type.keyword||"function"===this.type.keyword||this.isLet()||this.isAsyncFunction()},H.parseExportSpecifiers=function(e){var t=this,n=[],r=!0;for(this.expect(F.braceL);!this.eat(F.braceR);){if(r)r=!1;else if(t.expect(F.comma),t.afterTrailingComma(F.braceR))break;var i=t.startNode();i.local=t.parseIdent(!0),i.exported=t.eatContextual("as")?t.parseIdent(!0):i.local,t.checkExport(e,i.exported.name,i.exported.start),n.push(t.finishNode(i,"ExportSpecifier"))}return n},H.parseImport=function(e){return this.next(),this.type===F.string?(e.specifiers=X,e.source=this.parseExprAtom()):(e.specifiers=this.parseImportSpecifiers(),this.expectContextual("from"),e.source=this.type===F.string?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},H.parseImportSpecifiers=function(){var e=this,t=[],n=!0;if(this.type===F.name){var r=this.startNode();if(r.local=this.parseIdent(),this.checkLVal(r.local,"let"),t.push(this.finishNode(r,"ImportDefaultSpecifier")),!this.eat(F.comma))return t}if(this.type===F.star){var i=this.startNode();return this.next(),this.expectContextual("as"),i.local=this.parseIdent(),this.checkLVal(i.local,"let"),t.push(this.finishNode(i,"ImportNamespaceSpecifier")),t}for(this.expect(F.braceL);!this.eat(F.braceR);){if(n)n=!1;else if(e.expect(F.comma),e.afterTrailingComma(F.braceR))break;var s=e.startNode();s.imported=e.parseIdent(!0),e.eatContextual("as")?s.local=e.parseIdent():(s.local=s.imported,e.isKeyword(s.local.name)&&e.unexpected(s.local.start),e.reservedWordsStrict.test(s.local.name)&&e.raiseRecoverable(s.local.start,"The keyword '"+s.local.name+"' is reserved")),e.checkLVal(s.local,"let"),t.push(e.finishNode(s,"ImportSpecifier"))}return t};var K=W.prototype;K.toAssignable=function(e,t){var n=this;if(this.options.ecmaVersion>=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 r=0;r<e.properties.length;r++){var i=e.properties[r];"init"!==i.kind&&n.raise(i.key.start,"Object pattern can't contain getter or setter"),n.toAssignable(i.value,t)}break;case"ArrayExpression":e.type="ArrayPattern",this.toAssignableList(e.elements,t);break;case"AssignmentExpression":if("="!==e.operator){this.raise(e.left.end,"Only '=' operator can be used for specifying default value.");break}e.type="AssignmentPattern",delete e.operator,this.toAssignable(e.left,t);case"AssignmentPattern":break;case"ParenthesizedExpression":e.expression=this.toAssignable(e.expression,t);break;case"MemberExpression":if(!t)break;default:this.raise(e.start,"Assigning to rvalue")}return e},K.toAssignableList=function(e,t){var n=this,r=e.length;if(r){var i=e[r-1];if(i&&"RestElement"==i.type)--r;else if(i&&"SpreadElement"==i.type){i.type="RestElement";var s=i.argument;this.toAssignable(s,t),"Identifier"!==s.type&&"MemberExpression"!==s.type&&"ArrayPattern"!==s.type&&this.unexpected(s.start),--r}t&&i&&"RestElement"===i.type&&"Identifier"!==i.argument.type&&this.unexpected(i.argument.start)}for(var o=0;o<r;o++){var a=e[o];a&&n.toAssignable(a,t)}return e},K.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},K.parseRest=function(e){var t=this.startNode();return this.next(),t.argument=e?this.type===F.name?this.parseIdent():this.unexpected():this.type===F.name||this.type===F.bracketL?this.parseBindingAtom():this.unexpected(),this.finishNode(t,"RestElement")},K.parseBindingAtom=function(){if(this.options.ecmaVersion<6)return this.parseIdent();switch(this.type){case F.name:return this.parseIdent();case F.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(F.bracketR,!0,!0),this.finishNode(e,"ArrayPattern");case F.braceL:return this.parseObj(!0);default:this.unexpected()}},K.parseBindingList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);)if(o?o=!1:i.expect(F.comma),t&&i.type===F.comma)s.push(null);else{if(n&&i.afterTrailingComma(e))break;if(i.type===F.ellipsis){var a=i.parseRest(r);i.parseBindingListItem(a),s.push(a),i.type===F.comma&&i.raise(i.start,"Comma is not permitted after the rest element"),i.expect(e);break}var u=i.parseMaybeDefault(i.start,i.startLoc);i.parseBindingListItem(u),s.push(u)}return s},K.parseBindingListItem=function(e){return e},K.parseMaybeDefault=function(e,t,n){if(n=n||this.parseBindingAtom(),this.options.ecmaVersion<6||!this.eat(F.eq))return n;var r=this.startNodeAt(e,t);return r.left=n,r.right=this.parseMaybeAssign(),this.finishNode(r,"AssignmentPattern")},K.checkLVal=function(e,t,n){var r=this;switch(e.type){case"Identifier":this.strict&&this.reservedWordsStrictBind.test(e.name)&&this.raiseRecoverable(e.start,(t?"Binding ":"Assigning to ")+e.name+" in strict mode"),n&&(a(n,e.name)&&this.raiseRecoverable(e.start,"Argument name clash"),n[e.name]=!0),t&&"none"!==t&&(("var"===t&&!this.canDeclareVarName(e.name)||"var"!==t&&!this.canDeclareLexicalName(e.name))&&this.raiseRecoverable(e.start,"Identifier '"+e.name+"' has already been declared"),"var"===t?this.declareVarName(e.name):this.declareLexicalName(e.name));break;case"MemberExpression":t&&this.raiseRecoverable(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var i=0;i<e.properties.length;i++)r.checkLVal(e.properties[i].value,t,n);break;case"ArrayPattern":for(var s=0;s<e.elements.length;s++){var o=e.elements[s];o&&r.checkLVal(o,t,n)}break;case"AssignmentPattern":this.checkLVal(e.left,t,n);break;case"RestElement":this.checkLVal(e.argument,t,n);break;case"ParenthesizedExpression":this.checkLVal(e.expression,t,n);break;default:this.raise(e.start,(t?"Binding":"Assigning to")+" rvalue")}};var ee=W.prototype;ee.checkPropClash=function(e,t){if(!(this.options.ecmaVersion>=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}}},ee.parseExpression=function(e,t){var n=this,r=this.start,i=this.startLoc,s=this.parseMaybeAssign(e,t);if(this.type===F.comma){var o=this.startNodeAt(r,i);for(o.expressions=[s];this.eat(F.comma);)o.expressions.push(n.parseMaybeAssign(e,t));return this.finishNode(o,"SequenceExpression")}return s},ee.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 Y,r=!0);var o=this.start,a=this.startLoc;this.type!=F.parenL&&this.type!=F.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||Y.call(t);var c=this.startNodeAt(o,a);return c.operator=this.value,c.left=this.type===F.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},ee.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(F.question)){var s=this.startNodeAt(n,r);return s.test=i,s.consequent=this.parseMaybeAssign(),this.expect(F.colon),s.alternate=this.parseMaybeAssign(e),this.finishNode(s,"ConditionalExpression")}return i},ee.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)},ee.parseExprOp=function(e,t,n,r,i){var s=this.type.binop;if(null!=s&&(!i||this.type!==F._in)&&s>r){var o=this.type===F.logicalOR||this.type===F.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},ee.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")},ee.parseMaybeUnary=function(e,t){var n,r=this,i=this.start,s=this.startLoc;if(this.inAsync&&this.isContextual("await"))n=this.parseAwait(e),t=!0;else if(this.type.prefix){var o=this.startNode(),a=this.type===F.incDec;o.operator=this.value,o.prefix=!0,this.next(),o.argument=this.parseMaybeUnary(null,!0),this.checkExpressionErrors(e,!0),a?this.checkLVal(o.argument):this.strict&&"delete"===o.operator&&"Identifier"===o.argument.type?this.raiseRecoverable(o.start,"Deleting local variable in strict mode"):t=!0,n=this.finishNode(o,a?"UpdateExpression":"UnaryExpression")}else{if(n=this.parseExprSubscripts(e),this.checkExpressionErrors(e))return n;for(;this.type.postfix&&!this.canInsertSemicolon();){var u=r.startNodeAt(i,s);u.operator=r.value,u.prefix=!1,u.argument=n,r.checkLVal(n),r.next(),n=r.finishNode(u,"UpdateExpression")}}return!t&&this.eat(F.starstar)?this.buildBinary(i,s,n,this.parseMaybeUnary(null,!1),"**",!1):n},ee.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},ee.parseSubscripts=function(e,t,n,r){for(var i,s=this,o=this.options.ecmaVersion>=8&&"Identifier"===e.type&&"async"===e.name&&this.lastTokEnd==e.end&&!this.canInsertSemicolon();;)if((i=s.eat(F.bracketL))||s.eat(F.dot)){var a=s.startNodeAt(t,n);a.object=e,a.property=i?s.parseExpression():s.parseIdent(!0),a.computed=!!i,i&&s.expect(F.bracketR),e=s.finishNode(a,"MemberExpression")}else if(!r&&s.eat(F.parenL)){var u=new Y,c=s.yieldPos,l=s.awaitPos;s.yieldPos=0,s.awaitPos=0;var p=s.parseExprList(F.parenR,s.options.ecmaVersion>=8,!1,u);if(o&&!s.canInsertSemicolon()&&s.eat(F.arrow))return s.checkPatternErrors(u,!1),s.checkYieldAwaitInDefaultParams(),s.yieldPos=c,s.awaitPos=l,s.parseArrowExpression(s.startNodeAt(t,n),p,!0);s.checkExpressionErrors(u,!0),s.yieldPos=c||s.yieldPos,s.awaitPos=l||s.awaitPos;var h=s.startNodeAt(t,n);h.callee=e,h.arguments=p,e=s.finishNode(h,"CallExpression")}else{if(s.type!==F.backQuote)return e;var f=s.startNodeAt(t,n);f.tag=e,f.quasi=s.parseTemplate(),e=s.finishNode(f,"TaggedTemplateExpression")}},ee.parseExprAtom=function(e){var t,n=this.potentialArrowAt==this.start;switch(this.type){case F._super:this.inFunction||this.raise(this.start,"'super' outside of function or class");case F._this:var r=this.type===F._this?"ThisExpression":"Super";return t=this.startNode(),this.next(),this.finishNode(t,r);case F.name:var i=this.start,s=this.startLoc,o=this.parseIdent(this.type!==F.name);if(this.options.ecmaVersion>=8&&"async"===o.name&&!this.canInsertSemicolon()&&this.eat(F._function))return this.parseFunction(this.startNodeAt(i,s),!1,!1,!0);if(n&&!this.canInsertSemicolon()){if(this.eat(F.arrow))return this.parseArrowExpression(this.startNodeAt(i,s),[o],!1);if(this.options.ecmaVersion>=8&&"async"===o.name&&this.type===F.name)return o=this.parseIdent(),!this.canInsertSemicolon()&&this.eat(F.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(i,s),[o],!0)}return o;case F.regexp:var a=this.value;return t=this.parseLiteral(a.value),t.regex={pattern:a.pattern,flags:a.flags},t;case F.num:case F.string:return this.parseLiteral(this.value);case F._null:case F._true:case F._false:return t=this.startNode(),t.value=this.type===F._null?null:this.type===F._true,t.raw=this.type.keyword,this.next(),this.finishNode(t,"Literal");case F.parenL:var u=this.start,c=this.parseParenAndDistinguishExpression(n);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(c)&&(e.parenthesizedAssign=u),e.parenthesizedBind<0&&(e.parenthesizedBind=u)),c;case F.bracketL:return t=this.startNode(),this.next(),t.elements=this.parseExprList(F.bracketR,!0,!0,e),this.finishNode(t,"ArrayExpression");case F.braceL:return this.parseObj(!1,e);case F._function:return t=this.startNode(),this.next(),this.parseFunction(t,!1);case F._class:return this.parseClass(this.startNode(),!1);case F._new:return this.parseNew();case F.backQuote:return this.parseTemplate();default:this.unexpected()}},ee.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")},ee.parseParenExpression=function(){this.expect(F.parenL);var e=this.parseExpression();return this.expect(F.parenR),e},ee.parseParenAndDistinguishExpression=function(e){var t,n=this,r=this.start,i=this.startLoc,s=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,a,u=this.start,c=this.startLoc,l=[],p=!0,h=!1,f=new Y,d=this.yieldPos,y=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==F.parenR;){if(p?p=!1:n.expect(F.comma),s&&n.afterTrailingComma(F.parenR,!0)){h=!0;break}if(n.type===F.ellipsis){o=n.start,l.push(n.parseParenItem(n.parseRest())),n.type===F.comma&&n.raise(n.start,"Comma is not permitted after the rest element");break}n.type!==F.parenL||a||(a=n.start),l.push(n.parseMaybeAssign(!1,f,n.parseParenItem))}var m=this.start,g=this.startLoc;if(this.expect(F.parenR),e&&!this.canInsertSemicolon()&&this.eat(F.arrow))return this.checkPatternErrors(f,!1),this.checkYieldAwaitInDefaultParams(),a&&this.unexpected(a),this.yieldPos=d,this.awaitPos=y,this.parseParenArrowList(r,i,l);l.length&&!h||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(f,!0),this.yieldPos=d||this.yieldPos,this.awaitPos=y||this.awaitPos,l.length>1?((t=this.startNodeAt(u,c)).expressions=l,this.finishNodeAt(t,"SequenceExpression",m,g)):t=l[0]}else t=this.parseParenExpression();if(this.options.preserveParens){var v=this.startNodeAt(r,i);return v.expression=t,this.finishNode(v,"ParenthesizedExpression")}return t},ee.parseParenItem=function(e){return e},ee.parseParenArrowList=function(e,t,n){return this.parseArrowExpression(this.startNodeAt(e,t),n)};var te=[];ee.parseNew=function(){var e=this.startNode(),t=this.parseIdent(!0);if(this.options.ecmaVersion>=6&&this.eat(F.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(F.parenL)?e.arguments=this.parseExprList(F.parenR,this.options.ecmaVersion>=8,!1):e.arguments=te,this.finishNode(e,"NewExpression")},ee.parseTemplateElement=function(){var e=this.startNode();return e.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),e.tail=this.type===F.backQuote,this.finishNode(e,"TemplateElement")},ee.parseTemplate=function(){var e=this,t=this.startNode();this.next(),t.expressions=[];var n=this.parseTemplateElement();for(t.quasis=[n];!n.tail;)e.expect(F.dollarBraceL),t.expressions.push(e.parseExpression()),e.expect(F.braceR),t.quasis.push(n=e.parseTemplateElement());return this.next(),this.finishNode(t,"TemplateLiteral")},ee.parseObj=function(e,t){var n=this,r=this.startNode(),i=!0,s={};for(r.properties=[],this.next();!this.eat(F.braceR);){if(i)i=!1;else if(n.expect(F.comma),n.afterTrailingComma(F.braceR))break;var o,a,u,c,l=n.startNode();n.options.ecmaVersion>=6&&(l.method=!1,l.shorthand=!1,(e||t)&&(u=n.start,c=n.startLoc),e||(o=n.eat(F.star))),n.parsePropertyName(l),e||!(n.options.ecmaVersion>=8)||o||l.computed||"Identifier"!==l.key.type||"async"!==l.key.name||n.type===F.parenL||n.type===F.colon||n.canInsertSemicolon()?a=!1:(a=!0,n.parsePropertyName(l,t)),n.parsePropertyValue(l,e,o,a,u,c,t),n.checkPropClash(l,s),r.properties.push(n.finishNode(l,"Property"))}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},ee.parsePropertyValue=function(e,t,n,r,i,s,o){if((n||r)&&this.type===F.colon&&this.unexpected(),this.eat(F.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===F.parenL)t&&this.unexpected(),e.kind="init",e.method=!0,e.value=this.parseMethod(n,r);else if(this.options.ecmaVersion>=5&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&this.type!=F.comma&&this.type!=F.braceR){(n||r||t)&&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")}else this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((this.keywords.test(e.key.name)||(this.strict?this.reservedWordsStrict:this.reservedWords).test(e.key.name)||this.inGenerator&&"yield"==e.key.name||this.inAsync&&"await"==e.key.name)&&this.raiseRecoverable(e.key.start,"'"+e.key.name+"' can not be used as shorthand property"),e.kind="init",t?e.value=this.parseMaybeDefault(i,s,e.key):this.type===F.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()},ee.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(F.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(F.bracketR),e.key;e.computed=!1}return e.key=this.type===F.num||this.type===F.string?this.parseExprAtom():this.parseIdent(!0)},ee.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=!1,e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},ee.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(F.parenL),n.params=this.parseBindingList(F.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")},ee.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")},ee.parseFunctionBody=function(e,t){var n=t&&this.type!==F.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.labels=o}this.exitFunctionScope(),this.strict&&e.id&&this.checkLVal(e.id,"none"),this.strict=r},ee.isSimpleParamList=function(e){for(var t=0;t<e.length;t++)if("Identifier"!==e[t].type)return!1;return!0},ee.checkParams=function(e,t){for(var n=this,r={},i=0;i<e.params.length;i++)n.checkLVal(e.params[i],"var",t?null:r)},ee.parseExprList=function(e,t,n,r){for(var i=this,s=[],o=!0;!this.eat(e);){if(o)o=!1;else if(i.expect(F.comma),t&&i.afterTrailingComma(e))break;var a;n&&i.type===F.comma?a=null:i.type===F.ellipsis?(a=i.parseSpread(r),r&&i.type===F.comma&&r.trailingComma<0&&(r.trailingComma=i.start)):a=i.parseMaybeAssign(!1,r),s.push(a)}return s},ee.parseIdent=function(e){var t=this.startNode();return e&&"never"==this.options.allowReserved&&(e=!1),this.type===F.name?(!e&&(this.strict?this.reservedWordsStrict:this.reservedWords).test(this.value)&&(this.options.ecmaVersion>=6||-1==this.input.slice(this.start,this.end).indexOf("\\"))&&this.raiseRecoverable(this.start,"The keyword '"+this.value+"' is reserved"),this.inGenerator&&"yield"===this.value&&this.raiseRecoverable(this.start,"Can not use 'yield' as identifier inside a generator"),this.inAsync&&"await"===this.value&&this.raiseRecoverable(this.start,"Can not use 'await' as identifier inside an async function"),t.name=this.value):e&&this.type.keyword?t.name=this.type.keyword:this.unexpected(),this.next(),this.finishNode(t,"Identifier")},ee.parseYield=function(){this.yieldPos||(this.yieldPos=this.start);var e=this.startNode();return this.next(),this.type==F.semi||this.canInsertSemicolon()||this.type!=F.star&&!this.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(F.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")},ee.parseAwait=function(){this.awaitPos||(this.awaitPos=this.start);var e=this.startNode();return this.next(),e.argument=this.parseMaybeUnary(null,!0),this.finishNode(e,"AwaitExpression")};var ne=W.prototype;ne.raise=function(e,t){var n=u(this.input,e);t+=" ("+n.line+":"+n.column+")";var r=new SyntaxError(t);throw r.pos=e,r.loc=n,r.raisedAt=this.pos,r},ne.raiseRecoverable=ne.raise,ne.curPosition=function(){if(this.options.locations)return new V(this.curLine,this.pos-this.lineStart)};var re=W.prototype,ie=Object.assign||function(e){for(var t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];for(var r=0;r<t.length;r++){var i=t[r];for(var s in i)a(i,s)&&(e[s]=i[s])}return e};re.enterFunctionScope=function(){this.scopeStack.push({var:{},lexical:{},childVar:{},parentLexical:{}})},re.exitFunctionScope=function(){this.scopeStack.pop()},re.enterLexicalScope=function(){var e=this.scopeStack[this.scopeStack.length-1],t={var:{},lexical:{},childVar:{},parentLexical:{}};this.scopeStack.push(t),ie(t.parentLexical,e.lexical,e.parentLexical)},re.exitLexicalScope=function(){var e=this.scopeStack.pop(),t=this.scopeStack[this.scopeStack.length-1];ie(t.childVar,e.var,e.childVar)},re.canDeclareVarName=function(e){var t=this.scopeStack[this.scopeStack.length-1];return!a(t.lexical,e)&&!a(t.parentLexical,e)},re.canDeclareLexicalName=function(e){var t=this.scopeStack[this.scopeStack.length-1];return!a(t.lexical,e)&&!a(t.var,e)&&!a(t.childVar,e)},re.declareVarName=function(e){this.scopeStack[this.scopeStack.length-1].var[e]=!0},re.declareLexicalName=function(e){this.scopeStack[this.scopeStack.length-1].lexical[e]=!0};var se=function(e,t,n){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new q(e,n)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},oe=W.prototype;oe.startNode=function(){return new se(this,this.start,this.startLoc)},oe.startNodeAt=function(e,t){return new se(this,e,t)},oe.finishNode=function(e,t){return h.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},oe.finishNodeAt=function(e,t,n,r){return h.call(this,e,t,n,r)};var ae=function(e,t,n,r,i){this.token=e,this.isExpr=!!t,this.preserveSpace=!!n,this.override=r,this.generator=!!i},ue={b_stat:new ae("{",!1),b_expr:new ae("{",!0),b_tmpl:new ae("${",!0),p_stat:new ae("(",!1),p_expr:new ae("(",!0),q_tmpl:new ae("`",!0,!0,function(e){return e.readTmplToken()}),f_expr:new ae("function",!0),f_expr_gen:new ae("function",!0,!1,null,!0),f_gen:new ae("function",!1,!1,null,!0)},ce=W.prototype;ce.initialContext=function(){return[ue.b_stat]},ce.braceIsBlock=function(e){if(e===F.colon){var t=this.curContext();if(t===ue.b_stat||t===ue.b_expr)return!t.isExpr}return e===F._return?O.test(this.input.slice(this.lastTokEnd,this.start)):e===F._else||e===F.semi||e===F.eof||e===F.parenR||e==F.arrow||(e==F.braceL?this.curContext()===ue.b_stat:!this.exprAllowed)},ce.inGeneratorContext=function(){for(var e=this,t=this.context.length-1;t>=0;t--)if(e.context[t].generator)return!0;return!1},ce.updateContext=function(e){var t,n=this.type;n.keyword&&e==F.dot?this.exprAllowed=!1:(t=n.updateContext)?t.call(this,e):this.exprAllowed=n.beforeExpr},F.parenR.updateContext=F.braceR.updateContext=function(){if(1!=this.context.length){var e,t=this.context.pop();t===ue.b_stat&&(e=this.curContext())&&"function"===e.token?(this.context.pop(),this.exprAllowed=!1):this.exprAllowed=t===ue.b_tmpl||!t.isExpr}else this.exprAllowed=!0},F.braceL.updateContext=function(e){this.context.push(this.braceIsBlock(e)?ue.b_stat:ue.b_expr),this.exprAllowed=!0},F.dollarBraceL.updateContext=function(){this.context.push(ue.b_tmpl),this.exprAllowed=!0},F.parenL.updateContext=function(e){var t=e===F._if||e===F._for||e===F._with||e===F._while;this.context.push(t?ue.p_stat:ue.p_expr),this.exprAllowed=!0},F.incDec.updateContext=function(){},F._function.updateContext=function(e){e.beforeExpr&&e!==F.semi&&e!==F._else&&(e!==F.colon&&e!==F.braceL||this.curContext()!==ue.b_stat)&&this.context.push(ue.f_expr),this.exprAllowed=!1},F.backQuote.updateContext=function(){this.curContext()===ue.q_tmpl?this.context.pop():this.context.push(ue.q_tmpl),this.exprAllowed=!1},F.star.updateContext=function(e){e==F._function&&(this.curContext()===ue.f_expr?this.context[this.context.length-1]=ue.f_expr_gen:this.context.push(ue.f_gen)),this.exprAllowed=!0},F.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 le=function(e){this.type=e.type,this.value=e.value,this.start=e.start,this.end=e.end,e.options.locations&&(this.loc=new q(e,e.startLoc,e.endLoc)),e.options.ranges&&(this.range=[e.start,e.end])},pe=W.prototype,he="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);pe.next=function(){this.options.onToken&&this.options.onToken(new le(this)),this.lastTokEnd=this.end,this.lastTokStart=this.start,this.lastTokEndLoc=this.endLoc,this.lastTokStartLoc=this.startLoc,this.nextToken()},pe.getToken=function(){return this.next(),new le(this)},"undefined"!=typeof Symbol&&(pe[Symbol.iterator]=function(){var e=this;return{next:function(){var t=e.getToken();return{done:t.type===F.eof,value:t}}}}),pe.curContext=function(){return this.context[this.context.length-1]},pe.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(F.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},pe.readToken=function(e){return n(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},pe.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);return e<=55295||e>=57344?e:(e<<10)+this.input.charCodeAt(this.pos+1)-56613888},pe.skipBlockComment=function(){var e=this,t=this.options.onComment&&this.curPosition(),n=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(-1===r&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations){$.lastIndex=n;for(var i;(i=$.exec(this.input))&&i.index<this.pos;)++e.curLine,e.lineStart=i.index+i[0].length}this.options.onComment&&this.options.onComment(!0,this.input.slice(n+2,r),n,this.pos,t,this.curPosition())},pe.skipLineComment=function(e){for(var t=this,n=this.pos,r=this.options.onComment&&this.curPosition(),i=this.input.charCodeAt(this.pos+=e);this.pos<this.input.length&&10!==i&&13!==i&&8232!==i&&8233!==i;)++t.pos,i=t.input.charCodeAt(t.pos);this.options.onComment&&this.options.onComment(!1,this.input.slice(n+e,this.pos),n,this.pos,r,this.curPosition())},pe.skipSpace=function(){var e=this;e:for(;this.pos<this.input.length;){var t=e.input.charCodeAt(e.pos);switch(t){case 32:case 160:++e.pos;break;case 13:10===e.input.charCodeAt(e.pos+1)&&++e.pos;case 10:case 8232:case 8233:++e.pos,e.options.locations&&(++e.curLine,e.lineStart=e.pos);break;case 47:switch(e.input.charCodeAt(e.pos+1)){case 42:e.skipBlockComment();break;case 47:e.skipLineComment(2);break;default:break e}break;default:if(!(t>8&&t<14||t>=5760&&B.test(String.fromCharCode(t))))break e;++e.pos}}},pe.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)},pe.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(F.ellipsis)):(++this.pos,this.finishToken(F.dot))},pe.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(F.assign,2):this.finishOp(F.slash,1)},pe.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),n=1,r=42===e?F.star:F.modulo;return this.options.ecmaVersion>=7&&42===t&&(++n,r=F.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(F.assign,n+1):this.finishOp(r,n)},pe.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.finishOp(124===e?F.logicalOR:F.logicalAND,2):61===t?this.finishOp(F.assign,2):this.finishOp(124===e?F.bitwiseOR:F.bitwiseAND,1)},pe.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(F.assign,2):this.finishOp(F.bitwiseXOR,1)},pe.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45==t&&62==this.input.charCodeAt(this.pos+2)&&O.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(F.incDec,2):61===t?this.finishOp(F.assign,2):this.finishOp(F.plusMin,1)},pe.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(F.assign,n+1):this.finishOp(F.bitShift,n)):33==t&&60==e&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3)?(this.inModule&&this.unexpected(),this.skipLineComment(4),this.skipSpace(),this.nextToken()):(61===t&&(n=2),this.finishOp(F.relational,n))},pe.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(F.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(F.arrow)):this.finishOp(61===e?F.eq:F.prefix,1)},pe.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(F.parenL);case 41:return++this.pos,this.finishToken(F.parenR);case 59:return++this.pos,this.finishToken(F.semi);case 44:return++this.pos,this.finishToken(F.comma);case 91:return++this.pos,this.finishToken(F.bracketL);case 93:return++this.pos,this.finishToken(F.bracketR);case 123:return++this.pos,this.finishToken(F.braceL);case 125:return++this.pos,this.finishToken(F.braceR);case 58:return++this.pos,this.finishToken(F.colon);case 63:return++this.pos,this.finishToken(F.question);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(F.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(F.prefix,1)}this.raise(this.pos,"Unexpected character '"+d(e)+"'")},pe.finishOp=function(e,t){var n=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,n)};var fe=!!f("ļææ","u");pe.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&&(fe?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 he||(f(a,u,r,this),l=f(s,o)),this.finishToken(F.regexp,{pattern:s,flags:o,value:l})},pe.readInt=function(e,t){for(var n=this,r=this.pos,i=0,s=0,o=null==t?1/0:t;s<o;++s){var a,u=n.input.charCodeAt(n.pos);if((a=u>=97?u-97+10:u>=65?u-65+10:u>=48&&u<=57?u-48:1/0)>=e)break;++n.pos,i=i*e+a}return this.pos===r||null!=t&&this.pos-r!==t?null:i},pe.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(F.num,t)},pe.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?/[89]/.test(a)||this.strict?this.raise(t,"Invalid number"):o=parseInt(a,8):o=parseInt(a,10),this.finishToken(F.num,o)},pe.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.raise(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},pe.readString=function(e){for(var t=this,n="",r=++this.pos;;){t.pos>=t.input.length&&t.raise(t.start,"Unterminated string constant");var i=t.input.charCodeAt(t.pos);if(i===e)break;92===i?(n+=t.input.slice(r,t.pos),n+=t.readEscapedChar(!1),r=t.pos):(o(i)&&t.raise(t.start,"Unterminated string constant"),++t.pos)}return n+=this.input.slice(r,this.pos++),this.finishToken(F.string,n)},pe.readTmplToken=function(){for(var e=this,t="",n=this.pos;;){e.pos>=e.input.length&&e.raise(e.start,"Unterminated template");var r=e.input.charCodeAt(e.pos);if(96===r||36===r&&123===e.input.charCodeAt(e.pos+1))return e.pos===e.start&&e.type===F.template?36===r?(e.pos+=2,e.finishToken(F.dollarBraceL)):(++e.pos,e.finishToken(F.backQuote)):(t+=e.input.slice(n,e.pos),e.finishToken(F.template,t));if(92===r)t+=e.input.slice(n,e.pos),t+=e.readEscapedChar(!0),n=e.pos;else if(o(r)){switch(t+=e.input.slice(n,e.pos),++e.pos,r){case 13:10===e.input.charCodeAt(e.pos)&&++e.pos;case 10:t+="\n";break;default:t+=String.fromCharCode(r)}e.options.locations&&(++e.curLine,e.lineStart=e.pos),n=e.pos}else++e.pos}},pe.readEscapedChar=function(e){var t=this.input.charCodeAt(++this.pos);switch(++this.pos,t){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return d(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\v";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(t>=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.raise(this.pos-2,"Octal literal in strict mode"),this.pos+=n.length-1,String.fromCharCode(r)}return String.fromCharCode(t)}},pe.readHexChar=function(e){var t=this.pos,n=this.readInt(16,e);return null===n&&this.raise(t,"Bad character escape sequence"),n},pe.readWord1=function(){var e=this;this.containsEsc=!1;for(var t="",i=!0,s=this.pos,o=this.options.ecmaVersion>=6;this.pos<this.input.length;){var a=e.fullCharCodeAtPos();if(r(a,o))e.pos+=a<=65535?1:2;else{if(92!==a)break;e.containsEsc=!0,t+=e.input.slice(s,e.pos);var u=e.pos;117!=e.input.charCodeAt(++e.pos)&&e.raise(e.pos,"Expecting Unicode escape sequence \\uXXXX"),++e.pos;var c=e.readCodePoint();(i?n:r)(c,o)||e.raise(u,"Invalid Unicode escape"),t+=d(c),s=e.pos}i=!1}return t+this.input.slice(s,this.pos)},pe.readWord=function(){var e=this.readWord1(),t=F.name;return this.keywords.test(e)&&(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword "+e),t=N[e]),this.finishToken(t,e)};e.version="5.0.3",e.parse=y,e.parseExpressionAt=m,e.tokenizer=g,e.addLooseExports=v,e.Parser=W,e.plugins=z,e.defaultOptions=U,e.Position=V,e.SourceLocation=q,e.getLineInfo=u,e.Node=se,e.TokenType=L,e.tokTypes=F,e.keywordTypes=N,e.TokContext=ae,e.tokContexts=ue,e.isIdentifierChar=r,e.isIdentifierStart=n,e.Token=le,e.isNewLine=o,e.lineBreak=O,e.lineBreakG=$,e.nonASCIIwhitespace=B,Object.defineProperty(e,"__esModule",{value:!0})})},{}],16:[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||{},e.acorn.walk=e.acorn.walk||{}))}(this,function(e){"use strict";function t(t,n,r,i,s){r||(r=e.base),function e(t,i,s){var o=s||t.type,a=n[o];r[o](t,i,e),a&&a(t,i)}(t,i,s)}function n(t,n,r,i){r||(r=e.base);var s=[];!function e(t,i,o){var a=o||t.type,u=n[a],c=t!=s[s.length-1];c&&s.push(t),r[a](t,i,e),u&&u(t,i||s,s),c&&s.pop()}(t,i)}function r(t,n,r,i,s){var o=r?e.make(r,i):i;!function e(t,n,r){o[r||t.type](t,n,e)}(t,n,s)}function i(e){return"string"==typeof e?function(t){return t==e}:e||function(){return!0}}function s(t,n,r,s,o,a){s=i(s),o||(o=e.base);try{!function e(t,i,a){var u=a||t.type;if((null==n||t.start<=n)&&(null==r||t.end>=r)&&o[u](t,i,e),(null==n||t.start==n)&&(null==r||t.end==r)&&s(u,t))throw new h(t,i)}(t,a)}catch(e){if(e instanceof h)return e;throw e}}function o(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){var a=o||t.type;if(!(t.start>n||t.end<n)&&(s[a](t,i,e),r(a,t)))throw new h(t,i)}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function a(t,n,r,s,o){r=i(r),s||(s=e.base);try{!function e(t,i,o){if(!(t.end<n)){var a=o||t.type;if(t.start>=n&&r(a,t))throw new h(t,i);s[a](t,i,e)}}(t,o)}catch(e){if(e instanceof h)return e;throw e}}function u(t,n,r,s,o){r=i(r),s||(s=e.base);var a;return function e(t,i,o){if(!(t.start>n)){var u=o||t.type;t.end<=n&&(!a||a.node.end<t.end)&&r(u,t)&&(a=new h(t,i)),s[u](t,i,e)}}(t,o),a}function c(t,n){n||(n=e.base);var r=f(n);for(var i in t)r[i]=t[i];return r}function l(e,t,n){n(e,t)}function p(e,t,n){}var h=function(e,t){this.node=e,this.state=t},f=Object.create||function(e){function t(){}return t.prototype=e,new t},d={};d.Program=d.BlockStatement=function(e,t,n){for(var r=0;r<e.body.length;++r)n(e.body[r],t,"Statement")},d.Statement=l,d.EmptyStatement=p,d.ExpressionStatement=d.ParenthesizedExpression=function(e,t,n){return n(e.expression,t,"Expression")},d.IfStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Statement"),e.alternate&&n(e.alternate,t,"Statement")},d.LabeledStatement=function(e,t,n){return n(e.body,t,"Statement")},d.BreakStatement=d.ContinueStatement=p,d.WithStatement=function(e,t,n){n(e.object,t,"Expression"),n(e.body,t,"Statement")},d.SwitchStatement=function(e,t,n){n(e.discriminant,t,"Expression");for(var r=0;r<e.cases.length;++r){var i=e.cases[r];i.test&&n(i.test,t,"Expression");for(var s=0;s<i.consequent.length;++s)n(i.consequent[s],t,"Statement")}},d.ReturnStatement=d.YieldExpression=d.AwaitExpression=function(e,t,n){e.argument&&n(e.argument,t,"Expression")},d.ThrowStatement=d.SpreadElement=function(e,t,n){return n(e.argument,t,"Expression")},d.TryStatement=function(e,t,n){n(e.block,t,"Statement"),e.handler&&n(e.handler,t),e.finalizer&&n(e.finalizer,t,"Statement")},d.CatchClause=function(e,t,n){n(e.param,t,"Pattern"),n(e.body,t,"ScopeBody")},d.WhileStatement=d.DoWhileStatement=function(e,t,n){n(e.test,t,"Expression"),n(e.body,t,"Statement")},d.ForStatement=function(e,t,n){e.init&&n(e.init,t,"ForInit"),e.test&&n(e.test,t,"Expression"),e.update&&n(e.update,t,"Expression"),n(e.body,t,"Statement")},d.ForInStatement=d.ForOfStatement=function(e,t,n){n(e.left,t,"ForInit"),n(e.right,t,"Expression"),n(e.body,t,"Statement")},d.ForInit=function(e,t,n){"VariableDeclaration"==e.type?n(e,t):n(e,t,"Expression")},d.DebuggerStatement=p,d.FunctionDeclaration=function(e,t,n){return n(e,t,"Function")},d.VariableDeclaration=function(e,t,n){for(var r=0;r<e.declarations.length;++r)n(e.declarations[r],t)},d.VariableDeclarator=function(e,t,n){n(e.id,t,"Pattern"),e.init&&n(e.init,t,"Expression")},d.Function=function(e,t,n){e.id&&n(e.id,t,"Pattern");for(var r=0;r<e.params.length;r++)n(e.params[r],t,"Pattern");n(e.body,t,e.expression?"ScopeExpression":"ScopeBody")},d.ScopeBody=function(e,t,n){return n(e,t,"Statement")},d.ScopeExpression=function(e,t,n){return n(e,t,"Expression")},d.Pattern=function(e,t,n){"Identifier"==e.type?n(e,t,"VariablePattern"):"MemberExpression"==e.type?n(e,t,"MemberPattern"):n(e,t)},d.VariablePattern=p,d.MemberPattern=l,d.RestElement=function(e,t,n){return n(e.argument,t,"Pattern")},d.ArrayPattern=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Pattern")}},d.ObjectPattern=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r].value,t,"Pattern")},d.Expression=l,d.ThisExpression=d.Super=d.MetaProperty=p,d.ArrayExpression=function(e,t,n){for(var r=0;r<e.elements.length;++r){var i=e.elements[r];i&&n(i,t,"Expression")}},d.ObjectExpression=function(e,t,n){for(var r=0;r<e.properties.length;++r)n(e.properties[r],t)},d.FunctionExpression=d.ArrowFunctionExpression=d.FunctionDeclaration,d.SequenceExpression=d.TemplateLiteral=function(e,t,n){for(var r=0;r<e.expressions.length;++r)n(e.expressions[r],t,"Expression")},d.UnaryExpression=d.UpdateExpression=function(e,t,n){n(e.argument,t,"Expression")},d.BinaryExpression=d.LogicalExpression=function(e,t,n){n(e.left,t,"Expression"),n(e.right,t,"Expression")},d.AssignmentExpression=d.AssignmentPattern=function(e,t,n){n(e.left,t,"Pattern"),n(e.right,t,"Expression")},d.ConditionalExpression=function(e,t,n){n(e.test,t,"Expression"),n(e.consequent,t,"Expression"),n(e.alternate,t,"Expression")},d.NewExpression=d.CallExpression=function(e,t,n){if(n(e.callee,t,"Expression"),e.arguments)for(var r=0;r<e.arguments.length;++r)n(e.arguments[r],t,"Expression")},d.MemberExpression=function(e,t,n){n(e.object,t,"Expression"),e.computed&&n(e.property,t,"Expression")},d.ExportNamedDeclaration=d.ExportDefaultDeclaration=function(e,t,n){e.declaration&&n(e.declaration,t,"ExportNamedDeclaration"==e.type||e.declaration.id?"Statement":"Expression"),e.source&&n(e.source,t,"Expression")},d.ExportAllDeclaration=function(e,t,n){n(e.source,t,"Expression")},d.ImportDeclaration=function(e,t,n){for(var r=0;r<e.specifiers.length;r++)n(e.specifiers[r],t);n(e.source,t,"Expression")},d.ImportSpecifier=d.ImportDefaultSpecifier=d.ImportNamespaceSpecifier=d.Identifier=d.Literal=p,d.TaggedTemplateExpression=function(e,t,n){n(e.tag,t,"Expression"),n(e.quasi,t)},d.ClassDeclaration=d.ClassExpression=function(e,t,n){return n(e,t,"Class")},d.Class=function(e,t,n){e.id&&n(e.id,t,"Pattern"),e.superClass&&n(e.superClass,t,"Expression");for(var r=0;r<e.body.body.length;r++)n(e.body.body[r],t)},d.MethodDefinition=d.Property=function(e,t,n){e.computed&&n(e.key,t,"Expression"),n(e.value,t,"Expression")},e.simple=t,e.ancestor=n,e.recursive=r,e.findNodeAt=s,e.findNodeAround=o,e.findNodeAfter=a,e.findNodeBefore=u,e.make=c,e.base=d,Object.defineProperty(e,"__esModule",{value:!0})})},{}],17:[function(e,t,n){function r(){this._array=[],this._set=Object.create(null)}var i=e("./util"),s=Object.prototype.hasOwnProperty;r.fromArray=function(e,t){for(var n=new r,i=0,s=e.length;i<s;i++)n.add(e[i],t);return n},r.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},r.prototype.add=function(e,t){var n=i.toSetString(e),r=s.call(this._set,n),o=this._array.length;r&&!t||this._array.push(e),r||(this._set[n]=o)},r.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},r.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},n.ArraySet=r},{"./util":26}],18:[function(e,t,n){function r(e){return e<0?1+(-e<<1):0+(e<<1)}function i(e){var t=e>>1;return 1==(1&e)?-t:t}var s=e("./base64");n.encode=function(e){var t,n="",i=r(e);do{t=31&i,(i>>>=5)>0&&(t|=32),n+=s.encode(t)}while(i>0);return n},n.decode=function(e,t,n){var r,o,a=e.length,u=0,c=0;do{if(t>=a)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(o=s.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));r=!!(32&o),u+=(o&=31)<<c,c+=5}while(r);n.value=i(u),n.rest=t}},{"./base64":19}],19:[function(e,t,n){var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");n.encode=function(e){if(0<=e&&e<r.length)return r[e];throw new TypeError("Must be between 0 and 63: "+e)},n.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},{}],20:[function(e,t,n){function r(e,t,i,s,o,a){var u=Math.floor((t-e)/2)+e,c=o(i,s[u],!0);return 0===c?u:c>0?t-u>1?r(u,t,i,s,o,a):a==n.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?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}},{}],21:[function(e,t,n){function r(e,t){var n=e.generatedLine,r=t.generatedLine,i=e.generatedColumn,o=t.generatedColumn;return r>n||r==n&&o>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){r(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},n.MappingList=i},{"./util":26}],22:[function(e,t,n){function r(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function i(e,t){return Math.round(e+Math.random()*(t-e))}function s(e,t,n,o){if(n<o){var a=n-1;r(e,i(n,o),o);for(var u=e[o],c=n;c<o;c++)t(e[c],u)<=0&&r(e,a+=1,c);r(e,a+1,c);var l=a+1;s(e,t,n,l-1),s(e,t,l+1,o)}}n.quickSort=function(e,t){s(e,t,0,e.length-1)}},{}],23:[function(e,t,n){function r(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new o(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),r=a.getArg(t,"sources"),i=a.getArg(t,"names",[]),s=a.getArg(t,"sourceRoot",null),o=a.getArg(t,"sourcesContent",null),u=a.getArg(t,"mappings"),l=a.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(String).map(a.normalize).map(function(e){return s&&a.isAbsolute(s)&&a.isAbsolute(e)?a.relative(s,e):e}),this._names=c.fromArray(i.map(String),!0),this._sources=c.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=o,this._mappings=u,this.file=l}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function o(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=a.getArg(t,"version"),i=a.getArg(t,"sections");if(n!=this._version)throw new Error("Unsupported version: "+n);this._sources=new c,this._names=new c;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=a.getArg(e,"offset"),n=a.getArg(t,"line"),i=a.getArg(t,"column");if(n<s.line||n===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:n+1,generatedColumn:i+1},consumer:new r(a.getArg(e,"map"))}})}var a=e("./util"),u=e("./binary-search"),c=e("./array-set").ArraySet,l=e("./base64-vlq"),p=e("./quick-sort").quickSort;r.fromSourceMap=function(e){return i.fromSourceMap(e)},r.prototype._version=3,r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),r.prototype._charIsMappingSeparator=function(e,t){var n=e.charAt(t);return";"===n||","===n},r.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.GREATEST_LOWER_BOUND=1,r.LEAST_UPPER_BOUND=2,r.prototype.eachMapping=function(e,t,n){var i,s=t||null;switch(n||r.GENERATED_ORDER){case r.GENERATED_ORDER:i=this._generatedMappings;break;case r.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var o=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=o&&(t=a.join(o,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},r.prototype.allGeneratedPositionsFor=function(e){var t=a.getArg(e,"line"),n={source:a.getArg(e,"source"),originalLine:t,originalColumn:a.getArg(e,"column",0)};if(null!=this.sourceRoot&&(n.source=a.relative(this.sourceRoot,n.source)),!this._sources.has(n.source))return[];n.source=this._sources.indexOf(n.source);var r=[],i=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",a.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=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),i.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;h<f;h++){var d=o[h],y=new s;y.generatedLine=d.generatedLine,y.generatedColumn=d.generatedColumn,d.source&&(y.source=r.indexOf(d.source),y.originalLine=d.originalLine,y.originalColumn=d.originalColumn,d.name&&(y.name=n.indexOf(d.name)),l.push(y)),u.push(y)}return p(t.__originalMappings,a.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?a.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var n,r,i,o,u,c=1,h=0,f=0,d=0,y=0,m=0,g=e.length,v=0,b={},x={},w=[],E=[];v<g;)if(";"===e.charAt(v))c++,v++,h=0;else if(","===e.charAt(v))v++;else{for((n=new s).generatedLine=c,o=v;o<g&&!this._charIsMappingSeparator(e,o);o++);if(r=e.slice(v,o),i=b[r])v+=r.length;else{for(i=[];v<o;)l.decode(e,v,x),u=x.value,v=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");b[r]=i}n.generatedColumn=h+i[0],h=n.generatedColumn,i.length>1&&(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<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",a.compareByGeneratedPositionsDeflated,a.getArg(e,"bias",r.GREATEST_LOWER_BOUND));if(n>=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),o.prototype.constructor=r,o.prototype._version=3,Object.defineProperty(o.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var n=0;n<this._sections[t].consumer.sources.length;n++)e.push(this._sections[t].consumer.sources[n]);return e}}),o.prototype.originalPositionFor=function(e){var t={generatedLine:a.getArg(e,"line"),generatedColumn:a.getArg(e,"column")},n=u.search(t,this._sections,function(e,t){var n=e.generatedLine-t.generatedOffset.generatedLine;return n||e.generatedColumn-t.generatedOffset.generatedColumn}),r=this._sections[n];return r?r.consumer.originalPositionFor({line:t.generatedLine-(r.generatedOffset.generatedLine-1),column:t.generatedColumn-(r.generatedOffset.generatedLine===t.generatedLine?r.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},o.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},o.prototype.sourceContentFor=function(e,t){for(var n=0;n<this._sections.length;n++){var r=this._sections[n].consumer.sourceContentFor(e,!0);if(r)return r}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},o.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var n=this._sections[t];if(-1!==n.consumer.sources.indexOf(a.getArg(e,"source"))){var r=n.consumer.generatedPositionFor(e);if(r)return{line:r.line+(n.generatedOffset.generatedLine-1),column:r.column+(n.generatedOffset.generatedLine===r.line?n.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},o.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var n=0;n<this._sections.length;n++)for(var r=this._sections[n],i=r.consumer._generatedMappings,s=0;s<i.length;s++){var o=i[s],u=r.consumer._sources.at(o.source);null!==r.consumer.sourceRoot&&(u=a.join(r.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var c=r.consumer._names.at(o.name);this._names.add(c),c=this._names.indexOf(c);var l={source:u,generatedLine:o.generatedLine+(r.generatedOffset.generatedLine-1),generatedColumn:o.generatedColumn+(r.generatedOffset.generatedLine===o.generatedLine?r.generatedOffset.generatedColumn-1:0),originalLine:o.originalLine,originalColumn:o.originalColumn,name:c};this.__generatedMappings.push(l),"number"==typeof l.originalLine&&this.__originalMappings.push(l)}p(this.__generatedMappings,a.compareByGeneratedPositionsDeflated),p(this.__originalMappings,a.compareByOriginalPositions)},n.IndexedSourceMapConsumer=o},{"./array-set":17,"./base64-vlq":18,"./binary-search":20,"./quick-sort":22,"./util":26}],24:[function(e,t,n){function r(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new o,this._names=new o,this._mappings=new a,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),o=e("./array-set").ArraySet,a=e("./mapping-list").MappingList;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=s.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),n=s.getArg(e,"original",null),r=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,n,r,i),null!=r&&(r=String(r),this._sources.has(r)||this._sources.add(r)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=s.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=s.relative(i,r));var a=new o,u=new o;this._mappings.unsortedForEach(function(t){if(t.source===r&&null!=t.originalLine){var o=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=o.source&&(t.source=o.source,null!=n&&(t.source=s.join(n,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=o.line,t.originalColumn=o.column,null!=o.name&&(t.name=o.name))}var c=t.source;null==c||a.has(c)||a.add(c);var l=t.name;null==l||u.has(l)||u.add(l)},this),this._sources=a,this._names=u,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=s.join(n,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&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;d<y;d++){if(t=f[d],e="",t.generatedLine!==a)for(o=0;t.generatedLine!==a;)e+=";",a++;else if(d>0){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":17,"./base64-vlq":18,"./mapping-list":21,"./util":26}],25:[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=function(){return u.shift()+(u.shift()||"")},l=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(l<e.generatedLine)){var t=(n=u[0]).substr(0,e.generatedColumn-p);return u[0]=n.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,t),void(h=e)}i(h,c()),l++,p=0}for(;l<e.generatedLine;)a.add(c()),l++;if(p<e.generatedColumn){var n=u[0];a.add(n.substr(0,e.generatedColumn)),u[0]=n.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),u.length>0&&(h&&i(h,c()),a.add(u.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=s.join(n,e)),a.setSourceContent(e,r))}),a},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[a]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=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;n<r;n++)(t=this.children[n])[a]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[a]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][a]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(s.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,s=null,o=null,a=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&o===i.line&&a===i.column&&u===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,o=i.line,a=i.column,u=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),s=null,r=!1);for(var c=0,l=e.length;c<l;c++)10===e.charCodeAt(c)?(t.line++,t.column=0,c+1===l?(s=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},n.SourceNode=r},{"./source-map-generator":24,"./util":26}],26:[function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(g);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function s(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var t=e,r=i(e);if(r){if(!r.path)return e;t=r.path}for(var o,a=n.isAbsolute(t),u=t.split(/\/+/),c=0,l=u.length-1;l>=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?"/":"."),r?(r.path=t,s(r)):t}function a(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),s(n);if(n||t.match(v))return t;if(r&&!r.host&&!r.path)return r.host=t,s(r);var a="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=a,s(r)):a}function u(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)}function c(e){return e}function l(e){return h(e)?"$"+e:e}function p(e){return h(e)?e.slice(1):e}function h(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 f(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:(r=e.generatedLine-t.generatedLine,0!==r?r:e.name-t.name)}function d(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:(r=e.originalColumn-t.originalColumn,0!==r?r:e.name-t.name)}function y(e,t){return e===t?0:e>t?1:-1}function m(e,t){var n=e.generatedLine-t.generatedLine;return 0!==n?n:0!==(n=e.generatedColumn-t.generatedColumn)?n:0!==(n=y(e.source,t.source))?n:0!==(n=e.originalLine-t.originalLine)?n:(n=e.originalColumn-t.originalColumn,0!==n?n:y(e.name,t.name))}n.getArg=r;var g=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,v=/^data:.+\,.+$/;n.urlParse=i,n.urlGenerate=s,n.normalize=o,n.join=a,n.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(g)},n.relative=u;var b=function(){return!("__proto__"in Object.create(null))}();n.toSetString=b?c:l,n.fromSetString=b?c:p,n.compareByOriginalPositions=f,n.compareByGeneratedPositionsDeflated=d,n.compareByGeneratedPositionsInflated=m},{}],27:[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":23,"./lib/source-map-generator":24,"./lib/source-node":25}],28:[function(e,t,n){t.exports={_args:[[{raw:"nodent@^3.0.17",scope:null,escapedName:"nodent",name:"nodent",rawSpec:"^3.0.17",spec:">=3.0.17 <4.0.0",type:"range"},"/Users/evgenypoberezkin/JSON/ajv"]],_from:"nodent@>=3.0.17 <4.0.0",_id:"nodent@3.0.17",_inCache:!0,_location:"/nodent",_nodeVersion:"6.9.1",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/nodent-3.0.17.tgz_1490780005669_0.5196401283610612"},_npmUser:{name:"matatbread",email:"npm@mailed.me.uk"},_npmVersion:"3.10.8",_phantomChildren:{},_requested:{raw:"nodent@^3.0.17",scope:null,escapedName:"nodent",name:"nodent",rawSpec:"^3.0.17",spec:">=3.0.17 <4.0.0",type:"range"},_requiredBy:["#DEV:/"],_resolved:"https://registry.npmjs.org/nodent/-/nodent-3.0.17.tgz",_shasum:"22df57d33c5346d6acc3722d9d69fa68bff518e4",_shrinkwrap:null,_spec:"nodent@^3.0.17",_where:"/Users/evgenypoberezkin/JSON/ajv",author:{name:"Mat At Bread",email:"nodent@mailed.me.uk"},bin:{nodentjs:"./nodent.js"},bugs:{url:"https://github.com/MatAtBread/nodent/issues"},dependencies:{acorn:">=2.5.2","acorn-es7-plugin":">=1.1.6","nodent-runtime":">=3.0.4",resolve:"^1.2.0","source-map":"^0.5.6"},description:"NoDent - Asynchronous Javascript language extensions",devDependencies:{},directories:{},dist:{shasum:"22df57d33c5346d6acc3722d9d69fa68bff518e4",tarball:"https://registry.npmjs.org/nodent/-/nodent-3.0.17.tgz"},engines:"node >= 0.10.0",gitHead:"1a48bd0e8d0b4df69aa7b4b3cf8483c03c1cfbd5",homepage:"https://github.com/MatAtBread/nodent#readme",keywords:["Javascript","ES7","async","await","language","extensions","Node","callback","generator","Promise","asynchronous"],license:"BSD-2-Clause",main:"nodent.js",maintainers:[{name:"matatbread",email:"npm@mailed.me.uk"}],name:"nodent",optionalDependencies:{},readme:"ERROR: No README data found!",repository:{type:"git",url:"git+https://github.com/MatAtBread/nodent.git"},scripts:{cover:"istanbul cover ./nodent.js tests -- --quick --syntax ; open ./coverage/lcov-report/index.html",start:"./nodent.js",test:"cd tests && npm i --prod && cd .. && node --expose-gc ./nodent.js tests --syntax --quick && node --expose-gc ./nodent.js tests --quick --notStrict","test-loader":"cd tests/loader/app && npm test && cd ../../.."},version:"3.0.17"}},{}],29:[function(e,t,n){(function(e){function t(e,t){for(var n=0,r=e.length-1;r>=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<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};n.resolve=function(){for(var n="",i=!1,s=arguments.length-1;s>=-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<e.length&&""===e[t];t++);for(var n=e.length-1;n>=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;u<o;u++)if(i[u]!==s[u]){a=u;break}for(var c=[],u=a;u<i.length;u++)c.push("..");return(c=c.concat(s.slice(a))).join("/")},n.sep="/",n.delimiter=":",n.dirname=function(e){var t=s(e),n=t[0],r=t[1];return n||r?(r&&(r=r.substr(0,r.length-1)),n+r):"."},n.basename=function(e,t){var n=s(e)[2];return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},n.extname=function(e){return s(e)[3]};var o="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,e("_process"))},{_process:31}],30:[function(e,t,n){(function(e){"use strict";function n(e){var t=s.exec(e),n=(t[1]||"")+(t[2]||""),r=t[3]||"",i=o.exec(r);return[n,i[1],i[2],i[3]]}function r(e){return u.exec(e).slice(1)}var i="win32"===e.platform,s=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/,o=/^([\s\S]*?)((?:\.{1,2}|[^\\\/]+?|)(\.[^.\/\\]*|))(?:[\\\/]*)$/,a={};a.parse=function(e){if("string"!=typeof e)throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=n(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}};var u=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,c={};c.parse=function(e){if("string"!=typeof e)throw new TypeError("Parameter 'pathString' must be a string, not "+typeof e);var t=r(e);if(!t||4!==t.length)throw new TypeError("Invalid path '"+e+"'");return t[1]=t[1]||"",t[2]=t[2]||"",t[3]=t[3]||"",{root:t[0],dir:t[0]+t[1].slice(0,-1),base:t[2],ext:t[3],name:t[2].slice(0,t[2].length-t[3].length)}},t.exports=i?a.parse:c.parse,t.exports.posix=c.parse,t.exports.win32=a.parse}).call(this,e("_process"))},{_process:31}],31:[function(e,t,n){function r(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(p===setTimeout)return setTimeout(e,0);if((p===r||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function o(e){if(h===clearTimeout)return clearTimeout(e);if((h===i||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function a(){m&&d&&(m=!1,d.length?y=d.concat(y):g=-1,y.length&&u())}function u(){if(!m){var e=s(a);m=!0;for(var t=y.length;t;){for(d=y,y=[];++g<t;)d&&d[g].run();g=-1,t=y.length}d=null,m=!1,o(e)}}function c(e,t){this.fun=e,this.array=t}function l(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:r}catch(e){p=r}try{h="function"==typeof clearTimeout?clearTimeout:i}catch(e){h=i}}();var d,y=[],m=!1,g=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];y.push(new c(e,t)),1!==y.length||m||s(u)},c.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=l,f.addListener=l,f.once=l,f.off=l,f.removeListener=l,f.removeAllListeners=l,f.emit=l,f.prependListener=l,f.prependOnceListener=l,f.listeners=function(e){return[]},f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],32:[function(e,t,n){var r=e("./lib/core"),i=e("./lib/async");i.core=r,i.isCore=function(e){return r[e]},i.sync=e("./lib/sync"),t.exports=i},{"./lib/async":33,"./lib/core":36,"./lib/sync":38}],33:[function(e,t,n){(function(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,u){function c(t,n,r){t?d(t):n?d(null,n,r):h(w,function(t,n,r){if(t)d(t);else if(n)d(null,n,r);else{var i=new Error("Cannot find module '"+e+"' from '"+x+"'");i.code="MODULE_NOT_FOUND",d(i)}})}function l(e,t,n){function r(e,t,n){function i(n,i,l){if(c=i,n)return o(n);if(l&&c&&y.pathFilter){var p=s.relative(l,u),h=p.slice(0,p.length-e[0].length),f=y.pathFilter(c,t,h);if(f)return r([""].concat(b.slice()),s.resolve(l,f),c)}g(u,a)}function a(n,i){return n?o(n):i?o(null,u,c):void r(e.slice(1),t,c)}if(0===e.length)return o(null,void 0,n);var u=t+e[0],c=n;c?i(null,c):p(s.dirname(u),i)}var i=t,o=n;"function"==typeof i&&(o=i,i=void 0),r([""].concat(b),e,i)}function p(e,t){if(""===e||"/"===e)return t(null);if("win32"===n.platform&&/^\w:[/\\]*$/.test(e))return t(null);if(/[/\\]node_modules[/\\]*$/.test(e))return t(null);var r=s.join(e,"package.json");g(r,function(n,i){if(!i)return p(s.dirname(e),t);v(r,function(n,i){n&&t(n);try{var s=JSON.parse(i)}catch(e){}s&&y.packageFilter&&(s=y.packageFilter(s,r)),t(null,s,e)})})}function h(e,t,n){var r=n,i=t;"function"==typeof i&&(r=i,i=y.package);var o=s.join(e,"package.json");g(o,function(t,n){return t?r(t):n?void v(o,function(t,n){if(t)return r(t);try{var i=JSON.parse(n)}catch(e){}if(y.packageFilter&&(i=y.packageFilter(i,o)),i.main)return"."!==i.main&&"./"!==i.main||(i.main="index"),void l(s.resolve(e,i.main),i,function(t,n,i){return t?r(t):n?r(null,n,i):i?void h(s.resolve(e,i.main),i,function(t,n,i){return t?r(t):n?r(null,n,i):void l(s.join(e,"index"),i,r)}):l(s.join(e,"index"),i,r)});l(s.join(e,"/index"),i,r)}):l(s.join(e,"index"),i,r)})}function f(t,n){function r(n,r,a){return n?t(n):r?t(null,r,a):void h(s.join(o,e),void 0,i)}function i(e,r,i){return e?t(e):r?t(null,r,i):void f(t,n.slice(1))}if(0===n.length)return t(null,void 0);var o=n[0];l(s.join(o,e),void 0,r)}var d=u,y=t||{};if("function"==typeof y&&(d=y,y={}),"string"!=typeof e){var m=new TypeError("Path must be a string.");return n.nextTick(function(){d(m)})}var g=y.isFile||function(e,t){i.stat(e,function(e,n){return e?"ENOENT"===e.code||"ENOTDIR"===e.code?t(null,!1):t(e):t(null,n.isFile()||n.isFIFO())})},v=y.readFile||i.readFile,b=y.extensions||[".js"],x=y.basedir||s.dirname(o());if(y.paths=y.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(e)){var w=s.resolve(x,e);".."!==e&&"/"!==e.slice(-1)||(w+="/"),/\/$/.test(e)&&w===x?h(w,y.package,c):l(w,y.package,c)}else!function(e,t,n){f(n,a(t,y))}(0,x,function(t,n,i){if(t)d(t);else if(n)d(null,n,i);else{if(r[e])return d(null,e);var s=new Error("Cannot find module '"+e+"' from '"+x+"'");s.code="MODULE_NOT_FOUND",d(s)}})}}).call(this,e("_process"))},{"./caller.js":34,"./core":36,"./node-modules-paths.js":37,_process:31,fs:5,path:29}],34:[function(e,t,n){t.exports=function(){var e=Error.prepareStackTrace;Error.prepareStackTrace=function(e,t){return t};var t=(new Error).stack;return Error.prepareStackTrace=e,t[2].getFileName()}},{}],35:[function(e,t,n){t.exports={"*":["assert","buffer_ieee754","buffer","child_process","cluster","console","constants","crypto","_debugger","dgram","dns","domain","events","freelist","fs","http","https","_linklist","module","net","os","path","punycode","querystring","readline","repl","stream","string_decoder","sys","timers","tls","tty","url","util","vm","zlib"],.11:["_http_server"],"1.0":["process","v8"]}},{}],36:[function(e,t,n){(function(n){var r=n.versions&&n.versions.node&&n.versions.node.split(".")||[],i=e("./core.json"),s={};for(var o in i)if(Object.prototype.hasOwnProperty.call(i,o)&&function(e){if("*"===e)return!0;for(var t=e.split("."),n=0;n<3;++n)if((r[n]||0)>=(t[n]||0))return!0;return!1}(o))for(var a=0;a<i[o].length;++a)s[i[o][a]]=!0;t.exports=s}).call(this,e("_process"))},{"./core.json":35,_process:31}],37:[function(e,t,n){var r=e("path"),i=r.parse||e("path-parse");t.exports=function(e,t){var n=t&&t.moduleDirectory?[].concat(t.moduleDirectory):["node_modules"],s=r.resolve(e),o="/";/^([A-Za-z]:)/.test(s)?o="":/^\\\\/.test(s)&&(o="\\\\");for(var a=[s],u=i(s);u.dir!==a[a.length-1];)a.push(u.dir),u=i(u.dir);var c=a.reduce(function(e,t){return e.concat(n.map(function(e){return r.join(o,t,e)}))},[]);return t&&t.paths?c.concat(t.paths):c}},{path:29,"path-parse":30}],38:[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<h.length;t++){var n=e+h[t];if(l(n))return n}}function u(e){var t=s.join(e,"/package.json");if(l(t)){var r=p(t,"utf8");try{var i=JSON.parse(r);if(c.packageFilter&&(i=c.packageFilter(i,e)),i.main){var o=n(s.resolve(e,i.main));if(o)return o;var a=u(s.resolve(e,i.main));if(a)return a}}catch(e){}}return n(s.join(e,"/index"))}if("string"!=typeof e)throw new TypeError("Path must be a string.");var c=t||{},l=c.isFile||function(e){try{var t=i.statSync(e)}catch(e){if(e&&("ENOENT"===e.code||"ENOTDIR"===e.code))return!1;throw e}return t.isFile()||t.isFIFO()},p=c.readFileSync||i.readFileSync,h=c.extensions||[".js"],f=c.basedir||s.dirname(o());if(c.paths=c.paths||[],/^(?:\.\.?(?:\/|$)|\/|([A-Za-z]:)?[/\\])/.test(e)){var d=s.resolve(f,e);".."!==e&&"/"!==e.slice(-1)||(d+="/");var y=n(d)||u(d);if(y)return y}else{var m=function(e,t){for(var r=a(t,c),i=0;i<r.length;i++){var o=r[i],l=n(s.join(o,"/",e));if(l)return l;var p=u(s.join(o,"/",e));if(p)return p}}(e,f);if(m)return m}if(r[e])return e;var g=new Error("Cannot find module '"+e+"' from '"+f+"'");throw g.code="MODULE_NOT_FOUND",g}},{"./caller.js":34,"./core":36,"./node-modules-paths.js":37,fs:5,path:29}],nodent:[function(e,t,n){(function(n,r,i,s,o,a,u,c){"use strict";function l(e){var t={};return e.forEach(function(e){if(e&&"object"==typeof e)for(var n in e)t[n]=e[n]}),t}function p(e){throw e}function h(){}function f(e){return"ExpressionStatement"===e.type&&("StringLiteral"===e.expression.type||"Literal"===e.expression.type&&"string"==typeof e.expression.value)}function d(t,n,r){n||(n=console.warn.bind(console));var i,s,o={};if("string"==typeof t)(i=t.match(j))&&(s=i[1]||"default");else for(var a=0;a<t.body.length&&f(t.body[a].type);a++){var u="'"+t.body[a].value+"'";if(i=u.match(j)){s=i[1]||"default";break}}if(!i){if(!R.noUseDirective)return null;s="default",i=[null,null,"{}"]}if(s)try{r?e("fs").lstatSync(r).isDirectory()||(r=e("path").dirname(r)):r=e("path").resolve(".");var c=e("resolve").sync("package.json",{moduleDirectory:[""],extensions:[""],basedir:r}),p=JSON.parse(T.readFileSync(c)).nodent.directive[s]}catch(e){}try{o=l([I[s],p,i[2]&&JSON.parse(i[2])])}catch(e){n("Invalid literal compiler option: "+(i&&i[0]||"<no options found>"))}return o.promises||o.es7||o.generators||o.engine?((o.promises||o.es7)&&o.generators&&(n("No valid 'use nodent' directive, assumed -es7 mode"),o=I.es7),(o.generators||o.engine)&&(o.promises=!0),o.promises&&(o.es7=!0),o):null}function y(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),"#!"===e.substring(0,2)&&(e="//"+e),e}function m(e){return(e instanceof i?e:new i(e.toString(),"binary")).toString("base64")}function g(e,t){return t=t||e.log,function(n,r,i){var s=y(T.readFileSync(r,"utf8")),o=e.parse(s,r,i);i=i||d(o.ast,t,r),e.asynchronize(o,void 0,i,t),e.prettyPrint(o,i),n._compile(o.code,o.filename)}}function v(e){return e=e||q,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 b(t,n){var r=t.filename.split("/"),i=r.pop(),s=N(t.ast,n&&n.sourcemap?{map:{startLine:n.mapStartLine||0,file:i+"(original)",sourceMapRoot:r.join("/"),sourceContent:t.origCode}}:null,t.origCode);if(n&&n.sourcemap)try{var o="",a=s.map.toJSON();if(a){var u=e("source-map").SourceMapConsumer;t.sourcemap=a,P[t.filename]={map:a,smc:new u(a)},o="\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,"+m(JSON.stringify(a))+"\n"}t.code=s.code+o}catch(e){t.code=s}else t.code=s;return t}function x(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n);var i={origCode:e.toString(),filename:t};try{return i.ast=F.parse(i.origCode,r&&r.parser),r.babelTree&&F.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 s=i.origCode.substr(e.pos-e.loc.column);s=s.split("\n")[0],e.message+=" "+t+" (nodent)\n"+s+"\n"+s.replace(/[\S ]/g,"-").substring(0,e.loc.column)+"^",e.stack=""}throw e}}function w(t,n){n=n||{};var r=t+"|"+Object.keys(n).sort().reduce(function(e,t){return e+t+JSON.stringify(n[t])},"");return this.covers[r]||(t.indexOf("/")>=0?this.covers[r]=e(t):this.covers[r]=e(c+"/covers/"+t)),this.covers[r](this,n)}function E(e,t,n,r){"object"==typeof n&&void 0===r&&(r=n),r=r||{};for(var i in R)i in r||(r[i]=R[i]);var s=this.parse(e,t,null,r);return this.asynchronize(s,null,r,this.log||h),this.prettyPrint(s,r),s}function S(t,n,r){var i={},s=this;n||(n=/\.njs$/),r?r.compiler||(r.compiler={}):r={compiler:{}};var o=l([B,r.compiler]);return function(a,u,c){function l(e){u.statusCode=500,u.write(e.toString()),u.end()}if(i[a.url])return u.setHeader("Content-Type",i[a.url].contentType),r.setHeaders&&r.setHeaders(u),u.write(i[a.url].output),void u.end();if(!(a.url.match(n)||r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)))return c&&c();var p=t+a.url;if(r.extensions&&!T.existsSync(p))for(var h=0;h<r.extensions.length;h++)if(T.existsSync(p+"."+r.extensions[h])){p=p+"."+r.extensions[h];break}T.readFile(p,function(t,n){if(t)return l(t);try{var c,p;r.htmlScriptRegex&&a.url.match(r.htmlScriptRegex)?(c=e("./htmlScriptParser")(s,n.toString(),a.url,r),p="text/html"):(r.runtime?(c="Function.prototype."+o.$asyncbind+" = "+M.toString()+";",o.generators&&(c+="Function.prototype."+o.$asyncspawn+" = "+V.toString()+";"),o.wrapAwait&&!o.promises&&(c+="Object."+o.$makeThenable+" = "+q.resolve.toString()+";"),o.mapStartLine=c.split("\n").length,c+="\n"):c="",c+=s.compile(n.toString(),a.url,null,o).code,p="application/javascript"),u.setHeader("Content-Type",p),r.enableCache&&(i[a.url]={output:c,contentType:p}),r.setHeaders&&r.setHeaders(u),u.write(c),u.end()}catch(e){return l(e)}})}}function k(e){this.covers={},this._ident=k.prototype.version+"_"+Math.random(),this.setOptions(e)}function A(e,t){function n(e){var t=e.getFileName();if(t&&P[t]){var n=P[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}return e+t.map(n).join("")}function _(e){var t={};t[R.$asyncbind]={value:M,writable:!0,enumerable:!1,configurable:!0},t[R.$asyncspawn]={value:V,writable:!0,enumerable:!1,configurable:!0};try{Object.defineProperties(Function.prototype,t)}catch(t){e.log("Function prototypes already assigned: ",t.messsage)}R[R.$error]in r||(r[R[R.$error]]=p),e.augmentObject&&Object.defineProperties(Object.prototype,{asyncify:{value:function(e,t,n){return v(e)(this,t,n)},writable:!0,configurable:!0},isThenable:{value:function(){return q.isThenable(this)},writable:!0,configurable:!0}}),Object[R.$makeThenable]=q.resolve}function C(t){function n(e,t){e=e.split("."),t=t.split(".");for(var n=0;n<3;n++){if(e[n]<t[n])return-1;if(e[n]>t[n])return 1}return 0}function r(i,s){if(!s.match(/nodent\/nodent\.js$/)){if(s.match(/node_modules\/nodent\/.*\.js$/))return L(i,s);for(var u=0;u<o.length;u++)if(s.slice(0,o[u].path.length)==o[u].path){if(o[u].jsCompiler){if(o[u].jsCompiler===r)break;return o[u].jsCompiler.apply(this,arguments)}return L(i,s)}var c=d(y(T.readFileSync(s,"utf8")),t.log,s);return c?a(i,s,c):L(i,s)}var l={path:s.replace(/\/node_modules\/nodent\/nodent\.js$/,"")};l.path&&(l.version=JSON.parse(T.readFileSync(s.replace(/nodent\.js$/,"package.json"))).version,L(i,s),n(l.version,k.prototype.version)<0&&(l.originalNodentLoader=i.exports,i.exports=function(){var n=e.extensions[".js"],r=l.originalNodentLoader.apply(this,arguments);return l.jsCompiler=e.extensions[".js"],e.extensions[".js"]=n,_(t),r},Object.keys(l.originalNodentLoader).forEach(function(e){i.exports[e]=l.originalNodentLoader[e]}),o.push(l),o=o.sort(function(e,t){return t.path.length-e.path.length})))}function i(n){if(Array.isArray(n))return n.forEach(i);e.extensions[n]&&Object.keys(t).filter(function(e){return U[e]!=t[e]}).length&&t.log("File extension "+n+" already configured for async/await compilation."),e.extensions[n]=g(U,t.log)}if(t){for(var s in t)if("use"!==s&&!$.hasOwnProperty(s))throw new Error("NoDent: unknown option: "+s+"="+JSON.stringify(t[s]))}else t={};U?U.setOptions(t):(Object.keys($).forEach(function(e){e in t||(t[e]=$[e])}),U=new k(t)),t.dontMapStackTraces||(Error.prepareStackTrace=A),_(t);var o=[];if(!t.dontInstallRequireHook){if(!L){L=e.extensions[".js"];var a=g(U,t.log);e.extensions[".js"]=r}t.extension&&i(t.extension)}return t.use&&(Array.isArray(t.use)?(t.log("Warning: nodent({use:[...]}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),t.use.length&&t.use.forEach(function(e){U[e]=U.require(e)})):(t.log("Warning: nodent({use:{...}}) is deprecated. Use nodent.require(module,options)\n"+(new Error).stack.split("\n")[2]),Object.keys(t.use).forEach(function(e){U[e]=U.require(e,t.use[e])}))),U}var L,P={},T=e("fs"),N=e("./lib/output"),F=e("./lib/parser"),O=e("./lib/arboriculture"),$={log:function(e){console.warn("Nodent: "+e)},augmentObject:!1,extension:".njs",dontMapStackTraces:!1,asyncStackTrace:!1,babelTree:!1,dontInstallRequireHook:!1},B={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"},R=Object.create(B,{es7:{value:!0,writable:!0,enumerable:!0}}),I={default:R,es7:Object.create(R),promise:Object.create(R,{promises:{value:!0,writable:!0,enumerable:!0}}),generator:Object.create(R,{generators:{value:!0,writable:!0,enumerable:!0},es7:{value:!1,writable:!0,enumerable:!0}}),engine:Object.create(R,{engine:{value:!0,writable:!0,enumerable:!0},promises:{value:!0,writable:!0,enumerable:!0}})};I.promises=I.promise,I.generators=I.generator;var j=/^\s*['"]use\s+nodent-?([a-zA-Z0-9]*)?(\s*.*)?['"]\s*;/,D=e("nodent-runtime"),M=D.$asyncbind,V=D.$asyncspawn,q=M.Thenable;k.prototype.setOptions=function(e){return this.log=!1===e.log?h:e.log||this.log,this.options=l([this.options,e]),delete this.options.log,this},M.call(M),k.prototype.version=e("./package.json").version,k.prototype.Thenable=q,k.prototype.EagerThenable=M.EagerThenableFactory,k.prototype.isThenable=function(e){return e&&e instanceof Object&&"function"==typeof e.then},k.prototype.asyncify=v,k.prototype.require=w,k.prototype.generateRequestHandler=S,k.prototype.$asyncspawn=V,k.prototype.$asyncbind=M,k.prototype.parse=x,k.prototype.compile=E,k.prototype.asynchronize=O.asynchronize,k.prototype.prettyPrint=b,k.prototype.parseCompilerOptions=d,k.prototype.getDefaultCompileOptions=void 0,Object.defineProperty(k.prototype,"Promise",{get:function(){return initOpts.log("Warning: nodent.Promise is deprecated. Use nodent.Thenable instead"),q},enumerable:!1,configurable:!1});var U;C.setDefaultCompileOptions=function(e,t){return e&&Object.keys(e).forEach(function(t){if(!(t in R))throw new Error("NoDent: unknown compiler option: "+t);R[t]=e[t]}),t&&Object.keys(t).forEach(function(e){if(!(e in t))throw new Error("NoDent: unknown configuration option: "+e);$[e]=t[e]}),C},C.setCompileOptions=function(e,t){return optionSet[e]=optionSet[e]||l([R]),t&&Object.keys(t).forEach(function(n){if(!(n in R))throw new Error("NoDent: unknown compiler option: "+n);optionSet[e][n]=t[n]}),C},C.asyncify=v,C.Thenable=M.Thenable,C.EagerThenable=M.EagerThenableFactory,t.exports=C,e.main===t&&n.argv.length>=3&&function(){function t(e,t){try{var n,s;if(o.fromast){if(e=JSON.parse(e),n={origCode:"",filename:i,ast:e},!(s=d(e,a.log))){var u=o.use?'"use nodent-'+o.use+'";':'"use nodent";';s=d(u,a.log),console.warn("/* "+i+": No 'use nodent*' directive, assumed "+u+" */")}}else(s=d(o.use?'"use nodent-'+o.use+'";':e,a.log))||(s=d('"use nodent";',a.log),o.dest||console.warn("/* "+i+": 'use nodent*' directive missing/ignored, assumed 'use nodent;' */")),n=a.parse(e,i,s);if(o.parseast||o.pretty||a.asynchronize(n,void 0,s,a.log),a.prettyPrint(n,s),o.out||o.pretty||o.dest){if(o.dest&&!t)throw new Error("Can't write unknown file to "+o.dest);var c="";o.runtime&&(c+="Function.prototype.$asyncbind = "+Function.prototype.$asyncbind.toString()+";\n",c+="global.$error = global.$error || "+r.$error.toString()+";\n"),c+=n.code,t&&o.dest?(T.writeFileSync(o.dest+t,c),console.log("Compiled",o.dest+t)):console.log(c)}(o.minast||o.parseast)&&console.log(JSON.stringify(n.ast,function(e,t){return"$"===e[0]||e.match(/^(start|end|loc)$/)?void 0:t},2,null)),o.ast&&console.log(JSON.stringify(n.ast,function(e,t){return"$"===e[0]?void 0:t},0)),o.exec&&new Function(n.code)()}catch(e){console.error(e)}}var i,s=e("path"),o=(n.env.NODENT_OPTS&&JSON.parse(n.env.NODENT_OPTS),function(e){for(var t=[],r=e||2;r<n.argv.length;r++)if("--"===n.argv[r].slice(0,2)){var i=n.argv[r].slice(2).split("=");t[i[0]]=i[1]||!0}else t.push(n.argv[r]);return t}());C.setDefaultCompileOptions({sourcemap:o.sourcemap,wrapAwait:o.wrapAwait,lazyThenables:o.lazyThenables,noRuntime:o.noruntime,es6target:o.es6target,parser:o.noextensions?{noNodentExtensions:!0}:void 0});var a=C({augmentObject:!0});if(!(o.fromast||o.parseast||o.pretty||o.out||o.dest||o.ast||o.minast||o.exec))try{var u=s.resolve(o[0]);return e(u)}catch(e){throw e&&(e.message=o[0]+": "+e.message),e}if(0==o.length||"-"===o[0])return i="(stdin)",function(e){return new q(function(t,n){var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var e=r.map(function(e){return e.toString()}).join("");return t(e)}),e.on("error",n)}.$asyncbind(this))}(n.stdin).then(t,p);for(var c=0;c<o.length;c++)i=s.resolve(o[c]),t(y(T.readFileSync(i,"utf8")),o[c])}()}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{},e("buffer").Buffer,arguments[3],arguments[4],arguments[5],arguments[6],"/node_modules/nodent")},{"./htmlScriptParser":11,"./lib/arboriculture":12,"./lib/output":13,"./lib/parser":14,"./package.json":28,_process:31,buffer:6,fs:5,"nodent-runtime":8,path:29,resolve:32,"source-map":27}]},{},[]); \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js
deleted file mode 100644
index c5cb364784..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/dist/regenerator.min.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/* regenerator 0.9.7: 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<n.length;a++)i(n[a]);return i}({1:[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}},{}],2:[function(e,t,r){"use strict";function n(){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}Object.defineProperty(t,"exports",{enumerable:!0,get:n})},{}],3:[function(e,t,r){(function(r){"use strict";function n(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,s=Math.min(r,n);i<s;++i)if(e[i]!==t[i]){r=e[i],n=t[i];break}return r<n?-1:n<r?1:0}function i(e){return r.Buffer&&"function"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(e):!(null==e||!e._isBuffer)}function s(e){return Object.prototype.toString.call(e)}function a(e){return!i(e)&&("function"==typeof r.ArrayBuffer&&("function"==typeof ArrayBuffer.isView?ArrayBuffer.isView(e):!!e&&(e instanceof DataView||!!(e.buffer&&e.buffer instanceof ArrayBuffer))))}function o(e){if(x.isFunction(e)){if(D)return e.name;var t=e.toString().match(S);return t&&t[1]}}function u(e,t){return"string"==typeof e?e.length<t?e:e.slice(0,t):e}function l(e){if(D||!x.isFunction(e))return x.inspect(e);var t=o(e);return"[Function"+(t?": "+t:"")+"]"}function c(e){return u(l(e.actual),128)+" "+e.operator+" "+u(l(e.expected),128)}function p(e,t,r,n,i){throw new C.AssertionError({message:r,actual:e,expected:t,operator:n,stackStartFunction:i})}function h(e,t){e||p(e,!0,t,"==",C.ok)}function f(e,t,r,o){if(e===t)return!0;if(i(e)&&i(t))return 0===n(e,t);if(x.isDate(e)&&x.isDate(t))return e.getTime()===t.getTime();if(x.isRegExp(e)&&x.isRegExp(t))return e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.lastIndex===t.lastIndex&&e.ignoreCase===t.ignoreCase;if(null!==e&&"object"==typeof e||null!==t&&"object"==typeof t){if(a(e)&&a(t)&&s(e)===s(t)&&!(e instanceof Float32Array||e instanceof Float64Array))return 0===n(new Uint8Array(e.buffer),new Uint8Array(t.buffer));if(i(e)!==i(t))return!1;var u=(o=o||{actual:[],expected:[]}).actual.indexOf(e);return-1!==u&&u===o.expected.indexOf(t)||(o.actual.push(e),o.expected.push(t),m(e,t,r,o))}return r?e===t:e==t}function d(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function m(e,t,r,n){if(null===e||void 0===e||null===t||void 0===t)return!1;if(x.isPrimitive(e)||x.isPrimitive(t))return e===t;if(r&&Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;var i=d(e),s=d(t);if(i&&!s||!i&&s)return!1;if(i)return e=A.call(e),t=A.call(t),f(e,t,r);var a,o,u=_(e),l=_(t);if(u.length!==l.length)return!1;for(u.sort(),l.sort(),o=u.length-1;o>=0;o--)if(u[o]!==l[o])return!1;for(o=u.length-1;o>=0;o--)if(a=u[o],!f(e[a],t[a],r,n))return!1;return!0}function y(e,t,r){f(e,t,!0)&&p(e,t,r,"notDeepStrictEqual",y)}function g(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 b(e){var t;try{e()}catch(e){t=e}return t}function v(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=b(t),n=(r&&r.name?" ("+r.name+").":".")+(n?" "+n:"."),e&&!i&&p(i,r,"Missing expected exception"+n);var s="string"==typeof n,a=!e&&x.isError(i),o=!e&&i&&!r;if((a&&s&&g(i,r)||o)&&p(i,r,"Got unwanted exception"+n),e&&i&&r&&!g(i,r)||!e&&i)throw i}var x=e("util/"),E=Object.prototype.hasOwnProperty,A=Array.prototype.slice,D=function(){return"foo"===function(){}.name}(),C=t.exports=h,S=/\s*function\s+([^\(\s]*)\s*/;C.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=c(this),this.generatedMessage=!0);var t=e.stackStartFunction||p;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}}},x.inherits(C.AssertionError,Error),C.fail=p,C.ok=h,C.equal=function(e,t,r){e!=t&&p(e,t,r,"==",C.equal)},C.notEqual=function(e,t,r){e==t&&p(e,t,r,"!=",C.notEqual)},C.deepEqual=function(e,t,r){f(e,t,!1)||p(e,t,r,"deepEqual",C.deepEqual)},C.deepStrictEqual=function(e,t,r){f(e,t,!0)||p(e,t,r,"deepStrictEqual",C.deepStrictEqual)},C.notDeepEqual=function(e,t,r){f(e,t,!1)&&p(e,t,r,"notDeepEqual",C.notDeepEqual)},C.notDeepStrictEqual=y,C.strictEqual=function(e,t,r){e!==t&&p(e,t,r,"===",C.strictEqual)},C.notStrictEqual=function(e,t,r){e===t&&p(e,t,r,"!==",C.notStrictEqual)},C.throws=function(e,t,r){v(!0,e,t,r)},C.doesNotThrow=function(e,t,r){v(!1,e,t,r)},C.ifError=function(e){if(e)throw e};var _=Object.keys||function(e){var t=[];for(var r in e)E.call(e,r)&&t.push(r);return t}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"util/":602}],4:[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":20,"../lib/types":21,"./es7":9}],5:[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":20,"../lib/types":21,"./babel":4,"./flow":11}],6:[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":20,"../lib/types":21}],7:[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":21,"./core":6}],8:[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":20,"../lib/types":21,"./core":6}],9:[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":20,"../lib/types":21,"./es6":8}],10:[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":20,"../lib/types":21,"./es7":9}],11:[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":20,"../lib/types":21,"./es7":9}],12:[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":20,"../lib/types":21,"./es7":9}],13:[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":20,"../lib/types":21,"./core":6}],14:[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":15,"./lib/node-path":16,"./lib/path":18,"./lib/path-visitor":17,"./lib/types":21}],15:[function(e,t,r){t.exports=function(t){function r(e,t,r){return c.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||(c.check(e)?s(e,t,r):p.check(e)?a(e,t,r):h.check(e)?h.check(t)&&+e==+t:f.check(e)?f.check(t)&&e.source===t.source&&e.global===t.global&&e.multiline===t.multiline&&e.ignoreCase===t.ignoreCase:e==t)}function s(e,t,r){c.assert(e);var n=e.length;if(!c.check(t)||t.length!==n)return r&&r.push("length"),!1;for(var s=0;s<n;++s){if(r&&r.push(s),s in e!=s in t)return!1;if(!i(e[s],t[s],r))return!1;if(r){var a=r.pop();if(a!==s)throw new Error(""+a)}}return!0}function a(e,t,r){if(p.assert(e),!p.check(t))return!1;if(e.type!==t.type)return r&&r.push("type"),!1;var n=u(e),s=n.length,a=u(t),o=a.length;if(s===o){for(var c=0;c<s;++c){var h=n[c],f=l(e,h),m=l(t,h);if(r&&r.push(h),!i(f,m,r))return!1;if(r){var y=r.pop();if(y!==h)throw new Error(""+y)}}return!0}if(!r)return!1;var g=Object.create(null);for(c=0;c<s;++c)g[n[c]]=!0;for(c=0;c<o;++c){if(h=a[c],!d.call(g,h))return r.push(h),!1;delete g[h]}for(h in g){r.push(h);break}return!1}var o=t.use(e("../lib/types")),u=o.getFieldNames,l=o.getFieldValue,c=o.builtInTypes.array,p=o.builtInTypes.object,h=o.builtInTypes.Date,f=o.builtInTypes.RegExp,d=Object.prototype.hasOwnProperty;return r.assert=function(e,t){var i=[];if(!r(e,t,i)){if(0!==i.length)throw new Error("Nodes differ in the following path: "+i.map(n).join(""));if(e!==t)throw new Error("Nodes must be equal")}},r}},{"../lib/types":21}],16:[function(e,t,r){t.exports=function(t){function r(e,t,n){if(!(this instanceof r))throw new Error("NodePath constructor cannot be invoked without 'new'");f.call(this,e,t,n)}function n(e){return l.BinaryExpression.check(e)||l.LogicalExpression.check(e)}function i(e){return!!l.CallExpression.check(e)||(h.check(e)?e.some(i):!!l.Node.check(e)&&u.someField(e,function(e,t){return i(t)}))}function s(e){for(var t,r;e.parent;e=e.parent){if(t=e.node,r=e.parent.node,l.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(l.ExpressionStatement.check(r)&&"expression"===e.name){if(r.expression!==t)throw new Error("Nodes must be equal");return!0}if(l.SequenceExpression.check(r)&&"expressions"===e.parent.name&&0===e.name){if(r.expressions[0]!==t)throw new Error("Nodes must be equal")}else if(l.CallExpression.check(r)&&"callee"===e.name){if(r.callee!==t)throw new Error("Nodes must be equal")}else if(l.MemberExpression.check(r)&&"object"===e.name){if(r.object!==t)throw new Error("Nodes must be equal")}else if(l.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(!l.UnaryExpression.check(r)||r.prefix||"argument"!==e.name)return!1;if(r.argument!==t)throw new Error("Nodes must be equal")}}return!0}function a(e){if(l.VariableDeclaration.check(e.node)){var t=e.get("declarations").value;if(!t||0===t.length)return e.prune()}else if(l.ExpressionStatement.check(e.node)){if(!e.get("expression").value)return e.prune()}else l.IfStatement.check(e.node)&&o(e);return e}function o(e){var t=e.get("test").value,r=e.get("alternate").value,n=e.get("consequent").value;if(n||r){if(!n&&r){var i=c.unaryExpression("!",t,!0);l.UnaryExpression.check(t)&&"!"===t.operator&&(i=t.argument),e.get("test").replace(i),e.get("consequent").replace(r),e.get("alternate").replace()}}else{var s=c.expressionStatement(t);e.replace(s)}}var u=t.use(e("./types")),l=u.namedTypes,c=u.builders,p=u.builtInTypes.number,h=u.builtInTypes.array,f=t.use(e("./path")),d=t.use(e("./scope")),m=r.prototype=Object.create(f.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}});Object.defineProperties(m,{node:{get:function(){return Object.defineProperty(this,"node",{configurable:!0,value:this._computeNode()}),this.node}},parent:{get:function(){return Object.defineProperty(this,"parent",{configurable:!0,value:this._computeParent()}),this.parent}},scope:{get:function(){return Object.defineProperty(this,"scope",{configurable:!0,value:this._computeScope()}),this.scope}}}),m.replace=function(){return delete this.node,delete this.parent,delete this.scope,f.prototype.replace.apply(this,arguments)},m.prune=function(){var e=this.parent;return this.replace(),a(e)},m._computeNode=function(){var e=this.value;if(l.Node.check(e))return e;var t=this.parentPath;return t&&t.node||null},m._computeParent=function(){var e=this.value,t=this.parentPath;if(!l.Node.check(e)){for(;t&&!l.Node.check(t.value);)t=t.parentPath;t&&(t=t.parentPath)}for(;t&&!l.Node.check(t.value);)t=t.parentPath;return t||null},m._computeScope=function(){var e=this.value,t=this.parentPath,r=t&&t.scope;return l.Node.check(e)&&d.isEstablishedBy(e)&&(r=new d(this,r)),r||null},m.getValueProperty=function(e){return u.getFieldValue(this.value,e)},m.needsParens=function(e){if(!(s=this.parentPath))return!1;var t=this.value;if(!l.Expression.check(t))return!1;if("Identifier"===t.type)return!1;for(;!l.Node.check(s.value);)if(!(s=s.parentPath))return!1;var r=s.value;switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===r.type&&"object"===this.name&&r.object===t;case"BinaryExpression":case"LogicalExpression":switch(r.type){case"CallExpression":return"callee"===this.name&&r.callee===t;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===this.name&&r.object===t;case"BinaryExpression":case"LogicalExpression":var n=r.operator,s=y[n],a=t.operator,o=y[a];if(s>o)return!0;if(s===o&&"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&&p.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 y={};return[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%"]].forEach(function(e,t){e.forEach(function(e){y[e]=t})}),m.canBeFirstInStatement=function(){var e=this.node;return!l.FunctionExpression.check(e)&&!l.ObjectExpression.check(e)},m.firstInStatement=function(){return s(this)},r}},{"./path":18,"./scope":19,"./types":21}],17:[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=i(this),this._shouldVisitComments=n.call(this._methodNameTable,"Block")||n.call(this._methodNameTable,"Line"),this.Context=o(this),this._visiting=!1,this._changeReported=!1}function i(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=u.computeSupertypeLookupTable(t),i=Object.create(null),s=(t=Object.keys(n)).length,a=0;a<s;++a){var o=t[a];r="visit"+n[o],h.check(e[r])&&(i[o]=r)}return i}function s(e,t){for(var r in t)n.call(t,r)&&(e[r]=t[r]);return e}function a(e,t){if(!(e instanceof l))throw new Error("");if(!(t instanceof r))throw new Error("");var i=e.value;if(c.check(i))e.each(t.visitWithoutReset,t);else if(p.check(i)){var s=u.getFieldNames(i);t._shouldVisitComments&&i.comments&&s.indexOf("comments")<0&&s.push("comments");for(var a=s.length,o=[],h=0;h<a;++h){var f=s[h];n.call(i,f)||(i[f]=u.getFieldValue(i,f)),o.push(e.get(f))}for(h=0;h<a;++h)t.visitWithoutReset(o[h])}else;return e.value}function o(e){function t(n){if(!(this instanceof t))throw new Error("");if(!(this instanceof r))throw new Error("");if(!(n instanceof l))throw new Error("");Object.defineProperty(this,"visitor",{value:e,writable:!1,enumerable:!0,configurable:!1}),this.currentPath=n,this.needToCallTraverse=!0,Object.seal(this)}if(!(e instanceof r))throw new Error("");var n=t.prototype=Object.create(e);return n.constructor=t,s(n,d),t}var u=t.use(e("./types")),l=t.use(e("./node-path")),c=(u.namedTypes.Printable,u.builtInTypes.array),p=u.builtInTypes.object,h=u.builtInTypes.function;r.fromMethodsObject=function(e){function t(){if(!(this instanceof t))throw new Error("Visitor constructor cannot be invoked without 'new'");r.call(this)}if(e instanceof r)return e;if(!p.check(e))return new r;var n=t.prototype=Object.create(f);return n.constructor=t,s(n,e),s(t,r),h.assert(t.fromMethodsObject),h.assert(t.visit),new t},r.visit=function(e,t){return r.fromMethodsObject(t).visit(e)};var f=r.prototype;f.visit=function(){if(this._visiting)throw new Error("Recursively calling visitor.visit(path) resets visitor state. Try this.visit(path) or this.traverse(path) instead.");this._visiting=!0,this._changeReported=!1,this._abortRequested=!1;for(var e=arguments.length,t=new Array(e),r=0;r<e;++r)t[r]=arguments[r];t[0]instanceof l||(t[0]=new l({root:t[0]}).get("root")),this.reset.apply(this,t);try{var n=this.visitWithoutReset(t[0]),i=!0}finally{if(this._visiting=!1,!i&&this._abortRequested)return t[0].value}return n},f.AbortRequest=function(){},f.abort=function(){var e=this;e._abortRequested=!0;var t=new e.AbortRequest;throw t.cancel=function(){e._abortRequested=!1},t},f.reset=function(e){},f.visitWithoutReset=function(e){if(this instanceof this.Context)return this.visitor.visitWithoutReset(e);if(!(e instanceof l))throw new Error("");var t=e.value,r=t&&"object"==typeof t&&"string"==typeof t.type&&this._methodNameTable[t.type];if(!r)return a(e,this);var n=this.acquireContext(e);try{return n.invokeVisitorMethod(r)}finally{this.releaseContext(n)}},f.acquireContext=function(e){return 0===this._reusableContextStack.length?new this.Context(e):this._reusableContextStack.pop().reset(e)},f.releaseContext=function(e){if(!(e instanceof this.Context))throw new Error("");this._reusableContextStack.push(e),e.currentPath=null},f.reportChanged=function(){this._changeReported=!0},f.wasChangeReported=function(){return this._changeReported};var d=Object.create(null);return d.reset=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof l))throw new Error("");return this.currentPath=e,this.needToCallTraverse=!0,this},d.invokeVisitorMethod=function(e){if(!(this instanceof this.Context))throw new Error("");if(!(this.currentPath instanceof l))throw new Error("");var t=this.visitor[e].call(this,this.currentPath);if(!1===t?this.needToCallTraverse=!1:void 0!==t&&(this.currentPath=this.currentPath.replace(t)[0],this.needToCallTraverse&&this.traverse(this.currentPath)),!1!==this.needToCallTraverse)throw new Error("Must either call this.traverse or return false in "+e);var r=this.currentPath;return r&&r.value},d.traverse=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof l))throw new Error("");if(!(this.currentPath instanceof l))throw new Error("");return this.needToCallTraverse=!1,a(e,r.fromMethodsObject(t||this.visitor))},d.visit=function(e,t){if(!(this instanceof this.Context))throw new Error("");if(!(e instanceof l))throw new Error("");if(!(this.currentPath instanceof l))throw new Error("");return this.needToCallTraverse=!1,r.fromMethodsObject(t||this.visitor).visitWithoutReset(e)},d.reportChanged=function(){this.visitor.reportChanged()},d.abort=function(){this.needToCallTraverse=!1,this.visitor.abort()},r}},{"./node-path":16,"./types":21}],18:[function(e,t,r){var n=Array.prototype,i=(n.slice,n.map,Object.prototype.hasOwnProperty);t.exports=function(t){function r(e,t,n){if(!(this instanceof r))throw new Error("Path constructor cannot be invoked without 'new'");if(t){if(!(t instanceof r))throw new Error("")}else t=null,n=null;this.value=e,this.parentPath=t,this.name=n,this.__childCache=null}function n(e){return e.__childCache||(e.__childCache=Object.create(null))}function s(e,t){var r=n(e),s=e.getValueProperty(t),a=r[t];return i.call(r,t)&&a.value===s||(a=r[t]=new e.constructor(s,e,t)),a}function a(){}function o(e,t,r,s){if(c.assert(e.value),0===t)return a;var o=e.value.length;if(o<1)return a;var u=arguments.length;2===u?(r=0,s=o):3===u?(r=Math.max(r,0),s=o):(r=Math.max(r,0),s=Math.min(s,o)),p.assert(r),p.assert(s);for(var l=Object.create(null),h=n(e),f=r;f<s;++f)if(i.call(e.value,f)){var d=e.get(f);if(d.name!==f)throw new Error("");var m=f+t;d.name=m,l[m]=d,delete h[f]}return delete h.length,function(){for(var t in l){var r=l[t];if(r.name!==+t)throw new Error("");h[t]=r,e.value[t]=r.value}}}function u(e){if(!(e instanceof r))throw new Error("");var t=e.parentPath;if(!t)return e;var i=t.value,s=n(t);if(i[e.name]===e.value)s[e.name]=e;else if(c.check(i)){var a=i.indexOf(e.value);a>=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("");return e}var l=t.use(e("./types")),c=l.builtInTypes.array,p=l.builtInTypes.number,h=r.prototype;return h.getValueProperty=function(e){return this.value[e]},h.get=function(e){for(var t=this,r=arguments,n=r.length,i=0;i<n;++i)t=s(t,r[i]);return t},h.each=function(e,t){for(var r=[],n=this.value.length,s=0,s=0;s<n;++s)i.call(this.value,s)&&(r[s]=this.get(s));for(t=t||this,s=0;s<n;++s)i.call(r,s)&&e.call(t,r[s])},h.map=function(e,t){var r=[];return this.each(function(t){r.push(e.call(this,t))},t),r},h.filter=function(e,t){var r=[];return this.each(function(t){e.call(this,t)&&r.push(t)},t),r},h.shift=function(){var e=o(this,-1),t=this.value.shift();return e(),t},h.unshift=function(e){var t=o(this,arguments.length),r=this.value.unshift.apply(this.value,arguments);return t(),r},h.push=function(e){return c.assert(this.value),delete n(this).length,this.value.push.apply(this.value,arguments)},h.pop=function(){c.assert(this.value);var e=n(this);return delete e[this.value.length-1],delete e.length,this.value.pop()},h.insertAt=function(e,t){var r=arguments.length,n=o(this,r-1,e);if(n===a)return this;e=Math.max(e,0);for(var i=1;i<r;++i)this.value[e+i-1]=arguments[i];return n(),this},h.insertBefore=function(e){for(var t=this.parentPath,r=arguments.length,n=[this.name],i=0;i<r;++i)n.push(arguments[i]);return t.insertAt.apply(t,n)},h.insertAfter=function(e){for(var t=this.parentPath,r=arguments.length,n=[this.name+1],i=0;i<r;++i)n.push(arguments[i]);return t.insertAt.apply(t,n)},h.replace=function(e){var t=[],r=this.parentPath.value,i=n(this.parentPath),s=arguments.length;if(u(this),c.check(r)){for(var a=r.length,l=o(this.parentPath,s-1,this.name+1),p=[this.name,1],h=0;h<s;++h)p.push(arguments[h]);if(r.splice.apply(r,p)[0]!==this.value)throw new Error("");if(r.length!==a-1+s)throw new Error("");if(l(),0===s)delete this.value,delete i[this.name],this.__childCache=null;else{if(r[this.name]!==e)throw new Error("");for(this.value!==e&&(this.value=e,this.__childCache=null),h=0;h<s;++h)t.push(this.parentPath.get(this.name+h));if(t[0]!==this)throw new Error("")}}else if(1===s)this.value!==e&&(this.__childCache=null),this.value=r[this.name]=e,t.push(this);else{if(0!==s)throw new Error("Could not replace path");delete r[this.name],delete this.value,this.__childCache=null}return t},r}},{"./types":21}],19:[function(e,t,r){var n=Object.prototype.hasOwnProperty;t.exports=function(t){function r(n,i){if(!(this instanceof r))throw new Error("Scope constructor cannot be invoked without 'new'");if(!(n instanceof t.use(e("./node-path"))))throw new Error("");b.assert(n.value);var s;if(i){if(!(i instanceof r))throw new Error("");s=i.depth+1}else i=null,s=0;Object.defineProperties(this,{path:{value:n},node:{value:n.value},isGlobal:{value:!i,enumerable:!0},depth:{value:s},parent:{value:i},bindings:{value:{}},types:{value:{}}})}function i(e,t,r){var n=e.value;b.assert(n),h.CatchClause.check(n)?u(e.get("param"),t):s(e,t,r)}function s(e,t,r){var n=e.value;e.parent&&h.FunctionExpression.check(e.parent.node)&&e.parent.node.id&&u(e.parent.get("id"),t),n&&(m.check(n)?e.each(function(e){o(e,t,r)}):h.Function.check(n)?(e.get("params").each(function(e){u(e,t)}),o(e.get("body"),t,r)):h.TypeAlias&&h.TypeAlias.check(n)?l(e.get("id"),r):h.VariableDeclarator.check(n)?(u(e.get("id"),t),o(e.get("init"),t,r)):"ImportSpecifier"===n.type||"ImportNamespaceSpecifier"===n.type||"ImportDefaultSpecifier"===n.type?u(e.get(n.local?"local":n.name?"name":"id"),t):f.check(n)&&!d.check(n)&&c.eachField(n,function(n,i){var s=e.get(n);if(!a(s,i))throw new Error("");o(s,t,r)}))}function a(e,t){return e.value===t||!(!Array.isArray(e.value)||0!==e.value.length||!Array.isArray(t)||0!==t.length)}function o(e,t,r){var i=e.value;if(!i||d.check(i));else if(h.FunctionDeclaration.check(i)&&null!==i.id)u(e.get("id"),t);else if(h.ClassDeclaration&&h.ClassDeclaration.check(i))u(e.get("id"),t);else if(b.check(i)){if(h.CatchClause.check(i)){var a=i.param.name,o=n.call(t,a);s(e.get("body"),t,r),o||delete t[a]}}else s(e,t,r)}function u(e,t){var r=e.value;h.Pattern.assert(r),h.Identifier.check(r)?n.call(t,r.name)?t[r.name].push(e):t[r.name]=[e]:h.ObjectPattern&&h.ObjectPattern.check(r)?e.get("properties").each(function(e){var r=e.value;h.Pattern.check(r)?u(e,t):h.Property.check(r)?u(e.get("value"),t):h.SpreadProperty&&h.SpreadProperty.check(r)&&u(e.get("argument"),t)}):h.ArrayPattern&&h.ArrayPattern.check(r)?e.get("elements").each(function(e){var r=e.value;h.Pattern.check(r)?u(e,t):h.SpreadElement&&h.SpreadElement.check(r)&&u(e.get("argument"),t)}):h.PropertyPattern&&h.PropertyPattern.check(r)?u(e.get("pattern"),t):(h.SpreadElementPattern&&h.SpreadElementPattern.check(r)||h.SpreadPropertyPattern&&h.SpreadPropertyPattern.check(r))&&u(e.get("argument"),t)}function l(e,t){var r=e.value;h.Pattern.assert(r),h.Identifier.check(r)&&(n.call(t,r.name)?t[r.name].push(e):t[r.name]=[e])}var c=t.use(e("./types")),p=c.Type,h=c.namedTypes,f=h.Node,d=h.Expression,m=c.builtInTypes.array,y=c.builders,g=[h.Program,h.Function,h.CatchClause],b=p.or.apply(p,g);r.isEstablishedBy=function(e){return b.check(e)};var v=r.prototype;return v.didScan=!1,v.declares=function(e){return this.scan(),n.call(this.bindings,e)},v.declaresType=function(e){return this.scan(),n.call(this.types,e)},v.declareTemporary=function(e){if(e){if(!/^[a-z$_]/i.test(e))throw new Error("")}else e="t$";e+=this.depth.toString(36)+"$",this.scan();for(var t=0;this.declares(e+t);)++t;var r=e+t;return this.bindings[r]=c.builders.identifier(r)},v.injectTemporary=function(e,t){e||(e=this.declareTemporary());var r=this.path.get("body");return h.BlockStatement.check(r.value)&&(r=r.get("body")),r.unshift(y.variableDeclaration("var",[y.variableDeclarator(e,t||null)])),e},v.scan=function(e){if(e||!this.didScan){for(var t in this.bindings)delete this.bindings[t];i(this.path,this.bindings,this.types),this.didScan=!0}},v.getBindings=function(){return this.scan(),this.bindings},v.getTypes=function(){return this.scan(),this.types},v.lookup=function(e){for(var t=this;t&&!t.declares(e);t=t.parent);return t},v.lookupType=function(e){for(var t=this;t&&!t.declaresType(e);t=t.parent);return t},v.getGlobalScope=function(){for(var e=this;!e.isGlobal;)e=e.parent;return e},r}},{"./node-path":16,"./types":21}],20:[function(e,t,r){t.exports=function(t){var r={},n=t.use(e("../lib/types")),i=n.Type,s=n.builtInTypes,a=s.number;r.geq=function(e){return new i(function(t){return a.check(t)&&t>=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":21}],21:[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 _.check(e)?"{"+Object.keys(e).map(function(t){return t+": "+e[t]}).join(", ")+"}":S.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 A[r]=i,t&&"function"==typeof t.constructor&&(x.push(t.constructor),E.push(i)),i}function n(t,r){if(t instanceof e)return t;if(t instanceof c)return t.type;if(S.check(t))return e.fromArray(t);if(_.check(t))return e.fromObject(t);if(C.check(t)){var n=x.indexOf(t);return n>=0?E[n]:new e(t,r)}return new e(function(e){return e===t},k.check(r)?function(){return t+""}:r)}function s(e,t,r,i){var a=this;if(!(a instanceof s))throw new Error("Field constructor cannot be invoked without 'new'");D.assert(e);var o={name:{value:e},type:{value:t=n(t)},hidden:{value:!!i}};C.check(r)&&(o.defaultFn={value:r}),Object.defineProperties(a,o)}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){var t=h(e);if(!B[t]){var r=B[p(e)];r&&(B[t]=function(){return B.expressionStatement(r.apply(B,arguments))})}}function y(e,t){t.length=0,t.push(e);for(var r=Object.create(null),n=0;n<t.length;++n){e=t[n];var i=T[e];if(!0!==i.finalized)throw new Error("");l.call(r,e)&&delete t[r[e]],r[e]=n,t.push.apply(t,i.baseNames)}for(var s=0,a=s,o=t.length;a<o;++a)l.call(t,a)&&(t[s++]=t[a]);t.length=s}function g(e,t){return Object.keys(t).forEach(function(r){e[r]=t[r]}),e}var b={},v=e.prototype;b.Type=e,v.assert=function(e,r){if(!this.check(e,r)){var n=t(e);throw new Error(n+" does not match type "+this)}return!0},v.toString=function(){var e=this.name;return D.check(e)?e:C.check(e)?e.call(this)+"":e+" type"};var x=[],E=[],A={};b.builtInTypes=A;var D=r("truthy","string"),C=r(function(){},"function"),S=r([],"array"),_=r({},"object"),w=(r(/./,"RegExp"),r(new Date,"Date"),r(3,"number")),k=(r(!0,"boolean"),r(null,"null"),r(void 0,"undefined"));e.or=function(){for(var t=[],r=arguments.length,i=0;i<r;++i)t.push(n(arguments[i]));return new e(function(e,n){for(var i=0;i<r;++i)if(t[i].check(e,n))return!0;return!1},function(){return t.join(" | ")})},e.fromArray=function(e){if(!S.check(e))throw new Error("");if(1!==e.length)throw new Error("only one element type is permitted for typed arrays");return n(e[0]).arrayOf()},v.arrayOf=function(){var t=this;return new e(function(e,r){return S.check(e)&&e.every(function(e){return t.check(e,r)})},function(){return"["+t+"]"})},e.fromObject=function(t){var r=Object.keys(t).map(function(e){return new s(e,t[e])});return new e(function(e,t){return _.check(e)&&r.every(function(r){return r.type.check(e[r.name],t)})},function(){return"{ "+r.join(", ")+" }"})};var F=s.prototype;F.toString=function(){return JSON.stringify(this.name)+": "+this.type},F.getValue=function(e){var t=e[this.name];return k.check(t)?(this.defaultFn&&(t=this.defaultFn.call(e)),t):t},e.def=function(e){return D.assert(e),l.call(T,e)?T[e]:T[e]=new c(e)};var T=Object.create(null);c.fromValue=function(e){if(e&&"object"==typeof e){var t=e.type;if("string"==typeof t&&l.call(T,t)){var r=T[t];if(r.finalized)return r}}return null};var P=c.prototype;P.isSupertypeOf=function(e){if(e instanceof c){if(!0!==this.finalized||!0!==e.finalized)throw new Error("");return l.call(e.allSupertypes,this.typeName)}throw new Error(e+" is not a Def")},b.getSupertypeNames=function(e){if(!l.call(T,e))throw new Error("");var t=T[e];if(!0!==t.finalized)throw new Error("");return t.supertypeList.slice(1)},b.computeSupertypeLookupTable=function(e){for(var t={},r=Object.keys(T),n=r.length,i=0;i<n;++i){var s=r[i],a=T[s];if(!0!==a.finalized)throw new Error(""+s);for(var o=0;o<a.supertypeList.length;++o){var u=a.supertypeList[o];if(l.call(e,u)){t[s]=u;break}}}return t},P.checkAllFields=function(e,t){function r(r){var i=n[r],s=i.type,a=i.getValue(e);return s.check(a,t)}var n=this.allFields;if(!0!==this.finalized)throw new Error(""+this.typeName);return _.check(e)&&Object.keys(n).every(r)},P.check=function(e,t){if(!0!==this.finalized)throw new Error("prematurely checking unfinalized type "+this.typeName);if(!_.check(e))return!1;var r=c.fromValue(e);return r?t&&r===this?this.checkAllFields(e,t):!!this.isSupertypeOf(r)&&(!t||r.checkAllFields(e,t)&&this.checkAllFields(e,!1)):("SourceLocation"===this.typeName||"Position"===this.typeName)&&this.checkAllFields(e,t)},P.bases=function(){var e=i.call(arguments),t=this.baseNames;if(this.finalized){if(e.length!==t.length)throw new Error("");for(var r=0;r<e.length;r++)if(e[r]!==t[r])throw new Error("");return this}return e.forEach(function(e){D.assert(e),t.indexOf(e)<0&&t.push(e)}),this},Object.defineProperty(P,"buildable",{value:!1});var B={};b.builders=B;var O={};b.defineMethod=function(e,t){var r=O[e];return k.check(t)?delete O[e]:(C.assert(t),Object.defineProperty(O,e,{enumerable:!0,configurable:!0,value:t})),r};var j=D.arrayOf();P.build=function(){var e=this,r=i.call(arguments);return j.assert(r),Object.defineProperty(e,"buildParams",{value:r,writable:!1,enumerable:!1,configurable:!0}),e.buildable?e:(e.field("type",String,function(){return e.typeName}),Object.defineProperty(e,"buildable",{value:!0}),Object.defineProperty(B,p(e.typeName),{enumerable:!0,value:function(){function r(r,a){if(!l.call(s,r)){var o=e.allFields;if(!l.call(o,r))throw new Error(""+r);var u,c=o[r],p=c.type;if(w.check(a)&&a<i)u=n[a];else{if(!c.defaultFn){var h="no value or default function given for field "+JSON.stringify(r)+" of "+e.typeName+"("+e.buildParams.map(function(e){return o[e]}).join(", ")+")";throw new Error(h)}u=c.defaultFn.call(s)}if(!p.check(u))throw new Error(t(u)+" does not match field "+c+" of type "+e.typeName);s[r]=u}}var n=arguments,i=n.length,s=Object.create(O);if(!e.finalized)throw new Error("attempting to instantiate unfinalized type "+e.typeName);if(e.buildParams.forEach(function(e,t){r(e,t)}),Object.keys(e.allFields).forEach(function(e){r(e)}),s.type!==e.typeName)throw new Error("");return s}}),e)},b.getBuilderName=p,b.getStatementBuilderName=h,P.field=function(e,t,r,n){return this.finalized?(console.error("Ignoring attempt to redefine field "+JSON.stringify(e)+" of finalized type "+JSON.stringify(this.typeName)),this):(this.ownFields[e]=new s(e,t,r,n),this)};var N={};return b.namedTypes=N,b.getFieldNames=f,b.getFieldValue=d,b.eachField=function(e,t,r){f(e).forEach(function(r){t.call(this,r,d(e,r))},r)},b.someField=function(e,t,r){return f(e).some(function(r){return t.call(this,r,d(e,r))},r)},Object.defineProperty(P,"finalized",{value:!1}),P.finalize=function(){var e=this;if(!e.finalized){var t=e.allFields,r=e.allSupertypes;e.baseNames.forEach(function(n){var i=T[n];if(!(i instanceof c)){var s="unknown supertype name "+JSON.stringify(n)+" for subtype "+JSON.stringify(e.typeName);throw new Error(s)}i.finalize(),g(t,i.allFields),g(r,i.allSupertypes)}),g(t,e.ownFields),r[e.typeName]=e,e.fieldNames.length=0;for(var n in t)l.call(t,n)&&!t[n].hidden&&e.fieldNames.push(n);Object.defineProperty(N,e.typeName,{enumerable:!0,value:e.type}),Object.defineProperty(e,"finalized",{value:!0}),y(e.typeName,e.supertypeList),e.buildable&&e.supertypeList.lastIndexOf("Expression")>=0&&m(e.typeName)}},b.finalize=function(){Object.keys(T).forEach(function(e){T[e].finalize()})},b}},{}],22:[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":4,"./def/babel6":5,"./def/core":6,"./def/e4x":7,"./def/es6":8,"./def/es7":9,"./def/esprima":10,"./def/flow":11,"./def/jsx":12,"./def/mozilla":13,"./fork":14}],23:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(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}}function s(e){var t=e.slice(-2),r=t[0],n=t[1],i=(0,o.matchToToken)(e);if("name"===i.type){if(l.default.keyword.isReservedWordES6(i.value))return"keyword";if(h.test(i.value)&&("<"===n[r-1]||"</"==n.substr(r-2,2)))return"jsx_tag";if(i.value[0]!==i.value[0].toLowerCase())return"capitalized"}return"punctuator"===i.type&&f.test(i.value)?"bracket":i.type}function a(e,t){return t.replace(u.default,function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=s(r),a=e[i];return a?r[0].split(p).map(function(e){return a(e)}).join("\n"):r[0]})}r.__esModule=!0,r.default=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r=Math.max(r,0);var s=n.highlightCode&&c.default.supportsColor||n.forceColor,o=c.default;n.forceColor&&(o=new c.default.constructor({enabled:!0}));var u=function(e,t){return s?e(t):t},l=i(o);s&&(e=a(l,e));var h=n.linesAbove||2,f=n.linesBelow||3,d=e.split(p),m=Math.max(t-(h+1),0),y=Math.min(d.length,t+f);t||r||(m=0,y=d.length);var g=String(y).length,b=d.slice(m,y).map(function(e,n){var i=m+1+n,s=" "+(" "+i).slice(-g)+" | ";if(i===t){var a="";if(r){var o=e.slice(0,r-1).replace(/[^\t]/g," ");a=["\n ",u(l.gutter,s.replace(/\d/g," ")),o,u(l.marker,"^")].join("")}return[u(l.marker,">"),u(l.gutter,s),e,a].join("")}return" "+u(l.gutter,s)+e}).join("\n");return s?o.reset(b):b};var o=e("js-tokens"),u=n(o),l=n(e("esutils")),c=n(e("chalk")),p=/\r\n|[\n\r\u2028\u2029]/,h=/^[a-z][\w-]*$/i,f=/^[()\[\]{}]$/;t.exports=r.default},{chalk:184,esutils:27,"js-tokens":310}],24:[function(e,t,r){!function(){"use strict";function e(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1}function r(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1}function n(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function i(e){return n(e)||null!=e&&"FunctionDeclaration"===e.type}function s(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}function a(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=s(t)}while(t);return!1}t.exports={isExpression:e,isStatement:n,isIterationStatement:r,isSourceElement:i,isProblematicIfStatement:a,trailingStatement:s}}()},{}],25:[function(e,t,r){!function(){"use strict";function e(e){return 48<=e&&e<=57}function r(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70}function n(e){return e>=48&&e<=55}function i(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&f.indexOf(e)>=0}function s(e){return 10===e||13===e||8232===e||8233===e}function a(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}function o(e){return e<128?d[e]:h.NonAsciiIdentifierStart.test(a(e))}function u(e){return e<128?m[e]:h.NonAsciiIdentifierPart.test(a(e))}function l(e){return e<128?d[e]:p.NonAsciiIdentifierStart.test(a(e))}function c(e){return e<128?m[e]:p.NonAsciiIdentifierPart.test(a(e))}var p,h,f,d,m,y;for(h={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},p={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B2\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDE00-\uDE11\uDE13-\uDE2B\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDE00-\uDE2F\uDE44\uDE80-\uDEAA]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B2\u08E4-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58\u0C59\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D60-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA69D\uA69F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA7AD\uA7B0\uA7B1\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB5F\uAB64\uAB65\uABC0-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2D\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDD0-\uDDDA\uDE00-\uDE11\uDE13-\uDE37\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF01-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF98]|\uD809[\uDC00-\uDC6E]|[\uD80C\uD840-\uD868\uD86A-\uD86C][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},f=[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],d=new Array(128),y=0;y<128;++y)d[y]=y>=97&&y<=122||y>=65&&y<=90||36===y||95===y;for(m=new Array(128),y=0;y<128;++y)m[y]=y>=97&&y<=122||y>=65&&y<=90||y>=48&&y<=57||36===y||95===y;t.exports={isDecimalDigit:e,isHexDigit:r,isOctalDigit:n,isWhiteSpace:i,isLineTerminator:s,isIdentifierStartES5:o,isIdentifierPartES5:u,isIdentifierStartES6:l,isIdentifierPartES6:c}}()},{}],26:[function(e,t,r){!function(){"use strict";function r(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}function n(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&r(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 s(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function a(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function o(e){return"eval"===e||"arguments"===e}function u(e){var t,r,n;if(0===e.length)return!1;if(n=e.charCodeAt(0),!f.isIdentifierStartES5(n))return!1;for(t=1,r=e.length;t<r;++t)if(n=e.charCodeAt(t),!f.isIdentifierPartES5(n))return!1;return!0}function l(e,t){return 1024*(e-55296)+(t-56320)+65536}function c(e){var t,r,n,i,s;if(0===e.length)return!1;for(s=f.isIdentifierStartES6,t=0,r=e.length;t<r;++t){if(55296<=(n=e.charCodeAt(t))&&n<=56319){if(++t>=r)return!1;if(!(56320<=(i=e.charCodeAt(t))&&i<=57343))return!1;n=l(n,i)}if(!s(n))return!1;s=f.isIdentifierPartES6}return!0}function p(e,t){return u(e)&&!s(e,t)}function h(e,t){return c(e)&&!a(e,t)}var f=e("./code");t.exports={isKeywordES5:n,isKeywordES6:i,isReservedWordES5:s,isReservedWordES6:a,isRestrictedWord:o,isIdentifierNameES5:u,isIdentifierNameES6:c,isIdentifierES5:p,isIdentifierES6:h}}()},{"./code":25}],27:[function(e,t,r){!function(){"use strict";r.ast=e("./ast"),r.code=e("./code"),r.keyword=e("./keyword")}()},{"./ast":24,"./code":25,"./keyword":26}],28:[function(e,t,r){t.exports=e("./lib/api/node.js")},{"./lib/api/node.js":29}],29:[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){throw new Error("The ("+e+") Babel 5 plugin is being run with Babel 6.")}function a(e,t,r){"function"==typeof t&&(r=t,t={}),t.filename=e,m.default.readFile(e,function(e,n){var i=void 0;if(!e)try{i=D(n,t)}catch(t){e=t}e?r(e):r(null,i)})}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return t.filename=e,D(m.default.readFileSync(e,"utf8"),t)}r.__esModule=!0,r.transformFromAst=r.transform=r.analyse=r.Pipeline=r.OptionManager=r.traverse=r.types=r.messages=r.util=r.version=r.resolvePreset=r.resolvePlugin=r.template=r.buildExternalHelpers=r.options=r.File=void 0;var u=e("../transformation/file");Object.defineProperty(r,"File",{enumerable:!0,get:function(){return i(u).default}});var l=e("../transformation/file/options/config");Object.defineProperty(r,"options",{enumerable:!0,get:function(){return i(l).default}});var c=e("../tools/build-external-helpers");Object.defineProperty(r,"buildExternalHelpers",{enumerable:!0,get:function(){return i(c).default}});var p=e("babel-template");Object.defineProperty(r,"template",{enumerable:!0,get:function(){return i(p).default}});var h=e("../helpers/resolve-plugin");Object.defineProperty(r,"resolvePlugin",{enumerable:!0,get:function(){return i(h).default}});var f=e("../helpers/resolve-preset");Object.defineProperty(r,"resolvePreset",{enumerable:!0,get:function(){return i(f).default}});var d=e("../../package");Object.defineProperty(r,"version",{enumerable:!0,get:function(){return d.version}}),r.Plugin=s,r.transformFile=a,r.transformFileSync=o;var m=i(e("fs")),y=n(e("../util")),g=n(e("babel-messages")),b=n(e("babel-types")),v=i(e("babel-traverse")),x=i(e("../transformation/file/options/option-manager")),E=i(e("../transformation/pipeline"));r.util=y,r.messages=g,r.types=b,r.traverse=v.default,r.OptionManager=x.default,r.Pipeline=E.default;var A=new E.default,D=(r.analyse=A.analyse.bind(A),r.transform=A.transform.bind(A));r.transformFromAst=A.transformFromAst.bind(A)},{"../../package":66,"../helpers/resolve-plugin":35,"../helpers/resolve-preset":36,"../tools/build-external-helpers":39,"../transformation/file":40,"../transformation/file/options/config":44,"../transformation/file/options/option-manager":46,"../transformation/pipeline":51,"../util":54,"babel-messages":103,"babel-template":132,"babel-traverse":136,"babel-types":169,fs:182}],30:[function(e,t,r){"use strict";function n(e){return["babel-plugin-"+e,e]}r.__esModule=!0,r.default=n,t.exports=r.default},{}],31:[function(e,t,r){"use strict";function n(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}r.__esModule=!0,r.default=n,t.exports=r.default},{}],32:[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)){for(var r=t.slice(0),n=e,s=Array.isArray(n),a=0,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":113,"lodash/mergeWith":515}],33:[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":169}],34:[function(e,t,r){"use strict";function n(e,t){return e.reduce(function(e,r){return e||(0,i.default)(r,t)},null)}r.__esModule=!0,r.default=n;var i=function(e){return e&&e.__esModule?e:{default:e}}(e("./resolve"));t.exports=r.default},{"./resolve":37}],35:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,a.default)((0,o.default)(e),t)}r.__esModule=!0,r.default=s;var a=i(e("./resolve-from-possible-names")),o=i(e("./get-possible-plugin-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-plugin-names":30,"./resolve-from-possible-names":34,_process:538}],36:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.cwd();return(0,a.default)((0,o.default)(e),t)}r.__esModule=!0,r.default=s;var a=i(e("./resolve-from-possible-names")),o=i(e("./get-possible-preset-names"));t.exports=r.default}).call(this,e("_process"))},{"./get-possible-preset-names":31,"./resolve-from-possible-names":34,_process:538}],37:[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:538,"babel-runtime/helpers/typeof":131,module:182,path:534}],38:[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":115,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130}],39:[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=f.functionExpression(null,[f.identifier("global")],f.blockStatement(r)),i=f.program([f.expressionStatement(f.callExpression(n,[l.get("selfGlobal")]))]);return r.push(f.variableDeclaration("var",[f.variableDeclarator(e,f.assignmentExpression("=",f.memberExpression(f.identifier("global"),e),f.objectExpression([])))])),t(r),i}function a(e,t){var r=[];return r.push(f.variableDeclaration("var",[f.variableDeclarator(e,f.identifier("global"))])),t(r),f.program([d({FACTORY_PARAMETERS:f.identifier("global"),BROWSER_ARGUMENTS:f.assignmentExpression("=",f.memberExpression(f.identifier("root"),e),f.objectExpression([])),COMMON_ARGUMENTS:f.identifier("exports"),AMD_ARGUMENTS:f.arrayExpression([f.stringLiteral("exports")]),FACTORY_BODY:r,UMD_ROOT:f.identifier("this")})])}function o(e,t){var r=[];return r.push(f.variableDeclaration("var",[f.variableDeclarator(e,f.objectExpression([]))])),t(r),r.push(f.expressionStatement(e)),f.program(r)}function u(e,t,r){l.list.forEach(function(n){if(!(r&&r.indexOf(n)<0)){var i=f.identifier(n);e.push(f.expressionStatement(f.assignmentExpression("=",f.memberExpression(t,i),l.get(n))))}})}r.__esModule=!0,r.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"global",r=f.identifier("babelHelpers"),n=function(t){return u(t,r,e)},i=void 0,l={global:s,umd:a,var:o}[t];if(!l)throw new Error(p.get("unsupportedOutputType",t));return i=l(r,n),(0,c.default)(i).code};var l=i(e("babel-helpers")),c=n(e("babel-generator")),p=i(e("babel-messages")),h=n(e("babel-template")),f=i(e("babel-types")),d=(0,h.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":78,"babel-helpers":102,"babel-messages":103,"babel-template":132,"babel-types":169}],40:[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")),C=e("babylon"),S=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())}},j=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(){for(var e=!1,t=this.ast.program.body,r=Array.isArray(t),n=0,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=S.arrayify(e.ignore,S.regexify),e.only&&(e.only=S.arrayify(e.only,S.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)){for(var t=[],r=[],n=e.plugins.concat(B),i=Array.isArray(n),a=0,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=C.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,C.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<this.pluginPasses.length;e++){var t=this.pluginPasses[e];this.call("pre",t),this.log.debug("Start transform traverse");var r=g.default.visitors.merge(this.pluginVisitors[e],t,this.opts.wrapPluginVisitorMethod);(0,g.default)(this.ast,r,this.scope),this.log.debug("End transform traverse"),this.call("post",t)}return this.generate()},n.prototype.wrap=function(e,r){e+="";try{return this.shouldIgnore()?this.makeResult({code:e,ignored:!0}):r()}catch(r){if(r._babel)throw r;r._babel=!0;var n=r.message=this.opts.filename+": "+r.message,i=r.loc;if(i&&(r.codeFrame=(0,x.default)(e,i.line,i.column+1,this.opts),n+="\n"+r.codeFrame),t.browser&&(r.message=n),r.stack){var s=r.stack.replace(r.message,n);r.stack=s}throw r}},n.prototype.addCode=function(e){e=(e||"")+"",e=this.parseInputSourceMap(e),this.code=e},n.prototype.parseCode=function(){this.parseShebang();var e=this.parse(this.code);this.addAst(e)},n.prototype.shouldIgnore=function(){var e=this.opts;return S.shouldIgnore(e.filename,e.ignore,e.only)},n.prototype.call=function(e,t){for(var r=t,n=Array.isArray(r),i=0,r=n?r:(0,s.default)(r);;){var a;if(n){if(i>=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=j,r.File=j}).call(this,e("_process"))},{"../../helpers/resolve":37,"../../store":38,"../../util":54,"../internal-plugins/block-hoist":49,"../internal-plugins/shadow-functions":50,"../plugin-pass":52,"./logger":41,"./metadata":42,"./options/option-manager":46,_process:538,"babel-code-frame":23,"babel-generator":78,"babel-helpers":102,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/object/assign":117,"babel-runtime/core-js/object/create":118,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130,"babel-traverse":136,"babel-types":169,babylon:177,"convert-source-map":186,"lodash/defaults":483,path:534,"source-map":65}],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/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":127,"debug/node":294}],42:[function(e,t,r){"use strict";function n(e,t){var r=e.node,n=r.source?r.source.value:null,i=t.metadata.modules.exports,o=e.get("declaration");if(o.isStatement()){var u=o.getBindingIdentifiers();for(var l in u)i.exported.push(l),i.specifiers.push({kind:"local",local:l,exported:e.isExportDefaultDeclaration()?"default":l})}if(e.isExportNamedDeclaration()&&r.specifiers)for(var c=r.specifiers,p=Array.isArray(c),h=0,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}var d=f,m=d.exported.name;i.exported.push(m),a.isExportDefaultSpecifier(d)&&i.specifiers.push({kind:"external",local:m,exported:m,source:n}),a.isExportNamespaceSpecifier(d)&&i.specifiers.push({kind:"external-namespace",exported:m,source:n});var y=d.local;y&&(n&&i.specifiers.push({kind:"external",local:y.name,exported:m,source:n}),n||i.specifiers.push({kind:"local",local:y.name,exported:m}))}e.isExportAllDeclaration()&&i.specifiers.push({kind:"external-all",source:n})}function i(e){e.skip()}r.__esModule=!0,r.ImportDeclaration=r.ModuleDeclaration=void 0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.ExportDeclaration=n,r.Scope=i;var a=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,n=[],i=[];t.metadata.modules.imports.push({source:r.source.value,imported:i,specifiers:n});for(var a=e.get("specifiers"),o=Array.isArray(a),u=0,a=o?a:(0,s.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()&&(i.push("default"),n.push({kind:"named",imported:"default",local:p})),c.isImportSpecifier()){var h=c.node.imported.name;i.push(h),n.push({kind:"named",imported:h,local:p})}c.isImportNamespaceSpecifier()&&(i.push("*"),n.push({kind:"namespace",local:p}))}}}},{"babel-runtime/core-js/get-iterator":113,"babel-types":169}],43:[function(e,t,r){(function(n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e){var t=d[e];return null==t?d[e]=f.default.existsSync(e):t}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1],r=e.filename,n=new y(t);return!1!==e.babelrc&&n.findConfigs(r),n.mergeConfig({options:e,alias:"base",dirname:r&&h.default.dirname(r)}),n.configs}r.__esModule=!0;var o=i(e("babel-runtime/core-js/object/assign")),u=i(e("babel-runtime/helpers/classCallCheck"));r.default=a;var l=i(e("../../../helpers/resolve")),c=i(e("json5")),p=i(e("path-is-absolute")),h=i(e("path")),f=i(e("fs")),d={},m={},y=function(){function e(t){(0,u.default)(this,e),this.resolvedConfigs=[],this.configs=[],this.log=t}return e.prototype.findConfigs=function(e){if(e){(0,p.default)(e)||(e=h.default.join(n.cwd(),e));for(var t=!1,r=!1;e!==(e=h.default.dirname(e));){if(!t){var i=h.default.join(e,".babelrc");s(i)&&(this.addConfig(i),t=!0);var a=h.default.join(e,"package.json");!t&&s(a)&&(t=this.addConfig(a,"babel",JSON))}if(!r){var o=h.default.join(e,".babelignore");s(o)&&(this.addIgnoreConfig(o),r=!0)}if(r&&t)return}}},e.prototype.addIgnoreConfig=function(e){var t=f.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:h.default.dirname(e)})},e.prototype.addConfig=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:c.default;if(this.resolvedConfigs.indexOf(e)>=0)return!1;this.resolvedConfigs.push(e);var n=f.default.readFileSync(e,"utf8"),i=void 0;try{i=m[n]=m[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:h.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,o.default)({},t),s=s||n.cwd(),i=i||r,t.extends){var a=(0,l.default)(t.extends,s);a?this.addConfig(a):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 u=void 0,c=n.env.BABEL_ENV||n.env.NODE_ENV||"development";t.env&&(u=t.env[c],delete t.env),this.mergeConfig({options:u,alias:r+".env."+c,dirname:s})},e}();t.exports=r.default}).call(this,e("_process"))},{"../../../helpers/resolve":37,_process:538,"babel-runtime/core-js/object/assign":117,"babel-runtime/helpers/classCallCheck":127,fs:182,json5:312,path:534,"path-is-absolute":535}],44:[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}}},{}],45:[function(e,t,r){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(var t in e){var r=e[t];if(null!=r){var n=s.default[t];if(n&&n.alias&&(n=s.default[n.alias]),n){var a=i[n.type];a&&(r=a(r)),e[t]=r}}}return e}r.__esModule=!0,r.config=void 0,r.normaliseOptions=n;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("./parsers")),s=function(e){return e&&e.__esModule?e:{default:e}}(e("./config"));r.config=s.default},{"./config":44,"./parsers":47}],46:[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")),C=s(e("path")),S=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){for(var s=t.memoisedPlugins,a=Array.isArray(s),o=0,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(m="function"==typeof e?e(h):e,"object"===(void 0===m?"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:C.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(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=(0,D.default)(e,this.log),r=Array.isArray(t),n=0,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=S,S.memoisedPlugins=[],t.exports=r.default}).call(this,e("_process"))},{"../../../api/node":29,"../../../helpers/merge":32,"../../../helpers/resolve-plugin":35,"../../../helpers/resolve-preset":36,"../../plugin":53,"./build-config-chain":43,"./config":44,"./index":45,"./removed":48,_process:538,"babel-messages":103,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/json/stringify":114,"babel-runtime/core-js/object/assign":117,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/objectWithoutProperties":129,"babel-runtime/helpers/typeof":131,"lodash/clone":479,"lodash/cloneDeepWith":481,path:534}],47:[function(e,t,r){"use strict";function n(e){return!!e}function i(e){return o.booleanify(e)}function s(e){return o.list(e)}r.__esModule=!0,r.filename=void 0,r.boolean=n,r.booleanString=i,r.list=s;var a=function(e){return e&&e.__esModule?e:{default:e}}(e("slash")),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("../../../util"));r.filename=a.default},{"../../../util":54,slash:590}],48:[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"}}},{}],49:[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;n<t.body.length;n++){var i=t.body[n];if(i&&null!=i._blockHoist){r=!0;break}}r&&(t.body=(0,s.default)(t.body,function(e){var t=e&&e._blockHoist;return null==t&&(t=1),!0===t&&(t=2),-1*t}))}}}}),t.exports=r.default},{"../plugin":53,"lodash/sortBy":519}],50:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){return!!e.is("_forceShadow")||t}function s(e,t){var r=e.inShadow(t);if(i(e,r)){var n=e.node._shadowedFunctionLiteral,s=void 0,a=!1,o=e.find(function(t){if(t.parentPath&&t.parentPath.isClassProperty()&&"value"===t.key)return!0;if(e===t)return!1;if((t.isProgram()||t.isFunction())&&(s=s||t),t.isProgram())return a=!0,!0;if(t.isFunction()&&!t.isArrowFunctionExpression()){if(n){if(t===n||t.node===n.node)return!0}else if(!t.is("shadow"))return!0;return a=!0,!1}return!1});if(n&&o.isProgram()&&!n.isProgram()&&(o=e.findParent(function(e){return e.isProgram()||e.isFunction()})),o!==s&&a){var l=o.getData(t);if(l)return e.replaceWith(l);var p=e.scope.generateUidIdentifier(t);o.setData(t,p);var h=o.findParent(function(e){return e.isClass()}),f=!!(h&&h.node&&h.node.superClass);if("this"===t&&o.isMethod({kind:"constructor"})&&f)o.scope.push({id:p}),o.traverse(c,{id:p});else{var d="this"===t?u.thisExpression():u.identifier(t);n&&(d._shadowedFunctionLiteral=n),o.scope.push({id:p,init:d})}return e.replaceWith(p)}}}r.__esModule=!0;var a=n(e("babel-runtime/core-js/symbol")),o=n(e("../plugin")),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,a.default)("super this bound"),c={CallExpression:function(e){if(e.get("callee").isSuper()){var t=e.node;t[l]||(t[l]=!0,e.replaceWith(u.assignmentExpression("=",this.id,t)))}}};r.default=new o.default({name:"internal.shadowFunctions",visitor:{ThisExpression:function(e){s(e,"this")},ReferencedIdentifier:function(e){"arguments"===e.node.name&&s(e,"arguments")}}}),t.exports=r.default},{"../plugin":53,"babel-runtime/core-js/symbol":122,"babel-types":169}],51:[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("../helpers/normalize-ast")),a=n(e("./plugin")),o=n(e("./file")),u=function(){function e(){(0,i.default)(this,e)}return e.prototype.lint=function(e){var t=arguments.length>1&&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":33,"./file":40,"./plugin":53,"babel-runtime/helpers/classCallCheck":127}],52:[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":38,"./file":40,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130}],53:[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<t;s++)n[s]=arguments[s];for(var a=r,o=Array.isArray(a),u=0,a=o?a:(0,i.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;if(c){var p=c.apply(this,n);null!=p&&(e=p)}}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){for(var t=d,r=Array.isArray(t),n=0,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":38,"./file/options/option-manager":46,"babel-messages":103,"babel-runtime/core-js/get-iterator":113,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130,"babel-traverse":136,"lodash/assign":476,"lodash/clone":479}],54:[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=b.default.extname(e);return(0,y.default)(r,n)}function s(e){return e?Array.isArray(e)?e:"string"==typeof e?e.split(","):[e]:[]}function a(e){if(!e)return new RegExp(/.^/);if(Array.isArray(e)&&(e=new RegExp(e.map(f.default).join("|"),"i")),"string"==typeof e){e=(0,v.default)(e),((0,d.default)(e,"./")||(0,d.default)(e,"*/"))&&(e=e.slice(2)),(0,d.default)(e,"**/")&&(e=e.slice(3));var t=m.default.makeRe(e,{nocase:!0});return new RegExp(t.source.slice(1,-1),"i")}if((0,g.default)(e))return e;throw new TypeError("illegal type for regexify")}function o(e,t){return e?"boolean"==typeof e?o([e],t):"string"==typeof e?o(s(e),t):Array.isArray(e)?(t&&(e=e.map(t)),e):[e]:[]}function u(e){return"true"===e||1==e||!("false"===e||0==e||!e)&&e}function l(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2];if(e=e.replace(/\\/g,"/"),r){for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,p.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(c(a,e))return!1}return!0}if(t.length)for(var o=t,u=Array.isArray(o),l=0,o=u?o:(0,p.default)(o);;){var h;if(u){if(l>=o.length)break;h=o[l++]}else{if((l=o.next()).done)break;h=l.value}if(c(h,e))return!0}return!1}function c(e,t){return"function"==typeof e?e(t):e.test(t)}r.__esModule=!0,r.inspect=r.inherits=void 0;var p=n(e("babel-runtime/core-js/get-iterator")),h=e("util");Object.defineProperty(r,"inherits",{enumerable:!0,get:function(){return h.inherits}}),Object.defineProperty(r,"inspect",{enumerable:!0,get:function(){return h.inspect}}),r.canCompile=i,r.list=s,r.regexify=a,r.arrayify=o,r.booleanify=u,r.shouldIgnore=l;var f=n(e("lodash/escapeRegExp")),d=n(e("lodash/startsWith")),m=n(e("minimatch")),y=n(e("lodash/includes")),g=n(e("lodash/isRegExp")),b=n(e("path")),v=n(e("slash"));i.EXTENSIONS=[".js",".jsx",".es6",".es"]},{"babel-runtime/core-js/get-iterator":113,"lodash/escapeRegExp":485,"lodash/includes":495,"lodash/isRegExp":507,"lodash/startsWith":520,minimatch:530,path:534,slash:590,util:602}],55:[function(e,t,r){function n(){this._array=[],this._set=Object.create(null)}var i=e("./util"),s=Object.prototype.hasOwnProperty;n.fromArray=function(e,t){for(var r=new n,i=0,s=e.length;i<s;i++)r.add(e[i],t);return r},n.prototype.size=function(){return Object.getOwnPropertyNames(this._set).length},n.prototype.add=function(e,t){var r=i.toSetString(e),n=s.call(this._set,r),a=this._array.length;n&&!t||this._array.push(e),n||(this._set[r]=a)},n.prototype.has=function(e){var t=i.toSetString(e);return s.call(this._set,t)},n.prototype.indexOf=function(e){var t=i.toSetString(e);if(s.call(this._set,t))return this._set[t];throw new Error('"'+e+'" is not in the set.')},n.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},n.prototype.toArray=function(){return this._array.slice()},r.ArraySet=n},{"./util":64}],56:[function(e,t,r){function n(e){return e<0?1+(-e<<1):0+(e<<1)}function i(e){var t=e>>1;return 1==(1&e)?-t:t}var s=e("./base64");r.encode=function(e){var t,r="",i=n(e);do{t=31&i,(i>>>=5)>0&&(t|=32),r+=s.encode(t)}while(i>0);return r},r.decode=function(e,t,r){var n,a,o=e.length,u=0,l=0;do{if(t>=o)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(a=s.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));n=!!(32&a),u+=(a&=31)<<l,l+=5}while(n);r.value=i(u),r.rest=t}},{"./base64":57}],57:[function(e,t,r){var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e<n.length)return n[e];throw new TypeError("Must be between 0 and 63: "+e)},r.decode=function(e){return 65<=e&&e<=90?e-65:97<=e&&e<=122?e-97+26:48<=e&&e<=57?e-48+52:43==e?62:47==e?63:-1}},{}],58:[function(e,t,r){function n(e,t,i,s,a,o){var u=Math.floor((t-e)/2)+e,l=a(i,s[u],!0);return 0===l?u:l>0?t-u>1?n(u,t,i,s,a,o):o==r.LEAST_UPPER_BOUND?t<s.length?t:-1:u:u-e>1?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}},{}],59:[function(e,t,r){function n(e,t){var r=e.generatedLine,n=t.generatedLine,i=e.generatedColumn,a=t.generatedColumn;return n>r||n==r&&a>=i||s.compareByGeneratedPositionsInflated(e,t)<=0}function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}var s=e("./util");i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){n(this._last,e)?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(s.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},r.MappingList=i},{"./util":64}],60:[function(e,t,r){function n(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function i(e,t){return Math.round(e+Math.random()*(t-e))}function s(e,t,r,a){if(r<a){var o=r-1;n(e,i(r,a),a);for(var u=e[a],l=r;l<a;l++)t(e[l],u)<=0&&n(e,o+=1,l);n(e,o+1,l);var c=o+1;s(e,t,r,c-1),s(e,t,c+1,a)}}r.quickSort=function(e,t){s(e,t,0,e.length-1)}},{}],61:[function(e,t,r){function n(e){var t=e;return"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,""))),null!=t.sections?new a(t):new i(t)}function i(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),n=o.getArg(t,"sources"),i=o.getArg(t,"names",[]),s=o.getArg(t,"sourceRoot",null),a=o.getArg(t,"sourcesContent",null),u=o.getArg(t,"mappings"),c=o.getArg(t,"file",null);if(r!=this._version)throw new Error("Unsupported version: "+r);n=n.map(String).map(o.normalize).map(function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}),this._names=l.fromArray(i.map(String),!0),this._sources=l.fromArray(n,!0),this.sourceRoot=s,this.sourcesContent=a,this._mappings=u,this.file=c}function s(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function a(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var r=o.getArg(t,"version"),i=o.getArg(t,"sections");if(r!=this._version)throw new Error("Unsupported version: "+r);this._sources=new l,this._names=new l;var s={line:-1,column:0};this._sections=i.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var t=o.getArg(e,"offset"),r=o.getArg(t,"line"),i=o.getArg(t,"column");if(r<s.line||r===s.line&&i<s.column)throw new Error("Section offsets must be ordered and non-overlapping.");return s=t,{generatedOffset:{generatedLine:r+1,generatedColumn:i+1},consumer:new n(o.getArg(e,"map"))}})}var o=e("./util"),u=e("./binary-search"),l=e("./array-set").ArraySet,c=e("./base64-vlq"),p=e("./quick-sort").quickSort;n.fromSourceMap=function(e){return i.fromSourceMap(e)},n.prototype._version=3,n.prototype.__generatedMappings=null,Object.defineProperty(n.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__generatedMappings}}),n.prototype.__originalMappings=null,Object.defineProperty(n.prototype,"_originalMappings",{get:function(){return this.__originalMappings||this._parseMappings(this._mappings,this.sourceRoot),this.__originalMappings}}),n.prototype._charIsMappingSeparator=function(e,t){var r=e.charAt(t);return";"===r||","===r},n.prototype._parseMappings=function(e,t){throw new Error("Subclasses must implement _parseMappings")},n.GENERATED_ORDER=1,n.ORIGINAL_ORDER=2,n.GREATEST_LOWER_BOUND=1,n.LEAST_UPPER_BOUND=2,n.prototype.eachMapping=function(e,t,r){var i,s=t||null;switch(r||n.GENERATED_ORDER){case n.GENERATED_ORDER:i=this._generatedMappings;break;case n.ORIGINAL_ORDER:i=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var a=this.sourceRoot;i.map(function(e){var t=null===e.source?null:this._sources.at(e.source);return null!=t&&null!=a&&(t=o.join(a,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:null===e.name?null:this._names.at(e.name)}},this).forEach(e,s)},n.prototype.allGeneratedPositionsFor=function(e){var t=o.getArg(e,"line"),r={source:o.getArg(e,"source"),originalLine:t,originalColumn:o.getArg(e,"column",0)};if(null!=this.sourceRoot&&(r.source=o.relative(this.sourceRoot,r.source)),!this._sources.has(r.source))return[];r.source=this._sources.indexOf(r.source);var n=[],i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,u.LEAST_UPPER_BOUND);if(i>=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),i.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;h<f;h++){var d=a[h],m=new s;m.generatedLine=d.generatedLine,m.generatedColumn=d.generatedColumn,d.source&&(m.source=n.indexOf(d.source),m.originalLine=d.originalLine,m.originalColumn=d.originalColumn,d.name&&(m.name=r.indexOf(d.name)),c.push(m)),u.push(m)}return p(t.__originalMappings,o.compareByOriginalPositions),t},i.prototype._version=3,Object.defineProperty(i.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?o.join(this.sourceRoot,e):e},this)}}),i.prototype._parseMappings=function(e,t){for(var r,n,i,a,u,l=1,h=0,f=0,d=0,m=0,y=0,g=e.length,b=0,v={},x={},E=[],A=[];b<g;)if(";"===e.charAt(b))l++,b++,h=0;else if(","===e.charAt(b))b++;else{for((r=new s).generatedLine=l,a=b;a<g&&!this._charIsMappingSeparator(e,a);a++);if(n=e.slice(b,a),i=v[n])b+=n.length;else{for(i=[];b<a;)c.decode(e,b,x),u=x.value,b=x.rest,i.push(u);if(2===i.length)throw new Error("Found a source, but no line and column");if(3===i.length)throw new Error("Found a source and line, but no column");v[n]=i}r.generatedColumn=h+i[0],h=r.generatedColumn,i.length>1&&(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<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var r=this._generatedMappings[e+1];if(t.generatedLine===r.generatedLine){t.lastGeneratedColumn=r.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},i.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",o.compareByGeneratedPositionsDeflated,o.getArg(e,"bias",n.GREATEST_LOWER_BOUND));if(r>=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),a.prototype.constructor=n,a.prototype._version=3,Object.defineProperty(a.prototype,"sources",{get:function(){for(var e=[],t=0;t<this._sections.length;t++)for(var r=0;r<this._sections[t].consumer.sources.length;r++)e.push(this._sections[t].consumer.sources[r]);return e}}),a.prototype.originalPositionFor=function(e){var t={generatedLine:o.getArg(e,"line"),generatedColumn:o.getArg(e,"column")},r=u.search(t,this._sections,function(e,t){var r=e.generatedLine-t.generatedOffset.generatedLine;return r||e.generatedColumn-t.generatedOffset.generatedColumn}),n=this._sections[r];return n?n.consumer.originalPositionFor({line:t.generatedLine-(n.generatedOffset.generatedLine-1),column:t.generatedColumn-(n.generatedOffset.generatedLine===t.generatedLine?n.generatedOffset.generatedColumn-1:0),bias:e.bias}):{source:null,line:null,column:null,name:null}},a.prototype.hasContentsOfAllSources=function(){return this._sections.every(function(e){return e.consumer.hasContentsOfAllSources()})},a.prototype.sourceContentFor=function(e,t){for(var r=0;r<this._sections.length;r++){var n=this._sections[r].consumer.sourceContentFor(e,!0);if(n)return n}if(t)return null;throw new Error('"'+e+'" is not in the SourceMap.')},a.prototype.generatedPositionFor=function(e){for(var t=0;t<this._sections.length;t++){var r=this._sections[t];if(-1!==r.consumer.sources.indexOf(o.getArg(e,"source"))){var n=r.consumer.generatedPositionFor(e);if(n)return{line:n.line+(r.generatedOffset.generatedLine-1),column:n.column+(r.generatedOffset.generatedLine===n.line?r.generatedOffset.generatedColumn-1:0)}}}return{line:null,column:null}},a.prototype._parseMappings=function(e,t){this.__generatedMappings=[],this.__originalMappings=[];for(var r=0;r<this._sections.length;r++)for(var n=this._sections[r],i=n.consumer._generatedMappings,s=0;s<i.length;s++){var a=i[s],u=n.consumer._sources.at(a.source);null!==n.consumer.sourceRoot&&(u=o.join(n.consumer.sourceRoot,u)),this._sources.add(u),u=this._sources.indexOf(u);var l=n.consumer._names.at(a.name);this._names.add(l),l=this._names.indexOf(l);var c={source:u,generatedLine:a.generatedLine+(n.generatedOffset.generatedLine-1),generatedColumn:a.generatedColumn+(n.generatedOffset.generatedLine===a.generatedLine?n.generatedOffset.generatedColumn-1:0),originalLine:a.originalLine,originalColumn:a.originalColumn,name:l};this.__generatedMappings.push(c),"number"==typeof c.originalLine&&this.__originalMappings.push(c)}p(this.__generatedMappings,o.compareByGeneratedPositionsDeflated),p(this.__originalMappings,o.compareByOriginalPositions)},r.IndexedSourceMapConsumer=a},{"./array-set":55,"./base64-vlq":56,"./binary-search":58,"./quick-sort":60,"./util":64}],62:[function(e,t,r){function n(e){e||(e={}),this._file=s.getArg(e,"file",null),this._sourceRoot=s.getArg(e,"sourceRoot",null),this._skipValidation=s.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}var i=e("./base64-vlq"),s=e("./util"),a=e("./array-set").ArraySet,o=e("./mapping-list").MappingList;n.prototype._version=3,n.fromSourceMap=function(e){var t=e.sourceRoot,r=new n({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=s.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&r.setSourceContent(t,n)}),r},n.prototype.addMapping=function(e){var t=s.getArg(e,"generated"),r=s.getArg(e,"original",null),n=s.getArg(e,"source",null),i=s.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,i),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=i&&(i=String(i),this._names.has(i)||this._names.add(i)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:i})},n.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=s.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[s.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[s.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},n.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var i=this._sourceRoot;null!=i&&(n=s.relative(i,n));var o=new a,u=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=s.join(r,t.source)),null!=i&&(t.source=s.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var l=t.source;null==l||o.has(l)||o.add(l);var c=t.name;null==c||u.has(c)||u.add(c)},this),this._sources=o,this._names=u,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=s.join(r,t)),null!=i&&(t=s.relative(i,t)),this.setSourceContent(t,n))},this)},n.prototype._validateMapping=function(e,t,r,n){if((!(e&&"line"in e&&"column"in e&&e.line>0&&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;d<m;d++){if(t=f[d],e="",t.generatedLine!==o)for(a=0;t.generatedLine!==o;)e+=";",o++;else if(d>0){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":55,"./base64-vlq":56,"./mapping-list":59,"./util":64}],63:[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=function(){return u.shift()+(u.shift()||"")},c=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(c<e.generatedLine)){var t=(r=u[0]).substr(0,e.generatedColumn-p);return u[0]=r.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,t),void(h=e)}i(h,l()),c++,p=0}for(;c<e.generatedLine;)o.add(l()),c++;if(p<e.generatedColumn){var r=u[0];o.add(r.substr(0,e.generatedColumn)),u[0]=r.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),u.length>0&&(h&&i(h,l()),o.add(u.join(""))),t.sources.forEach(function(e){var n=t.sourceContentFor(e);null!=n&&(null!=r&&(e=s.join(r,e)),o.setSourceContent(e,n))}),o},n.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},n.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=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;r<n;r++)(t=this.children[r])[o]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},n.prototype.join=function(e){var t,r,n=this.children.length;if(n>0){for(t=[],r=0;r<n-1;r++)t.push(this.children[r]),t.push(e);t.push(this.children[r]),this.children=t}return this},n.prototype.replaceRight=function(e,t){var r=this.children[this.children.length-1];return r[o]?r.replaceRight(e,t):"string"==typeof r?this.children[this.children.length-1]=r.replace(e,t):this.children.push("".replace(e,t)),this},n.prototype.setSourceContent=function(e,t){this.sourceContents[s.toSetString(e)]=t},n.prototype.walkSourceContents=function(e){for(var t=0,r=this.children.length;t<r;t++)this.children[t][o]&&this.children[t].walkSourceContents(e);for(var n=Object.keys(this.sourceContents),t=0,r=n.length;t<r;t++)e(s.fromSetString(n[t]),this.sourceContents[n[t]])},n.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},n.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},r=new i(e),n=!1,s=null,a=null,o=null,u=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(s===i.source&&a===i.line&&o===i.column&&u===i.name||r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),s=i.source,a=i.line,o=i.column,u=i.name,n=!0):n&&(r.addMapping({generated:{line:t.line,column:t.column}}),s=null,n=!1);for(var l=0,c=e.length;l<c;l++)10===e.charCodeAt(l)?(t.line++,t.column=0,l+1===c?(s=null,n=!1):n&&r.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column++}),this.walkSourceContents(function(e,t){r.setSourceContent(e,t)}),{code:t.code,map:r}},r.SourceNode=n},{"./source-map-generator":62,"./util":64}],64:[function(e,t,r){function n(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(g);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function s(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var t=e,n=i(e);if(n){if(!n.path)return e;t=n.path}for(var a,o=r.isAbsolute(t),u=t.split(/\/+/),l=0,c=u.length-1;c>=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?"/":"."),n?(n.path=t,s(n)):t}function o(e,t){""===e&&(e="."),""===t&&(t=".");var r=i(t),n=i(e);if(n&&(e=n.path||"/"),r&&!r.scheme)return n&&(r.scheme=n.scheme),s(r);if(r||t.match(b))return t;if(n&&!n.host&&!n.path)return n.host=t,s(n);var o="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return n?(n.path=o,s(n)):o}function u(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)}function l(e){return e}function c(e){return h(e)?"$"+e:e}function p(e){return h(e)?e.slice(1):e}function h(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 f(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:(n=e.generatedLine-t.generatedLine,0!==n?n:e.name-t.name)}function d(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:(n=e.originalColumn-t.originalColumn,0!==n?n:e.name-t.name)}function m(e,t){return e===t?0:e>t?1:-1}function y(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r?r:0!==(r=e.generatedColumn-t.generatedColumn)?r:0!==(r=m(e.source,t.source))?r:0!==(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,0!==r?r:m(e.name,t.name))}r.getArg=n;var g=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,b=/^data:.+\,.+$/;r.urlParse=i,r.urlGenerate=s,r.normalize=a,r.join=o,r.isAbsolute=function(e){return"/"===e.charAt(0)||!!e.match(g)},r.relative=u;var v=function(){return!("__proto__"in Object.create(null))}();r.toSetString=v?l:c,r.fromSetString=v?l:p,r.compareByOriginalPositions=f,r.compareByGeneratedPositionsDeflated=d,r.compareByGeneratedPositionsInflated=y},{}],65:[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":61,"./lib/source-map-generator":62,"./lib/source-node":63}],66:[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/JSON/ajv/node_modules/regenerator"]],_from:"babel-core@>=6.18.2 <7.0.0",_id:"babel-core@6.24.1",_inCache:!0,_location:"/babel-core",_nodeVersion:"6.9.0",_npmOperationalInternal:{host:"packages-12-west.internal.npmjs.com",tmp:"tmp/babel-core-6.24.1.tgz_1491578389054_0.9957534451968968"},_npmUser:{name:"hzoo",email:"hi@henryzoo.com"},_npmVersion:"3.10.10",_phantomChildren:{},_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.24.1.tgz",_shasum:"8c428564dce1e1f41fb337ec34f4c3b022b5ad83",_shrinkwrap:null,_spec:"babel-core@^6.18.2",_where:"/Users/evgenypoberezkin/JSON/ajv/node_modules/regenerator",author:{name:"Sebastian McKenzie",email:"sebmck@gmail.com"},dependencies:{"babel-code-frame":"^6.22.0","babel-generator":"^6.24.1","babel-helpers":"^6.24.1","babel-messages":"^6.23.0","babel-register":"^6.24.1","babel-runtime":"^6.22.0","babel-template":"^6.24.1","babel-traverse":"^6.24.1","babel-types":"^6.24.1",babylon:"^6.11.0","convert-source-map":"^1.1.0",debug:"^2.1.1",json5:"^0.5.0",lodash:"^4.2.0",minimatch:"^3.0.2","path-is-absolute":"^1.0.0",private:"^0.1.6",slash:"^1.0.0","source-map":"^0.5.0"},description:"Babel compiler core.",devDependencies:{"babel-helper-fixtures":"^6.22.0","babel-helper-transform-fixture-test-runner":"^6.24.1","babel-polyfill":"^6.23.0"},directories:{},dist:{shasum:"8c428564dce1e1f41fb337ec34f4c3b022b5ad83",tarball:"https://registry.npmjs.org/babel-core/-/babel-core-6.24.1.tgz"},homepage:"https://babeljs.io/",keywords:["6to5","babel","classes","const","es6","harmony","let","modules","transpile","transpiler","var","babel-core","compiler"],license:"MIT",maintainers:[{name:"amasad",email:"amjad.masad@gmail.com"},{name:"hzoo",email:"hi@henryzoo.com"},{name:"jmm",email:"npm-public@jessemccarthy.net"},{name:"loganfsmyth",email:"loganfsmyth@gmail.com"},{name:"sebmck",email:"sebmck@gmail.com"},{name:"thejameskyle",email:"me@thejameskyle.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.24.1"}},{}],67:[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;s<e.length;s++)"\n"===e[s]?(this._position.line++,this._position.column=0):this._position.column++},e.prototype.removeTrailingNewline=function(){this._queue.length>0&&"\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<e.length;r++)"\n"===e[r]&&t++;return this._position.line+t},e}();r.default=o,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":127,"trim-right":597}],68:[function(e,t,r){"use strict";function n(e){this.print(e.program,e)}function i(e){this.printInnerComments(e,!1),this.printSequence(e.directives,e),e.directives&&e.directives.length&&this.newline(),this.printSequence(e.body,e)}function s(e){this.token("{"),this.printInnerComments(e);var t=e.directives&&e.directives.length;e.body.length||t?(this.newline(),this.printSequence(e.directives,e,{indent:!0}),t&&this.newline(),this.printSequence(e.body,e,{indent:!0}),this.removeTrailingNewline(),this.source("end",e.loc),this.endsWith("\n")||this.newline(),this.rightBrace()):(this.source("end",e.loc),this.token("}"))}function a(){}function o(e){this.print(e.value,e),this.semicolon()}r.__esModule=!0,r.File=n,r.Program=i,r.BlockStatement=s,r.Noop=a,r.Directive=o;var u=e("./types");Object.defineProperty(r,"DirectiveLiteral",{enumerable:!0,get:function(){return u.StringLiteral}})},{"./types":77}],69:[function(e,t,r){"use strict";function n(e){this.printJoin(e.decorators,e),this.word("class"),e.id&&(this.space(),this.print(e.id,e)),this.print(e.typeParameters,e),e.superClass&&(this.space(),this.word("extends"),this.space(),this.print(e.superClass,e),this.print(e.superTypeParameters,e)),e.implements&&(this.space(),this.word("implements"),this.space(),this.printList(e.implements,e)),this.space(),this.print(e.body,e)}function i(e){this.token("{"),this.printInnerComments(e),0===e.body.length?this.token("}"):(this.newline(),this.indent(),this.printSequence(e.body,e),this.dedent(),this.endsWith("\n")||this.newline(),this.rightBrace())}function s(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),e.computed?(this.token("["),this.print(e.key,e),this.token("]")):(this._variance(e),this.print(e.key,e)),this.print(e.typeAnnotation,e),e.value&&(this.space(),this.token("="),this.space(),this.print(e.value,e)),this.semicolon()}function a(e){this.printJoin(e.decorators,e),e.static&&(this.word("static"),this.space()),"constructorCall"===e.kind&&(this.word("call"),this.space()),this._method(e)}r.__esModule=!0,r.ClassDeclaration=n,r.ClassBody=i,r.ClassProperty=s,r.ClassMethod=a,r.ClassExpression=n},{}],70:[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){"void"===e.operator||"delete"===e.operator||"typeof"===e.operator?(this.word(e.operator),this.space()):this.token(e.operator),this.print(e.argument,e)}function s(e){this.word("do"),this.space(),this.print(e.body,e)}function a(e){this.token("("),this.print(e.expression,e),this.token(")")}function o(e){e.prefix?(this.token(e.operator),this.print(e.argument,e)):(this.print(e.argument,e),this.token(e.operator))}function u(e){this.print(e.test,e),this.space(),this.token("?"),this.space(),this.print(e.consequent,e),this.space(),this.token(":"),this.space(),this.print(e.alternate,e)}function l(e,t){this.word("new"),this.space(),this.print(e.callee,e),(0!==e.arguments.length||!this.format.minified||S.isCallExpression(t,{callee:e})||S.isMemberExpression(t)||S.isNewExpression(t))&&(this.token("("),this.printList(e.arguments,e),this.token(")"))}function c(e){this.printList(e.expressions,e)}function p(){this.word("this")}function h(){this.word("super")}function f(e){this.token("@"),this.print(e.expression,e),this.newline()}function d(){this.token(","),this.newline(),this.endsWith("\n")||this.space()}function m(e){this.print(e.callee,e),this.token("(");var t=e._prettyCall,r=void 0;t&&(r=d,this.newline(),this.indent()),this.printList(e.arguments,e,{separator:r}),t&&(this.newline(),this.dedent()),this.token(")")}function y(){this.word("import")}function g(e){return function(t){if(this.word(e),t.delegate&&this.token("*"),t.argument){this.space();var r=this.startTerminatorless();this.print(t.argument,t),this.endTerminatorless(r)}}}function b(){this.semicolon(!0)}function v(e){this.print(e.expression,e),this.semicolon()}function x(e){this.print(e.left,e),e.left.optional&&this.token("?"),this.print(e.left.typeAnnotation,e),this.space(),this.token("="),this.space(),this.print(e.right,e)}function E(e,t){var r=this.inForStatementInitCounter&&"in"===e.operator&&!_.needsParens(e,t);r&&this.token("("),this.print(e.left,e),this.space(),"in"===e.operator||"instanceof"===e.operator?this.word(e.operator):this.token(e.operator),this.space(),this.print(e.right,e),r&&this.token(")")}function A(e){this.print(e.object,e),this.token("::"),this.print(e.callee,e)}function D(e){if(this.print(e.object,e),!e.computed&&S.isMemberExpression(e.property))throw new TypeError("Got a MemberExpression for MemberExpression property");var t=e.computed;S.isLiteral(e.property)&&"number"==typeof e.property.value&&(t=!0),t?(this.token("["),this.print(e.property,e),this.token("]")):(this.token("."),this.print(e.property,e))}function C(e){this.print(e.meta,e),this.token("."),this.print(e.property,e)}r.__esModule=!0,r.LogicalExpression=r.BinaryExpression=r.AwaitExpression=r.YieldExpression=void 0,r.UnaryExpression=i,r.DoExpression=s,r.ParenthesizedExpression=a,r.UpdateExpression=o,r.ConditionalExpression=u,r.NewExpression=l,r.SequenceExpression=c,r.ThisExpression=p,r.Super=h,r.Decorator=f,r.CallExpression=m,r.Import=y,r.EmptyStatement=b,r.ExpressionStatement=v,r.AssignmentPattern=x,r.AssignmentExpression=E,r.BindExpression=A,r.MemberExpression=D,r.MetaProperty=C;var S=n(e("babel-types")),_=n(e("../node"));r.YieldExpression=g("yield"),r.AwaitExpression=g("await");r.BinaryExpression=E,r.LogicalExpression=E},{"../node":79,"babel-types":169}],71:[function(e,t,r){"use strict";function n(){this.word("any")}function i(e){this.print(e.elementType,e),this.token("["),this.token("]")}function s(){this.word("boolean")}function a(e){this.word(e.value?"true":"false")}function o(){this.word("null")}function u(e){this.word("declare"),this.space(),this.word("class"),this.space(),this._interfaceish(e)}function l(e){this.word("declare"),this.space(),this.word("function"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation.typeAnnotation,e),this.semicolon()}function c(e){this.word("declare"),this.space(),this.InterfaceDeclaration(e)}function p(e){this.word("declare"),this.space(),this.word("module"),this.space(),this.print(e.id,e),this.space(),this.print(e.body,e)}function h(e){this.word("declare"),this.space(),this.word("module"),this.token("."),this.word("exports"),this.print(e.typeAnnotation,e)}function f(e){this.word("declare"),this.space(),this.TypeAlias(e)}function d(e){this.word("declare"),this.space(),this.word("var"),this.space(),this.print(e.id,e),this.print(e.id.typeAnnotation,e),this.semicolon()}function m(){this.token("*")}function y(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)}function g(e){this.print(e.name,e),e.optional&&this.token("?"),this.token(":"),this.space(),this.print(e.typeAnnotation,e)}function b(e){this.print(e.id,e),this.print(e.typeParameters,e)}function v(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)}function x(e){"plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")}function E(e){this.word("interface"),this.space(),this._interfaceish(e)}function A(){this.space(),this.token("&"),this.space()}function D(e){this.printJoin(e.types,e,{separator:A})}function C(){this.word("mixed")}function S(){this.word("empty")}function _(e){this.token("?"),this.print(e.typeAnnotation,e)}function w(){this.word("number")}function k(){this.word("string")}function F(){this.word("this")}function T(e){this.token("["),this.printList(e.types,e),this.token("]")}function P(e){this.word("typeof"),this.space(),this.print(e.argument,e)}function B(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()}function O(e){this.token(":"),this.space(),e.optional&&this.token("?"),this.print(e.typeAnnotation,e)}function j(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))}function N(e){this.token("<"),this.printList(e.params,e,{}),this.token(">")}function I(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("}")}function L(e){e.static&&(this.word("static"),this.space()),this.print(e.value,e)}function M(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)}function R(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)}function V(e){this.print(e.qualification,e),this.token("."),this.print(e.id,e)}function U(){this.space(),this.token("|"),this.space()}function q(e){this.printJoin(e.types,e,{separator:U})}function G(e){this.token("("),this.print(e.expression,e),this.print(e.typeAnnotation,e),this.token(")")}function X(){this.word("void")}r.__esModule=!0,r.AnyTypeAnnotation=n,r.ArrayTypeAnnotation=i,r.BooleanTypeAnnotation=s,r.BooleanLiteralTypeAnnotation=a,r.NullLiteralTypeAnnotation=o,r.DeclareClass=u,r.DeclareFunction=l,r.DeclareInterface=c,r.DeclareModule=p,r.DeclareModuleExports=h,r.DeclareTypeAlias=f,r.DeclareVariable=d,r.ExistentialTypeParam=m,r.FunctionTypeAnnotation=y,r.FunctionTypeParam=g,r.InterfaceExtends=b,r._interfaceish=v,r._variance=x,r.InterfaceDeclaration=E,r.IntersectionTypeAnnotation=D,r.MixedTypeAnnotation=C,r.EmptyTypeAnnotation=S,r.NullableTypeAnnotation=_;var J=e("./types");Object.defineProperty(r,"NumericLiteralTypeAnnotation",{enumerable:!0,get:function(){return J.NumericLiteral}}),Object.defineProperty(r,"StringLiteralTypeAnnotation",{enumerable:!0,get:function(){return J.StringLiteral}}),r.NumberTypeAnnotation=w,r.StringTypeAnnotation=k,r.ThisTypeAnnotation=F,r.TupleTypeAnnotation=T,r.TypeofTypeAnnotation=P,r.TypeAlias=B,r.TypeAnnotation=O,r.TypeParameter=j,r.TypeParameterInstantiation=N,r.ObjectTypeAnnotation=I,r.ObjectTypeCallProperty=L,r.ObjectTypeIndexer=M,r.ObjectTypeProperty=R,r.QualifiedTypeIdentifier=V,r.UnionTypeAnnotation=q,r.TypeCastExpression=G,r.VoidTypeAnnotation=X,r.ClassImplements=b,r.GenericTypeAnnotation=b,r.TypeParameterDeclaration=N},{"./types":77}],72:[function(e,t,r){"use strict";function n(e){this.print(e.name,e),e.value&&(this.token("="),this.print(e.value,e))}function i(e){this.word(e.name)}function s(e){this.print(e.namespace,e),this.token(":"),this.print(e.name,e)}function a(e){this.print(e.object,e),this.token("."),this.print(e.property,e)}function o(e){this.token("{"),this.token("..."),this.print(e.argument,e),this.token("}")}function u(e){this.token("{"),this.print(e.expression,e),this.token("}")}function l(e){this.token("{"),this.token("..."),this.print(e.expression,e),this.token("}")}function c(e){this.token(e.value)}function p(e){var t=e.openingElement;if(this.print(t,e),!t.selfClosing){this.indent();for(var r=e.children,n=Array.isArray(r),i=0,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;this.print(a,e)}this.dedent(),this.print(e.closingElement,e)}}function h(){this.space()}function f(e){this.token("<"),this.print(e.name,e),e.attributes.length>0&&(this.space(),this.printJoin(e.attributes,e,{separator:h})),e.selfClosing?(this.space(),this.token("/>")):this.token(">")}function d(e){this.token("</"),this.print(e.name,e),this.token(">")}function m(){}r.__esModule=!0;var y=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.JSXAttribute=n,r.JSXIdentifier=i,r.JSXNamespacedName=s,r.JSXMemberExpression=a,r.JSXSpreadAttribute=o,r.JSXExpressionContainer=u,r.JSXSpreadChild=l,r.JSXText=c,r.JSXElement=p,r.JSXOpeningElement=f,r.JSXClosingElement=d,r.JSXEmptyExpression=m},{"babel-runtime/core-js/get-iterator":113}],73:[function(e,t,r){"use strict";function n(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)}function i(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)}function s(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)}function a(e){e.async&&(this.word("async"),this.space());var t=e.params[0];1===e.params.length&&u.isIdentifier(t)&&!o(e,t)?this.print(t,e):this._params(e),this.space(),this.token("=>"),this.space(),this.print(e.body,e)}function o(e,t){return e.typeParameters||e.returnType||t.typeAnnotation||t.optional||t.trailingComments}r.__esModule=!0,r.FunctionDeclaration=void 0,r._params=n,r._method=i,r.FunctionExpression=s,r.ArrowFunctionExpression=a;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.FunctionDeclaration=s},{"babel-types":169}],74:[function(e,t,r){"use strict";function n(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))}function i(e){this.print(e.local,e)}function s(e){this.print(e.exported,e)}function a(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))}function o(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.exported,e)}function u(e){this.word("export"),this.space(),this.token("*"),this.space(),this.word("from"),this.space(),this.print(e.source,e),this.semicolon()}function l(){this.word("export"),this.space(),p.apply(this,arguments)}function c(){this.word("export"),this.space(),this.word("default"),this.space(),p.apply(this,arguments)}function p(e){if(e.declaration){var t=e.declaration;this.print(t,e),d.isStatement(t)||this.semicolon()}else{"type"===e.exportKind&&(this.word("type"),this.space());for(var r=e.specifiers.slice(0),n=!1;;){var i=r[0];if(!d.isExportDefaultSpecifier(i)&&!d.isExportNamespaceSpecifier(i))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()}}function h(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(!d.isImportDefaultSpecifier(r)&&!d.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()}function f(e){this.token("*"),this.space(),this.word("as"),this.space(),this.print(e.local,e)}r.__esModule=!0,r.ImportSpecifier=n,r.ImportDefaultSpecifier=i,r.ExportDefaultSpecifier=s,r.ExportSpecifier=a,r.ExportNamespaceSpecifier=o,r.ExportAllDeclaration=u,r.ExportNamedDeclaration=l,r.ExportDefaultDeclaration=c,r.ImportDeclaration=h,r.ImportNamespaceSpecifier=f;var d=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":169}],75:[function(e,t,r){"use strict";function n(e){this.word("with"),this.space(),this.token("("),this.print(e.object,e),this.token(")"),this.printBlock(e)}function i(e){this.word("if"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.space();var t=e.alternate&&E.isIfStatement(s(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))}function s(e){return E.isStatement(e.body)?s(e.body):e}function a(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)}function o(e){this.word("while"),this.space(),this.token("("),this.print(e.test,e),this.token(")"),this.printBlock(e)}function u(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()}function l(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 c(e){this.print(e.label,e),this.token(":"),this.space(),this.print(e.body,e)}function p(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))}function h(e){this.word("catch"),this.space(),this.token("("),this.print(e.param,e),this.token(")"),this.space(),this.print(e.body,e)}function f(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("}")}function d(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}))}function m(){this.word("debugger"),this.semicolon()}function y(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<4;e++)this.space(!0)}function g(){if(this.token(","),this.newline(),this.endsWith("\n"))for(var e=0;e<6;e++)this.space(!0)}function b(e,t){this.word(e.kind),this.space();var r=!1;if(!E.isFor(t))for(var n=e.declarations,i=Array.isArray(n),s=0,n=i?n:(0,x.default)(n);;){var a;if(i){if(s>=n.length)break;a=n[s++]}else{if((s=n.next()).done)break;a=s.value}a.init&&(r=!0)}var o=void 0;r&&(o="const"===e.kind?g:y),this.printList(e.declarations,e,{separator:o}),(!E.isFor(t)||t.left!==e&&t.init!==e)&&this.semicolon()}function v(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))}r.__esModule=!0,r.ThrowStatement=r.BreakStatement=r.ReturnStatement=r.ContinueStatement=r.ForAwaitStatement=r.ForOfStatement=r.ForInStatement=void 0;var x=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.WithStatement=n,r.IfStatement=i,r.ForStatement=a,r.WhileStatement=o,r.DoWhileStatement=u,r.LabeledStatement=c,r.TryStatement=p,r.CatchClause=h,r.SwitchStatement=f,r.SwitchCase=d,r.DebuggerStatement=m,r.VariableDeclaration=b,r.VariableDeclarator=v;var E=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=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=A("in"),r.ForOfStatement=A("of"),r.ForAwaitStatement=A("await"),r.ContinueStatement=l("continue"),r.ReturnStatement=l("return","argument"),r.BreakStatement=l("break"),r.ThrowStatement=l("throw","argument")},{"babel-runtime/core-js/get-iterator":113,"babel-types":169}],76:[function(e,t,r){"use strict";function n(e){this.print(e.tag,e),this.print(e.quasi,e)}function i(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)}function s(e){for(var t=e.quasis,r=0;r<t.length;r++)this.print(t[r],e),r+1<t.length&&this.print(e.expressions[r],e)}r.__esModule=!0,r.TaggedTemplateExpression=n,r.TemplateElement=i,r.TemplateLiteral=s},{}],77:[function(e,t,r){"use strict";function n(e){e.variance&&("plus"===e.variance?this.token("+"):"minus"===e.variance&&this.token("-")),this.word(e.name)}function i(e){this.token("..."),this.print(e.argument,e)}function s(e){var t=e.properties;this.token("{"),this.printInnerComments(e),t.length&&(this.space(),this.printList(t,e,{indent:!0,statement:!0}),this.space()),this.token("}")}function a(e){this.printJoin(e.decorators,e),this._method(e)}function o(e){if(this.printJoin(e.decorators,e),e.computed)this.token("["),this.print(e.key,e),this.token("]");else{if(d.isAssignmentPattern(e.value)&&d.isIdentifier(e.key)&&e.key.name===e.value.left.name)return void this.print(e.value,e);if(this.print(e.key,e),e.shorthand&&d.isIdentifier(e.key)&&d.isIdentifier(e.value)&&e.key.name===e.value.name)return}this.token(":"),this.space(),this.print(e.value,e)}function u(e){var t=e.elements,r=t.length;this.token("["),this.printInnerComments(e);for(var n=0;n<t.length;n++){var i=t[n];i?(n>0&&this.space(),this.print(i,e),n<r-1&&this.token(",")):this.token(",")}this.token("]")}function l(e){this.word("/"+e.pattern+"/"+e.flags)}function c(e){this.word(e.value?"true":"false")}function p(){this.word("null")}function h(e){var t=this.getPossibleRaw(e),r=e.value+"";null==t?this.number(r):this.format.minified?this.number(t.length<r.length?t:r):this.number(t)}function f(e,t){var r=this.getPossibleRaw(e);{if(this.format.minified||null==r){var n={quotes:d.isJSX(t)?"double":this.format.quotes,wrap:!0};this.format.jsonCompatibleStrings&&(n.json=!0);var i=(0,m.default)(e.value,n);return this.token(i)}this.token(r)}}r.__esModule=!0,r.ArrayPattern=r.ObjectPattern=r.RestProperty=r.SpreadProperty=r.SpreadElement=void 0,r.Identifier=n,r.RestElement=i,r.ObjectExpression=s,r.ObjectMethod=a,r.ObjectProperty=o,r.ArrayExpression=u,r.RegExpLiteral=l,r.BooleanLiteral=c,r.NullLiteral=p,r.NumericLiteral=h,r.StringLiteral=f;var d=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")),m=function(e){return e&&e.__esModule?e:{default:e}}(e("jsesc"));r.SpreadElement=i,r.SpreadProperty=i,r.RestProperty=i,r.ObjectPattern=s,r.ArrayPattern=u},{"babel-types":169,jsesc:311}],78:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r){var n=" ";if(e&&"string"==typeof e){var i=(0,l.default)(e).indent;i&&" "!==i&&(n=i)}var a={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||s(e,r),jsonCompatibleStrings:t.jsonCompatibleStrings,indent:{adjustMultilineComment:!0,style:n,base:0},flowCommaSeparator:t.flowCommaSeparator};return a.minified?(a.compact=!0,a.shouldPrintComment=a.shouldPrintComment||function(){return a.comments}):a.shouldPrintComment=a.shouldPrintComment||function(e){return a.comments||e.indexOf("@license")>=0||e.indexOf("@preserve")>=0},"auto"===a.compact&&(a.compact=e.length>5e5,a.compact&&console.error("[BABEL] "+p.get("codeGeneratorDeopt",t.filename,"500KB"))),a.compact&&(a.indent.adjustMultilineComment=!1),a}function s(e,t){if(!e)return"double";for(var r={single:0,double:0},n=0,i=0;i<t.length;i++){var s=t[i];if("string"===s.type.label&&("'"===e.slice(s.start,s.end)[0]?r.single++:r.double++,++n>=3))break}return r.single>r.double?"single":"double"}r.__esModule=!0,r.CodeGenerator=void 0;var a=n(e("babel-runtime/helpers/classCallCheck")),o=n(e("babel-runtime/helpers/possibleConstructorReturn")),u=n(e("babel-runtime/helpers/inherits"));r.default=function(e,t,r){return new h(e,t,r).generate()};var l=n(e("detect-indent")),c=n(e("./source-map")),p=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")),h=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},s=arguments[2];(0,a.default)(this,t);var u=r.tokens||[],l=i(s,n,u),p=n.sourceMaps?new c.default(n,s):null,h=(0,o.default)(this,e.call(this,l,p,u));return h.ast=r,h}return(0,u.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,a.default)(this,e),this._generator=new h(t,r,n)}return e.prototype.generate=function(){return this._generator.generate()},e}()},{"./printer":82,"./source-map":83,"babel-messages":103,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130,"detect-indent":298}],79:[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}for(var r={},n=(0,f.default)(e),i=Array.isArray(n),s=0,n=i?n:(0,h.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=y.FLIPPED_ALIAS_KEYS[o];if(u)for(var l=u,c=Array.isArray(l),p=0,l=c?l:(0,h.default)(l);;){var d;if(c){if(p>=l.length)break;d=l[p++]}else{if((p=l.next()).done)break;d=p.value}t(d,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!!y.isCallExpression(e)||!!y.isMemberExpression(e)&&(o(e.object)||!e.computed&&o(e.property))}function u(e,t,r){if(!e)return 0;y.isExpressionStatement(e)&&(e=e.expression);var n=a(b,e,t);if(!n){var i=a(v,e,t);if(i)for(var s=0;s<i.length&&!(n=u(i[s],e,r));s++);}return n&&n[r]||0}function l(e,t){return u(e,t,"before")}function c(e,t){return u(e,t,"after")}function p(e,t,r){return!!t&&(!(!y.isNewExpression(t)||t.callee!==e||!o(e))||a(g,e,t,r))}r.__esModule=!0;var h=i(e("babel-runtime/core-js/get-iterator")),f=i(e("babel-runtime/core-js/object/keys"));r.needsWhitespace=u,r.needsWhitespaceBefore=l,r.needsWhitespaceAfter=c,r.needsParens=p;var d=i(e("./whitespace")),m=n(e("./parentheses")),y=n(e("babel-types")),g=s(m),b=s(d.default.nodes),v=s(d.default.list)},{"./parentheses":80,"./whitespace":81,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/object/keys":120,"babel-types":169}],80:[function(e,t,r){"use strict";function n(e,t){return b.isArrayTypeAnnotation(t)}function i(e,t){return b.isMemberExpression(t)&&t.object===e}function s(e,t,r){return g(r,{considerArrow:!0})}function a(e,t,r){return g(r)}function o(e,t){if((b.isCallExpression(t)||b.isNewExpression(t))&&t.callee===e||b.isUnaryLike(t)||b.isMemberExpression(t)&&t.object===e||b.isAwaitExpression(t))return!0;if(b.isBinary(t)){var r=t.operator,n=v[r],i=e.operator,s=v[i];if(n===s&&t.right===e&&!b.isLogicalExpression(t)||n>s)return!0}return!1}function u(e,t){return"in"===e.operator&&(b.isVariableDeclarator(t)||b.isFor(t))}function l(e,t){return!(b.isForStatement(t)||b.isThrowStatement(t)||b.isReturnStatement(t)||b.isIfStatement(t)&&t.test===e||b.isWhileStatement(t)&&t.test===e||b.isForInStatement(t)&&t.right===e||b.isSwitchStatement(t)&&t.discriminant===e||b.isExpressionStatement(t)&&t.expression===e)}function c(e,t){return b.isBinary(t)||b.isUnaryLike(t)||b.isCallExpression(t)||b.isMemberExpression(t)||b.isNewExpression(t)||b.isConditionalExpression(t)&&e===t.test}function p(e,t,r){return g(r,{considerDefaultExports:!0})}function h(e,t){return b.isMemberExpression(t,{object:e})||b.isCallExpression(t,{callee:e})||b.isNewExpression(t,{callee:e})}function f(e,t,r){return g(r,{considerDefaultExports:!0})}function d(e,t){return!!(b.isExportDeclaration(t)||b.isBinaryExpression(t)||b.isLogicalExpression(t)||b.isUnaryExpression(t)||b.isTaggedTemplateExpression(t))||h(e,t)}function m(e,t){return!!(b.isUnaryLike(t)||b.isBinary(t)||b.isConditionalExpression(t,{test:e})||b.isAwaitExpression(t))||h(e,t)}function y(e){return!!b.isObjectPattern(e.left)||m.apply(void 0,arguments)}function g(e){for(var t=arguments.length>1&&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],u=e[--a];a>0;){if(b.isExpressionStatement(u,{expression:o})||b.isTaggedTemplateExpression(u)||s&&b.isExportDefaultDeclaration(u,{declaration:o})||n&&b.isArrowFunctionExpression(u,{body:o}))return!0;if(!(b.isCallExpression(u,{callee:o})||b.isSequenceExpression(u)&&u.expressions[0]===o||b.isMemberExpression(u,{object:o})||b.isConditional(u,{test:o})||b.isBinary(u,{left:o})||b.isAssignmentExpression(u,{left:o})))return!1;o=u,u=e[--a]}return!1}r.__esModule=!0,r.AwaitExpression=r.FunctionTypeAnnotation=void 0,r.NullableTypeAnnotation=n,r.UpdateExpression=i,r.ObjectExpression=s,r.DoExpression=a,r.Binary=o,r.BinaryExpression=u,r.SequenceExpression=l,r.YieldExpression=c,r.ClassExpression=p,r.UnaryLike=h,r.FunctionExpression=f,r.ArrowFunctionExpression=d,r.ConditionalExpression=m,r.AssignmentExpression=y;var b=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")),v={"||":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=c},{"babel-types":169}],81:[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;t<e.declarations.length;t++){var r=e.declarations[t],a=i(r.id)&&!s(r.init);if(!a){var o=n(r.init);a=i(r.init)&&o.hasCall||o.hasFunction}if(a)return{before:!0,after:!0}}},IfStatement:function(e){if(o.isBlockStatement(e.consequent))return{before:!0,after:!0}}},r.nodes.ObjectProperty=r.nodes.ObjectTypeProperty=r.nodes.ObjectMethod=r.nodes.SpreadProperty=function(e,t){if(t.properties[0]===e)return{before:!0}},r.list={VariableDeclaration:function(e){return(0,a.default)(e.declarations,"init")},ArrayExpression:function(e){return e.elements},ObjectExpression:function(e){return e.properties}},[["Function",!0],["Class",!0],["Loop",!0],["LabeledStatement",!0],["SwitchStatement",!0],["TryStatement",!0]].forEach(function(e){var t=e[0],n=e[1];"boolean"==typeof n&&(n={after:n,before:n}),[t].concat(o.FLIPPED_ALIAS_KEYS[t]||[]).forEach(function(e){r.nodes[e]=function(){return n}})})},{"babel-types":169,"lodash/map":513}],82:[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(){this.token(","),this.space()}r.__esModule=!0;var a=i(e("babel-runtime/core-js/object/assign")),o=i(e("babel-runtime/core-js/get-iterator")),u=i(e("babel-runtime/core-js/json/stringify")),l=i(e("babel-runtime/core-js/weak-set")),c=i(e("babel-runtime/helpers/classCallCheck")),p=i(e("lodash/find")),h=i(e("lodash/findLast")),f=i(e("lodash/isInteger")),d=i(e("lodash/repeat")),m=i(e("./buffer")),y=n(e("./node")),g=i(e("./whitespace")),b=n(e("babel-types")),v=/e/i,x=/\.0+$/,E=/^0[box]/,A=function(){function e(t,r,n){(0,c.default)(this,e),this.inForStatementInitCounter=0,this._printStack=[],this._indent=0,this._insideAux=!1,this._printedCommentStarts={},this._parenPushNewlineState=null,this._printAuxAfterOnNextUserNode=!1,this._printedComments=new l.default,this._endsWithInteger=!1,this._endsWithWord=!1,this.format=t||{},this._buf=new m.default(r),this._whitespace=n.length>0?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;t<e;t++)this._newline()},e.prototype.endsWith=function(e){return this._buf.endsWith(e)},e.prototype.removeTrailingNewline=function(){this._buf.removeTrailingNewline()},e.prototype.source=function(e,t){this._catchUp(e,t),this._buf.source(e,t)},e.prototype.withSource=function(e,t,r){this._catchUp(e,t),this._buf.withSource(e,t,r)},e.prototype._space=function(){this._append(" ",!0)},e.prototype._newline=function(){this._append("\n",!0)},e.prototype._append=function(e){var t=arguments.length>1&&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;r<e.length&&" "===e[r];r++);if(r!==e.length){var n=e[r];"\n"!==n&&"/"!==n||(this.token("("),this.indent(),t.printed=!0)}}},e.prototype._catchUp=function(e,t){if(this.format.retainLines){var r=t?t[e]:null;if(r&&null!==r.line)for(var n=r.line-this._buf.getCurrentLine(),i=0;i<n;i++)this._newline()}},e.prototype._getIndent=function(){return(0,d.default)(this.format.indent.style,this._indent)},e.prototype.startTerminatorless=function(){return this._parenPushNewlineState={printed:!1}},e.prototype.endTerminatorless=function(e){e.printed&&(this.dedent(),this.newline(),this.token(")"))},e.prototype.print=function(e,t){var r=this;if(e){var n=this.format.concise;if(e._compact&&(this.format.concise=!0),!this[e.type])throw new ReferenceError("unknown node of type "+(0,u.default)(e.type)+" with constructor "+(0,u.default)(e&&e.constructor.name));this._printStack.push(e);var i=this._insideAux;this._insideAux=!e.loc,this._maybeAddAuxComment(this._insideAux&&!i);var s=y.needsParens(e,t,this._printStack);this.format.retainFunctionParens&&"FunctionExpression"===e.type&&e.extra&&e.extra.parenthesized&&(s=!0),s&&this.token("("),this._printLeadingComments(e,t);var a=b.isProgram(e)||b.isFile(e)?null:e.loc;this.withSource("start",a,function(){r[e.type](e,t)}),this._printTrailingComments(e,t),s&&this.token(")"),this._printStack.pop(),this.format.concise=n,this._insideAux=i}},e.prototype._maybeAddAuxComment=function(e){e&&this._printAuxBeforeComment(),this._insideAux||this._printAuxAfterComment()},e.prototype._printAuxBeforeComment=function(){if(!this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!0;var e=this.format.auxiliaryCommentBefore;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype._printAuxAfterComment=function(){if(this._printAuxAfterOnNextUserNode){this._printAuxAfterOnNextUserNode=!1;var e=this.format.auxiliaryCommentAfter;e&&this._printComment({type:"CommentBlock",value:e})}},e.prototype.getPossibleRaw=function(e){var t=e.extra;if(t&&null!=t.raw&&null!=t.rawValue&&e.value===t.rawValue)return t.raw},e.prototype.printJoin=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e&&e.length){r.indent&&this.indent();for(var n={addNewlines:r.addNewlines},i=0;i<e.length;i++){var s=e[i];s&&(r.statement&&this._printNewline(!0,s,t,n),this.print(s,t),r.iterator&&r.iterator(s,i),r.separator&&i<e.length-1&&r.separator.call(this),r.statement&&this._printNewline(!1,s,t,n))}r.indent&&this.dedent()}},e.prototype.printAndIndentOnComments=function(e,t){var r=!!e.leadingComments;r&&this.indent(),this.print(e,t),r&&this.dedent()},e.prototype.printBlock=function(e){var t=e.body;b.isEmptyStatement(t)||this.space(),this.print(t,e)},e.prototype._printTrailingComments=function(e,t){this._printComments(this._getComments(!1,e,t))},e.prototype._printLeadingComments=function(e,t){this._printComments(this._getComments(!0,e,t))},e.prototype.printInnerComments=function(e){var t=!(arguments.length>1&&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)for(var t=e,r=Array.isArray(t),n=0,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")],C=0;C<D.length;C++){var S=D[C];(0,a.default)(A.prototype,S)}t.exports=r.default},{"./buffer":67,"./generators/base":68,"./generators/classes":69,"./generators/expressions":70,"./generators/flow":71,"./generators/jsx":72,"./generators/methods":73,"./generators/modules":74,"./generators/statements":75,"./generators/template-literals":76,"./generators/types":77,"./node":79,"./whitespace":84,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/json/stringify":114,"babel-runtime/core-js/object/assign":117,"babel-runtime/core-js/weak-set":126,"babel-runtime/helpers/classCallCheck":127,"babel-types":169,"lodash/find":487,"lodash/findLast":489,"lodash/isInteger":502,"lodash/repeat":518}],83:[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/keys")),s=n(e("babel-runtime/helpers/typeof")),a=n(e("babel-runtime/helpers/classCallCheck")),o=n(e("source-map")),u=function(){function e(t,r){(0,a.default)(this,e),this._cachedMap=null,this._code=r,this._opts=t,this._rawMappings=[]}return e.prototype.get=function(){if(!this._cachedMap){var e=this._cachedMap=new o.default.SourceMapGenerator({file:this._opts.sourceMapTarget,sourceRoot:this._opts.sourceRoot}),t=this._code;"string"==typeof t?e.setSourceContent(this._opts.sourceFileName,t):"object"===(void 0===t?"undefined":(0,s.default)(t))&&(0,i.default)(t).forEach(function(r){e.setSourceContent(r,t[r])}),this._rawMappings.forEach(e.addMapping,e)}return this._cachedMap.toJSON()},e.prototype.getRawMappings=function(){return this._rawMappings.slice()},e.prototype.mark=function(e,t,r,n,i,s){this._lastGenLine!==e&&null===r||this._lastGenLine===e&&this._lastSourceLine===r&&this._lastSourceColumn===n||(this._cachedMap=null,this._lastGenLine=e,this._lastSourceLine=r,this._lastSourceColumn=n,this._rawMappings.push({name:i||void 0,generated:{line:e,column:t},source:null==r?void 0:s||this._opts.sourceFileName,original:null==r?void 0:{line:r,column:n}}))},e}();r.default=u,t.exports=r.default},{"babel-runtime/core-js/object/keys":120,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/typeof":131,"source-map":95}],84:[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){(0,n.default)(this,e),this.tokens=t,this.used={}}return e.prototype.getNewlinesBefore=function(e){var t=void 0,r=void 0,n=this.tokens,i=this._findToken(function(t){return t.start-e.start},0,n.length);if(i>=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<n;s++)void 0===this.used[s]&&(this.used[s]=!0,i++);return i},e.prototype._findToken=function(e,t,r){if(t>=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":127}],85:[function(e,t,r){arguments[4][55][0].apply(r,arguments)},{"./util":94,dup:55}],86:[function(e,t,r){arguments[4][56][0].apply(r,arguments)},{"./base64":87,dup:56}],87:[function(e,t,r){arguments[4][57][0].apply(r,arguments)},{dup:57}],88:[function(e,t,r){arguments[4][58][0].apply(r,arguments)},{dup:58}],89:[function(e,t,r){arguments[4][59][0].apply(r,arguments)},{"./util":94,dup:59}],90:[function(e,t,r){arguments[4][60][0].apply(r,arguments)},{dup:60}],91:[function(e,t,r){arguments[4][61][0].apply(r,arguments)},{"./array-set":85,"./base64-vlq":86,"./binary-search":88,"./quick-sort":90,"./util":94,dup:61}],92:[function(e,t,r){arguments[4][62][0].apply(r,arguments)},{"./array-set":85,"./base64-vlq":86,"./mapping-list":89,"./util":94,dup:62}],93:[function(e,t,r){arguments[4][63][0].apply(r,arguments)},{"./source-map-generator":92,"./util":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)},{"./lib/source-map-consumer":91,"./lib/source-map-generator":92,"./lib/source-node":93,dup:65}],96:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return!f.isClassMethod(e)&&!f.isObjectMethod(e)||"get"!==e.kind&&"set"!==e.kind?"value":e.kind}function s(e,t,r,n,s){var a=f.toKeyAlias(t),o={};if((0,h.default)(e,a)&&(o=e[a]),e[a]=o,o._inherits=o._inherits||[],o._inherits.push(t),o._key=t.key,t.computed&&(o._computed=!0),t.decorators){var u=o.decorators=o.decorators||f.arrayExpression([]);u.elements=u.elements.concat(t.decorators.map(function(e){return e.expression}).reverse())}if(o.value||o.initializer)throw n.buildCodeFrameError(t,"Key conflict with sibling node");var l=void 0,c=void 0;(f.isObjectProperty(t)||f.isObjectMethod(t)||f.isClassMethod(t))&&(l=f.toComputedKey(t,t.key)),f.isObjectProperty(t)||f.isClassProperty(t)?c=t.value:(f.isObjectMethod(t)||f.isClassMethod(t))&&((c=f.functionExpression(null,t.params,t.body,t.generator,t.async)).returnType=t.returnType);var d=i(t);return r&&"value"===d||(r=d),s&&f.isStringLiteral(l)&&("value"===r||"initializer"===r)&&f.isFunctionExpression(c)&&(c=(0,p.default)({id:l,node:c,scope:s})),c&&(f.inheritsComments(c,t),o[r]=c),o}function a(e){for(var t in e)if(e[t]._computed)return!0;return!1}function o(e){for(var t=f.arrayExpression([]),r=0;r<e.properties.length;r++){var n=e.properties[r],i=n.value;i.properties.unshift(f.objectProperty(f.identifier("key"),f.toComputedKey(n))),t.elements.push(i)}return t}function u(e){var t=f.objectExpression([]);return(0,c.default)(e).forEach(function(r){var n=e[r],i=f.objectExpression([]),s=f.objectProperty(n._key,i,n._computed);(0,c.default)(n).forEach(function(e){var t=n[e];if("_"!==e[0]){var r=t;(f.isClassMethod(t)||f.isClassProperty(t))&&(t=t.value);var s=f.objectProperty(f.identifier(e),t);f.inheritsComments(s,r),f.removeComments(r),i.properties.push(s)}}),t.properties.push(s)}),t}function l(e){return(0,c.default)(e).forEach(function(t){var r=e[t];r.value&&(r.writable=f.booleanLiteral(!0)),r.configurable=f.booleanLiteral(!0),r.enumerable=f.booleanLiteral(!0)}),u(e)}r.__esModule=!0;var c=n(e("babel-runtime/core-js/object/keys"));r.push=s,r.hasComputed=a,r.toComputedObjectFromClass=o,r.toClassObject=u,r.toDefineObject=l;var p=n(e("babel-helper-function-name")),h=n(e("lodash/has")),f=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-helper-function-name":97,"babel-runtime/core-js/object/keys":120,"babel-types":169,"lodash/has":492}],97:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t,r,n){if(e.selfReference){if(!n.hasBinding(r.name)||n.hasGlobal(r.name)){if(!u.isFunction(t))return;var i=l;t.generator&&(i=c);var s=i({FUNCTION:t,FUNCTION_ID:r,FUNCTION_KEY:n.generateUidIdentifier(r.name)}).expression;s.callee._skipModulesRemap=!0;for(var o=s.callee.body.body[0].params,p=0,h=(0,a.default)(t);p<h;p++)o.push(n.generateUidIdentifier("x"));return s}n.rename(r.name)}t.id=r,n.getProgramParent().references[r.name]=!0}function s(e,t,r){var n={selfAssignment:!1,selfReference:!1,outerDeclar:r.getBindingIdentifier(t),references:[],name:t},i=r.getOwnBinding(t);return i?"param"===i.kind&&(n.selfReference=!0):(n.outerDeclar||r.hasGlobal(t))&&r.traverse(e,p,n),n}r.__esModule=!0,r.default=function(e){var t=e.node,r=e.parent,n=e.scope,a=e.id;if(!t.id){if(!u.isObjectProperty(r)&&!u.isObjectMethod(r,{kind:"method"})||r.computed&&!u.isLiteral(r.key)){if(u.isVariableDeclarator(r)){if(a=r.id,u.isIdentifier(a)){var o=n.parent.getBinding(a.name);if(o&&o.constant&&n.getBinding(a.name)===o)return t.id=a,void(t.id[u.NOT_LOCAL_BINDING]=!0)}}else if(u.isAssignmentExpression(r))a=r.left;else if(!a)return}else a=r.key;var l=void 0;if(a&&u.isLiteral(a))l=a.value;else{if(!a||!u.isIdentifier(a))return;l=a.name}return l=u.toBindingIdentifierName(l),(a=u.identifier(l))[u.NOT_LOCAL_BINDING]=!0,i(s(t,l,n),t,a,n)||t}};var a=n(e("babel-helper-get-function-arity")),o=n(e("babel-template")),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,o.default)("\n (function (FUNCTION_KEY) {\n function FUNCTION_ID() {\n return FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n }\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),c=(0,o.default)("\n (function (FUNCTION_KEY) {\n function* FUNCTION_ID() {\n return yield* FUNCTION_KEY.apply(this, arguments);\n }\n\n FUNCTION_ID.toString = function () {\n return FUNCTION_KEY.toString();\n };\n\n return FUNCTION_ID;\n })(FUNCTION)\n"),p={"ReferencedIdentifier|BindingIdentifier":function(e,t){e.node.name===t.name&&e.scope.getBindingIdentifier(t.name)===t.outerDeclar&&(t.selfReference=!0,e.stop())}};t.exports=r.default},{"babel-helper-get-function-arity":98,"babel-template":132,"babel-types":169}],98:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){for(var t=e.params,r=0;r<t.length;r++){var i=t[r];if(n.isAssignmentPattern(i)||n.isRestElement(i))return r}return t.length};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":169}],99:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e,t,r){return 1===r.length&&n.isSpreadElement(r[0])&&n.isIdentifier(r[0].argument,{name:"arguments"})?n.callExpression(n.memberExpression(e,n.identifier("apply")),[t,r[0].argument]):n.callExpression(n.memberExpression(e,n.identifier("call")),[t].concat(r))};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":169}],100:[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){return!!h.isSuper(e)&&(!h.isMemberExpression(t,{computed:!1})&&!h.isCallExpression(t,{callee:e}))}function a(e){return h.isMemberExpression(e)&&h.isSuper(e.object)}function o(e,t){var r=t?e:h.memberExpression(e,h.identifier("prototype"));return h.logicalExpression("||",h.memberExpression(r,h.identifier("__proto__")),h.callExpression(h.memberExpression(h.identifier("Object"),h.identifier("getPrototypeOf")),[r]))}r.__esModule=!0;var u=i(e("babel-runtime/helpers/classCallCheck")),l=i(e("babel-runtime/core-js/symbol")),c=i(e("babel-helper-optimise-call-expression")),p=n(e("babel-messages")),h=n(e("babel-types")),f=(0,l.default)(),d={Function:function(e){e.inShadow("this")||e.skip()},ReturnStatement:function(e,t){e.inShadow("this")||t.returns.push(e)},ThisExpression:function(e,t){e.node[f]||t.thises.push(e)},enter:function(e,t){var r=t.specHandle;t.isLoose&&(r=t.looseHandle);var n=e.isCallExpression()&&e.get("callee").isSuper(),i=r.call(t,e);i&&(t.hasSuper=!0),n&&t.bareSupers.push(e),!0===i&&e.requeue(),!0!==i&&i&&(Array.isArray(i)?e.replaceWithMultiple(i):e.replaceWith(i))}},m=function(){function e(t){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];(0,u.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 h.callExpression(this.file.addHelper("set"),[o(this.getObjectRef(),this.isStatic),r?e:h.stringLiteral(e.name),t,h.thisExpression()])},e.prototype.getSuperProperty=function(e,t){return h.callExpression(this.file.addHelper("get"),[o(this.getObjectRef(),this.isStatic),t?e:h.stringLiteral(e.name),h.thisExpression()])},e.prototype.replace=function(){this.methodPath.traverse(d,this)},e.prototype.getLooseSuperProperty=function(e,t){var r=this.methodNode,n=this.superRef||h.identifier("Function");return t.property===e?void 0:h.isCallExpression(t,{callee:e})?void 0:h.isMemberExpression(t)&&!r.static?h.memberExpression(n,h.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(!h.isMemberExpression(r))return;if(!h.isSuper(r.object))return;return h.appendToMemberExpression(r,h.identifier("call")),t.arguments.unshift(h.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"),[h.variableDeclaration("var",[h.variableDeclarator(e,r.left)]),h.expressionStatement(h.assignmentExpression("=",r.left,h.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,o=e.node;if(s(o,i))throw e.buildCodeFrameError(p.get("classesIllegalBareSuper"));if(h.isCallExpression(o)){var u=o.callee;if(h.isSuper(u))return;a(u)&&(t=u.property,r=u.computed,n=o.arguments)}else if(h.isMemberExpression(o)&&h.isSuper(o.object))t=o.property,r=o.computed;else{if(h.isUpdateExpression(o)&&a(o.argument)){var l=h.binaryExpression(o.operator[0],o.argument,h.numericLiteral(1));if(o.prefix)return this.specHandleAssignmentExpression(null,e,l);var c=e.scope.generateUidIdentifier("ref");return this.specHandleAssignmentExpression(c,e,l).concat(h.expressionStatement(c))}if(h.isAssignmentExpression(o)&&a(o.left))return this.specHandleAssignmentExpression(null,e,o)}if(t){var f=this.getSuperProperty(t,r);return n?this.optimiseCall(f,n):f}},e.prototype.optimiseCall=function(e,t){var r=h.thisExpression();return r[f]=!0,(0,c.default)(e,r,t)},e}();r.default=m,t.exports=r.default},{"babel-helper-optimise-call-expression":99,"babel-messages":103,"babel-runtime/core-js/symbol":122,"babel-runtime/helpers/classCallCheck":127,"babel-types":169}],101:[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":132}],102:[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":101,"babel-runtime/core-js/object/keys":120}],103:[function(e,t,r){"use strict";function n(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n<t;n++)r[n-1]=arguments[n];var a=o[e];if(!a)throw new ReferenceError("Unknown message "+(0,s.default)(e));return r=i(r),a.replace(/\$(\d+)/g,function(e,t){return r[t-1]})}function i(e){return e.map(function(e){if(null!=e&&e.inspect)return e.inspect();try{return(0,s.default)(e)||e+""}catch(t){return a.inspect(e)}})}r.__esModule=!0,r.MESSAGES=void 0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/json/stringify"));r.get=n,r.parseArgs=i;var a=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")),o=r.MESSAGES={tailCallReassignmentDeopt:"Function reference has been reassigned, so it will probably be dereferenced, therefore we can't optimise this with confidence",classesIllegalBareSuper:"Illegal use of bare super",classesIllegalSuperCall:"Direct super call is illegal in non-constructor, use super.$1() instead",scopeDuplicateDeclaration:"Duplicate declaration $1",settersNoRest:"Setters aren't allowed to have a rest",noAssignmentsInForHead:"No assignments allowed in for-in/of head",expectedMemberExpressionOrIdentifier:"Expected type MemberExpression or Identifier",invalidParentForThisNode:"We don't know how to handle this node within the current parent - please open an issue",readOnly:"$1 is read-only",unknownForHead:"Unknown node type $1 in ForStatement",didYouMean:"Did you mean $1?",codeGeneratorDeopt:"Note: The code generator has deoptimised the styling of $1 as it exceeds the max of $2.",missingTemplatesDirectory:"no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/babel/babel/issues",unsupportedOutputType:"Unsupported output type $1",illegalMethodName:"Illegal method name $1",lostTrackNodePath:"We lost track of this node's position, likely because the AST was directly manipulated",modulesIllegalExportName:"Illegal export $1",modulesDuplicateDeclarations:"Duplicate module declarations with the same source but in different scopes",undeclaredVariable:"Reference to undeclared variable $1",undeclaredVariableType:"Referencing a type alias outside of a type annotation",undeclaredVariableSuggestion:"Reference to undeclared variable $1 - did you mean $2?",traverseNeedsParent:"You must pass a scope and parentPath unless traversing a Program/File. Instead of that you tried to traverse a $1 node without passing scope and parentPath.",traverseVerifyRootFunction:"You passed `traverse()` a function when it expected a visitor object, are you sure you didn't mean `{ enter: Function }`?",traverseVerifyVisitorProperty:"You passed `traverse()` a visitor object with the property $1 that has the invalid property $2",traverseVerifyNodeType:"You gave us a visitor for the node type $1 but it's not a valid type",pluginNotObject:"Plugin $2 specified in $1 was expected to return an object when invoked but returned $3",pluginNotFunction:"Plugin $2 specified in $1 was expected to return a function but returned $3",pluginUnknown:"Unknown plugin $1 specified in $2 at $3, attempted to resolve relative to $4",pluginInvalidProperty:"Plugin $2 specified in $1 provided an invalid property of $3"}},{"babel-runtime/core-js/json/stringify":114,util:602}],104:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncFunctions")}}},t.exports=r.default},{}],105:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(){return{manipulateOptions:function(e,t){t.plugins.push("asyncGenerators")}}},t.exports=r.default},{}],106:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(e){var t=e.types;return{visitor:{ArrowFunctionExpression:function(e,r){if(r.opts.spec){var n=e.node;if(n.shadow)return;n.shadow={this:!1},n.type="FunctionExpression";var i=t.thisExpression();i._forceShadow=e,e.ensureBlock(),e.get("body").unshiftContainer("body",t.expressionStatement(t.callExpression(r.addHelper("newArrowCheck"),[t.thisExpression(),i]))),e.replaceWith(t.callExpression(t.memberExpression(n,t.identifier("bind")),[t.thisExpression()]))}else e.arrowFunctionToShadowed()}}}},t.exports=r.default},{}],107:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){return d.isLoop(e.parent)||d.isCatchClause(e.parent)}function s(e){return!!d.isVariableDeclaration(e)&&(!!e[d.BLOCK_SCOPED_SYMBOL]||("let"===e.kind||"const"===e.kind))}function a(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(t||(t=e.node),!d.isFor(r))for(var s=0;s<t.declarations.length;s++){var a=t.declarations[s];a.init=a.init||n.buildUndefinedNode()}if(t[d.BLOCK_SCOPED_SYMBOL]=!0,t.kind="var",i){var o=n.getFunctionParent(),u=e.getBindingIdentifiers();for(var l in u){var c=n.getOwnBinding(l);c&&(c.kind="var"),n.moveBindingTo(l,o)}}}function o(e){return d.isVariableDeclaration(e,{kind:"var"})&&!s(e)}function u(e){return d.isBreakStatement(e)?"break":d.isContinueStatement(e)?"continue":void 0}r.__esModule=!0;var l=n(e("babel-runtime/core-js/symbol")),c=n(e("babel-runtime/core-js/object/create")),p=n(e("babel-runtime/helpers/classCallCheck"));r.default=function(){return{visitor:{VariableDeclaration:function(e,t){var r=e.node,n=e.parent,i=e.scope;if(s(r)&&(a(e,null,n,i,!0),r._tdzThis)){for(var o=[r],u=0;u<r.declarations.length;u++){var l=r.declarations[u];if(l.init){var c=d.assignmentExpression("=",l.id,l.init);c._ignoreBlockScopingTDZ=!0,o.push(d.expressionStatement(c))}l.init=t.addHelper("temporalUndefined")}r._blockHoist=2,e.isCompletionRecord()&&o.push(d.expressionStatement(i.buildUndefinedNode())),e.replaceWithMultiple(o)}},Loop:function(e,t){var r=e.node,n=e.parent,i=e.scope;d.ensureBlock(r);var s=new C(e,e.get("body"),n,i,t).run();s&&e.replaceWith(s)},CatchClause:function(e,t){var r=e.parent,n=e.scope;new C(null,e.get("body"),r,n,t).run()},"BlockStatement|SwitchStatement|Program":function(e,t){i(e)||new C(null,e,e.parent,e.scope,t).run()}}}};var h=n(e("babel-traverse")),f=e("./tdz"),d=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")),m=n(e("lodash/values")),y=n(e("lodash/extend")),g=(0,n(e("babel-template")).default)('\n if (typeof RETURN === "object") return RETURN.v;\n'),b=h.default.visitors.merge([{Loop:{enter:function(e,t){t.loopDepth++},exit:function(e,t){t.loopDepth--}},Function:function(e,t){return t.loopDepth>0&&e.traverse(v,t),e.skip()}},f.visitor]),v=h.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)}}},f.visitor]),x={enter:function(e,t){var r=e.node;e.parent;if(e.isForStatement()){if(o(r.init)){var n=t.pushDeclar(r.init);1===n.length?r.init=n[0]:r.init=d.sequenceExpression(n)}}else if(e.isFor())o(r.left)&&(t.pushDeclar(r.left),r.left=r.left.declarations[0].id);else if(o(r))e.replaceWithMultiple(t.pushDeclar(r).map(function(e){return d.expressionStatement(e)}));else if(e.isFunction())return e.skip()}},E={LabeledStatement:function(e,t){var r=e.node;t.innerLabels.push(r.label.name)}},A={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)}}},D={Loop:function(e,t){var r=t.ignoreLabeless;t.ignoreLabeless=!0,e.traverse(D,t),t.ignoreLabeless=r,e.skip()},Function:function(e){e.skip()},SwitchCase:function(e,t){var r=t.inSwitchCase;t.inSwitchCase=!0,e.traverse(D,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=u(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(d.isBreakStatement(r)&&d.isSwitchCase(n))return}t.hasBreakContinue=!0,t.map[a]=r,s=d.stringLiteral(a)}e.isReturnStatement()&&(t.hasReturn=!0,s=d.objectExpression([d.objectProperty(d.identifier("v"),r.argument||i.buildUndefinedNode())])),s&&((s=d.returnStatement(s))[this.LOOP_IGNORE]=!0,e.skip(),e.replaceWith(d.inherits(s,r)))}}},C=function(){function e(t,r,n,i,s){(0,p.default)(this,e),this.parent=n,this.scope=i,this.file=s,this.blockPath=r,this.block=r.node,this.outsideLetReferences=(0,c.default)(null),this.hasLetReferences=!1,this.letReferences=(0,c.default)(null),this.body=[],t&&(this.loopParent=t.parent,this.loopLabel=d.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(d.isFunction(this.parent)||d.isProgram(this.block))this.updateScopeInfo();else if(this.hasLetReferences)return t?this.wrapClosure():this.remap(),this.updateScopeInfo(t),this.loopLabel&&!d.isLabeledStatement(this.loopParent)?d.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,m.default)(t),s=(0,m.default)(t),a=this.blockPath.isSwitchStatement(),o=d.functionExpression(null,i,d.blockStatement(a?[e]:e.body));o.shadow=!0,this.addContinuations(o);var u=o;this.loop&&(u=this.scope.generateUidIdentifier("loop"),this.loopPath.insertBefore(d.variableDeclaration("var",[d.variableDeclarator(u,o)])));var l=d.callExpression(u,s),c=this.scope.generateUidIdentifier("ret");h.default.hasType(o.body,this.scope,"YieldExpression",d.FUNCTION_TYPES)&&(o.generator=!0,l=d.yieldExpression(l,!0)),h.default.hasType(o.body,this.scope,"AwaitExpression",d.FUNCTION_TYPES)&&(o.async=!0,l=d.awaitExpression(l)),this.buildClosure(c,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(d.expressionStatement(t))},e.prototype.addContinuations=function(e){var t={reassignments:{},outsideReferences:this.outsideLetReferences};this.scope.traverse(e,A,t);for(var r=0;r<e.params.length;r++){var n=e.params[r];if(t.reassignments[n.name]){var i=this.scope.generateUidIdentifier(n.name);e.params[r]=i,this.scope.rename(n.name,i.name,e),e.body.body.push(d.expressionStatement(d.assignmentExpression("=",n,i)))}}},e.prototype.getLetReferences=function(){var e=this,t=this.block,r=[];if(this.loop){var n=this.loop.left||this.loop.init;s(n)&&(r.push(n),(0,y.default)(this.outsideLetReferences,d.getBindingIdentifiers(n)))}var i=function n(i,o){o=o||i.node,(d.isClassDeclaration(o)||d.isFunctionDeclaration(o)||s(o))&&(s(o)&&a(i,o,t,e.scope),r=r.concat(o.declarations||o)),d.isLabeledStatement(o)&&n(i.get("body"),o.body)};if(t.body)for(var o=0;o<t.body.length;o++)i(this.blockPath.get("body")[o]);if(t.cases)for(var u=0;u<t.cases.length;u++)for(var l=t.cases[u].consequent,c=0;c<l.length;c++)i(this.blockPath.get("cases")[u],l[c]);for(var p=0;p<r.length;p++){var h=r[p],f=d.getBindingIdentifiers(h,!1,!0);(0,y.default)(this.letReferences,f),this.hasLetReferences=!0}if(this.hasLetReferences){var m={letReferences:this.letReferences,closurify:!1,file:this.file,loopDepth:0},g=this.blockPath.find(function(e){return e.isLoop()||e.isFunction()});return g&&g.isLoop()&&m.loopDepth++,this.blockPath.traverse(b,m),m.closurify}},e.prototype.checkLoop=function(){var e={hasBreakContinue:!1,ignoreLabeless:!1,inSwitchCase:!1,innerLabels:[],hasReturn:!1,isLoop:!!this.loop,map:{},LOOP_IGNORE:(0,l.default)()};return this.blockPath.traverse(E,e),this.blockPath.traverse(D,e),e},e.prototype.hoistVarDeclarations=function(){this.blockPath.traverse(x,this)},e.prototype.pushDeclar=function(e){var t=[],r=d.getBindingIdentifiers(e);for(var n in r)t.push(d.variableDeclarator(r[n]));this.body.push(d.variableDeclaration(e.kind,t));for(var i=[],s=0;s<e.declarations.length;s++){var a=e.declarations[s];if(a.init){var o=d.assignmentExpression("=",a.id,a.init);i.push(d.inherits(o,a))}}return i},e.prototype.buildHas=function(e,t){var r=this.body;r.push(d.variableDeclaration("var",[d.variableDeclarator(e,t)]));var n=void 0,i=this.has,s=[];if(i.hasReturn&&(n=g({RETURN:e})),i.hasBreakContinue){for(var a in i.map)s.push(d.switchCase(d.stringLiteral(a),[i.map[a]]));if(i.hasReturn&&s.push(d.switchCase(null,[n])),1===s.length){var o=s[0];r.push(d.ifStatement(d.binaryExpression("===",e,o.test),o.consequent[0]))}else{if(this.loop)for(var u=0;u<s.length;u++){var l=s[u].consequent[0];d.isBreakStatement(l)&&!l.label&&(l.label=this.loopLabel=this.loopLabel||this.scope.generateUidIdentifier("loop"))}r.push(d.switchStatement(e,s))}}else i.hasReturn&&r.push(n)},e}();t.exports=r.default},{"./tdz":108,"babel-runtime/core-js/object/create":118,"babel-runtime/core-js/symbol":122,"babel-runtime/helpers/classCallCheck":127,"babel-template":132,"babel-traverse":136,"babel-types":169,"lodash/extend":486,"lodash/values":529}],108:[function(e,t,r){"use strict";function n(e,t){var r=t._guessExecutionStatusRelativeTo(e);return"before"===r?"inside":"after"===r?"outside":"maybe"}function i(e,t){return a.callExpression(t.addHelper("temporalRef"),[e,a.stringLiteral(e.name),t.addHelper("temporalUndefined")])}function s(e,t,r){var n=r.letReferences[e.name];return!!n&&t.getBindingIdentifier(e.name)===n}r.__esModule=!0,r.visitor=void 0;var a=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.visitor={ReferencedIdentifier:function(e,t){if(this.file.opts.tdz){var r=e.node,o=e.parent,u=e.scope;if(!e.parentPath.isFor({left:r})&&s(r,u,t)){var l=u.getBinding(r.name).path,c=n(e,l);if("inside"!==c)if("maybe"===c){var p=i(r,t.file);if(l.parent._tdzThis=!0,e.skip(),e.parentPath.isUpdateExpression()){if(o._ignoreBlockScopingTDZ)return;e.parentPath.replaceWith(a.sequenceExpression([p,o]))}else e.replaceWith(p)}else"outside"===c&&e.replaceWith(a.throwStatement(a.inherits(a.newExpression(a.identifier("ReferenceError"),[a.stringLiteral(r.name+" is not defined - temporal dead zone")]),r)))}}},AssignmentExpression:{exit:function(e,t){if(this.file.opts.tdz){var r=e.node;if(!r._ignoreBlockScopingTDZ){var n=[],o=e.getBindingIdentifiers();for(var u in o){var l=o[u];s(l,e.scope,t)&&n.push(i(l,t.file))}n.length&&(r._ignoreBlockScopingTDZ=!0,n.push(r),e.replaceWithMultiple(n.map(a.expressionStatement)))}}}}}},{"babel-types":169}],109:[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/symbol"));r.default=function(e){var t=e.types,r=(0,i.default)();return{visitor:{ExportDefaultDeclaration:function(e){if(e.get("declaration").isClassDeclaration()){var r=e.node,n=r.declaration.id||e.scope.generateUidIdentifier("class");r.declaration.id=n,e.replaceWith(r.declaration),e.insertAfter(t.exportDefaultDeclaration(n))}},ClassDeclaration:function(e){var r=e.node,n=r.id||e.scope.generateUidIdentifier("class");e.replaceWith(t.variableDeclaration("let",[t.variableDeclarator(n,t.toExpression(r))]))},ClassExpression:function(e,t){var n=e.node;if(!n[r]){var i=(0,o.default)(e);if(i&&i!==n)return e.replaceWith(i);n[r]=!0;var u=a.default;t.opts.loose&&(u=s.default),e.replaceWith(new u(e,t.file).run())}}}}};var s=n(e("./loose")),a=n(e("./vanilla")),o=n(e("babel-helper-function-name"));t.exports=r.default},{"./loose":110,"./vanilla":111,"babel-helper-function-name":97,"babel-runtime/core-js/symbol":122}],110:[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("babel-helper-function-name")),u=n(e("./vanilla")),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(e){function t(){(0,i.default)(this,t);var r=(0,s.default)(this,e.apply(this,arguments));return r.isLoose=!0,r}return(0,a.default)(t,e),t.prototype._processMethod=function(e,t){if(!e.decorators){var r=this.classRef;e.static||(r=l.memberExpression(r,l.identifier("prototype")));var n=l.memberExpression(r,e.key,e.computed||l.isLiteral(e.key)),i=l.functionExpression(null,e.params,e.body,e.generator,e.async);i.returnType=e.returnType;var s=l.toComputedKey(e,e.key);l.isStringLiteral(s)&&(i=(0,o.default)({node:i,id:s,scope:t}));var a=l.expressionStatement(l.assignmentExpression("=",n,i));return l.inheritsComments(a,e),this.body.push(a),!0}},t}(u.default);r.default=c,t.exports=r.default},{"./vanilla":111,"babel-helper-function-name":97,"babel-runtime/helpers/classCallCheck":127,"babel-runtime/helpers/inherits":128,"babel-runtime/helpers/possibleConstructorReturn":130,"babel-types":169}],111:[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/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=e("babel-traverse"),u=i(e("babel-helper-replace-supers")),l=i(e("babel-helper-optimise-call-expression")),c=n(e("babel-helper-define-map")),p=i(e("babel-template")),h=n(e("babel-types")),f=(0,p.default)("\n (function () {\n super(...arguments);\n })\n"),d={"FunctionExpression|FunctionDeclaration":function(e){e.is("shadow")||e.skip()},Method:function(e){e.skip()}},m=o.visitors.merge([d,{Super:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.parentPath.isCallExpression({callee:e.node}))throw e.buildCodeFrameError("'super.*' is not allowed before super()")},CallExpression:{exit:function(e){if(e.get("callee").isSuper()&&(this.hasBareSuper=!0,!this.isDerived))throw e.buildCodeFrameError("super() is only allowed in a derived constructor")}},ThisExpression:function(e){if(this.isDerived&&!this.hasBareSuper&&!e.inShadow("this"))throw e.buildCodeFrameError("'this' is not allowed before super()")}}]),y=o.visitors.merge([d,{ThisExpression:function(e){this.superThises.push(e)}}]),g=function(){function e(t,r){(0,a.default)(this,e),this.parent=t.parent,this.scope=t.scope,this.node=t.node,this.path=t,this.file=r,this.clearDescriptors(),this.instancePropBody=[],this.instancePropRefs={},this.staticPropBody=[],this.body=[],this.bareSuperAfter=[],this.bareSupers=[],this.pushedConstructor=!1,this.pushedInherits=!1,this.isLoose=!1,this.superThises=[],this.classId=this.node.id,this.classRef=this.node.id?h.identifier(this.node.id.name):this.scope.generateUidIdentifier("class"),this.superName=this.node.superClass||h.identifier("Function"),this.isDerived=!!this.node.superClass}return e.prototype.run=function(){var e=this,t=this.superName,r=this.file,n=this.body,i=this.constructorBody=h.blockStatement([]);this.constructor=this.buildConstructor();var s=[],a=[];if(this.isDerived&&(a.push(t),t=this.scope.generateUidIdentifierBasedOnNode(t),s.push(t),this.superName=t),this.buildBody(),i.body.unshift(h.expressionStatement(h.callExpression(r.addHelper("classCallCheck"),[h.thisExpression(),this.classRef]))),n=n.concat(this.staticPropBody.map(function(t){return t(e.classRef)})),this.classId&&1===n.length)return h.toExpression(n[0]);n.push(h.returnStatement(this.classRef));var o=h.functionExpression(null,s,h.blockStatement(n));return o.shadow=!0,h.callExpression(o,a)},e.prototype.buildConstructor=function(){var e=h.functionDeclaration(this.classRef,[],this.constructorBody);return h.inherits(e,this.node),e},e.prototype.pushToMap=function(e,t){var r=arguments.length>2&&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(){for(var e=!1,t=this.path.get("body.body"),r=Array.isArray(t),n=0,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(){for(var e=this.path.get("body.body"),t=Array.isArray(e),r=0,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<i.length;a++)i[a]!==n&&(s=a);i=i.slice(0,s+1),e.push(h.expressionStatement(h.callExpression(this.file.addHelper("createClass"),i)))}this.clearDescriptors()},e.prototype.buildObjectAssignment=function(e){return h.variableDeclaration("var",[h.variableDeclarator(e,h.objectExpression([]))])},e.prototype.wrapSuperCall=function(e,t,r,n){var i=e.node;this.isLoose?(i.arguments.unshift(h.thisExpression()),2===i.arguments.length&&h.isSpreadElement(i.arguments[1])&&h.isIdentifier(i.arguments[1].argument,{name:"arguments"})?(i.arguments[1]=i.arguments[1].argument,i.callee=h.memberExpression(t,h.identifier("apply"))):i.callee=h.memberExpression(t,h.identifier("call"))):i=(0,l.default)(h.logicalExpression("||",h.memberExpression(this.classRef,h.identifier("__proto__")),h.callExpression(h.memberExpression(h.identifier("Object"),h.identifier("getPrototypeOf")),[this.classRef])),h.thisExpression(),i.arguments);var s=h.callExpression(this.file.addHelper("possibleConstructorReturn"),[h.thisExpression(),i]),a=this.bareSuperAfter.map(function(e){return e(r)});e.parentPath.isExpressionStatement()&&e.parentPath.container===n.node.body&&n.node.body.length-1===e.parentPath.key?((this.superThises.length||a.length)&&(e.scope.push({id:r}),s=h.assignmentExpression("=",r,s)),a.length&&(s=h.toSequenceExpression([s].concat(a,[r]))),e.parentPath.replaceWith(h.returnStatement(s))):e.replaceWithMultiple([h.variableDeclaration("var",[h.variableDeclarator(r,s)])].concat(a,[h.expressionStatement(r)]))},e.prototype.verifyConstructor=function(){var e=this;if(this.isDerived){var t=this.userConstructorPath,r=t.get("body");t.traverse(y,this);for(var n=!!this.bareSupers.length,i=this.superName||h.identifier("Function"),a=t.scope.generateUidIdentifier("this"),o=this.bareSupers,u=Array.isArray(o),l=0,o=u?o:(0,s.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;this.wrapSuperCall(p,i,a,r),n&&p.find(function(e){return e===t||(e.isLoop()||e.isConditional()?(n=!1,!0):void 0)})}for(var f=this.superThises,d=Array.isArray(f),m=0,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()));for(var x=this.superReturns,E=Array.isArray(x),A=0,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 C=D;if(C.node.argument){var S=C.scope.generateDeclaredUidIdentifier("ret");C.get("argument").replaceWithMultiple([h.assignmentExpression("=",S,C.node.argument),b(S)])}else C.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":96,"babel-helper-optimise-call-expression":99,"babel-helper-replace-supers":100,"babel-runtime/core-js/get-iterator":113,"babel-runtime/helpers/classCallCheck":127,"babel-template":132,"babel-traverse":136,"babel-types":169}],112:[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},{}],113:[function(e,t,r){t.exports={default:e("core-js/library/fn/get-iterator"),__esModule:!0}},{"core-js/library/fn/get-iterator":187}],114:[function(e,t,r){t.exports={default:e("core-js/library/fn/json/stringify"),__esModule:!0}},{"core-js/library/fn/json/stringify":188}],115:[function(e,t,r){t.exports={default:e("core-js/library/fn/map"),__esModule:!0}},{"core-js/library/fn/map":189}],116:[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":190}],117:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/assign"),__esModule:!0}},{"core-js/library/fn/object/assign":191}],118:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/create"),__esModule:!0}},{"core-js/library/fn/object/create":192}],119:[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":193}],120:[function(e,t,r){t.exports={default:e("core-js/library/fn/object/keys"),__esModule:!0}},{"core-js/library/fn/object/keys":194}],121:[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":195}],122:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol"),__esModule:!0}},{"core-js/library/fn/symbol":197}],123:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/for"),__esModule:!0}},{"core-js/library/fn/symbol/for":196}],124:[function(e,t,r){t.exports={default:e("core-js/library/fn/symbol/iterator"),__esModule:!0}},{"core-js/library/fn/symbol/iterator":198}],125:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-map"),__esModule:!0}},{"core-js/library/fn/weak-map":199}],126:[function(e,t,r){t.exports={default:e("core-js/library/fn/weak-set"),__esModule:!0}},{"core-js/library/fn/weak-set":200}],127:[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")}},{}],128:[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":118,"../core-js/object/set-prototype-of":121,"../helpers/typeof":131}],129:[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}},{}],130:[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":131}],131:[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":122,"../core-js/symbol/iterator":124}],132:[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){var r=(e=(0,o.default)(e)).program;return t.length&&(0,c.default)(e,m,null,t),r.body.length>1?r.body:r.body[0]}r.__esModule=!0;var a=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,u.default)({allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,preserveComments:!1},t);var n=function(){var i=void 0;try{i=p.parse(e,t),i=c.default.removeProperties(i,{preserveComments:t.preserveComments}),c.default.cheap(i,function(e){e[f]=!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;r<e;r++)t[r]=arguments[r];return s(n(),t)}};var o=i(e("lodash/cloneDeep")),u=i(e("lodash/assign")),l=i(e("lodash/has")),c=i(e("babel-traverse")),p=n(e("babylon")),h=n(e("babel-types")),f="_fromTemplate",d=(0,a.default)(),m={noScope:!0,enter:function(e,t){var r=e.node;if(r[d])return e.skip();h.isExpressionStatement(r)&&(r=r.expression);var n=void 0;if(h.isIdentifier(r)&&r[f])if((0,l.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[d]=!0,e.replaceInline(n))},exit:function(e){var t=e.node;t.loc||c.default.clearNode(t)}};t.exports=r.default},{"babel-runtime/core-js/symbol":122,"babel-traverse":136,"babel-types":169,babylon:177,"lodash/assign":476,"lodash/cloneDeep":480,"lodash/has":492}],133:[function(e,t,r){"use strict";function n(){i(),s()}function i(){r.path=o=new a.default}function s(){r.scope=u=new a.default}r.__esModule=!0,r.scope=r.path=void 0;var a=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/weak-map"));r.clear=n,r.clearPath=i,r.clearScope=s;var o=r.path=new a.default,u=r.scope=new a.default},{"babel-runtime/core-js/weak-map":125}],134:[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;for(var n=r,i=Array.isArray(n),a=0,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<e.length;i++){var s=e[i];s&&this.shouldVisit(s)&&n.push(this.create(t,e,i,r))}return this.visitQueue(n)},e.prototype.visitSingle=function(e,t){return!!this.shouldVisit(e[t])&&this.visitQueue([this.create(e,e,t)])},e.prototype.visitQueue=function(e){this.queue=e,this.priorityQueue=[];for(var t=[],r=!1,n=e,i=Array.isArray(n),a=0,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;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}}for(var c=e,p=Array.isArray(c),h=0,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":143,_process:538,"babel-runtime/core-js/get-iterator":113,"babel-runtime/helpers/classCallCheck":127,"babel-types":169}],135:[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 e(t,r){(0,n.default)(this,e),this.file=t,this.options=r};r.default=i,t.exports=r.default},{"babel-runtime/helpers/classCallCheck":127}],136:[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)for(var u=new p.default(r,t,n,i),l=a,c=Array.isArray(l),h=0,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()},s.clearCache.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":133,"./context":134,"./hub":135,"./path":143,"./scope":155,"./visitors":157,"babel-messages":103,"babel-runtime/core-js/get-iterator":113,"babel-types":169,"lodash/includes":495}],137:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){for(var t=this;t=t.parentPath;)if(e(t))return t;return null}function s(e){var t=this;do{if(e(t))return t}while(t=t.parentPath);return null}function a(){return this.findParent(function(e){return e.isFunction()||e.isProgram()})}function o(){var e=this;do{if(Array.isArray(e.container))return e}while(e=e.parentPath)}function u(e){return this.getDeepestCommonAncestorFrom(e,function(e,t,r){for(var n=void 0,i=y.VISITOR_KEYS[e.type],s=r,a=Array.isArray(s),o=0,s=a?s:(0,m.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[t+1];n?l.listKey&&n.listKey===l.listKey&&l.key<n.key?n=l:i.indexOf(n.parentKey)>i.indexOf(l.parentKey)&&(n=l):n=l}return n})}function l(e,t){var r=this;if(!e.length)return this;if(1===e.length)return e[0];var n=1/0,i=void 0,s=void 0,a=e.map(function(e){var t=[];do{t.unshift(e)}while((e=e.parentPath)&&e!==r);return t.length<n&&(n=t.length),t}),o=a[0];e:for(var u=0;u<n;u++){for(var l=o[u],c=a,p=Array.isArray(c),h=0,c=p?c:(0,m.default)(c);;){var f;if(p){if(h>=c.length)break;f=c[h++]}else{if((h=c.next()).done)break;f=h.value}if(f[u]!==l)break e}i=u,s=l}if(s)return t?t(s,i,a):s;throw new Error("Couldn't find intersection")}function c(){var e=this,t=[];do{t.push(e)}while(e=e.parentPath);return t}function p(e){return e.isDescendant(this)}function h(e){return!!this.findParent(function(t){return t===e})}function f(){for(var e=this;e;){for(var t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,m.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;if(e.node.type===s)return!0}e=e.parentPath}return!1}function d(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}}r.__esModule=!0;var m=n(e("babel-runtime/core-js/get-iterator"));r.findParent=i,r.find=s,r.getFunctionParent=a,r.getStatementParent=o,r.getEarliestCommonAncestorFrom=u,r.getDeepestCommonAncestorFrom=l,r.getAncestry=c,r.isAncestor=p,r.isDescendant=h,r.inType=f,r.inShadow=d;var y=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":143,"babel-runtime/core-js/get-iterator":113,"babel-types":169}],138:[function(e,t,r){"use strict";function n(){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)}}}}function i(e,t,r){this.addComments(e,[{type:r?"CommentLine":"CommentBlock",value:t}])}function s(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}}}r.__esModule=!0,r.shareCommentsWithSiblings=n,r.addComment=i,r.addComments=s},{}],139:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(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])}function s(e){if(!e)return!1;for(var t=e,r=Array.isArray(t),n=0,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;if(s){var a=this.node;if(!a)return!0;if(s.call(this.state,this,this.state))throw new Error("Unexpected return value from visitor method "+s);if(this.node!==a)return!0;if(this.shouldStop||this.shouldSkip||this.removed)return!0}}return!1}function a(){var e=this.opts.blacklist;return e&&e.indexOf(this.node.type)>-1}function o(){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))))}function u(){this.shouldSkip=!0}function l(e){this.skipKeys[e]=!0}function c(){this.shouldStop=!0,this.shouldSkip=!0}function p(){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()}}function h(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}function f(){this.removed||(this._resyncParent(),this._resyncList(),this._resyncKey())}function d(){this.parentPath&&(this.parent=this.parentPath.node)}function m(){if(this.container&&this.node!==this.container[this.key]){if(Array.isArray(this.container)){for(var e=0;e<this.container.length;e++)if(this.container[e]===this.node)return this.setKey(e)}else for(var t in this.container)if(this.container[t]===this.node)return this.setKey(t);this.key=null}}function y(){if(this.parent&&this.inList){var e=this.parent[this.listKey];this.container!==e&&(this.container=e||null)}}function g(){null!=this.key&&this.container&&this.container[this.key]===this.node||this._markRemoved()}function b(){this.contexts.pop(),this.setContext(this.contexts[this.contexts.length-1])}function v(e){this.contexts.push(e),this.setContext(e)}function x(e,t,r,n){this.inList=!!r,this.listKey=r,this.parentKey=r||n,this.container=t,this.parentPath=e||this.parentPath,this.setKey(n)}function E(e){this.key=e,this.node=this.container[this.key],this.type=this.node&&this.node.type}function A(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this;if(!e.removed)for(var t=this.contexts,r=Array.isArray(t),n=0,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}i.maybeQueue(e)}}function D(){for(var e=this,t=this.contexts;!t.length;)t=(e=e.parentPath).contexts;return t}r.__esModule=!0;var C=n(e("babel-runtime/core-js/get-iterator"));r.call=i,r._call=s,r.isBlacklisted=a,r.visit=o,r.skip=u,r.skipKey=l,r.stop=c,r.setScope=p,r.setContext=h,r.resync=f,r._resyncParent=d,r._resyncKey=m,r._resyncList=y,r._resyncRemoved=g,r.popContext=b,r.pushContext=v,r.setup=x,r.setKey=E,r.requeue=A,r._getQueueContexts=D;var S=n(e("../index"))},{"../index":136,"babel-runtime/core-js/get-iterator":113}],140:[function(e,t,r){"use strict";function n(){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||a.isIdentifier(t)&&(t=a.stringLiteral(t.name)),t}function i(){return a.ensureBlock(this.node)}function s(){if(this.isArrowFunctionExpression()){this.ensureBlock();var e=this.node;e.expression=!1,e.type="FunctionExpression",e.shadow=e.shadow||!0}}r.__esModule=!0,r.toComputedKey=n,r.ensureBlock=i,r.arrowFunctionToShadowed=s;var a=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":169}],141:[function(e,t,r){(function(t){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){var e=this.evaluate();if(e.confident)return!!e.value}function s(){function e(e){i&&(s=e,i=!1)}function r(t){var r=t.node;if(p.has(r)){var s=p.get(r);return s.resolved?s.value:void e(t)}var a={resolved:!1};p.set(r,a);var o=n(t);return i&&(a.resolved=!0,a.value=o),o}function n(n){if(i){var s=n.node;if(n.isSequenceExpression()){var u=n.get("expressions");return r(u[u.length-1])}if(n.isStringLiteral()||n.isNumericLiteral()||n.isBooleanLiteral())return s.value;if(n.isNullLiteral())return null;if(n.isTemplateLiteral()){for(var p="",h=0,f=n.get("expressions"),d=s.quasis,m=Array.isArray(d),y=0,d=m?d:(0,o.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(!i)break;p+=b.value.cooked;var v=f[h++];v&&(p+=String(r(v)))}if(!i)return;return p}if(n.isConditionalExpression()){var x=r(n.get("test"));if(!i)return;return r(x?n.get("consequent"):n.get("alternate"))}if(n.isExpressionWrapper())return r(n.get("expression"));if(n.isMemberExpression()&&!n.parentPath.isCallExpression({callee:s})){var E=n.get("property"),A=n.get("object");if(A.isLiteral()&&E.isIdentifier()){var D=A.node.value,C=void 0===D?"undefined":(0,a.default)(D);if("number"===C||"string"===C)return D[E.node.name]}}if(n.isReferencedIdentifier()){var S=n.scope.getBinding(s.name);if(S&&S.constantViolations.length>0)return e(S.path);if(S&&n.node.start<S.path.node.end)return e(S.path);if(S&&S.hasValue)return S.value;if("undefined"===s.name)return S?e(S.path):void 0;if("Infinity"===s.name)return S?e(S.path):1/0;if("NaN"===s.name)return S?e(S.path):NaN;var _=n.resolve();return _===n?e(n):r(_)}if(n.isUnaryExpression({prefix:!0})){if("void"===s.operator)return;var w=n.get("argument");if("typeof"===s.operator&&(w.isFunction()||w.isClass()))return"function";var k=r(w);if(!i)return;switch(s.operator){case"!":return!k;case"+":return+k;case"-":return-k;case"~":return~k;case"typeof":return void 0===k?"undefined":(0,a.default)(k)}}if(n.isArrayExpression()){for(var F=[],T=n.get("elements"),P=Array.isArray(T),B=0,T=P?T:(0,o.default)(T);;){var O;if(P){if(B>=T.length)break;O=T[B++]}else{if((B=T.next()).done)break;O=B.value}var j=O;if(!(j=j.evaluate()).confident)return e(j);F.push(j.value)}return F}if(n.isObjectExpression()){for(var N={},I=n.get("properties"),L=Array.isArray(I),M=0,I=L?I:(0,o.default)(I);;){var R;if(L){if(M>=I.length)break;R=I[M++]}else{if((M=I.next()).done)break;R=M.value}var V=R;if(V.isObjectMethod()||V.isSpreadProperty())return e(V);var U=V.get("key"),q=U;if(V.node.computed){if(!(q=q.evaluate()).confident)return e(U);q=q.value}else q=q.isIdentifier()?q.node.name:q.node.value;var G=V.get("value"),X=G.evaluate();if(!X.confident)return e(G);X=X.value,N[q]=X}return N}if(n.isLogicalExpression()){var J=i,W=r(n.get("left")),K=i;i=J;var z=r(n.get("right")),Y=i;switch(i=K&&Y,s.operator){case"||":if(W&&K)return i=!0,W;if(!i)return;return W||z;case"&&":if((!W&&K||!z&&Y)&&(i=!0),!i)return;return W&&z}}if(n.isBinaryExpression()){var H=r(n.get("left"));if(!i)return;var $=r(n.get("right"));if(!i)return;switch(s.operator){case"-":return H-$;case"+":return H+$;case"/":return H/$;case"*":return H*$;case"%":return H%$;case"**":return Math.pow(H,$);case"<":return H<$;case">":return H>$;case"<=":return H<=$;case">=":return H>=$;case"==":return H==$;case"!=":return H!=$;case"===":return H===$;case"!==":return H!==$;case"|":return H|$;case"&":return H&$;case"^":return H^$;case"<<":return H<<$;case">>":return H>>$;case">>>":return H>>>$}}if(n.isCallExpression()){var Q=n.get("callee"),Z=void 0,ee=void 0;if(Q.isIdentifier()&&!n.scope.getBinding(Q.node.name,!0)&&l.indexOf(Q.node.name)>=0&&(ee=t[s.callee.name]),Q.isMemberExpression()){var te=Q.get("object"),re=Q.get("property");if(te.isIdentifier()&&re.isIdentifier()&&l.indexOf(te.node.name)>=0&&c.indexOf(re.node.name)<0&&(ee=(Z=t[te.node.name])[re.node.name]),te.isLiteral()&&re.isIdentifier()){var ne=(0,a.default)(te.node.value);"string"!==ne&&"number"!==ne||(ee=(Z=te.node.value)[re.node.name])}}if(ee){var ie=n.get("arguments").map(r);if(!i)return;return ee.apply(Z,ie)}}e(n)}}var i=!0,s=void 0,p=new u.default,h=r(this);return i||(h=void 0),{confident:i,deopt:s,value:h}}r.__esModule=!0;var a=n(e("babel-runtime/helpers/typeof")),o=n(e("babel-runtime/core-js/get-iterator")),u=n(e("babel-runtime/core-js/map"));r.evaluateTruthy=i,r.evaluate=s;var l=["String","Number","Math"],c=["random"]}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/map":115,"babel-runtime/helpers/typeof":131}],142:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){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}function s(){return"left"===this.key?this.getSibling("right"):"right"===this.key?this.getSibling("left"):void 0}function a(){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}function o(e){return E.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:e})}function u(){return this.getSibling(this.key-1)}function l(){return this.getSibling(this.key+1)}function c(){for(var e=this.key,t=this.getSibling(++e),r=[];t.node;)r.push(t),t=this.getSibling(++e);return r}function p(){for(var e=this.key,t=this.getSibling(--e),r=[];t.node;)r.push(t),t=this.getSibling(--e);return r}function h(e,t){!0===t&&(t=this.context);var r=e.split(".");return 1===r.length?this._getKey(e,t):this._getPattern(r,t)}function f(e,t){var r=this,n=this.node,i=n[e];return Array.isArray(i)?i.map(function(s,a){return E.default.get({listKey:e,parentPath:r,parent:n,container:i,key:a}).setContext(t)}):E.default.get({parentPath:this,parent:n,container:n,key:e}).setContext(t)}function d(e,t){for(var r=this,n=e,i=Array.isArray(n),s=0,n=i?n:(0,x.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;r="."===o?r.parentPath:Array.isArray(r)?r[o]:r.get(o,t)}return r}function m(e){return A.getBindingIdentifiers(this.node,e)}function y(e){return A.getOuterBindingIdentifiers(this.node,e)}function g(){for(var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=this,n=[].concat(r),i=(0,v.default)(null);n.length;){var s=n.shift();if(s&&s.node){var a=A.getBindingIdentifiers.keys[s.node.type];if(s.isIdentifier())e?(i[s.node.name]=i[s.node.name]||[]).push(s):i[s.node.name]=s;else if(s.isExportDeclaration()){var o=s.get("declaration");o.isDeclaration()&&n.push(o)}else{if(t){if(s.isFunctionDeclaration()){n.push(s.get("id"));continue}if(s.isFunctionExpression())continue}if(a)for(var u=0;u<a.length;u++){var l=a[u],c=s.get(l);(Array.isArray(c)||c.node)&&(n=n.concat(c))}}}}return i}function b(e){return this.getBindingIdentifierPaths(e,!0)}r.__esModule=!0;var v=n(e("babel-runtime/core-js/object/create")),x=n(e("babel-runtime/core-js/get-iterator"));r.getStatementParent=i,r.getOpposite=s,r.getCompletionRecords=a,r.getSibling=o,r.getPrevSibling=u,r.getNextSibling=l,r.getAllNextSiblings=c,r.getAllPrevSiblings=p,r.get=h,r._getKey=f,r._getPattern=d,r.getBindingIdentifiers=m,r.getOuterBindingIdentifiers=y,r.getBindingIdentifierPaths=g,r.getOuterBindingIdentifierPaths=b;var E=n(e("./index")),A=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"))},{"./index":143,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/object/create":118,"babel-types":169}],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}}r.__esModule=!0;var s=i(e("babel-runtime/core-js/get-iterator")),a=i(e("babel-runtime/helpers/classCallCheck")),o=n(e("./lib/virtual-types")),u=i(e("debug")),l=i(e("invariant")),c=i(e("../index")),p=i(e("lodash/assign")),h=i(e("../scope")),f=n(e("babel-types")),d=e("../cache"),m=(0,u.default)("babel"),y=function(){function e(t,r){(0,a.default)(this,e),this.parent=r,this.hub=t,this.contexts=[],this.data={},this.shouldSkip=!1,this.shouldStop=!1,this.removed=!1,this.state=null,this.opts=null,this.skipKeys=null,this.parentPath=null,this.context=null,this.container=null,this.listKey=null,this.inList=!1,this.parentKey=null,this.key=null,this.node=null,this.scope=null,this.type=null,this.typeAnnotation=null}return e.get=function(t){var r=t.hub,n=t.parentPath,i=t.parent,s=t.container,a=t.listKey,o=t.key;!r&&n&&(r=n.hub),(0,l.default)(i,"To get a node path the parent needs to exist");var u=s[o],c=d.path.get(i)||[];d.path.has(i)||d.path.set(i,c);for(var p=void 0,h=0;h<c.length;h++){var f=c[h];if(f.node===u){p=f;break}}return p||(p=new e(r,i),c.push(p)),p.setup(n,s,a,o),p},e.prototype.getScope=function(e){var t=e;return this.isScope()&&(t=new h.default(this,e)),t},e.prototype.setData=function(e,t){return this.data[e]=t},e.prototype.getData=function(e,t){var r=this.data[e];return!r&&t&&(r=this.data[e]=t),r},e.prototype.buildCodeFrameError=function(e){var t=arguments.length>1&&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"));for(var g=f.TYPES,b=Array.isArray(g),v=0,g=b?g:(0,s.default)(g);;){var x;if("break"===function(){if(b){if(v>=g.length)return"break";x=g[v++]}else{if((v=g.next()).done)return"break";x=v.value}var e=x,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)}}())break}for(var E in o){(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)}})(E)}t.exports=r.default},{"../cache":133,"../index":136,"../scope":155,"./ancestry":137,"./comments":138,"./context":139,"./conversion":140,"./evaluation":141,"./family":142,"./inference":144,"./introspection":147,"./lib/virtual-types":150,"./modification":151,"./removal":152,"./replacement":153,"babel-runtime/core-js/get-iterator":113,"babel-runtime/helpers/classCallCheck":127,"babel-types":169,debug:295,invariant:306,"lodash/assign":476}],144:[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(){if(this.typeAnnotation)return this.typeAnnotation;var e=this._getTypeAnnotation()||f.anyTypeAnnotation();return f.isTypeAnnotation(e)&&(e=e.typeAnnotation),this.typeAnnotation=e}function s(){var e=this.node;{if(e){if(e.typeAnnotation)return e.typeAnnotation;var t=h[e.type];return t?t.call(this,e):(t=h[this.parentPath.type],t&&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()?f.stringTypeAnnotation():"left"===r.key&&n.isForOfStatement()?f.anyTypeAnnotation():f.voidTypeAnnotation()}}}function a(e,t){return o(e,this.getTypeAnnotation(),t)}function o(e,t,r){if("string"===e)return f.isStringTypeAnnotation(t);if("number"===e)return f.isNumberTypeAnnotation(t);if("boolean"===e)return f.isBooleanTypeAnnotation(t);if("any"===e)return f.isAnyTypeAnnotation(t);if("mixed"===e)return f.isMixedTypeAnnotation(t);if("empty"===e)return f.isEmptyTypeAnnotation(t);if("void"===e)return f.isVoidTypeAnnotation(t);if(r)return!1;throw new Error("Unknown base type "+e)}function u(e){var t=this.getTypeAnnotation();if(f.isAnyTypeAnnotation(t))return!0;if(f.isUnionTypeAnnotation(t)){for(var r=t.types,n=Array.isArray(r),i=0,r=n?r:(0,p.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(f.isAnyTypeAnnotation(a)||o(e,a,!0))return!0}return!1}return o(e,t,!0)}function l(e){var t=this.getTypeAnnotation();if(e=e.getTypeAnnotation(),!f.isAnyTypeAnnotation(t)&&f.isFlowBaseAnnotation(t))return e.type===t.type}function c(e){var t=this.getTypeAnnotation();return f.isGenericTypeAnnotation(t)&&f.isIdentifier(t.id,{name:e})}r.__esModule=!0;var p=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.getTypeAnnotation=i,r._getTypeAnnotation=s,r.isBaseType=a,r.couldBeBaseType=u,r.baseTypeStrictlyMatches=l,r.isGenericType=c;var h=n(e("./inferers")),f=n(e("babel-types"))},{"./inferers":146,"babel-runtime/core-js/get-iterator":113,"babel-types":169}],145:[function(e,t,r){"use strict";function n(e,t){var r=e.scope.getBinding(t),n=[];e.typeAnnotation=l.unionTypeAnnotation(n);var s=[],a=i(r,e,s),c=o(e,t);if(c){var p=i(r,c.ifStatement);a=a.filter(function(e){return p.indexOf(e)<0}),n.push(c.typeAnnotation)}if(a.length)for(var h=a=a.concat(s),f=Array.isArray(h),d=0,h=f?h:(0,u.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;n.push(y.getTypeAnnotation())}if(n.length)return l.createUnionTypeAnnotation(n)}function i(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 s(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():l.BOOLEAN_NUMBER_BINARY_OPERATORS.indexOf(r)>=0?l.numberTypeAnnotation():void 0;if("==="===r){var a=void 0,o=void 0;if(i.isUnaryExpression({operator:"typeof"})?(a=i,o=n):n.isUnaryExpression({operator:"typeof"})&&(a=n,o=i),(o||a)&&(o=o.resolve()).isLiteral()&&"string"==typeof o.node.value&&a.get("argument").isIdentifier({name:e}))return l.createTypeAnnotationBasedOnTypeof(o.node.value)}}function a(e){for(var t=void 0;t=e.parentPath;){if(t.isIfStatement()||t.isConditionalExpression())return"test"===e.key?void 0:t;e=t}}function o(e,t){var r=a(e);if(r){var n=[r.get("test")],i=[];do{var u=n.shift().resolve();if(u.isLogicalExpression()&&(n.push(u.get("left")),n.push(u.get("right"))),u.isBinaryExpression()){var c=s(t,u);c&&i.push(c)}}while(n.length);return i.length?{typeAnnotation:l.createUnionTypeAnnotation(i),ifStatement:r}:o(r,t)}}r.__esModule=!0;var u=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:n(this,e.name):"undefined"===e.name?l.voidTypeAnnotation():"NaN"===e.name||"Infinity"===e.name?l.numberTypeAnnotation():void e.name}};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"));t.exports=r.default},{"babel-runtime/core-js/get-iterator":113,"babel-types":169}],146:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(){return this.get("id").isIdentifier()?this.get("init").getTypeAnnotation():void 0}function s(e){return e.typeAnnotation}function a(e){if(this.get("callee").isIdentifier())return k.genericTypeAnnotation(e.callee)}function o(){return k.stringTypeAnnotation()}function u(e){var t=e.operator;return"void"===t?k.voidTypeAnnotation():k.NUMBER_UNARY_OPERATORS.indexOf(t)>=0?k.numberTypeAnnotation():k.STRING_UNARY_OPERATORS.indexOf(t)>=0?k.stringTypeAnnotation():k.BOOLEAN_UNARY_OPERATORS.indexOf(t)>=0?k.booleanTypeAnnotation():void 0}function l(e){var t=e.operator;if(k.NUMBER_BINARY_OPERATORS.indexOf(t)>=0)return k.numberTypeAnnotation();if(k.BOOLEAN_BINARY_OPERATORS.indexOf(t)>=0)return k.booleanTypeAnnotation();if("+"===t){var r=this.get("right"),n=this.get("left");return n.isBaseType("number")&&r.isBaseType("number")?k.numberTypeAnnotation():n.isBaseType("string")||r.isBaseType("string")?k.stringTypeAnnotation():k.unionTypeAnnotation([k.stringTypeAnnotation(),k.numberTypeAnnotation()])}}function c(){return k.createUnionTypeAnnotation([this.get("left").getTypeAnnotation(),this.get("right").getTypeAnnotation()])}function p(){return k.createUnionTypeAnnotation([this.get("consequent").getTypeAnnotation(),this.get("alternate").getTypeAnnotation()])}function h(){return this.get("expressions").pop().getTypeAnnotation()}function f(){return this.get("right").getTypeAnnotation()}function d(e){var t=e.operator;if("++"===t||"--"===t)return k.numberTypeAnnotation()}function m(){return k.stringTypeAnnotation()}function y(){return k.numberTypeAnnotation()}function g(){return k.booleanTypeAnnotation()}function b(){return k.nullLiteralTypeAnnotation()}function v(){return k.genericTypeAnnotation(k.identifier("RegExp"))}function x(){return k.genericTypeAnnotation(k.identifier("Object"))}function E(){return k.genericTypeAnnotation(k.identifier("Array"))}function A(){return E()}function D(){return k.genericTypeAnnotation(k.identifier("Function"))}function C(){return _(this.get("callee"))}function S(){return _(this.get("tag"))}function _(e){if((e=e.resolve()).isFunction()){if(e.is("async"))return e.is("generator")?k.genericTypeAnnotation(k.identifier("AsyncIterator")):k.genericTypeAnnotation(k.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 w=e("./inferer-reference");Object.defineProperty(r,"Identifier",{enumerable:!0,get:function(){return n(w).default}}),r.VariableDeclarator=i,r.TypeCastExpression=s,r.NewExpression=a,r.TemplateLiteral=o,r.UnaryExpression=u,r.BinaryExpression=l,r.LogicalExpression=c,r.ConditionalExpression=p,r.SequenceExpression=h,r.AssignmentExpression=f,r.UpdateExpression=d,r.StringLiteral=m,r.NumericLiteral=y,r.BooleanLiteral=g,r.NullLiteral=b,r.RegExpLiteral=v,r.ObjectExpression=x,r.ArrayExpression=E,r.RestElement=A,r.CallExpression=C,r.TaggedTemplateExpression=S;var 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("babel-types"));s.validParent=!0,A.validParent=!0,r.FunctionExpression=D,r.ArrowFunctionExpression=D,r.FunctionDeclaration=D,r.ClassExpression=D,r.ClassDeclaration=D},{"./inferer-reference":145,"babel-types":169}],147:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(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(D.isIdentifier(a)){if(!r(a.name))return!1}else if(D.isLiteral(a)){if(!r(a.value))return!1}else{if(D.isMemberExpression(a)){if(a.computed&&!D.isLiteral(a.property))return!1;i.unshift(a.property),i.unshift(a.object);continue}if(!D.isThisExpression(a))return!1;if(!r("this"))return!1}if(++s>n.length)return!1}return s===n.length}function s(e){var t=this.node&&this.node[e];return t&&Array.isArray(t)?!!t.length:!!t}function a(){return this.scope.isStatic(this.node)}function o(e){return!this.has(e)}function u(e,t){return this.node[e]===t}function l(e){return D.isType(this.type,e)}function c(){return("init"===this.key||"left"===this.key)&&this.parentPath.isFor()}function p(e){return!("body"!==this.key||!this.parentPath.isArrowFunctionExpression())&&(this.isExpression()?D.isBlockStatement(e):!!this.isBlockStatement()&&D.isExpression(e))}function h(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}function f(){return!this.parentPath.isLabeledStatement()&&!D.isBlockStatement(this.container)&&(0,A.default)(D.STATEMENT_OR_BLOCK_KEYS,this.key)}function d(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)))))}function m(){var e=this.node;return e.end?this.hub.file.code.slice(e.start,e.end):""}function y(e){return"after"!==this._guessExecutionStatusRelativeTo(e)}function g(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,o=void 0,u=void 0;for(u=0;u<s.length;u++){var l=s[u];if((o=i.indexOf(l))>=0){a=l;break}}if(!a)return"before";var c=i[o-1],p=s[u-1];return c&&p?c.listKey&&c.container===p.container?c.key>p.key?"before":"after":D.VISITOR_KEYS[c.type].indexOf(c.key)>D.VISITOR_KEYS[p.type].indexOf(p.key)?"before":"after":"before"}function b(e){var t=e.path;if(t.isFunctionDeclaration()){var r=t.scope.getBinding(t.node.id.name);if(!r.references)return"before";for(var n=r.referencePaths,i=n,s=Array.isArray(i),a=0,i=s?i:(0,E.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("callee"!==u.key||!u.parentPath.isCallExpression())return}for(var l=void 0,c=n,p=Array.isArray(c),h=0,c=p?c:(0,E.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;if(!!!d.find(function(e){return e.node===t.node})){var m=this._guessExecutionStatusRelativeTo(d);if(l){if(l!==m)return}else l=m}}return l}}function v(e,t){return this._resolve(e,t)||this}function x(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(!D.isLiteral(i))return;var s=i.value,a=this.get("object").resolve(e,t);if(a.isObjectExpression())for(var o=a.get("properties"),u=Array.isArray(o),l=0,o=u?o:(0,E.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;if(p.isProperty()){var h=p.get("key"),f=p.isnt("computed")&&h.isIdentifier({name:s});if(f=f||h.isLiteral({value:s}))return p.get("value").resolve(e,t)}}else if(a.isArrayExpression()&&!isNaN(+s)){var d=a.get("elements")[s];if(d)return d.resolve(e,t)}}}}r.__esModule=!0,r.is=void 0;var E=n(e("babel-runtime/core-js/get-iterator"));r.matchesPattern=i,r.has=s,r.isStatic=a,r.isnt=o,r.equals=u,r.isNodeType=l,r.canHaveVariableDeclarationOrExpression=c,r.canSwapBetweenExpressionAndStatement=p,r.isCompletionRecord=h,r.isStatementOrBlock=f,r.referencesImport=d,r.getSource=m,r.willIMaybeExecuteBefore=y,r._guessExecutionStatusRelativeTo=g,r._guessExecutionStatusRelativeToDifferentFunctions=b,r.resolve=v,r._resolve=x;var A=n(e("lodash/includes")),D=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=s},{"babel-runtime/core-js/get-iterator":113,"babel-types":169,"lodash/includes":495}],148:[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;for(var s=n.constantViolations,a=Array.isArray(s),o=0,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}},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":113,"babel-runtime/helpers/classCallCheck":127,"babel-types":169}],149:[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}]},{}],150:[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":169}],151:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(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(x.blockStatement(e))}return[this]}function s(e,t){this.updateSiblingKeys(e,t.length);for(var r=[],n=0;n<t.length;n++){var i=e+n,s=t[n];if(this.container.splice(i,0,s),this.context){var a=this.context.create(this.parent,this.container,i,this.listKey);this.context.queue&&a.pushContext(this.context),r.push(a)}else r.push(v.default.get({parentPath:this.parentPath,parent:this.parent,container:this.container,listKey:this.listKey,key:i}))}for(var o=this._getQueueContexts(),u=r,l=Array.isArray(u),c=0,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;h.setScope(),h.debug(function(){return"Inserted."});for(var f=o,d=Array.isArray(f),m=0,f=d?f:(0,y.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.maybeQueue(h,!0)}}return r}function a(e){return this._containerInsert(this.key,e)}function o(e){return this._containerInsert(this.key+1,e)}function u(e){var t=e[e.length-1];(x.isIdentifier(t)||x.isExpressionStatement(t)&&x.isIdentifier(t.expression))&&!this.isCompletionRecord()&&e.pop()}function l(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(x.expressionStatement(x.assignmentExpression("=",t,this.node))),e.push(x.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(x.blockStatement(e))}return[this]}function c(e,t){if(this.parent)for(var r=g.path.get(this.parent),n=0;n<r.length;n++){var i=r[n];i.key>=e&&(i.key+=t)}}function p(e){if(!e)return[];e.constructor!==Array&&(e=[e]);for(var t=0;t<e.length;t++){var r=e[t],n=void 0;if(r?"object"!==(void 0===r?"undefined":(0,m.default)(r))?n="contains a non-object node":r.type?r instanceof v.default&&(n="has a NodePath when it expected a raw object"):n="without a type":n="has falsy node",n){var i=Array.isArray(r)?"array":void 0===r?"undefined":(0,m.default)(r);throw new Error("Node list "+n+" with the index of "+t+" and type of "+i)}}return e}function h(e,t){return this._assertUnremoved(),t=this._verifyNodeList(t),v.default.get({parentPath:this,parent:this.node,container:this.node[e],listKey:e,key:0}).insertBefore(t)}function f(e,t){this._assertUnremoved(),t=this._verifyNodeList(t);var r=this.node[e];return v.default.get({parentPath:this,parent:this.node,container:r,listKey:e,key:r.length}).replaceWithMultiple(t)}function d(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.scope;return new b.default(this,e).run()}r.__esModule=!0;var m=n(e("babel-runtime/helpers/typeof")),y=n(e("babel-runtime/core-js/get-iterator"));r.insertBefore=i,r._containerInsert=s,r._containerInsertBefore=a,r._containerInsertAfter=o,r._maybePopFromStatements=u,r.insertAfter=l,r.updateSiblingKeys=c,r._verifyNodeList=p,r.unshiftContainer=h,r.pushContainer=f,r.hoist=d;var g=e("../cache"),b=n(e("./lib/hoister")),v=n(e("./index")),x=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":133,"./index":143,"./lib/hoister":148,"babel-runtime/core-js/get-iterator":113,"babel-runtime/helpers/typeof":131,"babel-types":169}],152:[function(e,t,r){"use strict";function n(){this._assertUnremoved(),this.resync(),this._callRemovalHooks()?this._markRemoved():(this.shareCommentsWithSiblings(),this._remove(),this._markRemoved())}function i(){for(var e=l.hooks,t=Array.isArray(e),r=0,e=t?e:(0,u.default)(e);;){var n;if(t){if(r>=e.length)break;n=e[r++]}else{if((r=e.next()).done)break;n=r.value}if(n(this,this.parentPath))return!0}}function s(){Array.isArray(this.container)?(this.container.splice(this.key,1),this.updateSiblingKeys(this.key,-1)):this._replaceWith(null)}function a(){this.shouldSkip=!0,this.removed=!0,this.node=null}function o(){if(this.removed)throw this.buildCodeFrameError("NodePath has been removed so is read-only.")}r.__esModule=!0;var u=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/get-iterator"));r.remove=n,r._callRemovalHooks=i,r._remove=s,r._markRemoved=a,r._assertUnremoved=o;var l=e("./lib/removal-hooks")},{"./lib/removal-hooks":149,"babel-runtime/core-js/get-iterator":113}],153:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){this.resync(),e=this._verifyNodeList(e),m.inheritLeadingComments(e[0],this.node),m.inheritTrailingComments(e[e.length-1],this.node),this.node=this.container[this.key]=null,this.insertAfter(e),this.node?this.requeue():this.remove()}function s(e){this.resync();try{e="("+e+")",e=(0,d.parse)(e)}catch(r){var t=r.loc;throw t&&(r.message+=" - make sure this is an expression.",r.message+="\n"+(0,p.default)(e,t.line,t.column+1)),r}return e=e.program.body[0].expression,h.default.removeProperties(e),this.replaceWith(e)}function a(e){if(this.resync(),this.removed)throw new Error("You can't replace this node, we've already removed it");if(e instanceof f.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()&&!m.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")&&m.isExpression(e)&&(this.canHaveVariableDeclarationOrExpression()||this.canSwapBetweenExpressionAndStatement(e)||(e=m.expressionStatement(e))),this.isNodeType("Expression")&&m.isStatement(e)&&!this.canHaveVariableDeclarationOrExpression()&&!this.canSwapBetweenExpressionAndStatement(e))return this.replaceExpressionWithStatements([e]);var t=this.node;t&&(m.inheritsComments(e,t),m.removeComments(t)),this._replaceWith(e),this.type=e.type,this.setScope(),this.requeue()}}function o(e){if(!this.container)throw new ReferenceError("Container is falsy");this.inList?m.validate(this.parent,this.key,[e]):m.validate(this.parent,this.key,e),this.debug(function(){return"Replace with "+(e&&e.type)}),this.node=this.container[this.key]=e}function u(e){this.resync();var t=m.toSequenceExpression(e,this.scope);if(m.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=m.functionExpression(null,[],m.blockStatement(e));n.shadow=!0,this.replaceWith(m.callExpression(n,[])),this.traverse(y);for(var i=this.get("callee").getCompletionRecords(),s=Array.isArray(i),a=0,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.isExpressionStatement()){var l=u.findParent(function(e){return e.isLoop()});if(l){var p=l.getData("expressionReplacementReturnUid");if(p)p=m.identifier(p.name);else{var h=this.get("callee");p=h.scope.generateDeclaredUidIdentifier("ret"),h.get("body").pushContainer("body",m.returnStatement(p)),l.setData("expressionReplacementReturnUid",p)}u.get("expression").replaceWith(m.assignmentExpression("=",p,u.node.expression))}else u.replaceWith(m.returnStatement(u.node.expression))}}return this.node}this.replaceWith(t)}}function l(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)}r.__esModule=!0;var c=n(e("babel-runtime/core-js/get-iterator"));r.replaceWithMultiple=i,r.replaceWithSourceString=s,r.replaceWith=a,r._replaceWith=o,r.replaceExpressionWithStatements=u,r.replaceInline=l;var p=n(e("babel-code-frame")),h=n(e("../index")),f=n(e("./index")),d=e("babylon"),m=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")),y={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]});for(var n=[],i=e.node.declarations,s=Array.isArray(i),a=0,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;u.init&&n.push(m.expressionStatement(m.assignmentExpression("=",u.id,u.init)))}e.replaceWithMultiple(n)}}}},{"../index":136,"./index":143,"babel-code-frame":23,"babel-runtime/core-js/get-iterator":113,"babel-types":169,babylon:177}],154:[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":127}],155:[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){for(var n=E.scope.get(e.node)||[],i=n,s=Array.isArray(i),a=0,i=s?i:(0,p.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),E.scope.has(e.node)||E.scope.set(e.node,n)}function a(e,t){if(x.isModuleDeclaration(e))if(e.source)a(e.source,t);else if(e.specifiers&&e.specifiers.length)for(var r=e.specifiers,n=Array.isArray(r),i=0,r=n?r:(0,p.default)(r);;){var s;if(n){if(i>=r.length)break;s=r[i++]}else{if((i=r.next()).done)break;s=i.value}a(s,t)}else e.declaration&&a(e.declaration,t);else if(x.isModuleSpecifier(e))a(e.local,t);else if(x.isMemberExpression(e))a(e.object,t),a(e.property,t);else if(x.isIdentifier(e))t.push(e.name);else if(x.isLiteral(e))t.push(e.value);else if(x.isCallExpression(e))a(e.callee,t);else if(x.isObjectExpression(e)||x.isObjectPattern(e))for(var o=e.properties,u=Array.isArray(o),l=0,o=u?o:(0,p.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 h=c;a(h.key||h.argument,t)}}r.__esModule=!0;var o=i(e("babel-runtime/core-js/object/keys")),u=i(e("babel-runtime/core-js/object/create")),l=i(e("babel-runtime/core-js/map")),c=i(e("babel-runtime/helpers/classCallCheck")),p=i(e("babel-runtime/core-js/get-iterator")),h=i(e("lodash/includes")),f=i(e("lodash/repeat")),d=i(e("./lib/renamer")),m=i(e("../index")),y=i(e("lodash/defaults")),g=n(e("babel-messages")),b=i(e("./binding")),v=i(e("globals")),x=n(e("babel-types")),E=e("../cache"),A=0,D={For:function(e){for(var t=x.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,p.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(x.isClassDeclaration(n)||x.isFunctionDeclaration(n)){var i=n.id;if(!i)return;var s=r.getBinding(i.name);s&&s.reference(e)}else if(x.isVariableDeclaration(n))for(var a=n.declarations,o=Array.isArray(a),u=0,a=o?a:(0,p.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,h=x.getBindingIdentifiers(c);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){for(var t=e.get("body"),r=Array.isArray(t),n=0,t=r?t:(0,p.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)}}},C=0,S=function(){function e(t,r){if((0,c.default)(this,e),r&&r.block===t.node)return r;var n=s(t,r,this);if(n)return n;this.uid=C++,this.parent=r,this.hub=t.hub,this.parentBlock=t.parent,this.block=t.node,this.path=t,this.labels=new l.default}return e.prototype.traverse=function(e,t,r){(0,m.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 x.identifier(this.generateUid(e))},e.prototype.generateUid=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"temp";e=x.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;x.isAssignmentExpression(e)?r=e.left:x.isVariableDeclarator(e)?r=e.id:(x.isObjectProperty(r)||x.isObjectMethod(r))&&(r=r.key);var n=[];a(r,n);var i=n.join("$");return i=i.replace(/^_/,"")||t||"ref",this.generateUidIdentifier(i.slice(0,20))},e.prototype.isStatic=function(e){if(x.isThisExpression(e)||x.isSuper(e))return!0;if(x.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||"let"!==t&&"let"!==e.kind&&"const"!==e.kind&&"module"!==e.kind&&("param"!==e.kind||"let"!==t&&"const"!==t)))throw this.hub.file.buildCodeFrameError(n,g.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 d.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,f.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(x.isIdentifier(e)){var n=this.getBinding(e.name);if(n&&n.constant&&n.path.isGenericType("Array"))return e}if(x.isArrayExpression(e))return e;if(x.isIdentifier(e,{name:"arguments"}))return x.callExpression(x.memberExpression(x.memberExpression(x.memberExpression(x.identifier("Array"),x.identifier("prototype")),x.identifier("slice")),x.identifier("call")),[e]);var i="toArray",s=[e];return!0===t?i="toConsumableArray":t&&(s.push(x.numericLiteral(t)),i="slicedToArray"),x.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())for(var t=e.get("declarations"),r=Array.isArray(t),n=0,t=r?t:(0,p.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())for(var a=e.get("specifiers"),o=Array.isArray(a),u=0,a=o?a:(0,p.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;this.registerBinding("module",c)}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")?x.unaryExpression("void",x.numericLiteral(0),!0):x.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())for(var n=t.get("declarations"),i=Array.isArray(n),s=0,n=i?n:(0,p.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 c in l)for(var h=l[c],f=Array.isArray(h),d=0,h=f?h:(0,p.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,g=this.getOwnBinding(c);if(g){if(g.identifier===y)continue;this.checkBlockScopedCollisions(g,e,c,y)}g&&g.path.isFlow()&&(g=null),u.references[c]=!0,this.bindings[c]=new b.default({identifier:y,existing:g,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(x.isIdentifier(e)){var r=this.getBinding(e.name);return!!r&&(!t||r.constant)}if(x.isClass(e))return!(e.superClass&&!this.isPure(e.superClass,t))&&this.isPure(e.body,t);if(x.isClassBody(e)){for(var n=e.body,i=Array.isArray(n),s=0,n=i?n:(0,p.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(x.isBinary(e))return this.isPure(e.left,t)&&this.isPure(e.right,t);if(x.isArrayExpression(e)){for(var u=e.elements,l=Array.isArray(u),c=0,u=l?u:(0,p.default)(u);;){var h;if(l){if(c>=u.length)break;h=u[c++]}else{if((c=u.next()).done)break;h=c.value}var f=h;if(!this.isPure(f,t))return!1}return!0}if(x.isObjectExpression(e)){for(var d=e.properties,m=Array.isArray(d),y=0,d=m?d:(0,p.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 x.isClassMethod(e)?!(e.computed&&!this.isPure(e.key,t))&&("get"!==e.kind&&"set"!==e.kind):x.isClassProperty(e)||x.isObjectProperty(e)?!(e.computed&&!this.isPure(e.key,t))&&this.isPure(e.value,t):x.isUnaryExpression(e)?this.isPure(e.argument,t):x.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(){A++,this._crawl(),A--},e.prototype._crawl=function(){var e=this.path;if(this.references=(0,u.default)(null),this.bindings=(0,u.default)(null),this.globals=(0,u.default)(null),this.uids=(0,u.default)(null),this.data=(0,u.default)(null),e.isLoop())for(var t=x.FOR_INIT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,p.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[x.NOT_LOCAL_BINDING]||this.registerBinding("local",e.get("id"),e)),e.isClassExpression()&&e.has("id")&&(e.get("id").node[x.NOT_LOCAL_BINDING]||this.registerBinding("local",e)),e.isFunction())for(var o=e.get("params"),l=Array.isArray(o),c=0,o=l?o:(0,p.default)(o);;){var h;if(l){if(c>=o.length)break;h=o[c++]}else{if((c=o.next()).done)break;h=c.value}var f=h;this.registerBinding("param",f)}if(e.isCatchClause()&&this.registerBinding("let",e),!this.getProgramParent().crawling){var d={references:[],constantViolations:[],assignments:[]};this.crawling=!0,e.traverse(D,d),this.crawling=!1;for(var m=d.assignments,y=Array.isArray(m),g=0,m=y?m:(0,p.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 v=b,E=v.getBindingIdentifiers(),A=void 0;for(var C in E)v.scope.getBinding(C)||(A=A||v.scope.getProgramParent()).addGlobal(E[C]);v.scope.registerConstantViolation(v)}for(var S=d.references,_=Array.isArray(S),w=0,S=_?S:(0,p.default)(S);;){var k;if(_){if(w>=S.length)break;k=S[w++]}else{if((w=S.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)}for(var P=d.constantViolations,B=Array.isArray(P),O=0,P=B?P:(0,p.default)(P);;){var j;if(B){if(O>=P.length)break;j=P[O++]}else{if((O=P.next()).done)break;j=O.value}var N=j;N.scope.registerConstantViolation(N)}}},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())&&(x.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=x.variableDeclaration(n,[]);o._generated=!0,o._blockHoist=i,a=t.unshiftContainer("body",[o])[0],r||t.setData(s,a)}var u=x.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,u.default)(null),t=this;do{(0,y.default)(e,t.bindings),t=t.parent}while(t);return e},e.prototype.getAllBindingsOfKind=function(){for(var e=(0,u.default)(null),t=arguments,r=Array.isArray(t),n=0,t=r?t:(0,p.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 o in a.bindings){var l=a.bindings[o];l.kind===s&&(e[o]=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===A&&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 6.8. 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,h.default)(e.globals,t))||!(r||!(0,h.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,o.default)(v.default.builtin),S.contextVariables=["arguments","undefined","Infinity","NaN"],r.default=S,t.exports=r.default},{"../cache":133,"../index":136,"./binding":154,"./lib/renamer":156,"babel-messages":103,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/map":115,"babel-runtime/core-js/object/create":118,"babel-runtime/core-js/object/keys":120,"babel-runtime/helpers/classCallCheck":127,"babel-types":169,globals:302,"lodash/defaults":483,"lodash/includes":495,"lodash/repeat":518}],156:[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.maybeConvertFromClassFunctionDeclaration=function(e){},e.prototype.maybeConvertFromClassFunctionExpression=function(e){},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,s&&(this.maybeConvertFromClassFunctionDeclaration(s),this.maybeConvertFromClassFunctionExpression(s))},e}();r.default=o,t.exports=r.default},{"../binding":154,"babel-runtime/helpers/classCallCheck":127,"babel-types":169}],157:[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(!f(t)){var r=t.split("|");if(1!==r.length){var n=e[t];delete e[t];for(var i=r,s=Array.isArray(i),o=0,i=s?i:(0,g.default)(i);;){var u;if(s){if(o>=i.length)break;u=i[o++]}else{if((o=i.next()).done)break;u=o.value}e[u]=n}}}a(e),delete e.__esModule,c(e),p(e);for(var l=(0,y.default)(e),m=Array.isArray(l),v=0,l=m?l:(0,g.default)(l);;){var A;if(m){if(v>=l.length)break;A=l[v++]}else{if((v=l.next()).done)break;A=v.value}var D=A;if(!f(D)){var C=b[D];if(C){var S=e[D];for(var _ in S)S[_]=h(C,S[_]);if(delete e[D],C.types)for(var w=C.types,k=Array.isArray(w),F=0,w=k?w:(0,g.default)(w);;){var T;if(k){if(F>=w.length)break;T=w[F++]}else{if((F=w.next()).done)break;T=F.value}var P=T;e[P]?d(e[P],S):e[P]=S}else d(e,S)}}}for(var B in e)if(!f(B)){var O=e[B],j=x.FLIPPED_ALIAS_KEYS[B],N=x.DEPRECATED_KEYS[B];if(N&&(console.trace("Visitor defined for "+B+" but it has been renamed to "+N),j=[N]),j){delete e[B];for(var I=j,L=Array.isArray(I),M=0,I=L?I:(0,g.default)(I);;){var R;if(L){if(M>=I.length)break;R=I[M++]}else{if((M=I.next()).done)break;R=M.value}var V=R,U=e[V];U?d(U,O):e[V]=(0,E.default)(O)}}}for(var q in e)f(q)||p(e[q]);return e}function a(e){if(!e._verified){if("function"==typeof e)throw new Error(v.get("traverseVerifyRootFunction"));for(var t in e)if("enter"!==t&&"exit"!==t||o(t,e[t]),!f(t)){if(x.TYPES.indexOf(t)<0)throw new Error(v.get("traverseVerifyNodeType",t));var r=e[t];if("object"===(void 0===r?"undefined":(0,m.default)(r)))for(var n in r){if("enter"!==n&&"exit"!==n)throw new Error(v.get("traverseVerifyVisitorProperty",t,n));o(t+"."+n,r[n])}}e._verified=!0}}function o(e,t){for(var r=[].concat(t),n=Array.isArray(r),i=0,r=n?r:(0,g.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,m.default)(a)))}}function u(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments[2],n={},i=0;i<e.length;i++){var a=e[i],o=t[i];s(a);for(var u in a){var c=a[u];(o||r)&&(c=l(c,o,r)),d(n[u]=n[u]||{},c)}}return n}function l(e,t,r){var n={};for(var i in e){(function(i){var s=e[i];if(!Array.isArray(s))return"continue";s=s.map(function(e){var n=e;return t&&(n=function(r){return e.call(t,r,t)}),r&&(n=r(t.key,i,n)),n}),n[i]=s})(i)}return n}function c(e){for(var t in e)if(!f(t)){var r=e[t];"function"==typeof r&&(e[t]={enter:r})}}function p(e){e.enter&&!Array.isArray(e.enter)&&(e.enter=[e.enter]),e.exit&&!Array.isArray(e.exit)&&(e.exit=[e.exit])}function h(e,t){var r=function(r){if(e.checkPath(r))return t.apply(this,arguments)};return r.toString=function(){return t.toString()},r}function f(e){return"_"===e[0]||("enter"===e||"exit"===e||"shouldSkip"===e||("blacklist"===e||"noScope"===e||"skipKeys"===e))}function d(e,t){for(var r in t)e[r]=[].concat(e[r]||[],t[r])}r.__esModule=!0;var m=i(e("babel-runtime/helpers/typeof")),y=i(e("babel-runtime/core-js/object/keys")),g=i(e("babel-runtime/core-js/get-iterator"));r.explode=s,r.verify=a,r.merge=u;var b=n(e("./path/lib/virtual-types")),v=n(e("babel-messages")),x=n(e("babel-types")),E=i(e("lodash/clone"))},{"./path/lib/virtual-types":150,"babel-messages":103,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/object/keys":120,"babel-runtime/helpers/typeof":131,"babel-types":169,"lodash/clone":479}],158:[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":123}],159:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key||e.property;return e.computed||b.isIdentifier(t)&&(t=b.stringLiteral(t.name)),t}function s(e,t){function r(e){for(var s=!1,a=[],o=e,u=Array.isArray(o),l=0,o=u?o:(0,m.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;if(b.isExpression(p))a.push(p);else if(b.isExpressionStatement(p))a.push(p.expression);else{if(b.isVariableDeclaration(p)){if("var"!==p.kind)return i=!0;for(var h=p.declarations,f=Array.isArray(h),d=0,h=f?h:(0,m.default)(h);;){var y;if(f){if(d>=h.length)break;y=h[d++]}else{if((d=h.next()).done)break;y=d.value}var g=y,v=b.getBindingIdentifiers(g);for(var x in v)n.push({kind:p.kind,id:v[x]});g.init&&a.push(b.assignmentExpression("=",g.id,g.init))}s=!0;continue}if(b.isIfStatement(p)){var E=p.consequent?r([p.consequent]):t.buildUndefinedNode(),A=p.alternate?r([p.alternate]):t.buildUndefinedNode();if(!E||!A)return i=!0;a.push(b.conditionalExpression(p.test,E,A))}else{if(!b.isBlockStatement(p)){if(b.isEmptyStatement(p)){s=!0;continue}return i=!0}a.push(r(p.body))}}s=!1}return(s||0===a.length)&&a.push(t.buildUndefinedNode()),1===a.length?a[0]:b.sequenceExpression(a)}if(e&&e.length){var n=[],i=!1,s=r(e);if(!i){for(var a=0;a<n.length;a++)t.push(n[a]);return s}}}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.key,r=void 0;return"method"===e.kind?a.increment()+"":(r=b.isIdentifier(t)?t.name:b.isStringLiteral(t)?(0,d.default)(t.value):(0,d.default)(b.removePropertiesDeep(b.cloneDeep(t))),e.computed&&(r="["+r+"]"),e.static&&(r="static:"+r),r)}function o(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():""}),b.isValidIdentifier(e)||(e="_"+e),e||"_"}function u(e){return"eval"!==(e=o(e))&&"arguments"!==e||(e="_"+e),e}function l(e,t){if(b.isStatement(e))return e;var r=!1,n=void 0;if(b.isClass(e))r=!0,n="ClassDeclaration";else if(b.isFunction(e))r=!0,n="FunctionDeclaration";else if(b.isAssignmentExpression(e))return b.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}function c(e){if(b.isExpressionStatement(e)&&(e=e.expression),b.isExpression(e))return e;if(b.isClass(e)?e.type="ClassExpression":b.isFunction(e)&&(e.type="FunctionExpression"),!b.isExpression(e))throw new Error("cannot turn "+e.type+" to an expression");return e}function p(e,t){return b.isBlockStatement(e)?e:(b.isEmptyStatement(e)&&(e=[]),Array.isArray(e)||(b.isStatement(e)||(e=b.isFunction(t)?b.returnStatement(e):b.expressionStatement(e)),e=[e]),b.blockStatement(e))}function h(e){if(void 0===e)return b.identifier("undefined");if(!0===e||!1===e)return b.booleanLiteral(e);if(null===e)return b.nullLiteral();if("string"==typeof e)return b.stringLiteral(e);if("number"==typeof e)return b.numericLiteral(e);if((0,g.default)(e)){var t=e.source,r=e.toString().match(/\/([a-z]+|)$/)[1];return b.regExpLiteral(t,r)}if(Array.isArray(e))return b.arrayExpression(e.map(b.valueToNode));if((0,y.default)(e)){var n=[];for(var i in e){var s=void 0;s=b.isValidIdentifier(i)?b.identifier(i):b.stringLiteral(i),n.push(b.objectProperty(s,b.valueToNode(e[i])))}return b.objectExpression(n)}throw new Error("don't know how to turn this value into a node")}r.__esModule=!0;var f=n(e("babel-runtime/core-js/number/max-safe-integer")),d=n(e("babel-runtime/core-js/json/stringify")),m=n(e("babel-runtime/core-js/get-iterator"));r.toComputedKey=i,r.toSequenceExpression=s,r.toKeyAlias=a,r.toIdentifier=o,r.toBindingIdentifierName=u,r.toStatement=l,r.toExpression=c,r.toBlock=p,r.valueToNode=h;var y=n(e("lodash/isPlainObject")),g=n(e("lodash/isRegExp")),b=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"));a.uid=0,a.increment=function(){return a.uid>=f.default?a.uid=0:a.uid++}},{"./index":169,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/json/stringify":114,"babel-runtime/core-js/number/max-safe-integer":116,"lodash/isPlainObject":506,"lodash/isRegExp":507}],160:[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")},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":158,"../index":169,"./index":164}],161:[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)("Expression")))},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":164}],162:[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":164}],163:[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)("DeclareVariable",{visitor:["id"],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)("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)("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":164}],164:[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,d.default)(e)}function s(e){function t(t,r,n){if(Array.isArray(n))for(var i=0;i<n.length;i++)e(t,r+"["+i+"]",n[i])}return t.each=e,t}function a(){function e(e,t,n){if(r.indexOf(n)<0)throw new TypeError("Property "+t+" expected value to be one of "+(0,f.default)(r)+" but got "+(0,f.default)(n))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOf=r,e}function o(){function e(e,t,n){for(var i=!1,s=r,a=Array.isArray(s),o=0,s=a?s:(0,h.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;if(m.is(l,n)){i=!0;break}}if(!i)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,f.default)(r)+" but instead got "+(0,f.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeTypes=r,e}function u(){function e(e,t,n){for(var s=!1,a=r,o=Array.isArray(a),u=0,a=o?a:(0,h.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;if(i(n)===c||m.is(c,n)){s=!0;break}}if(!s)throw new TypeError("Property "+t+" of "+e.type+" expected node to be of a type "+(0,f.default)(r)+" but instead got "+(0,f.default)(n&&n.type))}for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.oneOfNodeOrValueTypes=r,e}function l(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}function c(){function e(){for(var e=r,t=Array.isArray(e),n=0,e=t?e:(0,h.default)(e);;){var i;if(t){if(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;n<t;n++)r[n]=arguments[n];return e.chainOf=r,e}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.inherits&&E[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&&(x[t.deprecatedAlias]=e);for(var n=t.visitor.concat(t.builder),s=Array.isArray(n),a=0,n=s?n:(0,h.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;t.fields[u]=t.fields[u]||{}}for(var c in t.fields){var p=t.fields[c];-1===t.builder.indexOf(c)&&(p.optional=!0),void 0===p.default?p.default=null:p.validate||(p.validate=l(i(p.default)))}y[e]=t.visitor,v[e]=t.builder,b[e]=t.fields,g[e]=t.aliases,E[e]=t}r.__esModule=!0,r.DEPRECATED_KEYS=r.BUILDER_KEYS=r.NODE_FIELDS=r.ALIAS_KEYS=r.VISITOR_KEYS=void 0;var h=n(e("babel-runtime/core-js/get-iterator")),f=n(e("babel-runtime/core-js/json/stringify")),d=n(e("babel-runtime/helpers/typeof"));r.assertEach=s,r.assertOneOf=a,r.assertNodeType=o,r.assertNodeOrValueType=u,r.assertValueType=l,r.chain=c,r.default=p;var m=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")),y=r.VISITOR_KEYS={},g=r.ALIAS_KEYS={},b=r.NODE_FIELDS={},v=r.BUILDER_KEYS={},x=r.DEPRECATED_KEYS={},E={}},{"../index":169,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/json/stringify":114,"babel-runtime/helpers/typeof":131}],165:[function(e,t,r){"use strict";e("./index"),e("./core"),e("./es2015"),e("./flow"),e("./jsx"),e("./misc"),e("./experimental")},{"./core":160,"./es2015":161,"./experimental":162,"./flow":163,"./index":164,"./jsx":166,"./misc":167}],166:[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":164}],167:[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":164}],168:[function(e,t,r){"use strict";function n(e){var t=i(e);return 1===t.length?t[0]:a.unionTypeAnnotation(t)}function i(e){for(var t={},r={},n=[],s=[],o=0;o<e.length;o++){var u=e[o];if(u&&!(s.indexOf(u)>=0)){if(a.isAnyTypeAnnotation(u))return[u];if(a.isFlowBaseAnnotation(u))r[u.type]=u;else if(a.isUnionTypeAnnotation(u))n.indexOf(u.types)<0&&(e=e.concat(u.types),n.push(u.types));else if(a.isGenericTypeAnnotation(u)){var l=u.id.name;if(t[l]){var c=t[l];c.typeParameters?u.typeParameters&&(c.typeParameters.params=i(c.typeParameters.params.concat(u.typeParameters.params))):c=u.typeParameters}else t[l]=u}else s.push(u)}}for(var p in r)s.push(r[p]);for(var h in t)s.push(t[h]);return s}function s(e){if("string"===e)return a.stringTypeAnnotation();if("number"===e)return a.numberTypeAnnotation();if("undefined"===e)return a.voidTypeAnnotation();if("boolean"===e)return a.booleanTypeAnnotation();if("function"===e)return a.genericTypeAnnotation(a.identifier("Function"));if("object"===e)return a.genericTypeAnnotation(a.identifier("Object"));if("symbol"===e)return a.genericTypeAnnotation(a.identifier("Symbol"));throw new Error("Invalid typeof value")}r.__esModule=!0,r.createUnionTypeAnnotation=n,r.removeTypeDuplicates=i,r.createTypeAnnotationBasedOnTypeof=s;var a=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":169}],169:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e){var t=q["is"+e];t||(t=q["is"+e]=function(t,r){return q.is(e,t,r)}),q["assert"+e]=function(r,n){if(n=n||{},!t(r,n))throw new Error("Expected type "+(0,P.default)(e)+" with option "+(0,P.default)(n))}}function s(e,t,r){return!!t&&(!!a(t.type,e)&&(void 0===r||q.shallowEqual(t,r)))}function a(e,t){if(e===t)return!0;if(q.ALIAS_KEYS[t])return!1;var r=q.FLIPPED_ALIAS_KEYS[t];if(r){if(r[0]===e)return!0;for(var n=r,i=Array.isArray(n),s=0,n=i?n:(0,F.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 o(e,t,r){if(e){var n=q.NODE_FIELDS[e.type];if(n){var i=n[t];i&&i.validate&&(i.optional&&null==r||i.validate(e,t,r))}}}function u(e,t){for(var r=(0,T.default)(t),n=Array.isArray(r),i=0,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(e[a]!==t[a])return!1}return!0}function l(e,t,r){return e.object=q.memberExpression(e.object,e.property,e.computed),e.property=t,e.computed=!!r,e}function c(e,t){return e.object=q.memberExpression(t,e.object),e}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"body";return e[t]=q.toBlock(e[t],e)}function h(e){if(!e)return e;var t={};for(var r in e)"_"!==r[0]&&(t[r]=e[r]);return t}function f(e){var t=h(e);return delete t.loc,t}function d(e){if(!e)return e;var t={};for(var r in e)if("_"!==r[0]){var n=e[r];n&&(n.type?n=q.cloneDeep(n):Array.isArray(n)&&(n=n.map(q.cloneDeep))),t[r]=n}return t}function m(e,t){var r=e.split(".");return function(e){if(!q.isMemberExpression(e))return!1;for(var n=[e],i=0;n.length;){var s=n.shift();if(t&&i===r.length)return!0;if(q.isIdentifier(s)){if(r[i]!==s.name)return!1}else{if(!q.isStringLiteral(s)){if(q.isMemberExpression(s)){if(s.computed&&!q.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}}function y(e){for(var t=q.COMMENT_KEYS,r=Array.isArray(t),n=0,t=r?t:(0,F.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}function g(e,t){return b(e,t),v(e,t),x(e,t),e}function b(e,t){E("trailingComments",e,t)}function v(e,t){E("leadingComments",e,t)}function x(e,t){E("innerComments",e,t)}function E(e,t,r){t&&r&&(t[e]=(0,R.default)([].concat(t[e],r[e]).filter(Boolean)))}function A(e,t){if(!e||!t)return e;for(var r=q.INHERIT_KEYS.optional,n=Array.isArray(r),i=0,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;null==e[a]&&(e[a]=t[a])}for(var o in t)"_"===o[0]&&(e[o]=t[o]);for(var u=q.INHERIT_KEYS.force,l=Array.isArray(u),c=0,u=l?u:(0,F.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 q.inheritsComments(e,t),e}function D(e){if(!C(e))throw new TypeError("Not a valid node "+(e&&e.type))}function C(e){return!(!e||!V.VISITOR_KEYS[e.type])}function S(e,t,r){if(e){var n=q.VISITOR_KEYS[e.type];if(n){t(e,r=r||{});for(var i=n,s=Array.isArray(i),a=0,i=s?i:(0,F.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))for(var l=u,c=Array.isArray(l),p=0,l=c?l:(0,F.default)(l);;){var h;if(c){if(p>=l.length)break;h=l[p++]}else{if((p=l.next()).done)break;h=p.value}S(h,t,r)}else S(u,t,r)}}}}function _(e,t){for(var r=(t=t||{}).preserveComments?J:W,n=Array.isArray(r),i=0,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;null!=e[a]&&(e[a]=void 0)}for(var o in e)"_"===o[0]&&null!=e[o]&&(e[o]=void 0);for(var u=(0,k.default)(e),l=Array.isArray(u),c=0,u=l?u:(0,F.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}}function w(e,t){return S(e,_,t),e}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 k=n(e("babel-runtime/core-js/object/get-own-property-symbols")),F=n(e("babel-runtime/core-js/get-iterator")),T=n(e("babel-runtime/core-js/object/keys")),P=n(e("babel-runtime/core-js/json/stringify")),B=e("./constants");Object.defineProperty(r,"STATEMENT_OR_BLOCK_KEYS",{enumerable:!0,get:function(){return B.STATEMENT_OR_BLOCK_KEYS}}),Object.defineProperty(r,"FLATTENABLE_KEYS",{enumerable:!0,get:function(){return B.FLATTENABLE_KEYS}}),Object.defineProperty(r,"FOR_INIT_KEYS",{enumerable:!0,get:function(){return B.FOR_INIT_KEYS}}),Object.defineProperty(r,"COMMENT_KEYS",{enumerable:!0,get:function(){return B.COMMENT_KEYS}}),Object.defineProperty(r,"LOGICAL_OPERATORS",{enumerable:!0,get:function(){return B.LOGICAL_OPERATORS}}),Object.defineProperty(r,"UPDATE_OPERATORS",{enumerable:!0,get:function(){return B.UPDATE_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return B.BOOLEAN_NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"EQUALITY_BINARY_OPERATORS",{enumerable:!0,get:function(){return B.EQUALITY_BINARY_OPERATORS}}),Object.defineProperty(r,"COMPARISON_BINARY_OPERATORS",{enumerable:!0,get:function(){return B.COMPARISON_BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_BINARY_OPERATORS",{enumerable:!0,get:function(){return B.BOOLEAN_BINARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_BINARY_OPERATORS",{enumerable:!0,get:function(){return B.NUMBER_BINARY_OPERATORS}}),Object.defineProperty(r,"BINARY_OPERATORS",{enumerable:!0,get:function(){return B.BINARY_OPERATORS}}),Object.defineProperty(r,"BOOLEAN_UNARY_OPERATORS",{enumerable:!0,get:function(){return B.BOOLEAN_UNARY_OPERATORS}}),Object.defineProperty(r,"NUMBER_UNARY_OPERATORS",{enumerable:!0,get:function(){return B.NUMBER_UNARY_OPERATORS}}),Object.defineProperty(r,"STRING_UNARY_OPERATORS",{enumerable:!0,get:function(){return B.STRING_UNARY_OPERATORS}}),Object.defineProperty(r,"UNARY_OPERATORS",{enumerable:!0,get:function(){return B.UNARY_OPERATORS}}),Object.defineProperty(r,"INHERIT_KEYS",{enumerable:!0,get:function(){return B.INHERIT_KEYS}}),Object.defineProperty(r,"BLOCK_SCOPED_SYMBOL",{enumerable:!0,get:function(){return B.BLOCK_SCOPED_SYMBOL}}),Object.defineProperty(r,"NOT_LOCAL_BINDING",{enumerable:!0,get:function(){return B.NOT_LOCAL_BINDING}}),r.is=s,r.isType=a,r.validate=o,r.shallowEqual=u,r.appendToMemberExpression=l,r.prependToMemberExpression=c,r.ensureBlock=p,r.clone=h,r.cloneWithoutLoc=f,r.cloneDeep=d,r.buildMatchMemberExpression=m,r.removeComments=y,r.inheritsComments=g,r.inheritTrailingComments=b,r.inheritLeadingComments=v,r.inheritInnerComments=x,r.inherits=A,r.assertNode=D,r.isNode=C,r.traverseFast=S,r.removeProperties=_,r.removePropertiesDeep=w;var O=e("./retrievers");Object.defineProperty(r,"getBindingIdentifiers",{enumerable:!0,get:function(){return O.getBindingIdentifiers}}),Object.defineProperty(r,"getOuterBindingIdentifiers",{enumerable:!0,get:function(){return O.getOuterBindingIdentifiers}});var j=e("./validators");Object.defineProperty(r,"isBinding",{enumerable:!0,get:function(){return j.isBinding}}),Object.defineProperty(r,"isReferenced",{enumerable:!0,get:function(){return j.isReferenced}}),Object.defineProperty(r,"isValidIdentifier",{enumerable:!0,get:function(){return j.isValidIdentifier}}),Object.defineProperty(r,"isLet",{enumerable:!0,get:function(){return j.isLet}}),Object.defineProperty(r,"isBlockScoped",{enumerable:!0,get:function(){return j.isBlockScoped}}),Object.defineProperty(r,"isVar",{enumerable:!0,get:function(){return j.isVar}}),Object.defineProperty(r,"isSpecifierDefault",{enumerable:!0,get:function(){return j.isSpecifierDefault}}),Object.defineProperty(r,"isScope",{enumerable:!0,get:function(){return j.isScope}}),Object.defineProperty(r,"isImmutable",{enumerable:!0,get:function(){return j.isImmutable}}),Object.defineProperty(r,"isNodesEquivalent",{enumerable:!0,get:function(){return j.isNodesEquivalent}});var N=e("./converters");Object.defineProperty(r,"toComputedKey",{enumerable:!0,get:function(){return N.toComputedKey}}),Object.defineProperty(r,"toSequenceExpression",{enumerable:!0,get:function(){return N.toSequenceExpression}}),Object.defineProperty(r,"toKeyAlias",{enumerable:!0,get:function(){return N.toKeyAlias}}),Object.defineProperty(r,"toIdentifier",{enumerable:!0,get:function(){return N.toIdentifier}}),Object.defineProperty(r,"toBindingIdentifierName",{enumerable:!0,get:function(){return N.toBindingIdentifierName}}),Object.defineProperty(r,"toStatement",{enumerable:!0,get:function(){return N.toStatement}}),Object.defineProperty(r,"toExpression",{enumerable:!0,get:function(){return N.toExpression}}),Object.defineProperty(r,"toBlock",{enumerable:!0,get:function(){return N.toBlock}}),Object.defineProperty(r,"valueToNode",{enumerable:!0,get:function(){return N.valueToNode}});var I=e("./flow");Object.defineProperty(r,"createUnionTypeAnnotation",{enumerable:!0,get:function(){return I.createUnionTypeAnnotation}}),Object.defineProperty(r,"removeTypeDuplicates",{enumerable:!0,get:function(){return I.removeTypeDuplicates}}),Object.defineProperty(r,"createTypeAnnotationBasedOnTypeof",{enumerable:!0,get:function(){return I.createTypeAnnotationBasedOnTypeof}});var L=n(e("to-fast-properties")),M=n(e("lodash/clone")),R=n(e("lodash/uniq"));e("./definitions/init");var V=e("./definitions"),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("./react")),q=r;r.VISITOR_KEYS=V.VISITOR_KEYS,r.ALIAS_KEYS=V.ALIAS_KEYS,r.NODE_FIELDS=V.NODE_FIELDS,r.BUILDER_KEYS=V.BUILDER_KEYS,r.DEPRECATED_KEYS=V.DEPRECATED_KEYS,r.react=U;for(var G in q.VISITOR_KEYS)i(G);q.FLIPPED_ALIAS_KEYS={},(0,T.default)(q.ALIAS_KEYS).forEach(function(e){q.ALIAS_KEYS[e].forEach(function(t){(q.FLIPPED_ALIAS_KEYS[t]=q.FLIPPED_ALIAS_KEYS[t]||[]).push(e)})}),(0,T.default)(q.FLIPPED_ALIAS_KEYS).forEach(function(e){q[e.toUpperCase()+"_TYPES"]=q.FLIPPED_ALIAS_KEYS[e],i(e)});r.TYPES=(0,T.default)(q.VISITOR_KEYS).concat((0,T.default)(q.FLIPPED_ALIAS_KEYS)).concat((0,T.default)(q.DEPRECATED_KEYS));(0,T.default)(q.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;for(var n=0,i=r,s=Array.isArray(i),a=0,i=s?i:(0,F.default)(i);;){var u;if(s){if(a>=i.length)break;u=i[a++]}else{if((a=i.next()).done)break;u=a.value}var l=u,c=q.NODE_FIELDS[e][l],p=arguments[n++];void 0===p&&(p=(0,M.default)(c.default)),t[l]=p}for(var h in t)o(t,h,t[h]);return t}var r=q.BUILDER_KEYS[e];q[e]=t,q[e[0].toLowerCase()+e.slice(1)]=t});for(var X in q.DEPRECATED_KEYS)!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=q.DEPRECATED_KEYS[e];q[e]=q[e[0].toLowerCase()+e.slice(1)]=t(q[r]),q["is"+e]=t(q["is"+r]),q["assert"+e]=t(q["assert"+r])}(X);(0,L.default)(q),(0,L.default)(q.VISITOR_KEYS);var J=["tokens","start","end","loc","raw","rawValue"],W=q.COMMENT_KEYS.concat(["comments"]).concat(J)},{"./constants":158,"./converters":159,"./definitions":164,"./definitions/init":165,"./flow":168,"./react":170,"./retrievers":171,"./validators":172,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/json/stringify":114,"babel-runtime/core-js/object/get-own-property-symbols":119,"babel-runtime/core-js/object/keys":120,"lodash/clone":479,"lodash/uniq":528,"to-fast-properties":596}],170:[function(e,t,r){"use strict";function n(e){return!!e&&/^[a-z]|\-/.test(e)}function i(e,t){for(var r=e.value.split(/\r\n|\n|\r/),n=0,i=0;i<r.length;i++)r[i].match(/[^ \t]/)&&(n=i);for(var s="",o=0;o<r.length;o++){var u=r[o],l=0===o,c=o===r.length-1,p=o===n,h=u.replace(/\t/g," ");l||(h=h.replace(/^[ ]+/,"")),c||(h=h.replace(/[ ]+$/,"")),h&&(p||(h+=" "),s+=h)}s&&t.push(a.stringLiteral(s))}function s(e){for(var t=[],r=0;r<e.children.length;r++){var n=e.children[r];a.isJSXText(n)?i(n,t):(a.isJSXExpressionContainer(n)&&(n=n.expression),a.isJSXEmptyExpression(n)||t.push(n))}return t}r.__esModule=!0,r.isReactComponent=void 0,r.isCompatTag=n,r.buildChildren=s;var a=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"));r.isReactComponent=a.buildMatchMemberExpression("React.Component")},{"./index":169}],171:[function(e,t,r){"use strict";function n(e,t,r){for(var n=[].concat(e),i=(0,s.default)(null);n.length;){var o=n.shift();if(o){var u=a.getBindingIdentifiers.keys[o.type];if(a.isIdentifier(o))t?(i[o.name]=i[o.name]||[]).push(o):i[o.name]=o;else if(a.isExportDeclaration(o))a.isDeclaration(o.declaration)&&n.push(o.declaration);else{if(r){if(a.isFunctionDeclaration(o)){n.push(o.id);continue}if(a.isFunctionExpression(o))continue}if(u)for(var l=0;l<u.length;l++){var c=u[l];o[c]&&(n=n.concat(o[c]))}}}}return i}function i(e,t){return n(e,t,!0)}r.__esModule=!0;var s=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/object/create"));r.getBindingIdentifiers=n,r.getOuterBindingIdentifiers=i;var a=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"));n.keys={DeclareClass:["id"],DeclareFunction:["id"],DeclareModule:["id"],DeclareVariable:["id"],InterfaceDeclaration:["id"],TypeAlias:["id"],CatchClause:["param"],LabeledStatement:["label"],UnaryExpression:["argument"],AssignmentExpression:["left"],ImportSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportDefaultSpecifier:["local"],ImportDeclaration:["specifiers"],ExportSpecifier:["exported"],ExportNamespaceSpecifier:["exported"],ExportDefaultSpecifier:["exported"],FunctionDeclaration:["id","params"],FunctionExpression:["id","params"],ClassDeclaration:["id"],ClassExpression:["id"],RestElement:["argument"],UpdateExpression:["argument"],RestProperty:["argument"],ObjectProperty:["value"],AssignmentPattern:["left"],ArrayPattern:["elements"],ObjectPattern:["properties"],VariableDeclaration:["declarations"],VariableDeclarator:["id"]}},{"./index":169,"babel-runtime/core-js/object/create":118}],172:[function(e,t,r){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function i(e,t){var r=g.getBindingIdentifiers.keys[t.type];if(r)for(var n=0;n<r.length;n++){var i=t[r[n]];if(Array.isArray(i)){if(i.indexOf(e)>=0)return!0}else if(i===e)return!0}return!1}function s(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":for(var r=t.params,n=Array.isArray(r),i=0,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}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}function a(e){return"string"==typeof e&&!b.default.keyword.isReservedWordES6(e,!0)&&("await"!==e&&b.default.keyword.isIdentifierNameES6(e))}function o(e){return v.isVariableDeclaration(e)&&("var"!==e.kind||e[x.BLOCK_SCOPED_SYMBOL])}function u(e){return v.isFunctionDeclaration(e)||v.isClassDeclaration(e)||v.isLet(e)}function l(e){return v.isVariableDeclaration(e,{kind:"var"})&&!e[x.BLOCK_SCOPED_SYMBOL]}function c(e){return v.isImportDefaultSpecifier(e)||v.isIdentifier(e.imported||e.exported,{name:"default"})}function p(e,t){return(!v.isBlockStatement(e)||!v.isFunction(t,{body:e}))&&v.isScopable(e)}function h(e){return!!v.isType(e.type,"Immutable")||!!v.isIdentifier(e)&&"undefined"===e.name}function f(e,t){if("object"!==(void 0===e?"undefined":(0,m.default)(e))||"object"!==(void 0===e?"undefined":(0,m.default)(e))||null==e||null==t)return e===t;if(e.type!==t.type)return!1;for(var r=(0,d.default)(v.NODE_FIELDS[e.type]||e.type),n=Array.isArray(r),i=0,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((0,m.default)(e[a])!==(0,m.default)(t[a]))return!1;if(Array.isArray(e[a])){if(!Array.isArray(t[a]))return!1;if(e[a].length!==t[a].length)return!1;for(var o=0;o<e[a].length;o++)if(!f(e[a][o],t[a][o]))return!1}else if(!f(e[a],t[a]))return!1}return!0}r.__esModule=!0;var d=n(e("babel-runtime/core-js/object/keys")),m=n(e("babel-runtime/helpers/typeof")),y=n(e("babel-runtime/core-js/get-iterator"));r.isBinding=i,r.isReferenced=s,r.isValidIdentifier=a,r.isLet=o,r.isBlockScoped=u,r.isVar=l,r.isSpecifierDefault=c,r.isScope=p,r.isImmutable=h,r.isNodesEquivalent=f;var g=e("./retrievers"),b=n(e("esutils")),v=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")),x=e("./constants")},{"./constants":158,"./index":169,"./retrievers":171,"babel-runtime/core-js/get-iterator":113,"babel-runtime/core-js/object/keys":120,"babel-runtime/helpers/typeof":131,esutils:176}],173:[function(e,t,r){arguments[4][24][0].apply(r,arguments)},{dup:24}],174:[function(e,t,r){arguments[4][25][0].apply(r,arguments)},{dup:25}],175:[function(e,t,r){arguments[4][26][0].apply(r,arguments)},{"./code":174,dup:26}],176:[function(e,t,r){arguments[4][27][0].apply(r,arguments)},{"./ast":173,"./code":174,"./keyword":175,dup:27}],177:[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;n<t.length;n+=2){if((r+=t[n])>e)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&&E.test(String.fromCharCode(e)):i(e,D)))}function a(e){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&A.test(String.fromCharCode(e)):i(e,D)||i(e,C))))}function o(e){var t={};for(var r in S)t[r]=e&&r in e?e[r]:S[r];return t}function u(e){return 10===e||13===e||8232===e||8233===e}function l(e,t){for(var r=1,n=0;;){L.lastIndex=n;var i=L.exec(e);if(!(i&&i.index<t))return new U(r,t-n);++r,n=i.index+i[0].length}}function c(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}function p(e,t,r,n){return e.type=t,e.end=r,e.loc.end=n,this.processComment(e),e}function h(e){return e[e.length-1]}function f(e){return e&&"Property"===e.type&&"init"===e.kind&&!1===e.method}function d(e){return"JSXIdentifier"===e.type?e.name:"JSXNamespacedName"===e.type?e.namespace.name+":"+e.name.name:"JSXMemberExpression"===e.type?d(e.object)+"."+d(e.property):void 0}function m(e,t){return new K(t,e).parse()}function y(e,t){var r=new K(t,e);return r.options.strictMode&&(r.state.strict=!0),r.getExpression()}Object.defineProperty(r,"__esModule",{value:!0});var g={6:n("enum await"),strict:n("implements interface let package private protected public static yield"),strictBind:n("eval arguments")},b=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"),v="ĀŖĀµĀŗƀ-ƖƘ-ƶĆø-ĖĖ†-Ė‘Ė -Ė¤Ė¬Ė®Ķ°-Ķ“Ķ¶Ķ·Ķŗ-Ķ½ĶæĪ†Īˆ-ĪŠĪŒĪŽ-Ī”Ī£-ĻµĻ·-ŅŅŠ-ŌÆŌ±-Õ–Õ™Õ”-ևא-×Ŗ×°-ײŲ -ŁŠŁ®ŁÆŁ±-Ū“Ū•Ū„Ū¦Ū®ŪÆŪŗ-Ū¼Ūæܐܒ-ÜÆŻ-Ž„Ž±ßŠ-ßŖß“ßµßŗą €-ą •ą šą ¤ą Øą”€-ą”˜ą¢ -ą¢“ą¢¶-ą¢½ą¤„-ą¤¹ą¤½ą„ą„˜-ą„”ą„±-ą¦€ą¦…-ą¦Œą¦ą¦ą¦“-ą¦Øą¦Ŗ-ą¦°ą¦²ą¦¶-ą¦¹ą¦½ą§Žą§œą§ą§Ÿ-ą§”ą§°ą§±ąØ…-ąØŠąØąØąØ“-ąØØąØŖ-ąØ°ąØ²ąØ³ąØµąØ¶ąØøąØ¹ą©™-ą©œą©žą©²-ą©“ąŖ…-ąŖąŖ-ąŖ‘ąŖ“-ąŖØąŖŖ-ąŖ°ąŖ²ąŖ³ąŖµ-ąŖ¹ąŖ½ą«ą« ą«”ą«¹ą¬…-ą¬Œą¬ą¬ą¬“-ą¬Øą¬Ŗ-ą¬°ą¬²ą¬³ą¬µ-ą¬¹ą¬½ą­œą­ą­Ÿ-ą­”ą­±ą®ƒą®…-ą®Šą®Ž-ą®ą®’-ą®•ą®™ą®šą®œą®žą®Ÿą®£ą®¤ą®Ø-ą®Ŗą®®-ą®¹ąÆą°…-ą°Œą°Ž-ą°ą°’-ą°Øą°Ŗ-ą°¹ą°½ą±˜-ą±šą± ą±”ą²€ą²…-ą²Œą²Ž-ą²ą²’-ą²Øą²Ŗ-ą²³ą²µ-ą²¹ą²½ą³žą³ ą³”ą³±ą³²ą“…-ą“Œą“Ž-ą“ą“’-ą“ŗą“½ąµŽąµ”-ąµ–ąµŸ-ąµ”ąµŗ-ąµæą¶…-ą¶–ą¶š-ą¶±ą¶³-ą¶»ą¶½ą·€-ą·†ąø-ąø°ąø²ąø³ą¹€-ą¹†ąŗąŗ‚ąŗ„ąŗ‡ąŗˆąŗŠąŗąŗ”-ąŗ—ąŗ™-ąŗŸąŗ”-ąŗ£ąŗ„ąŗ§ąŗŖąŗ«ąŗ­-ąŗ°ąŗ²ąŗ³ąŗ½ą»€-ą»„ą»†ą»œ-ą»Ÿą¼€ą½€-ą½‡ą½‰-ą½¬ą¾ˆ-ą¾Œį€€-į€Ŗį€æį-į•įš-įį”į„į¦į®-į°įµ-į‚į‚Žį‚ -įƒ…įƒ‡įƒįƒ-įƒŗįƒ¼-į‰ˆį‰Š-į‰į‰-į‰–į‰˜į‰š-į‰į‰ -įŠˆįŠŠ-įŠįŠ-įŠ°įŠ²-įŠµįŠø-įŠ¾į‹€į‹‚-į‹…į‹ˆ-į‹–į‹˜-įŒįŒ’-įŒ•įŒ˜-įšįŽ€-įŽįŽ -įµįø-į½į-į™¬į™Æ-į™æįš-įššįš -į›Ŗį›®-į›øįœ€-įœŒįœŽ-įœ‘įœ -įœ±į€-į‘į -į¬į®-į°įž€-įž³įŸ—įŸœį  -į”·į¢€-į¢Øį¢Ŗį¢°-į£µį¤€-į¤žį„-į„­į„°-į„“į¦€-į¦«į¦°-į§‰į؀-įؖįØ -į©”įŖ§į¬…-į¬³į­…-į­‹į®ƒ-į® į®®į®Æį®ŗ-įÆ„į°€-į°£į±-į±į±š-į±½į²€-į²ˆį³©-į³¬į³®-į³±į³µį³¶į“€-į¶æįø€-į¼•į¼˜-į¼į¼ -į½…į½ˆ-į½į½-į½—į½™į½›į½į½Ÿ-į½½į¾€-į¾“į¾¶-į¾¼į¾¾įæ‚-įæ„įæ†-įæŒįæ-įæ“įæ–-įæ›įæ -įæ¬įæ²-įæ“įæ¶-įæ¼ā±āæā‚-ā‚œā„‚ā„‡ā„Š-ā„“ā„•ā„˜-ā„ā„¤ā„¦ā„Øā„Ŗ-ā„¹ā„¼-ā„æā……-ā…‰ā…Žā… -ā†ˆā°€-ā°®ā°°-ā±žā± -ā³¤ā³«-ā³®ā³²ā³³ā“€-ā“„ā“§ā“­ā“°-āµ§āµÆā¶€-ā¶–ā¶ -ā¶¦ā¶Ø-ā¶®ā¶°-ā¶¶ā¶ø-ā¶¾ā·€-ā·†ā·ˆ-ā·Žā·-ā·–ā·˜-ā·žć€…-怇怔-怩怱-怵ć€ø-ć€¼ć-悖悛-ć‚Ÿć‚”-ćƒŗćƒ¼-ćƒæ愅-愭愱-憎憠-ć†ŗ懰-ć‡æ搀-䶵äø€-éæ•ź€€-ź’Œź“-ź“½ź”€-ź˜Œź˜-ź˜Ÿź˜Ŗź˜«ź™€-ź™®ź™æ-źšźš -ź›Æźœ—-źœŸźœ¢-źžˆźž‹-źž®źž°-źž·źŸ·-ź ź ƒ-ź …ź ‡-ź Šź Œ-ź ¢ź”€-ź”³ź¢‚-ź¢³ź£²-ź£·ź£»ź£½ź¤Š-ź¤„ź¤°-ź„†ź„ -ź„¼ź¦„-ź¦²ź§ź§ -ź§¤ź§¦-ź§Æź§ŗ-ź§¾źØ€-źØØź©€-ź©‚ź©„-ź©‹ź© -ź©¶ź©ŗź©¾-źŖÆźŖ±źŖµźŖ¶źŖ¹-źŖ½ź«€ź«‚ź«›-ź«ź« -ź«Ŗź«²-ź«“ź¬-ź¬†ź¬‰-ź¬Žź¬‘-ź¬–ź¬ -ź¬¦ź¬Ø-ź¬®ź¬°-ź­šź­œ-ź­„ź­°-źÆ¢ź°€-ķž£ķž°-ķŸ†ķŸ‹-ķŸ»ļ¤€-ļ©­ļ©°-ļ«™ļ¬€-ļ¬†ļ¬“-ļ¬—ļ¬ļ¬Ÿ-ļ¬Øļ¬Ŗ-ļ¬¶ļ¬ø-ļ¬¼ļ¬¾ļ­€ļ­ļ­ƒļ­„ļ­†-ļ®±ļƓ-ļ“½ļµ-ļ¶ļ¶’-ļ·‡ļ·°-ļ·»ļ¹°-ļ¹“ļ¹¶-ļ»¼ļ¼”-ļ¼ŗļ½-ļ½šļ½¦-ļ¾¾ļæ‚-ļæ‡ļæŠ-ļæļæ’-ļæ—ļæš-ļæœ",x="ā€Œā€Ā·Ģ€-ĶÆĪ‡Ņƒ-Ņ‡Ö‘-Ö½ÖæׇׁׂׅׄŲ-ŲšŁ‹-Ł©Ł°Ū–-ŪœŪŸ-Ū¤Ū§ŪØŪŖ-Ū­Ū°-Ū¹Ü‘Ü°-ŻŠŽ¦-Ž°ß€-߉߫-ß³ą –-ą ™ą ›-ą £ą „-ą §ą ©-ą ­ą”™-ą”›ą£”-ą£”ą££-ą¤ƒą¤ŗ-ą¤¼ą¤¾-ą„ą„‘-ą„—ą„¢ą„£ą„¦-ą„Æą¦-ą¦ƒą¦¼ą¦¾-ą§„ą§‡ą§ˆą§‹-ą§ą§—ą§¢ą§£ą§¦-ą§ÆąØ-ąØƒąØ¼ąØ¾-ą©‚ą©‡ą©ˆą©‹-ą©ą©‘ą©¦-ą©±ą©µąŖ-ąŖƒąŖ¼ąŖ¾-ą«…ą«‡-ą«‰ą«‹-ą«ą«¢ą«£ą«¦-ą«Æą¬-ą¬ƒą¬¼ą¬¾-ą­„ą­‡ą­ˆą­‹-ą­ą­–ą­—ą­¢ą­£ą­¦-ą­Æą®‚ą®¾-ąÆ‚ąÆ†-ąÆˆąÆŠ-ąÆąÆ—ąÆ¦-ąÆÆą°€-ą°ƒą°¾-ą±„ą±†-ą±ˆą±Š-ą±ą±•ą±–ą±¢ą±£ą±¦-ą±Æą²-ą²ƒą²¼ą²¾-ą³„ą³†-ą³ˆą³Š-ą³ą³•ą³–ą³¢ą³£ą³¦-ą³Æą“-ą“ƒą“¾-ąµ„ąµ†-ąµˆąµŠ-ąµąµ—ąµ¢ąµ£ąµ¦-ąµÆą¶‚ą¶ƒą·Šą·-ą·”ą·–ą·˜-ą·Ÿą·¦-ą·Æą·²ą·³ąø±ąø“-ąøŗą¹‡-ą¹Žą¹-ą¹™ąŗ±ąŗ“-ąŗ¹ąŗ»ąŗ¼ą»ˆ-ą»ą»-ą»™ą¼˜ą¼™ą¼ -ą¼©ą¼µą¼·ą¼¹ą¼¾ą¼æą½±-ą¾„ą¾†ą¾‡ą¾-ą¾—ą¾™-ą¾¼ąæ†į€«-į€¾į€-į‰į–-į™įž-į į¢-į¤į§-į­į±-į“į‚‚-į‚į‚-į‚į-įŸį©-į±įœ’-įœ”įœ²-įœ“į’į“į²į³įž“-įŸ“įŸįŸ -įŸ©į ‹-į į -į ™į¢©į¤ -į¤«į¤°-į¤»į„†-į„į§-į§šįؗ-į؛į©•-į©žį© -į©¼į©æ-įŖ‰įŖ-įŖ™įŖ°-įŖ½į¬€-į¬„į¬“-į­„į­-į­™į­«-į­³į®€-į®‚į®”-į®­į®°-į®¹įƦ-įƳį°¤-į°·į±€-į±‰į±-į±™į³-į³’į³”-į³Øį³­į³²-į³“į³øį³¹į·€-į·µį·»-į·æā€æā€ā”āƒ-āƒœāƒ”āƒ„-āƒ°ā³Æ-ā³±āµæā· -ā·æć€Ŗ-ć€Æ悙悚ź˜ -ź˜©ź™Æź™“-ź™½źšžźšŸź›°ź›±ź ‚ź †ź ‹ź £-ź §ź¢€ź¢ź¢“-ź£…ź£-ź£™ź£ -ź£±ź¤€-ź¤‰ź¤¦-ź¤­ź„‡-ź„“ź¦€-ź¦ƒź¦³-ź§€ź§-ź§™ź§„ź§°-ź§¹źØ©-źØ¶ź©ƒź©Œź©ź©-ź©™ź©»-ź©½źŖ°źŖ²-źŖ“źŖ·źŖøźŖ¾źŖæź«ź««-ź«Æź«µź«¶źÆ£-źÆŖźÆ¬źÆ­źÆ°-źÆ¹ļ¬žļø€-ļøļø -ļøÆļø³ļø“ļ¹-ļ¹ļ¼-ļ¼™ļ¼æ",E=new RegExp("["+v+"]"),A=new RegExp("["+v+x+"]");v=x=null;var D=[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],C=[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],S={sourceType:"script",sourceFilename:void 0,startLine:1,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowSuperOutsideMethod:!1,plugins:[],strictMode:null},_="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},w=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},k=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)},F=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},T=!0,P=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};w(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},B=function(e){function t(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return w(this,t),n.keyword=r,F(this,e.call(this,r,n))}return k(t,e),t}(P),O=function(e){function t(r,n){return w(this,t),F(this,e.call(this,r,{beforeExpr:T,binop:n}))}return k(t,e),t}(P),j={num:new P("num",{startsExpr:!0}),regexp:new P("regexp",{startsExpr:!0}),string:new P("string",{startsExpr:!0}),name:new P("name",{startsExpr:!0}),eof:new P("eof"),bracketL:new P("[",{beforeExpr:T,startsExpr:!0}),bracketR:new P("]"),braceL:new P("{",{beforeExpr:T,startsExpr:!0}),braceBarL:new P("{|",{beforeExpr:T,startsExpr:!0}),braceR:new P("}"),braceBarR:new P("|}"),parenL:new P("(",{beforeExpr:T,startsExpr:!0}),parenR:new P(")"),comma:new P(",",{beforeExpr:T}),semi:new P(";",{beforeExpr:T}),colon:new P(":",{beforeExpr:T}),doubleColon:new P("::",{beforeExpr:T}),dot:new P("."),question:new P("?",{beforeExpr:T}),arrow:new P("=>",{beforeExpr:T}),template:new P("template"),ellipsis:new P("...",{beforeExpr:T}),backQuote:new P("`",{startsExpr:!0}),dollarBraceL:new P("${",{beforeExpr:T,startsExpr:!0}),at:new P("@"),eq:new P("=",{beforeExpr:T,isAssign:!0}),assign:new P("_=",{beforeExpr:T,isAssign:!0}),incDec:new P("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new P("prefix",{beforeExpr:T,prefix:!0,startsExpr:!0}),logicalOR:new O("||",1),logicalAND:new O("&&",2),bitwiseOR:new O("|",3),bitwiseXOR:new O("^",4),bitwiseAND:new O("&",5),equality:new O("==/!=",6),relational:new O("</>",7),bitShift:new O("<</>>",8),plusMin:new P("+/-",{beforeExpr:T,binop:9,prefix:!0,startsExpr:!0}),modulo:new O("%",10),star:new O("*",10),slash:new O("/",10),exponent:new P("**",{beforeExpr:T,binop:11,rightAssociative:!0})},N={break:new B("break"),case:new B("case",{beforeExpr:T}),catch:new B("catch"),continue:new B("continue"),debugger:new B("debugger"),default:new B("default",{beforeExpr:T}),do:new B("do",{isLoop:!0,beforeExpr:T}),else:new B("else",{beforeExpr:T}),finally:new B("finally"),for:new B("for",{isLoop:!0}),function:new B("function",{startsExpr:!0}),if:new B("if"),return:new B("return",{beforeExpr:T}),switch:new B("switch"),throw:new B("throw",{beforeExpr:T}),try:new B("try"),var:new B("var"),let:new B("let"),const:new B("const"),while:new B("while",{isLoop:!0}),with:new B("with"),new:new B("new",{beforeExpr:T,startsExpr:!0}),this:new B("this",{startsExpr:!0}),super:new B("super",{startsExpr:!0}),class:new B("class"),extends:new B("extends",{beforeExpr:T}),export:new B("export"),import:new B("import",{startsExpr:!0}),yield:new B("yield",{beforeExpr:T,startsExpr:!0}),null:new B("null",{startsExpr:!0}),true:new B("true",{startsExpr:!0}),false:new B("false",{startsExpr:!0}),in:new B("in",{beforeExpr:T,binop:7}),instanceof:new B("instanceof",{beforeExpr:T,binop:7}),typeof:new B("typeof",{beforeExpr:T,prefix:!0,startsExpr:!0}),void:new B("void",{beforeExpr:T,prefix:!0,startsExpr:!0}),delete:new B("delete",{beforeExpr:T,prefix:!0,startsExpr:!0})};Object.keys(N).forEach(function(e){j["_"+e]=N[e]});var I=/\r\n?|\n|\u2028|\u2029/,L=new RegExp(I.source,"g"),M=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/,R=function e(t,r,n,i){w(this,e),this.token=t,this.isExpr=!!r,this.preserveSpace=!!n,this.override=i},V={braceStatement:new R("{",!1),braceExpression:new R("{",!0),templateQuasi:new R("${",!0),parenStatement:new R("(",!1),parenExpression:new R("(",!0),template:new R("`",!0,!0,function(e){return e.readTmplToken()}),functionExpression:new R("function",!0)};j.parenR.updateContext=j.braceR.updateContext=function(){if(1!==this.state.context.length){var e=this.state.context.pop();e===V.braceStatement&&this.curContext()===V.functionExpression?(this.state.context.pop(),this.state.exprAllowed=!1):e===V.templateQuasi?this.state.exprAllowed=!0:this.state.exprAllowed=!e.isExpr}else this.state.exprAllowed=!0},j.name.updateContext=function(e){this.state.exprAllowed=!1,e!==j._let&&e!==j._const&&e!==j._var||I.test(this.input.slice(this.state.end))&&(this.state.exprAllowed=!0)},j.braceL.updateContext=function(e){this.state.context.push(this.braceIsBlock(e)?V.braceStatement:V.braceExpression),this.state.exprAllowed=!0},j.dollarBraceL.updateContext=function(){this.state.context.push(V.templateQuasi),this.state.exprAllowed=!0},j.parenL.updateContext=function(e){var t=e===j._if||e===j._for||e===j._with||e===j._while;this.state.context.push(t?V.parenStatement:V.parenExpression),this.state.exprAllowed=!0},j.incDec.updateContext=function(){},j._function.updateContext=function(){this.curContext()!==V.braceStatement&&this.state.context.push(V.functionExpression),this.state.exprAllowed=!1},j.backQuote.updateContext=function(){this.curContext()===V.template?this.state.context.pop():this.state.context.push(V.template),this.state.exprAllowed=!1};var U=function e(t,r){w(this,e),this.line=t,this.column=r},q=function e(t,r){w(this,e),this.start=t,this.end=r},G=function(){function e(){w(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=j.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=[V.braceStatement],this.exprAllowed=!0,this.containsEsc=this.containsOctal=!1,this.octalPosition=null,this.invalidTemplateEscapePosition=null,this.exportedIdentifiers=[],this},e.prototype.curPosition=function(){return new U(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}(),X=function e(t){w(this,e),this.type=t.type,this.value=t.value,this.start=t.start,this.end=t.end,this.loc=new q(t.startLoc,t.endLoc)},J={},W=["jsx","doExpressions","objectRestSpread","decorators","classProperties","exportExtensions","asyncGenerators","functionBind","functionSent","dynamicImport","flow"],K=function(e){function t(r,n){w(this,t),r=o(r);var i=F(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 k(t,e),t.prototype.isReservedWord=function(e){return"await"===e?this.inModule:g[6](e)},t.prototype.hasPlugin=function(e){return!!(this.plugins["*"]&&W.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(J).filter(function(e){return"flow"!==e&&"estree"!==e});t.push("flow"),t.forEach(function(t){var r=J[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");for(var r=e,n=Array.isArray(r),i=0,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=J[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){w(this,e),this.state=new G,this.state.init(t,r)}return e.prototype.next=function(){this.isLookahead||this.state.tokens.push(new X(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 b(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(j.num)||this.match(j.string)){for(this.state.pos=this.state.start;this.state.pos<this.state.lineStart;)this.state.lineStart=this.input.lastIndexOf("\n",this.state.lineStart-2)+1,--this.state.curLine;this.nextToken()}},e.prototype.curContext=function(){return this.state.context[this.state.context.length-1]},e.prototype.nextToken=function(){var e=this.curContext();return e&&e.preserveSpace||this.skipSpace(),this.state.containsOctal=!1,this.state.octalPosition=null,this.state.start=this.state.pos,this.state.startLoc=this.state.curPosition(),this.state.pos>=this.input.length?this.finishToken(j.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);return e<=55295||e>=57344?e:(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 q(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,L.lastIndex=t;for(var n=void 0;(n=L.exec(this.input))&&n.index<this.state.pos;)++this.state.curLine,this.state.lineStart=n.index+n[0].length;this.pushComment(!0,this.input.slice(t+2,r),t,this.state.pos,e,this.state.curPosition())},e.prototype.skipLineComment=function(e){for(var t=this.state.pos,r=this.state.curPosition(),n=this.input.charCodeAt(this.state.pos+=e);this.state.pos<this.input.length&&10!==n&&13!==n&&8232!==n&&8233!==n;)++this.state.pos,n=this.input.charCodeAt(this.state.pos);this.pushComment(!1,this.input.slice(t+e,this.state.pos),t,this.state.pos,r,this.state.curPosition())},e.prototype.skipSpace=function(){e:for(;this.state.pos<this.input.length;){var e=this.input.charCodeAt(this.state.pos);switch(e){case 32:case 160:++this.state.pos;break;case 13:10===this.input.charCodeAt(this.state.pos+1)&&++this.state.pos;case 10:case 8232:case 8233:++this.state.pos,++this.state.curLine,this.state.lineStart=this.state.pos;break;case 47:switch(this.input.charCodeAt(this.state.pos+1)){case 42:this.skipBlockComment();break;case 47:this.skipLineComment(2);break;default:break e}break;default:if(!(e>8&&e<14||e>=5760&&M.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(j.ellipsis)):(++this.state.pos,this.finishToken(j.dot))},e.prototype.readToken_slash=function(){return this.state.exprAllowed?(++this.state.pos,this.readRegexp()):61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(j.assign,2):this.finishOp(j.slash,1)},e.prototype.readToken_mult_modulo=function(e){var t=42===e?j.star:j.modulo,r=1,n=this.input.charCodeAt(this.state.pos+1);return 42===n&&(r++,n=this.input.charCodeAt(this.state.pos+2),t=j.exponent),61===n&&(r++,t=j.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?j.logicalOR:j.logicalAND,2):61===t?this.finishOp(j.assign,2):124===e&&125===t&&this.hasPlugin("flow")?this.finishOp(j.braceBarR,2):this.finishOp(124===e?j.bitwiseOR:j.bitwiseAND,1)},e.prototype.readToken_caret=function(){return 61===this.input.charCodeAt(this.state.pos+1)?this.finishOp(j.assign,2):this.finishOp(j.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)&&I.test(this.input.slice(this.state.lastTokEnd,this.state.pos))?(this.skipLineComment(3),this.skipSpace(),this.nextToken()):this.finishOp(j.incDec,2):61===t?this.finishOp(j.assign,2):this.finishOp(j.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(j.assign,r+1):this.finishOp(j.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(j.relational,r))},e.prototype.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.state.pos+1);return 61===t?this.finishOp(j.equality,61===this.input.charCodeAt(this.state.pos+2)?3:2):61===e&&62===t?(this.state.pos+=2,this.finishToken(j.arrow)):this.finishOp(61===e?j.eq:j.prefix,1)},e.prototype.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.state.pos,this.finishToken(j.parenL);case 41:return++this.state.pos,this.finishToken(j.parenR);case 59:return++this.state.pos,this.finishToken(j.semi);case 44:return++this.state.pos,this.finishToken(j.comma);case 91:return++this.state.pos,this.finishToken(j.bracketL);case 93:return++this.state.pos,this.finishToken(j.bracketR);case 123:return this.hasPlugin("flow")&&124===this.input.charCodeAt(this.state.pos+1)?this.finishOp(j.braceBarL,2):(++this.state.pos,this.finishToken(j.braceL));case 125:return++this.state.pos,this.finishToken(j.braceR);case 58:return this.hasPlugin("functionBind")&&58===this.input.charCodeAt(this.state.pos+1)?this.finishOp(j.doubleColon,2):(++this.state.pos,this.finishToken(j.colon));case 63:return++this.state.pos,this.finishToken(j.question);case 64:return++this.state.pos,this.finishToken(j.at);case 96:return++this.state.pos,this.finishToken(j.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(j.prefix,1)}this.raise(this.state.pos,"Unexpected character '"+c(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(I.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();return s&&(/^[gmsiyu]*$/.test(s)||this.raise(e,"Invalid regular expression flag")),this.finishToken(j.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<s;++i){var a=this.input.charCodeAt(this.state.pos),o=void 0;if((o=a>=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(j.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(j.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):(u(n)&&this.raise(this.state.start,"Unterminated string constant"),++this.state.pos)}return t+=this.input.slice(r,this.state.pos++),this.finishToken(j.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(j.template)?36===n?(this.state.pos+=2,this.finishToken(j.dollarBraceL)):(++this.state.pos,this.finishToken(j.backQuote)):(e+=this.input.slice(t,this.state.pos),this.finishToken(j.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(u(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:c(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.pos<this.input.length;){var n=this.fullCharCodeAtPos();if(a(n))this.state.pos+=n<=65535?1:2;else{if(92!==n)break;this.state.containsEsc=!0,e+=this.input.slice(r,this.state.pos);var i=this.state.pos;117!==this.input.charCodeAt(++this.state.pos)&&this.raise(this.state.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.state.pos;var o=this.readCodePoint(!0);(t?s:a)(o,!0)||this.raise(i,"Invalid Unicode escape"),e+=c(o),r=this.state.pos}t=!1}return e+this.input.slice(r,this.state.pos)},e.prototype.readWord=function(){var e=this.readWord1(),t=j.name;return!this.state.containsEsc&&this.isKeyword(e)&&(t=N[e]),this.finishToken(t,e)},e.prototype.braceIsBlock=function(e){if(e===j.colon){var t=this.curContext();if(t===V.braceStatement||t===V.braceExpression)return!t.isExpr}return e===j._return?I.test(this.input.slice(this.state.lastTokEnd,this.state.start)):e===j._else||e===j.semi||e===j.eof||e===j.parenR||(e===j.braceL?this.curContext()===V.braceStatement:!this.state.exprAllowed)},e.prototype.updateContext=function(e){var t=this.state.type,r=void 0;t.keyword&&e===j.dot?this.state.exprAllowed=!1:(r=t.updateContext)?r.call(this,e):this.state.exprAllowed=t.beforeExpr},e}()),z=K.prototype;z.addExtra=function(e,t,r){e&&((e.extra=e.extra||{})[t]=r)},z.isRelational=function(e){return this.match(j.relational)&&this.state.value===e},z.expectRelational=function(e){this.isRelational(e)?this.next():this.unexpected(null,j.relational)},z.isContextual=function(e){return this.match(j.name)&&this.state.value===e},z.eatContextual=function(e){return this.state.value===e&&this.eat(j.name)},z.expectContextual=function(e,t){this.eatContextual(e)||this.unexpected(null,t)},z.canInsertSemicolon=function(){return this.match(j.eof)||this.match(j.braceR)||I.test(this.input.slice(this.state.lastTokEnd,this.state.start))},z.isLineTerminator=function(){return this.eat(j.semi)||this.canInsertSemicolon()},z.semicolon=function(){this.isLineTerminator()||this.unexpected(null,j.semi)},z.expect=function(e,t){return this.eat(e)||this.unexpected(t,e)},z.unexpected=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Unexpected token";t&&"object"===(void 0===t?"undefined":_(t))&&t.label&&(t="Unexpected token, expected "+t.label),this.raise(null!=e?e:this.state.start,t)};var Y=K.prototype;Y.parseTopLevel=function(e,t){return t.sourceType=this.options.sourceType,this.parseBlockBody(t,!0,!0,j.eof),e.program=this.finishNode(t,"Program"),e.comments=this.state.comments,e.tokens=this.state.tokens,this.finishNode(e,"File")};var H={kind:"loop"},$={kind:"switch"};Y.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)},Y.parseStatement=function(e,t){this.match(j.at)&&this.parseDecorators(!0);var r=this.state.type,n=this.startNode();switch(r){case j._break:case j._continue:return this.parseBreakContinueStatement(n,r.keyword);case j._debugger:return this.parseDebuggerStatement(n);case j._do:return this.parseDoStatement(n);case j._for:return this.parseForStatement(n);case j._function:return e||this.unexpected(),this.parseFunctionStatement(n);case j._class:return e||this.unexpected(),this.parseClass(n,!0);case j._if:return this.parseIfStatement(n);case j._return:return this.parseReturnStatement(n);case j._switch:return this.parseSwitchStatement(n);case j._throw:return this.parseThrowStatement(n);case j._try:return this.parseTryStatement(n);case j._let:case j._const:e||this.unexpected();case j._var:return this.parseVarStatement(n,r);case j._while:return this.parseWhileStatement(n);case j._with:return this.parseWithStatement(n);case j.braceL:return this.parseBlock();case j.semi:return this.parseEmptyStatement(n);case j._export:case j._import:if(this.hasPlugin("dynamicImport")&&this.lookahead().type===j.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===j._import?this.parseImport(n):this.parseExport(n);case j.name:if("async"===this.state.value){var i=this.state.clone();if(this.next(),this.match(j._function)&&!this.canInsertSemicolon())return this.expect(j._function),this.parseFunction(n,!0,!1,!0);this.state=i}}var s=this.state.value,a=this.parseExpression();return r===j.name&&"Identifier"===a.type&&this.eat(j.colon)?this.parseLabeledStatement(n,s,a):this.parseExpressionStatement(n,a)},Y.takeDecorators=function(e){this.state.decorators.length&&(e.decorators=this.state.decorators,this.state.decorators=[])},Y.parseDecorators=function(e){for(;this.match(j.at);){var t=this.parseDecorator();this.state.decorators.push(t)}e&&this.match(j._export)||this.match(j._class)||this.raise(this.state.start,"Leading decorators must be attached to a class declaration")},Y.parseDecorator=function(){this.hasPlugin("decorators")||this.unexpected();var e=this.startNode();return this.next(),e.expression=this.parseMaybeAssign(),this.finishNode(e,"Decorator")},Y.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.isLineTerminator()?e.label=null:this.match(j.name)?(e.label=this.parseIdentifier(),this.semicolon()):this.unexpected();var n=void 0;for(n=0;n<this.state.labels.length;++n){var i=this.state.labels[n];if(null==e.label||i.name===e.label.name){if(null!=i.kind&&(r||"loop"===i.kind))break;if(e.label&&r)break}}return n===this.state.labels.length&&this.raise(e.start,"Unsyntactic "+t),this.finishNode(e,r?"BreakStatement":"ContinueStatement")},Y.parseDebuggerStatement=function(e){return this.next(),this.semicolon(),this.finishNode(e,"DebuggerStatement")},Y.parseDoStatement=function(e){return this.next(),this.state.labels.push(H),e.body=this.parseStatement(!1),this.state.labels.pop(),this.expect(j._while),e.test=this.parseParenExpression(),this.eat(j.semi),this.finishNode(e,"DoWhileStatement")},Y.parseForStatement=function(e){this.next(),this.state.labels.push(H);var t=!1;if(this.hasPlugin("asyncGenerators")&&this.state.inAsync&&this.isContextual("await")&&(t=!0,this.next()),this.expect(j.parenL),this.match(j.semi))return t&&this.unexpected(),this.parseFor(e,null);if(this.match(j._var)||this.match(j._let)||this.match(j._const)){var r=this.startNode(),n=this.state.type;return this.next(),this.parseVar(r,!0,n),this.finishNode(r,"VariableDeclaration"),!this.match(j._in)&&!this.isContextual("of")||1!==r.declarations.length||r.declarations[0].init?(t&&this.unexpected(),this.parseFor(e,r)):this.parseForIn(e,r,t)}var i={start:0},s=this.parseExpression(!0,i);if(this.match(j._in)||this.isContextual("of")){var a=this.isContextual("of")?"for-of statement":"for-in statement";return this.toAssignable(s,void 0,a),this.checkLVal(s,void 0,void 0,a),this.parseForIn(e,s,t)}return i.start&&this.unexpected(i.start),t&&this.unexpected(),this.parseFor(e,s)},Y.parseFunctionStatement=function(e){return this.next(),this.parseFunction(e,!0)},Y.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement(!1),e.alternate=this.eat(j._else)?this.parseStatement(!1):null,this.finishNode(e,"IfStatement")},Y.parseReturnStatement=function(e){return this.state.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.state.start,"'return' outside of function"),this.next(),this.isLineTerminator()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},Y.parseSwitchStatement=function(e){this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(j.braceL),this.state.labels.push($);for(var t,r=void 0;!this.match(j.braceR);)if(this.match(j._case)||this.match(j._default)){var n=this.match(j._case);r&&this.finishNode(r,"SwitchCase"),e.cases.push(r=this.startNode()),r.consequent=[],this.next(),n?r.test=this.parseExpression():(t&&this.raise(this.state.lastTokStart,"Multiple default clauses"),t=!0,r.test=null),this.expect(j.colon)}else r?r.consequent.push(this.parseStatement(!0)):this.unexpected();return r&&this.finishNode(r,"SwitchCase"),this.next(),this.state.labels.pop(),this.finishNode(e,"SwitchStatement")},Y.parseThrowStatement=function(e){return this.next(),I.test(this.input.slice(this.state.lastTokEnd,this.state.start))&&this.raise(this.state.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var Q=[];Y.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.match(j._catch)){var t=this.startNode();this.next(),this.expect(j.parenL),t.param=this.parseBindingAtom(),this.checkLVal(t.param,!0,Object.create(null),"catch clause"),this.expect(j.parenR),t.body=this.parseBlock(),e.handler=this.finishNode(t,"CatchClause")}return e.guardedHandlers=Q,e.finalizer=this.eat(j._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},Y.parseVarStatement=function(e,t){return this.next(),this.parseVar(e,!1,t),this.semicolon(),this.finishNode(e,"VariableDeclaration")},Y.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.state.labels.push(H),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"WhileStatement")},Y.parseWithStatement=function(e){return this.state.strict&&this.raise(this.state.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement(!1),this.finishNode(e,"WithStatement")},Y.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},Y.parseLabeledStatement=function(e,t,r){for(var n=this.state.labels,i=Array.isArray(n),s=0,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}a.name===t&&this.raise(r.start,"Label '"+t+"' is already declared")}for(var o=this.state.type.isLoop?"loop":this.match(j._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")},Y.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},Y.parseBlock=function(e){var t=this.startNode();return this.expect(j.braceL),this.parseBlockBody(t,e,!1,j.braceR),this.finishNode(t,"BlockStatement")},Y.isValidDirective=function(e){return"ExpressionStatement"===e.type&&"StringLiteral"===e.expression.type&&!e.expression.extra.parenthesized},Y.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)},Y.parseFor=function(e,t){return e.init=t,this.expect(j.semi),e.test=this.match(j.semi)?null:this.parseExpression(),this.expect(j.semi),e.update=this.match(j.parenR)?null:this.parseExpression(),this.expect(j.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,"ForStatement")},Y.parseForIn=function(e,t,r){var n=void 0;return r?(this.eatContextual("of"),n="ForAwaitStatement"):(n=this.match(j._in)?"ForInStatement":"ForOfStatement",this.next()),e.left=t,e.right=this.parseExpression(),this.expect(j.parenR),e.body=this.parseStatement(!1),this.state.labels.pop(),this.finishNode(e,n)},Y.parseVar=function(e,t,r){for(e.declarations=[],e.kind=r.keyword;;){var n=this.startNode();if(this.parseVarHead(n),this.eat(j.eq)?n.init=this.parseMaybeAssign(t):r!==j._const||this.match(j._in)||this.isContextual("of")?"Identifier"===n.id.type||t&&(this.match(j._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(j.comma))break}return e},Y.parseVarHead=function(e){e.id=this.parseBindingAtom(),this.checkLVal(e.id,!0,void 0,"variable declaration")},Y.parseFunction=function(e,t,r,n,i){var s=this.state.inMethod;return this.state.inMethod=!1,this.initFunction(e,n),this.match(j.star)&&(e.async&&!this.hasPlugin("asyncGenerators")?this.unexpected():(e.generator=!0,this.next())),!t||i||this.match(j.name)||this.match(j._yield)||this.unexpected(),(this.match(j.name)||this.match(j._yield))&&(e.id=this.parseBindingIdentifier()),this.parseFunctionParams(e),this.parseFunctionBody(e,r),this.state.inMethod=s,this.finishNode(e,t?"FunctionDeclaration":"FunctionExpression")},Y.parseFunctionParams=function(e){this.expect(j.parenL),e.params=this.parseBindingList(j.parenR)},Y.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")},Y.isClassProperty=function(){return this.match(j.eq)||this.match(j.semi)||this.match(j.braceR)},Y.isClassMethod=function(){return this.match(j.parenL)},Y.isNonstaticConstructor=function(e){return!(e.computed||e.static||"constructor"!==e.key.name&&"constructor"!==e.key.value)},Y.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(j.braceL);!this.eat(j.braceR);)if(this.eat(j.semi))i.length>0&&this.raise(this.state.lastTokEnd,"Decorators must not be followed by a semicolon");else if(this.match(j.at))i.push(this.parseDecorator());else{var a=this.startNode();if(i.length&&(a.decorators=i,i=[]),a.static=!1,this.match(j.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(j.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(j.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(j.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(j.star)?this.hasPlugin("classConstructorCall")&&u&&"call"===l.name&&this.match(j.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},Y.parseClassProperty=function(e){return this.state.inClassProperty=!0,this.match(j.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")},Y.parseClassMethod=function(e,t,r,n){this.parseMethod(t,r,n),e.body.push(this.finishNode(t,"ClassMethod"))},Y.parseClassId=function(e,t,r){this.match(j.name)?e.id=this.parseIdentifier():r||!t?e.id=null:this.unexpected()},Y.parseClassSuper=function(e){e.superClass=this.eat(j._extends)?this.parseExprSubscripts():null},Y.parseExport=function(e){if(this.next(),this.match(j.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(j.comma)&&this.lookahead().type===j.star){this.expect(j.comma);var n=this.startNode();this.expect(j.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(j._default)){var i=this.startNode(),s=!1;return this.eat(j._function)?i=this.parseFunction(i,!0,!1,!1,!0):this.match(j._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")},Y.parseExportDeclaration=function(){return this.parseStatement(!0)},Y.isExportDefaultSpecifier=function(){if(this.match(j.name))return"async"!==this.state.value;if(!this.match(j._default))return!1;var e=this.lookahead();return e.type===j.comma||e.type===j.name&&"from"===e.value},Y.parseExportSpecifiersMaybe=function(e){this.eat(j.comma)&&(e.specifiers=e.specifiers.concat(this.parseExportSpecifiers()))},Y.parseExportFrom=function(e,t){this.eatContextual("from")?(e.source=this.match(j.string)?this.parseExprAtom():this.unexpected(),this.checkExport(e)):t?this.unexpected():e.source=null,this.semicolon()},Y.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")},Y.checkExport=function(e,t,r){if(t)if(r)this.checkDuplicateExports(e,"default");else if(e.specifiers&&e.specifiers.length)for(var n=e.specifiers,i=Array.isArray(n),s=0,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)for(var u=e.declaration.declarations,l=Array.isArray(u),c=0,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)}},Y.checkDeclaration=function(e){if("ObjectPattern"===e.type)for(var t=e.properties,r=Array.isArray(t),n=0,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)for(var a=e.elements,o=Array.isArray(a),u=0,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)},Y.checkDuplicateExports=function(e,t){this.state.exportedIdentifiers.indexOf(t)>-1&&this.raiseDuplicateExportError(e,t),this.state.exportedIdentifiers.push(t)},Y.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.")},Y.parseExportSpecifiers=function(){var e=[],t=!0,r=void 0;for(this.expect(j.braceL);!this.eat(j.braceR);){if(t)t=!1;else if(this.expect(j.comma),this.eat(j.braceR))break;var n=this.match(j._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},Y.parseImport=function(e){return this.eat(j._import),this.match(j.string)?(e.specifiers=[],e.source=this.parseExprAtom()):(e.specifiers=[],this.parseImportSpecifiers(e),this.expectContextual("from"),e.source=this.match(j.string)?this.parseExprAtom():this.unexpected()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},Y.parseImportSpecifiers=function(e){var t=!0;if(this.match(j.name)){var r=this.state.start,n=this.state.startLoc;if(e.specifiers.push(this.parseImportSpecifierDefault(this.parseIdentifier(),r,n)),!this.eat(j.comma))return}if(this.match(j.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(j.braceL);!this.eat(j.braceR);){if(t)t=!1;else if(this.eat(j.colon)&&this.unexpected(null,"ES2015 named imports do not destructure. Use another statement for destructuring after the import."),this.expect(j.comma),this.eat(j.braceR))break;this.parseImportSpecifier(e)}},Y.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"))},Y.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=K.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";for(var n=e.properties,i=Array.isArray(n),s=0,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<n;a++){var o=e[a];o&&this.toAssignable(o,t,r)}return e},Z.toReferencedList=function(e){return e},Z.parseSpread=function(e){var t=this.startNode();return this.next(),t.argument=this.parseMaybeAssign(!1,e),this.finishNode(t,"SpreadElement")},Z.parseRest=function(){var e=this.startNode();return this.next(),e.argument=this.parseBindingIdentifier(),this.finishNode(e,"RestElement")},Z.shouldAllowYieldIdentifier=function(){return this.match(j._yield)&&!this.state.strict&&!this.state.inGenerator},Z.parseBindingIdentifier=function(){return this.parseIdentifier(this.shouldAllowYieldIdentifier())},Z.parseBindingAtom=function(){switch(this.state.type){case j._yield:(this.state.strict||this.state.inGenerator)&&this.unexpected();case j.name:return this.parseIdentifier(!0);case j.bracketL:var e=this.startNode();return this.next(),e.elements=this.parseBindingList(j.bracketR,!0),this.finishNode(e,"ArrayPattern");case j.braceL:return this.parseObj(!0);default:this.unexpected()}},Z.parseBindingList=function(e,t){for(var r=[],n=!0;!this.eat(e);)if(n?n=!1:this.expect(j.comma),t&&this.match(j.comma))r.push(null);else{if(this.eat(e))break;if(this.match(j.ellipsis)){r.push(this.parseAssignableListItemTypes(this.parseRest())),this.expect(e);break}for(var i=[];this.match(j.at);)i.push(this.parseDecorator());var s=this.parseMaybeDefault();i.length&&(s.decorators=i),this.parseAssignableListItemTypes(s),r.push(this.parseMaybeDefault(s.start,s.loc.start,s))}return r},Z.parseAssignableListItemTypes=function(e){return e},Z.parseMaybeDefault=function(e,t,r){if(t=t||this.state.startLoc,e=e||this.state.start,r=r||this.parseBindingAtom(),!this.eat(j.eq))return r;var n=this.startNodeAt(e,t);return n.left=r,n.right=this.parseMaybeAssign(),this.finishNode(n,"AssignmentPattern")},Z.checkLVal=function(e,t,r,n){switch(e.type){case"Identifier":if(this.checkReservedWord(e.name,e.start,!1,!0),r){var i="_"+e.name;r[i]?this.raise(e.start,"Argument name clash in strict mode"):r[i]=!0}break;case"MemberExpression":t&&this.raise(e.start,(t?"Binding":"Assigning to")+" member expression");break;case"ObjectPattern":for(var s=e.properties,a=Array.isArray(s),o=0,s=a?s:s[Symbol.iterator]();;){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;"ObjectProperty"===l.type&&(l=l.value),this.checkLVal(l,t,r,"object destructuring pattern")}break;case"ArrayPattern":for(var c=e.elements,p=Array.isArray(c),h=0,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 ee=K.prototype;ee.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)}},ee.getExpression=function(){this.nextToken();var e=this.parseExpression();return this.match(j.eof)||this.unexpected(),e},ee.parseExpression=function(e,t){var r=this.state.start,n=this.state.startLoc,i=this.parseMaybeAssign(e,t);if(this.match(j.comma)){var s=this.startNodeAt(r,n);for(s.expressions=[i];this.eat(j.comma);)s.expressions.push(this.parseMaybeAssign(e,t));return this.toReferencedList(s.expressions),this.finishNode(s,"SequenceExpression")}return i},ee.parseMaybeAssign=function(e,t,r,n){var i=this.state.start,s=this.state.startLoc;if(this.match(j._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(j.parenL)||this.match(j.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(j.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},ee.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)},ee.parseConditional=function(e,t,r,n){if(this.eat(j.question)){var i=this.startNodeAt(r,n);return i.test=e,i.consequent=this.parseMaybeAssign(),this.expect(j.colon),i.alternate=this.parseMaybeAssign(t),this.finishNode(i,"ConditionalExpression")}return e},ee.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)},ee.parseExprOp=function(e,t,r,n,i){var s=this.state.type.binop;if(!(null==s||i&&this.match(j._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===j.logicalOR||o===j.logicalAND?"LogicalExpression":"BinaryExpression"),this.parseExprOp(a,t,r,n,i)}return e},ee.parseMaybeUnary=function(e){if(this.state.type.prefix){var t=this.startNode(),r=this.match(j.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!==j.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},ee.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)},ee.parseSubscripts=function(e,t,r,n){for(;;){if(!n&&this.eat(j.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(j.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(j.bracketL)){var a=this.startNodeAt(t,r);a.object=e,a.property=this.parseExpression(),a.computed=!0,this.expect(j.bracketR),e=this.finishNode(a,"MemberExpression")}else if(!n&&this.match(j.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(j.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(j.backQuote))return e;var l=this.startNodeAt(t,r);l.tag=e,l.quasi=this.parseTemplate(!0),e=this.finishNode(l,"TaggedTemplateExpression")}}},ee.parseCallExpressionArguments=function(e,t){for(var r=[],n=void 0,i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(j.comma),this.eat(e))break;this.match(j.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},ee.shouldParseAsyncArrow=function(){return this.match(j.arrow)},ee.parseAsyncArrowFromCallExpression=function(e,t){return this.expect(j.arrow),this.parseArrowExpression(e,t.arguments,!0)},ee.parseNoCallExpr=function(){var e=this.state.start,t=this.state.startLoc;return this.parseSubscripts(this.parseExprAtom(),e,t,!0)},ee.parseExprAtom=function(e){var t=this.state.potentialArrowAt===this.state.start,r=void 0;switch(this.state.type){case j._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(j.parenL)||this.match(j.bracketL)||this.match(j.dot)||this.unexpected(),this.match(j.parenL)&&"constructor"!==this.state.inMethod&&!this.options.allowSuperOutsideMethod&&this.raise(r.start,"super() outside of class constructor"),this.finishNode(r,"Super");case j._import:return this.hasPlugin("dynamicImport")||this.unexpected(),r=this.startNode(),this.next(),this.match(j.parenL)||this.unexpected(null,j.parenL),this.finishNode(r,"Import");case j._this:return r=this.startNode(),this.next(),this.finishNode(r,"ThisExpression");case j._yield:this.state.inGenerator&&this.unexpected();case j.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(j._function)&&!this.canInsertSemicolon())return this.next(),this.parseFunction(r,!1,!1,!0);if(t&&"async"===s.name&&this.match(j.name)){var a=[this.parseIdentifier()];return this.expect(j.arrow),this.parseArrowExpression(r,a,!0)}}return t&&!this.canInsertSemicolon()&&this.eat(j.arrow)?this.parseArrowExpression(r,[s]):s;case j._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 j.regexp:var c=this.state.value;return r=this.parseLiteral(c.value,"RegExpLiteral"),r.pattern=c.pattern,r.flags=c.flags,r;case j.num:return this.parseLiteral(this.state.value,"NumericLiteral");case j.string:return this.parseLiteral(this.state.value,"StringLiteral");case j._null:return r=this.startNode(),this.next(),this.finishNode(r,"NullLiteral");case j._true:case j._false:return r=this.startNode(),r.value=this.match(j._true),this.next(),this.finishNode(r,"BooleanLiteral");case j.parenL:return this.parseParenAndDistinguishExpression(null,null,t);case j.bracketL:return r=this.startNode(),this.next(),r.elements=this.parseExprList(j.bracketR,!0,e),this.toReferencedList(r.elements),this.finishNode(r,"ArrayExpression");case j.braceL:return this.parseObj(!1,e);case j._function:return this.parseFunctionExpression();case j.at:this.parseDecorators();case j._class:return r=this.startNode(),this.takeDecorators(r),this.parseClass(r,!1);case j._new:return this.parseNew();case j.backQuote:return this.parseTemplate(!1);case j.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()}},ee.parseFunctionExpression=function(){var e=this.startNode(),t=this.parseIdentifier(!0);return this.state.inGenerator&&this.eat(j.dot)&&this.hasPlugin("functionSent")?this.parseMetaProperty(e,t,"sent"):this.parseFunction(e,!1)},ee.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")},ee.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)},ee.parseParenExpression=function(){this.expect(j.parenL);var e=this.parseExpression();return this.expect(j.parenR),e},ee.parseParenAndDistinguishExpression=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;var n=void 0;this.expect(j.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(j.parenR);){if(l)l=!1;else if(this.expect(j.comma,u.start||null),this.match(j.parenR)){p=this.state.start;break}if(this.match(j.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(j.parenR);var y=this.startNodeAt(e,t);if(r&&this.shouldParseArrow()&&(y=this.parseArrow(y))){for(var g=a,b=Array.isArray(g),v=0,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},ee.shouldParseArrow=function(){return!this.canInsertSemicolon()},ee.parseArrow=function(e){if(this.eat(j.arrow))return e},ee.parseParenItem=function(e){return e},ee.parseNew=function(){var e=this.startNode(),t=this.parseIdentifier(!0);if(this.eat(j.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(j.parenL)?(e.arguments=this.parseExprList(j.parenR),this.toReferencedList(e.arguments)):e.arguments=[],this.finishNode(e,"NewExpression")},ee.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(j.backQuote),this.finishNode(t,"TemplateElement")},ee.parseTemplate=function(e){var t=this.startNode();this.next(),t.expressions=[];var r=this.parseTemplateElement(e);for(t.quasis=[r];!r.tail;)this.expect(j.dollarBraceL),t.expressions.push(this.parseExpression()),this.expect(j.braceR),t.quasis.push(r=this.parseTemplateElement(e));return this.next(),this.finishNode(t,"TemplateLiteral")},ee.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(j.braceR);){if(i)i=!1;else if(this.expect(j.comma),this.eat(j.braceR))break;for(;this.match(j.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(j.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(j.braceR))break;if(this.match(j.comma)&&this.lookahead().type===j.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(j.star)),!e&&this.isContextual("async")){u&&this.unexpected();var f=this.parseIdentifier();this.match(j.colon)||this.match(j.parenL)||this.match(j.braceR)||this.match(j.eq)||this.match(j.comma)?(o.key=f,o.computed=!1):(l=!0,this.hasPlugin("asyncGenerators")&&(u=this.eat(j.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")},ee.isGetterOrSetterMethod=function(e,t){return!t&&!e.computed&&"Identifier"===e.key.type&&("get"===e.key.name||"set"===e.key.name)&&(this.match(j.string)||this.match(j.num)||this.match(j.bracketL)||this.match(j.name)||this.state.type.keyword)},ee.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")}},ee.parseObjectMethod=function(e,t,r,n){return r||t||this.match(j.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},ee.parseObjectProperty=function(e,t,r,n,i){return this.eat(j.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(j.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"))},ee.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},ee.parsePropertyName=function(e){if(this.eat(j.bracketL))e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(j.bracketR);else{e.computed=!1;var t=this.state.inPropertyName;this.state.inPropertyName=!0,e.key=this.match(j.num)||this.match(j.string)?this.parseExprAtom():this.parseIdentifier(!0),this.state.inPropertyName=t}return e.key},ee.initFunction=function(e,t){e.id=null,e.generator=!1,e.expression=!1,e.async=!!t},ee.parseMethod=function(e,t,r){var n=this.state.inMethod;return this.state.inMethod=e.kind||!0,this.initFunction(e,r),this.expect(j.parenL),e.params=this.parseBindingList(j.parenR),e.generator=!!t,this.parseFunctionBody(e),this.state.inMethod=n,e},ee.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")},ee.isStrictBody=function(e,t){if(!t&&e.body.directives.length)for(var r=e.body.directives,n=Array.isArray(r),i=0,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},ee.parseFunctionBody=function(e,t){var r=t&&!this.match(j.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");for(var p=e.params,h=Array.isArray(p),f=0,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}},ee.parseExprList=function(e,t,r){for(var n=[],i=!0;!this.eat(e);){if(i)i=!1;else if(this.expect(j.comma),this.eat(e))break;n.push(this.parseExprListItem(t,r))}return n},ee.parseExprListItem=function(e,t,r){return e&&this.match(j.comma)?null:this.match(j.ellipsis)?this.parseSpread(t):this.parseMaybeAssign(!1,t,this.parseParenItem,r)},ee.parseIdentifier=function(e){var t=this.startNode();return e||this.checkReservedWord(this.state.value,this.state.start,!!this.state.type.keyword,!1),this.match(j.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")},ee.checkReservedWord=function(e,t,r,n){(this.isReservedWord(e)||r&&this.isKeyword(e))&&this.raise(t,e+" is a reserved word"),this.state.strict&&(g.strict(e)||n&&g.strictBind(e))&&this.raise(t,e+" is a reserved word in strict mode")},ee.parseAwait=function(e){return this.state.inAsync||this.unexpected(),this.match(j.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")},ee.parseYield=function(){var e=this.startNode();return this.next(),this.match(j.semi)||this.canInsertSemicolon()||!this.match(j.star)&&!this.state.type.startsExpr?(e.delegate=!1,e.argument=null):(e.delegate=this.eat(j.star),e.argument=this.parseMaybeAssign()),this.finishNode(e,"YieldExpression")};var te=K.prototype,re=["leadingComments","trailingComments","innerComments"],ne=function(){function e(t,r,n){w(this,e),this.type="",this.start=t,this.end=0,this.loc=new q(r),n&&(this.loc.filename=n)}return e.prototype.__clone=function(){var t=new e;for(var r in this)re.indexOf(r)<0&&(t[r]=this[r]);return t},e}();te.startNode=function(){return new ne(this.state.start,this.state.startLoc,this.filename)},te.startNodeAt=function(e,t){return new ne(e,t,this.filename)},te.finishNode=function(e,t){return p.call(this,e,t,this.state.lastTokEnd,this.state.lastTokEndLoc)},te.finishNodeAt=function(e,t,r,n){return p.call(this,e,t,r,n)},K.prototype.raise=function(e,t){var r=l(this.input,e);t+=" ("+r.line+":"+r.column+")";var n=new SyntaxError(t);throw n.pos=e,n.loc=r,n};var ie=K.prototype;ie.addComment=function(e){this.filename&&(e.loc.filename=this.filename),this.state.trailingComments.push(e),this.state.leadingComments.push(e)},ie.processComment=function(e){if(!("Program"===e.type&&e.body.length>0)){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=h(t);t.length>0&&o.trailingComments&&o.trailingComments[0].start>=e.end&&(i=o.trailingComments,o.trailingComments=null)}for(t.length>0&&h(t).start>=e.start&&(r=t.pop());t.length>0&&h(t).start>=e.start;)n=t.pop();if(!n&&r&&(n=r),r&&("ObjectProperty"===r.type||"CallExpression"===e.type)&&this.state.leadingComments.length>0&&h(this.state.leadingComments).start>=e.start&&this.state.commentPreviousNode){for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(r.trailingComments=this.state.leadingComments,this.state.leadingComments=[])}if(n){if(n.leadingComments)if(n!==e&&h(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(h(this.state.leadingComments).end<=e.start){if(this.state.commentPreviousNode)for(a=0;a<this.state.leadingComments.length;a++)this.state.leadingComments[a].end<this.state.commentPreviousNode.end&&(this.state.leadingComments.splice(a,1),a--);this.state.leadingComments.length>0&&(e.leadingComments=this.state.leadingComments,this.state.leadingComments=[])}else{for(s=0;s<this.state.leadingComments.length&&!(this.state.leadingComments[s].end>e.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&&h(i).end<=e.end?e.innerComments=i:e.trailingComments=i),t.push(e)}};var se=K.prototype;se.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},se.estreeParseLiteral=function(e){return this.parseLiteral(e,"Literal")},se.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 ae=function(e){e.extend("checkDeclaration",function(e){return function(t){f(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;o<s;o++)a[o-3]=arguments[o];e.call.apply(e,[this,t,r,n].concat(a))}}}),e.extend("checkPropClash",function(){return function(e,t){if(!e.computed&&f(e)){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)}}}),e.extend("isStrictBody",function(){return function(e,t){if(!t&&e.body.body.length>0)for(var r=e.body.body,n=Array.isArray(r),i=0,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("parseBlockBody",function(e){return function(t){for(var r=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];e.call.apply(e,[this,t].concat(i)),t.directives.reverse().forEach(function(e){t.body.unshift(r.directiveToStmt(e))}),delete t.directives}}),e.extend("parseClassMethod",function(e){return function(t){for(var r=arguments.length,n=Array(r>1?r-1:0),i=1;i<r;i++)n[i-1]=arguments[i];e.call.apply(e,[this,t].concat(n));var s=t.body;s[s.length-1].type="MethodDefinition"}}),e.extend("parseExprAtom",function(e){return function(){switch(this.state.type){case j.regexp:return this.estreeParseRegExpLiteral(this.state.value);case j.num:case j.string:return this.estreeParseLiteral(this.state.value);case j._null:return this.estreeParseLiteral(null);case j._true:return this.estreeParseLiteral(!0);case j._false:return this.estreeParseLiteral(!1);default:for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];return e.call.apply(e,[this].concat(r))}}}),e.extend("parseLiteral",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i.raw=i.extra.raw,delete i.extra,i}}),e.extend("parseMethod",function(e){return function(t){var r=this.startNode();r.kind=t.kind;for(var n=arguments.length,i=Array(n>1?n-1:0),s=1;s<n;s++)i[s-1]=arguments[s];return r=e.call.apply(e,[this,r].concat(i)),delete r.kind,t.value=this.finishNode(r,"FunctionExpression"),t}}),e.extend("parseObjectMethod",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&("method"===i.kind&&(i.kind="init"),i.type="Property"),i}}),e.extend("parseObjectProperty",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.call.apply(e,[this].concat(r));return i&&(i.kind="init",i.type="Property"),i}}),e.extend("toAssignable",function(e){return function(t,r){for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];if(f(t))return this.toAssignable.apply(this,[t.value,r].concat(i)),t;if("ObjectExpression"===t.type){t.type="ObjectPattern";for(var a=t.properties,o=Array.isArray(a),u=0,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;"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))}})},oe=["any","mixed","empty","bool","boolean","number","string","void","null"],ue=K.prototype;ue.flowParseTypeInitialiser=function(e){var t=this.state.inType;this.state.inType=!0,this.expect(e||j.colon);var r=this.flowParseType();return this.state.inType=t,r},ue.flowParsePredicate=function(){var e=this.startNode(),t=this.state.startLoc,r=this.state.start;this.expect(j.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(j.parenL)?(e.expression=this.parseExpression(),this.expect(j.parenR),this.finishNode(e,"DeclaredPredicate")):this.finishNode(e,"InferredPredicate")},ue.flowParseTypeAndPredicateInitialiser=function(){var e=this.state.inType;this.state.inType=!0,this.expect(j.colon);var t=null,r=null;return this.match(j.modulo)?(this.state.inType=e,r=this.flowParsePredicate()):(t=this.flowParseType(),this.state.inType=e,this.match(j.modulo)&&(r=this.flowParsePredicate())),[t,r]},ue.flowParseDeclareClass=function(e){return this.next(),this.flowParseInterfaceish(e,!0),this.finishNode(e,"DeclareClass")},ue.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(j.parenL);var i=this.flowParseFunctionTypeParams();r.params=i.params,r.rest=i.rest,this.expect(j.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")},ue.flowParseDeclare=function(e){return this.match(j._class)?this.flowParseDeclareClass(e):this.match(j._function)?this.flowParseDeclareFunction(e):this.match(j._var)?this.flowParseDeclareVariable(e):this.isContextual("module")?this.lookahead().type===j.dot?this.flowParseDeclareModuleExports(e):this.flowParseDeclareModule(e):this.isContextual("type")?this.flowParseDeclareTypeAlias(e):this.isContextual("interface")?this.flowParseDeclareInterface(e):void this.unexpected()},ue.flowParseDeclareVariable=function(e){return this.next(),e.id=this.flowParseTypeAnnotatableIdentifier(),this.semicolon(),this.finishNode(e,"DeclareVariable")},ue.flowParseDeclareModule=function(e){this.next(),this.match(j.string)?e.id=this.parseExprAtom():e.id=this.parseIdentifier();var t=e.body=this.startNode(),r=t.body=[];for(this.expect(j.braceL);!this.match(j.braceR);){var n=this.startNode();if(this.match(j._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(j.braceR),this.finishNode(t,"BlockStatement"),this.finishNode(e,"DeclareModule")},ue.flowParseDeclareModuleExports=function(e){return this.expectContextual("module"),this.expect(j.dot),this.expectContextual("exports"),e.typeAnnotation=this.flowParseTypeAnnotation(),this.semicolon(),this.finishNode(e,"DeclareModuleExports")},ue.flowParseDeclareTypeAlias=function(e){return this.next(),this.flowParseTypeAlias(e),this.finishNode(e,"DeclareTypeAlias")},ue.flowParseDeclareInterface=function(e){return this.next(),this.flowParseInterfaceish(e),this.finishNode(e,"DeclareInterface")},ue.flowParseInterfaceish=function(e){if(e.id=this.parseIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.extends=[],e.mixins=[],this.eat(j._extends))do{e.extends.push(this.flowParseInterfaceExtends())}while(this.eat(j.comma));if(this.isContextual("mixins")){this.next();do{e.mixins.push(this.flowParseInterfaceExtends())}while(this.eat(j.comma))}e.body=this.flowParseObjectType(!0,!1,!1)},ue.flowParseInterfaceExtends=function(){var e=this.startNode();return e.id=this.flowParseQualifiedTypeIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterInstantiation():e.typeParameters=null,this.finishNode(e,"InterfaceExtends")},ue.flowParseInterface=function(e){return this.flowParseInterfaceish(e,!1),this.finishNode(e,"InterfaceDeclaration")},ue.flowParseRestrictedIdentifier=function(e){return oe.indexOf(this.state.value)>-1&&this.raise(this.state.start,"Cannot overwrite primitive type "+this.state.value),this.parseIdentifier(e)},ue.flowParseTypeAlias=function(e){return e.id=this.flowParseRestrictedIdentifier(),this.isRelational("<")?e.typeParameters=this.flowParseTypeParameterDeclaration():e.typeParameters=null,e.right=this.flowParseTypeInitialiser(j.eq),this.semicolon(),this.finishNode(e,"TypeAlias")},ue.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(j.eq)&&(this.eat(j.eq),e.default=this.flowParseType()),this.finishNode(e,"TypeParameter")},ue.flowParseTypeParameterDeclaration=function(){var e=this.state.inType,t=this.startNode();t.params=[],this.state.inType=!0,this.isRelational("<")||this.match(j.jsxTagStart)?this.next():this.unexpected();do{t.params.push(this.flowParseTypeParameter()),this.isRelational(">")||this.expect(j.comma)}while(!this.isRelational(">"));return this.expectRelational(">"),this.state.inType=e,this.finishNode(t,"TypeParameterDeclaration")},ue.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(j.comma);return this.expectRelational(">"),this.state.inType=t,this.finishNode(e,"TypeParameterInstantiation")},ue.flowParseObjectPropertyKey=function(){return this.match(j.num)||this.match(j.string)?this.parseExprAtom():this.parseIdentifier(!0)},ue.flowParseObjectTypeIndexer=function(e,t,r){return e.static=t,this.expect(j.bracketL),this.lookahead().type===j.colon?(e.id=this.flowParseObjectPropertyKey(),e.key=this.flowParseTypeInitialiser()):(e.id=null,e.key=this.flowParseType()),this.expect(j.bracketR),e.value=this.flowParseTypeInitialiser(),e.variance=r,this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeIndexer")},ue.flowParseObjectTypeMethodish=function(e){for(e.params=[],e.rest=null,e.typeParameters=null,this.isRelational("<")&&(e.typeParameters=this.flowParseTypeParameterDeclaration()),this.expect(j.parenL);!this.match(j.parenR)&&!this.match(j.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(j.parenR)||this.expect(j.comma);return this.eat(j.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),this.expect(j.parenR),e.returnType=this.flowParseTypeInitialiser(),this.finishNode(e,"FunctionTypeAnnotation")},ue.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")},ue.flowParseObjectTypeCallProperty=function(e,t){var r=this.startNode();return e.static=t,e.value=this.flowParseObjectTypeMethodish(r),this.flowObjectTypeSemicolon(),this.finishNode(e,"ObjectTypeCallProperty")},ue.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(j.braceBarL)?(this.expect(j.braceBarL),u=j.braceBarR,l=!0):(this.expect(j.braceL),u=j.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!==j.colon&&(this.next(),o=!0);var f=this.state.start,d=this.flowParseVariance();this.match(j.bracketL)?i.indexers.push(this.flowParseObjectTypeIndexer(s,o,d)):this.match(j.parenL)||this.isRelational("<")?(d&&this.unexpected(f),i.callProperties.push(this.flowParseObjectTypeCallProperty(s,o))):this.match(j.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(j.ellipsis),s.argument=this.flowParseType(),this.flowObjectTypeSemicolon(),i.properties.push(this.finishNode(s,"ObjectTypeSpreadProperty"))):(a=this.flowParseObjectPropertyKey(),this.isRelational("<")||this.match(j.parenL)?(d&&this.unexpected(d.start),i.properties.push(this.flowParseObjectTypeMethod(p,h,o,a))):(this.eat(j.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},ue.flowObjectTypeSemicolon=function(){this.eat(j.semi)||this.eat(j.comma)||this.match(j.braceR)||this.match(j.braceBarR)||this.unexpected()},ue.flowParseQualifiedTypeIdentifier=function(e,t,r){e=e||this.state.start,t=t||this.state.startLoc;for(var n=r||this.parseIdentifier();this.eat(j.dot);){var i=this.startNodeAt(e,t);i.qualification=n,i.id=this.parseIdentifier(),n=this.finishNode(i,"QualifiedTypeIdentifier")}return n},ue.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")},ue.flowParseTypeofType=function(){var e=this.startNode();return this.expect(j._typeof),e.argument=this.flowParsePrimaryType(),this.finishNode(e,"TypeofTypeAnnotation")},ue.flowParseTupleType=function(){var e=this.startNode();for(e.types=[],this.expect(j.bracketL);this.state.pos<this.input.length&&!this.match(j.bracketR)&&(e.types.push(this.flowParseType()),!this.match(j.bracketR));)this.expect(j.comma);return this.expect(j.bracketR),this.finishNode(e,"TupleTypeAnnotation")},ue.flowParseFunctionTypeParam=function(){var e=null,t=!1,r=null,n=this.startNode(),i=this.lookahead();return i.type===j.colon||i.type===j.question?(e=this.parseIdentifier(),this.eat(j.question)&&(t=!0),r=this.flowParseTypeInitialiser()):r=this.flowParseType(),n.name=e,n.optional=t,n.typeAnnotation=r,this.finishNode(n,"FunctionTypeParam")},ue.reinterpretTypeAsFunctionTypeParam=function(e){var t=this.startNodeAt(e.start,e.loc);return t.name=null,t.optional=!1,t.typeAnnotation=e,this.finishNode(t,"FunctionTypeParam")},ue.flowParseFunctionTypeParams=function(){for(var e={params:arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],rest:null};!this.match(j.parenR)&&!this.match(j.ellipsis);)e.params.push(this.flowParseFunctionTypeParam()),this.match(j.parenR)||this.expect(j.comma);return this.eat(j.ellipsis)&&(e.rest=this.flowParseFunctionTypeParam()),e},ue.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)}},ue.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 j.name:return this.flowIdentToTypeAnnotation(e,t,r,this.parseIdentifier());case j.braceL:return this.flowParseObjectType(!1,!1,!0);case j.braceBarL:return this.flowParseObjectType(!1,!0,!0);case j.bracketL:return this.flowParseTupleType();case j.relational:if("<"===this.state.value)return r.typeParameters=this.flowParseTypeParameterDeclaration(),this.expect(j.parenL),n=this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(j.parenR),this.expect(j.arrow),r.returnType=this.flowParseType(),this.finishNode(r,"FunctionTypeAnnotation");break;case j.parenL:if(this.next(),!this.match(j.parenR)&&!this.match(j.ellipsis))if(this.match(j.name)){var o=this.lookahead().type;s=o!==j.question&&o!==j.colon}else s=!0;if(s){if(this.state.noAnonFunctionType=!1,i=this.flowParseType(),this.state.noAnonFunctionType=a,this.state.noAnonFunctionType||!(this.match(j.comma)||this.match(j.parenR)&&this.lookahead().type===j.arrow))return this.expect(j.parenR),i;this.eat(j.comma)}return n=i?this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(i)]):this.flowParseFunctionTypeParams(),r.params=n.params,r.rest=n.rest,this.expect(j.parenR),this.expect(j.arrow),r.returnType=this.flowParseType(),r.typeParameters=null,this.finishNode(r,"FunctionTypeAnnotation");case j.string:return this.parseLiteral(this.state.value,"StringLiteralTypeAnnotation");case j._true:case j._false:return r.value=this.match(j._true),this.next(),this.finishNode(r,"BooleanLiteralTypeAnnotation");case j.plusMin:if("-"===this.state.value)return this.next(),this.match(j.num)||this.unexpected(null,"Unexpected token, expected number"),this.parseLiteral(-this.state.value,"NumericLiteralTypeAnnotation",r.start,r.loc.start);this.unexpected();case j.num:return this.parseLiteral(this.state.value,"NumericLiteralTypeAnnotation");case j._null:return r.value=this.match(j._null),this.next(),this.finishNode(r,"NullLiteralTypeAnnotation");case j._this:return r.value=this.match(j._this),this.next(),this.finishNode(r,"ThisTypeAnnotation");case j.star:return this.next(),this.finishNode(r,"ExistentialTypeParam");default:if("typeof"===this.state.type.keyword)return this.flowParseTypeofType()}this.unexpected()},ue.flowParsePostfixType=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.flowParsePrimaryType();!this.canInsertSemicolon()&&this.match(j.bracketL);){var n=this.startNodeAt(e,t);n.elementType=r,this.expect(j.bracketL),this.expect(j.bracketR),r=this.finishNode(n,"ArrayTypeAnnotation")}return r},ue.flowParsePrefixType=function(){var e=this.startNode();return this.eat(j.question)?(e.typeAnnotation=this.flowParsePrefixType(),this.finishNode(e,"NullableTypeAnnotation")):this.flowParsePostfixType()},ue.flowParseAnonFunctionWithoutParens=function(){var e=this.flowParsePrefixType();if(!this.state.noAnonFunctionType&&this.eat(j.arrow)){var t=this.startNodeAt(e.start,e.loc);return t.params=[this.reinterpretTypeAsFunctionTypeParam(e)],t.rest=null,t.returnType=this.flowParseType(),t.typeParameters=null,this.finishNode(t,"FunctionTypeAnnotation")}return e},ue.flowParseIntersectionType=function(){var e=this.startNode();this.eat(j.bitwiseAND);var t=this.flowParseAnonFunctionWithoutParens();for(e.types=[t];this.eat(j.bitwiseAND);)e.types.push(this.flowParseAnonFunctionWithoutParens());return 1===e.types.length?t:this.finishNode(e,"IntersectionTypeAnnotation")},ue.flowParseUnionType=function(){var e=this.startNode();this.eat(j.bitwiseOR);var t=this.flowParseIntersectionType();for(e.types=[t];this.eat(j.bitwiseOR);)e.types.push(this.flowParseIntersectionType());return 1===e.types.length?t:this.finishNode(e,"UnionTypeAnnotation")},ue.flowParseType=function(){var e=this.state.inType;this.state.inType=!0;var t=this.flowParseUnionType();return this.state.inType=e,t},ue.flowParseTypeAnnotation=function(){var e=this.startNode();return e.typeAnnotation=this.flowParseTypeInitialiser(),this.finishNode(e,"TypeAnnotation")},ue.flowParseTypeAndPredicateAnnotation=function(){var e=this.startNode(),t=this.flowParseTypeAndPredicateInitialiser();return e.typeAnnotation=t[0],e.predicate=t[1],this.finishNode(e,"TypeAnnotation")},ue.flowParseTypeAnnotatableIdentifier=function(){var e=this.flowParseRestrictedIdentifier();return this.match(j.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(e,e.type)),e},ue.typeCastToParameter=function(e){return e.expression.typeAnnotation=e.typeAnnotation,this.finishNodeAt(e.expression,e.expression.type,e.typeAnnotation.end,e.typeAnnotation.loc.end)},ue.flowParseVariance=function(){var e=null;return this.match(j.plusMin)&&("+"===this.state.value?e="plus":"-"===this.state.value&&(e="minus"),this.next()),e};var le=function(e){e.extend("parseFunctionBody",function(e){return function(t,r){return this.match(j.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(j.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(j._class)||this.match(j.name)||this.match(j._function)||this.match(j._var))return this.flowParseDeclare(t)}else if(this.match(j.name)){if("interface"===r.name)return this.flowParseInterface(t);if("type"===r.name)return this.flowParseTypeAlias(t)}return e.call(this,t,r)}}),e.extend("shouldParseExportDeclaration",function(e){return function(){return this.isContextual("type")||this.isContextual("interface")||e.call(this)}}),e.extend("isExportDefaultSpecifier",function(e){return function(){return(!this.match(j.name)||"type"!==this.state.value&&"interface"!==this.state.value)&&e.call(this)}}),e.extend("parseConditional",function(e){return function(t,r,n,i,s){if(s&&this.match(j.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(j.question)&&(t.optional=!0),this.match(j.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(j.braceL)?(t.specifiers=this.parseExportSpecifiers(),this.parseExportFrom(t),null):this.flowParseTypeAlias(r)}if(this.isContextual("interface")){t.exportKind="type";var n=this.startNode();return this.next(),this.flowParseInterface(n)}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(j.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;i<t.length;i++){var s=t[i];s&&"TypeCastExpression"===s.type&&(t[i]=this.typeCastToParameter(s))}return e.call(this,t,r,n)}}),e.extend("toReferencedList",function(){return function(e){for(var t=0;t<e.length;t++){var r=e[t];r&&r._exprListItem&&"TypeCastExpression"===r.type&&this.raise(r.start,"Unexpected type cast")}return e}}),e.extend("parseExprListItem",function(e){return function(){for(var t=this.startNode(),r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];var s=e.call.apply(e,[this].concat(n));return this.match(j.colon)?(t._exprListItem=!0,t.expression=s,t.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t,"TypeCastExpression")):s}}),e.extend("checkLVal",function(e){return function(t){if("TypeCastExpression"!==t.type)return e.apply(this,arguments)}}),e.extend("parseClassProperty",function(e){return function(t){return delete t.variancePos,this.match(j.colon)&&(t.typeAnnotation=this.flowParseTypeAnnotation()),e.call(this,t)}}),e.extend("isClassMethod",function(e){return function(){return this.isRelational("<")||e.call(this)}}),e.extend("isClassProperty",function(e){return function(){return this.match(j.colon)||e.call(this)}}),e.extend("isNonstaticConstructor",function(e){return function(t){return!this.match(j.colon)&&e.call(this,t)}}),e.extend("parseClassMethod",function(e){return function(t,r){r.variance&&this.unexpected(r.variancePos),delete r.variance,delete r.variancePos,this.isRelational("<")&&(r.typeParameters=this.flowParseTypeParameterDeclaration());for(var n=arguments.length,i=Array(n>2?n-2:0),s=2;s<n;s++)i[s-2]=arguments[s];e.call.apply(e,[this,t,r].concat(i))}}),e.extend("parseClassSuper",function(e){return function(t,r){if(e.call(this,t,r),t.superClass&&this.isRelational("<")&&(t.superTypeParameters=this.flowParseTypeParameterInstantiation()),this.isContextual("implements")){this.next();var n=t.implements=[];do{var i=this.startNode();i.id=this.parseIdentifier(),this.isRelational("<")?i.typeParameters=this.flowParseTypeParameterInstantiation():i.typeParameters=null,n.push(this.finishNode(i,"ClassImplements"))}while(this.eat(j.comma))}}}),e.extend("parsePropertyName",function(e){return function(t){var r=this.state.start,n=this.flowParseVariance(),i=e.call(this,t);return t.variance=n,t.variancePos=r,i}}),e.extend("parseObjPropValue",function(e){return function(t){t.variance&&this.unexpected(t.variancePos),delete t.variance,delete t.variancePos;var r=void 0;this.isRelational("<")&&(r=this.flowParseTypeParameterDeclaration(),this.match(j.parenL)||this.unexpected()),e.apply(this,arguments),r&&((t.value||t).typeParameters=r)}}),e.extend("parseAssignableListItemTypes",function(){return function(e){return this.eat(j.question)&&(e.optional=!0),this.match(j.colon)&&(e.typeAnnotation=this.flowParseTypeAnnotation()),this.finishNode(e,e.type),e}}),e.extend("parseMaybeDefault",function(e){return function(){for(var t=arguments.length,r=Array(t),n=0;n<t;n++)r[n]=arguments[n];var i=e.apply(this,r);return"AssignmentPattern"===i.type&&i.typeAnnotation&&i.right.start<i.typeAnnotation.start&&this.raise(i.typeAnnotation.start,"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`"),i}}),e.extend("parseImportSpecifiers",function(e){return function(t){t.importKind="value";var r=null;if(this.match(j._typeof)?r="typeof":this.isContextual("type")&&(r="type"),r){var n=this.lookahead();(n.type===j.name&&"from"!==n.value||n.type===j.braceL||n.type===j.star)&&(this.next(),t.importKind=r)}e.call(this,t)}}),e.extend("parseImportSpecifier",function(){return function(e){var t=this.startNode(),r=this.state.start,n=this.parseIdentifier(!0),i=null;"type"===n.name?i="type":"typeof"===n.name&&(i="typeof");var s=!1;if(this.isContextual("as")){var a=this.parseIdentifier(!0);null===i||this.match(j.name)||this.state.type.keyword?(t.imported=n,t.importKind=null,t.local=this.parseIdentifier()):(t.imported=a,t.importKind=i,t.local=a.__clone())}else null!==i&&(this.match(j.name)||this.state.type.keyword)?(t.imported=this.parseIdentifier(!0),t.importKind=i,this.eatContextual("as")?t.local=this.parseIdentifier():(s=!0,t.local=t.imported.__clone())):(s=!0,t.imported=n,t.importKind=null,t.local=t.imported.__clone());"type"!==e.importKind&&"typeof"!==e.importKind||"type"!==t.importKind&&"typeof"!==t.importKind||this.raise(r,"`The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements`"),s&&this.checkReservedWord(t.local.name,t.start,!0,!0),this.checkLVal(t.local,!0,void 0,"import specifier"),e.specifiers.push(this.finishNode(t,"ImportSpecifier"))}}),e.extend("parseFunctionParams",function(e){return function(t){this.isRelational("<")&&(t.typeParameters=this.flowParseTypeParameterDeclaration()),e.call(this,t)}}),e.extend("parseVarHead",function(e){return function(t){e.call(this,t),this.match(j.colon)&&(t.id.typeAnnotation=this.flowParseTypeAnnotation(),this.finishNode(t.id,t.id.type))}}),e.extend("parseAsyncArrowFromCallExpression",function(e){return function(t,r){if(this.match(j.colon)){var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0,t.returnType=this.flowParseTypeAnnotation(),this.state.noAnonFunctionType=n}return e.call(this,t,r)}}),e.extend("shouldParseAsyncArrow",function(e){return function(){return this.match(j.colon)||e.call(this)}}),e.extend("parseMaybeAssign",function(e){return function(){for(var t=null,r=arguments.length,n=Array(r),i=0;i<r;i++)n[i]=arguments[i];if(j.jsxTagStart&&this.match(j.jsxTagStart)){var s=this.state.clone();try{return e.apply(this,n)}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=s,this.state.context.length-=2,t=e}}if(null!=t||this.isRelational("<")){var a=void 0,o=void 0;try{o=this.flowParseTypeParameterDeclaration(),(a=e.apply(this,n)).typeParameters=o,a.start=o.start,a.loc.start=o.loc.start}catch(e){throw t||e}if("ArrowFunctionExpression"===a.type)return a;if(null!=t)throw t;this.raise(o.start,"Expected an arrow function after this type parameter declaration")}return e.apply(this,n)}}),e.extend("parseArrow",function(e){return function(t){if(this.match(j.colon)){var r=this.state.clone();try{var n=this.state.noAnonFunctionType;this.state.noAnonFunctionType=!0;var i=this.flowParseTypeAndPredicateAnnotation();this.state.noAnonFunctionType=n,this.canInsertSemicolon()&&this.unexpected(),this.match(j.arrow)||this.unexpected(),t.returnType=i}catch(e){if(!(e instanceof SyntaxError))throw e;this.state=r}}return e.call(this,t)}}),e.extend("shouldParseArrow",function(e){return function(){return this.match(j.colon)||e.call(this)}})},ce=String.fromCodePoint;if(!ce){var pe=String.fromCharCode,he=Math.floor;ce=function(){var e=[],t=void 0,r=void 0,n=-1,i=arguments.length;if(!i)return"";for(var s="";++n<i;){var a=Number(arguments[n]);if(!isFinite(a)||a<0||a>1114111||he(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+=pe.apply(null,e),e.length=0)}return s}}var fe=ce,de={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:"ā™¦"},me=/^[\da-fA-F]+$/,ye=/^\d+$/;V.j_oTag=new R("<tag",!1),V.j_cTag=new R("</tag",!1),V.j_expr=new R("<tag>...</tag>",!0,!0),j.jsxName=new P("jsxName"),j.jsxText=new P("jsxText",{beforeExpr:!0}),j.jsxTagStart=new P("jsxTagStart",{startsExpr:!0}),j.jsxTagEnd=new P("jsxTagEnd"),j.jsxTagStart.updateContext=function(){this.state.context.push(V.j_expr),this.state.context.push(V.j_oTag),this.state.exprAllowed=!1},j.jsxTagEnd.updateContext=function(e){var t=this.state.context.pop();t===V.j_oTag&&e===j.slash||t===V.j_cTag?(this.state.context.pop(),this.state.exprAllowed=this.curContext()===V.j_expr):this.state.exprAllowed=!0};var ge=K.prototype;ge.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(j.jsxTagStart)):this.getTokenFromCode(r):(e+=this.input.slice(t,this.state.pos),this.finishToken(j.jsxText,e));case 38:e+=this.input.slice(t,this.state.pos),e+=this.jsxReadEntity(),t=this.state.pos;break;default:u(r)?(e+=this.input.slice(t,this.state.pos),e+=this.jsxReadNewLine(!0),t=this.state.pos):++this.state.pos}}},ge.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},ge.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):u(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(j.string,t)},ge.jsxReadEntity=function(){for(var e="",t=0,r=void 0,n=this.input[this.state.pos],i=++this.state.pos;this.state.pos<this.input.length&&t++<10;){if(";"===(n=this.input[this.state.pos++])){"#"===e[0]?"x"===e[1]?(e=e.substr(2),me.test(e)&&(r=fe(parseInt(e,16)))):(e=e.substr(1),ye.test(e)&&(r=fe(parseInt(e,10)))):r=de[e];break}e+=n}return r||(this.state.pos=i,"&")},ge.jsxReadWord=function(){var e=void 0,t=this.state.pos;do{e=this.input.charCodeAt(++this.state.pos)}while(a(e)||45===e);return this.finishToken(j.jsxName,this.input.slice(t,this.state.pos))},ge.jsxParseIdentifier=function(){var e=this.startNode();return this.match(j.jsxName)?e.name=this.state.value:this.state.type.keyword?e.name=this.state.type.keyword:this.unexpected(),this.next(),this.finishNode(e,"JSXIdentifier")},ge.jsxParseNamespacedName=function(){var e=this.state.start,t=this.state.startLoc,r=this.jsxParseIdentifier();if(!this.eat(j.colon))return r;var n=this.startNodeAt(e,t);return n.namespace=r,n.name=this.jsxParseIdentifier(),this.finishNode(n,"JSXNamespacedName")},ge.jsxParseElementName=function(){for(var e=this.state.start,t=this.state.startLoc,r=this.jsxParseNamespacedName();this.eat(j.dot);){var n=this.startNodeAt(e,t);n.object=r,n.property=this.jsxParseIdentifier(),r=this.finishNode(n,"JSXMemberExpression")}return r},ge.jsxParseAttributeValue=function(){var e=void 0;switch(this.state.type){case j.braceL:if("JSXEmptyExpression"!==(e=this.jsxParseExpressionContainer()).expression.type)return e;this.raise(e.start,"JSX attributes must only be assigned a non-empty expression");case j.jsxTagStart:case j.string:return e=this.parseExprAtom(),e.extra=null,e;default:this.raise(this.state.start,"JSX value should be either an expression or a quoted JSX text")}},ge.jsxParseEmptyExpression=function(){var e=this.startNodeAt(this.state.lastTokEnd,this.state.lastTokEndLoc);return this.finishNodeAt(e,"JSXEmptyExpression",this.state.start,this.state.startLoc)},ge.jsxParseSpreadChild=function(){var e=this.startNode();return this.expect(j.braceL),this.expect(j.ellipsis),e.expression=this.parseExpression(),this.expect(j.braceR),this.finishNode(e,"JSXSpreadChild")},ge.jsxParseExpressionContainer=function(){var e=this.startNode();return this.next(),this.match(j.braceR)?e.expression=this.jsxParseEmptyExpression():e.expression=this.parseExpression(),this.expect(j.braceR),this.finishNode(e,"JSXExpressionContainer")},ge.jsxParseAttribute=function(){var e=this.startNode();return this.eat(j.braceL)?(this.expect(j.ellipsis),e.argument=this.parseMaybeAssign(),this.expect(j.braceR),this.finishNode(e,"JSXSpreadAttribute")):(e.name=this.jsxParseNamespacedName(),e.value=this.eat(j.eq)?this.jsxParseAttributeValue():null,this.finishNode(e,"JSXAttribute"))},ge.jsxParseOpeningElementAt=function(e,t){var r=this.startNodeAt(e,t);for(r.attributes=[],r.name=this.jsxParseElementName();!this.match(j.slash)&&!this.match(j.jsxTagEnd);)r.attributes.push(this.jsxParseAttribute());return r.selfClosing=this.eat(j.slash),this.expect(j.jsxTagEnd),this.finishNode(r,"JSXOpeningElement")},ge.jsxParseClosingElementAt=function(e,t){var r=this.startNodeAt(e,t);return r.name=this.jsxParseElementName(),this.expect(j.jsxTagEnd),this.finishNode(r,"JSXClosingElement")},ge.jsxParseElementAt=function(e,t){var r=this.startNodeAt(e,t),n=[],i=this.jsxParseOpeningElementAt(e,t),s=null;if(!i.selfClosing){e:for(;;)switch(this.state.type){case j.jsxTagStart:if(e=this.state.start,t=this.state.startLoc,this.next(),this.eat(j.slash)){s=this.jsxParseClosingElementAt(e,t);break e}n.push(this.jsxParseElementAt(e,t));break;case j.jsxText:n.push(this.parseExprAtom());break;case j.braceL:this.lookahead().type===j.ellipsis?n.push(this.jsxParseSpreadChild()):n.push(this.jsxParseExpressionContainer());break;default:this.unexpected()}d(s.name)!==d(i.name)&&this.raise(s.start,"Expected corresponding JSX closing tag for <"+d(i.name)+">")}return r.openingElement=i,r.closingElement=s,r.children=n,this.match(j.relational)&&"<"===this.state.value&&this.raise(this.state.start,"Adjacent JSX elements must be wrapped in an enclosing tag"),this.finishNode(r,"JSXElement")},ge.jsxParseElement=function(){var e=this.state.start,t=this.state.startLoc;return this.next(),this.jsxParseElementAt(e,t)};var be=function(e){e.extend("parseExprAtom",function(e){return function(t){if(this.match(j.jsxText)){var r=this.parseLiteral(this.state.value,"JSXText");return r.extra=null,r}return this.match(j.jsxTagStart)?this.jsxParseElement():e.call(this,t)}}),e.extend("readToken",function(e){return function(t){if(this.state.inPropertyName)return e.call(this,t);var r=this.curContext();if(r===V.j_expr)return this.jsxReadToken();if(r===V.j_oTag||r===V.j_cTag){if(s(t))return this.jsxReadWord();if(62===t)return++this.state.pos,this.finishToken(j.jsxTagEnd);if((34===t||39===t)&&r===V.j_oTag)return this.jsxReadString(t)}return 60===t&&this.state.exprAllowed?(++this.state.pos,this.finishToken(j.jsxTagStart)):e.call(this,t)}}),e.extend("updateContext",function(e){return function(t){if(this.match(j.braceL)){var r=this.curContext();r===V.j_oTag?this.state.context.push(V.braceExpression):r===V.j_expr?this.state.context.push(V.templateQuasi):e.call(this,t),this.state.exprAllowed=!0}else{if(!this.match(j.slash)||t!==j.jsxTagStart)return e.call(this,t);this.state.context.length-=2,this.state.context.push(V.j_cTag),this.state.exprAllowed=!1}}})};J.estree=ae,J.flow=le,J.jsx=be,r.parse=m,r.parseExpression=y,r.tokTypes=j},{}],178:[function(e,t,r){function n(e,t,r){e instanceof RegExp&&(e=i(e,r)),t instanceof RegExp&&(t=i(t,r));var n=s(e,t,r);return n&&{start:n[0],end:n[1],pre:r.slice(0,n[0]),body:r.slice(n[0]+e.length,n[1]),post:r.slice(n[1]+t.length)}}function i(e,t){var r=t.match(e);return r?r[0]:null}function s(e,t,r){var n,i,s,a,o,u=r.indexOf(e),l=r.indexOf(t,u+1),c=u;if(u>=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())<s&&(s=i,a=l),l=r.indexOf(t,c+1)),c=u<l&&u>=0?u:l;n.length&&(o=[s,a])}return o}t.exports=n,n.range=s},{}],179:[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 3*e.length/4-n(e)}function s(e){var t,r,i,s,a,o,u=e.length;a=n(e),o=new p(3*u/4-a),i=a>0?u-4:u;var l=0;for(t=0,r=0;t<i;t+=4,r+=3)s=c[e.charCodeAt(t)]<<18|c[e.charCodeAt(t+1)]<<12|c[e.charCodeAt(t+2)]<<6|c[e.charCodeAt(t+3)],o[l++]=s>>16&255,o[l++]=s>>8&255,o[l++]=255&s;return 2===a?(s=c[e.charCodeAt(t)]<<2|c[e.charCodeAt(t+1)]>>4,o[l++]=255&s):1===a&&(s=c[e.charCodeAt(t)]<<10|c[e.charCodeAt(t+1)]<<4|c[e.charCodeAt(t+2)]>>2,o[l++]=s>>8&255,o[l++]=255&s),o}function a(e){return l[e>>18&63]+l[e>>12&63]+l[e>>6&63]+l[63&e]}function o(e,t,r){for(var n,i=[],s=t;s<r;s+=3)n=(e[s]<<16)+(e[s+1]<<8)+e[s+2],i.push(a(n));return i.join("")}function u(e){for(var t,r=e.length,n=r%3,i="",s=[],a=0,u=r-n;a<u;a+=16383)s.push(o(e,a,a+16383>u?u:a+16383));return 1===n?(t=e[r-1],i+=l[t>>2],i+=l[t<<4&63],i+="=="):2===n&&(t=(e[r-2]<<8)+e[r-1],i+=l[t>>10],i+=l[t>>4&63],i+=l[t<<2&63],i+="="),s.push(i),s.join("")}r.byteLength=i,r.toByteArray=s,r.fromByteArray=u;for(var l=[],c=[],p="undefined"!=typeof Uint8Array?Uint8Array:Array,h="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",f=0,d=h.length;f<d;++f)l[f]=h[f],c[h.charCodeAt(f)]=f;c["-".charCodeAt(0)]=62,c["_".charCodeAt(0)]=63},{}],180:[function(e,t,r){function n(e){return parseInt(e,10)==e?parseInt(e,10):e.charCodeAt(0)}function i(e){return e.split("\\\\").join(m).split("\\{").join(y).split("\\}").join(g).split("\\,").join(b).split("\\.").join(v)}function s(e){return e.split(m).join("\\").split(y).join("{").split(g).join("}").split(b).join(",").split(v).join(".")}function a(e){if(!e)return[""];var t=[],r=d("{","}",e);if(!r)return e.split(",");var n=r.pre,i=r.body,s=r.post,o=n.split(",");o[o.length-1]+="{"+i+"}";var u=a(s);return s.length&&(o[o.length-1]+=u.shift(),o.push.apply(o,u)),t.push.apply(t,o),t}function o(e){return e?("{}"===e.substr(0,2)&&(e="\\{\\}"+e.substr(2)),h(i(e),!0).map(s)):[]}function u(e){return"{"+e+"}"}function l(e){return/^-?0\d/.test(e)}function c(e,t){return e<=t}function p(e,t){return e>=t}function h(e,t){var r=[],i=d("{","}",e);if(!i||/\$$/.test(i.pre))return[e];var s=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(i.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(i.body),m=s||o,y=i.body.indexOf(",")>=0;if(!m&&!y)return i.post.match(/,.*\}/)?(e=i.pre+"{"+i.body+g+i.post,h(e)):[e];var b;if(m)b=i.body.split(/\.\./);else if(1===(b=a(i.body)).length&&1===(b=h(b[0],!1).map(u)).length)return(E=i.post.length?h(i.post,!1):[""]).map(function(e){return i.pre+b[0]+e});var v,x=i.pre,E=i.post.length?h(i.post,!1):[""];if(m){var A=n(b[0]),D=n(b[1]),C=Math.max(b[0].length,b[1].length),S=3==b.length?Math.abs(n(b[2])):1,_=c;D<A&&(S*=-1,_=p);var w=b.some(l);v=[];for(var k=A;_(k,D);k+=S){var F;if(o)"\\"===(F=String.fromCharCode(k))&&(F="");else if(F=String(k),w){var T=C-F.length;if(T>0){var P=new Array(T+1).join("0");F=k<0?"-"+P+F.slice(1):P+F}}v.push(F)}}else v=f(b,function(e){return h(e,!1)});for(var B=0;B<v.length;B++)for(var O=0;O<E.length;O++){var j=x+v[B]+E[O];(!t||m||j)&&r.push(j)}return r}var f=e("concat-map"),d=e("balanced-match");t.exports=o;var m="\0SLASH"+Math.random()+"\0",y="\0OPEN"+Math.random()+"\0",g="\0CLOSE"+Math.random()+"\0",b="\0COMMA"+Math.random()+"\0",v="\0PERIOD"+Math.random()+"\0"},{"balanced-match":178,"concat-map":185}],181:[function(e,t,r){},{}],182:[function(e,t,r){arguments[4][181][0].apply(r,arguments)},{dup:181}],183:[function(e,t,r){"use strict";function n(e){if(e>Y)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 u(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 e instanceof ArrayBuffer?p(e,t,r):"string"==typeof e?l(e,t):h(e)}function a(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function o(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)}function u(e){return a(e),n(e<0?0:0|f(e))}function l(e,t){if("string"==typeof t&&""!==t||(t="utf8"),!i.isEncoding(t))throw new TypeError('"encoding" must be a valid string encoding');var r=0|m(e,t),s=n(r),a=s.write(e,t);return a!==r&&(s=s.slice(0,a)),s}function c(e){for(var t=e.length<0?0:0|f(e.length),r=n(t),i=0;i<t;i+=1)r[i]=255&e[i];return r}function p(e,t,r){if(t<0||e.byteLength<t)throw new RangeError("'offset' is out of bounds");if(e.byteLength<t+(r||0))throw new RangeError("'length' is out of bounds");var n;return n=void 0===t&&void 0===r?new Uint8Array(e):void 0===r?new Uint8Array(e,t):new Uint8Array(e,t,r),n.__proto__=i.prototype,n}function h(e){if(i.isBuffer(e)){var t=0|f(e.length),r=n(t);return 0===r.length?r:(e.copy(r,0,0,t),r)}if(e){if(J(e)||"length"in e)return"number"!=typeof e.length||W(e.length)?n(0):c(e);if("Buffer"===e.type&&Array.isArray(e.data))return c(e.data)}throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}function f(e){if(e>=Y)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+Y.toString(16)+" bytes");return 0|e}function d(e){return+e!=e&&(e=0),i.alloc(+e)}function m(e,t){if(i.isBuffer(e))return e.length;if(J(e)||e instanceof ArrayBuffer)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 V(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return G(e).length;default:if(n)return V(e).length;t=(""+t).toLowerCase(),n=!0}}function y(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 P(this,t,r);case"utf8":case"utf-8":return w(this,t,r);case"ascii":return F(this,t,r);case"latin1":case"binary":return T(this,t,r);case"base64":return _(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}function g(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function b(e,t,r,n,s){if(0===e.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,W(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:v(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):v(e,[t],r,n,s);throw new TypeError("val must be string, number or Buffer")}function v(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;l<o;l++)if(s(e,l)===s(t,-1===c?0:l-c)){if(-1===c&&(c=l),l-c+1===u)return c*a}else-1!==c&&(l-=l-c),c=-1}else for(r+u>o&&(r=o-u),l=r;l>=0;l--){for(var p=!0,h=0;h<u;h++)if(s(e,l+h)!==s(t,h)){p=!1;break}if(p)return l}return-1}function x(e,t,r,n){r=Number(r)||0;var i=e.length-r;n?(n=Number(n))>i&&(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<n;++a){var o=parseInt(t.substr(2*a,2),16);if(W(o))return a;e[r+a]=o}return a}function E(e,t,r,n){return X(V(t,e.length-r),e,r,n)}function A(e,t,r,n){return X(U(t),e,r,n)}function D(e,t,r,n){return A(e,t,r,n)}function C(e,t,r,n){return X(G(t),e,r,n)}function S(e,t,r,n){return X(q(t,e.length-r),e,r,n)}function _(e,t,r){return 0===t&&r===e.length?K.fromByteArray(e):K.fromByteArray(e.slice(t,r))}function w(e,t,r){r=Math.min(e.length,r);for(var n=[],i=t;i<r;){var s=e[i],a=null,o=s>239?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 k(n)}function k(e){var t=e.length;if(t<=H)return String.fromCharCode.apply(String,e);for(var r="",n=0;n<t;)r+=String.fromCharCode.apply(String,e.slice(n,n+=H));return r}function F(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(127&e[i]);return n}function T(e,t,r){var n="";r=Math.min(e.length,r);for(var i=t;i<r;++i)n+=String.fromCharCode(e[i]);return n}function P(e,t,r){var n=e.length;(!t||t<0)&&(t=0),(!r||r<0||r>n)&&(r=n);for(var i="",s=t;s<r;++s)i+=R(e[s]);return i}function B(e,t,r){for(var n=e.slice(t,r),i="",s=0;s<n.length;s+=2)i+=String.fromCharCode(n[s]+256*n[s+1]);return i}function O(e,t,r){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>r)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,r,n,s,a){if(!i.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>s||t<a)throw new RangeError('"value" argument is out of bounds');if(r+n>e.length)throw new RangeError("Index out of range")}function N(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 I(e,t,r,n,i){return t=+t,r>>>=0,i||N(e,t,r,4,3.4028234663852886e38,-3.4028234663852886e38),z.write(e,t,r,n,23,4),r+4}function L(e,t,r,n,i){return t=+t,r>>>=0,i||N(e,t,r,8,1.7976931348623157e308,-1.7976931348623157e308),z.write(e,t,r,n,52,8),r+8}function M(e){if((e=e.trim().replace($,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}function R(e){return e<16?"0"+e.toString(16):e.toString(16)}function V(e,t){t=t||1/0;for(var r,n=e.length,i=null,s=[],a=0;a<n;++a){if((r=e.charCodeAt(a))>55295&&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 U(e){for(var t=[],r=0;r<e.length;++r)t.push(255&e.charCodeAt(r));return t}function q(e,t){for(var r,n,i,s=[],a=0;a<e.length&&!((t-=2)<0);++a)n=(r=e.charCodeAt(a))>>8,i=r%256,s.push(i),s.push(n);return s}function G(e){return K.toByteArray(M(e))}function X(e,t,r,n){for(var i=0;i<n&&!(i+r>=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function J(e){return"function"==typeof ArrayBuffer.isView&&ArrayBuffer.isView(e)}function W(e){return e!==e}var K=e("base64-js"),z=e("ieee754");r.Buffer=i,r.SlowBuffer=d,r.INSPECT_MAX_BYTES=50;var Y=2147483647;r.kMaxLength=Y,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}}(),i.TYPED_ARRAY_SUPPORT||"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 o(e,t,r)},i.allocUnsafe=function(e){return u(e)},i.allocUnsafeSlow=function(e){return u(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);s<a;++s)if(e[s]!==t[s]){r=e[s],n=t[s];break}return r<n?-1:n<r?1:0},i.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},i.concat=function(e,t){if(!Array.isArray(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return i.alloc(0);var r;if(void 0===t)for(t=0,r=0;r<e.length;++r)t+=e[r].length;var n=i.allocUnsafe(t),s=0;for(r=0;r<e.length;++r){var a=e[r];if(!i.isBuffer(a))throw new TypeError('"list" argument must be an Array of Buffers');a.copy(n,s),s+=a.length}return n},i.byteLength=m,i.prototype._isBuffer=!0,i.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},i.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},i.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},i.prototype.toString=function(){var e=this.length;return 0===e?"":0===arguments.length?w(this,0,e):y.apply(this,arguments)},i.prototype.equals=function(e){if(!i.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===i.compare(this,e)},i.prototype.inspect=function(){var e="",t=r.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,t).match(/.{2}/g).join(" "),this.length>t&&(e+=" ... ")),"<Buffer "+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<u;++p)if(l[p]!==c[p]){a=l[p],o=c[p];break}return a<o?-1:o<a?1:0},i.prototype.includes=function(e,t,r){return-1!==this.indexOf(e,t,r)},i.prototype.indexOf=function(e,t,r){return b(this,e,t,r,!0)},i.prototype.lastIndexOf=function(e,t,r){return b(this,e,t,r,!1)},i.prototype.write=function(e,t,r,n){if(void 0===t)n="utf8",r=this.length,t=0;else if(void 0===r&&"string"==typeof t)n=t,r=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t>>>=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 x(this,e,t,r);case"utf8":case"utf-8":return E(this,e,t,r);case"ascii":return A(this,e,t,r);case"latin1":case"binary":return D(this,e,t,r);case"base64":return C(this,e,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(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 H=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<e&&(t=e);var n=this.subarray(e,t);return n.__proto__=i.prototype,n},i.prototype.readUIntLE=function(e,t,r){e>>>=0,t>>>=0,r||O(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return n},i.prototype.readUIntBE=function(e,t,r){e>>>=0,t>>>=0,r||O(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||O(e,1,this.length),this[e]},i.prototype.readUInt16LE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]|this[e+1]<<8},i.prototype.readUInt16BE=function(e,t){return e>>>=0,t||O(e,2,this.length),this[e]<<8|this[e+1]},i.prototype.readUInt32LE=function(e,t){return e>>>=0,t||O(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||O(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||O(e,t,this.length);for(var n=this[e],i=1,s=0;++s<t&&(i*=256);)n+=this[e+s]*i;return i*=128,n>=i&&(n-=Math.pow(2,8*t)),n},i.prototype.readIntBE=function(e,t,r){e>>>=0,t>>>=0,r||O(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||O(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},i.prototype.readInt16LE=function(e,t){e>>>=0,t||O(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||O(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||O(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||O(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||O(e,4,this.length),z.read(this,e,!0,23,4)},i.prototype.readFloatBE=function(e,t){return e>>>=0,t||O(e,4,this.length),z.read(this,e,!1,23,4)},i.prototype.readDoubleLE=function(e,t){return e>>>=0,t||O(e,8,this.length),z.read(this,e,!0,52,8)},i.prototype.readDoubleBE=function(e,t){return e>>>=0,t||O(e,8,this.length),z.read(this,e,!1,52,8)},i.prototype.writeUIntLE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||j(this,e,t,r,Math.pow(2,8*r)-1,0);var i=1,s=0;for(this[t]=255&e;++s<r&&(i*=256);)this[t+s]=e/i&255;return t+r},i.prototype.writeUIntBE=function(e,t,r,n){e=+e,t>>>=0,r>>>=0,n||j(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||j(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||j(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||j(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||j(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||j(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);j(this,e,t,r,i-1,-i)}var s=0,a=1,o=0;for(this[t]=255&e;++s<r&&(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.writeIntBE=function(e,t,r,n){if(e=+e,t>>>=0,!n){var i=Math.pow(2,8*r-1);j(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||j(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||j(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||j(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||j(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||j(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 I(this,e,t,!0,r)},i.prototype.writeFloatBE=function(e,t,r){return I(this,e,t,!1,r)},i.prototype.writeDoubleLE=function(e,t,r){return L(this,e,t,!0,r)},i.prototype.writeDoubleBE=function(e,t,r){return L(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<r&&(n=r),n===r)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(r<0||r>=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<n-r&&(n=e.length-t+r);var i,s=n-r;if(this===e&&r<t&&t<n)for(i=s-1;i>=0;--i)e[i+t]=this[i+r];else if(s<1e3)for(i=0;i<s;++i)e[i+t]=this[i+r];else Uint8Array.prototype.set.call(e,this.subarray(r,r+s),t);return s},i.prototype.fill=function(e,t,r,n){if("string"==typeof e){if("string"==typeof t?(n=t,t=0,r=this.length):"string"==typeof r&&(n=r,r=this.length),1===e.length){var s=e.charCodeAt(0);s<256&&(e=s)}if(void 0!==n&&"string"!=typeof n)throw new TypeError("encoding must be a string");if("string"==typeof n&&!i.isEncoding(n))throw new TypeError("Unknown encoding: "+n)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<r)throw new RangeError("Out of range index");if(r<=t)return this;t>>>=0,r=void 0===r?this.length:r>>>0,e||(e=0);var a;if("number"==typeof e)for(a=t;a<r;++a)this[a]=e;else{var o=i.isBuffer(e)?e:new i(e,n),u=o.length;for(a=0;a<r-t;++a)this[a+t]=o[a%u]}return this};var $=/[^+/0-9A-Za-z-_]/g},{"base64-js":179,ieee754:304}],184:[function(e,t,r){(function(r){"use strict";function n(e){this.enabled=e&&void 0!==e.enabled?e.enabled:c}function i(e){var t=function(){return s.apply(t,arguments)};return t._styles=e,t.enabled=this.enabled,t.__proto__=d,t}function s(){var e=arguments,t=e.length,r=0!==t&&String(arguments[0]);if(t>1)for(var n=1;n<t;n++)r+=" "+e[n];if(!this.enabled||!r)return r;var i=this._styles,s=i.length,a=o.dim.open;for(!h||-1===i.indexOf("gray")&&-1===i.indexOf("grey")||(o.dim.open="");s--;){var u=o[i[s]];r=u.open+r.replace(u.closeRe,u.open)+u.close}return o.dim.open=a,r}var a=e("escape-string-regexp"),o=e("ansi-styles"),u=e("strip-ansi"),l=e("has-ansi"),c=e("supports-color"),p=Object.defineProperties,h="win32"===r.platform&&!/^xterm/i.test(r.env.TERM);h&&(o.blue.open="");var f=function(){var e={};return Object.keys(o).forEach(function(t){o[t].closeRe=new RegExp(a(o[t].close),"g"),e[t]={get:function(){return i.call(this,this._styles.concat(t))}}}),e}(),d=p(function(){},f);p(n.prototype,function(){var e={};return Object.keys(f).forEach(function(t){e[t]={get:function(){return i.call(this,[t])}}}),e}()),t.exports=new n,t.exports.styles=o,t.exports.hasColor=l,t.exports.stripColor=u,t.exports.supportsColor=c}).call(this,e("_process"))},{_process:538,"ansi-styles":2,"escape-string-regexp":299,"has-ansi":303,"strip-ansi":593,"supports-color":594}],185:[function(e,t,r){t.exports=function(e,t){for(var r=[],i=0;i<e.length;i++){var s=t(e[i],i);n(s)?r.push.apply(r,s):r.push(s)}return r};var n=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)}},{}],186:[function(e,t,r){(function(t){"use strict";function n(e){return new t(e,"base64").toString()}function i(e){return e.split(",").pop()}function s(e,t){var r=p.exec(e);p.lastIndex=0;var n=r[1]||r[2],i=l.join(t,n);try{return u.readFileSync(i,"utf8")}catch(e){throw new Error("An error occurred while trying to read the map file at "+i+"\n"+e)}}function a(e,t){(t=t||{}).isFileComment&&(e=s(e,t.commentFileDir)),t.hasComment&&(e=i(e)),t.isEncoded&&(e=n(e)),(t.isJSON||t.isEncoded)&&(e=JSON.parse(e)),this.sourcemap=e}function o(e){for(var t,n=e.split("\n"),i=n.length-1;i>0;i--)if(~(t=n[i]).indexOf("sourceMappingURL=data:"))return r.fromComment(t)}var u=e("fs"),l=e("path"),c=/^\s*\/(?:\/|\*)[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+;)?base64,(.*)$/gm,p=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^\*]+?)[ \t]*(?:\*\/){1}[ \t]*$)/gm;a.prototype.toJSON=function(e){return JSON.stringify(this.sourcemap,null,e)},a.prototype.toBase64=function(){var e=this.toJSON();return new t(e).toString("base64")},a.prototype.toComment=function(e){var t="sourceMappingURL=data:application/json;base64,"+this.toBase64();return e&&e.multiline?"/*# "+t+" */":"//# "+t},a.prototype.toObject=function(){return JSON.parse(this.toJSON())},a.prototype.addProperty=function(e,t){if(this.sourcemap.hasOwnProperty(e))throw new Error("property %s already exists on the sourcemap, use set property instead");return this.setProperty(e,t)},a.prototype.setProperty=function(e,t){return this.sourcemap[e]=t,this},a.prototype.getProperty=function(e){return this.sourcemap[e]},r.fromObject=function(e){return new a(e)},r.fromJSON=function(e){return new a(e,{isJSON:!0})},r.fromBase64=function(e){return new a(e,{isEncoded:!0})},r.fromComment=function(e){return e=e.replace(/^\/\*/g,"//").replace(/\*\/$/g,""),new a(e,{isEncoded:!0,hasComment:!0})},r.fromMapFileComment=function(e,t){return new a(e,{commentFileDir:t,isFileComment:!0,isJSON:!0})},r.fromSource=function(e,t){if(t){var n=o(e);return n||null}var i=e.match(c);return c.lastIndex=0,i?r.fromComment(i.pop()):null},r.fromMapFileSource=function(e,t){var n=e.match(p);return p.lastIndex=0,n?r.fromMapFileComment(n.pop(),t):null},r.removeComments=function(e){return c.lastIndex=0,e.replace(c,"")},r.removeMapFileComments=function(e){return p.lastIndex=0,e.replace(p,"")},Object.defineProperty(r,"commentRegex",{get:function(){return c.lastIndex=0,c}}),Object.defineProperty(r,"mapFileCommentRegex",{get:function(){return p.lastIndex=0,p}})}).call(this,e("buffer").Buffer)},{buffer:183,fs:182,path:534}],187:[function(e,t,r){e("../modules/web.dom.iterable"),e("../modules/es6.string.iterator"),t.exports=e("../modules/core.get-iterator")},{"../modules/core.get-iterator":276,"../modules/es6.string.iterator":285,"../modules/web.dom.iterable":292}],188:[function(e,t,r){var n=e("../../modules/_core"),i=n.JSON||(n.JSON={stringify:JSON.stringify});t.exports=function(e){return i.stringify.apply(i,arguments)}},{"../../modules/_core":216}],189:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/es6.string.iterator"),e("../modules/web.dom.iterable"),e("../modules/es6.map"),e("../modules/es7.map.to-json"),t.exports=e("../modules/_core").Map},{"../modules/_core":216,"../modules/es6.map":278,"../modules/es6.object.to-string":284,"../modules/es6.string.iterator":285,"../modules/es7.map.to-json":289,"../modules/web.dom.iterable":292}],190:[function(e,t,r){e("../../modules/es6.number.max-safe-integer"),t.exports=9007199254740991},{"../../modules/es6.number.max-safe-integer":279}],191:[function(e,t,r){e("../../modules/es6.object.assign"),t.exports=e("../../modules/_core").Object.assign},{"../../modules/_core":216,"../../modules/es6.object.assign":280}],192:[function(e,t,r){e("../../modules/es6.object.create");var n=e("../../modules/_core").Object;t.exports=function(e,t){return n.create(e,t)}},{"../../modules/_core":216,"../../modules/es6.object.create":281}],193:[function(e,t,r){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Object.getOwnPropertySymbols},{"../../modules/_core":216,"../../modules/es6.symbol":286}],194:[function(e,t,r){e("../../modules/es6.object.keys"),t.exports=e("../../modules/_core").Object.keys},{"../../modules/_core":216,"../../modules/es6.object.keys":282}],195:[function(e,t,r){e("../../modules/es6.object.set-prototype-of"),t.exports=e("../../modules/_core").Object.setPrototypeOf},{"../../modules/_core":216,"../../modules/es6.object.set-prototype-of":283}],196:[function(e,t,r){e("../../modules/es6.symbol"),t.exports=e("../../modules/_core").Symbol.for},{"../../modules/_core":216,"../../modules/es6.symbol":286}],197:[function(e,t,r){e("../../modules/es6.symbol"),e("../../modules/es6.object.to-string"),e("../../modules/es7.symbol.async-iterator"),e("../../modules/es7.symbol.observable"),t.exports=e("../../modules/_core").Symbol},{"../../modules/_core":216,"../../modules/es6.object.to-string":284,"../../modules/es6.symbol":286,"../../modules/es7.symbol.async-iterator":290,"../../modules/es7.symbol.observable":291}],198:[function(e,t,r){e("../../modules/es6.string.iterator"),e("../../modules/web.dom.iterable"),t.exports=e("../../modules/_wks-ext").f("iterator")},{"../../modules/_wks-ext":273,"../../modules/es6.string.iterator":285,"../../modules/web.dom.iterable":292}],199:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-map"),t.exports=e("../modules/_core").WeakMap},{"../modules/_core":216,"../modules/es6.object.to-string":284,"../modules/es6.weak-map":287,"../modules/web.dom.iterable":292}],200:[function(e,t,r){e("../modules/es6.object.to-string"),e("../modules/web.dom.iterable"),e("../modules/es6.weak-set"),t.exports=e("../modules/_core").WeakSet},{"../modules/_core":216,"../modules/es6.object.to-string":284,"../modules/es6.weak-set":288,"../modules/web.dom.iterable":292}],201:[function(e,t,r){t.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},{}],202:[function(e,t,r){t.exports=function(){}},{}],203:[function(e,t,r){t.exports=function(e,t,r,n){if(!(e instanceof t)||void 0!==n&&n in e)throw TypeError(r+": incorrect invocation!");return e}},{}],204:[function(e,t,r){var n=e("./_is-object");t.exports=function(e){if(!n(e))throw TypeError(e+" is not an object!");return e}},{"./_is-object":234}],205:[function(e,t,r){var n=e("./_for-of");t.exports=function(e,t){var r=[];return n(e,!1,r.push,r,t),r}},{"./_for-of":225}],206:[function(e,t,r){var n=e("./_to-iobject"),i=e("./_to-length"),s=e("./_to-index");t.exports=function(e){return function(t,r,a){var o,u=n(t),l=i(u.length),c=s(a,l);if(e&&r!=r){for(;l>c;)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-index":265,"./_to-iobject":267,"./_to-length":268}],207:[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":209,"./_ctx":217,"./_iobject":231,"./_to-length":268,"./_to-object":269}],208:[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":233,"./_is-object":234,"./_wks":274}],209:[function(e,t,r){var n=e("./_array-species-constructor");t.exports=function(e,t){return new(n(e))(t)}},{"./_array-species-constructor":208}],210:[function(e,t,r){var n=e("./_cof"),i=e("./_wks")("toStringTag"),s="Arguments"==n(function(){return arguments}()),a=function(e,t){try{return e[t]}catch(e){}};t.exports=function(e){var t,r,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=a(t=Object(e),i))?r:s?n(t):"Object"==(o=n(t))&&"function"==typeof t.callee?"Arguments":o}},{"./_cof":211,"./_wks":274}],211:[function(e,t,r){var n={}.toString;t.exports=function(e){return n.call(e).slice(8,-1)}},{}],212:[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("./_defined"),l=e("./_for-of"),c=e("./_iter-define"),p=e("./_iter-step"),h=e("./_set-species"),f=e("./_descriptors"),d=e("./_meta").fastKey,m=f?"_s":"size",y=function(e,t){var r,n=d(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,c){var p=e(function(e,n){o(e,p,t,"_i"),e._i=i(null),e._f=void 0,e._l=void 0,e[m]=0,void 0!=n&&l(n,r,e[c],e)});return s(p.prototype,{clear:function(){for(var e=this,t=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete t[r.i];e._f=e._l=void 0,e[m]=0},delete:function(e){var t=this,r=y(t,e);if(r){var n=r.n,i=r.p;delete t._i[r.i],r.r=!0,i&&(i.n=n),n&&(n.p=i),t._f==r&&(t._f=n),t._l==r&&(t._l=i),t[m]--}return!!r},forEach:function(e){o(this,p,"forEach");for(var t,r=a(e,arguments.length>1?arguments[1]:void 0,3);t=t?t.n:this._f;)for(r(t.v,t.k,this);t&&t.r;)t=t.p},has:function(e){return!!y(this,e)}}),f&&n(p.prototype,"size",{get:function(){return u(this[m])}}),p},def:function(e,t,r){var n,i,s=y(e,t);return s?s.v=r:(e._l=s={i:i=d(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){c(e,t,function(e,t){this._t=e,this._k=t,this._l=void 0},function(){for(var e=this,t=e._k,r=e._l;r&&r.r;)r=r.p;return e._t&&(e._l=r=r?r.n:e._t._f)?"keys"==t?p(0,r.k):"values"==t?p(0,r.v):p(0,[r.k,r.v]):(e._t=void 0,p(1))},r?"entries":"values",!r,!0),h(t)}}},{"./_an-instance":203,"./_ctx":217,"./_defined":218,"./_descriptors":219,"./_for-of":225,"./_iter-define":237,"./_iter-step":238,"./_meta":242,"./_object-create":244,"./_object-dp":245,"./_redefine-all":257,"./_set-species":260}],213:[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":205,"./_classof":210}],214:[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=l(5),h=l(6),f=0,d=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},y=function(e,t){return p(e.a,function(e){return e[0]===t})};m.prototype={get:function(e){var t=y(this,e);if(t)return t[1]},has:function(e){return!!y(this,e)},set:function(e,t){var r=y(this,e);r?r[1]=t:this.a.push([e,t])},delete:function(e){var t=h(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._i=f++,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 t=i(e);return!0===t?d(this).delete(e):t&&c(t,this._i)&&delete t[this._i]},has:function(e){if(!a(e))return!1;var t=i(e);return!0===t?d(this).has(e):t&&c(t,this._i)}}),l},def:function(e,t,r){var n=i(s(t),!0);return!0===n?d(e).set(t,r):n[e._i]=r,e},ufstore:d}},{"./_an-instance":203,"./_an-object":204,"./_array-methods":207,"./_for-of":225,"./_has":227,"./_is-object":234,"./_meta":242,"./_redefine-all":257}],215:[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})}),"size"in A&&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":203,"./_array-methods":207,"./_descriptors":219,"./_export":223,"./_fails":224,"./_for-of":225,"./_global":226,"./_hide":228,"./_is-object":234,"./_meta":242,"./_object-dp":245,"./_redefine-all":257,"./_set-to-string-tag":261}],216:[function(e,t,r){var n=t.exports={version:"2.4.0"};"number"==typeof __e&&(__e=n)},{}],217:[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":201}],218:[function(e,t,r){t.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},{}],219:[function(e,t,r){t.exports=!e("./_fails")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},{"./_fails":224}],220:[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":226,"./_is-object":234}],221:[function(e,t,r){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},{}],222:[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":250,"./_object-keys":253,"./_object-pie":254}],223:[function(e,t,r){var n=e("./_global"),i=e("./_core"),s=e("./_ctx"),a=e("./_hide"),o=function(e,t,r){var u,l,c,p=e&o.F,h=e&o.G,f=e&o.S,d=e&o.P,m=e&o.B,y=e&o.W,g=h?i:i[t]||(i[t]={}),b=g.prototype,v=h?n:f?n[t]:(n[t]||{}).prototype;h&&(r=t);for(u in r)(l=!p&&v&&void 0!==v[u])&&u in g||(c=l?v[u]:r[u],g[u]=h&&"function"!=typeof v[u]?r[u]:m&&l?s(c,n):y&&v[u]==c?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.prototype=e.prototype,t}(c):d&&"function"==typeof c?s(Function.call,c):c,d&&((g.virtual||(g.virtual={}))[u]=c,e&o.R&&b&&!b[u]&&a(b,u,c)))};o.F=1,o.G=2,o.S=4,o.P=8,o.B=16,o.W=32,o.U=64,o.R=128,t.exports=o},{"./_core":216,"./_ctx":217,"./_global":226,"./_hide":228}],224:[function(e,t,r){t.exports=function(e){try{return!!e()}catch(e){return!0}}},{}],225:[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":204,"./_ctx":217,"./_is-array-iter":232,"./_iter-call":235,"./_to-length":268,"./core.get-iterator-method":275}],226:[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)},{}],227:[function(e,t,r){var n={}.hasOwnProperty;t.exports=function(e,t){return n.call(e,t)}},{}],228:[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":219,"./_object-dp":245,"./_property-desc":256}],229:[function(e,t,r){t.exports=e("./_global").document&&document.documentElement},{"./_global":226}],230:[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":219,"./_dom-create":220,"./_fails":224}],231:[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":211}],232:[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":239,"./_wks":274}],233:[function(e,t,r){var n=e("./_cof");t.exports=Array.isArray||function(e){return"Array"==n(e)}},{"./_cof":211}],234:[function(e,t,r){t.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},{}],235:[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":204}],236:[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":228,"./_object-create":244,"./_property-desc":256,"./_set-to-string-tag":261,"./_wks":274}],237:[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",C="values"==y,S=!1,_=e.prototype,w=_[h]||_["@@iterator"]||y&&_[y],k=w||A(y),F=y?C?A("entries"):k:void 0,T="Array"==t?_.entries||w:w;if(T&&(E=p(T.call(new e)))!==Object.prototype&&(c(E,D,!0),n||o(E,h)||a(E,h,d)),C&&w&&"values"!==w.name&&(S=!0,k=function(){return w.call(this)}),n&&!b||!f&&!S&&_[h]||a(_,h,k),u[t]=k,u[D]=d,y)if(v={values:C?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||S),t,v);return v}},{"./_export":223,"./_has":227,"./_hide":228,"./_iter-create":236,"./_iterators":239,"./_library":241,"./_object-gpo":251,"./_redefine":258,"./_set-to-string-tag":261,"./_wks":274}],238:[function(e,t,r){t.exports=function(e,t){return{value:t,done:!!e}}},{}],239:[function(e,t,r){t.exports={}},{}],240:[function(e,t,r){var n=e("./_object-keys"),i=e("./_to-iobject");t.exports=function(e,t){for(var r,s=i(e),a=n(s),o=a.length,u=0;o>u;)if(s[r=a[u++]]===t)return r}},{"./_object-keys":253,"./_to-iobject":267}],241:[function(e,t,r){t.exports=!0},{}],242:[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=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},h=function(e,t){if(!s(e,n)){if(!u(e))return!0;if(!t)return!1;c(e)}return e[n].w},f=function(e){return l&&d.NEED&&u(e)&&!s(e,n)&&c(e),e},d=t.exports={KEY:n,NEED:!1,fastKey:p,getWeak:h,onFreeze:f}},{"./_fails":224,"./_has":227,"./_is-object":234,"./_object-dp":245,"./_uid":271}],243:[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":224,"./_iobject":231,"./_object-gops":250,"./_object-keys":253,"./_object-pie":254,"./_to-object":269}],244:[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("<script>document.F=Object<\/script>"),t.close(),u=t.F;n--;)delete u.prototype[s[n]];return u()};t.exports=Object.create||function(e,t){var r;return null!==e?(o.prototype=n(e),r=new o,o.prototype=null,r[a]=e):r=u(),void 0===t?r:i(r,t)}},{"./_an-object":204,"./_dom-create":220,"./_enum-bug-keys":221,"./_html":229,"./_object-dps":246,"./_shared-key":262}],245:[function(e,t,r){var n=e("./_an-object"),i=e("./_ie8-dom-define"),s=e("./_to-primitive"),a=Object.defineProperty;r.f=e("./_descriptors")?Object.defineProperty:function(e,t,r){if(n(e),t=s(t,!0),n(r),i)try{return a(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(e[t]=r.value),e}},{"./_an-object":204,"./_descriptors":219,"./_ie8-dom-define":230,"./_to-primitive":270}],246:[function(e,t,r){var n=e("./_object-dp"),i=e("./_an-object"),s=e("./_object-keys");t.exports=e("./_descriptors")?Object.defineProperties:function(e,t){i(e);for(var r,a=s(t),o=a.length,u=0;o>u;)n.f(e,r=a[u++],t[r]);return e}},{"./_an-object":204,"./_descriptors":219,"./_object-dp":245,"./_object-keys":253}],247:[function(e,t,r){var n=e("./_object-pie"),i=e("./_property-desc"),s=e("./_to-iobject"),a=e("./_to-primitive"),o=e("./_has"),u=e("./_ie8-dom-define"),l=Object.getOwnPropertyDescriptor;r.f=e("./_descriptors")?l:function(e,t){if(e=s(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(o(e,t))return i(!n.f.call(e,t),e[t])}},{"./_descriptors":219,"./_has":227,"./_ie8-dom-define":230,"./_object-pie":254,"./_property-desc":256,"./_to-iobject":267,"./_to-primitive":270}],248:[function(e,t,r){var n=e("./_to-iobject"),i=e("./_object-gopn").f,s={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],o=function(e){try{return i(e)}catch(e){return a.slice()}};t.exports.f=function(e){return a&&"[object Window]"==s.call(e)?o(e):i(n(e))}},{"./_object-gopn":249,"./_to-iobject":267}],249:[function(e,t,r){var n=e("./_object-keys-internal"),i=e("./_enum-bug-keys").concat("length","prototype");r.f=Object.getOwnPropertyNames||function(e){return n(e,i)}},{"./_enum-bug-keys":221,"./_object-keys-internal":252}],250:[function(e,t,r){r.f=Object.getOwnPropertySymbols},{}],251:[function(e,t,r){var n=e("./_has"),i=e("./_to-object"),s=e("./_shared-key")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(e){return e=i(e),n(e,s)?e[s]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},{"./_has":227,"./_shared-key":262,"./_to-object":269}],252:[function(e,t,r){var n=e("./_has"),i=e("./_to-iobject"),s=e("./_array-includes")(!1),a=e("./_shared-key")("IE_PROTO");t.exports=function(e,t){var r,o=i(e),u=0,l=[];for(r in o)r!=a&&n(o,r)&&l.push(r);for(;t.length>u;)n(o,r=t[u++])&&(~s(l,r)||l.push(r));return l}},{"./_array-includes":206,"./_has":227,"./_shared-key":262,"./_to-iobject":267}],253:[function(e,t,r){var n=e("./_object-keys-internal"),i=e("./_enum-bug-keys");t.exports=Object.keys||function(e){return n(e,i)}},{"./_enum-bug-keys":221,"./_object-keys-internal":252}],254:[function(e,t,r){r.f={}.propertyIsEnumerable},{}],255:[function(e,t,r){var n=e("./_export"),i=e("./_core"),s=e("./_fails");t.exports=function(e,t){var r=(i.Object||{})[e]||Object[e],a={};a[e]=t(r),n(n.S+n.F*s(function(){r(1)}),"Object",a)}},{"./_core":216,"./_export":223,"./_fails":224}],256:[function(e,t,r){t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},{}],257:[function(e,t,r){var n=e("./_hide");t.exports=function(e,t,r){for(var i in t)r&&e[i]?e[i]=t[i]:n(e,i,t[i]);return e}},{"./_hide":228}],258:[function(e,t,r){t.exports=e("./_hide")},{"./_hide":228}],259:[function(e,t,r){var n=e("./_is-object"),i=e("./_an-object"),s=function(e,t){if(i(e),!n(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,r,n){try{(n=e("./_ctx")(Function.call,e("./_object-gopd").f(Object.prototype,"__proto__").set,2))(t,[]),r=!(t instanceof Array)}catch(e){r=!0}return function(e,t){return s(e,t),r?e.__proto__=t:n(e,t),e}}({},!1):void 0),check:s}},{"./_an-object":204,"./_ctx":217,"./_is-object":234,"./_object-gopd":247}],260:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_core"),s=e("./_object-dp"),a=e("./_descriptors"),o=e("./_wks")("species");t.exports=function(e){var t="function"==typeof i[e]?i[e]:n[e];a&&t&&!t[o]&&s.f(t,o,{configurable:!0,get:function(){return this}})}},{"./_core":216,"./_descriptors":219,"./_global":226,"./_object-dp":245,"./_wks":274}],261:[function(e,t,r){var n=e("./_object-dp").f,i=e("./_has"),s=e("./_wks")("toStringTag");t.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,s)&&n(e,s,{configurable:!0,value:t})}},{"./_has":227,"./_object-dp":245,"./_wks":274}],262:[function(e,t,r){var n=e("./_shared")("keys"),i=e("./_uid");t.exports=function(e){return n[e]||(n[e]=i(e))}},{"./_shared":263,"./_uid":271}],263:[function(e,t,r){var n=e("./_global"),i=n["__core-js_shared__"]||(n["__core-js_shared__"]={});t.exports=function(e){return i[e]||(i[e]={})}},{"./_global":226}],264:[function(e,t,r){var n=e("./_to-integer"),i=e("./_defined");t.exports=function(e){return function(t,r){var s,a,o=String(i(t)),u=n(r),l=o.length;return u<0||u>=l?e?"":void 0:(s=o.charCodeAt(u),s<55296||s>56319||u+1===l||(a=o.charCodeAt(u+1))<56320||a>57343?e?o.charAt(u):s:e?o.slice(u,u+2):a-56320+(s-55296<<10)+65536)}}},{"./_defined":218,"./_to-integer":266}],265:[function(e,t,r){var n=e("./_to-integer"),i=Math.max,s=Math.min;t.exports=function(e,t){return e=n(e),e<0?i(e+t,0):s(e,t)}},{"./_to-integer":266}],266:[function(e,t,r){var n=Math.ceil,i=Math.floor;t.exports=function(e){return isNaN(e=+e)?0:(e>0?i:n)(e)}},{}],267:[function(e,t,r){var n=e("./_iobject"),i=e("./_defined");t.exports=function(e){return n(i(e))}},{"./_defined":218,"./_iobject":231}],268:[function(e,t,r){var n=e("./_to-integer"),i=Math.min;t.exports=function(e){return e>0?i(n(e),9007199254740991):0}},{"./_to-integer":266}],269:[function(e,t,r){var n=e("./_defined");t.exports=function(e){return Object(n(e))}},{"./_defined":218}],270:[function(e,t,r){var n=e("./_is-object");t.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},{"./_is-object":234}],271:[function(e,t,r){var n=0,i=Math.random();t.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+i).toString(36))}},{}],272:[function(e,t,r){var n=e("./_global"),i=e("./_core"),s=e("./_library"),a=e("./_wks-ext"),o=e("./_object-dp").f;t.exports=function(e){var t=i.Symbol||(i.Symbol=s?{}:n.Symbol||{});"_"==e.charAt(0)||e in t||o(t,e,{value:a.f(e)})}},{"./_core":216,"./_global":226,"./_library":241,"./_object-dp":245,"./_wks-ext":273}],273:[function(e,t,r){r.f=e("./_wks")},{"./_wks":274}],274:[function(e,t,r){var n=e("./_shared")("wks"),i=e("./_uid"),s=e("./_global").Symbol,a="function"==typeof s;(t.exports=function(e){return n[e]||(n[e]=a&&s[e]||(a?s:i)("Symbol."+e))}).store=n},{"./_global":226,"./_shared":263,"./_uid":271}],275:[function(e,t,r){var n=e("./_classof"),i=e("./_wks")("iterator"),s=e("./_iterators");t.exports=e("./_core").getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||s[n(e)]}},{"./_classof":210,"./_core":216,"./_iterators":239,"./_wks":274}],276:[function(e,t,r){var n=e("./_an-object"),i=e("./core.get-iterator-method");t.exports=e("./_core").getIterator=function(e){var t=i(e);if("function"!=typeof t)throw TypeError(e+" is not iterable!");return n(t.call(e))}},{"./_an-object":204,"./_core":216,"./core.get-iterator-method":275}],277:[function(e,t,r){"use strict";var n=e("./_add-to-unscopables"),i=e("./_iter-step"),s=e("./_iterators"),a=e("./_to-iobject");t.exports=e("./_iter-define")(Array,"Array",function(e,t){this._t=a(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,r=this._i++;return!e||r>=e.length?(this._t=void 0,i(1)):"keys"==t?i(0,r):"values"==t?i(0,e[r]):i(0,[r,e[r]])},"values"),s.Arguments=s.Array,n("keys"),n("values"),n("entries")},{"./_add-to-unscopables":202,"./_iter-define":237,"./_iter-step":238,"./_iterators":239,"./_to-iobject":267}],278:[function(e,t,r){"use strict";var n=e("./_collection-strong");t.exports=e("./_collection")("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=n.getEntry(this,e);return t&&t.v},set:function(e,t){return n.def(this,0===e?0:e,t)}},n,!0)},{"./_collection":215,"./_collection-strong":212}],279:[function(e,t,r){var n=e("./_export");n(n.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{"./_export":223}],280:[function(e,t,r){var n=e("./_export");n(n.S+n.F,"Object",{assign:e("./_object-assign")})},{"./_export":223,"./_object-assign":243}],281:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{create:e("./_object-create")})},{"./_export":223,"./_object-create":244}],282:[function(e,t,r){var n=e("./_to-object"),i=e("./_object-keys");e("./_object-sap")("keys",function(){return function(e){return i(n(e))}})},{"./_object-keys":253,"./_object-sap":255,"./_to-object":269}],283:[function(e,t,r){var n=e("./_export");n(n.S,"Object",{setPrototypeOf:e("./_set-proto").set})},{"./_export":223,"./_set-proto":259}],284:[function(e,t,r){arguments[4][181][0].apply(r,arguments)},{dup:181}],285:[function(e,t,r){"use strict";var n=e("./_string-at")(!0);e("./_iter-define")(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,r=this._i;return r>=t.length?{value:void 0,done:!0}:(e=n(t,r),this._i+=e.length,{value:e,done:!1})})},{"./_iter-define":237,"./_string-at":264}],286:[function(e,t,r){"use strict";var n=e("./_global"),i=e("./_has"),s=e("./_descriptors"),a=e("./_export"),o=e("./_redefine"),u=e("./_meta").KEY,l=e("./_fails"),c=e("./_shared"),p=e("./_set-to-string-tag"),h=e("./_uid"),f=e("./_wks"),d=e("./_wks-ext"),m=e("./_wks-define"),y=e("./_keyof"),g=e("./_enum-keys"),b=e("./_is-array"),v=e("./_an-object"),x=e("./_to-iobject"),E=e("./_to-primitive"),A=e("./_property-desc"),D=e("./_object-create"),C=e("./_object-gopn-ext"),S=e("./_object-gopd"),_=e("./_object-dp"),w=e("./_object-keys"),k=S.f,F=_.f,T=C.f,P=n.Symbol,B=n.JSON,O=B&&B.stringify,j=f("_hidden"),N=f("toPrimitive"),I={}.propertyIsEnumerable,L=c("symbol-registry"),M=c("symbols"),R=c("op-symbols"),V=Object.prototype,U="function"==typeof P,q=n.QObject,G=!q||!q.prototype||!q.prototype.findChild,X=s&&l(function(){return 7!=D(F({},"a",{get:function(){return F(this,"a",{value:7}).a}})).a})?function(e,t,r){var n=k(V,t);n&&delete V[t],F(e,t,r),n&&e!==V&&F(V,t,n)}:F,J=function(e){var t=M[e]=D(P.prototype);return t._k=e,t},W=U&&"symbol"==typeof P.iterator?function(e){return"symbol"==typeof e}:function(e){return e instanceof P},K=function(e,t,r){return e===V&&K(R,t,r),v(e),t=E(t,!0),v(r),i(M,t)?(r.enumerable?(i(e,j)&&e[j][t]&&(e[j][t]=!1),r=D(r,{enumerable:A(0,!1)})):(i(e,j)||F(e,j,A(1,{})),e[j][t]=!0),X(e,t,r)):F(e,t,r)},z=function(e,t){v(e);for(var r,n=g(t=x(t)),i=0,s=n.length;s>i;)K(e,r=n[i++],t[r]);return e},Y=function(e,t){return void 0===t?D(e):z(D(e),t)},H=function(e){var t=I.call(this,e=E(e,!0));return!(this===V&&i(M,e)&&!i(R,e))&&(!(t||!i(this,e)||!i(M,e)||i(this,j)&&this[j][e])||t)},$=function(e,t){if(e=x(e),t=E(t,!0),e!==V||!i(M,t)||i(R,t)){var r=k(e,t);return!r||!i(M,t)||i(e,j)&&e[j][t]||(r.enumerable=!0),r}},Q=function(e){for(var t,r=T(x(e)),n=[],s=0;r.length>s;)i(M,t=r[s++])||t==j||t==u||n.push(t);return n},Z=function(e){for(var t,r=e===V,n=T(r?R:x(e)),s=[],a=0;n.length>a;)!i(M,t=n[a++])||r&&!i(V,t)||s.push(M[t]);return s};U||(o((P=function(){if(this instanceof P)throw TypeError("Symbol is not a constructor!");var e=h(arguments.length>0?arguments[0]:void 0),t=function(r){this===V&&t.call(R,r),i(this,j)&&i(this[j],e)&&(this[j][e]=!1),X(this,e,A(1,r))};return s&&G&&X(V,e,{configurable:!0,set:t}),J(e)}).prototype,"toString",function(){return this._k}),S.f=$,_.f=K,e("./_object-gopn").f=C.f=Q,e("./_object-pie").f=H,e("./_object-gops").f=Z,s&&!e("./_library")&&o(V,"propertyIsEnumerable",H,!0),d.f=function(e){return J(f(e))}),a(a.G+a.W+a.F*!U,{Symbol:P});for(var ee="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),te=0;ee.length>te;)f(ee[te++]);for(var ee=w(f.store),te=0;ee.length>te;)m(ee[te++]);a(a.S+a.F*!U,"Symbol",{for:function(e){return i(L,e+="")?L[e]:L[e]=P(e)},keyFor:function(e){if(W(e))return y(L,e);throw TypeError(e+" is not a symbol!")},useSetter:function(){G=!0},useSimple:function(){G=!1}}),a(a.S+a.F*!U,"Object",{create:Y,defineProperty:K,defineProperties:z,getOwnPropertyDescriptor:$,getOwnPropertyNames:Q,getOwnPropertySymbols:Z}),B&&a(a.S+a.F*(!U||l(function(){var e=P();return"[null]"!=O([e])||"{}"!=O({a:e})||"{}"!=O(Object(e))})),"JSON",{stringify:function(e){if(void 0!==e&&!W(e)){for(var t,r,n=[e],i=1;arguments.length>i;)n.push(arguments[i++]);return"function"==typeof(t=n[1])&&(r=t),!r&&b(t)||(t=function(e,t){if(r&&(t=r.call(this,e,t)),!W(t))return t}),n[1]=t,O.apply(B,n)}}}),P.prototype[N]||e("./_hide")(P.prototype,N,P.prototype.valueOf),p(P,"Symbol"),p(Math,"Math",!0),p(n.JSON,"JSON",!0)},{"./_an-object":204,"./_descriptors":219,"./_enum-keys":222,"./_export":223,"./_fails":224,"./_global":226,"./_has":227,"./_hide":228,"./_is-array":233,"./_keyof":240,"./_library":241,"./_meta":242,"./_object-create":244,"./_object-dp":245,"./_object-gopd":247,"./_object-gopn":249,"./_object-gopn-ext":248,"./_object-gops":250,"./_object-keys":253,"./_object-pie":254,"./_property-desc":256,"./_redefine":258,"./_set-to-string-tag":261,"./_shared":263,"./_to-iobject":267,"./_to-primitive":270,"./_uid":271,"./_wks":274,"./_wks-define":272,"./_wks-ext":273}],287:[function(e,t,r){"use strict";var n,i=e("./_array-methods")(0),s=e("./_redefine"),a=e("./_meta"),o=e("./_object-assign"),u=e("./_collection-weak"),l=e("./_is-object"),c=a.getWeak,p=Object.isExtensible,h=u.ufstore,f={},d=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},m={get:function(e){if(l(e)){var t=c(e);return!0===t?h(this).get(e):t?t[this._i]:void 0}},set:function(e,t){return u.def(this,e,t)}},y=t.exports=e("./_collection")("WeakMap",d,m,u,!0,!0);7!=(new y).set((Object.freeze||Object)(f),7).get(f)&&(o((n=u.getConstructor(d)).prototype,m),a.NEED=!0,i(["delete","has","get","set"],function(e){var t=y.prototype,r=t[e];s(t,e,function(t,i){if(l(t)&&!p(t)){this._f||(this._f=new n);var s=this._f[e](t,i);return"set"==e?this:s}return r.call(this,t,i)})}))},{"./_array-methods":207,"./_collection":215,"./_collection-weak":214,"./_is-object":234,"./_meta":242,"./_object-assign":243,"./_redefine":258}],288:[function(e,t,r){"use strict";var n=e("./_collection-weak");e("./_collection")("WeakSet",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return n.def(this,e,!0)}},n,!1,!0)},{"./_collection":215,"./_collection-weak":214}],289:[function(e,t,r){var n=e("./_export");n(n.P+n.R,"Map",{toJSON:e("./_collection-to-json")("Map")})},{"./_collection-to-json":213,"./_export":223}],290:[function(e,t,r){e("./_wks-define")("asyncIterator")},{"./_wks-define":272}],291:[function(e,t,r){e("./_wks-define")("observable")},{"./_wks-define":272}],292:[function(e,t,r){e("./es6.array.iterator");for(var n=e("./_global"),i=e("./_hide"),s=e("./_iterators"),a=e("./_wks")("toStringTag"),o=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],u=0;u<5;u++){var l=o[u],c=n[l],p=c&&c.prototype;p&&!p[a]&&i(p,a,l),s[l]=s.Array}},{"./_global":226,"./_hide":228,"./_iterators":239,"./_wks":274,"./es6.array.iterator":277}],293:[function(e,t,r){(function(e){function t(e){return Array.isArray?Array.isArray(e):"[object Array]"===y(e)}function n(e){return"boolean"==typeof e}function i(e){return null===e}function s(e){return null==e}function a(e){return"number"==typeof e}function o(e){return"string"==typeof e}function u(e){return"symbol"==typeof e}function l(e){return void 0===e}function c(e){return"[object RegExp]"===y(e)}function p(e){return"object"==typeof e&&null!==e}function h(e){return"[object Date]"===y(e)}function f(e){return"[object Error]"===y(e)||e instanceof Error}function d(e){return"function"==typeof e}function m(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function y(e){return Object.prototype.toString.call(e)}r.isArray=t,r.isBoolean=n,r.isNull=i,r.isNullOrUndefined=s,r.isNumber=a,r.isString=o,r.isSymbol=u,r.isUndefined=l,r.isRegExp=c,r.isObject=p,r.isDate=h,r.isError=f,r.isFunction=d,r.isPrimitive=m,r.isBuffer=e.isBuffer}).call(this,{isBuffer:e("../../is-buffer/index.js")})},{"../../is-buffer/index.js":307}],294:[function(e,t,r){t.exports=e("./src/node")},{"./src/node":297}],295:[function(e,t,r){(function(n){function i(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type)||("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function s(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+r.humanize(this.diff),t){var n="color: "+this.color;e.splice(1,0,n,"color: inherit");var i=0,s=0;e[0].replace(/%[a-zA-Z%]/g,function(e){"%%"!==e&&(i++,"%c"===e&&(s=i))}),e.splice(s,0,n)}}function a(){return"object"==typeof console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function o(e){try{null==e?r.storage.removeItem("debug"):r.storage.debug=e}catch(e){}}function u(){var e;try{e=r.storage.debug}catch(e){}return!e&&void 0!==n&&"env"in n&&(e=n.env.DEBUG),e}(r=t.exports=e("./debug")).log=a,r.formatArgs=s,r.save=o,r.load=u,r.useColors=i,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(u())}).call(this,e("_process"))},{"./debug":296,_process:538}],296:[function(e,t,r){function n(e){var t,n=0;for(t in e)n=(n<<5)-n+e.charCodeAt(t),n|=0;return r.colors[Math.abs(n)%r.colors.length]}function i(e){function t(){if(t.enabled){var e=t,n=+new Date,i=n-(l||n);e.diff=i,e.prev=l,e.curr=n,l=n;for(var s=new Array(arguments.length),a=0;a<s.length;a++)s[a]=arguments[a];s[0]=r.coerce(s[0]),"string"!=typeof s[0]&&s.unshift("%O");var o=0;s[0]=s[0].replace(/%([a-zA-Z%])/g,function(t,n){if("%%"===t)return t;o++;var i=r.formatters[n];if("function"==typeof i){var a=s[o];t=i.call(e,a),s.splice(o,1),o--}return t}),r.formatArgs.call(e,s),(t.log||r.log||console.log.bind(console)).apply(e,s)}}return t.namespace=e,t.enabled=r.enabled(e),t.useColors=r.useColors(),t.color=n(e),"function"==typeof r.init&&r.init(t),t}function s(e){r.save(e),r.names=[],r.skips=[];for(var t=("string"==typeof e?e:"").split(/[\s,]+/),n=t.length,i=0;i<n;i++)t[i]&&("-"===(e=t[i].replace(/\*/g,".*?"))[0]?r.skips.push(new RegExp("^"+e.substr(1)+"$")):r.names.push(new RegExp("^"+e+"$")))}function a(){r.enable("")}function o(e){var t,n;for(t=0,n=r.skips.length;t<n;t++)if(r.skips[t].test(e))return!1;for(t=0,n=r.names.length;t<n;t++)if(r.names[t].test(e))return!0;return!1}function u(e){return e instanceof Error?e.stack||e.message:e}(r=t.exports=i.debug=i.default=i).coerce=u,r.disable=a,r.enable=s,r.enabled=o,r.humanize=e("ms"),r.names=[],r.skips=[],r.formatters={};var l},{ms:531}],297:[function(e,t,r){(function(n){function i(){return"colors"in r.inspectOpts?Boolean(r.inspectOpts.colors):c.isatty(h)}function s(e){var t=this.namespace;if(this.useColors){var n=this.color,i=" [3"+n+";1m"+t+" ";e[0]=i+e[0].split("\n").join("\n"+i),e.push("[3"+n+"m+"+r.humanize(this.diff)+"")}else e[0]=(new Date).toUTCString()+" "+t+" "+e[0]}function a(){return f.write(p.format.apply(p,arguments)+"\n")}function o(e){null==e?delete n.env.DEBUG:n.env.DEBUG=e}function u(){return n.env.DEBUG}function l(e){e.inspectOpts={};for(var t=Object.keys(r.inspectOpts),n=0;n<t.length;n++)e.inspectOpts[t[n]]=r.inspectOpts[t[n]]}var c=e("tty"),p=e("util");(r=t.exports=e("./debug")).init=l,r.log=a,r.formatArgs=s,r.save=o,r.load=u,r.useColors=i,r.colors=[6,2,3,4,5,1],r.inspectOpts=Object.keys(n.env).filter(function(e){return/^debug_/i.test(e)}).reduce(function(e,t){var r=t.substring(6).toLowerCase().replace(/_([a-z])/g,function(e,t){return t.toUpperCase()}),i=n.env[t];return i=!!/^(yes|on|true|enabled)$/i.test(i)||!/^(no|off|false|disabled)$/i.test(i)&&("null"===i?null:Number(i)),e[r]=i,e},{});var h=parseInt(n.env.DEBUG_FD,10)||2;1!==h&&2!==h&&p.deprecate(function(){},"except for stderr(2) and stdout(1), any other usage of DEBUG_FD is deprecated. Override debug.log if you want to use a different log function (https://git.io/debug_fd)")();var f=1===h?n.stdout:2===h?n.stderr:function(t){var r;switch(n.binding("tty_wrap").guessHandleType(t)){case"TTY":(r=new c.WriteStream(t))._type="tty",r._handle&&r._handle.unref&&r._handle.unref();break;case"FILE":(r=new(e("fs").SyncWriteStream)(t,{autoClose:!1}))._type="fs";break;case"PIPE":case"TCP":(r=new(e("net").Socket)({fd:t,readable:!1,writable:!0})).readable=!1,r.read=null,r._type="pipe",r._handle&&r._handle.unref&&r._handle.unref();break;default:throw new Error("Implement me. Unknown stream file type!")}return r.fd=t,r._isStdio=!0,r}(h);r.formatters.o=function(e){return this.inspectOpts.colors=this.useColors,p.inspect(e,this.inspectOpts).replace(/\s*\n\s*/g," ")},r.formatters.O=function(e){return this.inspectOpts.colors=this.useColors,p.inspect(e,this.inspectOpts)},r.enable(u())}).call(this,e("_process"))},{"./debug":296,_process:538,fs:182,net:182,tty:598,util:602}],298:[function(e,t,r){"use strict";function n(e){var t=0,r=0,n=0;for(var i in e){var s=e[i],a=s[0],o=s[1];(a>r||a===r&&o>n)&&(r=a,n=o,t=Number(i))}return t}var i=e("repeating"),s=/^(?:( )+|\t+)/;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");var t,r,a=0,o=0,u=0,l={};e.split(/\n/g).forEach(function(e){if(e){var n,i=e.match(s);i?(n=i[0].length,i[1]?o++:a++):n=0;var c=n-u;u=n,c?(t=l[(r=c>0)?c:-c])?t[0]++:t=l[c]=[1,0]:t&&(t[1]+=Number(r))}});var c,p,h=n(l);return h?o>=a?(c="space",p=i(" ",h)):(c="tab",p=i("\t",h)):(c=null,p=""),{amount:h,type:c,indent:p}}},{repeating:588}],299:[function(e,t,r){"use strict";var n=/[|\\{}()[\]^$+*?.]/g;t.exports=function(e){if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(n,"\\$&")}},{}],300:[function(e,t,r){function n(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function i(e){return"function"==typeof e}function s(e){return"number"==typeof e}function a(e){return"object"==typeof e&&null!==e}function o(e){return void 0===e}t.exports=n,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._maxListeners=void 0,n.defaultMaxListeners=10,n.prototype.setMaxListeners=function(e){if(!s(e)||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},n.prototype.emit=function(e){var t,r,n,s,u,l;if(this._events||(this._events={}),"error"===e&&(!this._events.error||a(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var c=new Error('Uncaught, unspecified "error" event. ('+t+")");throw c.context=t,c}if(r=this._events[e],o(r))return!1;if(i(r))switch(arguments.length){case 1:r.call(this);break;case 2:r.call(this,arguments[1]);break;case 3:r.call(this,arguments[1],arguments[2]);break;default:s=Array.prototype.slice.call(arguments,1),r.apply(this,s)}else if(a(r))for(s=Array.prototype.slice.call(arguments,1),n=(l=r.slice()).length,u=0;u<n;u++)l[u].apply(this,s);return!0},n.prototype.addListener=function(e,t){var r;if(!i(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,i(t.listener)?t.listener:t),this._events[e]?a(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,a(this._events[e])&&!this._events[e].warned&&(r=o(this._maxListeners)?n.defaultMaxListeners:this._maxListeners)&&r>0&&this._events[e].length>r&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},n.prototype.on=n.prototype.addListener,n.prototype.once=function(e,t){function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var n=!1;return r.listener=t,this.on(e,r),this},n.prototype.removeListener=function(e,t){var r,n,s,o;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(r=this._events[e],s=r.length,n=-1,r===t||i(r.listener)&&r.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(a(r)){for(o=s;o-- >0;)if(r[o]===t||r[o].listener&&r[o].listener===t){n=o;break}if(n<0)return this;1===r.length?(r.length=0,delete this._events[e]):r.splice(n,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},n.prototype.removeAllListeners=function(e){var t,r;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r=this._events[e],i(r))this.removeListener(e,r);else if(r)for(;r.length;)this.removeListener(e,r[r.length-1]);return delete this._events[e],this},n.prototype.listeners=function(e){return this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},n.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(i(t))return 1;if(t)return t.length}return 0},n.listenerCount=function(e,t){return e.listenerCount(t)}},{}],301:[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,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,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,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}}},{}],302:[function(e,t,r){t.exports=e("./globals.json")},{"./globals.json":301}],303:[function(e,t,r){"use strict";var n=e("ansi-regex"),i=new RegExp(n().source);t.exports=i.test.bind(i)},{"ansi-regex":1}],304:[function(e,t,r){r.read=function(e,t,r,n,i){var s,a,o=8*i-n-1,u=(1<<o)-1,l=u>>1,c=-7,p=r?i-1:0,h=r?-1:1,f=e[t+p];for(p+=h,s=f&(1<<-c)-1,f>>=-c,c+=o;c>0;s=256*s+e[t+p],p+=h,c-=8);for(a=s&(1<<-c)-1,s>>=-c,c+=n;c>0;a=256*a+e[t+p],p+=h,c-=8);if(0===s)s=1-l;else{if(s===u)return a?NaN:1/0*(f?-1:1);a+=Math.pow(2,n),s-=l}return(f?-1:1)*a*Math.pow(2,s-n)},r.write=function(e,t,r,n,i,s){var a,o,u,l=8*s-i-1,c=(1<<l)-1,p=c>>1,h=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,f=n?0:s-1,d=n?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(o=isNaN(t)?1:0,a=c):(a=Math.floor(Math.log(t)/Math.LN2),t*(u=Math.pow(2,-a))<1&&(a--,u*=2),(t+=a+p>=1?h/u:h*Math.pow(2,1-p))*u>=2&&(a++,u/=2),a+p>=c?(o=0,a=c):a+p>=1?(o=(t*u-1)*Math.pow(2,i),a+=p):(o=t*Math.pow(2,p-1)*Math.pow(2,i),a=0));i>=8;e[r+f]=255&o,f+=d,o/=256,i-=8);for(a=a<<i|o,l+=i;l>0;e[r+f]=255&a,f+=d,a/=256,l-=8);e[r+f-d]|=128*m}},{}],305:[function(e,t,r){"function"==typeof Object.create?t.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:t.exports=function(e,t){e.super_=t;var r=function(){};r.prototype=t.prototype,e.prototype=new r,e.prototype.constructor=e}},{}],306:[function(e,t,r){"use strict";var n=function(e,t,r,n,i,s,a,o){if(void 0===t)throw new Error("invariant requires an error message argument");if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[r,n,i,s,a,o],c=0;(u=new Error(t.replace(/%s/g,function(){return l[c++]}))).name="Invariant Violation"}throw u.framesToPop=1,u}};t.exports=n},{}],307:[function(e,t,r){function n(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}function i(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&n(e.slice(0,0))}t.exports=function(e){return null!=e&&(n(e)||i(e)||!!e._isBuffer)}},{}],308:[function(e,t,r){"use strict";var n=e("number-is-nan");t.exports=Number.isFinite||function(e){return!("number"!=typeof e||n(e)||e===1/0||e===-1/0)}},{"number-is-nan":532}],309:[function(e,t,r){var n={}.toString;t.exports=Array.isArray||function(e){return"[object Array]"==n.call(e)}},{}],310:[function(e,t,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=/((['"])(?:(?!\2|\\).|\\(?:\r\n|[\s\S]))*(\2)?|`(?:[^`\\$]|\\[\s\S]|\$(?!\{)|\$\{(?:[^{}]|\{[^}]*\}?)*\}?)*(`)?)|(\/\/.*)|(\/\*(?:[^*]|\*(?!\/))*(\*\/)?)|(\/(?!\*)(?:\[(?:(?![\]\\]).|\\.)*\]|(?![\/\]\\]).|\\.)+\/(?:(?!\s*(?:\b|[\u0080-\uFFFF$\\'"~({]|[+\-!](?!=)|\.?\d))|[gmiyu]{1,5}\b(?![\u0080-\uFFFF$\\]|\s*(?:[+\-*%&|^<>!=?({]|\/(?![\/*])))))|(0[xX][\da-fA-F]+|0[oO][0-7]+|0[bB][01]+|(?:\d*\.\d+|\d+\.?)(?:[eE][+-]?\d+)?)|((?!\d)(?:(?!\s)[$\w\u0080-\uFFFF]|\\u[\da-fA-F]{4}|\\u\{[\da-fA-F]+\})+)|(--|\+\+|&&|\|\||=>|\.{3}|(?:[+\-\/%&|^]|\*{1,2}|<{1,2}|>{1,3}|!=?|={1,2})=?|[?~.,:;[\](){}])|(\s+)|(^$|[\s\S])/g,r.matchToToken=function(e){var t={type:"invalid",value:e[0]};return e[1]?(t.type="string",t.closed=!(!e[3]&&!e[4])):e[5]?t.type="comment":e[6]?(t.type="comment",t.closed=!!e[7]):e[8]?t.type="regex":e[9]?t.type="number":e[10]?t.type="name":e[11]?t.type="punctuator":e[12]&&(t.type="whitespace"),t}},{}],311:[function(e,t,r){(function(e){!function(n){var i="object"==typeof r&&r,s="object"==typeof t&&t&&t.exports==i&&t,a="object"==typeof e&&e;a.global!==a&&a.window!==a||(n=a);var o={},u=o.hasOwnProperty,l=function(e,t){var r;for(r in e)u.call(e,r)&&t(r,e[r])},c=function(e,t){return t?(l(t,function(t,r){e[t]=r}),e):e},p=function(e,t){for(var r=e.length,n=-1;++n<r;)t(e[n])},h=o.toString,f=function(e){return"[object Array]"==h.call(e)},d=function(e){return"[object Object]"==h.call(e)},m=function(e){return"string"==typeof e||"[object String]"==h.call(e)},y=function(e){return"number"==typeof e||"[object Number]"==h.call(e)},g=function(e){return"function"==typeof e||"[object Function]"==h.call(e)},b=function(e){return"[object Map]"==h.call(e)},v=function(e){return"[object Set]"==h.call(e)},x={'"':'\\"',"'":"\\'","\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t"},E=/["'\\\b\f\n\r\t]/,A=/[0-9]/,D=/[ !#-&\(-\[\]-~]/,C=function(e,t){var r={escapeEverything:!1,escapeEtago:!1,quotes:"single",wrap:!1,es6:!1,json:!1,compact:!0,lowercaseHex:!1,numbers:"decimal",indent:"\t",__indent__:"",__inline1__:!1,__inline2__:!1},n=t&&t.json;n&&(r.quotes="double",r.wrap=!0),"single"!=(t=c(r,t)).quotes&&"double"!=t.quotes&&(t.quotes="single");var i,s="double"==t.quotes?'"':"'",a=t.compact,o=t.indent,u=t.lowercaseHex,h="",S=t.__inline1__,_=t.__inline2__,w=a?"":"\n",k=!0,F="binary"==t.numbers,T="octal"==t.numbers,P="decimal"==t.numbers,B="hexadecimal"==t.numbers;if(n&&e&&g(e.toJSON)&&(e=e.toJSON()),!m(e)){if(b(e))return 0==e.size?"new Map()":(a||(t.__inline1__=!0),"new Map("+C(Array.from(e),t)+")");if(v(e))return 0==e.size?"new Set()":"new Set("+C(Array.from(e),t)+")";if(f(e))return i=[],t.wrap=!0,S?(t.__inline1__=!1,t.__inline2__=!0):(h=t.__indent__,o+=h,t.__indent__=o),p(e,function(e){k=!1,_&&(t.__inline2__=!1),i.push((a||_?"":o)+C(e,t))}),k?"[]":_?"["+i.join(", ")+"]":"["+w+i.join(","+w)+w+(a?"":h)+"]";if(!y(e))return d(e)?(i=[],t.wrap=!0,h=t.__indent__,o+=h,t.__indent__=o,l(e,function(e,r){k=!1,i.push((a?"":o)+C(e,t)+":"+(a?"":" ")+C(r,t))}),k?"{}":"{"+w+i.join(","+w)+w+(a?"":h)+"}"):n?JSON.stringify(e)||"null":String(e);if(n)return JSON.stringify(e);if(P)return String(e);if(B){var O=e.toString(16);return u||(O=O.toUpperCase()),"0x"+O}if(F)return"0b"+e.toString(2);if(T)return"0o"+e.toString(8)}var j,N,I,L=e,M=-1,R=L.length;for(i="";++M<R;){var V=L.charAt(M);if(t.es6&&(j=L.charCodeAt(M))>=55296&&j<=56319&&R>M+1&&(N=L.charCodeAt(M+1))>=56320&&N<=57343){U=(I=1024*(j-55296)+N-56320+65536).toString(16);u||(U=U.toUpperCase()),i+="\\u{"+U+"}",M++}else{if(!t.escapeEverything){if(D.test(V)){i+=V;continue}if('"'==V){i+=s==V?'\\"':V;continue}if("'"==V){i+=s==V?"\\'":V;continue}}if("\0"!=V||n||A.test(L.charAt(M+1)))if(E.test(V))i+=x[V];else{var U=V.charCodeAt(0).toString(16);u||(U=U.toUpperCase());var q=U.length>2||n,G="\\"+(q?"u":"x")+("0000"+U).slice(q?-4:-2);i+=G}else i+="\\0"}}return t.wrap&&(i=s+i+s),t.escapeEtago?i.replace(/<\/(script|style)/gi,"<\\/$1"):i};C.version="1.3.0","function"==typeof define&&"object"==typeof define.amd&&define.amd?define(function(){return C}):i&&!i.nodeType?s?s.exports=C:i.jsesc=C:n.jsesc=C}(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],312:[function(e,t,r){var n="object"==typeof r?r:{};n.parse=function(){"use strict";var e,t,r,n,i,s,a={"'":"'",'"':'"',"\\":"\\","/":"/","\n":"",b:"\b",f:"\f",n:"\n",r:"\r",t:"\t"},o=[" ","\t","\r","\n","\v","\f","Ā ","\ufeff"],u=function(e){return""===e?"EOF":"'"+e+"'"},l=function(n){var s=new SyntaxError;throw s.message=n+" at line "+t+" column "+r+" of the JSON5 data. Still to read: "+JSON.stringify(i.substring(e-1,e+19)),s.at=e,s.lineNumber=t,s.columnNumber=r,s},c=function(s){return s&&s!==n&&l("Expected "+u(s)+" instead of "+u(n)),n=i.charAt(e),e++,r++,("\n"===n||"\r"===n&&"\n"!==p())&&(t++,r=0),n},p=function(){return i.charAt(e)},h=function(){var e=n;for("_"!==n&&"$"!==n&&(n<"a"||n>"z")&&(n<"A"||n>"Z")&&l("Bad identifier as unquoted key");c()&&("_"===n||"$"===n||n>="a"&&n<="z"||n>="A"&&n<="Z"||n>="0"&&n<="9");)e+=n;return e},f=function(){var e,t="",r="",i=10;if("-"!==n&&"+"!==n||(t=n,c(n)),"I"===n)return("number"!=typeof(e=v())||isNaN(e))&&l("Unexpected word for number"),"-"===t?-e:e;if("N"===n)return e=v(),isNaN(e)||l("expected word to be NaN"),e;switch("0"===n&&(r+=n,c(),"x"===n||"X"===n?(r+=n,c(),i=16):n>="0"&&n<="9"&&l("Octal literal")),i){case 10:for(;n>="0"&&n<="9";)r+=n,c();if("."===n)for(r+=".";c()&&n>="0"&&n<="9";)r+=n;if("e"===n||"E"===n)for(r+=n,c(),"-"!==n&&"+"!==n||(r+=n,c());n>="0"&&n<="9";)r+=n,c();break;case 16:for(;n>="0"&&n<="9"||n>="A"&&n<="F"||n>="a"&&n<="f";)r+=n,c()}if(e="-"===t?-r:+r,isFinite(e))return e;l("Bad number")},d=function(){var e,t,r,i,s="";if('"'===n||"'"===n)for(r=n;c();){if(n===r)return c(),s;if("\\"===n)if(c(),"u"===n){for(i=0,t=0;t<4&&(e=parseInt(c(),16),isFinite(e));t+=1)i=16*i+e;s+=String.fromCharCode(i)}else if("\r"===n)"\n"===p()&&c();else{if("string"!=typeof a[n])break;s+=a[n]}else{if("\n"===n)break;s+=n}}l("Bad string")},m=function(){"/"!==n&&l("Not an inline comment");do{if(c(),"\n"===n||"\r"===n)return void c()}while(n)},y=function(){"*"!==n&&l("Not a block comment");do{for(c();"*"===n;)if(c("*"),"/"===n)return void c("/")}while(n);l("Unterminated block comment")},g=function(){"/"!==n&&l("Not a comment"),c("/"),"/"===n?m():"*"===n?y():l("Unrecognized comment")},b=function(){for(;n;)if("/"===n)g();else{if(!(o.indexOf(n)>=0))return;c()}},v=function(){switch(n){case"t":return c("t"),c("r"),c("u"),c("e"),!0;case"f":return c("f"),c("a"),c("l"),c("s"),c("e"),!1;case"n":return c("n"),c("u"),c("l"),c("l"),null;case"I":return c("I"),c("n"),c("f"),c("i"),c("n"),c("i"),c("t"),c("y"),1/0;case"N":return c("N"),c("a"),c("N"),NaN}l("Unexpected "+u(n))},x=function(){var e=[];if("["===n)for(c("["),b();n;){if("]"===n)return c("]"),e;if(","===n?l("Missing array element"):e.push(s()),b(),","!==n)return c("]"),e;c(","),b()}l("Bad array")},E=function(){var e,t={};if("{"===n)for(c("{"),b();n;){if("}"===n)return c("}"),t;if(e='"'===n||"'"===n?d():h(),b(),c(":"),t[e]=s(),b(),","!==n)return c("}"),t;c(","),b()}l("Bad object")};return s=function(){switch(b(),n){case"{":return E();case"[":return x();case'"':case"'":return d();case"-":case"+":case".":return f();default:return n>="0"&&n<="9"?f():v()}},function(a,o){var u;return i=String(a),e=0,t=1,r=1,n=" ",u=s(),b(),n&&l("Syntax error"),"function"==typeof o?function e(t,r){var n,i,s=t[r];if(s&&"object"==typeof s)for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(void 0!==(i=e(s,n))?s[n]=i:delete s[n]);return o.call(t,r,s)}({"":u},""):u}}(),n.stringify=function(e,t,r){function i(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"_"===e||"$"===e}function s(e){return e>="a"&&e<="z"||e>="A"&&e<="Z"||"_"===e||"$"===e}function a(e){if("string"!=typeof e)return!1;if(!s(e[0]))return!1;for(var t=1,r=e.length;t<r;){if(!i(e[t]))return!1;t++}return!0}function o(e){return Array.isArray?Array.isArray(e):"[object Array]"===Object.prototype.toString.call(e)}function u(e){return"[object Date]"===Object.prototype.toString.call(e)}function l(e){for(var t=0;t<m.length;t++)if(m[t]===e)throw new TypeError("Converting circular structure to JSON")}function c(e,t,r){if(!e)return"";e.length>10&&(e=e.substring(0,10));for(var n=r?"":"\n",i=0;i<t;i++)n+=e;return n}function p(e){return y.lastIndex=0,y.test(e)?'"'+e.replace(y,function(e){var t=g[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function h(e,t,r){var n,i,s=f(e,t,r);switch(s&&!u(s)&&(s=s.valueOf()),typeof s){case"boolean":return s.toString();case"number":return isNaN(s)||!isFinite(s)?"null":s.toString();case"string":return p(s.toString());case"object":if(null===s)return"null";if(o(s)){l(s),n="[",m.push(s);for(var y=0;y<s.length;y++)i=h(s,y,!1),n+=c(d,m.length),n+=null===i||void 0===i?"null":i,y<s.length-1?n+=",":d&&(n+="\n");m.pop(),s.length&&(n+=c(d,m.length,!0)),n+="]"}else{l(s),n="{";var g=!1;m.push(s);for(var b in s)if(s.hasOwnProperty(b)){var v=h(s,b,!1);r=!1,void 0!==v&&null!==v&&(n+=c(d,m.length),g=!0,n+=(t=a(b)?b:p(b))+":"+(d?" ":"")+v+",")}m.pop(),n=g?n.substring(0,n.length-1)+c(d,m.length)+"}":"{}"}return n;default:return}}if(t&&"function"!=typeof t&&!o(t))throw new Error("Replacer must be a function or an array");var f=function(e,r,n){var i=e[r];return i&&i.toJSON&&"function"==typeof i.toJSON&&(i=i.toJSON()),"function"==typeof t?t.call(e,r,i):t?n||o(e)||t.indexOf(r)>=0?i:void 0:i};n.isWord=a;var d,m=[];r&&("string"==typeof r?d=r:"number"==typeof r&&r>=0&&(d=c(" ",r,!0)));var y=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,g={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},b={"":e};return void 0===e?f(b,"",!0):h(b,"",!0)}},{}],313:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"DataView");t.exports=n},{"./_getNative":417,"./_root":461}],314:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_hashClear"),s=e("./_hashDelete"),a=e("./_hashGet"),o=e("./_hashHas"),u=e("./_hashSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_hashClear":425,"./_hashDelete":426,"./_hashGet":427,"./_hashHas":428,"./_hashSet":429}],315:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_listCacheClear"),s=e("./_listCacheDelete"),a=e("./_listCacheGet"),o=e("./_listCacheHas"),u=e("./_listCacheSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_listCacheClear":441,"./_listCacheDelete":442,"./_listCacheGet":443,"./_listCacheHas":444,"./_listCacheSet":445}],316:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Map");t.exports=n},{"./_getNative":417,"./_root":461}],317:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}var i=e("./_mapCacheClear"),s=e("./_mapCacheDelete"),a=e("./_mapCacheGet"),o=e("./_mapCacheHas"),u=e("./_mapCacheSet");n.prototype.clear=i,n.prototype.delete=s,n.prototype.get=a,n.prototype.has=o,n.prototype.set=u,t.exports=n},{"./_mapCacheClear":446,"./_mapCacheDelete":447,"./_mapCacheGet":448,"./_mapCacheHas":449,"./_mapCacheSet":450}],318:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Promise");t.exports=n},{"./_getNative":417,"./_root":461}],319:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"Set");t.exports=n},{"./_getNative":417,"./_root":461}],320:[function(e,t,r){function n(e){var t=-1,r=null==e?0:e.length;for(this.__data__=new i;++t<r;)this.add(e[t])}var i=e("./_MapCache"),s=e("./_setCacheAdd"),a=e("./_setCacheHas");n.prototype.add=n.prototype.push=s,n.prototype.has=a,t.exports=n},{"./_MapCache":317,"./_setCacheAdd":462,"./_setCacheHas":463}],321:[function(e,t,r){function n(e){var t=this.__data__=new i(e);this.size=t.size}var i=e("./_ListCache"),s=e("./_stackClear"),a=e("./_stackDelete"),o=e("./_stackGet"),u=e("./_stackHas"),l=e("./_stackSet");n.prototype.clear=s,n.prototype.delete=a,n.prototype.get=o,n.prototype.has=u,n.prototype.set=l,t.exports=n},{"./_ListCache":315,"./_stackClear":467,"./_stackDelete":468,"./_stackGet":469,"./_stackHas":470,"./_stackSet":471}],322:[function(e,t,r){var n=e("./_root").Symbol;t.exports=n},{"./_root":461}],323:[function(e,t,r){var n=e("./_root").Uint8Array;t.exports=n},{"./_root":461}],324:[function(e,t,r){var n=e("./_getNative")(e("./_root"),"WeakMap");t.exports=n},{"./_getNative":417,"./_root":461}],325:[function(e,t,r){function n(e,t){return e.set(t[0],t[1]),e}t.exports=n},{}],326:[function(e,t,r){function n(e,t){return e.add(t),e}t.exports=n},{}],327:[function(e,t,r){function n(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}t.exports=n},{}],328:[function(e,t,r){function n(e,t){for(var r=-1,n=null==e?0:e.length;++r<n&&!1!==t(e[r],r,e););return e}t.exports=n},{}],329:[function(e,t,r){function n(e,t){for(var r=-1,n=null==e?0:e.length,i=0,s=[];++r<n;){var a=e[r];t(a,r,e)&&(s[i++]=a)}return s}t.exports=n},{}],330:[function(e,t,r){function n(e,t){return!!(null==e?0:e.length)&&i(e,t,0)>-1}var i=e("./_baseIndexOf");t.exports=n},{"./_baseIndexOf":356}],331:[function(e,t,r){function n(e,t,r){for(var n=-1,i=null==e?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}t.exports=n},{}],332:[function(e,t,r){function n(e,t){var r=a(e),n=!r&&s(e),p=!r&&!n&&o(e),h=!r&&!n&&!p&&l(e),f=r||n||p||h,d=f?i(e.length,String):[],m=d.length;for(var y in e)!t&&!c.call(e,y)||f&&("length"==y||p&&("offset"==y||"parent"==y)||h&&("buffer"==y||"byteLength"==y||"byteOffset"==y)||u(y,m))||d.push(y);return d}var i=e("./_baseTimes"),s=e("./isArguments"),a=e("./isArray"),o=e("./isBuffer"),u=e("./_isIndex"),l=e("./isTypedArray"),c=Object.prototype.hasOwnProperty;t.exports=n},{"./_baseTimes":380,"./_isIndex":434,"./isArguments":496,"./isArray":497,"./isBuffer":500,"./isTypedArray":510}],333:[function(e,t,r){function n(e,t){for(var r=-1,n=null==e?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}t.exports=n},{}],334:[function(e,t,r){function n(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}t.exports=n},{}],335:[function(e,t,r){function n(e,t,r,n){var i=-1,s=null==e?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}t.exports=n},{}],336:[function(e,t,r){function n(e,t){for(var r=-1,n=null==e?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}t.exports=n},{}],337:[function(e,t,r){function n(e,t,r){(void 0===r||s(e[t],r))&&(void 0!==r||t in e)||i(e,t,r)}var i=e("./_baseAssignValue"),s=e("./eq");t.exports=n},{"./_baseAssignValue":342,"./eq":484}],338:[function(e,t,r){function n(e,t,r){var n=e[t];a.call(e,t)&&s(n,r)&&(void 0!==r||t in e)||i(e,t,r)}var i=e("./_baseAssignValue"),s=e("./eq"),a=Object.prototype.hasOwnProperty;t.exports=n},{"./_baseAssignValue":342,"./eq":484}],339:[function(e,t,r){function n(e,t){for(var r=e.length;r--;)if(i(e[r][0],t))return r;return-1}var i=e("./eq");t.exports=n},{"./eq":484}],340:[function(e,t,r){function n(e,t){return e&&i(t,s(t),e)}var i=e("./_copyObject"),s=e("./keys");t.exports=n},{"./_copyObject":398,"./keys":511}],341:[function(e,t,r){function n(e,t){return e&&i(t,s(t),e)}var i=e("./_copyObject"),s=e("./keysIn");t.exports=n},{"./_copyObject":398,"./keysIn":512}],342:[function(e,t,r){function n(e,t,r){"__proto__"==t&&i?i(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}var i=e("./_defineProperty");t.exports=n},{"./_defineProperty":408}],343:[function(e,t,r){function n(e,t,r){return e===e&&(void 0!==r&&(e=e<=r?e:r),void 0!==t&&(e=e>=t?e:t)),e}t.exports=n},{}],344:[function(e,t,r){function n(e,t,r,P,B,O){var j,N=t&D,I=t&C,L=t&S;if(r&&(j=B?r(e,P,B,O):r(e)),void 0!==j)return j;if(!E(e))return e;var M=v(e);if(M){if(j=y(e),!N)return c(e,j)}else{var R=m(e),V=R==w||R==k;if(x(e))return l(e,N);if(R==F||R==_||V&&!B){if(j=I||V?{}:b(e),!N)return I?h(e,u(j,e)):p(e,o(j,e))}else{if(!T[R])return B?e:{};j=g(e,R,n,N)}}O||(O=new i);var U=O.get(e);if(U)return U;O.set(e,j);var q=L?I?d:f:I?keysIn:A,G=M?void 0:q(e);return s(G||e,function(i,s){G&&(i=e[s=i]),a(j,s,n(i,t,r,s,e,O))}),j}var i=e("./_Stack"),s=e("./_arrayEach"),a=e("./_assignValue"),o=e("./_baseAssign"),u=e("./_baseAssignIn"),l=e("./_cloneBuffer"),c=e("./_copyArray"),p=e("./_copySymbols"),h=e("./_copySymbolsIn"),f=e("./_getAllKeys"),d=e("./_getAllKeysIn"),m=e("./_getTag"),y=e("./_initCloneArray"),g=e("./_initCloneByTag"),b=e("./_initCloneObject"),v=e("./isArray"),x=e("./isBuffer"),E=e("./isObject"),A=e("./keys"),D=1,C=2,S=4,_="[object Arguments]",w="[object Function]",k="[object GeneratorFunction]",F="[object Object]",T={};T[_]=T["[object Array]"]=T["[object ArrayBuffer]"]=T["[object DataView]"]=T["[object Boolean]"]=T["[object Date]"]=T["[object Float32Array]"]=T["[object Float64Array]"]=T["[object Int8Array]"]=T["[object Int16Array]"]=T["[object Int32Array]"]=T["[object Map]"]=T["[object Number]"]=T[F]=T["[object RegExp]"]=T["[object Set]"]=T["[object String]"]=T["[object Symbol]"]=T["[object Uint8Array]"]=T["[object Uint8ClampedArray]"]=T["[object Uint16Array]"]=T["[object Uint32Array]"]=!0,T["[object Error]"]=T[w]=T["[object WeakMap]"]=!1,t.exports=n},{"./_Stack":321,"./_arrayEach":328,"./_assignValue":338,"./_baseAssign":340,"./_baseAssignIn":341,"./_cloneBuffer":388,"./_copyArray":397,"./_copySymbols":399,"./_copySymbolsIn":400,"./_getAllKeys":413,"./_getAllKeysIn":414,"./_getTag":422,"./_initCloneArray":430,"./_initCloneByTag":431,"./_initCloneObject":432,"./isArray":497,"./isBuffer":500,"./isObject":504,"./keys":511}],345:[function(e,t,r){var n=e("./isObject"),i=Object.create,s=function(){function e(){}return function(t){if(!n(t))return{};if(i)return i(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}}();t.exports=s},{"./isObject":504}],346:[function(e,t,r){var n=e("./_baseForOwn"),i=e("./_createBaseEach")(n);t.exports=i},{"./_baseForOwn":350,"./_createBaseEach":403}],347:[function(e,t,r){function n(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}t.exports=n},{}],348:[function(e,t,r){function n(e,t,r,a,o){var u=-1,l=e.length;for(r||(r=s),o||(o=[]);++u<l;){var c=e[u];t>0&&r(c)?t>1?n(c,t-1,r,a,o):i(o,c):a||(o[o.length]=c)}return o}var i=e("./_arrayPush"),s=e("./_isFlattenable");t.exports=n},{"./_arrayPush":334,"./_isFlattenable":433}],349:[function(e,t,r){var n=e("./_createBaseFor")();t.exports=n},{"./_createBaseFor":404}],350:[function(e,t,r){function n(e,t){return e&&i(e,t,s)}var i=e("./_baseFor"),s=e("./keys");t.exports=n},{"./_baseFor":349,"./keys":511}],351:[function(e,t,r){function n(e,t){for(var r=0,n=(t=i(t,e)).length;null!=e&&r<n;)e=e[s(t[r++])];return r&&r==n?e:void 0}var i=e("./_castPath"),s=e("./_toKey");t.exports=n},{"./_castPath":386,"./_toKey":474}],352:[function(e,t,r){function n(e,t,r){var n=t(e);return s(e)?n:i(n,r(e))}var i=e("./_arrayPush"),s=e("./isArray");t.exports=n},{"./_arrayPush":334,"./isArray":497}],353:[function(e,t,r){function n(e){return null==e?void 0===e?u:o:l&&l in Object(e)?s(e):a(e)}var i=e("./_Symbol"),s=e("./_getRawTag"),a=e("./_objectToString"),o="[object Null]",u="[object Undefined]",l=i?i.toStringTag:void 0;t.exports=n},{"./_Symbol":322,"./_getRawTag":419,"./_objectToString":458}],354:[function(e,t,r){function n(e,t){return null!=e&&i.call(e,t)}var i=Object.prototype.hasOwnProperty;t.exports=n},{}],355:[function(e,t,r){function n(e,t){return null!=e&&t in Object(e)}t.exports=n},{}],356:[function(e,t,r){function n(e,t,r){return t===t?a(e,t,r):i(e,s,r)}var i=e("./_baseFindIndex"),s=e("./_baseIsNaN"),a=e("./_strictIndexOf");t.exports=n},{"./_baseFindIndex":347,"./_baseIsNaN":361,"./_strictIndexOf":472}],357:[function(e,t,r){function n(e){return s(e)&&i(e)==a}var i=e("./_baseGetTag"),s=e("./isObjectLike"),a="[object Arguments]";t.exports=n},{"./_baseGetTag":353,"./isObjectLike":505}],358:[function(e,t,r){function n(e,t,r,a,o){return e===t||(null==e||null==t||!s(e)&&!s(t)?e!==e&&t!==t:i(e,t,r,a,n,o))}var i=e("./_baseIsEqualDeep"),s=e("./isObjectLike");t.exports=n},{"./_baseIsEqualDeep":359,"./isObjectLike":505}],359:[function(e,t,r){function n(e,t,r,n,g,b){var v=l(e),x=l(t),E=v?d:u(e),A=x?d:u(t),D=(E=E==f?m:E)==m,C=(A=A==f?m:A)==m,S=E==A;if(S&&c(e)){if(!c(t))return!1;v=!0,D=!1}if(S&&!D)return b||(b=new i),v||p(e)?s(e,t,r,n,g,b):a(e,t,E,r,n,g,b);if(!(r&h)){var _=D&&y.call(e,"__wrapped__"),w=C&&y.call(t,"__wrapped__");if(_||w){var k=_?e.value():e,F=w?t.value():t;return b||(b=new i),g(k,F,r,n,b)}}return!!S&&(b||(b=new i),o(e,t,r,n,g,b))}var i=e("./_Stack"),s=e("./_equalArrays"),a=e("./_equalByTag"),o=e("./_equalObjects"),u=e("./_getTag"),l=e("./isArray"),c=e("./isBuffer"),p=e("./isTypedArray"),h=1,f="[object Arguments]",d="[object Array]",m="[object Object]",y=Object.prototype.hasOwnProperty;t.exports=n},{"./_Stack":321,"./_equalArrays":409,"./_equalByTag":410,"./_equalObjects":411,"./_getTag":422,"./isArray":497,"./isBuffer":500,"./isTypedArray":510}],360:[function(e,t,r){function n(e,t,r,n){var u=r.length,l=u,c=!n;if(null==e)return!l;for(e=Object(e);u--;){var p=r[u];if(c&&p[2]?p[1]!==e[p[0]]:!(p[0]in e))return!1}for(;++u<l;){var h=(p=r[u])[0],f=e[h],d=p[1];if(c&&p[2]){if(void 0===f&&!(h in e))return!1}else{var m=new i;if(n)var y=n(f,d,h,e,t,m);if(!(void 0===y?s(d,f,a|o,n,m):y))return!1}}return!0}var i=e("./_Stack"),s=e("./_baseIsEqual"),a=1,o=2;t.exports=n},{"./_Stack":321,"./_baseIsEqual":358}],361:[function(e,t,r){function n(e){return e!==e}t.exports=n},{}],362:[function(e,t,r){function n(e){return!(!a(e)||s(e))&&(i(e)?d:l).test(o(e))}var i=e("./isFunction"),s=e("./_isMasked"),a=e("./isObject"),o=e("./_toSource"),u=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,c=Function.prototype,p=Object.prototype,h=c.toString,f=p.hasOwnProperty,d=RegExp("^"+h.call(f).replace(u,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=n},{"./_isMasked":438,"./_toSource":475,"./isFunction":501,"./isObject":504}],363:[function(e,t,r){function n(e){return s(e)&&i(e)==a}var i=e("./_baseGetTag"),s=e("./isObjectLike"),a="[object RegExp]";t.exports=n},{"./_baseGetTag":353,"./isObjectLike":505}],364:[function(e,t,r){function n(e){return a(e)&&s(e.length)&&!!o[i(e)]}var i=e("./_baseGetTag"),s=e("./isLength"),a=e("./isObjectLike"),o={};o["[object Float32Array]"]=o["[object Float64Array]"]=o["[object Int8Array]"]=o["[object Int16Array]"]=o["[object Int32Array]"]=o["[object Uint8Array]"]=o["[object Uint8ClampedArray]"]=o["[object Uint16Array]"]=o["[object Uint32Array]"]=!0,o["[object Arguments]"]=o["[object Array]"]=o["[object ArrayBuffer]"]=o["[object Boolean]"]=o["[object DataView]"]=o["[object Date]"]=o["[object Error]"]=o["[object Function]"]=o["[object Map]"]=o["[object Number]"]=o["[object Object]"]=o["[object RegExp]"]=o["[object Set]"]=o["[object String]"]=o["[object WeakMap]"]=!1,t.exports=n},{"./_baseGetTag":353,"./isLength":503,"./isObjectLike":505}],365:[function(e,t,r){function n(e){return"function"==typeof e?e:null==e?a:"object"==typeof e?o(e)?s(e[0],e[1]):i(e):u(e)}var i=e("./_baseMatches"),s=e("./_baseMatchesProperty"),a=e("./identity"),o=e("./isArray"),u=e("./property");t.exports=n},{"./_baseMatches":369,"./_baseMatchesProperty":370,"./identity":494,"./isArray":497,"./property":517}],366:[function(e,t,r){function n(e){if(!i(e))return s(e);var t=[];for(var r in Object(e))a.call(e,r)&&"constructor"!=r&&t.push(r);return t}var i=e("./_isPrototype"),s=e("./_nativeKeys"),a=Object.prototype.hasOwnProperty;t.exports=n},{"./_isPrototype":439,"./_nativeKeys":455}],367:[function(e,t,r){function n(e){if(!i(e))return a(e);var t=s(e),r=[];for(var n in e)("constructor"!=n||!t&&o.call(e,n))&&r.push(n);return r}var i=e("./isObject"),s=e("./_isPrototype"),a=e("./_nativeKeysIn"),o=Object.prototype.hasOwnProperty;t.exports=n},{"./_isPrototype":439,"./_nativeKeysIn":456,"./isObject":504}],368:[function(e,t,r){function n(e,t){var r=-1,n=s(e)?Array(e.length):[];return i(e,function(e,i,s){n[++r]=t(e,i,s)}),n}var i=e("./_baseEach"),s=e("./isArrayLike");t.exports=n},{"./_baseEach":346,"./isArrayLike":498}],369:[function(e,t,r){function n(e){var t=s(e);return 1==t.length&&t[0][2]?a(t[0][0],t[0][1]):function(r){return r===e||i(r,e,t)}}var i=e("./_baseIsMatch"),s=e("./_getMatchData"),a=e("./_matchesStrictComparable");t.exports=n},{"./_baseIsMatch":360,"./_getMatchData":416,"./_matchesStrictComparable":452}],370:[function(e,t,r){function n(e,t){return o(e)&&u(t)?l(c(e),t):function(r){var n=s(r,e);return void 0===n&&n===t?a(r,e):i(t,n,p|h)}}var i=e("./_baseIsEqual"),s=e("./get"),a=e("./hasIn"),o=e("./_isKey"),u=e("./_isStrictComparable"),l=e("./_matchesStrictComparable"),c=e("./_toKey"),p=1,h=2;t.exports=n},{"./_baseIsEqual":358,"./_isKey":436,"./_isStrictComparable":440,"./_matchesStrictComparable":452,"./_toKey":474,"./get":491,"./hasIn":493}],371:[function(e,t,r){function n(e,t,r,c,p){e!==t&&a(t,function(a,l){if(u(a))p||(p=new i),o(e,t,l,r,n,c,p);else{var h=c?c(e[l],a,l+"",e,t,p):void 0;void 0===h&&(h=a),s(e,l,h)}},l)}var i=e("./_Stack"),s=e("./_assignMergeValue"),a=e("./_baseFor"),o=e("./_baseMergeDeep"),u=e("./isObject"),l=e("./keysIn");t.exports=n},{"./_Stack":321,"./_assignMergeValue":337,"./_baseFor":349,"./_baseMergeDeep":372,"./isObject":504,"./keysIn":512}],372:[function(e,t,r){function n(e,t,r,n,b,v,x){var E=e[r],A=t[r],D=x.get(A);if(D)i(e,r,D);else{var C=v?v(E,A,r+"",e,t,x):void 0,S=void 0===C;if(S){var _=c(A),w=!_&&h(A),k=!_&&!w&&y(A);C=A,_||w||k?c(E)?C=E:p(E)?C=o(E):w?(S=!1,C=s(A,!0)):k?(S=!1,C=a(A,!0)):C=[]:m(A)||l(A)?(C=E,l(E)?C=g(E):(!d(E)||n&&f(E))&&(C=u(A))):S=!1}S&&(x.set(A,C),b(C,A,n,v,x),x.delete(A)),i(e,r,C)}}var i=e("./_assignMergeValue"),s=e("./_cloneBuffer"),a=e("./_cloneTypedArray"),o=e("./_copyArray"),u=e("./_initCloneObject"),l=e("./isArguments"),c=e("./isArray"),p=e("./isArrayLikeObject"),h=e("./isBuffer"),f=e("./isFunction"),d=e("./isObject"),m=e("./isPlainObject"),y=e("./isTypedArray"),g=e("./toPlainObject");t.exports=n},{"./_assignMergeValue":337,"./_cloneBuffer":388,"./_cloneTypedArray":394,"./_copyArray":397,"./_initCloneObject":432,"./isArguments":496,"./isArray":497,"./isArrayLikeObject":499,"./isBuffer":500,"./isFunction":501,"./isObject":504,"./isPlainObject":506,"./isTypedArray":510,"./toPlainObject":526}],373:[function(e,t,r){function n(e,t,r){var n=-1;t=i(t.length?t:[c],u(s));var p=a(e,function(e,r,s){return{criteria:i(t,function(t){return t(e)}),index:++n,value:e}});return o(p,function(e,t){return l(e,t,r)})}var i=e("./_arrayMap"),s=e("./_baseIteratee"),a=e("./_baseMap"),o=e("./_baseSortBy"),u=e("./_baseUnary"),l=e("./_compareMultiple"),c=e("./identity");t.exports=n},{"./_arrayMap":333,"./_baseIteratee":365,"./_baseMap":368,"./_baseSortBy":379,"./_baseUnary":382,"./_compareMultiple":396,"./identity":494}],374:[function(e,t,r){function n(e){return function(t){return null==t?void 0:t[e]}}t.exports=n},{}],375:[function(e,t,r){function n(e){return function(t){return i(t,e)}}var i=e("./_baseGet");t.exports=n},{"./_baseGet":351}],376:[function(e,t,r){function n(e,t){var r="";if(!e||t<1||t>i)return r;do{t%2&&(r+=e),(t=s(t/2))&&(e+=e)}while(t);return r}var i=9007199254740991,s=Math.floor;t.exports=n},{}],377:[function(e,t,r){function n(e,t){return a(s(e,t,i),e+"")}var i=e("./identity"),s=e("./_overRest"),a=e("./_setToString");t.exports=n},{"./_overRest":460,"./_setToString":465,"./identity":494}],378:[function(e,t,r){var n=e("./constant"),i=e("./_defineProperty"),s=e("./identity"),a=i?function(e,t){return i(e,"toString",{configurable:!0,enumerable:!1,value:n(t),writable:!0})}:s;t.exports=a},{"./_defineProperty":408,"./constant":482,"./identity":494}],379:[function(e,t,r){function n(e,t){var r=e.length;for(e.sort(t);r--;)e[r]=e[r].value;return e}t.exports=n},{}],380:[function(e,t,r){function n(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}t.exports=n},{}],381:[function(e,t,r){function n(e){if("string"==typeof e)return e;if(a(e))return s(e,n)+"";if(o(e))return c?c.call(e):"";var t=e+"";return"0"==t&&1/e==-u?"-0":t}var i=e("./_Symbol"),s=e("./_arrayMap"),a=e("./isArray"),o=e("./isSymbol"),u=1/0,l=i?i.prototype:void 0,c=l?l.toString:void 0;t.exports=n},{"./_Symbol":322,"./_arrayMap":333,"./isArray":497,"./isSymbol":509}],382:[function(e,t,r){function n(e){return function(t){return e(t)}}t.exports=n},{}],383:[function(e,t,r){function n(e,t,r){var n=-1,p=s,h=e.length,f=!0,d=[],m=d;if(r)f=!1,p=a;else if(h>=c){var y=t?null:u(e);if(y)return l(y);f=!1,p=o,m=new i}else m=t?[]:d;e:for(;++n<h;){var g=e[n],b=t?t(g):g;if(g=r||0!==g?g:0,f&&b===b){for(var v=m.length;v--;)if(m[v]===b)continue e;t&&m.push(b),d.push(g)}else p(m,b,r)||(m!==d&&m.push(b),d.push(g))}return d}var i=e("./_SetCache"),s=e("./_arrayIncludes"),a=e("./_arrayIncludesWith"),o=e("./_cacheHas"),u=e("./_createSet"),l=e("./_setToArray"),c=200;t.exports=n},{"./_SetCache":320,"./_arrayIncludes":330,"./_arrayIncludesWith":331,"./_cacheHas":385,"./_createSet":406,"./_setToArray":464}],384:[function(e,t,r){function n(e,t){return i(t,function(t){return e[t]})}var i=e("./_arrayMap");t.exports=n},{"./_arrayMap":333}],385:[function(e,t,r){function n(e,t){return e.has(t)}t.exports=n},{}],386:[function(e,t,r){function n(e,t){return i(e)?e:s(e,t)?[e]:a(o(e))}var i=e("./isArray"),s=e("./_isKey"),a=e("./_stringToPath"),o=e("./toString");t.exports=n},{"./_isKey":436,"./_stringToPath":473,"./isArray":497,"./toString":527}],387:[function(e,t,r){function n(e){var t=new e.constructor(e.byteLength);return new i(t).set(new i(e)),t}var i=e("./_Uint8Array");t.exports=n},{"./_Uint8Array":323}],388:[function(e,t,r){function n(e,t){if(t)return e.slice();var r=e.length,n=u?u(r):new e.constructor(r);return e.copy(n),n}var i=e("./_root"),s="object"==typeof r&&r&&!r.nodeType&&r,a=s&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===s?i.Buffer:void 0,u=o?o.allocUnsafe:void 0;t.exports=n},{"./_root":461}],389:[function(e,t,r){function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}var i=e("./_cloneArrayBuffer");t.exports=n},{"./_cloneArrayBuffer":387}],390:[function(e,t,r){function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=e("./_addMapEntry"),s=e("./_arrayReduce"),a=e("./_mapToArray"),o=1;t.exports=n},{"./_addMapEntry":325,"./_arrayReduce":335,"./_mapToArray":451}],391:[function(e,t,r){function n(e){var t=new e.constructor(e.source,i.exec(e));return t.lastIndex=e.lastIndex,t}var i=/\w*$/;t.exports=n},{}],392:[function(e,t,r){function n(e,t,r){var n=t?r(a(e),o):a(e);return s(n,i,new e.constructor)}var i=e("./_addSetEntry"),s=e("./_arrayReduce"),a=e("./_setToArray"),o=1;t.exports=n},{"./_addSetEntry":326,"./_arrayReduce":335,"./_setToArray":464}],393:[function(e,t,r){function n(e){return a?Object(a.call(e)):{}}var i=e("./_Symbol"),s=i?i.prototype:void 0,a=s?s.valueOf:void 0;t.exports=n},{"./_Symbol":322}],394:[function(e,t,r){function n(e,t){var r=t?i(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}var i=e("./_cloneArrayBuffer");t.exports=n},{"./_cloneArrayBuffer":387}],395:[function(e,t,r){function n(e,t){if(e!==t){var r=void 0!==e,n=null===e,s=e===e,a=i(e),o=void 0!==t,u=null===t,l=t===t,c=i(t);if(!u&&!c&&!a&&e>t||a&&o&&l&&!u&&!c||n&&o&&l||!r&&l||!s)return 1;if(!n&&!a&&!c&&e<t||c&&r&&s&&!n&&!a||u&&r&&s||!o&&s||!l)return-1}return 0}var i=e("./isSymbol");t.exports=n},{"./isSymbol":509}],396:[function(e,t,r){function n(e,t,r){for(var n=-1,s=e.criteria,a=t.criteria,o=s.length,u=r.length;++n<o;){var l=i(s[n],a[n]);if(l)return n>=u?l:l*("desc"==r[n]?-1:1)}return e.index-t.index}var i=e("./_compareAscending");t.exports=n},{"./_compareAscending":395}],397:[function(e,t,r){function n(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}t.exports=n},{}],398:[function(e,t,r){function n(e,t,r,n){var a=!r;r||(r={});for(var o=-1,u=t.length;++o<u;){var l=t[o],c=n?n(r[l],e[l],l,r,e):void 0;void 0===c&&(c=e[l]),a?s(r,l,c):i(r,l,c)}return r}var i=e("./_assignValue"),s=e("./_baseAssignValue");t.exports=n},{"./_assignValue":338,"./_baseAssignValue":342}],399:[function(e,t,r){function n(e,t){return i(e,s(e),t)}var i=e("./_copyObject"),s=e("./_getSymbols");t.exports=n},{"./_copyObject":398,"./_getSymbols":420}],400:[function(e,t,r){function n(e,t){return i(e,s(e),t)}var i=e("./_copyObject"),s=e("./_getSymbolsIn");t.exports=n},{"./_copyObject":398,"./_getSymbolsIn":421}],401:[function(e,t,r){var n=e("./_root")["__core-js_shared__"];t.exports=n},{"./_root":461}],402:[function(e,t,r){function n(e){return i(function(t,r){var n=-1,i=r.length,a=i>1?r[i-1]:void 0,o=i>2?r[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,o&&s(r[0],r[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++n<i;){var u=r[n];u&&e(t,u,n,a)}return t})}var i=e("./_baseRest"),s=e("./_isIterateeCall");t.exports=n},{"./_baseRest":377,"./_isIterateeCall":435}],403:[function(e,t,r){function n(e,t){return function(r,n){if(null==r)return r;if(!i(r))return e(r,n);for(var s=r.length,a=t?s:-1,o=Object(r);(t?a--:++a<s)&&!1!==n(o[a],a,o););return r}}var i=e("./isArrayLike");t.exports=n},{"./isArrayLike":498}],404:[function(e,t,r){function n(e){return function(t,r,n){for(var i=-1,s=Object(t),a=n(t),o=a.length;o--;){var u=a[e?o:++i];if(!1===r(s[u],u,s))break}return t}}t.exports=n},{}],405:[function(e,t,r){function n(e){return function(t,r,n){var o=Object(t);if(!s(t)){var u=i(r,3);t=a(t),r=function(e){return u(o[e],e,o)}}var l=e(t,r,n);return l>-1?o[u?t[l]:l]:void 0}}var i=e("./_baseIteratee"),s=e("./isArrayLike"),a=e("./keys");t.exports=n},{"./_baseIteratee":365,"./isArrayLike":498,"./keys":511}],406:[function(e,t,r){var n=e("./_Set"),i=e("./noop"),s=e("./_setToArray"),a=n&&1/s(new n([,-0]))[1]==1/0?function(e){return new n(e)}:i;t.exports=a},{"./_Set":319,"./_setToArray":464,"./noop":516}],407:[function(e,t,r){function n(e,t,r,n){return void 0===e||i(e,s[r])&&!a.call(n,r)?t:e}var i=e("./eq"),s=Object.prototype,a=s.hasOwnProperty;t.exports=n},{"./eq":484}],408:[function(e,t,r){var n=e("./_getNative"),i=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch(e){}}();t.exports=i},{"./_getNative":417}],409:[function(e,t,r){function n(e,t,r,n,l,c){var p=r&o,h=e.length,f=t.length;if(h!=f&&!(p&&f>h))return!1;var d=c.get(e);if(d&&c.get(t))return d==t;var m=-1,y=!0,g=r&u?new i:void 0;for(c.set(e,t),c.set(t,e);++m<h;){var b=e[m],v=t[m];if(n)var x=p?n(v,b,m,t,e,c):n(b,v,m,e,t,c);if(void 0!==x){if(x)continue;y=!1;break}if(g){if(!s(t,function(e,t){if(!a(g,t)&&(b===e||l(b,e,r,n,c)))return g.push(t)})){y=!1;break}}else if(b!==v&&!l(b,v,r,n,c)){y=!1;break}}return c.delete(e),c.delete(t),y}var i=e("./_SetCache"),s=e("./_arraySome"),a=e("./_cacheHas"),o=1,u=2;t.exports=n},{"./_SetCache":320,"./_arraySome":336,"./_cacheHas":385}],410:[function(e,t,r){function n(e,t,r,n,i,D,S){switch(r){case A:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case E:return!(e.byteLength!=t.byteLength||!D(new s(e),new s(t)));case h:case f:case y:return a(+e,+t);case d:return e.name==t.name&&e.message==t.message;case g:case v:return e==t+"";case m:var _=u;case b:var w=n&c;if(_||(_=l),e.size!=t.size&&!w)return!1;var k=S.get(e);if(k)return k==t;n|=p,S.set(e,t);var F=o(_(e),_(t),n,i,D,S);return S.delete(e),F;case x:if(C)return C.call(e)==C.call(t)}return!1}var i=e("./_Symbol"),s=e("./_Uint8Array"),a=e("./eq"),o=e("./_equalArrays"),u=e("./_mapToArray"),l=e("./_setToArray"),c=1,p=2,h="[object Boolean]",f="[object Date]",d="[object Error]",m="[object Map]",y="[object Number]",g="[object RegExp]",b="[object Set]",v="[object String]",x="[object Symbol]",E="[object ArrayBuffer]",A="[object DataView]",D=i?i.prototype:void 0,C=D?D.valueOf:void 0;t.exports=n},{"./_Symbol":322,"./_Uint8Array":323,"./_equalArrays":409,"./_mapToArray":451,"./_setToArray":464,"./eq":484}],411:[function(e,t,r){function n(e,t,r,n,o,u){var l=r&s,c=i(e),p=c.length;if(p!=i(t).length&&!l)return!1;for(var h=p;h--;){var f=c[h];if(!(l?f in t:a.call(t,f)))return!1}var d=u.get(e);if(d&&u.get(t))return d==t;var m=!0;u.set(e,t),u.set(t,e);for(var y=l;++h<p;){var g=e[f=c[h]],b=t[f];if(n)var v=l?n(b,g,f,t,e,u):n(g,b,f,e,t,u);if(!(void 0===v?g===b||o(g,b,r,n,u):v)){m=!1;break}y||(y="constructor"==f)}if(m&&!y){var x=e.constructor,E=t.constructor;x!=E&&"constructor"in e&&"constructor"in t&&!("function"==typeof x&&x instanceof x&&"function"==typeof E&&E instanceof E)&&(m=!1)}return u.delete(e),u.delete(t),m}var i=e("./_getAllKeys"),s=1,a=Object.prototype.hasOwnProperty;t.exports=n},{"./_getAllKeys":413}],412:[function(e,t,r){(function(e){var r="object"==typeof e&&e&&e.Object===Object&&e;t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],413:[function(e,t,r){function n(e){return i(e,a,s)}var i=e("./_baseGetAllKeys"),s=e("./_getSymbols"),a=e("./keys");t.exports=n},{"./_baseGetAllKeys":352,"./_getSymbols":420,"./keys":511}],414:[function(e,t,r){function n(e){return i(e,a,s)}var i=e("./_baseGetAllKeys"),s=e("./_getSymbolsIn"),a=e("./keysIn");t.exports=n},{"./_baseGetAllKeys":352,"./_getSymbolsIn":421,"./keysIn":512}],415:[function(e,t,r){function n(e,t){var r=e.__data__;return i(t)?r["string"==typeof t?"string":"hash"]:r.map}var i=e("./_isKeyable");t.exports=n},{"./_isKeyable":437}],416:[function(e,t,r){function n(e){for(var t=s(e),r=t.length;r--;){var n=t[r],a=e[n];t[r]=[n,a,i(a)]}return t}var i=e("./_isStrictComparable"),s=e("./keys");t.exports=n},{"./_isStrictComparable":440,"./keys":511}],417:[function(e,t,r){function n(e,t){var r=s(e,t);return i(r)?r:void 0}var i=e("./_baseIsNative"),s=e("./_getValue");t.exports=n},{"./_baseIsNative":362,"./_getValue":423}],418:[function(e,t,r){var n=e("./_overArg")(Object.getPrototypeOf,Object);t.exports=n},{"./_overArg":459}],419:[function(e,t,r){function n(e){var t=a.call(e,u),r=e[u];try{e[u]=void 0;var n=!0}catch(e){}var i=o.call(e);return n&&(t?e[u]=r:delete e[u]),i}var i=e("./_Symbol"),s=Object.prototype,a=s.hasOwnProperty,o=s.toString,u=i?i.toStringTag:void 0;t.exports=n},{"./_Symbol":322}],420:[function(e,t,r){var n=e("./_arrayFilter"),i=e("./stubArray"),s=Object.prototype.propertyIsEnumerable,a=Object.getOwnPropertySymbols,o=a?function(e){return null==e?[]:(e=Object(e),n(a(e),function(t){return s.call(e,t)}))}:i;t.exports=o},{"./_arrayFilter":329,"./stubArray":521}],421:[function(e,t,r){var n=e("./_arrayPush"),i=e("./_getPrototype"),s=e("./_getSymbols"),a=e("./stubArray"),o=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)n(t,s(e)),e=i(e);return t}:a;t.exports=o},{"./_arrayPush":334,"./_getPrototype":418,"./_getSymbols":420,"./stubArray":521}],422:[function(e,t,r){var n=e("./_DataView"),i=e("./_Map"),s=e("./_Promise"),a=e("./_Set"),o=e("./_WeakMap"),u=e("./_baseGetTag"),l=e("./_toSource"),c=l(n),p=l(i),h=l(s),f=l(a),d=l(o),m=u;(n&&"[object DataView]"!=m(new n(new ArrayBuffer(1)))||i&&"[object Map]"!=m(new i)||s&&"[object Promise]"!=m(s.resolve())||a&&"[object Set]"!=m(new a)||o&&"[object WeakMap]"!=m(new o))&&(m=function(e){var t=u(e),r="[object Object]"==t?e.constructor:void 0,n=r?l(r):"";if(n)switch(n){case c:return"[object DataView]";case p:return"[object Map]";case h:return"[object Promise]";case f:return"[object Set]";case d:return"[object WeakMap]"}return t}),t.exports=m},{"./_DataView":313,"./_Map":316,"./_Promise":318,"./_Set":319,"./_WeakMap":324,"./_baseGetTag":353,"./_toSource":475}],423:[function(e,t,r){function n(e,t){return null==e?void 0:e[t]}t.exports=n},{}],424:[function(e,t,r){function n(e,t,r){for(var n=-1,c=(t=i(t,e)).length,p=!1;++n<c;){var h=l(t[n]);if(!(p=null!=e&&r(e,h)))break;e=e[h]}return p||++n!=c?p:!!(c=null==e?0:e.length)&&u(c)&&o(h,c)&&(a(e)||s(e))}var i=e("./_castPath"),s=e("./isArguments"),a=e("./isArray"),o=e("./_isIndex"),u=e("./isLength"),l=e("./_toKey");t.exports=n},{"./_castPath":386,"./_isIndex":434,"./_toKey":474,"./isArguments":496,"./isArray":497,"./isLength":503}],425:[function(e,t,r){function n(){this.__data__=i?i(null):{},this.size=0}var i=e("./_nativeCreate");t.exports=n},{"./_nativeCreate":454}],426:[function(e,t,r){function n(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}t.exports=n},{}],427:[function(e,t,r){function n(e){var t=this.__data__;if(i){var r=t[e];return r===s?void 0:r}return a.call(t,e)?t[e]:void 0}var i=e("./_nativeCreate"),s="__lodash_hash_undefined__",a=Object.prototype.hasOwnProperty;t.exports=n},{"./_nativeCreate":454}],428:[function(e,t,r){function n(e){var t=this.__data__;return i?void 0!==t[e]:s.call(t,e)}var i=e("./_nativeCreate"),s=Object.prototype.hasOwnProperty;t.exports=n},{"./_nativeCreate":454}],429:[function(e,t,r){function n(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=i&&void 0===t?s:t,this}var i=e("./_nativeCreate"),s="__lodash_hash_undefined__";t.exports=n},{"./_nativeCreate":454}],430:[function(e,t,r){function n(e){var t=e.length,r=e.constructor(t);return t&&"string"==typeof e[0]&&i.call(e,"index")&&(r.index=e.index,r.input=e.input),r}var i=Object.prototype.hasOwnProperty;t.exports=n},{}],431:[function(e,t,r){function n(e,t,r,n){var T=e.constructor;switch(t){case v:return i(e);case p:case h:return new T(+e);case x:return s(e,n);case E:case A:case D:case C:case S:case _:case w:case k:case F:return c(e,n);case f:return a(e,n,r);case d:case g:return new T(e);case m:return o(e);case y:return u(e,n,r);case b:return l(e)}}var i=e("./_cloneArrayBuffer"),s=e("./_cloneDataView"),a=e("./_cloneMap"),o=e("./_cloneRegExp"),u=e("./_cloneSet"),l=e("./_cloneSymbol"),c=e("./_cloneTypedArray"),p="[object Boolean]",h="[object Date]",f="[object Map]",d="[object Number]",m="[object RegExp]",y="[object Set]",g="[object String]",b="[object Symbol]",v="[object ArrayBuffer]",x="[object DataView]",E="[object Float32Array]",A="[object Float64Array]",D="[object Int8Array]",C="[object Int16Array]",S="[object Int32Array]",_="[object Uint8Array]",w="[object Uint8ClampedArray]",k="[object Uint16Array]",F="[object Uint32Array]";t.exports=n},{"./_cloneArrayBuffer":387,"./_cloneDataView":389,"./_cloneMap":390,"./_cloneRegExp":391,"./_cloneSet":392,"./_cloneSymbol":393,"./_cloneTypedArray":394}],432:[function(e,t,r){function n(e){return"function"!=typeof e.constructor||a(e)?{}:i(s(e))}var i=e("./_baseCreate"),s=e("./_getPrototype"),a=e("./_isPrototype");t.exports=n},{"./_baseCreate":345,"./_getPrototype":418,"./_isPrototype":439}],433:[function(e,t,r){function n(e){return a(e)||s(e)||!!(o&&e&&e[o])}var i=e("./_Symbol"),s=e("./isArguments"),a=e("./isArray"),o=i?i.isConcatSpreadable:void 0;t.exports=n},{"./_Symbol":322,"./isArguments":496,"./isArray":497}],434:[function(e,t,r){function n(e,t){return!!(t=null==t?i:t)&&("number"==typeof e||s.test(e))&&e>-1&&e%1==0&&e<t}var i=9007199254740991,s=/^(?:0|[1-9]\d*)$/;t.exports=n},{}],435:[function(e,t,r){function n(e,t,r){if(!o(r))return!1;var n=typeof t;return!!("number"==n?s(r)&&a(t,r.length):"string"==n&&t in r)&&i(r[t],e)}var i=e("./eq"),s=e("./isArrayLike"),a=e("./_isIndex"),o=e("./isObject");t.exports=n},{"./_isIndex":434,"./eq":484,"./isArrayLike":498,"./isObject":504}],436:[function(e,t,r){function n(e,t){if(i(e))return!1;var r=typeof e;return!("number"!=r&&"symbol"!=r&&"boolean"!=r&&null!=e&&!s(e))||(o.test(e)||!a.test(e)||null!=t&&e in Object(t))}var i=e("./isArray"),s=e("./isSymbol"),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,o=/^\w*$/;t.exports=n},{"./isArray":497,"./isSymbol":509}],437:[function(e,t,r){function n(e){var t=typeof e;return"string"==t||"number"==t||"symbol"==t||"boolean"==t?"__proto__"!==e:null===e}t.exports=n},{}],438:[function(e,t,r){function n(e){return!!s&&s in e}var i=e("./_coreJsData"),s=function(){var e=/[^.]+$/.exec(i&&i.keys&&i.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();t.exports=n},{"./_coreJsData":401}],439:[function(e,t,r){function n(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||i)}var i=Object.prototype;t.exports=n},{}],440:[function(e,t,r){function n(e){return e===e&&!i(e)}var i=e("./isObject");t.exports=n},{"./isObject":504}],441:[function(e,t,r){function n(){this.__data__=[],this.size=0}t.exports=n},{}],442:[function(e,t,r){function n(e){var t=this.__data__,r=i(t,e);return!(r<0)&&(r==t.length-1?t.pop():s.call(t,r,1),--this.size,!0)}var i=e("./_assocIndexOf"),s=Array.prototype.splice;t.exports=n},{"./_assocIndexOf":339}],443:[function(e,t,r){function n(e){var t=this.__data__,r=i(t,e);return r<0?void 0:t[r][1]}var i=e("./_assocIndexOf");t.exports=n},{"./_assocIndexOf":339}],444:[function(e,t,r){function n(e){return i(this.__data__,e)>-1}var i=e("./_assocIndexOf");t.exports=n},{"./_assocIndexOf":339}],445:[function(e,t,r){function n(e,t){var r=this.__data__,n=i(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}var i=e("./_assocIndexOf");t.exports=n},{"./_assocIndexOf":339}],446:[function(e,t,r){function n(){this.size=0,this.__data__={hash:new i,map:new(a||s),string:new i}}var i=e("./_Hash"),s=e("./_ListCache"),a=e("./_Map");t.exports=n},{"./_Hash":314,"./_ListCache":315,"./_Map":316}],447:[function(e,t,r){function n(e){var t=i(this,e).delete(e);return this.size-=t?1:0,t}var i=e("./_getMapData");t.exports=n},{"./_getMapData":415}],448:[function(e,t,r){function n(e){return i(this,e).get(e)}var i=e("./_getMapData");t.exports=n},{"./_getMapData":415}],449:[function(e,t,r){function n(e){return i(this,e).has(e)}var i=e("./_getMapData");t.exports=n},{"./_getMapData":415}],450:[function(e,t,r){function n(e,t){var r=i(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}var i=e("./_getMapData");t.exports=n},{"./_getMapData":415}],451:[function(e,t,r){function n(e){var t=-1,r=Array(e.size);return e.forEach(function(e,n){r[++t]=[n,e]}),r}t.exports=n},{}],452:[function(e,t,r){function n(e,t){return function(r){return null!=r&&(r[e]===t&&(void 0!==t||e in Object(r)))}}t.exports=n},{}],453:[function(e,t,r){function n(e){var t=i(e,function(e){return r.size===s&&r.clear(),e}),r=t.cache;return t}var i=e("./memoize"),s=500;t.exports=n},{"./memoize":514}],454:[function(e,t,r){var n=e("./_getNative")(Object,"create");t.exports=n},{"./_getNative":417}],455:[function(e,t,r){var n=e("./_overArg")(Object.keys,Object);t.exports=n},{"./_overArg":459}],456:[function(e,t,r){function n(e){var t=[];if(null!=e)for(var r in Object(e))t.push(r);return t}t.exports=n},{}],457:[function(e,t,r){var n=e("./_freeGlobal"),i="object"==typeof r&&r&&!r.nodeType&&r,s=i&&"object"==typeof t&&t&&!t.nodeType&&t,a=s&&s.exports===i&&n.process,o=function(){try{return a&&a.binding&&a.binding("util")}catch(e){}}();t.exports=o},{"./_freeGlobal":412}],458:[function(e,t,r){function n(e){return i.call(e)}var i=Object.prototype.toString;t.exports=n},{}],459:[function(e,t,r){function n(e,t){return function(r){return e(t(r))}}t.exports=n},{}],460:[function(e,t,r){function n(e,t,r){return t=s(void 0===t?e.length-1:t,0),function(){for(var n=arguments,a=-1,o=s(n.length-t,0),u=Array(o);++a<o;)u[a]=n[t+a];a=-1;for(var l=Array(t+1);++a<t;)l[a]=n[a];return l[t]=r(u),i(e,this,l)}}var i=e("./_apply"),s=Math.max;t.exports=n},{"./_apply":327}],461:[function(e,t,r){var n=e("./_freeGlobal"),i="object"==typeof self&&self&&self.Object===Object&&self,s=n||i||Function("return this")();t.exports=s},{"./_freeGlobal":412}],462:[function(e,t,r){function n(e){return this.__data__.set(e,i),this}var i="__lodash_hash_undefined__";t.exports=n},{}],463:[function(e,t,r){function n(e){return this.__data__.has(e)}t.exports=n},{}],464:[function(e,t,r){function n(e){var t=-1,r=Array(e.size);return e.forEach(function(e){r[++t]=e}),r}t.exports=n},{}],465:[function(e,t,r){var n=e("./_baseSetToString"),i=e("./_shortOut")(n);t.exports=i},{"./_baseSetToString":378,"./_shortOut":466}],466:[function(e,t,r){function n(e){var t=0,r=0;return function(){var n=a(),o=s-(n-r);if(r=n,o>0){if(++t>=i)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var i=800,s=16,a=Date.now;t.exports=n},{}],467:[function(e,t,r){function n(){this.__data__=new i,this.size=0}var i=e("./_ListCache");t.exports=n},{"./_ListCache":315}],468:[function(e,t,r){function n(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}t.exports=n},{}],469:[function(e,t,r){function n(e){return this.__data__.get(e)}t.exports=n},{}],470:[function(e,t,r){function n(e){return this.__data__.has(e)}t.exports=n},{}],471:[function(e,t,r){function n(e,t){var r=this.__data__;if(r instanceof i){var n=r.__data__;if(!s||n.length<o-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new a(n)}return r.set(e,t),this.size=r.size,this}var i=e("./_ListCache"),s=e("./_Map"),a=e("./_MapCache"),o=200;t.exports=n},{"./_ListCache":315,"./_Map":316,"./_MapCache":317}],472:[function(e,t,r){function n(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}t.exports=n},{}],473:[function(e,t,r){var n=/^\./,i=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,s=/\\(\\)?/g,a=e("./_memoizeCapped")(function(e){var t=[];return n.test(e)&&t.push(""),e.replace(i,function(e,r,n,i){t.push(n?i.replace(s,"$1"):r||e)}),t});t.exports=a},{"./_memoizeCapped":453}],474:[function(e,t,r){function n(e){if("string"==typeof e||i(e))return e;var t=e+"";return"0"==t&&1/e==-s?"-0":t}var i=e("./isSymbol"),s=1/0;t.exports=n},{"./isSymbol":509}],475:[function(e,t,r){function n(e){if(null!=e){try{return i.call(e)}catch(e){}try{return e+""}catch(e){}}return""}var i=Function.prototype.toString;t.exports=n},{}],476:[function(e,t,r){var n=e("./_assignValue"),i=e("./_copyObject"),s=e("./_createAssigner"),a=e("./isArrayLike"),o=e("./_isPrototype"),u=e("./keys"),l=Object.prototype.hasOwnProperty,c=s(function(e,t){if(o(t)||a(t))i(t,u(t),e);else for(var r in t)l.call(t,r)&&n(e,r,t[r])});t.exports=c},{"./_assignValue":338,"./_copyObject":398,"./_createAssigner":402,"./_isPrototype":439,"./isArrayLike":498,"./keys":511}],477:[function(e,t,r){var n=e("./_copyObject"),i=e("./_createAssigner"),s=e("./keysIn"),a=i(function(e,t){n(t,s(t),e)});t.exports=a},{"./_copyObject":398,"./_createAssigner":402,"./keysIn":512}],478:[function(e,t,r){var n=e("./_copyObject"),i=e("./_createAssigner"),s=e("./keysIn"),a=i(function(e,t,r,i){n(t,s(t),e,i)});t.exports=a},{"./_copyObject":398,"./_createAssigner":402,"./keysIn":512}],479:[function(e,t,r){function n(e){return i(e,s)}var i=e("./_baseClone"),s=4;t.exports=n},{"./_baseClone":344}],480:[function(e,t,r){function n(e){return i(e,s|a)}var i=e("./_baseClone"),s=1,a=4;t.exports=n},{"./_baseClone":344}],481:[function(e,t,r){function n(e,t){return t="function"==typeof t?t:void 0,i(e,s|a,t)}var i=e("./_baseClone"),s=1,a=4;t.exports=n},{"./_baseClone":344}],482:[function(e,t,r){function n(e){return function(){return e}}t.exports=n},{}],483:[function(e,t,r){var n=e("./_apply"),i=e("./assignInWith"),s=e("./_baseRest"),a=e("./_customDefaultsAssignIn"),o=s(function(e){return e.push(void 0,a),n(i,void 0,e)});t.exports=o},{"./_apply":327,"./_baseRest":377,"./_customDefaultsAssignIn":407,"./assignInWith":478}],484:[function(e,t,r){function n(e,t){return e===t||e!==e&&t!==t}t.exports=n},{}],485:[function(e,t,r){function n(e){return e=i(e),e&&a.test(e)?e.replace(s,"\\$&"):e}var i=e("./toString"),s=/[\\^$.*+?()[\]{}|]/g,a=RegExp(s.source);t.exports=n},{"./toString":527}],486:[function(e,t,r){t.exports=e("./assignIn")},{"./assignIn":477}],487:[function(e,t,r){var n=e("./_createFind")(e("./findIndex"));t.exports=n},{"./_createFind":405,"./findIndex":488}],488:[function(e,t,r){function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var u=null==r?0:a(r);return u<0&&(u=o(n+u,0)),i(e,s(t,3),u)}var i=e("./_baseFindIndex"),s=e("./_baseIteratee"),a=e("./toInteger"),o=Math.max;t.exports=n},{"./_baseFindIndex":347,"./_baseIteratee":365,"./toInteger":524}],489:[function(e,t,r){var n=e("./_createFind")(e("./findLastIndex"));t.exports=n},{"./_createFind":405,"./findLastIndex":490}],490:[function(e,t,r){function n(e,t,r){var n=null==e?0:e.length;if(!n)return-1;var l=n-1;return void 0!==r&&(l=a(r),l=r<0?o(n+l,0):u(l,n-1)),i(e,s(t,3),l,!0)}var i=e("./_baseFindIndex"),s=e("./_baseIteratee"),a=e("./toInteger"),o=Math.max,u=Math.min;t.exports=n},{"./_baseFindIndex":347,"./_baseIteratee":365,"./toInteger":524}],491:[function(e,t,r){function n(e,t,r){var n=null==e?void 0:i(e,t);return void 0===n?r:n}var i=e("./_baseGet");t.exports=n},{"./_baseGet":351}],492:[function(e,t,r){function n(e,t){return null!=e&&s(e,t,i)}var i=e("./_baseHas"),s=e("./_hasPath");t.exports=n},{"./_baseHas":354,"./_hasPath":424}],493:[function(e,t,r){function n(e,t){return null!=e&&s(e,t,i)}var i=e("./_baseHasIn"),s=e("./_hasPath");t.exports=n},{"./_baseHasIn":355,"./_hasPath":424}],494:[function(e,t,r){function n(e){return e}t.exports=n},{}],495:[function(e,t,r){function n(e,t,r,n){e=s(e)?e:u(e),r=r&&!n?o(r):0;var c=e.length;return r<0&&(r=l(c+r,0)),a(e)?r<=c&&e.indexOf(t,r)>-1:!!c&&i(e,t,r)>-1}var i=e("./_baseIndexOf"),s=e("./isArrayLike"),a=e("./isString"),o=e("./toInteger"),u=e("./values"),l=Math.max;t.exports=n},{"./_baseIndexOf":356,"./isArrayLike":498,"./isString":508,"./toInteger":524,"./values":529}],496:[function(e,t,r){var n=e("./_baseIsArguments"),i=e("./isObjectLike"),s=Object.prototype,a=s.hasOwnProperty,o=s.propertyIsEnumerable,u=n(function(){return arguments}())?n:function(e){return i(e)&&a.call(e,"callee")&&!o.call(e,"callee")};t.exports=u},{"./_baseIsArguments":357,"./isObjectLike":505}],497:[function(e,t,r){var n=Array.isArray;t.exports=n},{}],498:[function(e,t,r){function n(e){return null!=e&&s(e.length)&&!i(e)}var i=e("./isFunction"),s=e("./isLength");t.exports=n},{"./isFunction":501,"./isLength":503}],499:[function(e,t,r){function n(e){return s(e)&&i(e)}var i=e("./isArrayLike"),s=e("./isObjectLike");t.exports=n},{"./isArrayLike":498,"./isObjectLike":505}],500:[function(e,t,r){var n=e("./_root"),i=e("./stubFalse"),s="object"==typeof r&&r&&!r.nodeType&&r,a=s&&"object"==typeof t&&t&&!t.nodeType&&t,o=a&&a.exports===s?n.Buffer:void 0,u=(o?o.isBuffer:void 0)||i;t.exports=u},{"./_root":461,"./stubFalse":522}],501:[function(e,t,r){function n(e){if(!s(e))return!1;var t=i(e);return t==o||t==u||t==a||t==l}var i=e("./_baseGetTag"),s=e("./isObject"),a="[object AsyncFunction]",o="[object Function]",u="[object GeneratorFunction]",l="[object Proxy]";t.exports=n},{"./_baseGetTag":353,"./isObject":504}],502:[function(e,t,r){function n(e){return"number"==typeof e&&e==i(e)}var i=e("./toInteger");t.exports=n},{"./toInteger":524}],503:[function(e,t,r){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=i}var i=9007199254740991;t.exports=n},{}],504:[function(e,t,r){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}t.exports=n},{}],505:[function(e,t,r){function n(e){return null!=e&&"object"==typeof e}t.exports=n},{}],506:[function(e,t,r){function n(e){if(!a(e)||i(e)!=o)return!1;var t=s(e);if(null===t)return!0;var r=p.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&c.call(r)==h}var i=e("./_baseGetTag"),s=e("./_getPrototype"),a=e("./isObjectLike"),o="[object Object]",u=Function.prototype,l=Object.prototype,c=u.toString,p=l.hasOwnProperty,h=c.call(Object);t.exports=n},{"./_baseGetTag":353,"./_getPrototype":418,"./isObjectLike":505}],507:[function(e,t,r){var n=e("./_baseIsRegExp"),i=e("./_baseUnary"),s=e("./_nodeUtil"),a=s&&s.isRegExp,o=a?i(a):n;t.exports=o},{"./_baseIsRegExp":363,"./_baseUnary":382,"./_nodeUtil":457}],508:[function(e,t,r){function n(e){return"string"==typeof e||!s(e)&&a(e)&&i(e)==o}var i=e("./_baseGetTag"),s=e("./isArray"),a=e("./isObjectLike"),o="[object String]";t.exports=n},{"./_baseGetTag":353,"./isArray":497,"./isObjectLike":505}],509:[function(e,t,r){function n(e){return"symbol"==typeof e||s(e)&&i(e)==a}var i=e("./_baseGetTag"),s=e("./isObjectLike"),a="[object Symbol]";t.exports=n},{"./_baseGetTag":353,"./isObjectLike":505}],510:[function(e,t,r){var n=e("./_baseIsTypedArray"),i=e("./_baseUnary"),s=e("./_nodeUtil"),a=s&&s.isTypedArray,o=a?i(a):n;t.exports=o},{"./_baseIsTypedArray":364,"./_baseUnary":382,"./_nodeUtil":457}],511:[function(e,t,r){function n(e){return a(e)?i(e):s(e)}var i=e("./_arrayLikeKeys"),s=e("./_baseKeys"),a=e("./isArrayLike");t.exports=n},{"./_arrayLikeKeys":332,"./_baseKeys":366,"./isArrayLike":498}],512:[function(e,t,r){function n(e){return a(e)?i(e,!0):s(e)}var i=e("./_arrayLikeKeys"),s=e("./_baseKeysIn"),a=e("./isArrayLike");t.exports=n},{"./_arrayLikeKeys":332,"./_baseKeysIn":367,"./isArrayLike":498}],513:[function(e,t,r){function n(e,t){return(o(e)?i:a)(e,s(t,3))}var i=e("./_arrayMap"),s=e("./_baseIteratee"),a=e("./_baseMap"),o=e("./isArray");t.exports=n},{"./_arrayMap":333,"./_baseIteratee":365,"./_baseMap":368,"./isArray":497}],514:[function(e,t,r){function n(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError(s);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var a=e.apply(this,n);return r.cache=s.set(i,a)||s,a};return r.cache=new(n.Cache||i),r}var i=e("./_MapCache"),s="Expected a function";n.Cache=i,t.exports=n},{"./_MapCache":317}],515:[function(e,t,r){var n=e("./_baseMerge"),i=e("./_createAssigner")(function(e,t,r,i){n(e,t,r,i)});t.exports=i},{"./_baseMerge":371,"./_createAssigner":402}],516:[function(e,t,r){function n(){}t.exports=n},{}],517:[function(e,t,r){function n(e){return a(e)?i(o(e)):s(e)}var i=e("./_baseProperty"),s=e("./_basePropertyDeep"),a=e("./_isKey"),o=e("./_toKey");t.exports=n},{"./_baseProperty":374,"./_basePropertyDeep":375,"./_isKey":436,"./_toKey":474}],518:[function(e,t,r){function n(e,t,r){return t=(r?s(e,t,r):void 0===t)?1:a(t),i(o(e),t)}var i=e("./_baseRepeat"),s=e("./_isIterateeCall"),a=e("./toInteger"),o=e("./toString");t.exports=n},{"./_baseRepeat":376,"./_isIterateeCall":435,"./toInteger":524,"./toString":527}],519:[function(e,t,r){var n=e("./_baseFlatten"),i=e("./_baseOrderBy"),s=e("./_baseRest"),a=e("./_isIterateeCall"),o=s(function(e,t){if(null==e)return[];var r=t.length;return r>1&&a(e,t[0],t[1])?t=[]:r>2&&a(t[0],t[1],t[2])&&(t=[t[0]]),i(e,n(t,1),[])});t.exports=o},{"./_baseFlatten":348,"./_baseOrderBy":373,"./_baseRest":377,"./_isIterateeCall":435}],520:[function(e,t,r){function n(e,t,r){return e=o(e),r=null==r?0:i(a(r),0,e.length),t=s(t),e.slice(r,r+t.length)==t}var i=e("./_baseClamp"),s=e("./_baseToString"),a=e("./toInteger"),o=e("./toString");t.exports=n},{"./_baseClamp":343,"./_baseToString":381,"./toInteger":524,"./toString":527}],521:[function(e,t,r){function n(){return[]}t.exports=n},{}],522:[function(e,t,r){function n(){return!1}t.exports=n},{}],523:[function(e,t,r){function n(e){return e?(e=i(e),e===s||e===-s?(e<0?-1:1)*a:e===e?e:0):0===e?e:0}var i=e("./toNumber"),s=1/0,a=1.7976931348623157e308;t.exports=n},{"./toNumber":525}],524:[function(e,t,r){function n(e){var t=i(e),r=t%1;return t===t?r?t-r:t:0}var i=e("./toFinite");t.exports=n},{"./toFinite":523}],525:[function(e,t,r){function n(e){if("number"==typeof e)return e;if(s(e))return a;if(i(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(o,"");var r=l.test(e);return r||c.test(e)?p(e.slice(2),r?2:8):u.test(e)?a:+e}var i=e("./isObject"),s=e("./isSymbol"),a=NaN,o=/^\s+|\s+$/g,u=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,c=/^0o[0-7]+$/i,p=parseInt;t.exports=n},{"./isObject":504,"./isSymbol":509}],526:[function(e,t,r){function n(e){return i(e,s(e))}var i=e("./_copyObject"),s=e("./keysIn");t.exports=n},{"./_copyObject":398,"./keysIn":512}],527:[function(e,t,r){function n(e){return null==e?"":i(e)}var i=e("./_baseToString");t.exports=n},{"./_baseToString":381}],528:[function(e,t,r){function n(e){return e&&e.length?i(e):[]}var i=e("./_baseUniq");t.exports=n},{"./_baseUniq":383}],529:[function(e,t,r){function n(e){return null==e?[]:i(e,s(e))}var i=e("./_baseValues"),s=e("./keys");t.exports=n},{"./_baseValues":384,"./keys":511}],530:[function(e,t,r){function n(e,t){return t=t||{},function(r,n,i){return s(r,e,t)}}function i(e,t){e=e||{},t=t||{};var r={};return Object.keys(t).forEach(function(e){r[e]=t[e]}),Object.keys(e).forEach(function(t){r[t]=e[t]}),r}function s(e,t,r){if("string"!=typeof t)throw new TypeError("glob pattern string required");return r||(r={}),!(!r.nocomment&&"#"===t.charAt(0))&&(""===t.trim()?""===e:new a(t,r).match(e))}function a(e,t){if(!(this instanceof a))return new a(e,t);if("string"!=typeof e)throw new TypeError("glob pattern string required");t||(t={}),e=e.trim(),"/"!==m.sep&&(e=e.split(m.sep).join("/")),this.options=t,this.set=[],this.pattern=e,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}function o(){if(!this._made){var e=this.pattern,t=this.options;if(t.nocomment||"#"!==e.charAt(0))if(e){this.parseNegate();var r=this.globSet=this.braceExpand();t.debug&&(this.debug=console.error),this.debug(this.pattern,r),r=this.globParts=r.map(function(e){return e.split(C)}),this.debug(this.pattern,r),r=r.map(function(e,t,r){return e.map(this.parse,this)},this),this.debug(this.pattern,r),r=r.filter(function(e){return-1===e.indexOf(!1)}),this.debug(this.pattern,r),this.set=r}else this.empty=!0;else this.comment=!0}}function u(){var e=this.pattern,t=!1,r=0;if(!this.options.nonegate){for(var n=0,i=e.length;n<i&&"!"===e.charAt(n);n++)t=!t,r++;r&&(this.pattern=e.substr(r)),this.negate=t}}function l(e,t){if(t||(t=this instanceof a?this.options:{}),void 0===(e=void 0===e?this.pattern:e))throw new TypeError("undefined pattern");return t.nobrace||!e.match(/\{.*\}/)?[e]:g(e)}function c(e,t){function r(){if(i){switch(i){case"*":a+=x,o=!0;break;case"?":a+=v,o=!0;break;default:a+="\\"+i}g.debug("clearStateChar %j %j",i,a),i=!1}}if(e.length>65536)throw new TypeError("pattern is too long");var n=this.options;if(!n.noglobstar&&"**"===e)return y;if(""===e)return"";for(var i,s,a="",o=!!n.nocase,u=!1,l=[],c=[],p=!1,h=-1,d=-1,m="."===e.charAt(0)?"":n.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",g=this,E=0,A=e.length;E<A&&(s=e.charAt(E));E++)if(this.debug("%s\t%s %s %j",e,E,a,s),u&&D[s])a+="\\"+s,u=!1;else switch(s){case"/":return!1;case"\\":r(),u=!0;continue;case"?":case"*":case"+":case"@":case"!":if(this.debug("%s\t%s %s %j <-- stateChar",e,E,a,s),p){this.debug(" in class"),"!"===s&&E===d+1&&(s="^"),a+=s;continue}g.debug("call clearStateChar %j",i),r(),i=s,n.noext&&r();continue;case"(":if(p){a+="(";continue}if(!i){a+="\\(";continue}l.push({type:i,start:E-1,reStart:a.length,open:b[i].open,close:b[i].close}),a+="!"===i?"(?:(?!(?:":"(?:",this.debug("plType %j %j",i,a),i=!1;continue;case")":if(p||!l.length){a+="\\)";continue}r(),o=!0;var C=l.pop();a+=C.close,"!"===C.type&&c.push(C),C.reEnd=a.length;continue;case"|":if(p||!l.length||u){a+="\\|",u=!1;continue}r(),a+="|";continue;case"[":if(r(),p){a+="\\"+s;continue}p=!0,d=E,h=a.length,a+=s;continue;case"]":if(E===d+1||!p){a+="\\"+s,u=!1;continue}if(p){var _=e.substring(d+1,E);try{RegExp("["+_+"]")}catch(e){var w=this.parse(_,S);a=a.substr(0,h)+"\\["+w[0]+"\\]",o=o||w[1],p=!1;continue}}o=!0,p=!1,a+=s;continue;default:r(),u?u=!1:!D[s]||"^"===s&&p||(a+="\\"),a+=s}for(p&&(_=e.substr(d+1),w=this.parse(_,S),a=a.substr(0,h)+"\\["+w[0],o=o||w[1]),C=l.pop();C;C=l.pop()){var k=a.slice(C.reStart+C.open.length);this.debug("setting tail",a,C),k=k.replace(/((?:\\{2}){0,64})(\\?)\|/g,function(e,t,r){return r||(r="\\"),t+t+r+"|"}),this.debug("tail=%j\n %s",k,k,C,a);var F="*"===C.type?x:"?"===C.type?v:"\\"+C.type;o=!0,a=a.slice(0,C.reStart)+F+"\\("+k}r(),u&&(a+="\\\\");var T=!1;switch(a.charAt(0)){case".":case"[":case"(":T=!0}for(var P=c.length-1;P>-1;P--){var B=c[P],O=a.slice(0,B.reStart),j=a.slice(B.reStart,B.reEnd-8),N=a.slice(B.reEnd-8,B.reEnd),I=a.slice(B.reEnd);N+=I;var L=O.split("(").length-1,M=I;for(E=0;E<L;E++)M=M.replace(/\)[+*?]?/,"");var R="";""===(I=M)&&t!==S&&(R="$"),a=O+j+I+R+N}if(""!==a&&o&&(a="(?=.)"+a),T&&(a=m+a),t===S)return[a,o];if(!o)return f(e);var V=n.nocase?"i":"";try{var U=new RegExp("^"+a+"$",V)}catch(e){return new RegExp("$.")}return U._glob=e,U._src=a,U}function p(){if(this.regexp||!1===this.regexp)return this.regexp;var e=this.set;if(!e.length)return this.regexp=!1,this.regexp;var t=this.options,r=t.noglobstar?x:t.dot?E:A,n=t.nocase?"i":"",i=e.map(function(e){return e.map(function(e){return e===y?r:"string"==typeof e?d(e):e._src}).join("\\/")}).join("|");i="^(?:"+i+")$",this.negate&&(i="^(?!"+i+").*$");try{this.regexp=new RegExp(i,n)}catch(e){this.regexp=!1}return this.regexp}function h(e,t){if(this.debug("match",e,this.pattern),this.comment)return!1;if(this.empty)return""===e;if("/"===e&&t)return!0;var r=this.options;"/"!==m.sep&&(e=e.split(m.sep).join("/")),e=e.split(C),this.debug(this.pattern,"split",e);var n=this.set;this.debug(this.pattern,"set",n);var i,s;for(s=e.length-1;s>=0&&!(i=e[s]);s--);for(s=0;s<n.length;s++){var a=n[s],o=e;if(r.matchBase&&1===a.length&&(o=[i]),this.matchOne(o,a,t))return!!r.flipNegate||!this.negate}return!r.flipNegate&&this.negate}function f(e){return e.replace(/\\(.)/g,"$1")}function d(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}t.exports=s,s.Minimatch=a;var m={sep:"/"};try{m=e("path")}catch(e){}var y=s.GLOBSTAR=a.GLOBSTAR={},g=e("brace-expansion"),b={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},v="[^/]",x=v+"*?",E="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",A="(?:(?!(?:\\/|^)\\.).)*?",D=function(e){return e.split("").reduce(function(e,t){return e[t]=!0,e},{})}("().*{}+?[]^$\\!"),C=/\/+/;s.filter=n,s.defaults=function(e){if(!e||!Object.keys(e).length)return s;var t=s,r=function(r,n,s){return t.minimatch(r,n,i(e,s))};return r.Minimatch=function(r,n){return new t.Minimatch(r,i(e,n))},r},a.defaults=function(e){return e&&Object.keys(e).length?s.defaults(e).Minimatch:a},a.prototype.debug=function(){},a.prototype.make=o,a.prototype.parseNegate=u,s.braceExpand=function(e,t){return l(e,t)},a.prototype.braceExpand=l,a.prototype.parse=c;var S={};s.makeRe=function(e,t){return new a(e,t||{}).makeRe()},a.prototype.makeRe=p,s.match=function(e,t,r){var n=new a(t,r=r||{});return e=e.filter(function(e){return n.match(e)}),n.options.nonull&&!e.length&&e.push(t),e},a.prototype.match=h,a.prototype.matchOne=function(e,t,r){var n=this.options;this.debug("matchOne",{this:this,file:e,pattern:t}),this.debug("matchOne",e.length,t.length);for(var i=0,s=0,a=e.length,o=t.length;i<a&&s<o;i++,s++){this.debug("matchOne loop");var u=t[s],l=e[i];if(this.debug(t,u,l),!1===u)return!1;if(u===y){this.debug("GLOBSTAR",[t,u,l]);var c=i,p=s+1;if(p===o){for(this.debug("** at the end");i<a;i++)if("."===e[i]||".."===e[i]||!n.dot&&"."===e[i].charAt(0))return!1;return!0}for(;c<a;){var h=e[c];if(this.debug("\nglobstar while",e,c,t,p,h),this.matchOne(e.slice(c),t.slice(p),r))return this.debug("globstar found match!",c,a,h),!0;if("."===h||".."===h||!n.dot&&"."===h.charAt(0)){this.debug("dot detected!",e,c,t,p);break}this.debug("globstar swallow a segment, and continue"),c++}return!(!r||(this.debug("\n>>> no match, partial?",e,c,t,p),c!==a))}var f;if("string"==typeof u?(f=n.nocase?l.toLowerCase()===u.toLowerCase():l===u,this.debug("string match",u,l,f)):(f=l.match(u),this.debug("pattern match",u,l,f)),!f)return!1}if(i===a&&s===o)return!0;if(i===a)return r;if(s===o)return i===a-1&&""===e[i];throw new Error("wtf?")}},{"brace-expansion":180,path:534}],531:[function(e,t,r){function n(e){if(!((e=String(e)).length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]);switch((t[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return r*p;case"days":case"day":case"d":return r*c;case"hours":case"hour":case"hrs":case"hr":case"h":return r*l;case"minutes":case"minute":case"mins":case"min":case"m":return r*u;case"seconds":case"second":case"secs":case"sec":case"s":return r*o;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function i(e){return e>=c?Math.round(e/c)+"d":e>=l?Math.round(e/l)+"h":e>=u?Math.round(e/u)+"m":e>=o?Math.round(e/o)+"s":e+"ms"}function s(e){return a(e,c,"day")||a(e,l,"hour")||a(e,u,"minute")||a(e,o,"second")||e+" ms"}function a(e,t,r){if(!(e<t))return e<1.5*t?Math.floor(e/t)+" "+r:Math.ceil(e/t)+" "+r+"s"}var o=1e3,u=60*o,l=60*u,c=24*l,p=365.25*c;t.exports=function(e,t){t=t||{};var r=typeof e;if("string"===r&&e.length>0)return n(e);if("number"===r&&!1===isNaN(e))return t.long?s(e):i(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},{}],532:[function(e,t,r){"use strict";t.exports=Number.isNaN||function(e){return e!==e}},{}],533:[function(e,t,r){r.endianness=function(){return"LE"},r.hostname=function(){return"undefined"!=typeof location?location.hostname:""},r.loadavg=function(){return[]},r.uptime=function(){return 0},r.freemem=function(){return Number.MAX_VALUE},r.totalmem=function(){return Number.MAX_VALUE},r.cpus=function(){return[]},r.type=function(){return"Browser"},r.release=function(){return"undefined"!=typeof navigator?navigator.appVersion:""},r.networkInterfaces=r.getNetworkInterfaces=function(){return{}},r.arch=function(){return"javascript"},r.platform=function(){return"browser"},r.tmpdir=r.tmpDir=function(){return"/tmp"},r.EOL="\n"},{}],534:[function(e,t,r){(function(e){function t(e,t){for(var r=0,n=e.length-1;n>=0;n--){var i=e[n];"."===i?e.splice(n,1):".."===i?(e.splice(n,1),r++):r&&(e.splice(n,1),r--)}if(t)for(;r--;r)e.unshift("..");return e}function n(e,t){if(e.filter)return e.filter(t);for(var r=[],n=0;n<e.length;n++)t(e[n],n,e)&&r.push(e[n]);return r}var i=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/,s=function(e){return i.exec(e).slice(1)};r.resolve=function(){for(var r="",i=!1,s=arguments.length-1;s>=-1&&!i;s--){var a=s>=0?arguments[s]:e.cwd();if("string"!=typeof a)throw new TypeError("Arguments to path.resolve must be strings");a&&(r=a+"/"+r,i="/"===a.charAt(0))}return r=t(n(r.split("/"),function(e){return!!e}),!i).join("/"),(i?"/":"")+r||"."},r.normalize=function(e){var i=r.isAbsolute(e),s="/"===a(e,-1);return(e=t(n(e.split("/"),function(e){return!!e}),!i).join("/"))||i||(e="."),e&&s&&(e+="/"),(i?"/":"")+e},r.isAbsolute=function(e){return"/"===e.charAt(0)},r.join=function(){var e=Array.prototype.slice.call(arguments,0);return r.normalize(n(e,function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e}).join("/"))},r.relative=function(e,t){function n(e){for(var t=0;t<e.length&&""===e[t];t++);for(var r=e.length-1;r>=0&&""===e[r];r--);return t>r?[]:e.slice(t,r-t+1)}e=r.resolve(e).substr(1),t=r.resolve(t).substr(1);for(var i=n(e.split("/")),s=n(t.split("/")),a=Math.min(i.length,s.length),o=a,u=0;u<a;u++)if(i[u]!==s[u]){o=u;break}for(var l=[],u=o;u<i.length;u++)l.push("..");return(l=l.concat(s.slice(o))).join("/")},r.sep="/",r.delimiter=":",r.dirname=function(e){var t=s(e),r=t[0],n=t[1];return r||n?(n&&(n=n.substr(0,n.length-1)),r+n):"."},r.basename=function(e,t){var r=s(e)[2];return t&&r.substr(-1*t.length)===t&&(r=r.substr(0,r.length-t.length)),r},r.extname=function(e){return s(e)[3]};var a="b"==="ab".substr(-1)?function(e,t,r){return e.substr(t,r)}:function(e,t,r){return t<0&&(t=e.length+t),e.substr(t,r)}}).call(this,e("_process"))},{_process:538}],535:[function(e,t,r){(function(e){"use strict";function r(e){return"/"===e.charAt(0)}function n(e){var t=/^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/.exec(e),r=t[1]||"",n=Boolean(r&&":"!==r.charAt(1));return Boolean(t[2]||n)}t.exports="win32"===e.platform?n:r,t.exports.posix=r,t.exports.win32=n}).call(this,e("_process"))},{_process:538}],536:[function(e,t,r){"use strict";function n(e,t,r){if(p)try{p.call(c,e,t,{value:r})}catch(n){e[t]=r}else e[t]=r}function i(e){return e&&(n(e,"call",e.call),n(e,"apply",e.apply)),e}function s(e){return h?h.call(c,e):(y.prototype=e||null,new y)}function a(){do{var e=o(m.call(d.call(g(),36),2))}while(f.call(b,e));return b[e]=e}function o(e){var t={};return t[e]=!0,Object.keys(t)[0]}function u(e){return s(null)}function l(e){function t(t){function r(r,n){if(r===o)return n?s=null:s||(s=e(t))}var s;n(t,i,r)}function r(e){return f.call(e,i)||t(e),e[i](o)}var i=a(),o=s(null);return e=e||u,r.forget=function(e){f.call(e,i)&&e[i](o,!0)},r}var c=Object,p=Object.defineProperty,h=Object.create;i(p),i(h);var f=i(Object.prototype.hasOwnProperty),d=i(Number.prototype.toString),m=i(String.prototype.slice),y=function(){},g=Math.random,b=s(null);r.makeUniqueKey=a;var v=Object.getOwnPropertyNames;Object.getOwnPropertyNames=function(e){for(var t=v(e),r=0,n=0,i=t.length;r<i;++r)f.call(b,t[r])||(r>n&&(t[n]=t[r]),++n);return t.length=n,t},r.makeAccessor=l},{}],537:[function(e,t,r){(function(e){"use strict";function r(t,r,n,i){if("function"!=typeof t)throw new TypeError('"callback" argument must be a function');var s,a,o=arguments.length;switch(o){case 0:case 1:return e.nextTick(t);case 2:return e.nextTick(function(){t.call(null,r)});case 3:return e.nextTick(function(){t.call(null,r,n)});case 4:return e.nextTick(function(){t.call(null,r,n,i)});default:for(s=new Array(o-1),a=0;a<s.length;)s[a++]=arguments[a];return e.nextTick(function(){t.apply(null,s)})}}!e.version||0===e.version.indexOf("v0.")||0===e.version.indexOf("v1.")&&0!==e.version.indexOf("v1.8.")?t.exports=r:t.exports=e.nextTick}).call(this,e("_process"))},{_process:538}],538:[function(e,t,r){function n(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function s(e){if(p===setTimeout)return setTimeout(e,0);if((p===n||!p)&&setTimeout)return p=setTimeout,setTimeout(e,0);try{return p(e,0)}catch(t){try{return p.call(null,e,0)}catch(t){return p.call(this,e,0)}}}function a(e){if(h===clearTimeout)return clearTimeout(e);if((h===i||!h)&&clearTimeout)return h=clearTimeout,clearTimeout(e);try{return h(e)}catch(t){try{return h.call(null,e)}catch(t){return h.call(this,e)}}}function o(){y&&d&&(y=!1,d.length?m=d.concat(m):g=-1,m.length&&u())}function u(){if(!y){var e=s(o);y=!0;for(var t=m.length;t;){for(d=m,m=[];++g<t;)d&&d[g].run();g=-1,t=m.length}d=null,y=!1,a(e)}}function l(e,t){this.fun=e,this.array=t}function c(){}var p,h,f=t.exports={};!function(){try{p="function"==typeof setTimeout?setTimeout:n}catch(e){p=n}try{h="function"==typeof clearTimeout?clearTimeout:i}catch(e){h=i}}();var d,m=[],y=!1,g=-1;f.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];m.push(new l(e,t)),1!==m.length||y||s(u)},l.prototype.run=function(){this.fun.apply(null,this.array)},f.title="browser",f.browser=!0,f.env={},f.argv=[],f.version="",f.versions={},f.on=c,f.addListener=c,f.once=c,f.off=c,f.removeListener=c,f.removeAllListeners=c,f.emit=c,f.prependListener=c,f.prependOnceListener=c,f.listeners=function(e){return[]},f.binding=function(e){throw new Error("process.binding is not supported")},f.cwd=function(){return"/"},f.chdir=function(e){throw new Error("process.chdir is not supported")},f.umask=function(){return 0}},{}],539:[function(e,t,r){t.exports=e("./lib/_stream_duplex.js")},{"./lib/_stream_duplex.js":540}],540:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);l.call(this,e),c.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",i)}function i(){this.allowHalfOpen||this._writableState.ended||o(s,this)}function s(e){e.end()}var a=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};t.exports=n;var o=e("process-nextick-args"),u=e("core-util-is");u.inherits=e("inherits");var l=e("./_stream_readable"),c=e("./_stream_writable");u.inherits(n,l);for(var p=a(c.prototype),h=0;h<p.length;h++){var f=p[h];n.prototype[f]||(n.prototype[f]=c.prototype[f])}},{"./_stream_readable":542,"./_stream_writable":544,"core-util-is":293,inherits:305,"process-nextick-args":537}],541:[function(e,t,r){"use strict";function n(e){if(!(this instanceof n))return new n(e);i.call(this,e)}t.exports=n;var i=e("./_stream_transform"),s=e("core-util-is");s.inherits=e("inherits"),s.inherits(n,i),n.prototype._transform=function(e,t,r){r(null,e)}},{"./_stream_transform":543,"core-util-is":293,inherits:305}],542:[function(e,t,r){(function(r){"use strict";function n(e,t,r){if("function"==typeof e.prependListener)return e.prependListener(t,r);e._events&&e._events[t]?T(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]:e.on(t,r)}function i(t,r){k=k||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,r instanceof k&&(this.objectMode=this.objectMode||!!t.readableObjectMode);var n=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i,this.highWaterMark=~~this.highWaterMark,this.buffer=new M,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.ranOut=!1,this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(L||(L=e("string_decoder/").StringDecoder),this.decoder=new L(t.encoding),this.encoding=t.encoding)}function s(t){if(k=k||e("./_stream_duplex"),!(this instanceof s))return new s(t);this._readableState=new i(t,this),this.readable=!0,t&&"function"==typeof t.read&&(this._read=t.read),B.call(this)}function a(e,t,r,n,i){var s=c(t,r);if(s)e.emit("error",s);else if(null===r)t.reading=!1,p(e,t);else if(t.objectMode||r&&r.length>0)if(t.ended&&!i){var a=new Error("stream.push() after EOF");e.emit("error",a)}else if(t.endEmitted&&i){var u=new Error("stream.unshift() after end event");e.emit("error",u)}else{var l;!t.decoder||i||n||(r=t.decoder.write(r),l=!t.objectMode&&0===r.length),i||(t.reading=!1),l||(t.flowing&&0===t.length&&!t.sync?(e.emit("data",r),e.read(0)):(t.length+=t.objectMode?1:r.length,i?t.buffer.unshift(r):t.buffer.push(r),t.needReadable&&h(e))),d(e,t)}else i||(t.reading=!1);return o(t)}function o(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}function u(e){return e>=V?e=V:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function l(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=u(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function c(e,t){var r=null;return O.isBuffer(t)||"string"==typeof t||null===t||void 0===t||e.objectMode||(r=new TypeError("Invalid non-string/buffer chunk")),r}function p(e,t){if(!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,h(e)}}function h(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(I("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?F(f,e):f(e))}function f(e){I("emit readable"),e.emit("readable"),x(e)}function d(e,t){t.readingMore||(t.readingMore=!0,F(m,e,t))}function m(e,t){for(var r=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(I("maybeReadMore read 0"),e.read(0),r!==t.length);)r=t.length;t.readingMore=!1}function y(e){return function(){var t=e._readableState;I("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&P(e,"data")&&(t.flowing=!0,x(e))}}function g(e){I("readable nexttick read 0"),e.read(0)}function b(e,t){t.resumeScheduled||(t.resumeScheduled=!0,F(v,e,t))}function v(e,t){t.reading||(I("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),x(e),t.flowing&&!t.reading&&e.read(0)}function x(e){var t=e._readableState;for(I("flow",t.flowing);t.flowing&&null!==e.read(););}function E(e,t){if(0===t.length)return null;var r;return t.objectMode?r=t.buffer.shift():!e||e>=t.length?(r=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):r=A(e,t.buffer,t.decoder),r}function A(e,t,r){var n;return e<t.head.data.length?(n=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):n=e===t.head.data.length?t.shift():r?D(e,t):C(e,t),n}function D(e,t){var r=t.head,n=1,i=r.data;for(e-=i.length;r=r.next;){var s=r.data,a=e>s.length?s.length:e;if(a===s.length?i+=s:i+=s.slice(0,e),0===(e-=a)){a===s.length?(++n,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=s.slice(a));break}++n}return t.length-=n,i}function C(e,t){var r=O.allocUnsafe(e),n=t.head,i=1;for(n.data.copy(r),e-=n.data.length;n=n.next;){var s=n.data,a=e>s.length?s.length:e;if(s.copy(r,r.length-e,0,a),0===(e-=a)){a===s.length?(++i,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=s.slice(a));break}++i}return t.length-=i,r}function S(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,F(_,t,e))}function _(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function w(e,t){for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}t.exports=s;var k,F=e("process-nextick-args"),T=e("isarray");s.ReadableState=i;e("events").EventEmitter;var P=function(e,t){return e.listeners(t).length},B=e("./internal/streams/stream"),O=e("safe-buffer").Buffer,j=e("core-util-is");j.inherits=e("inherits");var N=e("util"),I=void 0;I=N&&N.debuglog?N.debuglog("stream"):function(){};var L,M=e("./internal/streams/BufferList");j.inherits(s,B);var R=["error","close","destroy","pause","resume"];s.prototype.push=function(e,t){var r=this._readableState;return r.objectMode||"string"!=typeof e||(t=t||r.defaultEncoding)!==r.encoding&&(e=O.from(e,t),t=""),a(this,r,e,t,!1)},s.prototype.unshift=function(e){return a(this,this._readableState,e,"",!0)},s.prototype.isPaused=function(){return!1===this._readableState.flowing},s.prototype.setEncoding=function(t){return L||(L=e("string_decoder/").StringDecoder),this._readableState.decoder=new L(t),this._readableState.encoding=t,this};var V=8388608;s.prototype.read=function(e){I("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return I("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?S(this):h(this),null;if(0===(e=l(e,t))&&t.ended)return 0===t.length&&S(this),null;var n=t.needReadable;I("need readable",n),(0===t.length||t.length-e<t.highWaterMark)&&I("length less than watermark",n=!0),t.ended||t.reading?I("reading or ended",n=!1):n&&(I("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=l(r,t)));var i;return i=e>0?E(e,t):null,null===i?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&S(this)),null!==i&&this.emit("data",i),i},s.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},s.prototype.pipe=function(e,t){function i(e){I("onunpipe"),e===h&&a()}function s(){I("onend"),e.end()}function a(){I("cleanup"),e.removeListener("close",l),e.removeListener("finish",c),e.removeListener("drain",m),e.removeListener("error",u),e.removeListener("unpipe",i),h.removeListener("end",s),h.removeListener("end",p),h.removeListener("data",o),g=!0,!f.awaitDrain||e._writableState&&!e._writableState.needDrain||m()}function o(t){I("ondata"),b=!1,!1!==e.write(t)||b||((1===f.pipesCount&&f.pipes===e||f.pipesCount>1&&-1!==w(f.pipes,e))&&!g&&(I("false write response, pause",h._readableState.awaitDrain),h._readableState.awaitDrain++,b=!0),h.pause())}function u(t){I("onerror",t),p(),e.removeListener("error",u),0===P(e,"error")&&e.emit("error",t)}function l(){e.removeListener("finish",c),p()}function c(){I("onfinish"),e.removeListener("close",l),p()}function p(){I("unpipe"),h.unpipe(e)}var h=this,f=this._readableState;switch(f.pipesCount){case 0:f.pipes=e;break;case 1:f.pipes=[f.pipes,e];break;default:f.pipes.push(e)}f.pipesCount+=1,I("pipe count=%d opts=%j",f.pipesCount,t);var d=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?s:p;f.endEmitted?F(d):h.once("end",d),e.on("unpipe",i);var m=y(h);e.on("drain",m);var g=!1,b=!1;return h.on("data",o),n(e,"error",u),e.once("close",l),e.once("finish",c),e.emit("pipe",h),f.flowing||(I("pipe resume"),h.resume()),e},s.prototype.unpipe=function(e){var t=this._readableState;if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this),this);if(!e){var r=t.pipes,n=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var i=0;i<n;i++)r[i].emit("unpipe",this);return this}var s=w(t.pipes,e);return-1===s?this:(t.pipes.splice(s,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this),this)},s.prototype.on=function(e,t){var r=B.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var n=this._readableState;n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.emittedReadable=!1,n.reading?n.length&&h(this):F(g,this))}return r},s.prototype.addListener=s.prototype.on,s.prototype.resume=function(){var e=this._readableState;return e.flowing||(I("resume"),e.flowing=!0,b(this,e)),this},s.prototype.pause=function(){return I("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(I("pause"),this._readableState.flowing=!1,this.emit("pause")),this},s.prototype.wrap=function(e){var t=this._readableState,r=!1,n=this;e.on("end",function(){if(I("wrapped end"),t.decoder&&!t.ended){var e=t.decoder.end();e&&e.length&&n.push(e)}n.push(null)}),e.on("data",function(i){I("wrapped data"),t.decoder&&(i=t.decoder.write(i)),(!t.objectMode||null!==i&&void 0!==i)&&(t.objectMode||i&&i.length)&&(n.push(i)||(r=!0,e.pause()))});for(var i in e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var s=0;s<R.length;s++)e.on(R[s],n.emit.bind(n,R[s]));return n._read=function(t){I("wrapped _read",t),r&&(r=!1,e.resume())},n},s._fromList=E}).call(this,e("_process"))},{"./_stream_duplex":540,"./internal/streams/BufferList":545,"./internal/streams/stream":546,_process:538,"core-util-is":293,events:300,inherits:305,isarray:309,"process-nextick-args":537,"safe-buffer":589,"string_decoder/":592,util:181}],543:[function(e,t,r){"use strict";function n(e){this.afterTransform=function(t,r){return i(e,t,r)},this.needTransform=!1,this.transforming=!1,this.writecb=null,this.writechunk=null,this.writeencoding=null}function i(e,t,r){var n=e._transformState;n.transforming=!1;var i=n.writecb;if(!i)return e.emit("error",new Error("no writecb in Transform class"));n.writechunk=null,n.writecb=null,null!==r&&void 0!==r&&e.push(r),i(t);var s=e._readableState;s.reading=!1,(s.needReadable||s.length<s.highWaterMark)&&e._read(s.highWaterMark)}function s(e){if(!(this instanceof s))return new s(e);o.call(this,e),this._transformState=new n(this);var t=this;this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.once("prefinish",function(){"function"==typeof this._flush?this._flush(function(e,r){a(t,e,r)}):a(t)})}function a(e,t,r){if(t)return e.emit("error",t);null!==r&&void 0!==r&&e.push(r);var n=e._writableState,i=e._transformState;if(n.length)throw new Error("Calling transform done when ws.length != 0");if(i.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}t.exports=s;var o=e("./_stream_duplex"),u=e("core-util-is");u.inherits=e("inherits"),u.inherits(s,o),s.prototype.push=function(e,t){return this._transformState.needTransform=!1,o.prototype.push.call(this,e,t)},s.prototype._transform=function(e,t,r){throw new Error("_transform() is not implemented")},s.prototype._write=function(e,t,r){var n=this._transformState;if(n.writecb=r,n.writechunk=e,n.writeencoding=t,!n.transforming){var i=this._readableState;(n.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},s.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0}},{"./_stream_duplex":540,"core-util-is":293,inherits:305}],544:[function(e,t,r){(function(r){"use strict";function n(){}function i(e,t,r){this.chunk=e,this.encoding=t,this.callback=r,this.next=null}function s(t,r){D=D||e("./_stream_duplex"),t=t||{},this.objectMode=!!t.objectMode,r instanceof D&&(this.objectMode=this.objectMode||!!t.writableObjectMode);var n=t.highWaterMark,i=this.objectMode?16:16384;this.highWaterMark=n||0===n?n:i,this.highWaterMark=~~this.highWaterMark,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1;var s=!1===t.decodeStrings;this.decodeStrings=!s,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){d(r,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new A(this)}function a(t){if(D=D||e("./_stream_duplex"),!(T.call(a,this)||this instanceof D))return new a(t);this._writableState=new s(t,this),this.writable=!0,t&&("function"==typeof t.write&&(this._write=t.write),"function"==typeof t.writev&&(this._writev=t.writev)),k.call(this)}function o(e,t){var r=new Error("write after end");e.emit("error",r),C(t,r)}function u(e,t,r,n){var i=!0,s=!1;return null===r?s=new TypeError("May not write null values to stream"):"string"==typeof r||void 0===r||t.objectMode||(s=new TypeError("Invalid non-string/buffer chunk")),s&&(e.emit("error",s),C(n,s),i=!1),i}function l(e,t,r){return e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=F.from(t,r)),t}function c(e,t,r,n,s,a){r||(n=l(t,n,s),F.isBuffer(n)&&(s="buffer"));var o=t.objectMode?1:n.length;t.length+=o;var u=t.length<t.highWaterMark;if(u||(t.needDrain=!0),t.writing||t.corked){var c=t.lastBufferedRequest;t.lastBufferedRequest=new i(n,s,a),c?c.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else p(e,t,!1,o,n,s,a);return u}function p(e,t,r,n,i,s,a){t.writelen=n,t.writecb=a,t.writing=!0,t.sync=!0,r?e._writev(i,t.onwrite):e._write(i,s,t.onwrite),t.sync=!1}function h(e,t,r,n,i){--t.pendingcb,r?C(i,n):i(n),e._writableState.errorEmitted=!0,e.emit("error",n)}function f(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}function d(e,t){var r=e._writableState,n=r.sync,i=r.writecb;if(f(r),t)h(e,r,n,t,i);else{var s=b(r);s||r.corked||r.bufferProcessing||!r.bufferedRequest||g(e,r),n?S(m,e,r,s,i):m(e,r,s,i)}}function m(e,t,r,n){r||y(e,t),t.pendingcb--,n(),x(e,t)}function y(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}function g(e,t){t.bufferProcessing=!0;var r=t.bufferedRequest;if(e._writev&&r&&r.next){var n=t.bufferedRequestCount,i=new Array(n),s=t.corkedRequestsFree;s.entry=r;for(var a=0;r;)i[a]=r,r=r.next,a+=1;p(e,t,!0,t.length,i,"",s.finish),t.pendingcb++,t.lastBufferedRequest=null,s.next?(t.corkedRequestsFree=s.next,s.next=null):t.corkedRequestsFree=new A(t)}else{for(;r;){var o=r.chunk,u=r.encoding,l=r.callback;if(p(e,t,!1,t.objectMode?1:o.length,o,u,l),r=r.next,t.writing)break}null===r&&(t.lastBufferedRequest=null)}t.bufferedRequestCount=0,t.bufferedRequest=r,t.bufferProcessing=!1}function b(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function v(e,t){t.prefinished||(t.prefinished=!0,e.emit("prefinish"))}function x(e,t){var r=b(t);return r&&(0===t.pendingcb?(v(e,t),t.finished=!0,e.emit("finish")):v(e,t)),r}function E(e,t,r){t.ending=!0,x(e,t),r&&(t.finished?C(r):e.once("finish",r)),t.ended=!0,e.writable=!1}function A(e){var t=this;this.next=null,this.entry=null,this.finish=function(r){var n=t.entry;for(t.entry=null;n;){var i=n.callback;e.pendingcb--,i(r),n=n.next}e.corkedRequestsFree?e.corkedRequestsFree.next=t:e.corkedRequestsFree=t}}t.exports=a;var D,C=e("process-nextick-args"),S=!r.browser&&["v0.10","v0.9."].indexOf(r.version.slice(0,5))>-1?setImmediate:C;a.WritableState=s;var _=e("core-util-is");_.inherits=e("inherits");var w={deprecate:e("util-deprecate")},k=e("./internal/streams/stream"),F=e("safe-buffer").Buffer;_.inherits(a,k),s.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(s.prototype,"buffer",{get:w.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.")})}catch(e){}}();var T;"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(T=Function.prototype[Symbol.hasInstance],Object.defineProperty(a,Symbol.hasInstance,{value:function(e){return!!T.call(this,e)||e&&e._writableState instanceof s}})):T=function(e){return e instanceof this},a.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},a.prototype.write=function(e,t,r){var i=this._writableState,s=!1,a=F.isBuffer(e);return"function"==typeof t&&(r=t,t=null),a?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof r&&(r=n),i.ended?o(this,r):(a||u(this,i,e,r))&&(i.pendingcb++,s=c(this,i,a,e,t,r)),s},a.prototype.cork=function(){this._writableState.corked++},a.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||g(this,e))},a.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},a.prototype._write=function(e,t,r){r(new Error("_write() is not implemented"))},a.prototype._writev=null,a.prototype.end=function(e,t,r){var n=this._writableState;"function"==typeof e?(r=e,e=null,t=null):"function"==typeof t&&(r=t,t=null),null!==e&&void 0!==e&&this.write(e,t),n.corked&&(n.corked=1,this.uncork()),n.ending||n.finished||E(this,n,r)}}).call(this,e("_process"))},{"./_stream_duplex":540,"./internal/streams/stream":546,_process:538,"core-util-is":293,inherits:305,"process-nextick-args":537,"safe-buffer":589,"util-deprecate":599}],545:[function(e,t,r){"use strict";function n(){this.head=null,this.tail=null,this.length=0}var i=e("safe-buffer").Buffer;t.exports=n,n.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},n.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},n.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},n.prototype.clear=function(){this.head=this.tail=null,this.length=0},n.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,r=""+t.data;t=t.next;)r+=e+t.data;return r},n.prototype.concat=function(e){if(0===this.length)return i.alloc(0);if(1===this.length)return this.head.data;for(var t=i.allocUnsafe(e>>>0),r=this.head,n=0;r;)r.data.copy(t,n),n+=r.data.length,r=r.next;return t}},{"safe-buffer":589}],546:[function(e,t,r){t.exports=e("events").EventEmitter},{events:300}],547:[function(e,t,r){t.exports=e("./readable").PassThrough},{"./readable":548}],548:[function(e,t,r){(r=t.exports=e("./lib/_stream_readable.js")).Stream=r,r.Readable=r,r.Writable=e("./lib/_stream_writable.js"),r.Duplex=e("./lib/_stream_duplex.js"),r.Transform=e("./lib/_stream_transform.js"),r.PassThrough=e("./lib/_stream_passthrough.js")},{"./lib/_stream_duplex.js":540,"./lib/_stream_passthrough.js":541,"./lib/_stream_readable.js":542,"./lib/_stream_transform.js":543,"./lib/_stream_writable.js":544}],549:[function(e,t,r){t.exports=e("./readable").Transform},{"./readable":548}],550:[function(e,t,r){t.exports=e("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":544}],551:[function(e,t,r){function n(e,t,r){if(e){if(x.fixFaultyLocations(e,t),r){if(d.Node.check(e)&&d.SourceLocation.check(e.loc)){for(s=r.length-1;s>=0&&!(E(r[s].loc.end,e.loc.start)<=0);--s);return void r.splice(s+1,0,e)}}else if(e[A])return e[A];var i;if(m.check(e))i=Object.keys(e);else{if(!y.check(e))return;i=f.getFieldNames(e)}r||Object.defineProperty(e,A,{value:r=[],enumerable:!1});for(var s=0,a=i.length;s<a;++s)n(e[i[s]],t,r);return r}}function i(e,t,r){for(var s=n(e,r),a=0,o=s.length;a<o;){var u=a+o>>1,l=s[u];if(E(l.loc.start,t.loc.start)<=0&&E(t.loc.end,l.loc.end)<=0)return void i(t.enclosingNode=l,t,r);if(E(l.loc.end,t.loc.start)<=0){var c=l;a=u+1}else{if(!(E(t.loc.end,l.loc.start)<=0))throw new Error("Comment location overlaps with node location");var p=l;o=u}}c&&(t.precedingNode=c),p&&(t.followingNode=p)}function s(e,t){var r=e.length;if(0!==r){for(var n=e[0].precedingNode,i=e[0].followingNode,s=i.loc.start,a=r;a>0;--a){var u=e[a-1];h.strictEqual(u.precedingNode,n),h.strictEqual(u.followingNode,i);var c=t.sliceString(u.loc.end,s);if(/\S/.test(c))break;s=u.loc.start}for(;a<=r&&(u=e[a])&&("Line"===u.type||"CommentLine"===u.type)&&u.loc.start.column>i.loc.start.column;)++a;e.forEach(function(e,t){t<a?l(n,e):o(i,e)}),e.length=0}}function a(e,t){(e.comments||(e.comments=[])).push(t)}function o(e,t){t.leading=!0,t.trailing=!1,a(e,t)}function u(e,t){t.leading=!1,t.trailing=!1,a(e,t)}function l(e,t){t.leading=!1,t.trailing=!0,a(e,t)}function c(e,t){var r=e.getValue();d.Comment.assert(r);var n=r.loc,i=n&&n.lines,s=[t(e)];if(r.trailing)s.push("\n");else if(i instanceof b){var a=i.slice(n.end,i.skipSpaces(n.end));1===a.length?s.push(a):s.push(new Array(a.length).join("\n"))}else s.push("\n");return v(s)}function p(e,t){var r=e.getValue(e);d.Comment.assert(r);var n=r.loc,i=n&&n.lines,s=[];if(i instanceof b){var a=i.skipSpaces(n.start,!0)||i.firstPos(),o=i.slice(a,n.start);1===o.length?s.push(o):s.push(new Array(o.length).join("\n"))}return s.push(t(e)),v(s)}var h=e("assert"),f=e("./types"),d=f.namedTypes,m=f.builtInTypes.array,y=f.builtInTypes.object,g=e("./lines"),b=(g.fromString,g.Lines),v=g.concat,x=e("./util"),E=x.comparePos,A=e("private").makeUniqueKey();r.attach=function(e,t,r){if(m.check(e)){var n=[];e.forEach(function(e){e.loc.lines=r,i(t,e,r);var a=e.precedingNode,c=e.enclosingNode,p=e.followingNode;if(a&&p){var f=n.length;if(f>0){var d=n[f-1];h.strictEqual(d.precedingNode===e.precedingNode,d.followingNode===e.followingNode),d.followingNode!==e.followingNode&&s(n,r)}n.push(e)}else if(a)s(n,r),l(a,e);else if(p)s(n,r),o(p,e);else{if(!c)throw new Error("AST contains no nodes at all?");s(n,r),u(c,e)}}),s(n,r),e.forEach(function(e){delete e.precedingNode,delete e.enclosingNode,delete e.followingNode})}},r.printComments=function(e,t){var r=e.getValue(),n=t(e),i=d.Node.check(r)&&f.getFieldValue(r,"comments");if(!i||0===i.length)return n;var s=[],a=[n];return e.each(function(e){var n=e.getValue(),i=f.getFieldValue(n,"leading"),o=f.getFieldValue(n,"trailing");i||o&&!d.Statement.check(r)&&"Block"!==n.type&&"CommentBlock"!==n.type?s.push(c(e,t)):o&&a.push(p(e,t))},"comments"),s.push.apply(s,a),v(s)}},{"./lines":553,"./types":559,"./util":560,assert:3,private:536}],552:[function(e,t,r){function n(e){o.ok(this instanceof n),this.stack=[e]}function i(e,t){for(var r=e.stack,n=r.length-1;n>=0;n-=2){var i=r[n];if(l.Node.check(i)&&--t<0)return i}return null}function s(e){return l.BinaryExpression.check(e)||l.LogicalExpression.check(e)}function a(e){return!!l.CallExpression.check(e)||(c.check(e)?e.some(a):!!l.Node.check(e)&&u.someField(e,function(e,t){return a(t)}))}var o=e("assert"),u=e("./types"),l=u.namedTypes,c=(l.Node,u.builtInTypes.array),p=u.builtInTypes.number,h=n.prototype;t.exports=n,n.from=function(e){if(e instanceof n)return e.copy();if(e instanceof u.NodePath){for(var t,r=Object.create(n.prototype),i=[e.value];t=e.parentPath;e=t)i.push(e.name,t.value);return r.stack=i.reverse(),r}return new n(e)},h.copy=function(){var e=Object.create(n.prototype);return e.stack=this.stack.slice(0),e},h.getName=function(){var e=this.stack,t=e.length;return t>1?e[t-2]:null},h.getValue=function(){var e=this.stack;return e[e.length-1]},h.getNode=function(e){return i(this,~~e)},h.getParentNode=function(e){return i(this,1+~~e)},h.getRootValue=function(){var e=this.stack;return e.length%2==0?e[1]:e[0]},h.call=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}var o=e(this);return t.length=r,o},h.each=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}for(s=0;s<n.length;++s)s in n&&(t.push(s,n[s]),e(this),t.length-=2);t.length=r},h.map=function(e){for(var t=this.stack,r=t.length,n=t[r-1],i=arguments.length,s=1;s<i;++s){var a=arguments[s];n=n[a],t.push(a,n)}for(var o=new Array(n.length),s=0;s<n.length;++s)s in n&&(t.push(s,n[s]),o[s]=e(this,s),t.length-=2);return t.length=r,o},h.needsParens=function(e){var t=this.getParentNode();if(!t)return!1;var r=this.getName(),n=this.getNode();if(this.getValue()!==n)return!1;if(l.Statement.check(n))return!1;if("Identifier"===n.type)return!1;if("ParenthesizedExpression"===t.type)return!1;switch(n.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return"MemberExpression"===t.type&&"object"===r&&t.object===n;case"BinaryExpression":case"LogicalExpression":switch(t.type){case"CallExpression":return"callee"===r&&t.callee===n;case"UnaryExpression":case"SpreadElement":case"SpreadProperty":return!0;case"MemberExpression":return"object"===r&&t.object===n;case"BinaryExpression":case"LogicalExpression":var i=t.operator,u=f[i],c=n.operator,h=f[c];if(u>h)return!0;if(u===h&&"right"===r)return o.strictEqual(t.right,n),!0;default:return!1}case"SequenceExpression":switch(t.type){case"ReturnStatement":case"ForStatement":return!1;case"ExpressionStatement":return"expression"!==r;default:return!0}case"YieldExpression":switch(t.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"IntersectionTypeAnnotation":case"UnionTypeAnnotation":return"NullableTypeAnnotation"===t.type;case"Literal":return"MemberExpression"===t.type&&p.check(n.value)&&"object"===r&&t.object===n;case"AssignmentExpression":case"ConditionalExpression":switch(t.type){case"UnaryExpression":case"SpreadElement":case"SpreadProperty":case"BinaryExpression":case"LogicalExpression":return!0;case"CallExpression":return"callee"===r&&t.callee===n;case"ConditionalExpression":return"test"===r&&t.test===n;case"MemberExpression":return"object"===r&&t.object===n;default:return!1}case"ArrowFunctionExpression":return!(!l.CallExpression.check(t)||"callee"!==r)||(!(!l.MemberExpression.check(t)||"object"!==r)||s(t));case"ObjectExpression":if("ArrowFunctionExpression"===t.type&&"body"===r)return!0;default:if("NewExpression"===t.type&&"callee"===r&&t.callee===n)return a(n)}return!(!0===e||this.canBeFirstInStatement()||!this.firstInStatement())};var f={};[["||"],["&&"],["|"],["^"],["&"],["==","===","!=","!=="],["<",">","<=",">=","in","instanceof"],[">>","<<",">>>"],["+","-"],["*","/","%","**"]].forEach(function(e,t){e.forEach(function(e){f[e]=t})}),h.canBeFirstInStatement=function(){var e=this.getNode();return!l.FunctionExpression.check(e)&&!l.ObjectExpression.check(e)},h.firstInStatement=function(){for(var e,t,r,n,i=this.stack,a=i.length-1;a>=0;a-=2)if(l.Node.check(i[a])&&(r=e,n=t,e=i[a-1],t=i[a]),t&&n){if(l.BlockStatement.check(t)&&"body"===e&&0===r)return o.strictEqual(t.body[0],n),!0;if(l.ExpressionStatement.check(t)&&"expression"===r)return o.strictEqual(t.expression,n),!0;if(l.SequenceExpression.check(t)&&"expressions"===e&&0===r)o.strictEqual(t.expressions[0],n);else if(l.CallExpression.check(t)&&"callee"===r)o.strictEqual(t.callee,n);else if(l.MemberExpression.check(t)&&"object"===r)o.strictEqual(t.object,n);else if(l.ConditionalExpression.check(t)&&"test"===r)o.strictEqual(t.test,n);else if(s(t)&&"left"===r)o.strictEqual(t.left,n);else{if(!l.UnaryExpression.check(t)||t.prefix||"argument"!==r)return!1;o.strictEqual(t.argument,n)}}return!0}},{"./types":559,assert:3}],553:[function(e,t,r){function n(e){return e[f]}function i(e,t){c.ok(this instanceof i),c.ok(e.length>0),t?d.assert(t):t=null,Object.defineProperty(this,f,{value:{infos:e,mappings:[],name:t,cachedSourceMap:null}}),t&&n(this).mappings.push(new y(this,{start:this.firstPos(),end:this.lastPos()}))}function s(e){return{line:e.line,indent:e.indent,locked:e.locked,sliceStart:e.sliceStart,sliceEnd:e.sliceEnd}}function a(e,t){for(var r=0,n=e.length,i=0;i<n;++i)switch(e.charCodeAt(i)){case 9:c.strictEqual(typeof t,"number"),c.ok(t>0);var s=Math.ceil(r/t)*t;s===r?r+=t:r=s;break;case 11:case 12:case 13:case 65279:break;case 32:default:r+=1}return r}function o(e,t){if(e instanceof i)return e;e+="";var r=t&&t.tabWidth,n=e.indexOf("\t")<0,s=!(!t||!t.locked),o=!t&&n&&e.length<=x;if(c.ok(r||n,"No tab width specified but encountered tabs in string\n"+e),o&&v.call(b,e))return b[e];var u=new i(e.split(A).map(function(e){var t=E.exec(e)[0];return{line:e,indent:a(t,r),locked:s,sliceStart:t.length,sliceEnd:e.length}}),h(t).sourceFileName);return o&&(b[e]=u),u}function u(e){return!/\S/.test(e)}function l(e,t,r){var n=e.sliceStart,i=e.sliceEnd,s=Math.max(e.indent,0),a=s+i-n;return void 0===r&&(r=a),t=Math.max(t,0),r=Math.min(r,a),r=Math.max(r,t),r<s?(s=r,i=n):i-=a-r,a=r,a-=t,t<s?s-=t:(t-=s,s=0,n+=t),c.ok(s>=0),c.ok(n<=i),c.strictEqual(a,s+i-n),e.indent===s&&e.sliceStart===n&&e.sliceEnd===i?e:{line:e.line,indent:s,locked:!1,sliceStart:n,sliceEnd:i}}var c=e("assert"),p=e("source-map"),h=e("./options").normalize,f=e("private").makeUniqueKey(),d=e("./types").builtInTypes.string,m=e("./util").comparePos,y=e("./mapping");r.Lines=i;var g=i.prototype;Object.defineProperties(g,{length:{get:function(){return n(this).infos.length}},name:{get:function(){return n(this).name}}});var b={},v=b.hasOwnProperty,x=10;r.countSpaces=a;var E=/^\s*/,A=/\u000D\u000A|\u000D(?!\u000A)|\u000A|\u2028|\u2029/;r.fromString=o,g.toString=function(e){return this.sliceString(this.firstPos(),this.lastPos(),e)},g.getSourceMap=function(e,t){function r(r){return r=r||{},d.assert(e),r.file=e,t&&(d.assert(t),r.sourceRoot=t),r}if(!e)return null;var i=this,s=n(i);if(s.cachedSourceMap)return r(s.cachedSourceMap.toJSON());var a=new p.SourceMapGenerator(r()),o={};return s.mappings.forEach(function(e){for(var t=e.sourceLines.skipSpaces(e.sourceLoc.start)||e.sourceLines.lastPos(),r=i.skipSpaces(e.targetLoc.start)||i.lastPos();m(t,e.sourceLoc.end)<0&&m(r,e.targetLoc.end)<0;){var n=e.sourceLines.charAt(t),s=i.charAt(r);c.strictEqual(n,s);var u=e.sourceLines.name;if(a.addMapping({source:u,original:{line:t.line,column:t.column},generated:{line:r.line,column:r.column}}),!v.call(o,u)){var l=e.sourceLines.toString();a.setSourceContent(u,l),o[u]=l}i.nextPos(r,!0),e.sourceLines.nextPos(t,!0)}}),s.cachedSourceMap=a,a.toJSON()},g.bootstrapCharAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,r=e.column,n=this.toString().split(A),i=n[t-1];return void 0===i?"":r===i.length&&t<n.length?"\n":r>=i.length?"":i.charAt(r)},g.charAt=function(e){c.strictEqual(typeof e,"object"),c.strictEqual(typeof e.line,"number"),c.strictEqual(typeof e.column,"number");var t=e.line,r=e.column,i=n(this).infos[t-1],s=r;if(void 0===i||s<0)return"";var a=this.getIndentAt(t);return s<a?" ":(s+=i.sliceStart-a,s===i.sliceEnd&&t<this.length?"\n":s>=i.sliceEnd?"":i.line.charAt(s))},g.stripMargin=function(e,t){if(0===e)return this;if(c.ok(e>0,"negative margin: "+e),t&&1===this.length)return this;var r=n(this),a=new i(r.infos.map(function(r,n){return r.line&&(n>0||!t)&&((r=s(r)).indent=Math.max(0,r.indent-e)),r}));if(r.mappings.length>0){var o=n(a).mappings;c.strictEqual(o.length,0),r.mappings.forEach(function(r){o.push(r.indent(e,t,!0))})}return a},g.indent=function(e){if(0===e)return this;var t=n(this),r=new i(t.infos.map(function(t){return t.line&&!t.locked&&((t=s(t)).indent+=e),t}));if(t.mappings.length>0){var a=n(r).mappings;c.strictEqual(a.length,0),t.mappings.forEach(function(t){a.push(t.indent(e))})}return r},g.indentTail=function(e){if(0===e)return this;if(this.length<2)return this;var t=n(this),r=new i(t.infos.map(function(t,r){return r>0&&t.line&&!t.locked&&((t=s(t)).indent+=e),t}));if(t.mappings.length>0){var a=n(r).mappings;c.strictEqual(a.length,0),t.mappings.forEach(function(t){a.push(t.indent(e,!0))})}return r},g.lockIndentTail=function(){return this.length<2?this:new i(n(this).infos.map(function(e,t){return e=s(e),e.locked=t>0,e}))},g.getIndentAt=function(e){c.ok(e>=1,"no line "+e+" (line numbers start from 1)");var t=n(this).infos[e-1];return Math.max(t.indent,0)},g.guessTabWidth=function(){var e=n(this);if(v.call(e,"cachedTabWidth"))return e.cachedTabWidth;for(var t=[],r=0,i=1,s=this.length;i<=s;++i){var a=e.infos[i-1];if(!u(a.line.slice(a.sliceStart,a.sliceEnd))){var o=Math.abs(a.indent-r);t[o]=1+~~t[o],r=a.indent}}for(var l=-1,c=2,p=1;p<t.length;p+=1)v.call(t,p)&&t[p]>l&&(l=t[p],c=p);return e.cachedTabWidth=c},g.startsWithComment=function(){var e=n(this);if(0===e.infos.length)return!1;var t=e.infos[0],r=t.sliceStart,i=t.sliceEnd,s=t.line.slice(r,i).trim();return 0===s.length||"//"===s.slice(0,2)||"/*"===s.slice(0,2)},g.isOnlyWhitespace=function(){return u(this.toString())},g.isPrecededOnlyByWhitespace=function(e){var t=n(this).infos[e.line-1],r=Math.max(t.indent,0),i=e.column-r;if(i<=0)return!0;var s=t.sliceStart,a=Math.min(s+i,t.sliceEnd);return u(t.line.slice(s,a))},g.getLineLength=function(e){var t=n(this).infos[e-1];return this.getIndentAt(e)+t.sliceEnd-t.sliceStart},g.nextPos=function(e,t){var r=Math.max(e.line,0);return Math.max(e.column,0)<this.getLineLength(r)?(e.column+=1,!t||!!this.skipSpaces(e,!1,!0)):r<this.length&&(e.line+=1,e.column=0,!t||!!this.skipSpaces(e,!1,!0))},g.prevPos=function(e,t){var r=e.line,n=e.column;if(n<1){if((r-=1)<1)return!1;n=this.getLineLength(r)}else n=Math.min(n-1,this.getLineLength(r));return e.line=r,e.column=n,!t||!!this.skipSpaces(e,!0,!0)},g.firstPos=function(){return{line:1,column:0}},g.lastPos=function(){return{line:this.length,column:this.getLineLength(this.length)}},g.skipSpaces=function(e,t,r){if(e=e?r?e:{line:e.line,column:e.column}:t?this.lastPos():this.firstPos(),t){for(;this.prevPos(e);)if(!u(this.charAt(e))&&this.nextPos(e))return e;return null}for(;u(this.charAt(e));)if(!this.nextPos(e))return null;return e},g.trimLeft=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);return e?this.slice(e):D},g.trimRight=function(){var e=this.skipSpaces(this.lastPos(),!0,!0);return e?this.slice(this.firstPos(),e):D},g.trim=function(){var e=this.skipSpaces(this.firstPos(),!1,!0);if(null===e)return D;var t=this.skipSpaces(this.lastPos(),!0,!0);return c.notStrictEqual(t,null),this.slice(e,t)},g.eachPos=function(e,t,r){var n=this.firstPos();if(t&&(n.line=t.line,n.column=t.column),!r||this.skipSpaces(n,!1,!0))do{e.call(this,n)}while(this.nextPos(n,r))},g.bootstrapSlice=function(e,t){var r=this.toString().split(A).slice(e.line-1,t.line);return r.push(r.pop().slice(0,t.column)),r[0]=r[0].slice(e.column),o(r.join("\n"))},g.slice=function(e,t){if(!t){if(!e)return this;t=this.lastPos()}var r=n(this),s=r.infos.slice(e.line-1,t.line);e.line===t.line?s[0]=l(s[0],e.column,t.column):(c.ok(e.line<t.line),s[0]=l(s[0],e.column),s.push(l(s.pop(),0,t.column)));var a=new i(s);if(r.mappings.length>0){var o=n(a).mappings;c.strictEqual(o.length,0),r.mappings.forEach(function(r){var n=r.slice(this,e,t);n&&o.push(n)},this)}return a},g.bootstrapSliceString=function(e,t,r){return this.slice(e,t).toString(r)},g.sliceString=function(e,t,r){if(!t){if(!e)return this;t=this.lastPos()}r=h(r);for(var i=n(this).infos,s=[],o=r.tabWidth,c=e.line;c<=t.line;++c){var p=i[c-1];c===e.line?p=c===t.line?l(p,e.column,t.column):l(p,e.column):c===t.line&&(p=l(p,0,t.column));var f=Math.max(p.indent,0),d=p.line.slice(0,p.sliceStart);if(r.reuseWhitespace&&u(d)&&a(d,r.tabWidth)===f)s.push(p.line.slice(0,p.sliceEnd));else{var m=0,y=f;r.useTabs&&(y-=(m=Math.floor(f/o))*o);var g="";m>0&&(g+=new Array(m+1).join("\t")),y>0&&(g+=new Array(y+1).join(" ")),g+=p.line.slice(p.sliceStart,p.sliceEnd),s.push(g)}}return s.join(r.lineTerminator)},g.isEmpty=function(){return this.length<2&&this.getLineLength(1)<1},g.join=function(e){function t(e){if(null!==e){if(a){var t=e.infos[0],r=new Array(t.indent+1).join(" "),n=c.length,i=Math.max(a.indent,0)+a.sliceEnd-a.sliceStart;a.line=a.line.slice(0,a.sliceEnd)+r+t.line.slice(t.sliceStart,t.sliceEnd),a.locked=a.locked||t.locked,a.sliceEnd=a.line.length,e.mappings.length>0&&e.mappings.forEach(function(e){p.push(e.add(n,i))})}else e.mappings.length>0&&p.push.apply(p,e.mappings);e.infos.forEach(function(e,t){(!a||t>0)&&(a=s(e),c.push(a))})}}function r(e,r){r>0&&t(l),t(e)}var a,u=this,l=n(u),c=[],p=[];if(e.map(function(e){var t=o(e);return t.isEmpty()?null:n(t)}).forEach(u.isEmpty()?t:r),c.length<1)return D;var h=new i(c);return n(h).mappings=p,h},r.concat=function(e){return D.join(e)},g.concat=function(e){var t=arguments,r=[this];return r.push.apply(r,t),c.strictEqual(r.length,t.length+1),D.join(r)};var D=o("")},{"./mapping":554,"./options":555,"./types":559,"./util":560,assert:3,private:536,"source-map":573}],554:[function(e,t,r){function n(e,t,r){o.ok(this instanceof n),o.ok(e instanceof h.Lines),c.assert(t),r?o.ok(l.check(r.start.line)&&l.check(r.start.column)&&l.check(r.end.line)&&l.check(r.end.column)):r=t,Object.defineProperties(this,{sourceLines:{value:e},sourceLoc:{value:t},targetLoc:{value:r}})}function i(e,t,r){return{line:e.line+t-1,column:1===e.line?e.column+r:e.column}}function s(e,t,r){return{line:e.line-t+1,column:e.line===t?e.column-r:e.column}}function a(e,t,r,n,i){o.ok(e instanceof h.Lines),o.ok(r instanceof h.Lines),p.assert(t),p.assert(n),p.assert(i);var s=f(n,i);if(0===s)return t;if(s<0){var a=e.skipSpaces(t),u=r.skipSpaces(n),l=i.line-u.line;for(a.line+=l,u.line+=l,l>0?(a.column=0,u.column=0):o.strictEqual(l,0);f(u,i)<0&&r.nextPos(u,!0);)o.ok(e.nextPos(a,!0)),o.strictEqual(e.charAt(a),r.charAt(u))}else{var a=e.skipSpaces(t,!0),u=r.skipSpaces(n,!0),l=i.line-u.line;for(a.line+=l,u.line+=l,l<0?(a.column=e.getLineLength(a.line),u.column=r.getLineLength(u.line)):o.strictEqual(l,0);f(i,u)<0&&r.prevPos(u,!0);)o.ok(e.prevPos(a,!0)),o.strictEqual(e.charAt(a),r.charAt(u))}return a}var o=e("assert"),u=e("./types"),l=(u.builtInTypes.string,u.builtInTypes.number),c=u.namedTypes.SourceLocation,p=u.namedTypes.Position,h=e("./lines"),f=e("./util").comparePos,d=n.prototype;t.exports=n,d.slice=function(e,t,r){function i(n){var i=l[n],s=c[n],p=t;return"end"===n?p=r:o.strictEqual(n,"start"),a(u,i,e,s,p)}o.ok(e instanceof h.Lines),p.assert(t),r?p.assert(r):r=e.lastPos();var u=this.sourceLines,l=this.sourceLoc,c=this.targetLoc;if(f(t,c.start)<=0)if(f(c.end,r)<=0)c={start:s(c.start,t.line,t.column),end:s(c.end,t.line,t.column)};else{if(f(r,c.start)<=0)return null;l={start:l.start,end:i("end")},c={start:s(c.start,t.line,t.column),end:s(r,t.line,t.column)}}else{if(f(c.end,t)<=0)return null;f(c.end,r)<=0?(l={start:i("start"),end:l.end},c={start:{line:1,column:0},end:s(c.end,t.line,t.column)}):(l={start:i("start"),end:i("end")},c={start:{line:1,column:0},end:s(r,t.line,t.column)})}return new n(this.sourceLines,l,c)},d.add=function(e,t){return new n(this.sourceLines,this.sourceLoc,{start:i(this.targetLoc.start,e,t),end:i(this.targetLoc.end,e,t)})},d.subtract=function(e,t){return new n(this.sourceLines,this.sourceLoc,{start:s(this.targetLoc.start,e,t),end:s(this.targetLoc.end,e,t)})},d.indent=function(e,t,r){if(0===e)return this;var i=this.targetLoc,s=i.start.line,a=i.end.line;if(t&&1===s&&1===a)return this;if(i={start:i.start,end:i.end},!t||s>1){var o=i.start.column+e;i.start={line:s,column:r?Math.max(0,o):o}}if(!t||a>1){var u=i.end.column+e;i.end={line:a,column:r?Math.max(0,u):u}}return new n(this.sourceLines,this.sourceLoc,i)}},{"./lines":553,"./types":559,"./util":560,assert:3}],555:[function(e,t,r){var n={parser:e("esprima"),tabWidth:4,useTabs:!1,reuseWhitespace:!0,lineTerminator:e("os").EOL,wrapColumn:74,sourceFileName:null,sourceMapName:null,sourceRoot:null,inputSourceMap:null,range:!1,tolerant:!0,quote:null,trailingComma:!1,arrayBracketSpacing:!1,objectCurlySpacing:!0,arrowParensAlways:!1,flowObjectCommas:!0},i=n.hasOwnProperty;r.normalize=function(e){function t(t){return i.call(e,t)?e[t]:n[t]}return e=e||n,{tabWidth:+t("tabWidth"),useTabs:!!t("useTabs"),reuseWhitespace:!!t("reuseWhitespace"),lineTerminator:t("lineTerminator"),wrapColumn:Math.max(t("wrapColumn"),0),sourceFileName:t("sourceFileName"),sourceMapName:t("sourceMapName"),sourceRoot:t("sourceRoot"),inputSourceMap:t("inputSourceMap"),parser:t("esprima")||t("parser"),range:t("range"),tolerant:t("tolerant"),quote:t("quote"),trailingComma:t("trailingComma"),arrayBracketSpacing:t("arrayBracketSpacing"),objectCurlySpacing:t("objectCurlySpacing"),arrowParensAlways:t("arrowParensAlways"),flowObjectCommas:t("flowObjectCommas")}}},{esprima:562,os:533}],556:[function(e,t,r){function n(e){i.ok(this instanceof n),this.lines=e,this.indent=0}var i=e("assert"),s=e("./types"),a=(s.namedTypes,s.builders),o=s.builtInTypes.object,u=s.builtInTypes.array,l=(s.builtInTypes.function,e("./patcher").Patcher,e("./options").normalize),c=e("./lines").fromString,p=e("./comments").attach,h=e("./util");r.parse=function(e,t){t=l(t);var r=c(e,t),i=r.toString({tabWidth:t.tabWidth,reuseWhitespace:!1,useTabs:!1}),s=[],o=t.parser.parse(i,{jsx:!0,loc:!0,locations:!0,range:t.range,comment:!0,onComment:s,tolerant:t.tolerant,ecmaVersion:6,sourceType:"module"});h.fixFaultyLocations(o,r),o.loc=o.loc||{start:r.firstPos(),end:r.lastPos()},o.loc.lines=r,o.loc.indent=0;var u=h.getTrueLoc(o,r);o.loc.start=u.start,o.loc.end=u.end,o.comments&&(s=o.comments,delete o.comments);var f=o;return"Program"===f.type?(f=a.file(o,t.sourceFileName||null)).loc={lines:r,indent:0,start:r.firstPos(),end:r.lastPos()}:"File"===f.type&&(o=f.program),p(s,o.body.length?f.program:f,r),new n(r).copy(f)},n.prototype.copy=function(e){if(u.check(e))return e.map(this.copy,this);if(!o.check(e))return e;h.fixFaultyLocations(e,this.lines);var t=Object.create(Object.getPrototypeOf(e),{original:{value:e,configurable:!1,enumerable:!1,writable:!0}}),r=e.loc,n=this.indent,i=n;r&&(("Block"===e.type||"Line"===e.type||"CommentBlock"===e.type||"CommentLine"===e.type||this.lines.isPrecededOnlyByWhitespace(r.start))&&(i=this.indent=r.start.column),r.lines=this.lines,r.indent=i);for(var s=Object.keys(e),a=s.length,l=0;l<a;++l){var c=s[l];"loc"===c?t[c]=e[c]:"tokens"===c&&"File"===e.type?t[c]=e[c]:t[c]=this.copy(e[c])}return this.indent=n,t}},{"./comments":551,"./lines":553,"./options":555,"./patcher":557,"./types":559,"./util":560,assert:3}],557:[function(e,t,r){function n(e){m.ok(this instanceof n),m.ok(e instanceof y.Lines);var t=this,r=[];t.replace=function(e,t){w.check(t)&&(t=y.fromString(t)),r.push({lines:t,start:e.start,end:e.end})},t.get=function(t){function n(t,r){m.ok(D(t,r)<=0),s.push(e.slice(t,r))}var i=(t=t||{start:{line:1,column:0},end:{line:e.length,column:e.getLineLength(e.length)}}).start,s=[];return r.sort(function(e,t){return D(e.start,t.start)}).forEach(function(e){D(i,e.start)>0||(n(i,e.start),s.push(e.lines),i=e.end)}),n(i,t.end),y.concat(s)}}function i(e){var t=[];return e.comments&&e.comments.length>0&&e.comments.forEach(function(e){(e.leading||e.trailing)&&t.push(e)}),t}function s(e,t,r){var n=A.copyPos(t.start),i=e.prevPos(n)&&e.charAt(n),s=r.charAt(r.firstPos());return i&&k.test(i)&&s&&k.test(s)}function a(e,t,r){var n=e.charAt(t.end),i=r.lastPos(),s=r.prevPos(i)&&r.charAt(i);return s&&k.test(s)&&n&&k.test(n)}function o(e,t){var r=e.getValue();b.assert(r);var n=r.original;if(b.assert(n),m.deepEqual(t,[]),r.type!==n.type)return!1;var i=d(e,new C(n),t);return i||(t.length=0),i}function u(e,t,r){var n=e.getValue();return n===t.getValue()||(_.check(n)?l(e,t,r):!!S.check(n)&&c(e,t,r))}function l(e,t,r){var n=e.getValue(),i=t.getValue();_.assert(n);var s=n.length;if(!_.check(i)||i.length!==s)return!1;for(var a=0;a<s;++a){e.stack.push(a,n[a]),t.stack.push(a,i[a]);var o=u(e,t,r);if(e.stack.length-=2,t.stack.length-=2,!o)return!1}return!0}function c(e,t,r){var n=e.getValue();if(S.assert(n),null===n.original)return!1;var i=t.getValue();if(!S.check(i))return!1;if(b.check(n)){if(!b.check(i))return!1;if(n.type===i.type){var s=[];if(d(e,t,s))r.push.apply(r,s);else{if(!i.loc)return!1;r.push({oldPath:t.copy(),newPath:e.copy()})}return!0}return!!(v.check(n)&&v.check(i)&&i.loc)&&(r.push({oldPath:t.copy(),newPath:e.copy()}),!0)}return d(e,t,r)}function p(e){var t=e.getValue().loc,r=t&&t.lines;if(r){var n=T;for(n.line=t.start.line,n.column=t.start.column;r.prevPos(n);){var i=r.charAt(n);if("("===i)return D(e.getRootValue().loc.start,n)<=0;if(P.test(i))return!1}}return!1}function h(e){var t=e.getValue().loc,r=t&&t.lines;if(r){var n=T;n.line=t.end.line,n.column=t.end.column;do{var i=r.charAt(n);if(")"===i)return D(n,e.getRootValue().loc.end)<=0;if(P.test(i))return!1}while(r.nextPos(n))}return!1}function f(e){return p(e)&&h(e)}function d(e,t,r){var n=e.getValue(),i=t.getValue();if(S.assert(n),S.assert(i),null===n.original)return!1;if(!e.canBeFirstInStatement()&&e.firstInStatement()&&!p(t))return!1;if(e.needsParens(!0)&&!f(t))return!1;var s=A.getUnionOfKeys(i,n);"File"!==i.type&&"File"!==n.type||delete s.tokens,delete s.loc;var a=r.length;for(var o in s){e.stack.push(o,g.getFieldValue(n,o)),t.stack.push(o,g.getFieldValue(i,o));var l=u(e,t,r);if(e.stack.length-=2,t.stack.length-=2,!l)return!1}return!(x.check(e.getNode())&&r.length>a)}var m=e("assert"),y=e("./lines"),g=e("./types"),b=(g.getFieldValue,g.namedTypes.Printable),v=g.namedTypes.Expression,x=g.namedTypes.ReturnStatement,E=g.namedTypes.SourceLocation,A=e("./util"),D=A.comparePos,C=e("./fast-path"),S=g.builtInTypes.object,_=g.builtInTypes.array,w=g.builtInTypes.string,k=/[0-9a-z_$]/i;r.Patcher=n;var F=n.prototype;F.tryToReprintComments=function(e,t,r){var n=this;if(!e.comments&&!t.comments)return!0;var s=C.from(e),a=C.from(t);s.stack.push("comments",i(e)),a.stack.push("comments",i(t));var o=[],u=l(s,a,o);return u&&o.length>0&&o.forEach(function(e){var t=e.oldPath.getValue();m.ok(t.leading||t.trailing),n.replace(t.loc,r(e.newPath).indentTail(t.loc.indent))}),u},F.deleteComments=function(e){if(e.comments){var t=this;e.comments.forEach(function(r){r.leading?t.replace({start:r.loc.start,end:e.loc.lines.skipSpaces(r.loc.end,!1,!1)},""):r.trailing&&t.replace({start:e.loc.lines.skipSpaces(r.loc.start,!0,!1),end:r.loc.end},"")})}},r.getReprinter=function(e){m.ok(e instanceof C);var t=e.getValue();if(b.check(t)){var r=t.original,i=r&&r.loc,u=i&&i.lines,l=[];if(u&&o(e,l))return function(e){var t=new n(u);return l.forEach(function(r){var n=r.newPath.getValue(),i=r.oldPath.getValue();E.assert(i.loc,!0);var o=!t.tryToReprintComments(n,i,e);o&&t.deleteComments(i);var l=e(r.newPath,o).indentTail(i.loc.indent),c=s(u,i.loc,l),p=a(u,i.loc,l);if(c||p){var h=[];c&&h.push(" "),h.push(l),p&&h.push(" "),l=y.concat(h)}t.replace(i.loc,l)}),t.get(i).indentTail(-r.loc.indent)}}};var T={line:1,column:0},P=/\S/},{"./fast-path":552,"./lines":553,"./types":559,"./util":560,assert:3}],558:[function(e,t,r){function n(e,t){D.ok(this instanceof n),B.assert(e),this.code=e,t&&(O.assert(t),this.map=t)}function i(e){function t(e){return D.ok(e instanceof j),C(e,r)}function r(e,r){if(r)return t(e);if(D.ok(e instanceof j),!c){var n=p.tabWidth,i=e.getNode().loc;if(i&&i.lines&&i.lines.guessTabWidth){p.tabWidth=i.lines.guessTabWidth();var s=o(e);return p.tabWidth=n,s}}return o(e)}function o(e){var t=F(e);return t?s(e,t(r)):u(e)}function u(e,r){return r?C(e,u):a(e,p,t)}function l(e){return a(e,p,l)}D.ok(this instanceof i);var c=e&&e.tabWidth,p=k(e);D.notStrictEqual(p,e),p.sourceFileName=null,this.print=function(e){if(!e)return L;var t=r(j.from(e),!0);return new n(t.toString(p),N.composeSourceMaps(p.inputSourceMap,t.getSourceMap(p.sourceMapName,p.sourceRoot)))},this.printGenerically=function(e){if(!e)return L;var t=j.from(e),r=p.reuseWhitespace;p.reuseWhitespace=!1;var i=new n(l(t).toString(p));return p.reuseWhitespace=r,i}}function s(e,t){return e.needsParens()?w(["(",t,")"]):t}function a(e,t,r){D.ok(e instanceof j);var n=e.getValue(),i=[],s=!1,a=o(e,t,r);return!n||a.isEmpty()?a:(n.decorators&&n.decorators.length>0&&!N.getParentExportDeclaration(e)?e.each(function(e){i.push(r(e),"\n")},"decorators"):N.isExportDeclaration(n)&&n.declaration&&n.declaration.decorators?e.each(function(e){i.push(r(e),"\n")},"declaration","decorators"):s=e.needsParens(),s&&i.unshift("("),i.push(a),s&&i.push(")"),w(i))}function o(e,t,r){var n=e.getValue();if(!n)return _("");if("string"==typeof n)return _(n,t);P.Printable.assert(n);R=[];switch(n.type){case"File":return e.call(r,"program");case"Program":return n.directives&&e.each(function(e){R.push(r(e),";\n")},"directives"),R.push(e.call(function(e){return u(e,t,r)},"body")),w(R);case"Noop":case"EmptyStatement":return _("");case"ExpressionStatement":return w([e.call(r,"expression"),";"]);case"ParenthesizedExpression":return w(["(",e.call(r,"expression"),")"]);case"BinaryExpression":case"LogicalExpression":case"AssignmentExpression":return _(" ").join([e.call(r,"left"),n.operator,e.call(r,"right")]);case"AssignmentPattern":return w([e.call(r,"left")," = ",e.call(r,"right")]);case"MemberExpression":R.push(e.call(r,"object"));var i=e.call(r,"property");return n.computed?R.push("[",i,"]"):R.push(".",i),w(R);case"MetaProperty":return w([e.call(r,"meta"),".",e.call(r,"property")]);case"BindExpression":return n.object&&R.push(e.call(r,"object")),R.push("::",e.call(r,"callee")),w(R);case"Path":return _(".").join(n.body);case"Identifier":return w([_(n.name,t),e.call(r,"typeAnnotation")]);case"SpreadElement":case"SpreadElementPattern":case"RestProperty":case"SpreadProperty":case"SpreadPropertyPattern":case"RestElement":return w(["...",e.call(r,"argument")]);case"FunctionDeclaration":case"FunctionExpression":return n.async&&R.push("async "),R.push("function"),n.generator&&R.push("*"),n.id&&R.push(" ",e.call(r,"id"),e.call(r,"typeParameters")),R.push("(",f(e,t,r),")",e.call(r,"returnType")," ",e.call(r,"body")),w(R);case"ArrowFunctionExpression":return n.async&&R.push("async "),n.typeParameters&&R.push(e.call(r,"typeParameters")),t.arrowParensAlways||1!==n.params.length||n.rest||"Identifier"!==n.params[0].type||n.params[0].typeAnnotation||n.returnType?R.push("(",f(e,t,r),")",e.call(r,"returnType")):R.push(e.call(r,"params",0)),R.push(" => ",e.call(r,"body")),w(R);case"MethodDefinition":return n.static&&R.push("static "),R.push(c(e,t,r)),w(R);case"YieldExpression":return R.push("yield"),n.delegate&&R.push("*"),n.argument&&R.push(" ",e.call(r,"argument")),w(R);case"AwaitExpression":return R.push("await"),n.all&&R.push("*"),n.argument&&R.push(" ",e.call(r,"argument")),w(R);case"ModuleDeclaration":return R.push("module",e.call(r,"id")),n.source?(D.ok(!n.body),R.push("from",e.call(r,"source"))):R.push(e.call(r,"body")),_(" ").join(R);case"ImportSpecifier":return n.imported?(R.push(e.call(r,"imported")),n.local&&n.local.name!==n.imported.name&&R.push(" as ",e.call(r,"local"))):n.id&&(R.push(e.call(r,"id")),n.name&&R.push(" as ",e.call(r,"name"))),w(R);case"ExportSpecifier":return n.local?(R.push(e.call(r,"local")),n.exported&&n.exported.name!==n.local.name&&R.push(" as ",e.call(r,"exported"))):n.id&&(R.push(e.call(r,"id")),n.name&&R.push(" as ",e.call(r,"name"))),w(R);case"ExportBatchSpecifier":return _("*");case"ImportNamespaceSpecifier":return R.push("* as "),n.local?R.push(e.call(r,"local")):n.id&&R.push(e.call(r,"id")),w(R);case"ImportDefaultSpecifier":return n.local?e.call(r,"local"):e.call(r,"id");case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportNamedDeclaration":return m(e,t,r);case"ExportAllDeclaration":return R.push("export *"),n.exported&&R.push(" as ",e.call(r,"exported")),R.push(" from ",e.call(r,"source")),w(R);case"ExportNamespaceSpecifier":return w(["* as ",e.call(r,"exported")]);case"ExportDefaultSpecifier":return e.call(r,"exported");case"Import":return _("import",t);case"ImportDeclaration":if(R.push("import "),n.importKind&&"value"!==n.importKind&&R.push(n.importKind+" "),n.specifiers&&n.specifiers.length>0){var s=!1;e.each(function(e){e.getName()>0&&R.push(", ");var n=e.getValue();P.ImportDefaultSpecifier.check(n)||P.ImportNamespaceSpecifier.check(n)?D.strictEqual(s,!1):(P.ImportSpecifier.assert(n),s||(s=!0,R.push(t.objectCurlySpacing?"{ ":"{"))),R.push(r(e))},"specifiers"),s&&R.push(t.objectCurlySpacing?" }":"}"),R.push(" from ")}return R.push(e.call(r,"source"),";"),w(R);case"BlockStatement":var a=e.call(function(e){return u(e,t,r)},"body");return!a.isEmpty()||n.directives&&0!==n.directives.length?(R.push("{\n"),n.directives&&e.each(function(e){R.push(r(e).indent(t.tabWidth),";",n.directives.length>1||!a.isEmpty()?"\n":"")},"directives"),R.push(a.indent(t.tabWidth)),R.push("\n}"),w(R)):_("{}");case"ReturnStatement":if(R.push("return"),n.argument){var o=e.call(r,"argument");o.startsWithComment()||o.length>1&&P.JSXElement&&P.JSXElement.check(n.argument)?R.push(" (\n",o.indent(t.tabWidth),"\n)"):R.push(" ",o)}return R.push(";"),w(R);case"CallExpression":return w([e.call(r,"callee"),h(e,t,r)]);case"ObjectExpression":case"ObjectPattern":case"ObjectTypeAnnotation":var l=!1,b="ObjectTypeAnnotation"===n.type,x=t.flowObjectCommas?",":b?";":",",A=[];b&&A.push("indexers","callProperties"),A.push("properties");B=0;A.forEach(function(e){B+=n[e].length});var C=b&&1===B||0===B,S=n.exact?"{|":"{",k=n.exact?"|}":"}";R.push(C?S:S+"\n");var F=R.length-1,T=0;return A.forEach(function(n){e.each(function(e){var n=r(e);C||(n=n.indent(t.tabWidth));var i=!b&&n.length>1;i&&l&&R.push("\n"),R.push(n),T<B-1?(R.push(x+(i?"\n\n":"\n")),l=!i):1!==B&&b?R.push(x):!C&&N.isTrailingCommaEnabled(t,"objects")&&R.push(x),T++},n)}),R.push(C?k:"\n"+k),0!==T&&C&&t.objectCurlySpacing&&(R[F]=S+" ",R[R.length-1]=" "+k),w(R);case"PropertyPattern":return w([e.call(r,"key"),": ",e.call(r,"pattern")]);case"ObjectProperty":case"Property":if(n.method||"get"===n.kind||"set"===n.kind)return c(e,t,r);Q=e.call(r,"key");return n.computed?R.push("[",Q,"]"):R.push(Q),n.shorthand||R.push(": ",e.call(r,"value")),w(R);case"ClassMethod":return n.static&&R.push("static "),w([R,d(e,t,r)]);case"ObjectMethod":return d(e,t,r);case"Decorator":return w(["@",e.call(r,"expression")]);case"ArrayExpression":case"ArrayPattern":var B=n.elements.length,O=e.map(r,"elements"),j=_(", ").join(O);return(C=j.getLineLength(1)<=t.wrapColumn)?t.arrayBracketSpacing?R.push("[ "):R.push("["):R.push("[\n"),e.each(function(e){var r=e.getName();if(e.getValue()){var n=O[r];C?r>0&&R.push(" "):n=n.indent(t.tabWidth),R.push(n),(r<B-1||!C&&N.isTrailingCommaEnabled(t,"arrays"))&&R.push(","),C||R.push("\n")}else R.push(",")},"elements"),C&&t.arrayBracketSpacing?R.push(" ]"):R.push("]"),w(R);case"SequenceExpression":return _(", ").join(e.map(r,"expressions"));case"ThisExpression":return _("this");case"Super":return _("super");case"NullLiteral":return _("null");case"RegExpLiteral":return _(n.extra.raw);case"BooleanLiteral":case"NumericLiteral":case"StringLiteral":case"Literal":return"string"!=typeof n.value?_(n.value,t):_(E(n.value,t),t);case"Directive":return e.call(r,"value");case"DirectiveLiteral":return _(E(n.value,t));case"ModuleSpecifier":if(n.local)throw new Error("The ESTree ModuleSpecifier type should be abstract");return _(E(n.value,t),t);case"UnaryExpression":return R.push(n.operator),/[a-z]$/.test(n.operator)&&R.push(" "),R.push(e.call(r,"argument")),w(R);case"UpdateExpression":return R.push(e.call(r,"argument"),n.operator),n.prefix&&R.reverse(),w(R);case"ConditionalExpression":return w(["(",e.call(r,"test")," ? ",e.call(r,"consequent")," : ",e.call(r,"alternate"),")"]);case"NewExpression":return R.push("new ",e.call(r,"callee")),n.arguments&&R.push(h(e,t,r)),w(R);case"VariableDeclaration":R.push(n.kind," ");var I=0,O=e.map(function(e){var t=r(e);return I=Math.max(t.length,I),t},"declarations");1===I?R.push(_(", ").join(O)):O.length>1?R.push(_(",\n").join(O).indentTail(n.kind.length+1)):R.push(O[0]);var L=e.getParentNode();return P.ForStatement.check(L)||P.ForInStatement.check(L)||P.ForOfStatement&&P.ForOfStatement.check(L)||P.ForAwaitStatement&&P.ForAwaitStatement.check(L)||R.push(";"),w(R);case"VariableDeclarator":return n.init?_(" = ").join([e.call(r,"id"),e.call(r,"init")]):e.call(r,"id");case"WithStatement":return w(["with (",e.call(r,"object"),") ",e.call(r,"body")]);case"IfStatement":var M=g(e.call(r,"consequent"),t),R=["if (",e.call(r,"test"),")",M];return n.alternate&&R.push(v(M)?" else":"\nelse",g(e.call(r,"alternate"),t)),w(R);case"ForStatement":var V=e.call(r,"init"),U=V.length>1?";\n":"; ",q=_(U).join([V,e.call(r,"test"),e.call(r,"update")]).indentTail("for (".length),G=w(["for (",q,")"]),X=g(e.call(r,"body"),t),R=[G];return G.length>1&&(R.push("\n"),X=X.trimLeft()),R.push(X),w(R);case"WhileStatement":return w(["while (",e.call(r,"test"),")",g(e.call(r,"body"),t)]);case"ForInStatement":return w([n.each?"for each (":"for (",e.call(r,"left")," in ",e.call(r,"right"),")",g(e.call(r,"body"),t)]);case"ForOfStatement":return w(["for (",e.call(r,"left")," of ",e.call(r,"right"),")",g(e.call(r,"body"),t)]);case"ForAwaitStatement":return w(["for await (",e.call(r,"left")," of ",e.call(r,"right"),")",g(e.call(r,"body"),t)]);case"DoWhileStatement":var J=w(["do",g(e.call(r,"body"),t)]),R=[J];return v(J)?R.push(" while"):R.push("\nwhile"),R.push(" (",e.call(r,"test"),");"),w(R);case"DoExpression":var W=e.call(function(e){return u(e,t,r)},"body");return w(["do {\n",W.indent(t.tabWidth),"\n}"]);case"BreakStatement":return R.push("break"),n.label&&R.push(" ",e.call(r,"label")),R.push(";"),w(R);case"ContinueStatement":return R.push("continue"),n.label&&R.push(" ",e.call(r,"label")),R.push(";"),w(R);case"LabeledStatement":return w([e.call(r,"label"),":\n",e.call(r,"body")]);case"TryStatement":return R.push("try ",e.call(r,"block")),n.handler?R.push(" ",e.call(r,"handler")):n.handlers&&e.each(function(e){R.push(" ",r(e))},"handlers"),n.finalizer&&R.push(" finally ",e.call(r,"finalizer")),w(R);case"CatchClause":return R.push("catch (",e.call(r,"param")),n.guard&&R.push(" if ",e.call(r,"guard")),R.push(") ",e.call(r,"body")),w(R);case"ThrowStatement":return w(["throw ",e.call(r,"argument"),";"]);case"SwitchStatement":return w(["switch (",e.call(r,"discriminant"),") {\n",_("\n").join(e.map(r,"cases")),"\n}"]);case"SwitchCase":return n.test?R.push("case ",e.call(r,"test"),":"):R.push("default:"),n.consequent.length>0&&R.push("\n",e.call(function(e){return u(e,t,r)},"consequent").indent(t.tabWidth)),w(R);case"DebuggerStatement":return _("debugger;");case"JSXAttribute":return R.push(e.call(r,"name")),n.value&&R.push("=",e.call(r,"value")),w(R);case"JSXIdentifier":return _(n.name,t);case"JSXNamespacedName":return _(":").join([e.call(r,"namespace"),e.call(r,"name")]);case"JSXMemberExpression":return _(".").join([e.call(r,"object"),e.call(r,"property")]);case"JSXSpreadAttribute":return w(["{...",e.call(r,"argument"),"}"]);case"JSXExpressionContainer":return w(["{",e.call(r,"expression"),"}"]);case"JSXElement":var K=e.call(r,"openingElement");if(n.openingElement.selfClosing)return D.ok(!n.closingElement),K;var z=w(e.map(function(e){var t=e.getValue();if(P.Literal.check(t)&&"string"==typeof t.value){if(/\S/.test(t.value))return t.value.replace(/^\s+|\s+$/g,"");if(/\n/.test(t.value))return"\n"}return r(e)},"children")).indentTail(t.tabWidth),Y=e.call(r,"closingElement");return w([K,z,Y]);case"JSXOpeningElement":R.push("<",e.call(r,"name"));var H=[];e.each(function(e){H.push(" ",r(e))},"attributes");var $=w(H);return($.length>1||$.getLineLength(1)>t.wrapColumn)&&(H.forEach(function(e,t){" "===e&&(D.strictEqual(t%2,0),H[t]="\n")}),$=w(H).indentTail(t.tabWidth)),R.push($,n.selfClosing?" />":">"),w(R);case"JSXClosingElement":return w(["</",e.call(r,"name"),">"]);case"JSXText":return _(n.value,t);case"JSXEmptyExpression":return _("");case"TypeAnnotatedIdentifier":return w([e.call(r,"annotation")," ",e.call(r,"identifier")]);case"ClassBody":return 0===n.body.length?_("{}"):w(["{\n",e.call(function(e){return u(e,t,r)},"body").indent(t.tabWidth),"\n}"]);case"ClassPropertyDefinition":return R.push("static ",e.call(r,"definition")),P.MethodDefinition.check(n.definition)||R.push(";"),w(R);case"ClassProperty":n.static&&R.push("static ");var Q=e.call(r,"key");return n.computed?Q=w(["[",Q,"]"]):"plus"===n.variance?Q=w(["+",Q]):"minus"===n.variance&&(Q=w(["-",Q])),R.push(Q),n.typeAnnotation&&R.push(e.call(r,"typeAnnotation")),n.value&&R.push(" = ",e.call(r,"value")),R.push(";"),w(R);case"ClassDeclaration":case"ClassExpression":return R.push("class"),n.id&&R.push(" ",e.call(r,"id"),e.call(r,"typeParameters")),n.superClass&&R.push(" extends ",e.call(r,"superClass"),e.call(r,"superTypeParameters")),n.implements&&n.implements.length>0&&R.push(" implements ",_(", ").join(e.map(r,"implements"))),R.push(" ",e.call(r,"body")),w(R);case"TemplateElement":return _(n.value.raw,t).lockIndentTail();case"TemplateLiteral":var Z=e.map(r,"expressions");return R.push("`"),e.each(function(e){var t=e.getName();R.push(r(e)),t<Z.length&&R.push("${",Z[t],"}")},"quasis"),R.push("`"),w(R).lockIndentTail();case"TaggedTemplateExpression":return w([e.call(r,"tag"),e.call(r,"quasi")]);case"Node":case"Printable":case"SourceLocation":case"Position":case"Statement":case"Function":case"Pattern":case"Expression":case"Declaration":case"Specifier":case"NamedSpecifier":case"Comment":case"MemberTypeAnnotation":case"TupleTypeAnnotation":case"Type":throw new Error("unprintable type: "+JSON.stringify(n.type));case"CommentBlock":case"Block":return w(["/*",_(n.value,t),"*/"]);case"CommentLine":case"Line":return w(["//",_(n.value,t)]);case"TypeAnnotation":return n.typeAnnotation?("FunctionTypeAnnotation"!==n.typeAnnotation.type&&R.push(": "),R.push(e.call(r,"typeAnnotation")),w(R)):_("");case"ExistentialTypeParam":case"ExistsTypeAnnotation":return _("*",t);case"EmptyTypeAnnotation":return _("empty",t);case"AnyTypeAnnotation":return _("any",t);case"MixedTypeAnnotation":return _("mixed",t);case"ArrayTypeAnnotation":return w([e.call(r,"elementType"),"[]"]);case"BooleanTypeAnnotation":return _("boolean",t);case"BooleanLiteralTypeAnnotation":return D.strictEqual(typeof n.value,"boolean"),_(""+n.value,t);case"DeclareClass":return y(e,["class ",e.call(r,"id")," ",e.call(r,"body")]);case"DeclareFunction":return y(e,["function ",e.call(r,"id"),";"]);case"DeclareModule":return y(e,["module ",e.call(r,"id")," ",e.call(r,"body")]);case"DeclareModuleExports":return y(e,["module.exports",e.call(r,"typeAnnotation")]);case"DeclareVariable":return y(e,["var ",e.call(r,"id"),";"]);case"DeclareExportDeclaration":case"DeclareExportAllDeclaration":return w(["declare ",m(e,t,r)]);case"FunctionTypeAnnotation":var ee=e.getParentNode(0),te=!(P.ObjectTypeCallProperty.check(ee)||P.DeclareFunction.check(e.getParentNode(2)));return te&&!P.FunctionTypeParam.check(ee)&&R.push(": "),R.push("(",_(", ").join(e.map(r,"params")),")"),n.returnType&&R.push(te?" => ":": ",e.call(r,"returnType")),w(R);case"FunctionTypeParam":return w([e.call(r,"name"),n.optional?"?":"",": ",e.call(r,"typeAnnotation")]);case"GenericTypeAnnotation":return w([e.call(r,"id"),e.call(r,"typeParameters")]);case"DeclareInterface":R.push("declare ");case"InterfaceDeclaration":return R.push(_("interface ",t),e.call(r,"id"),e.call(r,"typeParameters")," "),n.extends&&R.push("extends ",_(", ").join(e.map(r,"extends"))),R.push(" ",e.call(r,"body")),w(R);case"ClassImplements":case"InterfaceExtends":return w([e.call(r,"id"),e.call(r,"typeParameters")]);case"IntersectionTypeAnnotation":return _(" & ").join(e.map(r,"types"));case"NullableTypeAnnotation":return w(["?",e.call(r,"typeAnnotation")]);case"NullLiteralTypeAnnotation":return _("null",t);case"ThisTypeAnnotation":return _("this",t);case"NumberTypeAnnotation":return _("number",t);case"ObjectTypeCallProperty":return e.call(r,"value");case"ObjectTypeIndexer":re="plus"===n.variance?"+":"minus"===n.variance?"-":"";return w([re,"[",e.call(r,"id"),": ",e.call(r,"key"),"]: ",e.call(r,"value")]);case"ObjectTypeProperty":var re="plus"===n.variance?"+":"minus"===n.variance?"-":"";return w([re,e.call(r,"key"),n.optional?"?":"",": ",e.call(r,"value")]);case"QualifiedTypeIdentifier":return w([e.call(r,"qualification"),".",e.call(r,"id")]);case"StringLiteralTypeAnnotation":return _(E(n.value,t),t);case"NumberLiteralTypeAnnotation":case"NumericLiteralTypeAnnotation":return D.strictEqual(typeof n.value,"number"),_(JSON.stringify(n.value),t);case"StringTypeAnnotation":return _("string",t);case"DeclareTypeAlias":R.push("declare ");case"TypeAlias":return w(["type ",e.call(r,"id"),e.call(r,"typeParameters")," = ",e.call(r,"right"),";"]);case"TypeCastExpression":return w(["(",e.call(r,"expression"),e.call(r,"typeAnnotation"),")"]);case"TypeParameterDeclaration":case"TypeParameterInstantiation":return w(["<",_(", ").join(e.map(r,"params")),">"]);case"TypeParameter":switch(n.variance){case"plus":R.push("+");break;case"minus":R.push("-")}return R.push(e.call(r,"name")),n.bound&&R.push(e.call(r,"bound")),n.default&&R.push("=",e.call(r,"default")),w(R);case"TypeofTypeAnnotation":return w([_("typeof ",t),e.call(r,"argument")]);case"UnionTypeAnnotation":return _(" | ").join(e.map(r,"types"));case"VoidTypeAnnotation":return _("void",t);case"NullTypeAnnotation":return _("null",t);case"ClassHeritage":case"ComprehensionBlock":case"ComprehensionExpression":case"Glob":case"GeneratorExpression":case"LetStatement":case"LetExpression":case"GraphExpression":case"GraphIndexExpression":case"XMLDefaultDeclaration":case"XMLAnyName":case"XMLQualifiedIdentifier":case"XMLFunctionQualifiedIdentifier":case"XMLAttributeSelector":case"XMLFilterExpression":case"XML":case"XMLElement":case"XMLList":case"XMLEscape":case"XMLText":case"XMLStartTag":case"XMLEndTag":case"XMLPointTag":case"XMLName":case"XMLAttribute":case"XMLCdata":case"XMLComment":case"XMLProcessingInstruction":default:throw new Error("unknown type: "+JSON.stringify(n.type))}return p}function u(e,t,r){P.ClassBody&&P.ClassBody.check(e.getParentNode());var n=[],i=!1,s=!1;e.each(function(e){e.getName();var t=e.getValue();t&&"EmptyStatement"!==t.type&&(P.Comment.check(t)?i=!0:P.Statement.check(t)?s=!0:B.assert(t),n.push({node:t,printed:r(e)}))}),i&&D.strictEqual(s,!1,"Comments may appear as statements in otherwise empty statement lists, but may not coexist with non-Comment nodes.");var a=null,o=n.length,u=[];return n.forEach(function(e,r){var n,i,s=e.printed,c=e.node,p=s.length>1,h=r>0,f=r<o-1,d=c&&c.loc&&c.loc.lines,m=d&&t.reuseWhitespace&&N.getTrueLoc(c,d);if(h)if(m){var y=d.skipSpaces(m.start,!0),g=y?y.line:1,b=m.start.line-g;n=Array(b+1).join("\n")}else n=p?"\n\n":"\n";else n="";if(f)if(m){var v=d.skipSpaces(m.end),x=(v?v.line:d.length)-m.end.line;i=Array(x+1).join("\n")}else i=p?"\n\n":"\n";else i="";u.push(l(a,n),s),f?a=i:i&&u.push(i)}),w(u)}function l(e,t){if(!e&&!t)return _("");if(!e)return _(t);if(!t)return _(e);var r=_(e),n=_(t);return n.length>r.length?n:r}function c(e,t,r){var n=e.getNode(),i=n.kind,s=[];"ObjectMethod"===n.type||"ClassMethod"===n.type?n.value=n:P.FunctionExpression.assert(n.value),n.value.async&&s.push("async "),i&&"init"!==i&&"method"!==i&&"constructor"!==i?(D.ok("get"===i||"set"===i),s.push(i," ")):n.value.generator&&s.push("*");var a=e.call(r,"key");return n.computed&&(a=w(["[",a,"]"])),s.push(a,e.call(r,"value","typeParameters"),"(",e.call(function(e){return f(e,t,r)},"value"),")",e.call(r,"value","returnType")," ",e.call(r,"value","body")),w(s)}function h(e,t,r){var n=e.map(r,"arguments"),i=N.isTrailingCommaEnabled(t,"parameters"),s=_(", ").join(n);return s.getLineLength(1)>t.wrapColumn?(s=_(",\n").join(n),w(["(\n",s.indent(t.tabWidth),i?",\n)":"\n)"])):w(["(",s,")"])}function f(e,t,r){var n=e.getValue();P.Function.assert(n);var i=e.map(r,"params");n.defaults&&e.each(function(e){var t=e.getName(),n=i[t];n&&e.getValue()&&(i[t]=w([n," = ",r(e)]))},"defaults"),n.rest&&i.push(w(["...",e.call(r,"rest")]));var s=_(", ").join(i);return s.length>1||s.getLineLength(1)>t.wrapColumn?(s=_(",\n").join(i),s=w(N.isTrailingCommaEnabled(t,"parameters")&&!n.rest&&"RestElement"!==n.params[n.params.length-1].type?[s,",\n"]:[s,"\n"]),w(["\n",s.indent(t.tabWidth)])):s}function d(e,t,r){var n=e.getValue(),i=[];if(n.async&&i.push("async "),n.generator&&i.push("*"),n.method||"get"===n.kind||"set"===n.kind)return c(e,t,r);var s=e.call(r,"key");return n.computed?i.push("[",s,"]"):i.push(s),i.push("(",f(e,t,r),")",e.call(r,"returnType")," ",e.call(r,"body")),w(i)}function m(e,t,r){var n=e.getValue(),i=["export "],s=t.objectCurlySpacing;P.Declaration.assert(n),(n.default||"ExportDefaultDeclaration"===n.type)&&i.push("default "),n.declaration?i.push(e.call(r,"declaration")):n.specifiers&&n.specifiers.length>0&&(1===n.specifiers.length&&"ExportBatchSpecifier"===n.specifiers[0].type?i.push("*"):i.push(s?"{ ":"{",_(", ").join(e.map(r,"specifiers")),s?" }":"}"),n.source&&i.push(" from ",e.call(r,"source")));var a=w(i);return";"===b(a)||n.declaration&&("FunctionDeclaration"===n.declaration.type||"ClassDeclaration"===n.declaration.type)||(a=w([a,";"])),a}function y(e,t){var r=N.getParentExportDeclaration(e);return r?D.strictEqual(r.type,"DeclareExportDeclaration"):t.unshift("declare "),w(t)}function g(e,t){return w(e.length>1?[" ",e]:["\n",A(e).indent(t.tabWidth)])}function b(e){var t=e.lastPos();do{var r=e.charAt(t);if(/\S/.test(r))return r}while(e.prevPos(t))}function v(e){return"}"===b(e)}function x(e){return e.replace(/['"]/g,function(e){return'"'===e?"'":'"'})}function E(e,t){switch(B.assert(e),t.quote){case"auto":var r=JSON.stringify(e),n=x(JSON.stringify(x(e)));return r.length>n.length?n:r;case"single":return x(JSON.stringify(x(e)));case"double":default:return JSON.stringify(e)}}function A(e){var t=b(e);return!t||"\n};".indexOf(t)<0?w([e,";"]):e}var D=e("assert"),C=(e("source-map"),e("./comments").printComments),S=e("./lines"),_=S.fromString,w=S.concat,k=e("./options").normalize,F=e("./patcher").getReprinter,T=e("./types"),P=T.namedTypes,B=T.builtInTypes.string,O=T.builtInTypes.object,j=e("./fast-path"),N=e("./util"),I=!1;n.prototype.toString=function(){return I||(console.warn("Deprecation warning: recast.print now returns an object with a .code property. You appear to be treating the object as a string, which might still work but is strongly discouraged."),I=!0),this.code};var L=new n("");r.Printer=i},{"./comments":551,"./fast-path":552,"./lines":553,"./options":555,"./patcher":557,"./types":559,"./util":560,assert:3,"source-map":573}],559:[function(e,t,r){t.exports=e("ast-types")},{"ast-types":22}],560:[function(e,t,r){function n(){for(var e={},t=arguments.length,r=0;r<t;++r)for(var n=Object.keys(arguments[r]),i=n.length,s=0;s<i;++s)e[n[s]]=!0;return e}function i(e,t){return e.line-t.line||e.column-t.column}function s(e){return{line:e.line,column:e.column}}function a(e,t){e&&t&&(i(t.start,e.start)<0&&(e.start=t.start),i(e.end,t.end)<0&&(e.end=t.end))}function o(e,t){if(u.strictEqual(e.type,"TemplateLiteral"),0!==e.quasis.length){var r=s(e.loc.start);u.strictEqual(t.charAt(r),"`"),u.ok(t.nextPos(r));var n=e.quasis[0];i(n.loc.start,r)<0&&(n.loc.start=r);var a=s(e.loc.end);u.ok(t.prevPos(a)),u.strictEqual(t.charAt(a),"`");var o=e.quasis[e.quasis.length-1];i(a,o.loc.end)<0&&(o.loc.end=a),e.expressions.forEach(function(r,n){var s=t.skipSpaces(r.loc.start,!0,!1);if(t.prevPos(s)&&"{"===t.charAt(s)&&t.prevPos(s)&&"$"===t.charAt(s)){var a=e.quasis[n];i(s,a.loc.end)<0&&(a.loc.end=s)}var o=t.skipSpaces(r.loc.end,!1,!1);if("}"===t.charAt(o)){u.ok(t.nextPos(o));var l=e.quasis[n+1];i(l.loc.start,o)<0&&(l.loc.start=o)}})}}var u=e("assert"),l=e("./types"),c=(l.getFieldValue,l.namedTypes),p=e("source-map"),h=p.SourceMapConsumer,f=p.SourceMapGenerator,d=Object.prototype.hasOwnProperty,m=r;m.getUnionOfKeys=n,m.comparePos=i,m.copyPos=s,m.composeSourceMaps=function(e,t){if(!e)return t||null;if(!t)return e;var r=new h(e),n=new h(t),i=new f({file:t.file,sourceRoot:t.sourceRoot}),a={};return n.eachMapping(function(e){var t=r.originalPositionFor({line:e.originalLine,column:e.originalColumn}),n=t.source;if(null!==n){i.addMapping({source:n,original:s(t),generated:{line:e.generatedLine,column:e.generatedColumn},name:e.name});var o=r.sourceContentFor(n);o&&!d.call(a,n)&&(a[n]=o,i.setSourceContent(n,o))}}),i.toJSON()},m.getTrueLoc=function(e,t){function r(e){a(n,e.loc)}if(!e.loc)return null;var n={start:e.loc.start,end:e.loc.end};return e.comments&&e.comments.forEach(r),e.declaration&&m.isExportDeclaration(e)&&e.declaration.decorators&&e.declaration.decorators.forEach(r),i(n.start,n.end)<0&&(n.start=s(n.start),t.skipSpaces(n.start,!1,!0),i(n.start,n.end)<0&&(n.end=s(n.end),t.skipSpaces(n.end,!0,!0))),n},m.fixFaultyLocations=function(e,t){var r=e.loc;if(r&&(r.start.line<1&&(r.start.line=1),r.end.line<1&&(r.end.line=1)),"File"===e.type&&(r.start=t.firstPos(),r.end=t.lastPos()),"TemplateLiteral"===e.type)o(e,t);else if(r&&e.decorators)e.decorators.forEach(function(e){a(r,e.loc)});else if(e.declaration&&m.isExportDeclaration(e)){e.declaration.loc=null;var n=e.declaration.decorators;n&&n.forEach(function(e){a(r,e.loc)})}else if(c.MethodDefinition&&c.MethodDefinition.check(e)||c.Property.check(e)&&(e.method||e.shorthand))e.value.loc=null,c.FunctionExpression.check(e.value)&&(e.value.id=null);else if("ObjectTypeProperty"===e.type){var i=(r=e.loc)&&r.end;i&&(i=s(i),t.prevPos(i)&&","===t.charAt(i)&&(i=t.skipSpaces(i,!0,!0))&&(r.end=i))}},m.isExportDeclaration=function(e){if(e)switch(e.type){case"ExportDeclaration":case"ExportDefaultDeclaration":case"ExportDefaultSpecifier":case"DeclareExportDeclaration":case"ExportNamedDeclaration":case"ExportAllDeclaration":return!0}return!1},m.getParentExportDeclaration=function(e){var t=e.getParentNode();return"declaration"===e.getName()&&m.isExportDeclaration(t)?t:null},m.isTrailingCommaEnabled=function(e,t){var r=e.trailingComma;return"object"==typeof r?!!r[t]:!!r}},{"./types":559,assert:3,"source-map":573}],561:[function(e,t,r){(function(t){function n(e,t){return new p(t).print(e)}function i(e,t){return new p(t).printGenerically(e)}function s(e,r){return a(t.argv[2],e,r)}function a(t,r,n){e("fs").readFile(t,"utf-8",function(e,t){e?console.error(e):u(t,r,n)})}function o(e){t.stdout.write(e)}function u(e,t,r){var i=r&&r.writeback||o;t(c(e,r),function(e){i(n(e,r).code)})}var l=e("./lib/types"),c=e("./lib/parser").parse,p=e("./lib/printer").Printer;Object.defineProperties(r,{parse:{enumerable:!0,value:c},visit:{enumerable:!0,value:l.visit},print:{enumerable:!0,value:n},prettyPrint:{enumerable:!1,value:i},types:{enumerable:!1,value:l},run:{enumerable:!1,value:s}})}).call(this,e("_process"))},{"./lib/parser":556,"./lib/printer":558,"./lib/types":559,_process:538,fs:181}],562:[function(e,t,r){!function(e,n){"object"==typeof r&&"object"==typeof t?t.exports=n():"function"==typeof define&&define.amd?define([],n):"object"==typeof r?r.esprima=n():e.esprima=n()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";function n(e,t,r){var n=null,i=function(e,t){r&&r(e,t),n&&n.visit(e,t)},u="function"==typeof r?i:null,l=!1;if(t){l="boolean"==typeof t.comment&&t.comment;var c="boolean"==typeof t.attachComment&&t.attachComment;(l||c)&&((n=new s.CommentHandler).attach=c,t.comment=!0,u=i)}var p,h=(p=t&&"boolean"==typeof t.jsx&&t.jsx?new o.JSXParser(e,t,u):new a.Parser(e,t,u)).parseProgram();return l&&(h.comments=n.comments),p.config.tokens&&(h.tokens=p.tokens),p.config.tolerant&&(h.errors=p.errorHandler.errors),h}function i(e,t,r){var n,i=new u.Tokenizer(e,t);n=[];try{for(;;){var s=i.getNextToken();if(!s)break;r&&(s=r(s)),n.push(s)}}catch(e){i.errorHandler.tolerate(e)}return i.errorHandler.tolerant&&(n.errors=i.errors()),n}var s=r(1),a=r(3),o=r(11),u=r(15);t.parse=n,t.tokenize=i;var l=r(2);t.Syntax=l.Syntax,t.version="3.1.3"},function(e,t,r){"use strict";var n=r(2),i=function(){function e(){this.attach=!1,this.comments=[],this.stack=[],this.leading=[],this.trailing=[]}return e.prototype.insertInnerComments=function(e,t){if(e.type===n.Syntax.BlockStatement&&0===e.body.length){for(var r=[],i=this.leading.length-1;i>=0;--i){var s=this.leading[i];t.end.offset>=s.start&&(r.unshift(s.comment),this.leading.splice(i,1),this.trailing.splice(i,1))}r.length&&(e.innerComments=r)}},e.prototype.findTrailingComments=function(e,t){var r=[];if(this.trailing.length>0){for(var n=this.trailing.length-1;n>=0;--n){var i=this.trailing[n];i.start>=t.end.offset&&r.unshift(i.comment)}return this.trailing.length=0,r}var s=this.stack[this.stack.length-1];if(s&&s.node.trailingComments){var a=s.node.trailingComments[0];a&&a.range[0]>=t.end.offset&&(r=s.node.trailingComments,delete s.node.trailingComments)}return r},e.prototype.findLeadingComments=function(e,t){for(var r,n=[];this.stack.length>0&&(a=this.stack[this.stack.length-1])&&a.start>=t.start.offset;)r=this.stack.pop().node;if(r){for(s=(r.leadingComments?r.leadingComments.length:0)-1;s>=0;--s){var i=r.leadingComments[s];i.range[1]<=t.start.offset&&(n.unshift(i),r.leadingComments.splice(s,1))}return r.leadingComments&&0===r.leadingComments.length&&delete r.leadingComments,n}for(var s=this.leading.length-1;s>=0;--s){var a=this.leading[s];a.start<=t.start.offset&&(n.unshift(a.comment),this.leading.splice(s,1))}return n},e.prototype.visitNode=function(e,t){if(!(e.type===n.Syntax.Program&&e.body.length>0)){this.insertInnerComments(e,t);var r=this.findTrailingComments(e,t),i=this.findLeadingComments(e,t);i.length>0&&(e.leadingComments=i),r.length>0&&(e.trailingComments=r),this.stack.push({node:e,start:t.start.offset})}},e.prototype.visitComment=function(e,t){var r="L"===e.type[0]?"Line":"Block",n={type:r,value:e.value};if(e.range&&(n.range=e.range),e.loc&&(n.loc=e.loc),this.comments.push(n),this.attach){var i={comment:{type:r,value:e.value,range:[t.start.offset,t.end.offset]},start:t.start.offset};e.loc&&(i.comment.loc=e.loc),e.type=r,this.leading.push(i),this.trailing.push(i)}},e.prototype.visit=function(e,t){"LineComment"===e.type?this.visitComment(e,t):"BlockComment"===e.type?this.visitComment(e,t):this.attach&&this.visitNode(e,t)},e}();t.CommentHandler=i},function(e,t){"use strict";t.Syntax={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForOfStatement:"ForOfStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchCase:"SwitchCase",SwitchStatement:"SwitchStatement",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"}},function(e,t,r){"use strict";var n=r(4),i=r(5),s=r(6),a=r(7),o=r(8),u=r(2),l=r(10),c=function(){function e(e,t,r){void 0===t&&(t={}),this.config={range:"boolean"==typeof t.range&&t.range,loc:"boolean"==typeof t.loc&&t.loc,source:null,tokens:"boolean"==typeof t.tokens&&t.tokens,comment:"boolean"==typeof t.comment&&t.comment,tolerant:"boolean"==typeof t.tolerant&&t.tolerant},this.config.loc&&t.source&&null!==t.source&&(this.config.source=String(t.source)),this.delegate=r,this.errorHandler=new s.ErrorHandler,this.errorHandler.tolerant=this.config.tolerant,this.scanner=new o.Scanner(e,this.errorHandler),this.scanner.trackComment=this.config.comment,this.operatorPrecedence={")":0,";":0,",":0,"=":0,"]":0,"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":11,"/":11,"%":11},this.sourceType=t&&"module"===t.sourceType?"module":"script",this.lookahead=null,this.hasLineTerminator=!1,this.context={allowIn:!0,allowYield:!0,firstCoverInitializedNameError:null,isAssignmentTarget:!1,isBindingElement:!1,inFunctionBody:!1,inIteration:!1,inSwitch:!1,labelSet:{},strict:"module"===this.sourceType},this.tokens=[],this.startMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.lastMarker={index:0,lineNumber:this.scanner.lineNumber,lineStart:0},this.nextToken(),this.lastMarker={index:this.scanner.index,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart}}return e.prototype.throwError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),s=e.replace(/%(\d)/g,function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,o=this.lastMarker.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;throw this.errorHandler.createError(a,o,u,s)},e.prototype.tolerateError=function(e){for(var t=[],r=1;r<arguments.length;r++)t[r-1]=arguments[r];var i=Array.prototype.slice.call(arguments,1),s=e.replace(/%(\d)/g,function(e,t){return n.assert(t<i.length,"Message reference must be in range"),i[t]}),a=this.lastMarker.index,o=this.scanner.lineNumber,u=this.lastMarker.index-this.lastMarker.lineStart+1;this.errorHandler.tolerateError(a,o,u,s)},e.prototype.unexpectedTokenError=function(e,t){var r,n=t||i.Messages.UnexpectedToken;if(e?(t||(n=e.type===a.Token.EOF?i.Messages.UnexpectedEOS:e.type===a.Token.Identifier?i.Messages.UnexpectedIdentifier:e.type===a.Token.NumericLiteral?i.Messages.UnexpectedNumber:e.type===a.Token.StringLiteral?i.Messages.UnexpectedString:e.type===a.Token.Template?i.Messages.UnexpectedTemplate:i.Messages.UnexpectedToken,e.type===a.Token.Keyword&&(this.scanner.isFutureReservedWord(e.value)?n=i.Messages.UnexpectedReserved:this.context.strict&&this.scanner.isStrictModeReservedWord(e.value)&&(n=i.Messages.StrictReservedWord))),r=e.type===a.Token.Template?e.value.raw:e.value):r="ILLEGAL",n=n.replace("%0",r),e&&"number"==typeof e.lineNumber){var s=e.start,o=e.lineNumber,u=e.start-this.lastMarker.lineStart+1;return this.errorHandler.createError(s,o,u,n)}var s=this.lastMarker.index,o=this.lastMarker.lineNumber,u=s-this.lastMarker.lineStart+1;return this.errorHandler.createError(s,o,u,n)},e.prototype.throwUnexpectedToken=function(e,t){throw this.unexpectedTokenError(e,t)},e.prototype.tolerateUnexpectedToken=function(e,t){this.errorHandler.tolerate(this.unexpectedTokenError(e,t))},e.prototype.collectComments=function(){if(this.config.comment){var e=this.scanner.scanComments();if(e.length>0&&this.delegate)for(var t=0;t<e.length;++t){var r=e[t],n=void 0;n={type:r.multiLine?"BlockComment":"LineComment",value:this.scanner.source.slice(r.slice[0],r.slice[1])},this.config.range&&(n.range=r.range),this.config.loc&&(n.loc=r.loc);var i={start:{line:r.loc.start.line,column:r.loc.start.column,offset:r.range[0]},end:{line:r.loc.end.line,column:r.loc.end.column,offset:r.range[1]}};this.delegate(n,i)}}else this.scanner.scanComments()},e.prototype.getTokenRaw=function(e){return this.scanner.source.slice(e.start,e.end)},e.prototype.convertToken=function(e){var t;return t={type:a.TokenName[e.type],value:this.getTokenRaw(e)},this.config.range&&(t.range=[e.start,e.end]),this.config.loc&&(t.loc={start:{line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}),e.regex&&(t.regex=e.regex),t},e.prototype.nextToken=function(){var e=this.lookahead;this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var t;return t=this.scanner.lex(),this.hasLineTerminator=!(!e||!t)&&e.lineNumber!==t.lineNumber,t&&this.context.strict&&t.type===a.Token.Identifier&&this.scanner.isStrictModeReservedWord(t.value)&&(t.type=a.Token.Keyword),this.lookahead=t,this.config.tokens&&t.type!==a.Token.EOF&&this.tokens.push(this.convertToken(t)),e},e.prototype.nextRegexToken=function(){this.collectComments();var e=this.scanner.scanRegExp();return this.config.tokens&&(this.tokens.pop(),this.tokens.push(this.convertToken(e))),this.lookahead=e,this.nextToken(),e},e.prototype.createNode=function(){return{index:this.startMarker.index,line:this.startMarker.lineNumber,column:this.startMarker.index-this.startMarker.lineStart}},e.prototype.startNode=function(e){return{index:e.start,line:e.lineNumber,column:e.start-e.lineStart}},e.prototype.finalize=function(e,t){if(this.config.range&&(t.range=[e.index,this.lastMarker.index]),this.config.loc&&(t.loc={start:{line:e.line,column:e.column},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart}},this.config.source&&(t.loc.source=this.config.source)),this.delegate){var r={start:{line:e.line,column:e.column,offset:e.index},end:{line:this.lastMarker.lineNumber,column:this.lastMarker.index-this.lastMarker.lineStart,offset:this.lastMarker.index}};this.delegate(t,r)}return t},e.prototype.expect=function(e){var t=this.nextToken();t.type===a.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.expectCommaSeparator=function(){if(this.config.tolerant){var e=this.lookahead;e.type===a.Token.Punctuator&&","===e.value?this.nextToken():e.type===a.Token.Punctuator&&";"===e.value?(this.nextToken(),this.tolerateUnexpectedToken(e)):this.tolerateUnexpectedToken(e,i.Messages.UnexpectedToken)}else this.expect(",")},e.prototype.expectKeyword=function(e){var t=this.nextToken();t.type===a.Token.Keyword&&t.value===e||this.throwUnexpectedToken(t)},e.prototype.match=function(e){return this.lookahead.type===a.Token.Punctuator&&this.lookahead.value===e},e.prototype.matchKeyword=function(e){return this.lookahead.type===a.Token.Keyword&&this.lookahead.value===e},e.prototype.matchContextualKeyword=function(e){return this.lookahead.type===a.Token.Identifier&&this.lookahead.value===e},e.prototype.matchAssign=function(){if(this.lookahead.type!==a.Token.Punctuator)return!1;var e=this.lookahead.value;return"="===e||"*="===e||"**="===e||"/="===e||"%="===e||"+="===e||"-="===e||"<<="===e||">>="===e||">>>="===e||"&="===e||"^="===e||"|="===e},e.prototype.isolateCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return null!==this.context.firstCoverInitializedNameError&&this.throwUnexpectedToken(this.context.firstCoverInitializedNameError),this.context.isBindingElement=t,this.context.isAssignmentTarget=r,this.context.firstCoverInitializedNameError=n,i},e.prototype.inheritCoverGrammar=function(e){var t=this.context.isBindingElement,r=this.context.isAssignmentTarget,n=this.context.firstCoverInitializedNameError;this.context.isBindingElement=!0,this.context.isAssignmentTarget=!0,this.context.firstCoverInitializedNameError=null;var i=e.call(this);return this.context.isBindingElement=this.context.isBindingElement&&t,this.context.isAssignmentTarget=this.context.isAssignmentTarget&&r,this.context.firstCoverInitializedNameError=n||this.context.firstCoverInitializedNameError,i},e.prototype.consumeSemicolon=function(){this.match(";")?this.nextToken():this.hasLineTerminator||(this.lookahead.type===a.Token.EOF||this.match("}")||this.throwUnexpectedToken(this.lookahead),this.lastMarker.index=this.startMarker.index,this.lastMarker.lineNumber=this.startMarker.lineNumber,this.lastMarker.lineStart=this.startMarker.lineStart)},e.prototype.parsePrimaryExpression=function(){var e,t,r,n=this.createNode();switch(this.lookahead.type){case a.Token.Identifier:"module"===this.sourceType&&"await"===this.lookahead.value&&this.tolerateUnexpectedToken(this.lookahead),e=this.finalize(n,new l.Identifier(this.nextToken().value));break;case a.Token.NumericLiteral:case a.Token.StringLiteral:this.context.strict&&this.lookahead.octal&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.StrictOctalLiteral),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,t=this.nextToken(),r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.BooleanLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,(t=this.nextToken()).value="true"===t.value,r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.NullLiteral:this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,(t=this.nextToken()).value=null,r=this.getTokenRaw(t),e=this.finalize(n,new l.Literal(t.value,r));break;case a.Token.Template:e=this.parseTemplateLiteral();break;case a.Token.Punctuator:switch(this.lookahead.value){case"(":this.context.isBindingElement=!1,e=this.inheritCoverGrammar(this.parseGroupExpression);break;case"[":e=this.inheritCoverGrammar(this.parseArrayInitializer);break;case"{":e=this.inheritCoverGrammar(this.parseObjectInitializer);break;case"/":case"/=":this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.scanner.index=this.startMarker.index,t=this.nextRegexToken(),r=this.getTokenRaw(t),e=this.finalize(n,new l.RegexLiteral(t.value,r,t.regex));break;default:this.throwUnexpectedToken(this.nextToken())}break;case a.Token.Keyword:!this.context.strict&&this.context.allowYield&&this.matchKeyword("yield")?e=this.parseIdentifierName():!this.context.strict&&this.matchKeyword("let")?e=this.finalize(n,new l.Identifier(this.nextToken().value)):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.matchKeyword("function")?e=this.parseFunctionExpression():this.matchKeyword("this")?(this.nextToken(),e=this.finalize(n,new l.ThisExpression)):this.matchKeyword("class")?e=this.parseClassExpression():this.throwUnexpectedToken(this.nextToken()));break;default:this.throwUnexpectedToken(this.nextToken())}return e},e.prototype.parseSpreadElement=function(){var e=this.createNode();this.expect("...");var t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.finalize(e,new l.SpreadElement(t))},e.prototype.parseArrayInitializer=function(){var e=this.createNode(),t=[];for(this.expect("[");!this.match("]");)if(this.match(","))this.nextToken(),t.push(null);else if(this.match("...")){var r=this.parseSpreadElement();this.match("]")||(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1,this.expect(",")),t.push(r)}else t.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.match("]")||this.expect(",");return this.expect("]"),this.finalize(e,new l.ArrayExpression(t))},e.prototype.parsePropertyMethod=function(e){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var t=this.context.strict,r=this.isolateCoverGrammar(this.parseFunctionSourceElements);return this.context.strict&&e.firstRestricted&&this.tolerateUnexpectedToken(e.firstRestricted,e.message),this.context.strict&&e.stricted&&this.tolerateUnexpectedToken(e.stricted,e.message),this.context.strict=t,r},e.prototype.parsePropertyMethodFunction=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!1;var r=this.parseFormalParameters(),n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,r.params,n,!1))},e.prototype.parseObjectPropertyKey=function(){var e=this.createNode(),t=this.nextToken(),r=null;switch(t.type){case a.Token.StringLiteral:case a.Token.NumericLiteral:this.context.strict&&t.octal&&this.tolerateUnexpectedToken(t,i.Messages.StrictOctalLiteral);var n=this.getTokenRaw(t);r=this.finalize(e,new l.Literal(t.value,n));break;case a.Token.Identifier:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.Keyword:r=this.finalize(e,new l.Identifier(t.value));break;case a.Token.Punctuator:"["===t.value?(r=this.isolateCoverGrammar(this.parseAssignmentExpression),this.expect("]")):this.throwUnexpectedToken(t);break;default:this.throwUnexpectedToken(t)}return r},e.prototype.isPropertyKey=function(e,t){return e.type===u.Syntax.Identifier&&e.name===t||e.type===u.Syntax.Literal&&e.value===t},e.prototype.parseObjectProperty=function(e){var t,r,n,s=this.createNode(),o=this.lookahead,u=!1,c=!1,p=!1;o.type===a.Token.Identifier?(this.nextToken(),r=this.finalize(s,new l.Identifier(o.value))):this.match("*")?this.nextToken():(u=this.match("["),r=this.parseObjectPropertyKey());var h=this.qualifiedPropertyName(this.lookahead);if(o.type===a.Token.Identifier&&"get"===o.value&&h)t="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,n=this.parseGetterMethod();else if(o.type===a.Token.Identifier&&"set"===o.value&&h)t="set",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseSetterMethod();else if(o.type===a.Token.Punctuator&&"*"===o.value&&h)t="init",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseGeneratorMethod(),c=!0;else if(r||this.throwUnexpectedToken(this.lookahead),t="init",this.match(":"))!u&&this.isPropertyKey(r,"__proto__")&&(e.value&&this.tolerateError(i.Messages.DuplicateProtoProperty),e.value=!0),this.nextToken(),n=this.inheritCoverGrammar(this.parseAssignmentExpression);else if(this.match("("))n=this.parsePropertyMethodFunction(),c=!0;else if(o.type===a.Token.Identifier){var f=this.finalize(s,new l.Identifier(o.value));if(this.match("=")){this.context.firstCoverInitializedNameError=this.lookahead,this.nextToken(),p=!0;var d=this.isolateCoverGrammar(this.parseAssignmentExpression);n=this.finalize(s,new l.AssignmentPattern(f,d))}else p=!0,n=f}else this.throwUnexpectedToken(this.nextToken());return this.finalize(s,new l.Property(t,r,u,n,c,p))},e.prototype.parseObjectInitializer=function(){var e=this.createNode();this.expect("{");for(var t=[],r={value:!1};!this.match("}");)t.push(this.parseObjectProperty(r)),this.match("}")||this.expectCommaSeparator();return this.expect("}"),this.finalize(e,new l.ObjectExpression(t))},e.prototype.parseTemplateHead=function(){n.assert(this.lookahead.head,"Template literal must start with a template head");var e=this.createNode(),t=this.nextToken(),r={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(r,t.tail))},e.prototype.parseTemplateElement=function(){this.lookahead.type!==a.Token.Template&&this.throwUnexpectedToken();var e=this.createNode(),t=this.nextToken(),r={raw:t.value.raw,cooked:t.value.cooked};return this.finalize(e,new l.TemplateElement(r,t.tail))},e.prototype.parseTemplateLiteral=function(){var e=this.createNode(),t=[],r=[],n=this.parseTemplateHead();for(r.push(n);!n.tail;)t.push(this.parseExpression()),n=this.parseTemplateElement(),r.push(n);return this.finalize(e,new l.TemplateLiteral(r,t))},e.prototype.reinterpretExpressionAsPattern=function(e){switch(e.type){case u.Syntax.Identifier:case u.Syntax.MemberExpression:case u.Syntax.RestElement:case u.Syntax.AssignmentPattern:break;case u.Syntax.SpreadElement:e.type=u.Syntax.RestElement,this.reinterpretExpressionAsPattern(e.argument);break;case u.Syntax.ArrayExpression:e.type=u.Syntax.ArrayPattern;for(t=0;t<e.elements.length;t++)null!==e.elements[t]&&this.reinterpretExpressionAsPattern(e.elements[t]);break;case u.Syntax.ObjectExpression:e.type=u.Syntax.ObjectPattern;for(var t=0;t<e.properties.length;t++)this.reinterpretExpressionAsPattern(e.properties[t].value);break;case u.Syntax.AssignmentExpression:e.type=u.Syntax.AssignmentPattern,delete e.operator,this.reinterpretExpressionAsPattern(e.left)}},e.prototype.parseGroupExpression=function(){var e;if(this.expect("("),this.match(")"))this.nextToken(),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[]};else{var t=this.lookahead,r=[];if(this.match("..."))e=this.parseRestElement(r),this.expect(")"),this.match("=>")||this.expect("=>"),e={type:"ArrowParameterPlaceHolder",params:[e]};else{var n=!1;if(this.context.isBindingElement=!0,e=this.inheritCoverGrammar(this.parseAssignmentExpression),this.match(",")){var i=[];for(this.context.isAssignmentTarget=!1,i.push(e);this.startMarker.index<this.scanner.length&&this.match(",");){if(this.nextToken(),this.match("...")){this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),i.push(this.parseRestElement(r)),this.expect(")"),this.match("=>")||this.expect("=>"),this.context.isBindingElement=!1;for(s=0;s<i.length;s++)this.reinterpretExpressionAsPattern(i[s]);n=!0,e={type:"ArrowParameterPlaceHolder",params:i}}else i.push(this.inheritCoverGrammar(this.parseAssignmentExpression));if(n)break}n||(e=this.finalize(this.startNode(t),new l.SequenceExpression(i)))}if(!n){if(this.expect(")"),this.match("=>")&&(e.type===u.Syntax.Identifier&&"yield"===e.name&&(n=!0,e={type:"ArrowParameterPlaceHolder",params:[e]}),!n)){if(this.context.isBindingElement||this.throwUnexpectedToken(this.lookahead),e.type===u.Syntax.SequenceExpression)for(var s=0;s<e.expressions.length;s++)this.reinterpretExpressionAsPattern(e.expressions[s]);else this.reinterpretExpressionAsPattern(e);e={type:"ArrowParameterPlaceHolder",params:e.type===u.Syntax.SequenceExpression?e.expressions:[e]}}this.context.isBindingElement=!1}}}return e},e.prototype.parseArguments=function(){this.expect("(");var e=[];if(!this.match(")"))for(;;){var t=this.match("...")?this.parseSpreadElement():this.isolateCoverGrammar(this.parseAssignmentExpression);if(e.push(t),this.match(")"))break;this.expectCommaSeparator()}return this.expect(")"),e},e.prototype.isIdentifierName=function(e){return e.type===a.Token.Identifier||e.type===a.Token.Keyword||e.type===a.Token.BooleanLiteral||e.type===a.Token.NullLiteral},e.prototype.parseIdentifierName=function(){var e=this.createNode(),t=this.nextToken();return this.isIdentifierName(t)||this.throwUnexpectedToken(t),this.finalize(e,new l.Identifier(t.value))},e.prototype.parseNewExpression=function(){var e=this.createNode(),t=this.parseIdentifierName();n.assert("new"===t.name,"New expression must start with `new`");var r;if(this.match("."))if(this.nextToken(),this.lookahead.type===a.Token.Identifier&&this.context.inFunctionBody&&"target"===this.lookahead.value){var i=this.parseIdentifierName();r=new l.MetaProperty(t,i)}else this.throwUnexpectedToken(this.lookahead);else{var s=this.isolateCoverGrammar(this.parseLeftHandSideExpression),o=this.match("(")?this.parseArguments():[];r=new l.NewExpression(s,o),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return this.finalize(e,r)},e.prototype.parseLeftHandSideExpressionAllowCall=function(){var e=this.lookahead,t=this.context.allowIn;this.context.allowIn=!0;var r;for(this.matchKeyword("super")&&this.context.inFunctionBody?(r=this.createNode(),this.nextToken(),r=this.finalize(r,new l.Super),this.match("(")||this.match(".")||this.match("[")||this.throwUnexpectedToken(this.lookahead)):r=this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");i=this.parseIdentifierName();r=this.finalize(this.startNode(e),new l.StaticMemberExpression(r,i))}else if(this.match("(")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!1;var n=this.parseArguments();r=this.finalize(this.startNode(e),new l.CallExpression(r,n))}else if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");var i=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),r=this.finalize(this.startNode(e),new l.ComputedMemberExpression(r,i))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var s=this.parseTemplateLiteral();r=this.finalize(this.startNode(e),new l.TaggedTemplateExpression(r,s))}return this.context.allowIn=t,r},e.prototype.parseSuper=function(){var e=this.createNode();return this.expectKeyword("super"),this.match("[")||this.match(".")||this.throwUnexpectedToken(this.lookahead),this.finalize(e,new l.Super)},e.prototype.parseLeftHandSideExpression=function(){n.assert(this.context.allowIn,"callee of new expression always allow in keyword.");for(var e=this.startNode(this.lookahead),t=this.matchKeyword("super")&&this.context.inFunctionBody?this.parseSuper():this.inheritCoverGrammar(this.matchKeyword("new")?this.parseNewExpression:this.parsePrimaryExpression);;)if(this.match("[")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect("[");r=this.isolateCoverGrammar(this.parseExpression);this.expect("]"),t=this.finalize(e,new l.ComputedMemberExpression(t,r))}else if(this.match(".")){this.context.isBindingElement=!1,this.context.isAssignmentTarget=!0,this.expect(".");var r=this.parseIdentifierName();t=this.finalize(e,new l.StaticMemberExpression(t,r))}else{if(this.lookahead.type!==a.Token.Template||!this.lookahead.head)break;var i=this.parseTemplateLiteral();t=this.finalize(e,new l.TaggedTemplateExpression(t,i))}return t},e.prototype.parseUpdateExpression=function(){var e,t=this.lookahead;if(this.match("++")||this.match("--")){var r=this.startNode(t),n=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPrefix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment);o=!0;e=this.finalize(r,new l.UpdateExpression(n.value,e,o)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else if(e=this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall),!this.hasLineTerminator&&this.lookahead.type===a.Token.Punctuator&&(this.match("++")||this.match("--"))){this.context.strict&&e.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(e.name)&&this.tolerateError(i.Messages.StrictLHSPostfix),this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var s=this.nextToken().value,o=!1;e=this.finalize(this.startNode(t),new l.UpdateExpression(s,e,o))}return e},e.prototype.parseUnaryExpression=function(){var e;if(this.match("+")||this.match("-")||this.match("~")||this.match("!")||this.matchKeyword("delete")||this.matchKeyword("void")||this.matchKeyword("typeof")){var t=this.startNode(this.lookahead),r=this.nextToken();e=this.inheritCoverGrammar(this.parseUnaryExpression),e=this.finalize(t,new l.UnaryExpression(r.value,e)),this.context.strict&&"delete"===e.operator&&e.argument.type===u.Syntax.Identifier&&this.tolerateError(i.Messages.StrictDelete),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}else e=this.parseUpdateExpression();return e},e.prototype.parseExponentiationExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseUnaryExpression);if(t.type!==u.Syntax.UnaryExpression&&this.match("**")){this.nextToken(),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var r=t,n=this.isolateCoverGrammar(this.parseExponentiationExpression);t=this.finalize(this.startNode(e),new l.BinaryExpression("**",r,n))}return t},e.prototype.binaryPrecedence=function(e){var t=e.value;return e.type===a.Token.Punctuator?this.operatorPrecedence[t]||0:e.type===a.Token.Keyword&&("instanceof"===t||this.context.allowIn&&"in"===t)?7:0},e.prototype.parseBinaryExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseExponentiationExpression),r=this.lookahead,n=this.binaryPrecedence(r);if(n>0){this.nextToken(),r.prec=n,this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;for(var i=[e,this.lookahead],s=t,a=this.isolateCoverGrammar(this.parseExponentiationExpression),o=[s,r,a];;){if((n=this.binaryPrecedence(this.lookahead))<=0)break;for(;o.length>2&&n<=o[o.length-2].prec;){a=o.pop();var u=o.pop().value;s=o.pop(),i.pop();p=this.startNode(i[i.length-1]);o.push(this.finalize(p,new l.BinaryExpression(u,s,a)))}(r=this.nextToken()).prec=n,o.push(r),i.push(this.lookahead),o.push(this.isolateCoverGrammar(this.parseExponentiationExpression))}var c=o.length-1;for(t=o[c],i.pop();c>1;){var p=this.startNode(i.pop());t=this.finalize(p,new l.BinaryExpression(o[c-1].value,o[c-2],t)),c-=2}}return t},e.prototype.parseConditionalExpression=function(){var e=this.lookahead,t=this.inheritCoverGrammar(this.parseBinaryExpression);if(this.match("?")){this.nextToken();var r=this.context.allowIn;this.context.allowIn=!0;var n=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowIn=r,this.expect(":");var i=this.isolateCoverGrammar(this.parseAssignmentExpression);t=this.finalize(this.startNode(e),new l.ConditionalExpression(t,n,i)),this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1}return t},e.prototype.checkPatternParam=function(e,t){switch(t.type){case u.Syntax.Identifier:this.validateParam(e,t,t.name);break;case u.Syntax.RestElement:this.checkPatternParam(e,t.argument);break;case u.Syntax.AssignmentPattern:this.checkPatternParam(e,t.left);break;case u.Syntax.ArrayPattern:for(r=0;r<t.elements.length;r++)null!==t.elements[r]&&this.checkPatternParam(e,t.elements[r]);break;case u.Syntax.YieldExpression:break;default:n.assert(t.type===u.Syntax.ObjectPattern,"Invalid type");for(var r=0;r<t.properties.length;r++)this.checkPatternParam(e,t.properties[r].value)}},e.prototype.reinterpretAsCoverFormalsList=function(e){var t,r=[e];switch(e.type){case u.Syntax.Identifier:break;case"ArrowParameterPlaceHolder":r=e.params;break;default:return null}t={paramSet:{}};for(n=0;n<r.length;++n)(s=r[n]).type===u.Syntax.AssignmentPattern&&s.right.type===u.Syntax.YieldExpression&&(s.right.argument&&this.throwUnexpectedToken(this.lookahead),s.right.type=u.Syntax.Identifier,s.right.name="yield",delete s.right.argument,delete s.right.delegate),this.checkPatternParam(t,s),r[n]=s;if(this.context.strict||!this.context.allowYield)for(var n=0;n<r.length;++n){var s=r[n];s.type===u.Syntax.YieldExpression&&this.throwUnexpectedToken(this.lookahead)}if(t.message===i.Messages.StrictParamDupe){var a=this.context.strict?t.stricted:t.firstRestricted;this.throwUnexpectedToken(a,t.message)}return{params:r,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseAssignmentExpression=function(){var e;if(!this.context.allowYield&&this.matchKeyword("yield"))e=this.parseYieldExpression();else{var t=this.lookahead,r=t;if("ArrowParameterPlaceHolder"===(e=this.parseConditionalExpression()).type||this.match("=>")){this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1;var n=this.reinterpretAsCoverFormalsList(e);if(n){this.hasLineTerminator&&this.tolerateUnexpectedToken(this.lookahead),this.context.firstCoverInitializedNameError=null;var s=this.context.strict,a=this.context.allowYield;this.context.allowYield=!0;var o=this.startNode(t);this.expect("=>");var c=this.match("{")?this.parseFunctionSourceElements():this.isolateCoverGrammar(this.parseAssignmentExpression),p=c.type!==u.Syntax.BlockStatement;this.context.strict&&n.firstRestricted&&this.throwUnexpectedToken(n.firstRestricted,n.message),this.context.strict&&n.stricted&&this.tolerateUnexpectedToken(n.stricted,n.message),e=this.finalize(o,new l.ArrowFunctionExpression(n.params,c,p)),this.context.strict=s,this.context.allowYield=a}}else if(this.matchAssign()){if(this.context.isAssignmentTarget||this.tolerateError(i.Messages.InvalidLHSInAssignment),this.context.strict&&e.type===u.Syntax.Identifier){var h=e;this.scanner.isRestrictedWord(h.name)&&this.tolerateUnexpectedToken(r,i.Messages.StrictLHSAssignment),this.scanner.isStrictModeReservedWord(h.name)&&this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord)}this.match("=")?this.reinterpretExpressionAsPattern(e):(this.context.isAssignmentTarget=!1,this.context.isBindingElement=!1),r=this.nextToken();var f=this.isolateCoverGrammar(this.parseAssignmentExpression);e=this.finalize(this.startNode(t),new l.AssignmentExpression(r.value,e,f)),this.context.firstCoverInitializedNameError=null}}return e},e.prototype.parseExpression=function(){var e=this.lookahead,t=this.isolateCoverGrammar(this.parseAssignmentExpression);if(this.match(",")){var r=[];for(r.push(t);this.startMarker.index<this.scanner.length&&this.match(",");)this.nextToken(),r.push(this.isolateCoverGrammar(this.parseAssignmentExpression));t=this.finalize(this.startNode(e),new l.SequenceExpression(r))}return t},e.prototype.parseStatementListItem=function(){var e=null;if(this.context.isAssignmentTarget=!0,this.context.isBindingElement=!0,this.lookahead.type===a.Token.Keyword)switch(this.lookahead.value){case"export":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalExportDeclaration),e=this.parseExportDeclaration();break;case"import":"module"!==this.sourceType&&this.tolerateUnexpectedToken(this.lookahead,i.Messages.IllegalImportDeclaration),e=this.parseImportDeclaration();break;case"const":e=this.parseLexicalDeclaration({inFor:!1});break;case"function":e=this.parseFunctionDeclaration();break;case"class":e=this.parseClassDeclaration();break;case"let":e=this.isLexicalDeclaration()?this.parseLexicalDeclaration({inFor:!1}):this.parseStatement();break;default:e=this.parseStatement()}else e=this.parseStatement();return e},e.prototype.parseBlock=function(){var e=this.createNode();this.expect("{");for(var t=[];;){if(this.match("}"))break;t.push(this.parseStatementListItem())}return this.expect("}"),this.finalize(e,new l.BlockStatement(t))},e.prototype.parseLexicalBinding=function(e,t){var r=this.createNode(),n=[],s=this.parsePattern(n,e);this.context.strict&&s.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(s.name)&&this.tolerateError(i.Messages.StrictVarName);var a=null;return"const"===e?this.matchKeyword("in")||this.matchContextualKeyword("of")||(this.expect("="),a=this.isolateCoverGrammar(this.parseAssignmentExpression)):(!t.inFor&&s.type!==u.Syntax.Identifier||this.match("="))&&(this.expect("="),a=this.isolateCoverGrammar(this.parseAssignmentExpression)),this.finalize(r,new l.VariableDeclarator(s,a))},e.prototype.parseBindingList=function(e,t){for(var r=[this.parseLexicalBinding(e,t)];this.match(",");)this.nextToken(),r.push(this.parseLexicalBinding(e,t));return r},e.prototype.isLexicalDeclaration=function(){var e=this.scanner.index,t=this.scanner.lineNumber,r=this.scanner.lineStart;this.collectComments();var n=this.scanner.lex();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=r,n.type===a.Token.Identifier||n.type===a.Token.Punctuator&&"["===n.value||n.type===a.Token.Punctuator&&"{"===n.value||n.type===a.Token.Keyword&&"let"===n.value||n.type===a.Token.Keyword&&"yield"===n.value},e.prototype.parseLexicalDeclaration=function(e){var t=this.createNode(),r=this.nextToken().value;n.assert("let"===r||"const"===r,"Lexical declaration must be either let or const");var i=this.parseBindingList(r,e);return this.consumeSemicolon(),this.finalize(t,new l.VariableDeclaration(i,r))},e.prototype.parseBindingRestElement=function(e,t){var r=this.createNode();this.expect("...");var n=this.parsePattern(e,t);return this.finalize(r,new l.RestElement(n))},e.prototype.parseArrayPattern=function(e,t){var r=this.createNode();this.expect("[");for(var n=[];!this.match("]");)if(this.match(","))this.nextToken(),n.push(null);else{if(this.match("...")){n.push(this.parseBindingRestElement(e,t));break}n.push(this.parsePatternWithDefault(e,t)),this.match("]")||this.expect(",")}return this.expect("]"),this.finalize(r,new l.ArrayPattern(n))},e.prototype.parsePropertyPattern=function(e,t){var r,n,i=this.createNode(),s=!1,o=!1;if(this.lookahead.type===a.Token.Identifier){var u=this.lookahead;r=this.parseVariableIdentifier();var c=this.finalize(i,new l.Identifier(u.value));if(this.match("=")){e.push(u),o=!0,this.nextToken();var p=this.parseAssignmentExpression();n=this.finalize(this.startNode(u),new l.AssignmentPattern(c,p))}else this.match(":")?(this.expect(":"),n=this.parsePatternWithDefault(e,t)):(e.push(u),o=!0,n=c)}else s=this.match("["),r=this.parseObjectPropertyKey(),this.expect(":"),n=this.parsePatternWithDefault(e,t);return this.finalize(i,new l.Property("init",r,s,n,!1,o))},e.prototype.parseObjectPattern=function(e,t){var r=this.createNode(),n=[];for(this.expect("{");!this.match("}");)n.push(this.parsePropertyPattern(e,t)),this.match("}")||this.expect(",");return this.expect("}"),this.finalize(r,new l.ObjectPattern(n))},e.prototype.parsePattern=function(e,t){var r;return this.match("[")?r=this.parseArrayPattern(e,t):this.match("{")?r=this.parseObjectPattern(e,t):(!this.matchKeyword("let")||"const"!==t&&"let"!==t||this.tolerateUnexpectedToken(this.lookahead,i.Messages.UnexpectedToken),e.push(this.lookahead),r=this.parseVariableIdentifier(t)),r},e.prototype.parsePatternWithDefault=function(e,t){var r=this.lookahead,n=this.parsePattern(e,t);if(this.match("=")){this.nextToken();var i=this.context.allowYield;this.context.allowYield=!0;var s=this.isolateCoverGrammar(this.parseAssignmentExpression);this.context.allowYield=i,n=this.finalize(this.startNode(r),new l.AssignmentPattern(n,s))}return n},e.prototype.parseVariableIdentifier=function(e){var t=this.createNode(),r=this.nextToken();return r.type===a.Token.Keyword&&"yield"===r.value?(this.context.strict&&this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord),this.context.allowYield||this.throwUnexpectedToken(r)):r.type!==a.Token.Identifier?this.context.strict&&r.type===a.Token.Keyword&&this.scanner.isStrictModeReservedWord(r.value)?this.tolerateUnexpectedToken(r,i.Messages.StrictReservedWord):(this.context.strict||"let"!==r.value||"var"!==e)&&this.throwUnexpectedToken(r):"module"===this.sourceType&&r.type===a.Token.Identifier&&"await"===r.value&&this.tolerateUnexpectedToken(r),this.finalize(t,new l.Identifier(r.value))},e.prototype.parseVariableDeclaration=function(e){var t=this.createNode(),r=[],n=this.parsePattern(r,"var");this.context.strict&&n.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(n.name)&&this.tolerateError(i.Messages.StrictVarName);var s=null;return this.match("=")?(this.nextToken(),s=this.isolateCoverGrammar(this.parseAssignmentExpression)):n.type===u.Syntax.Identifier||e.inFor||this.expect("="),this.finalize(t,new l.VariableDeclarator(n,s))},e.prototype.parseVariableDeclarationList=function(e){var t={inFor:e.inFor},r=[];for(r.push(this.parseVariableDeclaration(t));this.match(",");)this.nextToken(),r.push(this.parseVariableDeclaration(t));return r},e.prototype.parseVariableStatement=function(){var e=this.createNode();this.expectKeyword("var");var t=this.parseVariableDeclarationList({inFor:!1});return this.consumeSemicolon(),this.finalize(e,new l.VariableDeclaration(t,"var"))},e.prototype.parseEmptyStatement=function(){var e=this.createNode();return this.expect(";"),this.finalize(e,new l.EmptyStatement)},e.prototype.parseExpressionStatement=function(){var e=this.createNode(),t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ExpressionStatement(t))},e.prototype.parseIfStatement=function(){var e,t=this.createNode(),r=null;this.expectKeyword("if"),this.expect("(");var n=this.parseExpression();return!this.match(")")&&this.config.tolerant?(this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement)):(this.expect(")"),e=this.parseStatement(),this.matchKeyword("else")&&(this.nextToken(),r=this.parseStatement())),this.finalize(t,new l.IfStatement(n,e,r))},e.prototype.parseDoWhileStatement=function(){var e=this.createNode();this.expectKeyword("do");var t=this.context.inIteration;this.context.inIteration=!0;var r=this.parseStatement();this.context.inIteration=t,this.expectKeyword("while"),this.expect("(");var n=this.parseExpression();return this.expect(")"),this.match(";")&&this.nextToken(),this.finalize(e,new l.DoWhileStatement(r,n))},e.prototype.parseWhileStatement=function(){var e,t=this.createNode();this.expectKeyword("while"),this.expect("(");var r=this.parseExpression();if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),e=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var n=this.context.inIteration;this.context.inIteration=!0,e=this.parseStatement(),this.context.inIteration=n}return this.finalize(t,new l.WhileStatement(r,e))},e.prototype.parseForStatement=function(){var e,t,r=null,n=null,s=null,a=!0,o=this.createNode();if(this.expectKeyword("for"),this.expect("("),this.match(";"))this.nextToken();else if(this.matchKeyword("var")){r=this.createNode(),this.nextToken();d=this.context.allowIn;this.context.allowIn=!1;h=this.parseVariableDeclarationList({inFor:!0});if(this.context.allowIn=d,1===h.length&&this.matchKeyword("in")){var c=h[0];c.init&&(c.id.type===u.Syntax.ArrayPattern||c.id.type===u.Syntax.ObjectPattern||this.context.strict)&&this.tolerateError(i.Messages.ForInOfLoopInitializer,"for-in"),r=this.finalize(r,new l.VariableDeclaration(h,"var")),this.nextToken(),e=r,t=this.parseExpression(),r=null}else 1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(r=this.finalize(r,new l.VariableDeclaration(h,"var")),this.nextToken(),e=r,t=this.parseAssignmentExpression(),r=null,a=!1):(r=this.finalize(r,new l.VariableDeclaration(h,"var")),this.expect(";"))}else if(this.matchKeyword("const")||this.matchKeyword("let")){r=this.createNode();var p=this.nextToken().value;if(this.context.strict||"in"!==this.lookahead.value){d=this.context.allowIn;this.context.allowIn=!1;var h=this.parseBindingList(p,{inFor:!0});this.context.allowIn=d,1===h.length&&null===h[0].init&&this.matchKeyword("in")?(r=this.finalize(r,new l.VariableDeclaration(h,p)),this.nextToken(),e=r,t=this.parseExpression(),r=null):1===h.length&&null===h[0].init&&this.matchContextualKeyword("of")?(r=this.finalize(r,new l.VariableDeclaration(h,p)),this.nextToken(),e=r,t=this.parseAssignmentExpression(),r=null,a=!1):(this.consumeSemicolon(),r=this.finalize(r,new l.VariableDeclaration(h,p)))}else r=this.finalize(r,new l.Identifier(p)),this.nextToken(),e=r,t=this.parseExpression(),r=null}else{var f=this.lookahead,d=this.context.allowIn;if(this.context.allowIn=!1,r=this.inheritCoverGrammar(this.parseAssignmentExpression),this.context.allowIn=d,this.matchKeyword("in"))this.context.isAssignmentTarget&&r.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForIn),this.nextToken(),this.reinterpretExpressionAsPattern(r),e=r,t=this.parseExpression(),r=null;else if(this.matchContextualKeyword("of"))this.context.isAssignmentTarget&&r.type!==u.Syntax.AssignmentExpression||this.tolerateError(i.Messages.InvalidLHSInForLoop),this.nextToken(),this.reinterpretExpressionAsPattern(r),e=r,t=this.parseAssignmentExpression(),r=null,a=!1;else{if(this.match(",")){for(var m=[r];this.match(",");)this.nextToken(),m.push(this.isolateCoverGrammar(this.parseAssignmentExpression));r=this.finalize(this.startNode(f),new l.SequenceExpression(m))}this.expect(";")}}void 0===e&&(this.match(";")||(n=this.parseExpression()),this.expect(";"),this.match(")")||(s=this.parseExpression()));var y;if(!this.match(")")&&this.config.tolerant)this.tolerateUnexpectedToken(this.nextToken()),y=this.finalize(this.createNode(),new l.EmptyStatement);else{this.expect(")");var g=this.context.inIteration;this.context.inIteration=!0,y=this.isolateCoverGrammar(this.parseStatement),this.context.inIteration=g}return void 0===e?this.finalize(o,new l.ForStatement(r,n,s,y)):a?this.finalize(o,new l.ForInStatement(e,t,y)):this.finalize(o,new l.ForOfStatement(e,t,y))},e.prototype.parseContinueStatement=function(){var e=this.createNode();this.expectKeyword("continue");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){var r="$"+(t=this.parseVariableIdentifier()).name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.throwError(i.Messages.IllegalContinue),this.finalize(e,new l.ContinueStatement(t))},e.prototype.parseBreakStatement=function(){var e=this.createNode();this.expectKeyword("break");var t=null;if(this.lookahead.type===a.Token.Identifier&&!this.hasLineTerminator){var r="$"+(t=this.parseVariableIdentifier()).name;Object.prototype.hasOwnProperty.call(this.context.labelSet,r)||this.throwError(i.Messages.UnknownLabel,t.name)}return this.consumeSemicolon(),null!==t||this.context.inIteration||this.context.inSwitch||this.throwError(i.Messages.IllegalBreak),this.finalize(e,new l.BreakStatement(t))},e.prototype.parseReturnStatement=function(){this.context.inFunctionBody||this.tolerateError(i.Messages.IllegalReturn);var e=this.createNode();this.expectKeyword("return");var t=!this.match(";")&&!this.match("}")&&!this.hasLineTerminator&&this.lookahead.type!==a.Token.EOF?this.parseExpression():null;return this.consumeSemicolon(),this.finalize(e,new l.ReturnStatement(t))},e.prototype.parseWithStatement=function(){this.context.strict&&this.tolerateError(i.Messages.StrictModeWith);var e=this.createNode();this.expectKeyword("with"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.parseStatement();return this.finalize(e,new l.WithStatement(t,r))},e.prototype.parseSwitchCase=function(){var e,t=this.createNode();this.matchKeyword("default")?(this.nextToken(),e=null):(this.expectKeyword("case"),e=this.parseExpression()),this.expect(":");for(var r=[];;){if(this.match("}")||this.matchKeyword("default")||this.matchKeyword("case"))break;r.push(this.parseStatementListItem())}return this.finalize(t,new l.SwitchCase(e,r))},e.prototype.parseSwitchStatement=function(){var e=this.createNode();this.expectKeyword("switch"),this.expect("(");var t=this.parseExpression();this.expect(")");var r=this.context.inSwitch;this.context.inSwitch=!0;var n=[],s=!1;for(this.expect("{");;){if(this.match("}"))break;var a=this.parseSwitchCase();null===a.test&&(s&&this.throwError(i.Messages.MultipleDefaultsInSwitch),s=!0),n.push(a)}return this.expect("}"),this.context.inSwitch=r,this.finalize(e,new l.SwitchStatement(t,n))},e.prototype.parseLabelledStatement=function(){var e,t=this.createNode(),r=this.parseExpression();if(r.type===u.Syntax.Identifier&&this.match(":")){this.nextToken();var n=r,s="$"+n.name;Object.prototype.hasOwnProperty.call(this.context.labelSet,s)&&this.throwError(i.Messages.Redeclaration,"Label",n.name),this.context.labelSet[s]=!0;var a=this.parseStatement();delete this.context.labelSet[s],e=new l.LabeledStatement(n,a)}else this.consumeSemicolon(),e=new l.ExpressionStatement(r);return this.finalize(t,e)},e.prototype.parseThrowStatement=function(){var e=this.createNode();this.expectKeyword("throw"),this.hasLineTerminator&&this.throwError(i.Messages.NewlineAfterThrow);var t=this.parseExpression();return this.consumeSemicolon(),this.finalize(e,new l.ThrowStatement(t))},e.prototype.parseCatchClause=function(){var e=this.createNode();this.expectKeyword("catch"),this.expect("("),this.match(")")&&this.throwUnexpectedToken(this.lookahead);for(var t=[],r=this.parsePattern(t),n={},s=0;s<t.length;s++){var a="$"+t[s].value;Object.prototype.hasOwnProperty.call(n,a)&&this.tolerateError(i.Messages.DuplicateBinding,t[s].value),n[a]=!0}this.context.strict&&r.type===u.Syntax.Identifier&&this.scanner.isRestrictedWord(r.name)&&this.tolerateError(i.Messages.StrictCatchVariable),this.expect(")");var o=this.parseBlock();return this.finalize(e,new l.CatchClause(r,o))},e.prototype.parseFinallyClause=function(){return this.expectKeyword("finally"),this.parseBlock()},e.prototype.parseTryStatement=function(){var e=this.createNode();this.expectKeyword("try");var t=this.parseBlock(),r=this.matchKeyword("catch")?this.parseCatchClause():null,n=this.matchKeyword("finally")?this.parseFinallyClause():null;return r||n||this.throwError(i.Messages.NoCatchOrFinally),this.finalize(e,new l.TryStatement(t,r,n))},e.prototype.parseDebuggerStatement=function(){var e=this.createNode();return this.expectKeyword("debugger"),this.consumeSemicolon(),this.finalize(e,new l.DebuggerStatement)},e.prototype.parseStatement=function(){var e=null;switch(this.lookahead.type){case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.StringLiteral:case a.Token.Template:case a.Token.RegularExpression:e=this.parseExpressionStatement();break;case a.Token.Punctuator:var t=this.lookahead.value;e="{"===t?this.parseBlock():"("===t?this.parseExpressionStatement():";"===t?this.parseEmptyStatement():this.parseExpressionStatement();break;case a.Token.Identifier:e=this.parseLabelledStatement();break;case a.Token.Keyword:switch(this.lookahead.value){case"break":e=this.parseBreakStatement();break;case"continue":e=this.parseContinueStatement();break;case"debugger":e=this.parseDebuggerStatement();break;case"do":e=this.parseDoWhileStatement();break;case"for":e=this.parseForStatement();break;case"function":e=this.parseFunctionDeclaration();break;case"if":e=this.parseIfStatement();break;case"return":e=this.parseReturnStatement();break;case"switch":e=this.parseSwitchStatement();break;case"throw":e=this.parseThrowStatement();break;case"try":e=this.parseTryStatement();break;case"var":e=this.parseVariableStatement();break;case"while":e=this.parseWhileStatement();break;case"with":e=this.parseWithStatement();break;default:e=this.parseExpressionStatement()}break;default:this.throwUnexpectedToken(this.lookahead)}return e},e.prototype.parseFunctionSourceElements=function(){var e=this.createNode();this.expect("{");var t=this.parseDirectivePrologues(),r=this.context.labelSet,n=this.context.inIteration,i=this.context.inSwitch,s=this.context.inFunctionBody;for(this.context.labelSet={},this.context.inIteration=!1,this.context.inSwitch=!1,this.context.inFunctionBody=!0;this.startMarker.index<this.scanner.length&&!this.match("}");)t.push(this.parseStatementListItem());return this.expect("}"),this.context.labelSet=r,this.context.inIteration=n,this.context.inSwitch=i,this.context.inFunctionBody=s,this.finalize(e,new l.BlockStatement(t))},e.prototype.validateParam=function(e,t,r){var n="$"+r;this.context.strict?(this.scanner.isRestrictedWord(r)&&(e.stricted=t,e.message=i.Messages.StrictParamName),Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)):e.firstRestricted||(this.scanner.isRestrictedWord(r)?(e.firstRestricted=t,e.message=i.Messages.StrictParamName):this.scanner.isStrictModeReservedWord(r)?(e.firstRestricted=t,e.message=i.Messages.StrictReservedWord):Object.prototype.hasOwnProperty.call(e.paramSet,n)&&(e.stricted=t,e.message=i.Messages.StrictParamDupe)),"function"==typeof Object.defineProperty?Object.defineProperty(e.paramSet,n,{value:!0,enumerable:!0,writable:!0,configurable:!0}):e.paramSet[n]=!0},e.prototype.parseRestElement=function(e){var t=this.createNode();this.expect("...");var r=this.parsePattern(e);return this.match("=")&&this.throwError(i.Messages.DefaultRestParameter),this.match(")")||this.throwError(i.Messages.ParameterAfterRestParameter),this.finalize(t,new l.RestElement(r))},e.prototype.parseFormalParameter=function(e){for(var t=[],r=this.match("...")?this.parseRestElement(t):this.parsePatternWithDefault(t),n=0;n<t.length;n++)this.validateParam(e,t[n],t[n].value);return e.params.push(r),!this.match(")")},e.prototype.parseFormalParameters=function(e){var t;if(t={params:[],firstRestricted:e},this.expect("("),!this.match(")"))for(t.paramSet={};this.startMarker.index<this.scanner.length&&this.parseFormalParameter(t);)this.expect(",");return this.expect(")"),{params:t.params,stricted:t.stricted,firstRestricted:t.firstRestricted,message:t.message}},e.prototype.parseFunctionDeclaration=function(e){var t=this.createNode();this.expectKeyword("function");var r=this.match("*");r&&this.nextToken();var n,s=null,a=null;if(!e||!this.match("(")){var o=this.lookahead;s=this.parseVariableIdentifier(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(a=o,n=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(a=o,n=i.Messages.StrictReservedWord)}var u=this.context.allowYield;this.context.allowYield=!r;var c=this.parseFormalParameters(a),p=c.params,h=c.stricted;a=c.firstRestricted,c.message&&(n=c.message);var f=this.context.strict,d=this.parseFunctionSourceElements();return this.context.strict&&a&&this.throwUnexpectedToken(a,n),this.context.strict&&h&&this.tolerateUnexpectedToken(h,n),this.context.strict=f,this.context.allowYield=u,this.finalize(t,new l.FunctionDeclaration(s,p,d,r))},e.prototype.parseFunctionExpression=function(){var e=this.createNode();this.expectKeyword("function");var t=this.match("*");t&&this.nextToken();var r,n,s=null,a=this.context.allowYield;if(this.context.allowYield=!t,!this.match("(")){var o=this.lookahead;s=this.context.strict||t||!this.matchKeyword("yield")?this.parseVariableIdentifier():this.parseIdentifierName(),this.context.strict?this.scanner.isRestrictedWord(o.value)&&this.tolerateUnexpectedToken(o,i.Messages.StrictFunctionName):this.scanner.isRestrictedWord(o.value)?(n=o,r=i.Messages.StrictFunctionName):this.scanner.isStrictModeReservedWord(o.value)&&(n=o,r=i.Messages.StrictReservedWord)}var u=this.parseFormalParameters(n),c=u.params,p=u.stricted;n=u.firstRestricted,u.message&&(r=u.message);var h=this.context.strict,f=this.parseFunctionSourceElements();return this.context.strict&&n&&this.throwUnexpectedToken(n,r),this.context.strict&&p&&this.tolerateUnexpectedToken(p,r),this.context.strict=h,this.context.allowYield=a,this.finalize(e,new l.FunctionExpression(s,c,f,t))},e.prototype.parseDirective=function(){var e=this.lookahead,t=null,r=this.createNode(),n=this.parseExpression();return n.type===u.Syntax.Literal&&(t=this.getTokenRaw(e).slice(1,-1)),this.consumeSemicolon(),this.finalize(r,t?new l.Directive(n,t):new l.ExpressionStatement(n))},e.prototype.parseDirectivePrologues=function(){for(var e=null,t=[];;){var r=this.lookahead;if(r.type!==a.Token.StringLiteral)break;var n=this.parseDirective();t.push(n);var s=n.directive;if("string"!=typeof s)break;"use strict"===s?(this.context.strict=!0,e&&this.tolerateUnexpectedToken(e,i.Messages.StrictOctalLiteral)):!e&&r.octal&&(e=r)}return t},e.prototype.qualifiedPropertyName=function(e){switch(e.type){case a.Token.Identifier:case a.Token.StringLiteral:case a.Token.BooleanLiteral:case a.Token.NullLiteral:case a.Token.NumericLiteral:case a.Token.Keyword:return!0;case a.Token.Punctuator:return"["===e.value}return!1},e.prototype.parseGetterMethod=function(){var e=this.createNode();this.expect("("),this.expect(")");var t={params:[],stricted:null,firstRestricted:null,message:null},r=this.context.allowYield;this.context.allowYield=!1;var n=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,t.params,n,!1))},e.prototype.parseSetterMethod=function(){var e=this.createNode(),t={params:[],firstRestricted:null,paramSet:{}},r=this.context.allowYield;this.context.allowYield=!1,this.expect("("),this.match(")")?this.tolerateUnexpectedToken(this.lookahead):this.parseFormalParameter(t),this.expect(")");var n=this.parsePropertyMethod(t);return this.context.allowYield=r,this.finalize(e,new l.FunctionExpression(null,t.params,n,!1))},e.prototype.parseGeneratorMethod=function(){var e=this.createNode(),t=this.context.allowYield;this.context.allowYield=!0;var r=this.parseFormalParameters();this.context.allowYield=!1;var n=this.parsePropertyMethod(r);return this.context.allowYield=t,this.finalize(e,new l.FunctionExpression(null,r.params,n,!0))},e.prototype.isStartOfExpression=function(){var e=!0,t=this.lookahead.value;switch(this.lookahead.type){case a.Token.Punctuator:e="["===t||"("===t||"{"===t||"+"===t||"-"===t||"!"===t||"~"===t||"++"===t||"--"===t||"/"===t||"/="===t;break;case a.Token.Keyword:e="class"===t||"delete"===t||"function"===t||"let"===t||"new"===t||"super"===t||"this"===t||"typeof"===t||"void"===t||"yield"===t}return e},e.prototype.parseYieldExpression=function(){var e=this.createNode();this.expectKeyword("yield");var t=null,r=!1;if(!this.hasLineTerminator){var n=this.context.allowYield;this.context.allowYield=!1,(r=this.match("*"))?(this.nextToken(),t=this.parseAssignmentExpression()):this.isStartOfExpression()&&(t=this.parseAssignmentExpression()),this.context.allowYield=n}return this.finalize(e,new l.YieldExpression(t,r))},e.prototype.parseClassElement=function(e){var t,r,n,s=this.lookahead,o=this.createNode(),u=!1,c=!1,p=!1;this.match("*")?this.nextToken():(u=this.match("["),"static"===(r=this.parseObjectPropertyKey()).name&&(this.qualifiedPropertyName(this.lookahead)||this.match("*"))&&(s=this.lookahead,p=!0,u=this.match("["),this.match("*")?this.nextToken():r=this.parseObjectPropertyKey()));var h=this.qualifiedPropertyName(this.lookahead);return s.type===a.Token.Identifier?"get"===s.value&&h?(t="get",u=this.match("["),r=this.parseObjectPropertyKey(),this.context.allowYield=!1,n=this.parseGetterMethod()):"set"===s.value&&h&&(t="set",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseSetterMethod()):s.type===a.Token.Punctuator&&"*"===s.value&&h&&(t="init",u=this.match("["),r=this.parseObjectPropertyKey(),n=this.parseGeneratorMethod(),c=!0),!t&&r&&this.match("(")&&(t="init",n=this.parsePropertyMethodFunction(),c=!0),t||this.throwUnexpectedToken(this.lookahead),"init"===t&&(t="method"),u||(p&&this.isPropertyKey(r,"prototype")&&this.throwUnexpectedToken(s,i.Messages.StaticPrototype),!p&&this.isPropertyKey(r,"constructor")&&("method"===t&&c&&!n.generator||this.throwUnexpectedToken(s,i.Messages.ConstructorSpecialMethod),e.value?this.throwUnexpectedToken(s,i.Messages.DuplicateConstructor):e.value=!0,t="constructor")),this.finalize(o,new l.MethodDefinition(r,u,n,t,p))},e.prototype.parseClassElementList=function(){var e=[],t={value:!1};for(this.expect("{");!this.match("}");)this.match(";")?this.nextToken():e.push(this.parseClassElement(t));return this.expect("}"),e},e.prototype.parseClassBody=function(){var e=this.createNode(),t=this.parseClassElementList();return this.finalize(e,new l.ClassBody(t))},e.prototype.parseClassDeclaration=function(e){var t=this.createNode(),r=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var n=e&&this.lookahead.type!==a.Token.Identifier?null:this.parseVariableIdentifier(),i=null;this.matchKeyword("extends")&&(this.nextToken(),i=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var s=this.parseClassBody();return this.context.strict=r,this.finalize(t,new l.ClassDeclaration(n,i,s))},e.prototype.parseClassExpression=function(){var e=this.createNode(),t=this.context.strict;this.context.strict=!0,this.expectKeyword("class");var r=this.lookahead.type===a.Token.Identifier?this.parseVariableIdentifier():null,n=null;this.matchKeyword("extends")&&(this.nextToken(),n=this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall));var i=this.parseClassBody();return this.context.strict=t,this.finalize(e,new l.ClassExpression(r,n,i))},e.prototype.parseProgram=function(){for(var e=this.createNode(),t=this.parseDirectivePrologues();this.startMarker.index<this.scanner.length;)t.push(this.parseStatementListItem());return this.finalize(e,new l.Program(t,this.sourceType))},e.prototype.parseModuleSpecifier=function(){var e=this.createNode();this.lookahead.type!==a.Token.StringLiteral&&this.throwError(i.Messages.InvalidModuleSpecifier);var t=this.nextToken(),r=this.getTokenRaw(t);return this.finalize(e,new l.Literal(t.value,r))},e.prototype.parseImportSpecifier=function(){var e,t,r=this.createNode();return this.lookahead.type===a.Token.Identifier?(t=e=this.parseVariableIdentifier(),this.matchContextualKeyword("as")&&(this.nextToken(),t=this.parseVariableIdentifier())):(t=e=this.parseIdentifierName(),this.matchContextualKeyword("as")?(this.nextToken(),t=this.parseVariableIdentifier()):this.throwUnexpectedToken(this.nextToken())),this.finalize(r,new l.ImportSpecifier(t,e))},e.prototype.parseNamedImports=function(){this.expect("{");for(var e=[];!this.match("}");)e.push(this.parseImportSpecifier()),this.match("}")||this.expect(",");return this.expect("}"),e},e.prototype.parseImportDefaultSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName();return this.finalize(e,new l.ImportDefaultSpecifier(t))},e.prototype.parseImportNamespaceSpecifier=function(){var e=this.createNode();this.expect("*"),this.matchContextualKeyword("as")||this.throwError(i.Messages.NoAsAfterImportNamespace),this.nextToken();var t=this.parseIdentifierName();return this.finalize(e,new l.ImportNamespaceSpecifier(t))},e.prototype.parseImportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalImportDeclaration);var e=this.createNode();this.expectKeyword("import");var t,r=[];if(this.lookahead.type===a.Token.StringLiteral)t=this.parseModuleSpecifier();else{if(this.match("{")?r=r.concat(this.parseNamedImports()):this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.isIdentifierName(this.lookahead)&&!this.matchKeyword("default")?(r.push(this.parseImportDefaultSpecifier()),this.match(",")&&(this.nextToken(),this.match("*")?r.push(this.parseImportNamespaceSpecifier()):this.match("{")?r=r.concat(this.parseNamedImports()):this.throwUnexpectedToken(this.lookahead))):this.throwUnexpectedToken(this.nextToken()),!this.matchContextualKeyword("from")){var n=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(n,this.lookahead.value)}this.nextToken(),t=this.parseModuleSpecifier()}return this.consumeSemicolon(),this.finalize(e,new l.ImportDeclaration(r,t))},e.prototype.parseExportSpecifier=function(){var e=this.createNode(),t=this.parseIdentifierName(),r=t;return this.matchContextualKeyword("as")&&(this.nextToken(),r=this.parseIdentifierName()),this.finalize(e,new l.ExportSpecifier(t,r))},e.prototype.parseExportDeclaration=function(){this.context.inFunctionBody&&this.throwError(i.Messages.IllegalExportDeclaration);var e=this.createNode();this.expectKeyword("export");var t;if(this.matchKeyword("default"))if(this.nextToken(),this.matchKeyword("function")){n=this.parseFunctionDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.matchKeyword("class")){n=this.parseClassDeclaration(!0);t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else{this.matchContextualKeyword("from")&&this.throwError(i.Messages.UnexpectedToken,this.lookahead.value);n=this.match("{")?this.parseObjectInitializer():this.match("[")?this.parseArrayInitializer():this.parseAssignmentExpression();this.consumeSemicolon(),t=this.finalize(e,new l.ExportDefaultDeclaration(n))}else if(this.match("*")){if(this.nextToken(),!this.matchContextualKeyword("from")){c=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(c,this.lookahead.value)}this.nextToken();var r=this.parseModuleSpecifier();this.consumeSemicolon(),t=this.finalize(e,new l.ExportAllDeclaration(r))}else if(this.lookahead.type===a.Token.Keyword){var n=void 0;switch(this.lookahead.value){case"let":case"const":n=this.parseLexicalDeclaration({inFor:!1});break;case"var":case"class":case"function":n=this.parseStatementListItem();break;default:this.throwUnexpectedToken(this.lookahead)}t=this.finalize(e,new l.ExportNamedDeclaration(n,[],null))}else{var s=[],o=null,u=!1;for(this.expect("{");!this.match("}");)u=u||this.matchKeyword("default"),s.push(this.parseExportSpecifier()),this.match("}")||this.expect(",");if(this.expect("}"),this.matchContextualKeyword("from"))this.nextToken(),o=this.parseModuleSpecifier(),this.consumeSemicolon();else if(u){var c=this.lookahead.value?i.Messages.UnexpectedToken:i.Messages.MissingFromClause;this.throwError(c,this.lookahead.value)}else this.consumeSemicolon();t=this.finalize(e,new l.ExportNamedDeclaration(null,s,o))}return t},e}();t.Parser=c},function(e,t){"use strict";function r(e,t){if(!e)throw new Error("ASSERT: "+t)}t.assert=r},function(e,t){"use strict";t.Messages={UnexpectedToken:"Unexpected token %0",UnexpectedTokenIllegal:"Unexpected token ILLEGAL",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedTemplate:"Unexpected quasi %0",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",InvalidLHSInForLoop:"Invalid left-hand side in for-loop",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode",TemplateOctalLiteral:"Octal literals are not allowed in template strings.",ParameterAfterRestParameter:"Rest parameter must be last formal parameter",DefaultRestParameter:"Unexpected token =",DuplicateProtoProperty:"Duplicate __proto__ fields are not allowed in object literals",ConstructorSpecialMethod:"Class constructor may not be an accessor",DuplicateConstructor:"A class may only have one constructor",StaticPrototype:"Classes may not have static property named prototype",MissingFromClause:"Unexpected token",NoAsAfterImportNamespace:"Unexpected token",InvalidModuleSpecifier:"Unexpected token",IllegalImportDeclaration:"Unexpected token",IllegalExportDeclaration:"Unexpected token",DuplicateBinding:"Duplicate binding %0",ForInOfLoopInitializer:"%0 loop variable declaration may not have an initializer"}},function(e,t){"use strict";var r=function(){function e(){this.errors=[],this.tolerant=!1}return e.prototype.recordError=function(e){this.errors.push(e)},e.prototype.tolerate=function(e){if(!this.tolerant)throw e;this.recordError(e)},e.prototype.constructError=function(e,t){var r=new Error(e);try{throw r}catch(e){Object.create&&Object.defineProperty&&(r=Object.create(e),Object.defineProperty(r,"column",{value:t}))}finally{return r}},e.prototype.createError=function(e,t,r,n){var i="Line "+t+": "+n,s=this.constructError(i,r);return s.index=e,s.lineNumber=t,s.description=n,s},e.prototype.throwError=function(e,t,r,n){throw this.createError(e,t,r,n)},e.prototype.tolerateError=function(e,t,r,n){var i=this.createError(e,t,r,n);if(!this.tolerant)throw i;this.recordError(i)},e}();t.ErrorHandler=r},function(e,t){"use strict";!function(e){e[e.BooleanLiteral=1]="BooleanLiteral",e[e.EOF=2]="EOF",e[e.Identifier=3]="Identifier",e[e.Keyword=4]="Keyword",e[e.NullLiteral=5]="NullLiteral",e[e.NumericLiteral=6]="NumericLiteral",e[e.Punctuator=7]="Punctuator",e[e.StringLiteral=8]="StringLiteral",e[e.RegularExpression=9]="RegularExpression",e[e.Template=10]="Template"}(t.Token||(t.Token={}));var r=t.Token;t.TokenName={},t.TokenName[r.BooleanLiteral]="Boolean",t.TokenName[r.EOF]="<end>",t.TokenName[r.Identifier]="Identifier",t.TokenName[r.Keyword]="Keyword",t.TokenName[r.NullLiteral]="Null",t.TokenName[r.NumericLiteral]="Numeric",t.TokenName[r.Punctuator]="Punctuator",t.TokenName[r.StringLiteral]="String",t.TokenName[r.RegularExpression]="RegularExpression",t.TokenName[r.Template]="Template"},function(e,t,r){"use strict";function n(e){return"0123456789abcdef".indexOf(e.toLowerCase())}function i(e){return"01234567".indexOf(e)}var s=r(4),a=r(5),o=r(9),u=r(7),l=function(){function e(e,t){this.source=e,this.errorHandler=t,this.trackComment=!1,this.length=e.length,this.index=0,this.lineNumber=e.length>0?1:0,this.lineStart=0,this.curlyStack=[]}return e.prototype.eof=function(){return this.index>=this.length},e.prototype.throwUnexpectedToken=function(e){void 0===e&&(e=a.Messages.UnexpectedTokenIllegal),this.errorHandler.throwError(this.index,this.lineNumber,this.index-this.lineStart+1,e)},e.prototype.tolerateUnexpectedToken=function(){this.errorHandler.tolerateError(this.index,this.lineNumber,this.index-this.lineStart+1,a.Messages.UnexpectedTokenIllegal)},e.prototype.skipSingleLineComment=function(e){var t,r,n;for(this.trackComment&&(t=[],r=this.index-e,n={start:{line:this.lineNumber,column:this.index-this.lineStart-e},end:{}});!this.eof();){var i=this.source.charCodeAt(this.index);if(++this.index,o.Character.isLineTerminator(i)){if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart-1};s={multiLine:!1,slice:[r+e,this.index-1],range:[r,this.index-1],loc:n};t.push(s)}return 13===i&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t}}if(this.trackComment){n.end={line:this.lineNumber,column:this.index-this.lineStart};var s={multiLine:!1,slice:[r+e,this.index],range:[r,this.index],loc:n};t.push(s)}return t},e.prototype.skipMultiLineComment=function(){var e,t,r;for(this.trackComment&&(e=[],t=this.index-2,r={start:{line:this.lineNumber,column:this.index-this.lineStart-2},end:{}});!this.eof();){var n=this.source.charCodeAt(this.index);if(o.Character.isLineTerminator(n))13===n&&10===this.source.charCodeAt(this.index+1)&&++this.index,++this.lineNumber,++this.index,this.lineStart=this.index;else if(42===n){if(47===this.source.charCodeAt(this.index+1)){if(this.index+=2,this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};i={multiLine:!0,slice:[t+2,this.index-2],range:[t,this.index],loc:r};e.push(i)}return e}++this.index}else++this.index}if(this.trackComment){r.end={line:this.lineNumber,column:this.index-this.lineStart};var i={multiLine:!0,slice:[t+2,this.index],range:[t,this.index],loc:r};e.push(i)}return this.tolerateUnexpectedToken(),e},e.prototype.scanComments=function(){var e;this.trackComment&&(e=[]);for(var t=0===this.index;!this.eof();){var r=this.source.charCodeAt(this.index);if(o.Character.isWhiteSpace(r))++this.index;else if(o.Character.isLineTerminator(r))++this.index,13===r&&10===this.source.charCodeAt(this.index)&&++this.index,++this.lineNumber,this.lineStart=this.index,t=!0;else if(47===r)if(47===(r=this.source.charCodeAt(this.index+1))){this.index+=2;n=this.skipSingleLineComment(2);this.trackComment&&(e=e.concat(n)),t=!0}else{if(42!==r)break;this.index+=2;n=this.skipMultiLineComment();this.trackComment&&(e=e.concat(n))}else if(t&&45===r){if(45!==this.source.charCodeAt(this.index+1)||62!==this.source.charCodeAt(this.index+2))break;this.index+=3;n=this.skipSingleLineComment(3);this.trackComment&&(e=e.concat(n))}else{if(60!==r)break;if("!--"!==this.source.slice(this.index+1,this.index+4))break;this.index+=4;var n=this.skipSingleLineComment(4);this.trackComment&&(e=e.concat(n))}}return e},e.prototype.isFutureReservedWord=function(e){switch(e){case"enum":case"export":case"import":case"super":return!0;default:return!1}},e.prototype.isStrictModeReservedWord=function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}},e.prototype.isRestrictedWord=function(e){return"eval"===e||"arguments"===e},e.prototype.isKeyword=function(e){switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===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}},e.prototype.codePointAt=function(e){var t=this.source.charCodeAt(e);if(t>=55296&&t<=56319){var r=this.source.charCodeAt(e+1);r>=56320&&r<=57343&&(t=1024*(t-55296)+r-56320+65536)}return t},e.prototype.scanHexEscape=function(e){for(var t="u"===e?4:2,r=0,i=0;i<t;++i){if(this.eof()||!o.Character.isHexDigit(this.source.charCodeAt(this.index)))return"";r=16*r+n(this.source[this.index++])}return String.fromCharCode(r)},e.prototype.scanUnicodeCodePointEscape=function(){var e=this.source[this.index],t=0;for("}"===e&&this.throwUnexpectedToken();!this.eof()&&(e=this.source[this.index++],o.Character.isHexDigit(e.charCodeAt(0)));)t=16*t+n(e);return(t>1114111||"}"!==e)&&this.throwUnexpectedToken(),o.Character.fromCodePoint(t)},e.prototype.getIdentifier=function(){for(var e=this.index++;!this.eof();){var t=this.source.charCodeAt(this.index);if(92===t)return this.index=e,this.getComplexIdentifier();if(t>=55296&&t<57343)return this.index=e,this.getComplexIdentifier();if(!o.Character.isIdentifierPart(t))break;++this.index}return this.source.slice(e,this.index)},e.prototype.getComplexIdentifier=function(){var e=this.codePointAt(this.index),t=o.Character.fromCodePoint(e);this.index+=t.length;var r;for(92===e&&(117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,r=this.scanUnicodeCodePointEscape()):(e=(r=this.scanHexEscape("u")).charCodeAt(0),r&&"\\"!==r&&o.Character.isIdentifierStart(e)||this.throwUnexpectedToken()),t=r);!this.eof()&&(e=this.codePointAt(this.index),o.Character.isIdentifierPart(e));)t+=r=o.Character.fromCodePoint(e),this.index+=r.length,92===e&&(t=t.substr(0,t.length-1),117!==this.source.charCodeAt(this.index)&&this.throwUnexpectedToken(),++this.index,"{"===this.source[this.index]?(++this.index,r=this.scanUnicodeCodePointEscape()):(e=(r=this.scanHexEscape("u")).charCodeAt(0),r&&"\\"!==r&&o.Character.isIdentifierPart(e)||this.throwUnexpectedToken()),t+=r);return t},e.prototype.octalToDecimal=function(e){var t="0"!==e,r=i(e);return!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(t=!0,r=8*r+i(this.source[this.index++]),"0123".indexOf(e)>=0&&!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index))&&(r=8*r+i(this.source[this.index++]))),{code:r,octal:t}},e.prototype.scanIdentifier=function(){var e,t=this.index,r=92===this.source.charCodeAt(t)?this.getComplexIdentifier():this.getIdentifier();return e=1===r.length?u.Token.Identifier:this.isKeyword(r)?u.Token.Keyword:"null"===r?u.Token.NullLiteral:"true"===r||"false"===r?u.Token.BooleanLiteral:u.Token.Identifier,{type:e,value:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.scanPunctuator=function(){var e={type:u.Token.Punctuator,value:"",lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index},t=this.source[this.index];switch(t){case"(":case"{":"{"===t&&this.curlyStack.push("{"),++this.index;break;case".":++this.index,"."===this.source[this.index]&&"."===this.source[this.index+1]&&(this.index+=2,t="...");break;case"}":++this.index,this.curlyStack.pop();break;case")":case";":case",":case"[":case"]":case":":case"?":case"~":++this.index;break;default:">>>="===(t=this.source.substr(this.index,4))?this.index+=4:"==="===(t=t.substr(0,3))||"!=="===t||">>>"===t||"<<="===t||">>="===t||"**="===t?this.index+=3:"&&"===(t=t.substr(0,2))||"||"===t||"=="===t||"!="===t||"+="===t||"-="===t||"*="===t||"/="===t||"++"===t||"--"===t||"<<"===t||">>"===t||"&="===t||"|="===t||"^="===t||"%="===t||"<="===t||">="===t||"=>"===t||"**"===t?this.index+=2:(t=this.source[this.index],"<>=!+-*%&|^/".indexOf(t)>=0&&++this.index)}return this.index===e.start&&this.throwUnexpectedToken(),e.end=this.index,e.value=t,e},e.prototype.scanHexLiteral=function(e){for(var t="";!this.eof()&&o.Character.isHexDigit(this.source.charCodeAt(this.index));)t+=this.source[this.index++];return 0===t.length&&this.throwUnexpectedToken(),o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt("0x"+t,16),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanBinaryLiteral=function(e){for(var t,r="";!this.eof()&&("0"===(t=this.source[this.index])||"1"===t);)r+=this.source[this.index++];return 0===r.length&&this.throwUnexpectedToken(),this.eof()||(t=this.source.charCodeAt(this.index),(o.Character.isIdentifierStart(t)||o.Character.isDecimalDigit(t))&&this.throwUnexpectedToken()),{type:u.Token.NumericLiteral,value:parseInt(r,2),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanOctalLiteral=function(e,t){var r="",n=!1;for(o.Character.isOctalDigit(e.charCodeAt(0))?(n=!0,r="0"+this.source[this.index++]):++this.index;!this.eof()&&o.Character.isOctalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];return n||0!==r.length||this.throwUnexpectedToken(),(o.Character.isIdentifierStart(this.source.charCodeAt(this.index))||o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseInt(r,8),octal:n,lineNumber:this.lineNumber,lineStart:this.lineStart,start:t,end:this.index}},e.prototype.isImplicitOctalLiteral=function(){for(var e=this.index+1;e<this.length;++e){var t=this.source[e];if("8"===t||"9"===t)return!1;if(!o.Character.isOctalDigit(t.charCodeAt(0)))return!0}return!0},e.prototype.scanNumericLiteral=function(){var e=this.index,t=this.source[e];s.assert(o.Character.isDecimalDigit(t.charCodeAt(0))||"."===t,"Numeric literal must start with a decimal digit or a decimal point");var r="";if("."!==t){if(r=this.source[this.index++],t=this.source[this.index],"0"===r){if("x"===t||"X"===t)return++this.index,this.scanHexLiteral(e);if("b"===t||"B"===t)return++this.index,this.scanBinaryLiteral(e);if("o"===t||"O"===t)return this.scanOctalLiteral(t,e);if(t&&o.Character.isOctalDigit(t.charCodeAt(0))&&this.isImplicitOctalLiteral())return this.scanOctalLiteral(t,e)}for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("."===t){for(r+=this.source[this.index++];o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];t=this.source[this.index]}if("e"===t||"E"===t)if(r+=this.source[this.index++],"+"!==(t=this.source[this.index])&&"-"!==t||(r+=this.source[this.index++]),o.Character.isDecimalDigit(this.source.charCodeAt(this.index)))for(;o.Character.isDecimalDigit(this.source.charCodeAt(this.index));)r+=this.source[this.index++];else this.throwUnexpectedToken();return o.Character.isIdentifierStart(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(),{type:u.Token.NumericLiteral,value:parseFloat(r),lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanStringLiteral=function(){var e=this.index,t=this.source[e];s.assert("'"===t||'"'===t,"String literal must starts with a quote"),++this.index;for(var r=!1,n="";!this.eof();){var i=this.source[this.index++];if(i===t){t="";break}if("\\"===i)if((i=this.source[this.index++])&&o.Character.isLineTerminator(i.charCodeAt(0)))++this.lineNumber,"\r"===i&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(i){case"u":case"x":if("{"===this.source[this.index])++this.index,n+=this.scanUnicodeCodePointEscape();else{var a=this.scanHexEscape(i);a||this.throwUnexpectedToken(),n+=a}break;case"n":n+="\n";break;case"r":n+="\r";break;case"t":n+="\t";break;case"b":n+="\b";break;case"f":n+="\f";break;case"v":n+="\v";break;case"8":case"9":n+=i,this.tolerateUnexpectedToken();break;default:if(i&&o.Character.isOctalDigit(i.charCodeAt(0))){var l=this.octalToDecimal(i);r=l.octal||r,n+=String.fromCharCode(l.code)}else n+=i}else{if(o.Character.isLineTerminator(i.charCodeAt(0)))break;n+=i}}return""!==t&&(this.index=e,this.throwUnexpectedToken()),{type:u.Token.StringLiteral,value:n,octal:r,lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.scanTemplate=function(){var e="",t=!1,r=this.index,n="`"===this.source[r],i=!1,s=2;for(++this.index;!this.eof();){var l=this.source[this.index++];if("`"===l){s=1,i=!0,t=!0;break}if("$"===l){if("{"===this.source[this.index]){this.curlyStack.push("${"),++this.index,t=!0;break}e+=l}else if("\\"===l)if(l=this.source[this.index++],o.Character.isLineTerminator(l.charCodeAt(0)))++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index;else switch(l){case"n":e+="\n";break;case"r":e+="\r";break;case"t":e+="\t";break;case"u":case"x":if("{"===this.source[this.index])++this.index,e+=this.scanUnicodeCodePointEscape();else{var c=this.index,p=this.scanHexEscape(l);p?e+=p:(this.index=c,e+=l)}break;case"b":e+="\b";break;case"f":e+="\f";break;case"v":e+="\v";break;default:"0"===l?(o.Character.isDecimalDigit(this.source.charCodeAt(this.index))&&this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral),e+="\0"):o.Character.isOctalDigit(l.charCodeAt(0))?this.throwUnexpectedToken(a.Messages.TemplateOctalLiteral):e+=l}else o.Character.isLineTerminator(l.charCodeAt(0))?(++this.lineNumber,"\r"===l&&"\n"===this.source[this.index]&&++this.index,this.lineStart=this.index,e+="\n"):e+=l}return t||this.throwUnexpectedToken(),n||this.curlyStack.pop(),{type:u.Token.Template,value:{cooked:e,raw:this.source.slice(r+1,this.index-s)},head:n,tail:i,lineNumber:this.lineNumber,lineStart:this.lineStart,start:r,end:this.index}},e.prototype.testRegExp=function(e,t){var r=e,n=this;t.indexOf("u")>=0&&(r=r.replace(/\\u\{([0-9a-fA-F]+)\}|\\u([a-fA-F0-9]{4})/g,function(e,t,r){var i=parseInt(t||r,16);return i>1114111&&n.throwUnexpectedToken(a.Messages.InvalidRegExp),i<=65535?String.fromCharCode(i):"ļææ"}).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,"ļææ"));try{RegExp(r)}catch(e){this.throwUnexpectedToken(a.Messages.InvalidRegExp)}try{return new RegExp(e,t)}catch(e){return null}},e.prototype.scanRegExpBody=function(){var e=this.source[this.index];s.assert("/"===e,"Regular expression literal must start with a slash");for(var t=this.source[this.index++],r=!1,n=!1;!this.eof();)if(e=this.source[this.index++],t+=e,"\\"===e)e=this.source[this.index++],o.Character.isLineTerminator(e.charCodeAt(0))&&this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),t+=e;else if(o.Character.isLineTerminator(e.charCodeAt(0)))this.throwUnexpectedToken(a.Messages.UnterminatedRegExp);else if(r)"]"===e&&(r=!1);else{if("/"===e){n=!0;break}"["===e&&(r=!0)}return n||this.throwUnexpectedToken(a.Messages.UnterminatedRegExp),{value:t.substr(1,t.length-2),literal:t}},e.prototype.scanRegExpFlags=function(){for(var e="",t="";!this.eof();){var r=this.source[this.index];if(!o.Character.isIdentifierPart(r.charCodeAt(0)))break;if(++this.index,"\\"!==r||this.eof())t+=r,e+=r;else if("u"===(r=this.source[this.index])){var n=++this.index;if(r=this.scanHexEscape("u"))for(t+=r,e+="\\u";n<this.index;++n)e+=this.source[n];else this.index=n,t+="u",e+="\\u";this.tolerateUnexpectedToken()}else e+="\\",this.tolerateUnexpectedToken()}return{value:t,literal:e}},e.prototype.scanRegExp=function(){var e=this.index,t=this.scanRegExpBody(),r=this.scanRegExpFlags(),n=this.testRegExp(t.value,r.value);return{type:u.Token.RegularExpression,value:n,literal:t.literal+r.literal,regex:{pattern:t.value,flags:r.value},lineNumber:this.lineNumber,lineStart:this.lineStart,start:e,end:this.index}},e.prototype.lex=function(){if(this.eof())return{type:u.Token.EOF,lineNumber:this.lineNumber,lineStart:this.lineStart,start:this.index,end:this.index};var e=this.source.charCodeAt(this.index);return o.Character.isIdentifierStart(e)?this.scanIdentifier():40===e||41===e||59===e?this.scanPunctuator():39===e||34===e?this.scanStringLiteral():46===e?o.Character.isDecimalDigit(this.source.charCodeAt(this.index+1))?this.scanNumericLiteral():this.scanPunctuator():o.Character.isDecimalDigit(e)?this.scanNumericLiteral():96===e||125===e&&"${"===this.curlyStack[this.curlyStack.length-1]?this.scanTemplate():e>=55296&&e<57343&&o.Character.isIdentifierStart(this.codePointAt(this.index))?this.scanIdentifier():this.scanPunctuator()},e}();t.Scanner=l},function(e,t){"use strict";var r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C81-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFC-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C4\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/};t.Character={fromCodePoint:function(e){return e<65536?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10))+String.fromCharCode(56320+(e-65536&1023))},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&r.NonAsciiIdentifierStart.test(t.Character.fromCodePoint(e))},isIdentifierPart:function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&r.NonAsciiIdentifierPart.test(t.Character.fromCodePoint(e))},isDecimalDigit:function(e){return e>=48&&e<=57},isHexDigit:function(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102},isOctalDigit:function(e){return e>=48&&e<=55}}},function(e,t,r){"use strict";var n=r(2),i=function(){function e(e){this.type=n.Syntax.ArrayExpression,this.elements=e}return e}();t.ArrayExpression=i;var s=function(){function e(e){this.type=n.Syntax.ArrayPattern,this.elements=e}return e}();t.ArrayPattern=s;var a=function(){function e(e,t,r){this.type=n.Syntax.ArrowFunctionExpression,this.id=null,this.params=e,this.body=t,this.generator=!1,this.expression=r}return e}();t.ArrowFunctionExpression=a;var o=function(){function e(e,t,r){this.type=n.Syntax.AssignmentExpression,this.operator=e,this.left=t,this.right=r}return e}();t.AssignmentExpression=o;var u=function(){function e(e,t){this.type=n.Syntax.AssignmentPattern,this.left=e,this.right=t}return e}();t.AssignmentPattern=u;var l=function(){function e(e,t,r){var i="||"===e||"&&"===e;this.type=i?n.Syntax.LogicalExpression:n.Syntax.BinaryExpression,this.operator=e,this.left=t,this.right=r}return e}();t.BinaryExpression=l;var c=function(){function e(e){this.type=n.Syntax.BlockStatement,this.body=e}return e}();t.BlockStatement=c;var p=function(){function e(e){this.type=n.Syntax.BreakStatement,this.label=e}return e}();t.BreakStatement=p;var h=function(){function e(e,t){this.type=n.Syntax.CallExpression,this.callee=e,this.arguments=t}return e}();t.CallExpression=h;var f=function(){function e(e,t){this.type=n.Syntax.CatchClause,this.param=e,this.body=t}return e}();t.CatchClause=f;var d=function(){function e(e){this.type=n.Syntax.ClassBody,this.body=e}return e}();t.ClassBody=d;var m=function(){function e(e,t,r){this.type=n.Syntax.ClassDeclaration,this.id=e,this.superClass=t,this.body=r}return e}();t.ClassDeclaration=m;var y=function(){function e(e,t,r){this.type=n.Syntax.ClassExpression,this.id=e,this.superClass=t,this.body=r}return e}();t.ClassExpression=y;var g=function(){function e(e,t){this.type=n.Syntax.MemberExpression,this.computed=!0,this.object=e,this.property=t}return e}();t.ComputedMemberExpression=g;var b=function(){function e(e,t,r){this.type=n.Syntax.ConditionalExpression,this.test=e,this.consequent=t,this.alternate=r}return e}();t.ConditionalExpression=b;var v=function(){function e(e){this.type=n.Syntax.ContinueStatement,this.label=e}return e}();t.ContinueStatement=v;var x=function(){function e(){this.type=n.Syntax.DebuggerStatement}return e}();t.DebuggerStatement=x;var E=function(){function e(e,t){this.type=n.Syntax.ExpressionStatement,this.expression=e,this.directive=t}return e}();t.Directive=E;var A=function(){function e(e,t){this.type=n.Syntax.DoWhileStatement,this.body=e,this.test=t}return e}();t.DoWhileStatement=A;var D=function(){function e(){this.type=n.Syntax.EmptyStatement}return e}();t.EmptyStatement=D;var C=function(){function e(e){this.type=n.Syntax.ExportAllDeclaration,this.source=e}return e}();t.ExportAllDeclaration=C;var S=function(){function e(e){this.type=n.Syntax.ExportDefaultDeclaration,this.declaration=e}return e}();t.ExportDefaultDeclaration=S;var _=function(){function e(e,t,r){this.type=n.Syntax.ExportNamedDeclaration,this.declaration=e,this.specifiers=t,this.source=r}return e}();t.ExportNamedDeclaration=_;var w=function(){function e(e,t){this.type=n.Syntax.ExportSpecifier,this.exported=t,this.local=e}return e}();t.ExportSpecifier=w;var k=function(){function e(e){this.type=n.Syntax.ExpressionStatement,this.expression=e}return e}();t.ExpressionStatement=k;var F=function(){function e(e,t,r){this.type=n.Syntax.ForInStatement,this.left=e,this.right=t,this.body=r,this.each=!1}return e}();t.ForInStatement=F;var T=function(){function e(e,t,r){this.type=n.Syntax.ForOfStatement,this.left=e,this.right=t,this.body=r}return e}();t.ForOfStatement=T;var P=function(){function e(e,t,r,i){this.type=n.Syntax.ForStatement,this.init=e,this.test=t,this.update=r,this.body=i}return e}();t.ForStatement=P;var B=function(){function e(e,t,r,i){this.type=n.Syntax.FunctionDeclaration,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1}return e}();t.FunctionDeclaration=B;var O=function(){function e(e,t,r,i){this.type=n.Syntax.FunctionExpression,this.id=e,this.params=t,this.body=r,this.generator=i,this.expression=!1}return e}();t.FunctionExpression=O;var j=function(){function e(e){this.type=n.Syntax.Identifier,this.name=e}return e}();t.Identifier=j;var N=function(){function e(e,t,r){this.type=n.Syntax.IfStatement,this.test=e,this.consequent=t,this.alternate=r}return e}();t.IfStatement=N;var I=function(){function e(e,t){this.type=n.Syntax.ImportDeclaration,this.specifiers=e,this.source=t}return e}();t.ImportDeclaration=I;var L=function(){function e(e){this.type=n.Syntax.ImportDefaultSpecifier,this.local=e}return e}();t.ImportDefaultSpecifier=L;var M=function(){function e(e){this.type=n.Syntax.ImportNamespaceSpecifier,this.local=e}return e}();t.ImportNamespaceSpecifier=M;var R=function(){function e(e,t){this.type=n.Syntax.ImportSpecifier,this.local=e,this.imported=t}return e}();t.ImportSpecifier=R;var V=function(){function e(e,t){this.type=n.Syntax.LabeledStatement,this.label=e,this.body=t}return e}();t.LabeledStatement=V;var U=function(){function e(e,t){this.type=n.Syntax.Literal,this.value=e,this.raw=t}return e}();t.Literal=U;var q=function(){function e(e,t){this.type=n.Syntax.MetaProperty,this.meta=e,this.property=t}return e}();t.MetaProperty=q;var G=function(){function e(e,t,r,i,s){this.type=n.Syntax.MethodDefinition,this.key=e,this.computed=t,this.value=r,this.kind=i,this.static=s}return e}();t.MethodDefinition=G;var X=function(){function e(e,t){this.type=n.Syntax.NewExpression,this.callee=e,this.arguments=t}return e}();t.NewExpression=X;var J=function(){function e(e){this.type=n.Syntax.ObjectExpression,this.properties=e}return e}();t.ObjectExpression=J;var W=function(){function e(e){this.type=n.Syntax.ObjectPattern,this.properties=e}return e}();t.ObjectPattern=W;var K=function(){function e(e,t){this.type=n.Syntax.Program,this.body=e,this.sourceType=t}return e}();t.Program=K;var z=function(){function e(e,t,r,i,s,a){this.type=n.Syntax.Property,this.key=t,this.computed=r,this.value=i,this.kind=e,this.method=s,this.shorthand=a}return e}();t.Property=z;var Y=function(){function e(e,t,r){this.type=n.Syntax.Literal,this.value=e,this.raw=t,this.regex=r}return e}();t.RegexLiteral=Y;var H=function(){function e(e){this.type=n.Syntax.RestElement,this.argument=e}return e}();t.RestElement=H;var $=function(){function e(e){this.type=n.Syntax.ReturnStatement,this.argument=e}return e}();t.ReturnStatement=$;var Q=function(){function e(e){this.type=n.Syntax.SequenceExpression,this.expressions=e}return e}();t.SequenceExpression=Q;var Z=function(){function e(e){this.type=n.Syntax.SpreadElement,this.argument=e}return e}();t.SpreadElement=Z;var ee=function(){function e(e,t){this.type=n.Syntax.MemberExpression,this.computed=!1,this.object=e,this.property=t}return e}();t.StaticMemberExpression=ee;var te=function(){function e(){this.type=n.Syntax.Super}return e}();t.Super=te;var re=function(){function e(e,t){this.type=n.Syntax.SwitchCase,this.test=e,this.consequent=t}return e}();t.SwitchCase=re;var ne=function(){function e(e,t){this.type=n.Syntax.SwitchStatement,this.discriminant=e,this.cases=t}return e}();t.SwitchStatement=ne;var ie=function(){function e(e,t){this.type=n.Syntax.TaggedTemplateExpression,this.tag=e,this.quasi=t}return e}();t.TaggedTemplateExpression=ie;var se=function(){function e(e,t){this.type=n.Syntax.TemplateElement,this.value=e,this.tail=t}return e}();t.TemplateElement=se;var ae=function(){function e(e,t){this.type=n.Syntax.TemplateLiteral,this.quasis=e,this.expressions=t}return e}();t.TemplateLiteral=ae;var oe=function(){function e(){this.type=n.Syntax.ThisExpression}return e}();t.ThisExpression=oe;var ue=function(){function e(e){this.type=n.Syntax.ThrowStatement,this.argument=e}return e}();t.ThrowStatement=ue;var le=function(){function e(e,t,r){this.type=n.Syntax.TryStatement,this.block=e,this.handler=t,this.finalizer=r}return e}();t.TryStatement=le;var ce=function(){function e(e,t){this.type=n.Syntax.UnaryExpression,this.operator=e,this.argument=t,this.prefix=!0}return e}();t.UnaryExpression=ce;var pe=function(){function e(e,t,r){this.type=n.Syntax.UpdateExpression,this.operator=e,this.argument=t,this.prefix=r}return e}();t.UpdateExpression=pe;var he=function(){function e(e,t){this.type=n.Syntax.VariableDeclaration,this.declarations=e,this.kind=t}return e}();t.VariableDeclaration=he;var fe=function(){function e(e,t){this.type=n.Syntax.VariableDeclarator,this.id=e,this.init=t}return e}();t.VariableDeclarator=fe;var de=function(){function e(e,t){this.type=n.Syntax.WhileStatement,this.test=e,this.body=t}return e}();t.WhileStatement=de;var me=function(){function e(e,t){this.type=n.Syntax.WithStatement,this.object=e,this.body=t}return e}();t.WithStatement=me;var ye=function(){function e(e,t){this.type=n.Syntax.YieldExpression,this.argument=e,this.delegate=t}return e}();t.YieldExpression=ye},function(e,t,r){"use strict";function n(e){var t;switch(e.type){case c.JSXSyntax.JSXIdentifier:t=e.name;break;case c.JSXSyntax.JSXNamespacedName:var r=e;t=n(r.namespace)+":"+n(r.name);break;case c.JSXSyntax.JSXMemberExpression:var i=e;t=n(i.object)+"."+n(i.property)}return t}var i,s=this&&this.__extends||function(e,t){function r(){this.constructor=e}for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)},a=r(9),o=r(7),u=r(3),l=r(12),c=r(13),p=r(10),h=r(14);!function(e){e[e.Identifier=100]="Identifier",e[e.Text=101]="Text"}(i||(i={})),o.TokenName[i.Identifier]="JSXIdentifier",o.TokenName[i.Text]="JSXText";var f=function(e){function t(t,r,n){e.call(this,t,r,n)}return s(t,e),t.prototype.parsePrimaryExpression=function(){return this.match("<")?this.parseJSXRoot():e.prototype.parsePrimaryExpression.call(this)},t.prototype.startJSX=function(){this.scanner.index=this.startMarker.index,this.scanner.lineNumber=this.startMarker.lineNumber,this.scanner.lineStart=this.startMarker.lineStart},t.prototype.finishJSX=function(){this.nextToken()},t.prototype.reenterJSX=function(){this.startJSX(),this.expectJSX("}"),this.config.tokens&&this.tokens.pop()},t.prototype.createJSXNode=function(){return this.collectComments(),{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.createJSXChildNode=function(){return{index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}},t.prototype.scanXHTMLEntity=function(e){for(var t="&",r=!0,n=!1,i=!1,s=!1;!this.scanner.eof()&&r&&!n;){var o=this.scanner.source[this.scanner.index];if(o===e)break;if(n=";"===o,t+=o,++this.scanner.index,!n)switch(t.length){case 2:i="#"===o;break;case 3:i&&(r=(s="x"===o)||a.Character.isDecimalDigit(o.charCodeAt(0)),i=i&&!s);break;default:r=(r=r&&!(i&&!a.Character.isDecimalDigit(o.charCodeAt(0))))&&!(s&&!a.Character.isHexDigit(o.charCodeAt(0)))}}if(r&&n&&t.length>2){var u=t.substr(1,t.length-2);i&&u.length>1?t=String.fromCharCode(parseInt(u.substr(1),10)):s&&u.length>2?t=String.fromCharCode(parseInt("0"+u.substr(1),16)):i||s||!l.XHTMLEntities[u]||(t=l.XHTMLEntities[u])}return t},t.prototype.lexJSX=function(){var e=this.scanner.source.charCodeAt(this.scanner.index);if(60===e||62===e||47===e||58===e||61===e||123===e||125===e){l=this.scanner.source[this.scanner.index++];return{type:o.Token.Punctuator,value:l,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index-1,end:this.scanner.index}}if(34===e||39===e){for(var t=this.scanner.index,r=this.scanner.source[this.scanner.index++],n="";!this.scanner.eof()&&(c=this.scanner.source[this.scanner.index++])!==r;)n+="&"===c?this.scanXHTMLEntity(r):c;return{type:o.Token.StringLiteral,value:n,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(46===e){var s=this.scanner.source.charCodeAt(this.scanner.index+1),u=this.scanner.source.charCodeAt(this.scanner.index+2),l=46===s&&46===u?"...":".",t=this.scanner.index;return this.scanner.index+=l.length,{type:o.Token.Punctuator,value:l,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}if(96===e)return{type:o.Token.Template,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:this.scanner.index,end:this.scanner.index};if(a.Character.isIdentifierStart(e)&&92!==e){t=this.scanner.index;for(++this.scanner.index;!this.scanner.eof();){var c=this.scanner.source.charCodeAt(this.scanner.index);if(a.Character.isIdentifierPart(c)&&92!==c)++this.scanner.index;else{if(45!==c)break;++this.scanner.index}}var p=this.scanner.source.slice(t,this.scanner.index);return{type:i.Identifier,value:p,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:t,end:this.scanner.index}}this.scanner.throwUnexpectedToken()},t.prototype.nextJSXToken=function(){this.collectComments(),this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;var e=this.lexJSX();return this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.config.tokens&&this.tokens.push(this.convertToken(e)),e},t.prototype.nextJSXText=function(){this.startMarker.index=this.scanner.index,this.startMarker.lineNumber=this.scanner.lineNumber,this.startMarker.lineStart=this.scanner.lineStart;for(var e=this.scanner.index,t="";!this.scanner.eof();){var r=this.scanner.source[this.scanner.index];if("{"===r||"<"===r)break;++this.scanner.index,t+=r,a.Character.isLineTerminator(r.charCodeAt(0))&&(++this.scanner.lineNumber,"\r"===r&&"\n"===this.scanner.source[this.scanner.index]&&++this.scanner.index,this.scanner.lineStart=this.scanner.index)}this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart;var n={type:i.Text,value:t,lineNumber:this.scanner.lineNumber,lineStart:this.scanner.lineStart,start:e,end:this.scanner.index};return t.length>0&&this.config.tokens&&this.tokens.push(this.convertToken(n)),n},t.prototype.peekJSXToken=function(){var e=this.scanner.index,t=this.scanner.lineNumber,r=this.scanner.lineStart;this.scanner.scanComments();var n=this.lexJSX();return this.scanner.index=e,this.scanner.lineNumber=t,this.scanner.lineStart=r,n},t.prototype.expectJSX=function(e){var t=this.nextJSXToken();t.type===o.Token.Punctuator&&t.value===e||this.throwUnexpectedToken(t)},t.prototype.matchJSX=function(e){var t=this.peekJSXToken();return t.type===o.Token.Punctuator&&t.value===e},t.prototype.parseJSXIdentifier=function(){var e=this.createJSXNode(),t=this.nextJSXToken();return t.type!==i.Identifier&&this.throwUnexpectedToken(t),this.finalize(e,new h.JSXIdentifier(t.value))},t.prototype.parseJSXElementName=function(){var e=this.createJSXNode(),t=this.parseJSXIdentifier();if(this.matchJSX(":")){var r=t;this.expectJSX(":");var n=this.parseJSXIdentifier();t=this.finalize(e,new h.JSXNamespacedName(r,n))}else if(this.matchJSX("."))for(;this.matchJSX(".");){var i=t;this.expectJSX(".");var s=this.parseJSXIdentifier();t=this.finalize(e,new h.JSXMemberExpression(i,s))}return t},t.prototype.parseJSXAttributeName=function(){var e,t=this.createJSXNode(),r=this.parseJSXIdentifier();if(this.matchJSX(":")){var n=r;this.expectJSX(":");var i=this.parseJSXIdentifier();e=this.finalize(t,new h.JSXNamespacedName(n,i))}else e=r;return e},t.prototype.parseJSXStringLiteralAttribute=function(){var e=this.createJSXNode(),t=this.nextJSXToken();t.type!==o.Token.StringLiteral&&this.throwUnexpectedToken(t);var r=this.getTokenRaw(t);return this.finalize(e,new p.Literal(t.value,r))},t.prototype.parseJSXExpressionAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.finishJSX(),this.match("}")&&this.tolerateError("JSX attributes must only be assigned a non-empty expression");var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new h.JSXExpressionContainer(t))},t.prototype.parseJSXAttributeValue=function(){return this.matchJSX("{")?this.parseJSXExpressionAttribute():this.matchJSX("<")?this.parseJSXElement():this.parseJSXStringLiteralAttribute()},t.prototype.parseJSXNameValueAttribute=function(){var e=this.createJSXNode(),t=this.parseJSXAttributeName(),r=null;return this.matchJSX("=")&&(this.expectJSX("="),r=this.parseJSXAttributeValue()),this.finalize(e,new h.JSXAttribute(t,r))},t.prototype.parseJSXSpreadAttribute=function(){var e=this.createJSXNode();this.expectJSX("{"),this.expectJSX("..."),this.finishJSX();var t=this.parseAssignmentExpression();return this.reenterJSX(),this.finalize(e,new h.JSXSpreadAttribute(t))},t.prototype.parseJSXAttributes=function(){for(var e=[];!this.matchJSX("/")&&!this.matchJSX(">");){var t=this.matchJSX("{")?this.parseJSXSpreadAttribute():this.parseJSXNameValueAttribute();e.push(t)}return e},t.prototype.parseJSXOpeningElement=function(){var e=this.createJSXNode();this.expectJSX("<");var t=this.parseJSXElementName(),r=this.parseJSXAttributes(),n=this.matchJSX("/");return n&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new h.JSXOpeningElement(t,n,r))},t.prototype.parseJSXBoundaryElement=function(){var e=this.createJSXNode();if(this.expectJSX("<"),this.matchJSX("/")){this.expectJSX("/");var t=this.parseJSXElementName();return this.expectJSX(">"),this.finalize(e,new h.JSXClosingElement(t))}var r=this.parseJSXElementName(),n=this.parseJSXAttributes(),i=this.matchJSX("/");return i&&this.expectJSX("/"),this.expectJSX(">"),this.finalize(e,new h.JSXOpeningElement(r,i,n))},t.prototype.parseJSXEmptyExpression=function(){var e=this.createJSXChildNode();return this.collectComments(),this.lastMarker.index=this.scanner.index,this.lastMarker.lineNumber=this.scanner.lineNumber,this.lastMarker.lineStart=this.scanner.lineStart,this.finalize(e,new h.JSXEmptyExpression)},t.prototype.parseJSXExpressionContainer=function(){var e=this.createJSXNode();this.expectJSX("{");var t;return this.matchJSX("}")?(t=this.parseJSXEmptyExpression(),this.expectJSX("}")):(this.finishJSX(),t=this.parseAssignmentExpression(),this.reenterJSX()),this.finalize(e,new h.JSXExpressionContainer(t))},t.prototype.parseJSXChildren=function(){for(var e=[];!this.scanner.eof();){var t=this.createJSXChildNode(),r=this.nextJSXText();if(r.start<r.end){var n=this.getTokenRaw(r),i=this.finalize(t,new h.JSXText(r.value,n));e.push(i)}if("{"!==this.scanner.source[this.scanner.index])break;var s=this.parseJSXExpressionContainer();e.push(s)}return e},t.prototype.parseComplexJSXElement=function(e){for(var t=[];!this.scanner.eof();){e.children=e.children.concat(this.parseJSXChildren());var r=this.createJSXChildNode(),i=this.parseJSXBoundaryElement();if(i.type===c.JSXSyntax.JSXOpeningElement){var s=i;if(s.selfClosing){o=this.finalize(r,new h.JSXElement(s,[],null));e.children.push(o)}else t.push(e),e={node:r,opening:s,closing:null,children:[]}}if(i.type===c.JSXSyntax.JSXClosingElement){e.closing=i;var a=n(e.opening.name);if(a!==n(e.closing.name)&&this.tolerateError("Expected corresponding JSX closing tag for %0",a),!(t.length>0))break;var o=this.finalize(e.node,new h.JSXElement(e.opening,e.children,e.closing));(e=t.pop()).children.push(o)}}return e},t.prototype.parseJSXElement=function(){var e=this.createJSXNode(),t=this.parseJSXOpeningElement(),r=[],n=null;if(!t.selfClosing){var i=this.parseComplexJSXElement({node:e,opening:t,closing:n,children:r});r=i.children,n=i.closing}return this.finalize(e,new h.JSXElement(t,r,n))},t.prototype.parseJSXRoot=function(){this.config.tokens&&this.tokens.pop(),this.startJSX();var e=this.parseJSXElement();return this.finishJSX(),e},t}(u.Parser);t.JSXParser=f},function(e,t){"use strict";t.XHTMLEntities={quot:'"',amp:"&",apos:"'",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:"āŒ‹",loz:"ā—Š",spades:"ā™ ",clubs:"ā™£",hearts:"ā™„",diams:"ā™¦",lang:"āŸØ",rang:"āŸ©"}},function(e,t){"use strict";t.JSXSyntax={JSXAttribute:"JSXAttribute",JSXClosingElement:"JSXClosingElement",JSXElement:"JSXElement",JSXEmptyExpression:"JSXEmptyExpression",JSXExpressionContainer:"JSXExpressionContainer",JSXIdentifier:"JSXIdentifier",JSXMemberExpression:"JSXMemberExpression",JSXNamespacedName:"JSXNamespacedName",JSXOpeningElement:"JSXOpeningElement",JSXSpreadAttribute:"JSXSpreadAttribute",JSXText:"JSXText"}},function(e,t,r){"use strict";var n=r(13),i=function(){function e(e){this.type=n.JSXSyntax.JSXClosingElement,this.name=e}return e}();t.JSXClosingElement=i;var s=function(){function e(e,t,r){this.type=n.JSXSyntax.JSXElement,this.openingElement=e,this.children=t,this.closingElement=r}return e}();t.JSXElement=s;var a=function(){function e(){this.type=n.JSXSyntax.JSXEmptyExpression}return e}();t.JSXEmptyExpression=a;var o=function(){function e(e){this.type=n.JSXSyntax.JSXExpressionContainer,this.expression=e}return e}();t.JSXExpressionContainer=o;var u=function(){function e(e){this.type=n.JSXSyntax.JSXIdentifier,this.name=e}return e}();t.JSXIdentifier=u;var l=function(){function e(e,t){this.type=n.JSXSyntax.JSXMemberExpression,this.object=e,this.property=t}return e}();t.JSXMemberExpression=l;var c=function(){function e(e,t){this.type=n.JSXSyntax.JSXAttribute,this.name=e,this.value=t}return e}();t.JSXAttribute=c;var p=function(){function e(e,t){this.type=n.JSXSyntax.JSXNamespacedName,this.namespace=e,this.name=t}return e}();t.JSXNamespacedName=p;var h=function(){function e(e,t,r){this.type=n.JSXSyntax.JSXOpeningElement,this.name=e,this.selfClosing=t,this.attributes=r}return e}();t.JSXOpeningElement=h;var f=function(){function e(e){this.type=n.JSXSyntax.JSXSpreadAttribute,this.argument=e}return e}();t.JSXSpreadAttribute=f;var d=function(){function e(e,t){this.type=n.JSXSyntax.JSXText,this.value=e,this.raw=t}return e}();t.JSXText=d},function(e,t,r){"use strict";var n=r(8),i=r(6),s=r(7),a=function(){function e(){this.values=[],this.curly=this.paren=-1}return e.prototype.beforeFunctionExpression=function(e){return["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","**=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","**","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="].indexOf(e)>=0},e.prototype.isRegexStart=function(){var e=this.values[this.values.length-1],t=null!==e;switch(e){case"this":case"]":t=!1;break;case")":var r=this.values[this.paren-1];t="if"===r||"while"===r||"for"===r||"with"===r;break;case"}":if(t=!1,"function"===this.values[this.curly-3]){var n=this.values[this.curly-4];t=!!n&&!this.beforeFunctionExpression(n)}else if("function"===this.values[this.curly-4]){var i=this.values[this.curly-5];t=!i||!this.beforeFunctionExpression(i)}}return t},e.prototype.push=function(e){e.type===s.Token.Punctuator||e.type===s.Token.Keyword?("{"===e.value?this.curly=this.values.length:"("===e.value&&(this.paren=this.values.length),this.values.push(e.value)):this.values.push(null)},e}(),o=function(){function e(e,t){this.errorHandler=new i.ErrorHandler,this.errorHandler.tolerant=!!t&&("boolean"==typeof t.tolerant&&t.tolerant),this.scanner=new n.Scanner(e,this.errorHandler),this.scanner.trackComment=!!t&&("boolean"==typeof t.comment&&t.comment),this.trackRange=!!t&&("boolean"==typeof t.range&&t.range),this.trackLoc=!!t&&("boolean"==typeof t.loc&&t.loc),this.buffer=[],this.reader=new a}return e.prototype.errors=function(){return this.errorHandler.errors},e.prototype.getNextToken=function(){if(0===this.buffer.length){var e=this.scanner.scanComments();if(this.scanner.trackComment)for(var t=0;t<e.length;++t){var r=e[t],n=void 0,i=this.scanner.source.slice(r.slice[0],r.slice[1]);n={type:r.multiLine?"BlockComment":"LineComment",value:i},this.trackRange&&(n.range=r.range),this.trackLoc&&(n.loc=r.loc),this.buffer.push(n)}if(!this.scanner.eof()){var a=void 0;this.trackLoc&&(a={start:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},end:{}});var o=void 0;o="/"===this.scanner.source[this.scanner.index]?this.reader.isRegexStart()?this.scanner.scanRegExp():this.scanner.scanPunctuator():this.scanner.lex(),this.reader.push(o);var u=void 0;u={type:s.TokenName[o.type],value:this.scanner.source.slice(o.start,o.end)},this.trackRange&&(u.range=[o.start,o.end]),this.trackLoc&&(a.end={line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart},u.loc=a),o.regex&&(u.regex=o.regex),this.buffer.push(u)}}return this.buffer.shift()},e}();t.Tokenizer=o}])})},{}],563:[function(e,t,r){arguments[4][55][0].apply(r,arguments)},{"./util":572,dup:55}],564:[function(e,t,r){arguments[4][56][0].apply(r,arguments)},{"./base64":565,dup:56}],565:[function(e,t,r){arguments[4][57][0].apply(r,arguments)},{dup:57}],566:[function(e,t,r){arguments[4][58][0].apply(r,arguments)},{dup:58}],567:[function(e,t,r){arguments[4][59][0].apply(r,arguments)},{"./util":572,dup:59}],568:[function(e,t,r){arguments[4][60][0].apply(r,arguments)},{dup:60}],569:[function(e,t,r){arguments[4][61][0].apply(r,arguments)},{"./array-set":563,"./base64-vlq":564,"./binary-search":566,"./quick-sort":568,"./util":572,dup:61}],570:[function(e,t,r){arguments[4][62][0].apply(r,arguments)},{"./array-set":563,"./base64-vlq":564,"./mapping-list":567,"./util":572,dup:62}],571:[function(e,t,r){arguments[4][63][0].apply(r,arguments)},{"./source-map-generator":570,"./util":572,dup:63}],572:[function(e,t,r){arguments[4][64][0].apply(r,arguments)},{dup:64}],573:[function(e,t,r){arguments[4][65][0].apply(r,arguments)},{"./lib/source-map-consumer":569,"./lib/source-map-generator":570,"./lib/source-node":571,dup:65}],574:[function(e,t,r){t.exports={plugins:[e("babel-plugin-syntax-async-functions"),e("babel-plugin-syntax-async-generators"),e("babel-plugin-transform-es2015-classes"),e("babel-plugin-transform-es2015-arrow-functions"),e("babel-plugin-transform-es2015-block-scoping"),e("babel-plugin-transform-es2015-for-of"),e("regenerator-transform").default]}},{"babel-plugin-syntax-async-functions":104,"babel-plugin-syntax-async-generators":105,"babel-plugin-transform-es2015-arrow-functions":106,"babel-plugin-transform-es2015-block-scoping":107,"babel-plugin-transform-es2015-classes":109,"babel-plugin-transform-es2015-for-of":112,"regenerator-transform":580}],575:[function(e,t,r){(function(t){r.path=e("path").join(t,"runtime.js")}).call(this,"/node_modules/regenerator-runtime")},{path:534}],576:[function(e,t,r){(function(r){var n="object"==typeof r?r:"object"==typeof window?window:"object"==typeof self?self:this,i=n.regeneratorRuntime&&Object.getOwnPropertyNames(n).indexOf("regeneratorRuntime")>=0,s=i&&n.regeneratorRuntime;if(n.regeneratorRuntime=void 0,t.exports=e("./runtime"),i)n.regeneratorRuntime=s;else try{delete n.regeneratorRuntime}catch(e){n.regeneratorRuntime=void 0}}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./runtime":577}],577:[function(e,t,r){(function(e){!function(e){"use strict";function r(e,t,r,n){var s=t&&t.prototype instanceof i?t:i,a=Object.create(s.prototype),o=new f(n||[]);return a._invoke=l(e,r,o),a}function n(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(e){return{type:"throw",arg:e}}}function i(){}function s(){}function a(){}function o(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function u(t){function r(e,i,s,a){var o=n(t[e],t,i);if("throw"!==o.type){var u=o.arg,l=u.value;return l&&"object"==typeof l&&b.call(l,"__await")?Promise.resolve(l.__await).then(function(e){r("next",e,s,a)},function(e){r("throw",e,s,a)}):Promise.resolve(l).then(function(e){u.value=e,s(u)},a)}a(o.arg)}function i(e,t){function n(){return new Promise(function(n,i){r(e,t,n,i)})}return s=s?s.then(n,n):n()}"object"==typeof e.process&&e.process.domain&&(r=e.process.domain.bind(r));var s;this._invoke=i}function l(e,t,r){var i=S;return function(s,a){if(i===w)throw new Error("Generator is already running");if(i===k){if("throw"===s)throw a;return m()}for(r.method=s,r.arg=a;;){var o=r.delegate;if(o){var u=c(o,r);if(u){if(u===F)continue;return u}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if(i===S)throw i=k,r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);i=w;var l=n(e,t,r);if("normal"===l.type){if(i=r.done?k:_,l.arg===F)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(i=k,r.method="throw",r.arg=l.arg)}}}function c(e,t){var r=e.iterator[t.method];if(r===y){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=y,c(e,t),"throw"===t.method))return F;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return F}var i=n(r,e.iterator,t.arg);if("throw"===i.type)return t.method="throw",t.arg=i.arg,t.delegate=null,F;var s=i.arg;return s?s.done?(t[e.resultName]=s.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=y),t.delegate=null,F):s:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,F)}function p(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function h(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function f(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(p,this),this.reset(!0)}function d(e){if(e){var t=e[x];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,n=function t(){for(;++r<e.length;)if(b.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=y,t.done=!0,t};return n.next=n}}return{next:m}}function m(){return{value:y,done:!0}}var y,g=Object.prototype,b=g.hasOwnProperty,v="function"==typeof Symbol?Symbol:{},x=v.iterator||"@@iterator",E=v.asyncIterator||"@@asyncIterator",A=v.toStringTag||"@@toStringTag",D="object"==typeof t,C=e.regeneratorRuntime;if(C)D&&(t.exports=C);else{(C=e.regeneratorRuntime=D?t.exports:{}).wrap=r;var S="suspendedStart",_="suspendedYield",w="executing",k="completed",F={},T={};T[x]=function(){return this};var P=Object.getPrototypeOf,B=P&&P(P(d([])));B&&B!==g&&b.call(B,x)&&(T=B);var O=a.prototype=i.prototype=Object.create(T);s.prototype=O.constructor=a,a.constructor=s,a[A]=s.displayName="GeneratorFunction",C.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===s||"GeneratorFunction"===(t.displayName||t.name))},C.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,a):(e.__proto__=a,A in e||(e[A]="GeneratorFunction")),e.prototype=Object.create(O),e},C.awrap=function(e){return{__await:e}},o(u.prototype),u.prototype[E]=function(){return this},C.AsyncIterator=u,C.async=function(e,t,n,i){var s=new u(r(e,t,n,i));return C.isGeneratorFunction(t)?s:s.next().then(function(e){return e.done?e.value:s.next()})},o(O),O[A]="Generator",O[x]=function(){return this},O.toString=function(){return"[object Generator]"},C.keys=function(e){var t=[];for(var r in e)t.push(r);return t.reverse(),function r(){for(;t.length;){var n=t.pop();if(n in e)return r.value=n,r.done=!1,r}return r.done=!0,r}},C.values=d,f.prototype={constructor:f,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=y,this.done=!1,this.delegate=null,this.method="next",this.arg=y,this.tryEntries.forEach(h),!e)for(var t in this)"t"===t.charAt(0)&&b.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=y)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){function t(t,n){return s.type="throw",s.arg=e,r.next=t,n&&(r.method="next",r.arg=y),!!n}if(this.done)throw e;for(var r=this,n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n],s=i.completion;if("root"===i.tryLoc)return t("end");if(i.tryLoc<=this.prev){var a=b.call(i,"catchLoc"),o=b.call(i,"finallyLoc");if(a&&o){if(this.prev<i.catchLoc)return t(i.catchLoc,!0);if(this.prev<i.finallyLoc)return t(i.finallyLoc)}else if(a){if(this.prev<i.catchLoc)return t(i.catchLoc,!0)}else{if(!o)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return t(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var n=this.tryEntries[r];if(n.tryLoc<=this.prev&&b.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var i=n;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var s=i?i.completion:{};return s.type=e,s.arg=t,i?(this.method="next",this.next=i.finallyLoc,F):this.complete(s)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),F},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),h(r),F}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var i=n.arg;h(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:d(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=y),F}}}}("object"==typeof e?e:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],578:[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){c.default.ok(this instanceof s),p.assertIdentifier(e),this.nextTempId=0,this.contextId=e,this.listing=[],this.marked=[!0],this.finalLoc=a(),this.tryEntries=[],this.leapManager=new h.LeapManager(this)}function a(){return p.numericLiteral(-1)}function o(e){return new Error("all declarations should have been transformed into assignments before the Exploder began its work: "+(0,l.default)(e))}function u(e){var t=e.type;return"normal"===t?!m.call(e,"target"):"break"===t||"continue"===t?!m.call(e,"value")&&p.isLiteral(e.target):("return"===t||"throw"===t)&&(m.call(e,"value")&&!m.call(e,"target"))}var l=i(e("babel-runtime/core-js/json/stringify")),c=i(e("assert")),p=n(e("babel-types")),h=n(e("./leap")),f=n(e("./meta")),d=n(e("./util")),m=Object.prototype.hasOwnProperty,y=s.prototype;r.Emitter=s,y.mark=function(e){p.assertLiteral(e);var t=this.listing.length;return-1===e.value?e.value=t:c.default.strictEqual(e.value,t),this.marked[t]=!0,e},y.emit=function(e){p.isExpression(e)&&(e=p.expressionStatement(e)),p.assertStatement(e),this.listing.push(e)},y.emitAssign=function(e,t){return this.emit(this.assign(e,t)),e},y.assign=function(e,t){return p.expressionStatement(p.assignmentExpression("=",e,t))},y.contextProperty=function(e,t){return p.memberExpression(this.contextId,t?p.stringLiteral(e):p.identifier(e),!!t)},y.stop=function(e){e&&this.setReturnValue(e),this.jump(this.finalLoc)},y.setReturnValue=function(e){p.assertExpression(e.value),this.emitAssign(this.contextProperty("rval"),this.explodeExpression(e))},y.clearPendingException=function(e,t){p.assertLiteral(e);var r=p.callExpression(this.contextProperty("catch",!0),[e]);t?this.emitAssign(t,r):this.emit(r)},y.jump=function(e){this.emitAssign(this.contextProperty("next"),e),this.emit(p.breakStatement())},y.jumpIf=function(e,t){p.assertExpression(e),p.assertLiteral(t),this.emit(p.ifStatement(e,p.blockStatement([this.assign(this.contextProperty("next"),t),p.breakStatement()])))},y.jumpIfNot=function(e,t){p.assertExpression(e),p.assertLiteral(t);var r=void 0;r=p.isUnaryExpression(e)&&"!"===e.operator?e.argument:p.unaryExpression("!",e),this.emit(p.ifStatement(r,p.blockStatement([this.assign(this.contextProperty("next"),t),p.breakStatement()])))},y.makeTempVar=function(){return this.contextProperty("t"+this.nextTempId++)},y.getContextFunction=function(e){return p.functionExpression(e||null,[this.contextId],p.blockStatement([this.getDispatchLoop()]),!1,!1)},y.getDispatchLoop=function(){var e=this,t=[],r=void 0,n=!1;return e.listing.forEach(function(i,s){e.marked.hasOwnProperty(s)&&(t.push(p.switchCase(p.numericLiteral(s),r=[])),n=!1),n||(r.push(i),p.isCompletionStatement(i)&&(n=!0))}),this.finalLoc.value=this.listing.length,t.push(p.switchCase(this.finalLoc,[]),p.switchCase(p.stringLiteral("end"),[p.returnStatement(p.callExpression(this.contextProperty("stop"),[]))])),p.whileStatement(p.numericLiteral(1),p.switchStatement(p.assignmentExpression("=",this.contextProperty("prev"),this.contextProperty("next")),t))},y.getTryLocsList=function(){if(0===this.tryEntries.length)return null;var e=0;return p.arrayExpression(this.tryEntries.map(function(t){var r=t.firstLoc.value;c.default.ok(r>=e,"try entries out of order"),e=r;var n=t.catchEntry,i=t.finallyEntry,s=[t.firstLoc,n?n.firstLoc:null];return i&&(s[2]=i.firstLoc,s[3]=i.afterLoc),p.arrayExpression(s)}))},y.explode=function(e,t){var r=e.node,n=this;if(p.assertNode(r),p.isDeclaration(r))throw o(r);if(p.isStatement(r))return n.explodeStatement(e);if(p.isExpression(r))return n.explodeExpression(e,t);switch(r.type){case"Program":return e.get("body").map(n.explodeStatement,n);case"VariableDeclarator":throw o(r);case"Property":case"SwitchCase":case"CatchClause":throw new Error(r.type+" nodes should be handled by their parents");default:throw new Error("unknown Node of type "+(0,l.default)(r.type))}},y.explodeStatement=function(e,t){var r=e.node,n=this,i=void 0,s=void 0,o=void 0;if(p.assertStatement(r),t?p.assertIdentifier(t):t=null,p.isBlockStatement(r))e.get("body").forEach(function(e){n.explodeStatement(e)});else if(f.containsLeap(r))switch(r.type){case"ExpressionStatement":n.explodeExpression(e.get("expression"),!0);break;case"LabeledStatement":s=a(),n.leapManager.withEntry(new h.LabeledEntry(s,r.label),function(){n.explodeStatement(e.get("body"),r.label)}),n.mark(s);break;case"WhileStatement":i=a(),s=a(),n.mark(i),n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new h.LoopEntry(s,i,t),function(){n.explodeStatement(e.get("body"))}),n.jump(i),n.mark(s);break;case"DoWhileStatement":var u=a(),m=a();s=a(),n.mark(u),n.leapManager.withEntry(new h.LoopEntry(s,m,t),function(){n.explode(e.get("body"))}),n.mark(m),n.jumpIf(n.explodeExpression(e.get("test")),u),n.mark(s);break;case"ForStatement":o=a();var y=a();s=a(),r.init&&n.explode(e.get("init"),!0),n.mark(o),r.test&&n.jumpIfNot(n.explodeExpression(e.get("test")),s),n.leapManager.withEntry(new h.LoopEntry(s,y,t),function(){n.explodeStatement(e.get("body"))}),n.mark(y),r.update&&n.explode(e.get("update"),!0),n.jump(o),n.mark(s);break;case"TypeCastExpression":return n.explodeExpression(e.get("expression"));case"ForInStatement":o=a(),s=a();var b=n.makeTempVar();n.emitAssign(b,p.callExpression(d.runtimeProperty("keys"),[n.explodeExpression(e.get("right"))])),n.mark(o);var v=n.makeTempVar();n.jumpIf(p.memberExpression(p.assignmentExpression("=",v,p.callExpression(b,[])),p.identifier("done"),!1),s),n.emitAssign(r.left,p.memberExpression(v,p.identifier("value"),!1)),n.leapManager.withEntry(new h.LoopEntry(s,o,t),function(){n.explodeStatement(e.get("body"))}),n.jump(o),n.mark(s);break;case"BreakStatement":n.emitAbruptCompletion({type:"break",target:n.leapManager.getBreakLoc(r.label)});break;case"ContinueStatement":n.emitAbruptCompletion({type:"continue",target:n.leapManager.getContinueLoc(r.label)});break;case"SwitchStatement":var x=n.emitAssign(n.makeTempVar(),n.explodeExpression(e.get("discriminant")));s=a();for(var E=a(),A=E,D=[],C=r.cases||[],S=C.length-1;S>=0;--S){var _=C[S];p.assertSwitchCase(_),_.test?A=p.conditionalExpression(p.binaryExpression("===",x,_.test),D[S]=a(),A):D[S]=E}var w=e.get("discriminant");w.replaceWith(A),n.jump(n.explodeExpression(w)),n.leapManager.withEntry(new h.SwitchEntry(s),function(){e.get("cases").forEach(function(e){var t=e.key;n.mark(D[t]),e.get("consequent").forEach(function(e){n.explodeStatement(e)})})}),n.mark(s),-1===E.value&&(n.mark(E),c.default.strictEqual(s.value,E.value));break;case"IfStatement":var k=r.alternate&&a();s=a(),n.jumpIfNot(n.explodeExpression(e.get("test")),k||s),n.explodeStatement(e.get("consequent")),k&&(n.jump(s),n.mark(k),n.explodeStatement(e.get("alternate"))),n.mark(s);break;case"ReturnStatement":n.emitAbruptCompletion({type:"return",value:n.explodeExpression(e.get("argument"))});break;case"WithStatement":throw new Error("WithStatement not supported in generator functions.");case"TryStatement":s=a();var F=r.handler,T=F&&a(),P=T&&new h.CatchEntry(T,F.param),B=r.finalizer&&a(),O=B&&new h.FinallyEntry(B,s),j=new h.TryEntry(n.getUnmarkedCurrentLoc(),P,O);n.tryEntries.push(j),n.updateContextPrevLoc(j.firstLoc),n.leapManager.withEntry(j,function(){if(n.explodeStatement(e.get("block")),T){B?n.jump(B):n.jump(s),n.updateContextPrevLoc(n.mark(T));var t=e.get("handler.body"),r=n.makeTempVar();n.clearPendingException(j.firstLoc,r),t.traverse(g,{safeParam:r,catchParamName:F.param.name}),n.leapManager.withEntry(P,function(){n.explodeStatement(t)})}B&&(n.updateContextPrevLoc(n.mark(B)),n.leapManager.withEntry(O,function(){n.explodeStatement(e.get("finalizer"))}),n.emit(p.returnStatement(p.callExpression(n.contextProperty("finish"),[O.firstLoc]))))}),n.mark(s);break;case"ThrowStatement":n.emit(p.throwStatement(n.explodeExpression(e.get("argument"))));break;default:throw new Error("unknown Statement of type "+(0,l.default)(r.type))}else n.emit(r)};var g={Identifier:function(e,t){e.node.name===t.catchParamName&&d.isReference(e)&&e.replaceWith(t.safeParam)},Scope:function(e,t){e.scope.hasOwnBinding(t.catchParamName)&&e.skip()}};y.emitAbruptCompletion=function(e){u(e)||c.default.ok(!1,"invalid completion record: "+(0,l.default)(e)),c.default.notStrictEqual(e.type,"normal","normal completions are not abrupt");var t=[p.stringLiteral(e.type)];"break"===e.type||"continue"===e.type?(p.assertLiteral(e.target),t[1]=e.target):"return"!==e.type&&"throw"!==e.type||e.value&&(p.assertExpression(e.value),t[1]=e.value),this.emit(p.returnStatement(p.callExpression(this.contextProperty("abrupt"),t)))},y.getUnmarkedCurrentLoc=function(){return p.numericLiteral(this.listing.length)},y.updateContextPrevLoc=function(e){e?(p.assertLiteral(e),-1===e.value?e.value=this.listing.length:c.default.strictEqual(e.value,this.listing.length)):e=this.getUnmarkedCurrentLoc(),this.emitAssign(this.contextProperty("prev"),e)},y.explodeExpression=function(e,t){function r(e){if(p.assertExpression(e),!t)return e;s.emit(e)}function n(e,t,r){c.default.ok(!r||!e,"Ignoring the result of a child expression but forcing it to be assigned to a temporary variable?");var n=s.explodeExpression(t,r);return r||(e||h&&!p.isLiteral(n))&&(n=s.emitAssign(e||s.makeTempVar(),n)),n}var i=e.node;if(!i)return i;p.assertExpression(i);var s=this,o=void 0,u=void 0;if(!f.containsLeap(i))return r(i);var h=f.containsLeap.onlyChildren(i);switch(i.type){case"MemberExpression":return r(p.memberExpression(s.explodeExpression(e.get("object")),i.computed?n(null,e.get("property")):i.property,i.computed));case"CallExpression":var d=e.get("callee"),m=e.get("arguments"),y=void 0,g=[],b=!1;if(m.forEach(function(e){b=b||f.containsLeap(e.node)}),p.isMemberExpression(d.node))if(b){var v=n(s.makeTempVar(),d.get("object")),x=d.node.computed?n(null,d.get("property")):d.node.property;g.unshift(v),y=p.memberExpression(p.memberExpression(v,x,d.node.computed),p.identifier("call"),!1)}else y=s.explodeExpression(d);else y=n(null,d),p.isMemberExpression(y)&&(y=p.sequenceExpression([p.numericLiteral(0),y]));return m.forEach(function(e){g.push(n(null,e))}),r(p.callExpression(y,g));case"NewExpression":return r(p.newExpression(n(null,e.get("callee")),e.get("arguments").map(function(e){return n(null,e)})));case"ObjectExpression":return r(p.objectExpression(e.get("properties").map(function(e){return e.isObjectProperty()?p.objectProperty(e.node.key,n(null,e.get("value")),e.node.computed):e.node})));case"ArrayExpression":return r(p.arrayExpression(e.get("elements").map(function(e){return n(null,e)})));case"SequenceExpression":var E=i.expressions.length-1;return e.get("expressions").forEach(function(e){e.key===E?o=s.explodeExpression(e,t):s.explodeExpression(e,!0)}),o;case"LogicalExpression":u=a(),t||(o=s.makeTempVar());var A=n(o,e.get("left"));return"&&"===i.operator?s.jumpIfNot(A,u):(c.default.strictEqual(i.operator,"||"),s.jumpIf(A,u)),n(o,e.get("right"),t),s.mark(u),o;case"ConditionalExpression":var D=a();u=a();var C=s.explodeExpression(e.get("test"));return s.jumpIfNot(C,D),t||(o=s.makeTempVar()),n(o,e.get("consequent"),t),s.jump(u),s.mark(D),n(o,e.get("alternate"),t),s.mark(u),o;case"UnaryExpression":return r(p.unaryExpression(i.operator,s.explodeExpression(e.get("argument")),!!i.prefix));case"BinaryExpression":return r(p.binaryExpression(i.operator,n(null,e.get("left")),n(null,e.get("right"))));case"AssignmentExpression":return r(p.assignmentExpression(i.operator,s.explodeExpression(e.get("left")),s.explodeExpression(e.get("right"))));case"UpdateExpression":return r(p.updateExpression(i.operator,s.explodeExpression(e.get("argument")),i.prefix));case"YieldExpression":u=a();var S=i.argument&&s.explodeExpression(e.get("argument"));if(S&&i.delegate){var _=s.makeTempVar();return s.emit(p.returnStatement(p.callExpression(s.contextProperty("delegateYield"),[S,p.stringLiteral(_.property.name),u]))),s.mark(u),_}return s.emitAssign(s.contextProperty("next"),u),s.emit(p.returnStatement(S||null)),s.mark(u),s.contextProperty("sent");default:throw new Error("unknown Expression of type "+(0,l.default)(i.type))}}},{"./leap":581,"./meta":582,"./util":584,assert:3,"babel-runtime/core-js/json/stringify":114,"babel-types":169}],579:[function(e,t,r){"use strict";var n=function(e){return e&&e.__esModule?e:{default:e}}(e("babel-runtime/core-js/object/keys")),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")),s=Object.prototype.hasOwnProperty;r.hoist=function(e){function t(e,t){i.assertVariableDeclaration(e);var n=[];return e.declarations.forEach(function(e){r[e.id.name]=i.identifier(e.id.name),e.init?n.push(i.assignmentExpression("=",e.id,e.init)):t&&n.push(e.id)}),0===n.length?null:1===n.length?n[0]:i.sequenceExpression(n)}i.assertFunction(e.node);var r={};e.get("body").traverse({VariableDeclaration:{exit:function(e){var r=t(e.node,!1);null===r?e.remove():e.replaceWith(i.expressionStatement(r)),e.skip()}},ForStatement:function(e){var r=e.node.init;i.isVariableDeclaration(r)&&e.get("init").replaceWith(t(r,!1))},ForXStatement:function(e){var r=e.get("left");r.isVariableDeclaration()&&r.replaceWith(t(r.node,!0))},FunctionDeclaration:function(e){var t=e.node;r[t.id.name]=t.id;var n=i.expressionStatement(i.assignmentExpression("=",t.id,i.functionExpression(t.id,t.params,t.body,t.generator,t.expression)));e.parentPath.isBlockStatement()?(e.parentPath.unshiftContainer("body",n),e.remove()):e.replaceWith(n),e.skip()},FunctionExpression:function(e){e.skip()}});var a={};e.get("params").forEach(function(e){var t=e.node;i.isIdentifier(t)&&(a[t.name]=t)});var o=[];return(0,n.default)(r).forEach(function(e){s.call(a,e)||o.push(i.variableDeclarator(r[e],null))}),0===o.length?null:i.variableDeclaration("var",o)}},{"babel-runtime/core-js/object/keys":120,"babel-types":169}],580:[function(e,t,r){"use strict";r.__esModule=!0,r.default=function(){return e("./visit")}},{"./visit":585}],581:[function(e,t,r){"use strict";function n(){h.default.ok(this instanceof n)}function i(e){n.call(this),f.assertLiteral(e),this.returnLoc=e}function s(e,t,r){n.call(this),f.assertLiteral(e),f.assertLiteral(t),r?f.assertIdentifier(r):r=null,this.breakLoc=e,this.continueLoc=t,this.label=r}function a(e){n.call(this),f.assertLiteral(e),this.breakLoc=e}function o(e,t,r){n.call(this),f.assertLiteral(e),t?h.default.ok(t instanceof u):t=null,r?h.default.ok(r instanceof l):r=null,h.default.ok(t||r),this.firstLoc=e,this.catchEntry=t,this.finallyEntry=r}function u(e,t){n.call(this),f.assertLiteral(e),f.assertIdentifier(t),this.firstLoc=e,this.paramId=t}function l(e,t){n.call(this),f.assertLiteral(e),f.assertLiteral(t),this.firstLoc=e,this.afterLoc=t}function c(e,t){n.call(this),f.assertLiteral(e),f.assertIdentifier(t),this.breakLoc=e,this.label=t}function p(t){h.default.ok(this instanceof p);var r=e("./emit").Emitter;h.default.ok(t instanceof r),this.emitter=t,this.entryStack=[new i(t.finalLoc)]}var h=function(e){return e&&e.__esModule?e:{default:e}}(e("assert")),f=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")),d=e("util");(0,d.inherits)(i,n),r.FunctionEntry=i,(0,d.inherits)(s,n),r.LoopEntry=s,(0,d.inherits)(a,n),r.SwitchEntry=a,(0,d.inherits)(o,n),r.TryEntry=o,(0,d.inherits)(u,n),r.CatchEntry=u,(0,d.inherits)(l,n),r.FinallyEntry=l,(0,d.inherits)(c,n),r.LabeledEntry=c;var m=p.prototype;r.LeapManager=p,m.withEntry=function(e,t){h.default.ok(e instanceof n),this.entryStack.push(e);try{t.call(this.emitter)}finally{var r=this.entryStack.pop();h.default.strictEqual(r,e)}},m._findLeapLocation=function(e,t){for(var r=this.entryStack.length-1;r>=0;--r){var n=this.entryStack[r],i=n[e];if(i)if(t){if(n.label&&n.label.name===t.name)return i}else if(!(n instanceof c))return i}return null},m.getBreakLoc=function(e){return this._findLeapLocation("breakLoc",e)},m.getContinueLoc=function(e){return this._findLeapLocation("continueLoc",e)}},{"./emit":578,assert:3,"babel-types":169,util:602}],582:[function(e,t,r){"use strict";function n(e,t){function r(e){function t(e){return r||(Array.isArray(e)?e.some(t):s.isNode(e)&&(i.default.strictEqual(r,!1),r=n(e))),r}s.assertNode(e);var r=!1,a=s.VISITOR_KEYS[e.type];if(a)for(var o=0;o<a.length;o++)t(e[a[o]]);return r}function n(n){s.assertNode(n);var i=a(n);return o.call(i,e)?i[e]:o.call(u,n.type)?i[e]=!1:o.call(t,n.type)?i[e]=!0:i[e]=r(n)}return n.onlyChildren=r,n}var i=function(e){return e&&e.__esModule?e:{default:e}}(e("assert")),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")),a=e("private").makeAccessor(),o=Object.prototype.hasOwnProperty,u={FunctionExpression:!0,ArrowFunctionExpression:!0},l={CallExpression:!0,ForInStatement:!0,UnaryExpression:!0,BinaryExpression:!0,AssignmentExpression:!0,UpdateExpression:!0,NewExpression:!0},c={YieldExpression:!0,BreakStatement:!0,ContinueStatement:!0,ReturnStatement:!0,ThrowStatement:!0};for(var p in c)o.call(c,p)&&(l[p]=c[p]);r.hasSideEffects=n("hasSideEffects",l),r.containsLeap=n("containsLeap",c)},{assert:3,"babel-types":169,private:536}],583:[function(e,t,r){"use strict";function n(e){if(!e.node||!i.isFunction(e.node))throw new Error("replaceShorthandObjectMethod can only be called on Function AST node paths.");if(!i.isObjectMethod(e.node))return e;if(!e.node.generator)return e;var t=e.node.params.map(function(e){return i.cloneDeep(e)}),r=i.functionExpression(null,t,i.cloneDeep(e.node.body),e.node.generator,e.node.async);return e.replaceWith(i.objectProperty(i.cloneDeep(e.node.key),r,e.node.computed,!1)),e.get("value")}r.__esModule=!0,r.default=n;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":169}],584:[function(e,t,r){"use strict";function n(e){return s.memberExpression(s.identifier("regeneratorRuntime"),s.identifier(e),!1)}function i(e){return e.isReferenced()||e.parentPath.isAssignmentExpression({left:e.node})}r.__esModule=!0,r.runtimeProperty=n,r.isReference=i;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"))},{"babel-types":169}],585:[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){var t=e.node;if(l.assertFunction(t),t.id||(t.id=e.scope.parent.generateUidIdentifier("callee")),t.generator&&l.isFunctionDeclaration(t)){var r=e.findParent(function(e){return e.isProgram()||e.isBlockStatement()});if(!r)return t.id;var n=a(r),i=n.declarations[0].id,s=n.declarations[0].init.callee.object;l.assertArrayExpression(s);var o=s.elements.length;return s.elements.push(t.id),l.memberExpression(i,l.numericLiteral(o),!0)}return t.id}function a(e){var t=e.node;u.default.ok(Array.isArray(t.body));var r=d(t);return r.decl?r.decl:(r.decl=l.variableDeclaration("var",[l.variableDeclarator(e.scope.generateUidIdentifier("marked"),l.callExpression(l.memberExpression(l.arrayExpression([]),l.identifier("map"),!1),[f.runtimeProperty("mark")]))]),e.unshiftContainer("body",r.decl),r.decl)}function o(e,t){var r={didRenameArguments:!1,argsId:t};return e.traverse(m,r),r.didRenameArguments}var u=i(e("assert")),l=n(e("babel-types")),c=e("./hoist"),p=e("./emit"),h=i(e("./replaceShorthandObjectMethod")),f=n(e("./util")),d=e("private").makeAccessor();r.visitor={Function:{exit:function(e,t){var r=e.node;if(r.generator){if(r.async){if(!1===t.opts.asyncGenerators)return}else if(!1===t.opts.generators)return}else{if(!r.async)return;if(!1===t.opts.async)return}r=(e=(0,h.default)(e)).node;var n=e.scope.generateUidIdentifier("context"),i=e.scope.generateUidIdentifier("args");e.ensureBlock();var a=e.get("body");r.async&&a.traverse(g),a.traverse(y,{context:n});var u=[],d=[];a.get("body").forEach(function(e){var t=e.node;l.isExpressionStatement(t)&&l.isStringLiteral(t.expression)?u.push(t):t&&null!=t._blockHoist?u.push(t):d.push(t)}),u.length>0&&(a.node.body=d);var m=s(e);l.assertIdentifier(r.id);var b=l.identifier(r.id.name+"$"),v=(0,c.hoist)(e);if(o(e,i)){v=v||l.variableDeclaration("var",[]);var x=l.identifier("arguments");x._shadowedFunctionLiteral=e,v.declarations.push(l.variableDeclarator(i,x))}var E=new p.Emitter(n);E.explode(e.get("body")),v&&v.declarations.length>0&&u.push(v);var A=[E.getContextFunction(b),r.generator?m:l.nullLiteral(),l.thisExpression()],D=E.getTryLocsList();D&&A.push(D);var C=l.callExpression(f.runtimeProperty(r.async?"async":"wrap"),A);u.push(l.returnStatement(C)),r.body=l.blockStatement(u);var S=a.node.directives;S&&(r.body.directives=S);var _=r.generator;_&&(r.generator=!1),r.async&&(r.async=!1),_&&l.isExpression(r)&&e.replaceWith(l.callExpression(f.runtimeProperty("mark"),[r])),e.requeue()}}};var m={"FunctionExpression|FunctionDeclaration":function(e){e.skip()},Identifier:function(e,t){"arguments"===e.node.name&&f.isReference(e)&&(e.replaceWith(t.argsId),t.didRenameArguments=!0)}},y={MetaProperty:function(e){var t=e.node;"function"===t.meta.name&&"sent"===t.property.name&&e.replaceWith(l.memberExpression(this.context,l.identifier("_sent")))}},g={Function:function(e){e.skip()},AwaitExpression:function(e){var t=e.node.argument;e.replaceWith(l.yieldExpression(l.callExpression(f.runtimeProperty("awrap"),[t]),!1))}}},{"./emit":578,"./hoist":579,"./replaceShorthandObjectMethod":583,"./util":584,assert:3,"babel-types":169,private:536}],586:[function(e,t,r){e("assert");var n=e("recast").types,i=n.namedTypes,s=n.builders,a=Object.prototype.hasOwnProperty;r.defaults=function(e){for(var t,r=arguments.length,n=1;n<r;++n)if(t=arguments[n])for(var i in t)a.call(t,i)&&!a.call(e,i)&&(e[i]=t[i]);return e},r.runtimeProperty=function(e){return s.memberExpression(s.identifier("regeneratorRuntime"),s.identifier(e),!1)},r.isReference=function(e,t){var r=e.value;if(!i.Identifier.check(r))return!1;if(t&&r.name!==t)return!1;var n=e.parent.value;switch(n.type){case"VariableDeclarator":return"init"===e.name;case"MemberExpression":return"object"===e.name||n.computed&&"property"===e.name;case"FunctionExpression":case"FunctionDeclaration":case"ArrowFunctionExpression":return"id"!==e.name&&("params"!==e.parentPath.name||n.params!==e.parentPath.value||n.params[e.name]!==r);case"ClassDeclaration":case"ClassExpression":return"id"!==e.name;case"CatchClause":return"param"!==e.name;case"Property":case"MethodDefinition":return"key"!==e.name;case"ImportSpecifier":case"ImportDefaultSpecifier":case"ImportNamespaceSpecifier":case"LabeledStatement":return!1;default:return!0}}},{assert:3,recast:561}],587:[function(e,t,r){function n(t){s.Program.assert(t);var r=e("..").runtime.path,n=fs.readFileSync(r,"utf8"),a=i.parse(n,{sourceFileName:r}).program.body,o=t.body;o.unshift.apply(o,a)}var i=e("recast"),s=i.types.namedTypes,a=e("./util.js");r.transform=function(t,r){return r=a.defaults(r||{},{includeRuntime:!1}),t=e("babel-core").transformFromAst(t,null,{presets:[e("regenerator-preset")],code:!1,ast:!0}).ast,!0===r.includeRuntime&&n(s.File.check(t)?t.program:t),t}},{"..":"regenerator","./util.js":586,"babel-core":28,recast:561,"regenerator-preset":574}],588:[function(e,t,r){"use strict";var n=e("is-finite");t.exports=function(e,t){if("string"!=typeof e)throw new TypeError("Expected `input` to be a string");if(t<0||!n(t))throw new TypeError("Expected `count` to be a positive finite number");var r="";do{1&t&&(r+=e),e+=e}while(t>>=1);return r}},{"is-finite":308}],589:[function(e,t,r){t.exports=e("buffer")},{buffer:183}],590:[function(e,t,r){"use strict";t.exports=function(e){var t=/^\\\\\?\\/.test(e),r=/[^\x00-\x80]+/.test(e);return t||r?e:e.replace(/\\/g,"/")}},{}],591:[function(e,t,r){function n(){i.call(this)}t.exports=n;var i=e("events").EventEmitter;e("inherits")(n,i),n.Readable=e("readable-stream/readable.js"),n.Writable=e("readable-stream/writable.js"),n.Duplex=e("readable-stream/duplex.js"),n.Transform=e("readable-stream/transform.js"),n.PassThrough=e("readable-stream/passthrough.js"),n.Stream=n,n.prototype.pipe=function(e,t){function r(t){e.writable&&!1===e.write(t)&&l.pause&&l.pause()}function n(){l.readable&&l.resume&&l.resume()}function s(){c||(c=!0,e.end())}function a(){c||(c=!0,"function"==typeof e.destroy&&e.destroy())}function o(e){if(u(),0===i.listenerCount(this,"error"))throw e}function u(){l.removeListener("data",r),e.removeListener("drain",n),l.removeListener("end",s),l.removeListener("close",a),l.removeListener("error",o),e.removeListener("error",o),l.removeListener("end",u),l.removeListener("close",u),e.removeListener("close",u)}var l=this;l.on("data",r),e.on("drain",n),e._isStdio||t&&!1===t.end||(l.on("end",s),l.on("close",a));var c=!1;return l.on("error",o),e.on("error",o),l.on("end",u),l.on("close",u),e.on("close",u),e.emit("pipe",l),e}},{events:300,inherits:305,"readable-stream/duplex.js":539,"readable-stream/passthrough.js":547,"readable-stream/readable.js":548,"readable-stream/transform.js":549,"readable-stream/writable.js":550}],592:[function(e,t,r){"use strict";function n(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function i(e){var t=n(e);if("string"!=typeof t&&(b.isEncoding===v||!v(e)))throw new Error("Unknown encoding: "+e);return t||e}function s(e){this.encoding=i(e);var t;switch(this.encoding){case"utf16le":this.text=h,this.end=f,t=4;break;case"utf8":this.fillLast=l,t=4;break;case"base64":this.text=d,this.end=m,t=3;break;default:return this.write=y,void(this.end=g)}this.lastNeed=0,this.lastTotal=0,this.lastChar=b.allocUnsafe(t)}function a(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:-1}function o(e,t,r){var n=t.length-1;if(n<r)return 0;var i=a(t[n]);return i>=0?(i>0&&(e.lastNeed=i-1),i):--n<r?0:(i=a(t[n]))>=0?(i>0&&(e.lastNeed=i-2),i):--n<r?0:(i=a(t[n]),i>=0?(i>0&&(2===i?i=0:e.lastNeed=i-3),i):0)}function u(e,t,r){if(128!=(192&t[0]))return e.lastNeed=0,"ļæ½".repeat(r);if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"ļæ½".repeat(r+1);if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"ļæ½".repeat(r+2)}}function l(e){var t=this.lastTotal-this.lastNeed,r=u(this,e,t);return void 0!==r?r:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){var r=o(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function p(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"ļæ½".repeat(this.lastTotal-this.lastNeed):t}function h(e,t){if((e.length-t)%2==0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function f(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function d(e,t){var r=(e.length-t)%3;return 0===r?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,1===r?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function m(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function y(e){return e.toString(this.encoding)}function g(e){return e&&e.length?this.write(e):""}var b=e("safe-buffer").Buffer,v=b.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};r.StringDecoder=s,s.prototype.write=function(e){if(0===e.length)return"";var t,r;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r<e.length?t?t+this.text(e,r):this.text(e,r):t||""},s.prototype.end=p,s.prototype.text=c,s.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},{"safe-buffer":589}],593:[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":1}],594:[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||t<n)};t.exports=function(){return"FORCE_COLOR"in e.env||!(i("no-color")||i("no-colors")||i("color=false"))&&(!!(i("color")||i("colors")||i("color=true")||i("color=always"))||!(e.stdout&&!e.stdout.isTTY)&&("win32"===e.platform||("COLORTERM"in e.env||"dumb"!==e.env.TERM&&!!/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(e.env.TERM))))}()}).call(this,e("_process"))},{_process:538}],595:[function(e,t,r){(function(n){function i(e,t,r){function i(){for(;l.length&&!p.paused;){var e=l.shift();if(null===e)return p.emit("end");p.emit("data",e)}}function a(){p.writable=!1,t.call(p),!p.readable&&p.autoDestroy&&p.destroy()}e=e||function(e){this.queue(e)},t=t||function(){this.queue(null)};var o=!1,u=!1,l=[],c=!1,p=new s;return p.readable=p.writable=!0,p.paused=!1,p.autoDestroy=!(r&&!1===r.autoDestroy),p.write=function(t){return e.call(this,t),!p.paused},p.queue=p.push=function(e){return c?p:(null===e&&(c=!0),l.push(e),i(),p)},p.on("end",function(){p.readable=!1,!p.writable&&p.autoDestroy&&n.nextTick(function(){p.destroy()})}),p.end=function(e){if(!o)return o=!0,arguments.length&&p.write(e),a(),p},p.destroy=function(){if(!u)return u=!0,o=!0,l.length=0,p.writable=p.readable=!1,p.emit("close"),p},p.pause=function(){if(!p.paused)return p.paused=!0,p},p.resume=function(){return p.paused&&(p.paused=!1,p.emit("resume")),i(),p.paused||p.emit("drain"),p},p}var s=e("stream");r=t.exports=i,i.through=i}).call(this,e("_process"))},{_process:538,stream:591}],596:[function(e,t,r){"use strict";t.exports=function e(t){function r(){}function n(){return typeof i.foo}r.prototype=t;var i=new r;return n(),n(),t}},{}],597:[function(e,t,r){"use strict";t.exports=function(e){for(var t=e.length;/[\s\uFEFF\u00A0]/.test(e[t-1]);)t--;return e.slice(0,t)}},{}],598:[function(e,t,r){function n(){throw new Error("tty.ReadStream is not implemented")}function i(){throw new Error("tty.ReadStream is not implemented")}r.isatty=function(){return!1},r.ReadStream=n,r.WriteStream=i},{}],599:[function(e,t,r){(function(e){function r(e,t){function r(){if(!i){if(n("throwDeprecation"))throw new Error(t);n("traceDeprecation")?console.trace(t):console.warn(t),i=!0}return e.apply(this,arguments)}if(n("noDeprecation"))return e;var i=!1;return r}function n(t){try{if(!e.localStorage)return!1}catch(e){return!1}var r=e.localStorage[t];return null!=r&&"true"===String(r).toLowerCase()}t.exports=r}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],600:[function(e,t,r){arguments[4][305][0].apply(r,arguments)},{dup:305}],601:[function(e,t,r){t.exports=function(e){return e&&"object"==typeof e&&"function"==typeof e.copy&&"function"==typeof e.fill&&"function"==typeof e.readUInt8}},{}],602:[function(e,t,r){(function(t,n){function i(e,t){var n={seen:[],stylize:a};return arguments.length>=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),m(t)?n.showHidden=t:t&&r._extend(n,t),E(n.showHidden)&&(n.showHidden=!1),E(n.depth)&&(n.depth=2),E(n.colors)&&(n.colors=!1),E(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=s),u(n,e,n.depth)}function s(e,t){var r=i.styles[t];return r?"["+i.colors[r][0]+"m"+e+"["+i.colors[r][1]+"m":e}function a(e,t){return e}function o(e){var t={};return e.forEach(function(e,r){t[e]=!0}),t}function u(e,t,n){if(e.customInspect&&t&&_(t.inspect)&&t.inspect!==r.inspect&&(!t.constructor||t.constructor.prototype!==t)){var i=t.inspect(n,e);return v(i)||(i=u(e,i,n)),i}var s=l(e,t);if(s)return s;var a=Object.keys(t),m=o(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),S(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return c(t);if(0===a.length){if(_(t)){var y=t.name?": "+t.name:"";return e.stylize("[Function"+y+"]","special")}if(A(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(C(t))return e.stylize(Date.prototype.toString.call(t),"date");if(S(t))return c(t)}var g="",b=!1,x=["{","}"];if(d(t)&&(b=!0,x=["[","]"]),_(t)&&(g=" [Function"+(t.name?": "+t.name:"")+"]"),A(t)&&(g=" "+RegExp.prototype.toString.call(t)),C(t)&&(g=" "+Date.prototype.toUTCString.call(t)),S(t)&&(g=" "+c(t)),0===a.length&&(!b||0==t.length))return x[0]+g+x[1];if(n<0)return A(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var E;return E=b?p(e,t,n,m,a):a.map(function(r){return h(e,t,n,m,r,b)}),e.seen.pop(),f(E,g,x)}function l(e,t){if(E(t))return e.stylize("undefined","undefined");if(v(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}return b(t)?e.stylize(""+t,"number"):m(t)?e.stylize(""+t,"boolean"):y(t)?e.stylize("null","null"):void 0}function c(e){return"["+Error.prototype.toString.call(e)+"]"}function p(e,t,r,n,i){for(var s=[],a=0,o=t.length;a<o;++a)P(t,String(a))?s.push(h(e,t,r,n,String(a),!0)):s.push("");return i.forEach(function(i){i.match(/^\d+$/)||s.push(h(e,t,r,n,i,!0))}),s}function h(e,t,r,n,i,s){var a,o,l;if(l=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]},l.get?o=l.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):l.set&&(o=e.stylize("[Setter]","special")),P(n,i)||(a="["+i+"]"),o||(e.seen.indexOf(l.value)<0?(o=y(r)?u(e,l.value,null):u(e,l.value,r-1)).indexOf("\n")>-1&&(o=s?o.split("\n").map(function(e){return" "+e}).join("\n").substr(2):"\n"+o.split("\n").map(function(e){return" "+e}).join("\n")):o=e.stylize("[Circular]","special")),E(a)){if(s&&i.match(/^\d+$/))return o;(a=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.substr(1,a.length-2),a=e.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=e.stylize(a,"string"))}return a+": "+o}function f(e,t,r){var n=0;return e.reduce(function(e,t){return n++,t.indexOf("\n")>=0&&n++,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60?r[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}function d(e){return Array.isArray(e)}function m(e){return"boolean"==typeof e}function y(e){return null===e}function g(e){return null==e}function b(e){return"number"==typeof e}function v(e){return"string"==typeof e}function x(e){return"symbol"==typeof e}function E(e){return void 0===e}function A(e){return D(e)&&"[object RegExp]"===k(e)}function D(e){return"object"==typeof e&&null!==e}function C(e){return D(e)&&"[object Date]"===k(e)}function S(e){return D(e)&&("[object Error]"===k(e)||e instanceof Error)}function _(e){return"function"==typeof e}function w(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"==typeof e||void 0===e}function k(e){return Object.prototype.toString.call(e)}function F(e){return e<10?"0"+e.toString(10):e.toString(10)}function T(){var e=new Date,t=[F(e.getHours()),F(e.getMinutes()),F(e.getSeconds())].join(":");return[e.getDate(),N[e.getMonth()],t].join(" ")}function P(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var B=/%[sdj%]/g;r.format=function(e){if(!v(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(i(arguments[r]));return t.join(" ")}for(var r=1,n=arguments,s=n.length,a=String(e).replace(B,function(e){if("%%"===e)return"%";if(r>=s)return e;switch(e){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(e){return"[Circular]"}default:return e}}),o=n[r];r<s;o=n[++r])y(o)||!D(o)?a+=" "+o:a+=" "+i(o);return a},r.deprecate=function(e,i){function s(){if(!a){if(t.throwDeprecation)throw new Error(i);t.traceDeprecation?console.trace(i):console.error(i),a=!0}return e.apply(this,arguments)}if(E(n.process))return function(){return r.deprecate(e,i).apply(this,arguments)};if(!0===t.noDeprecation)return e;var a=!1;return s};var O,j={};r.debuglog=function(e){if(E(O)&&(O=t.env.NODE_DEBUG||""),e=e.toUpperCase(),!j[e])if(new RegExp("\\b"+e+"\\b","i").test(O)){var n=t.pid;j[e]=function(){var t=r.format.apply(r,arguments);console.error("%s %d: %s",e,n,t)}}else j[e]=function(){};return j[e]},r.inspect=i,i.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]},i.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},r.isArray=d,r.isBoolean=m,r.isNull=y,r.isNullOrUndefined=g,r.isNumber=b,r.isString=v,r.isSymbol=x,r.isUndefined=E,r.isRegExp=A,r.isObject=D,r.isDate=C,r.isError=S,r.isFunction=_,r.isPrimitive=w,r.isBuffer=e("./support/isBuffer");var N=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];r.log=function(){console.log("%s - %s",T(),r.format.apply(r,arguments))},r.inherits=e("inherits"),r._extend=function(e,t){if(!t||!D(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e}}).call(this,e("_process"),"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":601,_process:538,inherits:600}],regenerator:[function(e,t,r){function r(e,t){function r(e){i.push(e)}function n(){try{this.queue(s(i.join(""),t).code),this.queue(null)}catch(e){this.emit("error",e)}}var i=[];return o(r,n)}function n(){regeneratorRuntime=e("regenerator-runtime")}function i(){return p||(p=a.readFileSync(n.path,"utf8"))}function s(t,r){var n;return r=l.defaults(r||{},{includeRuntime:!1}),n=c.test(t)?e("babel-core").transform(t,h):{code:t},!0===r.includeRuntime&&(n.code=i()+"\n"+n.code),n}var a=e("fs"),o=e("through"),u=e("./lib/visit").transform,l=e("./lib/util"),c=/\bfunction\s*\*|\basync\b/;t.exports=r,r.runtime=n,n.path=e("regenerator-runtime/path.js").path;var p,h={presets:[e("regenerator-preset")],parserOpts:{sourceType:"module",allowImportExportEverywhere:!0,allowReturnOutsideFunction:!0,allowSuperOutsideMethod:!0,strictMode:!1,plugins:["*","jsx","flow"]}};r.types=e("recast").types,r.compile=s,r.transform=u},{"./lib/util":586,"./lib/visit":587,"babel-core":28,fs:182,recast:561,"regenerator-preset":574,"regenerator-runtime":576,"regenerator-runtime/path.js":575,through:595}]},{},[]); \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts
deleted file mode 100644
index ae0c6d9d0b..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/ajv.d.ts
+++ /dev/null
@@ -1,296 +0,0 @@
-declare var ajv: {
- (options?: ajv.Options): ajv.Ajv;
- new (options?: ajv.Options): ajv.Ajv;
-}
-
-declare namespace ajv {
- interface Ajv {
- /**
- * Validate data using schema
- * Schema will be compiled and cached (using serialized JSON as key, [json-stable-stringify](https://github.com/substack/json-stable-stringify) is used to serialize by default).
- * @param {String|Object|Boolean} 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`).
- */
- validate(schemaKeyRef: Object | string | boolean, data: any): boolean | Thenable<any>;
- /**
- * Create validating function for passed schema.
- * @param {Object|Boolean} schema schema object
- * @return {Function} validating function
- */
- compile(schema: Object | boolean): ValidateFunction;
- /**
- * Creates validating function for passed schema with asynchronous loading of missing schemas.
- * `loadSchema` option should be a function that accepts schema uri and node-style callback.
- * @this Ajv
- * @param {Object|Boolean} schema schema object
- * @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped
- * @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function.
- * @return {Thenable<ValidateFunction>} validating function
- */
- compileAsync(schema: Object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): Thenable<ValidateFunction>;
- /**
- * Adds schema to the instance.
- * @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`.
- */
- addSchema(schema: Array<Object> | Object, key?: string): void;
- /**
- * Add schema that will be used to validate other schemas
- * options in META_IGNORE_OPTIONS are alway set to false
- * @param {Object} schema schema object
- * @param {String} key optional schema key
- */
- addMetaSchema(schema: Object, key?: string): void;
- /**
- * Validate schema
- * @param {Object|Boolean} schema schema to validate
- * @return {Boolean} true if schema is valid
- */
- validateSchema(schema: Object | boolean): boolean;
- /**
- * Get compiled schema from the instance by `key` or `ref`.
- * @param {String} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id).
- * @return {Function} schema validating function (with property `schema`).
- */
- getSchema(keyRef: string): ValidateFunction;
- /**
- * Remove cached schema(s).
- * If no parameter is passed all schemas but meta-schemas are removed.
- * If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed.
- * Even if schema is referenced by other schemas it still can be removed as other schemas have local references.
- * @param {String|Object|RegExp|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object
- */
- removeSchema(schemaKeyRef?: Object | string | RegExp | boolean): void;
- /**
- * Add custom format
- * @param {String} name format name
- * @param {String|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid)
- */
- addFormat(name: string, format: FormatValidator | FormatDefinition): void;
- /**
- * Define custom keyword
- * @this Ajv
- * @param {String} keyword custom keyword, should be a valid identifier, should be 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`.
- */
- addKeyword(keyword: string, definition: KeywordDefinition): void;
- /**
- * Get keyword definition
- * @this Ajv
- * @param {String} keyword pre-defined or custom keyword.
- * @return {Object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise.
- */
- getKeyword(keyword: string): Object | boolean;
- /**
- * Remove keyword
- * @this Ajv
- * @param {String} keyword pre-defined or custom keyword.
- */
- removeKeyword(keyword: string): void;
- /**
- * Convert array of error message objects to string
- * @param {Array<Object>} 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
- */
- errorsText(errors?: Array<ErrorObject>, options?: ErrorsTextOptions): string;
- errors?: Array<ErrorObject>;
- }
-
- interface Thenable <R> {
- then <U> (onFulfilled?: (value: R) => U | Thenable<U>, onRejected?: (error: any) => U | Thenable<U>): Thenable<U>;
- }
-
- interface ValidateFunction {
- (
- data: any,
- dataPath?: string,
- parentData?: Object | Array<any>,
- parentDataProperty?: string | number,
- rootData?: Object | Array<any>
- ): boolean | Thenable<any>;
- errors?: Array<ErrorObject>;
- schema?: Object | boolean;
- }
-
- interface Options {
- $data?: boolean;
- allErrors?: boolean;
- verbose?: boolean;
- jsonPointers?: boolean;
- uniqueItems?: boolean;
- unicode?: boolean;
- format?: string;
- formats?: Object;
- unknownFormats?: true | string[] | 'ignore';
- schemas?: Array<Object> | Object;
- schemaId?: '$id' | 'id';
- missingRefs?: true | 'ignore' | 'fail';
- extendRefs?: true | 'ignore' | 'fail';
- loadSchema?: (uri: string, cb?: (err: Error, schema: Object) => void) => Thenable<Object | boolean>;
- removeAdditional?: boolean | 'all' | 'failing';
- useDefaults?: boolean | 'shared';
- coerceTypes?: boolean | 'array';
- async?: boolean | string;
- transpile?: string | ((code: string) => string);
- meta?: boolean | Object;
- validateSchema?: boolean | 'log';
- addUsedSchema?: boolean;
- inlineRefs?: boolean | number;
- passContext?: boolean;
- loopRequired?: number;
- ownProperties?: boolean;
- multipleOfPrecision?: boolean | number;
- errorDataPath?: string,
- messages?: boolean;
- sourceCode?: boolean;
- processCode?: (code: string) => string;
- cache?: Object;
- }
-
- type FormatValidator = string | RegExp | ((data: string) => boolean);
-
- interface FormatDefinition {
- validate: FormatValidator;
- compare: (data1: string, data2: string) => number;
- async?: boolean;
- }
-
- interface KeywordDefinition {
- type?: string | Array<string>;
- async?: boolean;
- $data?: boolean;
- errors?: boolean | string;
- metaSchema?: Object;
- // schema: false makes validate not to expect schema (ValidateFunction)
- schema?: boolean;
- modifying?: boolean;
- valid?: boolean;
- // one and only one of the following properties should be present
- validate?: SchemaValidateFunction | ValidateFunction;
- compile?: (schema: any, parentSchema: Object) => ValidateFunction;
- macro?: (schema: any, parentSchema: Object) => Object | boolean;
- inline?: (it: Object, keyword: string, schema: any, parentSchema: Object) => string;
- }
-
- interface SchemaValidateFunction {
- (
- schema: any,
- data: any,
- parentSchema?: Object,
- dataPath?: string,
- parentData?: Object | Array<any>,
- parentDataProperty?: string | number,
- rootData?: Object | Array<any>
- ): boolean | Thenable<any>;
- errors?: Array<ErrorObject>;
- }
-
- interface ErrorsTextOptions {
- separator?: string;
- dataVar?: string;
- }
-
- interface ErrorObject {
- keyword: string;
- dataPath: string;
- schemaPath: string;
- params: ErrorParameters;
- // Added to validation errors of propertyNames keyword schema
- propertyName?: string;
- // Excluded if messages set to false.
- message?: string;
- // These are added with the `verbose` option.
- schema?: any;
- parentSchema?: Object;
- data?: any;
- }
-
- type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams |
- DependenciesParams | FormatParams | ComparisonParams |
- MultipleOfParams | PatternParams | RequiredParams |
- TypeParams | UniqueItemsParams | CustomParams |
- PatternGroupsParams | PatternRequiredParams |
- PropertyNamesParams | SwitchParams | NoParams | EnumParams;
-
- interface RefParams {
- ref: string;
- }
-
- interface LimitParams {
- limit: number;
- }
-
- interface AdditionalPropertiesParams {
- additionalProperty: string;
- }
-
- interface DependenciesParams {
- property: string;
- missingProperty: string;
- depsCount: number;
- deps: string;
- }
-
- interface FormatParams {
- format: string
- }
-
- interface ComparisonParams {
- comparison: string;
- limit: number | string;
- exclusive: boolean;
- }
-
- interface MultipleOfParams {
- multipleOf: number;
- }
-
- interface PatternParams {
- pattern: string;
- }
-
- interface RequiredParams {
- missingProperty: string;
- }
-
- interface TypeParams {
- type: string;
- }
-
- interface UniqueItemsParams {
- i: number;
- j: number;
- }
-
- interface CustomParams {
- keyword: string;
- }
-
- interface PatternGroupsParams {
- reason: string;
- limit: number;
- pattern: string;
- }
-
- interface PatternRequiredParams {
- missingPattern: string;
- }
-
- interface PropertyNamesParams {
- propertyName: string;
- }
-
- interface SwitchParams {
- caseIndex: number;
- }
-
- interface NoParams {}
-
- interface EnumParams {
- allowedValues: Array<any>;
- }
-}
-
-export = ajv;
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js
deleted file mode 100644
index 45e35d905b..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/lib/compile/index.js
+++ /dev/null
@@ -1,379 +0,0 @@
-'use strict';
-
-var resolve = require('./resolve')
- , util = require('./util')
- , errorClasses = require('./error_classes')
- , stableStringify = require('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,
- 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) {
- console.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') console.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<this._compilations.length; i++) {
- var c = this._compilations[i];
- if (c.schema == schema && c.root == root && c.baseId == baseId) return i;
- }
- return -1;
-}
-
-
-function patternCode(i, patterns) {
- return 'var pattern' + i + ' = new RegExp(' + util.toQuotedString(patterns[i]) + ');';
-}
-
-
-function defaultCode(i) {
- return 'var default' + i + ' = defaults[' + i + '];';
-}
-
-
-function refValCode(i, refVal) {
- return refVal[i] === undefined ? '' : 'var refVal' + i + ' = refVal[' + i + '];';
-}
-
-
-function customRuleCode(i) {
- return 'var customRule' + i + ' = customRules[' + i + '];';
-}
-
-
-function vars(arr, statement) {
- if (!arr.length) return '';
- var code = '';
- for (var i=0; i<arr.length; i++)
- code += statement(i, arr);
- return code;
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json
deleted file mode 100644
index 3847c01d4d..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/co/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "co@^4.6.0",
- "_id": "co@4.6.0",
- "_integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "_location": "/request/har-validator/ajv/co",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "co@^4.6.0",
- "name": "co",
- "escapedName": "co",
- "rawSpec": "^4.6.0",
- "saveSpec": null,
- "fetchSpec": "^4.6.0"
- },
- "_requiredBy": [
- "/request/har-validator/ajv"
- ],
- "_resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "_shasum": "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184",
- "_shrinkwrap": null,
- "_spec": "co@^4.6.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/har-validator/node_modules/ajv",
- "bin": null,
- "bugs": {
- "url": "https://github.com/tj/co/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "generator async control flow goodness",
- "devDependencies": {
- "browserify": "^10.0.0",
- "istanbul-harmony": "0",
- "mocha": "^2.0.0",
- "mz": "^1.0.2"
- },
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/tj/co#readme",
- "keywords": [
- "async",
- "flow",
- "generator",
- "coro",
- "coroutine"
- ],
- "license": "MIT",
- "name": "co",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/tj/co.git"
- },
- "scripts": {
- "browserify": "browserify index.js -o ./co-browser.js -s co",
- "prepublish": "npm run browserify",
- "test": "mocha --harmony",
- "test-cov": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- --reporter dot",
- "test-travis": "node --harmony node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha --report lcovonly -- --reporter dot"
- },
- "version": "4.6.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml
deleted file mode 100644
index 14ab1fb978..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/.eslintrc.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-env:
- node: true
-extends: 'eslint:recommended'
-rules:
- indent: [ 2, 2, { SwitchCase: 1 } ]
- no-trailing-spaces: 2
- quotes: [ 2, single, avoid-escape ]
- linebreak-style: [ 2, unix ]
- semi: [ 2, always ]
- valid-jsdoc: [ 2, { requireReturn: false } ]
- no-invalid-this: 2
- no-unused-vars: [ 2, { args: none } ]
- no-console: [ 2, { allow: [ warn, error ] } ]
- block-scoped-var: 2
- curly: [ 2, multi-or-nest, consistent ]
- dot-location: [ 2, property ]
- dot-notation: 2
- no-else-return: 2
- no-eq-null: 2
- no-fallthrough: 2
- no-return-assign: 2
- strict: [ 2, global ]
- no-use-before-define: [ 2, nofunc ]
- callback-return: 2
- no-path-concat: 2
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml
deleted file mode 100644
index 32a081d849..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/.eslintrc.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-parserOptions:
- ecmaVersion: 2016
-rules:
- no-invalid-this: 0
- no-console: 0
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js
deleted file mode 100644
index ed01a39fb8..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/benchmark/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-const assertDeepStrictEqual = require('assert').deepStrictEqual;
-const tests = require('../spec/tests');
-const Benchmark = require('benchmark');
-const suite = new Benchmark.Suite;
-
-
-const equalPackages = {
- 'fast-deep-equal': require('../index'),
- 'nano-equal': true,
- 'shallow-equal-fuzzy': true,
- 'underscore.isEqual': require('underscore').isEqual,
- 'lodash.isEqual': require('lodash').isEqual,
- 'deep-equal': true,
- 'deep-eql': true,
- 'assert.deepStrictEqual': (a, b) => {
- try { assertDeepStrictEqual(a, b); return true; }
- catch(e) { return false; }
- }
-};
-
-
-for (const equalName in equalPackages) {
- let equalFunc = equalPackages[equalName];
- if (equalFunc === true) equalFunc = require(equalName);
-
- for (const testSuite of tests) {
- for (const test of testSuite.tests) {
- try {
- if (equalFunc(test.value1, test.value2) !== test.equal)
- console.error('different result', equalName, testSuite.description, test.description);
- } catch(e) {
- console.error(equalName, testSuite.description, test.description, e);
- }
- }
- }
-
- suite.add(equalName, function() {
- for (const testSuite of tests) {
- for (const test of testSuite.tests) {
- if (test.description != 'pseudo array and equivalent array are not equal')
- equalFunc(test.value1, test.value2);
- }
- }
- });
-}
-
-console.log();
-
-suite
- .on('cycle', (event) => console.log(String(event.target)))
- .on('complete', function () {
- console.log('The fastest is ' + this.filter('fastest').map('name'));
- })
- .run({async: true});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js
deleted file mode 100644
index a29572d71d..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'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;
-};
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json
deleted file mode 100644
index ef645987ef..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "fast-deep-equal@^1.0.0",
- "_id": "fast-deep-equal@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
- "_location": "/request/har-validator/ajv/fast-deep-equal",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "fast-deep-equal@^1.0.0",
- "name": "fast-deep-equal",
- "escapedName": "fast-deep-equal",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/request/har-validator/ajv"
- ],
- "_resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "_shasum": "96256a3bc975595eb36d82e9929d060d893439ff",
- "_spec": "fast-deep-equal@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/har-validator/node_modules/ajv",
- "author": {
- "name": "Evgeny Poberezkin"
- },
- "bugs": {
- "url": "https://github.com/epoberezkin/fast-deep-equal/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Fast deep equal",
- "devDependencies": {
- "benchmark": "^2.1.4",
- "coveralls": "^2.13.1",
- "deep-eql": "^2.0.2",
- "deep-equal": "^1.0.1",
- "eslint": "^4.0.0",
- "lodash": "^4.17.4",
- "mocha": "^3.4.2",
- "nano-equal": "^1.0.1",
- "nyc": "^11.0.2",
- "pre-commit": "^1.2.2",
- "shallow-equal-fuzzy": "0.0.2",
- "underscore": "^1.8.3"
- },
- "homepage": "https://github.com/epoberezkin/fast-deep-equal#readme",
- "keywords": [
- "fast",
- "equal",
- "deep-equal"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "fast-deep-equal",
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/epoberezkin/fast-deep-equal.git"
- },
- "scripts": {
- "eslint": "eslint *.js benchmark spec",
- "test": "npm run eslint && npm run test-cov",
- "test-cov": "nyc npm run test-spec",
- "test-spec": "mocha spec/*.spec.js -R spec"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml
deleted file mode 100644
index 5869f6243d..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/.eslintrc.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-rules:
- no-console: 0
-globals:
- describe: false
- it: false
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js
deleted file mode 100644
index 1fab259ee2..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/index.spec.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'use strict';
-
-var equal = require('../index');
-var tests = require('./tests');
-var assert = require('assert');
-
-
-describe('equal', function() {
- tests.forEach(function (suite) {
- describe(suite.description, function() {
- suite.tests.forEach(function (test) {
- it(test.description, function() {
- assert.strictEqual(equal(test.value1, test.value2), test.equal);
- });
- });
- });
- });
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js
deleted file mode 100644
index f8d1ddf915..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/fast-deep-equal/spec/tests.js
+++ /dev/null
@@ -1,320 +0,0 @@
-'use strict';
-
-module.exports = [
- {
- description: 'scalars',
- tests: [
- {
- description: 'equal numbers',
- value1: 1,
- value2: 1,
- equal: true
- },
- {
- description: 'not equal numbers',
- value1: 1,
- value2: 2,
- equal: false
- },
- {
- description: 'number and array are not equal',
- value1: 1,
- value2: [],
- equal: false
- },
- {
- description: '0 and null are not equal',
- value1: 0,
- value2: null,
- equal: false
- },
- {
- description: 'equal strings',
- value1: 'a',
- value2: 'a',
- equal: true
- },
- {
- description: 'not equal strings',
- value1: 'a',
- value2: 'b',
- equal: false
- },
- {
- description: 'empty string and null are not equal',
- value1: '',
- value2: null,
- equal: false
- },
- {
- description: 'null is equal to null',
- value1: null,
- value2: null,
- equal: true
- },
- {
- description: 'equal booleans (true)',
- value1: true,
- value2: true,
- equal: true
- },
- {
- description: 'equal booleans (false)',
- value1: false,
- value2: false,
- equal: true
- },
- {
- description: 'not equal booleans',
- value1: true,
- value2: false,
- equal: false
- },
- {
- description: '1 and true are not equal',
- value1: 1,
- value2: true,
- equal: false
- },
- {
- description: '0 and false are not equal',
- value1: 0,
- value2: false,
- equal: false
- }
- ]
- },
-
- {
- description: 'objects',
- tests: [
- {
- description: 'empty objects are equal',
- value1: {},
- value2: {},
- equal: true
- },
- {
- description: 'equal objects (same properties "order")',
- value1: {a: 1, b: '2'},
- value2: {a: 1, b: '2'},
- equal: true
- },
- {
- description: 'equal objects (different properties "order")',
- value1: {a: 1, b: '2'},
- value2: {b: '2', a: 1},
- equal: true
- },
- {
- description: 'not equal objects (extra property)',
- value1: {a: 1, b: '2'},
- value2: {a: 1, b: '2', c: []},
- equal: false
- },
- {
- description: 'not equal objects (different properties)',
- value1: {a: 1, b: '2', c: 3},
- value2: {a: 1, b: '2', d: 3},
- equal: false
- },
- {
- description: 'not equal objects (different properties)',
- value1: {a: 1, b: '2', c: 3},
- value2: {a: 1, b: '2', d: 3},
- equal: false
- },
- {
- description: 'equal objects (same sub-properties)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { b: 'c' } ] },
- equal: true
- },
- {
- description: 'not equal objects (different sub-property value)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { b: 'd' } ] },
- equal: false
- },
- {
- description: 'not equal objects (different sub-property)',
- value1: { a: [ { b: 'c' } ] },
- value2: { a: [ { c: 'c' } ] },
- equal: false
- },
- {
- description: 'empty array and empty object are not equal',
- value1: {},
- value2: [],
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #1',
- value1: {},
- value2: {foo: undefined},
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #2',
- value1: {foo: undefined},
- value2: {},
- equal: false
- },
- {
- description: 'object with extra undefined properties are not equal #3',
- value1: {foo: undefined},
- value2: {bar: undefined},
- equal: false
- }
- ]
- },
-
- {
- description: 'arrays',
- tests: [
- {
- description: 'two empty arrays are equal',
- value1: [],
- value2: [],
- equal: true
- },
- {
- description: 'equal arrays',
- value1: [1, 2, 3],
- value2: [1, 2, 3],
- equal: true
- },
- {
- description: 'not equal arrays (different item)',
- value1: [1, 2, 3],
- value2: [1, 2, 4],
- equal: false
- },
- {
- description: 'not equal arrays (different length)',
- value1: [1, 2, 3],
- value2: [1, 2],
- equal: false
- },
- {
- description: 'equal arrays of objects',
- value1: [{a: 'a'}, {b: 'b'}],
- value2: [{a: 'a'}, {b: 'b'}],
- equal: true
- },
- {
- description: 'not equal arrays of objects',
- value1: [{a: 'a'}, {b: 'b'}],
- value2: [{a: 'a'}, {b: 'c'}],
- equal: false
- },
- {
- description: 'pseudo array and equivalent array are not equal',
- value1: {'0': 0, '1': 1, length: 2},
- value2: [0, 1],
- equal: false
- }
- ]
- },
- {
- description: 'Date objects',
- tests: [
- {
- description: 'equal date objects',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: new Date('2017-06-16T21:36:48.362Z'),
- equal: true
- },
- {
- description: 'not equal date objects',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: new Date('2017-01-01T00:00:00.000Z'),
- equal: false
- },
- {
- description: 'date and string are not equal',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: '2017-06-16T21:36:48.362Z',
- equal: false
- },
- {
- description: 'date and object are not equal',
- value1: new Date('2017-06-16T21:36:48.362Z'),
- value2: {},
- equal: false
- }
- ]
- },
- {
- description: 'RegExp objects',
- tests: [
- {
- description: 'equal RegExp objects',
- value1: /foo/,
- value2: /foo/,
- equal: true
- },
- {
- description: 'not equal RegExp objects (different pattern)',
- value1: /foo/,
- value2: /bar/,
- equal: false
- },
- {
- description: 'not equal RegExp objects (different flags)',
- value1: /foo/,
- value2: /foo/i,
- equal: false
- },
- {
- description: 'RegExp and string are not equal',
- value1: /foo/,
- value2: 'foo',
- equal: false
- },
- {
- description: 'RegExp and object are not equal',
- value1: /foo/,
- value2: {},
- equal: false
- }
- ]
- },
- {
- description: 'sample objects',
- tests: [
- {
- description: 'big object',
- value1: {
- prop1: 'value1',
- prop2: 'value2',
- prop3: 'value3',
- prop4: {
- subProp1: 'sub value1',
- subProp2: {
- subSubProp1: 'sub sub value1',
- subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
- }
- },
- prop5: 1000,
- prop6: new Date(2016, 2, 10)
- },
- value2: {
- prop5: 1000,
- prop3: 'value3',
- prop1: 'value1',
- prop2: 'value2',
- prop6: new Date('2016/03/10'),
- prop4: {
- subProp2: {
- subSubProp1: 'sub sub value1',
- subSubProp2: [1, 2, {prop2: 1, prop: 2}, 4, 5]
- },
- subProp1: 'sub value1'
- }
- },
- equal: true
- }
- ]
- }
-];
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore
deleted file mode 100644
index d093557930..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/.npmignore
+++ /dev/null
@@ -1,60 +0,0 @@
-# Logs
-logs
-*.log
-npm-debug.log*
-yarn-debug.log*
-yarn-error.log*
-
-# Runtime data
-pids
-*.pid
-*.seed
-*.pid.lock
-
-# Directory for instrumented libs generated by jscoverage/JSCover
-lib-cov
-
-# Coverage directory used by tools like istanbul
-coverage
-
-# nyc test coverage
-.nyc_output
-
-# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
-.grunt
-
-# Bower dependency directory (https://bower.io/)
-bower_components
-
-# node-waf configuration
-.lock-wscript
-
-# Compiled binary addons (http://nodejs.org/api/addons.html)
-build/Release
-
-# Dependency directories
-node_modules/
-jspm_packages/
-
-# Typescript v1 declaration files
-typings/
-
-# Optional npm cache directory
-.npm
-
-# Optional eslint cache
-.eslintcache
-
-# Optional REPL history
-.node_repl_history
-
-# Output of 'npm pack'
-*.tgz
-
-# Yarn Integrity file
-.yarn-integrity
-
-# dotenv environment variables file
-.env
-
-.DS_Store
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json
deleted file mode 100644
index 83254dfda7..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-schema-traverse/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "json-schema-traverse@^0.3.0",
- "_id": "json-schema-traverse@0.3.1",
- "_inBundle": false,
- "_integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
- "_location": "/request/har-validator/ajv/json-schema-traverse",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-schema-traverse@^0.3.0",
- "name": "json-schema-traverse",
- "escapedName": "json-schema-traverse",
- "rawSpec": "^0.3.0",
- "saveSpec": null,
- "fetchSpec": "^0.3.0"
- },
- "_requiredBy": [
- "/request/har-validator/ajv"
- ],
- "_resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "_shasum": "349a6d44c53a51de89b40805c5d5e59b417d3340",
- "_spec": "json-schema-traverse@^0.3.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/har-validator/node_modules/ajv",
- "author": {
- "name": "Evgeny Poberezkin"
- },
- "bugs": {
- "url": "https://github.com/epoberezkin/json-schema-traverse/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Traverse JSON Schema passing each schema object to callback",
- "devDependencies": {
- "coveralls": "^2.13.1",
- "eslint": "^3.19.0",
- "mocha": "^3.4.2",
- "nyc": "^11.0.2",
- "pre-commit": "^1.2.2"
- },
- "homepage": "https://github.com/epoberezkin/json-schema-traverse#readme",
- "keywords": [
- "JSON-Schema",
- "traverse",
- "iterate"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "json-schema-traverse",
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/epoberezkin/json-schema-traverse.git"
- },
- "scripts": {
- "eslint": "eslint index.js spec",
- "test": "npm run eslint && nyc npm run test-spec",
- "test-spec": "mocha spec -R spec"
- },
- "version": "0.3.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml
deleted file mode 100644
index cc4dba29d9..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE
deleted file mode 100644
index ee27ba4b44..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/LICENSE
+++ /dev/null
@@ -1,18 +0,0 @@
-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/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js
deleted file mode 100644
index 6a4131d44e..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/index.js
+++ /dev/null
@@ -1,84 +0,0 @@
-var json = typeof JSON !== 'undefined' ? JSON : require('jsonify');
-
-module.exports = function (obj, opts) {
- if (!opts) opts = {};
- if (typeof opts === 'function') opts = { cmp: opts };
- var space = opts.space || '';
- if (typeof space === 'number') space = Array(space+1).join(' ');
- var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;
- var replacer = opts.replacer || function(key, value) { return value; };
-
- 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 (parent, key, node, level) {
- var indent = space ? ('\n' + new Array(level + 1).join(space)) : '';
- var colonSeparator = space ? ': ' : ':';
-
- if (node && node.toJSON && typeof node.toJSON === 'function') {
- node = node.toJSON();
- }
-
- node = replacer.call(parent, key, node);
-
- if (node === undefined) {
- return;
- }
- if (typeof node !== 'object' || node === null) {
- return json.stringify(node);
- }
- if (isArray(node)) {
- var out = [];
- for (var i = 0; i < node.length; i++) {
- var item = stringify(node, i, node[i], level+1) || json.stringify(null);
- out.push(indent + space + item);
- }
- return '[' + out.join(',') + indent + ']';
- }
- else {
- if (seen.indexOf(node) !== -1) {
- if (cycles) return json.stringify('__cycle__');
- throw new TypeError('Converting circular structure to JSON');
- }
- else seen.push(node);
-
- var keys = objectKeys(node).sort(cmp && cmp(node));
- var out = [];
- for (var i = 0; i < keys.length; i++) {
- var key = keys[i];
- var value = stringify(node, key, node[key], level+1);
-
- if(!value) continue;
-
- var keyValue = json.stringify(key)
- + colonSeparator
- + value;
- ;
- out.push(indent + space + keyValue);
- }
- seen.splice(seen.indexOf(node), 1);
- return '{' + out.join(',') + indent + '}';
- }
- })({ '': obj }, '', obj, 0);
-};
-
-var isArray = Array.isArray || function (x) {
- return {}.toString.call(x) === '[object Array]';
-};
-
-var objectKeys = Object.keys || function (obj) {
- var has = Object.prototype.hasOwnProperty || function () { return true };
- var keys = [];
- for (var key in obj) {
- if (has.call(obj, key)) keys.push(key);
- }
- return keys;
-};
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown
deleted file mode 100644
index 71d9a93b59..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/README.markdown
+++ /dev/null
@@ -1,34 +0,0 @@
-jsonify
-=======
-
-This module provides Douglas Crockford's JSON implementation without modifying
-any globals.
-
-`stringify` and `parse` are merely exported without respect to whether or not a
-global `JSON` object exists.
-
-methods
-=======
-
-var json = require('jsonify');
-
-json.parse(source, reviver)
----------------------------
-
-Return a new javascript object from a parse of the `source` string.
-
-If a `reviver` function is specified, walk the structure passing each name/value
-pair to `reviver.call(parent, key, value)` to transform the `value` before
-parsing it.
-
-json.stringify(value, replacer, space)
---------------------------------------
-
-Return a string representation for `value`.
-
-If `replacer` is specified, walk the structure passing each name/value pair to
-`replacer.call(parent, key, value)` to transform the `value` before stringifying
-it.
-
-If `space` is a number, indent the result by that many spaces.
-If `space` is a string, use `space` as the indentation.
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js
deleted file mode 100644
index f728a1605a..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-exports.parse = require('./lib/parse');
-exports.stringify = require('./lib/stringify');
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js
deleted file mode 100644
index 2b88cfff0b..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/parse.js
+++ /dev/null
@@ -1,273 +0,0 @@
-var at, // The index of the current character
- ch, // The current character
- escapee = {
- '"': '"',
- '\\': '\\',
- '/': '/',
- b: '\b',
- f: '\f',
- n: '\n',
- r: '\r',
- t: '\t'
- },
- text,
-
- error = function (m) {
- // Call error when something is wrong.
- throw {
- name: 'SyntaxError',
- message: m,
- at: at,
- text: text
- };
- },
-
- next = function (c) {
- // If a c parameter is provided, verify that it matches the current character.
- if (c && c !== ch) {
- error("Expected '" + c + "' instead of '" + ch + "'");
- }
-
- // Get the next character. When there are no more characters,
- // return the empty string.
-
- ch = text.charAt(at);
- at += 1;
- return ch;
- },
-
- number = function () {
- // Parse a number value.
- var number,
- string = '';
-
- if (ch === '-') {
- string = '-';
- next('-');
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- if (ch === '.') {
- string += '.';
- while (next() && ch >= '0' && ch <= '9') {
- string += ch;
- }
- }
- if (ch === 'e' || ch === 'E') {
- string += ch;
- next();
- if (ch === '-' || ch === '+') {
- string += ch;
- next();
- }
- while (ch >= '0' && ch <= '9') {
- string += ch;
- next();
- }
- }
- number = +string;
- if (!isFinite(number)) {
- error("Bad number");
- } else {
- return number;
- }
- },
-
- string = function () {
- // Parse a string value.
- var hex,
- i,
- string = '',
- uffff;
-
- // When parsing for string values, we must look for " and \ characters.
- if (ch === '"') {
- while (next()) {
- if (ch === '"') {
- next();
- return string;
- } else if (ch === '\\') {
- next();
- if (ch === 'u') {
- uffff = 0;
- for (i = 0; i < 4; i += 1) {
- hex = parseInt(next(), 16);
- if (!isFinite(hex)) {
- break;
- }
- uffff = uffff * 16 + hex;
- }
- string += String.fromCharCode(uffff);
- } else if (typeof escapee[ch] === 'string') {
- string += escapee[ch];
- } else {
- break;
- }
- } else {
- string += ch;
- }
- }
- }
- error("Bad string");
- },
-
- white = function () {
-
-// Skip whitespace.
-
- while (ch && ch <= ' ') {
- next();
- }
- },
-
- word = function () {
-
-// true, false, or null.
-
- switch (ch) {
- case 't':
- next('t');
- next('r');
- next('u');
- next('e');
- return true;
- case 'f':
- next('f');
- next('a');
- next('l');
- next('s');
- next('e');
- return false;
- case 'n':
- next('n');
- next('u');
- next('l');
- next('l');
- return null;
- }
- error("Unexpected '" + ch + "'");
- },
-
- value, // Place holder for the value function.
-
- array = function () {
-
-// Parse an array value.
-
- var array = [];
-
- if (ch === '[') {
- next('[');
- white();
- if (ch === ']') {
- next(']');
- return array; // empty array
- }
- while (ch) {
- array.push(value());
- white();
- if (ch === ']') {
- next(']');
- return array;
- }
- next(',');
- white();
- }
- }
- error("Bad array");
- },
-
- object = function () {
-
-// Parse an object value.
-
- var key,
- object = {};
-
- if (ch === '{') {
- next('{');
- white();
- if (ch === '}') {
- next('}');
- return object; // empty object
- }
- while (ch) {
- key = string();
- white();
- next(':');
- if (Object.hasOwnProperty.call(object, key)) {
- error('Duplicate key "' + key + '"');
- }
- object[key] = value();
- white();
- if (ch === '}') {
- next('}');
- return object;
- }
- next(',');
- white();
- }
- }
- error("Bad object");
- };
-
-value = function () {
-
-// Parse a JSON value. It could be an object, an array, a string, a number,
-// or a word.
-
- white();
- switch (ch) {
- case '{':
- return object();
- case '[':
- return array();
- case '"':
- return string();
- case '-':
- return number();
- default:
- return ch >= '0' && ch <= '9' ? number() : word();
- }
-};
-
-// Return the json_parse function. It will have access to all of the above
-// functions and variables.
-
-module.exports = function (source, reviver) {
- var result;
-
- text = source;
- at = 0;
- ch = ' ';
- result = value();
- white();
- if (ch) {
- error("Syntax error");
- }
-
- // If there is a reviver function, we recursively walk the new structure,
- // passing each name/value pair to the reviver function for possible
- // transformation, starting with a temporary root object that holds the result
- // in an empty key. If there is not a reviver function, we simply return the
- // result.
-
- return typeof reviver === 'function' ? (function walk(holder, key) {
- var k, v, value = holder[key];
- if (value && typeof value === 'object') {
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = walk(value, k);
- if (v !== undefined) {
- value[k] = v;
- } else {
- delete value[k];
- }
- }
- }
- }
- return reviver.call(holder, key, value);
- }({'': result}, '')) : result;
-};
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js
deleted file mode 100644
index e88fb83406..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/lib/stringify.js
+++ /dev/null
@@ -1,154 +0,0 @@
-var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
- gap,
- indent,
- meta = { // table of character substitutions
- '\b': '\\b',
- '\t': '\\t',
- '\n': '\\n',
- '\f': '\\f',
- '\r': '\\r',
- '"' : '\\"',
- '\\': '\\\\'
- },
- rep;
-
-function quote(string) {
- // If the string contains no control characters, no quote characters, and no
- // backslash characters, then we can safely slap some quotes around it.
- // Otherwise we must also replace the offending characters with safe escape
- // sequences.
-
- escapable.lastIndex = 0;
- return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
- var c = meta[a];
- return typeof c === 'string' ? c :
- '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
- }) + '"' : '"' + string + '"';
-}
-
-function str(key, holder) {
- // Produce a string from holder[key].
- var i, // The loop counter.
- k, // The member key.
- v, // The member value.
- length,
- mind = gap,
- partial,
- value = holder[key];
-
- // If the value has a toJSON method, call it to obtain a replacement value.
- if (value && typeof value === 'object' &&
- typeof value.toJSON === 'function') {
- value = value.toJSON(key);
- }
-
- // If we were called with a replacer function, then call the replacer to
- // obtain a replacement value.
- if (typeof rep === 'function') {
- value = rep.call(holder, key, value);
- }
-
- // What happens next depends on the value's type.
- switch (typeof value) {
- case 'string':
- return quote(value);
-
- case 'number':
- // JSON numbers must be finite. Encode non-finite numbers as null.
- return isFinite(value) ? String(value) : 'null';
-
- case 'boolean':
- case 'null':
- // If the value is a boolean or null, convert it to a string. Note:
- // typeof null does not produce 'null'. The case is included here in
- // the remote chance that this gets fixed someday.
- return String(value);
-
- case 'object':
- if (!value) return 'null';
- gap += indent;
- partial = [];
-
- // Array.isArray
- if (Object.prototype.toString.apply(value) === '[object Array]') {
- length = value.length;
- for (i = 0; i < length; i += 1) {
- partial[i] = str(i, value) || 'null';
- }
-
- // Join all of the elements together, separated with commas, and
- // wrap them in brackets.
- v = partial.length === 0 ? '[]' : gap ?
- '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
- '[' + partial.join(',') + ']';
- gap = mind;
- return v;
- }
-
- // If the replacer is an array, use it to select the members to be
- // stringified.
- if (rep && typeof rep === 'object') {
- length = rep.length;
- for (i = 0; i < length; i += 1) {
- k = rep[i];
- if (typeof k === 'string') {
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- }
- else {
- // Otherwise, iterate through all of the keys in the object.
- for (k in value) {
- if (Object.prototype.hasOwnProperty.call(value, k)) {
- v = str(k, value);
- if (v) {
- partial.push(quote(k) + (gap ? ': ' : ':') + v);
- }
- }
- }
- }
-
- // Join all of the member texts together, separated with commas,
- // and wrap them in braces.
-
- v = partial.length === 0 ? '{}' : gap ?
- '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
- '{' + partial.join(',') + '}';
- gap = mind;
- return v;
- }
-}
-
-module.exports = function (value, replacer, space) {
- var i;
- gap = '';
- indent = '';
-
- // If the space parameter is a number, make an indent string containing that
- // many spaces.
- if (typeof space === 'number') {
- for (i = 0; i < space; i += 1) {
- indent += ' ';
- }
- }
- // If the space parameter is a string, it will be used as the indent string.
- else if (typeof space === 'string') {
- indent = space;
- }
-
- // If there is a replacer, it must be a function or an array.
- // Otherwise, throw an error.
- rep = replacer;
- if (replacer && typeof replacer !== 'function'
- && (typeof replacer !== 'object' || typeof replacer.length !== 'number')) {
- throw new Error('JSON.stringify');
- }
-
- // Make a fake root object containing our value under the key of ''.
- // Return the result of stringifying the value.
- return str('', {'': value});
-};
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json
deleted file mode 100644
index 8d84d72717..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "jsonify@~0.0.0",
- "_id": "jsonify@0.0.0",
- "_integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
- "_location": "/request/har-validator/ajv/json-stable-stringify/jsonify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "jsonify@~0.0.0",
- "name": "jsonify",
- "escapedName": "jsonify",
- "rawSpec": "~0.0.0",
- "saveSpec": null,
- "fetchSpec": "~0.0.0"
- },
- "_requiredBy": [
- "/request/har-validator/ajv/json-stable-stringify"
- ],
- "_resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
- "_shasum": "2c74b6ee41d93ca51b7b5aaee8f503631d252a73",
- "_shrinkwrap": null,
- "_spec": "jsonify@~0.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify",
- "author": {
- "name": "Douglas Crockford",
- "url": "http://crockford.com/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/jsonify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "JSON without touching any globals",
- "devDependencies": {
- "garbage": "0.0.x",
- "tap": "0.0.x"
- },
- "directories": {
- "lib": ".",
- "test": "test"
- },
- "engines": {
- "node": "*"
- },
- "homepage": "https://github.com/substack/jsonify#readme",
- "keywords": [
- "json",
- "browser"
- ],
- "license": "Public Domain",
- "main": "index.js",
- "name": "jsonify",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/substack/jsonify.git"
- },
- "scripts": {
- "test": "tap test"
- },
- "version": "0.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js
deleted file mode 100644
index d23de157e1..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/parse.js
+++ /dev/null
@@ -1,16 +0,0 @@
-var test = require('tap').test;
-var json = require('../');
-var garbage = require('garbage');
-
-test('parse', function (t) {
- for (var i = 0; i < 50; i++) {
- var s = JSON.stringify(garbage(50));
-
- t.deepEqual(
- json.parse(s),
- JSON.parse(s)
- );
- }
-
- t.end();
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js
deleted file mode 100644
index 72de91f2b6..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/node_modules/jsonify/test/stringify.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var test = require('tap').test;
-var json = require('../');
-var garbage = require('garbage');
-
-test('stringify', function (t) {
- for (var i = 0; i < 50; i++) {
- var obj = garbage(50);
- t.equal(
- json.stringify(obj),
- JSON.stringify(obj)
- );
- }
-
- t.end();
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json
deleted file mode 100644
index f7e9bc1899..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "json-stable-stringify@^1.0.1",
- "_id": "json-stable-stringify@1.0.1",
- "_integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
- "_location": "/request/har-validator/ajv/json-stable-stringify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-stable-stringify@^1.0.1",
- "name": "json-stable-stringify",
- "escapedName": "json-stable-stringify",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/request/har-validator/ajv"
- ],
- "_resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
- "_shasum": "9a759d39c5f2ff503fd5300646ed445f88c4f9af",
- "_shrinkwrap": null,
- "_spec": "json-stable-stringify@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/har-validator/node_modules/ajv",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/json-stable-stringify/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "jsonify": "~0.0.0"
- },
- "deprecated": false,
- "description": "deterministic JSON.stringify() with custom sorting to get deterministic hashes from stringified results",
- "devDependencies": {
- "tape": "~1.0.4"
- },
- "homepage": "https://github.com/substack/json-stable-stringify",
- "keywords": [
- "json",
- "stringify",
- "deterministic",
- "hash",
- "sort",
- "stable"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "json-stable-stringify",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/json-stable-stringify.git"
- },
- "scripts": {
- "test": "tape test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/8..latest",
- "ff/5",
- "ff/latest",
- "chrome/15",
- "chrome/latest",
- "safari/latest",
- "opera/latest"
- ]
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown
deleted file mode 100644
index 406c3c7261..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/readme.markdown
+++ /dev/null
@@ -1,130 +0,0 @@
-# json-stable-stringify
-
-deterministic version of `JSON.stringify()` so you can get a consistent hash
-from stringified results
-
-You can also pass in a custom comparison function.
-
-[![browser support](https://ci.testling.com/substack/json-stable-stringify.png)](https://ci.testling.com/substack/json-stable-stringify)
-
-[![build status](https://secure.travis-ci.org/substack/json-stable-stringify.png)](http://travis-ci.org/substack/json-stable-stringify)
-
-# example
-
-``` js
-var stringify = require('json-stable-stringify');
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-console.log(stringify(obj));
-```
-
-output:
-
-```
-{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}
-```
-
-# methods
-
-``` js
-var stringify = require('json-stable-stringify')
-```
-
-## var str = stringify(obj, opts)
-
-Return a deterministic stringified string `str` from the object `obj`.
-
-## options
-
-### cmp
-
-If `opts` is given, you can supply an `opts.cmp` to have a custom comparison
-function for object keys. Your function `opts.cmp` is called with these
-parameters:
-
-``` js
-opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue })
-```
-
-For example, to sort on the object key names in reverse order you could write:
-
-``` js
-var stringify = require('json-stable-stringify');
-
-var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
-var s = stringify(obj, function (a, b) {
- return a.key < b.key ? 1 : -1;
-});
-console.log(s);
-```
-
-which results in the output string:
-
-```
-{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}
-```
-
-Or if you wanted to sort on the object values in reverse order, you could write:
-
-```
-var stringify = require('json-stable-stringify');
-
-var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
-var s = stringify(obj, function (a, b) {
- return a.value < b.value ? 1 : -1;
-});
-console.log(s);
-```
-
-which outputs:
-
-```
-{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10}
-```
-
-### space
-
-If you specify `opts.space`, it will indent the output for pretty-printing.
-Valid values are strings (e.g. `{space: \t}`) or a number of spaces
-(`{space: 3}`).
-
-For example:
-
-```js
-var obj = { b: 1, a: { foo: 'bar', and: [1, 2, 3] } };
-var s = stringify(obj, { space: ' ' });
-console.log(s);
-```
-
-which outputs:
-
-```
-{
- "a": {
- "and": [
- 1,
- 2,
- 3
- ],
- "foo": "bar"
- },
- "b": 1
-}
-```
-
-### replacer
-
-The replacer parameter is a function `opts.replacer(key, value)` that behaves
-the same as the replacer
-[from the core JSON object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_native_JSON#The_replacer_parameter).
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install json-stable-stringify
-```
-
-# license
-
-MIT
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js
deleted file mode 100644
index e7f5a0e65b..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/nested.js
+++ /dev/null
@@ -1,35 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('nested', function (t) {
- t.plan(1);
- var obj = { c: 8, b: [{z:6,y:5,x:4},7], a: 3 };
- t.equal(stringify(obj), '{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}');
-});
-
-test('cyclic (default)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- try {
- stringify(one);
- } catch (ex) {
- t.equal(ex.toString(), 'TypeError: Converting circular structure to JSON');
- }
-});
-
-test('cyclic (specifically allowed)', function (t) {
- t.plan(1);
- var one = { a: 1 };
- var two = { a: 2, one: one };
- one.two = two;
- t.equal(stringify(one, {cycles:true}), '{"a":1,"two":{"a":2,"one":"__cycle__"}}');
-});
-
-test('repeated non-cyclic value', function(t) {
- t.plan(1);
- var one = { x: 1 };
- var two = { a: one, b: one };
- t.equal(stringify(two), '{"a":{"x":1},"b":{"x":1}}');
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js
deleted file mode 100644
index 98802a72d6..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/replacer.js
+++ /dev/null
@@ -1,74 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('replace root', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) { return 'one'; };
-
- t.equal(stringify(obj, { replacer: replacer }), '"one"');
-});
-
-test('replace numbers', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(value === 1) return 'one';
- if(value === 2) return 'two';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":false}');
-});
-
-test('replace with object', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(key === 'b') return { d: 1 };
- if(value === 1) return 'one';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":{"d":"one"},"c":false}');
-});
-
-test('replace with undefined', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(value === false) return;
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":2}');
-});
-
-test('replace with array', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: false };
- var replacer = function(key, value) {
- if(key === 'b') return ['one', 'two'];
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":1,"b":["one","two"],"c":false}');
-});
-
-test('replace array item', function (t) {
- t.plan(1);
-
- var obj = { a: 1, b: 2, c: [1,2] };
- var replacer = function(key, value) {
- if(value === 1) return 'one';
- if(value === 2) return 'two';
- return value;
- };
-
- t.equal(stringify(obj, { replacer: replacer }), '{"a":"one","b":"two","c":["one","two"]}');
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js
deleted file mode 100644
index 2621122ae3..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/space.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('space parameter', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: ' '}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (with tabs)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: '\t'}), ''
- + '{\n'
- + '\t"one": 1,\n'
- + '\t"two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (with a number)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2 };
- t.equal(stringify(obj, {space: 3}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": 2\n'
- + '}'
- );
-});
-
-test('space parameter (nested objects)', function (t) {
- t.plan(1);
- var obj = { one: 1, two: { b: 4, a: [2,3] } };
- t.equal(stringify(obj, {space: ' '}), ''
- + '{\n'
- + ' "one": 1,\n'
- + ' "two": {\n'
- + ' "a": [\n'
- + ' 2,\n'
- + ' 3\n'
- + ' ],\n'
- + ' "b": 4\n'
- + ' }\n'
- + '}'
- );
-});
-
-test('space parameter (same as native)', function (t) {
- t.plan(1);
- // for this test, properties need to be in alphabetical order
- var obj = { one: 1, two: { a: [2,3], b: 4 } };
- t.equal(stringify(obj, {space: ' '}), JSON.stringify(obj, null, ' '));
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js
deleted file mode 100644
index 67426b99e3..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/str.js
+++ /dev/null
@@ -1,32 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('simple object', function (t) {
- t.plan(1);
- var obj = { c: 6, b: [4,5], a: 3, z: null };
- t.equal(stringify(obj), '{"a":3,"b":[4,5],"c":6,"z":null}');
-});
-
-test('object with undefined', function (t) {
- t.plan(1);
- var obj = { a: 3, z: undefined };
- t.equal(stringify(obj), '{"a":3}');
-});
-
-test('array with undefined', function (t) {
- t.plan(1);
- var obj = [4, undefined, 6];
- t.equal(stringify(obj), '[4,null,6]');
-});
-
-test('object with empty string', function (t) {
- t.plan(1);
- var obj = { a: 3, z: '' };
- t.equal(stringify(obj), '{"a":3,"z":""}');
-});
-
-test('array with empty string', function (t) {
- t.plan(1);
- var obj = [4, '', 6];
- t.equal(stringify(obj), '[4,"",6]');
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js
deleted file mode 100644
index ef9a980929..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/node_modules/json-stable-stringify/test/to-json.js
+++ /dev/null
@@ -1,20 +0,0 @@
-var test = require('tape');
-var stringify = require('../');
-
-test('toJSON function', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return { one: 1 }; } };
- t.equal(stringify(obj), '{"one":1}' );
-});
-
-test('toJSON returns string', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return 'one'; } };
- t.equal(stringify(obj), '"one"');
-});
-
-test('toJSON returns array', function (t) {
- t.plan(1);
- var obj = { one: 1, two: 2, toJSON: function() { return ['one']; } };
- t.equal(stringify(obj), '["one"]');
-});
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json
deleted file mode 100644
index 06387375bb..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/ajv/package.json
+++ /dev/null
@@ -1,130 +0,0 @@
-{
- "_from": "ajv@^5.1.0",
- "_id": "ajv@5.2.3",
- "_inBundle": false,
- "_integrity": "sha1-wG9Zh3jETGsWGrr+NGa4GtGBTtI=",
- "_location": "/request/har-validator/ajv",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ajv@^5.1.0",
- "name": "ajv",
- "escapedName": "ajv",
- "rawSpec": "^5.1.0",
- "saveSpec": null,
- "fetchSpec": "^5.1.0"
- },
- "_requiredBy": [
- "/request/har-validator"
- ],
- "_resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.3.tgz",
- "_shasum": "c06f598778c44c6b161abafe3466b81ad1814ed2",
- "_spec": "ajv@^5.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/har-validator",
- "author": {
- "name": "Evgeny Poberezkin"
- },
- "bugs": {
- "url": "https://github.com/epoberezkin/ajv/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
- "json-schema-traverse": "^0.3.0",
- "json-stable-stringify": "^1.0.1"
- },
- "deprecated": false,
- "description": "Another JSON Schema Validator",
- "devDependencies": {
- "ajv-async": "^0.1.0",
- "bluebird": "^3.1.5",
- "brfs": "^1.4.3",
- "browserify": "^14.1.0",
- "chai": "^4.0.1",
- "coveralls": "^2.11.4",
- "del-cli": "^1.1.0",
- "dot": "^1.0.3",
- "eslint": "^4.1.0",
- "gh-pages-generator": "^0.2.0",
- "glob": "^7.0.0",
- "if-node-version": "^1.0.0",
- "js-beautify": "1.7.3",
- "jshint": "^2.9.4",
- "json-schema-test": "^1.3.0",
- "karma": "^1.0.0",
- "karma-chrome-launcher": "^2.0.0",
- "karma-mocha": "^1.1.1",
- "karma-phantomjs-launcher": "^1.0.0",
- "karma-sauce-launcher": "^1.1.0",
- "mocha": "^3.0.0",
- "nodent": "^3.0.17",
- "nyc": "^11.0.2",
- "phantomjs-prebuilt": "^2.1.4",
- "pre-commit": "^1.1.1",
- "regenerator": "0.9.7",
- "require-globify": "^1.3.0",
- "typescript": "^2.0.3",
- "uglify-js": "^3.0.8",
- "watch": "^1.0.0"
- },
- "files": [
- "lib/",
- "dist/",
- "scripts/",
- "LICENSE",
- ".tonic_example.js"
- ],
- "homepage": "https://github.com/epoberezkin/ajv",
- "keywords": [
- "JSON",
- "schema",
- "validator",
- "validation",
- "jsonschema",
- "json-schema",
- "json-schema-validator",
- "json-schema-validation"
- ],
- "license": "MIT",
- "main": "lib/ajv.js",
- "name": "ajv",
- "nyc": {
- "exclude": [
- "**/spec/**",
- "node_modules"
- ],
- "reporter": [
- "lcov",
- "text-summary"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/epoberezkin/ajv.git"
- },
- "scripts": {
- "build": "del-cli lib/dotjs/*.js && node scripts/compile-dots.js",
- "bundle": "node ./scripts/bundle.js . Ajv pure_getters",
- "bundle-all": "del-cli dist && npm run bundle && npm run bundle-regenerator && npm run bundle-nodent",
- "bundle-beautify": "node ./scripts/bundle.js js-beautify",
- "bundle-nodent": "node ./scripts/bundle.js nodent",
- "bundle-regenerator": "node ./scripts/bundle.js regenerator",
- "eslint": "if-node-version \">=4\" eslint lib/*.js lib/compile/*.js spec scripts",
- "jshint": "jshint lib/*.js lib/**/*.js --exclude lib/dotjs/**/*",
- "prepublish": "npm run build && npm run bundle-all",
- "test": "npm run jshint && npm run eslint && npm run test-ts && npm run build && npm run test-cov && if-node-version 4 npm run test-browser",
- "test-browser": "del-cli .browser && npm run bundle-all && scripts/prepare-tests && npm run test-karma",
- "test-cov": "nyc npm run test-spec",
- "test-debug": "mocha spec/*.spec.js --debug-brk -R spec",
- "test-fast": "AJV_FAST_TEST=true npm run test-spec",
- "test-karma": "karma start --single-run --browsers PhantomJS",
- "test-spec": "mocha spec/*.spec.js -R spec $(if-node-version 7 echo --harmony-async-await)",
- "test-ts": "tsc --target ES5 --noImplicitAny lib/ajv.d.ts",
- "watch": "watch 'npm run build' ./lib/dot"
- },
- "tonicExampleFilename": ".tonic_example.js",
- "typings": "lib/ajv.d.ts",
- "version": "5.2.3"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json b/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json
deleted file mode 100644
index cec48668e4..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/node_modules/har-schema/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "_from": "har-schema@^2.0.0",
- "_id": "har-schema@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "_location": "/request/har-validator/har-schema",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "har-schema@^2.0.0",
- "name": "har-schema",
- "escapedName": "har-schema",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/request/har-validator"
- ],
- "_resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "_shasum": "a94c2224ebcac04782a0d9035521f24735b7ec92",
- "_spec": "har-schema@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/har-validator",
- "author": {
- "name": "Ahmad Nassri",
- "email": "ahmad@ahmadnassri.com",
- "url": "https://www.ahmadnassri.com/"
- },
- "bugs": {
- "url": "https://github.com/ahmadnassri/har-schema/issues"
- },
- "bundleDependencies": false,
- "config": {
- "commitizen": {
- "path": "./node_modules/cz-conventional-changelog"
- }
- },
- "contributors": [
- {
- "name": "Evgeny Poberezkin",
- "email": "e.poberezkin@me.com"
- }
- ],
- "deprecated": false,
- "description": "JSON Schema for HTTP Archive (HAR)",
- "devDependencies": {
- "ajv": "^5.0.0",
- "codeclimate-test-reporter": "^0.4.0",
- "cz-conventional-changelog": "^1.2.0",
- "echint": "^2.1.0",
- "semantic-release": "^6.3.2",
- "snazzy": "^5.0.0",
- "tap": "^8.0.1"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "lib"
- ],
- "homepage": "https://github.com/ahmadnassri/har-schema",
- "keywords": [
- "har",
- "http",
- "archive",
- "JSON",
- "schema",
- "JSON-schema"
- ],
- "license": "ISC",
- "main": "lib/index.js",
- "name": "har-schema",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ahmadnassri/har-schema.git"
- },
- "scripts": {
- "codeclimate": "tap --coverage-report=text-lcov | codeclimate-test-reporter",
- "coverage": "tap test --reporter silent --coverage",
- "pretest": "snazzy && echint",
- "semantic-release": "semantic-release pre && npm publish && semantic-release post",
- "test": "tap test --reporter spec"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/har-validator/package.json b/deps/npm/node_modules/request/node_modules/har-validator/package.json
deleted file mode 100644
index 9e7eb07a97..0000000000
--- a/deps/npm/node_modules/request/node_modules/har-validator/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "har-validator@~5.0.3",
- "_id": "har-validator@5.0.3",
- "_inBundle": false,
- "_integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
- "_location": "/request/har-validator",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "har-validator@~5.0.3",
- "name": "har-validator",
- "escapedName": "har-validator",
- "rawSpec": "~5.0.3",
- "saveSpec": null,
- "fetchSpec": "~5.0.3"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
- "_shasum": "ba402c266194f15956ef15e0fcf242993f6a7dfd",
- "_spec": "har-validator@~5.0.3",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Ahmad Nassri",
- "email": "ahmad@ahmadnassri.com",
- "url": "https://www.ahmadnassri.com/"
- },
- "bugs": {
- "url": "https://github.com/ahmadnassri/har-validator/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ajv": "^5.1.0",
- "har-schema": "^2.0.0"
- },
- "deprecated": false,
- "description": "Extremely fast HTTP Archive (HAR) validator using JSON Schema",
- "devDependencies": {
- "echint": "^4.0.1",
- "standard": "^10.0.2",
- "tap": "^10.3.2"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "lib"
- ],
- "homepage": "https://github.com/ahmadnassri/har-validator",
- "keywords": [
- "har",
- "cli",
- "ajv",
- "http",
- "archive",
- "validate",
- "validator"
- ],
- "license": "ISC",
- "main": "lib/promise.js",
- "name": "har-validator",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ahmadnassri/har-validator.git"
- },
- "scripts": {
- "coverage": "tap test --reporter silent --coverage",
- "lint": "standard && echint",
- "pretest": "npm run lint",
- "test": "tap test"
- },
- "version": "5.0.3"
-}
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json b/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json
deleted file mode 100644
index ee965f9ec4..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/boom/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "boom@4.x.x",
- "_id": "boom@4.3.1",
- "_inBundle": false,
- "_integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=",
- "_location": "/request/hawk/boom",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "boom@4.x.x",
- "name": "boom",
- "escapedName": "boom",
- "rawSpec": "4.x.x",
- "saveSpec": null,
- "fetchSpec": "4.x.x"
- },
- "_requiredBy": [
- "/request/hawk"
- ],
- "_resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz",
- "_shasum": "4f8a3005cb4a7e3889f749030fd25b96e01d2e31",
- "_spec": "boom@4.x.x",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/hawk",
- "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": "13.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": "4.3.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json b/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json
deleted file mode 100644
index 4964da7824..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/node_modules/boom/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "boom@5.x.x",
- "_id": "boom@5.2.0",
- "_inBundle": false,
- "_integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==",
- "_location": "/request/hawk/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": [
- "/request/hawk/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/request/node_modules/hawk/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/request/node_modules/hawk/node_modules/cryptiles/package.json b/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json
deleted file mode 100755
index a78856528f..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/cryptiles/package.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "_from": "cryptiles@3.x.x",
- "_id": "cryptiles@3.1.2",
- "_inBundle": false,
- "_integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=",
- "_location": "/request/hawk/cryptiles",
- "_phantomChildren": {
- "hoek": "4.2.0"
- },
- "_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": [
- "/request/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/request/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/request/node_modules/hawk/node_modules/hoek/lib/index.js b/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js
deleted file mode 100755
index 8c3273eb01..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/lib/index.js
+++ /dev/null
@@ -1,974 +0,0 @@
-'use strict';
-
-// Load modules
-
-const Crypto = require('crypto');
-const Path = require('path');
-const Util = require('util');
-const Escape = require('./escape');
-
-
-// Declare internals
-
-const internals = {};
-
-
-// Clone object or array
-
-exports.clone = function (obj, seen) {
-
- if (typeof obj !== 'object' ||
- obj === null) {
-
- return obj;
- }
-
- seen = seen || new Map();
-
- const lookup = seen.get(obj);
- if (lookup) {
- return lookup;
- }
-
- let newObj;
- let cloneDeep = false;
-
- if (!Array.isArray(obj)) {
- if (Buffer.isBuffer(obj)) {
- newObj = new Buffer(obj);
- }
- else if (obj instanceof Date) {
- newObj = new Date(obj.getTime());
- }
- else if (obj instanceof RegExp) {
- newObj = new RegExp(obj);
- }
- else {
- const proto = Object.getPrototypeOf(obj);
- if (proto &&
- proto.isImmutable) {
-
- newObj = obj;
- }
- else {
- newObj = Object.create(proto);
- cloneDeep = true;
- }
- }
- }
- else {
- newObj = [];
- cloneDeep = true;
- }
-
- seen.set(obj, newObj);
-
- if (cloneDeep) {
- const keys = Object.getOwnPropertyNames(obj);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const descriptor = Object.getOwnPropertyDescriptor(obj, key);
- if (descriptor &&
- (descriptor.get ||
- descriptor.set)) {
-
- Object.defineProperty(newObj, key, descriptor);
- }
- else {
- newObj[key] = exports.clone(obj[key], seen);
- }
- }
- }
-
- return newObj;
-};
-
-
-// Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied
-
-/*eslint-disable */
-exports.merge = function (target, source, isNullOverride /* = true */, isMergeArrays /* = true */) {
-/*eslint-enable */
-
- exports.assert(target && typeof target === 'object', 'Invalid target value: must be an object');
- exports.assert(source === null || source === undefined || typeof source === 'object', 'Invalid source value: must be null, undefined, or an object');
-
- if (!source) {
- return target;
- }
-
- if (Array.isArray(source)) {
- exports.assert(Array.isArray(target), 'Cannot merge array onto an object');
- if (isMergeArrays === false) { // isMergeArrays defaults to true
- target.length = 0; // Must not change target assignment
- }
-
- for (let i = 0; i < source.length; ++i) {
- target.push(exports.clone(source[i]));
- }
-
- return target;
- }
-
- const keys = Object.keys(source);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const value = source[key];
- if (value &&
- typeof value === 'object') {
-
- if (!target[key] ||
- typeof target[key] !== 'object' ||
- (Array.isArray(target[key]) !== Array.isArray(value)) ||
- value instanceof Date ||
- Buffer.isBuffer(value) ||
- value instanceof RegExp) {
-
- target[key] = exports.clone(value);
- }
- else {
- exports.merge(target[key], value, isNullOverride, isMergeArrays);
- }
- }
- else {
- if (value !== null &&
- value !== undefined) { // Explicit to preserve empty strings
-
- target[key] = value;
- }
- else if (isNullOverride !== false) { // Defaults to true
- target[key] = value;
- }
- }
- }
-
- return target;
-};
-
-
-// Apply options to a copy of the defaults
-
-exports.applyToDefaults = function (defaults, options, isNullOverride) {
-
- exports.assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object');
- exports.assert(!options || options === true || typeof options === 'object', 'Invalid options value: must be true, falsy or an object');
-
- if (!options) { // If no options, return null
- return null;
- }
-
- const copy = exports.clone(defaults);
-
- if (options === true) { // If options is set to true, use defaults
- return copy;
- }
-
- return exports.merge(copy, options, isNullOverride === true, false);
-};
-
-
-// Clone an object except for the listed keys which are shallow copied
-
-exports.cloneWithShallow = function (source, keys) {
-
- if (!source ||
- typeof source !== 'object') {
-
- return source;
- }
-
- const storage = internals.store(source, keys); // Move shallow copy items to storage
- const copy = exports.clone(source); // Deep copy the rest
- internals.restore(copy, source, storage); // Shallow copy the stored items and restore
- return copy;
-};
-
-
-internals.store = function (source, keys) {
-
- const storage = {};
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const value = exports.reach(source, key);
- if (value !== undefined) {
- storage[key] = value;
- internals.reachSet(source, key, undefined);
- }
- }
-
- return storage;
-};
-
-
-internals.restore = function (copy, source, storage) {
-
- const keys = Object.keys(storage);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- internals.reachSet(copy, key, storage[key]);
- internals.reachSet(source, key, storage[key]);
- }
-};
-
-
-internals.reachSet = function (obj, key, value) {
-
- const path = key.split('.');
- let ref = obj;
- for (let i = 0; i < path.length; ++i) {
- const segment = path[i];
- if (i + 1 === path.length) {
- ref[segment] = value;
- }
-
- ref = ref[segment];
- }
-};
-
-
-// Apply options to defaults except for the listed keys which are shallow copied from option without merging
-
-exports.applyToDefaultsWithShallow = function (defaults, options, keys) {
-
- exports.assert(defaults && typeof defaults === 'object', 'Invalid defaults value: must be an object');
- exports.assert(!options || options === true || typeof options === 'object', 'Invalid options value: must be true, falsy or an object');
- exports.assert(keys && Array.isArray(keys), 'Invalid keys');
-
- if (!options) { // If no options, return null
- return null;
- }
-
- const copy = exports.cloneWithShallow(defaults, keys);
-
- if (options === true) { // If options is set to true, use defaults
- return copy;
- }
-
- const storage = internals.store(options, keys); // Move shallow copy items to storage
- exports.merge(copy, options, false, false); // Deep copy the rest
- internals.restore(copy, options, storage); // Shallow copy the stored items and restore
- return copy;
-};
-
-
-// Deep object or array comparison
-
-exports.deepEqual = function (obj, ref, options, seen) {
-
- options = options || { prototype: true };
-
- const type = typeof obj;
-
- if (type !== typeof ref) {
- return false;
- }
-
- if (type !== 'object' ||
- obj === null ||
- ref === null) {
-
- if (obj === ref) { // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql
- return obj !== 0 || 1 / obj === 1 / ref; // -0 / +0
- }
-
- return obj !== obj && ref !== ref; // NaN
- }
-
- seen = seen || [];
- if (seen.indexOf(obj) !== -1) {
- return true; // If previous comparison failed, it would have stopped execution
- }
-
- seen.push(obj);
-
- if (Array.isArray(obj)) {
- if (!Array.isArray(ref)) {
- return false;
- }
-
- if (!options.part && obj.length !== ref.length) {
- return false;
- }
-
- for (let i = 0; i < obj.length; ++i) {
- if (options.part) {
- let found = false;
- for (let j = 0; j < ref.length; ++j) {
- if (exports.deepEqual(obj[i], ref[j], options)) {
- found = true;
- break;
- }
- }
-
- return found;
- }
-
- if (!exports.deepEqual(obj[i], ref[i], options)) {
- return false;
- }
- }
-
- return true;
- }
-
- if (Buffer.isBuffer(obj)) {
- if (!Buffer.isBuffer(ref)) {
- return false;
- }
-
- if (obj.length !== ref.length) {
- return false;
- }
-
- for (let i = 0; i < obj.length; ++i) {
- if (obj[i] !== ref[i]) {
- return false;
- }
- }
-
- return true;
- }
-
- if (obj instanceof Date) {
- return (ref instanceof Date && obj.getTime() === ref.getTime());
- }
-
- if (obj instanceof RegExp) {
- return (ref instanceof RegExp && obj.toString() === ref.toString());
- }
-
- if (options.prototype) {
- if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {
- return false;
- }
- }
-
- const keys = Object.getOwnPropertyNames(obj);
-
- if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {
- return false;
- }
-
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const descriptor = Object.getOwnPropertyDescriptor(obj, key);
- if (descriptor.get) {
- if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {
- return false;
- }
- }
- else if (!exports.deepEqual(obj[key], ref[key], options, seen)) {
- return false;
- }
- }
-
- return true;
-};
-
-
-// Remove duplicate items from array
-
-exports.unique = (array, key) => {
-
- let result;
- if (key) {
- result = [];
- const index = new Set();
- array.forEach((item) => {
-
- const identifier = item[key];
- if (!index.has(identifier)) {
- index.add(identifier);
- result.push(item);
- }
- });
- }
- else {
- result = Array.from(new Set(array));
- }
-
- return result;
-};
-
-
-// Convert array into object
-
-exports.mapToObject = function (array, key) {
-
- if (!array) {
- return null;
- }
-
- const obj = {};
- for (let i = 0; i < array.length; ++i) {
- if (key) {
- if (array[i][key]) {
- obj[array[i][key]] = true;
- }
- }
- else {
- obj[array[i]] = true;
- }
- }
-
- return obj;
-};
-
-
-// Find the common unique items in two arrays
-
-exports.intersect = function (array1, array2, justFirst) {
-
- if (!array1 || !array2) {
- return [];
- }
-
- const common = [];
- const hash = (Array.isArray(array1) ? exports.mapToObject(array1) : array1);
- const found = {};
- for (let i = 0; i < array2.length; ++i) {
- if (hash[array2[i]] && !found[array2[i]]) {
- if (justFirst) {
- return array2[i];
- }
-
- common.push(array2[i]);
- found[array2[i]] = true;
- }
- }
-
- return (justFirst ? null : common);
-};
-
-
-// Test if the reference contains the values
-
-exports.contain = function (ref, values, options) {
-
- /*
- string -> string(s)
- array -> item(s)
- object -> key(s)
- object -> object (key:value)
- */
-
- let valuePairs = null;
- if (typeof ref === 'object' &&
- typeof values === 'object' &&
- !Array.isArray(ref) &&
- !Array.isArray(values)) {
-
- valuePairs = values;
- values = Object.keys(values);
- }
- else {
- values = [].concat(values);
- }
-
- options = options || {}; // deep, once, only, part
-
- exports.assert(arguments.length >= 2, 'Insufficient arguments');
- exports.assert(typeof ref === 'string' || typeof ref === 'object', 'Reference must be string or an object');
- exports.assert(values.length, 'Values array cannot be empty');
-
- let compare;
- let compareFlags;
- if (options.deep) {
- compare = exports.deepEqual;
-
- const hasOnly = options.hasOwnProperty('only');
- const hasPart = options.hasOwnProperty('part');
-
- compareFlags = {
- prototype: hasOnly ? options.only : hasPart ? !options.part : false,
- part: hasOnly ? !options.only : hasPart ? options.part : true
- };
- }
- else {
- compare = (a, b) => a === b;
- }
-
- let misses = false;
- const matches = new Array(values.length);
- for (let i = 0; i < matches.length; ++i) {
- matches[i] = 0;
- }
-
- if (typeof ref === 'string') {
- let pattern = '(';
- for (let i = 0; i < values.length; ++i) {
- const value = values[i];
- exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');
- pattern += (i ? '|' : '') + exports.escapeRegex(value);
- }
-
- const regex = new RegExp(pattern + ')', 'g');
- const leftovers = ref.replace(regex, ($0, $1) => {
-
- const index = values.indexOf($1);
- ++matches[index];
- return ''; // Remove from string
- });
-
- misses = !!leftovers;
- }
- else if (Array.isArray(ref)) {
- for (let i = 0; i < ref.length; ++i) {
- let matched = false;
- for (let j = 0; j < values.length && matched === false; ++j) {
- matched = compare(values[j], ref[i], compareFlags) && j;
- }
-
- if (matched !== false) {
- ++matches[matched];
- }
- else {
- misses = true;
- }
- }
- }
- else {
- const keys = Object.getOwnPropertyNames(ref);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const pos = values.indexOf(key);
- if (pos !== -1) {
- if (valuePairs &&
- !compare(valuePairs[key], ref[key], compareFlags)) {
-
- return false;
- }
-
- ++matches[pos];
- }
- else {
- misses = true;
- }
- }
- }
-
- let result = false;
- for (let i = 0; i < matches.length; ++i) {
- result = result || !!matches[i];
- if ((options.once && matches[i] > 1) ||
- (!options.part && !matches[i])) {
-
- return false;
- }
- }
-
- if (options.only &&
- misses) {
-
- return false;
- }
-
- return result;
-};
-
-
-// Flatten array
-
-exports.flatten = function (array, target) {
-
- const result = target || [];
-
- for (let i = 0; i < array.length; ++i) {
- if (Array.isArray(array[i])) {
- exports.flatten(array[i], result);
- }
- else {
- result.push(array[i]);
- }
- }
-
- return result;
-};
-
-
-// Convert an object key chain string ('a.b.c') to reference (object[a][b][c])
-
-exports.reach = function (obj, chain, options) {
-
- if (chain === false ||
- chain === null ||
- typeof chain === 'undefined') {
-
- return obj;
- }
-
- options = options || {};
- if (typeof options === 'string') {
- options = { separator: options };
- }
-
- const path = chain.split(options.separator || '.');
- let ref = obj;
- for (let i = 0; i < path.length; ++i) {
- let key = path[i];
- if (key[0] === '-' && Array.isArray(ref)) {
- key = key.slice(1, key.length);
- key = ref.length - key;
- }
-
- if (!ref ||
- !((typeof ref === 'object' || typeof ref === 'function') && key in ref) ||
- (typeof ref !== 'object' && options.functions === false)) { // Only object and function can have properties
-
- exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);
- exports.assert(typeof ref === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);
- ref = options.default;
- break;
- }
-
- ref = ref[key];
- }
-
- return ref;
-};
-
-
-exports.reachTemplate = function (obj, template, options) {
-
- return template.replace(/{([^}]+)}/g, ($0, chain) => {
-
- const value = exports.reach(obj, chain, options);
- return (value === undefined || value === null ? '' : value);
- });
-};
-
-
-exports.formatStack = function (stack) {
-
- const trace = [];
- for (let i = 0; i < stack.length; ++i) {
- const item = stack[i];
- trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);
- }
-
- return trace;
-};
-
-
-exports.formatTrace = function (trace) {
-
- const display = [];
-
- for (let i = 0; i < trace.length; ++i) {
- const row = trace[i];
- display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');
- }
-
- return display;
-};
-
-
-exports.callStack = function (slice) {
-
- // http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi
-
- const v8 = Error.prepareStackTrace;
- Error.prepareStackTrace = function (_, stack) {
-
- return stack;
- };
-
- const capture = {};
- Error.captureStackTrace(capture, this); // arguments.callee is not supported in strict mode so we use this and slice the trace of this off the result
- const stack = capture.stack;
-
- Error.prepareStackTrace = v8;
-
- const trace = exports.formatStack(stack);
-
- return trace.slice(1 + slice);
-};
-
-
-exports.displayStack = function (slice) {
-
- const trace = exports.callStack(slice === undefined ? 1 : slice + 1);
-
- return exports.formatTrace(trace);
-};
-
-
-exports.abortThrow = false;
-
-
-exports.abort = function (message, hideStack) {
-
- if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) {
- throw new Error(message || 'Unknown error');
- }
-
- let stack = '';
- if (!hideStack) {
- stack = exports.displayStack(1).join('\n\t');
- }
- console.log('ABORT: ' + message + '\n\t' + stack);
- process.exit(1);
-};
-
-
-exports.assert = function (condition /*, msg1, msg2, msg3 */) {
-
- if (condition) {
- return;
- }
-
- if (arguments.length === 2 && arguments[1] instanceof Error) {
- throw arguments[1];
- }
-
- let msgs = [];
- for (let i = 1; i < arguments.length; ++i) {
- if (arguments[i] !== '') {
- msgs.push(arguments[i]); // Avoids Array.slice arguments leak, allowing for V8 optimizations
- }
- }
-
- msgs = msgs.map((msg) => {
-
- return typeof msg === 'string' ? msg : msg instanceof Error ? msg.message : exports.stringify(msg);
- });
-
- throw new Error(msgs.join(' ') || 'Unknown error');
-};
-
-
-exports.Timer = function () {
-
- this.ts = 0;
- this.reset();
-};
-
-
-exports.Timer.prototype.reset = function () {
-
- this.ts = Date.now();
-};
-
-
-exports.Timer.prototype.elapsed = function () {
-
- return Date.now() - this.ts;
-};
-
-
-exports.Bench = function () {
-
- this.ts = 0;
- this.reset();
-};
-
-
-exports.Bench.prototype.reset = function () {
-
- this.ts = exports.Bench.now();
-};
-
-
-exports.Bench.prototype.elapsed = function () {
-
- return exports.Bench.now() - this.ts;
-};
-
-
-exports.Bench.now = function () {
-
- const ts = process.hrtime();
- return (ts[0] * 1e3) + (ts[1] / 1e6);
-};
-
-
-// Escape string for Regex construction
-
-exports.escapeRegex = function (string) {
-
- // Escape ^$.*+-?=!:|\/()[]{},
- return string.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g, '\\$&');
-};
-
-
-// Base64url (RFC 4648) encode
-
-exports.base64urlEncode = function (value, encoding) {
-
- exports.assert(typeof value === 'string' || Buffer.isBuffer(value), 'value must be string or buffer');
- const buf = (Buffer.isBuffer(value) ? value : new Buffer(value, encoding || 'binary'));
- return buf.toString('base64').replace(/\+/g, '-').replace(/\//g, '_').replace(/\=/g, '');
-};
-
-
-// Base64url (RFC 4648) decode
-
-exports.base64urlDecode = function (value, encoding) {
-
- if (typeof value !== 'string') {
-
- return new Error('Value not a string');
- }
-
- if (!/^[\w\-]*$/.test(value)) {
-
- return new Error('Invalid character');
- }
-
- const buf = new Buffer(value, 'base64');
- return (encoding === 'buffer' ? buf : buf.toString(encoding || 'binary'));
-};
-
-
-// Escape attribute value for use in HTTP header
-
-exports.escapeHeaderAttribute = function (attribute) {
-
- // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \, "
-
- exports.assert(/^[ \w\!#\$%&'\(\)\*\+,\-\.\/\:;<\=>\?@\[\]\^`\{\|\}~\"\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');
-
- return attribute.replace(/\\/g, '\\\\').replace(/\"/g, '\\"'); // Escape quotes and slash
-};
-
-
-exports.escapeHtml = function (string) {
-
- return Escape.escapeHtml(string);
-};
-
-
-exports.escapeJavaScript = function (string) {
-
- return Escape.escapeJavaScript(string);
-};
-
-exports.escapeJson = function (string) {
-
- return Escape.escapeJson(string);
-};
-
-exports.nextTick = function (callback) {
-
- return function () {
-
- const args = arguments;
- process.nextTick(() => {
-
- callback.apply(null, args);
- });
- };
-};
-
-
-exports.once = function (method) {
-
- if (method._hoekOnce) {
- return method;
- }
-
- let once = false;
- const wrapped = function () {
-
- if (!once) {
- once = true;
- method.apply(null, arguments);
- }
- };
-
- wrapped._hoekOnce = true;
-
- return wrapped;
-};
-
-
-exports.isInteger = Number.isSafeInteger;
-
-
-exports.ignore = function () { };
-
-
-exports.inherits = Util.inherits;
-
-
-exports.format = Util.format;
-
-
-exports.transform = function (source, transform, options) {
-
- exports.assert(source === null || source === undefined || typeof source === 'object' || Array.isArray(source), 'Invalid source object: must be null, undefined, an object, or an array');
- const separator = (typeof options === 'object' && options !== null) ? (options.separator || '.') : '.';
-
- if (Array.isArray(source)) {
- const results = [];
- for (let i = 0; i < source.length; ++i) {
- results.push(exports.transform(source[i], transform, options));
- }
- return results;
- }
-
- const result = {};
- const keys = Object.keys(transform);
-
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- const path = key.split(separator);
- const sourcePath = transform[key];
-
- exports.assert(typeof sourcePath === 'string', 'All mappings must be "." delineated strings');
-
- let segment;
- let res = result;
-
- while (path.length > 1) {
- segment = path.shift();
- if (!res[segment]) {
- res[segment] = {};
- }
- res = res[segment];
- }
- segment = path.shift();
- res[segment] = exports.reach(source, sourcePath, options);
- }
-
- return result;
-};
-
-
-exports.uniqueFilename = function (path, extension) {
-
- if (extension) {
- extension = extension[0] !== '.' ? '.' + extension : extension;
- }
- else {
- extension = '';
- }
-
- path = Path.resolve(path);
- const name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;
- return Path.join(path, name);
-};
-
-
-exports.stringify = function () {
-
- try {
- return JSON.stringify.apply(null, arguments);
- }
- catch (err) {
- return '[Cannot display object: ' + err.message + ']';
- }
-};
-
-
-exports.shallow = function (source) {
-
- const target = {};
- const keys = Object.keys(source);
- for (let i = 0; i < keys.length; ++i) {
- const key = keys[i];
- target[key] = source[key];
- }
-
- return target;
-};
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json b/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json
deleted file mode 100644
index 6d59b75583..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/hoek/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "_from": "hoek@4.x.x",
- "_id": "hoek@4.2.0",
- "_inBundle": false,
- "_integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==",
- "_location": "/request/hawk/hoek",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hoek@4.x.x",
- "name": "hoek",
- "escapedName": "hoek",
- "rawSpec": "4.x.x",
- "saveSpec": null,
- "fetchSpec": "4.x.x"
- },
- "_requiredBy": [
- "/request/hawk",
- "/request/hawk/boom",
- "/request/hawk/cryptiles/boom",
- "/request/hawk/sntp"
- ],
- "_resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz",
- "_shasum": "72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d",
- "_spec": "hoek@4.x.x",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/hawk",
- "bugs": {
- "url": "https://github.com/hapijs/hoek/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "General purpose node utilities",
- "devDependencies": {
- "code": "4.x.x",
- "lab": "13.x.x"
- },
- "engines": {
- "node": ">=4.0.0"
- },
- "homepage": "https://github.com/hapijs/hoek#readme",
- "keywords": [
- "utilities"
- ],
- "license": "BSD-3-Clause",
- "main": "lib/index.js",
- "name": "hoek",
- "repository": {
- "type": "git",
- "url": "git://github.com/hapijs/hoek.git"
- },
- "scripts": {
- "test": "lab -a code -t 100 -L",
- "test-cov-html": "lab -a code -t 100 -L -r html -o coverage.html"
- },
- "version": "4.2.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md b/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md
deleted file mode 100755
index 98a6e025db..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# sntp
-
-An SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time
-along with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset
-to the local time.
-
-[![Build Status](https://secure.travis-ci.org/hueniverse/sntp.png)](http://travis-ci.org/hueniverse/sntp)
-
-# Usage
-
-```javascript
-var Sntp = require('sntp');
-
-// All options are optional
-
-var options = {
- host: 'nist1-sj.ustiming.org', // Defaults to pool.ntp.org
- port: 123, // Defaults to 123 (NTP)
- resolveReference: true, // Default to false (not resolving)
- timeout: 1000 // Defaults to zero (no timeout)
-};
-
-// Request server time
-
-Sntp.time(options, function (err, time) {
-
- if (err) {
- console.log('Failed: ' + err.message);
- process.exit(1);
- }
-
- console.log('Local clock is off by: ' + time.t + ' milliseconds');
- process.exit(0);
-});
-```
-
-If an application needs to maintain continuous time synchronization, the module provides a stateful method for
-querying the current offset only when the last one is too old (defaults to daily).
-
-```javascript
-// Request offset once
-
-Sntp.offset(function (err, offset) {
-
- console.log(offset); // New (served fresh)
-
- // Request offset again
-
- Sntp.offset(function (err, offset) {
-
- console.log(offset); // Identical (served from cache)
- });
-});
-```
-
-To set a background offset refresh, start the interval and use the provided now() method. If for any reason the
-client fails to obtain an up-to-date offset, the current system clock is used.
-
-```javascript
-var before = Sntp.now(); // System time without offset
-
-Sntp.start(function () {
-
- var now = Sntp.now(); // With offset
- Sntp.stop();
-});
-```
-
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js b/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js
deleted file mode 100755
index da79cd7c54..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/lib/index.js
+++ /dev/null
@@ -1,396 +0,0 @@
-'use strict';
-
-// Load modules
-
-const Dgram = require('dgram');
-const Dns = require('dns');
-const Hoek = require('hoek');
-
-
-// Declare internals
-
-const internals = {};
-
-
-exports.time = function (options, callback) {
-
- if (arguments.length !== 2) {
- callback = arguments[0];
- options = {};
- }
-
- const settings = Hoek.clone(options);
- settings.host = settings.host || 'pool.ntp.org';
- settings.port = settings.port || 123;
- settings.resolveReference = settings.resolveReference || false;
-
- // Declare variables used by callback
-
- let timeoutId = 0;
- let sent = 0;
-
- // Ensure callback is only called once
-
- const finish = Hoek.once((err, result) => {
-
- if (timeoutId) {
- clearTimeout(timeoutId);
- timeoutId = 0;
- }
-
- socket.removeAllListeners();
- socket.once('error', Hoek.ignore);
- socket.close();
- return callback(err, result);
- });
-
- // Create UDP socket
-
- const socket = Dgram.createSocket('udp4');
-
- socket.once('error', (err) => finish(err));
-
- // Listen to incoming messages
-
- socket.on('message', (buffer, rinfo) => {
-
- const received = Date.now();
-
- const message = new internals.NtpMessage(buffer);
- if (!message.isValid) {
- return finish(new Error('Invalid server response'), message);
- }
-
- if (message.originateTimestamp !== sent) {
- return finish(new Error('Wrong originate timestamp'), message);
- }
-
- // Timestamp Name ID When Generated
- // ------------------------------------------------------------
- // Originate Timestamp T1 time request sent by client
- // Receive Timestamp T2 time request received by server
- // Transmit Timestamp T3 time reply sent by server
- // Destination Timestamp T4 time reply received by client
- //
- // The roundtrip delay d and system clock offset t are defined as:
- //
- // d = (T4 - T1) - (T3 - T2) t = ((T2 - T1) + (T3 - T4)) / 2
-
- const T1 = message.originateTimestamp;
- const T2 = message.receiveTimestamp;
- const T3 = message.transmitTimestamp;
- const T4 = received;
-
- message.d = (T4 - T1) - (T3 - T2);
- message.t = ((T2 - T1) + (T3 - T4)) / 2;
- message.receivedLocally = received;
-
- if (!settings.resolveReference ||
- message.stratum !== 'secondary') {
-
- return finish(null, message);
- }
-
- // Resolve reference IP address
-
- Dns.reverse(message.referenceId, (err, domains) => {
-
- if (/* $lab:coverage:off$ */ !err /* $lab:coverage:on$ */) {
- message.referenceHost = domains[0];
- }
-
- return finish(null, message);
- });
- });
-
- // Set timeout
-
- if (settings.timeout) {
- timeoutId = setTimeout(() => {
-
- timeoutId = 0;
- return finish(new Error('Timeout'));
- }, settings.timeout);
- }
-
- // Construct NTP message
-
- const message = new Buffer(48);
- for (let i = 0; i < 48; ++i) { // Zero message
- message[i] = 0;
- }
-
- message[0] = (0 << 6) + (4 << 3) + (3 << 0); // Set version number to 4 and Mode to 3 (client)
- sent = Date.now();
- internals.fromMsecs(sent, message, 40); // Set transmit timestamp (returns as originate)
-
- // Send NTP request
-
- socket.send(message, 0, message.length, settings.port, settings.host, (err, bytes) => {
-
- if (err ||
- bytes !== 48) {
-
- return finish(err || new Error('Could not send entire message'));
- }
- });
-};
-
-
-internals.NtpMessage = function (buffer) {
-
- this.isValid = false;
-
- // Validate
-
- if (buffer.length !== 48) {
- return;
- }
-
- // Leap indicator
-
- const li = (buffer[0] >> 6);
- switch (li) {
- case 0: this.leapIndicator = 'no-warning'; break;
- case 1: this.leapIndicator = 'last-minute-61'; break;
- case 2: this.leapIndicator = 'last-minute-59'; break;
- case 3: this.leapIndicator = 'alarm'; break;
- }
-
- // Version
-
- const vn = ((buffer[0] & 0x38) >> 3);
- this.version = vn;
-
- // Mode
-
- const mode = (buffer[0] & 0x7);
- switch (mode) {
- case 1: this.mode = 'symmetric-active'; break;
- case 2: this.mode = 'symmetric-passive'; break;
- case 3: this.mode = 'client'; break;
- case 4: this.mode = 'server'; break;
- case 5: this.mode = 'broadcast'; break;
- case 0:
- case 6:
- case 7: this.mode = 'reserved'; break;
- }
-
- // Stratum
-
- const stratum = buffer[1];
- if (stratum === 0) {
- this.stratum = 'death';
- }
- else if (stratum === 1) {
- this.stratum = 'primary';
- }
- else if (stratum <= 15) {
- this.stratum = 'secondary';
- }
- else {
- this.stratum = 'reserved';
- }
-
- // Poll interval (msec)
-
- this.pollInterval = Math.round(Math.pow(2, buffer[2])) * 1000;
-
- // Precision (msecs)
-
- this.precision = Math.pow(2, buffer[3]) * 1000;
-
- // Root delay (msecs)
-
- const rootDelay = 256 * (256 * (256 * buffer[4] + buffer[5]) + buffer[6]) + buffer[7];
- this.rootDelay = 1000 * (rootDelay / 0x10000);
-
- // Root dispersion (msecs)
-
- this.rootDispersion = ((buffer[8] << 8) + buffer[9] + ((buffer[10] << 8) + buffer[11]) / Math.pow(2, 16)) * 1000;
-
- // Reference identifier
-
- this.referenceId = '';
- switch (this.stratum) {
- case 'death':
- case 'primary':
- this.referenceId = String.fromCharCode(buffer[12]) + String.fromCharCode(buffer[13]) + String.fromCharCode(buffer[14]) + String.fromCharCode(buffer[15]);
- break;
- case 'secondary':
- this.referenceId = '' + buffer[12] + '.' + buffer[13] + '.' + buffer[14] + '.' + buffer[15];
- break;
- }
-
- // Reference timestamp
-
- this.referenceTimestamp = internals.toMsecs(buffer, 16);
-
- // Originate timestamp
-
- this.originateTimestamp = internals.toMsecs(buffer, 24);
-
- // Receive timestamp
-
- this.receiveTimestamp = internals.toMsecs(buffer, 32);
-
- // Transmit timestamp
-
- this.transmitTimestamp = internals.toMsecs(buffer, 40);
-
- // Validate
-
- if (this.version === 4 &&
- this.stratum !== 'reserved' &&
- this.mode === 'server' &&
- this.originateTimestamp &&
- this.receiveTimestamp &&
- this.transmitTimestamp) {
-
- this.isValid = true;
- }
-
- return this;
-};
-
-
-internals.toMsecs = function (buffer, offset) {
-
- let seconds = 0;
- let fraction = 0;
-
- for (let i = 0; i < 4; ++i) {
- seconds = (seconds * 256) + buffer[offset + i];
- }
-
- for (let i = 4; i < 8; ++i) {
- fraction = (fraction * 256) + buffer[offset + i];
- }
-
- return ((seconds - 2208988800 + (fraction / Math.pow(2, 32))) * 1000);
-};
-
-
-internals.fromMsecs = function (ts, buffer, offset) {
-
- const seconds = Math.floor(ts / 1000) + 2208988800;
- const fraction = Math.round((ts % 1000) / 1000 * Math.pow(2, 32));
-
- buffer[offset + 0] = (seconds & 0xFF000000) >> 24;
- buffer[offset + 1] = (seconds & 0x00FF0000) >> 16;
- buffer[offset + 2] = (seconds & 0x0000FF00) >> 8;
- buffer[offset + 3] = (seconds & 0x000000FF);
-
- buffer[offset + 4] = (fraction & 0xFF000000) >> 24;
- buffer[offset + 5] = (fraction & 0x00FF0000) >> 16;
- buffer[offset + 6] = (fraction & 0x0000FF00) >> 8;
- buffer[offset + 7] = (fraction & 0x000000FF);
-};
-
-
-// Offset singleton
-
-internals.last = {
- offset: 0,
- expires: 0,
- host: '',
- port: 0
-};
-
-
-exports.offset = function (options, callback) {
-
- if (arguments.length !== 2) {
- callback = arguments[0];
- options = {};
- }
-
- const now = Date.now();
- const clockSyncRefresh = options.clockSyncRefresh || 24 * 60 * 60 * 1000; // Daily
-
- if (internals.last.offset &&
- internals.last.host === options.host &&
- internals.last.port === options.port &&
- now < internals.last.expires) {
-
- process.nextTick(() => callback(null, internals.last.offset));
- return;
- }
-
- exports.time(options, (err, time) => {
-
- if (err) {
- return callback(err, 0);
- }
-
- internals.last = {
- offset: Math.round(time.t),
- expires: now + clockSyncRefresh,
- host: options.host,
- port: options.port
- };
-
- return callback(null, internals.last.offset);
- });
-};
-
-
-// Now singleton
-
-internals.now = {
- intervalId: 0
-};
-
-
-exports.start = function (options, callback) {
-
- if (arguments.length !== 2) {
- callback = arguments[0];
- options = {};
- }
-
- if (internals.now.intervalId) {
- process.nextTick(() => callback());
- return;
- }
-
- exports.offset(options, (ignoreErr, offset) => {
-
- internals.now.intervalId = setInterval(() => {
-
- exports.offset(options, Hoek.ignore);
- }, options.clockSyncRefresh || 24 * 60 * 60 * 1000); // Daily
-
- return callback();
- });
-};
-
-
-exports.stop = function () {
-
- if (!internals.now.intervalId) {
- return;
- }
-
- clearInterval(internals.now.intervalId);
- internals.now.intervalId = 0;
-};
-
-
-exports.isLive = function () {
-
- return !!internals.now.intervalId;
-};
-
-
-exports.now = function () {
-
- const now = Date.now();
- if (!exports.isLive() ||
- now >= internals.last.expires) {
-
- return now;
- }
-
- return now + internals.last.offset;
-};
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json b/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json
deleted file mode 100755
index cef2194349..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "sntp@2.x.x",
- "_id": "sntp@2.0.2",
- "_inBundle": false,
- "_integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=",
- "_location": "/request/hawk/sntp",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "sntp@2.x.x",
- "name": "sntp",
- "escapedName": "sntp",
- "rawSpec": "2.x.x",
- "saveSpec": null,
- "fetchSpec": "2.x.x"
- },
- "_requiredBy": [
- "/request/hawk"
- ],
- "_resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz",
- "_shasum": "5064110f0af85f7cfdb7d6b67a40028ce52b4b2b",
- "_spec": "sntp@2.x.x",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/hawk",
- "author": {
- "name": "Eran Hammer",
- "email": "eran@hammer.io",
- "url": "http://hueniverse.com"
- },
- "bugs": {
- "url": "https://github.com/hueniverse/sntp/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "hoek": "4.x.x"
- },
- "deprecated": false,
- "description": "SNTP Client",
- "devDependencies": {
- "code": "4.x.x",
- "lab": "10.x.x"
- },
- "engines": {
- "node": ">=4.0.0"
- },
- "homepage": "https://github.com/hueniverse/sntp#readme",
- "keywords": [
- "sntp",
- "ntp",
- "time"
- ],
- "license": "BSD-3-Clause",
- "main": "lib/index.js",
- "name": "sntp",
- "repository": {
- "type": "git",
- "url": "git://github.com/hueniverse/sntp.git"
- },
- "scripts": {
- "test": "lab -a code -t 100 -L -m 20000",
- "test-cov-html": "lab -a code -r html -o coverage.html -m 20000"
- },
- "version": "2.0.2"
-}
diff --git a/deps/npm/node_modules/request/node_modules/hawk/package.json b/deps/npm/node_modules/request/node_modules/hawk/package.json
deleted file mode 100755
index 1f9ad4a18d..0000000000
--- a/deps/npm/node_modules/request/node_modules/hawk/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "hawk@~6.0.2",
- "_id": "hawk@6.0.2",
- "_inBundle": false,
- "_integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==",
- "_location": "/request/hawk",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "hawk@~6.0.2",
- "name": "hawk",
- "escapedName": "hawk",
- "rawSpec": "~6.0.2",
- "saveSpec": null,
- "fetchSpec": "~6.0.2"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz",
- "_shasum": "af4d914eb065f9b5ce4d9d11c1cb2126eecc3038",
- "_spec": "hawk@~6.0.2",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Eran Hammer",
- "email": "eran@hammer.io",
- "url": "http://hueniverse.com"
- },
- "babel": {
- "presets": [
- "es2015"
- ]
- },
- "browser": "dist/browser.js",
- "bugs": {
- "url": "https://github.com/hueniverse/hawk/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "boom": "4.x.x",
- "cryptiles": "3.x.x",
- "hoek": "4.x.x",
- "sntp": "2.x.x"
- },
- "deprecated": false,
- "description": "HTTP Hawk Authentication Scheme",
- "devDependencies": {
- "babel-cli": "^6.1.2",
- "babel-preset-es2015": "^6.1.2",
- "code": "4.x.x",
- "lab": "14.x.x"
- },
- "engines": {
- "node": ">=4.5.0"
- },
- "homepage": "https://github.com/hueniverse/hawk#readme",
- "keywords": [
- "http",
- "authentication",
- "scheme",
- "hawk"
- ],
- "license": "BSD-3-Clause",
- "main": "lib/index.js",
- "name": "hawk",
- "repository": {
- "type": "git",
- "url": "git://github.com/hueniverse/hawk.git"
- },
- "scripts": {
- "build-client": "mkdir -p dist; babel lib/browser.js --out-file dist/browser.js",
- "prepublish": "npm run-script build-client",
- "test": "lab -a code -t 100 -L",
- "test-cov-html": "lab -a code -r html -o coverage.html"
- },
- "version": "6.0.2"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md b/deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md
deleted file mode 100644
index 6f69444ba6..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/CHANGES.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# node-http-signature changelog
-
-## 1.1.1
-
-- Version of dependency `assert-plus` updated: old version was missing
- some license information
-- Corrected examples in `http_signing.md`, added auto-tests to
- automatically validate these examples
-
-## 1.1.0
-
-- Bump version of `sshpk` dependency, remove peerDependency on it since
- it now supports exchanging objects between multiple versions of itself
- where possible
-
-## 1.0.2
-
-- Bump min version of `jsprim` dependency, to include fixes for using
- http-signature with `browserify`
-
-## 1.0.1
-
-- Bump minimum version of `sshpk` dependency, to include fixes for
- whitespace tolerance in key parsing.
-
-## 1.0.0
-
-- First semver release.
-- #36: Ensure verifySignature does not leak useful timing information
-- #42: Bring the library up to the latest version of the spec (including the
- request-target changes)
-- Support for ECDSA keys and signatures.
-- Now uses `sshpk` for key parsing, validation and conversion.
-- Fixes for #21, #47, #39 and compatibility with node 0.8
-
-## 0.11.0
-
-- Split up HMAC and Signature verification to avoid vulnerabilities where a
- key intended for use with one can be validated against the other method
- instead.
-
-## 0.10.2
-
-- Updated versions of most dependencies.
-- Utility functions exported for PEM => SSH-RSA conversion.
-- Improvements to tests and examples.
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json
deleted file mode 100644
index 4e9601e0c3..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/assert-plus/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "assert-plus@^1.0.0",
- "_id": "assert-plus@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "_location": "/request/http-signature/assert-plus",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "assert-plus@^1.0.0",
- "name": "assert-plus",
- "escapedName": "assert-plus",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/request/http-signature",
- "/request/http-signature/jsprim",
- "/request/http-signature/jsprim/verror",
- "/request/http-signature/sshpk",
- "/request/http-signature/sshpk/dashdash",
- "/request/http-signature/sshpk/getpass"
- ],
- "_resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "_shasum": "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525",
- "_spec": "assert-plus@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature",
- "author": {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/mcavage/node-assert-plus/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Dave Eddy",
- "email": "dave@daveeddy.com"
- },
- {
- "name": "Fred Kuo",
- "email": "fred.kuo@joyent.com"
- },
- {
- "name": "Lars-Magnus Skog",
- "email": "ralphtheninja@riseup.net"
- },
- {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- {
- "name": "Patrick Mooney",
- "email": "pmooney@pfmooney.com"
- },
- {
- "name": "Rob Gulewich",
- "email": "robert.gulewich@joyent.com"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Extra assertions on top of node's assert module",
- "devDependencies": {
- "faucet": "0.0.1",
- "tape": "4.2.2"
- },
- "engines": {
- "node": ">=0.8"
- },
- "homepage": "https://github.com/mcavage/node-assert-plus#readme",
- "license": "MIT",
- "main": "./assert.js",
- "name": "assert-plus",
- "optionalDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mcavage/node-assert-plus.git"
- },
- "scripts": {
- "test": "tape tests/*.js | ./node_modules/.bin/faucet"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json
deleted file mode 100644
index 4ccc21ea32..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/extsprintf/package.json
+++ /dev/null
@@ -1,44 +0,0 @@
-{
- "_from": "extsprintf@1.3.0",
- "_id": "extsprintf@1.3.0",
- "_inBundle": false,
- "_integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "_location": "/request/http-signature/jsprim/extsprintf",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "extsprintf@1.3.0",
- "name": "extsprintf",
- "escapedName": "extsprintf",
- "rawSpec": "1.3.0",
- "saveSpec": null,
- "fetchSpec": "1.3.0"
- },
- "_requiredBy": [
- "/request/http-signature/jsprim",
- "/request/http-signature/jsprim/verror"
- ],
- "_resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "_shasum": "96918440e3041a7a414f8c52e3c574eb3c3e1e05",
- "_spec": "extsprintf@1.3.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim",
- "bugs": {
- "url": "https://github.com/davepacheco/node-extsprintf/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "extended POSIX-style sprintf",
- "engines": [
- "node >=0.6.0"
- ],
- "homepage": "https://github.com/davepacheco/node-extsprintf#readme",
- "license": "MIT",
- "main": "./lib/extsprintf.js",
- "name": "extsprintf",
- "repository": {
- "type": "git",
- "url": "git://github.com/davepacheco/node-extsprintf.git"
- },
- "version": "1.3.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json
deleted file mode 100644
index 7e3c827ad5..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/json-schema/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "json-schema@0.2.3",
- "_id": "json-schema@0.2.3",
- "_integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "_location": "/request/http-signature/jsprim/json-schema",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "json-schema@0.2.3",
- "name": "json-schema",
- "escapedName": "json-schema",
- "rawSpec": "0.2.3",
- "saveSpec": null,
- "fetchSpec": "0.2.3"
- },
- "_requiredBy": [
- "/request/http-signature/jsprim"
- ],
- "_resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "_shasum": "b480c892e59a2f05954ce727bd3f2a4e882f9e13",
- "_shrinkwrap": null,
- "_spec": "json-schema@0.2.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim",
- "author": {
- "name": "Kris Zyp"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/kriszyp/json-schema/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "JSON Schema validation and specifications",
- "devDependencies": {
- "vows": "*"
- },
- "directories": {
- "lib": "./lib"
- },
- "homepage": "https://github.com/kriszyp/json-schema#readme",
- "keywords": [
- "json",
- "schema"
- ],
- "licenses": [
- {
- "type": "AFLv2.1",
- "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L43"
- },
- {
- "type": "BSD",
- "url": "http://trac.dojotoolkit.org/browser/dojo/trunk/LICENSE#L13"
- }
- ],
- "main": "./lib/validate.js",
- "maintainers": [
- {
- "name": "Kris Zyp",
- "email": "kriszyp@gmail.com"
- }
- ],
- "name": "json-schema",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/kriszyp/json-schema.git"
- },
- "scripts": {
- "test": "echo TESTS DISABLED vows --spec test/*.js"
- },
- "version": "0.2.3"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE
deleted file mode 100644
index d8d7f9437d..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-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/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md
deleted file mode 100644
index 5a76b4149c..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# core-util-is
-
-The `util.is*` functions introduced in Node v0.12.
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch
deleted file mode 100644
index a06d5c05f7..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/float.patch
+++ /dev/null
@@ -1,604 +0,0 @@
-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/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js
deleted file mode 100644
index ff4c851c07..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/lib/util.js
+++ /dev/null
@@ -1,107 +0,0 @@
-// 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/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json
deleted file mode 100644
index 3c1b62d160..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "core-util-is@1.0.2",
- "_id": "core-util-is@1.0.2",
- "_inBundle": false,
- "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "_location": "/request/http-signature/jsprim/verror/core-util-is",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "core-util-is@1.0.2",
- "name": "core-util-is",
- "escapedName": "core-util-is",
- "rawSpec": "1.0.2",
- "saveSpec": null,
- "fetchSpec": "1.0.2"
- },
- "_requiredBy": [
- "/request/http-signature/jsprim/verror"
- ],
- "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "_spec": "core-util-is@1.0.2",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror",
- "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/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js
deleted file mode 100644
index 1a490c65ac..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/node_modules/core-util-is/test.js
+++ /dev/null
@@ -1,68 +0,0 @@
-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/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json
deleted file mode 100644
index 4687310104..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "verror@1.10.0",
- "_id": "verror@1.10.0",
- "_inBundle": false,
- "_integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "_location": "/request/http-signature/jsprim/verror",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "verror@1.10.0",
- "name": "verror",
- "escapedName": "verror",
- "rawSpec": "1.10.0",
- "saveSpec": null,
- "fetchSpec": "1.10.0"
- },
- "_requiredBy": [
- "/request/http-signature/jsprim"
- ],
- "_resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "_shasum": "3a105ca17053af55d6e270c1f8288682e18da400",
- "_spec": "verror@1.10.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim",
- "bugs": {
- "url": "https://github.com/davepacheco/node-verror/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- },
- "deprecated": false,
- "description": "richer JavaScript errors",
- "engines": [
- "node >=0.6.0"
- ],
- "homepage": "https://github.com/davepacheco/node-verror#readme",
- "license": "MIT",
- "main": "./lib/verror.js",
- "name": "verror",
- "repository": {
- "type": "git",
- "url": "git://github.com/davepacheco/node-verror.git"
- },
- "scripts": {
- "test": "make test"
- },
- "version": "1.10.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json
deleted file mode 100644
index 105047ae08..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "jsprim@^1.2.2",
- "_id": "jsprim@1.4.1",
- "_inBundle": false,
- "_integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "_location": "/request/http-signature/jsprim",
- "_phantomChildren": {
- "assert-plus": "1.0.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "jsprim@^1.2.2",
- "name": "jsprim",
- "escapedName": "jsprim",
- "rawSpec": "^1.2.2",
- "saveSpec": null,
- "fetchSpec": "^1.2.2"
- },
- "_requiredBy": [
- "/request/http-signature"
- ],
- "_resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "_shasum": "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2",
- "_spec": "jsprim@^1.2.2",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature",
- "bugs": {
- "url": "https://github.com/joyent/node-jsprim/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- },
- "deprecated": false,
- "description": "utilities for primitive JavaScript types",
- "engines": [
- "node >=0.6.0"
- ],
- "homepage": "https://github.com/joyent/node-jsprim#readme",
- "license": "MIT",
- "main": "./lib/jsprim.js",
- "name": "jsprim",
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-jsprim.git"
- },
- "version": "1.4.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md
deleted file mode 100644
index 310c2ee98c..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/README.md
+++ /dev/null
@@ -1,698 +0,0 @@
-sshpk
-=========
-
-Parse, convert, fingerprint and use SSH keys (both public and private) in pure
-node -- no `ssh-keygen` or other external dependencies.
-
-Supports RSA, DSA, ECDSA (nistp-\*) and ED25519 key types, in PEM (PKCS#1,
-PKCS#8) and OpenSSH formats.
-
-This library has been extracted from
-[`node-http-signature`](https://github.com/joyent/node-http-signature)
-(work by [Mark Cavage](https://github.com/mcavage) and
-[Dave Eddy](https://github.com/bahamas10)) and
-[`node-ssh-fingerprint`](https://github.com/bahamas10/node-ssh-fingerprint)
-(work by Dave Eddy), with additions (including ECDSA support) by
-[Alex Wilson](https://github.com/arekinath).
-
-Install
--------
-
-```
-npm install sshpk
-```
-
-Examples
---------
-
-```js
-var sshpk = require('sshpk');
-
-var fs = require('fs');
-
-/* Read in an OpenSSH-format public key */
-var keyPub = fs.readFileSync('id_rsa.pub');
-var key = sshpk.parseKey(keyPub, 'ssh');
-
-/* Get metadata about the key */
-console.log('type => %s', key.type);
-console.log('size => %d bits', key.size);
-console.log('comment => %s', key.comment);
-
-/* Compute key fingerprints, in new OpenSSH (>6.7) format, and old MD5 */
-console.log('fingerprint => %s', key.fingerprint().toString());
-console.log('old-style fingerprint => %s', key.fingerprint('md5').toString());
-```
-
-Example output:
-
-```
-type => rsa
-size => 2048 bits
-comment => foo@foo.com
-fingerprint => SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w
-old-style fingerprint => a0:c8:ad:6c:32:9a:32:fa:59:cc:a9:8c:0a:0d:6e:bd
-```
-
-More examples: converting between formats:
-
-```js
-/* Read in a PEM public key */
-var keyPem = fs.readFileSync('id_rsa.pem');
-var key = sshpk.parseKey(keyPem, 'pem');
-
-/* Convert to PEM PKCS#8 public key format */
-var pemBuf = key.toBuffer('pkcs8');
-
-/* Convert to SSH public key format (and return as a string) */
-var sshKey = key.toString('ssh');
-```
-
-Signing and verifying:
-
-```js
-/* Read in an OpenSSH/PEM *private* key */
-var keyPriv = fs.readFileSync('id_ecdsa');
-var key = sshpk.parsePrivateKey(keyPriv, 'pem');
-
-var data = 'some data';
-
-/* Sign some data with the key */
-var s = key.createSign('sha1');
-s.update(data);
-var signature = s.sign();
-
-/* Now load the public key (could also use just key.toPublic()) */
-var keyPub = fs.readFileSync('id_ecdsa.pub');
-key = sshpk.parseKey(keyPub, 'ssh');
-
-/* Make a crypto.Verifier with this key */
-var v = key.createVerify('sha1');
-v.update(data);
-var valid = v.verify(signature);
-/* => true! */
-```
-
-Matching fingerprints with keys:
-
-```js
-var fp = sshpk.parseFingerprint('SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w');
-
-var keys = [sshpk.parseKey(...), sshpk.parseKey(...), ...];
-
-keys.forEach(function (key) {
- if (fp.matches(key))
- console.log('found it!');
-});
-```
-
-Usage
------
-
-## Public keys
-
-### `parseKey(data[, format = 'auto'[, options]])`
-
-Parses a key from a given data format and returns a new `Key` object.
-
-Parameters
-
-- `data` -- Either a Buffer or String, containing the key
-- `format` -- String name of format to use, valid options are:
- - `auto`: choose automatically from all below
- - `pem`: supports both PKCS#1 and PKCS#8
- - `ssh`: standard OpenSSH format,
- - `pkcs1`, `pkcs8`: variants of `pem`
- - `rfc4253`: raw OpenSSH wire format
- - `openssh`: new post-OpenSSH 6.5 internal format, produced by
- `ssh-keygen -o`
-- `options` -- Optional Object, extra options, with keys:
- - `filename` -- Optional String, name for the key being parsed
- (eg. the filename that was opened). Used to generate
- Error messages
- - `passphrase` -- Optional String, encryption passphrase used to decrypt an
- encrypted PEM file
-
-### `Key.isKey(obj)`
-
-Returns `true` if the given object is a valid `Key` object created by a version
-of `sshpk` compatible with this one.
-
-Parameters
-
-- `obj` -- Object to identify
-
-### `Key#type`
-
-String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`.
-
-### `Key#size`
-
-Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus;
-for ECDSA this is the bit size of the curve in use.
-
-### `Key#comment`
-
-Optional string, a key comment used by some formats (eg the `ssh` format).
-
-### `Key#curve`
-
-Only present if `this.type === 'ecdsa'`, string containing the name of the
-named curve used with this key. Possible values include `nistp256`, `nistp384`
-and `nistp521`.
-
-### `Key#toBuffer([format = 'ssh'])`
-
-Convert the key into a given data format and return the serialized key as
-a Buffer.
-
-Parameters
-
-- `format` -- String name of format to use, for valid options see `parseKey()`
-
-### `Key#toString([format = 'ssh])`
-
-Same as `this.toBuffer(format).toString()`.
-
-### `Key#fingerprint([algorithm = 'sha256'])`
-
-Creates a new `Fingerprint` object representing this Key's fingerprint.
-
-Parameters
-
-- `algorithm` -- String name of hash algorithm to use, valid options are `md5`,
- `sha1`, `sha256`, `sha384`, `sha512`
-
-### `Key#createVerify([hashAlgorithm])`
-
-Creates a `crypto.Verifier` specialized to use this Key (and the correct public
-key algorithm to match it). The returned Verifier has the same API as a regular
-one, except that the `verify()` function takes only the target signature as an
-argument.
-
-Parameters
-
-- `hashAlgorithm` -- optional String name of hash algorithm to use, any
- supported by OpenSSL are valid, usually including
- `sha1`, `sha256`.
-
-`v.verify(signature[, format])` Parameters
-
-- `signature` -- either a Signature object, or a Buffer or String
-- `format` -- optional String, name of format to interpret given String with.
- Not valid if `signature` is a Signature or Buffer.
-
-### `Key#createDiffieHellman()`
-### `Key#createDH()`
-
-Creates a Diffie-Hellman key exchange object initialized with this key and all
-necessary parameters. This has the same API as a `crypto.DiffieHellman`
-instance, except that functions take `Key` and `PrivateKey` objects as
-arguments, and return them where indicated for.
-
-This is only valid for keys belonging to a cryptosystem that supports DHE
-or a close analogue (i.e. `dsa`, `ecdsa` and `curve25519` keys). An attempt
-to call this function on other keys will yield an `Error`.
-
-## Private keys
-
-### `parsePrivateKey(data[, format = 'auto'[, options]])`
-
-Parses a private key from a given data format and returns a new
-`PrivateKey` object.
-
-Parameters
-
-- `data` -- Either a Buffer or String, containing the key
-- `format` -- String name of format to use, valid options are:
- - `auto`: choose automatically from all below
- - `pem`: supports both PKCS#1 and PKCS#8
- - `ssh`, `openssh`: new post-OpenSSH 6.5 internal format, produced by
- `ssh-keygen -o`
- - `pkcs1`, `pkcs8`: variants of `pem`
- - `rfc4253`: raw OpenSSH wire format
-- `options` -- Optional Object, extra options, with keys:
- - `filename` -- Optional String, name for the key being parsed
- (eg. the filename that was opened). Used to generate
- Error messages
- - `passphrase` -- Optional String, encryption passphrase used to decrypt an
- encrypted PEM file
-
-### `generatePrivateKey(type[, options])`
-
-Generates a new private key of a certain key type, from random data.
-
-Parameters
-
-- `type` -- String, type of key to generate. Currently supported are `'ecdsa'`
- and `'ed25519'`
-- `options` -- optional Object, with keys:
- - `curve` -- optional String, for `'ecdsa'` keys, specifies the curve to use.
- If ECDSA is specified and this option is not given, defaults to
- using `'nistp256'`.
-
-### `PrivateKey.isPrivateKey(obj)`
-
-Returns `true` if the given object is a valid `PrivateKey` object created by a
-version of `sshpk` compatible with this one.
-
-Parameters
-
-- `obj` -- Object to identify
-
-### `PrivateKey#type`
-
-String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`.
-
-### `PrivateKey#size`
-
-Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus;
-for ECDSA this is the bit size of the curve in use.
-
-### `PrivateKey#curve`
-
-Only present if `this.type === 'ecdsa'`, string containing the name of the
-named curve used with this key. Possible values include `nistp256`, `nistp384`
-and `nistp521`.
-
-### `PrivateKey#toBuffer([format = 'pkcs1'])`
-
-Convert the key into a given data format and return the serialized key as
-a Buffer.
-
-Parameters
-
-- `format` -- String name of format to use, valid options are listed under
- `parsePrivateKey`. Note that ED25519 keys default to `openssh`
- format instead (as they have no `pkcs1` representation).
-
-### `PrivateKey#toString([format = 'pkcs1'])`
-
-Same as `this.toBuffer(format).toString()`.
-
-### `PrivateKey#toPublic()`
-
-Extract just the public part of this private key, and return it as a `Key`
-object.
-
-### `PrivateKey#fingerprint([algorithm = 'sha256'])`
-
-Same as `this.toPublic().fingerprint()`.
-
-### `PrivateKey#createVerify([hashAlgorithm])`
-
-Same as `this.toPublic().createVerify()`.
-
-### `PrivateKey#createSign([hashAlgorithm])`
-
-Creates a `crypto.Sign` specialized to use this PrivateKey (and the correct
-key algorithm to match it). The returned Signer has the same API as a regular
-one, except that the `sign()` function takes no arguments, and returns a
-`Signature` object.
-
-Parameters
-
-- `hashAlgorithm` -- optional String name of hash algorithm to use, any
- supported by OpenSSL are valid, usually including
- `sha1`, `sha256`.
-
-`v.sign()` Parameters
-
-- none
-
-### `PrivateKey#derive(newType)`
-
-Derives a related key of type `newType` from this key. Currently this is
-only supported to change between `ed25519` and `curve25519` keys which are
-stored with the same private key (but usually distinct public keys in order
-to avoid degenerate keys that lead to a weak Diffie-Hellman exchange).
-
-Parameters
-
-- `newType` -- String, type of key to derive, either `ed25519` or `curve25519`
-
-## Fingerprints
-
-### `parseFingerprint(fingerprint[, algorithms])`
-
-Pre-parses a fingerprint, creating a `Fingerprint` object that can be used to
-quickly locate a key by using the `Fingerprint#matches` function.
-
-Parameters
-
-- `fingerprint` -- String, the fingerprint value, in any supported format
-- `algorithms` -- Optional list of strings, names of hash algorithms to limit
- support to. If `fingerprint` uses a hash algorithm not on
- this list, throws `InvalidAlgorithmError`.
-
-### `Fingerprint.isFingerprint(obj)`
-
-Returns `true` if the given object is a valid `Fingerprint` object created by a
-version of `sshpk` compatible with this one.
-
-Parameters
-
-- `obj` -- Object to identify
-
-### `Fingerprint#toString([format])`
-
-Returns a fingerprint as a string, in the given format.
-
-Parameters
-
-- `format` -- Optional String, format to use, valid options are `hex` and
- `base64`. If this `Fingerprint` uses the `md5` algorithm, the
- default format is `hex`. Otherwise, the default is `base64`.
-
-### `Fingerprint#matches(key)`
-
-Verifies whether or not this `Fingerprint` matches a given `Key`. This function
-uses double-hashing to avoid leaking timing information. Returns a boolean.
-
-Parameters
-
-- `key` -- a `Key` object, the key to match this fingerprint against
-
-## Signatures
-
-### `parseSignature(signature, algorithm, format)`
-
-Parses a signature in a given format, creating a `Signature` object. Useful
-for converting between the SSH and ASN.1 (PKCS/OpenSSL) signature formats, and
-also returned as output from `PrivateKey#createSign().sign()`.
-
-A Signature object can also be passed to a verifier produced by
-`Key#createVerify()` and it will automatically be converted internally into the
-correct format for verification.
-
-Parameters
-
-- `signature` -- a Buffer (binary) or String (base64), data of the actual
- signature in the given format
-- `algorithm` -- a String, name of the algorithm to be used, possible values
- are `rsa`, `dsa`, `ecdsa`
-- `format` -- a String, either `asn1` or `ssh`
-
-### `Signature.isSignature(obj)`
-
-Returns `true` if the given object is a valid `Signature` object created by a
-version of `sshpk` compatible with this one.
-
-Parameters
-
-- `obj` -- Object to identify
-
-### `Signature#toBuffer([format = 'asn1'])`
-
-Converts a Signature to the given format and returns it as a Buffer.
-
-Parameters
-
-- `format` -- a String, either `asn1` or `ssh`
-
-### `Signature#toString([format = 'asn1'])`
-
-Same as `this.toBuffer(format).toString('base64')`.
-
-## Certificates
-
-`sshpk` includes basic support for parsing certificates in X.509 (PEM) format
-and the OpenSSH certificate format. This feature is intended to be used mainly
-to access basic metadata about certificates, extract public keys from them, and
-also to generate simple self-signed certificates from an existing key.
-
-Notably, there is no implementation of CA chain-of-trust verification, and only
-very minimal support for key usage restrictions. Please do the security world
-a favour, and DO NOT use this code for certificate verification in the
-traditional X.509 CA chain style.
-
-### `parseCertificate(data, format)`
-
-Parameters
-
- - `data` -- a Buffer or String
- - `format` -- a String, format to use, one of `'openssh'`, `'pem'` (X.509 in a
- PEM wrapper), or `'x509'` (raw DER encoded)
-
-### `createSelfSignedCertificate(subject, privateKey[, options])`
-
-Parameters
-
- - `subject` -- an Identity, the subject of the certificate
- - `privateKey` -- a PrivateKey, the key of the subject: will be used both to be
- placed in the certificate and also to sign it (since this is
- a self-signed certificate)
- - `options` -- optional Object, with keys:
- - `lifetime` -- optional Number, lifetime of the certificate from now in
- seconds
- - `validFrom`, `validUntil` -- optional Dates, beginning and end of
- certificate validity period. If given
- `lifetime` will be ignored
- - `serial` -- optional Buffer, the serial number of the certificate
- - `purposes` -- optional Array of String, X.509 key usage restrictions
-
-### `createCertificate(subject, key, issuer, issuerKey[, options])`
-
-Parameters
-
- - `subject` -- an Identity, the subject of the certificate
- - `key` -- a Key, the public key of the subject
- - `issuer` -- an Identity, the issuer of the certificate who will sign it
- - `issuerKey` -- a PrivateKey, the issuer's private key for signing
- - `options` -- optional Object, with keys:
- - `lifetime` -- optional Number, lifetime of the certificate from now in
- seconds
- - `validFrom`, `validUntil` -- optional Dates, beginning and end of
- certificate validity period. If given
- `lifetime` will be ignored
- - `serial` -- optional Buffer, the serial number of the certificate
- - `purposes` -- optional Array of String, X.509 key usage restrictions
-
-### `Certificate#subjects`
-
-Array of `Identity` instances describing the subject of this certificate.
-
-### `Certificate#issuer`
-
-The `Identity` of the Certificate's issuer (signer).
-
-### `Certificate#subjectKey`
-
-The public key of the subject of the certificate, as a `Key` instance.
-
-### `Certificate#issuerKey`
-
-The public key of the signing issuer of this certificate, as a `Key` instance.
-May be `undefined` if the issuer's key is unknown (e.g. on an X509 certificate).
-
-### `Certificate#serial`
-
-The serial number of the certificate. As this is normally a 64-bit or wider
-integer, it is returned as a Buffer.
-
-### `Certificate#purposes`
-
-Array of Strings indicating the X.509 key usage purposes that this certificate
-is valid for. The possible strings at the moment are:
-
- * `'signature'` -- key can be used for digital signatures
- * `'identity'` -- key can be used to attest about the identity of the signer
- (X.509 calls this `nonRepudiation`)
- * `'codeSigning'` -- key can be used to sign executable code
- * `'keyEncryption'` -- key can be used to encrypt other keys
- * `'encryption'` -- key can be used to encrypt data (only applies for RSA)
- * `'keyAgreement'` -- key can be used for key exchange protocols such as
- Diffie-Hellman
- * `'ca'` -- key can be used to sign other certificates (is a Certificate
- Authority)
- * `'crl'` -- key can be used to sign Certificate Revocation Lists (CRLs)
-
-### `Certificate#isExpired([when])`
-
-Tests whether the Certificate is currently expired (i.e. the `validFrom` and
-`validUntil` dates specify a range of time that does not include the current
-time).
-
-Parameters
-
- - `when` -- optional Date, if specified, tests whether the Certificate was or
- will be expired at the specified time instead of now
-
-Returns a Boolean.
-
-### `Certificate#isSignedByKey(key)`
-
-Tests whether the Certificate was validly signed by the given (public) Key.
-
-Parameters
-
- - `key` -- a Key instance
-
-Returns a Boolean.
-
-### `Certificate#isSignedBy(certificate)`
-
-Tests whether this Certificate was validly signed by the subject of the given
-certificate. Also tests that the issuer Identity of this Certificate and the
-subject Identity of the other Certificate are equivalent.
-
-Parameters
-
- - `certificate` -- another Certificate instance
-
-Returns a Boolean.
-
-### `Certificate#fingerprint([hashAlgo])`
-
-Returns the X509-style fingerprint of the entire certificate (as a Fingerprint
-instance). This matches what a web-browser or similar would display as the
-certificate fingerprint and should not be confused with the fingerprint of the
-subject's public key.
-
-Parameters
-
- - `hashAlgo` -- an optional String, any hash function name
-
-### `Certificate#toBuffer([format])`
-
-Serializes the Certificate to a Buffer and returns it.
-
-Parameters
-
- - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or
- `'x509'`. Defaults to `'x509'`.
-
-Returns a Buffer.
-
-### `Certificate#toString([format])`
-
- - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or
- `'x509'`. Defaults to `'pem'`.
-
-Returns a String.
-
-## Certificate identities
-
-### `identityForHost(hostname)`
-
-Constructs a host-type Identity for a given hostname.
-
-Parameters
-
- - `hostname` -- the fully qualified DNS name of the host
-
-Returns an Identity instance.
-
-### `identityForUser(uid)`
-
-Constructs a user-type Identity for a given UID.
-
-Parameters
-
- - `uid` -- a String, user identifier (login name)
-
-Returns an Identity instance.
-
-### `identityForEmail(email)`
-
-Constructs an email-type Identity for a given email address.
-
-Parameters
-
- - `email` -- a String, email address
-
-Returns an Identity instance.
-
-### `identityFromDN(dn)`
-
-Parses an LDAP-style DN string (e.g. `'CN=foo, C=US'`) and turns it into an
-Identity instance.
-
-Parameters
-
- - `dn` -- a String
-
-Returns an Identity instance.
-
-### `Identity#toString()`
-
-Returns the identity as an LDAP-style DN string.
-e.g. `'CN=foo, O=bar corp, C=us'`
-
-### `Identity#type`
-
-The type of identity. One of `'host'`, `'user'`, `'email'` or `'unknown'`
-
-### `Identity#hostname`
-### `Identity#uid`
-### `Identity#email`
-
-Set when `type` is `'host'`, `'user'`, or `'email'`, respectively. Strings.
-
-### `Identity#cn`
-
-The value of the first `CN=` in the DN, if any.
-
-Errors
-------
-
-### `InvalidAlgorithmError`
-
-The specified algorithm is not valid, either because it is not supported, or
-because it was not included on a list of allowed algorithms.
-
-Thrown by `Fingerprint.parse`, `Key#fingerprint`.
-
-Properties
-
-- `algorithm` -- the algorithm that could not be validated
-
-### `FingerprintFormatError`
-
-The fingerprint string given could not be parsed as a supported fingerprint
-format, or the specified fingerprint format is invalid.
-
-Thrown by `Fingerprint.parse`, `Fingerprint#toString`.
-
-Properties
-
-- `fingerprint` -- if caused by a fingerprint, the string value given
-- `format` -- if caused by an invalid format specification, the string value given
-
-### `KeyParseError`
-
-The key data given could not be parsed as a valid key.
-
-Properties
-
-- `keyName` -- `filename` that was given to `parseKey`
-- `format` -- the `format` that was trying to parse the key (see `parseKey`)
-- `innerErr` -- the inner Error thrown by the format parser
-
-### `KeyEncryptedError`
-
-The key is encrypted with a symmetric key (ie, it is password protected). The
-parsing operation would succeed if it was given the `passphrase` option.
-
-Properties
-
-- `keyName` -- `filename` that was given to `parseKey`
-- `format` -- the `format` that was trying to parse the key (currently can only
- be `"pem"`)
-
-### `CertificateParseError`
-
-The certificate data given could not be parsed as a valid certificate.
-
-Properties
-
-- `certName` -- `filename` that was given to `parseCertificate`
-- `format` -- the `format` that was trying to parse the key
- (see `parseCertificate`)
-- `innerErr` -- the inner Error thrown by the format parser
-
-Friends of sshpk
-----------------
-
- * [`sshpk-agent`](https://github.com/arekinath/node-sshpk-agent) is a library
- for speaking the `ssh-agent` protocol from node.js, which uses `sshpk`
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js
deleted file mode 100644
index 973c03245e..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/auto.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- read: read,
- write: write
-};
-
-var assert = require('assert-plus');
-var utils = require('../utils');
-var Key = require('../key');
-var PrivateKey = require('../private-key');
-
-var pem = require('./pem');
-var ssh = require('./ssh');
-var rfc4253 = require('./rfc4253');
-
-function read(buf, options) {
- if (typeof (buf) === 'string') {
- if (buf.trim().match(/^[-]+[ ]*BEGIN/))
- return (pem.read(buf, options));
- if (buf.match(/^\s*ssh-[a-z]/))
- return (ssh.read(buf, options));
- if (buf.match(/^\s*ecdsa-/))
- return (ssh.read(buf, options));
- buf = new Buffer(buf, 'binary');
- } else {
- assert.buffer(buf);
- if (findPEMHeader(buf))
- return (pem.read(buf, options));
- if (findSSHHeader(buf))
- return (ssh.read(buf, options));
- }
- if (buf.readUInt32BE(0) < buf.length)
- return (rfc4253.read(buf, options));
- throw (new Error('Failed to auto-detect format of key'));
-}
-
-function findSSHHeader(buf) {
- var offset = 0;
- while (offset < buf.length &&
- (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
- ++offset;
- if (offset + 4 <= buf.length &&
- buf.slice(offset, offset + 4).toString('ascii') === 'ssh-')
- return (true);
- if (offset + 6 <= buf.length &&
- buf.slice(offset, offset + 6).toString('ascii') === 'ecdsa-')
- return (true);
- return (false);
-}
-
-function findPEMHeader(buf) {
- var offset = 0;
- while (offset < buf.length &&
- (buf[offset] === 32 || buf[offset] === 10))
- ++offset;
- if (buf[offset] !== 45)
- return (false);
- while (offset < buf.length &&
- (buf[offset] === 45))
- ++offset;
- while (offset < buf.length &&
- (buf[offset] === 32))
- ++offset;
- if (offset + 5 > buf.length ||
- buf.slice(offset, offset + 5).toString('ascii') !== 'BEGIN')
- return (false);
- return (true);
-}
-
-function write(key, options) {
- throw (new Error('"auto" format cannot be used for writing'));
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js
deleted file mode 100644
index 466634c00e..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/utils.js
+++ /dev/null
@@ -1,288 +0,0 @@
-// Copyright 2015 Joyent, Inc.
-
-module.exports = {
- bufferSplit: bufferSplit,
- addRSAMissing: addRSAMissing,
- calculateDSAPublic: calculateDSAPublic,
- mpNormalize: mpNormalize,
- ecNormalize: ecNormalize,
- countZeros: countZeros,
- assertCompatible: assertCompatible,
- isCompatible: isCompatible,
- opensslKeyDeriv: opensslKeyDeriv,
- opensshCipherInfo: opensshCipherInfo
-};
-
-var assert = require('assert-plus');
-var PrivateKey = require('./private-key');
-var crypto = require('crypto');
-
-var MAX_CLASS_DEPTH = 3;
-
-function isCompatible(obj, klass, needVer) {
- if (obj === null || typeof (obj) !== 'object')
- return (false);
- if (needVer === undefined)
- needVer = klass.prototype._sshpkApiVersion;
- if (obj instanceof klass &&
- klass.prototype._sshpkApiVersion[0] == needVer[0])
- return (true);
- var proto = Object.getPrototypeOf(obj);
- var depth = 0;
- while (proto.constructor.name !== klass.name) {
- proto = Object.getPrototypeOf(proto);
- if (!proto || ++depth > MAX_CLASS_DEPTH)
- return (false);
- }
- if (proto.constructor.name !== klass.name)
- return (false);
- var ver = proto._sshpkApiVersion;
- if (ver === undefined)
- ver = klass._oldVersionDetect(obj);
- if (ver[0] != needVer[0] || ver[1] < needVer[1])
- return (false);
- return (true);
-}
-
-function assertCompatible(obj, klass, needVer, name) {
- if (name === undefined)
- name = 'object';
- assert.ok(obj, name + ' must not be null');
- assert.object(obj, name + ' must be an object');
- if (needVer === undefined)
- needVer = klass.prototype._sshpkApiVersion;
- if (obj instanceof klass &&
- klass.prototype._sshpkApiVersion[0] == needVer[0])
- return;
- var proto = Object.getPrototypeOf(obj);
- var depth = 0;
- while (proto.constructor.name !== klass.name) {
- proto = Object.getPrototypeOf(proto);
- assert.ok(proto && ++depth <= MAX_CLASS_DEPTH,
- name + ' must be a ' + klass.name + ' instance');
- }
- assert.strictEqual(proto.constructor.name, klass.name,
- name + ' must be a ' + klass.name + ' instance');
- var ver = proto._sshpkApiVersion;
- if (ver === undefined)
- ver = klass._oldVersionDetect(obj);
- assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1],
- name + ' must be compatible with ' + klass.name + ' klass ' +
- 'version ' + needVer[0] + '.' + needVer[1]);
-}
-
-var CIPHER_LEN = {
- 'des-ede3-cbc': { key: 7, iv: 8 },
- 'aes-128-cbc': { key: 16, iv: 16 }
-};
-var PKCS5_SALT_LEN = 8;
-
-function opensslKeyDeriv(cipher, salt, passphrase, count) {
- assert.buffer(salt, 'salt');
- assert.buffer(passphrase, 'passphrase');
- assert.number(count, 'iteration count');
-
- var clen = CIPHER_LEN[cipher];
- assert.object(clen, 'supported cipher');
-
- salt = salt.slice(0, PKCS5_SALT_LEN);
-
- var D, D_prev, bufs;
- var material = new Buffer(0);
- while (material.length < clen.key + clen.iv) {
- bufs = [];
- if (D_prev)
- bufs.push(D_prev);
- bufs.push(passphrase);
- bufs.push(salt);
- D = Buffer.concat(bufs);
- for (var j = 0; j < count; ++j)
- D = crypto.createHash('md5').update(D).digest();
- material = Buffer.concat([material, D]);
- D_prev = D;
- }
-
- return ({
- key: material.slice(0, clen.key),
- iv: material.slice(clen.key, clen.key + clen.iv)
- });
-}
-
-/* Count leading zero bits on a buffer */
-function countZeros(buf) {
- var o = 0, obit = 8;
- while (o < buf.length) {
- var mask = (1 << obit);
- if ((buf[o] & mask) === mask)
- break;
- obit--;
- if (obit < 0) {
- o++;
- obit = 8;
- }
- }
- return (o*8 + (8 - obit) - 1);
-}
-
-function bufferSplit(buf, chr) {
- assert.buffer(buf);
- assert.string(chr);
-
- var parts = [];
- var lastPart = 0;
- var matches = 0;
- for (var i = 0; i < buf.length; ++i) {
- if (buf[i] === chr.charCodeAt(matches))
- ++matches;
- else if (buf[i] === chr.charCodeAt(0))
- matches = 1;
- else
- matches = 0;
-
- if (matches >= chr.length) {
- var newPart = i + 1;
- parts.push(buf.slice(lastPart, newPart - matches));
- lastPart = newPart;
- matches = 0;
- }
- }
- if (lastPart <= buf.length)
- parts.push(buf.slice(lastPart, buf.length));
-
- return (parts);
-}
-
-function ecNormalize(buf, addZero) {
- assert.buffer(buf);
- if (buf[0] === 0x00 && buf[1] === 0x04) {
- if (addZero)
- return (buf);
- return (buf.slice(1));
- } else if (buf[0] === 0x04) {
- if (!addZero)
- return (buf);
- } else {
- while (buf[0] === 0x00)
- buf = buf.slice(1);
- if (buf[0] === 0x02 || buf[0] === 0x03)
- throw (new Error('Compressed elliptic curve points ' +
- 'are not supported'));
- if (buf[0] !== 0x04)
- throw (new Error('Not a valid elliptic curve point'));
- if (!addZero)
- return (buf);
- }
- var b = new Buffer(buf.length + 1);
- b[0] = 0x0;
- buf.copy(b, 1);
- return (b);
-}
-
-function mpNormalize(buf) {
- assert.buffer(buf);
- while (buf.length > 1 && buf[0] === 0x00 && (buf[1] & 0x80) === 0x00)
- buf = buf.slice(1);
- if ((buf[0] & 0x80) === 0x80) {
- var b = new Buffer(buf.length + 1);
- b[0] = 0x00;
- buf.copy(b, 1);
- buf = b;
- }
- return (buf);
-}
-
-function bigintToMpBuf(bigint) {
- var buf = new Buffer(bigint.toByteArray());
- buf = mpNormalize(buf);
- return (buf);
-}
-
-function calculateDSAPublic(g, p, x) {
- assert.buffer(g);
- assert.buffer(p);
- assert.buffer(x);
- try {
- var bigInt = require('jsbn').BigInteger;
- } catch (e) {
- throw (new Error('To load a PKCS#8 format DSA private key, ' +
- 'the node jsbn library is required.'));
- }
- g = new bigInt(g);
- p = new bigInt(p);
- x = new bigInt(x);
- var y = g.modPow(x, p);
- var ybuf = bigintToMpBuf(y);
- return (ybuf);
-}
-
-function addRSAMissing(key) {
- assert.object(key);
- assertCompatible(key, PrivateKey, [1, 1]);
- try {
- var bigInt = require('jsbn').BigInteger;
- } catch (e) {
- throw (new Error('To write a PEM private key from ' +
- 'this source, the node jsbn lib is required.'));
- }
-
- var d = new bigInt(key.part.d.data);
- var buf;
-
- if (!key.part.dmodp) {
- var p = new bigInt(key.part.p.data);
- var dmodp = d.mod(p.subtract(1));
-
- buf = bigintToMpBuf(dmodp);
- key.part.dmodp = {name: 'dmodp', data: buf};
- key.parts.push(key.part.dmodp);
- }
- if (!key.part.dmodq) {
- var q = new bigInt(key.part.q.data);
- var dmodq = d.mod(q.subtract(1));
-
- buf = bigintToMpBuf(dmodq);
- key.part.dmodq = {name: 'dmodq', data: buf};
- key.parts.push(key.part.dmodq);
- }
-}
-
-function opensshCipherInfo(cipher) {
- var inf = {};
- switch (cipher) {
- case '3des-cbc':
- inf.keySize = 24;
- inf.blockSize = 8;
- inf.opensslName = 'des-ede3-cbc';
- break;
- case 'blowfish-cbc':
- inf.keySize = 16;
- inf.blockSize = 8;
- inf.opensslName = 'bf-cbc';
- break;
- case 'aes128-cbc':
- case 'aes128-ctr':
- case 'aes128-gcm@openssh.com':
- inf.keySize = 16;
- inf.blockSize = 16;
- inf.opensslName = 'aes-128-' + cipher.slice(7, 10);
- break;
- case 'aes192-cbc':
- case 'aes192-ctr':
- case 'aes192-gcm@openssh.com':
- inf.keySize = 24;
- inf.blockSize = 16;
- inf.opensslName = 'aes-192-' + cipher.slice(7, 10);
- break;
- case 'aes256-cbc':
- case 'aes256-ctr':
- case 'aes256-gcm@openssh.com':
- inf.keySize = 32;
- inf.blockSize = 16;
- inf.opensslName = 'aes-256-' + cipher.slice(7, 10);
- break;
- default:
- throw (new Error(
- 'Unsupported openssl cipher "' + cipher + '"'));
- }
- return (inf);
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json
deleted file mode 100644
index 72af043113..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/asn1/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "asn1@~0.2.3",
- "_id": "asn1@0.2.3",
- "_integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
- "_location": "/request/http-signature/sshpk/asn1",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "asn1@~0.2.3",
- "name": "asn1",
- "escapedName": "asn1",
- "rawSpec": "~0.2.3",
- "saveSpec": null,
- "fetchSpec": "~0.2.3"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk"
- ],
- "_resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
- "_shasum": "dac8787713c9966849fc8180777ebe9c1ddf3b86",
- "_shrinkwrap": null,
- "_spec": "asn1@~0.2.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mcavage/node-asn1/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "David Gwynne",
- "email": "loki@animata.net"
- },
- {
- "name": "Yunong Xiao",
- "email": "yunong@joyent.com"
- },
- {
- "name": "Alex Wilson",
- "email": "alex.wilson@joyent.com"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Contains parsers and serializers for ASN.1 (currently BER only)",
- "devDependencies": {
- "tap": "0.4.8"
- },
- "homepage": "https://github.com/mcavage/node-asn1#readme",
- "license": "MIT",
- "main": "lib/index.js",
- "name": "asn1",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/mcavage/node-asn1.git"
- },
- "scripts": {
- "test": "tap ./tst"
- },
- "version": "0.2.3"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json
deleted file mode 100644
index 14416d2511..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/bcrypt-pbkdf/package.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "_from": "bcrypt-pbkdf@^1.0.0",
- "_id": "bcrypt-pbkdf@1.0.1",
- "_integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
- "_location": "/request/http-signature/sshpk/bcrypt-pbkdf",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "bcrypt-pbkdf@^1.0.0",
- "name": "bcrypt-pbkdf",
- "escapedName": "bcrypt-pbkdf",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk"
- ],
- "_resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
- "_shasum": "63bc5dcb61331b92bc05fd528953c33462a06f8d",
- "_shrinkwrap": null,
- "_spec": "bcrypt-pbkdf@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {
- "tweetnacl": "^0.14.3"
- },
- "deprecated": false,
- "description": "Port of the OpenBSD bcrypt_pbkdf function to pure JS",
- "devDependencies": {},
- "license": "BSD-3-Clause",
- "main": "index.js",
- "name": "bcrypt-pbkdf",
- "optionalDependencies": {},
- "peerDependencies": {},
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
deleted file mode 100644
index 8bda31cf32..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/dashdash/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "dashdash@^1.12.0",
- "_id": "dashdash@1.14.1",
- "_integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "_location": "/request/http-signature/sshpk/dashdash",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "dashdash@^1.12.0",
- "name": "dashdash",
- "escapedName": "dashdash",
- "rawSpec": "^1.12.0",
- "saveSpec": null,
- "fetchSpec": "^1.12.0"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk"
- ],
- "_resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "_shasum": "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0",
- "_shrinkwrap": null,
- "_spec": "dashdash@^1.12.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "Trent Mick",
- "email": "trentm@gmail.com",
- "url": "http://trentm.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/trentm/node-dashdash/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "deprecated": false,
- "description": "A light, featureful and explicit option parsing library.",
- "devDependencies": {
- "nodeunit": "0.9.x"
- },
- "engines": {
- "node": ">=0.10"
- },
- "homepage": "https://github.com/trentm/node-dashdash#readme",
- "keywords": [
- "option",
- "parser",
- "parsing",
- "cli",
- "command",
- "args",
- "bash",
- "completion"
- ],
- "license": "MIT",
- "main": "./lib/dashdash.js",
- "name": "dashdash",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/trentm/node-dashdash.git"
- },
- "scripts": {
- "test": "nodeunit test/*.test.js"
- },
- "version": "1.14.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js
deleted file mode 100644
index 24372810b8..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/index.js
+++ /dev/null
@@ -1,57 +0,0 @@
-var crypto = require("crypto");
-var BigInteger = require("jsbn").BigInteger;
-var ECPointFp = require("./lib/ec.js").ECPointFp;
-exports.ECCurves = require("./lib/sec.js");
-
-// zero prepad
-function unstupid(hex,len)
-{
- return (hex.length >= len) ? hex : unstupid("0"+hex,len);
-}
-
-exports.ECKey = function(curve, key, isPublic)
-{
- var priv;
- var c = curve();
- var n = c.getN();
- var bytes = Math.floor(n.bitLength()/8);
-
- if(key)
- {
- if(isPublic)
- {
- var curve = c.getCurve();
-// var x = key.slice(1,bytes+1); // skip the 04 for uncompressed format
-// var y = key.slice(bytes+1);
-// this.P = new ECPointFp(curve,
-// curve.fromBigInteger(new BigInteger(x.toString("hex"), 16)),
-// curve.fromBigInteger(new BigInteger(y.toString("hex"), 16)));
- this.P = curve.decodePointHex(key.toString("hex"));
- }else{
- if(key.length != bytes) return false;
- priv = new BigInteger(key.toString("hex"), 16);
- }
- }else{
- var n1 = n.subtract(BigInteger.ONE);
- var r = new BigInteger(crypto.randomBytes(n.bitLength()));
- priv = r.mod(n1).add(BigInteger.ONE);
- this.P = c.getG().multiply(priv);
- }
- if(this.P)
- {
-// var pubhex = unstupid(this.P.getX().toBigInteger().toString(16),bytes*2)+unstupid(this.P.getY().toBigInteger().toString(16),bytes*2);
-// this.PublicKey = new Buffer("04"+pubhex,"hex");
- this.PublicKey = new Buffer(c.getCurve().encodeCompressedPointHex(this.P),"hex");
- }
- if(priv)
- {
- this.PrivateKey = new Buffer(unstupid(priv.toString(16),bytes*2),"hex");
- this.deriveSharedSecret = function(key)
- {
- if(!key || !key.P) return false;
- var S = key.P.multiply(priv);
- return new Buffer(unstupid(S.getX().toBigInteger().toString(16),bytes*2),"hex");
- }
- }
-}
-
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json
deleted file mode 100644
index f09cf0a748..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/ecc-jsbn/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "ecc-jsbn@~0.1.1",
- "_id": "ecc-jsbn@0.1.1",
- "_integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
- "_location": "/request/http-signature/sshpk/ecc-jsbn",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ecc-jsbn@~0.1.1",
- "name": "ecc-jsbn",
- "escapedName": "ecc-jsbn",
- "rawSpec": "~0.1.1",
- "saveSpec": null,
- "fetchSpec": "~0.1.1"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk"
- ],
- "_resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
- "_shasum": "0fc73a9ed5f0d53c38193398523ef7e543777505",
- "_shrinkwrap": null,
- "_spec": "ecc-jsbn@~0.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "Jeremie Miller",
- "email": "jeremie@jabber.org",
- "url": "http://jeremie.com/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/quartzjer/ecc-jsbn/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "jsbn": "~0.1.0"
- },
- "deprecated": false,
- "description": "ECC JS code based on JSBN",
- "devDependencies": {},
- "homepage": "https://github.com/quartzjer/ecc-jsbn",
- "keywords": [
- "jsbn",
- "ecc",
- "browserify"
- ],
- "license": "MIT",
- "main": "index.js",
- "maintainers": [
- {
- "name": "Jeremie Miller",
- "email": "jeremie@jabber.org",
- "url": "http://jeremie.com/"
- },
- {
- "name": "Ryan Bennett",
- "url": "https://github.com/rynomad"
- }
- ],
- "name": "ecc-jsbn",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/quartzjer/ecc-jsbn.git"
- },
- "version": "0.1.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json
deleted file mode 100644
index 5be871064b..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/package.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "_from": "getpass@^0.1.1",
- "_id": "getpass@0.1.7",
- "_integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "_location": "/request/http-signature/sshpk/getpass",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "getpass@^0.1.1",
- "name": "getpass",
- "escapedName": "getpass",
- "rawSpec": "^0.1.1",
- "saveSpec": null,
- "fetchSpec": "^0.1.1"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk"
- ],
- "_resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "_shasum": "5eff8e3e684d569ae4cb2b1282604e8ba62149fa",
- "_shrinkwrap": null,
- "_spec": "getpass@^0.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "Alex Wilson",
- "email": "alex.wilson@joyent.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/arekinath/node-getpass/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "deprecated": false,
- "description": "getpass for node.js",
- "devDependencies": {},
- "homepage": "https://github.com/arekinath/node-getpass#readme",
- "license": "MIT",
- "main": "lib/index.js",
- "name": "getpass",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/arekinath/node-getpass.git"
- },
- "scripts": {
- "test": "tape test/*.test.js"
- },
- "version": "0.1.7"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE
deleted file mode 100644
index 2a6457e9ef..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/LICENSE
+++ /dev/null
@@ -1,40 +0,0 @@
-Licensing
----------
-
-This software is covered under the following copyright:
-
-/*
- * Copyright (c) 2003-2005 Tom Wu
- * 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" AND WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
- * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
- *
- * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
- * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER
- * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF
- * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * In addition, the following condition applies:
- *
- * All redistributions must retain an intact copy of this copyright notice
- * and disclaimer.
- */
-
-Address all questions regarding this license to:
-
- Tom Wu
- tjw@cs.Stanford.EDU \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md
deleted file mode 100644
index 7aac67f53f..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/README.md
+++ /dev/null
@@ -1,175 +0,0 @@
-# jsbn: javascript big number
-
-[Tom Wu's Original Website](http://www-cs-students.stanford.edu/~tjw/jsbn/)
-
-I felt compelled to put this on github and publish to npm. I haven't tested every other big integer library out there, but the few that I have tested in comparison to this one have not even come close in performance. I am aware of the `bi` module on npm, however it has been modified and I wanted to publish the original without modifications. This is jsbn and jsbn2 from Tom Wu's original website above, with the modular pattern applied to prevent global leaks and to allow for use with node.js on the server side.
-
-## usage
-
- var BigInteger = require('jsbn');
-
- var a = new BigInteger('91823918239182398123');
- alert(a.bitLength()); // 67
-
-
-## API
-
-### bi.toString()
-
-returns the base-10 number as a string
-
-### bi.negate()
-
-returns a new BigInteger equal to the negation of `bi`
-
-### bi.abs
-
-returns new BI of absolute value
-
-### bi.compareTo
-
-
-
-### bi.bitLength
-
-
-
-### bi.mod
-
-
-
-### bi.modPowInt
-
-
-
-### bi.clone
-
-
-
-### bi.intValue
-
-
-
-### bi.byteValue
-
-
-
-### bi.shortValue
-
-
-
-### bi.signum
-
-
-
-### bi.toByteArray
-
-
-
-### bi.equals
-
-
-
-### bi.min
-
-
-
-### bi.max
-
-
-
-### bi.and
-
-
-
-### bi.or
-
-
-
-### bi.xor
-
-
-
-### bi.andNot
-
-
-
-### bi.not
-
-
-
-### bi.shiftLeft
-
-
-
-### bi.shiftRight
-
-
-
-### bi.getLowestSetBit
-
-
-
-### bi.bitCount
-
-
-
-### bi.testBit
-
-
-
-### bi.setBit
-
-
-
-### bi.clearBit
-
-
-
-### bi.flipBit
-
-
-
-### bi.add
-
-
-
-### bi.subtract
-
-
-
-### bi.multiply
-
-
-
-### bi.divide
-
-
-
-### bi.remainder
-
-
-
-### bi.divideAndRemainder
-
-
-
-### bi.modPow
-
-
-
-### bi.modInverse
-
-
-
-### bi.pow
-
-
-
-### bi.gcd
-
-
-
-### bi.isProbablePrime
-
-
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json
deleted file mode 100644
index cdaf3ed86a..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/jsbn/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "jsbn@~0.1.0",
- "_id": "jsbn@0.1.1",
- "_integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "_location": "/request/http-signature/sshpk/jsbn",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "jsbn@~0.1.0",
- "name": "jsbn",
- "escapedName": "jsbn",
- "rawSpec": "~0.1.0",
- "saveSpec": null,
- "fetchSpec": "~0.1.0"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk",
- "/request/http-signature/sshpk/ecc-jsbn",
- "/request/http-signature/sshpk/jodid25519"
- ],
- "_resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "_shasum": "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513",
- "_shrinkwrap": null,
- "_spec": "jsbn@~0.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "Tom Wu"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/andyperlitch/jsbn/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "The jsbn library is a fast, portable implementation of large-number math in pure JavaScript, enabling public-key crypto and other applications on desktop and mobile browsers.",
- "devDependencies": {},
- "homepage": "https://github.com/andyperlitch/jsbn#readme",
- "keywords": [
- "biginteger",
- "bignumber",
- "big",
- "integer"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "jsbn",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/andyperlitch/jsbn.git"
- },
- "scripts": {
- "test": "mocha test.js"
- },
- "version": "0.1.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md
deleted file mode 100644
index 92a4fdc56a..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/CHANGELOG.md
+++ /dev/null
@@ -1,221 +0,0 @@
-TweetNaCl.js Changelog
-======================
-
-
-v0.14.5
--------
-
-* Fixed incomplete return types in TypeScript typings.
-* Replaced COPYING.txt with LICENSE file, which now has public domain dedication
- text from The Unlicense. License fields in package.json and bower.json have
- been set to "Unlicense". The project was and will be in the public domain --
- this change just makes it easier for automated tools to know about this fact by
- using the widely recognized and SPDX-compatible template for public domain
- dedication.
-
-
-v0.14.4
--------
-
-* Added TypeScript type definitions (contributed by @AndSDev).
-* Improved benchmarking code.
-
-
-v0.14.3
--------
-
-Fixed a bug in the fast version of Poly1305 and brought it back.
-
-Thanks to @floodyberry for promptly responding and fixing the original C code:
-
-> "The issue was not properly detecting if st->h was >= 2^130 - 5, coupled with
-> [testing mistake] not catching the failure. The chance of the bug affecting
-> anything in the real world is essentially zero luckily, but it's good to have
-> it fixed."
-
-https://github.com/floodyberry/poly1305-donna/issues/2#issuecomment-202698577
-
-
-v0.14.2
--------
-
-Switched Poly1305 fast version back to original (slow) version due to a bug.
-
-
-v0.14.1
--------
-
-No code changes, just tweaked packaging and added COPYING.txt.
-
-
-v0.14.0
--------
-
-* **Breaking change!** All functions from `nacl.util` have been removed. These
- functions are no longer available:
-
- nacl.util.decodeUTF8
- nacl.util.encodeUTF8
- nacl.util.decodeBase64
- nacl.util.encodeBase64
-
- If want to continue using them, you can include
- <https://github.com/dchest/tweetnacl-util-js> package:
-
- <script src="nacl.min.js"></script>
- <script src="nacl-util.min.js"></script>
-
- or
-
- var nacl = require('tweetnacl');
- nacl.util = require('tweetnacl-util');
-
- However it is recommended to use better packages that have wider
- compatibility and better performance. Functions from `nacl.util` were never
- intended to be robust solution for string conversion and were included for
- convenience: cryptography library is not the right place for them.
-
- Currently calling these functions will throw error pointing to
- `tweetnacl-util-js` (in the next version this error message will be removed).
-
-* Improved detection of available random number generators, making it possible
- to use `nacl.randomBytes` and related functions in Web Workers without
- changes.
-
-* Changes to testing (see README).
-
-
-v0.13.3
--------
-
-No code changes.
-
-* Reverted license field in package.json to "Public domain".
-
-* Fixed typo in README.
-
-
-v0.13.2
--------
-
-* Fixed undefined variable bug in fast version of Poly1305. No worries, this
- bug was *never* triggered.
-
-* Specified CC0 public domain dedication.
-
-* Updated development dependencies.
-
-
-v0.13.1
--------
-
-* Exclude `crypto` and `buffer` modules from browserify builds.
-
-
-v0.13.0
--------
-
-* Made `nacl-fast` the default version in NPM package. Now
- `require("tweetnacl")` will use fast version; to get the original version,
- use `require("tweetnacl/nacl.js")`.
-
-* Cleanup temporary array after generating random bytes.
-
-
-v0.12.2
--------
-
-* Improved performance of curve operations, making `nacl.scalarMult`, `nacl.box`,
- `nacl.sign` and related functions up to 3x faster in `nacl-fast` version.
-
-
-v0.12.1
--------
-
-* Significantly improved performance of Salsa20 (~1.5x faster) and
- Poly1305 (~3.5x faster) in `nacl-fast` version.
-
-
-v0.12.0
--------
-
-* Instead of using the given secret key directly, TweetNaCl.js now copies it to
- a new array in `nacl.box.keyPair.fromSecretKey` and
- `nacl.sign.keyPair.fromSecretKey`.
-
-
-v0.11.2
--------
-
-* Added new constant: `nacl.sign.seedLength`.
-
-
-v0.11.1
--------
-
-* Even faster hash for both short and long inputs (in `nacl-fast`).
-
-
-v0.11.0
--------
-
-* Implement `nacl.sign.keyPair.fromSeed` to enable creation of sign key pairs
- deterministically from a 32-byte seed. (It behaves like
- [libsodium's](http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html)
- `crypto_sign_seed_keypair`: the seed becomes a secret part of the secret key.)
-
-* Fast version now has an improved hash implementation that is 2x-5x faster.
-
-* Fixed benchmarks, which may have produced incorrect measurements.
-
-
-v0.10.1
--------
-
-* Exported undocumented `nacl.lowlevel.crypto_core_hsalsa20`.
-
-
-v0.10.0
--------
-
-* **Signature API breaking change!** `nacl.sign` and `nacl.sign.open` now deal
- with signed messages, and new `nacl.sign.detached` and
- `nacl.sign.detached.verify` are available.
-
- Previously, `nacl.sign` returned a signature, and `nacl.sign.open` accepted a
- message and "detached" signature. This was unlike NaCl's API, which dealt with
- signed messages (concatenation of signature and message).
-
- The new API is:
-
- nacl.sign(message, secretKey) -> signedMessage
- nacl.sign.open(signedMessage, publicKey) -> message | null
-
- Since detached signatures are common, two new API functions were introduced:
-
- nacl.sign.detached(message, secretKey) -> signature
- nacl.sign.detached.verify(message, signature, publicKey) -> true | false
-
- (Note that it's `verify`, not `open`, and it returns a boolean value, unlike
- `open`, which returns an "unsigned" message.)
-
-* NPM package now comes without `test` directory to keep it small.
-
-
-v0.9.2
-------
-
-* Improved documentation.
-* Fast version: increased theoretical message size limit from 2^32-1 to 2^52
- bytes in Poly1305 (and thus, secretbox and box). However this has no impact
- in practice since JavaScript arrays or ArrayBuffers are limited to 32-bit
- indexes, and most implementations won't allocate more than a gigabyte or so.
- (Obviously, there are no tests for the correctness of implementation.) Also,
- it's not recommended to use messages that large without splitting them into
- smaller packets anyway.
-
-
-v0.9.1
-------
-
-* Initial release
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json
deleted file mode 100644
index 1fb2ddaf56..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/package.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "_from": "tweetnacl@~0.14.0",
- "_id": "tweetnacl@0.14.5",
- "_integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
- "_location": "/request/http-signature/sshpk/tweetnacl",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "tweetnacl@~0.14.0",
- "name": "tweetnacl",
- "escapedName": "tweetnacl",
- "rawSpec": "~0.14.0",
- "saveSpec": null,
- "fetchSpec": "~0.14.0"
- },
- "_requiredBy": [
- "/request/http-signature/sshpk",
- "/request/http-signature/sshpk/bcrypt-pbkdf"
- ],
- "_resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "_shasum": "5ae68177f192d4456269d108afa93ff8743f4f64",
- "_shrinkwrap": null,
- "_spec": "tweetnacl@~0.14.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk",
- "author": {
- "name": "TweetNaCl-js contributors"
- },
- "bin": null,
- "browser": {
- "buffer": false,
- "crypto": false
- },
- "bugs": {
- "url": "https://github.com/dchest/tweetnacl-js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Port of TweetNaCl cryptographic library to JavaScript",
- "devDependencies": {
- "browserify": "^13.0.0",
- "eslint": "^2.2.0",
- "faucet": "^0.0.1",
- "tap-browser-color": "^0.1.2",
- "tape": "^4.4.0",
- "tape-run": "^2.1.3",
- "tweetnacl-util": "^0.13.3",
- "uglify-js": "^2.6.1"
- },
- "directories": {
- "test": "test"
- },
- "homepage": "https://tweetnacl.js.org",
- "keywords": [
- "crypto",
- "cryptography",
- "curve25519",
- "ed25519",
- "encrypt",
- "hash",
- "key",
- "nacl",
- "poly1305",
- "public",
- "salsa20",
- "signatures"
- ],
- "license": "Unlicense",
- "main": "nacl-fast.js",
- "name": "tweetnacl",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/dchest/tweetnacl-js.git"
- },
- "scripts": {
- "bench": "node test/benchmark/bench.js",
- "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js",
- "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null",
- "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js",
- "test": "npm run test-node-all && npm run test-browser",
- "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet",
- "test-node": "tape test/*.js | faucet",
- "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet"
- },
- "types": "nacl.d.ts",
- "version": "0.14.5"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json b/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json
deleted file mode 100644
index 07f1551a4e..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/package.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "_from": "sshpk@^1.7.0",
- "_id": "sshpk@1.13.1",
- "_inBundle": false,
- "_integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
- "_location": "/request/http-signature/sshpk",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "sshpk@^1.7.0",
- "name": "sshpk",
- "escapedName": "sshpk",
- "rawSpec": "^1.7.0",
- "saveSpec": null,
- "fetchSpec": "^1.7.0"
- },
- "_requiredBy": [
- "/request/http-signature"
- ],
- "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "_shasum": "512df6da6287144316dc4c18fe1cf1d940739be3",
- "_spec": "sshpk@^1.7.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature",
- "author": {
- "name": "Joyent, Inc"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "bugs": {
- "url": "https://github.com/arekinath/node-sshpk/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Dave Eddy",
- "email": "dave@daveeddy.com"
- },
- {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- {
- "name": "Alex Wilson",
- "email": "alex@cooperi.net"
- }
- ],
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "tweetnacl": "~0.14.0"
- },
- "deprecated": false,
- "description": "A library for finding and using SSH public keys",
- "devDependencies": {
- "benchmark": "^1.0.0",
- "sinon": "^1.17.2",
- "tape": "^3.5.0",
- "temp": "^0.8.2"
- },
- "directories": {
- "bin": "./bin",
- "lib": "./lib",
- "man": "./man/man1"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "homepage": "https://github.com/arekinath/node-sshpk#readme",
- "license": "MIT",
- "main": "lib/index.js",
- "man": [
- "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1",
- "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1",
- "/Users/rebecca/code/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1"
- ],
- "name": "sshpk",
- "optionalDependencies": {
- "bcrypt-pbkdf": "^1.0.0",
- "ecc-jsbn": "~0.1.1",
- "jsbn": "~0.1.0",
- "tweetnacl": "~0.14.0"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/arekinath/node-sshpk.git"
- },
- "scripts": {
- "test": "tape test/*.js"
- },
- "version": "1.13.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/package.json b/deps/npm/node_modules/request/node_modules/http-signature/package.json
deleted file mode 100644
index aff849e18e..0000000000
--- a/deps/npm/node_modules/request/node_modules/http-signature/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "http-signature@~1.2.0",
- "_id": "http-signature@1.2.0",
- "_inBundle": false,
- "_integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "_location": "/request/http-signature",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "http-signature@~1.2.0",
- "name": "http-signature",
- "escapedName": "http-signature",
- "rawSpec": "~1.2.0",
- "saveSpec": null,
- "fetchSpec": "~1.2.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "_shasum": "9aecd925114772f3d95b65a60abb8f7c18fbace1",
- "_spec": "http-signature@~1.2.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Joyent, Inc"
- },
- "bugs": {
- "url": "https://github.com/joyent/node-http-signature/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Mark Cavage",
- "email": "mcavage@gmail.com"
- },
- {
- "name": "David I. Lehn",
- "email": "dil@lehn.org"
- },
- {
- "name": "Patrick Mooney",
- "email": "patrick.f.mooney@gmail.com"
- }
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "deprecated": false,
- "description": "Reference implementation of Joyent's HTTP Signature scheme.",
- "devDependencies": {
- "tap": "0.4.2",
- "uuid": "^2.0.2"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- },
- "homepage": "https://github.com/joyent/node-http-signature/",
- "keywords": [
- "https",
- "request"
- ],
- "license": "MIT",
- "main": "lib/index.js",
- "name": "http-signature",
- "repository": {
- "type": "git",
- "url": "git://github.com/joyent/node-http-signature.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "1.2.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/is-typedarray/package.json b/deps/npm/node_modules/request/node_modules/is-typedarray/package.json
deleted file mode 100644
index 5ae00272c2..0000000000
--- a/deps/npm/node_modules/request/node_modules/is-typedarray/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "is-typedarray@~1.0.0",
- "_id": "is-typedarray@1.0.0",
- "_integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
- "_location": "/request/is-typedarray",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-typedarray@~1.0.0",
- "name": "is-typedarray",
- "escapedName": "is-typedarray",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "_shasum": "e479c80858df0c1b11ddda6940f96011fcda4a9a",
- "_shrinkwrap": null,
- "_spec": "is-typedarray@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Hugh Kennedy",
- "email": "hughskennedy@gmail.com",
- "url": "http://hughsk.io/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/hughsk/is-typedarray/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Detect whether or not an object is a Typed Array",
- "devDependencies": {
- "tape": "^2.13.1"
- },
- "homepage": "https://github.com/hughsk/is-typedarray",
- "keywords": [
- "typed",
- "array",
- "detect",
- "is",
- "util"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "is-typedarray",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/hughsk/is-typedarray.git"
- },
- "scripts": {
- "test": "node test"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/isstream/package.json b/deps/npm/node_modules/request/node_modules/isstream/package.json
deleted file mode 100644
index 6e00cdb110..0000000000
--- a/deps/npm/node_modules/request/node_modules/isstream/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "isstream@~0.1.2",
- "_id": "isstream@0.1.2",
- "_integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
- "_location": "/request/isstream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "isstream@~0.1.2",
- "name": "isstream",
- "escapedName": "isstream",
- "rawSpec": "~0.1.2",
- "saveSpec": null,
- "fetchSpec": "~0.1.2"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "_shasum": "47e63f7af55afa6f92e1500e690eb8b8529c099a",
- "_shrinkwrap": null,
- "_spec": "isstream@~0.1.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Rod Vagg",
- "email": "rod@vagg.org"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/rvagg/isstream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Determine if an object is a Stream",
- "devDependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x",
- "tape": "~2.12.3"
- },
- "homepage": "https://github.com/rvagg/isstream",
- "keywords": [
- "stream",
- "type",
- "streams",
- "readable-stream",
- "hippo"
- ],
- "license": "MIT",
- "main": "isstream.js",
- "name": "isstream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rvagg/isstream.git"
- },
- "scripts": {
- "test": "tar --xform 's/^package/readable-stream-1.0/' -zxf readable-stream-1.0.*.tgz && tar --xform 's/^package/readable-stream-1.1/' -zxf readable-stream-1.1.*.tgz && node test.js; rm -rf readable-stream-1.?/"
- },
- "version": "0.1.2"
-}
diff --git a/deps/npm/node_modules/request/node_modules/isstream/test.js b/deps/npm/node_modules/request/node_modules/isstream/test.js
deleted file mode 100644
index 8c950c55e6..0000000000
--- a/deps/npm/node_modules/request/node_modules/isstream/test.js
+++ /dev/null
@@ -1,168 +0,0 @@
-var tape = require('tape')
- , EE = require('events').EventEmitter
- , util = require('util')
-
-
- , isStream = require('./')
- , isReadable = require('./').isReadable
- , isWritable = require('./').isWritable
- , isDuplex = require('./').isDuplex
-
- , CoreStreams = require('stream')
- , ReadableStream10 = require('./readable-stream-1.0/')
- , ReadableStream11 = require('./readable-stream-1.1/')
-
-
-function test (pass, type, stream) {
- tape('isStream(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isStream(stream), type)
- })
-}
-
-
-function testReadable (pass, type, stream) {
- tape('isReadable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isReadable(stream), type)
- })
-}
-
-
-function testWritable (pass, type, stream) {
- tape('isWritable(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isWritable(stream), type)
- })
-}
-
-
-function testDuplex (pass, type, stream) {
- tape('isDuplex(' + type + ')', function (t) {
- t.plan(1)
- t.ok(pass === isDuplex(stream), type)
- })
-}
-
-
-[ undefined, null, '', true, false, 0, 1, 1.0, 'string', {}, function foo () {} ].forEach(function (o) {
- test(false, 'non-stream / primitive: ' + (JSON.stringify(o) || (o && o.toString()) || o), o)
-})
-
-
-test(false, 'fake stream obj', { pipe: function () {} })
-
-
-;(function () {
-
- // looks like a stream!
-
- function Stream () {
- EE.call(this)
- }
- util.inherits(Stream, EE)
- Stream.prototype.pipe = function () {}
- Stream.Stream = Stream
-
- test(false, 'fake stream "new Stream()"', new Stream())
-
-}())
-
-
-test(true, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-test(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-test(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-test(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-test(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-test(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-test(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-test(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-test(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-test(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-test(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-test(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-test(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-test(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-test(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-test(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testReadable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testReadable(true, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testReadable(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testReadable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testReadable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testReadable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testReadable(true, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testReadable(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testReadable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testReadable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testReadable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testReadable(true, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testReadable(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testReadable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testReadable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testReadable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testWritable(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testWritable(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testWritable(true, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testWritable(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testWritable(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testWritable(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testWritable(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testWritable(true, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testWritable(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testWritable(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testWritable(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testWritable(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testWritable(true, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testWritable(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testWritable(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testWritable(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-testDuplex(false, 'CoreStreams.Stream', new (CoreStreams.Stream)())
-testDuplex(false, 'CoreStreams.Readable', new (CoreStreams.Readable)())
-testDuplex(false, 'CoreStreams.Writable', new (CoreStreams.Writable)())
-testDuplex(true, 'CoreStreams.Duplex', new (CoreStreams.Duplex)())
-testDuplex(true, 'CoreStreams.Transform', new (CoreStreams.Transform)())
-testDuplex(true, 'CoreStreams.PassThrough', new (CoreStreams.PassThrough)())
-
-testDuplex(false, 'ReadableStream10.Readable', new (ReadableStream10.Readable)())
-testDuplex(false, 'ReadableStream10.Writable', new (ReadableStream10.Writable)())
-testDuplex(true, 'ReadableStream10.Duplex', new (ReadableStream10.Duplex)())
-testDuplex(true, 'ReadableStream10.Transform', new (ReadableStream10.Transform)())
-testDuplex(true, 'ReadableStream10.PassThrough', new (ReadableStream10.PassThrough)())
-
-testDuplex(false, 'ReadableStream11.Readable', new (ReadableStream11.Readable)())
-testDuplex(false, 'ReadableStream11.Writable', new (ReadableStream11.Writable)())
-testDuplex(true, 'ReadableStream11.Duplex', new (ReadableStream11.Duplex)())
-testDuplex(true, 'ReadableStream11.Transform', new (ReadableStream11.Transform)())
-testDuplex(true, 'ReadableStream11.PassThrough', new (ReadableStream11.PassThrough)())
-
-
-;[ CoreStreams, ReadableStream10, ReadableStream11 ].forEach(function (p) {
- [ 'Stream', 'Readable', 'Writable', 'Duplex', 'Transform', 'PassThrough' ].forEach(function (k) {
- if (!p[k])
- return
-
- function SubStream () {
- p[k].call(this)
- }
- util.inherits(SubStream, p[k])
-
- test(true, 'Stream subclass: ' + p.name + '.' + k, new SubStream())
-
- })
-})
-
-
-
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md b/deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md
deleted file mode 100644
index 42bcb60af4..0000000000
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/CHANGELOG.md
+++ /dev/null
@@ -1,14 +0,0 @@
-## Unreleased
-- Fixes stringify to only take ancestors into account when checking
- circularity.
- It previously assumed every visited object was circular which led to [false
- positives][issue9].
- Uses the tiny serializer I wrote for [Must.js][must] a year and a half ago.
-- Fixes calling the `replacer` function in the proper context (`thisArg`).
-- Fixes calling the `cycleReplacer` function in the proper context (`thisArg`).
-- Speeds serializing by a factor of
- Big-O(h-my-god-it-linearly-searched-every-object) it had ever seen. Searching
- only the ancestors for a circular references speeds up things considerably.
-
-[must]: https://github.com/moll/js-must
-[issue9]: https://github.com/isaacs/json-stringify-safe/issues/9
diff --git a/deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE b/deps/npm/node_modules/request/node_modules/json-stringify-safe/LICENSE
deleted file mode 100644
index 19129e315f..0000000000
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/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/request/node_modules/json-stringify-safe/package.json b/deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json
deleted file mode 100644
index 40cfac9c10..0000000000
--- a/deps/npm/node_modules/request/node_modules/json-stringify-safe/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "json-stringify-safe@~5.0.1",
- "_id": "json-stringify-safe@5.0.1",
- "_integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
- "_location": "/request/json-stringify-safe",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "json-stringify-safe@~5.0.1",
- "name": "json-stringify-safe",
- "escapedName": "json-stringify-safe",
- "rawSpec": "~5.0.1",
- "saveSpec": null,
- "fetchSpec": "~5.0.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "_shasum": "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb",
- "_shrinkwrap": null,
- "_spec": "json-stringify-safe@~5.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/json-stringify-safe/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Andri Mƶll",
- "email": "andri@dot.ee",
- "url": "http://themoll.com"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "Like JSON.stringify, but doesn't blow up on circular refs.",
- "devDependencies": {
- "mocha": ">= 2.1.0 < 3",
- "must": ">= 0.12 < 0.13",
- "sinon": ">= 1.12.2 < 2"
- },
- "homepage": "https://github.com/isaacs/json-stringify-safe",
- "keywords": [
- "json",
- "stringify",
- "circular",
- "safe"
- ],
- "license": "ISC",
- "main": "stringify.js",
- "name": "json-stringify-safe",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/json-stringify-safe.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "5.0.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md b/deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md
deleted file mode 100644
index 7517c11a73..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/HISTORY.md
+++ /dev/null
@@ -1,247 +0,0 @@
-2.1.17 / 2017-09-01
-===================
-
- * deps: mime-db@~1.30.0
- - Add `application/vnd.ms-outlook`
- - Add `application/x-arj`
- - Add extension `.mjs` to `application/javascript`
- - Add glTF types and extensions
- - Add new upstream MIME types
- - Add `text/x-org`
- - Add VirtualBox MIME types
- - Fix `source` records for `video/*` types that are IANA
- - Update `font/opentype` to registered `font/otf`
-
-2.1.16 / 2017-07-24
-===================
-
- * deps: mime-db@~1.29.0
- - Add `application/fido.trusted-apps+json`
- - Add extension `.wadl` to `application/vnd.sun.wadl+xml`
- - Add extension `.gz` to `application/gzip`
- - Add new upstream MIME types
- - Update extensions `.md` and `.markdown` to be `text/markdown`
-
-2.1.15 / 2017-03-23
-===================
-
- * deps: mime-db@~1.27.0
- - Add new mime types
- - Add `image/apng`
-
-2.1.14 / 2017-01-14
-===================
-
- * deps: mime-db@~1.26.0
- - Add new mime types
-
-2.1.13 / 2016-11-18
-===================
-
- * deps: mime-db@~1.25.0
- - Add new mime types
-
-2.1.12 / 2016-09-18
-===================
-
- * deps: mime-db@~1.24.0
- - Add new mime types
- - Add `audio/mp3`
-
-2.1.11 / 2016-05-01
-===================
-
- * deps: mime-db@~1.23.0
- - Add new mime types
-
-2.1.10 / 2016-02-15
-===================
-
- * deps: mime-db@~1.22.0
- - Add new mime types
- - Fix extension of `application/dash+xml`
- - Update primary extension for `audio/mp4`
-
-2.1.9 / 2016-01-06
-==================
-
- * deps: mime-db@~1.21.0
- - Add new mime types
-
-2.1.8 / 2015-11-30
-==================
-
- * deps: mime-db@~1.20.0
- - Add new mime types
-
-2.1.7 / 2015-09-20
-==================
-
- * deps: mime-db@~1.19.0
- - Add new mime types
-
-2.1.6 / 2015-09-03
-==================
-
- * deps: mime-db@~1.18.0
- - Add new mime types
-
-2.1.5 / 2015-08-20
-==================
-
- * deps: mime-db@~1.17.0
- - Add new mime types
-
-2.1.4 / 2015-07-30
-==================
-
- * deps: mime-db@~1.16.0
- - Add new mime types
-
-2.1.3 / 2015-07-13
-==================
-
- * deps: mime-db@~1.15.0
- - Add new mime types
-
-2.1.2 / 2015-06-25
-==================
-
- * deps: mime-db@~1.14.0
- - Add new mime types
-
-2.1.1 / 2015-06-08
-==================
-
- * perf: fix deopt during mapping
-
-2.1.0 / 2015-06-07
-==================
-
- * Fix incorrectly treating extension-less file name as extension
- - i.e. `'path/to/json'` will no longer return `application/json`
- * Fix `.charset(type)` to accept parameters
- * Fix `.charset(type)` to match case-insensitive
- * Improve generation of extension to MIME mapping
- * Refactor internals for readability and no argument reassignment
- * Prefer `application/*` MIME types from the same source
- * Prefer any type over `application/octet-stream`
- * deps: mime-db@~1.13.0
- - Add nginx as a source
- - Add new mime types
-
-2.0.14 / 2015-06-06
-===================
-
- * deps: mime-db@~1.12.0
- - Add new mime types
-
-2.0.13 / 2015-05-31
-===================
-
- * deps: mime-db@~1.11.0
- - Add new mime types
-
-2.0.12 / 2015-05-19
-===================
-
- * deps: mime-db@~1.10.0
- - Add new mime types
-
-2.0.11 / 2015-05-05
-===================
-
- * deps: mime-db@~1.9.1
- - Add new mime types
-
-2.0.10 / 2015-03-13
-===================
-
- * deps: mime-db@~1.8.0
- - Add new mime types
-
-2.0.9 / 2015-02-09
-==================
-
- * deps: mime-db@~1.7.0
- - Add new mime types
- - Community extensions ownership transferred from `node-mime`
-
-2.0.8 / 2015-01-29
-==================
-
- * deps: mime-db@~1.6.0
- - Add new mime types
-
-2.0.7 / 2014-12-30
-==================
-
- * deps: mime-db@~1.5.0
- - Add new mime types
- - Fix various invalid MIME type entries
-
-2.0.6 / 2014-12-30
-==================
-
- * deps: mime-db@~1.4.0
- - Add new mime types
- - Fix various invalid MIME type entries
- - Remove example template MIME types
-
-2.0.5 / 2014-12-29
-==================
-
- * deps: mime-db@~1.3.1
- - Fix missing extensions
-
-2.0.4 / 2014-12-10
-==================
-
- * deps: mime-db@~1.3.0
- - Add new mime types
-
-2.0.3 / 2014-11-09
-==================
-
- * deps: mime-db@~1.2.0
- - Add new mime types
-
-2.0.2 / 2014-09-28
-==================
-
- * deps: mime-db@~1.1.0
- - Add new mime types
- - Add additional compressible
- - Update charsets
-
-2.0.1 / 2014-09-07
-==================
-
- * Support Node.js 0.6
-
-2.0.0 / 2014-09-02
-==================
-
- * Use `mime-db`
- * Remove `.define()`
-
-1.0.2 / 2014-08-04
-==================
-
- * Set charset=utf-8 for `text/javascript`
-
-1.0.1 / 2014-06-24
-==================
-
- * Add `text/jsx` type
-
-1.0.0 / 2014-05-12
-==================
-
- * Return `false` for unknown types
- * Set charset=utf-8 for `application/json`
-
-0.1.0 / 2014-05-02
-==================
-
- * Initial release
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/README.md b/deps/npm/node_modules/request/node_modules/mime-types/README.md
deleted file mode 100644
index 571031c90b..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/README.md
+++ /dev/null
@@ -1,108 +0,0 @@
-# mime-types
-
-[![NPM Version][npm-image]][npm-url]
-[![NPM Downloads][downloads-image]][downloads-url]
-[![Node.js Version][node-version-image]][node-version-url]
-[![Build Status][travis-image]][travis-url]
-[![Test Coverage][coveralls-image]][coveralls-url]
-
-The ultimate javascript content-type utility.
-
-Similar to [the `mime` module](https://www.npmjs.com/package/mime), except:
-
-- __No fallbacks.__ Instead of naively returning the first available type,
- `mime-types` simply returns `false`, so do
- `var type = mime.lookup('unrecognized') || 'application/octet-stream'`.
-- No `new Mime()` business, so you could do `var lookup = require('mime-types').lookup`.
-- No `.define()` functionality
-- Bug fixes for `.lookup(path)`
-
-Otherwise, the API is compatible.
-
-## Install
-
-This is a [Node.js](https://nodejs.org/en/) module available through the
-[npm registry](https://www.npmjs.com/). Installation is done using the
-[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally):
-
-```sh
-$ npm install mime-types
-```
-
-## Adding Types
-
-All mime types are based on [mime-db](https://www.npmjs.com/package/mime-db),
-so open a PR there if you'd like to add mime types.
-
-## API
-
-```js
-var mime = require('mime-types')
-```
-
-All functions return `false` if input is invalid or not found.
-
-### mime.lookup(path)
-
-Lookup the content-type associated with a file.
-
-```js
-mime.lookup('json') // 'application/json'
-mime.lookup('.md') // 'text/markdown'
-mime.lookup('file.html') // 'text/html'
-mime.lookup('folder/file.js') // 'application/javascript'
-mime.lookup('folder/.htaccess') // false
-
-mime.lookup('cats') // false
-```
-
-### mime.contentType(type)
-
-Create a full content-type header given a content-type or extension.
-
-```js
-mime.contentType('markdown') // 'text/x-markdown; charset=utf-8'
-mime.contentType('file.json') // 'application/json; charset=utf-8'
-
-// from a full path
-mime.contentType(path.extname('/path/to/file.json')) // 'application/json; charset=utf-8'
-```
-
-### mime.extension(type)
-
-Get the default extension for a content-type.
-
-```js
-mime.extension('application/octet-stream') // 'bin'
-```
-
-### mime.charset(type)
-
-Lookup the implied default charset of a content-type.
-
-```js
-mime.charset('text/markdown') // 'UTF-8'
-```
-
-### var type = mime.types[extension]
-
-A map of content-types by extension.
-
-### [extensions...] = mime.extensions[type]
-
-A map of extensions by content-type.
-
-## License
-
-[MIT](LICENSE)
-
-[npm-image]: https://img.shields.io/npm/v/mime-types.svg
-[npm-url]: https://npmjs.org/package/mime-types
-[node-version-image]: https://img.shields.io/node/v/mime-types.svg
-[node-version-url]: https://nodejs.org/en/download/
-[travis-image]: https://img.shields.io/travis/jshttp/mime-types/master.svg
-[travis-url]: https://travis-ci.org/jshttp/mime-types
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-types/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/mime-types
-[downloads-image]: https://img.shields.io/npm/dm/mime-types.svg
-[downloads-url]: https://npmjs.org/package/mime-types
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md b/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md
deleted file mode 100644
index b2870c40e0..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/HISTORY.md
+++ /dev/null
@@ -1,343 +0,0 @@
-1.30.0 / 2017-08-27
-===================
-
- * Add `application/vnd.ms-outlook`
- * Add `application/x-arj`
- * Add extension `.mjs` to `application/javascript`
- * Add glTF types and extensions
- * Add new upstream MIME types
- * Add `text/x-org`
- * Add VirtualBox MIME types
- * Fix `source` records for `video/*` types that are IANA
- * Update `font/opentype` to registered `font/otf`
-
-1.29.0 / 2017-07-10
-===================
-
- * Add `application/fido.trusted-apps+json`
- * Add extension `.wadl` to `application/vnd.sun.wadl+xml`
- * Add new upstream MIME types
- * Add `UTF-8` as default charset for `text/css`
-
-1.28.0 / 2017-05-14
-===================
-
- * Add new upstream MIME types
- * Add extension `.gz` to `application/gzip`
- * Update extensions `.md` and `.markdown` to be `text/markdown`
-
-1.27.0 / 2017-03-16
-===================
-
- * Add new upstream MIME types
- * Add `image/apng` with extension `.apng`
-
-1.26.0 / 2017-01-14
-===================
-
- * Add new upstream MIME types
- * Add extension `.geojson` to `application/geo+json`
-
-1.25.0 / 2016-11-11
-===================
-
- * Add new upstream MIME types
-
-1.24.0 / 2016-09-18
-===================
-
- * Add `audio/mp3`
- * Add new upstream MIME types
-
-1.23.0 / 2016-05-01
-===================
-
- * Add new upstream MIME types
- * Add extension `.3gpp` to `audio/3gpp`
-
-1.22.0 / 2016-02-15
-===================
-
- * Add `text/slim`
- * Add extension `.rng` to `application/xml`
- * Add new upstream MIME types
- * Fix extension of `application/dash+xml` to be `.mpd`
- * Update primary extension to `.m4a` for `audio/mp4`
-
-1.21.0 / 2016-01-06
-===================
-
- * Add Google document types
- * Add new upstream MIME types
-
-1.20.0 / 2015-11-10
-===================
-
- * Add `text/x-suse-ymp`
- * Add new upstream MIME types
-
-1.19.0 / 2015-09-17
-===================
-
- * Add `application/vnd.apple.pkpass`
- * Add new upstream MIME types
-
-1.18.0 / 2015-09-03
-===================
-
- * Add new upstream MIME types
-
-1.17.0 / 2015-08-13
-===================
-
- * Add `application/x-msdos-program`
- * Add `audio/g711-0`
- * Add `image/vnd.mozilla.apng`
- * Add extension `.exe` to `application/x-msdos-program`
-
-1.16.0 / 2015-07-29
-===================
-
- * Add `application/vnd.uri-map`
-
-1.15.0 / 2015-07-13
-===================
-
- * Add `application/x-httpd-php`
-
-1.14.0 / 2015-06-25
-===================
-
- * Add `application/scim+json`
- * Add `application/vnd.3gpp.ussd+xml`
- * Add `application/vnd.biopax.rdf+xml`
- * Add `text/x-processing`
-
-1.13.0 / 2015-06-07
-===================
-
- * Add nginx as a source
- * Add `application/x-cocoa`
- * Add `application/x-java-archive-diff`
- * Add `application/x-makeself`
- * Add `application/x-perl`
- * Add `application/x-pilot`
- * Add `application/x-redhat-package-manager`
- * Add `application/x-sea`
- * Add `audio/x-m4a`
- * Add `audio/x-realaudio`
- * Add `image/x-jng`
- * Add `text/mathml`
-
-1.12.0 / 2015-06-05
-===================
-
- * Add `application/bdoc`
- * Add `application/vnd.hyperdrive+json`
- * Add `application/x-bdoc`
- * Add extension `.rtf` to `text/rtf`
-
-1.11.0 / 2015-05-31
-===================
-
- * Add `audio/wav`
- * Add `audio/wave`
- * Add extension `.litcoffee` to `text/coffeescript`
- * Add extension `.sfd-hdstx` to `application/vnd.hydrostatix.sof-data`
- * Add extension `.n-gage` to `application/vnd.nokia.n-gage.symbian.install`
-
-1.10.0 / 2015-05-19
-===================
-
- * Add `application/vnd.balsamiq.bmpr`
- * Add `application/vnd.microsoft.portable-executable`
- * Add `application/x-ns-proxy-autoconfig`
-
-1.9.1 / 2015-04-19
-==================
-
- * Remove `.json` extension from `application/manifest+json`
- - This is causing bugs downstream
-
-1.9.0 / 2015-04-19
-==================
-
- * Add `application/manifest+json`
- * Add `application/vnd.micro+json`
- * Add `image/vnd.zbrush.pcx`
- * Add `image/x-ms-bmp`
-
-1.8.0 / 2015-03-13
-==================
-
- * Add `application/vnd.citationstyles.style+xml`
- * Add `application/vnd.fastcopy-disk-image`
- * Add `application/vnd.gov.sk.xmldatacontainer+xml`
- * Add extension `.jsonld` to `application/ld+json`
-
-1.7.0 / 2015-02-08
-==================
-
- * Add `application/vnd.gerber`
- * Add `application/vnd.msa-disk-image`
-
-1.6.1 / 2015-02-05
-==================
-
- * Community extensions ownership transferred from `node-mime`
-
-1.6.0 / 2015-01-29
-==================
-
- * Add `application/jose`
- * Add `application/jose+json`
- * Add `application/json-seq`
- * Add `application/jwk+json`
- * Add `application/jwk-set+json`
- * Add `application/jwt`
- * Add `application/rdap+json`
- * Add `application/vnd.gov.sk.e-form+xml`
- * Add `application/vnd.ims.imsccv1p3`
-
-1.5.0 / 2014-12-30
-==================
-
- * Add `application/vnd.oracle.resource+json`
- * Fix various invalid MIME type entries
- - `application/mbox+xml`
- - `application/oscp-response`
- - `application/vwg-multiplexed`
- - `audio/g721`
-
-1.4.0 / 2014-12-21
-==================
-
- * Add `application/vnd.ims.imsccv1p2`
- * Fix various invalid MIME type entries
- - `application/vnd-acucobol`
- - `application/vnd-curl`
- - `application/vnd-dart`
- - `application/vnd-dxr`
- - `application/vnd-fdf`
- - `application/vnd-mif`
- - `application/vnd-sema`
- - `application/vnd-wap-wmlc`
- - `application/vnd.adobe.flash-movie`
- - `application/vnd.dece-zip`
- - `application/vnd.dvb_service`
- - `application/vnd.micrografx-igx`
- - `application/vnd.sealed-doc`
- - `application/vnd.sealed-eml`
- - `application/vnd.sealed-mht`
- - `application/vnd.sealed-ppt`
- - `application/vnd.sealed-tiff`
- - `application/vnd.sealed-xls`
- - `application/vnd.sealedmedia.softseal-html`
- - `application/vnd.sealedmedia.softseal-pdf`
- - `application/vnd.wap-slc`
- - `application/vnd.wap-wbxml`
- - `audio/vnd.sealedmedia.softseal-mpeg`
- - `image/vnd-djvu`
- - `image/vnd-svf`
- - `image/vnd-wap-wbmp`
- - `image/vnd.sealed-png`
- - `image/vnd.sealedmedia.softseal-gif`
- - `image/vnd.sealedmedia.softseal-jpg`
- - `model/vnd-dwf`
- - `model/vnd.parasolid.transmit-binary`
- - `model/vnd.parasolid.transmit-text`
- - `text/vnd-a`
- - `text/vnd-curl`
- - `text/vnd.wap-wml`
- * Remove example template MIME types
- - `application/example`
- - `audio/example`
- - `image/example`
- - `message/example`
- - `model/example`
- - `multipart/example`
- - `text/example`
- - `video/example`
-
-1.3.1 / 2014-12-16
-==================
-
- * Fix missing extensions
- - `application/json5`
- - `text/hjson`
-
-1.3.0 / 2014-12-07
-==================
-
- * Add `application/a2l`
- * Add `application/aml`
- * Add `application/atfx`
- * Add `application/atxml`
- * Add `application/cdfx+xml`
- * Add `application/dii`
- * Add `application/json5`
- * Add `application/lxf`
- * Add `application/mf4`
- * Add `application/vnd.apache.thrift.compact`
- * Add `application/vnd.apache.thrift.json`
- * Add `application/vnd.coffeescript`
- * Add `application/vnd.enphase.envoy`
- * Add `application/vnd.ims.imsccv1p1`
- * Add `text/csv-schema`
- * Add `text/hjson`
- * Add `text/markdown`
- * Add `text/yaml`
-
-1.2.0 / 2014-11-09
-==================
-
- * Add `application/cea`
- * Add `application/dit`
- * Add `application/vnd.gov.sk.e-form+zip`
- * Add `application/vnd.tmd.mediaflex.api+xml`
- * Type `application/epub+zip` is now IANA-registered
-
-1.1.2 / 2014-10-23
-==================
-
- * Rebuild database for `application/x-www-form-urlencoded` change
-
-1.1.1 / 2014-10-20
-==================
-
- * Mark `application/x-www-form-urlencoded` as compressible.
-
-1.1.0 / 2014-09-28
-==================
-
- * Add `application/font-woff2`
-
-1.0.3 / 2014-09-25
-==================
-
- * Fix engine requirement in package
-
-1.0.2 / 2014-09-25
-==================
-
- * Add `application/coap-group+json`
- * Add `application/dcd`
- * Add `application/vnd.apache.thrift.binary`
- * Add `image/vnd.tencent.tap`
- * Mark all JSON-derived types as compressible
- * Update `text/vtt` data
-
-1.0.1 / 2014-08-30
-==================
-
- * Fix extension ordering
-
-1.0.0 / 2014-08-30
-==================
-
- * Add `application/atf`
- * Add `application/merge-patch+json`
- * Add `multipart/x-mixed-replace`
- * Add `source: 'apache'` metadata
- * Add `source: 'iana'` metadata
- * Remove badly-assumed charset data
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md b/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md
deleted file mode 100644
index 320c1c925c..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/README.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# mime-db
-
-[![NPM Version][npm-version-image]][npm-url]
-[![NPM Downloads][npm-downloads-image]][npm-url]
-[![Node.js Version][node-image]][node-url]
-[![Build Status][travis-image]][travis-url]
-[![Coverage Status][coveralls-image]][coveralls-url]
-
-This is a database of all mime types.
-It consists of a single, public JSON file and does not include any logic,
-allowing it to remain as un-opinionated as possible with an API.
-It aggregates data from the following sources:
-
-- http://www.iana.org/assignments/media-types/media-types.xhtml
-- http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types
-- http://hg.nginx.org/nginx/raw-file/default/conf/mime.types
-
-## Installation
-
-```bash
-npm install mime-db
-```
-
-### Database Download
-
-If you're crazy enough to use this in the browser, you can just grab the
-JSON file using [RawGit](https://rawgit.com/). It is recommended to replace
-`master` with [a release tag](https://github.com/jshttp/mime-db/tags) as the
-JSON format may change in the future.
-
-```
-https://cdn.rawgit.com/jshttp/mime-db/master/db.json
-```
-
-## Usage
-
-```js
-var db = require('mime-db');
-
-// grab data on .js files
-var data = db['application/javascript'];
-```
-
-## Data Structure
-
-The JSON file is a map lookup for lowercased mime types.
-Each mime type has the following properties:
-
-- `.source` - where the mime type is defined.
- If not set, it's probably a custom media type.
- - `apache` - [Apache common media types](http://svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types)
- - `iana` - [IANA-defined media types](http://www.iana.org/assignments/media-types/media-types.xhtml)
- - `nginx` - [nginx media types](http://hg.nginx.org/nginx/raw-file/default/conf/mime.types)
-- `.extensions[]` - known extensions associated with this mime type.
-- `.compressible` - whether a file of this type can be gzipped.
-- `.charset` - the default charset associated with this type, if any.
-
-If unknown, every property could be `undefined`.
-
-## Contributing
-
-To edit the database, only make PRs against `src/custom.json` or
-`src/custom-suffix.json`.
-
-The `src/custom.json` file is a JSON object with the MIME type as the keys
-and the values being an object with the following keys:
-
-- `compressible` - leave out if you don't know, otherwise `true`/`false` for
- if the data represented by the time is typically compressible.
-- `extensions` - include an array of file extensions that are associated with
- the type.
-- `notes` - human-readable notes about the type, typically what the type is.
-- `sources` - include an array of URLs of where the MIME type and the associated
- extensions are sourced from. This needs to be a [primary source](https://en.wikipedia.org/wiki/Primary_source);
- links to type aggregating sites and Wikipedia are _not acceptible_.
-
-To update the build, run `npm run build`.
-
-## Adding Custom Media Types
-
-The best way to get new media types included in this library is to register
-them with the IANA. The community registration procedure is outlined in
-[RFC 6838 section 5](http://tools.ietf.org/html/rfc6838#section-5). Types
-registered with the IANA are automatically pulled into this library.
-
-[npm-version-image]: https://img.shields.io/npm/v/mime-db.svg
-[npm-downloads-image]: https://img.shields.io/npm/dm/mime-db.svg
-[npm-url]: https://npmjs.org/package/mime-db
-[travis-image]: https://img.shields.io/travis/jshttp/mime-db/master.svg
-[travis-url]: https://travis-ci.org/jshttp/mime-db
-[coveralls-image]: https://img.shields.io/coveralls/jshttp/mime-db/master.svg
-[coveralls-url]: https://coveralls.io/r/jshttp/mime-db?branch=master
-[node-image]: https://img.shields.io/node/v/mime-db.svg
-[node-url]: http://nodejs.org/download/
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json b/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json
deleted file mode 100644
index 62ec5b7abc..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/node_modules/mime-db/package.json
+++ /dev/null
@@ -1,100 +0,0 @@
-{
- "_from": "mime-db@~1.30.0",
- "_id": "mime-db@1.30.0",
- "_inBundle": false,
- "_integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
- "_location": "/request/mime-types/mime-db",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "mime-db@~1.30.0",
- "name": "mime-db",
- "escapedName": "mime-db",
- "rawSpec": "~1.30.0",
- "saveSpec": null,
- "fetchSpec": "~1.30.0"
- },
- "_requiredBy": [
- "/request/mime-types"
- ],
- "_resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "_shasum": "74c643da2dd9d6a45399963465b26d5ca7d71f01",
- "_spec": "mime-db@~1.30.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request/node_modules/mime-types",
- "bugs": {
- "url": "https://github.com/jshttp/mime-db/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- },
- {
- "name": "Robert Kieffer",
- "email": "robert@broofa.com",
- "url": "http://github.com/broofa"
- }
- ],
- "deprecated": false,
- "description": "Media Type Database",
- "devDependencies": {
- "bluebird": "3.5.0",
- "co": "4.6.0",
- "cogent": "1.0.1",
- "csv-parse": "1.2.1",
- "eslint": "3.19.0",
- "eslint-config-standard": "10.2.1",
- "eslint-plugin-import": "2.7.0",
- "eslint-plugin-node": "5.1.1",
- "eslint-plugin-promise": "3.5.0",
- "eslint-plugin-standard": "3.0.1",
- "gnode": "0.1.2",
- "mocha": "1.21.5",
- "nyc": "11.1.0",
- "raw-body": "2.3.0",
- "stream-to-array": "2.3.0"
- },
- "engines": {
- "node": ">= 0.6"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "README.md",
- "db.json",
- "index.js"
- ],
- "homepage": "https://github.com/jshttp/mime-db#readme",
- "keywords": [
- "mime",
- "db",
- "type",
- "types",
- "database",
- "charset",
- "charsets"
- ],
- "license": "MIT",
- "name": "mime-db",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jshttp/mime-db.git"
- },
- "scripts": {
- "build": "node scripts/build",
- "fetch": "gnode scripts/fetch-apache && gnode scripts/fetch-iana && gnode scripts/fetch-nginx",
- "lint": "eslint .",
- "test": "mocha --reporter spec --bail --check-leaks test/",
- "test-cov": "nyc --reporter=html --reporter=text npm test",
- "test-travis": "nyc --reporter=text npm test",
- "update": "npm run fetch && npm run build"
- },
- "version": "1.30.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/mime-types/package.json b/deps/npm/node_modules/request/node_modules/mime-types/package.json
deleted file mode 100644
index 58244ce3e0..0000000000
--- a/deps/npm/node_modules/request/node_modules/mime-types/package.json
+++ /dev/null
@@ -1,87 +0,0 @@
-{
- "_from": "mime-types@~2.1.17",
- "_id": "mime-types@2.1.17",
- "_inBundle": false,
- "_integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
- "_location": "/request/mime-types",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "mime-types@~2.1.17",
- "name": "mime-types",
- "escapedName": "mime-types",
- "rawSpec": "~2.1.17",
- "saveSpec": null,
- "fetchSpec": "~2.1.17"
- },
- "_requiredBy": [
- "/request",
- "/request/form-data"
- ],
- "_resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "_shasum": "09d7a393f03e995a79f8af857b70a9e0ab16557a",
- "_spec": "mime-types@~2.1.17",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "bugs": {
- "url": "https://github.com/jshttp/mime-types/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Douglas Christopher Wilson",
- "email": "doug@somethingdoug.com"
- },
- {
- "name": "Jeremiah Senkpiel",
- "email": "fishrock123@rocketmail.com",
- "url": "https://searchbeam.jit.su"
- },
- {
- "name": "Jonathan Ong",
- "email": "me@jongleberry.com",
- "url": "http://jongleberry.com"
- }
- ],
- "dependencies": {
- "mime-db": "~1.30.0"
- },
- "deprecated": false,
- "description": "The ultimate javascript content-type utility.",
- "devDependencies": {
- "eslint": "3.19.0",
- "eslint-config-standard": "10.2.1",
- "eslint-plugin-import": "2.7.0",
- "eslint-plugin-node": "5.1.1",
- "eslint-plugin-promise": "3.5.0",
- "eslint-plugin-standard": "3.0.1",
- "istanbul": "0.4.5",
- "mocha": "1.21.5"
- },
- "engines": {
- "node": ">= 0.6"
- },
- "files": [
- "HISTORY.md",
- "LICENSE",
- "index.js"
- ],
- "homepage": "https://github.com/jshttp/mime-types#readme",
- "keywords": [
- "mime",
- "types"
- ],
- "license": "MIT",
- "name": "mime-types",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/jshttp/mime-types.git"
- },
- "scripts": {
- "lint": "eslint .",
- "test": "mocha --reporter spec test/test.js",
- "test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --reporter dot test/test.js",
- "test-travis": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --reporter dot test/test.js"
- },
- "version": "2.1.17"
-}
diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/README.md b/deps/npm/node_modules/request/node_modules/oauth-sign/README.md
deleted file mode 100644
index 34c4a85d2d..0000000000
--- a/deps/npm/node_modules/request/node_modules/oauth-sign/README.md
+++ /dev/null
@@ -1,4 +0,0 @@
-oauth-sign
-==========
-
-OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.
diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/index.js b/deps/npm/node_modules/request/node_modules/oauth-sign/index.js
deleted file mode 100644
index dadcba9709..0000000000
--- a/deps/npm/node_modules/request/node_modules/oauth-sign/index.js
+++ /dev/null
@@ -1,136 +0,0 @@
-var crypto = require('crypto')
- , qs = require('querystring')
- ;
-
-function sha1 (key, body) {
- return crypto.createHmac('sha1', key).update(body).digest('base64')
-}
-
-function rsa (key, body) {
- return crypto.createSign("RSA-SHA1").update(body).sign(key, 'base64');
-}
-
-function rfc3986 (str) {
- return encodeURIComponent(str)
- .replace(/!/g,'%21')
- .replace(/\*/g,'%2A')
- .replace(/\(/g,'%28')
- .replace(/\)/g,'%29')
- .replace(/'/g,'%27')
- ;
-}
-
-// Maps object to bi-dimensional array
-// Converts { foo: 'A', bar: [ 'b', 'B' ]} to
-// [ ['foo', 'A'], ['bar', 'b'], ['bar', 'B'] ]
-function map (obj) {
- var key, val, arr = []
- for (key in obj) {
- val = obj[key]
- if (Array.isArray(val))
- for (var i = 0; i < val.length; i++)
- arr.push([key, val[i]])
- else if (typeof val === "object")
- for (var prop in val)
- arr.push([key + '[' + prop + ']', val[prop]]);
- else
- arr.push([key, val])
- }
- return arr
-}
-
-// Compare function for sort
-function compare (a, b) {
- return a > b ? 1 : a < b ? -1 : 0
-}
-
-function generateBase (httpMethod, base_uri, params) {
- // adapted from https://dev.twitter.com/docs/auth/oauth and
- // https://dev.twitter.com/docs/auth/creating-signature
-
- // Parameter normalization
- // http://tools.ietf.org/html/rfc5849#section-3.4.1.3.2
- var normalized = map(params)
- // 1. First, the name and value of each parameter are encoded
- .map(function (p) {
- return [ rfc3986(p[0]), rfc3986(p[1] || '') ]
- })
- // 2. The parameters are sorted by name, using ascending byte value
- // ordering. If two or more parameters share the same name, they
- // are sorted by their value.
- .sort(function (a, b) {
- return compare(a[0], b[0]) || compare(a[1], b[1])
- })
- // 3. The name of each parameter is concatenated to its corresponding
- // value using an "=" character (ASCII code 61) as a separator, even
- // if the value is empty.
- .map(function (p) { return p.join('=') })
- // 4. The sorted name/value pairs are concatenated together into a
- // single string by using an "&" character (ASCII code 38) as
- // separator.
- .join('&')
-
- var base = [
- rfc3986(httpMethod ? httpMethod.toUpperCase() : 'GET'),
- rfc3986(base_uri),
- rfc3986(normalized)
- ].join('&')
-
- return base
-}
-
-function hmacsign (httpMethod, base_uri, params, consumer_secret, token_secret) {
- var base = generateBase(httpMethod, base_uri, params)
- var key = [
- consumer_secret || '',
- token_secret || ''
- ].map(rfc3986).join('&')
-
- return sha1(key, base)
-}
-
-function rsasign (httpMethod, base_uri, params, private_key, token_secret) {
- var base = generateBase(httpMethod, base_uri, params)
- var key = private_key || ''
-
- return rsa(key, base)
-}
-
-function plaintext (consumer_secret, token_secret) {
- var key = [
- consumer_secret || '',
- token_secret || ''
- ].map(rfc3986).join('&')
-
- return key
-}
-
-function sign (signMethod, httpMethod, base_uri, params, consumer_secret, token_secret) {
- var method
- var skipArgs = 1
-
- switch (signMethod) {
- case 'RSA-SHA1':
- method = rsasign
- break
- case 'HMAC-SHA1':
- method = hmacsign
- break
- case 'PLAINTEXT':
- method = plaintext
- skipArgs = 4
- break
- default:
- throw new Error("Signature method not supported: " + signMethod)
- }
-
- return method.apply(null, [].slice.call(arguments, skipArgs))
-}
-
-exports.hmacsign = hmacsign
-exports.rsasign = rsasign
-exports.plaintext = plaintext
-exports.sign = sign
-exports.rfc3986 = rfc3986
-exports.generateBase = generateBase
-
diff --git a/deps/npm/node_modules/request/node_modules/oauth-sign/package.json b/deps/npm/node_modules/request/node_modules/oauth-sign/package.json
deleted file mode 100644
index 365743b33a..0000000000
--- a/deps/npm/node_modules/request/node_modules/oauth-sign/package.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "_from": "oauth-sign@~0.8.1",
- "_id": "oauth-sign@0.8.2",
- "_integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "_location": "/request/oauth-sign",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "oauth-sign@~0.8.1",
- "name": "oauth-sign",
- "escapedName": "oauth-sign",
- "rawSpec": "~0.8.1",
- "saveSpec": null,
- "fetchSpec": "~0.8.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "_shasum": "46a6ab7f0aead8deae9ec0565780b7d4efeb9d43",
- "_shrinkwrap": null,
- "_spec": "oauth-sign@~0.8.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com",
- "url": "http://www.futurealoof.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mikeal/oauth-sign/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "OAuth 1 signing. Formerly a vendor lib in mikeal/request, now a standalone module.",
- "devDependencies": {},
- "engines": {
- "node": "*"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/mikeal/oauth-sign#readme",
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "oauth-sign",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "url": "git+https://github.com/mikeal/oauth-sign.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "0.8.2"
-}
diff --git a/deps/npm/node_modules/request/node_modules/performance-now/package.json b/deps/npm/node_modules/request/node_modules/performance-now/package.json
deleted file mode 100644
index 2322bf9418..0000000000
--- a/deps/npm/node_modules/request/node_modules/performance-now/package.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "_from": "performance-now@^2.1.0",
- "_id": "performance-now@2.1.0",
- "_inBundle": false,
- "_integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
- "_location": "/request/performance-now",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "performance-now@^2.1.0",
- "name": "performance-now",
- "escapedName": "performance-now",
- "rawSpec": "^2.1.0",
- "saveSpec": null,
- "fetchSpec": "^2.1.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "_shasum": "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b",
- "_spec": "performance-now@^2.1.0",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Braveg1rl",
- "email": "braveg1rl@outlook.com"
- },
- "bugs": {
- "url": "https://github.com/braveg1rl/performance-now/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Implements performance.now (based on process.hrtime).",
- "devDependencies": {
- "bluebird": "^3.4.7",
- "call-delayed": "^1.0.0",
- "chai": "^3.5.0",
- "chai-increasing": "^1.2.0",
- "coffee-script": "~1.12.2",
- "mocha": "~3.2.0",
- "pre-commit": "^1.2.2"
- },
- "homepage": "https://github.com/braveg1rl/performance-now",
- "keywords": [],
- "license": "MIT",
- "main": "lib/performance-now.js",
- "name": "performance-now",
- "optionalDependencies": {},
- "private": false,
- "repository": {
- "type": "git",
- "url": "git://github.com/braveg1rl/performance-now.git"
- },
- "scripts": {
- "build": "mkdir -p lib && rm -rf lib/* && node_modules/.bin/coffee --compile -m --output lib/ src/",
- "prepublish": "npm test",
- "pretest": "npm run build",
- "test": "mocha",
- "watch": "coffee --watch --compile --output lib/ src/"
- },
- "typings": "src/index.d.ts",
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md b/deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md
deleted file mode 100644
index 71d5a3e8f9..0000000000
--- a/deps/npm/node_modules/request/node_modules/qs/CHANGELOG.md
+++ /dev/null
@@ -1,221 +0,0 @@
-## **6.5.1**
-- [Fix] Fix parsing & compacting very deep objects (#224)
-- [Refactor] name utils functions
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`
-- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesnā€™t break older node
-- [Tests] Use precise dist for Node.js 0.6 runtime (#225)
-- [Tests] make 0.6 required, now that itā€™s passing
-- [Tests] on `node` `v8.2`; fix npm on node 0.6
-
-## **6.5.0**
-- [New] add `utils.assign`
-- [New] pass default encoder/decoder to custom encoder/decoder functions (#206)
-- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213)
-- [Fix] Handle stringifying empty objects with addQueryPrefix (#217)
-- [Fix] do not mutate `options` argument (#207)
-- [Refactor] `parse`: cache index to reuse in else statement (#182)
-- [Docs] add various badges to readme (#208)
-- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape`
-- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4
-- [Tests] add `editorconfig-tools`
-
-## **6.4.0**
-- [New] `qs.stringify`: add `encodeValuesOnly` option
-- [Fix] follow `allowPrototypes` option during merge (#201, #201)
-- [Fix] support keys starting with brackets (#202, #200)
-- [Fix] chmod a-x
-- [Dev Deps] update `eslint`
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-- [eslint] reduce warnings
-
-## **6.3.2**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Dev Deps] update `eslint`
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.3.1**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!)
-- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape`
-- [Tests] on all node minors; improve test matrix
-- [Docs] document stringify option `allowDots` (#195)
-- [Docs] add empty object and array values example (#195)
-- [Docs] Fix minor inconsistency/typo (#192)
-- [Docs] document stringify option `sort` (#191)
-- [Refactor] `stringify`: throw faster with an invalid encoder
-- [Refactor] remove unnecessary escapes (#184)
-- Remove contributing.md, since `qs` is no longer part of `hapi` (#183)
-
-## **6.3.0**
-- [New] Add support for RFC 1738 (#174, #173)
-- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159)
-- [Fix] ensure `utils.merge` handles merging two arrays
-- [Refactor] only constructors should be capitalized
-- [Refactor] capitalized var names are for constructors only
-- [Refactor] avoid using a sparse array
-- [Robustness] `formats`: cache `String#replace`
-- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest`
-- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix
-- [Tests] flesh out arrayLimit/arrayFormat tests (#107)
-- [Tests] skip Object.create tests when null objects are not available
-- [Tests] Turn on eslint for test files (#175)
-
-## **6.2.3**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.2.2**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-
-## **6.2.1**
-- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
-- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call`
-- [Tests] remove `parallelshell` since it does not reliably report failures
-- [Tests] up to `node` `v6.3`, `v5.12`
-- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv`
-
-## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed)
-- [New] pass Buffers to the encoder/decoder directly (#161)
-- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160)
-- [Fix] fix compacting of nested sparse arrays (#150)
-
-## **6.1.2
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.1.1**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-
-## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed)
-- [New] allowDots option for `stringify` (#151)
-- [Fix] "sort" option should work at a depth of 3 or more (#151)
-- [Fix] Restore `dist` directory; will be removed in v7 (#148)
-
-## **6.0.4**
-- [Fix] follow `allowPrototypes` option during merge (#201, #200)
-- [Fix] chmod a-x
-- [Fix] support keys starting with brackets (#202, #200)
-- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
-
-## **6.0.3**
-- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties
-- [Fix] Restore `dist` directory; will be removed in v7 (#148)
-
-## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed)
-- Revert ES6 requirement and restore support for node down to v0.8.
-
-## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed)
-- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json
-
-## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed)
-- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4
-
-## **5.2.1**
-- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values
-
-## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed)
-- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string
-
-## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed)
-- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional
-- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify
-
-## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed)
-- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false
-- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm
-
-## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed)
-- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional
-
-## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed)
-- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation"
-
-## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed)
-- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties
-- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost
-- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing
-- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object
-- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option
-- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects.
-- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47
-- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986
-- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign
-- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute
-
-## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed)
-- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object #<Object> is not a function
-
-## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed)
-- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option
-
-## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed)
-- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57
-- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader
-
-## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed)
-- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object
-
-## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed)
-- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError".
-
-## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed)
-- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46
-
-## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed)
-- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer?
-- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45
-- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39
-
-## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed)
-- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number
-
-## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed)
-- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array
-- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x
-
-## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed)
-- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value
-- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty
-- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver?
-
-## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed)
-- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31
-- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects
-
-## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed)
-- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present
-- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays
-- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge
-- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters?
-
-## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed)
-- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter
-
-## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed)
-- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit?
-- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit
-- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20
-
-## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed)
-- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values
-
-## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed)
-- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters
-- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block
-
-## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed)
-- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument
-- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed
-
-## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed)
-- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted
-- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null
-- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README
-
-## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed)
-- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index
diff --git a/deps/npm/node_modules/request/node_modules/qs/lib/utils.js b/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
deleted file mode 100644
index 06cae2f09a..0000000000
--- a/deps/npm/node_modules/request/node_modules/qs/lib/utils.js
+++ /dev/null
@@ -1,202 +0,0 @@
-'use strict';
-
-var has = Object.prototype.hasOwnProperty;
-
-var hexTable = (function () {
- var array = [];
- for (var i = 0; i < 256; ++i) {
- array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());
- }
-
- return array;
-}());
-
-var compactQueue = function compactQueue(queue) {
- var obj;
-
- while (queue.length) {
- var item = queue.pop();
- obj = item.obj[item.prop];
-
- if (Array.isArray(obj)) {
- var compacted = [];
-
- for (var j = 0; j < obj.length; ++j) {
- if (typeof obj[j] !== 'undefined') {
- compacted.push(obj[j]);
- }
- }
-
- item.obj[item.prop] = compacted;
- }
- }
-
- return obj;
-};
-
-exports.arrayToObject = function arrayToObject(source, options) {
- var obj = options && options.plainObjects ? Object.create(null) : {};
- for (var i = 0; i < source.length; ++i) {
- if (typeof source[i] !== 'undefined') {
- obj[i] = source[i];
- }
- }
-
- return obj;
-};
-
-exports.merge = function merge(target, source, options) {
- if (!source) {
- return target;
- }
-
- if (typeof source !== 'object') {
- if (Array.isArray(target)) {
- target.push(source);
- } else if (typeof target === 'object') {
- if (options.plainObjects || options.allowPrototypes || !has.call(Object.prototype, source)) {
- target[source] = true;
- }
- } else {
- return [target, source];
- }
-
- return target;
- }
-
- if (typeof target !== 'object') {
- return [target].concat(source);
- }
-
- var mergeTarget = target;
- if (Array.isArray(target) && !Array.isArray(source)) {
- mergeTarget = exports.arrayToObject(target, options);
- }
-
- if (Array.isArray(target) && Array.isArray(source)) {
- source.forEach(function (item, i) {
- if (has.call(target, i)) {
- if (target[i] && typeof target[i] === 'object') {
- target[i] = exports.merge(target[i], item, options);
- } else {
- target.push(item);
- }
- } else {
- target[i] = item;
- }
- });
- return target;
- }
-
- return Object.keys(source).reduce(function (acc, key) {
- var value = source[key];
-
- if (has.call(acc, key)) {
- acc[key] = exports.merge(acc[key], value, options);
- } else {
- acc[key] = value;
- }
- return acc;
- }, mergeTarget);
-};
-
-exports.assign = function assignSingleSource(target, source) {
- return Object.keys(source).reduce(function (acc, key) {
- acc[key] = source[key];
- return acc;
- }, target);
-};
-
-exports.decode = function (str) {
- try {
- return decodeURIComponent(str.replace(/\+/g, ' '));
- } catch (e) {
- return str;
- }
-};
-
-exports.encode = function encode(str) {
- // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
- // It has been adapted here for stricter adherence to RFC 3986
- if (str.length === 0) {
- return str;
- }
-
- var string = typeof str === 'string' ? str : String(str);
-
- var out = '';
- for (var i = 0; i < string.length; ++i) {
- var c = string.charCodeAt(i);
-
- if (
- c === 0x2D // -
- || c === 0x2E // .
- || c === 0x5F // _
- || c === 0x7E // ~
- || (c >= 0x30 && c <= 0x39) // 0-9
- || (c >= 0x41 && c <= 0x5A) // a-z
- || (c >= 0x61 && c <= 0x7A) // A-Z
- ) {
- out += string.charAt(i);
- continue;
- }
-
- if (c < 0x80) {
- out = out + hexTable[c];
- continue;
- }
-
- if (c < 0x800) {
- out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- if (c < 0xD800 || c >= 0xE000) {
- out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]);
- continue;
- }
-
- i += 1;
- c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF));
- out += hexTable[0xF0 | (c >> 18)]
- + hexTable[0x80 | ((c >> 12) & 0x3F)]
- + hexTable[0x80 | ((c >> 6) & 0x3F)]
- + hexTable[0x80 | (c & 0x3F)];
- }
-
- return out;
-};
-
-exports.compact = function compact(value) {
- var queue = [{ obj: { o: value }, prop: 'o' }];
- var refs = [];
-
- for (var i = 0; i < queue.length; ++i) {
- var item = queue[i];
- var obj = item.obj[item.prop];
-
- var keys = Object.keys(obj);
- for (var j = 0; j < keys.length; ++j) {
- var key = keys[j];
- var val = obj[key];
- if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {
- queue.push({ obj: obj, prop: key });
- refs.push(val);
- }
- }
- }
-
- return compactQueue(queue);
-};
-
-exports.isRegExp = function isRegExp(obj) {
- return Object.prototype.toString.call(obj) === '[object RegExp]';
-};
-
-exports.isBuffer = function isBuffer(obj) {
- if (obj === null || typeof obj === 'undefined') {
- return false;
- }
-
- return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));
-};
diff --git a/deps/npm/node_modules/request/node_modules/qs/package.json b/deps/npm/node_modules/request/node_modules/qs/package.json
deleted file mode 100644
index a2ba1e368b..0000000000
--- a/deps/npm/node_modules/request/node_modules/qs/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "qs@~6.5.1",
- "_id": "qs@6.5.1",
- "_inBundle": false,
- "_integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==",
- "_location": "/request/qs",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "qs@~6.5.1",
- "name": "qs",
- "escapedName": "qs",
- "rawSpec": "~6.5.1",
- "saveSpec": null,
- "fetchSpec": "~6.5.1"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "_shasum": "349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8",
- "_spec": "qs@~6.5.1",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "bugs": {
- "url": "https://github.com/ljharb/qs/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jordan Harband",
- "email": "ljharb@gmail.com",
- "url": "http://ljharb.codes"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "A querystring parser that supports nesting and arrays, with a depth limit",
- "devDependencies": {
- "@ljharb/eslint-config": "^12.2.1",
- "browserify": "^14.4.0",
- "covert": "^1.1.0",
- "editorconfig-tools": "^0.1.1",
- "eslint": "^4.6.1",
- "evalmd": "^0.0.17",
- "iconv-lite": "^0.4.18",
- "mkdirp": "^0.5.1",
- "qs-iconv": "^1.0.4",
- "safe-publish-latest": "^1.1.1",
- "tape": "^4.8.0"
- },
- "engines": {
- "node": ">=0.6"
- },
- "homepage": "https://github.com/ljharb/qs",
- "keywords": [
- "querystring",
- "qs"
- ],
- "license": "BSD-3-Clause",
- "main": "lib/index.js",
- "name": "qs",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/ljharb/qs.git"
- },
- "scripts": {
- "coverage": "covert test",
- "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
- "lint": "eslint lib/*.js test/*.js",
- "prelint": "editorconfig-tools check * lib/* test/*",
- "prepublish": "safe-publish-latest && npm run dist",
- "pretest": "npm run --silent readme && npm run --silent lint",
- "readme": "evalmd README.md",
- "test": "npm run --silent coverage",
- "tests-only": "node test"
- },
- "version": "6.5.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/qs/test/parse.js b/deps/npm/node_modules/request/node_modules/qs/test/parse.js
deleted file mode 100644
index d7d8641926..0000000000
--- a/deps/npm/node_modules/request/node_modules/qs/test/parse.js
+++ /dev/null
@@ -1,573 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var qs = require('../');
-var utils = require('../lib/utils');
-var iconv = require('iconv-lite');
-
-test('parse()', function (t) {
- t.test('parses a simple string', function (st) {
- st.deepEqual(qs.parse('0=foo'), { 0: 'foo' });
- st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' });
- st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } });
- st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } });
- st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } });
- st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null });
- st.deepEqual(qs.parse('foo'), { foo: '' });
- st.deepEqual(qs.parse('foo='), { foo: '' });
- st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' });
- st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' });
- st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' });
- st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' });
- st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' });
- st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null });
- st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' });
- st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), {
- cht: 'p3',
- chd: 't:60,40',
- chs: '250x100',
- chl: 'Hello|World'
- });
- st.end();
- });
-
- t.test('allows enabling dot notation', function (st) {
- st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
- st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string');
- t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string');
- t.deepEqual(
- qs.parse('a[b][c][d][e][f][g][h]=i'),
- { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } },
- 'defaults to a depth of 5'
- );
-
- t.test('only parses one level when depth = 1', function (st) {
- st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } });
- st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
-
- t.test('parses an explicit array', function (st) {
- st.deepEqual(qs.parse('a[]=b'), { a: ['b'] });
- st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] });
- st.end();
- });
-
- t.test('parses a mix of simple and explicit arrays', function (st) {
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] });
-
- st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] });
-
- st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] });
-
- st.end();
- });
-
- t.test('parses a nested array', function (st) {
- st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } });
- st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } });
- st.end();
- });
-
- t.test('allows to specify array indices', function (st) {
- st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] });
- st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] });
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] });
- st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } });
- st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] });
- st.end();
- });
-
- t.test('limits specific array indices to arrayLimit', function (st) {
- st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] });
- st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } });
- st.end();
- });
-
- t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number');
-
- t.test('supports encoded = signs', function (st) {
- st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' });
- st.end();
- });
-
- t.test('is ok with url encoded strings', function (st) {
- st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } });
- st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } });
- st.end();
- });
-
- t.test('allows brackets in the value', function (st) {
- st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' });
- st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' });
- st.end();
- });
-
- t.test('allows empty values', function (st) {
- st.deepEqual(qs.parse(''), {});
- st.deepEqual(qs.parse(null), {});
- st.deepEqual(qs.parse(undefined), {});
- st.end();
- });
-
- t.test('transforms arrays to objects', function (st) {
- st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
- st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
-
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } });
- st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } });
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } });
- st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } });
- st.end();
- });
-
- t.test('transforms arrays to objects (dot notation)', function (st) {
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } });
- st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } });
- st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } });
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] });
- st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] });
- st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } });
- st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } });
- st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } });
- st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] });
- st.end();
- });
-
- t.test('correctly prunes undefined values when converting an array to an object', function (st) {
- st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } });
- st.end();
- });
-
- t.test('supports malformed uri characters', function (st) {
- st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null });
- st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' });
- st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' });
- st.end();
- });
-
- t.test('doesn\'t produce empty keys', function (st) {
- st.deepEqual(qs.parse('_r=1&'), { _r: '1' });
- st.end();
- });
-
- t.test('cannot access Object prototype', function (st) {
- qs.parse('constructor[prototype][bad]=bad');
- qs.parse('bad[constructor][prototype][bad]=bad');
- st.equal(typeof Object.prototype.bad, 'undefined');
- st.end();
- });
-
- t.test('parses arrays of objects', function (st) {
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
- st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] });
- st.end();
- });
-
- t.test('allows for empty strings in arrays', function (st) {
- st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] });
-
- st.deepEqual(
- qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }),
- { a: ['b', null, 'c', ''] },
- 'with arrayLimit 20 + array indices: null then empty string works'
- );
- st.deepEqual(
- qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }),
- { a: ['b', null, 'c', ''] },
- 'with arrayLimit 0 + array brackets: null then empty string works'
- );
-
- st.deepEqual(
- qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }),
- { a: ['b', '', 'c', null] },
- 'with arrayLimit 20 + array indices: empty string then null works'
- );
- st.deepEqual(
- qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }),
- { a: ['b', '', 'c', null] },
- 'with arrayLimit 0 + array brackets: empty string then null works'
- );
-
- st.deepEqual(
- qs.parse('a[]=&a[]=b&a[]=c'),
- { a: ['', 'b', 'c'] },
- 'array brackets: empty strings work'
- );
- st.end();
- });
-
- t.test('compacts sparse arrays', function (st) {
- st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] });
- st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] });
- st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] });
- st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] });
- st.end();
- });
-
- t.test('parses semi-parsed strings', function (st) {
- st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } });
- st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } });
- st.end();
- });
-
- t.test('parses buffers correctly', function (st) {
- var b = new Buffer('test');
- st.deepEqual(qs.parse({ a: b }), { a: b });
- st.end();
- });
-
- t.test('continues parsing when no parent is found', function (st) {
- st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' });
- st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' });
- st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' });
- st.end();
- });
-
- t.test('does not error when parsing a very long array', function (st) {
- var str = 'a[]=a';
- while (Buffer.byteLength(str) < 128 * 1024) {
- str = str + '&' + str;
- }
-
- st.doesNotThrow(function () {
- qs.parse(str);
- });
-
- st.end();
- });
-
- t.test('should not throw when a native prototype has an enumerable property', { parallel: false }, function (st) {
- Object.prototype.crash = '';
- Array.prototype.crash = '';
- st.doesNotThrow(qs.parse.bind(null, 'a=b'));
- st.deepEqual(qs.parse('a=b'), { a: 'b' });
- st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c'));
- st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] });
- delete Object.prototype.crash;
- delete Array.prototype.crash;
- st.end();
- });
-
- t.test('parses a string with an alternative string delimiter', function (st) {
- st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('parses a string with an alternative RegExp delimiter', function (st) {
- st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('does not use non-splittable objects as delimiters', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('allows overriding parameter limit', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' });
- st.end();
- });
-
- t.test('allows setting the parameter limit to Infinity', function (st) {
- st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('allows overriding array limit', function (st) {
- st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } });
- st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } });
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } });
- st.end();
- });
-
- t.test('allows disabling array parsing', function (st) {
- st.deepEqual(qs.parse('a[0]=b&a[1]=c', { parseArrays: false }), { a: { 0: 'b', 1: 'c' } });
- st.end();
- });
-
- t.test('allows for query string prefix', function (st) {
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
- st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' });
- st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' });
- st.end();
- });
-
- t.test('parses an object', function (st) {
- var input = {
- 'user[name]': { 'pop[bob]': 3 },
- 'user[email]': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': 3 },
- email: null
- }
- };
-
- var result = qs.parse(input);
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('parses an object in dot notation', function (st) {
- var input = {
- 'user.name': { 'pop[bob]': 3 },
- 'user.email.': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': 3 },
- email: null
- }
- };
-
- var result = qs.parse(input, { allowDots: true });
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('parses an object and not child values', function (st) {
- var input = {
- 'user[name]': { 'pop[bob]': { test: 3 } },
- 'user[email]': null
- };
-
- var expected = {
- user: {
- name: { 'pop[bob]': { test: 3 } },
- email: null
- }
- };
-
- var result = qs.parse(input);
-
- st.deepEqual(result, expected);
- st.end();
- });
-
- t.test('does not blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
- var result = qs.parse('a=b&c=d');
- global.Buffer = tempBuffer;
- st.deepEqual(result, { a: 'b', c: 'd' });
- st.end();
- });
-
- t.test('does not crash when parsing circular references', function (st) {
- var a = {};
- a.b = a;
-
- var parsed;
-
- st.doesNotThrow(function () {
- parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a });
- });
-
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
- st.equal('bar' in parsed.foo, true);
- st.equal('baz' in parsed.foo, true);
- st.equal(parsed.foo.bar, 'baz');
- st.deepEqual(parsed.foo.baz, a);
- st.end();
- });
-
- t.test('does not crash when parsing deep objects', function (st) {
- var parsed;
- var str = 'foo';
-
- for (var i = 0; i < 5000; i++) {
- str += '[p]';
- }
-
- str += '=bar';
-
- st.doesNotThrow(function () {
- parsed = qs.parse(str, { depth: 5000 });
- });
-
- st.equal('foo' in parsed, true, 'parsed has "foo" property');
-
- var depth = 0;
- var ref = parsed.foo;
- while ((ref = ref.p)) {
- depth += 1;
- }
-
- st.equal(depth, 5000, 'parsed is 5000 properties deep');
-
- st.end();
- });
-
- t.test('parses null objects correctly', { skip: !Object.create }, function (st) {
- var a = Object.create(null);
- a.b = 'c';
-
- st.deepEqual(qs.parse(a), { b: 'c' });
- var result = qs.parse({ a: a });
- st.equal('a' in result, true, 'result has "a" property');
- st.deepEqual(result.a, a);
- st.end();
- });
-
- t.test('parses dates correctly', function (st) {
- var now = new Date();
- st.deepEqual(qs.parse({ a: now }), { a: now });
- st.end();
- });
-
- t.test('parses regular expressions correctly', function (st) {
- var re = /^test$/;
- st.deepEqual(qs.parse({ a: re }), { a: re });
- st.end();
- });
-
- t.test('does not allow overwriting prototype properties', function (st) {
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {});
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {});
-
- st.deepEqual(
- qs.parse('toString', { allowPrototypes: false }),
- {},
- 'bare "toString" results in {}'
- );
-
- st.end();
- });
-
- t.test('can allow overwriting prototype properties', function (st) {
- st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } });
- st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' });
-
- st.deepEqual(
- qs.parse('toString', { allowPrototypes: true }),
- { toString: '' },
- 'bare "toString" results in { toString: "" }'
- );
-
- st.end();
- });
-
- t.test('params starting with a closing bracket', function (st) {
- st.deepEqual(qs.parse(']=toString'), { ']': 'toString' });
- st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' });
- st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' });
- st.end();
- });
-
- t.test('params starting with a starting bracket', function (st) {
- st.deepEqual(qs.parse('[=toString'), { '[': 'toString' });
- st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' });
- st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' });
- st.end();
- });
-
- t.test('add keys to objects', function (st) {
- st.deepEqual(
- qs.parse('a[b]=c&a=d'),
- { a: { b: 'c', d: true } },
- 'can add keys to objects'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString'),
- { a: { b: 'c' } },
- 'can not overwrite prototype'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString', { allowPrototypes: true }),
- { a: { b: 'c', toString: true } },
- 'can overwrite prototype with allowPrototypes true'
- );
-
- st.deepEqual(
- qs.parse('a[b]=c&a=toString', { plainObjects: true }),
- { a: { b: 'c', toString: true } },
- 'can overwrite prototype with plainObjects true'
- );
-
- st.end();
- });
-
- t.test('can return null objects', { skip: !Object.create }, function (st) {
- var expected = Object.create(null);
- expected.a = Object.create(null);
- expected.a.b = 'c';
- expected.a.hasOwnProperty = 'd';
- st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected);
- st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null));
- var expectedArray = Object.create(null);
- expectedArray.a = Object.create(null);
- expectedArray.a[0] = 'b';
- expectedArray.a.c = 'd';
- st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray);
- st.end();
- });
-
- t.test('can parse with custom encoding', function (st) {
- st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', {
- decoder: function (str) {
- var reg = /%([0-9A-F]{2})/ig;
- var result = [];
- var parts = reg.exec(str);
- while (parts) {
- result.push(parseInt(parts[1], 16));
- parts = reg.exec(str);
- }
- return iconv.decode(new Buffer(result), 'shift_jis').toString();
- }
- }), { ēœŒ: '大é˜Ŗåŗœ' });
- st.end();
- });
-
- t.test('receives the default decoder as a second argument', function (st) {
- st.plan(1);
- qs.parse('a', {
- decoder: function (str, defaultDecoder) {
- st.equal(defaultDecoder, utils.decode);
- }
- });
- st.end();
- });
-
- t.test('throws error with wrong decoder', function (st) {
- st['throws'](function () {
- qs.parse({}, { decoder: 'string' });
- }, new TypeError('Decoder has to be a function.'));
- st.end();
- });
-
- t.test('does not mutate the options argument', function (st) {
- var options = {};
- qs.parse('a[b]=true', options);
- st.deepEqual(options, {});
- st.end();
- });
-
- t.end();
-});
diff --git a/deps/npm/node_modules/request/node_modules/qs/test/stringify.js b/deps/npm/node_modules/request/node_modules/qs/test/stringify.js
deleted file mode 100644
index 124a99dca4..0000000000
--- a/deps/npm/node_modules/request/node_modules/qs/test/stringify.js
+++ /dev/null
@@ -1,596 +0,0 @@
-'use strict';
-
-var test = require('tape');
-var qs = require('../');
-var utils = require('../lib/utils');
-var iconv = require('iconv-lite');
-
-test('stringify()', function (t) {
- t.test('stringifies a querystring object', function (st) {
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
- st.equal(qs.stringify({ a: 1 }), 'a=1');
- st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2');
- st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z');
- st.equal(qs.stringify({ a: 'ā‚¬' }), 'a=%E2%82%AC');
- st.equal(qs.stringify({ a: 'ī€€' }), 'a=%EE%80%80');
- st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90');
- st.equal(qs.stringify({ a: 'š·' }), 'a=%F0%90%90%B7');
- st.end();
- });
-
- t.test('adds query prefix', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b');
- st.end();
- });
-
- t.test('with query prefix, outputs blank string given an empty object', function (st) {
- st.equal(qs.stringify({}, { addQueryPrefix: true }), '');
- st.end();
- });
-
- t.test('stringifies a nested object', function (st) {
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e');
- st.end();
- });
-
- t.test('stringifies a nested object with dots notation', function (st) {
- st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c');
- st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e');
- st.end();
- });
-
- t.test('stringifies an array value', function (st) {
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
- 'indices => indices'
- );
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: ['b', 'c', 'd'] }),
- 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d',
- 'default => indices'
- );
- st.end();
- });
-
- t.test('omits nulls when asked', function (st) {
- st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b');
- st.end();
- });
-
- t.test('omits nested nulls when asked', function (st) {
- st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('omits array indices when asked', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d');
- st.end();
- });
-
- t.test('stringifies a nested array value', function (st) {
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'indices' }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { arrayFormat: 'brackets' }), 'a%5Bb%5D%5B%5D=c&a%5Bb%5D%5B%5D=d');
- st.equal(qs.stringify({ a: { b: ['c', 'd'] } }), 'a%5Bb%5D%5B0%5D=c&a%5Bb%5D%5B1%5D=d');
- st.end();
- });
-
- t.test('stringifies a nested array value with dots notation', function (st) {
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a.b[0]=c&a.b[1]=d',
- 'indices: stringifies with dots + indices'
- );
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a.b[]=c&a.b[]=d',
- 'brackets: stringifies with dots + brackets'
- );
- st.equal(
- qs.stringify(
- { a: { b: ['c', 'd'] } },
- { allowDots: true, encode: false }
- ),
- 'a.b[0]=c&a.b[1]=d',
- 'default: stringifies with dots + indices'
- );
- st.end();
- });
-
- t.test('stringifies an object inside an array', function (st) {
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D=c',
- 'indices => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D=c',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 'c' }] }),
- 'a%5B0%5D%5Bb%5D=c',
- 'default => indices'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
- 'indices => indices'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }),
- 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1',
- 'brackets => brackets'
- );
-
- st.equal(
- qs.stringify({ a: [{ b: { c: [1] } }] }),
- 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('stringifies an array with mixed objects and primitives', function (st) {
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'indices' }),
- 'a[0][b]=1&a[1]=2&a[2]=3',
- 'indices => indices'
- );
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false, arrayFormat: 'brackets' }),
- 'a[][b]=1&a[]=2&a[]=3',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encode: false }),
- 'a[0][b]=1&a[1]=2&a[2]=3',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('stringifies an object inside an array with dots notation', function (st) {
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a[0].b=c',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a[].b=c',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: 'c' }] },
- { allowDots: true, encode: false }
- ),
- 'a[0].b=c',
- 'default => indices'
- );
-
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false, arrayFormat: 'indices' }
- ),
- 'a[0].b.c[0]=1',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false, arrayFormat: 'brackets' }
- ),
- 'a[].b.c[]=1',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: [{ b: { c: [1] } }] },
- { allowDots: true, encode: false }
- ),
- 'a[0].b.c[0]=1',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('does not omit object keys when indices = false', function (st) {
- st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when indices=true', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c');
- st.end();
- });
-
- t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c');
- st.end();
- });
-
- t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) {
- st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c');
- st.end();
- });
-
- t.test('stringifies a complicated object', function (st) {
- st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e');
- st.end();
- });
-
- t.test('stringifies an empty value', function (st) {
- st.equal(qs.stringify({ a: '' }), 'a=');
- st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a');
-
- st.equal(qs.stringify({ a: '', b: '' }), 'a=&b=');
- st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b=');
-
- st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D=');
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D');
- st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D=');
-
- st.end();
- });
-
- t.test('stringifies a null object', { skip: !Object.create }, function (st) {
- var obj = Object.create(null);
- obj.a = 'b';
- st.equal(qs.stringify(obj), 'a=b');
- st.end();
- });
-
- t.test('returns an empty string for invalid input', function (st) {
- st.equal(qs.stringify(undefined), '');
- st.equal(qs.stringify(false), '');
- st.equal(qs.stringify(null), '');
- st.equal(qs.stringify(''), '');
- st.end();
- });
-
- t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) {
- var obj = { a: Object.create(null) };
-
- obj.a.b = 'c';
- st.equal(qs.stringify(obj), 'a%5Bb%5D=c');
- st.end();
- });
-
- t.test('drops keys with a value of undefined', function (st) {
- st.equal(qs.stringify({ a: undefined }), '');
-
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D');
- st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D=');
- st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D=');
- st.end();
- });
-
- t.test('url encodes values', function (st) {
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
- st.end();
- });
-
- t.test('stringifies a date', function (st) {
- var now = new Date();
- var str = 'a=' + encodeURIComponent(now.toISOString());
- st.equal(qs.stringify({ a: now }), str);
- st.end();
- });
-
- t.test('stringifies the weird object from qs', function (st) {
- st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F');
- st.end();
- });
-
- t.test('skips properties that are part of the object prototype', function (st) {
- Object.prototype.crash = 'test';
- st.equal(qs.stringify({ a: 'b' }), 'a=b');
- st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c');
- delete Object.prototype.crash;
- st.end();
- });
-
- t.test('stringifies boolean values', function (st) {
- st.equal(qs.stringify({ a: true }), 'a=true');
- st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true');
- st.equal(qs.stringify({ b: false }), 'b=false');
- st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false');
- st.end();
- });
-
- t.test('stringifies buffer values', function (st) {
- st.equal(qs.stringify({ a: new Buffer('test') }), 'a=test');
- st.equal(qs.stringify({ a: { b: new Buffer('test') } }), 'a%5Bb%5D=test');
- st.end();
- });
-
- t.test('stringifies an object using an alternative delimiter', function (st) {
- st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d');
- st.end();
- });
-
- t.test('doesn\'t blow up when Buffer global is missing', function (st) {
- var tempBuffer = global.Buffer;
- delete global.Buffer;
- var result = qs.stringify({ a: 'b', c: 'd' });
- global.Buffer = tempBuffer;
- st.equal(result, 'a=b&c=d');
- st.end();
- });
-
- t.test('selects properties when filter=array', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b');
- st.equal(qs.stringify({ a: 1 }, { filter: [] }), '');
-
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' }
- ),
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
- 'indices => indices'
- );
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' }
- ),
- 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3',
- 'brackets => brackets'
- );
- st.equal(
- qs.stringify(
- { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' },
- { filter: ['a', 'b', 0, 2] }
- ),
- 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3',
- 'default => indices'
- );
-
- st.end();
- });
-
- t.test('supports custom representations when filter=function', function (st) {
- var calls = 0;
- var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } };
- var filterFunc = function (prefix, value) {
- calls += 1;
- if (calls === 1) {
- st.equal(prefix, '', 'prefix is empty');
- st.equal(value, obj);
- } else if (prefix === 'c') {
- return void 0;
- } else if (value instanceof Date) {
- st.equal(prefix, 'e[f]');
- return value.getTime();
- }
- return value;
- };
-
- st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000');
- st.equal(calls, 5);
- st.end();
- });
-
- t.test('can disable uri encoding', function (st) {
- st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b');
- st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c');
- st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c');
- st.end();
- });
-
- t.test('can sort the keys', function (st) {
- var sort = function (a, b) {
- return a.localeCompare(b);
- };
- st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y');
- st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a');
- st.end();
- });
-
- t.test('can sort the keys at depth 3 or more too', function (st) {
- var sort = function (a, b) {
- return a.localeCompare(b);
- };
- st.equal(
- qs.stringify(
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
- { sort: sort, encode: false }
- ),
- 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb'
- );
- st.equal(
- qs.stringify(
- { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' },
- { sort: null, encode: false }
- ),
- 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b'
- );
- st.end();
- });
-
- t.test('can stringify with custom encoding', function (st) {
- st.equal(qs.stringify({ ēœŒ: '大é˜Ŗåŗœ', '': '' }, {
- encoder: function (str) {
- if (str.length === 0) {
- return '';
- }
- var buf = iconv.encode(str, 'shiftjis');
- var result = [];
- for (var i = 0; i < buf.length; ++i) {
- result.push(buf.readUInt8(i).toString(16));
- }
- return '%' + result.join('%');
- }
- }), '%8c%a7=%91%e5%8d%e3%95%7b&=');
- st.end();
- });
-
- t.test('receives the default encoder as a second argument', function (st) {
- st.plan(2);
- qs.stringify({ a: 1 }, {
- encoder: function (str, defaultEncoder) {
- st.equal(defaultEncoder, utils.encode);
- }
- });
- st.end();
- });
-
- t.test('throws error with wrong encoder', function (st) {
- st['throws'](function () {
- qs.stringify({}, { encoder: 'string' });
- }, new TypeError('Encoder has to be a function.'));
- st.end();
- });
-
- t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) {
- st.equal(qs.stringify({ a: new Buffer([1]) }, {
- encoder: function (buffer) {
- if (typeof buffer === 'string') {
- return buffer;
- }
- return String.fromCharCode(buffer.readUInt8(0) + 97);
- }
- }), 'a=b');
- st.end();
- });
-
- t.test('serializeDate option', function (st) {
- var date = new Date();
- st.equal(
- qs.stringify({ a: date }),
- 'a=' + date.toISOString().replace(/:/g, '%3A'),
- 'default is toISOString'
- );
-
- var mutatedDate = new Date();
- mutatedDate.toISOString = function () {
- throw new SyntaxError();
- };
- st['throws'](function () {
- mutatedDate.toISOString();
- }, SyntaxError);
- st.equal(
- qs.stringify({ a: mutatedDate }),
- 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'),
- 'toISOString works even when method is not locally present'
- );
-
- var specificDate = new Date(6);
- st.equal(
- qs.stringify(
- { a: specificDate },
- { serializeDate: function (d) { return d.getTime() * 7; } }
- ),
- 'a=42',
- 'custom serializeDate function called'
- );
-
- st.end();
- });
-
- t.test('RFC 1738 spaces serialization', function (st) {
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c');
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d');
- st.end();
- });
-
- t.test('RFC 3986 spaces serialization', function (st) {
- st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c');
- st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d');
- st.end();
- });
-
- t.test('Backward compatibility to RFC 3986', function (st) {
- st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c');
- st.end();
- });
-
- t.test('Edge cases and unknown formats', function (st) {
- ['UFO1234', false, 1234, null, {}, []].forEach(
- function (format) {
- st['throws'](
- function () {
- qs.stringify({ a: 'b c' }, { format: format });
- },
- new TypeError('Unknown format option provided.')
- );
- }
- );
- st.end();
- });
-
- t.test('encodeValuesOnly', function (st) {
- st.equal(
- qs.stringify(
- { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] },
- { encodeValuesOnly: true }
- ),
- 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'
- );
- st.equal(
- qs.stringify(
- { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] }
- ),
- 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h'
- );
- st.end();
- });
-
- t.test('encodeValuesOnly - strictNullHandling', function (st) {
- st.equal(
- qs.stringify(
- { a: { b: null } },
- { encodeValuesOnly: true, strictNullHandling: true }
- ),
- 'a[b]'
- );
- st.end();
- });
-
- t.test('does not mutate the options argument', function (st) {
- var options = {};
- qs.stringify({}, options);
- st.deepEqual(options, {});
- st.end();
- });
-
- t.end();
-});
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/.npmignore b/deps/npm/node_modules/request/node_modules/stringstream/.npmignore
deleted file mode 100644
index 7dccd97076..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/.npmignore
+++ /dev/null
@@ -1,15 +0,0 @@
-lib-cov
-*.seed
-*.log
-*.csv
-*.dat
-*.out
-*.pid
-*.gz
-
-pids
-logs
-results
-
-node_modules
-npm-debug.log \ No newline at end of file
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/.travis.yml b/deps/npm/node_modules/request/node_modules/stringstream/.travis.yml
deleted file mode 100644
index f1d0f13c8a..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - 0.4
- - 0.6
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt b/deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt
deleted file mode 100644
index ab861acdc1..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/LICENSE.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2012 Michael Hart (michael.hart.au@gmail.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/request/node_modules/stringstream/README.md b/deps/npm/node_modules/request/node_modules/stringstream/README.md
deleted file mode 100644
index 32fc982556..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Decode streams into strings The Right Way(tm)
-
-```javascript
-var fs = require('fs')
-var zlib = require('zlib')
-var strs = require('stringstream')
-
-var utf8Stream = fs.createReadStream('massiveLogFile.gz')
- .pipe(zlib.createGunzip())
- .pipe(strs('utf8'))
-```
-
-No need to deal with `setEncoding()` weirdness, just compose streams
-like they were supposed to be!
-
-Handles input and output encoding:
-
-```javascript
-// Stream from utf8 to hex to base64... Why not, ay.
-var hex64Stream = fs.createReadStream('myFile')
- .pipe(strs('utf8', 'hex'))
- .pipe(strs('hex', 'base64'))
-```
-
-Also deals with `base64` output correctly by aligning each emitted data
-chunk so that there are no dangling `=` characters:
-
-```javascript
-var stream = fs.createReadStream('myFile').pipe(strs('base64'))
-
-var base64Str = ''
-
-stream.on('data', function(data) { base64Str += data })
-stream.on('end', function() {
- console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding()
- console.log('Original file is: ' + new Buffer(base64Str, 'base64'))
-})
-```
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/example.js b/deps/npm/node_modules/request/node_modules/stringstream/example.js
deleted file mode 100644
index f82b85edc7..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/example.js
+++ /dev/null
@@ -1,27 +0,0 @@
-var fs = require('fs')
-var zlib = require('zlib')
-var strs = require('stringstream')
-
-var utf8Stream = fs.createReadStream('massiveLogFile.gz')
- .pipe(zlib.createGunzip())
- .pipe(strs('utf8'))
-
-utf8Stream.pipe(process.stdout)
-
-// Stream from utf8 to hex to base64... Why not, ay.
-var hex64Stream = fs.createReadStream('myFile')
- .pipe(strs('utf8', 'hex'))
- .pipe(strs('hex', 'base64'))
-
-hex64Stream.pipe(process.stdout)
-
-// Deals with base64 correctly by aligning chunks
-var stream = fs.createReadStream('myFile').pipe(strs('base64'))
-
-var base64Str = ''
-
-stream.on('data', function(data) { base64Str += data })
-stream.on('end', function() {
- console.log('My base64 encoded file is: ' + base64Str) // Wouldn't work with setEncoding()
- console.log('Original file is: ' + new Buffer(base64Str, 'base64'))
-})
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/package.json b/deps/npm/node_modules/request/node_modules/stringstream/package.json
deleted file mode 100644
index 8307fef2ab..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "stringstream@~0.0.4",
- "_id": "stringstream@0.0.5",
- "_integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=",
- "_location": "/request/stringstream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stringstream@~0.0.4",
- "name": "stringstream",
- "escapedName": "stringstream",
- "rawSpec": "~0.0.4",
- "saveSpec": null,
- "fetchSpec": "~0.0.4"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz",
- "_shasum": "4e484cd4de5a0bbbee18e46307710a8a81621878",
- "_shrinkwrap": null,
- "_spec": "stringstream@~0.0.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Michael Hart",
- "email": "michael.hart.au@gmail.com",
- "url": "http://github.com/mhart"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mhart/StringStream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Encode and decode streams into string streams",
- "devDependencies": {},
- "homepage": "https://github.com/mhart/StringStream#readme",
- "keywords": [
- "string",
- "stream",
- "base64",
- "gzip"
- ],
- "license": "MIT",
- "main": "stringstream.js",
- "name": "stringstream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mhart/StringStream.git"
- },
- "version": "0.0.5"
-}
diff --git a/deps/npm/node_modules/request/node_modules/stringstream/stringstream.js b/deps/npm/node_modules/request/node_modules/stringstream/stringstream.js
deleted file mode 100644
index 4ece1275f4..0000000000
--- a/deps/npm/node_modules/request/node_modules/stringstream/stringstream.js
+++ /dev/null
@@ -1,102 +0,0 @@
-var util = require('util')
-var Stream = require('stream')
-var StringDecoder = require('string_decoder').StringDecoder
-
-module.exports = StringStream
-module.exports.AlignedStringDecoder = AlignedStringDecoder
-
-function StringStream(from, to) {
- if (!(this instanceof StringStream)) return new StringStream(from, to)
-
- Stream.call(this)
-
- if (from == null) from = 'utf8'
-
- this.readable = this.writable = true
- this.paused = false
- this.toEncoding = (to == null ? from : to)
- this.fromEncoding = (to == null ? '' : from)
- this.decoder = new AlignedStringDecoder(this.toEncoding)
-}
-util.inherits(StringStream, Stream)
-
-StringStream.prototype.write = function(data) {
- if (!this.writable) {
- var err = new Error('stream not writable')
- err.code = 'EPIPE'
- this.emit('error', err)
- return false
- }
- if (this.fromEncoding) {
- if (Buffer.isBuffer(data)) data = data.toString()
- data = new Buffer(data, this.fromEncoding)
- }
- var string = this.decoder.write(data)
- if (string.length) this.emit('data', string)
- return !this.paused
-}
-
-StringStream.prototype.flush = function() {
- if (this.decoder.flush) {
- var string = this.decoder.flush()
- if (string.length) this.emit('data', string)
- }
-}
-
-StringStream.prototype.end = function() {
- if (!this.writable && !this.readable) return
- this.flush()
- this.emit('end')
- this.writable = this.readable = false
- this.destroy()
-}
-
-StringStream.prototype.destroy = function() {
- this.decoder = null
- this.writable = this.readable = false
- this.emit('close')
-}
-
-StringStream.prototype.pause = function() {
- this.paused = true
-}
-
-StringStream.prototype.resume = function () {
- if (this.paused) this.emit('drain')
- this.paused = false
-}
-
-function AlignedStringDecoder(encoding) {
- StringDecoder.call(this, encoding)
-
- switch (this.encoding) {
- case 'base64':
- this.write = alignedWrite
- this.alignedBuffer = new Buffer(3)
- this.alignedBytes = 0
- break
- }
-}
-util.inherits(AlignedStringDecoder, StringDecoder)
-
-AlignedStringDecoder.prototype.flush = function() {
- if (!this.alignedBuffer || !this.alignedBytes) return ''
- var leftover = this.alignedBuffer.toString(this.encoding, 0, this.alignedBytes)
- this.alignedBytes = 0
- return leftover
-}
-
-function alignedWrite(buffer) {
- var rem = (this.alignedBytes + buffer.length) % this.alignedBuffer.length
- if (!rem && !this.alignedBytes) return buffer.toString(this.encoding)
-
- var returnBuffer = new Buffer(this.alignedBytes + buffer.length - rem)
-
- this.alignedBuffer.copy(returnBuffer, 0, 0, this.alignedBytes)
- buffer.copy(returnBuffer, this.alignedBytes, 0, buffer.length - rem)
-
- buffer.copy(this.alignedBuffer, 0, buffer.length - rem, buffer.length)
- this.alignedBytes = rem
-
- return returnBuffer.toString(this.encoding)
-}
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/README.md b/deps/npm/node_modules/request/node_modules/tough-cookie/README.md
deleted file mode 100644
index 79fa7807b5..0000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/README.md
+++ /dev/null
@@ -1,509 +0,0 @@
-[RFC6265](https://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js
-
-[![npm package](https://nodei.co/npm/tough-cookie.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/tough-cookie/)
-
-[![Build Status](https://travis-ci.org/salesforce/tough-cookie.png?branch=master)](https://travis-ci.org/salesforce/tough-cookie)
-
-# Synopsis
-
-``` javascript
-var tough = require('tough-cookie');
-var Cookie = tough.Cookie;
-var cookie = Cookie.parse(header);
-cookie.value = 'somethingdifferent';
-header = cookie.toString();
-
-var cookiejar = new tough.CookieJar();
-cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb);
-// ...
-cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) {
- res.headers['cookie'] = cookies.join('; ');
-});
-```
-
-# Installation
-
-It's _so_ easy!
-
-`npm install tough-cookie`
-
-Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.
-
-## Version Support
-
-Support for versions of node.js will follow that of the [request](https://www.npmjs.com/package/request) module.
-
-# API
-
-## tough
-
-Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound".
-
-**Note**: prior to 1.0.x, several of these functions took a `strict` parameter. This has since been removed from the API as it was no longer necessary.
-
-### `parseDate(string)`
-
-Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`.
-
-### `formatDate(date)`
-
-Format a Date into a RFC1123 string (the RFC6265-recommended format).
-
-### `canonicalDomain(str)`
-
-Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).
-
-### `domainMatch(str,domStr[,canonicalize=true])`
-
-Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".
-
-The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.
-
-### `defaultPath(path)`
-
-Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.
-
-The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output.
-
-### `pathMatch(reqPath,cookiePath)`
-
-Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean.
-
-This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.
-
-### `parse(cookieString[, options])`
-
-alias for `Cookie.parse(cookieString[, options])`
-
-### `fromJSON(string)`
-
-alias for `Cookie.fromJSON(string)`
-
-### `getPublicSuffix(hostname)`
-
-Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.
-
-For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.
-
-For further information, see http://publicsuffix.org/. This module derives its list from that site.
-
-### `cookieCompare(a,b)`
-
-For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). The sort algorithm is, in order of precedence:
-
-* Longest `.path`
-* oldest `.creation` (which has a 1ms precision, same as `Date`)
-* lowest `.creationIndex` (to get beyond the 1ms precision)
-
-``` javascript
-var cookies = [ /* unsorted array of Cookie objects */ ];
-cookies = cookies.sort(cookieCompare);
-```
-
-**Note**: Since JavaScript's `Date` is limited to a 1ms precision, cookies within the same milisecond are entirely possible. This is especially true when using the `now` option to `.setCookie()`. The `.creationIndex` property is a per-process global counter, assigned during construction with `new Cookie()`. This preserves the spirit of the RFC sorting: older cookies go first. This works great for `MemoryCookieStore`, since `Set-Cookie` headers are parsed in order, but may not be so great for distributed systems. Sophisticated `Store`s may wish to set this to some other _logical clock_ such that if cookies A and B are created in the same millisecond, but cookie A is created before cookie B, then `A.creationIndex < B.creationIndex`. If you want to alter the global counter, which you probably _shouldn't_ do, it's stored in `Cookie.cookiesCreated`.
-
-### `permuteDomain(domain)`
-
-Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.
-
-### `permutePath(path)`
-
-Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.
-
-
-## Cookie
-
-Exported via `tough.Cookie`.
-
-### `Cookie.parse(cookieString[, options])`
-
-Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed.
-
-The options parameter is not required and currently has only one property:
-
- * _loose_ - boolean - if `true` enable parsing of key-less cookies like `=abc` and `=`, which are not RFC-compliant.
-
-If options is not an object, it is ignored, which means you can use `Array#map` with it.
-
-Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:
-
-``` javascript
-if (res.headers['set-cookie'] instanceof Array)
- cookies = res.headers['set-cookie'].map(Cookie.parse);
-else
- cookies = [Cookie.parse(res.headers['set-cookie'])];
-```
-
-_Potentially non-standard behavior:_ currently, tough-cookie will limit the number of spaces before the `=` to 256 characters.
-See [Issue 92](https://github.com/salesforce/tough-cookie/issues/92)
-
-### Properties
-
-Cookie object properties:
-
- * _key_ - string - the name or key of the cookie (default "")
- * _value_ - string - the value of the cookie (default "")
- * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()`
- * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`
- * _domain_ - string - the `Domain=` attribute of the cookie
- * _path_ - string - the `Path=` of the cookie
- * _secure_ - boolean - the `Secure` cookie flag
- * _httpOnly_ - boolean - the `HttpOnly` cookie flag
- * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)
- * _creation_ - `Date` - when this cookie was constructed
- * _creationIndex_ - number - set at construction, used to provide greater sort precision (please see `cookieCompare(a,b)` for a full explanation)
-
-After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:
-
- * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)
- * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.
- * _creation_ - `Date` - **modified** from construction to when the cookie was added to the jar
- * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.
-
-### `Cookie([{properties}])`
-
-Receives an options object that can contain any of the above Cookie properties, uses the default for unspecified properties.
-
-### `.toString()`
-
-encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.
-
-### `.cookieString()`
-
-encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '=').
-
-### `.setExpires(String)`
-
-sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set.
-
-### `.setMaxAge(number)`
-
-sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly.
-
-### `.expiryTime([now=Date.now()])`
-
-### `.expiryDate([now=Date.now()])`
-
-expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.
-
-Max-Age takes precedence over Expires (as per the RFC). The `.creation` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.
-
-If Expires (`.expires`) is set, that's returned.
-
-Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).
-
-### `.TTL([now=Date.now()])`
-
-compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.
-
-The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.
-
-### `.canonicalizedDoman()`
-
-### `.cdomain()`
-
-return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.
-
-### `.toJSON()`
-
-For convenience in using `JSON.serialize(cookie)`. Returns a plain-old `Object` that can be JSON-serialized.
-
-Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are exported in ISO format (`.toISOString()`).
-
-**NOTE**: Custom `Cookie` properties will be discarded. In tough-cookie 1.x, since there was no `.toJSON` method explicitly defined, all enumerable properties were captured. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array.
-
-### `Cookie.fromJSON(strOrObj)`
-
-Does the reverse of `cookie.toJSON()`. If passed a string, will `JSON.parse()` that first.
-
-Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are parsed via `Date.parse()`, not the tough-cookie `parseDate`, since it's JavaScript/JSON-y timestamps being handled at this layer.
-
-Returns `null` upon JSON parsing error.
-
-### `.clone()`
-
-Does a deep clone of this cookie, exactly implemented as `Cookie.fromJSON(cookie.toJSON())`.
-
-### `.validate()`
-
-Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.
-
-validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:
-
-``` javascript
-if (cookie.validate() === true) {
- // it's tasty
-} else {
- // yuck!
-}
-```
-
-
-## CookieJar
-
-Exported via `tough.CookieJar`.
-
-### `CookieJar([store],[options])`
-
-Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.
-
-The `options` object can be omitted and can have the following properties:
-
- * _rejectPublicSuffixes_ - boolean - default `true` - reject cookies with domains like "com" and "co.uk"
- * _looseMode_ - boolean - default `false` - accept malformed cookies like `bar` and `=bar`, which have an implied empty name.
- This is not in the standard, but is used sometimes on the web and is accepted by (most) browsers.
-
-Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.
-
-### `.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))`
-
-Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.creation`, `.lastAccessed` and `.hostOnly` properties.
-
-The `options` object can be omitted and can have the following properties:
-
- * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.
- * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.
- * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies
- * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. `Store` errors aren't ignored by this option.
-
-As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).
-
-### `.setCookieSync(cookieOrString, currentUrl, [{options}])`
-
-Synchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
-
-### `.getCookies(currentUrl, [{options},] cb(err,cookies))`
-
-Retrieve the list of cookies that can be sent in a Cookie header for the current url.
-
-If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.
-
-The `options` object can be omitted and can have the following properties:
-
- * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.
- * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.
- * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies
- * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).
- * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the underlying store (the default `MemoryCookieStore` supports it).
-
-The `.lastAccessed` property of the returned cookies will have been updated.
-
-### `.getCookiesSync(currentUrl, [{options}])`
-
-Synchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
-
-### `.getCookieString(...)`
-
-Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.
-
-### `.getCookieStringSync(...)`
-
-Synchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
-
-### `.getSetCookieStrings(...)`
-
-Returns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`.
-
-### `.getSetCookieStringsSync(...)`
-
-Synchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
-
-### `.serialize(cb(err,serializedObject))`
-
-Serialize the Jar if the underlying store supports `.getAllCookies`.
-
-**NOTE**: Custom `Cookie` properties will be discarded. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array.
-
-See [Serialization Format].
-
-### `.serializeSync()`
-
-Sync version of .serialize
-
-### `.toJSON()`
-
-Alias of .serializeSync() for the convenience of `JSON.stringify(cookiejar)`.
-
-### `CookieJar.deserialize(serialized, [store], cb(err,object))`
-
-A new Jar is created and the serialized Cookies are added to the underlying store. Each `Cookie` is added via `store.putCookie` in the order in which they appear in the serialization.
-
-The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created.
-
-As a convenience, if `serialized` is a string, it is passed through `JSON.parse` first. If that throws an error, this is passed to the callback.
-
-### `CookieJar.deserializeSync(serialized, [store])`
-
-Sync version of `.deserialize`. _Note_ that the `store` must be synchronous for this to work.
-
-### `CookieJar.fromJSON(string)`
-
-Alias of `.deserializeSync` to provide consistency with `Cookie.fromJSON()`.
-
-### `.clone([store,]cb(err,newJar))`
-
-Produces a deep clone of this jar. Modifications to the original won't affect the clone, and vice versa.
-
-The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. Transferring between store types is supported so long as the source implements `.getAllCookies()` and the destination implements `.putCookie()`.
-
-### `.cloneSync([store])`
-
-Synchronous version of `.clone`, returning a new `CookieJar` instance.
-
-The `store` argument is optional, but must be a _synchronous_ `Store` instance if specified. If not passed, a new instance of `MemoryCookieStore` is used.
-
-The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls.
-
-## Store
-
-Base class for CookieJar stores. Available as `tough.Store`.
-
-## Store API
-
-The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.
-
-Stores should inherit from the base `Store` class, which is available as `require('tough-cookie').Store`.
-
-Stores are asynchronous by default, but if `store.synchronous` is set to `true`, then the `*Sync` methods on the of the containing `CookieJar` can be used (however, the continuation-passing style
-
-All `domain` parameters will have been normalized before calling.
-
-The Cookie store must have all of the following methods.
-
-### `store.findCookie(domain, path, key, cb(err,cookie))`
-
-Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.
-
-Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).
-
-### `store.findCookies(domain, path, cb(err,cookies))`
-
-Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.
-
-If no cookies are found, the callback MUST be passed an empty array.
-
-The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.
-
-As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).
-
-### `store.putCookie(cookie, cb(err))`
-
-Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.
-
-The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.
-
-Pass an error if the cookie cannot be stored.
-
-### `store.updateCookie(oldCookie, newCookie, cb(err))`
-
-Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.
-
-The `.lastAccessed` property will always be different between the two objects (to the precision possible via JavaScript's clock). Both `.creation` and `.creationIndex` are guaranteed to be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion (e.g., least-recently-used, which is up to the store to implement).
-
-Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.
-
-The `newCookie` and `oldCookie` objects MUST NOT be modified.
-
-Pass an error if the newCookie cannot be stored.
-
-### `store.removeCookie(domain, path, key, cb(err))`
-
-Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).
-
-The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie.
-
-### `store.removeCookies(domain, path, cb(err))`
-
-Removes matching cookies from the store. The `path` parameter is optional, and if missing means all paths in a domain should be removed.
-
-Pass an error ONLY if removing any existing cookies failed.
-
-### `store.getAllCookies(cb(err, cookies))`
-
-Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure.
-
-Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail.
-
-Pass an error if retrieval fails.
-
-## MemoryCookieStore
-
-Inherits from `Store`.
-
-A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API.
-
-## Community Cookie Stores
-
-These are some Store implementations authored and maintained by the community. They aren't official and we don't vouch for them but you may be interested to have a look:
-
-- [`db-cookie-store`](https://github.com/JSBizon/db-cookie-store): SQL including SQLite-based databases
-- [`file-cookie-store`](https://github.com/JSBizon/file-cookie-store): Netscape cookie file format on disk
-- [`redis-cookie-store`](https://github.com/benkroeger/redis-cookie-store): Redis
-- [`tough-cookie-filestore`](https://github.com/mitsuru/tough-cookie-filestore): JSON on disk
-- [`tough-cookie-web-storage-store`](https://github.com/exponentjs/tough-cookie-web-storage-store): DOM localStorage and sessionStorage
-
-
-# Serialization Format
-
-**NOTE**: if you want to have custom `Cookie` properties serialized, add the property name to `Cookie.serializableProperties`.
-
-```js
- {
- // The version of tough-cookie that serialized this jar.
- version: 'tough-cookie@1.x.y',
-
- // add the store type, to make humans happy:
- storeType: 'MemoryCookieStore',
-
- // CookieJar configuration:
- rejectPublicSuffixes: true,
- // ... future items go here
-
- // Gets filled from jar.store.getAllCookies():
- cookies: [
- {
- key: 'string',
- value: 'string',
- // ...
- /* other Cookie.serializableProperties go here */
- }
- ]
- }
-```
-
-# Copyright and License
-
-(tl;dr: BSD-3-Clause with some MPL/2.0)
-
-```text
- Copyright (c) 2015, Salesforce.com, Inc.
- All rights reserved.
-
- 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.
-
- 3. Neither the name of Salesforce.com nor the names of its contributors may
- 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 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.
-```
-
-Portions may be licensed under different licenses (in particular `public_suffix_list.dat` is MPL/2.0); please read that file and the LICENSE file for full details.
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js b/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js
deleted file mode 100644
index 0c6601531c..0000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pubsuffix.js
+++ /dev/null
@@ -1,98 +0,0 @@
-/****************************************************
- * AUTOMATICALLY GENERATED by generate-pubsuffix.js *
- * DO NOT EDIT! *
- ****************************************************/
-
-"use strict";
-
-var punycode = require('punycode');
-
-module.exports.getPublicSuffix = function getPublicSuffix(domain) {
- /*!
- * Copyright (c) 2015, Salesforce.com, Inc.
- * All rights reserved.
- *
- * 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.
- *
- * 3. Neither the name of Salesforce.com nor the names of its contributors may
- * 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 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.
- */
- if (!domain) {
- return null;
- }
- if (domain.match(/^\./)) {
- return null;
- }
- var asciiDomain = punycode.toASCII(domain);
- var converted = false;
- if (asciiDomain !== domain) {
- domain = asciiDomain;
- converted = true;
- }
- if (index[domain]) {
- return null;
- }
-
- domain = domain.toLowerCase();
- var parts = domain.split('.').reverse();
-
- var suffix = '';
- var suffixLen = 0;
- for (var i=0; i<parts.length; i++) {
- var part = parts[i];
- var starstr = '*'+suffix;
- var partstr = part+suffix;
-
- if (index[starstr]) { // star rule matches
- suffixLen = i+1;
- if (index[partstr] === false) { // exception rule matches (NB: false, not undefined)
- suffixLen--;
- }
- } else if (index[partstr]) { // exact match, not exception
- suffixLen = i+1;
- }
-
- suffix = '.'+partstr;
- }
-
- if (index['*'+suffix]) { // *.domain exists (e.g. *.kyoto.jp for domain='kyoto.jp');
- return null;
- }
-
- suffixLen = suffixLen || 1;
- if (parts.length > suffixLen) {
- var publicSuffix = parts.slice(0,suffixLen+1).reverse().join('.');
- return converted ? punycode.toUnicode(publicSuffix) : publicSuffix;
- }
-
- return null;
-};
-
-// The following generated structure is used under the MPL version 2.0
-// See public-suffix.txt for more information
-
-var index = module.exports.index = Object.freeze(
-{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"ar":true,"com.ar":true,"edu.ar":true,"gob.ar":true,"gov.ar":true,"int.ar":true,"mil.ar":true,"net.ar":true,"org.ar":true,"tur.ar":true,"arpa":true,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"au":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"com.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"net.ba":true,"org.ba":true,"bb":true,"biz.bb":true,"co.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"tv.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gov.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"br":true,"adm.br":true,"adv.br":true,"agr.br":true,"am.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"coop.br":true,"ecn.br":true,"eco.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"flog.br":true,"fm.br":true,"fnd.br":true,"fot.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"gov.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jor.br":true,"jus.br":true,"leg.br":true,"lel.br":true,"mat.br":true,"med.br":true,"mil.br":true,"mp.br":true,"mus.br":true,"net.br":true,"*.nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"slg.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"vet.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bv":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"co.cm":true,"com.cm":true,"gov.cm":true,"net.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cw":true,"com.cw":true,"edu.cw":true,"net.cw":true,"org.cw":true,"cx":true,"gov.cx":true,"cy":true,"ac.cy":true,"biz.cy":true,"com.cy":true,"ekloges.cy":true,"gov.cy":true,"ltd.cy":true,"name.cy":true,"net.cy":true,"org.cy":true,"parliament.cy":true,"press.cy":true,"pro.cy":true,"tm.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"et":true,"com.et":true,"gov.et":true,"org.et":true,"edu.et":true,"biz.et":true,"name.et":true,"info.et":true,"net.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gb":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"net.gg":true,"org.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"co.gl":true,"com.gl":true,"edu.gl":true,"net.gl":true,"org.gl":true,"gm":true,"gn":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"gt":true,"com.gt":true,"edu.gt":true,"gob.gt":true,"ind.gt":true,"mil.gt":true,"net.gt":true,"org.gt":true,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"edu.gy":true,"gov.gy":true,"net.gy":true,"org.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"biz.id":true,"co.id":true,"desa.id":true,"go.id":true,"mil.id":true,"my.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"il":true,"ac.il":true,"co.il":true,"gov.il":true,"idf.il":true,"k12.il":true,"muni.il":true,"net.il":true,"org.il":true,"im":true,"ac.im":true,"co.im":true,"com.im":true,"ltd.co.im":true,"net.im":true,"org.im":true,"plc.co.im":true,"tt.im":true,"tv.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"abr.it":true,"abruzzo.it":true,"aosta-valley.it":true,"aostavalley.it":true,"bas.it":true,"basilicata.it":true,"cal.it":true,"calabria.it":true,"cam.it":true,"campania.it":true,"emilia-romagna.it":true,"emiliaromagna.it":true,"emr.it":true,"friuli-v-giulia.it":true,"friuli-ve-giulia.it":true,"friuli-vegiulia.it":true,"friuli-venezia-giulia.it":true,"friuli-veneziagiulia.it":true,"friuli-vgiulia.it":true,"friuliv-giulia.it":true,"friulive-giulia.it":true,"friulivegiulia.it":true,"friulivenezia-giulia.it":true,"friuliveneziagiulia.it":true,"friulivgiulia.it":true,"fvg.it":true,"laz.it":true,"lazio.it":true,"lig.it":true,"liguria.it":true,"lom.it":true,"lombardia.it":true,"lombardy.it":true,"lucania.it":true,"mar.it":true,"marche.it":true,"mol.it":true,"molise.it":true,"piedmont.it":true,"piemonte.it":true,"pmn.it":true,"pug.it":true,"puglia.it":true,"sar.it":true,"sardegna.it":true,"sardinia.it":true,"sic.it":true,"sicilia.it":true,"sicily.it":true,"taa.it":true,"tos.it":true,"toscana.it":true,"trentino-a-adige.it":true,"trentino-aadige.it":true,"trentino-alto-adige.it":true,"trentino-altoadige.it":true,"trentino-s-tirol.it":true,"trentino-stirol.it":true,"trentino-sud-tirol.it":true,"trentino-sudtirol.it":true,"trentino-sued-tirol.it":true,"trentino-suedtirol.it":true,"trentinoa-adige.it":true,"trentinoaadige.it":true,"trentinoalto-adige.it":true,"trentinoaltoadige.it":true,"trentinos-tirol.it":true,"trentinostirol.it":true,"trentinosud-tirol.it":true,"trentinosudtirol.it":true,"trentinosued-tirol.it":true,"trentinosuedtirol.it":true,"tuscany.it":true,"umb.it":true,"umbria.it":true,"val-d-aosta.it":true,"val-daosta.it":true,"vald-aosta.it":true,"valdaosta.it":true,"valle-aosta.it":true,"valle-d-aosta.it":true,"valle-daosta.it":true,"valleaosta.it":true,"valled-aosta.it":true,"valledaosta.it":true,"vallee-aoste.it":true,"valleeaoste.it":true,"vao.it":true,"vda.it":true,"ven.it":true,"veneto.it":true,"ag.it":true,"agrigento.it":true,"al.it":true,"alessandria.it":true,"alto-adige.it":true,"altoadige.it":true,"an.it":true,"ancona.it":true,"andria-barletta-trani.it":true,"andria-trani-barletta.it":true,"andriabarlettatrani.it":true,"andriatranibarletta.it":true,"ao.it":true,"aosta.it":true,"aoste.it":true,"ap.it":true,"aq.it":true,"aquila.it":true,"ar.it":true,"arezzo.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"asti.it":true,"at.it":true,"av.it":true,"avellino.it":true,"ba.it":true,"balsan.it":true,"bari.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"belluno.it":true,"benevento.it":true,"bergamo.it":true,"bg.it":true,"bi.it":true,"biella.it":true,"bl.it":true,"bn.it":true,"bo.it":true,"bologna.it":true,"bolzano.it":true,"bozen.it":true,"br.it":true,"brescia.it":true,"brindisi.it":true,"bs.it":true,"bt.it":true,"bz.it":true,"ca.it":true,"cagliari.it":true,"caltanissetta.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"campobasso.it":true,"carbonia-iglesias.it":true,"carboniaiglesias.it":true,"carrara-massa.it":true,"carraramassa.it":true,"caserta.it":true,"catania.it":true,"catanzaro.it":true,"cb.it":true,"ce.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"ch.it":true,"chieti.it":true,"ci.it":true,"cl.it":true,"cn.it":true,"co.it":true,"como.it":true,"cosenza.it":true,"cr.it":true,"cremona.it":true,"crotone.it":true,"cs.it":true,"ct.it":true,"cuneo.it":true,"cz.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"en.it":true,"enna.it":true,"fc.it":true,"fe.it":true,"fermo.it":true,"ferrara.it":true,"fg.it":true,"fi.it":true,"firenze.it":true,"florence.it":true,"fm.it":true,"foggia.it":true,"forli-cesena.it":true,"forlicesena.it":true,"fr.it":true,"frosinone.it":true,"ge.it":true,"genoa.it":true,"genova.it":true,"go.it":true,"gorizia.it":true,"gr.it":true,"grosseto.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"im.it":true,"imperia.it":true,"is.it":true,"isernia.it":true,"kr.it":true,"la-spezia.it":true,"laquila.it":true,"laspezia.it":true,"latina.it":true,"lc.it":true,"le.it":true,"lecce.it":true,"lecco.it":true,"li.it":true,"livorno.it":true,"lo.it":true,"lodi.it":true,"lt.it":true,"lu.it":true,"lucca.it":true,"macerata.it":true,"mantova.it":true,"massa-carrara.it":true,"massacarrara.it":true,"matera.it":true,"mb.it":true,"mc.it":true,"me.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"messina.it":true,"mi.it":true,"milan.it":true,"milano.it":true,"mn.it":true,"mo.it":true,"modena.it":true,"monza-brianza.it":true,"monza-e-della-brianza.it":true,"monza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"ms.it":true,"mt.it":true,"na.it":true,"naples.it":true,"napoli.it":true,"no.it":true,"novara.it":true,"nu.it":true,"nuoro.it":true,"og.it":true,"ogliastra.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"or.it":true,"oristano.it":true,"ot.it":true,"pa.it":true,"padova.it":true,"padua.it":true,"palermo.it":true,"parma.it":true,"pavia.it":true,"pc.it":true,"pd.it":true,"pe.it":true,"perugia.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"pescara.it":true,"pg.it":true,"pi.it":true,"piacenza.it":true,"pisa.it":true,"pistoia.it":true,"pn.it":true,"po.it":true,"pordenone.it":true,"potenza.it":true,"pr.it":true,"prato.it":true,"pt.it":true,"pu.it":true,"pv.it":true,"pz.it":true,"ra.it":true,"ragusa.it":true,"ravenna.it":true,"rc.it":true,"re.it":true,"reggio-calabria.it":true,"reggio-emilia.it":true,"reggiocalabria.it":true,"reggioemilia.it":true,"rg.it":true,"ri.it":true,"rieti.it":true,"rimini.it":true,"rm.it":true,"rn.it":true,"ro.it":true,"roma.it":true,"rome.it":true,"rovigo.it":true,"sa.it":true,"salerno.it":true,"sassari.it":true,"savona.it":true,"si.it":true,"siena.it":true,"siracusa.it":true,"so.it":true,"sondrio.it":true,"sp.it":true,"sr.it":true,"ss.it":true,"suedtirol.it":true,"sv.it":true,"ta.it":true,"taranto.it":true,"te.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"teramo.it":true,"terni.it":true,"tn.it":true,"to.it":true,"torino.it":true,"tp.it":true,"tr.it":true,"trani-andria-barletta.it":true,"trani-barletta-andria.it":true,"traniandriabarletta.it":true,"tranibarlettaandria.it":true,"trapani.it":true,"trentino.it":true,"trento.it":true,"treviso.it":true,"trieste.it":true,"ts.it":true,"turin.it":true,"tv.it":true,"ud.it":true,"udine.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"va.it":true,"varese.it":true,"vb.it":true,"vc.it":true,"ve.it":true,"venezia.it":true,"venice.it":true,"verbania.it":true,"vercelli.it":true,"verona.it":true,"vi.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vicenza.it":true,"viterbo.it":true,"vr.it":true,"vs.it":true,"vt.it":true,"vv.it":true,"je":true,"co.je":true,"net.je":true,"org.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"aichi.jp":true,"akita.jp":true,"aomori.jp":true,"chiba.jp":true,"ehime.jp":true,"fukui.jp":true,"fukuoka.jp":true,"fukushima.jp":true,"gifu.jp":true,"gunma.jp":true,"hiroshima.jp":true,"hokkaido.jp":true,"hyogo.jp":true,"ibaraki.jp":true,"ishikawa.jp":true,"iwate.jp":true,"kagawa.jp":true,"kagoshima.jp":true,"kanagawa.jp":true,"kochi.jp":true,"kumamoto.jp":true,"kyoto.jp":true,"mie.jp":true,"miyagi.jp":true,"miyazaki.jp":true,"nagano.jp":true,"nagasaki.jp":true,"nara.jp":true,"niigata.jp":true,"oita.jp":true,"okayama.jp":true,"okinawa.jp":true,"osaka.jp":true,"saga.jp":true,"saitama.jp":true,"shiga.jp":true,"shimane.jp":true,"shizuoka.jp":true,"tochigi.jp":true,"tokushima.jp":true,"tokyo.jp":true,"tottori.jp":true,"toyama.jp":true,"wakayama.jp":true,"yamagata.jp":true,"yamaguchi.jp":true,"yamanashi.jp":true,"xn--4pvxs.jp":true,"xn--vgu402c.jp":true,"xn--c3s14m.jp":true,"xn--f6qx53a.jp":true,"xn--8pvr4u.jp":true,"xn--uist22h.jp":true,"xn--djrs72d6uy.jp":true,"xn--mkru45i.jp":true,"xn--0trq7p7nn.jp":true,"xn--8ltr62k.jp":true,"xn--2m4a15e.jp":true,"xn--efvn9s.jp":true,"xn--32vp30h.jp":true,"xn--4it797k.jp":true,"xn--1lqs71d.jp":true,"xn--5rtp49c.jp":true,"xn--5js045d.jp":true,"xn--ehqz56n.jp":true,"xn--1lqs03n.jp":true,"xn--qqqt11m.jp":true,"xn--kbrq7o.jp":true,"xn--pssu33l.jp":true,"xn--ntsq17g.jp":true,"xn--uisz3g.jp":true,"xn--6btw5a.jp":true,"xn--1ctwo.jp":true,"xn--6orx2r.jp":true,"xn--rht61e.jp":true,"xn--rht27z.jp":true,"xn--djty4k.jp":true,"xn--nit225k.jp":true,"xn--rht3d.jp":true,"xn--klty5x.jp":true,"xn--kltx9a.jp":true,"xn--kltp7d.jp":true,"xn--uuwu58a.jp":true,"xn--zbx025d.jp":true,"xn--ntso0iqx3a.jp":true,"xn--elqq16h.jp":true,"xn--4it168d.jp":true,"xn--klt787d.jp":true,"xn--rny31h.jp":true,"xn--7t0a264c.jp":true,"xn--5rtq34k.jp":true,"xn--k7yn95e.jp":true,"xn--tor131o.jp":true,"xn--d5qv7z876c.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.nagoya.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.yokohama.jp":true,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.nagoya.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.yokohama.jp":false,"aisai.aichi.jp":true,"ama.aichi.jp":true,"anjo.aichi.jp":true,"asuke.aichi.jp":true,"chiryu.aichi.jp":true,"chita.aichi.jp":true,"fuso.aichi.jp":true,"gamagori.aichi.jp":true,"handa.aichi.jp":true,"hazu.aichi.jp":true,"hekinan.aichi.jp":true,"higashiura.aichi.jp":true,"ichinomiya.aichi.jp":true,"inazawa.aichi.jp":true,"inuyama.aichi.jp":true,"isshiki.aichi.jp":true,"iwakura.aichi.jp":true,"kanie.aichi.jp":true,"kariya.aichi.jp":true,"kasugai.aichi.jp":true,"kira.aichi.jp":true,"kiyosu.aichi.jp":true,"komaki.aichi.jp":true,"konan.aichi.jp":true,"kota.aichi.jp":true,"mihama.aichi.jp":true,"miyoshi.aichi.jp":true,"nishio.aichi.jp":true,"nisshin.aichi.jp":true,"obu.aichi.jp":true,"oguchi.aichi.jp":true,"oharu.aichi.jp":true,"okazaki.aichi.jp":true,"owariasahi.aichi.jp":true,"seto.aichi.jp":true,"shikatsu.aichi.jp":true,"shinshiro.aichi.jp":true,"shitara.aichi.jp":true,"tahara.aichi.jp":true,"takahama.aichi.jp":true,"tobishima.aichi.jp":true,"toei.aichi.jp":true,"togo.aichi.jp":true,"tokai.aichi.jp":true,"tokoname.aichi.jp":true,"toyoake.aichi.jp":true,"toyohashi.aichi.jp":true,"toyokawa.aichi.jp":true,"toyone.aichi.jp":true,"toyota.aichi.jp":true,"tsushima.aichi.jp":true,"yatomi.aichi.jp":true,"akita.akita.jp":true,"daisen.akita.jp":true,"fujisato.akita.jp":true,"gojome.akita.jp":true,"hachirogata.akita.jp":true,"happou.akita.jp":true,"higashinaruse.akita.jp":true,"honjo.akita.jp":true,"honjyo.akita.jp":true,"ikawa.akita.jp":true,"kamikoani.akita.jp":true,"kamioka.akita.jp":true,"katagami.akita.jp":true,"kazuno.akita.jp":true,"kitaakita.akita.jp":true,"kosaka.akita.jp":true,"kyowa.akita.jp":true,"misato.akita.jp":true,"mitane.akita.jp":true,"moriyoshi.akita.jp":true,"nikaho.akita.jp":true,"noshiro.akita.jp":true,"odate.akita.jp":true,"oga.akita.jp":true,"ogata.akita.jp":true,"semboku.akita.jp":true,"yokote.akita.jp":true,"yurihonjo.akita.jp":true,"aomori.aomori.jp":true,"gonohe.aomori.jp":true,"hachinohe.aomori.jp":true,"hashikami.aomori.jp":true,"hiranai.aomori.jp":true,"hirosaki.aomori.jp":true,"itayanagi.aomori.jp":true,"kuroishi.aomori.jp":true,"misawa.aomori.jp":true,"mutsu.aomori.jp":true,"nakadomari.aomori.jp":true,"noheji.aomori.jp":true,"oirase.aomori.jp":true,"owani.aomori.jp":true,"rokunohe.aomori.jp":true,"sannohe.aomori.jp":true,"shichinohe.aomori.jp":true,"shingo.aomori.jp":true,"takko.aomori.jp":true,"towada.aomori.jp":true,"tsugaru.aomori.jp":true,"tsuruta.aomori.jp":true,"abiko.chiba.jp":true,"asahi.chiba.jp":true,"chonan.chiba.jp":true,"chosei.chiba.jp":true,"choshi.chiba.jp":true,"chuo.chiba.jp":true,"funabashi.chiba.jp":true,"futtsu.chiba.jp":true,"hanamigawa.chiba.jp":true,"ichihara.chiba.jp":true,"ichikawa.chiba.jp":true,"ichinomiya.chiba.jp":true,"inzai.chiba.jp":true,"isumi.chiba.jp":true,"kamagaya.chiba.jp":true,"kamogawa.chiba.jp":true,"kashiwa.chiba.jp":true,"katori.chiba.jp":true,"katsuura.chiba.jp":true,"kimitsu.chiba.jp":true,"kisarazu.chiba.jp":true,"kozaki.chiba.jp":true,"kujukuri.chiba.jp":true,"kyonan.chiba.jp":true,"matsudo.chiba.jp":true,"midori.chiba.jp":true,"mihama.chiba.jp":true,"minamiboso.chiba.jp":true,"mobara.chiba.jp":true,"mutsuzawa.chiba.jp":true,"nagara.chiba.jp":true,"nagareyama.chiba.jp":true,"narashino.chiba.jp":true,"narita.chiba.jp":true,"noda.chiba.jp":true,"oamishirasato.chiba.jp":true,"omigawa.chiba.jp":true,"onjuku.chiba.jp":true,"otaki.chiba.jp":true,"sakae.chiba.jp":true,"sakura.chiba.jp":true,"shimofusa.chiba.jp":true,"shirako.chiba.jp":true,"shiroi.chiba.jp":true,"shisui.chiba.jp":true,"sodegaura.chiba.jp":true,"sosa.chiba.jp":true,"tako.chiba.jp":true,"tateyama.chiba.jp":true,"togane.chiba.jp":true,"tohnosho.chiba.jp":true,"tomisato.chiba.jp":true,"urayasu.chiba.jp":true,"yachimata.chiba.jp":true,"yachiyo.chiba.jp":true,"yokaichiba.chiba.jp":true,"yokoshibahikari.chiba.jp":true,"yotsukaido.chiba.jp":true,"ainan.ehime.jp":true,"honai.ehime.jp":true,"ikata.ehime.jp":true,"imabari.ehime.jp":true,"iyo.ehime.jp":true,"kamijima.ehime.jp":true,"kihoku.ehime.jp":true,"kumakogen.ehime.jp":true,"masaki.ehime.jp":true,"matsuno.ehime.jp":true,"matsuyama.ehime.jp":true,"namikata.ehime.jp":true,"niihama.ehime.jp":true,"ozu.ehime.jp":true,"saijo.ehime.jp":true,"seiyo.ehime.jp":true,"shikokuchuo.ehime.jp":true,"tobe.ehime.jp":true,"toon.ehime.jp":true,"uchiko.ehime.jp":true,"uwajima.ehime.jp":true,"yawatahama.ehime.jp":true,"echizen.fukui.jp":true,"eiheiji.fukui.jp":true,"fukui.fukui.jp":true,"ikeda.fukui.jp":true,"katsuyama.fukui.jp":true,"mihama.fukui.jp":true,"minamiechizen.fukui.jp":true,"obama.fukui.jp":true,"ohi.fukui.jp":true,"ono.fukui.jp":true,"sabae.fukui.jp":true,"sakai.fukui.jp":true,"takahama.fukui.jp":true,"tsuruga.fukui.jp":true,"wakasa.fukui.jp":true,"ashiya.fukuoka.jp":true,"buzen.fukuoka.jp":true,"chikugo.fukuoka.jp":true,"chikuho.fukuoka.jp":true,"chikujo.fukuoka.jp":true,"chikushino.fukuoka.jp":true,"chikuzen.fukuoka.jp":true,"chuo.fukuoka.jp":true,"dazaifu.fukuoka.jp":true,"fukuchi.fukuoka.jp":true,"hakata.fukuoka.jp":true,"higashi.fukuoka.jp":true,"hirokawa.fukuoka.jp":true,"hisayama.fukuoka.jp":true,"iizuka.fukuoka.jp":true,"inatsuki.fukuoka.jp":true,"kaho.fukuoka.jp":true,"kasuga.fukuoka.jp":true,"kasuya.fukuoka.jp":true,"kawara.fukuoka.jp":true,"keisen.fukuoka.jp":true,"koga.fukuoka.jp":true,"kurate.fukuoka.jp":true,"kurogi.fukuoka.jp":true,"kurume.fukuoka.jp":true,"minami.fukuoka.jp":true,"miyako.fukuoka.jp":true,"miyama.fukuoka.jp":true,"miyawaka.fukuoka.jp":true,"mizumaki.fukuoka.jp":true,"munakata.fukuoka.jp":true,"nakagawa.fukuoka.jp":true,"nakama.fukuoka.jp":true,"nishi.fukuoka.jp":true,"nogata.fukuoka.jp":true,"ogori.fukuoka.jp":true,"okagaki.fukuoka.jp":true,"okawa.fukuoka.jp":true,"oki.fukuoka.jp":true,"omuta.fukuoka.jp":true,"onga.fukuoka.jp":true,"onojo.fukuoka.jp":true,"oto.fukuoka.jp":true,"saigawa.fukuoka.jp":true,"sasaguri.fukuoka.jp":true,"shingu.fukuoka.jp":true,"shinyoshitomi.fukuoka.jp":true,"shonai.fukuoka.jp":true,"soeda.fukuoka.jp":true,"sue.fukuoka.jp":true,"tachiarai.fukuoka.jp":true,"tagawa.fukuoka.jp":true,"takata.fukuoka.jp":true,"toho.fukuoka.jp":true,"toyotsu.fukuoka.jp":true,"tsuiki.fukuoka.jp":true,"ukiha.fukuoka.jp":true,"umi.fukuoka.jp":true,"usui.fukuoka.jp":true,"yamada.fukuoka.jp":true,"yame.fukuoka.jp":true,"yanagawa.fukuoka.jp":true,"yukuhashi.fukuoka.jp":true,"aizubange.fukushima.jp":true,"aizumisato.fukushima.jp":true,"aizuwakamatsu.fukushima.jp":true,"asakawa.fukushima.jp":true,"bandai.fukushima.jp":true,"date.fukushima.jp":true,"fukushima.fukushima.jp":true,"furudono.fukushima.jp":true,"futaba.fukushima.jp":true,"hanawa.fukushima.jp":true,"higashi.fukushima.jp":true,"hirata.fukushima.jp":true,"hirono.fukushima.jp":true,"iitate.fukushima.jp":true,"inawashiro.fukushima.jp":true,"ishikawa.fukushima.jp":true,"iwaki.fukushima.jp":true,"izumizaki.fukushima.jp":true,"kagamiishi.fukushima.jp":true,"kaneyama.fukushima.jp":true,"kawamata.fukushima.jp":true,"kitakata.fukushima.jp":true,"kitashiobara.fukushima.jp":true,"koori.fukushima.jp":true,"koriyama.fukushima.jp":true,"kunimi.fukushima.jp":true,"miharu.fukushima.jp":true,"mishima.fukushima.jp":true,"namie.fukushima.jp":true,"nango.fukushima.jp":true,"nishiaizu.fukushima.jp":true,"nishigo.fukushima.jp":true,"okuma.fukushima.jp":true,"omotego.fukushima.jp":true,"ono.fukushima.jp":true,"otama.fukushima.jp":true,"samegawa.fukushima.jp":true,"shimogo.fukushima.jp":true,"shirakawa.fukushima.jp":true,"showa.fukushima.jp":true,"soma.fukushima.jp":true,"sukagawa.fukushima.jp":true,"taishin.fukushima.jp":true,"tamakawa.fukushima.jp":true,"tanagura.fukushima.jp":true,"tenei.fukushima.jp":true,"yabuki.fukushima.jp":true,"yamato.fukushima.jp":true,"yamatsuri.fukushima.jp":true,"yanaizu.fukushima.jp":true,"yugawa.fukushima.jp":true,"anpachi.gifu.jp":true,"ena.gifu.jp":true,"gifu.gifu.jp":true,"ginan.gifu.jp":true,"godo.gifu.jp":true,"gujo.gifu.jp":true,"hashima.gifu.jp":true,"hichiso.gifu.jp":true,"hida.gifu.jp":true,"higashishirakawa.gifu.jp":true,"ibigawa.gifu.jp":true,"ikeda.gifu.jp":true,"kakamigahara.gifu.jp":true,"kani.gifu.jp":true,"kasahara.gifu.jp":true,"kasamatsu.gifu.jp":true,"kawaue.gifu.jp":true,"kitagata.gifu.jp":true,"mino.gifu.jp":true,"minokamo.gifu.jp":true,"mitake.gifu.jp":true,"mizunami.gifu.jp":true,"motosu.gifu.jp":true,"nakatsugawa.gifu.jp":true,"ogaki.gifu.jp":true,"sakahogi.gifu.jp":true,"seki.gifu.jp":true,"sekigahara.gifu.jp":true,"shirakawa.gifu.jp":true,"tajimi.gifu.jp":true,"takayama.gifu.jp":true,"tarui.gifu.jp":true,"toki.gifu.jp":true,"tomika.gifu.jp":true,"wanouchi.gifu.jp":true,"yamagata.gifu.jp":true,"yaotsu.gifu.jp":true,"yoro.gifu.jp":true,"annaka.gunma.jp":true,"chiyoda.gunma.jp":true,"fujioka.gunma.jp":true,"higashiagatsuma.gunma.jp":true,"isesaki.gunma.jp":true,"itakura.gunma.jp":true,"kanna.gunma.jp":true,"kanra.gunma.jp":true,"katashina.gunma.jp":true,"kawaba.gunma.jp":true,"kiryu.gunma.jp":true,"kusatsu.gunma.jp":true,"maebashi.gunma.jp":true,"meiwa.gunma.jp":true,"midori.gunma.jp":true,"minakami.gunma.jp":true,"naganohara.gunma.jp":true,"nakanojo.gunma.jp":true,"nanmoku.gunma.jp":true,"numata.gunma.jp":true,"oizumi.gunma.jp":true,"ora.gunma.jp":true,"ota.gunma.jp":true,"shibukawa.gunma.jp":true,"shimonita.gunma.jp":true,"shinto.gunma.jp":true,"showa.gunma.jp":true,"takasaki.gunma.jp":true,"takayama.gunma.jp":true,"tamamura.gunma.jp":true,"tatebayashi.gunma.jp":true,"tomioka.gunma.jp":true,"tsukiyono.gunma.jp":true,"tsumagoi.gunma.jp":true,"ueno.gunma.jp":true,"yoshioka.gunma.jp":true,"asaminami.hiroshima.jp":true,"daiwa.hiroshima.jp":true,"etajima.hiroshima.jp":true,"fuchu.hiroshima.jp":true,"fukuyama.hiroshima.jp":true,"hatsukaichi.hiroshima.jp":true,"higashihiroshima.hiroshima.jp":true,"hongo.hiroshima.jp":true,"jinsekikogen.hiroshima.jp":true,"kaita.hiroshima.jp":true,"kui.hiroshima.jp":true,"kumano.hiroshima.jp":true,"kure.hiroshima.jp":true,"mihara.hiroshima.jp":true,"miyoshi.hiroshima.jp":true,"naka.hiroshima.jp":true,"onomichi.hiroshima.jp":true,"osakikamijima.hiroshima.jp":true,"otake.hiroshima.jp":true,"saka.hiroshima.jp":true,"sera.hiroshima.jp":true,"seranishi.hiroshima.jp":true,"shinichi.hiroshima.jp":true,"shobara.hiroshima.jp":true,"takehara.hiroshima.jp":true,"abashiri.hokkaido.jp":true,"abira.hokkaido.jp":true,"aibetsu.hokkaido.jp":true,"akabira.hokkaido.jp":true,"akkeshi.hokkaido.jp":true,"asahikawa.hokkaido.jp":true,"ashibetsu.hokkaido.jp":true,"ashoro.hokkaido.jp":true,"assabu.hokkaido.jp":true,"atsuma.hokkaido.jp":true,"bibai.hokkaido.jp":true,"biei.hokkaido.jp":true,"bifuka.hokkaido.jp":true,"bihoro.hokkaido.jp":true,"biratori.hokkaido.jp":true,"chippubetsu.hokkaido.jp":true,"chitose.hokkaido.jp":true,"date.hokkaido.jp":true,"ebetsu.hokkaido.jp":true,"embetsu.hokkaido.jp":true,"eniwa.hokkaido.jp":true,"erimo.hokkaido.jp":true,"esan.hokkaido.jp":true,"esashi.hokkaido.jp":true,"fukagawa.hokkaido.jp":true,"fukushima.hokkaido.jp":true,"furano.hokkaido.jp":true,"furubira.hokkaido.jp":true,"haboro.hokkaido.jp":true,"hakodate.hokkaido.jp":true,"hamatonbetsu.hokkaido.jp":true,"hidaka.hokkaido.jp":true,"higashikagura.hokkaido.jp":true,"higashikawa.hokkaido.jp":true,"hiroo.hokkaido.jp":true,"hokuryu.hokkaido.jp":true,"hokuto.hokkaido.jp":true,"honbetsu.hokkaido.jp":true,"horokanai.hokkaido.jp":true,"horonobe.hokkaido.jp":true,"ikeda.hokkaido.jp":true,"imakane.hokkaido.jp":true,"ishikari.hokkaido.jp":true,"iwamizawa.hokkaido.jp":true,"iwanai.hokkaido.jp":true,"kamifurano.hokkaido.jp":true,"kamikawa.hokkaido.jp":true,"kamishihoro.hokkaido.jp":true,"kamisunagawa.hokkaido.jp":true,"kamoenai.hokkaido.jp":true,"kayabe.hokkaido.jp":true,"kembuchi.hokkaido.jp":true,"kikonai.hokkaido.jp":true,"kimobetsu.hokkaido.jp":true,"kitahiroshima.hokkaido.jp":true,"kitami.hokkaido.jp":true,"kiyosato.hokkaido.jp":true,"koshimizu.hokkaido.jp":true,"kunneppu.hokkaido.jp":true,"kuriyama.hokkaido.jp":true,"kuromatsunai.hokkaido.jp":true,"kushiro.hokkaido.jp":true,"kutchan.hokkaido.jp":true,"kyowa.hokkaido.jp":true,"mashike.hokkaido.jp":true,"matsumae.hokkaido.jp":true,"mikasa.hokkaido.jp":true,"minamifurano.hokkaido.jp":true,"mombetsu.hokkaido.jp":true,"moseushi.hokkaido.jp":true,"mukawa.hokkaido.jp":true,"muroran.hokkaido.jp":true,"naie.hokkaido.jp":true,"nakagawa.hokkaido.jp":true,"nakasatsunai.hokkaido.jp":true,"nakatombetsu.hokkaido.jp":true,"nanae.hokkaido.jp":true,"nanporo.hokkaido.jp":true,"nayoro.hokkaido.jp":true,"nemuro.hokkaido.jp":true,"niikappu.hokkaido.jp":true,"niki.hokkaido.jp":true,"nishiokoppe.hokkaido.jp":true,"noboribetsu.hokkaido.jp":true,"numata.hokkaido.jp":true,"obihiro.hokkaido.jp":true,"obira.hokkaido.jp":true,"oketo.hokkaido.jp":true,"okoppe.hokkaido.jp":true,"otaru.hokkaido.jp":true,"otobe.hokkaido.jp":true,"otofuke.hokkaido.jp":true,"otoineppu.hokkaido.jp":true,"oumu.hokkaido.jp":true,"ozora.hokkaido.jp":true,"pippu.hokkaido.jp":true,"rankoshi.hokkaido.jp":true,"rebun.hokkaido.jp":true,"rikubetsu.hokkaido.jp":true,"rishiri.hokkaido.jp":true,"rishirifuji.hokkaido.jp":true,"saroma.hokkaido.jp":true,"sarufutsu.hokkaido.jp":true,"shakotan.hokkaido.jp":true,"shari.hokkaido.jp":true,"shibecha.hokkaido.jp":true,"shibetsu.hokkaido.jp":true,"shikabe.hokkaido.jp":true,"shikaoi.hokkaido.jp":true,"shimamaki.hokkaido.jp":true,"shimizu.hokkaido.jp":true,"shimokawa.hokkaido.jp":true,"shinshinotsu.hokkaido.jp":true,"shintoku.hokkaido.jp":true,"shiranuka.hokkaido.jp":true,"shiraoi.hokkaido.jp":true,"shiriuchi.hokkaido.jp":true,"sobetsu.hokkaido.jp":true,"sunagawa.hokkaido.jp":true,"taiki.hokkaido.jp":true,"takasu.hokkaido.jp":true,"takikawa.hokkaido.jp":true,"takinoue.hokkaido.jp":true,"teshikaga.hokkaido.jp":true,"tobetsu.hokkaido.jp":true,"tohma.hokkaido.jp":true,"tomakomai.hokkaido.jp":true,"tomari.hokkaido.jp":true,"toya.hokkaido.jp":true,"toyako.hokkaido.jp":true,"toyotomi.hokkaido.jp":true,"toyoura.hokkaido.jp":true,"tsubetsu.hokkaido.jp":true,"tsukigata.hokkaido.jp":true,"urakawa.hokkaido.jp":true,"urausu.hokkaido.jp":true,"uryu.hokkaido.jp":true,"utashinai.hokkaido.jp":true,"wakkanai.hokkaido.jp":true,"wassamu.hokkaido.jp":true,"yakumo.hokkaido.jp":true,"yoichi.hokkaido.jp":true,"aioi.hyogo.jp":true,"akashi.hyogo.jp":true,"ako.hyogo.jp":true,"amagasaki.hyogo.jp":true,"aogaki.hyogo.jp":true,"asago.hyogo.jp":true,"ashiya.hyogo.jp":true,"awaji.hyogo.jp":true,"fukusaki.hyogo.jp":true,"goshiki.hyogo.jp":true,"harima.hyogo.jp":true,"himeji.hyogo.jp":true,"ichikawa.hyogo.jp":true,"inagawa.hyogo.jp":true,"itami.hyogo.jp":true,"kakogawa.hyogo.jp":true,"kamigori.hyogo.jp":true,"kamikawa.hyogo.jp":true,"kasai.hyogo.jp":true,"kasuga.hyogo.jp":true,"kawanishi.hyogo.jp":true,"miki.hyogo.jp":true,"minamiawaji.hyogo.jp":true,"nishinomiya.hyogo.jp":true,"nishiwaki.hyogo.jp":true,"ono.hyogo.jp":true,"sanda.hyogo.jp":true,"sannan.hyogo.jp":true,"sasayama.hyogo.jp":true,"sayo.hyogo.jp":true,"shingu.hyogo.jp":true,"shinonsen.hyogo.jp":true,"shiso.hyogo.jp":true,"sumoto.hyogo.jp":true,"taishi.hyogo.jp":true,"taka.hyogo.jp":true,"takarazuka.hyogo.jp":true,"takasago.hyogo.jp":true,"takino.hyogo.jp":true,"tamba.hyogo.jp":true,"tatsuno.hyogo.jp":true,"toyooka.hyogo.jp":true,"yabu.hyogo.jp":true,"yashiro.hyogo.jp":true,"yoka.hyogo.jp":true,"yokawa.hyogo.jp":true,"ami.ibaraki.jp":true,"asahi.ibaraki.jp":true,"bando.ibaraki.jp":true,"chikusei.ibaraki.jp":true,"daigo.ibaraki.jp":true,"fujishiro.ibaraki.jp":true,"hitachi.ibaraki.jp":true,"hitachinaka.ibaraki.jp":true,"hitachiomiya.ibaraki.jp":true,"hitachiota.ibaraki.jp":true,"ibaraki.ibaraki.jp":true,"ina.ibaraki.jp":true,"inashiki.ibaraki.jp":true,"itako.ibaraki.jp":true,"iwama.ibaraki.jp":true,"joso.ibaraki.jp":true,"kamisu.ibaraki.jp":true,"kasama.ibaraki.jp":true,"kashima.ibaraki.jp":true,"kasumigaura.ibaraki.jp":true,"koga.ibaraki.jp":true,"miho.ibaraki.jp":true,"mito.ibaraki.jp":true,"moriya.ibaraki.jp":true,"naka.ibaraki.jp":true,"namegata.ibaraki.jp":true,"oarai.ibaraki.jp":true,"ogawa.ibaraki.jp":true,"omitama.ibaraki.jp":true,"ryugasaki.ibaraki.jp":true,"sakai.ibaraki.jp":true,"sakuragawa.ibaraki.jp":true,"shimodate.ibaraki.jp":true,"shimotsuma.ibaraki.jp":true,"shirosato.ibaraki.jp":true,"sowa.ibaraki.jp":true,"suifu.ibaraki.jp":true,"takahagi.ibaraki.jp":true,"tamatsukuri.ibaraki.jp":true,"tokai.ibaraki.jp":true,"tomobe.ibaraki.jp":true,"tone.ibaraki.jp":true,"toride.ibaraki.jp":true,"tsuchiura.ibaraki.jp":true,"tsukuba.ibaraki.jp":true,"uchihara.ibaraki.jp":true,"ushiku.ibaraki.jp":true,"yachiyo.ibaraki.jp":true,"yamagata.ibaraki.jp":true,"yawara.ibaraki.jp":true,"yuki.ibaraki.jp":true,"anamizu.ishikawa.jp":true,"hakui.ishikawa.jp":true,"hakusan.ishikawa.jp":true,"kaga.ishikawa.jp":true,"kahoku.ishikawa.jp":true,"kanazawa.ishikawa.jp":true,"kawakita.ishikawa.jp":true,"komatsu.ishikawa.jp":true,"nakanoto.ishikawa.jp":true,"nanao.ishikawa.jp":true,"nomi.ishikawa.jp":true,"nonoichi.ishikawa.jp":true,"noto.ishikawa.jp":true,"shika.ishikawa.jp":true,"suzu.ishikawa.jp":true,"tsubata.ishikawa.jp":true,"tsurugi.ishikawa.jp":true,"uchinada.ishikawa.jp":true,"wajima.ishikawa.jp":true,"fudai.iwate.jp":true,"fujisawa.iwate.jp":true,"hanamaki.iwate.jp":true,"hiraizumi.iwate.jp":true,"hirono.iwate.jp":true,"ichinohe.iwate.jp":true,"ichinoseki.iwate.jp":true,"iwaizumi.iwate.jp":true,"iwate.iwate.jp":true,"joboji.iwate.jp":true,"kamaishi.iwate.jp":true,"kanegasaki.iwate.jp":true,"karumai.iwate.jp":true,"kawai.iwate.jp":true,"kitakami.iwate.jp":true,"kuji.iwate.jp":true,"kunohe.iwate.jp":true,"kuzumaki.iwate.jp":true,"miyako.iwate.jp":true,"mizusawa.iwate.jp":true,"morioka.iwate.jp":true,"ninohe.iwate.jp":true,"noda.iwate.jp":true,"ofunato.iwate.jp":true,"oshu.iwate.jp":true,"otsuchi.iwate.jp":true,"rikuzentakata.iwate.jp":true,"shiwa.iwate.jp":true,"shizukuishi.iwate.jp":true,"sumita.iwate.jp":true,"tanohata.iwate.jp":true,"tono.iwate.jp":true,"yahaba.iwate.jp":true,"yamada.iwate.jp":true,"ayagawa.kagawa.jp":true,"higashikagawa.kagawa.jp":true,"kanonji.kagawa.jp":true,"kotohira.kagawa.jp":true,"manno.kagawa.jp":true,"marugame.kagawa.jp":true,"mitoyo.kagawa.jp":true,"naoshima.kagawa.jp":true,"sanuki.kagawa.jp":true,"tadotsu.kagawa.jp":true,"takamatsu.kagawa.jp":true,"tonosho.kagawa.jp":true,"uchinomi.kagawa.jp":true,"utazu.kagawa.jp":true,"zentsuji.kagawa.jp":true,"akune.kagoshima.jp":true,"amami.kagoshima.jp":true,"hioki.kagoshima.jp":true,"isa.kagoshima.jp":true,"isen.kagoshima.jp":true,"izumi.kagoshima.jp":true,"kagoshima.kagoshima.jp":true,"kanoya.kagoshima.jp":true,"kawanabe.kagoshima.jp":true,"kinko.kagoshima.jp":true,"kouyama.kagoshima.jp":true,"makurazaki.kagoshima.jp":true,"matsumoto.kagoshima.jp":true,"minamitane.kagoshima.jp":true,"nakatane.kagoshima.jp":true,"nishinoomote.kagoshima.jp":true,"satsumasendai.kagoshima.jp":true,"soo.kagoshima.jp":true,"tarumizu.kagoshima.jp":true,"yusui.kagoshima.jp":true,"aikawa.kanagawa.jp":true,"atsugi.kanagawa.jp":true,"ayase.kanagawa.jp":true,"chigasaki.kanagawa.jp":true,"ebina.kanagawa.jp":true,"fujisawa.kanagawa.jp":true,"hadano.kanagawa.jp":true,"hakone.kanagawa.jp":true,"hiratsuka.kanagawa.jp":true,"isehara.kanagawa.jp":true,"kaisei.kanagawa.jp":true,"kamakura.kanagawa.jp":true,"kiyokawa.kanagawa.jp":true,"matsuda.kanagawa.jp":true,"minamiashigara.kanagawa.jp":true,"miura.kanagawa.jp":true,"nakai.kanagawa.jp":true,"ninomiya.kanagawa.jp":true,"odawara.kanagawa.jp":true,"oi.kanagawa.jp":true,"oiso.kanagawa.jp":true,"sagamihara.kanagawa.jp":true,"samukawa.kanagawa.jp":true,"tsukui.kanagawa.jp":true,"yamakita.kanagawa.jp":true,"yamato.kanagawa.jp":true,"yokosuka.kanagawa.jp":true,"yugawara.kanagawa.jp":true,"zama.kanagawa.jp":true,"zushi.kanagawa.jp":true,"aki.kochi.jp":true,"geisei.kochi.jp":true,"hidaka.kochi.jp":true,"higashitsuno.kochi.jp":true,"ino.kochi.jp":true,"kagami.kochi.jp":true,"kami.kochi.jp":true,"kitagawa.kochi.jp":true,"kochi.kochi.jp":true,"mihara.kochi.jp":true,"motoyama.kochi.jp":true,"muroto.kochi.jp":true,"nahari.kochi.jp":true,"nakamura.kochi.jp":true,"nankoku.kochi.jp":true,"nishitosa.kochi.jp":true,"niyodogawa.kochi.jp":true,"ochi.kochi.jp":true,"okawa.kochi.jp":true,"otoyo.kochi.jp":true,"otsuki.kochi.jp":true,"sakawa.kochi.jp":true,"sukumo.kochi.jp":true,"susaki.kochi.jp":true,"tosa.kochi.jp":true,"tosashimizu.kochi.jp":true,"toyo.kochi.jp":true,"tsuno.kochi.jp":true,"umaji.kochi.jp":true,"yasuda.kochi.jp":true,"yusuhara.kochi.jp":true,"amakusa.kumamoto.jp":true,"arao.kumamoto.jp":true,"aso.kumamoto.jp":true,"choyo.kumamoto.jp":true,"gyokuto.kumamoto.jp":true,"kamiamakusa.kumamoto.jp":true,"kikuchi.kumamoto.jp":true,"kumamoto.kumamoto.jp":true,"mashiki.kumamoto.jp":true,"mifune.kumamoto.jp":true,"minamata.kumamoto.jp":true,"minamioguni.kumamoto.jp":true,"nagasu.kumamoto.jp":true,"nishihara.kumamoto.jp":true,"oguni.kumamoto.jp":true,"ozu.kumamoto.jp":true,"sumoto.kumamoto.jp":true,"takamori.kumamoto.jp":true,"uki.kumamoto.jp":true,"uto.kumamoto.jp":true,"yamaga.kumamoto.jp":true,"yamato.kumamoto.jp":true,"yatsushiro.kumamoto.jp":true,"ayabe.kyoto.jp":true,"fukuchiyama.kyoto.jp":true,"higashiyama.kyoto.jp":true,"ide.kyoto.jp":true,"ine.kyoto.jp":true,"joyo.kyoto.jp":true,"kameoka.kyoto.jp":true,"kamo.kyoto.jp":true,"kita.kyoto.jp":true,"kizu.kyoto.jp":true,"kumiyama.kyoto.jp":true,"kyotamba.kyoto.jp":true,"kyotanabe.kyoto.jp":true,"kyotango.kyoto.jp":true,"maizuru.kyoto.jp":true,"minami.kyoto.jp":true,"minamiyamashiro.kyoto.jp":true,"miyazu.kyoto.jp":true,"muko.kyoto.jp":true,"nagaokakyo.kyoto.jp":true,"nakagyo.kyoto.jp":true,"nantan.kyoto.jp":true,"oyamazaki.kyoto.jp":true,"sakyo.kyoto.jp":true,"seika.kyoto.jp":true,"tanabe.kyoto.jp":true,"uji.kyoto.jp":true,"ujitawara.kyoto.jp":true,"wazuka.kyoto.jp":true,"yamashina.kyoto.jp":true,"yawata.kyoto.jp":true,"asahi.mie.jp":true,"inabe.mie.jp":true,"ise.mie.jp":true,"kameyama.mie.jp":true,"kawagoe.mie.jp":true,"kiho.mie.jp":true,"kisosaki.mie.jp":true,"kiwa.mie.jp":true,"komono.mie.jp":true,"kumano.mie.jp":true,"kuwana.mie.jp":true,"matsusaka.mie.jp":true,"meiwa.mie.jp":true,"mihama.mie.jp":true,"minamiise.mie.jp":true,"misugi.mie.jp":true,"miyama.mie.jp":true,"nabari.mie.jp":true,"shima.mie.jp":true,"suzuka.mie.jp":true,"tado.mie.jp":true,"taiki.mie.jp":true,"taki.mie.jp":true,"tamaki.mie.jp":true,"toba.mie.jp":true,"tsu.mie.jp":true,"udono.mie.jp":true,"ureshino.mie.jp":true,"watarai.mie.jp":true,"yokkaichi.mie.jp":true,"furukawa.miyagi.jp":true,"higashimatsushima.miyagi.jp":true,"ishinomaki.miyagi.jp":true,"iwanuma.miyagi.jp":true,"kakuda.miyagi.jp":true,"kami.miyagi.jp":true,"kawasaki.miyagi.jp":true,"marumori.miyagi.jp":true,"matsushima.miyagi.jp":true,"minamisanriku.miyagi.jp":true,"misato.miyagi.jp":true,"murata.miyagi.jp":true,"natori.miyagi.jp":true,"ogawara.miyagi.jp":true,"ohira.miyagi.jp":true,"onagawa.miyagi.jp":true,"osaki.miyagi.jp":true,"rifu.miyagi.jp":true,"semine.miyagi.jp":true,"shibata.miyagi.jp":true,"shichikashuku.miyagi.jp":true,"shikama.miyagi.jp":true,"shiogama.miyagi.jp":true,"shiroishi.miyagi.jp":true,"tagajo.miyagi.jp":true,"taiwa.miyagi.jp":true,"tome.miyagi.jp":true,"tomiya.miyagi.jp":true,"wakuya.miyagi.jp":true,"watari.miyagi.jp":true,"yamamoto.miyagi.jp":true,"zao.miyagi.jp":true,"aya.miyazaki.jp":true,"ebino.miyazaki.jp":true,"gokase.miyazaki.jp":true,"hyuga.miyazaki.jp":true,"kadogawa.miyazaki.jp":true,"kawaminami.miyazaki.jp":true,"kijo.miyazaki.jp":true,"kitagawa.miyazaki.jp":true,"kitakata.miyazaki.jp":true,"kitaura.miyazaki.jp":true,"kobayashi.miyazaki.jp":true,"kunitomi.miyazaki.jp":true,"kushima.miyazaki.jp":true,"mimata.miyazaki.jp":true,"miyakonojo.miyazaki.jp":true,"miyazaki.miyazaki.jp":true,"morotsuka.miyazaki.jp":true,"nichinan.miyazaki.jp":true,"nishimera.miyazaki.jp":true,"nobeoka.miyazaki.jp":true,"saito.miyazaki.jp":true,"shiiba.miyazaki.jp":true,"shintomi.miyazaki.jp":true,"takaharu.miyazaki.jp":true,"takanabe.miyazaki.jp":true,"takazaki.miyazaki.jp":true,"tsuno.miyazaki.jp":true,"achi.nagano.jp":true,"agematsu.nagano.jp":true,"anan.nagano.jp":true,"aoki.nagano.jp":true,"asahi.nagano.jp":true,"azumino.nagano.jp":true,"chikuhoku.nagano.jp":true,"chikuma.nagano.jp":true,"chino.nagano.jp":true,"fujimi.nagano.jp":true,"hakuba.nagano.jp":true,"hara.nagano.jp":true,"hiraya.nagano.jp":true,"iida.nagano.jp":true,"iijima.nagano.jp":true,"iiyama.nagano.jp":true,"iizuna.nagano.jp":true,"ikeda.nagano.jp":true,"ikusaka.nagano.jp":true,"ina.nagano.jp":true,"karuizawa.nagano.jp":true,"kawakami.nagano.jp":true,"kiso.nagano.jp":true,"kisofukushima.nagano.jp":true,"kitaaiki.nagano.jp":true,"komagane.nagano.jp":true,"komoro.nagano.jp":true,"matsukawa.nagano.jp":true,"matsumoto.nagano.jp":true,"miasa.nagano.jp":true,"minamiaiki.nagano.jp":true,"minamimaki.nagano.jp":true,"minamiminowa.nagano.jp":true,"minowa.nagano.jp":true,"miyada.nagano.jp":true,"miyota.nagano.jp":true,"mochizuki.nagano.jp":true,"nagano.nagano.jp":true,"nagawa.nagano.jp":true,"nagiso.nagano.jp":true,"nakagawa.nagano.jp":true,"nakano.nagano.jp":true,"nozawaonsen.nagano.jp":true,"obuse.nagano.jp":true,"ogawa.nagano.jp":true,"okaya.nagano.jp":true,"omachi.nagano.jp":true,"omi.nagano.jp":true,"ookuwa.nagano.jp":true,"ooshika.nagano.jp":true,"otaki.nagano.jp":true,"otari.nagano.jp":true,"sakae.nagano.jp":true,"sakaki.nagano.jp":true,"saku.nagano.jp":true,"sakuho.nagano.jp":true,"shimosuwa.nagano.jp":true,"shinanomachi.nagano.jp":true,"shiojiri.nagano.jp":true,"suwa.nagano.jp":true,"suzaka.nagano.jp":true,"takagi.nagano.jp":true,"takamori.nagano.jp":true,"takayama.nagano.jp":true,"tateshina.nagano.jp":true,"tatsuno.nagano.jp":true,"togakushi.nagano.jp":true,"togura.nagano.jp":true,"tomi.nagano.jp":true,"ueda.nagano.jp":true,"wada.nagano.jp":true,"yamagata.nagano.jp":true,"yamanouchi.nagano.jp":true,"yasaka.nagano.jp":true,"yasuoka.nagano.jp":true,"chijiwa.nagasaki.jp":true,"futsu.nagasaki.jp":true,"goto.nagasaki.jp":true,"hasami.nagasaki.jp":true,"hirado.nagasaki.jp":true,"iki.nagasaki.jp":true,"isahaya.nagasaki.jp":true,"kawatana.nagasaki.jp":true,"kuchinotsu.nagasaki.jp":true,"matsuura.nagasaki.jp":true,"nagasaki.nagasaki.jp":true,"obama.nagasaki.jp":true,"omura.nagasaki.jp":true,"oseto.nagasaki.jp":true,"saikai.nagasaki.jp":true,"sasebo.nagasaki.jp":true,"seihi.nagasaki.jp":true,"shimabara.nagasaki.jp":true,"shinkamigoto.nagasaki.jp":true,"togitsu.nagasaki.jp":true,"tsushima.nagasaki.jp":true,"unzen.nagasaki.jp":true,"ando.nara.jp":true,"gose.nara.jp":true,"heguri.nara.jp":true,"higashiyoshino.nara.jp":true,"ikaruga.nara.jp":true,"ikoma.nara.jp":true,"kamikitayama.nara.jp":true,"kanmaki.nara.jp":true,"kashiba.nara.jp":true,"kashihara.nara.jp":true,"katsuragi.nara.jp":true,"kawai.nara.jp":true,"kawakami.nara.jp":true,"kawanishi.nara.jp":true,"koryo.nara.jp":true,"kurotaki.nara.jp":true,"mitsue.nara.jp":true,"miyake.nara.jp":true,"nara.nara.jp":true,"nosegawa.nara.jp":true,"oji.nara.jp":true,"ouda.nara.jp":true,"oyodo.nara.jp":true,"sakurai.nara.jp":true,"sango.nara.jp":true,"shimoichi.nara.jp":true,"shimokitayama.nara.jp":true,"shinjo.nara.jp":true,"soni.nara.jp":true,"takatori.nara.jp":true,"tawaramoto.nara.jp":true,"tenkawa.nara.jp":true,"tenri.nara.jp":true,"uda.nara.jp":true,"yamatokoriyama.nara.jp":true,"yamatotakada.nara.jp":true,"yamazoe.nara.jp":true,"yoshino.nara.jp":true,"aga.niigata.jp":true,"agano.niigata.jp":true,"gosen.niigata.jp":true,"itoigawa.niigata.jp":true,"izumozaki.niigata.jp":true,"joetsu.niigata.jp":true,"kamo.niigata.jp":true,"kariwa.niigata.jp":true,"kashiwazaki.niigata.jp":true,"minamiuonuma.niigata.jp":true,"mitsuke.niigata.jp":true,"muika.niigata.jp":true,"murakami.niigata.jp":true,"myoko.niigata.jp":true,"nagaoka.niigata.jp":true,"niigata.niigata.jp":true,"ojiya.niigata.jp":true,"omi.niigata.jp":true,"sado.niigata.jp":true,"sanjo.niigata.jp":true,"seiro.niigata.jp":true,"seirou.niigata.jp":true,"sekikawa.niigata.jp":true,"shibata.niigata.jp":true,"tagami.niigata.jp":true,"tainai.niigata.jp":true,"tochio.niigata.jp":true,"tokamachi.niigata.jp":true,"tsubame.niigata.jp":true,"tsunan.niigata.jp":true,"uonuma.niigata.jp":true,"yahiko.niigata.jp":true,"yoita.niigata.jp":true,"yuzawa.niigata.jp":true,"beppu.oita.jp":true,"bungoono.oita.jp":true,"bungotakada.oita.jp":true,"hasama.oita.jp":true,"hiji.oita.jp":true,"himeshima.oita.jp":true,"hita.oita.jp":true,"kamitsue.oita.jp":true,"kokonoe.oita.jp":true,"kuju.oita.jp":true,"kunisaki.oita.jp":true,"kusu.oita.jp":true,"oita.oita.jp":true,"saiki.oita.jp":true,"taketa.oita.jp":true,"tsukumi.oita.jp":true,"usa.oita.jp":true,"usuki.oita.jp":true,"yufu.oita.jp":true,"akaiwa.okayama.jp":true,"asakuchi.okayama.jp":true,"bizen.okayama.jp":true,"hayashima.okayama.jp":true,"ibara.okayama.jp":true,"kagamino.okayama.jp":true,"kasaoka.okayama.jp":true,"kibichuo.okayama.jp":true,"kumenan.okayama.jp":true,"kurashiki.okayama.jp":true,"maniwa.okayama.jp":true,"misaki.okayama.jp":true,"nagi.okayama.jp":true,"niimi.okayama.jp":true,"nishiawakura.okayama.jp":true,"okayama.okayama.jp":true,"satosho.okayama.jp":true,"setouchi.okayama.jp":true,"shinjo.okayama.jp":true,"shoo.okayama.jp":true,"soja.okayama.jp":true,"takahashi.okayama.jp":true,"tamano.okayama.jp":true,"tsuyama.okayama.jp":true,"wake.okayama.jp":true,"yakage.okayama.jp":true,"aguni.okinawa.jp":true,"ginowan.okinawa.jp":true,"ginoza.okinawa.jp":true,"gushikami.okinawa.jp":true,"haebaru.okinawa.jp":true,"higashi.okinawa.jp":true,"hirara.okinawa.jp":true,"iheya.okinawa.jp":true,"ishigaki.okinawa.jp":true,"ishikawa.okinawa.jp":true,"itoman.okinawa.jp":true,"izena.okinawa.jp":true,"kadena.okinawa.jp":true,"kin.okinawa.jp":true,"kitadaito.okinawa.jp":true,"kitanakagusuku.okinawa.jp":true,"kumejima.okinawa.jp":true,"kunigami.okinawa.jp":true,"minamidaito.okinawa.jp":true,"motobu.okinawa.jp":true,"nago.okinawa.jp":true,"naha.okinawa.jp":true,"nakagusuku.okinawa.jp":true,"nakijin.okinawa.jp":true,"nanjo.okinawa.jp":true,"nishihara.okinawa.jp":true,"ogimi.okinawa.jp":true,"okinawa.okinawa.jp":true,"onna.okinawa.jp":true,"shimoji.okinawa.jp":true,"taketomi.okinawa.jp":true,"tarama.okinawa.jp":true,"tokashiki.okinawa.jp":true,"tomigusuku.okinawa.jp":true,"tonaki.okinawa.jp":true,"urasoe.okinawa.jp":true,"uruma.okinawa.jp":true,"yaese.okinawa.jp":true,"yomitan.okinawa.jp":true,"yonabaru.okinawa.jp":true,"yonaguni.okinawa.jp":true,"zamami.okinawa.jp":true,"abeno.osaka.jp":true,"chihayaakasaka.osaka.jp":true,"chuo.osaka.jp":true,"daito.osaka.jp":true,"fujiidera.osaka.jp":true,"habikino.osaka.jp":true,"hannan.osaka.jp":true,"higashiosaka.osaka.jp":true,"higashisumiyoshi.osaka.jp":true,"higashiyodogawa.osaka.jp":true,"hirakata.osaka.jp":true,"ibaraki.osaka.jp":true,"ikeda.osaka.jp":true,"izumi.osaka.jp":true,"izumiotsu.osaka.jp":true,"izumisano.osaka.jp":true,"kadoma.osaka.jp":true,"kaizuka.osaka.jp":true,"kanan.osaka.jp":true,"kashiwara.osaka.jp":true,"katano.osaka.jp":true,"kawachinagano.osaka.jp":true,"kishiwada.osaka.jp":true,"kita.osaka.jp":true,"kumatori.osaka.jp":true,"matsubara.osaka.jp":true,"minato.osaka.jp":true,"minoh.osaka.jp":true,"misaki.osaka.jp":true,"moriguchi.osaka.jp":true,"neyagawa.osaka.jp":true,"nishi.osaka.jp":true,"nose.osaka.jp":true,"osakasayama.osaka.jp":true,"sakai.osaka.jp":true,"sayama.osaka.jp":true,"sennan.osaka.jp":true,"settsu.osaka.jp":true,"shijonawate.osaka.jp":true,"shimamoto.osaka.jp":true,"suita.osaka.jp":true,"tadaoka.osaka.jp":true,"taishi.osaka.jp":true,"tajiri.osaka.jp":true,"takaishi.osaka.jp":true,"takatsuki.osaka.jp":true,"tondabayashi.osaka.jp":true,"toyonaka.osaka.jp":true,"toyono.osaka.jp":true,"yao.osaka.jp":true,"ariake.saga.jp":true,"arita.saga.jp":true,"fukudomi.saga.jp":true,"genkai.saga.jp":true,"hamatama.saga.jp":true,"hizen.saga.jp":true,"imari.saga.jp":true,"kamimine.saga.jp":true,"kanzaki.saga.jp":true,"karatsu.saga.jp":true,"kashima.saga.jp":true,"kitagata.saga.jp":true,"kitahata.saga.jp":true,"kiyama.saga.jp":true,"kouhoku.saga.jp":true,"kyuragi.saga.jp":true,"nishiarita.saga.jp":true,"ogi.saga.jp":true,"omachi.saga.jp":true,"ouchi.saga.jp":true,"saga.saga.jp":true,"shiroishi.saga.jp":true,"taku.saga.jp":true,"tara.saga.jp":true,"tosu.saga.jp":true,"yoshinogari.saga.jp":true,"arakawa.saitama.jp":true,"asaka.saitama.jp":true,"chichibu.saitama.jp":true,"fujimi.saitama.jp":true,"fujimino.saitama.jp":true,"fukaya.saitama.jp":true,"hanno.saitama.jp":true,"hanyu.saitama.jp":true,"hasuda.saitama.jp":true,"hatogaya.saitama.jp":true,"hatoyama.saitama.jp":true,"hidaka.saitama.jp":true,"higashichichibu.saitama.jp":true,"higashimatsuyama.saitama.jp":true,"honjo.saitama.jp":true,"ina.saitama.jp":true,"iruma.saitama.jp":true,"iwatsuki.saitama.jp":true,"kamiizumi.saitama.jp":true,"kamikawa.saitama.jp":true,"kamisato.saitama.jp":true,"kasukabe.saitama.jp":true,"kawagoe.saitama.jp":true,"kawaguchi.saitama.jp":true,"kawajima.saitama.jp":true,"kazo.saitama.jp":true,"kitamoto.saitama.jp":true,"koshigaya.saitama.jp":true,"kounosu.saitama.jp":true,"kuki.saitama.jp":true,"kumagaya.saitama.jp":true,"matsubushi.saitama.jp":true,"minano.saitama.jp":true,"misato.saitama.jp":true,"miyashiro.saitama.jp":true,"miyoshi.saitama.jp":true,"moroyama.saitama.jp":true,"nagatoro.saitama.jp":true,"namegawa.saitama.jp":true,"niiza.saitama.jp":true,"ogano.saitama.jp":true,"ogawa.saitama.jp":true,"ogose.saitama.jp":true,"okegawa.saitama.jp":true,"omiya.saitama.jp":true,"otaki.saitama.jp":true,"ranzan.saitama.jp":true,"ryokami.saitama.jp":true,"saitama.saitama.jp":true,"sakado.saitama.jp":true,"satte.saitama.jp":true,"sayama.saitama.jp":true,"shiki.saitama.jp":true,"shiraoka.saitama.jp":true,"soka.saitama.jp":true,"sugito.saitama.jp":true,"toda.saitama.jp":true,"tokigawa.saitama.jp":true,"tokorozawa.saitama.jp":true,"tsurugashima.saitama.jp":true,"urawa.saitama.jp":true,"warabi.saitama.jp":true,"yashio.saitama.jp":true,"yokoze.saitama.jp":true,"yono.saitama.jp":true,"yorii.saitama.jp":true,"yoshida.saitama.jp":true,"yoshikawa.saitama.jp":true,"yoshimi.saitama.jp":true,"aisho.shiga.jp":true,"gamo.shiga.jp":true,"higashiomi.shiga.jp":true,"hikone.shiga.jp":true,"koka.shiga.jp":true,"konan.shiga.jp":true,"kosei.shiga.jp":true,"koto.shiga.jp":true,"kusatsu.shiga.jp":true,"maibara.shiga.jp":true,"moriyama.shiga.jp":true,"nagahama.shiga.jp":true,"nishiazai.shiga.jp":true,"notogawa.shiga.jp":true,"omihachiman.shiga.jp":true,"otsu.shiga.jp":true,"ritto.shiga.jp":true,"ryuoh.shiga.jp":true,"takashima.shiga.jp":true,"takatsuki.shiga.jp":true,"torahime.shiga.jp":true,"toyosato.shiga.jp":true,"yasu.shiga.jp":true,"akagi.shimane.jp":true,"ama.shimane.jp":true,"gotsu.shimane.jp":true,"hamada.shimane.jp":true,"higashiizumo.shimane.jp":true,"hikawa.shimane.jp":true,"hikimi.shimane.jp":true,"izumo.shimane.jp":true,"kakinoki.shimane.jp":true,"masuda.shimane.jp":true,"matsue.shimane.jp":true,"misato.shimane.jp":true,"nishinoshima.shimane.jp":true,"ohda.shimane.jp":true,"okinoshima.shimane.jp":true,"okuizumo.shimane.jp":true,"shimane.shimane.jp":true,"tamayu.shimane.jp":true,"tsuwano.shimane.jp":true,"unnan.shimane.jp":true,"yakumo.shimane.jp":true,"yasugi.shimane.jp":true,"yatsuka.shimane.jp":true,"arai.shizuoka.jp":true,"atami.shizuoka.jp":true,"fuji.shizuoka.jp":true,"fujieda.shizuoka.jp":true,"fujikawa.shizuoka.jp":true,"fujinomiya.shizuoka.jp":true,"fukuroi.shizuoka.jp":true,"gotemba.shizuoka.jp":true,"haibara.shizuoka.jp":true,"hamamatsu.shizuoka.jp":true,"higashiizu.shizuoka.jp":true,"ito.shizuoka.jp":true,"iwata.shizuoka.jp":true,"izu.shizuoka.jp":true,"izunokuni.shizuoka.jp":true,"kakegawa.shizuoka.jp":true,"kannami.shizuoka.jp":true,"kawanehon.shizuoka.jp":true,"kawazu.shizuoka.jp":true,"kikugawa.shizuoka.jp":true,"kosai.shizuoka.jp":true,"makinohara.shizuoka.jp":true,"matsuzaki.shizuoka.jp":true,"minamiizu.shizuoka.jp":true,"mishima.shizuoka.jp":true,"morimachi.shizuoka.jp":true,"nishiizu.shizuoka.jp":true,"numazu.shizuoka.jp":true,"omaezaki.shizuoka.jp":true,"shimada.shizuoka.jp":true,"shimizu.shizuoka.jp":true,"shimoda.shizuoka.jp":true,"shizuoka.shizuoka.jp":true,"susono.shizuoka.jp":true,"yaizu.shizuoka.jp":true,"yoshida.shizuoka.jp":true,"ashikaga.tochigi.jp":true,"bato.tochigi.jp":true,"haga.tochigi.jp":true,"ichikai.tochigi.jp":true,"iwafune.tochigi.jp":true,"kaminokawa.tochigi.jp":true,"kanuma.tochigi.jp":true,"karasuyama.tochigi.jp":true,"kuroiso.tochigi.jp":true,"mashiko.tochigi.jp":true,"mibu.tochigi.jp":true,"moka.tochigi.jp":true,"motegi.tochigi.jp":true,"nasu.tochigi.jp":true,"nasushiobara.tochigi.jp":true,"nikko.tochigi.jp":true,"nishikata.tochigi.jp":true,"nogi.tochigi.jp":true,"ohira.tochigi.jp":true,"ohtawara.tochigi.jp":true,"oyama.tochigi.jp":true,"sakura.tochigi.jp":true,"sano.tochigi.jp":true,"shimotsuke.tochigi.jp":true,"shioya.tochigi.jp":true,"takanezawa.tochigi.jp":true,"tochigi.tochigi.jp":true,"tsuga.tochigi.jp":true,"ujiie.tochigi.jp":true,"utsunomiya.tochigi.jp":true,"yaita.tochigi.jp":true,"aizumi.tokushima.jp":true,"anan.tokushima.jp":true,"ichiba.tokushima.jp":true,"itano.tokushima.jp":true,"kainan.tokushima.jp":true,"komatsushima.tokushima.jp":true,"matsushige.tokushima.jp":true,"mima.tokushima.jp":true,"minami.tokushima.jp":true,"miyoshi.tokushima.jp":true,"mugi.tokushima.jp":true,"nakagawa.tokushima.jp":true,"naruto.tokushima.jp":true,"sanagochi.tokushima.jp":true,"shishikui.tokushima.jp":true,"tokushima.tokushima.jp":true,"wajiki.tokushima.jp":true,"adachi.tokyo.jp":true,"akiruno.tokyo.jp":true,"akishima.tokyo.jp":true,"aogashima.tokyo.jp":true,"arakawa.tokyo.jp":true,"bunkyo.tokyo.jp":true,"chiyoda.tokyo.jp":true,"chofu.tokyo.jp":true,"chuo.tokyo.jp":true,"edogawa.tokyo.jp":true,"fuchu.tokyo.jp":true,"fussa.tokyo.jp":true,"hachijo.tokyo.jp":true,"hachioji.tokyo.jp":true,"hamura.tokyo.jp":true,"higashikurume.tokyo.jp":true,"higashimurayama.tokyo.jp":true,"higashiyamato.tokyo.jp":true,"hino.tokyo.jp":true,"hinode.tokyo.jp":true,"hinohara.tokyo.jp":true,"inagi.tokyo.jp":true,"itabashi.tokyo.jp":true,"katsushika.tokyo.jp":true,"kita.tokyo.jp":true,"kiyose.tokyo.jp":true,"kodaira.tokyo.jp":true,"koganei.tokyo.jp":true,"kokubunji.tokyo.jp":true,"komae.tokyo.jp":true,"koto.tokyo.jp":true,"kouzushima.tokyo.jp":true,"kunitachi.tokyo.jp":true,"machida.tokyo.jp":true,"meguro.tokyo.jp":true,"minato.tokyo.jp":true,"mitaka.tokyo.jp":true,"mizuho.tokyo.jp":true,"musashimurayama.tokyo.jp":true,"musashino.tokyo.jp":true,"nakano.tokyo.jp":true,"nerima.tokyo.jp":true,"ogasawara.tokyo.jp":true,"okutama.tokyo.jp":true,"ome.tokyo.jp":true,"oshima.tokyo.jp":true,"ota.tokyo.jp":true,"setagaya.tokyo.jp":true,"shibuya.tokyo.jp":true,"shinagawa.tokyo.jp":true,"shinjuku.tokyo.jp":true,"suginami.tokyo.jp":true,"sumida.tokyo.jp":true,"tachikawa.tokyo.jp":true,"taito.tokyo.jp":true,"tama.tokyo.jp":true,"toshima.tokyo.jp":true,"chizu.tottori.jp":true,"hino.tottori.jp":true,"kawahara.tottori.jp":true,"koge.tottori.jp":true,"kotoura.tottori.jp":true,"misasa.tottori.jp":true,"nanbu.tottori.jp":true,"nichinan.tottori.jp":true,"sakaiminato.tottori.jp":true,"tottori.tottori.jp":true,"wakasa.tottori.jp":true,"yazu.tottori.jp":true,"yonago.tottori.jp":true,"asahi.toyama.jp":true,"fuchu.toyama.jp":true,"fukumitsu.toyama.jp":true,"funahashi.toyama.jp":true,"himi.toyama.jp":true,"imizu.toyama.jp":true,"inami.toyama.jp":true,"johana.toyama.jp":true,"kamiichi.toyama.jp":true,"kurobe.toyama.jp":true,"nakaniikawa.toyama.jp":true,"namerikawa.toyama.jp":true,"nanto.toyama.jp":true,"nyuzen.toyama.jp":true,"oyabe.toyama.jp":true,"taira.toyama.jp":true,"takaoka.toyama.jp":true,"tateyama.toyama.jp":true,"toga.toyama.jp":true,"tonami.toyama.jp":true,"toyama.toyama.jp":true,"unazuki.toyama.jp":true,"uozu.toyama.jp":true,"yamada.toyama.jp":true,"arida.wakayama.jp":true,"aridagawa.wakayama.jp":true,"gobo.wakayama.jp":true,"hashimoto.wakayama.jp":true,"hidaka.wakayama.jp":true,"hirogawa.wakayama.jp":true,"inami.wakayama.jp":true,"iwade.wakayama.jp":true,"kainan.wakayama.jp":true,"kamitonda.wakayama.jp":true,"katsuragi.wakayama.jp":true,"kimino.wakayama.jp":true,"kinokawa.wakayama.jp":true,"kitayama.wakayama.jp":true,"koya.wakayama.jp":true,"koza.wakayama.jp":true,"kozagawa.wakayama.jp":true,"kudoyama.wakayama.jp":true,"kushimoto.wakayama.jp":true,"mihama.wakayama.jp":true,"misato.wakayama.jp":true,"nachikatsuura.wakayama.jp":true,"shingu.wakayama.jp":true,"shirahama.wakayama.jp":true,"taiji.wakayama.jp":true,"tanabe.wakayama.jp":true,"wakayama.wakayama.jp":true,"yuasa.wakayama.jp":true,"yura.wakayama.jp":true,"asahi.yamagata.jp":true,"funagata.yamagata.jp":true,"higashine.yamagata.jp":true,"iide.yamagata.jp":true,"kahoku.yamagata.jp":true,"kaminoyama.yamagata.jp":true,"kaneyama.yamagata.jp":true,"kawanishi.yamagata.jp":true,"mamurogawa.yamagata.jp":true,"mikawa.yamagata.jp":true,"murayama.yamagata.jp":true,"nagai.yamagata.jp":true,"nakayama.yamagata.jp":true,"nanyo.yamagata.jp":true,"nishikawa.yamagata.jp":true,"obanazawa.yamagata.jp":true,"oe.yamagata.jp":true,"oguni.yamagata.jp":true,"ohkura.yamagata.jp":true,"oishida.yamagata.jp":true,"sagae.yamagata.jp":true,"sakata.yamagata.jp":true,"sakegawa.yamagata.jp":true,"shinjo.yamagata.jp":true,"shirataka.yamagata.jp":true,"shonai.yamagata.jp":true,"takahata.yamagata.jp":true,"tendo.yamagata.jp":true,"tozawa.yamagata.jp":true,"tsuruoka.yamagata.jp":true,"yamagata.yamagata.jp":true,"yamanobe.yamagata.jp":true,"yonezawa.yamagata.jp":true,"yuza.yamagata.jp":true,"abu.yamaguchi.jp":true,"hagi.yamaguchi.jp":true,"hikari.yamaguchi.jp":true,"hofu.yamaguchi.jp":true,"iwakuni.yamaguchi.jp":true,"kudamatsu.yamaguchi.jp":true,"mitou.yamaguchi.jp":true,"nagato.yamaguchi.jp":true,"oshima.yamaguchi.jp":true,"shimonoseki.yamaguchi.jp":true,"shunan.yamaguchi.jp":true,"tabuse.yamaguchi.jp":true,"tokuyama.yamaguchi.jp":true,"toyota.yamaguchi.jp":true,"ube.yamaguchi.jp":true,"yuu.yamaguchi.jp":true,"chuo.yamanashi.jp":true,"doshi.yamanashi.jp":true,"fuefuki.yamanashi.jp":true,"fujikawa.yamanashi.jp":true,"fujikawaguchiko.yamanashi.jp":true,"fujiyoshida.yamanashi.jp":true,"hayakawa.yamanashi.jp":true,"hokuto.yamanashi.jp":true,"ichikawamisato.yamanashi.jp":true,"kai.yamanashi.jp":true,"kofu.yamanashi.jp":true,"koshu.yamanashi.jp":true,"kosuge.yamanashi.jp":true,"minami-alps.yamanashi.jp":true,"minobu.yamanashi.jp":true,"nakamichi.yamanashi.jp":true,"nanbu.yamanashi.jp":true,"narusawa.yamanashi.jp":true,"nirasaki.yamanashi.jp":true,"nishikatsura.yamanashi.jp":true,"oshino.yamanashi.jp":true,"otsuki.yamanashi.jp":true,"showa.yamanashi.jp":true,"tabayama.yamanashi.jp":true,"tsuru.yamanashi.jp":true,"uenohara.yamanashi.jp":true,"yamanakako.yamanashi.jp":true,"yamanashi.yamanashi.jp":true,"*.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"kp":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"lb":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"ac.lk":true,"lr":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"co.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"com.ms":true,"edu.ms":true,"gov.ms":true,"net.ms":true,"org.ms":true,"mt":true,"com.mt":true,"edu.mt":true,"net.mt":true,"org.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"mz":true,"ac.mz":true,"adv.mz":true,"co.mz":true,"edu.mz":true,"gov.mz":true,"mil.mz":true,"net.mz":true,"org.mz":true,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"i.ng":true,"mil.ng":true,"mobi.ng":true,"name.ng":true,"net.ng":true,"org.ng":true,"sch.ng":true,"com.ni":true,"gob.ni":true,"edu.ni":true,"org.ni":true,"nom.ni":true,"net.ni":true,"mil.ni":true,"co.ni":true,"biz.ni":true,"web.ni":true,"int.ni":true,"ac.ni":true,"in.ni":true,"info.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"nz":true,"ac.nz":true,"co.nz":true,"cri.nz":true,"geek.nz":true,"gen.nz":true,"govt.nz":true,"health.nz":true,"iwi.nz":true,"kiwi.nz":true,"maori.nz":true,"mil.nz":true,"xn--mori-qsa.nz":true,"net.nz":true,"org.nz":true,"parliament.nz":true,"school.nz":true,"om":true,"co.om":true,"com.om":true,"edu.om":true,"gov.om":true,"med.om":true,"museum.om":true,"net.om":true,"org.om":true,"pro.om":true,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"com.pl":true,"net.pl":true,"org.pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"gov.pl":true,"ap.gov.pl":true,"ic.gov.pl":true,"is.gov.pl":true,"us.gov.pl":true,"kmpsp.gov.pl":true,"kppsp.gov.pl":true,"kwpsp.gov.pl":true,"psp.gov.pl":true,"wskr.gov.pl":true,"kwp.gov.pl":true,"mw.gov.pl":true,"ug.gov.pl":true,"um.gov.pl":true,"umig.gov.pl":true,"ugim.gov.pl":true,"upow.gov.pl":true,"uw.gov.pl":true,"starostwo.gov.pl":true,"pa.gov.pl":true,"po.gov.pl":true,"psse.gov.pl":true,"pup.gov.pl":true,"rzgw.gov.pl":true,"sa.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"wsa.gov.pl":true,"sko.gov.pl":true,"uzs.gov.pl":true,"wiih.gov.pl":true,"winb.gov.pl":true,"pinb.gov.pl":true,"wios.gov.pl":true,"witd.gov.pl":true,"wzmiuw.gov.pl":true,"piw.gov.pl":true,"wiw.gov.pl":true,"griw.gov.pl":true,"wif.gov.pl":true,"oum.gov.pl":true,"sdn.gov.pl":true,"zp.gov.pl":true,"uppo.gov.pl":true,"mup.gov.pl":true,"wuoz.gov.pl":true,"konsulat.gov.pl":true,"oirm.gov.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"post":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aaa.pro":true,"aca.pro":true,"acct.pro":true,"avocat.pro":true,"bar.pro":true,"cpa.pro":true,"eng.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"recht.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"py":true,"com.py":true,"coop.py":true,"edu.py":true,"gov.py":true,"mil.py":true,"net.py":true,"org.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"asso.re":true,"com.re":true,"nom.re":true,"ro":true,"arts.ro":true,"com.ro":true,"firm.ro":true,"info.ro":true,"nom.ro":true,"nt.ro":true,"org.ro":true,"rec.ro":true,"store.ro":true,"tm.ro":true,"www.ro":true,"rs":true,"ac.rs":true,"co.rs":true,"edu.rs":true,"gov.rs":true,"in.rs":true,"org.rs":true,"ru":true,"ac.ru":true,"com.ru":true,"edu.ru":true,"int.ru":true,"net.ru":true,"org.ru":true,"pp.ru":true,"adygeya.ru":true,"altai.ru":true,"amur.ru":true,"arkhangelsk.ru":true,"astrakhan.ru":true,"bashkiria.ru":true,"belgorod.ru":true,"bir.ru":true,"bryansk.ru":true,"buryatia.ru":true,"cbg.ru":true,"chel.ru":true,"chelyabinsk.ru":true,"chita.ru":true,"chukotka.ru":true,"chuvashia.ru":true,"dagestan.ru":true,"dudinka.ru":true,"e-burg.ru":true,"grozny.ru":true,"irkutsk.ru":true,"ivanovo.ru":true,"izhevsk.ru":true,"jar.ru":true,"joshkar-ola.ru":true,"kalmykia.ru":true,"kaluga.ru":true,"kamchatka.ru":true,"karelia.ru":true,"kazan.ru":true,"kchr.ru":true,"kemerovo.ru":true,"khabarovsk.ru":true,"khakassia.ru":true,"khv.ru":true,"kirov.ru":true,"koenig.ru":true,"komi.ru":true,"kostroma.ru":true,"krasnoyarsk.ru":true,"kuban.ru":true,"kurgan.ru":true,"kursk.ru":true,"lipetsk.ru":true,"magadan.ru":true,"mari.ru":true,"mari-el.ru":true,"marine.ru":true,"mordovia.ru":true,"msk.ru":true,"murmansk.ru":true,"nalchik.ru":true,"nnov.ru":true,"nov.ru":true,"novosibirsk.ru":true,"nsk.ru":true,"omsk.ru":true,"orenburg.ru":true,"oryol.ru":true,"palana.ru":true,"penza.ru":true,"perm.ru":true,"ptz.ru":true,"rnd.ru":true,"ryazan.ru":true,"sakhalin.ru":true,"samara.ru":true,"saratov.ru":true,"simbirsk.ru":true,"smolensk.ru":true,"spb.ru":true,"stavropol.ru":true,"stv.ru":true,"surgut.ru":true,"tambov.ru":true,"tatarstan.ru":true,"tom.ru":true,"tomsk.ru":true,"tsaritsyn.ru":true,"tsk.ru":true,"tula.ru":true,"tuva.ru":true,"tver.ru":true,"tyumen.ru":true,"udm.ru":true,"udmurtia.ru":true,"ulan-ude.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"vladivostok.ru":true,"volgograd.ru":true,"vologda.ru":true,"voronezh.ru":true,"vrn.ru":true,"vyatka.ru":true,"yakutia.ru":true,"yamal.ru":true,"yaroslavl.ru":true,"yekaterinburg.ru":true,"yuzhno-sakhalinsk.ru":true,"amursk.ru":true,"baikal.ru":true,"cmw.ru":true,"fareast.ru":true,"jamal.ru":true,"kms.ru":true,"k-uralsk.ru":true,"kustanai.ru":true,"kuzbass.ru":true,"mytis.ru":true,"nakhodka.ru":true,"nkz.ru":true,"norilsk.ru":true,"oskol.ru":true,"pyatigorsk.ru":true,"rubtsovsk.ru":true,"snz.ru":true,"syzran.ru":true,"vdonsk.ru":true,"zgrad.ru":true,"gov.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"tv.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"com.sh":true,"net.sh":true,"gov.sh":true,"org.sh":true,"mil.sh":true,"si":true,"sj":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"adygeya.su":true,"arkhangelsk.su":true,"balashov.su":true,"bashkiria.su":true,"bryansk.su":true,"dagestan.su":true,"grozny.su":true,"ivanovo.su":true,"kalmykia.su":true,"kaluga.su":true,"karelia.su":true,"khakassia.su":true,"krasnodar.su":true,"kurgan.su":true,"lenug.su":true,"mordovia.su":true,"msk.su":true,"murmansk.su":true,"nalchik.su":true,"nov.su":true,"obninsk.su":true,"penza.su":true,"pokrovsk.su":true,"sochi.su":true,"spb.su":true,"togliatti.su":true,"troitsk.su":true,"tula.su":true,"tuva.su":true,"vladikavkaz.su":true,"vladimir.su":true,"vologda.su":true,"sv":true,"com.sv":true,"edu.sv":true,"gob.sv":true,"org.sv":true,"red.sv":true,"sx":true,"gov.sx":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"com.tm":true,"co.tm":true,"org.tm":true,"net.tm":true,"nom.tm":true,"gov.tm":true,"mil.tm":true,"edu.tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"tr":true,"com.tr":true,"info.tr":true,"biz.tr":true,"net.tr":true,"org.tr":true,"web.tr":true,"gen.tr":true,"tv.tr":true,"av.tr":true,"dr.tr":true,"bbs.tr":true,"name.tr":true,"tel.tr":true,"gov.tr":true,"bel.tr":true,"pol.tr":true,"mil.tr":true,"k12.tr":true,"edu.tr":true,"kep.tr":true,"nc.tr":true,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"tz":true,"ac.tz":true,"co.tz":true,"go.tz":true,"hotel.tz":true,"info.tz":true,"me.tz":true,"mil.tz":true,"mobi.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"tv.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"cherkasy.ua":true,"chernigov.ua":true,"chernihiv.ua":true,"chernivtsi.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"cr.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"dnipropetrovsk.ua":true,"dominic.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkiv.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"khmelnytskyi.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"krym.ua":true,"ks.ua":true,"kv.ua":true,"kyiv.ua":true,"lg.ua":true,"lt.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lv.ua":true,"lviv.ua":true,"mk.ua":true,"mykolaiv.ua":true,"nikolaev.ua":true,"od.ua":true,"odesa.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rivne.ua":true,"rovno.ua":true,"rv.ua":true,"sb.ua":true,"sebastopol.ua":true,"sevastopol.ua":true,"sm.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uz.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vinnytsia.ua":true,"vn.ua":true,"volyn.ua":true,"yalta.ua":true,"zaporizhzhe.ua":true,"zaporizhzhia.ua":true,"zhitomir.ua":true,"zhytomyr.ua":true,"zp.ua":true,"zt.ua":true,"ug":true,"co.ug":true,"or.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"com.ug":true,"org.ug":true,"uk":true,"ac.uk":true,"co.uk":true,"gov.uk":true,"ltd.uk":true,"me.uk":true,"net.uk":true,"nhs.uk":true,"org.uk":true,"plc.uk":true,"police.uk":true,"*.sch.uk":true,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"uy":true,"com.uy":true,"edu.uy":true,"gub.uy":true,"mil.uy":true,"net.uy":true,"org.uy":true,"uz":true,"co.uz":true,"com.uz":true,"net.uz":true,"org.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"ve":true,"arts.ve":true,"co.ve":true,"com.ve":true,"e12.ve":true,"edu.ve":true,"firm.ve":true,"gob.ve":true,"gov.ve":true,"info.ve":true,"int.ve":true,"mil.ve":true,"net.ve":true,"org.ve":true,"rec.ve":true,"store.ve":true,"tec.ve":true,"web.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"com.vu":true,"edu.vu":true,"net.vu":true,"org.vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--y9a3aq":true,"xn--54b7fta0cc":true,"xn--90ais":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--e1a4c":true,"xn--node":true,"xn--qxam":true,"xn--j6w193g":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbtx2b":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--80ao21a":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--d1alf":true,"xn--l1acc":true,"xn--mix891f":true,"xn--mix082f":true,"xn--mgbx4cd0ab":true,"xn--mgb9awbf":true,"xn--mgbai9azgqp6j":true,"xn--mgbai9a5eva00b":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--o1ac.xn--90a3ac":true,"xn--c1avg.xn--90a3ac":true,"xn--90azh.xn--90a3ac":true,"xn--d1at.xn--90a3ac":true,"xn--o1ach.xn--90a3ac":true,"xn--80au.xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--mgbpl2fh":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"ac.za":true,"agric.za":true,"alt.za":true,"co.za":true,"edu.za":true,"gov.za":true,"grondar.za":true,"law.za":true,"mil.za":true,"net.za":true,"ngo.za":true,"nis.za":true,"nom.za":true,"org.za":true,"school.za":true,"tm.za":true,"web.za":true,"zm":true,"ac.zm":true,"biz.zm":true,"co.zm":true,"com.zm":true,"edu.zm":true,"gov.zm":true,"info.zm":true,"mil.zm":true,"net.zm":true,"org.zm":true,"sch.zm":true,"*.zw":true,"aaa":true,"aarp":true,"abarth":true,"abb":true,"abbott":true,"abbvie":true,"abc":true,"able":true,"abogado":true,"abudhabi":true,"academy":true,"accenture":true,"accountant":true,"accountants":true,"aco":true,"active":true,"actor":true,"adac":true,"ads":true,"adult":true,"aeg":true,"aetna":true,"afamilycompany":true,"afl":true,"africa":true,"agakhan":true,"agency":true,"aig":true,"aigo":true,"airbus":true,"airforce":true,"airtel":true,"akdn":true,"alfaromeo":true,"alibaba":true,"alipay":true,"allfinanz":true,"allstate":true,"ally":true,"alsace":true,"alstom":true,"americanexpress":true,"americanfamily":true,"amex":true,"amfam":true,"amica":true,"amsterdam":true,"analytics":true,"android":true,"anquan":true,"anz":true,"aol":true,"apartments":true,"app":true,"apple":true,"aquarelle":true,"arab":true,"aramco":true,"archi":true,"army":true,"art":true,"arte":true,"asda":true,"associates":true,"athleta":true,"attorney":true,"auction":true,"audi":true,"audible":true,"audio":true,"auspost":true,"author":true,"auto":true,"autos":true,"avianca":true,"aws":true,"axa":true,"azure":true,"baby":true,"baidu":true,"banamex":true,"bananarepublic":true,"band":true,"bank":true,"bar":true,"barcelona":true,"barclaycard":true,"barclays":true,"barefoot":true,"bargains":true,"baseball":true,"basketball":true,"bauhaus":true,"bayern":true,"bbc":true,"bbt":true,"bbva":true,"bcg":true,"bcn":true,"beats":true,"beauty":true,"beer":true,"bentley":true,"berlin":true,"best":true,"bestbuy":true,"bet":true,"bharti":true,"bible":true,"bid":true,"bike":true,"bing":true,"bingo":true,"bio":true,"black":true,"blackfriday":true,"blanco":true,"blockbuster":true,"blog":true,"bloomberg":true,"blue":true,"bms":true,"bmw":true,"bnl":true,"bnpparibas":true,"boats":true,"boehringer":true,"bofa":true,"bom":true,"bond":true,"boo":true,"book":true,"booking":true,"boots":true,"bosch":true,"bostik":true,"boston":true,"bot":true,"boutique":true,"box":true,"bradesco":true,"bridgestone":true,"broadway":true,"broker":true,"brother":true,"brussels":true,"budapest":true,"bugatti":true,"build":true,"builders":true,"business":true,"buy":true,"buzz":true,"bzh":true,"cab":true,"cafe":true,"cal":true,"call":true,"calvinklein":true,"cam":true,"camera":true,"camp":true,"cancerresearch":true,"canon":true,"capetown":true,"capital":true,"capitalone":true,"car":true,"caravan":true,"cards":true,"care":true,"career":true,"careers":true,"cars":true,"cartier":true,"casa":true,"case":true,"caseih":true,"cash":true,"casino":true,"catering":true,"catholic":true,"cba":true,"cbn":true,"cbre":true,"cbs":true,"ceb":true,"center":true,"ceo":true,"cern":true,"cfa":true,"cfd":true,"chanel":true,"channel":true,"chase":true,"chat":true,"cheap":true,"chintai":true,"chloe":true,"christmas":true,"chrome":true,"chrysler":true,"church":true,"cipriani":true,"circle":true,"cisco":true,"citadel":true,"citi":true,"citic":true,"city":true,"cityeats":true,"claims":true,"cleaning":true,"click":true,"clinic":true,"clinique":true,"clothing":true,"cloud":true,"club":true,"clubmed":true,"coach":true,"codes":true,"coffee":true,"college":true,"cologne":true,"comcast":true,"commbank":true,"community":true,"company":true,"compare":true,"computer":true,"comsec":true,"condos":true,"construction":true,"consulting":true,"contact":true,"contractors":true,"cooking":true,"cookingchannel":true,"cool":true,"corsica":true,"country":true,"coupon":true,"coupons":true,"courses":true,"credit":true,"creditcard":true,"creditunion":true,"cricket":true,"crown":true,"crs":true,"cruise":true,"cruises":true,"csc":true,"cuisinella":true,"cymru":true,"cyou":true,"dabur":true,"dad":true,"dance":true,"data":true,"date":true,"dating":true,"datsun":true,"day":true,"dclk":true,"dds":true,"deal":true,"dealer":true,"deals":true,"degree":true,"delivery":true,"dell":true,"deloitte":true,"delta":true,"democrat":true,"dental":true,"dentist":true,"desi":true,"design":true,"dev":true,"dhl":true,"diamonds":true,"diet":true,"digital":true,"direct":true,"directory":true,"discount":true,"discover":true,"dish":true,"diy":true,"dnp":true,"docs":true,"doctor":true,"dodge":true,"dog":true,"doha":true,"domains":true,"dot":true,"download":true,"drive":true,"dtv":true,"dubai":true,"duck":true,"dunlop":true,"duns":true,"dupont":true,"durban":true,"dvag":true,"dvr":true,"dwg":true,"earth":true,"eat":true,"eco":true,"edeka":true,"education":true,"email":true,"emerck":true,"emerson":true,"energy":true,"engineer":true,"engineering":true,"enterprises":true,"epost":true,"epson":true,"equipment":true,"ericsson":true,"erni":true,"esq":true,"estate":true,"esurance":true,"etisalat":true,"eurovision":true,"eus":true,"events":true,"everbank":true,"exchange":true,"expert":true,"exposed":true,"express":true,"extraspace":true,"fage":true,"fail":true,"fairwinds":true,"faith":true,"family":true,"fan":true,"fans":true,"farm":true,"farmers":true,"fashion":true,"fast":true,"fedex":true,"feedback":true,"ferrari":true,"ferrero":true,"fiat":true,"fidelity":true,"fido":true,"film":true,"final":true,"finance":true,"financial":true,"fire":true,"firestone":true,"firmdale":true,"fish":true,"fishing":true,"fit":true,"fitness":true,"flickr":true,"flights":true,"flir":true,"florist":true,"flowers":true,"fly":true,"foo":true,"food":true,"foodnetwork":true,"football":true,"ford":true,"forex":true,"forsale":true,"forum":true,"foundation":true,"fox":true,"free":true,"fresenius":true,"frl":true,"frogans":true,"frontdoor":true,"frontier":true,"ftr":true,"fujitsu":true,"fujixerox":true,"fun":true,"fund":true,"furniture":true,"futbol":true,"fyi":true,"gal":true,"gallery":true,"gallo":true,"gallup":true,"game":true,"games":true,"gap":true,"garden":true,"gbiz":true,"gdn":true,"gea":true,"gent":true,"genting":true,"george":true,"ggee":true,"gift":true,"gifts":true,"gives":true,"giving":true,"glade":true,"glass":true,"gle":true,"global":true,"globo":true,"gmail":true,"gmbh":true,"gmo":true,"gmx":true,"godaddy":true,"gold":true,"goldpoint":true,"golf":true,"goo":true,"goodhands":true,"goodyear":true,"goog":true,"google":true,"gop":true,"got":true,"grainger":true,"graphics":true,"gratis":true,"green":true,"gripe":true,"grocery":true,"group":true,"guardian":true,"gucci":true,"guge":true,"guide":true,"guitars":true,"guru":true,"hair":true,"hamburg":true,"hangout":true,"haus":true,"hbo":true,"hdfc":true,"hdfcbank":true,"health":true,"healthcare":true,"help":true,"helsinki":true,"here":true,"hermes":true,"hgtv":true,"hiphop":true,"hisamitsu":true,"hitachi":true,"hiv":true,"hkt":true,"hockey":true,"holdings":true,"holiday":true,"homedepot":true,"homegoods":true,"homes":true,"homesense":true,"honda":true,"honeywell":true,"horse":true,"host":true,"hosting":true,"hot":true,"hoteles":true,"hotels":true,"hotmail":true,"house":true,"how":true,"hsbc":true,"htc":true,"hughes":true,"hyatt":true,"hyundai":true,"ibm":true,"icbc":true,"ice":true,"icu":true,"ieee":true,"ifm":true,"iinet":true,"ikano":true,"imamat":true,"imdb":true,"immo":true,"immobilien":true,"industries":true,"infiniti":true,"ing":true,"ink":true,"institute":true,"insurance":true,"insure":true,"intel":true,"international":true,"intuit":true,"investments":true,"ipiranga":true,"irish":true,"iselect":true,"ismaili":true,"ist":true,"istanbul":true,"itau":true,"itv":true,"iveco":true,"iwc":true,"jaguar":true,"java":true,"jcb":true,"jcp":true,"jeep":true,"jetzt":true,"jewelry":true,"jio":true,"jlc":true,"jll":true,"jmp":true,"jnj":true,"joburg":true,"jot":true,"joy":true,"jpmorgan":true,"jprs":true,"juegos":true,"juniper":true,"kaufen":true,"kddi":true,"kerryhotels":true,"kerrylogistics":true,"kerryproperties":true,"kfh":true,"kia":true,"kim":true,"kinder":true,"kindle":true,"kitchen":true,"kiwi":true,"koeln":true,"komatsu":true,"kosher":true,"kpmg":true,"kpn":true,"krd":true,"kred":true,"kuokgroup":true,"kyoto":true,"lacaixa":true,"ladbrokes":true,"lamborghini":true,"lamer":true,"lancaster":true,"lancia":true,"lancome":true,"land":true,"landrover":true,"lanxess":true,"lasalle":true,"lat":true,"latino":true,"latrobe":true,"law":true,"lawyer":true,"lds":true,"lease":true,"leclerc":true,"lefrak":true,"legal":true,"lego":true,"lexus":true,"lgbt":true,"liaison":true,"lidl":true,"life":true,"lifeinsurance":true,"lifestyle":true,"lighting":true,"like":true,"lilly":true,"limited":true,"limo":true,"lincoln":true,"linde":true,"link":true,"lipsy":true,"live":true,"living":true,"lixil":true,"loan":true,"loans":true,"locker":true,"locus":true,"loft":true,"lol":true,"london":true,"lotte":true,"lotto":true,"love":true,"lpl":true,"lplfinancial":true,"ltd":true,"ltda":true,"lundbeck":true,"lupin":true,"luxe":true,"luxury":true,"macys":true,"madrid":true,"maif":true,"maison":true,"makeup":true,"man":true,"management":true,"mango":true,"map":true,"market":true,"marketing":true,"markets":true,"marriott":true,"marshalls":true,"maserati":true,"mattel":true,"mba":true,"mcd":true,"mcdonalds":true,"mckinsey":true,"med":true,"media":true,"meet":true,"melbourne":true,"meme":true,"memorial":true,"men":true,"menu":true,"meo":true,"merckmsd":true,"metlife":true,"miami":true,"microsoft":true,"mini":true,"mint":true,"mit":true,"mitsubishi":true,"mlb":true,"mls":true,"mma":true,"mobile":true,"mobily":true,"moda":true,"moe":true,"moi":true,"mom":true,"monash":true,"money":true,"monster":true,"montblanc":true,"mopar":true,"mormon":true,"mortgage":true,"moscow":true,"moto":true,"motorcycles":true,"mov":true,"movie":true,"movistar":true,"msd":true,"mtn":true,"mtpc":true,"mtr":true,"mutual":true,"mutuelle":true,"nab":true,"nadex":true,"nagoya":true,"nationwide":true,"natura":true,"navy":true,"nba":true,"nec":true,"netbank":true,"netflix":true,"network":true,"neustar":true,"new":true,"newholland":true,"news":true,"next":true,"nextdirect":true,"nexus":true,"nfl":true,"ngo":true,"nhk":true,"nico":true,"nike":true,"nikon":true,"ninja":true,"nissan":true,"nissay":true,"nokia":true,"northwesternmutual":true,"norton":true,"now":true,"nowruz":true,"nowtv":true,"nra":true,"nrw":true,"ntt":true,"nyc":true,"obi":true,"observer":true,"off":true,"office":true,"okinawa":true,"olayan":true,"olayangroup":true,"oldnavy":true,"ollo":true,"omega":true,"one":true,"ong":true,"onl":true,"online":true,"onyourside":true,"ooo":true,"open":true,"oracle":true,"orange":true,"organic":true,"orientexpress":true,"origins":true,"osaka":true,"otsuka":true,"ott":true,"ovh":true,"page":true,"pamperedchef":true,"panasonic":true,"panerai":true,"paris":true,"pars":true,"partners":true,"parts":true,"party":true,"passagens":true,"pay":true,"pccw":true,"pet":true,"pfizer":true,"pharmacy":true,"phd":true,"philips":true,"phone":true,"photo":true,"photography":true,"photos":true,"physio":true,"piaget":true,"pics":true,"pictet":true,"pictures":true,"pid":true,"pin":true,"ping":true,"pink":true,"pioneer":true,"pizza":true,"place":true,"play":true,"playstation":true,"plumbing":true,"plus":true,"pnc":true,"pohl":true,"poker":true,"politie":true,"porn":true,"pramerica":true,"praxi":true,"press":true,"prime":true,"prod":true,"productions":true,"prof":true,"progressive":true,"promo":true,"properties":true,"property":true,"protection":true,"pru":true,"prudential":true,"pub":true,"pwc":true,"qpon":true,"quebec":true,"quest":true,"qvc":true,"racing":true,"radio":true,"raid":true,"read":true,"realestate":true,"realtor":true,"realty":true,"recipes":true,"red":true,"redstone":true,"redumbrella":true,"rehab":true,"reise":true,"reisen":true,"reit":true,"reliance":true,"ren":true,"rent":true,"rentals":true,"repair":true,"report":true,"republican":true,"rest":true,"restaurant":true,"review":true,"reviews":true,"rexroth":true,"rich":true,"richardli":true,"ricoh":true,"rightathome":true,"ril":true,"rio":true,"rip":true,"rmit":true,"rocher":true,"rocks":true,"rodeo":true,"rogers":true,"room":true,"rsvp":true,"ruhr":true,"run":true,"rwe":true,"ryukyu":true,"saarland":true,"safe":true,"safety":true,"sakura":true,"sale":true,"salon":true,"samsclub":true,"samsung":true,"sandvik":true,"sandvikcoromant":true,"sanofi":true,"sap":true,"sapo":true,"sarl":true,"sas":true,"save":true,"saxo":true,"sbi":true,"sbs":true,"sca":true,"scb":true,"schaeffler":true,"schmidt":true,"scholarships":true,"school":true,"schule":true,"schwarz":true,"science":true,"scjohnson":true,"scor":true,"scot":true,"search":true,"seat":true,"secure":true,"security":true,"seek":true,"select":true,"sener":true,"services":true,"ses":true,"seven":true,"sew":true,"sex":true,"sexy":true,"sfr":true,"shangrila":true,"sharp":true,"shaw":true,"shell":true,"shia":true,"shiksha":true,"shoes":true,"shop":true,"shopping":true,"shouji":true,"show":true,"showtime":true,"shriram":true,"silk":true,"sina":true,"singles":true,"site":true,"ski":true,"skin":true,"sky":true,"skype":true,"sling":true,"smart":true,"smile":true,"sncf":true,"soccer":true,"social":true,"softbank":true,"software":true,"sohu":true,"solar":true,"solutions":true,"song":true,"sony":true,"soy":true,"space":true,"spiegel":true,"spot":true,"spreadbetting":true,"srl":true,"srt":true,"stada":true,"staples":true,"star":true,"starhub":true,"statebank":true,"statefarm":true,"statoil":true,"stc":true,"stcgroup":true,"stockholm":true,"storage":true,"store":true,"stream":true,"studio":true,"study":true,"style":true,"sucks":true,"supplies":true,"supply":true,"support":true,"surf":true,"surgery":true,"suzuki":true,"swatch":true,"swiftcover":true,"swiss":true,"sydney":true,"symantec":true,"systems":true,"tab":true,"taipei":true,"talk":true,"taobao":true,"target":true,"tatamotors":true,"tatar":true,"tattoo":true,"tax":true,"taxi":true,"tci":true,"tdk":true,"team":true,"tech":true,"technology":true,"telecity":true,"telefonica":true,"temasek":true,"tennis":true,"teva":true,"thd":true,"theater":true,"theatre":true,"theguardian":true,"tiaa":true,"tickets":true,"tienda":true,"tiffany":true,"tips":true,"tires":true,"tirol":true,"tjmaxx":true,"tjx":true,"tkmaxx":true,"tmall":true,"today":true,"tokyo":true,"tools":true,"top":true,"toray":true,"toshiba":true,"total":true,"tours":true,"town":true,"toyota":true,"toys":true,"trade":true,"trading":true,"training":true,"travelchannel":true,"travelers":true,"travelersinsurance":true,"trust":true,"trv":true,"tube":true,"tui":true,"tunes":true,"tushu":true,"tvs":true,"ubank":true,"ubs":true,"uconnect":true,"unicom":true,"university":true,"uno":true,"uol":true,"ups":true,"vacations":true,"vana":true,"vanguard":true,"vegas":true,"ventures":true,"verisign":true,"versicherung":true,"vet":true,"viajes":true,"video":true,"vig":true,"viking":true,"villas":true,"vin":true,"vip":true,"virgin":true,"visa":true,"vision":true,"vista":true,"vistaprint":true,"viva":true,"vivo":true,"vlaanderen":true,"vodka":true,"volkswagen":true,"volvo":true,"vote":true,"voting":true,"voto":true,"voyage":true,"vuelos":true,"wales":true,"walmart":true,"walter":true,"wang":true,"wanggou":true,"warman":true,"watch":true,"watches":true,"weather":true,"weatherchannel":true,"webcam":true,"weber":true,"website":true,"wed":true,"wedding":true,"weibo":true,"weir":true,"whoswho":true,"wien":true,"wiki":true,"williamhill":true,"win":true,"windows":true,"wine":true,"winners":true,"wme":true,"wolterskluwer":true,"woodside":true,"work":true,"works":true,"world":true,"wow":true,"wtc":true,"wtf":true,"xbox":true,"xerox":true,"xfinity":true,"xihuan":true,"xin":true,"xn--11b4c3d":true,"xn--1ck2e1b":true,"xn--1qqw23a":true,"xn--30rr7y":true,"xn--3bst00m":true,"xn--3ds443g":true,"xn--3oq18vl8pn36a":true,"xn--3pxu8k":true,"xn--42c2d9a":true,"xn--45q11c":true,"xn--4gbrim":true,"xn--4gq48lf9j":true,"xn--55qw42g":true,"xn--55qx5d":true,"xn--5su34j936bgsg":true,"xn--5tzm5g":true,"xn--6frz82g":true,"xn--6qq986b3xl":true,"xn--80adxhks":true,"xn--80aqecdr1a":true,"xn--80asehdb":true,"xn--80aswg":true,"xn--8y0a063a":true,"xn--9dbq2a":true,"xn--9et52u":true,"xn--9krt00a":true,"xn--b4w605ferd":true,"xn--bck1b9a5dre4c":true,"xn--c1avg":true,"xn--c2br7g":true,"xn--cck2b3b":true,"xn--cg4bki":true,"xn--czr694b":true,"xn--czrs0t":true,"xn--czru2d":true,"xn--d1acj3b":true,"xn--eckvdtc9d":true,"xn--efvy88h":true,"xn--estv75g":true,"xn--fct429k":true,"xn--fhbei":true,"xn--fiq228c5hs":true,"xn--fiq64b":true,"xn--fjq720a":true,"xn--flw351e":true,"xn--fzys8d69uvgm":true,"xn--g2xx48c":true,"xn--gckr3f0f":true,"xn--gk3at1e":true,"xn--hxt814e":true,"xn--i1b6b1a6a2e":true,"xn--imr513n":true,"xn--io0a7i":true,"xn--j1aef":true,"xn--jlq61u9w7b":true,"xn--jvr189m":true,"xn--kcrx77d1x4a":true,"xn--kpu716f":true,"xn--kput3i":true,"xn--mgba3a3ejt":true,"xn--mgba7c0bbn0a":true,"xn--mgbaakc7dvf":true,"xn--mgbab2bd":true,"xn--mgbb9fbpob":true,"xn--mgbca7dzdo":true,"xn--mgbi4ecexp":true,"xn--mgbt3dhd":true,"xn--mk1bu44c":true,"xn--mxtq1m":true,"xn--ngbc5azd":true,"xn--ngbe9e0a":true,"xn--ngbrx":true,"xn--nqv7f":true,"xn--nqv7fs00ema":true,"xn--nyqy26a":true,"xn--p1acf":true,"xn--pbt977c":true,"xn--pssy2u":true,"xn--q9jyb4c":true,"xn--qcka1pmc":true,"xn--rhqv96g":true,"xn--rovu88b":true,"xn--ses554g":true,"xn--t60b56a":true,"xn--tckwe":true,"xn--tiq49xqyj":true,"xn--unup4y":true,"xn--vermgensberater-ctb":true,"xn--vermgensberatung-pwb":true,"xn--vhquv":true,"xn--vuq861b":true,"xn--w4r85el8fhu5dnra":true,"xn--w4rs40l":true,"xn--xhq521b":true,"xn--zfr164b":true,"xperia":true,"xyz":true,"yachts":true,"yahoo":true,"yamaxun":true,"yandex":true,"yodobashi":true,"yoga":true,"yokohama":true,"you":true,"youtube":true,"yun":true,"zappos":true,"zara":true,"zero":true,"zip":true,"zippo":true,"zone":true,"zuerich":true,"beep.pl":true,"*.compute.estate":true,"*.alces.network":true,"*.alwaysdata.net":true,"cloudfront.net":true,"compute.amazonaws.com":true,"ap-northeast-1.compute.amazonaws.com":true,"ap-northeast-2.compute.amazonaws.com":true,"ap-southeast-1.compute.amazonaws.com":true,"ap-southeast-2.compute.amazonaws.com":true,"eu-central-1.compute.amazonaws.com":true,"eu-west-1.compute.amazonaws.com":true,"sa-east-1.compute.amazonaws.com":true,"us-gov-west-1.compute.amazonaws.com":true,"us-west-1.compute.amazonaws.com":true,"us-west-2.compute.amazonaws.com":true,"compute-1.amazonaws.com":true,"z-1.compute-1.amazonaws.com":true,"z-2.compute-1.amazonaws.com":true,"us-east-1.amazonaws.com":true,"compute.amazonaws.com.cn":true,"cn-north-1.compute.amazonaws.com.cn":true,"elasticbeanstalk.com":true,"elb.amazonaws.com":true,"s3.amazonaws.com":true,"s3-ap-northeast-1.amazonaws.com":true,"s3-ap-northeast-2.amazonaws.com":true,"s3-ap-southeast-1.amazonaws.com":true,"s3-ap-southeast-2.amazonaws.com":true,"s3-eu-central-1.amazonaws.com":true,"s3-eu-west-1.amazonaws.com":true,"s3-external-1.amazonaws.com":true,"s3-external-2.amazonaws.com":true,"s3-fips-us-gov-west-1.amazonaws.com":true,"s3-sa-east-1.amazonaws.com":true,"s3-us-gov-west-1.amazonaws.com":true,"s3-us-west-1.amazonaws.com":true,"s3-us-west-2.amazonaws.com":true,"s3.ap-northeast-2.amazonaws.com":true,"s3.cn-north-1.amazonaws.com.cn":true,"s3.eu-central-1.amazonaws.com":true,"on-aptible.com":true,"pimienta.org":true,"poivron.org":true,"potager.org":true,"sweetpepper.org":true,"myasustor.com":true,"myfritz.net":true,"backplaneapp.io":true,"betainabox.com":true,"bnr.la":true,"boxfuse.io":true,"browsersafetymark.io":true,"mycd.eu":true,"ae.org":true,"ar.com":true,"br.com":true,"cn.com":true,"com.de":true,"com.se":true,"de.com":true,"eu.com":true,"gb.com":true,"gb.net":true,"hu.com":true,"hu.net":true,"jp.net":true,"jpn.com":true,"kr.com":true,"mex.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"se.net":true,"uk.com":true,"uk.net":true,"us.com":true,"uy.com":true,"za.bz":true,"za.com":true,"africa.com":true,"gr.com":true,"in.net":true,"us.org":true,"co.com":true,"c.la":true,"certmgr.org":true,"xenapponazure.com":true,"virtueeldomein.nl":true,"cloudcontrolled.com":true,"cloudcontrolapp.com":true,"co.ca":true,"co.cz":true,"c.cdn77.org":true,"cdn77-ssl.net":true,"r.cdn77.net":true,"rsc.cdn77.org":true,"ssl.origin.cdn77-secure.org":true,"cloudns.asia":true,"cloudns.biz":true,"cloudns.club":true,"cloudns.cc":true,"cloudns.eu":true,"cloudns.in":true,"cloudns.info":true,"cloudns.org":true,"cloudns.pro":true,"cloudns.pw":true,"cloudns.us":true,"co.nl":true,"co.no":true,"*.platform.sh":true,"realm.cz":true,"*.cryptonomic.net":true,"cupcake.is":true,"cyon.link":true,"cyon.site":true,"daplie.me":true,"biz.dk":true,"co.dk":true,"firm.dk":true,"reg.dk":true,"store.dk":true,"dedyn.io":true,"dnshome.de":true,"dreamhosters.com":true,"mydrobo.com":true,"drud.io":true,"drud.us":true,"duckdns.org":true,"dy.fi":true,"tunk.org":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true,"ddnss.de":true,"dyn.ddnss.de":true,"dyndns.ddnss.de":true,"dyndns1.de":true,"dyn-ip24.de":true,"home-webserver.de":true,"dyn.home-webserver.de":true,"myhome-server.de":true,"ddnss.org":true,"dynv6.net":true,"e4.cz":true,"eu.org":true,"al.eu.org":true,"asso.eu.org":true,"at.eu.org":true,"au.eu.org":true,"be.eu.org":true,"bg.eu.org":true,"ca.eu.org":true,"cd.eu.org":true,"ch.eu.org":true,"cn.eu.org":true,"cy.eu.org":true,"cz.eu.org":true,"de.eu.org":true,"dk.eu.org":true,"edu.eu.org":true,"ee.eu.org":true,"es.eu.org":true,"fi.eu.org":true,"fr.eu.org":true,"gr.eu.org":true,"hr.eu.org":true,"hu.eu.org":true,"ie.eu.org":true,"il.eu.org":true,"in.eu.org":true,"int.eu.org":true,"is.eu.org":true,"it.eu.org":true,"jp.eu.org":true,"kr.eu.org":true,"lt.eu.org":true,"lu.eu.org":true,"lv.eu.org":true,"mc.eu.org":true,"me.eu.org":true,"mk.eu.org":true,"mt.eu.org":true,"my.eu.org":true,"net.eu.org":true,"ng.eu.org":true,"nl.eu.org":true,"no.eu.org":true,"nz.eu.org":true,"paris.eu.org":true,"pl.eu.org":true,"pt.eu.org":true,"q-a.eu.org":true,"ro.eu.org":true,"ru.eu.org":true,"se.eu.org":true,"si.eu.org":true,"sk.eu.org":true,"tr.eu.org":true,"uk.eu.org":true,"us.eu.org":true,"eu-1.evennode.com":true,"eu-2.evennode.com":true,"us-1.evennode.com":true,"us-2.evennode.com":true,"apps.fbsbx.com":true,"a.ssl.fastly.net":true,"b.ssl.fastly.net":true,"global.ssl.fastly.net":true,"a.prod.fastly.net":true,"global.prod.fastly.net":true,"fhapp.xyz":true,"firebaseapp.com":true,"flynnhub.com":true,"freebox-os.com":true,"freeboxos.com":true,"fbx-os.fr":true,"fbxos.fr":true,"freebox-os.fr":true,"freeboxos.fr":true,"myfusion.cloud":true,"futuremailing.at":true,"*.ex.ortsinfo.at":true,"*.kunden.ortsinfo.at":true,"service.gov.uk":true,"github.io":true,"githubusercontent.com":true,"githubcloud.com":true,"*.api.githubcloud.com":true,"*.ext.githubcloud.com":true,"gist.githubcloud.com":true,"*.githubcloudusercontent.com":true,"gitlab.io":true,"ro.com":true,"ro.im":true,"shop.ro":true,"goip.de":true,"*.0emm.com":true,"appspot.com":true,"blogspot.ae":true,"blogspot.al":true,"blogspot.am":true,"blogspot.ba":true,"blogspot.be":true,"blogspot.bg":true,"blogspot.bj":true,"blogspot.ca":true,"blogspot.cf":true,"blogspot.ch":true,"blogspot.cl":true,"blogspot.co.at":true,"blogspot.co.id":true,"blogspot.co.il":true,"blogspot.co.ke":true,"blogspot.co.nz":true,"blogspot.co.uk":true,"blogspot.co.za":true,"blogspot.com":true,"blogspot.com.ar":true,"blogspot.com.au":true,"blogspot.com.br":true,"blogspot.com.by":true,"blogspot.com.co":true,"blogspot.com.cy":true,"blogspot.com.ee":true,"blogspot.com.eg":true,"blogspot.com.es":true,"blogspot.com.mt":true,"blogspot.com.ng":true,"blogspot.com.tr":true,"blogspot.com.uy":true,"blogspot.cv":true,"blogspot.cz":true,"blogspot.de":true,"blogspot.dk":true,"blogspot.fi":true,"blogspot.fr":true,"blogspot.gr":true,"blogspot.hk":true,"blogspot.hr":true,"blogspot.hu":true,"blogspot.ie":true,"blogspot.in":true,"blogspot.is":true,"blogspot.it":true,"blogspot.jp":true,"blogspot.kr":true,"blogspot.li":true,"blogspot.lt":true,"blogspot.lu":true,"blogspot.md":true,"blogspot.mk":true,"blogspot.mr":true,"blogspot.mx":true,"blogspot.my":true,"blogspot.nl":true,"blogspot.no":true,"blogspot.pe":true,"blogspot.pt":true,"blogspot.qa":true,"blogspot.re":true,"blogspot.ro":true,"blogspot.rs":true,"blogspot.ru":true,"blogspot.se":true,"blogspot.sg":true,"blogspot.si":true,"blogspot.sk":true,"blogspot.sn":true,"blogspot.td":true,"blogspot.tw":true,"blogspot.ug":true,"blogspot.vn":true,"cloudfunctions.net":true,"codespot.com":true,"googleapis.com":true,"googlecode.com":true,"pagespeedmobilizer.com":true,"publishproxy.com":true,"withgoogle.com":true,"withyoutube.com":true,"hashbang.sh":true,"hasura-app.io":true,"hepforge.org":true,"herokuapp.com":true,"herokussl.com":true,"iki.fi":true,"biz.at":true,"info.at":true,"ac.leg.br":true,"al.leg.br":true,"am.leg.br":true,"ap.leg.br":true,"ba.leg.br":true,"ce.leg.br":true,"df.leg.br":true,"es.leg.br":true,"go.leg.br":true,"ma.leg.br":true,"mg.leg.br":true,"ms.leg.br":true,"mt.leg.br":true,"pa.leg.br":true,"pb.leg.br":true,"pe.leg.br":true,"pi.leg.br":true,"pr.leg.br":true,"rj.leg.br":true,"rn.leg.br":true,"ro.leg.br":true,"rr.leg.br":true,"rs.leg.br":true,"sc.leg.br":true,"se.leg.br":true,"sp.leg.br":true,"to.leg.br":true,"*.triton.zone":true,"*.cns.joyent.com":true,"js.org":true,"keymachine.de":true,"knightpoint.systems":true,"co.krd":true,"edu.krd":true,"*.magentosite.cloud":true,"meteorapp.com":true,"eu.meteorapp.com":true,"co.pl":true,"azurewebsites.net":true,"azure-mobile.net":true,"cloudapp.net":true,"bmoattachments.org":true,"4u.com":true,"ngrok.io":true,"nfshost.com":true,"nsupdate.info":true,"nerdpol.ovh":true,"blogsyte.com":true,"brasilia.me":true,"cable-modem.org":true,"ciscofreak.com":true,"collegefan.org":true,"couchpotatofries.org":true,"damnserver.com":true,"ddns.me":true,"ditchyourip.com":true,"dnsfor.me":true,"dnsiskinky.com":true,"dvrcam.info":true,"dynns.com":true,"eating-organic.net":true,"fantasyleague.cc":true,"geekgalaxy.com":true,"golffan.us":true,"health-carereform.com":true,"homesecuritymac.com":true,"homesecuritypc.com":true,"hopto.me":true,"ilovecollege.info":true,"loginto.me":true,"mlbfan.org":true,"mmafan.biz":true,"myactivedirectory.com":true,"mydissent.net":true,"myeffect.net":true,"mymediapc.net":true,"mypsx.net":true,"mysecuritycamera.com":true,"mysecuritycamera.net":true,"mysecuritycamera.org":true,"net-freaks.com":true,"nflfan.org":true,"nhlfan.net":true,"no-ip.ca":true,"no-ip.co.uk":true,"no-ip.net":true,"noip.us":true,"onthewifi.com":true,"pgafan.net":true,"point2this.com":true,"pointto.us":true,"privatizehealthinsurance.net":true,"quicksytes.com":true,"read-books.org":true,"securitytactics.com":true,"serveexchange.com":true,"servehumour.com":true,"servep2p.com":true,"servesarcasm.com":true,"stufftoread.com":true,"ufcfan.org":true,"unusualperson.com":true,"workisboring.com":true,"3utilities.com":true,"bounceme.net":true,"ddns.net":true,"ddnsking.com":true,"gotdns.ch":true,"hopto.org":true,"myftp.biz":true,"myftp.org":true,"myvnc.com":true,"no-ip.biz":true,"no-ip.info":true,"no-ip.org":true,"noip.me":true,"redirectme.net":true,"servebeer.com":true,"serveblog.net":true,"servecounterstrike.com":true,"serveftp.com":true,"servegame.com":true,"servehalflife.com":true,"servehttp.com":true,"serveirc.com":true,"serveminecraft.net":true,"servemp3.com":true,"servepics.com":true,"servequake.com":true,"sytes.net":true,"webhop.me":true,"zapto.org":true,"nyc.mn":true,"nid.io":true,"opencraft.hosting":true,"operaunite.com":true,"outsystemscloud.com":true,"ownprovider.com":true,"oy.lc":true,"pgfog.com":true,"pagefrontapp.com":true,"art.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pantheonsite.io":true,"gotpantheon.com":true,"mypep.link":true,"xen.prgmr.com":true,"priv.at":true,"protonet.io":true,"chirurgiens-dentistes-en-france.fr":true,"qa2.com":true,"dev-myqnapcloud.com":true,"alpha-myqnapcloud.com":true,"myqnapcloud.com":true,"rackmaze.com":true,"rackmaze.net":true,"rhcloud.com":true,"hzc.io":true,"wellbeingzone.eu":true,"ptplus.fit":true,"wellbeingzone.co.uk":true,"sandcats.io":true,"logoip.de":true,"logoip.com":true,"firewall-gateway.com":true,"firewall-gateway.de":true,"my-gateway.de":true,"my-router.de":true,"spdns.de":true,"spdns.eu":true,"firewall-gateway.net":true,"my-firewall.org":true,"myfirewall.org":true,"spdns.org":true,"biz.ua":true,"co.ua":true,"pp.ua":true,"shiftedit.io":true,"myshopblocks.com":true,"1kapp.com":true,"appchizi.com":true,"applinzi.com":true,"sinaapp.com":true,"vipsinaapp.com":true,"bounty-full.com":true,"alpha.bounty-full.com":true,"beta.bounty-full.com":true,"static.land":true,"dev.static.land":true,"sites.static.land":true,"apps.lair.io":true,"*.stolos.io":true,"spacekit.io":true,"stackspace.space":true,"diskstation.me":true,"dscloud.biz":true,"dscloud.me":true,"dscloud.mobi":true,"dsmynas.com":true,"dsmynas.net":true,"dsmynas.org":true,"familyds.com":true,"familyds.net":true,"familyds.org":true,"i234.me":true,"myds.me":true,"synology.me":true,"taifun-dns.de":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"bloxcms.com":true,"townnews-staging.com":true,"*.transurl.be":true,"*.transurl.eu":true,"*.transurl.nl":true,"tuxfamily.org":true,"hk.com":true,"hk.org":true,"ltd.hk":true,"inc.hk":true,"lib.de.us":true,"router.management":true,"wmflabs.org":true,"yolasite.com":true,"za.net":true,"za.org":true,"now.sh":true});
-
-// END of automatically generated file
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json b/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json
deleted file mode 100644
index fbf8fcbccf..0000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/node_modules/punycode/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "_from": "punycode@^1.4.1",
- "_id": "punycode@1.4.1",
- "_integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "_location": "/request/tough-cookie/punycode",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "punycode@^1.4.1",
- "name": "punycode",
- "escapedName": "punycode",
- "rawSpec": "^1.4.1",
- "saveSpec": null,
- "fetchSpec": "^1.4.1"
- },
- "_requiredBy": [
- "/request/tough-cookie"
- ],
- "_resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "_shasum": "c0d5a63b2718800ad8e1eb0fa5269c84dd41845e",
- "_shrinkwrap": null,
- "_spec": "punycode@^1.4.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request/node_modules/tough-cookie",
- "author": {
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/bestiejs/punycode.js/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Mathias Bynens",
- "url": "https://mathiasbynens.be/"
- },
- {
- "name": "John-David Dalton",
- "url": "http://allyoucanleet.com/"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "A robust Punycode converter that fully complies to RFC 3492 and RFC 5891, and works on nearly all JavaScript platforms.",
- "devDependencies": {
- "coveralls": "^2.11.4",
- "grunt": "^0.4.5",
- "grunt-contrib-uglify": "^0.11.0",
- "grunt-shell": "^1.1.2",
- "istanbul": "^0.4.1",
- "qunit-extras": "^1.4.4",
- "qunitjs": "~1.11.0",
- "requirejs": "^2.1.22"
- },
- "files": [
- "LICENSE-MIT.txt",
- "punycode.js"
- ],
- "homepage": "https://mths.be/punycode",
- "jspm": {
- "map": {
- "./punycode.js": {
- "node": "@node/punycode"
- }
- }
- },
- "keywords": [
- "punycode",
- "unicode",
- "idn",
- "idna",
- "dns",
- "url",
- "domain"
- ],
- "license": "MIT",
- "main": "punycode.js",
- "name": "punycode",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/bestiejs/punycode.js.git"
- },
- "scripts": {
- "test": "node tests/tests.js"
- },
- "version": "1.4.1"
-}
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json b/deps/npm/node_modules/request/node_modules/tough-cookie/package.json
deleted file mode 100644
index e84ad17511..0000000000
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/package.json
+++ /dev/null
@@ -1,92 +0,0 @@
-{
- "_from": "tough-cookie@~2.3.3",
- "_id": "tough-cookie@2.3.3",
- "_inBundle": false,
- "_integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
- "_location": "/request/tough-cookie",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "tough-cookie@~2.3.3",
- "name": "tough-cookie",
- "escapedName": "tough-cookie",
- "rawSpec": "~2.3.3",
- "saveSpec": null,
- "fetchSpec": "~2.3.3"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "_shasum": "0b618a5565b6dea90bf3425d04d55edc475a7561",
- "_spec": "tough-cookie@~2.3.3",
- "_where": "/Users/rebecca/code/npm/node_modules/request",
- "author": {
- "name": "Jeremy Stashewsky",
- "email": "jstashewsky@salesforce.com"
- },
- "bugs": {
- "url": "https://github.com/salesforce/tough-cookie/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Alexander Savin"
- },
- {
- "name": "Ian Livingstone"
- },
- {
- "name": "Ivan Nikulin"
- },
- {
- "name": "Lalit Kapoor"
- },
- {
- "name": "Sam Thompson"
- },
- {
- "name": "Sebastian Mayr"
- }
- ],
- "dependencies": {
- "punycode": "^1.4.1"
- },
- "deprecated": false,
- "description": "RFC6265 Cookies and Cookie Jar for node.js",
- "devDependencies": {
- "async": "^1.4.2",
- "string.prototype.repeat": "^0.2.0",
- "vows": "^0.8.1"
- },
- "engines": {
- "node": ">=0.8"
- },
- "files": [
- "lib"
- ],
- "homepage": "https://github.com/salesforce/tough-cookie",
- "keywords": [
- "HTTP",
- "cookie",
- "cookies",
- "set-cookie",
- "cookiejar",
- "jar",
- "RFC6265",
- "RFC2965"
- ],
- "license": "BSD-3-Clause",
- "main": "./lib/cookie",
- "name": "tough-cookie",
- "repository": {
- "type": "git",
- "url": "git://github.com/salesforce/tough-cookie.git"
- },
- "scripts": {
- "suffixup": "curl -o public_suffix_list.dat https://publicsuffix.org/list/public_suffix_list.dat && ./generate-pubsuffix.js",
- "test": "vows test/*_test.js"
- },
- "version": "2.3.3"
-}
diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/package.json b/deps/npm/node_modules/request/node_modules/tunnel-agent/package.json
deleted file mode 100644
index 39d7378cbb..0000000000
--- a/deps/npm/node_modules/request/node_modules/tunnel-agent/package.json
+++ /dev/null
@@ -1,57 +0,0 @@
-{
- "_from": "tunnel-agent@^0.6.0",
- "_id": "tunnel-agent@0.6.0",
- "_integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "_location": "/request/tunnel-agent",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "tunnel-agent@^0.6.0",
- "name": "tunnel-agent",
- "escapedName": "tunnel-agent",
- "rawSpec": "^0.6.0",
- "saveSpec": null,
- "fetchSpec": "^0.6.0"
- },
- "_requiredBy": [
- "/request"
- ],
- "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "_shasum": "27a5dea06b36b04a0a9966774b290868f0fc40fd",
- "_shrinkwrap": null,
- "_spec": "tunnel-agent@^0.6.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/request",
- "author": {
- "name": "Mikeal Rogers",
- "email": "mikeal.rogers@gmail.com",
- "url": "http://www.futurealoof.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mikeal/tunnel-agent/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "deprecated": false,
- "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.",
- "devDependencies": {},
- "engines": {
- "node": "*"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/mikeal/tunnel-agent#readme",
- "license": "Apache-2.0",
- "main": "index.js",
- "name": "tunnel-agent",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "url": "git+https://github.com/mikeal/tunnel-agent.git"
- },
- "version": "0.6.0"
-}
diff --git a/deps/npm/node_modules/request/package.json b/deps/npm/node_modules/request/package.json
index 8df18b9827..5ab26dd307 100644
--- a/deps/npm/node_modules/request/package.json
+++ b/deps/npm/node_modules/request/package.json
@@ -1,33 +1,37 @@
{
- "_from": "request@2.83.0",
- "_id": "request@2.83.0",
+ "_args": [
+ [
+ "request@2.86.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "request@2.86.0",
+ "_id": "request@2.86.0",
"_inBundle": false,
- "_integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==",
+ "_integrity": "sha512-BQZih67o9r+Ys94tcIW4S7Uu8pthjrQVxhsZ/weOwHbDfACxvIyvnAbzFQxjy1jMtvFSzv5zf4my6cZsJBbVzw==",
"_location": "/request",
- "_phantomChildren": {
- "safe-buffer": "5.1.1"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "request@2.83.0",
+ "raw": "request@2.86.0",
"name": "request",
"escapedName": "request",
- "rawSpec": "2.83.0",
+ "rawSpec": "2.86.0",
"saveSpec": null,
- "fetchSpec": "2.83.0"
+ "fetchSpec": "2.86.0"
},
"_requiredBy": [
- "#USER",
"/",
+ "/cloudant-follow",
+ "/couchapp",
+ "/coveralls",
+ "/nano",
"/node-gyp",
- "/npm-registry-client",
- "/npm-registry-couchapp/couchapp",
- "/npm-registry-couchapp/couchapp/nano"
+ "/npm-registry-client"
],
- "_resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz",
- "_shasum": "ca0b65da02ed62935887808e6f510381034e3356",
- "_spec": "request@2.83.0",
+ "_resolved": "https://registry.npmjs.org/request/-/request-2.86.0.tgz",
+ "_spec": "2.86.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mikeal Rogers",
@@ -36,7 +40,6 @@
"bugs": {
"url": "http://github.com/request/request/issues"
},
- "bundleDependencies": false,
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.6.0",
@@ -56,12 +59,10 @@
"performance-now": "^2.1.0",
"qs": "~6.5.1",
"safe-buffer": "^5.1.1",
- "stringstream": "~0.0.5",
"tough-cookie": "~2.3.3",
"tunnel-agent": "^0.6.0",
"uuid": "^3.1.0"
},
- "deprecated": false,
"description": "Simplified HTTP request client.",
"devDependencies": {
"bluebird": "^3.2.1",
@@ -120,5 +121,5 @@
"test-ci": "taper tests/test-*.js",
"test-cov": "istanbul cover tape tests/test-*.js"
},
- "version": "2.83.0"
+ "version": "2.86.0"
}
diff --git a/deps/npm/node_modules/request/request.js b/deps/npm/node_modules/request/request.js
index ff19ca39cf..c93258b3b2 100644
--- a/deps/npm/node_modules/request/request.js
+++ b/deps/npm/node_modules/request/request.js
@@ -11,7 +11,6 @@ var aws2 = require('aws-sign2')
var aws4 = require('aws4')
var httpSignature = require('http-signature')
var mime = require('mime-types')
-var stringstream = require('stringstream')
var caseless = require('caseless')
var ForeverAgent = require('forever-agent')
var FormData = require('form-data')
@@ -1049,13 +1048,8 @@ Request.prototype.onRequestResponse = function (response) {
if (self.encoding) {
if (self.dests.length !== 0) {
console.error('Ignoring encoding parameter as this stream is being piped to another stream which makes the encoding option invalid.')
- } else if (responseContent.setEncoding) {
- responseContent.setEncoding(self.encoding)
} else {
- // Should only occur on node pre-v0.9.4 (joyent/node@9b5abe5) with
- // zlib streams.
- // If/When support for 0.9.4 is dropped, this should be unnecessary.
- responseContent = responseContent.pipe(stringstream(self.encoding))
+ responseContent.setEncoding(self.encoding)
}
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.npmignore b/deps/npm/node_modules/require-directory/.npmignore
index 47cf365a07..47cf365a07 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/.npmignore
+++ b/deps/npm/node_modules/require-directory/.npmignore
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml b/deps/npm/node_modules/require-directory/.travis.yml
index 20fd86b6a5..20fd86b6a5 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/node_modules/defaults/node_modules/clone/.travis.yml
+++ b/deps/npm/node_modules/require-directory/.travis.yml
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/LICENSE b/deps/npm/node_modules/require-directory/LICENSE
index a70f253aa4..a70f253aa4 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/LICENSE
+++ b/deps/npm/node_modules/require-directory/LICENSE
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/README.markdown b/deps/npm/node_modules/require-directory/README.markdown
index 879844560f..879844560f 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/README.markdown
+++ b/deps/npm/node_modules/require-directory/README.markdown
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/index.js b/deps/npm/node_modules/require-directory/index.js
index cd37da7ea8..cd37da7ea8 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-directory/index.js
+++ b/deps/npm/node_modules/require-directory/index.js
diff --git a/deps/npm/node_modules/require-directory/package.json b/deps/npm/node_modules/require-directory/package.json
new file mode 100644
index 0000000000..469036976a
--- /dev/null
+++ b/deps/npm/node_modules/require-directory/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "require-directory@^2.1.1",
+ "_id": "require-directory@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+ "_location": "/require-directory",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "require-directory@^2.1.1",
+ "name": "require-directory",
+ "escapedName": "require-directory",
+ "rawSpec": "^2.1.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.1"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "_shasum": "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42",
+ "_spec": "require-directory@^2.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Troy Goode",
+ "email": "troygoode@gmail.com",
+ "url": "http://github.com/troygoode/"
+ },
+ "bugs": {
+ "url": "http://github.com/troygoode/node-require-directory/issues/"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Troy Goode",
+ "email": "troygoode@gmail.com",
+ "url": "http://github.com/troygoode/"
+ }
+ ],
+ "deprecated": false,
+ "description": "Recursively iterates over specified directory, require()'ing each file, and returning a nested hash structure containing those modules.",
+ "devDependencies": {
+ "jshint": "^2.6.0",
+ "mocha": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "homepage": "https://github.com/troygoode/node-require-directory/",
+ "keywords": [
+ "require",
+ "directory",
+ "library",
+ "recursive"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "require-directory",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/troygoode/node-require-directory.git"
+ },
+ "scripts": {
+ "lint": "jshint index.js test/test.js",
+ "test": "mocha"
+ },
+ "version": "2.1.1"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.npmignore b/deps/npm/node_modules/require-main-filename/.npmignore
index 6f9fe6badf..6f9fe6badf 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.npmignore
+++ b/deps/npm/node_modules/require-main-filename/.npmignore
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.travis.yml b/deps/npm/node_modules/require-main-filename/.travis.yml
index ab61ce77eb..ab61ce77eb 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/.travis.yml
+++ b/deps/npm/node_modules/require-main-filename/.travis.yml
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/LICENSE.txt b/deps/npm/node_modules/require-main-filename/LICENSE.txt
index 836440bef7..836440bef7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/LICENSE.txt
+++ b/deps/npm/node_modules/require-main-filename/LICENSE.txt
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/README.md b/deps/npm/node_modules/require-main-filename/README.md
index 820d9f5895..820d9f5895 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/README.md
+++ b/deps/npm/node_modules/require-main-filename/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/index.js b/deps/npm/node_modules/require-main-filename/index.js
index dca7f0cc1e..dca7f0cc1e 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/index.js
+++ b/deps/npm/node_modules/require-main-filename/index.js
diff --git a/deps/npm/node_modules/require-main-filename/package.json b/deps/npm/node_modules/require-main-filename/package.json
new file mode 100644
index 0000000000..ed6ca5399f
--- /dev/null
+++ b/deps/npm/node_modules/require-main-filename/package.json
@@ -0,0 +1,58 @@
+{
+ "_from": "require-main-filename@^1.0.1",
+ "_id": "require-main-filename@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=",
+ "_location": "/require-main-filename",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "require-main-filename@^1.0.1",
+ "name": "require-main-filename",
+ "escapedName": "require-main-filename",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "_shasum": "97f717b69d48784f5f526a6c5aa8ffdda055a4d1",
+ "_spec": "require-main-filename@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/require-main-filename/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "shim for require.main.filename() that works in as many environments as possible",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "standard": "^6.0.5",
+ "tap": "^5.2.0"
+ },
+ "homepage": "https://github.com/yargs/require-main-filename#readme",
+ "keywords": [
+ "require",
+ "shim",
+ "iisnode"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "require-main-filename",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/require-main-filename.git"
+ },
+ "scripts": {
+ "pretest": "standard",
+ "test": "tap --coverage test.js"
+ },
+ "version": "1.0.1"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/test.js b/deps/npm/node_modules/require-main-filename/test.js
index d89e7dcbaf..d89e7dcbaf 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/require-main-filename/test.js
+++ b/deps/npm/node_modules/require-main-filename/test.js
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/index.js b/deps/npm/node_modules/resolve-from/index.js
index d092447e99..d092447e99 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/index.js
+++ b/deps/npm/node_modules/resolve-from/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license b/deps/npm/node_modules/resolve-from/license
index e7af2f7710..e7af2f7710 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/license
+++ b/deps/npm/node_modules/resolve-from/license
diff --git a/deps/npm/node_modules/resolve-from/package.json b/deps/npm/node_modules/resolve-from/package.json
new file mode 100644
index 0000000000..28ff716c0d
--- /dev/null
+++ b/deps/npm/node_modules/resolve-from/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "resolve-from@^4.0.0",
+ "_id": "resolve-from@4.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "_location": "/resolve-from",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "resolve-from@^4.0.0",
+ "name": "resolve-from",
+ "escapedName": "resolve-from",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/npm-lifecycle"
+ ],
+ "_resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "_shasum": "4abcd852ad32dd7baabfe9b40e00a36db5f392e6",
+ "_spec": "resolve-from@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npm-lifecycle",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/resolve-from/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Resolve the path of a module like `require.resolve()` but from a given path",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/resolve-from#readme",
+ "keywords": [
+ "require",
+ "resolve",
+ "path",
+ "module",
+ "from",
+ "like",
+ "import"
+ ],
+ "license": "MIT",
+ "name": "resolve-from",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/resolve-from.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "4.0.0"
+}
diff --git a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/readme.md b/deps/npm/node_modules/resolve-from/readme.md
index e539f858ef..e539f858ef 100644
--- a/deps/npm/node_modules/npm-lifecycle/node_modules/resolve-from/readme.md
+++ b/deps/npm/node_modules/resolve-from/readme.md
diff --git a/deps/npm/node_modules/retry/.npmignore b/deps/npm/node_modules/retry/.npmignore
index e7726a071b..432f2855d6 100644
--- a/deps/npm/node_modules/retry/.npmignore
+++ b/deps/npm/node_modules/retry/.npmignore
@@ -1,2 +1,3 @@
/node_modules/*
npm-debug.log
+coverage
diff --git a/deps/npm/node_modules/retry/.travis.yml b/deps/npm/node_modules/retry/.travis.yml
new file mode 100644
index 0000000000..bcde2122b9
--- /dev/null
+++ b/deps/npm/node_modules/retry/.travis.yml
@@ -0,0 +1,15 @@
+language: node_js
+node_js:
+ - "4"
+before_install:
+ - pip install --user codecov
+after_success:
+ - codecov --file coverage/lcov.info --disable search
+# travis encrypt [subdomain]:[api token]@[room id]
+# notifications:
+# email: false
+# campfire:
+# rooms:
+# secure: xyz
+# on_failure: always
+# on_success: always
diff --git a/deps/npm/node_modules/retry/Makefile b/deps/npm/node_modules/retry/Makefile
index eee21a99df..1968d8ff8b 100644
--- a/deps/npm/node_modules/retry/Makefile
+++ b/deps/npm/node_modules/retry/Makefile
@@ -1,8 +1,5 @@
SHELL := /bin/bash
-test:
- @node test/runner.js
-
release-major: test
npm version major -m "Release %s"
git push
@@ -18,5 +15,4 @@ release-patch: test
git push
npm publish
-.PHONY: test
-
+.PHONY: test release-major release-minor release-patch
diff --git a/deps/npm/node_modules/retry/Readme.md b/deps/npm/node_modules/retry/Readme.md
index eee05f7bb6..1c888deee9 100644
--- a/deps/npm/node_modules/retry/Readme.md
+++ b/deps/npm/node_modules/retry/Readme.md
@@ -1,3 +1,8 @@
+<!-- badges/ -->
+[![Build Status](https://secure.travis-ci.org/tim-kos/node-retry.png?branch=master)](http://travis-ci.org/tim-kos/node-retry "Check this project's build status on TravisCI")
+[![codecov](https://codecov.io/gh/tim-kos/node-retry/branch/master/graph/badge.svg)](https://codecov.io/gh/tim-kos/node-retry)
+<!-- /badges -->
+
# retry
Abstraction for exponential and custom retry strategies for failed operations.
@@ -60,7 +65,8 @@ var operation = retry.operation({
Creates a new `RetryOperation` object. `options` is the same as `retry.timeouts()`'s `options`, with two additions:
* `forever`: Whether to retry forever, defaults to `false`.
-* `unref`: Wether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+* `unref`: Whether to [unref](https://nodejs.org/api/timers.html#timers_unref) the setTimeout's, defaults to `false`.
+* `maxRetryTime`: The maximum time (in milliseconds) that the retried operation is allowed to run. Default is `Infinity`.
### retry.timeouts([options])
@@ -69,7 +75,7 @@ milliseconds. If `options` is an array, a copy of that array is returned.
`options` is a JS object that can contain any of the following keys:
-* `retries`: The maximum amount of times to retry the operation. Default is `10`.
+* `retries`: The maximum amount of times to retry the operation. Default is `10`. Seting this to `1` means `do it once, then retry it once`.
* `factor`: The exponential factor to use. Default is `2`.
* `minTimeout`: The number of milliseconds before starting the first retry. Default is `1000`.
* `maxTimeout`: The maximum number of milliseconds between two retries. Default is `Infinity`.
@@ -143,8 +149,10 @@ If `forever` is true, the following changes happen:
#### retryOperation.errors()
-Returns an array of all errors that have been passed to
-`retryOperation.retry()` so far.
+Returns an array of all errors that have been passed to `retryOperation.retry()` so far. The
+returning array has the errors ordered chronologically based on when they were passed to
+`retryOperation.retry()`, which means the first passed error is at index zero and the last is
+at the last index.
#### retryOperation.mainError()
@@ -185,6 +193,10 @@ the current attempt number.
Allows you to stop the operation being retried. Useful for aborting the operation on a fatal error etc.
+#### retryOperation.reset()
+
+Resets the internal state of the operation object, so that you can call `attempt()` again as if this was a new operation object.
+
#### retryOperation.attempts()
Returns an int representing the number of attempts it took to call `fn` before it was successful.
diff --git a/deps/npm/node_modules/retry/lib/retry.js b/deps/npm/node_modules/retry/lib/retry.js
index 77428cfd00..dcb5768072 100644
--- a/deps/npm/node_modules/retry/lib/retry.js
+++ b/deps/npm/node_modules/retry/lib/retry.js
@@ -4,7 +4,8 @@ exports.operation = function(options) {
var timeouts = exports.timeouts(options);
return new RetryOperation(timeouts, {
forever: options && options.forever,
- unref: options && options.unref
+ unref: options && options.unref,
+ maxRetryTime: options && options.maxRetryTime
});
};
@@ -75,9 +76,9 @@ exports.wrap = function(obj, options, methods) {
var method = methods[i];
var original = obj[method];
- obj[method] = function retryWrapper() {
+ obj[method] = function retryWrapper(original) {
var op = exports.operation(options);
- var args = Array.prototype.slice.call(arguments);
+ var args = Array.prototype.slice.call(arguments, 1);
var callback = args.pop();
args.push(function(err) {
@@ -93,7 +94,7 @@ exports.wrap = function(obj, options, methods) {
op.attempt(function() {
original.apply(obj, args);
});
- };
+ }.bind(obj, original);
obj[method].options = options;
}
};
diff --git a/deps/npm/node_modules/retry/lib/retry_operation.js b/deps/npm/node_modules/retry/lib/retry_operation.js
index 2b3db8e177..1e564696fe 100644
--- a/deps/npm/node_modules/retry/lib/retry_operation.js
+++ b/deps/npm/node_modules/retry/lib/retry_operation.js
@@ -4,14 +4,17 @@ function RetryOperation(timeouts, options) {
options = { forever: options };
}
+ this._originalTimeouts = JSON.parse(JSON.stringify(timeouts));
this._timeouts = timeouts;
this._options = options || {};
+ this._maxRetryTime = options && options.maxRetryTime || Infinity;
this._fn = null;
this._errors = [];
this._attempts = 1;
this._operationTimeout = null;
this._operationTimeoutCb = null;
this._timeout = null;
+ this._operationStart = null;
if (this._options.forever) {
this._cachedTimeouts = this._timeouts.slice(0);
@@ -19,6 +22,11 @@ function RetryOperation(timeouts, options) {
}
module.exports = RetryOperation;
+RetryOperation.prototype.reset = function() {
+ this._attempts = 1;
+ this._timeouts = this._originalTimeouts;
+}
+
RetryOperation.prototype.stop = function() {
if (this._timeout) {
clearTimeout(this._timeout);
@@ -36,6 +44,11 @@ RetryOperation.prototype.retry = function(err) {
if (!err) {
return false;
}
+ var currentTime = new Date().getTime();
+ if (err && currentTime - this._operationStart >= this._maxRetryTime) {
+ this._errors.unshift(new Error('RetryOperation timeout occurred'));
+ return false;
+ }
this._errors.push(err);
@@ -60,7 +73,7 @@ RetryOperation.prototype.retry = function(err) {
self._operationTimeoutCb(self._attempts);
}, self._operationTimeout);
- if (this._options.unref) {
+ if (self._options.unref) {
self._timeout.unref();
}
}
@@ -94,6 +107,8 @@ RetryOperation.prototype.attempt = function(fn, timeoutOps) {
}, self._operationTimeout);
}
+ this._operationStart = new Date().getTime();
+
this._fn(this._attempts);
};
diff --git a/deps/npm/node_modules/retry/package.json b/deps/npm/node_modules/retry/package.json
index a92d62726e..09a88a8abc 100644
--- a/deps/npm/node_modules/retry/package.json
+++ b/deps/npm/node_modules/retry/package.json
@@ -1,61 +1,67 @@
{
- "_from": "retry@~0.10.1",
- "_id": "retry@0.10.1",
- "_integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=",
+ "_args": [
+ [
+ "retry@0.12.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "retry@0.12.0",
+ "_id": "retry@0.12.0",
+ "_inBundle": false,
+ "_integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
"_location": "/retry",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "retry@~0.10.1",
+ "raw": "retry@0.12.0",
"name": "retry",
"escapedName": "retry",
- "rawSpec": "~0.10.1",
+ "rawSpec": "0.12.0",
"saveSpec": null,
- "fetchSpec": "~0.10.1"
+ "fetchSpec": "0.12.0"
},
"_requiredBy": [
- "/",
- "/npm-registry-client",
- "/pacote/promise-retry"
+ "/"
],
- "_resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz",
- "_shasum": "e76388d217992c252750241d3d3956fed98d8ff4",
- "_shrinkwrap": null,
- "_spec": "retry@~0.10.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "_spec": "0.12.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Tim KoschĆ¼tzki",
"email": "tim@debuggable.com",
"url": "http://debuggable.com/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/tim-kos/node-retry/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Abstraction for exponential and custom retry strategies for failed operations.",
"devDependencies": {
"fake": "0.2.0",
- "far": "0.0.1"
+ "istanbul": "^0.4.5",
+ "tape": "^4.8.0"
},
"directories": {
"lib": "./lib"
},
"engines": {
- "node": "*"
+ "node": ">= 4"
},
"homepage": "https://github.com/tim-kos/node-retry",
"license": "MIT",
"main": "index",
"name": "retry",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/tim-kos/node-retry.git"
},
- "version": "0.10.1"
+ "scripts": {
+ "release": "npm version ${SEMANTIC:-patch} -m \"Release %s\" && git push && git push --tags && npm publish",
+ "release:major": "env SEMANTIC=major npm run release",
+ "release:minor": "env SEMANTIC=minor npm run release",
+ "release:patch": "env SEMANTIC=patch npm run release",
+ "test": "istanbul cover ./node_modules/tape/bin/tape ./test/integration/*.js"
+ },
+ "version": "0.12.0"
}
diff --git a/deps/npm/node_modules/retry/test/integration/test-retry-operation.js b/deps/npm/node_modules/retry/test/integration/test-retry-operation.js
index 916936424f..e351bb683e 100644
--- a/deps/npm/node_modules/retry/test/integration/test-retry-operation.js
+++ b/deps/npm/node_modules/retry/test/integration/test-retry-operation.js
@@ -3,6 +3,45 @@ var assert = common.assert;
var fake = common.fake.create();
var retry = require(common.dir.lib + '/retry');
+(function testReset() {
+ var error = new Error('some error');
+ var operation = retry.operation([1, 2, 3]);
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var expectedFinishes = 1;
+ var finishes = 0;
+
+ var fn = function() {
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+ if (operation.retry(error)) {
+ return;
+ }
+
+ finishes++
+ assert.equal(expectedFinishes, finishes);
+ assert.strictEqual(attempts, 4);
+ assert.strictEqual(operation.attempts(), attempts);
+ assert.strictEqual(operation.mainError(), error);
+
+ if (finishes < 2) {
+ attempts = 0;
+ expectedFinishes++;
+ operation.reset();
+ fn()
+ } else {
+ finalCallback();
+ }
+ });
+ };
+
+ fn();
+})();
+
(function testErrors() {
var operation = retry.operation();
@@ -53,7 +92,6 @@ var retry = require(common.dir.lib + '/retry');
})();
(function testRetry() {
- var times = 3;
var error = new Error('some error');
var operation = retry.operation([1, 2, 3]);
var attempts = 0;
@@ -132,7 +170,7 @@ var retry = require(common.dir.lib + '/retry');
var endTime = new Date().getTime();
var minTime = startTime + (delay * 3);
var maxTime = minTime + 20 // add a little headroom for code execution time
- assert(endTime > minTime)
+ assert(endTime >= minTime)
assert(endTime < maxTime)
assert.strictEqual(attempts, 4);
assert.strictEqual(operation.attempts(), attempts);
@@ -174,3 +212,47 @@ var retry = require(common.dir.lib + '/retry');
fn();
})();
+
+(function testMaxRetryTime() {
+ var error = new Error('some error');
+ var maxRetryTime = 30;
+ var operation = retry.operation({
+ minTimeout: 1,
+ maxRetryTime: maxRetryTime
+ });
+ var attempts = 0;
+
+ var finalCallback = fake.callback('finalCallback');
+ fake.expectAnytime(finalCallback);
+
+ var longAsyncFunction = function (wait, callback){
+ setTimeout(callback, wait);
+ };
+
+ var fn = function() {
+ var startTime = new Date().getTime();
+ operation.attempt(function(currentAttempt) {
+ attempts++;
+ assert.equal(currentAttempt, attempts);
+
+ if (attempts !== 2) {
+ if (operation.retry(error)) {
+ return;
+ }
+ } else {
+ var curTime = new Date().getTime();
+ longAsyncFunction(maxRetryTime - (curTime - startTime - 1), function(){
+ if (operation.retry(error)) {
+ assert.fail('timeout should be occurred');
+ return;
+ }
+
+ assert.strictEqual(operation.mainError(), error);
+ finalCallback();
+ });
+ }
+ });
+ };
+
+ fn();
+})();
diff --git a/deps/npm/node_modules/retry/test/integration/test-retry-wrap.js b/deps/npm/node_modules/retry/test/integration/test-retry-wrap.js
index 7ca8bc7eb5..3d2b6bfa64 100644
--- a/deps/npm/node_modules/retry/test/integration/test-retry-wrap.js
+++ b/deps/npm/node_modules/retry/test/integration/test-retry-wrap.js
@@ -14,17 +14,17 @@ function getLib() {
(function wrapAll() {
var lib = getLib();
retry.wrap(lib);
- assert.equal(lib.fn1.name, 'retryWrapper');
- assert.equal(lib.fn2.name, 'retryWrapper');
- assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn1.name, 'bound retryWrapper');
+ assert.equal(lib.fn2.name, 'bound retryWrapper');
+ assert.equal(lib.fn3.name, 'bound retryWrapper');
}());
(function wrapAllPassOptions() {
var lib = getLib();
retry.wrap(lib, {retries: 2});
- assert.equal(lib.fn1.name, 'retryWrapper');
- assert.equal(lib.fn2.name, 'retryWrapper');
- assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.equal(lib.fn1.name, 'bound retryWrapper');
+ assert.equal(lib.fn2.name, 'bound retryWrapper');
+ assert.equal(lib.fn3.name, 'bound retryWrapper');
assert.equal(lib.fn1.options.retries, 2);
assert.equal(lib.fn2.options.retries, 2);
assert.equal(lib.fn3.options.retries, 2);
@@ -33,17 +33,17 @@ function getLib() {
(function wrapDefined() {
var lib = getLib();
retry.wrap(lib, ['fn2', 'fn3']);
- assert.notEqual(lib.fn1.name, 'retryWrapper');
- assert.equal(lib.fn2.name, 'retryWrapper');
- assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.notEqual(lib.fn1.name, 'bound retryWrapper');
+ assert.equal(lib.fn2.name, 'bound retryWrapper');
+ assert.equal(lib.fn3.name, 'bound retryWrapper');
}());
(function wrapDefinedAndPassOptions() {
var lib = getLib();
retry.wrap(lib, {retries: 2}, ['fn2', 'fn3']);
- assert.notEqual(lib.fn1.name, 'retryWrapper');
- assert.equal(lib.fn2.name, 'retryWrapper');
- assert.equal(lib.fn3.name, 'retryWrapper');
+ assert.notEqual(lib.fn1.name, 'bound retryWrapper');
+ assert.equal(lib.fn2.name, 'bound retryWrapper');
+ assert.equal(lib.fn3.name, 'bound retryWrapper');
assert.equal(lib.fn2.options.retries, 2);
assert.equal(lib.fn3.options.retries, 2);
}());
@@ -63,6 +63,30 @@ function getLib() {
assert.ok(callbackCalled);
}());
+(function runWrappedSeveralWithoutError() {
+ var callbacksCalled = 0;
+ var lib = {
+ fn1: function (a, callback) {
+ assert.equal(a, 1);
+ assert.equal(typeof callback, 'function');
+ callback();
+ },
+ fn2: function (a, callback) {
+ assert.equal(a, 2);
+ assert.equal(typeof callback, 'function');
+ callback();
+ }
+ };
+ retry.wrap(lib, {}, ['fn1', 'fn2']);
+ lib.fn1(1, function() {
+ callbacksCalled++;
+ });
+ lib.fn2(2, function() {
+ callbacksCalled++;
+ });
+ assert.equal(callbacksCalled, 2);
+}());
+
(function runWrappedWithError() {
var callbackCalled;
var lib = {method: function(callback) {
diff --git a/deps/npm/node_modules/rimraf/package.json b/deps/npm/node_modules/rimraf/package.json
index 52dc0f254f..758856bf6f 100644
--- a/deps/npm/node_modules/rimraf/package.json
+++ b/deps/npm/node_modules/rimraf/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "rimraf@2.6.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "rimraf@2.6.2",
"_id": "rimraf@2.6.2",
"_inBundle": false,
@@ -16,21 +22,24 @@
"fetchSpec": "2.6.2"
},
"_requiredBy": [
- "#USER",
"/",
"/cacache",
+ "/copy-concurrently",
+ "/del",
"/fs-vacuum",
+ "/fstream",
+ "/libcipm",
"/libnpx",
"/move-concurrently",
- "/move-concurrently/copy-concurrently",
"/node-gyp",
- "/node-gyp/fstream",
- "/standard/eslint/file-entry-cache/flat-cache/del",
- "/tacks"
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
+ "/pacote",
+ "/tacks",
+ "/tap"
],
"_resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "_shasum": "2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36",
- "_spec": "rimraf@2.6.2",
+ "_spec": "2.6.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -43,11 +52,9 @@
"bugs": {
"url": "https://github.com/isaacs/rimraf/issues"
},
- "bundleDependencies": false,
"dependencies": {
"glob": "^7.0.5"
},
- "deprecated": false,
"description": "A deep deletion module for node (like `rm -rf`)",
"devDependencies": {
"mkdirp": "^0.5.1",
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/run-queue/README.md b/deps/npm/node_modules/run-queue/README.md
index e84214d1f0..e84214d1f0 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/run-queue/README.md
+++ b/deps/npm/node_modules/run-queue/README.md
diff --git a/deps/npm/node_modules/run-queue/package.json b/deps/npm/node_modules/run-queue/package.json
new file mode 100644
index 0000000000..f786a7d437
--- /dev/null
+++ b/deps/npm/node_modules/run-queue/package.json
@@ -0,0 +1,63 @@
+{
+ "_from": "run-queue@^1.0.3",
+ "_id": "run-queue@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=",
+ "_location": "/run-queue",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "run-queue@^1.0.3",
+ "name": "run-queue",
+ "escapedName": "run-queue",
+ "rawSpec": "^1.0.3",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.3"
+ },
+ "_requiredBy": [
+ "/copy-concurrently",
+ "/move-concurrently"
+ ],
+ "_resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz",
+ "_shasum": "e848396f057d223f24386924618e25694161ec47",
+ "_spec": "run-queue@^1.0.3",
+ "_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/iarna/run-queue/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "aproba": "^1.1.1"
+ },
+ "deprecated": false,
+ "description": "A promise based, dynamic priority queue runner, with concurrency limiting.",
+ "devDependencies": {
+ "standard": "^8.6.0",
+ "tap": "^10.2.0"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "files": [
+ "queue.js"
+ ],
+ "homepage": "https://npmjs.com/package/run-queue",
+ "keywords": [],
+ "license": "ISC",
+ "main": "queue.js",
+ "name": "run-queue",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/run-queue.git"
+ },
+ "scripts": {
+ "test": "standard && tap -J test"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/move-concurrently/node_modules/run-queue/queue.js b/deps/npm/node_modules/run-queue/queue.js
index 500bf293d3..500bf293d3 100644
--- a/deps/npm/node_modules/move-concurrently/node_modules/run-queue/queue.js
+++ b/deps/npm/node_modules/run-queue/queue.js
diff --git a/deps/npm/node_modules/safe-buffer/.travis.yml b/deps/npm/node_modules/safe-buffer/.travis.yml
deleted file mode 100644
index 7b20f28cb0..0000000000
--- a/deps/npm/node_modules/safe-buffer/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-language: node_js
-node_js:
- - 'node'
- - '5'
- - '4'
- - '0.12'
- - '0.10'
diff --git a/deps/npm/node_modules/safe-buffer/index.d.ts b/deps/npm/node_modules/safe-buffer/index.d.ts
new file mode 100644
index 0000000000..e9fed809a5
--- /dev/null
+++ b/deps/npm/node_modules/safe-buffer/index.d.ts
@@ -0,0 +1,187 @@
+declare module "safe-buffer" {
+ export class Buffer {
+ length: number
+ write(string: string, offset?: number, length?: number, encoding?: string): number;
+ toString(encoding?: string, start?: number, end?: number): string;
+ toJSON(): { type: 'Buffer', data: any[] };
+ equals(otherBuffer: Buffer): boolean;
+ compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
+ copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
+ slice(start?: number, end?: number): Buffer;
+ writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
+ writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
+ writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
+ writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
+ readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
+ readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
+ readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
+ readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
+ readUInt8(offset: number, noAssert?: boolean): number;
+ readUInt16LE(offset: number, noAssert?: boolean): number;
+ readUInt16BE(offset: number, noAssert?: boolean): number;
+ readUInt32LE(offset: number, noAssert?: boolean): number;
+ readUInt32BE(offset: number, noAssert?: boolean): number;
+ readInt8(offset: number, noAssert?: boolean): number;
+ readInt16LE(offset: number, noAssert?: boolean): number;
+ readInt16BE(offset: number, noAssert?: boolean): number;
+ readInt32LE(offset: number, noAssert?: boolean): number;
+ readInt32BE(offset: number, noAssert?: boolean): number;
+ readFloatLE(offset: number, noAssert?: boolean): number;
+ readFloatBE(offset: number, noAssert?: boolean): number;
+ readDoubleLE(offset: number, noAssert?: boolean): number;
+ readDoubleBE(offset: number, noAssert?: boolean): number;
+ swap16(): Buffer;
+ swap32(): Buffer;
+ swap64(): Buffer;
+ writeUInt8(value: number, offset: number, noAssert?: boolean): number;
+ writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
+ writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
+ writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
+ writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
+ writeInt8(value: number, offset: number, noAssert?: boolean): number;
+ writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
+ writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
+ writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
+ writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
+ writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
+ writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
+ writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
+ writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
+ fill(value: any, offset?: number, end?: number): this;
+ indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
+ lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
+ includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;
+
+ /**
+ * Allocates a new buffer containing the given {str}.
+ *
+ * @param str String to store in buffer.
+ * @param encoding encoding to use, optional. Default is 'utf8'
+ */
+ constructor (str: string, encoding?: string);
+ /**
+ * Allocates a new buffer of {size} octets.
+ *
+ * @param size count of octets to allocate.
+ */
+ constructor (size: number);
+ /**
+ * Allocates a new buffer containing the given {array} of octets.
+ *
+ * @param array The octets to store.
+ */
+ constructor (array: Uint8Array);
+ /**
+ * Produces a Buffer backed by the same allocated memory as
+ * the given {ArrayBuffer}.
+ *
+ *
+ * @param arrayBuffer The ArrayBuffer with which to share memory.
+ */
+ constructor (arrayBuffer: ArrayBuffer);
+ /**
+ * Allocates a new buffer containing the given {array} of octets.
+ *
+ * @param array The octets to store.
+ */
+ constructor (array: any[]);
+ /**
+ * Copies the passed {buffer} data onto a new {Buffer} instance.
+ *
+ * @param buffer The buffer to copy.
+ */
+ constructor (buffer: Buffer);
+ prototype: Buffer;
+ /**
+ * Allocates a new Buffer using an {array} of octets.
+ *
+ * @param array
+ */
+ static from(array: any[]): Buffer;
+ /**
+ * When passed a reference to the .buffer property of a TypedArray instance,
+ * the newly created Buffer will share the same allocated memory as the TypedArray.
+ * The optional {byteOffset} and {length} arguments specify a memory range
+ * within the {arrayBuffer} that will be shared by the Buffer.
+ *
+ * @param arrayBuffer The .buffer property of a TypedArray or a new ArrayBuffer()
+ * @param byteOffset
+ * @param length
+ */
+ static from(arrayBuffer: ArrayBuffer, byteOffset?: number, length?: number): Buffer;
+ /**
+ * Copies the passed {buffer} data onto a new Buffer instance.
+ *
+ * @param buffer
+ */
+ static from(buffer: Buffer): Buffer;
+ /**
+ * Creates a new Buffer containing the given JavaScript string {str}.
+ * If provided, the {encoding} parameter identifies the character encoding.
+ * If not provided, {encoding} defaults to 'utf8'.
+ *
+ * @param str
+ */
+ static from(str: string, encoding?: string): Buffer;
+ /**
+ * Returns true if {obj} is a Buffer
+ *
+ * @param obj object to test.
+ */
+ static isBuffer(obj: any): obj is Buffer;
+ /**
+ * Returns true if {encoding} is a valid encoding argument.
+ * Valid string encodings in Node 0.12: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex'
+ *
+ * @param encoding string to test.
+ */
+ static isEncoding(encoding: string): boolean;
+ /**
+ * Gives the actual byte length of a string. encoding defaults to 'utf8'.
+ * This is not the same as String.prototype.length since that returns the number of characters in a string.
+ *
+ * @param string string to test.
+ * @param encoding encoding used to evaluate (defaults to 'utf8')
+ */
+ static byteLength(string: string, encoding?: string): number;
+ /**
+ * Returns a buffer which is the result of concatenating all the buffers in the list together.
+ *
+ * If the list has no items, or if the totalLength is 0, then it returns a zero-length buffer.
+ * If the list has exactly one item, then the first item of the list is returned.
+ * If the list has more than one item, then a new Buffer is created.
+ *
+ * @param list An array of Buffer objects to concatenate
+ * @param totalLength Total length of the buffers when concatenated.
+ * If totalLength is not provided, it is read from the buffers in the list. However, this adds an additional loop to the function, so it is faster to provide the length explicitly.
+ */
+ static concat(list: Buffer[], totalLength?: number): Buffer;
+ /**
+ * The same as buf1.compare(buf2).
+ */
+ static compare(buf1: Buffer, buf2: Buffer): number;
+ /**
+ * Allocates a new buffer of {size} octets.
+ *
+ * @param size count of octets to allocate.
+ * @param fill if specified, buffer will be initialized by calling buf.fill(fill).
+ * If parameter is omitted, buffer will be filled with zeros.
+ * @param encoding encoding used for call to buf.fill while initalizing
+ */
+ static alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
+ /**
+ * Allocates a new buffer of {size} octets, leaving memory not initialized, so the contents
+ * of the newly created Buffer are unknown and may contain sensitive data.
+ *
+ * @param size count of octets to allocate
+ */
+ static allocUnsafe(size: number): Buffer;
+ /**
+ * Allocates a new non-pooled buffer of {size} octets, leaving memory not initialized, so the contents
+ * of the newly created Buffer are unknown and may contain sensitive data.
+ *
+ * @param size count of octets to allocate
+ */
+ static allocUnsafeSlow(size: number): Buffer;
+ }
+} \ No newline at end of file
diff --git a/deps/npm/node_modules/safe-buffer/package.json b/deps/npm/node_modules/safe-buffer/package.json
index 4b370d9a60..7a8235c14f 100644
--- a/deps/npm/node_modules/safe-buffer/package.json
+++ b/deps/npm/node_modules/safe-buffer/package.json
@@ -1,32 +1,47 @@
{
- "_from": "safe-buffer@5.1.1",
- "_id": "safe-buffer@5.1.1",
+ "_args": [
+ [
+ "safe-buffer@5.1.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "safe-buffer@5.1.2",
+ "_id": "safe-buffer@5.1.2",
"_inBundle": false,
- "_integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==",
+ "_integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"_location": "/safe-buffer",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "safe-buffer@5.1.1",
+ "raw": "safe-buffer@5.1.2",
"name": "safe-buffer",
"escapedName": "safe-buffer",
- "rawSpec": "5.1.1",
+ "rawSpec": "5.1.2",
"saveSpec": null,
- "fetchSpec": "5.1.1"
+ "fetchSpec": "5.1.2"
},
"_requiredBy": [
- "#USER",
"/",
+ "/got",
+ "/libnpx",
+ "/minipass",
+ "/node-fetch-npm",
+ "/npm-profile/ssri",
+ "/npm-registry-client",
+ "/npm-registry-client/ssri",
+ "/npm-registry-fetch",
+ "/npm-registry-fetch/ssri",
"/pacote",
- "/pacote/make-fetch-happen/node-fetch-npm",
"/readable-stream",
- "/readable-stream/string_decoder",
- "/ssri"
+ "/registry-auth-token",
+ "/request",
+ "/string_decoder",
+ "/tar",
+ "/tunnel-agent"
],
- "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "_shasum": "893312af69b2123def71f57889001671eeb2c853",
- "_spec": "safe-buffer@5.1.1",
+ "_resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "_spec": "5.1.2",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Feross Aboukhadijeh",
@@ -36,13 +51,10 @@
"bugs": {
"url": "https://github.com/feross/safe-buffer/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "Safer Node.js Buffer API",
"devDependencies": {
"standard": "*",
- "tape": "^4.0.0",
- "zuul": "^3.0.0"
+ "tape": "^4.0.0"
},
"homepage": "https://github.com/feross/safe-buffer",
"keywords": [
@@ -62,7 +74,8 @@
"url": "git://github.com/feross/safe-buffer.git"
},
"scripts": {
- "test": "standard && tape test.js"
+ "test": "standard && tape test/*.js"
},
- "version": "5.1.1"
+ "types": "index.d.ts",
+ "version": "5.1.2"
}
diff --git a/deps/npm/node_modules/safe-buffer/test.js b/deps/npm/node_modules/safe-buffer/test.js
deleted file mode 100644
index 4925059c5c..0000000000
--- a/deps/npm/node_modules/safe-buffer/test.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/* eslint-disable node/no-deprecated-api */
-
-var test = require('tape')
-var SafeBuffer = require('./').Buffer
-
-test('new SafeBuffer(value) works just like Buffer', function (t) {
- t.deepEqual(new SafeBuffer('hey'), new Buffer('hey'))
- t.deepEqual(new SafeBuffer('hey', 'utf8'), new Buffer('hey', 'utf8'))
- t.deepEqual(new SafeBuffer('686579', 'hex'), new Buffer('686579', 'hex'))
- t.deepEqual(new SafeBuffer([1, 2, 3]), new Buffer([1, 2, 3]))
- t.deepEqual(new SafeBuffer(new Uint8Array([1, 2, 3])), new Buffer(new Uint8Array([1, 2, 3])))
-
- t.equal(typeof SafeBuffer.isBuffer, 'function')
- t.equal(SafeBuffer.isBuffer(new SafeBuffer('hey')), true)
- t.equal(Buffer.isBuffer(new SafeBuffer('hey')), true)
- t.notOk(SafeBuffer.isBuffer({}))
-
- t.end()
-})
-
-test('SafeBuffer.from(value) converts to a Buffer', function (t) {
- t.deepEqual(SafeBuffer.from('hey'), new Buffer('hey'))
- t.deepEqual(SafeBuffer.from('hey', 'utf8'), new Buffer('hey', 'utf8'))
- t.deepEqual(SafeBuffer.from('686579', 'hex'), new Buffer('686579', 'hex'))
- t.deepEqual(SafeBuffer.from([1, 2, 3]), new Buffer([1, 2, 3]))
- t.deepEqual(SafeBuffer.from(new Uint8Array([1, 2, 3])), new Buffer(new Uint8Array([1, 2, 3])))
-
- t.end()
-})
-
-test('SafeBuffer.alloc(number) returns zeroed-out memory', function (t) {
- for (var i = 0; i < 10; i++) {
- var expected1 = new Buffer(1000)
- expected1.fill(0)
- t.deepEqual(SafeBuffer.alloc(1000), expected1)
-
- var expected2 = new Buffer(1000 * 1000)
- expected2.fill(0)
- t.deepEqual(SafeBuffer.alloc(1000 * 1000), expected2)
- }
- t.end()
-})
-
-test('SafeBuffer.allocUnsafe(number)', function (t) {
- var buf = SafeBuffer.allocUnsafe(100) // unitialized memory
- t.equal(buf.length, 100)
- t.equal(SafeBuffer.isBuffer(buf), true)
- t.equal(Buffer.isBuffer(buf), true)
- t.end()
-})
-
-test('SafeBuffer.from() throws with number types', function (t) {
- t.plan(5)
- t.throws(function () {
- SafeBuffer.from(0)
- })
- t.throws(function () {
- SafeBuffer.from(-1)
- })
- t.throws(function () {
- SafeBuffer.from(NaN)
- })
- t.throws(function () {
- SafeBuffer.from(Infinity)
- })
- t.throws(function () {
- SafeBuffer.from(99)
- })
-})
-
-test('SafeBuffer.allocUnsafe() throws with non-number types', function (t) {
- t.plan(4)
- t.throws(function () {
- SafeBuffer.allocUnsafe('hey')
- })
- t.throws(function () {
- SafeBuffer.allocUnsafe('hey', 'utf8')
- })
- t.throws(function () {
- SafeBuffer.allocUnsafe([1, 2, 3])
- })
- t.throws(function () {
- SafeBuffer.allocUnsafe({})
- })
-})
-
-test('SafeBuffer.alloc() throws with non-number types', function (t) {
- t.plan(4)
- t.throws(function () {
- SafeBuffer.alloc('hey')
- })
- t.throws(function () {
- SafeBuffer.alloc('hey', 'utf8')
- })
- t.throws(function () {
- SafeBuffer.alloc([1, 2, 3])
- })
- t.throws(function () {
- SafeBuffer.alloc({})
- })
-})
diff --git a/deps/npm/node_modules/safer-buffer/LICENSE b/deps/npm/node_modules/safer-buffer/LICENSE
new file mode 100644
index 0000000000..4fe9e6f100
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2018 Nikita Skovoroda <chalkerx@gmail.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/safer-buffer/Porting-Buffer.md b/deps/npm/node_modules/safer-buffer/Porting-Buffer.md
new file mode 100644
index 0000000000..68d86bab03
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/Porting-Buffer.md
@@ -0,0 +1,268 @@
+# Porting to the Buffer.from/Buffer.alloc API
+
+<a id="overview"></a>
+## Overview
+
+- [Variant 1: Drop support for Node.js ā‰¤ 4.4.x and 5.0.0 ā€” 5.9.x.](#variant-1) (*recommended*)
+- [Variant 2: Use a polyfill](#variant-2)
+- [Variant 3: manual detection, with safeguards](#variant-3)
+
+### Finding problematic bits of code using grep
+
+Just run `grep -nrE '[^a-zA-Z](Slow)?Buffer\s*\(' --exclude-dir node_modules`.
+
+It will find all the potentially unsafe places in your own code (with some considerably unlikely
+exceptions).
+
+### Finding problematic bits of code using Node.js 8
+
+If youā€™re using Node.js ā‰„ 8.0.0 (which is recommended), Node.js exposes multiple options that help with finding the relevant pieces of code:
+
+- `--trace-warnings` will make Node.js show a stack trace for this warning and other warnings that are printed by Node.js.
+- `--trace-deprecation` does the same thing, but only for deprecation warnings.
+- `--pending-deprecation` will show more types of deprecation warnings. In particular, it will show the `Buffer()` deprecation warning, even on Node.js 8.
+
+You can set these flags using an environment variable:
+
+```console
+$ export NODE_OPTIONS='--trace-warnings --pending-deprecation'
+$ cat example.js
+'use strict';
+const foo = new Buffer('foo');
+$ node example.js
+(node:7147) [DEP0005] DeprecationWarning: The Buffer() and new Buffer() constructors are not recommended for use due to security and usability concerns. Please use the new Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() construction methods instead.
+ at showFlaggedDeprecation (buffer.js:127:13)
+ at new Buffer (buffer.js:148:3)
+ at Object.<anonymous> (/path/to/example.js:2:13)
+ [... more stack trace lines ...]
+```
+
+### Finding problematic bits of code using linters
+
+Eslint rules [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
+or
+[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
+also find calls to deprecated `Buffer()` API. Those rules are included in some pre-sets.
+
+There is a drawback, though, that it doesn't always
+[work correctly](https://github.com/chalker/safer-buffer#why-not-safe-buffer) when `Buffer` is
+overriden e.g. with a polyfill, so recommended is a combination of this and some other method
+described above.
+
+<a id="variant-1"></a>
+## Variant 1: Drop support for Node.js ā‰¤ 4.4.x and 5.0.0 ā€” 5.9.x.
+
+This is the recommended solution nowadays that would imply only minimal overhead.
+
+The Node.js 5.x release line has been unsupported since July 2016, and the Node.js 4.x release line reaches its End of Life in April 2018 (ā†’ [Schedule](https://github.com/nodejs/Release#release-schedule)). This means that these versions of Node.js will *not* receive any updates, even in case of security issues, so using these release lines should be avoided, if at all possible.
+
+What you would do in this case is to convert all `new Buffer()` or `Buffer()` calls to use `Buffer.alloc()` or `Buffer.from()`, in the following way:
+
+- For `new Buffer(number)`, replace it with `Buffer.alloc(number)`.
+- For `new Buffer(string)` (or `new Buffer(string, encoding)`), replace it with `Buffer.from(string)` (or `Buffer.from(string, encoding)`).
+- For all other combinations of arguments (these are much rarer), also replace `new Buffer(...arguments)` with `Buffer.from(...arguments)`.
+
+Note that `Buffer.alloc()` is also _faster_ on the current Node.js versions than
+`new Buffer(size).fill(0)`, which is what you would otherwise need to ensure zero-filling.
+
+Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
+or
+[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
+is recommended to avoid accidential unsafe Buffer API usage.
+
+There is also a [JSCodeshift codemod](https://github.com/joyeecheung/node-dep-codemod#dep005)
+for automatically migrating Buffer constructors to `Buffer.alloc()` or `Buffer.from()`.
+Note that it currently only works with cases where the arguments are literals or where the
+constructor is invoked with two arguments.
+
+_If you currently support those older Node.js versions and dropping them would be a semver-major change
+for you, or if you support older branches of your packages, consider using [Variant 2](#variant-2)
+or [Variant 3](#variant-3) on older branches, so people using those older branches will also receive
+the fix. That way, you will eradicate potential issues caused by unguarded Buffer API usage and
+your users will not observe a runtime deprecation warning when running your code on Node.js 10._
+
+<a id="variant-2"></a>
+## Variant 2: Use a polyfill
+
+Utilize [safer-buffer](https://www.npmjs.com/package/safer-buffer) as a polyfill to support older
+Node.js versions.
+
+You would take exacly the same steps as in [Variant 1](#variant-1), but with a polyfill
+`const Buffer = require('safer-buffer').Buffer` in all files where you use the new `Buffer` api.
+
+Make sure that you do not use old `new Buffer` API ā€” in any files where the line above is added,
+using old `new Buffer()` API will _throw_. It will be easy to notice that in CI, though.
+
+Alternatively, you could use [buffer-from](https://www.npmjs.com/package/buffer-from) and/or
+[buffer-alloc](https://www.npmjs.com/package/buffer-alloc) [ponyfills](https://ponyfill.com/) ā€”
+those are great, the only downsides being 4 deps in the tree and slightly more code changes to
+migrate off them (as you would be using e.g. `Buffer.from` under a different name). If you need only
+`Buffer.from` polyfilled ā€” `buffer-from` alone which comes with no extra dependencies.
+
+_Alternatively, you could use [safe-buffer](https://www.npmjs.com/package/safe-buffer) ā€” it also
+provides a polyfill, but takes a different approach which has
+[it's drawbacks](https://github.com/chalker/safer-buffer#why-not-safe-buffer). It will allow you
+to also use the older `new Buffer()` API in your code, though ā€” but that's arguably a benefit, as
+it is problematic, can cause issues in your code, and will start emitting runtime deprecation
+warnings starting with Node.js 10._
+
+Note that in either case, it is important that you also remove all calls to the old Buffer
+API manually ā€” just throwing in `safe-buffer` doesn't fix the problem by itself, it just provides
+a polyfill for the new API. I have seen people doing that mistake.
+
+Enabling eslint rule [no-buffer-constructor](https://eslint.org/docs/rules/no-buffer-constructor)
+or
+[node/no-deprecated-api](https://github.com/mysticatea/eslint-plugin-node/blob/master/docs/rules/no-deprecated-api.md)
+is recommended.
+
+_Don't forget to drop the polyfill usage once you drop support for Node.js < 4.5.0._
+
+<a id="variant-3"></a>
+## Variant 3 ā€” manual detection, with safeguards
+
+This is useful if you create Buffer instances in only a few places (e.g. one), or you have your own
+wrapper around them.
+
+### Buffer(0)
+
+This special case for creating empty buffers can be safely replaced with `Buffer.concat([])`, which
+returns the same result all the way down to Node.js 0.8.x.
+
+### Buffer(notNumber)
+
+Before:
+
+```js
+var buf = new Buffer(notNumber, encoding);
+```
+
+After:
+
+```js
+var buf;
+if (Buffer.from && Buffer.from !== Uint8Array.from) {
+ buf = Buffer.from(notNumber, encoding);
+} else {
+ if (typeof notNumber === 'number')
+ throw new Error('The "size" argument must be of type number.');
+ buf = new Buffer(notNumber, encoding);
+}
+```
+
+`encoding` is optional.
+
+Note that the `typeof notNumber` before `new Buffer` is required (for cases when `notNumber` argument is not
+hard-coded) and _is not caused by the deprecation of Buffer constructor_ ā€” it's exactly _why_ the
+Buffer constructor is deprecated. Ecosystem packages lacking this type-check caused numereous
+security issues ā€” situations when unsanitized user input could end up in the `Buffer(arg)` create
+problems ranging from DoS to leaking sensitive information to the attacker from the process memory.
+
+When `notNumber` argument is hardcoded (e.g. literal `"abc"` or `[0,1,2]`), the `typeof` check can
+be omitted.
+
+Also note that using TypeScript does not fix this problem for you ā€” when libs written in
+`TypeScript` are used from JS, or when user input ends up there ā€” it behaves exactly as pure JS, as
+all type checks are translation-time only and are not present in the actual JS code which TS
+compiles to.
+
+### Buffer(number)
+
+For Node.js 0.10.x (and below) support:
+
+```js
+var buf;
+if (Buffer.alloc) {
+ buf = Buffer.alloc(number);
+} else {
+ buf = new Buffer(number);
+ buf.fill(0);
+}
+```
+
+Otherwise (Node.js ā‰„ 0.12.x):
+
+```js
+const buf = Buffer.alloc ? Buffer.alloc(number) : new Buffer(number).fill(0);
+```
+
+## Regarding Buffer.allocUnsafe
+
+Be extra cautious when using `Buffer.allocUnsafe`:
+ * Don't use it if you don't have a good reason to
+ * e.g. you probably won't ever see a performance difference for small buffers, in fact, those
+ might be even faster with `Buffer.alloc()`,
+ * if your code is not in the hot code path ā€” you also probably won't notice a difference,
+ * keep in mind that zero-filling minimizes the potential risks.
+ * If you use it, make sure that you never return the buffer in a partially-filled state,
+ * if you are writing to it sequentially ā€” always truncate it to the actuall written length
+
+Errors in handling buffers allocated with `Buffer.allocUnsafe` could result in various issues,
+ranged from undefined behaviour of your code to sensitive data (user input, passwords, certs)
+leaking to the remote attacker.
+
+_Note that the same applies to `new Buffer` usage without zero-filling, depending on the Node.js
+version (and lacking type checks also adds DoS to the list of potential problems)._
+
+<a id="faq"></a>
+## FAQ
+
+<a id="design-flaws"></a>
+### What is wrong with the `Buffer` constructor?
+
+The `Buffer` constructor could be used to create a buffer in many different ways:
+
+- `new Buffer(42)` creates a `Buffer` of 42 bytes. Before Node.js 8, this buffer contained
+ *arbitrary memory* for performance reasons, which could include anything ranging from
+ program source code to passwords and encryption keys.
+- `new Buffer('abc')` creates a `Buffer` that contains the UTF-8-encoded version of
+ the string `'abc'`. A second argument could specify another encoding: For example,
+ `new Buffer(string, 'base64')` could be used to convert a Base64 string into the original
+ sequence of bytes that it represents.
+- There are several other combinations of arguments.
+
+This meant that, in code like `var buffer = new Buffer(foo);`, *it is not possible to tell
+what exactly the contents of the generated buffer are* without knowing the type of `foo`.
+
+Sometimes, the value of `foo` comes from an external source. For example, this function
+could be exposed as a service on a web server, converting a UTF-8 string into its Base64 form:
+
+```
+function stringToBase64(req, res) {
+ // The request body should have the format of `{ string: 'foobar' }`
+ const rawBytes = new Buffer(req.body.string)
+ const encoded = rawBytes.toString('base64')
+ res.end({ encoded: encoded })
+}
+```
+
+Note that this code does *not* validate the type of `req.body.string`:
+
+- `req.body.string` is expected to be a string. If this is the case, all goes well.
+- `req.body.string` is controlled by the client that sends the request.
+- If `req.body.string` is the *number* `50`, the `rawBytes` would be 50 bytes:
+ - Before Node.js 8, the content would be uninitialized
+ - After Node.js 8, the content would be `50` bytes with the value `0`
+
+Because of the missing type check, an attacker could intentionally send a number
+as part of the request. Using this, they can either:
+
+- Read uninitialized memory. This **will** leak passwords, encryption keys and other
+ kinds of sensitive information. (Information leak)
+- Force the program to allocate a large amount of memory. For example, when specifying
+ `500000000` as the input value, each request will allocate 500MB of memory.
+ This can be used to either exhaust the memory available of a program completely
+ and make it crash, or slow it down significantly. (Denial of Service)
+
+Both of these scenarios are considered serious security issues in a real-world
+web server context.
+
+when using `Buffer.from(req.body.string)` instead, passing a number will always
+throw an exception instead, giving a controlled behaviour that can always be
+handled by the program.
+
+<a id="ecosystem-usage"></a>
+### The `Buffer()` constructor has been deprecated for a while. Is this really an issue?
+
+Surveys of code in the `npm` ecosystem have shown that the `Buffer()` constructor is still
+widely used. This includes new code, and overall usage of such code has actually been
+*increasing*.
diff --git a/deps/npm/node_modules/safer-buffer/Readme.md b/deps/npm/node_modules/safer-buffer/Readme.md
new file mode 100644
index 0000000000..14b0822909
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/Readme.md
@@ -0,0 +1,156 @@
+# safer-buffer [![travis][travis-image]][travis-url] [![npm][npm-image]][npm-url] [![javascript style guide][standard-image]][standard-url] [![Security Responsible Disclosure][secuirty-image]][secuirty-url]
+
+[travis-image]: https://travis-ci.org/ChALkeR/safer-buffer.svg?branch=master
+[travis-url]: https://travis-ci.org/ChALkeR/safer-buffer
+[npm-image]: https://img.shields.io/npm/v/safer-buffer.svg
+[npm-url]: https://npmjs.org/package/safer-buffer
+[standard-image]: https://img.shields.io/badge/code_style-standard-brightgreen.svg
+[standard-url]: https://standardjs.com
+[secuirty-image]: https://img.shields.io/badge/Security-Responsible%20Disclosure-green.svg
+[secuirty-url]: https://github.com/nodejs/security-wg/blob/master/processes/responsible_disclosure_template.md
+
+Modern Buffer API polyfill without footguns, working on Node.js from 0.8 to current.
+
+## How to use?
+
+First, port all `Buffer()` and `new Buffer()` calls to `Buffer.alloc()` and `Buffer.from()` API.
+
+Then, to achieve compatibility with outdated Node.js versions (`<4.5.0` and 5.x `<5.9.0`), use
+`const Buffer = require('safer-buffer').Buffer` in all files where you make calls to the new
+Buffer API. _Use `var` instead of `const` if you need that for your Node.js version range support._
+
+Also, see the
+[porting Buffer](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md) guide.
+
+## Do I need it?
+
+Hopefully, not ā€” dropping support for outdated Node.js versions should be fine nowdays, and that
+is the recommended path forward. You _do_ need to port to the `Buffer.alloc()` and `Buffer.from()`
+though.
+
+See the [porting guide](https://github.com/ChALkeR/safer-buffer/blob/master/Porting-Buffer.md)
+for a better description.
+
+## Why not [safe-buffer](https://npmjs.com/safe-buffer)?
+
+_In short: while `safe-buffer` serves as a polyfill for the new API, it allows old API usage and
+itself contains footguns._
+
+`safe-buffer` could be used safely to get the new API while still keeping support for older
+Node.js versions (like this module), but while analyzing ecosystem usage of the old Buffer API
+I found out that `safe-buffer` is itself causing problems in some cases.
+
+For example, consider the following snippet:
+
+```console
+$ cat example.unsafe.js
+console.log(Buffer(20))
+$ ./node-v6.13.0-linux-x64/bin/node example.unsafe.js
+<Buffer 0a 00 00 00 00 00 00 00 28 13 de 02 00 00 00 00 05 00 00 00>
+$ standard example.unsafe.js
+standard: Use JavaScript Standard Style (https://standardjs.com)
+ /home/chalker/repo/safer-buffer/example.unsafe.js:2:13: 'Buffer()' was deprecated since v6. Use 'Buffer.alloc()' or 'Buffer.from()' (use 'https://www.npmjs.com/package/safe-buffer' for '<4.5.0') instead.
+```
+
+This is allocates and writes to console an uninitialized chunk of memory.
+[standard](https://www.npmjs.com/package/standard) linter (among others) catch that and warn people
+to avoid using unsafe API.
+
+Let's now throw in `safe-buffer`!
+
+```console
+$ cat example.safe-buffer.js
+const Buffer = require('safe-buffer').Buffer
+console.log(Buffer(20))
+$ standard example.safe-buffer.js
+$ ./node-v6.13.0-linux-x64/bin/node example.safe-buffer.js
+<Buffer 08 00 00 00 00 00 00 00 28 58 01 82 fe 7f 00 00 00 00 00 00>
+```
+
+See the problem? Adding in `safe-buffer` _magically removes the lint warning_, but the behavior
+remains identiсal to what we had before, and when launched on Node.js 6.x LTS ā€” this dumps out
+chunks of uninitialized memory.
+_And this code will still emit runtime warnings on Node.js 10.x and above._
+
+That was done by design. I first considered changing `safe-buffer`, prohibiting old API usage or
+emitting warnings on it, but that significantly diverges from `safe-buffer` design. After some
+discussion, it was decided to move my approach into a separate package, and _this is that separate
+package_.
+
+This footgun is not imaginary ā€” I observed top-downloaded packages doing that kind of thing,
+Ā«fixingĀ» the lint warning by blindly including `safe-buffer` without any actual changes.
+
+Also in some cases, even if the API _was_ migrated to use of safe Buffer API ā€” a random pull request
+can bring unsafe Buffer API usage back to the codebase by adding new calls ā€” and that could go
+unnoticed even if you have a linter prohibiting that (becase of the reason stated above), and even
+pass CI. _I also observed that being done in popular packages._
+
+Some examples:
+ * [webdriverio](https://github.com/webdriverio/webdriverio/commit/05cbd3167c12e4930f09ef7cf93b127ba4effae4#diff-124380949022817b90b622871837d56cR31)
+ (a module with 548 759 downloads/month),
+ * [websocket-stream](https://github.com/maxogden/websocket-stream/commit/c9312bd24d08271687d76da0fe3c83493871cf61)
+ (218 288 d/m, fix in [maxogden/websocket-stream#142](https://github.com/maxogden/websocket-stream/pull/142)),
+ * [node-serialport](https://github.com/node-serialport/node-serialport/commit/e8d9d2b16c664224920ce1c895199b1ce2def48c)
+ (113 138 d/m, fix in [node-serialport/node-serialport#1510](https://github.com/node-serialport/node-serialport/pull/1510)),
+ * [karma](https://github.com/karma-runner/karma/commit/3d94b8cf18c695104ca195334dc75ff054c74eec)
+ (3 973 193 d/m, fix in [karma-runner/karma#2947](https://github.com/karma-runner/karma/pull/2947)),
+ * [spdy-transport](https://github.com/spdy-http2/spdy-transport/commit/5375ac33f4a62a4f65bcfc2827447d42a5dbe8b1)
+ (5 970 727 d/m, fix in [spdy-http2/spdy-transport#53](https://github.com/spdy-http2/spdy-transport/pull/53)).
+ * And there are a lot more over the ecosystem.
+
+I filed a PR at
+[mysticatea/eslint-plugin-node#110](https://github.com/mysticatea/eslint-plugin-node/pull/110) to
+partially fix that (for cases when that lint rule is used), but it is a semver-major change for
+linter rules and presets, so it would take significant time for that to reach actual setups.
+_It also hasn't been released yet (2018-03-20)._
+
+Also, `safer-buffer` discourages the usage of `.allocUnsafe()`, which is often done by a mistake.
+It still supports it with an explicit concern barier, by placing it under
+`require('safer-buffer/dangereous')`.
+
+## But isn't throwing bad?
+
+Not really. It's an error that could be noticed and fixed early, instead of causing havoc later like
+unguarded `new Buffer()` calls that end up receiving user input can do.
+
+This package affects only the files where `var Buffer = require('safer-buffer').Buffer` was done, so
+it is really simple to keep track of things and make sure that you don't mix old API usage with that.
+Also, CI should hint anything that you might have missed.
+
+New commits, if tested, won't land new usage of unsafe Buffer API this way.
+_Node.js 10.x also deals with that by printing a runtime depecation warning._
+
+### Would it affect third-party modules?
+
+No, unless you explicitly do an awful thing like monkey-patching or overriding the built-in `Buffer`.
+Don't do that.
+
+### But I don't want throwingā€¦
+
+That is also fine!
+
+Also, it could be better in some cases when you don't comprehensive enough test coverage.
+
+In that case ā€” just don't override `Buffer` and use
+`var SaferBuffer = require('safer-buffer').Buffer` instead.
+
+That way, everything using `Buffer` natively would still work, but there would be two drawbacks:
+
+* `Buffer.from`/`Buffer.alloc` won't be polyfilled ā€” use `SaferBuffer.from` and
+ `SaferBuffer.alloc` instead.
+* You are still open to accidentally using the insecure deprecated API ā€” use a linter to catch that.
+
+Note that using a linter to catch accidential `Buffer` constructor usage in this case is strongly
+recommended. `Buffer` is not overriden in this usecase, so linters won't get confused.
+
+## Ā«Without footgunsĀ»?
+
+Well, it is still possible to do _some_ things with `Buffer` API, e.g. accessing `.buffer` property
+on older versions and duping things from there. You shouldn't do that in your code, probabably.
+
+The intention is to remove the most significant footguns that affect lots of packages in the
+ecosystem, and to do it in the proper way.
+
+Also, this package doesn't protect against security issues affecting some Node.js versions, so for
+usage in your own production code, it is still recommended to update to a Node.js version
+[supported by upstream](https://github.com/nodejs/release#release-schedule).
diff --git a/deps/npm/node_modules/safer-buffer/dangerous.js b/deps/npm/node_modules/safer-buffer/dangerous.js
new file mode 100644
index 0000000000..ca41fdc549
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/dangerous.js
@@ -0,0 +1,58 @@
+/* eslint-disable node/no-deprecated-api */
+
+'use strict'
+
+var buffer = require('buffer')
+var Buffer = buffer.Buffer
+var safer = require('./safer.js')
+var Safer = safer.Buffer
+
+var dangerous = {}
+
+var key
+
+for (key in safer) {
+ if (!safer.hasOwnProperty(key)) continue
+ dangerous[key] = safer[key]
+}
+
+var Dangereous = dangerous.Buffer = {}
+
+// Copy Safer API
+for (key in Safer) {
+ if (!Safer.hasOwnProperty(key)) continue
+ Dangereous[key] = Safer[key]
+}
+
+// Copy those missing unsafe methods, if they are present
+for (key in Buffer) {
+ if (!Buffer.hasOwnProperty(key)) continue
+ if (Dangereous.hasOwnProperty(key)) continue
+ Dangereous[key] = Buffer[key]
+}
+
+if (!Dangereous.allocUnsafe) {
+ Dangereous.allocUnsafe = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
+ }
+ if (size < 0 || size >= 2 * (1 << 30)) {
+ throw new RangeError('The value "' + size + '" is invalid for option "size"')
+ }
+ return Buffer(size)
+ }
+}
+
+if (!Dangereous.allocUnsafeSlow) {
+ Dangereous.allocUnsafeSlow = function (size) {
+ if (typeof size !== 'number') {
+ throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
+ }
+ if (size < 0 || size >= 2 * (1 << 30)) {
+ throw new RangeError('The value "' + size + '" is invalid for option "size"')
+ }
+ return buffer.SlowBuffer(size)
+ }
+}
+
+module.exports = dangerous
diff --git a/deps/npm/node_modules/safer-buffer/package.json b/deps/npm/node_modules/safer-buffer/package.json
new file mode 100644
index 0000000000..a017e4b7f0
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/package.json
@@ -0,0 +1,60 @@
+{
+ "_from": "safer-buffer@>= 2.1.2 < 3",
+ "_id": "safer-buffer@2.1.2",
+ "_inBundle": false,
+ "_integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "_location": "/safer-buffer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "safer-buffer@>= 2.1.2 < 3",
+ "name": "safer-buffer",
+ "escapedName": "safer-buffer",
+ "rawSpec": ">= 2.1.2 < 3",
+ "saveSpec": null,
+ "fetchSpec": ">= 2.1.2 < 3"
+ },
+ "_requiredBy": [
+ "/iconv-lite"
+ ],
+ "_resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "_shasum": "44fa161b0187b9549dd84bb91802f9bd8385cd6a",
+ "_spec": "safer-buffer@>= 2.1.2 < 3",
+ "_where": "/Users/rebecca/code/npm/node_modules/iconv-lite",
+ "author": {
+ "name": "Nikita Skovoroda",
+ "email": "chalkerx@gmail.com",
+ "url": "https://github.com/ChALkeR"
+ },
+ "bugs": {
+ "url": "https://github.com/ChALkeR/safer-buffer/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Modern Buffer API polyfill without footguns",
+ "devDependencies": {
+ "standard": "^11.0.1",
+ "tape": "^4.9.0"
+ },
+ "files": [
+ "Porting-Buffer.md",
+ "Readme.md",
+ "tests.js",
+ "dangerous.js",
+ "safer.js"
+ ],
+ "homepage": "https://github.com/ChALkeR/safer-buffer#readme",
+ "license": "MIT",
+ "main": "safer.js",
+ "name": "safer-buffer",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/ChALkeR/safer-buffer.git"
+ },
+ "scripts": {
+ "browserify-test": "browserify --external tape tests.js > browserify-tests.js && tape browserify-tests.js",
+ "test": "standard && tape tests.js"
+ },
+ "version": "2.1.2"
+}
diff --git a/deps/npm/node_modules/safer-buffer/safer.js b/deps/npm/node_modules/safer-buffer/safer.js
new file mode 100644
index 0000000000..37c7e1aa6c
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/safer.js
@@ -0,0 +1,77 @@
+/* eslint-disable node/no-deprecated-api */
+
+'use strict'
+
+var buffer = require('buffer')
+var Buffer = buffer.Buffer
+
+var safer = {}
+
+var key
+
+for (key in buffer) {
+ if (!buffer.hasOwnProperty(key)) continue
+ if (key === 'SlowBuffer' || key === 'Buffer') continue
+ safer[key] = buffer[key]
+}
+
+var Safer = safer.Buffer = {}
+for (key in Buffer) {
+ if (!Buffer.hasOwnProperty(key)) continue
+ if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue
+ Safer[key] = Buffer[key]
+}
+
+safer.Buffer.prototype = Buffer.prototype
+
+if (!Safer.from || Safer.from === Uint8Array.from) {
+ Safer.from = function (value, encodingOrOffset, length) {
+ if (typeof value === 'number') {
+ throw new TypeError('The "value" argument must not be of type number. Received type ' + typeof value)
+ }
+ if (value && typeof value.length === 'undefined') {
+ throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)
+ }
+ return Buffer(value, encodingOrOffset, length)
+ }
+}
+
+if (!Safer.alloc) {
+ Safer.alloc = function (size, fill, encoding) {
+ if (typeof size !== 'number') {
+ throw new TypeError('The "size" argument must be of type number. Received type ' + typeof size)
+ }
+ if (size < 0 || size >= 2 * (1 << 30)) {
+ throw new RangeError('The value "' + size + '" is invalid for option "size"')
+ }
+ var buf = Buffer(size)
+ if (!fill || fill.length === 0) {
+ buf.fill(0)
+ } else if (typeof encoding === 'string') {
+ buf.fill(fill, encoding)
+ } else {
+ buf.fill(fill)
+ }
+ return buf
+ }
+}
+
+if (!safer.kStringMaxLength) {
+ try {
+ safer.kStringMaxLength = process.binding('buffer').kStringMaxLength
+ } catch (e) {
+ // we can't determine kStringMaxLength in environments where process.binding
+ // is unsupported, so let's not set it
+ }
+}
+
+if (!safer.constants) {
+ safer.constants = {
+ MAX_LENGTH: safer.kMaxLength
+ }
+ if (safer.kStringMaxLength) {
+ safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength
+ }
+}
+
+module.exports = safer
diff --git a/deps/npm/node_modules/safer-buffer/tests.js b/deps/npm/node_modules/safer-buffer/tests.js
new file mode 100644
index 0000000000..7ed2777c92
--- /dev/null
+++ b/deps/npm/node_modules/safer-buffer/tests.js
@@ -0,0 +1,406 @@
+/* eslint-disable node/no-deprecated-api */
+
+'use strict'
+
+var test = require('tape')
+
+var buffer = require('buffer')
+
+var index = require('./')
+var safer = require('./safer')
+var dangerous = require('./dangerous')
+
+/* Inheritance tests */
+
+test('Default is Safer', function (t) {
+ t.equal(index, safer)
+ t.notEqual(safer, dangerous)
+ t.notEqual(index, dangerous)
+ t.end()
+})
+
+test('Is not a function', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(typeof impl, 'object')
+ t.equal(typeof impl.Buffer, 'object')
+ });
+ [buffer].forEach(function (impl) {
+ t.equal(typeof impl, 'object')
+ t.equal(typeof impl.Buffer, 'function')
+ })
+ t.end()
+})
+
+test('Constructor throws', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.throws(function () { impl.Buffer() })
+ t.throws(function () { impl.Buffer(0) })
+ t.throws(function () { impl.Buffer('a') })
+ t.throws(function () { impl.Buffer('a', 'utf-8') })
+ t.throws(function () { return new impl.Buffer() })
+ t.throws(function () { return new impl.Buffer(0) })
+ t.throws(function () { return new impl.Buffer('a') })
+ t.throws(function () { return new impl.Buffer('a', 'utf-8') })
+ })
+ t.end()
+})
+
+test('Safe methods exist', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(typeof impl.Buffer.alloc, 'function', 'alloc')
+ t.equal(typeof impl.Buffer.from, 'function', 'from')
+ })
+ t.end()
+})
+
+test('Unsafe methods exist only in Dangerous', function (t) {
+ [index, safer].forEach(function (impl) {
+ t.equal(typeof impl.Buffer.allocUnsafe, 'undefined')
+ t.equal(typeof impl.Buffer.allocUnsafeSlow, 'undefined')
+ });
+ [dangerous].forEach(function (impl) {
+ t.equal(typeof impl.Buffer.allocUnsafe, 'function')
+ t.equal(typeof impl.Buffer.allocUnsafeSlow, 'function')
+ })
+ t.end()
+})
+
+test('Generic methods/properties are defined and equal', function (t) {
+ ['poolSize', 'isBuffer', 'concat', 'byteLength'].forEach(function (method) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer[method], buffer.Buffer[method], method)
+ t.notEqual(typeof impl.Buffer[method], 'undefined', method)
+ })
+ })
+ t.end()
+})
+
+test('Built-in buffer static methods/properties are inherited', function (t) {
+ Object.keys(buffer).forEach(function (method) {
+ if (method === 'SlowBuffer' || method === 'Buffer') return;
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl[method], buffer[method], method)
+ t.notEqual(typeof impl[method], 'undefined', method)
+ })
+ })
+ t.end()
+})
+
+test('Built-in Buffer static methods/properties are inherited', function (t) {
+ Object.keys(buffer.Buffer).forEach(function (method) {
+ if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return;
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer[method], buffer.Buffer[method], method)
+ t.notEqual(typeof impl.Buffer[method], 'undefined', method)
+ })
+ })
+ t.end()
+})
+
+test('.prototype property of Buffer is inherited', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer.prototype, buffer.Buffer.prototype, 'prototype')
+ t.notEqual(typeof impl.Buffer.prototype, 'undefined', 'prototype')
+ })
+ t.end()
+})
+
+test('All Safer methods are present in Dangerous', function (t) {
+ Object.keys(safer).forEach(function (method) {
+ if (method === 'Buffer') return;
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl[method], safer[method], method)
+ if (method !== 'kStringMaxLength') {
+ t.notEqual(typeof impl[method], 'undefined', method)
+ }
+ })
+ })
+ Object.keys(safer.Buffer).forEach(function (method) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer[method], safer.Buffer[method], method)
+ t.notEqual(typeof impl.Buffer[method], 'undefined', method)
+ })
+ })
+ t.end()
+})
+
+test('Safe methods from Dangerous methods are present in Safer', function (t) {
+ Object.keys(dangerous).forEach(function (method) {
+ if (method === 'Buffer') return;
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl[method], dangerous[method], method)
+ if (method !== 'kStringMaxLength') {
+ t.notEqual(typeof impl[method], 'undefined', method)
+ }
+ })
+ })
+ Object.keys(dangerous.Buffer).forEach(function (method) {
+ if (method === 'allocUnsafe' || method === 'allocUnsafeSlow') return;
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer[method], dangerous.Buffer[method], method)
+ t.notEqual(typeof impl.Buffer[method], 'undefined', method)
+ })
+ })
+ t.end()
+})
+
+/* Behaviour tests */
+
+test('Methods return Buffers', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0)))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 10)))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(0, 'a')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10)))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(10, 'x')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.alloc(9, 'ab')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('string', 'utf-8')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64')))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([0, 42, 3])))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from(new Uint8Array([0, 42, 3]))))
+ t.ok(buffer.Buffer.isBuffer(impl.Buffer.from([])))
+ });
+ ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
+ t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](0)))
+ t.ok(buffer.Buffer.isBuffer(dangerous.Buffer[method](10)))
+ })
+ t.end()
+})
+
+test('Constructor is buffer.Buffer', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer.alloc(0).constructor, buffer.Buffer)
+ t.equal(impl.Buffer.alloc(0, 10).constructor, buffer.Buffer)
+ t.equal(impl.Buffer.alloc(0, 'a').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.alloc(10).constructor, buffer.Buffer)
+ t.equal(impl.Buffer.alloc(10, 'x').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.alloc(9, 'ab').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from('').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from('string').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from('string', 'utf-8').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from([0, 42, 3]).constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).constructor, buffer.Buffer)
+ t.equal(impl.Buffer.from([]).constructor, buffer.Buffer)
+ });
+ [0, 10, 100].forEach(function (arg) {
+ t.equal(dangerous.Buffer.allocUnsafe(arg).constructor, buffer.Buffer)
+ t.equal(dangerous.Buffer.allocUnsafeSlow(arg).constructor, buffer.SlowBuffer(0).constructor)
+ })
+ t.end()
+})
+
+test('Invalid calls throw', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.throws(function () { impl.Buffer.from(0) })
+ t.throws(function () { impl.Buffer.from(10) })
+ t.throws(function () { impl.Buffer.from(10, 'utf-8') })
+ t.throws(function () { impl.Buffer.from('string', 'invalid encoding') })
+ t.throws(function () { impl.Buffer.from(-10) })
+ t.throws(function () { impl.Buffer.from(1e90) })
+ t.throws(function () { impl.Buffer.from(Infinity) })
+ t.throws(function () { impl.Buffer.from(-Infinity) })
+ t.throws(function () { impl.Buffer.from(NaN) })
+ t.throws(function () { impl.Buffer.from(null) })
+ t.throws(function () { impl.Buffer.from(undefined) })
+ t.throws(function () { impl.Buffer.from() })
+ t.throws(function () { impl.Buffer.from({}) })
+ t.throws(function () { impl.Buffer.alloc('') })
+ t.throws(function () { impl.Buffer.alloc('string') })
+ t.throws(function () { impl.Buffer.alloc('string', 'utf-8') })
+ t.throws(function () { impl.Buffer.alloc('b25ldHdvdGhyZWU=', 'base64') })
+ t.throws(function () { impl.Buffer.alloc(-10) })
+ t.throws(function () { impl.Buffer.alloc(1e90) })
+ t.throws(function () { impl.Buffer.alloc(2 * (1 << 30)) })
+ t.throws(function () { impl.Buffer.alloc(Infinity) })
+ t.throws(function () { impl.Buffer.alloc(-Infinity) })
+ t.throws(function () { impl.Buffer.alloc(null) })
+ t.throws(function () { impl.Buffer.alloc(undefined) })
+ t.throws(function () { impl.Buffer.alloc() })
+ t.throws(function () { impl.Buffer.alloc([]) })
+ t.throws(function () { impl.Buffer.alloc([0, 42, 3]) })
+ t.throws(function () { impl.Buffer.alloc({}) })
+ });
+ ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
+ t.throws(function () { dangerous.Buffer[method]('') })
+ t.throws(function () { dangerous.Buffer[method]('string') })
+ t.throws(function () { dangerous.Buffer[method]('string', 'utf-8') })
+ t.throws(function () { dangerous.Buffer[method](2 * (1 << 30)) })
+ t.throws(function () { dangerous.Buffer[method](Infinity) })
+ if (dangerous.Buffer[method] === buffer.Buffer.allocUnsafe) {
+ t.skip('Skipping, older impl of allocUnsafe coerced negative sizes to 0')
+ } else {
+ t.throws(function () { dangerous.Buffer[method](-10) })
+ t.throws(function () { dangerous.Buffer[method](-1e90) })
+ t.throws(function () { dangerous.Buffer[method](-Infinity) })
+ }
+ t.throws(function () { dangerous.Buffer[method](null) })
+ t.throws(function () { dangerous.Buffer[method](undefined) })
+ t.throws(function () { dangerous.Buffer[method]() })
+ t.throws(function () { dangerous.Buffer[method]([]) })
+ t.throws(function () { dangerous.Buffer[method]([0, 42, 3]) })
+ t.throws(function () { dangerous.Buffer[method]({}) })
+ })
+ t.end()
+})
+
+test('Buffers have appropriate lengths', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.equal(impl.Buffer.alloc(0).length, 0)
+ t.equal(impl.Buffer.alloc(10).length, 10)
+ t.equal(impl.Buffer.from('').length, 0)
+ t.equal(impl.Buffer.from('string').length, 6)
+ t.equal(impl.Buffer.from('string', 'utf-8').length, 6)
+ t.equal(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64').length, 11)
+ t.equal(impl.Buffer.from([0, 42, 3]).length, 3)
+ t.equal(impl.Buffer.from(new Uint8Array([0, 42, 3])).length, 3)
+ t.equal(impl.Buffer.from([]).length, 0)
+ });
+ ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
+ t.equal(dangerous.Buffer[method](0).length, 0)
+ t.equal(dangerous.Buffer[method](10).length, 10)
+ })
+ t.end()
+})
+
+test('Buffers have appropriate lengths (2)', function (t) {
+ t.equal(index.Buffer.alloc, safer.Buffer.alloc)
+ t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
+ var ok = true;
+ [ safer.Buffer.alloc,
+ dangerous.Buffer.allocUnsafe,
+ dangerous.Buffer.allocUnsafeSlow
+ ].forEach(function (method) {
+ for (var i = 0; i < 1e2; i++) {
+ var length = Math.round(Math.random() * 1e5)
+ var buf = method(length)
+ if (!buffer.Buffer.isBuffer(buf)) ok = false
+ if (buf.length !== length) ok = false
+ }
+ })
+ t.ok(ok)
+ t.end()
+})
+
+test('.alloc(size) is zero-filled and has correct length', function (t) {
+ t.equal(index.Buffer.alloc, safer.Buffer.alloc)
+ t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
+ var ok = true
+ for (var i = 0; i < 1e2; i++) {
+ var length = Math.round(Math.random() * 2e6)
+ var buf = index.Buffer.alloc(length)
+ if (!buffer.Buffer.isBuffer(buf)) ok = false
+ if (buf.length !== length) ok = false
+ var j
+ for (j = 0; j < length; j++) {
+ if (buf[j] !== 0) ok = false
+ }
+ buf.fill(1)
+ for (j = 0; j < length; j++) {
+ if (buf[j] !== 1) ok = false
+ }
+ }
+ t.ok(ok)
+ t.end()
+})
+
+test('.allocUnsafe / .allocUnsafeSlow are fillable and have correct lengths', function (t) {
+ ['allocUnsafe', 'allocUnsafeSlow'].forEach(function (method) {
+ var ok = true
+ for (var i = 0; i < 1e2; i++) {
+ var length = Math.round(Math.random() * 2e6)
+ var buf = dangerous.Buffer[method](length)
+ if (!buffer.Buffer.isBuffer(buf)) ok = false
+ if (buf.length !== length) ok = false
+ buf.fill(0, 0, length)
+ var j
+ for (j = 0; j < length; j++) {
+ if (buf[j] !== 0) ok = false
+ }
+ buf.fill(1, 0, length)
+ for (j = 0; j < length; j++) {
+ if (buf[j] !== 1) ok = false
+ }
+ }
+ t.ok(ok, method)
+ })
+ t.end()
+})
+
+test('.alloc(size, fill) is `fill`-filled', function (t) {
+ t.equal(index.Buffer.alloc, safer.Buffer.alloc)
+ t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
+ var ok = true
+ for (var i = 0; i < 1e2; i++) {
+ var length = Math.round(Math.random() * 2e6)
+ var fill = Math.round(Math.random() * 255)
+ var buf = index.Buffer.alloc(length, fill)
+ if (!buffer.Buffer.isBuffer(buf)) ok = false
+ if (buf.length !== length) ok = false
+ for (var j = 0; j < length; j++) {
+ if (buf[j] !== fill) ok = false
+ }
+ }
+ t.ok(ok)
+ t.end()
+})
+
+test('.alloc(size, fill) is `fill`-filled', function (t) {
+ t.equal(index.Buffer.alloc, safer.Buffer.alloc)
+ t.equal(index.Buffer.alloc, dangerous.Buffer.alloc)
+ var ok = true
+ for (var i = 0; i < 1e2; i++) {
+ var length = Math.round(Math.random() * 2e6)
+ var fill = Math.round(Math.random() * 255)
+ var buf = index.Buffer.alloc(length, fill)
+ if (!buffer.Buffer.isBuffer(buf)) ok = false
+ if (buf.length !== length) ok = false
+ for (var j = 0; j < length; j++) {
+ if (buf[j] !== fill) ok = false
+ }
+ }
+ t.ok(ok)
+ t.deepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 97))
+ t.notDeepEqual(index.Buffer.alloc(9, 'a'), index.Buffer.alloc(9, 98))
+
+ var tmp = new buffer.Buffer(2)
+ tmp.fill('ok')
+ if (tmp[1] === tmp[0]) {
+ // Outdated Node.js
+ t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('ooooo'))
+ } else {
+ t.deepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('okoko'))
+ }
+ t.notDeepEqual(index.Buffer.alloc(5, 'ok'), index.Buffer.from('kokok'))
+
+ t.end()
+})
+
+test('safer.Buffer.from returns results same as Buffer constructor', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.deepEqual(impl.Buffer.from(''), new buffer.Buffer(''))
+ t.deepEqual(impl.Buffer.from('string'), new buffer.Buffer('string'))
+ t.deepEqual(impl.Buffer.from('string', 'utf-8'), new buffer.Buffer('string', 'utf-8'))
+ t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), new buffer.Buffer('b25ldHdvdGhyZWU=', 'base64'))
+ t.deepEqual(impl.Buffer.from([0, 42, 3]), new buffer.Buffer([0, 42, 3]))
+ t.deepEqual(impl.Buffer.from(new Uint8Array([0, 42, 3])), new buffer.Buffer(new Uint8Array([0, 42, 3])))
+ t.deepEqual(impl.Buffer.from([]), new buffer.Buffer([]))
+ })
+ t.end()
+})
+
+test('safer.Buffer.from returns consistent results', function (t) {
+ [index, safer, dangerous].forEach(function (impl) {
+ t.deepEqual(impl.Buffer.from(''), impl.Buffer.alloc(0))
+ t.deepEqual(impl.Buffer.from([]), impl.Buffer.alloc(0))
+ t.deepEqual(impl.Buffer.from(new Uint8Array([])), impl.Buffer.alloc(0))
+ t.deepEqual(impl.Buffer.from('string', 'utf-8'), impl.Buffer.from('string'))
+ t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from([115, 116, 114, 105, 110, 103]))
+ t.deepEqual(impl.Buffer.from('string'), impl.Buffer.from(impl.Buffer.from('string')))
+ t.deepEqual(impl.Buffer.from('b25ldHdvdGhyZWU=', 'base64'), impl.Buffer.from('onetwothree'))
+ t.notDeepEqual(impl.Buffer.from('b25ldHdvdGhyZWU='), impl.Buffer.from('onetwothree'))
+ })
+ t.end()
+})
diff --git a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/index.js b/deps/npm/node_modules/semver-diff/index.js
index 92c9c9700a..92c9c9700a 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/index.js
+++ b/deps/npm/node_modules/semver-diff/index.js
diff --git a/deps/npm/node_modules/osenv/node_modules/os-homedir/license b/deps/npm/node_modules/semver-diff/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-homedir/license
+++ b/deps/npm/node_modules/semver-diff/license
diff --git a/deps/npm/node_modules/semver-diff/package.json b/deps/npm/node_modules/semver-diff/package.json
new file mode 100644
index 0000000000..05ad451e3c
--- /dev/null
+++ b/deps/npm/node_modules/semver-diff/package.json
@@ -0,0 +1,66 @@
+{
+ "_from": "semver-diff@^2.0.0",
+ "_id": "semver-diff@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
+ "_location": "/semver-diff",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "semver-diff@^2.0.0",
+ "name": "semver-diff",
+ "escapedName": "semver-diff",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
+ "_shasum": "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36",
+ "_spec": "semver-diff@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/update-notifier",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "http://sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/semver-diff/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "semver": "^5.0.3"
+ },
+ "deprecated": false,
+ "description": "Get the diff type of two semver versions: 0.0.1 0.0.2 ā†’ patch",
+ "devDependencies": {
+ "mocha": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/semver-diff#readme",
+ "keywords": [
+ "semver",
+ "version",
+ "semantic",
+ "diff",
+ "difference"
+ ],
+ "license": "MIT",
+ "name": "semver-diff",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/semver-diff.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/readme.md b/deps/npm/node_modules/semver-diff/readme.md
index 06a172f16a..06a172f16a 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/readme.md
+++ b/deps/npm/node_modules/semver-diff/readme.md
diff --git a/deps/npm/node_modules/semver/README.md b/deps/npm/node_modules/semver/README.md
index fd5151ab37..951c53956a 100644
--- a/deps/npm/node_modules/semver/README.md
+++ b/deps/npm/node_modules/semver/README.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/node_modules/semver/bin/semver b/deps/npm/node_modules/semver/bin/semver
index c5f2e857e8..dddbcdf118 100755
--- a/deps/npm/node_modules/semver/bin/semver
+++ b/deps/npm/node_modules/semver/bin/semver
@@ -12,6 +12,7 @@ var argv = process.argv.slice(2)
, inc = null
, version = require("../package.json").version
, loose = false
+ , coerce = false
, identifier = undefined
, semver = require("../semver")
, reverse = false
@@ -54,6 +55,9 @@ function main () {
case "-r": case "--range":
range.push(argv.shift())
break
+ case "-c": case "--coerce":
+ coerce = true
+ break
case "-h": case "--help": case "-?":
return help()
default:
@@ -62,8 +66,10 @@ function main () {
}
}
- versions = versions.filter(function (v) {
- return semver.valid(v, loose)
+ versions = versions.map(function (v) {
+ return coerce ? (semver.coerce(v) || {version: v}).version : v
+ }).filter(function (v) {
+ return semver.valid(v)
})
if (!versions.length) return fail()
if (inc && (versions.length !== 1 || range.length))
@@ -122,6 +128,10 @@ function help () {
,"-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."
,""
diff --git a/deps/npm/node_modules/semver/package.json b/deps/npm/node_modules/semver/package.json
index cf8088662e..5919ebef9b 100644
--- a/deps/npm/node_modules/semver/package.json
+++ b/deps/npm/node_modules/semver/package.json
@@ -1,46 +1,51 @@
{
- "_from": "semver@latest",
- "_id": "semver@5.4.1",
+ "_args": [
+ [
+ "semver@5.5.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "semver@5.5.0",
+ "_id": "semver@5.5.0",
"_inBundle": false,
- "_integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==",
+ "_integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==",
"_location": "/semver",
"_phantomChildren": {},
"_requested": {
- "type": "tag",
+ "type": "version",
"registry": true,
- "raw": "semver@latest",
+ "raw": "semver@5.5.0",
"name": "semver",
"escapedName": "semver",
- "rawSpec": "latest",
+ "rawSpec": "5.5.0",
"saveSpec": null,
- "fetchSpec": "latest"
+ "fetchSpec": "5.5.0"
},
"_requiredBy": [
- "#USER",
"/",
+ "/eslint",
+ "/eslint-plugin-node",
"/init-package-json",
+ "/lock-verify",
"/normalize-package-data",
"/npm-install-checks",
"/npm-package-arg",
+ "/npm-pick-manifest",
"/npm-registry-client",
+ "/package-json",
"/pacote",
- "/pacote/npm-pick-manifest",
"/read-installed",
- "/update-notifier/latest-version/package-json",
- "/update-notifier/semver-diff"
+ "/semver-diff"
],
- "_resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "_shasum": "e059c09d8571f0540823733433505d3a2f00b18e",
- "_spec": "semver@latest",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
+ "_spec": "5.5.0",
+ "_where": "/Users/rebecca/code/npm",
"bin": {
"semver": "./bin/semver"
},
"bugs": {
"url": "https://github.com/npm/node-semver/issues"
},
- "bundleDependencies": false,
- "deprecated": false,
"description": "The semantic version parser used by npm.",
"devDependencies": {
"tap": "^10.7.0"
@@ -61,5 +66,5 @@
"scripts": {
"test": "tap test/*.js --cov -J"
},
- "version": "5.4.1"
+ "version": "5.5.0"
}
diff --git a/deps/npm/node_modules/semver/range.bnf b/deps/npm/node_modules/semver/range.bnf
index 25ebd5c832..d4c6ae0d76 100644
--- a/deps/npm/node_modules/semver/range.bnf
+++ b/deps/npm/node_modules/semver/range.bnf
@@ -3,10 +3,10 @@ logical-or ::= ( ' ' ) * '||' ( ' ' ) *
range ::= hyphen | simple ( ' ' simple ) * | ''
hyphen ::= partial ' - ' partial
simple ::= primitive | partial | tilde | caret
-primitive ::= ( '<' | '>' | '>=' | '<=' | '=' | ) partial
+primitive ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial
partial ::= xr ( '.' xr ( '.' xr qualifier ? )? )?
xr ::= 'x' | 'X' | '*' | nr
-nr ::= '0' | ['1'-'9'] ( ['0'-'9'] ) *
+nr ::= '0' | [1-9] ( [0-9] ) *
tilde ::= '~' partial
caret ::= '^' partial
qualifier ::= ( '-' pre )? ( '+' build )?
diff --git a/deps/npm/node_modules/semver/semver.js b/deps/npm/node_modules/semver/semver.js
index 389cb44676..6a2bc01002 100644
--- a/deps/npm/node_modules/semver/semver.js
+++ b/deps/npm/node_modules/semver/semver.js
@@ -21,6 +21,9 @@ exports.SEMVER_SPEC_VERSION = '2.0.0';
var MAX_LENGTH = 256;
var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;
+// Max safe segment length for coercion.
+var MAX_SAFE_COMPONENT_LENGTH = 16;
+
// The actual regexps go on exports.re
var re = exports.re = [];
var src = exports.src = [];
@@ -156,6 +159,15 @@ src[XRANGE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAIN] + '$';
var XRANGELOOSE = R++;
src[XRANGELOOSE] = '^' + src[GTLT] + '\\s*' + src[XRANGEPLAINLOOSE] + '$';
+// Coercion.
+// Extract anything that could conceivably be a part of a valid semver
+var COERCE = R++;
+src[COERCE] = '(?:^|[^\\d])' +
+ '(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+ '(?:\\.(\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +
+ '(?:$|[^\\d])';
+
// Tilde ranges.
// Meaning is "reasonably at or greater than"
var LONETILDE = R++;
@@ -1294,3 +1306,19 @@ function intersects(r1, r2, loose) {
r2 = new Range(r2, loose)
return r1.intersects(r2)
}
+
+exports.coerce = coerce;
+function coerce(version) {
+ if (version instanceof SemVer)
+ return version;
+
+ if (typeof version !== 'string')
+ return null;
+
+ var match = version.match(re[COERCE]);
+
+ if (match == null)
+ return null;
+
+ return parse((match[1] || '0') + '.' + (match[2] || '0') + '.' + (match[3] || '0'));
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/CHANGELOG.md b/deps/npm/node_modules/set-blocking/CHANGELOG.md
index 03bf591923..03bf591923 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/CHANGELOG.md
+++ b/deps/npm/node_modules/set-blocking/CHANGELOG.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/LICENSE.txt b/deps/npm/node_modules/set-blocking/LICENSE.txt
index 836440bef7..836440bef7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/LICENSE.txt
+++ b/deps/npm/node_modules/set-blocking/LICENSE.txt
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/README.md b/deps/npm/node_modules/set-blocking/README.md
index e93b4202b5..e93b4202b5 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/README.md
+++ b/deps/npm/node_modules/set-blocking/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/index.js b/deps/npm/node_modules/set-blocking/index.js
index 6f78774bb6..6f78774bb6 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/set-blocking/index.js
+++ b/deps/npm/node_modules/set-blocking/index.js
diff --git a/deps/npm/node_modules/set-blocking/package.json b/deps/npm/node_modules/set-blocking/package.json
new file mode 100644
index 0000000000..7517e7f615
--- /dev/null
+++ b/deps/npm/node_modules/set-blocking/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "set-blocking@~2.0.0",
+ "_id": "set-blocking@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
+ "_location": "/set-blocking",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "set-blocking@~2.0.0",
+ "name": "set-blocking",
+ "escapedName": "set-blocking",
+ "rawSpec": "~2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "~2.0.0"
+ },
+ "_requiredBy": [
+ "/npmlog",
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "_shasum": "045f9782d011ae9a6803ddd382b24392b3d890f7",
+ "_spec": "set-blocking@~2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/npmlog",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/set-blocking/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "set blocking stdio and stderr ensuring that terminal output does not truncate",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.9",
+ "mocha": "^2.4.5",
+ "nyc": "^6.4.4",
+ "standard": "^7.0.1",
+ "standard-version": "^2.2.1"
+ },
+ "files": [
+ "index.js",
+ "LICENSE.txt"
+ ],
+ "homepage": "https://github.com/yargs/set-blocking#readme",
+ "keywords": [
+ "flush",
+ "terminal",
+ "blocking",
+ "shim",
+ "stdio",
+ "stderr"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "set-blocking",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/yargs/set-blocking.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "test": "nyc mocha ./test/*.js",
+ "version": "standard-version"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/sha/package.json b/deps/npm/node_modules/sha/package.json
index 2d31ae0b49..982780769b 100644
--- a/deps/npm/node_modules/sha/package.json
+++ b/deps/npm/node_modules/sha/package.json
@@ -1,37 +1,39 @@
{
- "_from": "sha@~2.0.1",
+ "_args": [
+ [
+ "sha@2.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "sha@2.0.1",
"_id": "sha@2.0.1",
+ "_inBundle": false,
"_integrity": "sha1-YDCCL70smCOUn49y7WQR7lzyWq4=",
"_location": "/sha",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "sha@~2.0.1",
+ "raw": "sha@2.0.1",
"name": "sha",
"escapedName": "sha",
- "rawSpec": "~2.0.1",
+ "rawSpec": "2.0.1",
"saveSpec": null,
- "fetchSpec": "~2.0.1"
+ "fetchSpec": "2.0.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/sha/-/sha-2.0.1.tgz",
- "_shasum": "6030822fbd2c9823949f8f72ed6411ee5cf25aae",
- "_shrinkwrap": null,
- "_spec": "sha@~2.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
- "bin": null,
+ "_spec": "2.0.1",
+ "_where": "/Users/rebecca/code/npm",
"bugs": {
"url": "https://github.com/ForbesLindesay/sha/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.2",
"readable-stream": "^2.0.2"
},
- "deprecated": false,
"description": "Check and get file hashes",
"devDependencies": {
"mocha": "~1.9.0"
@@ -39,8 +41,6 @@
"homepage": "https://github.com/ForbesLindesay/sha#readme",
"license": "(BSD-2-Clause OR MIT)",
"name": "sha",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/ForbesLindesay/sha.git"
diff --git a/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 b/deps/npm/node_modules/shebang-command/index.js
index 2de70b0742..2de70b0742 100644
--- a/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
+++ b/deps/npm/node_modules/shebang-command/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license b/deps/npm/node_modules/shebang-command/license
index 0f8cf79c3c..0f8cf79c3c 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/license
+++ b/deps/npm/node_modules/shebang-command/license
diff --git a/deps/npm/node_modules/shebang-command/package.json b/deps/npm/node_modules/shebang-command/package.json
new file mode 100644
index 0000000000..ca7a16a3e6
--- /dev/null
+++ b/deps/npm/node_modules/shebang-command/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "shebang-command@^1.2.0",
+ "_id": "shebang-command@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
+ "_location": "/shebang-command",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "shebang-command@^1.2.0",
+ "name": "shebang-command",
+ "escapedName": "shebang-command",
+ "rawSpec": "^1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.0"
+ },
+ "_requiredBy": [
+ "/cross-spawn"
+ ],
+ "_resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "_shasum": "44aac65b695b03398968c39f363fee5deafdf1ea",
+ "_spec": "shebang-command@^1.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cross-spawn",
+ "author": {
+ "name": "Kevin Martensson",
+ "email": "kevinmartensson@gmail.com",
+ "url": "github.com/kevva"
+ },
+ "bugs": {
+ "url": "https://github.com/kevva/shebang-command/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "shebang-regex": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the command from a shebang",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/kevva/shebang-command#readme",
+ "keywords": [
+ "cmd",
+ "command",
+ "parse",
+ "shebang"
+ ],
+ "license": "MIT",
+ "name": "shebang-command",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/kevva/shebang-command.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0",
+ "xo": {
+ "ignores": [
+ "test.js"
+ ]
+ }
+}
diff --git a/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 b/deps/npm/node_modules/shebang-command/readme.md
index 16b0be4d7d..16b0be4d7d 100644
--- a/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
+++ b/deps/npm/node_modules/shebang-command/readme.md
diff --git a/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 b/deps/npm/node_modules/shebang-regex/index.js
index d052d2e05e..d052d2e05e 100644
--- a/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
+++ b/deps/npm/node_modules/shebang-regex/index.js
diff --git a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/license b/deps/npm/node_modules/shebang-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/osenv/node_modules/os-tmpdir/license
+++ b/deps/npm/node_modules/shebang-regex/license
diff --git a/deps/npm/node_modules/shebang-regex/package.json b/deps/npm/node_modules/shebang-regex/package.json
new file mode 100644
index 0000000000..3dd6ea1f39
--- /dev/null
+++ b/deps/npm/node_modules/shebang-regex/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "shebang-regex@^1.0.0",
+ "_id": "shebang-regex@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
+ "_location": "/shebang-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "shebang-regex@^1.0.0",
+ "name": "shebang-regex",
+ "escapedName": "shebang-regex",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/shebang-command"
+ ],
+ "_resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "_shasum": "da42f49740c0b42db2ca9728571cb190c98efea3",
+ "_spec": "shebang-regex@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/shebang-command",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/shebang-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching a shebang",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/shebang-regex#readme",
+ "keywords": [
+ "re",
+ "regex",
+ "regexp",
+ "shebang",
+ "match",
+ "test"
+ ],
+ "license": "MIT",
+ "name": "shebang-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/shebang-regex.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/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 b/deps/npm/node_modules/shebang-regex/readme.md
index ef75e51b5b..ef75e51b5b 100644
--- a/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
+++ b/deps/npm/node_modules/shebang-regex/readme.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/CHANGELOG.md b/deps/npm/node_modules/signal-exit/CHANGELOG.md
index e2f70d2250..e2f70d2250 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/CHANGELOG.md
+++ b/deps/npm/node_modules/signal-exit/CHANGELOG.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/LICENSE.txt b/deps/npm/node_modules/signal-exit/LICENSE.txt
index eead04a121..eead04a121 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/LICENSE.txt
+++ b/deps/npm/node_modules/signal-exit/LICENSE.txt
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/README.md b/deps/npm/node_modules/signal-exit/README.md
index 8ebccabeca..8ebccabeca 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/README.md
+++ b/deps/npm/node_modules/signal-exit/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/index.js b/deps/npm/node_modules/signal-exit/index.js
index 337f691ed2..337f691ed2 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/index.js
+++ b/deps/npm/node_modules/signal-exit/index.js
diff --git a/deps/npm/node_modules/signal-exit/package.json b/deps/npm/node_modules/signal-exit/package.json
new file mode 100644
index 0000000000..50d5591490
--- /dev/null
+++ b/deps/npm/node_modules/signal-exit/package.json
@@ -0,0 +1,72 @@
+{
+ "_from": "signal-exit@^3.0.2",
+ "_id": "signal-exit@3.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
+ "_location": "/signal-exit",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "signal-exit@^3.0.2",
+ "name": "signal-exit",
+ "escapedName": "signal-exit",
+ "rawSpec": "^3.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.2"
+ },
+ "_requiredBy": [
+ "/execa",
+ "/foreground-child",
+ "/gauge",
+ "/lockfile",
+ "/restore-cursor",
+ "/tap",
+ "/write-file-atomic"
+ ],
+ "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+ "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
+ "_spec": "signal-exit@^3.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/write-file-atomic",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/tapjs/signal-exit/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "when you want to fire an event no matter how a process exits.",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.10",
+ "nyc": "^8.1.0",
+ "standard": "^7.1.2",
+ "standard-version": "^2.3.0",
+ "tap": "^8.0.1"
+ },
+ "files": [
+ "index.js",
+ "signals.js"
+ ],
+ "homepage": "https://github.com/tapjs/signal-exit",
+ "keywords": [
+ "signal",
+ "exit"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "signal-exit",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/tapjs/signal-exit.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "tap --timeout=240 ./test/*.js --cov"
+ },
+ "version": "3.0.2"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/signals.js b/deps/npm/node_modules/signal-exit/signals.js
index 3bd67a8a55..3bd67a8a55 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/signal-exit/signals.js
+++ b/deps/npm/node_modules/signal-exit/signals.js
diff --git a/deps/npm/node_modules/read-package-json/node_modules/slash/index.js b/deps/npm/node_modules/slash/index.js
index b946a0841a..b946a0841a 100644
--- a/deps/npm/node_modules/read-package-json/node_modules/slash/index.js
+++ b/deps/npm/node_modules/slash/index.js
diff --git a/deps/npm/node_modules/slash/package.json b/deps/npm/node_modules/slash/package.json
new file mode 100644
index 0000000000..bedd268090
--- /dev/null
+++ b/deps/npm/node_modules/slash/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "slash@^1.0.0",
+ "_id": "slash@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
+ "_location": "/slash",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "slash@^1.0.0",
+ "name": "slash",
+ "escapedName": "slash",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/read-package-json"
+ ],
+ "_resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
+ "_shasum": "c41f2f6c39fc16d1cd17ad4b5d896114ae470d55",
+ "_spec": "slash@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-package-json",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "http://sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/slash/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Convert Windows backslash paths to slash paths",
+ "devDependencies": {
+ "mocha": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/slash#readme",
+ "keywords": [
+ "path",
+ "seperator",
+ "sep",
+ "slash",
+ "backslash",
+ "windows",
+ "win"
+ ],
+ "license": "MIT",
+ "name": "slash",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/slash.git"
+ },
+ "scripts": {
+ "test": "mocha"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/read-package-json/node_modules/slash/readme.md b/deps/npm/node_modules/slash/readme.md
index 15672f010e..15672f010e 100644
--- a/deps/npm/node_modules/read-package-json/node_modules/slash/readme.md
+++ b/deps/npm/node_modules/slash/readme.md
diff --git a/deps/npm/node_modules/slide/package.json b/deps/npm/node_modules/slide/package.json
index daee64b3e5..1045c5cad8 100644
--- a/deps/npm/node_modules/slide/package.json
+++ b/deps/npm/node_modules/slide/package.json
@@ -1,40 +1,44 @@
{
- "_from": "slide@~1.1.6",
+ "_args": [
+ [
+ "slide@1.1.6",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "slide@1.1.6",
"_id": "slide@1.1.6",
+ "_inBundle": false,
"_integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=",
"_location": "/slide",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "slide@~1.1.6",
+ "raw": "slide@1.1.6",
"name": "slide",
"escapedName": "slide",
- "rawSpec": "~1.1.6",
+ "rawSpec": "1.1.6",
"saveSpec": null,
- "fetchSpec": "~1.1.6"
+ "fetchSpec": "1.1.6"
},
"_requiredBy": [
"/",
+ "/gentle-fs",
+ "/npm-lifecycle",
"/npm-registry-client",
- "/read-installed",
- "/write-file-atomic"
+ "/read-installed"
],
"_resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz",
- "_shasum": "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707",
- "_shrinkwrap": null,
- "_spec": "slide@~1.1.6",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.1.6",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/slide-flow-control/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "S. Sriram",
@@ -43,7 +47,6 @@
}
],
"dependencies": {},
- "deprecated": false,
"description": "A flow control lib small enough to fit on in a slide presentation. Derived live at Oak.JS",
"devDependencies": {},
"engines": {
@@ -53,8 +56,6 @@
"license": "ISC",
"main": "./lib/slide.js",
"name": "slide",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/slide-flow-control.git"
diff --git a/deps/npm/node_modules/smart-buffer/.travis.yml b/deps/npm/node_modules/smart-buffer/.travis.yml
new file mode 100644
index 0000000000..19111ce399
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/.travis.yml
@@ -0,0 +1,12 @@
+language: node_js
+node_js:
+ - 4
+ - 6
+ - 7
+ - stable
+
+before_script:
+ - npm install -g typescript
+ - tsc -p ./
+
+script: "npm run coveralls" \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/LICENSE b/deps/npm/node_modules/smart-buffer/LICENSE
new file mode 100644
index 0000000000..aab5771a97
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013-2017 Josh Glazebrook
+
+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/smart-buffer/README.md b/deps/npm/node_modules/smart-buffer/README.md
new file mode 100644
index 0000000000..4cd328d9e0
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/README.md
@@ -0,0 +1,632 @@
+smart-buffer [![Build Status](https://travis-ci.org/JoshGlazebrook/smart-buffer.svg?branch=master)](https://travis-ci.org/JoshGlazebrook/smart-buffer) [![Coverage Status](https://coveralls.io/repos/github/JoshGlazebrook/smart-buffer/badge.svg?branch=master)](https://coveralls.io/github/JoshGlazebrook/smart-buffer?branch=master)
+=============
+
+smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.
+
+![stats](https://nodei.co/npm/smart-buffer.png?downloads=true&downloadRank=true&stars=true "stats")
+
+**Key Features**:
+* Proxies all of the Buffer write and read functions
+* Keeps track of read and write offsets automatically
+* Grows the internal Buffer as needed
+* Useful string operations. (Null terminating strings)
+* Allows for inserting values at specific points in the Buffer
+* Built in TypeScript
+* Type Definitions Provided
+* Browser Support (using Webpack/Browserify)
+* Full test coverage
+
+**Requirements**:
+* Node v4.0+ is supported at this time. (Versions prior to 2.0 will work on node 0.10)
+
+
+
+## Breaking Changes in v4.0
+
+* Old constructor patterns have been completely removed. It's now required to use the SmartBuffer.fromXXX() factory constructors.
+* rewind(), skip(), moveTo() have been removed. (see [offsets](#offsets))
+* Internal private properties are now prefixed with underscores (_)
+* **All** writeXXX() methods that are given an offset will now **overwrite data** instead of insert. (see [write vs insert](#write-vs-insert))
+* insertXXX() methods have been added for when you want to insert data at a specific offset (this replaces the old behavior of writeXXX() when an offset was provided)
+
+
+## Looking for v3 docs?
+
+Legacy documentation for version 3 and prior can be found [here](https://github.com/JoshGlazebrook/smart-buffer/blob/master/docs/README_v3.md).
+
+## Installing:
+
+`yarn add smart-buffer`
+
+or
+
+`npm install smart-buffer`
+
+Note: The published NPM package includes the built javascript library.
+If you cloned this repo and wish to build the library manually use:
+
+`npm run build`
+
+## Using smart-buffer
+
+```javascript
+// Javascript
+const SmartBuffer = require('smart-buffer').SmartBuffer;
+
+// Typescript
+import { SmartBuffer, SmartBufferOptions} from 'smart-buffer';
+```
+
+### Simple Example
+
+Building a packet that uses the following protocol specification:
+
+`[PacketType:2][PacketLength:2][Data:XX]`
+
+To build this packet using the vanilla Buffer class, you would have to count up the length of the data payload beforehand. You would also need to keep track of the current "cursor" position in your Buffer so you write everything in the right places. With smart-buffer you don't have to do either of those things.
+
+```javascript
+function createLoginPacket(username, password, age, country) {
+ const packet = new SmartBuffer();
+ packet.writeUInt16LE(0x0060); // Some packet type
+ packet.writeStringNT(username);
+ packet.writeStringNT(password);
+ packet.writeUInt8(age);
+ packet.writeStringNT(country);
+ packet.insertUInt16LE(packet.length - 2, 2);
+
+ return packet.toBuffer();
+}
+```
+With the above function, you now can do this:
+```javascript
+const login = createLoginPacket("Josh", "secret123", 22, "United States");
+
+// <Buffer 60 00 1e 00 4a 6f 73 68 00 73 65 63 72 65 74 31 32 33 00 16 55 6e 69 74 65 64 20 53 74 61 74 65 73 00>
+```
+Notice that the `[PacketLength:2]` value (1e 00) was inserted at position 2.
+
+Reading back the packet we created above is just as easy:
+```javascript
+
+const reader = SmartBuffer.fromBuffer(login);
+
+const logininfo = {
+ packetType: reader.readUInt16LE(),
+ packetLength: reader.readUInt16LE(),
+ username: reader.readStringNT(),
+ password: reader.readStringNT(),
+ age: reader.readUInt8(),
+ country: reader.readStringNT()
+};
+
+/*
+{
+ packetType: 96, (0x0060)
+ packetLength: 30,
+ username: 'Josh',
+ password: 'secret123',
+ age: 22,
+ country: 'United States'
+}
+*/
+```
+
+
+## Write vs Insert
+In prior versions of SmartBuffer, .writeXXX(value, offset) calls would insert data when an offset was provided. In version 4, this will now overwrite the data at the offset position. To insert data there are now corresponding .insertXXX(value, offset) methods.
+
+**SmartBuffer v3**:
+```javascript
+const buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));
+buff.writeInt8(7, 2);
+console.log(buff.toBuffer())
+
+// <Buffer 01 02 07 03 04 05 06>
+```
+
+**SmartBuffer v4**:
+```javascript
+const buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));
+buff.writeInt8(7, 2);
+console.log(buff.toBuffer());
+
+// <Buffer 01 02 07 04 05 06>
+```
+
+To insert you instead should use:
+```javascript
+const buff = SmartBuffer.fromBuffer(new Buffer([1,2,3,4,5,6]));
+buff.insertInt8(7, 2);
+console.log(buff.toBuffer());
+
+// <Buffer 01 02 07 03 04 05 06>
+```
+
+**Note:** Insert/Writing to a position beyond the currently tracked internal Buffer will zero pad to your offset.
+
+## Constructing a smart-buffer
+
+There are a few different ways to construct a SmartBuffer instance.
+
+```javascript
+// Creating SmartBuffer from existing Buffer
+const buff = SmartBuffer.fromBuffer(buffer); // Creates instance from buffer. (Uses default utf8 encoding)
+const buff = SmartBuffer.fromBuffer(buffer, 'ascii'); // Creates instance from buffer with ascii encoding for strings.
+
+// Creating SmartBuffer with specified internal Buffer size. (Note: this is not a hard cap, the internal buffer will grow as needed).
+const buff = SmartBuffer.fromSize(1024); // Creates instance with internal Buffer size of 1024.
+const buff = SmartBuffer.fromSize(1024, 'utf8'); // Creates instance with internal Buffer size of 1024, and utf8 encoding for strings.
+
+// Creating SmartBuffer with options object. This one specifies size and encoding.
+const buff = SmartBuffer.fromOptions({
+ size: 1024,
+ encoding: 'ascii'
+});
+
+// Creating SmartBuffer with options object. This one specified an existing Buffer.
+const buff = SmartBuffer.fromOptions({
+ buff: buffer
+});
+
+// Creating SmartBuffer from a string.
+const buff = SmartBuffer.fromBuffer(Buffer.from('some string', 'utf8'));
+
+// Just want a regular SmartBuffer with all default options?
+const buff = new SmartBuffer();
+```
+
+# Api Reference:
+
+**Note:** SmartBuffer is fully documented with Typescript definitions as well as jsdocs so your favorite editor/IDE will have intellisense.
+
+**Table of Contents**
+
+1. [Constructing](#constructing)
+2. **Numbers**
+ 1. [Integers](#integers)
+ 2. [Floating Points](#floating-point-numbers)
+3. **Strings**
+ 1. [Strings](#strings)
+ 2. [Null Terminated Strings](#null-terminated-strings)
+4. [Buffers](#buffers)
+5. [Offsets](#offsets)
+6. [Other](#other)
+
+
+## Constructing
+
+### constructor()
+### constructor([options])
+- ```options``` *{SmartBufferOptions}* An optional options object to construct a SmartBuffer with.
+
+Examples:
+```javascript
+const buff = new SmartBuffer();
+const buff = new SmartBuffer({
+ size: 1024,
+ encoding: 'ascii'
+});
+```
+
+### Class Method: fromBuffer(buffer[, encoding])
+- ```buffer``` *{Buffer}* The Buffer instance to wrap.
+- ```encoding``` *{string}* The string encoding to use. ```Default: 'utf8'```
+
+Examples:
+```javascript
+const someBuffer = Buffer.from('some string');
+const buff = SmartBuffer.fromBuffer(someBuffer); // Defaults to utf8
+const buff = SmartBuffer.fromBuffer(someBuffer, 'ascii');
+```
+
+### Class Method: fromSize(size[, encoding])
+- ```size``` *{number}* The size to initialize the internal Buffer.
+- ```encoding``` *{string}* The string encoding to use. ```Default: 'utf8'```
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromSize(1024); // Defaults to utf8
+const buff = SmartBuffer.fromSize(1024, 'ascii');
+```
+
+### Class Method: fromOptions(options)
+- ```options``` *{SmartBufferOptions}* The Buffer instance to wrap.
+
+```typescript
+interface SmartBufferOptions {
+ encoding?: BufferEncoding; // Defaults to utf8
+ size?: number; // Defaults to 4096
+ buff?: Buffer;
+}
+```
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromOptions({
+ size: 1024
+};
+const buff = SmartBuffer.fromOptions({
+ size: 1024,
+ encoding: 'utf8'
+});
+const buff = SmartBuffer.fromOptions({
+ encoding: 'utf8'
+});
+
+const someBuff = Buffer.from('some string', 'utf8');
+const buff = SmartBuffer.fromOptions({
+ buffer: someBuff,
+ encoding: 'utf8'
+});
+```
+
+## Integers
+
+### readInt8([offset])
+- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```
+- Returns *{number}*
+
+Read a Int8 value.
+
+### buff.readInt16BE([offset])
+### buff.readInt16LE([offset])
+### buff.readUInt16BE([offset])
+### buff.readUInt16LE([offset])
+- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```
+- Returns *{number}*
+
+Read a 16 bit integer value.
+
+### buff.readInt32BE([offset])
+### buff.readInt32LE([offset])
+### buff.readUInt32BE([offset])
+### buff.readUInt32LE([offset])
+- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```
+- Returns *{number}*
+
+Read a 32 bit integer value.
+
+
+### buff.writeInt8(value[, offset])
+### buff.writeUInt8(value[, offset])
+- ```value``` *{number}* The value to write.
+- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```
+- Returns *{this}*
+
+Write a Int8 value.
+
+### buff.insertInt8(value, offset)
+### buff.insertUInt8(value, offset)
+- ```value``` *{number}* The value to insert.
+- ```offset``` *{number}* The offset to insert this data at.
+- Returns *{this}*
+
+Insert a Int8 value.
+
+
+### buff.writeInt16BE(value[, offset])
+### buff.writeInt16LE(value[, offset])
+### buff.writeUInt16BE(value[, offset])
+### buff.writeUInt16LE(value[, offset])
+- ```value``` *{number}* The value to write.
+- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```
+- Returns *{this}*
+
+Write a 16 bit integer value.
+
+### buff.insertInt16BE(value, offset)
+### buff.insertInt16LE(value, offset)
+### buff.insertUInt16BE(value, offset)
+### buff.insertUInt16LE(value, offset)
+- ```value``` *{number}* The value to insert.
+- ```offset``` *{number}* The offset to insert this data at.
+- Returns *{this}*
+
+Insert a 16 bit integer value.
+
+
+### buff.writeInt32BE(value[, offset])
+### buff.writeInt32LE(value[, offset])
+### buff.writeUInt32BE(value[, offset])
+### buff.writeUInt32LE(value[, offset])
+- ```value``` *{number}* The value to write.
+- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```
+- Returns *{this}*
+
+Write a 32 bit integer value.
+
+### buff.insertInt32BE(value, offset)
+### buff.insertInt32LE(value, offset)
+### buff.insertUInt32BE(value, offset)
+### buff.nsertUInt32LE(value, offset)
+- ```value``` *{number}* The value to insert.
+- ```offset``` *{number}* The offset to insert this data at.
+- Returns *{this}*
+
+Insert a 32 bit integer value.
+
+
+## Floating Point Numbers
+
+### buff.readFloatBE([offset])
+### buff.readFloatLE([offset])
+- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```
+- Returns *{number}*
+
+Read a Float value.
+
+### buff.eadDoubleBE([offset])
+### buff.readDoubleLE([offset])
+- ```offset``` *{number}* Optional position to start reading data from. **Default**: ```Auto managed offset```
+- Returns *{number}*
+
+Read a Double value.
+
+
+### buff.writeFloatBE(value[, offset])
+### buff.writeFloatLE(value[, offset])
+- ```value``` *{number}* The value to write.
+- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```
+- Returns *{this}*
+
+Write a Float value.
+
+### buff.insertFloatBE(value, offset)
+### buff.insertFloatLE(value, offset)
+- ```value``` *{number}* The value to insert.
+- ```offset``` *{number}* The offset to insert this data at.
+- Returns *{this}*
+
+Insert a Float value.
+
+
+### buff.writeDoubleBE(value[, offset])
+### buff.writeDoubleLE(value[, offset])
+- ```value``` *{number}* The value to write.
+- ```offset``` *{number}* An optional offset to write this value to. **Default:** ```Auto managed offset```
+- Returns *{this}*
+
+Write a Double value.
+
+### buff.insertDoubleBE(value, offset)
+### buff.insertDoubleLE(value, offset)
+- ```value``` *{number}* The value to insert.
+- ```offset``` *{number}* The offset to insert this data at.
+- Returns *{this}*
+
+Insert a Double value.
+
+## Strings
+
+### buff.readString()
+### buff.readString(size[, encoding])
+### buff.readString(encoding)
+- ```size``` *{number}* The number of bytes to read. **Default:** ```Reads to the end of the Buffer.```
+- ```encoding``` *{string}* The string encoding to use. **Default:** ```utf8```.
+
+Read a string value.
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromBuffer(Buffer.from('hello there', 'utf8'));
+buff.readString(); // 'hello there'
+buff.readString(2); // 'he'
+buff.readString(2, 'utf8'); // 'he'
+buff.readString('utf8'); // 'hello there'
+```
+
+### buff.writeString(value)
+### buff.writeString(value[, offset])
+### buff.writeString(value[, encoding])
+### buff.writeString(value[, offset[, encoding]])
+- ```value``` *{string}* The string value to write.
+- ```offset``` *{number}* The offset to write this value to. **Default:** ```Auto managed offset```
+- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```
+
+Write a string value.
+
+Examples:
+```javascript
+buff.writeString('hello'); // Auto managed offset
+buff.writeString('hello', 2);
+buff.writeString('hello', 'utf8') // Auto managed offset
+buff.writeString('hello', 2, 'utf8');
+```
+
+### buff.insertString(value, offset[, encoding])
+- ```value``` *{string}* The string value to write.
+- ```offset``` *{number}* The offset to write this value to.
+- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```
+
+Insert a string value.
+
+Examples:
+```javascript
+buff.insertString('hello', 2);
+buff.insertString('hello', 2, 'utf8');
+```
+
+## Null Terminated Strings
+
+### buff.readStringNT()
+### buff.readStringNT(encoding)
+- ```encoding``` *{string}* The string encoding to use. **Default:** ```utf8```.
+
+Read a null terminated string value. (If a null is not found, it will read to the end of the Buffer).
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromBuffer(Buffer.from('hello\0 there', 'utf8'));
+buff.readStringNT(); // 'hello'
+
+// If we called this again:
+buff.readStringNT(); // ' there'
+```
+
+### buff.writeStringNT(value)
+### buff.writeStringNT(value[, offset])
+### buff.writeStringNT(value[, encoding])
+### buff.writeStringNT(value[, offset[, encoding]])
+- ```value``` *{string}* The string value to write.
+- ```offset``` *{number}* The offset to write this value to. **Default:** ```Auto managed offset```
+- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```
+
+Write a null terminated string value.
+
+Examples:
+```javascript
+buff.writeStringNT('hello'); // Auto managed offset <Buffer 68 65 6c 6c 6f 00>
+buff.writeStringNT('hello', 2); // <Buffer 00 00 68 65 6c 6c 6f 00>
+buff.writeStringNT('hello', 'utf8') // Auto managed offset
+buff.writeStringNT('hello', 2, 'utf8');
+```
+
+### buff.insertStringNT(value, offset[, encoding])
+- ```value``` *{string}* The string value to write.
+- ```offset``` *{number}* The offset to write this value to.
+- ```encoding``` *{string}* An optional string encoding to use. **Default:** ```utf8```
+
+Insert a null terminated string value.
+
+Examples:
+```javascript
+buff.insertStringNT('hello', 2);
+buff.insertStringNT('hello', 2, 'utf8');
+```
+
+## Buffers
+
+### buff.readBuffer([length])
+- ```length``` *{number}* The number of bytes to read into a Buffer. **Default:** ```Reads to the end of the Buffer```
+
+Read a Buffer of a specified size.
+
+### buff.writeBuffer(value[, offset])
+- ```value``` *{Buffer}* The buffer value to write.
+- ```offset``` *{number}* An optional offset to write the value to. **Default:** ```Auto managed offset```
+
+### buff.insertBuffer(value, offset)
+- ```value``` *{Buffer}* The buffer value to write.
+- ```offset``` *{number}* The offset to write the value to.
+
+
+### buff.readBufferNT()
+
+Read a null terminated Buffer.
+
+### buff.writeBufferNT(value[, offset])
+- ```value``` *{Buffer}* The buffer value to write.
+- ```offset``` *{number}* An optional offset to write the value to. **Default:** ```Auto managed offset```
+
+Write a null terminated Buffer.
+
+
+### buff.insertBufferNT(value, offset)
+- ```value``` *{Buffer}* The buffer value to write.
+- ```offset``` *{number}* The offset to write the value to.
+
+Insert a null terminated Buffer.
+
+
+## Offsets
+
+### buff.readOffset
+### buff.readOffset(offset)
+- ```offset``` *{number}* The new read offset value to set.
+- Returns: ```The current read offset```
+
+Gets or sets the current read offset.
+
+Examples:
+```javascript
+const currentOffset = buff.readOffset; // 5
+
+buff.readOffset = 10;
+
+console.log(buff.readOffset) // 10
+```
+
+### buff.writeOffset
+### buff.writeOffset(offset)
+- ```offset``` *{number}* The new write offset value to set.
+- Returns: ```The current write offset```
+
+Gets or sets the current write offset.
+
+Examples:
+```javascript
+const currentOffset = buff.writeOffset; // 5
+
+buff.writeOffset = 10;
+
+console.log(buff.writeOffset) // 10
+```
+
+### buff.encoding
+### buff.encoding(encoding)
+- ```encoding``` *{string}* The new string encoding to set.
+- Returns: ```The current string encoding```
+
+Gets or sets the current string encoding.
+
+Examples:
+```javascript
+const currentEncoding = buff.encoding; // 'utf8'
+
+buff.encoding = 'ascii';
+
+console.log(buff.encoding) // 'ascii'
+```
+
+## Other
+
+### buff.clear()
+
+Clear and resets the SmartBuffer instance.
+
+### buff.remaining()
+- Returns ```Remaining data left to be read```
+
+Gets the number of remaining bytes to be read.
+
+
+### buff.internalBuffer
+- Returns: *{Buffer}*
+
+Gets the internally managed Buffer (Includes unmanaged data).
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromSize(16);
+buff.writeString('hello');
+console.log(buff.InternalBuffer); // <Buffer 68 65 6c 6c 6f 00 00 00 00 00 00 00 00 00 00 00>
+```
+
+### buff.toBuffer()
+- Returns: *{Buffer}*
+
+Gets a sliced Buffer instance of the internally managed Buffer. (Only includes managed data)
+
+Examples:
+```javascript
+const buff = SmartBuffer.fromSize(16);
+buff.writeString('hello');
+console.log(buff.toBuffer()); // <Buffer 68 65 6c 6c 6f>
+```
+
+### buff.toString([encoding])
+- ```encoding``` *{string}* The string encoding to use when converting to a string. **Default:** ```utf8```
+- Returns *{string}*
+
+Gets a string representation of all data in the SmartBuffer.
+
+### buff.destroy()
+
+Destroys the SmartBuffer instance.
+
+
+
+## License
+
+This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License). \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/build/smartbuffer.js b/deps/npm/node_modules/smart-buffer/build/smartbuffer.js
new file mode 100644
index 0000000000..3e1b95f308
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/build/smartbuffer.js
@@ -0,0 +1,1095 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const utils_1 = require("./utils");
+// The default Buffer size if one is not provided.
+const DEFAULT_SMARTBUFFER_SIZE = 4096;
+// The default string encoding to use for reading/writing strings.
+const DEFAULT_SMARTBUFFER_ENCODING = 'utf8';
+class SmartBuffer {
+ /**
+ * Creates a new SmartBuffer instance.
+ *
+ * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance.
+ */
+ constructor(options) {
+ this.length = 0;
+ this._encoding = DEFAULT_SMARTBUFFER_ENCODING;
+ this._writeOffset = 0;
+ this._readOffset = 0;
+ if (SmartBuffer.isSmartBufferOptions(options)) {
+ // Checks for encoding
+ if (options.encoding) {
+ utils_1.checkEncoding(options.encoding);
+ this._encoding = options.encoding;
+ }
+ // Checks for initial size length
+ if (options.size) {
+ if (utils_1.isFiniteInteger(options.size) && options.size > 0) {
+ this._buff = Buffer.allocUnsafe(options.size);
+ }
+ else {
+ throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_SIZE);
+ }
+ // Check for initial Buffer
+ }
+ else if (options.buff) {
+ if (options.buff instanceof Buffer) {
+ this._buff = options.buff;
+ this.length = options.buff.length;
+ }
+ else {
+ throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_BUFFER);
+ }
+ }
+ else {
+ this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);
+ }
+ }
+ else {
+ // If something was passed but it's not a SmartBufferOptions object
+ if (typeof options !== 'undefined') {
+ throw new Error(utils_1.ERRORS.INVALID_SMARTBUFFER_OBJECT);
+ }
+ // Otherwise default to sane options
+ this._buff = Buffer.allocUnsafe(DEFAULT_SMARTBUFFER_SIZE);
+ }
+ }
+ /**
+ * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding.
+ *
+ * @param size { Number } The size of the internal Buffer.
+ * @param encoding { String } The BufferEncoding to use for strings.
+ *
+ * @return { SmartBuffer }
+ */
+ static fromSize(size, encoding) {
+ return new this({
+ size: size,
+ encoding: encoding
+ });
+ }
+ /**
+ * Creates a new SmartBuffer instance with the provided Buffer and optional encoding.
+ *
+ * @param buffer { Buffer } The Buffer to use as the internal Buffer value.
+ * @param encoding { String } The BufferEncoding to use for strings.
+ *
+ * @return { SmartBuffer }
+ */
+ static fromBuffer(buff, encoding) {
+ return new this({
+ buff: buff,
+ encoding: encoding
+ });
+ }
+ /**
+ * Creates a new SmartBuffer instance with the provided SmartBufferOptions options.
+ *
+ * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance.
+ */
+ static fromOptions(options) {
+ return new this(options);
+ }
+ /**
+ * Type checking function that determines if an object is a SmartBufferOptions object.
+ */
+ static isSmartBufferOptions(options) {
+ const castOptions = options;
+ return castOptions && (castOptions.encoding !== undefined || castOptions.size !== undefined || castOptions.buff !== undefined);
+ }
+ // Signed integers
+ /**
+ * Reads an Int8 value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt8(offset) {
+ return this._readNumberValue(Buffer.prototype.readInt8, 1, offset);
+ }
+ /**
+ * Reads an Int16BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt16BE(offset) {
+ return this._readNumberValue(Buffer.prototype.readInt16BE, 2, offset);
+ }
+ /**
+ * Reads an Int16LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt16LE(offset) {
+ return this._readNumberValue(Buffer.prototype.readInt16LE, 2, offset);
+ }
+ /**
+ * Reads an Int32BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt32BE(offset) {
+ return this._readNumberValue(Buffer.prototype.readInt32BE, 4, offset);
+ }
+ /**
+ * Reads an Int32LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt32LE(offset) {
+ return this._readNumberValue(Buffer.prototype.readInt32LE, 4, offset);
+ }
+ /**
+ * Writes an Int8 value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt8(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeInt8, 1, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an Int8 value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt8(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeInt8, 1, value, offset);
+ return this;
+ }
+ /**
+ * Writes an Int16BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt16BE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeInt16BE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an Int16BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt16BE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeInt16BE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Writes an Int16LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt16LE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeInt16LE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an Int16LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt16LE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeInt16LE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Writes an Int32BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt32BE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeInt32BE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an Int32BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt32BE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeInt32BE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Writes an Int32LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt32LE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeInt32LE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an Int32LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt32LE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeInt32LE, 4, value, offset);
+ return this;
+ }
+ // Unsigned Integers
+ /**
+ * Reads an UInt8 value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt8(offset) {
+ return this._readNumberValue(Buffer.prototype.readUInt8, 1, offset);
+ }
+ /**
+ * Reads an UInt16BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt16BE(offset) {
+ return this._readNumberValue(Buffer.prototype.readUInt16BE, 2, offset);
+ }
+ /**
+ * Reads an UInt16LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt16LE(offset) {
+ return this._readNumberValue(Buffer.prototype.readUInt16LE, 2, offset);
+ }
+ /**
+ * Reads an UInt32BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt32BE(offset) {
+ return this._readNumberValue(Buffer.prototype.readUInt32BE, 4, offset);
+ }
+ /**
+ * Reads an UInt32LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt32LE(offset) {
+ return this._readNumberValue(Buffer.prototype.readUInt32LE, 4, offset);
+ }
+ /**
+ * Writes an UInt8 value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt8(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeUInt8, 1, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an UInt8 value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt8(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeUInt8, 1, value, offset);
+ return this;
+ }
+ /**
+ * Writes an UInt16BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt16BE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeUInt16BE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an UInt16BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt16BE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeUInt16BE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Writes an UInt16LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt16LE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeUInt16LE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an UInt16LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt16LE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeUInt16LE, 2, value, offset);
+ return this;
+ }
+ /**
+ * Writes an UInt32BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt32BE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeUInt32BE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an UInt32BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt32BE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeUInt32BE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Writes an UInt32LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt32LE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeUInt32LE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts an UInt32LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt32LE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeUInt32LE, 4, value, offset);
+ return this;
+ }
+ // Floating Point
+ /**
+ * Reads an FloatBE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readFloatBE(offset) {
+ return this._readNumberValue(Buffer.prototype.readFloatBE, 4, offset);
+ }
+ /**
+ * Reads an FloatLE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readFloatLE(offset) {
+ return this._readNumberValue(Buffer.prototype.readFloatLE, 4, offset);
+ }
+ /**
+ * Writes a FloatBE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeFloatBE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeFloatBE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts a FloatBE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertFloatBE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeFloatBE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Writes a FloatLE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeFloatLE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeFloatLE, 4, value, offset);
+ return this;
+ }
+ /**
+ * Inserts a FloatLE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertFloatLE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeFloatLE, 4, value, offset);
+ return this;
+ }
+ // Double Floating Point
+ /**
+ * Reads an DoublEBE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readDoubleBE(offset) {
+ return this._readNumberValue(Buffer.prototype.readDoubleBE, 8, offset);
+ }
+ /**
+ * Reads an DoubleLE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readDoubleLE(offset) {
+ return this._readNumberValue(Buffer.prototype.readDoubleLE, 8, offset);
+ }
+ /**
+ * Writes a DoubleBE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeDoubleBE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeDoubleBE, 8, value, offset);
+ return this;
+ }
+ /**
+ * Inserts a DoubleBE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertDoubleBE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeDoubleBE, 8, value, offset);
+ return this;
+ }
+ /**
+ * Writes a DoubleLE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeDoubleLE(value, offset) {
+ this._writeNumberValue(Buffer.prototype.writeDoubleLE, 8, value, offset);
+ return this;
+ }
+ /**
+ * Inserts a DoubleLE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertDoubleLE(value, offset) {
+ this._insertNumberValue(Buffer.prototype.writeDoubleLE, 8, value, offset);
+ return this;
+ }
+ // Strings
+ /**
+ * Reads a String from the current read position.
+ *
+ * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for
+ * the string (Defaults to instance level encoding).
+ * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
+ *
+ * @return { String }
+ */
+ readString(arg1, encoding) {
+ let lengthVal;
+ // Length provided
+ if (typeof arg1 === 'number') {
+ utils_1.checkLengthValue(arg1);
+ lengthVal = Math.min(arg1, this.length - this._readOffset);
+ }
+ else {
+ encoding = arg1;
+ lengthVal = this.length - this._readOffset;
+ }
+ // Check encoding
+ if (typeof encoding !== 'undefined') {
+ utils_1.checkEncoding(encoding);
+ }
+ const value = this._buff.slice(this._readOffset, this._readOffset + lengthVal).toString(encoding || this._encoding);
+ this._readOffset += lengthVal;
+ return value;
+ }
+ /**
+ * Inserts a String
+ *
+ * @param value { String } The String value to insert.
+ * @param offset { Number } The offset to insert the string at.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ insertString(value, offset, encoding) {
+ utils_1.checkOffsetValue(offset);
+ return this._handleString(value, true, offset, encoding);
+ }
+ /**
+ * Writes a String
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ writeString(value, arg2, encoding) {
+ return this._handleString(value, false, arg2, encoding);
+ }
+ /**
+ * Reads a null-terminated String from the current read position.
+ *
+ * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
+ *
+ * @return { String }
+ */
+ readStringNT(encoding) {
+ if (typeof encoding !== 'undefined') {
+ utils_1.checkEncoding(encoding);
+ }
+ // Set null character position to the end SmartBuffer instance.
+ let nullPos = this.length;
+ // Find next null character (if one is not found, default from above is used)
+ for (let i = this._readOffset; i < this.length; i++) {
+ if (this._buff[i] === 0x00) {
+ nullPos = i;
+ break;
+ }
+ }
+ // Read string value
+ const value = this._buff.slice(this._readOffset, nullPos);
+ // Increment internal Buffer read offset
+ this._readOffset = nullPos + 1;
+ return value.toString(encoding || this._encoding);
+ }
+ /**
+ * Inserts a null-terminated String.
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ insertStringNT(value, offset, encoding) {
+ utils_1.checkOffsetValue(offset);
+ // Write Values
+ this.insertString(value, offset, encoding);
+ this.insertUInt8(0x00, offset + value.length);
+ }
+ /**
+ * Writes a null-terminated String.
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ writeStringNT(value, arg2, encoding) {
+ // Write Values
+ this.writeString(value, arg2, encoding);
+ this.writeUInt8(0x00, typeof arg2 === 'number' ? arg2 + value.length : this.writeOffset);
+ }
+ // Buffers
+ /**
+ * Reads a Buffer from the internal read position.
+ *
+ * @param length { Number } The length of data to read as a Buffer.
+ *
+ * @return { Buffer }
+ */
+ readBuffer(length) {
+ if (typeof length !== 'undefined') {
+ utils_1.checkLengthValue(length);
+ }
+ const lengthVal = typeof length === 'number' ? length : this.length;
+ const endPoint = Math.min(this.length, this._readOffset + lengthVal);
+ // Read buffer value
+ const value = this._buff.slice(this._readOffset, endPoint);
+ // Increment internal Buffer read offset
+ this._readOffset = endPoint;
+ return value;
+ }
+ /**
+ * Writes a Buffer to the current write position.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ insertBuffer(value, offset) {
+ utils_1.checkOffsetValue(offset);
+ return this._handleBuffer(value, true, offset);
+ }
+ /**
+ * Writes a Buffer to the current write position.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ writeBuffer(value, offset) {
+ return this._handleBuffer(value, false, offset);
+ }
+ /**
+ * Reads a null-terminated Buffer from the current read poisiton.
+ *
+ * @return { Buffer }
+ */
+ readBufferNT() {
+ // Set null character position to the end SmartBuffer instance.
+ let nullPos = this.length;
+ // Find next null character (if one is not found, default from above is used)
+ for (let i = this._readOffset; i < this.length; i++) {
+ if (this._buff[i] === 0x00) {
+ nullPos = i;
+ break;
+ }
+ }
+ // Read value
+ const value = this._buff.slice(this._readOffset, nullPos);
+ // Increment internal Buffer read offset
+ this._readOffset = nullPos + 1;
+ return value;
+ }
+ /**
+ * Inserts a null-terminated Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ insertBufferNT(value, offset) {
+ utils_1.checkOffsetValue(offset);
+ // Write Values
+ this.insertBuffer(value, offset);
+ this.insertUInt8(0x00, offset + value.length);
+ return this;
+ }
+ /**
+ * Writes a null-terminated Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ writeBufferNT(value, offset) {
+ // Checks for valid numberic value;
+ if (typeof offset !== 'undefined') {
+ utils_1.checkOffsetValue(offset);
+ }
+ // Write Values
+ this.writeBuffer(value, offset);
+ this.writeUInt8(0x00, typeof offset === 'number' ? offset + value.length : this._writeOffset);
+ return this;
+ }
+ /**
+ * Clears the SmartBuffer instance to its original empty state.
+ */
+ clear() {
+ this._writeOffset = 0;
+ this._readOffset = 0;
+ this.length = 0;
+ return this;
+ }
+ /**
+ * Gets the remaining data left to be read from the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ remaining() {
+ return this.length - this._readOffset;
+ }
+ /**
+ * Gets the current read offset value of the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ get readOffset() {
+ return this._readOffset;
+ }
+ /**
+ * Sets the read offset value of the SmartBuffer instance.
+ *
+ * @param offset { Number } - The offset value to set.
+ */
+ set readOffset(offset) {
+ utils_1.checkOffsetValue(offset);
+ // Check for bounds.
+ utils_1.checkTargetOffset(offset, this);
+ this._readOffset = offset;
+ }
+ /**
+ * Gets the current write offset value of the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ get writeOffset() {
+ return this._writeOffset;
+ }
+ /**
+ * Sets the write offset value of the SmartBuffer instance.
+ *
+ * @param offset { Number } - The offset value to set.
+ */
+ set writeOffset(offset) {
+ utils_1.checkOffsetValue(offset);
+ // Check for bounds.
+ utils_1.checkTargetOffset(offset, this);
+ this._writeOffset = offset;
+ }
+ /**
+ * Gets the currently set string encoding of the SmartBuffer instance.
+ *
+ * @return { BufferEncoding } The string Buffer encoding currently set.
+ */
+ get encoding() {
+ return this._encoding;
+ }
+ /**
+ * Sets the string encoding of the SmartBuffer instance.
+ *
+ * @param encoding { BufferEncoding } The string Buffer encoding to set.
+ */
+ set encoding(encoding) {
+ utils_1.checkEncoding(encoding);
+ this._encoding = encoding;
+ }
+ /**
+ * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer)
+ *
+ * @return { Buffer } The Buffer value.
+ */
+ get internalBuffer() {
+ return this._buff;
+ }
+ /**
+ * Gets the value of the internal managed Buffer (Includes managed data only)
+ *
+ * @param { Buffer }
+ */
+ toBuffer() {
+ return this._buff.slice(0, this.length);
+ }
+ /**
+ * Gets the String value of the internal managed Buffer
+ *
+ * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding).
+ */
+ toString(encoding) {
+ const encodingVal = typeof encoding === 'string' ? encoding : this._encoding;
+ // Check for invalid encoding.
+ utils_1.checkEncoding(encodingVal);
+ return this._buff.toString(encodingVal, 0, this.length);
+ }
+ /**
+ * Destroys the SmartBuffer instance.
+ */
+ destroy() {
+ this.clear();
+ return this;
+ }
+ /**
+ * Handles inserting and writing strings.
+ *
+ * @param value { String } The String value to insert.
+ * @param isInsert { Boolean } True if inserting a string, false if writing.
+ * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ _handleString(value, isInsert, arg3, encoding) {
+ let offsetVal = this._writeOffset;
+ let encodingVal = this._encoding;
+ // Check for offset
+ if (typeof arg3 === 'number') {
+ offsetVal = arg3;
+ // Check for encoding
+ }
+ else if (typeof arg3 === 'string') {
+ utils_1.checkEncoding(arg3);
+ encodingVal = arg3;
+ }
+ // Check for encoding (third param)
+ if (typeof encoding === 'string') {
+ utils_1.checkEncoding(encoding);
+ encodingVal = encoding;
+ }
+ // Calculate bytelength of string.
+ const byteLength = Buffer.byteLength(value, encodingVal);
+ // Ensure there is enough internal Buffer capacity.
+ if (isInsert) {
+ this.ensureInsertable(byteLength, offsetVal);
+ }
+ else {
+ this._ensureWriteable(byteLength, offsetVal);
+ }
+ // Write value
+ this._buff.write(value, offsetVal, byteLength, encodingVal);
+ // Increment internal Buffer write offset;
+ if (isInsert) {
+ this._writeOffset += byteLength;
+ }
+ else {
+ // If an offset was given, check to see if we wrote beyond the current writeOffset.
+ if (typeof arg3 === 'number') {
+ this._writeOffset = Math.max(this._writeOffset, offsetVal + byteLength);
+ }
+ else {
+ // If no offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.
+ this._writeOffset += byteLength;
+ }
+ }
+ return this;
+ }
+ /**
+ * Handles writing or insert of a Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ _handleBuffer(value, isInsert, offset) {
+ const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;
+ // Ensure there is enough internal Buffer capacity.
+ if (isInsert) {
+ this.ensureInsertable(value.length, offsetVal);
+ }
+ else {
+ this._ensureWriteable(value.length, offsetVal);
+ }
+ // Write buffer value
+ value.copy(this._buff, offsetVal);
+ // Increment internal Buffer write offset;
+ if (isInsert) {
+ this._writeOffset += value.length;
+ }
+ else {
+ // If an offset was given, check to see if we wrote beyond the current writeOffset.
+ if (typeof offset === 'number') {
+ this._writeOffset = Math.max(this._writeOffset, offsetVal + value.length);
+ }
+ else {
+ // If no offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.
+ this._writeOffset += value.length;
+ }
+ }
+ return this;
+ }
+ /**
+ * Ensures that the internal Buffer is large enough to read data.
+ *
+ * @param length { Number } The length of the data that needs to be read.
+ * @param offset { Number } The offset of the data that needs to be read.
+ */
+ ensureReadable(length, offset) {
+ // Offset value defaults to managed read offset.
+ let offsetVal = this._readOffset;
+ // If an offset was provided, use it.
+ if (typeof offset !== 'undefined') {
+ // Checks for valid numberic value;
+ utils_1.checkOffsetValue(offset);
+ // Overide with custom offset.
+ offsetVal = offset;
+ }
+ // Checks if offset is below zero, or the offset+length offset is beyond the total length of the managed data.
+ if (offsetVal < 0 || offsetVal + length > this.length) {
+ throw new Error(utils_1.ERRORS.INVALID_READ_BEYOND_BOUNDS);
+ }
+ }
+ /**
+ * Ensures that the internal Buffer is large enough to insert data.
+ *
+ * @param dataLength { Number } The length of the data that needs to be written.
+ * @param offset { Number } The offset of the data to be written.
+ */
+ ensureInsertable(dataLength, offset) {
+ // Checks for valid numberic value;
+ utils_1.checkOffsetValue(offset);
+ // Ensure there is enough internal Buffer capacity.
+ this._ensureCapacity(this.length + dataLength);
+ // If an offset was provided and its not the very end of the buffer, copy data into appropriate location in regards to the offset.
+ if (offset < this.length) {
+ this._buff.copy(this._buff, offset + dataLength, offset, this._buff.length);
+ }
+ // Adjust tracked smart buffer length
+ if (offset + dataLength > this.length) {
+ this.length = offset + dataLength;
+ }
+ else {
+ this.length += dataLength;
+ }
+ }
+ /**
+ * Ensures that the internal Buffer is large enough to write data.
+ *
+ * @param dataLength { Number } The length of the data that needs to be written.
+ * @param offset { Number } The offset of the data to be written (defaults to writeOffset).
+ */
+ _ensureWriteable(dataLength, offset) {
+ const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;
+ // Ensure enough capacity to write data.
+ this._ensureCapacity(offsetVal + dataLength);
+ // Adjust SmartBuffer length (if offset + length is larger than managed length, adjust length)
+ if (offsetVal + dataLength > this.length) {
+ this.length = offsetVal + dataLength;
+ }
+ }
+ /**
+ * Ensures that the internal Buffer is large enough to write at least the given amount of data.
+ *
+ * @param minLength { Number } The minimum length of the data needs to be written.
+ */
+ _ensureCapacity(minLength) {
+ const oldLength = this._buff.length;
+ if (minLength > oldLength) {
+ let data = this._buff;
+ let newLength = oldLength * 3 / 2 + 1;
+ if (newLength < minLength) {
+ newLength = minLength;
+ }
+ this._buff = Buffer.allocUnsafe(newLength);
+ data.copy(this._buff, 0, 0, oldLength);
+ }
+ }
+ /**
+ * Reads a numeric number value using the provided function.
+ *
+ * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes read.
+ * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead.
+ *
+ * @param { Number }
+ */
+ _readNumberValue(func, byteSize, offset) {
+ this.ensureReadable(byteSize, offset);
+ // Call Buffer.readXXXX();
+ const value = func.call(this._buff, typeof offset === 'number' ? offset : this._readOffset);
+ // Adjust internal read offset if an optional read offset was not provided.
+ if (typeof offset === 'undefined') {
+ this._readOffset += byteSize;
+ }
+ return value;
+ }
+ /**
+ * Inserts a numeric number value based on the given offset and value.
+ *
+ * @param func { Function(offset: number, offset?) => number} The function to write data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes written.
+ * @param value { Number } The number value to write.
+ * @param offset { Number } the offset to write the number at (REQUIRED).
+ *
+ */
+ _insertNumberValue(func, byteSize, value, offset) {
+ // Check for invalid offset values.
+ utils_1.checkOffsetValue(offset);
+ // Ensure there is enough internal Buffer capacity. (raw offset is passed)
+ this.ensureInsertable(byteSize, offset);
+ // Call buffer.writeXXXX();
+ func.call(this._buff, value, offset);
+ // Adjusts internally managed write offset.
+ this._writeOffset += byteSize;
+ }
+ /**
+ * Writes a numeric number value based on the given offset and value.
+ *
+ * @param func { Function(offset: number, offset?) => number} The function to write data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes written.
+ * @param value { Number } The number value to write.
+ * @param offset { Number } the offset to write the number at (REQUIRED).
+ *
+ */
+ _writeNumberValue(func, byteSize, value, offset) {
+ // If an offset was provided, validate it.
+ if (typeof offset === 'number') {
+ // Check if we're writing beyond the bounds of the managed data.
+ if (offset < 0) {
+ throw new Error(utils_1.ERRORS.INVALID_WRITE_BEYOND_BOUNDS);
+ }
+ utils_1.checkOffsetValue(offset);
+ }
+ // Default to writeOffset if no offset value was given.
+ const offsetVal = typeof offset === 'number' ? offset : this._writeOffset;
+ // Ensure there is enough internal Buffer capacity. (raw offset is passed)
+ this._ensureWriteable(byteSize, offsetVal);
+ func.call(this._buff, value, offsetVal);
+ // If an offset was given, check to see if we wrote beyond the current writeOffset.
+ if (typeof offset === 'number') {
+ this._writeOffset = Math.max(this._writeOffset, offsetVal + byteSize);
+ }
+ else {
+ // If no numeric offset was given, we wrote to the end of the SmartBuffer so increment writeOffset.
+ this._writeOffset += byteSize;
+ }
+ }
+}
+exports.SmartBuffer = SmartBuffer;
+//# sourceMappingURL=smartbuffer.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map b/deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map
new file mode 100644
index 0000000000..4a1efcd055
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/build/smartbuffer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"smartbuffer.js","sourceRoot":"","sources":["../src/smartbuffer.ts"],"names":[],"mappings":";;AAAA,mCAAwH;AAcxH,kDAAkD;AAClD,MAAM,wBAAwB,GAAW,IAAI,CAAC;AAE9C,kEAAkE;AAClE,MAAM,4BAA4B,GAAmB,MAAM,CAAC;AAE5D;IAQE;;;;SAIK;IACL,YAAY,OAA4B;QAZjC,WAAM,GAAW,CAAC,CAAC;QAElB,cAAS,GAAmB,4BAA4B,CAAC;QAEzD,iBAAY,GAAW,CAAC,CAAC;QACzB,gBAAW,GAAW,CAAC,CAAC;QAQ9B,EAAE,CAAC,CAAC,WAAW,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9C,sBAAsB;YACtB,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrB,qBAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;YACpC,CAAC;YAED,iCAAiC;YACjC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACjB,EAAE,CAAC,CAAC,uBAAe,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAChD,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,cAAM,CAAC,wBAAwB,CAAC,CAAC;gBACnD,CAAC;gBACD,2BAA2B;YAC7B,CAAC;YAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxB,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC;oBACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;oBAC1B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBACpC,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACN,MAAM,IAAI,KAAK,CAAC,cAAM,CAAC,0BAA0B,CAAC,CAAC;gBACrD,CAAC;YACH,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,mEAAmE;YACnE,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC;gBACnC,MAAM,IAAI,KAAK,CAAC,cAAM,CAAC,0BAA0B,CAAC,CAAC;YACrD,CAAC;YAED,oCAAoC;YACpC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;;;;;;SAOK;IACE,MAAM,CAAC,QAAQ,CAAC,IAAY,EAAE,QAAyB;QAC5D,MAAM,CAAC,IAAI,IAAI,CAAC;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;SAOK;IACE,MAAM,CAAC,UAAU,CAAC,IAAY,EAAE,QAAyB;QAC9D,MAAM,CAAC,IAAI,IAAI,CAAC;YACd,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;;;SAIK;IACE,MAAM,CAAC,WAAW,CAAC,OAA2B;QACnD,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;SAEK;IACL,MAAM,CAAC,oBAAoB,CAAC,OAA2B;QACrD,MAAM,WAAW,GAAuB,OAAO,CAAC;QAEhD,MAAM,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;IACjI,CAAC;IAED,kBAAkB;IAElB;;;;;SAKK;IACL,QAAQ,CAAC,MAAe;QACtB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;SAOK;IACL,SAAS,CAAC,KAAa,EAAE,MAAe;QACtC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,UAAU,CAAC,KAAa,EAAE,MAAc;QACtC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,oBAAoB;IAEpB;;;;;SAKK;IACL,SAAS,CAAC,MAAe;QACvB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACtE,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;SAOK;IACL,UAAU,CAAC,KAAa,EAAE,MAAe;QACvC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACtE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,WAAW,CAAC,KAAa,EAAE,MAAc;QACvC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACvE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,iBAAiB;IAEjB;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,MAAe;QACzB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,YAAY,CAAC,KAAa,EAAE,MAAe;QACzC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACxE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAc;QACzC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,wBAAwB;IAExB;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,MAAe;QAC1B,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED,UAAU;IAEV;;;;;;;;SAQK;IACL,UAAU,CAAC,IAA8B,EAAE,QAAyB;QAClE,IAAI,SAAS,CAAC;QAEd,kBAAkB;QAClB,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC7B,wBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,QAAQ,GAAG,IAAI,CAAC;YAChB,SAAS,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;QAC7C,CAAC;QAED,iBAAiB;QACjB,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACpC,qBAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpH,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED;;;;;;SAMK;IACL,YAAY,CAAC,KAAa,EAAE,MAAc,EAAE,QAAyB;QACnE,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;;SAMK;IACL,WAAW,CAAC,KAAa,EAAE,IAA8B,EAAE,QAAyB;QAClF,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;SAMK;IACL,YAAY,CAAC,QAAyB;QACpC,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,WAAW,CAAC,CAAC,CAAC;YACpC,qBAAa,CAAC,QAAQ,CAAC,CAAC;QAC1B,CAAC;QAED,+DAA+D;QAC/D,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,6EAA6E;QAC7E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,CAAC,CAAC;gBACZ,KAAK,CAAC;YACR,CAAC;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE1D,wCAAwC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;QAE/B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;SAMK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc,EAAE,QAAyB;QACrE,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,eAAe;QACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED;;;;;;SAMK;IACL,aAAa,CAAC,KAAa,EAAE,IAA8B,EAAE,QAAyB;QACpF,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3F,CAAC;IAED,UAAU;IAEV;;;;;;SAMK;IACL,UAAU,CAAC,MAAe;QACxB,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;QAErE,oBAAoB;QACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAE3D,wCAAwC;QACxC,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED;;;;;SAKK;IACL,YAAY,CAAC,KAAa,EAAE,MAAc;QACxC,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,CAAC;IAED;;;;;SAKK;IACL,WAAW,CAAC,KAAa,EAAE,MAAe;QACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;;;SAIK;IACL,YAAY;QACV,+DAA+D;QAC/D,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAE1B,6EAA6E;QAC7E,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC3B,OAAO,GAAG,CAAC,CAAC;gBACZ,KAAK,CAAC;YACR,CAAC;QACH,CAAC;QAED,aAAa;QACb,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAE1D,wCAAwC;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED;;;;;SAKK;IACL,cAAc,CAAC,KAAa,EAAE,MAAc;QAC1C,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,eAAe;QACf,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;SAKK;IACL,aAAa,CAAC,KAAa,EAAE,MAAe;QAC1C,mCAAmC;QACnC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,eAAe;QACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE9F,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;SAEK;IACL,KAAK;QACH,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;SAIK;IACL,SAAS;QACP,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC;IACxC,CAAC;IAED;;;;SAIK;IACL,IAAI,UAAU;QACZ,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;;;SAIK;IACL,IAAI,UAAU,CAAC,MAAc;QAC3B,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,oBAAoB;QACpB,yBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED;;;;SAIK;IACL,IAAI,WAAW;QACb,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;;;SAIK;IACL,IAAI,WAAW,CAAC,MAAc;QAC5B,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,oBAAoB;QACpB,yBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;IAC7B,CAAC;IAED;;;;SAIK;IACL,IAAI,QAAQ;QACV,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;;SAIK;IACL,IAAI,QAAQ,CAAC,QAAwB;QACnC,qBAAa,CAAC,QAAQ,CAAC,CAAC;QAExB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED;;;;SAIK;IACL,IAAI,cAAc;QAChB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;SAIK;IACL,QAAQ;QACN,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED;;;;SAIK;IACL,QAAQ,CAAC,QAAyB;QAChC,MAAM,WAAW,GAAG,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAE7E,8BAA8B;QAC9B,qBAAa,CAAC,WAAW,CAAC,CAAC;QAE3B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1D,CAAC;IAED;;SAEK;IACL,OAAO;QACL,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;SAOK;IACG,aAAa,CAAC,KAAa,EAAE,QAAiB,EAAE,IAA8B,EAAE,QAAyB;QAC/G,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC;QAClC,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QAEjC,mBAAmB;QACnB,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC7B,SAAS,GAAG,IAAI,CAAC;YACjB,qBAAqB;QACvB,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;YACpC,qBAAa,CAAC,IAAI,CAAC,CAAC;YACpB,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC;QAED,mCAAmC;QACnC,EAAE,CAAC,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC;YACjC,qBAAa,CAAC,QAAQ,CAAC,CAAC;YACxB,WAAW,GAAG,QAAQ,CAAC;QACzB,CAAC;QAED,kCAAkC;QAClC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEzD,mDAAmD;QACnD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAC/C,CAAC;QAED,cAAc;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE5D,0CAA0C;QAC1C,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC;QAClC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,mFAAmF;YACnF,EAAE,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC;gBAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,UAAU,CAAC,CAAC;YAC1E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,2FAA2F;gBAC3F,IAAI,CAAC,YAAY,IAAI,UAAU,CAAC;YAClC,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;SAKK;IACG,aAAa,CAAC,KAAa,EAAE,QAAiB,EAAE,MAAe;QACrE,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAE1E,mDAAmD;QACnD,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACjD,CAAC;QAED,qBAAqB;QACrB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QAElC,0CAA0C;QAC1C,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,mFAAmF;YACnF,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;gBAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC5E,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,2FAA2F;gBAC3F,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,MAAM,CAAC;YACpC,CAAC;QACH,CAAC;QAED,MAAM,CAAC,IAAI,CAAC;IACd,CAAC;IAED;;;;;SAKK;IACG,cAAc,CAAC,MAAc,EAAE,MAAe;QACpD,gDAAgD;QAChD,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;QAEjC,qCAAqC;QACrC,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,mCAAmC;YACnC,wBAAgB,CAAC,MAAM,CAAC,CAAC;YAEzB,8BAA8B;YAC9B,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QAED,8GAA8G;QAC9G,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,cAAM,CAAC,0BAA0B,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED;;;;;SAKK;IACG,gBAAgB,CAAC,UAAkB,EAAE,MAAc;QACzD,mCAAmC;QACnC,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,mDAAmD;QACnD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;QAE/C,kIAAkI;QAClI,EAAE,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9E,CAAC;QAED,qCAAqC;QACrC,EAAE,CAAC,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;QACpC,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;;;SAKK;IACG,gBAAgB,CAAC,UAAkB,EAAE,MAAe;QAC1D,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAE1E,wCAAwC;QACxC,IAAI,CAAC,eAAe,CAAC,SAAS,GAAG,UAAU,CAAC,CAAC;QAE7C,8FAA8F;QAC9F,EAAE,CAAC,CAAC,SAAS,GAAG,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;SAIK;IACG,eAAe,CAAC,SAAiB;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAEpC,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YACtB,IAAI,SAAS,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACtC,EAAE,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;gBAC1B,SAAS,GAAG,SAAS,CAAC;YACxB,CAAC;YACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAED;;;;;;;;SAQK;IACG,gBAAgB,CAAC,IAAgC,EAAE,QAAgB,EAAE,MAAe;QAC1F,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEtC,0BAA0B;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAE5F,2EAA2E;QAC3E,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC;YAClC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC;QAC/B,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;SAQK;IACG,kBAAkB,CAAC,IAAgD,EAAE,QAAgB,EAAE,KAAa,EAAE,MAAc;QAC1H,mCAAmC;QACnC,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAEzB,0EAA0E;QAC1E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAExC,2BAA2B;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAErC,2CAA2C;QAC3C,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;IAChC,CAAC;IAED;;;;;;;;SAQK;IACG,iBAAiB,CAAC,IAAgD,EAAE,QAAgB,EAAE,KAAa,EAAE,MAAe;QAC1H,0CAA0C;QAC1C,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC/B,gEAAgE;YAChE,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,cAAM,CAAC,2BAA2B,CAAC,CAAC;YACtD,CAAC;YAED,wBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAE1E,0EAA0E;QAC1E,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAE3C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;QAExC,mFAAmF;QACnF,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,SAAS,GAAG,QAAQ,CAAC,CAAC;QACxE,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,mGAAmG;YACnG,IAAI,CAAC,YAAY,IAAI,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;CACF;AAE4B,kCAAW"} \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/build/utils.js b/deps/npm/node_modules/smart-buffer/build/utils.js
new file mode 100644
index 0000000000..76b330cd9a
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/build/utils.js
@@ -0,0 +1,95 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Error strings
+ */
+const ERRORS = {
+ INVALID_ENCODING: 'Invalid encoding provided. Please specify a valid encoding the internal Node.js Buffer supports.',
+ INVALID_SMARTBUFFER_SIZE: 'Invalid size provided. Size must be a valid integer greater than zero.',
+ INVALID_SMARTBUFFER_BUFFER: 'Invalid Buffer provided in SmartBufferOptions.',
+ INVALID_SMARTBUFFER_OBJECT: 'Invalid SmartBufferOptions object supplied to SmartBuffer constructor or factory methods.',
+ INVALID_OFFSET: 'An invalid offset value was provided.',
+ INVALID_OFFSET_NON_NUMBER: 'An invalid offset value was provided. A numeric value is required.',
+ INVALID_LENGTH: 'An invalid length value was provided.',
+ INVALID_LENGTH_NON_NUMBER: 'An invalid length value was provived. A numeric value is required.',
+ INVALID_TARGET_OFFSET: 'Target offset is beyond the bounds of the internal SmartBuffer data.',
+ INVALID_TARGET_LENGTH: 'Specified length value moves cursor beyong the bounds of the internal SmartBuffer data.',
+ INVALID_READ_BEYOND_BOUNDS: 'Attempted to read beyond the bounds of the managed data.',
+ INVALID_WRITE_BEYOND_BOUNDS: 'Attempted to write beyond the bounds of the managed data.'
+};
+exports.ERRORS = ERRORS;
+/**
+ * Checks if a given encoding is a valid Buffer encoding. (Throws an exception if check fails)
+ *
+ * @param { String } encoding The encoding string to check.
+ */
+function checkEncoding(encoding) {
+ if (!Buffer.isEncoding(encoding)) {
+ throw new Error(ERRORS.INVALID_ENCODING);
+ }
+}
+exports.checkEncoding = checkEncoding;
+/**
+ * Checks if a given number is a finite integer. (Throws an exception if check fails)
+ *
+ * @param { Number } value The number value to check.
+ */
+function isFiniteInteger(value) {
+ return typeof value === 'number' && isFinite(value) && isInteger(value);
+}
+exports.isFiniteInteger = isFiniteInteger;
+/**
+ * Checks if an offset/length value is valid. (Throws an exception if check fails)
+ *
+ * @param value The value to check.
+ * @param offset True if checking an offset, false if checking a length.
+ */
+function checkOffsetOrLengthValue(value, offset) {
+ if (typeof value === 'number') {
+ // Check for non finite/non integers
+ if (!isFiniteInteger(value) || value < 0) {
+ throw new Error(offset ? ERRORS.INVALID_OFFSET : ERRORS.INVALID_LENGTH);
+ }
+ }
+ else {
+ throw new Error(offset ? ERRORS.INVALID_OFFSET_NON_NUMBER : ERRORS.INVALID_LENGTH_NON_NUMBER);
+ }
+}
+/**
+ * Checks if a length value is valid. (Throws an exception if check fails)
+ *
+ * @param { Number } length The value to check.
+ */
+function checkLengthValue(length) {
+ checkOffsetOrLengthValue(length, false);
+}
+exports.checkLengthValue = checkLengthValue;
+/**
+ * Checks if a offset value is valid. (Throws an exception if check fails)
+ *
+ * @param { Number } offset The value to check.
+ */
+function checkOffsetValue(offset) {
+ checkOffsetOrLengthValue(offset, true);
+}
+exports.checkOffsetValue = checkOffsetValue;
+/**
+ * Checks if a target offset value is out of bounds. (Throws an exception if check fails)
+ *
+ * @param { Number } offset The offset value to check.
+ * @param { SmartBuffer } buff The SmartBuffer instance to check against.
+ */
+function checkTargetOffset(offset, buff) {
+ if (offset < 0 || offset > buff.length) {
+ throw new Error(ERRORS.INVALID_TARGET_OFFSET);
+ }
+}
+exports.checkTargetOffset = checkTargetOffset;
+/**
+ * Determines whether a given number is a integer.
+ * @param value The number to check.
+ */
+function isInteger(value) {
+ return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
+}
+//# sourceMappingURL=utils.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/build/utils.js.map b/deps/npm/node_modules/smart-buffer/build/utils.js.map
new file mode 100644
index 0000000000..905148c086
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/build/utils.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;AAEA;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,gBAAgB,EAAE,kGAAkG;IACpH,wBAAwB,EAAE,wEAAwE;IAClG,0BAA0B,EAAE,gDAAgD;IAC5E,0BAA0B,EAAE,2FAA2F;IACvH,cAAc,EAAE,uCAAuC;IACvD,yBAAyB,EAAE,oEAAoE;IAC/F,cAAc,EAAE,uCAAuC;IACvD,yBAAyB,EAAE,oEAAoE;IAC/F,qBAAqB,EAAE,sEAAsE;IAC7F,qBAAqB,EAAE,yFAAyF;IAChH,0BAA0B,EAAE,0DAA0D;IACtF,2BAA2B,EAAE,2DAA2D;CACzF,CAAC;AA6EO,wBAAM;AA3Ef;;;;GAIG;AACH,uBAAuB,QAAwB;IAC7C,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAkEiC,sCAAa;AAhE/C;;;;GAIG;AACH,yBAAyB,KAAa;IACpC,MAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC;AAyDgB,0CAAe;AAvDhC;;;;;GAKG;AACH,kCAAkC,KAAU,EAAE,MAAe;IAC3D,EAAE,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC;QAC9B,oCAAoC;QACpC,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC;IAAC,IAAI,CAAC,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;IAChG,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,0BAA0B,MAAW;IACnC,wBAAwB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC1C,CAAC;AA+BkE,4CAAgB;AA7BnF;;;;GAIG;AACH,0BAA0B,MAAW;IACnC,wBAAwB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACzC,CAAC;AAsBgD,4CAAgB;AApBjE;;;;;GAKG;AACH,2BAA2B,MAAc,EAAE,IAAiB;IAC1D,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAChD,CAAC;AACH,CAAC;AAUoF,8CAAiB;AARtG;;;GAGG;AACH,mBAAmB,KAAa;IAC9B,MAAM,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC;AACrF,CAAC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md b/deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md
new file mode 100644
index 0000000000..15c02d50f3
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/docs/CHANGELOG.md
@@ -0,0 +1,65 @@
+# Change Log
+## 4.0
+> Released 10/21/2017
+* Major breaking changes arriving in v4.
+
+### New Features
+* Ability to read data from a specific offset. ex: readInt8(5)
+* Ability to write over data when an offset is given (see breaking changes) ex: writeInt8(5, 0);
+* Ability to set internal read and write offsets.
+
+
+
+### Breaking Changes
+
+* Old constructor patterns have been completely removed. It's now required to use the SmartBuffer.fromXXX() factory constructors. Read more on the v4 docs.
+* rewind(), skip(), moveTo() have been removed.
+* Internal private properties are now prefixed with underscores (_).
+* **All** writeXXX() methods that are given an offset will now **overwrite data** instead of insert
+* insertXXX() methods have been added for when you want to insert data at a specific offset (this replaces the old behavior of writeXXX() when an offset was provided)
+
+
+### Other Changes
+* Standardizd error messaging
+* Standardized offset/length bounds and sanity checking
+* General overall cleanup of code.
+
+## 3.0.3
+> Released 02/19/2017
+* Adds missing type definitions for some internal functions.
+
+## 3.0.2
+> Released 02/17/2017
+
+### Bug Fixes
+* Fixes a bug where using readString with a length of zero resulted in reading the remaining data instead of returning an empty string. (Fixed by Seldszar)
+
+## 3.0.1
+> Released 02/15/2017
+
+### Bug Fixes
+* Fixes a bug leftover from the TypeScript refactor where .readIntXXX() resulted in .readUIntXXX() being called by mistake.
+
+## 3.0
+> Released 02/12/2017
+
+### Bug Fixes
+* readUIntXXXX() methods will now throw an exception if they attempt to read beyond the bounds of the valid buffer data available.
+ * **Note** This is technically a breaking change, so version is bumped to 3.x.
+
+## 2.0
+> Relased 01/30/2017
+
+### New Features:
+
+* Entire package re-written in TypeScript (2.1)
+* Backwards compatibility is preserved for now
+* New factory methods for creating SmartBuffer instances
+ * SmartBuffer.fromSize()
+ * SmartBuffer.fromBuffer()
+ * SmartBuffer.fromOptions()
+* New SmartBufferOptions constructor options
+* Added additional tests
+
+### Bug Fixes:
+* Fixes a bug where reading null terminated strings may result in an exception.
diff --git a/deps/npm/node_modules/smart-buffer/docs/README_v3.md b/deps/npm/node_modules/smart-buffer/docs/README_v3.md
new file mode 100644
index 0000000000..638f188d41
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/docs/README_v3.md
@@ -0,0 +1,359 @@
+smart-buffer [![Build Status](https://travis-ci.org/JoshGlazebrook/smart-buffer.svg?branch=master)](https://travis-ci.org/JoshGlazebrook/smart-buffer) [![Coverage Status](https://coveralls.io/repos/github/JoshGlazebrook/smart-buffer/badge.svg?branch=master)](https://coveralls.io/github/JoshGlazebrook/smart-buffer?branch=master)
+=============
+
+smart-buffer is a light Buffer wrapper that takes away the need to keep track of what position to read and write data to and from the underlying Buffer. It also adds null terminating string operations and **grows** as you add more data.
+
+![stats](https://nodei.co/npm/smart-buffer.png?downloads=true&downloadRank=true&stars=true "stats")
+
+### What it's useful for:
+
+I created smart-buffer because I wanted to simplify the process of using Buffer for building and reading network packets to send over a socket. Rather than having to keep track of which position I need to write a UInt16 to after adding a string of variable length, I simply don't have to.
+
+Key Features:
+* Proxies all of the Buffer write and read functions.
+* Keeps track of read and write positions for you.
+* Grows the internal Buffer as you add data to it.
+* Useful string operations. (Null terminating strings)
+* Allows for inserting values at specific points in the internal Buffer.
+* Built in TypeScript
+* Type Definitions Provided
+
+Requirements:
+* Node v4.0+ is supported at this time. (Versions prior to 2.0 will work on node 0.10)
+
+
+#### Note:
+smart-buffer can be used for writing to an underlying buffer as well as reading from it. It however does not function correctly if you're mixing both read and write operations with each other.
+
+## Breaking Changes with 2.0
+The latest version (2.0+) is written in TypeScript, and are compiled to ES6 Javascript. This means the earliest Node.js it supports will be 4.x (in strict mode.) If you're using version 6 and above it will work without any issues. From an API standpoint, 2.0 is backwards compatible. The only difference is SmartBuffer is not exported directly as the root module.
+
+## Breaking Changes with 3.0
+Starting with 3.0, if any of the readIntXXXX() methods are called and the requested data is larger than the bounds of the internally managed valid buffer data, an exception will now be thrown.
+
+## Installing:
+
+`npm install smart-buffer`
+
+or
+
+`yarn add smart-buffer`
+
+Note: The published NPM package includes the built javascript library.
+If you cloned this repo and wish to build the library manually use:
+
+`tsc -p ./`
+
+## Using smart-buffer
+
+### Example
+
+Say you were building a packet that had to conform to the following protocol:
+
+`[PacketType:2][PacketLength:2][Data:XX]`
+
+To build this packet using the vanilla Buffer class, you would have to count up the length of the data payload beforehand. You would also need to keep track of the current "cursor" position in your Buffer so you write everything in the right places. With smart-buffer you don't have to do either of those things.
+
+```javascript
+// 1.x (javascript)
+var SmartBuffer = require('smart-buffer');
+
+// 1.x (typescript)
+import SmartBuffer = require('smart-buffer');
+
+// 2.x+ (javascript)
+const SmartBuffer = require('smart-buffer').SmartBuffer;
+
+// 2.x+ (typescript)
+import { SmartBuffer, SmartBufferOptions} from 'smart-buffer';
+
+function createLoginPacket(username, password, age, country) {
+ let packet = new SmartBuffer();
+ packet.writeUInt16LE(0x0060); // Login Packet Type/ID
+ packet.writeStringNT(username);
+ packet.writeStringNT(password);
+ packet.writeUInt8(age);
+ packet.writeStringNT(country);
+ packet.writeUInt16LE(packet.length - 2, 2);
+
+ return packet.toBuffer();
+}
+```
+With the above function, you now can do this:
+```javascript
+let login = createLoginPacket("Josh", "secret123", 22, "United States");
+
+// <Buffer 60 00 1e 00 4a 6f 73 68 00 73 65 63 72 65 74 31 32 33 00 16 55 6e 69 74 65 64 20 53 74 61 74 65 73 00>
+```
+Notice that the `[PacketLength:2]` part of the packet was inserted after we had added everything else, and as shown in the Buffer dump above, is in the correct location along with everything else.
+
+Reading back the packet we created above is just as easy:
+```javascript
+
+let reader = SmartBuffer.fromBuffer(login);
+
+let logininfo = {
+ packetType: reader.readUInt16LE(),
+ packetLength: reader.readUInt16LE(),
+ username: reader.readStringNT(),
+ password: reader.readStringNT(),
+ age: reader.readUInt8(),
+ country: reader.readStringNT()
+};
+
+/*
+{
+ packetType: 96, (0x0060)
+ packetLength: 30,
+ username: 'Josh',
+ password: 'secret123',
+ age: 22,
+ country: 'United States'
+};
+*/
+```
+
+# Api Reference:
+
+### Constructing a smart-buffer
+
+smart-buffer has a few different ways to construct an instance. Starting with version 2.0, the following factory methods are preffered.
+
+```javascript
+let SmartBuffer = require('smart-buffer');
+
+// Creating SmartBuffer from existing Buffer
+let buff = SmartBuffer.fromBuffer(buffer); // Creates instance from buffer. (Uses default utf8 encoding)
+let buff = SmartBuffer.fromBuffer(buffer, 'ascii'); // Creates instance from buffer with ascii encoding for Strings.
+
+// Creating SmartBuffer with specified internal Buffer size.
+let buff = SmartBuffer.fromSize(1024); // Creates instance with internal Buffer size of 1024.
+let buff = SmartBuffer.fromSize(1024, 'utf8'); // Creates instance with intenral Buffer size of 1024, and utf8 encoding.
+
+// Creating SmartBuffer with options object. This one specifies size and encoding.
+let buff = SmartBuffer.fromOptions({
+ size: 1024,
+ encoding: 'ascii'
+});
+
+// Creating SmartBuffer with options object. This one specified an existing Buffer.
+let buff = SmartBuffer.fromOptions({
+ buff: buffer
+});
+
+// Just want a regular SmartBuffer with all default options?
+let buff = new SmartBuffer();
+```
+
+## Backwards Compatibility:
+
+All constructors used prior to 2.0 still are supported. However it's not recommended to use these.
+
+```javascript
+let writer = new SmartBuffer(); // Defaults to utf8, 4096 length internal Buffer.
+let writer = new SmartBuffer(1024); // Defaults to utf8, 1024 length internal Buffer.
+let writer = new SmartBuffer('ascii'); // Sets to ascii encoding, 4096 length internal buffer.
+let writer = new SmartBuffer(1024, 'ascii'); // Sets to ascii encoding, 1024 length internal buffer.
+```
+
+## Reading Data
+
+smart-buffer supports all of the common read functions you will find in the vanilla Buffer class. The only difference is, you do not need to specify which location to start reading from. This is possible because as you read data out of a smart-buffer, it automatically progresses an internal read offset/position to know where to pick up from on the next read.
+
+## Reading Numeric Values
+
+When numeric values, you simply need to call the function you want, and the data is returned.
+
+Supported Operations:
+* readInt8
+* readInt16BE
+* readInt16LE
+* readInt32BE
+* readInt32LE
+* readUInt8
+* readUInt16BE
+* readUInt16LE
+* readUInt32BE
+* readUInt32LE
+* readFloatBE
+* readFloatLE
+* readDoubleBE
+* readDoubleLE
+
+```javascript
+let reader = new SmartBuffer(somebuffer);
+let num = reader.readInt8();
+```
+
+## Reading String Values
+
+When reading String values, you can either choose to read a null terminated string, or a string of a specified length.
+
+### SmartBuffer.readStringNT( [encoding] )
+> `String` **String encoding to use** - Defaults to the encoding set in the constructor.
+
+returns `String`
+
+> Note: When readStringNT is called and there is no null character found, smart-buffer will read to the end of the internal Buffer.
+
+### SmartBuffer.readString( [length] )
+### SmartBuffer.readString( [encoding] )
+### SmartBuffer.readString( [length], [encoding] )
+> `Number` **Length of the string to read**
+
+> `String` **String encoding to use** - Defaults to the encoding set in the constructor, or utf8.
+
+returns `String`
+
+> Note: When readString is called without a specified length, smart-buffer will read to the end of the internal Buffer.
+
+
+
+## Reading Buffer Values
+
+### SmartBuffer.readBuffer( length )
+> `Number` **Length of data to read into a Buffer**
+
+returns `Buffer`
+
+> Note: This function uses `slice` to retrieve the Buffer.
+
+
+### SmartBuffer.readBufferNT()
+
+returns `Buffer`
+
+> Note: This reads the next sequence of bytes in the buffer until a null (0x00) value is found. (Null terminated buffer)
+> Note: This function uses `slice` to retrieve the Buffer.
+
+
+## Writing Data
+
+smart-buffer supports all of the common write functions you will find in the vanilla Buffer class. The only difference is, you do not need to specify which location to write to in your Buffer by default. You do however have the option of **inserting** a piece of data into your smart-buffer at a given location.
+
+
+## Writing Numeric Values
+
+
+For numeric values, you simply need to call the function you want, and the data is written at the end of the internal Buffer's current write position. You can specify a offset/position to **insert** the given value at, but keep in mind this does not override data at the given position. This feature also does not work properly when inserting a value beyond the current internal length of the smart-buffer (length being the .length property of the smart-buffer instance you're writing to)
+
+Supported Operations:
+* writeInt8
+* writeInt16BE
+* writeInt16LE
+* writeInt32BE
+* writeInt32LE
+* writeUInt8
+* writeUInt16BE
+* writeUInt16LE
+* writeUInt32BE
+* writeUInt32LE
+* writeFloatBE
+* writeFloatLE
+* writeDoubleBE
+* writeDoubleLE
+
+The following signature is the same for all the above functions:
+
+### SmartBuffer.writeInt8( value, [offset] )
+> `Number` **A valid Int8 number**
+
+> `Number` **The position to insert this value at**
+
+returns this
+
+> Note: All write operations return `this` to allow for chaining.
+
+## Writing String Values
+
+When reading String values, you can either choose to write a null terminated string, or a non null terminated string.
+
+### SmartBuffer.writeStringNT( value, [offset], [encoding] )
+### SmartBuffer.writeStringNT( value, [offset] )
+### SmartBuffer.writeStringNT( value, [encoding] )
+> `String` **String value to write**
+
+> `Number` **The position to insert this String at**
+
+> `String` **The String encoding to use.** - Defaults to the encoding set in the constructor, or utf8.
+
+returns this
+
+### SmartBuffer.writeString( value, [offset], [encoding] )
+### SmartBuffer.writeString( value, [offset] )
+### SmartBuffer.writeString( value, [encoding] )
+> `String` **String value to write**
+
+> `Number` **The position to insert this String at**
+
+> `String` **The String encoding to use** - Defaults to the encoding set in the constructor, or utf8.
+
+returns this
+
+
+## Writing Buffer Values
+
+### SmartBuffer.writeBuffer( value, [offset] )
+> `Buffer` **Buffer value to write**
+
+> `Number` **The position to insert this Buffer's content at**
+
+returns this
+
+### SmartBuffer.writeBufferNT( value, [offset] )
+> `Buffer` **Buffer value to write**
+
+> `Number` **The position to insert this Buffer's content at**
+
+returns this
+
+
+## Utility Functions
+
+### SmartBuffer.clear()
+Resets the SmartBuffer to its default state where it can be reused for reading or writing.
+
+### SmartBuffer.remaining()
+
+returns `Number` The amount of data left to read based on the current read Position.
+
+### SmartBuffer.skip( value )
+> `Number` **The amount of bytes to skip ahead**
+
+Skips the read position ahead by the given value.
+
+returns this
+
+### SmartBuffer.rewind( value )
+> `Number` **The amount of bytes to reward backwards**
+
+Rewinds the read position backwards by the given value.
+
+returns this
+
+### SmartBuffer.moveTo( position )
+> `Number` **The point to skip the read position to**
+
+Moves the read position to the given point.
+returns this
+
+### SmartBuffer.toBuffer()
+
+returns `Buffer` A Buffer containing the contents of the internal Buffer.
+
+> Note: This uses the slice function.
+
+### SmartBuffer.toString( [encoding] )
+> `String` **The String encoding to use** - Defaults to the encoding set in the constructor, or utf8.
+
+returns `String` The internal Buffer in String representation.
+
+## Properties
+
+### SmartBuffer.length
+
+returns `Number` **The length of the data that is being tracked in the internal Buffer** - Does NOT return the absolute length of the internal Buffer being written to.
+
+## License
+
+This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License). \ No newline at end of file
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/foo b/deps/npm/node_modules/smart-buffer/docs/ROADMAP.md
index e69de29bb2..e69de29bb2 100644
--- a/deps/npm/node_modules/tar/node_modules/minipass/foo
+++ b/deps/npm/node_modules/smart-buffer/docs/ROADMAP.md
diff --git a/deps/npm/node_modules/smart-buffer/package.json b/deps/npm/node_modules/smart-buffer/package.json
new file mode 100644
index 0000000000..f5365e499c
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/package.json
@@ -0,0 +1,104 @@
+{
+ "_from": "smart-buffer@^4.0.1",
+ "_id": "smart-buffer@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg==",
+ "_location": "/smart-buffer",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "smart-buffer@^4.0.1",
+ "name": "smart-buffer",
+ "escapedName": "smart-buffer",
+ "rawSpec": "^4.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.1"
+ },
+ "_requiredBy": [
+ "/socks"
+ ],
+ "_resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz",
+ "_shasum": "07ea1ca8d4db24eb4cac86537d7d18995221ace3",
+ "_spec": "smart-buffer@^4.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/socks",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/smart-buffer/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "smart-buffer is a Buffer wrapper that adds automatic read & write offset tracking, string operations, data insertions, and more.",
+ "devDependencies": {
+ "@types/chai": "4.0.4",
+ "@types/mocha": "^2.2.44",
+ "@types/node": "^8.0.51",
+ "chai": "4.1.2",
+ "coveralls": "3.0.0",
+ "istanbul": "^0.4.5",
+ "mocha": "4.0.1",
+ "mocha-lcov-reporter": "^1.3.0",
+ "nyc": "^11.3.0",
+ "source-map-support": "0.5.0",
+ "ts-node": "3.3.0",
+ "tslint": "5.8.0",
+ "typescript": "2.6.1"
+ },
+ "engines": {
+ "node": ">= 4.0.0",
+ "npm": ">= 3.0.0"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/smart-buffer/",
+ "keywords": [
+ "buffer",
+ "smart",
+ "packet",
+ "serialize",
+ "network",
+ "cursor",
+ "simple"
+ ],
+ "license": "MIT",
+ "main": "build/smartbuffer.js",
+ "name": "smart-buffer",
+ "nyc": {
+ "extension": [
+ ".ts",
+ ".tsx"
+ ],
+ "include": [
+ "src/*.ts",
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "**.*.d.ts",
+ "node_modules",
+ "typings"
+ ],
+ "require": [
+ "ts-node/register"
+ ],
+ "reporter": [
+ "json",
+ "html"
+ ],
+ "all": true
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/smart-buffer.git"
+ },
+ "scripts": {
+ "build": "tsc -p ./",
+ "coverage": "NODE_ENV=test nyc npm test",
+ "coveralls": "NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls",
+ "lint": "tslint --type-check --project tsconfig.json 'src/**/*.ts'",
+ "prepublish": "npm install -g typescript && npm run build",
+ "test": "NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts"
+ },
+ "typings": "typings/smartbuffer.d.ts",
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts b/deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts
new file mode 100644
index 0000000000..79fa6306a4
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/typings/smartbuffer.d.ts
@@ -0,0 +1,654 @@
+/// <reference types="node" />
+declare module 'smart-buffer' {
+ /**
+ * Object interface for constructing new SmartBuffer instances.
+ */
+ interface SmartBufferOptions {
+ encoding?: BufferEncoding;
+ size?: number;
+ buff?: Buffer;
+ }
+ class SmartBuffer {
+ length: number;
+ private _encoding;
+ private _buff;
+ private _writeOffset;
+ private _readOffset;
+ /**
+ * Creates a new SmartBuffer instance.
+ *
+ * @param options { SmartBufferOptions } The SmartBufferOptions to apply to this instance.
+ */
+ constructor(options?: SmartBufferOptions);
+ /**
+ * Creates a new SmartBuffer instance with the provided internal Buffer size and optional encoding.
+ *
+ * @param size { Number } The size of the internal Buffer.
+ * @param encoding { String } The BufferEncoding to use for strings.
+ *
+ * @return { SmartBuffer }
+ */
+ static fromSize(size: number, encoding?: BufferEncoding): SmartBuffer;
+ /**
+ * Creates a new SmartBuffer instance with the provided Buffer and optional encoding.
+ *
+ * @param buffer { Buffer } The Buffer to use as the internal Buffer value.
+ * @param encoding { String } The BufferEncoding to use for strings.
+ *
+ * @return { SmartBuffer }
+ */
+ static fromBuffer(buff: Buffer, encoding?: BufferEncoding): SmartBuffer;
+ /**
+ * Creates a new SmartBuffer instance with the provided SmartBufferOptions options.
+ *
+ * @param options { SmartBufferOptions } The options to use when creating the SmartBuffer instance.
+ */
+ static fromOptions(options: SmartBufferOptions): SmartBuffer;
+ /**
+ * Type checking function that determines if an object is a SmartBufferOptions object.
+ */
+ static isSmartBufferOptions(
+ options: SmartBufferOptions
+ ): options is SmartBufferOptions;
+ /**
+ * Reads an Int8 value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt8(offset?: number): number;
+ /**
+ * Reads an Int16BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt16BE(offset?: number): number;
+ /**
+ * Reads an Int16LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt16LE(offset?: number): number;
+ /**
+ * Reads an Int32BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt32BE(offset?: number): number;
+ /**
+ * Reads an Int32LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readInt32LE(offset?: number): number;
+ /**
+ * Writes an Int8 value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt8(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an Int8 value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt8(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an Int16BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt16BE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an Int16BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt16BE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an Int16LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt16LE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an Int16LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt16LE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an Int32BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt32BE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an Int32BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt32BE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an Int32LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeInt32LE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an Int32LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertInt32LE(value: number, offset: number): SmartBuffer;
+ /**
+ * Reads an UInt8 value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt8(offset?: number): number;
+ /**
+ * Reads an UInt16BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt16BE(offset?: number): number;
+ /**
+ * Reads an UInt16LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt16LE(offset?: number): number;
+ /**
+ * Reads an UInt32BE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt32BE(offset?: number): number;
+ /**
+ * Reads an UInt32LE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readUInt32LE(offset?: number): number;
+ /**
+ * Writes an UInt8 value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt8(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an UInt8 value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt8(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an UInt16BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt16BE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an UInt16BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt16BE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an UInt16LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt16LE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an UInt16LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt16LE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an UInt32BE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt32BE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an UInt32BE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt32BE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes an UInt32LE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeUInt32LE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts an UInt32LE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertUInt32LE(value: number, offset: number): SmartBuffer;
+ /**
+ * Reads an FloatBE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readFloatBE(offset?: number): number;
+ /**
+ * Reads an FloatLE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readFloatLE(offset?: number): number;
+ /**
+ * Writes a FloatBE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeFloatBE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts a FloatBE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertFloatBE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes a FloatLE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeFloatLE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts a FloatLE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertFloatLE(value: number, offset: number): SmartBuffer;
+ /**
+ * Reads an DoublEBE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readDoubleBE(offset?: number): number;
+ /**
+ * Reads an DoubleLE value from the current read position or an optionally provided offset.
+ *
+ * @param offset { Number } The offset to read data from (optional)
+ * @return { Number }
+ */
+ readDoubleLE(offset?: number): number;
+ /**
+ * Writes a DoubleBE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeDoubleBE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts a DoubleBE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertDoubleBE(value: number, offset: number): SmartBuffer;
+ /**
+ * Writes a DoubleLE value to the current write position (or at optional offset).
+ *
+ * @param value { Number } The value to write.
+ * @param offset { Number } The offset to write the value at.
+ *
+ * @return this
+ */
+ writeDoubleLE(value: number, offset?: number): SmartBuffer;
+ /**
+ * Inserts a DoubleLE value at the given offset value.
+ *
+ * @param value { Number } The value to insert.
+ * @param offset { Number } The offset to insert the value at.
+ *
+ * @return this
+ */
+ insertDoubleLE(value: number, offset: number): SmartBuffer;
+ /**
+ * Reads a String from the current read position.
+ *
+ * @param arg1 { Number | String } The number of bytes to read as a String, or the BufferEncoding to use for
+ * the string (Defaults to instance level encoding).
+ * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
+ *
+ * @return { String }
+ */
+ readString(
+ arg1?: number | BufferEncoding,
+ encoding?: BufferEncoding
+ ): string;
+ /**
+ * Inserts a String
+ *
+ * @param value { String } The String value to insert.
+ * @param offset { Number } The offset to insert the string at.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ insertString(
+ value: string,
+ offset: number,
+ encoding?: BufferEncoding
+ ): SmartBuffer;
+ /**
+ * Writes a String
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string at, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ writeString(
+ value: string,
+ arg2?: number | BufferEncoding,
+ encoding?: BufferEncoding
+ ): SmartBuffer;
+ /**
+ * Reads a null-terminated String from the current read position.
+ *
+ * @param encoding { String } The BufferEncoding to use for the string (Defaults to instance level encoding).
+ *
+ * @return { String }
+ */
+ readStringNT(encoding?: BufferEncoding): string;
+ /**
+ * Inserts a null-terminated String.
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ insertStringNT(
+ value: string,
+ offset: number,
+ encoding?: BufferEncoding
+ ): void;
+ /**
+ * Writes a null-terminated String.
+ *
+ * @param value { String } The String value to write.
+ * @param arg2 { Number | String } The offset to write the string to, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ writeStringNT(
+ value: string,
+ arg2?: number | BufferEncoding,
+ encoding?: BufferEncoding
+ ): void;
+ /**
+ * Reads a Buffer from the internal read position.
+ *
+ * @param length { Number } The length of data to read as a Buffer.
+ *
+ * @return { Buffer }
+ */
+ readBuffer(length?: number): Buffer;
+ /**
+ * Writes a Buffer to the current write position.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ insertBuffer(value: Buffer, offset: number): SmartBuffer;
+ /**
+ * Writes a Buffer to the current write position.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ writeBuffer(value: Buffer, offset?: number): SmartBuffer;
+ /**
+ * Reads a null-terminated Buffer from the current read poisiton.
+ *
+ * @return { Buffer }
+ */
+ readBufferNT(): Buffer;
+ /**
+ * Inserts a null-terminated Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ insertBufferNT(value: Buffer, offset: number): SmartBuffer;
+ /**
+ * Writes a null-terminated Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ writeBufferNT(value: Buffer, offset?: number): SmartBuffer;
+ /**
+ * Clears the SmartBuffer instance to its original empty state.
+ */
+ clear(): SmartBuffer;
+ /**
+ * Gets the remaining data left to be read from the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ remaining(): number;
+ /**
+ * Gets the current read offset value of the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ /**
+ * Sets the read offset value of the SmartBuffer instance.
+ *
+ * @param offset { Number } - The offset value to set.
+ */
+ readOffset: number;
+ /**
+ * Gets the current write offset value of the SmartBuffer instance.
+ *
+ * @return { Number }
+ */
+ /**
+ * Sets the write offset value of the SmartBuffer instance.
+ *
+ * @param offset { Number } - The offset value to set.
+ */
+ writeOffset: number;
+ /**
+ * Gets the currently set string encoding of the SmartBuffer instance.
+ *
+ * @return { BufferEncoding } The string Buffer encoding currently set.
+ */
+ /**
+ * Sets the string encoding of the SmartBuffer instance.
+ *
+ * @param encoding { BufferEncoding } The string Buffer encoding to set.
+ */
+ encoding: BufferEncoding;
+ /**
+ * Gets the underlying internal Buffer. (This includes unmanaged data in the Buffer)
+ *
+ * @return { Buffer } The Buffer value.
+ */
+ readonly internalBuffer: Buffer;
+ /**
+ * Gets the value of the internal managed Buffer (Includes managed data only)
+ *
+ * @param { Buffer }
+ */
+ toBuffer(): Buffer;
+ /**
+ * Gets the String value of the internal managed Buffer
+ *
+ * @param encoding { String } The BufferEncoding to display the Buffer as (defaults to instance level encoding).
+ */
+ toString(encoding?: BufferEncoding): string;
+ /**
+ * Destroys the SmartBuffer instance.
+ */
+ destroy(): SmartBuffer;
+ /**
+ * Handles inserting and writing strings.
+ *
+ * @param value { String } The String value to insert.
+ * @param isInsert { Boolean } True if inserting a string, false if writing.
+ * @param arg2 { Number | String } The offset to insert the string at, or the BufferEncoding to use.
+ * @param encoding { String } The BufferEncoding to use for writing strings (defaults to instance encoding).
+ */
+ private _handleString(value, isInsert, arg3?, encoding?);
+ /**
+ * Handles writing or insert of a Buffer.
+ *
+ * @param value { Buffer } The Buffer to write.
+ * @param offset { Number } The offset to write the Buffer to.
+ */
+ private _handleBuffer(value, isInsert, offset?);
+ /**
+ * Ensures that the internal Buffer is large enough to read data.
+ *
+ * @param length { Number } The length of the data that needs to be read.
+ * @param offset { Number } The offset of the data that needs to be read.
+ */
+ private ensureReadable(length, offset?);
+ /**
+ * Ensures that the internal Buffer is large enough to insert data.
+ *
+ * @param dataLength { Number } The length of the data that needs to be written.
+ * @param offset { Number } The offset of the data to be written.
+ */
+ private ensureInsertable(dataLength, offset);
+ /**
+ * Ensures that the internal Buffer is large enough to write data.
+ *
+ * @param dataLength { Number } The length of the data that needs to be written.
+ * @param offset { Number } The offset of the data to be written (defaults to writeOffset).
+ */
+ private _ensureWriteable(dataLength, offset?);
+ /**
+ * Ensures that the internal Buffer is large enough to write at least the given amount of data.
+ *
+ * @param minLength { Number } The minimum length of the data needs to be written.
+ */
+ private _ensureCapacity(minLength);
+ /**
+ * Reads a numeric number value using the provided function.
+ *
+ * @param func { Function(offset: number) => number } The function to read data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes read.
+ * @param offset { Number } The offset to read from (optional). When this is not provided, the managed readOffset is used instead.
+ *
+ * @param { Number }
+ */
+ private _readNumberValue(func, byteSize, offset?);
+ /**
+ * Inserts a numeric number value based on the given offset and value.
+ *
+ * @param func { Function(offset: number, offset?) => number} The function to write data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes written.
+ * @param value { Number } The number value to write.
+ * @param offset { Number } the offset to write the number at (REQUIRED).
+ *
+ */
+ private _insertNumberValue(func, byteSize, value, offset);
+ /**
+ * Writes a numeric number value based on the given offset and value.
+ *
+ * @param func { Function(offset: number, offset?) => number} The function to write data on the internal Buffer with.
+ * @param byteSize { Number } The number of bytes written.
+ * @param value { Number } The number value to write.
+ * @param offset { Number } the offset to write the number at (REQUIRED).
+ *
+ */
+ private _writeNumberValue(func, byteSize, value, offset?);
+ }
+ export { SmartBufferOptions, SmartBuffer };
+}
diff --git a/deps/npm/node_modules/smart-buffer/typings/utils.d.ts b/deps/npm/node_modules/smart-buffer/typings/utils.d.ts
new file mode 100644
index 0000000000..951b85a5b8
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/typings/utils.d.ts
@@ -0,0 +1,51 @@
+/// <reference types="node" />
+import { SmartBuffer } from './smartbuffer';
+/**
+ * Error strings
+ */
+declare const ERRORS: {
+ INVALID_ENCODING: string;
+ INVALID_SMARTBUFFER_SIZE: string;
+ INVALID_SMARTBUFFER_BUFFER: string;
+ INVALID_SMARTBUFFER_OBJECT: string;
+ INVALID_OFFSET: string;
+ INVALID_OFFSET_NON_NUMBER: string;
+ INVALID_LENGTH: string;
+ INVALID_LENGTH_NON_NUMBER: string;
+ INVALID_TARGET_OFFSET: string;
+ INVALID_TARGET_LENGTH: string;
+ INVALID_READ_BEYOND_BOUNDS: string;
+ INVALID_WRITE_BEYOND_BOUNDS: string;
+};
+/**
+ * Checks if a given encoding is a valid Buffer encoding. (Throws an exception if check fails)
+ *
+ * @param { String } encoding The encoding string to check.
+ */
+declare function checkEncoding(encoding: BufferEncoding): void;
+/**
+ * Checks if a given number is a finite integer. (Throws an exception if check fails)
+ *
+ * @param { Number } value The number value to check.
+ */
+declare function isFiniteInteger(value: number): boolean;
+/**
+ * Checks if a length value is valid. (Throws an exception if check fails)
+ *
+ * @param { Number } length The value to check.
+ */
+declare function checkLengthValue(length: any): void;
+/**
+ * Checks if a offset value is valid. (Throws an exception if check fails)
+ *
+ * @param { Number } offset The value to check.
+ */
+declare function checkOffsetValue(offset: any): void;
+/**
+ * Checks if a target offset value is out of bounds. (Throws an exception if check fails)
+ *
+ * @param { Number } offset The offset value to check.
+ * @param { SmartBuffer } buff The SmartBuffer instance to check against.
+ */
+declare function checkTargetOffset(offset: number, buff: SmartBuffer): void;
+export { ERRORS, isFiniteInteger, checkEncoding, checkOffsetValue, checkLengthValue, checkTargetOffset };
diff --git a/deps/npm/node_modules/smart-buffer/yarn.lock b/deps/npm/node_modules/smart-buffer/yarn.lock
new file mode 100644
index 0000000000..567b06f6ce
--- /dev/null
+++ b/deps/npm/node_modules/smart-buffer/yarn.lock
@@ -0,0 +1,1849 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@types/chai@4.0.4":
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.0.4.tgz#fe86315d9a66827feeb16f73bc954688ec950e18"
+
+"@types/mocha@^2.2.44":
+ version "2.2.44"
+ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.44.tgz#1d4a798e53f35212fd5ad4d04050620171cd5b5e"
+
+"@types/node@^8.0.51":
+ version "8.0.51"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb"
+
+abbrev@1, abbrev@1.0.x:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
+
+ajv@^5.1.0:
+ version "5.2.3"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.3.tgz#c06f598778c44c6b161abafe3466b81ad1814ed2"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ json-schema-traverse "^0.3.0"
+ json-stable-stringify "^1.0.1"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ansi-styles@^3.1.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88"
+ dependencies:
+ color-convert "^1.9.0"
+
+append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
+archy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+
+argparse@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ dependencies:
+ arr-flatten "^1.0.1"
+
+arr-flatten@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1"
+
+array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+
+arrify@^1.0.0, arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+asn1@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+assertion-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
+
+async@1.x, async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+babel-code-frame@^6.22.0:
+ version "6.22.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
+ dependencies:
+ chalk "^1.1.0"
+ esutils "^2.0.2"
+ js-tokens "^3.0.0"
+
+babel-generator@^6.18.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.24.1.tgz#e715f486c58ded25649d888944d52aa07c5d9497"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.2.0"
+ source-map "^0.5.0"
+ trim-right "^1.0.1"
+
+babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-runtime@^6.22.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.10.0"
+
+babel-template@^6.16.0:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.24.1.tgz#04ae514f1f93b3a2537f2a0f60a5a45fb8308333"
+ dependencies:
+ babel-runtime "^6.22.0"
+ babel-traverse "^6.24.1"
+ babel-types "^6.24.1"
+ babylon "^6.11.0"
+ lodash "^4.2.0"
+
+babel-traverse@^6.18.0, babel-traverse@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.24.1.tgz#ab36673fd356f9a0948659e7b338d5feadb31695"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.22.0"
+ babel-types "^6.24.1"
+ babylon "^6.15.0"
+ debug "^2.2.0"
+ globals "^9.0.0"
+ invariant "^2.2.0"
+ lodash "^4.2.0"
+
+babel-types@^6.18.0, babel-types@^6.24.1:
+ version "6.24.1"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.24.1.tgz#a136879dc15b3606bda0d90c1fc74304c2ff0975"
+ dependencies:
+ babel-runtime "^6.22.0"
+ esutils "^2.0.2"
+ lodash "^4.2.0"
+ to-fast-properties "^1.0.1"
+
+babylon@^6.11.0, babylon@^6.15.0, babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+balanced-match@^0.4.1:
+ version "0.4.2"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
+brace-expansion@^1.1.7:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
+ dependencies:
+ balanced-match "^0.4.1"
+ concat-map "0.0.1"
+
+braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
+browser-stdout@1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
+
+builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+caching-transform@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
+ dependencies:
+ md5-hex "^1.2.0"
+ mkdirp "^0.5.1"
+ write-file-atomic "^1.1.4"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chai@4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+ dependencies:
+ assertion-error "^1.0.1"
+ check-error "^1.0.1"
+ deep-eql "^3.0.0"
+ get-func-name "^2.0.0"
+ pathval "^1.0.0"
+ type-detect "^4.0.0"
+
+chalk@^1.1.0:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.0.0, chalk@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e"
+ dependencies:
+ ansi-styles "^3.1.0"
+ escape-string-regexp "^1.0.5"
+ supports-color "^4.0.0"
+
+check-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+cliui@^3.2.0:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+ wrap-ansi "^2.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+color-convert@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a"
+ dependencies:
+ color-name "^1.1.1"
+
+color-name@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+combined-stream@^1.0.5, combined-stream@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@2.11.0, commander@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+convert-source-map@^1.3.0:
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5"
+
+core-js@^2.4.0:
+ version "2.4.1"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e"
+
+coveralls@3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.0.tgz#22ef730330538080d29b8c151dc9146afde88a99"
+ dependencies:
+ js-yaml "^3.6.1"
+ lcov-parse "^0.0.10"
+ log-driver "^1.2.5"
+ minimist "^1.2.0"
+ request "^2.79.0"
+
+cross-spawn@^4, cross-spawn@^4.0.0:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+ dependencies:
+ lru-cache "^4.0.1"
+ which "^1.2.9"
+
+cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+debug-log@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
+
+debug@3.1.0, debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.2.0:
+ version "2.6.8"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc"
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0, decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+deep-eql@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ dependencies:
+ type-detect "^4.0.0"
+
+deep-is@~0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
+
+default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ dependencies:
+ repeating "^2.0.0"
+
+diff@3.3.1, diff@^3.1.0, diff@^3.2.0:
+ version "3.3.1"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ dependencies:
+ jsbn "~0.1.0"
+
+error-ex@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+escodegen@1.8.x:
+ version "1.8.1"
+ resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
+ dependencies:
+ esprima "^2.7.1"
+ estraverse "^1.9.1"
+ esutils "^2.0.2"
+ optionator "^0.8.1"
+ optionalDependencies:
+ source-map "~0.2.0"
+
+esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1:
+ version "2.7.3"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
+
+estraverse@^1.9.1:
+ version "1.9.3"
+ resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+execa@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.5.1.tgz#de3fb85cb8d6e91c85bcbceb164581785cb57b36"
+ dependencies:
+ cross-spawn "^4.0.0"
+ get-stream "^2.2.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
+expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ dependencies:
+ fill-range "^2.1.0"
+
+extend@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ dependencies:
+ is-extglob "^1.0.0"
+
+extsprintf@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550"
+
+fast-deep-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+
+fast-levenshtein@~2.0.4:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
+
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+
+fill-range@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^1.1.3"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+for-in@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ dependencies:
+ for-in "^1.0.1"
+
+foreground-child@^1.5.3, foreground-child@^1.5.6:
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
+ dependencies:
+ cross-spawn "^4"
+ signal-exit "^3.0.0"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+get-caller-file@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+
+get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+
+get-stream@^2.2.0:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-2.3.1.tgz#5f38f93f346009666ee0150a054167f91bdd95de"
+ dependencies:
+ object-assign "^4.0.1"
+ pinkie-promise "^2.0.0"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ dependencies:
+ is-glob "^2.0.0"
+
+glob@7.1.2, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+glob@^5.0.15:
+ version "5.0.15"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
+ dependencies:
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "2 || 3"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^9.0.0:
+ version "9.17.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+growl@1.10.3:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
+
+handlebars@^4.0.1, handlebars@^4.0.3:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.7.tgz#e97325aeb8ea0b9e12b9c4dd73c4c312ad0ede59"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+
+hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
+he@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+hoek@4.x.x:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
+hosted-git-info@^2.1.4:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+invariant@^2.2.0:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360"
+ dependencies:
+ loose-envify "^1.0.0"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-buffer@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-dotfile@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.2.tgz#2c132383f39199f8edc268ca01b9b007d205cc4d"
+
+is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ dependencies:
+ is-primitive "^2.0.0"
+
+is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+
+is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ dependencies:
+ is-extglob "^1.0.0"
+
+is-number@^2.0.2, is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+
+is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+isarray@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+istanbul-lib-coverage@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da"
+
+istanbul-lib-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
+ dependencies:
+ append-transform "^0.4.0"
+
+istanbul-lib-instrument@^1.9.1:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.9.1.tgz#250b30b3531e5d3251299fdd64b0b2c9db6b558e"
+ dependencies:
+ babel-generator "^6.18.0"
+ babel-template "^6.16.0"
+ babel-traverse "^6.18.0"
+ babel-types "^6.18.0"
+ babylon "^6.18.0"
+ istanbul-lib-coverage "^1.1.1"
+ semver "^5.3.0"
+
+istanbul-lib-report@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.2.tgz#922be27c13b9511b979bd1587359f69798c1d425"
+ dependencies:
+ istanbul-lib-coverage "^1.1.1"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.2.tgz#750578602435f28a0c04ee6d7d9e0f2960e62c1c"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.1.1"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-reports@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.3.tgz#3b9e1e8defb6d18b1d425da8e8b32c5a163f2d10"
+ dependencies:
+ handlebars "^4.0.3"
+
+istanbul@^0.4.5:
+ version "0.4.5"
+ resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
+ dependencies:
+ abbrev "1.0.x"
+ async "1.x"
+ escodegen "1.8.x"
+ esprima "2.7.x"
+ glob "^5.0.15"
+ handlebars "^4.0.1"
+ js-yaml "3.x"
+ mkdirp "0.5.x"
+ nopt "3.x"
+ once "1.x"
+ resolve "1.1.x"
+ supports-color "^3.1.0"
+ which "^1.1.1"
+ wordwrap "^1.0.0"
+
+jodid25519@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/jodid25519/-/jodid25519-1.0.2.tgz#06d4912255093419477d425633606e0e90782967"
+ dependencies:
+ jsbn "~0.1.0"
+
+js-tokens@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
+
+js-yaml@3.x, js-yaml@^3.6.1:
+ version "3.6.1"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^2.6.0"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stable-stringify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
+ dependencies:
+ jsonify "~0.0.0"
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+jsonify@~0.0.0:
+ version "0.0.0"
+ resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
+
+jsprim@^1.2.2:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.0.2"
+ json-schema "0.2.3"
+ verror "1.3.6"
+
+kind-of@^3.0.2:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
+ dependencies:
+ is-buffer "^1.1.5"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ dependencies:
+ invert-kv "^1.0.0"
+
+lcov-parse@^0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
+
+levn@~0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
+ dependencies:
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash@^4.2.0:
+ version "4.17.4"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
+
+log-driver@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+lru-cache@^4.0.1:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.2.tgz#1d17679c069cda5d040991a09dbc2c0db377e55e"
+ dependencies:
+ pseudomap "^1.0.1"
+ yallist "^2.0.0"
+
+make-error@^1.1.1:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.2.3.tgz#6c4402df732e0977ac6faf754a5074b3d2b1d19d"
+
+md5-hex@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
+ dependencies:
+ md5-o-matic "^0.1.1"
+
+md5-o-matic@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+merge-source-map@^1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.3.tgz#da1415f2722a5119db07b14c4f973410863a2abf"
+ dependencies:
+ source-map "^0.5.3"
+
+micromatch@^2.3.11:
+ version "2.3.11"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
+mime-db@~1.30.0:
+ version "1.30.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+
+mime-types@^2.1.12, mime-types@~2.1.17:
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ dependencies:
+ mime-db "~1.30.0"
+
+mimic-fn@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18"
+
+"minimatch@2 || 3", minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8, minimist@~0.0.1:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+mocha-lcov-reporter@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz#469bdef4f8afc9a116056f079df6182d0afb0384"
+
+mocha@4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-4.0.1.tgz#0aee5a95cf69a4618820f5e51fa31717117daf1b"
+ dependencies:
+ browser-stdout "1.3.0"
+ commander "2.11.0"
+ debug "3.1.0"
+ diff "3.3.1"
+ escape-string-regexp "1.0.5"
+ glob "7.1.2"
+ growl "1.10.3"
+ he "1.1.1"
+ mkdirp "0.5.1"
+ supports-color "4.4.0"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+nopt@3.x:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
+ dependencies:
+ abbrev "1"
+
+normalize-package-data@^2.3.2:
+ version "2.3.8"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+nyc@^11.3.0:
+ version "11.3.0"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.3.0.tgz#a42bc17b3cfa41f7b15eb602bc98b2633ddd76f0"
+ dependencies:
+ archy "^1.0.0"
+ arrify "^1.0.1"
+ caching-transform "^1.0.0"
+ convert-source-map "^1.3.0"
+ debug-log "^1.0.1"
+ default-require-extensions "^1.0.0"
+ find-cache-dir "^0.1.1"
+ find-up "^2.1.0"
+ foreground-child "^1.5.3"
+ glob "^7.0.6"
+ istanbul-lib-coverage "^1.1.1"
+ istanbul-lib-hook "^1.1.0"
+ istanbul-lib-instrument "^1.9.1"
+ istanbul-lib-report "^1.1.2"
+ istanbul-lib-source-maps "^1.2.2"
+ istanbul-reports "^1.1.3"
+ md5-hex "^1.2.0"
+ merge-source-map "^1.0.2"
+ micromatch "^2.3.11"
+ mkdirp "^0.5.0"
+ resolve-from "^2.0.0"
+ rimraf "^2.5.4"
+ signal-exit "^3.0.1"
+ spawn-wrap "=1.3.8"
+ test-exclude "^4.1.1"
+ yargs "^10.0.3"
+ yargs-parser "^8.0.0"
+
+oauth-sign@~0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.0.1, object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
+once@1.x, once@^1.3.0:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+optionator@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
+ dependencies:
+ deep-is "~0.1.3"
+ fast-levenshtein "~2.0.4"
+ levn "~0.3.0"
+ prelude-ls "~1.1.2"
+ type-check "~0.3.2"
+ wordwrap "~1.0.0"
+
+os-homedir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-locale@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.0.0.tgz#15918ded510522b81ee7ae5a309d54f639fc39a4"
+ dependencies:
+ execa "^0.5.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+pathval@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+prelude-ls@~1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
+
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+
+pseudomap@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+randomatic@^1.1.3:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.6.tgz#110dcabff397e9dcff7c0789ccc0a49adf1ec5bb"
+ dependencies:
+ is-number "^2.0.2"
+ kind-of "^3.0.2"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+regenerator-runtime@^0.10.0:
+ version "0.10.5"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz#336c3efc1220adcedda2c9fab67b5a7955a33658"
+
+regex-cache@^0.4.2:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145"
+ dependencies:
+ is-equal-shallow "^0.1.3"
+ is-primitive "^2.0.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.1.tgz#615ebb96af559552d4bf4057c8436d486ab63cc4"
+
+repeat-element@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+
+repeat-string@^1.5.2:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+request@^2.79.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+resolve@1.1.x:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
+
+resolve@^1.3.2:
+ version "1.3.3"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.3.3.tgz#655907c3469a8680dc2de3a275a8fdd69691f0e5"
+ dependencies:
+ path-parse "^1.0.5"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@^2.3.3, rimraf@^2.5.4, rimraf@^2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
+ dependencies:
+ glob "^7.0.5"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+slide@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
+sntp@2.x.x:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.0.2.tgz#5064110f0af85f7cfdb7d6b67a40028ce52b4b2b"
+ dependencies:
+ hoek "4.x.x"
+
+source-map-support@0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.0.tgz#2018a7ad2bdf8faf2691e5fddab26bed5a2bacab"
+ dependencies:
+ source-map "^0.6.0"
+
+source-map-support@^0.4.0:
+ version "0.4.15"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1"
+ dependencies:
+ source-map "^0.5.6"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1:
+ version "0.5.6"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
+
+source-map@^0.6.0:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+source-map@~0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
+ dependencies:
+ amdefine ">=0.0.4"
+
+spawn-wrap@=1.3.8:
+ version "1.3.8"
+ resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.3.8.tgz#fa2a79b990cbb0bb0018dca6748d88367b19ec31"
+ dependencies:
+ foreground-child "^1.5.6"
+ mkdirp "^0.5.0"
+ os-homedir "^1.0.1"
+ rimraf "^2.3.3"
+ signal-exit "^3.0.2"
+ which "^1.2.4"
+
+spdx-correct@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40"
+ dependencies:
+ spdx-license-ids "^1.0.2"
+
+spdx-expression-parse@~1.0.0:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c"
+
+spdx-license-ids@^1.0.2:
+ version "1.2.2"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.0.tgz#ff2a3e4fd04497555fed97b39a0fd82fafb3a33c"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jodid25519 "^1.0.0"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^3.0.0"
+
+stringstream@~0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-bom@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+strip-json-comments@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
+
+supports-color@4.4.0, supports-color@^4.0.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
+ dependencies:
+ has-flag "^2.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+supports-color@^3.1.0, supports-color@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
+ dependencies:
+ has-flag "^1.0.0"
+
+test-exclude@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.1.1.tgz#4d84964b0966b0087ecc334a2ce002d3d9341e26"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^2.3.11"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
+
+to-fast-properties@^1.0.1:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+tough-cookie@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+ dependencies:
+ punycode "^1.4.1"
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
+ts-node@3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69"
+ dependencies:
+ arrify "^1.0.0"
+ chalk "^2.0.0"
+ diff "^3.1.0"
+ make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.4.0"
+ tsconfig "^6.0.0"
+ v8flags "^3.0.0"
+ yn "^2.0.0"
+
+tsconfig@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032"
+ dependencies:
+ strip-bom "^3.0.0"
+ strip-json-comments "^2.0.0"
+
+tslib@^1.7.1:
+ version "1.7.1"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec"
+
+tslint@5.8.0:
+ version "5.8.0"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.8.0.tgz#1f49ad5b2e77c76c3af4ddcae552ae4e3612eb13"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.1.0"
+ commander "^2.9.0"
+ diff "^3.2.0"
+ glob "^7.1.1"
+ minimatch "^3.0.4"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.7.1"
+ tsutils "^2.12.1"
+
+tsutils@^2.12.1:
+ version "2.12.1"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.12.1.tgz#f4d95ce3391c8971e46e54c4cf0edb0a21dd5b24"
+ dependencies:
+ tslib "^1.7.1"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+type-check@~0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
+ dependencies:
+ prelude-ls "~1.1.2"
+
+type-detect@^4.0.0:
+ version "4.0.3"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea"
+
+typescript@2.6.1:
+ version "2.6.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.6.1.tgz#ef39cdea27abac0b500242d6726ab90e0c846631"
+
+uglify-js@^2.6:
+ version "2.8.22"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+user-home@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190"
+
+uuid@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+
+v8flags@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.0.tgz#4be9604488e0c4123645def705b1848d16b8e01f"
+ dependencies:
+ user-home "^1.1.1"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc"
+ dependencies:
+ spdx-correct "~1.0.0"
+ spdx-expression-parse "~1.0.0"
+
+verror@1.3.6:
+ version "1.3.6"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c"
+ dependencies:
+ extsprintf "1.0.2"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+which@^1.1.1, which@^1.2.4, which@^1.2.9:
+ version "1.2.14"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
+ dependencies:
+ isexe "^2.0.0"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wordwrap@^1.0.0, wordwrap@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write-file-atomic@^1.1.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ slide "^1.1.5"
+
+y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+
+yallist@^2.0.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+yargs-parser@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.0.0.tgz#21d476330e5a82279a4b881345bf066102e219c6"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@^10.0.3:
+ version "10.0.3"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.0.3.tgz#6542debd9080ad517ec5048fb454efe9e4d4aaae"
+ dependencies:
+ cliui "^3.2.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^8.0.0"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore b/deps/npm/node_modules/sntp/.npmignore
index adac8ad9c6..adac8ad9c6 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/.npmignore
+++ b/deps/npm/node_modules/sntp/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE b/deps/npm/node_modules/sntp/LICENSE
index 6dc3e82d3c..6dc3e82d3c 100755
--- a/deps/npm/node_modules/request/node_modules/hawk/node_modules/sntp/LICENSE
+++ b/deps/npm/node_modules/sntp/LICENSE
diff --git a/deps/npm/node_modules/sntp/README.md b/deps/npm/node_modules/sntp/README.md
new file mode 100755
index 0000000000..ec5c1a14af
--- /dev/null
+++ b/deps/npm/node_modules/sntp/README.md
@@ -0,0 +1,67 @@
+# sntp
+
+An SNTP v4 client (RFC4330) for node. Simpy connects to the NTP or SNTP server requested and returns the server time
+along with the roundtrip duration and clock offset. To adjust the local time to the NTP time, add the returned `t` offset
+to the local time.
+
+[![Build Status](https://secure.travis-ci.org/hueniverse/sntp.png)](http://travis-ci.org/hueniverse/sntp)
+
+# Usage
+
+```javascript
+var Sntp = require('sntp');
+
+// All options are optional
+
+var options = {
+ host: 'nist1-sj.ustiming.org', // Defaults to pool.ntp.org
+ port: 123, // Defaults to 123 (NTP)
+ resolveReference: true, // Default to false (not resolving)
+ timeout: 1000 // Defaults to zero (no timeout)
+};
+
+// Request server time
+
+Sntp.time(options, function (err, time) {
+
+ if (err) {
+ console.log('Failed: ' + err.message);
+ process.exit(1);
+ }
+
+ console.log('Local clock is off by: ' + time.t + ' milliseconds');
+ process.exit(0);
+});
+```
+
+If an application needs to maintain continuous time synchronization, the module provides a stateful method for
+querying the current offset only when the last one is too old (defaults to daily).
+
+```javascript
+// Request offset once
+
+Sntp.offset(function (err, offset) {
+
+ console.log(offset); // New (served fresh)
+
+ // Request offset again
+
+ Sntp.offset(function (err, offset) {
+
+ console.log(offset); // Identical (served from cache)
+ });
+});
+```
+
+To set a background offset refresh, start the interval and use the provided now() method. If for any reason the
+client fails to obtain an up-to-date offset, the current system clock is used.
+
+```javascript
+var before = Sntp.now(); // System time without offset
+
+Sntp.start(function () {
+
+ var now = Sntp.now(); // With offset
+ Sntp.stop();
+});
+```
diff --git a/deps/npm/node_modules/sntp/lib/index.js b/deps/npm/node_modules/sntp/lib/index.js
new file mode 100755
index 0000000000..83eb4585aa
--- /dev/null
+++ b/deps/npm/node_modules/sntp/lib/index.js
@@ -0,0 +1,412 @@
+'use strict';
+
+// Load modules
+
+const Dgram = require('dgram');
+const Dns = require('dns');
+
+const Hoek = require('hoek');
+
+
+// Declare internals
+
+const internals = {};
+
+
+exports.time = function (options, callback) {
+
+ if (arguments.length !== 2) {
+ callback = arguments[0];
+ options = {};
+ }
+
+ const settings = Hoek.clone(options);
+ settings.host = settings.host || 'time.google.com';
+ settings.port = settings.port || 123;
+ settings.resolveReference = settings.resolveReference || false;
+
+ // Declare variables used by callback
+
+ let timeoutId = null;
+ let sent = 0;
+
+ // Ensure callback is only called once
+
+ const finish = Hoek.once((err, result) => {
+
+ clearTimeout(timeoutId);
+
+ socket.removeAllListeners();
+ socket.once('error', Hoek.ignore);
+
+ try {
+ socket.close();
+ }
+ catch (ignoreErr) { } // Ignore errors if the socket is already closed
+
+ return callback(err, result);
+ });
+
+ // Set timeout
+
+ if (settings.timeout) {
+ timeoutId = setTimeout(() => {
+
+ return finish(new Error('Timeout'));
+ }, settings.timeout);
+ }
+
+ // Create UDP socket
+
+ const socket = Dgram.createSocket('udp4');
+
+ socket.once('error', (err) => finish(err));
+
+ // Listen to incoming messages
+
+ socket.on('message', (buffer, rinfo) => {
+
+ const received = Date.now();
+
+ const message = new internals.NtpMessage(buffer);
+ if (!message.isValid) {
+ return finish(new Error('Invalid server response'), message);
+ }
+
+ if (message.originateTimestamp !== sent) {
+ return finish(new Error('Wrong originate timestamp'), message);
+ }
+
+ // Timestamp Name ID When Generated
+ // ------------------------------------------------------------
+ // Originate Timestamp T1 time request sent by client
+ // Receive Timestamp T2 time request received by server
+ // Transmit Timestamp T3 time reply sent by server
+ // Destination Timestamp T4 time reply received by client
+ //
+ // The roundtrip delay d and system clock offset t are defined as:
+ //
+ // d = (T4 - T1) - (T3 - T2) t = ((T2 - T1) + (T3 - T4)) / 2
+
+ const T1 = message.originateTimestamp;
+ const T2 = message.receiveTimestamp;
+ const T3 = message.transmitTimestamp;
+ const T4 = received;
+
+ message.d = (T4 - T1) - (T3 - T2);
+ message.t = ((T2 - T1) + (T3 - T4)) / 2;
+ message.receivedLocally = received;
+
+ if (!settings.resolveReference ||
+ message.stratum !== 'secondary') {
+
+ return finish(null, message);
+ }
+
+ // Resolve reference IP address
+
+ Dns.reverse(message.referenceId, (err, domains) => {
+
+ if (/* $lab:coverage:off$ */ !err /* $lab:coverage:on$ */) {
+ message.referenceHost = domains[0];
+ }
+
+ return finish(null, message);
+ });
+ });
+
+ // Construct NTP message
+
+ const message = new Buffer(48);
+ for (let i = 0; i < 48; ++i) { // Zero message
+ message[i] = 0;
+ }
+
+ message[0] = (0 << 6) + (4 << 3) + (3 << 0); // Set version number to 4 and Mode to 3 (client)
+ sent = Date.now();
+ internals.fromMsecs(sent, message, 40); // Set transmit timestamp (returns as originate)
+
+ // Send NTP request
+
+ socket.send(message, 0, message.length, settings.port, settings.host, (err, bytes) => {
+
+ if (err ||
+ bytes !== 48) {
+
+ return finish(err || new Error('Could not send entire message'));
+ }
+ });
+};
+
+
+internals.NtpMessage = function (buffer) {
+
+ this.isValid = false;
+
+ // Validate
+
+ if (buffer.length !== 48) {
+ return;
+ }
+
+ // Leap indicator
+
+ const li = (buffer[0] >> 6);
+ switch (li) {
+ case 0: this.leapIndicator = 'no-warning'; break;
+ case 1: this.leapIndicator = 'last-minute-61'; break;
+ case 2: this.leapIndicator = 'last-minute-59'; break;
+ case 3: this.leapIndicator = 'alarm'; break;
+ }
+
+ // Version
+
+ const vn = ((buffer[0] & 0x38) >> 3);
+ this.version = vn;
+
+ // Mode
+
+ const mode = (buffer[0] & 0x7);
+ switch (mode) {
+ case 1: this.mode = 'symmetric-active'; break;
+ case 2: this.mode = 'symmetric-passive'; break;
+ case 3: this.mode = 'client'; break;
+ case 4: this.mode = 'server'; break;
+ case 5: this.mode = 'broadcast'; break;
+ case 0:
+ case 6:
+ case 7: this.mode = 'reserved'; break;
+ }
+
+ // Stratum
+
+ const stratum = buffer[1];
+ if (stratum === 0) {
+ this.stratum = 'death';
+ }
+ else if (stratum === 1) {
+ this.stratum = 'primary';
+ }
+ else if (stratum <= 15) {
+ this.stratum = 'secondary';
+ }
+ else {
+ this.stratum = 'reserved';
+ }
+
+ // Poll interval (msec)
+
+ this.pollInterval = Math.round(Math.pow(2, buffer[2])) * 1000;
+
+ // Precision (msecs)
+
+ this.precision = Math.pow(2, buffer[3]) * 1000;
+
+ // Root delay (msecs)
+
+ const rootDelay = 256 * (256 * (256 * buffer[4] + buffer[5]) + buffer[6]) + buffer[7];
+ this.rootDelay = 1000 * (rootDelay / 0x10000);
+
+ // Root dispersion (msecs)
+
+ this.rootDispersion = ((buffer[8] << 8) + buffer[9] + ((buffer[10] << 8) + buffer[11]) / Math.pow(2, 16)) * 1000;
+
+ // Reference identifier
+
+ this.referenceId = '';
+ switch (this.stratum) {
+ case 'death':
+ case 'primary':
+ this.referenceId = String.fromCharCode(buffer[12]) + String.fromCharCode(buffer[13]) + String.fromCharCode(buffer[14]) + String.fromCharCode(buffer[15]);
+ break;
+ case 'secondary':
+ this.referenceId = '' + buffer[12] + '.' + buffer[13] + '.' + buffer[14] + '.' + buffer[15];
+ break;
+ }
+
+ // Reference timestamp
+
+ this.referenceTimestamp = internals.toMsecs(buffer, 16);
+
+ // Originate timestamp
+
+ this.originateTimestamp = internals.toMsecs(buffer, 24);
+
+ // Receive timestamp
+
+ this.receiveTimestamp = internals.toMsecs(buffer, 32);
+
+ // Transmit timestamp
+
+ this.transmitTimestamp = internals.toMsecs(buffer, 40);
+
+ // Validate
+
+ if (this.version === 4 &&
+ this.stratum !== 'reserved' &&
+ this.mode === 'server' &&
+ this.originateTimestamp &&
+ this.receiveTimestamp &&
+ this.transmitTimestamp) {
+
+ this.isValid = true;
+ }
+
+ return this;
+};
+
+
+internals.toMsecs = function (buffer, offset) {
+
+ let seconds = 0;
+ let fraction = 0;
+
+ for (let i = 0; i < 4; ++i) {
+ seconds = (seconds * 256) + buffer[offset + i];
+ }
+
+ for (let i = 4; i < 8; ++i) {
+ fraction = (fraction * 256) + buffer[offset + i];
+ }
+
+ return ((seconds - 2208988800 + (fraction / Math.pow(2, 32))) * 1000);
+};
+
+
+internals.fromMsecs = function (ts, buffer, offset) {
+
+ const seconds = Math.floor(ts / 1000) + 2208988800;
+ const fraction = Math.round((ts % 1000) / 1000 * Math.pow(2, 32));
+
+ buffer[offset + 0] = (seconds & 0xFF000000) >> 24;
+ buffer[offset + 1] = (seconds & 0x00FF0000) >> 16;
+ buffer[offset + 2] = (seconds & 0x0000FF00) >> 8;
+ buffer[offset + 3] = (seconds & 0x000000FF);
+
+ buffer[offset + 4] = (fraction & 0xFF000000) >> 24;
+ buffer[offset + 5] = (fraction & 0x00FF0000) >> 16;
+ buffer[offset + 6] = (fraction & 0x0000FF00) >> 8;
+ buffer[offset + 7] = (fraction & 0x000000FF);
+};
+
+
+// Offset singleton
+
+internals.last = {
+ offset: 0,
+ expires: 0,
+ host: '',
+ port: 0
+};
+
+
+exports.offset = function (options, callback) {
+
+ if (arguments.length !== 2) {
+ callback = arguments[0];
+ options = {};
+ }
+
+ const now = Date.now();
+ const clockSyncRefresh = options.clockSyncRefresh || 24 * 60 * 60 * 1000; // Daily
+
+ if (internals.last.offset &&
+ internals.last.host === options.host &&
+ internals.last.port === options.port &&
+ now < internals.last.expires) {
+
+ process.nextTick(() => callback(null, internals.last.offset));
+ return;
+ }
+
+ exports.time(options, (err, time) => {
+
+ if (err) {
+ return callback(err, 0);
+ }
+
+ internals.last = {
+ offset: Math.round(time.t),
+ expires: now + clockSyncRefresh,
+ host: options.host,
+ port: options.port
+ };
+
+ return callback(null, internals.last.offset);
+ });
+};
+
+
+// Now singleton
+
+internals.now = {
+ started: false,
+ intervalId: null
+};
+
+
+exports.start = function (options, callback) {
+
+ if (arguments.length !== 2) {
+ callback = arguments[0];
+ options = {};
+ }
+
+ if (internals.now.started) {
+ process.nextTick(() => callback());
+ return;
+ }
+
+ const report = (err) => {
+
+ if (err &&
+ options.onError) {
+
+ options.onError(err);
+ }
+ };
+
+ internals.now.started = true;
+ exports.offset(options, (err, offset) => {
+
+ report(err);
+
+ internals.now.intervalId = setInterval(() => {
+
+ exports.offset(options, report);
+ }, options.clockSyncRefresh || 24 * 60 * 60 * 1000); // Daily
+
+ return callback();
+ });
+};
+
+
+exports.stop = function () {
+
+ if (!internals.now.started) {
+ return;
+ }
+
+ clearInterval(internals.now.intervalId);
+ internals.now.started = false;
+ internals.now.intervalId = null;
+};
+
+
+exports.isLive = function () {
+
+ return internals.now.started;
+};
+
+
+exports.now = function () {
+
+ const now = Date.now();
+ if (!exports.isLive() ||
+ now >= internals.last.expires) {
+
+ return now;
+ }
+
+ return now + internals.last.offset;
+};
diff --git a/deps/npm/node_modules/sntp/package.json b/deps/npm/node_modules/sntp/package.json
new file mode 100755
index 0000000000..8a3d895d51
--- /dev/null
+++ b/deps/npm/node_modules/sntp/package.json
@@ -0,0 +1,64 @@
+{
+ "_from": "sntp@2.x.x",
+ "_id": "sntp@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-FL1b58BDrqS3A11lJ0zEdnJ3UOKqVxawAkF3k7F0CVN7VQ34aZrV+G8BZ1WC9ZL7NyrwsW0oviwsWDgRuVYtJg==",
+ "_location": "/sntp",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "sntp@2.x.x",
+ "name": "sntp",
+ "escapedName": "sntp",
+ "rawSpec": "2.x.x",
+ "saveSpec": null,
+ "fetchSpec": "2.x.x"
+ },
+ "_requiredBy": [
+ "/hawk"
+ ],
+ "_resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz",
+ "_shasum": "2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8",
+ "_spec": "sntp@2.x.x",
+ "_where": "/Users/rebecca/code/npm/node_modules/hawk",
+ "author": {
+ "name": "Eran Hammer",
+ "email": "eran@hammer.io",
+ "url": "http://hueniverse.com"
+ },
+ "bugs": {
+ "url": "https://github.com/hueniverse/sntp/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "hoek": "4.x.x"
+ },
+ "deprecated": false,
+ "description": "SNTP Client",
+ "devDependencies": {
+ "code": "4.x.x",
+ "lab": "14.x.x"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ },
+ "homepage": "https://github.com/hueniverse/sntp#readme",
+ "keywords": [
+ "sntp",
+ "ntp",
+ "time"
+ ],
+ "license": "BSD-3-Clause",
+ "main": "lib/index.js",
+ "name": "sntp",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/hueniverse/sntp.git"
+ },
+ "scripts": {
+ "test": "lab -a code -t 100 -L -m 20000",
+ "test-cov-html": "lab -a code -r html -o coverage.html -m 20000"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/socks-proxy-agent/.travis.yml b/deps/npm/node_modules/socks-proxy-agent/.travis.yml
new file mode 100644
index 0000000000..1ff82daa2e
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/.travis.yml
@@ -0,0 +1,21 @@
+sudo: false
+
+language: node_js
+
+node_js:
+ - "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/socks-proxy-agent/History.md b/deps/npm/node_modules/socks-proxy-agent/History.md
new file mode 100644
index 0000000000..b0266b5e35
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/History.md
@@ -0,0 +1,96 @@
+
+3.0.1 / 2017-09-18
+==================
+
+ * update "agent-base" to v4.1.0
+
+3.0.0 / 2017-06-13
+==================
+
+ * [BREAKING] drop support for Node < 4
+ * update deps, remove `extend` dependency
+ * rename `socks-proxy-agent.js` to `index.js`
+
+2.1.1 / 2017-06-13
+==================
+
+ * fix a bug where `close` would emit before `end`
+ * use "raw-body" module for tests
+ * prettier
+
+2.1.0 / 2017-05-24
+==================
+
+ * DRY post-lookup logic
+ * Fix an error in readme (#13, @599316527)
+ * travis: test node v5
+ * travis: test iojs v1, 2, 3 and node.js v4
+ * test: use ssl-cert-snakeoil cert files
+ * Authentication support (#9, @baryshev)
+
+2.0.0 / 2015-07-10
+==================
+
+ * API CHANGE! Removed `secure` boolean second argument in constructor
+ * upgrade to "agent-base" v2 API
+ * package: update "extend" to v3
+
+1.0.2 / 2015-07-01
+==================
+
+ * remove "v4a" from description
+ * socks-proxy-agent: cast `port` to a Number
+ * travis: attempt to make node v0.8 work
+ * travis: test node v0.12, don't test v0.11
+ * test: pass `rejectUnauthorized` as a proxy opt
+ * test: catch http.ClientRequest errors
+ * test: add self-signed SSL server cert files
+ * test: refactor to use local SOCKS, HTTP and HTTPS servers
+ * README: use SVG for Travis-CI badge
+
+1.0.1 / 2015-03-01
+==================
+
+ * switched from using "socks-client" to "socks" (#5, @JoshGlazebrook)
+
+1.0.0 / 2015-02-11
+==================
+
+ * add client-side DNS lookup logic for 4 and 5 version socks proxies
+ * remove dead `onproxyconnect()` code function
+ * use a switch statement to decide the socks `version`
+ * refactor to use "socks-client" instead of "rainbowsocks"
+ * package: remove "rainbowsocks" dependency
+ * package: allow any "mocha" v2
+
+0.1.2 / 2014-06-11
+==================
+
+ * package: update "rainbowsocks" to v0.1.2
+ * travis: don't test node v0.9
+
+0.1.1 / 2014-04-09
+==================
+
+ * package: update outdated dependencies
+ * socks-proxy-agent: pass `secure` flag when no `new`
+ * socks-proxy-agent: small code cleanup
+
+0.1.0 / 2013-11-19
+==================
+
+ * add .travis.yml file
+ * socks-proxy-agent: properly mix in the proxy options
+ * socks-proxy-agent: coerce the `secureEndpoint` into a Boolean
+ * socks-proxy-agent: use "extend" module
+ * socks-proxy-agent: update to "agent-base" v1 API
+
+0.0.2 / 2013-07-24
+==================
+
+ * socks-proxy-agent: properly set the `defaultPort` property
+
+0.0.1 / 2013-07-11
+==================
+
+ * Initial release
diff --git a/deps/npm/node_modules/socks-proxy-agent/README.md b/deps/npm/node_modules/socks-proxy-agent/README.md
new file mode 100644
index 0000000000..30d33500af
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/README.md
@@ -0,0 +1,134 @@
+socks-proxy-agent
+================
+### A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS
+[![Build Status](https://travis-ci.org/TooTallNate/node-socks-proxy-agent.svg?branch=master)](https://travis-ci.org/TooTallNate/node-socks-proxy-agent)
+
+This module provides an `http.Agent` implementation that connects to a
+specified SOCKS proxy server, and can be used with the built-in `http`
+or `https` modules.
+
+It can also be used in conjunction with the `ws` module to establish a WebSocket
+connection over a SOCKS proxy. See the "Examples" section below.
+
+Installation
+------------
+
+Install with `npm`:
+
+``` bash
+$ npm install socks-proxy-agent
+```
+
+
+Examples
+--------
+
+#### `http` module example
+
+``` js
+var url = require('url');
+var http = require('http');
+var SocksProxyAgent = require('socks-proxy-agent');
+
+// SOCKS proxy to connect to
+var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050';
+console.log('using proxy server %j', proxy);
+
+// HTTP endpoint for the proxy to connect to
+var endpoint = process.argv[2] || 'http://nodejs.org/api/';
+console.log('attempting to GET %j', endpoint);
+var opts = url.parse(endpoint);
+
+// create an instance of the `SocksProxyAgent` class with the proxy server information
+var agent = new SocksProxyAgent(proxy);
+opts.agent = agent;
+
+http.get(opts, function (res) {
+ console.log('"response" event!', res.headers);
+ res.pipe(process.stdout);
+});
+```
+
+#### `https` module example
+
+``` js
+var url = require('url');
+var https = require('https');
+var SocksProxyAgent = require('socks-proxy-agent');
+
+// SOCKS proxy to connect to
+var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050';
+console.log('using proxy server %j', proxy);
+
+// HTTP endpoint for the proxy to connect to
+var endpoint = process.argv[2] || 'https://encrypted.google.com/';
+console.log('attempting to GET %j', endpoint);
+var opts = url.parse(endpoint);
+
+// create an instance of the `SocksProxyAgent` class with the proxy server information
+// NOTE: the `true` second argument! Means to use TLS encryption on the socket
+var agent = new SocksProxyAgent(proxy, true);
+opts.agent = agent;
+
+https.get(opts, function (res) {
+ console.log('"response" event!', res.headers);
+ res.pipe(process.stdout);
+});
+```
+
+#### `ws` WebSocket connection example
+
+``` js
+var WebSocket = require('ws');
+var SocksProxyAgent = require('socks-proxy-agent');
+
+// SOCKS proxy to connect to
+var proxy = process.env.socks_proxy || 'socks://127.0.0.1:9050';
+console.log('using proxy server %j', proxy);
+
+// WebSocket endpoint for the proxy to connect to
+var endpoint = process.argv[2] || 'ws://echo.websocket.org';
+console.log('attempting to connect to WebSocket %j', endpoint);
+
+// create an instance of the `SocksProxyAgent` class with the proxy server information
+var agent = new SocksProxyAgent(proxy);
+
+// initiate the WebSocket connection
+var socket = new WebSocket(endpoint, { agent: agent });
+
+socket.on('open', function () {
+ console.log('"open" event!');
+ socket.send('hello world');
+});
+
+socket.on('message', function (data, flags) {
+ console.log('"message" event! %j %j', data, flags);
+ socket.close();
+});
+```
+
+License
+-------
+
+(The MIT License)
+
+Copyright (c) 2013 Nathan Rajlich &lt;nathan@tootallnate.net&gt;
+
+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/socks-proxy-agent/index.js b/deps/npm/node_modules/socks-proxy-agent/index.js
new file mode 100644
index 0000000000..5c0f13ae17
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/index.js
@@ -0,0 +1,145 @@
+/**
+ * Module dependencies.
+ */
+
+var tls; // lazy-loaded...
+var url = require('url');
+var dns = require('dns');
+var Agent = require('agent-base');
+var SocksClient = require('socks').SocksClient;
+var inherits = require('util').inherits;
+
+/**
+ * Module exports.
+ */
+
+module.exports = SocksProxyAgent;
+
+/**
+ * The `SocksProxyAgent`.
+ *
+ * @api public
+ */
+
+function SocksProxyAgent(opts) {
+ if (!(this instanceof SocksProxyAgent)) return new SocksProxyAgent(opts);
+ if ('string' == typeof opts) opts = url.parse(opts);
+ if (!opts)
+ throw new Error(
+ 'a SOCKS proxy server `host` and `port` must be specified!'
+ );
+ Agent.call(this, opts);
+
+ var proxy = Object.assign({}, opts);
+
+ // prefer `hostname` over `host`, because of `url.parse()`
+ proxy.host = proxy.hostname || proxy.host;
+
+ // SOCKS doesn't *technically* have a default port, but this is
+ // the same default that `curl(1)` uses
+ proxy.port = +proxy.port || 1080;
+
+ if (proxy.host && proxy.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 proxy.path;
+ delete proxy.pathname;
+ }
+
+ // figure out if we want socks v4 or v5, based on the "protocol" used.
+ // Defaults to 5.
+ proxy.lookup = false;
+ switch (proxy.protocol) {
+ case 'socks4:':
+ proxy.lookup = true;
+ // pass through
+ case 'socks4a:':
+ proxy.version = 4;
+ break;
+ case 'socks5:':
+ proxy.lookup = true;
+ // pass through
+ case 'socks:': // no version specified, default to 5h
+ case 'socks5h:':
+ proxy.version = 5;
+ break;
+ default:
+ throw new TypeError(
+ 'A "socks" protocol must be specified! Got: ' + proxy.protocol
+ );
+ }
+
+ if (proxy.auth) {
+ var auth = proxy.auth.split(':');
+ proxy.authentication = { username: auth[0], password: auth[1] };
+ proxy.userid = auth[0];
+ }
+ this.proxy = proxy;
+}
+inherits(SocksProxyAgent, Agent);
+
+/**
+ * Initiates a SOCKS connection to the specified SOCKS proxy server,
+ * which in turn connects to the specified remote host and port.
+ *
+ * @api public
+ */
+
+SocksProxyAgent.prototype.callback = function connect(req, opts, fn) {
+ var proxy = this.proxy;
+
+ // called once the SOCKS proxy has connected to the specified remote endpoint
+ function onhostconnect(err, result) {
+ if (err) return fn(err);
+
+ var socket = result.socket;
+
+ var s = socket;
+ if (opts.secureEndpoint) {
+ // since the proxy is connecting to an SSL server, we have
+ // to upgrade this socket connection to an SSL connection
+ if (!tls) tls = require('tls');
+ opts.socket = socket;
+ opts.servername = opts.host;
+ opts.host = null;
+ opts.hostname = null;
+ opts.port = null;
+ s = tls.connect(opts);
+ }
+
+ fn(null, s);
+ }
+
+ // called for the `dns.lookup()` callback
+ function onlookup(err, ip) {
+ if (err) return fn(err);
+ options.destination.host = ip;
+ SocksClient.createConnection(options, onhostconnect);
+ }
+
+ var options = {
+ proxy: {
+ ipaddress: proxy.host,
+ port: +proxy.port,
+ type: proxy.version
+ },
+ destination: {
+ port: +opts.port
+ },
+ command: 'connect'
+ };
+
+ if (proxy.authentication) {
+ options.proxy.authentication = proxy.authentication;
+ options.proxy.userid = proxy.userid;
+ }
+
+ if (proxy.lookup) {
+ // client-side DNS resolution for "4" and "5" socks proxy versions
+ dns.lookup(opts.host, onlookup);
+ } else {
+ // proxy hostname DNS resolution for "4a" and "5h" socks proxy servers
+ onlookup(null, opts.host);
+ }
+}
diff --git a/deps/npm/node_modules/socks-proxy-agent/package.json b/deps/npm/node_modules/socks-proxy-agent/package.json
new file mode 100644
index 0000000000..02ca38c792
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "socks-proxy-agent@^4.0.0",
+ "_id": "socks-proxy-agent@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==",
+ "_location": "/socks-proxy-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks-proxy-agent@^4.0.0",
+ "name": "socks-proxy-agent",
+ "escapedName": "socks-proxy-agent",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/make-fetch-happen"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz",
+ "_shasum": "5936bf8b707a993079c6f37db2091821bffa6473",
+ "_spec": "socks-proxy-agent@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/make-fetch-happen",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "bugs": {
+ "url": "https://github.com/TooTallNate/node-socks-proxy-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "agent-base": "~4.2.0",
+ "socks": "~2.2.0"
+ },
+ "deprecated": false,
+ "description": "A SOCKS proxy `http.Agent` implementation for HTTP and HTTPS",
+ "devDependencies": {
+ "mocha": "~5.1.0",
+ "raw-body": "~2.3.2",
+ "socksv5": "0.0.6"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "homepage": "https://github.com/TooTallNate/node-socks-proxy-agent#readme",
+ "keywords": [
+ "socks",
+ "socks4",
+ "socks4a",
+ "proxy",
+ "http",
+ "https",
+ "agent"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "socks-proxy-agent",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/node-socks-proxy-agent.git"
+ },
+ "scripts": {
+ "test": "mocha --reporter spec"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key b/deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
index fd12501220..fd12501220 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
+++ b/deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.key
diff --git a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem b/deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
index b115a5e914..b115a5e914 100644
--- a/deps/npm/node_modules/npm-profile/node_modules/make-fetch-happen/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
+++ b/deps/npm/node_modules/socks-proxy-agent/test/ssl-cert-snakeoil.pem
diff --git a/deps/npm/node_modules/socks-proxy-agent/test/test.js b/deps/npm/node_modules/socks-proxy-agent/test/test.js
new file mode 100644
index 0000000000..968ef650fb
--- /dev/null
+++ b/deps/npm/node_modules/socks-proxy-agent/test/test.js
@@ -0,0 +1,144 @@
+
+/**
+ * Module dependencies.
+ */
+
+var fs = require('fs');
+var url = require('url');
+var http = require('http');
+var https = require('https');
+var assert = require('assert');
+var socks = require('socksv5');
+var getRawBody = require('raw-body');
+var SocksProxyAgent = require('../');
+
+describe('SocksProxyAgent', function () {
+ var httpServer, httpPort;
+ var httpsServer, httpsPort;
+ var socksServer, socksPort;
+
+ before(function (done) {
+ // setup SOCKS proxy server
+ socksServer = socks.createServer(function(info, accept, deny) {
+ accept();
+ });
+ socksServer.listen(0, '127.0.0.1', function() {
+ socksPort = socksServer.address().port;
+ //console.log('SOCKS server listening on port %d', socksPort);
+ done();
+ });
+ socksServer.useAuth(socks.auth.None());
+ //socksServer.useAuth(socks.auth.UserPassword(function(user, password, cb) {
+ // cb(user === 'nodejs' && password === 'rules!');
+ //}));
+ });
+
+ before(function (done) {
+ // setup target HTTP server
+ httpServer = http.createServer();
+ httpServer.listen(function () {
+ httpPort = httpServer.address().port;
+ done();
+ });
+ });
+
+ before(function (done) {
+ // setup target SSL HTTPS server
+ var options = {
+ key: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.key'),
+ cert: fs.readFileSync(__dirname + '/ssl-cert-snakeoil.pem')
+ };
+ httpsServer = https.createServer(options);
+ httpsServer.listen(function () {
+ httpsPort = httpsServer.address().port;
+ done();
+ });
+ });
+
+ after(function (done) {
+ socksServer.once('close', function () { done(); });
+ socksServer.close();
+ });
+
+ after(function (done) {
+ httpServer.once('close', function () { done(); });
+ httpServer.close();
+ });
+
+ after(function (done) {
+ httpsServer.once('close', function () { done(); });
+ httpsServer.close();
+ });
+
+ describe('constructor', function () {
+ it('should throw an Error if no "proxy" argument is given', function () {
+ assert.throws(function () {
+ new SocksProxyAgent();
+ });
+ });
+ it('should accept a "string" proxy argument', function () {
+ var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort);
+ assert.equal('127.0.0.1', agent.proxy.host);
+ assert.equal(socksPort, agent.proxy.port);
+ });
+ it('should accept a `url.parse()` result object argument', function () {
+ var opts = url.parse('socks://127.0.0.1:' + socksPort);
+ var agent = new SocksProxyAgent(opts);
+ assert.equal('127.0.0.1', agent.proxy.host);
+ assert.equal(socksPort, agent.proxy.port);
+ });
+ });
+
+ describe('"http" module', function () {
+ it('should work against an HTTP endpoint', function (done) {
+ httpServer.once('request', function (req, res) {
+ assert.equal('/foo', req.url);
+ res.statusCode = 404;
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort);
+ var opts = url.parse('http://127.0.0.1:' + httpPort + '/foo');
+ opts.agent = agent;
+ opts.headers = { foo: 'bar' };
+ var req = http.get(opts, function (res) {
+ assert.equal(404, res.statusCode);
+ getRawBody(res, 'utf8', function (err, buf) {
+ if (err) return done(err);
+ var data = JSON.parse(buf);
+ assert.equal('bar', data.foo);
+ done();
+ });
+ });
+ req.once('error', done);
+ });
+ });
+
+ describe('"https" module', function () {
+ it('should work against an HTTPS endpoint', function (done) {
+ httpsServer.once('request', function (req, res) {
+ assert.equal('/foo', req.url);
+ res.statusCode = 404;
+ res.end(JSON.stringify(req.headers));
+ });
+
+ var agent = new SocksProxyAgent('socks://127.0.0.1:' + socksPort);
+ var opts = url.parse('https://127.0.0.1:' + httpsPort + '/foo');
+ opts.agent = agent;
+ opts.rejectUnauthorized = false;
+
+ opts.headers = { foo: 'bar' };
+ var req = https.get(opts, function (res) {
+ assert.equal(404, res.statusCode);
+ getRawBody(res, 'utf8', function (err, buf) {
+ if (err) return done(err);
+ var data = JSON.parse(buf);
+ assert.equal('bar', data.foo);
+ done();
+ });
+ });
+ req.once('error', done);
+ });
+ });
+
+});
diff --git a/deps/npm/node_modules/socks/.prettierrc.yaml b/deps/npm/node_modules/socks/.prettierrc.yaml
new file mode 100644
index 0000000000..a977335a82
--- /dev/null
+++ b/deps/npm/node_modules/socks/.prettierrc.yaml
@@ -0,0 +1,5 @@
+parser: typescript
+printWidth: 80
+tabWidth: 2
+singleQuote: true
+trailingComma: none
diff --git a/deps/npm/node_modules/socks/.travis.yml b/deps/npm/node_modules/socks/.travis.yml
new file mode 100644
index 0000000000..9366dacc42
--- /dev/null
+++ b/deps/npm/node_modules/socks/.travis.yml
@@ -0,0 +1,10 @@
+language: node_js
+node_js:
+ - 6
+ - 8
+ - stable
+
+before_install:
+ - yarn global add typescript prettier tslint coveralls
+
+script: "yarn run build && yarn run coveralls" \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/LICENSE b/deps/npm/node_modules/socks/LICENSE
new file mode 100644
index 0000000000..b2442a9e71
--- /dev/null
+++ b/deps/npm/node_modules/socks/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2013 Josh Glazebrook
+
+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/socks/README.md b/deps/npm/node_modules/socks/README.md
new file mode 100644
index 0000000000..e45e9a277f
--- /dev/null
+++ b/deps/npm/node_modules/socks/README.md
@@ -0,0 +1,668 @@
+# socks [![Build Status](https://travis-ci.org/JoshGlazebrook/socks.svg?branch=master)](https://travis-ci.org/JoshGlazebrook/socks) [![Coverage Status](https://coveralls.io/repos/github/JoshGlazebrook/socks/badge.svg?branch=master)](https://coveralls.io/github/JoshGlazebrook/socks?branch=v2)
+
+Fully featured SOCKS proxy client supporting SOCKSv4, SOCKSv4a, and SOCKSv5. Includes Bind and Associate functionality.
+
+### Features
+
+* Supports SOCKS v4, v4a, and v5 protocols.
+* Supports the CONNECT, BIND, and ASSOCIATE commands.
+* Supports callbacks, promises, and events for proxy connection creation async flow control.
+* Supports proxy chaining (CONNECT only).
+* Supports user/pass authentication.
+* Built in UDP frame creation & parse functions.
+* Created with TypeScript, type definitions are provided.
+
+### Requirements
+
+* Node.js v6.0+ (Please use [v1](https://github.com/JoshGlazebrook/socks/tree/82d83923ad960693d8b774cafe17443ded7ed584) for older versions of Node.js)
+
+### Looking for v1?
+* Docs for v1 are available [here](https://github.com/JoshGlazebrook/socks/tree/82d83923ad960693d8b774cafe17443ded7ed584)
+
+## Installation
+
+`yarn add socks`
+
+or
+
+`npm install --save socks`
+
+## Usage
+
+```typescript
+// TypeScript
+import { SocksClient, SocksClientOptions, SocksClientChainOptions } from 'socks';
+
+// ES6 JavaScript
+import { SocksClient } from 'socks';
+
+// Legacy JavaScript
+const SocksClient = require('socks').SocksClient;
+```
+
+## Quick Start Example
+
+Connect to github.com (192.30.253.113) on port 80, using a SOCKS proxy.
+
+```javascript
+const options = {
+ proxy: {
+ ipaddress: '159.203.75.200',
+ port: 1080,
+ type: 5 // Proxy version (4 or 5)
+ },
+
+ command: 'connect', // SOCKS command (createConnection factory function only supports the connect command)
+
+ destination: {
+ host: '192.30.253.113', // github.com (hostname lookups are supported with SOCKS v4a and 5)
+ port: 80
+ }
+};
+
+// Async/Await
+try {
+ const info = await SocksClient.createConnection(options);
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+} catch (err) {
+ // Handle errors
+}
+
+// Promises
+SocksClient.createConnection(options)
+.then(info => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+})
+.catch(err => {
+ // Handle errors
+});
+
+// Callbacks
+SocksClient.createConnection(options, (err, info) => {
+ if (!err) {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+ } else {
+ // Handle errors
+ }
+});
+```
+
+## Chaining Proxies
+
+**Note:** Chaining is only supported when using the SOCKS connect command, and chaining can only be done through the special factory chaining function.
+
+This example makes a proxy chain through two SOCKS proxies to ip-api.com. Once the connection to the destination is established it sends an HTTP request to get a JSON response that returns ip info for the requesting ip.
+
+```javascript
+const options = {
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+ command: 'connect', // Only the connect command is supported when chaining proxies.
+ proxies: [ // The chain order is the order in the proxies array, meaning the last proxy will establish a connection to the destination.
+ {
+ ipaddress: '159.203.75.235',
+ port: 1081,
+ type: 5
+ },
+ {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ }
+ ]
+}
+
+// Async/Await
+try {
+ const info = await SocksClient.createConnectionChain(options);
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ console.log(info.socket.remoteAddress) // The remote address of the returned socket is the first proxy in the chain.
+ // 159.203.75.235
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy in the chain (104.131.124.203) is connected to it.
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+} catch (err) {
+ // Handle errors
+}
+
+// Promises
+SocksClient.createConnectionChain(options)
+.then(info => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+
+ console.log(info.socket.remoteAddress) // The remote address of the returned socket is the first proxy in the chain.
+ // 159.203.75.235
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy in the chain (104.131.124.203) is connected to it.
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+})
+.catch(err => {
+ // Handle errors
+});
+
+// Callbacks
+SocksClient.createConnectionChain(options, (err, info) => {
+ if (!err) {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+
+ console.log(info.socket.remoteAddress) // The remote address of the returned socket is the first proxy in the chain.
+ // 159.203.75.235
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy in the chain (104.131.124.203) is connected to it.
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+ } else {
+ // Handle errors
+ }
+});
+```
+
+## Bind Example (TCP Relay)
+
+When the bind command is sent to a SOCKS v4/v5 proxy server, the proxy server starts listening on a new TCP port and the proxy relays then remote host information back to the client. When another remote client connects to the proxy server on this port the SOCKS proxy sends a notification that an incoming connection has been accepted to the initial client and a full duplex stream is now established to the initial client and the client that connected to that special port.
+
+```javascript
+const options = {
+ proxy: {
+ ipaddress: '159.203.75.235',
+ port: 1081,
+ type: 5
+ },
+
+ command: 'bind',
+
+ // When using BIND, the destination should be the remote client that is expected to connect to the SOCKS proxy. Using 0.0.0.0 makes the Proxy accept any incoming connection on that port.
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ }
+};
+
+// Creates a new SocksClient instance.
+const client = new SocksClient(options);
+
+// When the SOCKS proxy has bound a new port and started listening, this event is fired.
+client.on('bound', info => {
+ console.log(info.remoteHost);
+ /*
+ {
+ host: "159.203.75.235",
+ port: 57362
+ }
+ */
+});
+
+// When a client connects to the newly bound port on the SOCKS proxy, this event is fired.
+client.on('established', info => {
+ // info.remoteHost is the remote address of the client that connected to the SOCKS proxy.
+ console.log(info.remoteHost);
+ /*
+ host: 67.171.34.23,
+ port: 49823
+ */
+
+ console.log(info.socket);
+ // <Socket ...> (This is a raw net.Socket that is a connection between the initial client and the remote client that connected to the proxy)
+
+ // Handle received data...
+ info.socket.on('data', data => {
+ console.log('recv', data);
+ });
+});
+
+// An error occurred trying to establish this SOCKS connection.
+client.on('error', err => {
+ console.error(err);
+});
+
+// Start connection to proxy
+client.connect();
+```
+
+## Associate Example (UDP Relay)
+
+When the associate command is sent to a SOCKS v5 proxy server, it sets up a UDP relay that allows the client to send UDP packets to a remote host through the proxy server, and also receive UDP packet responses back through the proxy server.
+
+```javascript
+const options = {
+ proxy: {
+ ipaddress: '159.203.75.235',
+ port: 1081,
+ type: 5
+ },
+
+ command: 'associate',
+
+ // When using associate, the destination should be the remote client that is expected to send UDP packets to the proxy server to be forwarded. This should be your local ip, or optionally the wildcard address (0.0.0.0) UDP Client <-> Proxy <-> UDP Client
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ }
+};
+
+// Create a local UDP socket for sending packets to the proxy.
+const udpSocket = dgram.createSocket('udp4');
+udpSocket.bind();
+
+// Listen for incoming UDP packets from the proxy server.
+udpSocket.on('message', (message, rinfo) => {
+ console.log(SocksClient.parseUDPFrame(message));
+ /*
+ { frameNumber: 0,
+ remoteHost: { host: '165.227.108.231', port: 4444 }, // The remote host that replied with a UDP packet
+ data: <Buffer 74 65 73 74 0a> // The data
+ }
+ */
+});
+
+let client = new SocksClient(associateOptions);
+
+// When the UDP relay is established, this event is fired and includes the UDP relay port to send data to on the proxy server.
+client.on('established', info => {
+ console.log(info.remoteHost);
+ /*
+ {
+ host: '159.203.75.235',
+ port: 44711
+ }
+ */
+
+ // Send 'hello' to 165.227.108.231:4444
+ const packet = SocksClient.createUDPFrame({
+ remoteHost: { host: '165.227.108.231', port: 4444 },
+ data: Buffer.from(line)
+ });
+ udpSocket.send(packet, info.remoteHost.port, info.remoteHost.host);
+});
+
+// Start connection
+client.connect();
+```
+
+**Note:** The associate TCP connection to the proxy must remain open for the UDP relay to work.
+
+## Additional Examples
+
+[Documentation](docs/index.md)
+
+
+## Migrating from v1
+
+Looking for a guide to migrate from v1? Look [here](docs/migratingFromV1.md)
+
+## Api Reference:
+
+**Note:** socks includes full TypeScript definitions. These can even be used without using TypeScript as most IDEs (such as VS Code) will use these type definition files for auto completion intellisense even in JavaScript files.
+
+* Class: SocksClient
+ * [new SocksClient(options[, callback])](#new-socksclientoptions)
+ * [Class Method: SocksClient.createConnection(options[, callback])](#class-method-socksclientcreateconnectionoptions-callback)
+ * [Class Method: SocksClient.createConnectionChain(options[, callback])](#class-method-socksclientcreateconnectionchainoptions-callback)
+ * [Class Method: SocksClient.createUDPFrame(options)](#class-method-socksclientcreateudpframedetails)
+ * [Class Method: SocksClient.parseUDPFrame(data)](#class-method-socksclientparseudpframedata)
+ * [Event: 'error'](#event-error)
+ * [Event: 'bound'](#event-bound)
+ * [Event: 'established'](#event-established)
+ * [client.connect()](#clientconnect)
+ * [client.socksClientOptions](#clientconnect)
+
+### SocksClient
+
+SocksClient establishes SOCKS proxy connections to remote destination hosts. These proxy connections are fully transparent to the server and once established act as full duplex streams. SOCKS v4, v4a, and v5 are supported, as well as the connect, bind, and associate commands.
+
+SocksClient supports creating connections using callbacks, promises, and async/await flow control using two static factory functions createConnection and createConnectionChain. It also internally extends EventEmitter which results in allowing event handling based async flow control.
+
+**SOCKS Compatibility Table**
+
+| Socks Version | TCP | UDP | IPv4 | IPv6 | Hostname |
+| --- | :---: | :---: | :---: | :---: | :---: |
+| SOCKS v4 | āœ… | āŒ | āœ… | āŒ | āŒ |
+| SOCKS v4a | āœ… | āŒ | āœ… | āŒ | āœ… |
+| SOCKS v5 | āœ… | āœ… | āœ… | āœ… | āœ… |
+
+### new SocksClient(options)
+
+* ```options``` {SocksClientOptions} - An object describing the SOCKS proxy to use, the command to send and establish, and the destination host to connect to.
+
+### SocksClientOptions
+
+```typescript
+{
+ proxy: {
+ ipaddress: '159.203.75.200', // ipv4 or ipv6
+ port: 1080,
+ type: 5 // Proxy version (4 or 5). For v4a, just use 4.
+
+ // Optional fields
+ userId: 'some username', // Used for SOCKS4 userId auth, and SOCKS5 user/pass auth in conjunction with password.
+ password: 'some password' // Used in conjunction with userId for user/pass auth for SOCKS5 proxies.
+ },
+
+ command: 'connect', // connect, bind, associate
+
+ destination: {
+ host: '192.30.253.113', // ipv4, ipv6, hostname. Hostnames work with v4a and v5.
+ port: 80
+ },
+
+ // Optional fields
+ timeout: 30000; // How long to wait to establish a proxy connection. (defaults to 30 seconds)
+}
+```
+
+### Class Method: SocksClient.createConnection(options[, callback])
+* ```options``` { SocksClientOptions } - An object describing the SOCKS proxy to use, the command to send and establish, and the destination host to connect to.
+* ```callback``` { Function } - Optional callback function that is called when the proxy connection is established, or an error occurs.
+* ```returns``` { Promise } - A Promise is returned that is resolved when the proxy connection is established, or rejected when an error occurs.
+
+Creates a new proxy connection through the given proxy to the given destination host. This factory function supports callbacks and promises for async flow control.
+
+**Note:** If a callback function is provided, the promise will always resolve regardless of an error occurring. Please be sure to exclusively use either promises or callbacks when using this factory function.
+
+```typescript
+const options = {
+ proxy: {
+ ipaddress: '159.203.75.200', // ipv4 or ipv6
+ port: 1080,
+ type: 5 // Proxy version (4 or 5)
+ },
+
+ command: 'connect', // connect, bind, associate
+
+ destination: {
+ host: '192.30.253.113', // ipv4, ipv6, hostname
+ port: 80
+ }
+}
+
+// Await/Async (uses a Promise)
+try {
+ const info = await SocksClient.createConnection(options);
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>, // Raw net.Socket
+ }
+ */
+ / <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy server)
+
+} catch (err) {
+ // Handle error...
+}
+
+// Promise
+SocksClient.createConnection(options)
+.then(info => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>, // Raw net.Socket
+ }
+ */
+})
+.catch(err => {
+ // Handle error...
+});
+
+// Callback
+SocksClient.createConnection(options, (err, info) => {
+ if (!err) {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>, // Raw net.Socket
+ }
+ */
+ } else {
+ // Handle error...
+ }
+});
+```
+
+### Class Method: SocksClient.createConnectionChain(options[, callback])
+* ```options``` { SocksClientChainOptions } - An object describing a list of SOCKS proxies to use, the command to send and establish, and the destination host to connect to.
+* ```callback``` { Function } - Optional callback function that is called when the proxy connection chain is established, or an error occurs.
+* ```returns``` { Promise } - A Promise is returned that is resolved when the proxy connection chain is established, or rejected when an error occurs.
+
+Creates a new proxy connection chain through a list of at least two SOCKS proxies to the given destination host. This factory method supports callbacks and promises for async flow control.
+
+**Note:** If a callback function is provided, the promise will always resolve regardless of an error occurring. Please be sure to exclusively use either promises or callbacks when using this factory function.
+
+**Note:** At least two proxies must be provided for the chain to be established.
+
+```typescript
+const options = {
+ proxies: [ // The chain order is the order in the proxies array, meaning the last proxy will establish a connection to the destination.
+ {
+ ipaddress: '159.203.75.235', // ipv4 or ipv6
+ port: 1081,
+ type: 5
+ },
+ {
+ ipaddress: '104.131.124.203', // ipv4 or ipv6
+ port: 1081,
+ type: 5
+ }
+ ]
+
+ command: 'connect', // Only connect is supported in chaining mode.
+
+ destination: {
+ host: '192.30.253.113', // ipv4, ipv6, hostname
+ port: 80
+ }
+}
+```
+
+### Class Method: SocksClient.createUDPFrame(details)
+* ```details``` { SocksUDPFrameDetails } - An object containing the remote host, frame number, and frame data to use when creating a SOCKS UDP frame packet.
+* ```returns``` { Buffer } - A Buffer containing all of the UDP frame data.
+
+Creates a SOCKS UDP frame relay packet that is sent and received via a SOCKS proxy when using the associate command for UDP packet forwarding.
+
+**SocksUDPFrameDetails**
+
+```typescript
+{
+ frameNumber: 0, // The frame number (used for breaking up larger packets)
+
+ remoteHost: { // The remote host to have the proxy send data to, or the remote host that send this data.
+ host: '1.2.3.4',
+ port: 1234
+ },
+
+ data: <Buffer 01 02 03 04...> // A Buffer instance of data to include in the packet (actual data sent to the remote host)
+}
+interface SocksUDPFrameDetails {
+ // The frame number of the packet.
+ frameNumber?: number;
+
+ // The remote host.
+ remoteHost: SocksRemoteHost;
+
+ // The packet data.
+ data: Buffer;
+}
+```
+
+### Class Method: SocksClient.parseUDPFrame(data)
+* ```data``` { Buffer } - A Buffer instance containing SOCKS UDP frame data to parse.
+* ```returns``` { SocksUDPFrameDetails } - An object containing the remote host, frame number, and frame data of the SOCKS UDP frame.
+
+```typescript
+const frame = SocksClient.parseUDPFrame(data);
+console.log(frame);
+/*
+{
+ frameNumber: 0,
+ remoteHost: {
+ host: '1.2.3.4',
+ port: 1234
+ },
+ data: <Buffer 01 02 03 04 ...>
+}
+*/
+```
+
+Parses a Buffer instance and returns the parsed SocksUDPFrameDetails object.
+
+## Event: 'error'
+* ```err``` { SocksClientError } - An Error object containing an error message and the original SocksClientOptions.
+
+This event is emitted if an error occurs when trying to establish the proxy connection.
+
+## Event: 'bound'
+* ```info``` { SocksClientBoundEvent } An object containing a Socket and SocksRemoteHost info.
+
+This event is emitted when using the BIND command on a remote SOCKS proxy server. This event indicates the proxy server is now listening for incoming connections on a specified port.
+
+**SocksClientBoundEvent**
+```typescript
+{
+ socket: net.Socket, // The underlying raw Socket
+ remoteHost: {
+ host: '1.2.3.4', // The remote host that is listening (usually the proxy itself)
+ port: 4444 // The remote port the proxy is listening on for incoming connections (when using BIND).
+ }
+}
+```
+
+## Event: 'established'
+* ```info``` { SocksClientEstablishedEvent } An object containing a Socket and SocksRemoteHost info.
+
+This event is emitted when the following conditions are met:
+1. When using the CONNECT command, and a proxy connection has been established to the remote host.
+2. When using the BIND command, and an incoming connection has been accepted by the proxy and a TCP relay has been established.
+3. When using the ASSOCIATE command, and a UDP relay has been established.
+
+When using BIND, 'bound' is first emitted to indicate the SOCKS server is waiting for an incoming connection, and provides the remote port the SOCKS server is listening on.
+
+When using ASSOCIATE, 'established' is emitted with the remote UDP port the SOCKS server is accepting UDP frame packets on.
+
+**SocksClientEstablishedEvent**
+```typescript
+{
+ socket: net.Socket, // The underlying raw Socket
+ remoteHost: {
+ host: '1.2.3.4', // The remote host that is listening (usually the proxy itself)
+ port: 52738 // The remote port the proxy is listening on for incoming connections (when using BIND).
+ }
+}
+```
+
+## client.connect()
+
+Starts connecting to the remote SOCKS proxy server to establish a proxy connection to the destination host.
+
+## client.socksClientOptions
+* ```returns``` { SocksClientOptions } The options that were passed to the SocksClient.
+
+Gets the options that were passed to the SocksClient when it was created.
+
+
+**SocksClientError**
+```typescript
+{ // Subclassed from Error.
+ message: 'An error has occurred',
+ options: {
+ // SocksClientOptions
+ }
+}
+```
+
+# Further Reading:
+
+Please read the SOCKS 5 specifications for more information on how to use BIND and Associate.
+http://www.ietf.org/rfc/rfc1928.txt
+
+# License
+
+This work is licensed under the [MIT license](http://en.wikipedia.org/wiki/MIT_License).
diff --git a/deps/npm/node_modules/socks/build/client/socksclient.js b/deps/npm/node_modules/socks/build/client/socksclient.js
new file mode 100644
index 0000000000..0a58fe5337
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/client/socksclient.js
@@ -0,0 +1,702 @@
+"use strict";
+var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
+ return new (P || (P = Promise))(function (resolve, reject) {
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
+ function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
+ });
+};
+Object.defineProperty(exports, "__esModule", { value: true });
+const events_1 = require("events");
+const net = require("net");
+const ip = require("ip");
+const smart_buffer_1 = require("smart-buffer");
+const constants_1 = require("../common/constants");
+const helpers_1 = require("../common/helpers");
+const receivebuffer_1 = require("../common/receivebuffer");
+const util_1 = require("../common/util");
+class SocksClient extends events_1.EventEmitter {
+ constructor(options) {
+ super();
+ this._options = Object.assign({}, options);
+ // Validate SocksClientOptions
+ helpers_1.validateSocksClientOptions(options);
+ // Default state
+ this.state = constants_1.SocksClientState.Created;
+ }
+ /**
+ * Creates a new SOCKS connection.
+ *
+ * Note: Supports callbacks and promises. Only supports the connect command.
+ * @param options { SocksClientOptions } Options.
+ * @param callback { Function } An optional callback function.
+ * @returns { Promise }
+ */
+ static createConnection(options, callback) {
+ // Validate SocksClientOptions
+ helpers_1.validateSocksClientOptions(options, ['connect']);
+ return new Promise((resolve, reject) => {
+ const client = new SocksClient(options);
+ client.connect(options.existing_socket);
+ client.once('established', (info) => {
+ client.removeAllListeners();
+ if (typeof callback === 'function') {
+ callback(null, info);
+ resolve(); // Resolves pending promise (prevents memory leaks).
+ }
+ else {
+ resolve(info);
+ }
+ });
+ // Error occurred, failed to establish connection.
+ client.once('error', (err) => {
+ client.removeAllListeners();
+ if (typeof callback === 'function') {
+ callback(err);
+ resolve(); // Resolves pending promise (prevents memory leaks).
+ }
+ else {
+ reject(err);
+ }
+ });
+ });
+ }
+ /**
+ * Creates a new SOCKS connection chain to a destination host through 2 or more SOCKS proxies.
+ *
+ * Note: Supports callbacks and promises. Only supports the connect method.
+ * Note: Implemented via createConnection() factory function.
+ * @param options { SocksClientChainOptions } Options
+ * @param callback { Function } An optional callback function.
+ * @returns { Promise }
+ */
+ static createConnectionChain(options, callback) {
+ // Validate SocksClientChainOptions
+ helpers_1.validateSocksClientChainOptions(options);
+ // Shuffle proxies
+ if (options.randomizeChain) {
+ util_1.shuffleArray(options.proxies);
+ }
+ return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
+ let sock;
+ try {
+ for (let i = 0; i < options.proxies.length; i++) {
+ const nextProxy = options.proxies[i];
+ // If we've reached the last proxy in the chain, the destination is the actual destination, otherwise it's the next proxy.
+ const nextDestination = i === options.proxies.length - 1
+ ? options.destination
+ : {
+ host: options.proxies[i + 1].ipaddress,
+ port: options.proxies[i + 1].port
+ };
+ // Creates the next connection in the chain.
+ const result = yield SocksClient.createConnection({
+ command: 'connect',
+ proxy: nextProxy,
+ destination: nextDestination
+ // Initial connection ignores this as sock is undefined. Subsequent connections re-use the first proxy socket to form a chain.
+ });
+ // If sock is undefined, assign it here.
+ if (!sock) {
+ sock = result.socket;
+ }
+ }
+ if (typeof callback === 'function') {
+ callback(null, { socket: sock });
+ resolve(); // Resolves pending promise (prevents memory leaks).
+ }
+ else {
+ resolve({ socket: sock });
+ }
+ }
+ catch (err) {
+ if (typeof callback === 'function') {
+ callback(err);
+ resolve(); // Resolves pending promise (prevents memory leaks).
+ }
+ else {
+ reject(err);
+ }
+ }
+ }));
+ }
+ /**
+ * Creates a SOCKS UDP Frame.
+ * @param options
+ */
+ static createUDPFrame(options) {
+ const buff = new smart_buffer_1.SmartBuffer();
+ buff.writeUInt16BE(0);
+ buff.writeUInt8(options.frameNumber || 0);
+ // IPv4/IPv6/Hostname
+ if (net.isIPv4(options.remoteHost.host)) {
+ buff.writeUInt8(constants_1.Socks5HostType.IPv4);
+ buff.writeUInt32BE(ip.toLong(options.remoteHost.host));
+ }
+ else if (net.isIPv6(options.remoteHost.host)) {
+ buff.writeUInt8(constants_1.Socks5HostType.IPv6);
+ buff.writeBuffer(ip.toBuffer(options.remoteHost.host));
+ }
+ else {
+ buff.writeUInt8(constants_1.Socks5HostType.Hostname);
+ buff.writeUInt8(Buffer.byteLength(options.remoteHost.host));
+ buff.writeString(options.remoteHost.host);
+ }
+ // Port
+ buff.writeUInt16BE(options.remoteHost.port);
+ // Data
+ buff.writeBuffer(options.data);
+ return buff.toBuffer();
+ }
+ /**
+ * Parses a SOCKS UDP frame.
+ * @param data
+ */
+ static parseUDPFrame(data) {
+ const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);
+ buff.readOffset = 2;
+ const frameNumber = buff.readUInt8();
+ const hostType = buff.readUInt8();
+ let remoteHost;
+ if (hostType === constants_1.Socks5HostType.IPv4) {
+ remoteHost = ip.fromLong(buff.readUInt32BE());
+ }
+ else if (hostType === constants_1.Socks5HostType.IPv6) {
+ remoteHost = ip.toString(buff.readBuffer(16));
+ }
+ else {
+ remoteHost = buff.readString(buff.readUInt8());
+ }
+ const remotePort = buff.readUInt16BE();
+ return {
+ frameNumber,
+ remoteHost: {
+ host: remoteHost,
+ port: remotePort
+ },
+ data: buff.readBuffer()
+ };
+ }
+ /**
+ * Gets the SocksClient internal state.
+ */
+ get state() {
+ return this._state;
+ }
+ /**
+ * Internal state setter. If the SocksClient is in an error state, it cannot be changed to a non error state.
+ */
+ set state(newState) {
+ if (this._state !== constants_1.SocksClientState.Error) {
+ this._state = newState;
+ }
+ }
+ /**
+ * Starts the connection establishment to the proxy and destination.
+ * @param existing_socket Connected socket to use instead of creating a new one (internal use).
+ */
+ connect(existing_socket) {
+ this._onDataReceived = (data) => this.onDataReceived(data);
+ this._onClose = () => this.onClose();
+ this._onError = (err) => this.onError(err);
+ this._onConnect = () => this.onConnect();
+ // Start timeout timer (defaults to 30 seconds)
+ setTimeout(() => this.onEstablishedTimeout(), this._options.timeout || constants_1.DEFAULT_TIMEOUT);
+ // If an existing socket is provided, use it to negotiate SOCKS handshake. Otherwise create a new Socket.
+ if (existing_socket) {
+ this._socket = existing_socket;
+ }
+ else {
+ this._socket = new net.Socket();
+ }
+ // Attach Socket error handlers.
+ this._socket.once('close', this._onClose);
+ this._socket.once('error', this._onError);
+ this._socket.once('connect', this._onConnect);
+ this._socket.on('data', this._onDataReceived);
+ this.state = constants_1.SocksClientState.Connecting;
+ this._receiveBuffer = new receivebuffer_1.ReceiveBuffer();
+ if (existing_socket) {
+ this._socket.emit('connect');
+ }
+ else {
+ this._socket.connect(this._options.proxy.port, this._options.proxy.ipaddress);
+ }
+ // Listen for established event so we can re-emit any excess data received during handshakes.
+ this.prependOnceListener('established', info => {
+ setImmediate(() => {
+ if (this._receiveBuffer.length > 0) {
+ const excessData = this._receiveBuffer.get(this._receiveBuffer.length);
+ info.socket.emit('data', excessData);
+ }
+ info.socket.resume();
+ });
+ });
+ }
+ /**
+ * Handles internal Socks timeout callback.
+ * Note: If the Socks client is not BoundWaitingForConnection or Established, the connection will be closed.
+ */
+ onEstablishedTimeout() {
+ if (this.state !== constants_1.SocksClientState.Established &&
+ this.state !== constants_1.SocksClientState.BoundWaitingForConnection) {
+ this._closeSocket(constants_1.ERRORS.ProxyConnectionTimedOut);
+ }
+ }
+ /**
+ * Handles Socket connect event.
+ */
+ onConnect() {
+ this.state = constants_1.SocksClientState.Connected;
+ // Send initial handshake.
+ if (this._options.proxy.type === 4) {
+ this.sendSocks4InitialHandshake();
+ }
+ else {
+ this.sendSocks5InitialHandshake();
+ }
+ this.state = constants_1.SocksClientState.SentInitialHandshake;
+ }
+ /**
+ * Handles Socket data event.
+ * @param data
+ */
+ onDataReceived(data) {
+ /*
+ All received data is appended to a ReceiveBuffer.
+ This makes sure that all the data we need is received before we attempt to process it.
+ */
+ this._receiveBuffer.append(data);
+ // Process data that we have.
+ this.processData();
+ }
+ /**
+ * Handles processing of the data we have received.
+ */
+ processData() {
+ // If we have enough data to process the next step in the SOCKS handshake, proceed.
+ if (this._receiveBuffer.length >= this._nextRequiredPacketBufferSize) {
+ // Sent initial handshake, waiting for response.
+ if (this.state === constants_1.SocksClientState.SentInitialHandshake) {
+ if (this._options.proxy.type === 4) {
+ // Socks v4 only has one handshake response.
+ this.handleSocks4FinalHandshakeResponse();
+ }
+ else {
+ // Socks v5 has two handshakes, handle initial one here.
+ this.handleInitialSocks5HandshakeResponse();
+ }
+ // Sent auth request for Socks v5, waiting for response.
+ }
+ else if (this.state === constants_1.SocksClientState.SentAuthentication) {
+ this.handleInitialSocks5AuthenticationHandshakeResponse();
+ // Sent final Socks v5 handshake, waiting for final response.
+ }
+ else if (this.state === constants_1.SocksClientState.SentFinalHandshake) {
+ this.handleSocks5FinalHandshakeResponse();
+ // Socks BIND established. Waiting for remote connection via proxy.
+ }
+ else if (this.state === constants_1.SocksClientState.BoundWaitingForConnection) {
+ if (this._options.proxy.type === 4) {
+ this.handleSocks4IncomingConnectionResponse();
+ }
+ else {
+ this.handleSocks5IncomingConnectionResponse();
+ }
+ }
+ else if (this.state === constants_1.SocksClientState.Established) {
+ // do nothing (prevents closing of the socket)
+ }
+ else {
+ this._closeSocket(constants_1.ERRORS.InternalError);
+ }
+ }
+ }
+ /**
+ * Handles Socket close event.
+ * @param had_error
+ */
+ onClose() {
+ this._closeSocket(constants_1.ERRORS.SocketClosed);
+ }
+ /**
+ * Handles Socket error event.
+ * @param err
+ */
+ onError(err) {
+ this._closeSocket(err.message);
+ }
+ /**
+ * Removes internal event listeners on the underlying Socket.
+ */
+ removeInternalSocketHandlers() {
+ // Pauses data flow of the socket (this is internally resumed after 'established' is emitted)
+ this._socket.pause();
+ this._socket.removeListener('data', this._onDataReceived);
+ this._socket.removeListener('close', this._onClose);
+ this._socket.removeListener('error', this._onError);
+ this._socket.removeListener('connect', this.onConnect);
+ }
+ /**
+ * Closes and destroys the underlying Socket. Emits an error event.
+ * @param err { String } An error string to include in error event.
+ */
+ _closeSocket(err) {
+ // Make sure only one 'error' event is fired for the lifetime of this SocksClient instance.
+ if (this.state !== constants_1.SocksClientState.Error) {
+ // Set internal state to Error.
+ this.state = constants_1.SocksClientState.Error;
+ // Destroy Socket
+ this._socket.destroy();
+ // Remove internal listeners
+ this.removeInternalSocketHandlers();
+ // Fire 'error' event.
+ this.emit('error', new util_1.SocksClientError(err, this._options));
+ }
+ }
+ /**
+ * Sends initial Socks v4 handshake request.
+ */
+ sendSocks4InitialHandshake() {
+ const userId = this._options.proxy.userId || '';
+ const buff = new smart_buffer_1.SmartBuffer();
+ buff.writeUInt8(0x04);
+ buff.writeUInt8(constants_1.SocksCommand[this._options.command]);
+ buff.writeUInt16BE(this._options.destination.port);
+ // Socks 4 (IPv4)
+ if (net.isIPv4(this._options.destination.host)) {
+ buff.writeBuffer(ip.toBuffer(this._options.destination.host));
+ buff.writeStringNT(userId);
+ // Socks 4a (hostname)
+ }
+ else {
+ buff.writeUInt8(0x00);
+ buff.writeUInt8(0x00);
+ buff.writeUInt8(0x00);
+ buff.writeUInt8(0x01);
+ buff.writeStringNT(userId);
+ buff.writeStringNT(this._options.destination.host);
+ }
+ this._nextRequiredPacketBufferSize =
+ constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks4Response;
+ this._socket.write(buff.toBuffer());
+ }
+ /**
+ * Handles Socks v4 handshake response.
+ * @param data
+ */
+ handleSocks4FinalHandshakeResponse() {
+ const data = this._receiveBuffer.get(8);
+ if (data[1] !== constants_1.Socks4Response.Granted) {
+ this._closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedConnection} - (${constants_1.Socks4Response[data[1]]})`);
+ }
+ else {
+ // Bind response
+ if (constants_1.SocksCommand[this._options.command] === constants_1.SocksCommand.bind) {
+ const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);
+ buff.readOffset = 2;
+ const remoteHost = {
+ port: buff.readUInt16BE(),
+ host: ip.fromLong(buff.readUInt32BE())
+ };
+ // If host is 0.0.0.0, set to proxy host.
+ if (remoteHost.host === '0.0.0.0') {
+ remoteHost.host = this._options.proxy.ipaddress;
+ }
+ this.state = constants_1.SocksClientState.BoundWaitingForConnection;
+ this.emit('bound', { socket: this._socket, remoteHost });
+ // Connect response
+ }
+ else {
+ this.state = constants_1.SocksClientState.Established;
+ this.removeInternalSocketHandlers();
+ this.emit('established', { socket: this._socket });
+ }
+ }
+ }
+ /**
+ * Handles Socks v4 incoming connection request (BIND)
+ * @param data
+ */
+ handleSocks4IncomingConnectionResponse() {
+ const data = this._receiveBuffer.get(8);
+ if (data[1] !== constants_1.Socks4Response.Granted) {
+ this._closeSocket(`${constants_1.ERRORS.Socks4ProxyRejectedIncomingBoundConnection} - (${constants_1.Socks4Response[data[1]]})`);
+ }
+ else {
+ const buff = smart_buffer_1.SmartBuffer.fromBuffer(data);
+ buff.readOffset = 2;
+ const remoteHost = {
+ port: buff.readUInt16BE(),
+ host: ip.fromLong(buff.readUInt32BE())
+ };
+ this.state = constants_1.SocksClientState.Established;
+ this.removeInternalSocketHandlers();
+ this.emit('established', { socket: this._socket, remoteHost });
+ }
+ }
+ /**
+ * Sends initial Socks v5 handshake request.
+ */
+ sendSocks5InitialHandshake() {
+ const buff = new smart_buffer_1.SmartBuffer();
+ buff.writeUInt8(0x05);
+ buff.writeUInt8(2);
+ buff.writeUInt8(constants_1.Socks5Auth.NoAuth);
+ buff.writeUInt8(constants_1.Socks5Auth.UserPass);
+ this._nextRequiredPacketBufferSize =
+ constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5InitialHandshakeResponse;
+ this._socket.write(buff.toBuffer());
+ this.state = constants_1.SocksClientState.SentInitialHandshake;
+ }
+ /**
+ * Handles initial Socks v5 handshake response.
+ * @param data
+ */
+ handleInitialSocks5HandshakeResponse() {
+ const data = this._receiveBuffer.get(2);
+ if (data[0] !== 0x05) {
+ this._closeSocket(constants_1.ERRORS.InvalidSocks5IntiailHandshakeSocksVersion);
+ }
+ else if (data[1] === 0xff) {
+ this._closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeNoAcceptedAuthType);
+ }
+ else {
+ // If selected Socks v5 auth method is no auth, send final handshake request.
+ if (data[1] === constants_1.Socks5Auth.NoAuth) {
+ this.sendSocks5CommandRequest();
+ // If selected Socks v5 auth method is user/password, send auth handshake.
+ }
+ else if (data[1] === constants_1.Socks5Auth.UserPass) {
+ this.sendSocks5UserPassAuthentication();
+ }
+ else {
+ this._closeSocket(constants_1.ERRORS.InvalidSocks5InitialHandshakeUnknownAuthType);
+ }
+ }
+ }
+ /**
+ * Sends Socks v5 user & password auth handshake.
+ *
+ * Note: No auth and user/pass are currently supported.
+ */
+ sendSocks5UserPassAuthentication() {
+ const userId = this._options.proxy.userId || '';
+ const password = this._options.proxy.password || '';
+ const buff = new smart_buffer_1.SmartBuffer();
+ buff.writeUInt8(0x01);
+ buff.writeUInt8(Buffer.byteLength(userId));
+ buff.writeString(userId);
+ buff.writeUInt8(Buffer.byteLength(password));
+ buff.writeString(password);
+ this._nextRequiredPacketBufferSize =
+ constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5UserPassAuthenticationResponse;
+ this._socket.write(buff.toBuffer());
+ this.state = constants_1.SocksClientState.SentAuthentication;
+ }
+ /**
+ * Handles Socks v5 auth handshake response.
+ * @param data
+ */
+ handleInitialSocks5AuthenticationHandshakeResponse() {
+ this.state = constants_1.SocksClientState.ReceivedAuthenticationResponse;
+ const data = this._receiveBuffer.get(2);
+ if (data[1] !== 0x00) {
+ this._closeSocket(constants_1.ERRORS.Socks5AuthenticationFailed);
+ }
+ else {
+ this.sendSocks5CommandRequest();
+ }
+ }
+ /**
+ * Sends Socks v5 final handshake request.
+ */
+ sendSocks5CommandRequest() {
+ const buff = new smart_buffer_1.SmartBuffer();
+ buff.writeUInt8(0x05);
+ buff.writeUInt8(constants_1.SocksCommand[this._options.command]);
+ buff.writeUInt8(0x00);
+ // ipv4, ipv6, domain?
+ if (net.isIPv4(this._options.destination.host)) {
+ buff.writeUInt8(constants_1.Socks5HostType.IPv4);
+ buff.writeBuffer(ip.toBuffer(this._options.destination.host));
+ }
+ else if (net.isIPv6(this._options.destination.host)) {
+ buff.writeUInt8(constants_1.Socks5HostType.IPv6);
+ buff.writeBuffer(ip.toBuffer(this._options.destination.host));
+ }
+ else {
+ buff.writeUInt8(constants_1.Socks5HostType.Hostname);
+ buff.writeUInt8(this._options.destination.host.length);
+ buff.writeString(this._options.destination.host);
+ }
+ buff.writeUInt16BE(this._options.destination.port);
+ this._nextRequiredPacketBufferSize =
+ constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;
+ this._socket.write(buff.toBuffer());
+ this.state = constants_1.SocksClientState.SentFinalHandshake;
+ }
+ /**
+ * Handles Socks v5 final handshake response.
+ * @param data
+ */
+ handleSocks5FinalHandshakeResponse() {
+ // Peek at available data (we need at least 5 bytes to get the hostname length)
+ const header = this._receiveBuffer.peek(5);
+ if (header[0] !== 0x05 || header[1] !== constants_1.Socks5Response.Granted) {
+ this._closeSocket(`${constants_1.ERRORS.InvalidSocks5FinalHandshakeRejected} - ${constants_1.Socks5Response[header[1]]}`);
+ }
+ else {
+ // Read address type
+ const addressType = header[3];
+ let remoteHost;
+ let buff;
+ // IPv4
+ if (addressType === constants_1.Socks5HostType.IPv4) {
+ // Check if data is available.
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(4));
+ remoteHost = {
+ host: ip.fromLong(buff.readUInt32BE()),
+ port: buff.readUInt16BE()
+ };
+ // If given host is 0.0.0.0, assume remote proxy ip instead.
+ if (remoteHost.host === '0.0.0.0') {
+ remoteHost.host = this._options.proxy.ipaddress;
+ }
+ // Hostname
+ }
+ else if (addressType === constants_1.Socks5HostType.Hostname) {
+ const hostLength = header[4];
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength); // header + host length + host + port
+ // Check if data is available.
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(5) // Slice at 5 to skip host length
+ );
+ remoteHost = {
+ host: buff.readString(hostLength),
+ port: buff.readUInt16BE()
+ };
+ // IPv6
+ }
+ else if (addressType === constants_1.Socks5HostType.IPv6) {
+ // Check if data is available.
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(4));
+ remoteHost = {
+ host: ip.toString(buff.readBuffer(16)),
+ port: buff.readUInt16BE()
+ };
+ }
+ // We have everything we need
+ this.state = constants_1.SocksClientState.ReceivedFinalResponse;
+ // If using CONNECT, the client is now in the established state.
+ if (constants_1.SocksCommand[this._options.command] === constants_1.SocksCommand.connect) {
+ this.state = constants_1.SocksClientState.Established;
+ this.removeInternalSocketHandlers();
+ this.emit('established', { socket: this._socket });
+ }
+ else if (constants_1.SocksCommand[this._options.command] === constants_1.SocksCommand.bind) {
+ /* If using BIND, the Socks client is now in BoundWaitingForConnection state.
+ This means that the remote proxy server is waiting for a remote connection to the bound port. */
+ this.state = constants_1.SocksClientState.BoundWaitingForConnection;
+ this._nextRequiredPacketBufferSize =
+ constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHeader;
+ this.emit('bound', { socket: this._socket, remoteHost });
+ /*
+ If using Associate, the Socks client is now Established. And the proxy server is now accepting UDP packets at the
+ given bound port. This initial Socks TCP connection must remain open for the UDP relay to continue to work.
+ */
+ }
+ else if (constants_1.SocksCommand[this._options.command] === constants_1.SocksCommand.associate) {
+ this.state = constants_1.SocksClientState.Established;
+ this.removeInternalSocketHandlers();
+ this.emit('established', { socket: this._socket, remoteHost });
+ }
+ }
+ }
+ /**
+ * Handles Socks v5 incoming connection request (BIND).
+ */
+ handleSocks5IncomingConnectionResponse() {
+ // Peek at available data (we need at least 5 bytes to get the hostname length)
+ const header = this._receiveBuffer.peek(5);
+ if (header[0] !== 0x05 || header[1] !== constants_1.Socks5Response.Granted) {
+ this._closeSocket(`${constants_1.ERRORS.Socks5ProxyRejectedIncomingBoundConnection} - ${constants_1.Socks5Response[header[1]]}`);
+ }
+ else {
+ // Read address type
+ const addressType = header[3];
+ let remoteHost;
+ let buff;
+ // IPv4
+ if (addressType === constants_1.Socks5HostType.IPv4) {
+ // Check if data is available.
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv4;
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(4));
+ remoteHost = {
+ host: ip.fromLong(buff.readUInt32BE()),
+ port: buff.readUInt16BE()
+ };
+ // If given host is 0.0.0.0, assume remote proxy ip instead.
+ if (remoteHost.host === '0.0.0.0') {
+ remoteHost.host = this._options.proxy.ipaddress;
+ }
+ // Hostname
+ }
+ else if (addressType === constants_1.Socks5HostType.Hostname) {
+ const hostLength = header[4];
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseHostname(hostLength); // header + host length + port
+ // Check if data is available.
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(5) // Slice at 5 to skip host length
+ );
+ remoteHost = {
+ host: buff.readString(hostLength),
+ port: buff.readUInt16BE()
+ };
+ // IPv6
+ }
+ else if (addressType === constants_1.Socks5HostType.IPv6) {
+ // Check if data is available.
+ const dataNeeded = constants_1.SOCKS_INCOMING_PACKET_SIZES.Socks5ResponseIPv6;
+ if (this._receiveBuffer.length < dataNeeded) {
+ this._nextRequiredPacketBufferSize = dataNeeded;
+ return;
+ }
+ buff = smart_buffer_1.SmartBuffer.fromBuffer(this._receiveBuffer.get(dataNeeded).slice(4));
+ remoteHost = {
+ host: ip.toString(buff.readBuffer(16)),
+ port: buff.readUInt16BE()
+ };
+ }
+ this.state = constants_1.SocksClientState.Established;
+ this.removeInternalSocketHandlers();
+ this.emit('established', { socket: this._socket, remoteHost });
+ }
+ }
+ get socksClientOptions() {
+ return Object.assign({}, this._options);
+ }
+}
+exports.SocksClient = SocksClient;
+//# sourceMappingURL=socksclient.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/client/socksclient.js.map b/deps/npm/node_modules/socks/build/client/socksclient.js.map
new file mode 100644
index 0000000000..9593121032
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/client/socksclient.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"socksclient.js","sourceRoot":"","sources":["../../src/client/socksclient.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/constants.js b/deps/npm/node_modules/socks/build/common/constants.js
new file mode 100644
index 0000000000..d76b210114
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/constants.js
@@ -0,0 +1,105 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const DEFAULT_TIMEOUT = 30000;
+exports.DEFAULT_TIMEOUT = DEFAULT_TIMEOUT;
+// prettier-ignore
+const ERRORS = {
+ InvalidSocksCommand: 'An invalid SOCKS command was provided. Valid options are connect, bind, and associate.',
+ InvalidSocksCommandForOperation: 'An invalid SOCKS command was provided. Only a subset of commands are supported for this operation.',
+ InvalidSocksCommandChain: 'An invalid SOCKS command was provided. Chaining currently only supports the connect command.',
+ InvalidSocksClientOptionsDestination: 'An invalid destination host was provided.',
+ InvalidSocksClientOptionsExistingSocket: 'An invalid existing socket was provided. This should be an instance of stream.Duplex.',
+ InvalidSocksClientOptionsProxy: 'Invalid SOCKS proxy details were provided.',
+ InvalidSocksClientOptionsTimeout: 'An invalid timeout value was provided. Please enter a value above 0 (in ms).',
+ InvalidSocksClientOptionsProxiesLength: 'At least two socks proxies must be provided for chaining.',
+ NegotiationError: 'Negotiation error',
+ SocketClosed: 'Socket closed',
+ ProxyConnectionTimedOut: 'Proxy connection timed out',
+ InternalError: 'SocksClient internal error (this should not happen)',
+ InvalidSocks4HandshakeResponse: 'Received invalid Socks4 handshake response',
+ Socks4ProxyRejectedConnection: 'Socks4 Proxy rejected connection',
+ InvalidSocks4IncomingConnectionResponse: 'Socks4 invalid incoming connection response',
+ Socks4ProxyRejectedIncomingBoundConnection: 'Socks4 Proxy rejected incoming bound connection',
+ InvalidSocks5InitialHandshakeResponse: 'Received invalid Socks5 initial handshake response',
+ InvalidSocks5IntiailHandshakeSocksVersion: 'Received invalid Socks5 initial handshake (invalid socks version)',
+ InvalidSocks5InitialHandshakeNoAcceptedAuthType: 'Received invalid Socks5 initial handshake (no accepted authentication type)',
+ InvalidSocks5InitialHandshakeUnknownAuthType: 'Received invalid Socks5 initial handshake (unknown authentication type)',
+ Socks5AuthenticationFailed: 'Socks5 Authentication failed',
+ InvalidSocks5FinalHandshake: 'Received invalid Socks5 final handshake response',
+ InvalidSocks5FinalHandshakeRejected: 'Socks5 proxy rejected connection',
+ InvalidSocks5IncomingConnectionResponse: 'Received invalid Socks5 incoming connection response',
+ Socks5ProxyRejectedIncomingBoundConnection: 'Socks5 Proxy rejected incoming bound connection',
+};
+exports.ERRORS = ERRORS;
+const SOCKS_INCOMING_PACKET_SIZES = {
+ Socks5InitialHandshakeResponse: 2,
+ Socks5UserPassAuthenticationResponse: 2,
+ // Command response + incoming connection (bind)
+ Socks5ResponseHeader: 5,
+ Socks5ResponseIPv4: 10,
+ Socks5ResponseIPv6: 22,
+ Socks5ResponseHostname: (hostNameLength) => hostNameLength + 7,
+ // Command response + incoming connection (bind)
+ Socks4Response: 8 // 2 header + 2 port + 4 ip
+};
+exports.SOCKS_INCOMING_PACKET_SIZES = SOCKS_INCOMING_PACKET_SIZES;
+var SocksCommand;
+(function (SocksCommand) {
+ SocksCommand[SocksCommand["connect"] = 1] = "connect";
+ SocksCommand[SocksCommand["bind"] = 2] = "bind";
+ SocksCommand[SocksCommand["associate"] = 3] = "associate";
+})(SocksCommand || (SocksCommand = {}));
+exports.SocksCommand = SocksCommand;
+var Socks4Response;
+(function (Socks4Response) {
+ Socks4Response[Socks4Response["Granted"] = 90] = "Granted";
+ Socks4Response[Socks4Response["Failed"] = 91] = "Failed";
+ Socks4Response[Socks4Response["Rejected"] = 92] = "Rejected";
+ Socks4Response[Socks4Response["RejectedIdent"] = 93] = "RejectedIdent";
+})(Socks4Response || (Socks4Response = {}));
+exports.Socks4Response = Socks4Response;
+var Socks5Auth;
+(function (Socks5Auth) {
+ Socks5Auth[Socks5Auth["NoAuth"] = 0] = "NoAuth";
+ Socks5Auth[Socks5Auth["GSSApi"] = 1] = "GSSApi";
+ Socks5Auth[Socks5Auth["UserPass"] = 2] = "UserPass";
+})(Socks5Auth || (Socks5Auth = {}));
+exports.Socks5Auth = Socks5Auth;
+var Socks5Response;
+(function (Socks5Response) {
+ Socks5Response[Socks5Response["Granted"] = 0] = "Granted";
+ Socks5Response[Socks5Response["Failure"] = 1] = "Failure";
+ Socks5Response[Socks5Response["NotAllowed"] = 2] = "NotAllowed";
+ Socks5Response[Socks5Response["NetworkUnreachable"] = 3] = "NetworkUnreachable";
+ Socks5Response[Socks5Response["HostUnreachable"] = 4] = "HostUnreachable";
+ Socks5Response[Socks5Response["ConnectionRefused"] = 5] = "ConnectionRefused";
+ Socks5Response[Socks5Response["TTLExpired"] = 6] = "TTLExpired";
+ Socks5Response[Socks5Response["CommandNotSupported"] = 7] = "CommandNotSupported";
+ Socks5Response[Socks5Response["AddressNotSupported"] = 8] = "AddressNotSupported";
+})(Socks5Response || (Socks5Response = {}));
+exports.Socks5Response = Socks5Response;
+var Socks5HostType;
+(function (Socks5HostType) {
+ Socks5HostType[Socks5HostType["IPv4"] = 1] = "IPv4";
+ Socks5HostType[Socks5HostType["Hostname"] = 3] = "Hostname";
+ Socks5HostType[Socks5HostType["IPv6"] = 4] = "IPv6";
+})(Socks5HostType || (Socks5HostType = {}));
+exports.Socks5HostType = Socks5HostType;
+var SocksClientState;
+(function (SocksClientState) {
+ SocksClientState[SocksClientState["Created"] = 0] = "Created";
+ SocksClientState[SocksClientState["Connecting"] = 1] = "Connecting";
+ SocksClientState[SocksClientState["Connected"] = 2] = "Connected";
+ SocksClientState[SocksClientState["SentInitialHandshake"] = 3] = "SentInitialHandshake";
+ SocksClientState[SocksClientState["ReceivedInitialHandshakeResponse"] = 4] = "ReceivedInitialHandshakeResponse";
+ SocksClientState[SocksClientState["SentAuthentication"] = 5] = "SentAuthentication";
+ SocksClientState[SocksClientState["ReceivedAuthenticationResponse"] = 6] = "ReceivedAuthenticationResponse";
+ SocksClientState[SocksClientState["SentFinalHandshake"] = 7] = "SentFinalHandshake";
+ SocksClientState[SocksClientState["ReceivedFinalResponse"] = 8] = "ReceivedFinalResponse";
+ SocksClientState[SocksClientState["BoundWaitingForConnection"] = 9] = "BoundWaitingForConnection";
+ SocksClientState[SocksClientState["Established"] = 10] = "Established";
+ SocksClientState[SocksClientState["Disconnected"] = 11] = "Disconnected";
+ SocksClientState[SocksClientState["Error"] = 99] = "Error";
+})(SocksClientState || (SocksClientState = {}));
+exports.SocksClientState = SocksClientState;
+//# sourceMappingURL=constants.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/constants.js.map b/deps/npm/node_modules/socks/build/common/constants.js.map
new file mode 100644
index 0000000000..4fc7357a6e
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/constants.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/common/constants.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/helpers.js b/deps/npm/node_modules/socks/build/common/helpers.js
new file mode 100644
index 0000000000..ffed4a740c
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/helpers.js
@@ -0,0 +1,101 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+const util_1 = require("./util");
+const constants_1 = require("./constants");
+const net = require("net");
+const stream = require("stream");
+/**
+ * Validates the provided SocksClientOptions
+ * @param options { SocksClientOptions }
+ * @param acceptedCommands { string[] } A list of accepted SocksProxy commands.
+ */
+function validateSocksClientOptions(options, acceptedCommands = ['connect', 'bind', 'associate']) {
+ // Check SOCKs command option.
+ if (!constants_1.SocksCommand[options.command]) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommand, options);
+ }
+ // Check SocksCommand for acceptable command.
+ if (acceptedCommands.indexOf(options.command) === -1) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandForOperation, options);
+ }
+ // Check destination
+ if (!isValidSocksRemoteHost(options.destination)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
+ }
+ // Check SOCKS proxy to use
+ if (!isValidSocksProxy(options.proxy)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
+ }
+ // Check timeout
+ if (options.timeout && !isValidTimeoutValue(options.timeout)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
+ }
+ // Check existing_socket (if provided)
+ if (options.existing_socket &&
+ !(options.existing_socket instanceof stream.Duplex)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsExistingSocket, options);
+ }
+}
+exports.validateSocksClientOptions = validateSocksClientOptions;
+/**
+ * Validates the SocksClientChainOptions
+ * @param options { SocksClientChainOptions }
+ */
+function validateSocksClientChainOptions(options) {
+ // Only connect is supported when chaining.
+ if (options.command !== 'connect') {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksCommandChain, options);
+ }
+ // Check destination
+ if (!isValidSocksRemoteHost(options.destination)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsDestination, options);
+ }
+ // Validate proxies (length)
+ if (!(options.proxies &&
+ Array.isArray(options.proxies) &&
+ options.proxies.length >= 2)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxiesLength, options);
+ }
+ // Validate proxies
+ options.proxies.forEach((proxy) => {
+ if (!isValidSocksProxy(proxy)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsProxy, options);
+ }
+ });
+ // Check timeout
+ if (options.timeout && !isValidTimeoutValue(options.timeout)) {
+ throw new util_1.SocksClientError(constants_1.ERRORS.InvalidSocksClientOptionsTimeout, options);
+ }
+}
+exports.validateSocksClientChainOptions = validateSocksClientChainOptions;
+/**
+ * Validates a SocksRemoteHost
+ * @param remoteHost { SocksRemoteHost }
+ */
+function isValidSocksRemoteHost(remoteHost) {
+ return (remoteHost &&
+ typeof remoteHost.host === 'string' &&
+ typeof remoteHost.port === 'number' &&
+ remoteHost.port >= 0 &&
+ remoteHost.port <= 65535);
+}
+/**
+ * Validates a SocksProxy
+ * @param proxy { SocksProxy }
+ */
+function isValidSocksProxy(proxy) {
+ return (proxy &&
+ net.isIP(proxy.ipaddress) &&
+ typeof proxy.port === 'number' &&
+ proxy.port >= 0 &&
+ proxy.port <= 65535 &&
+ (proxy.type === 4 || proxy.type === 5));
+}
+/**
+ * Validates a timeout value.
+ * @param value { Number }
+ */
+function isValidTimeoutValue(value) {
+ return typeof value === 'number' && value > 0;
+}
+//# sourceMappingURL=helpers.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/helpers.js.map b/deps/npm/node_modules/socks/build/common/helpers.js.map
new file mode 100644
index 0000000000..ab844fe583
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/helpers.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/common/helpers.ts"],"names":[],"mappings":"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"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/receivebuffer.js b/deps/npm/node_modules/socks/build/common/receivebuffer.js
new file mode 100644
index 0000000000..180fa749d0
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/receivebuffer.js
@@ -0,0 +1,42 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+class ReceiveBuffer {
+ constructor(size = 4096) {
+ this._buffer = Buffer.allocUnsafe(size);
+ this._offset = 0;
+ this._originalSize = size;
+ }
+ get length() {
+ return this._offset;
+ }
+ append(data) {
+ if (!Buffer.isBuffer(data)) {
+ throw new Error('Attempted to append a non-buffer instance to ReceiveBuffer.');
+ }
+ if (this._offset + data.length >= this._buffer.length) {
+ const tmp = this._buffer;
+ this._buffer = Buffer.allocUnsafe(Math.max(this._buffer.length + this._originalSize, this._buffer.length + data.length));
+ tmp.copy(this._buffer);
+ }
+ data.copy(this._buffer, this._offset);
+ return (this._offset += data.length);
+ }
+ peek(length) {
+ if (length > this._offset) {
+ throw new Error('Attempted to read beyond the bounds of the managed internal data.');
+ }
+ return this._buffer.slice(0, length);
+ }
+ get(length) {
+ if (length > this._offset) {
+ throw new Error('Attempted to read beyond the bounds of the managed internal data.');
+ }
+ const value = Buffer.allocUnsafe(length);
+ this._buffer.slice(0, length).copy(value);
+ this._buffer.copyWithin(0, length, length + this._offset - length);
+ this._offset -= length;
+ return value;
+ }
+}
+exports.ReceiveBuffer = ReceiveBuffer;
+//# sourceMappingURL=receivebuffer.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/receivebuffer.js.map b/deps/npm/node_modules/socks/build/common/receivebuffer.js.map
new file mode 100644
index 0000000000..12c94b011e
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/receivebuffer.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"receivebuffer.js","sourceRoot":"","sources":["../../src/common/receivebuffer.ts"],"names":[],"mappings":";;AAAA;IAKE,YAAY,OAAe,IAAI;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,6DAA6D,CAC9D,CAAC;SACH;QAED,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;YACrD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;YACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAC/B,IAAI,CAAC,GAAG,CACN,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,EACxC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAClC,CACF,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACxB;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;SACH;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,IAAI,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE;YACzB,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;SACH;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC;QAEvB,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAEQ,sCAAa"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/util.js b/deps/npm/node_modules/socks/build/common/util.js
new file mode 100644
index 0000000000..347d9292fd
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/util.js
@@ -0,0 +1,24 @@
+"use strict";
+Object.defineProperty(exports, "__esModule", { value: true });
+/**
+ * Error wrapper for SocksClient
+ */
+class SocksClientError extends Error {
+ constructor(message, options) {
+ super(message);
+ this.options = options;
+ }
+}
+exports.SocksClientError = SocksClientError;
+/**
+ * Shuffles a given array.
+ * @param array The array to shuffle.
+ */
+function shuffleArray(array) {
+ for (let i = array.length - 1; i > 0; i--) {
+ let j = Math.floor(Math.random() * (i + 1));
+ [array[i], array[j]] = [array[j], array[i]];
+ }
+}
+exports.shuffleArray = shuffleArray;
+//# sourceMappingURL=util.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/common/util.js.map b/deps/npm/node_modules/socks/build/common/util.js.map
new file mode 100644
index 0000000000..7fa4071d70
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/common/util.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/common/util.ts"],"names":[],"mappings":";;AAEA;;GAEG;AACH,sBAAuB,SAAQ,KAAK;IAClC,YACE,OAAe,EACR,OAAqD;QAE5D,KAAK,CAAC,OAAO,CAAC,CAAC;QAFR,YAAO,GAAP,OAAO,CAA8C;IAG9D,CAAC;CACF;AAaQ,4CAAgB;AAXzB;;;GAGG;AACH,sBAAsB,KAAY;IAChC,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;QACzC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7C;AACH,CAAC;AAE0B,oCAAY"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/index.js b/deps/npm/node_modules/socks/build/index.js
new file mode 100644
index 0000000000..e017b095df
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/index.js
@@ -0,0 +1,7 @@
+"use strict";
+function __export(m) {
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
+}
+Object.defineProperty(exports, "__esModule", { value: true });
+__export(require("./client/socksclient"));
+//# sourceMappingURL=index.js.map \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/build/index.js.map b/deps/npm/node_modules/socks/build/index.js.map
new file mode 100644
index 0000000000..435a746473
--- /dev/null
+++ b/deps/npm/node_modules/socks/build/index.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,0CAAqC"} \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/examples/index.md b/deps/npm/node_modules/socks/docs/examples/index.md
new file mode 100644
index 0000000000..87bfe250e2
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/index.md
@@ -0,0 +1,17 @@
+# socks examples
+
+## TypeScript Examples
+
+[Connect command](typescript/connectExample.md)
+
+[Bind command](typescript/bindExample.md)
+
+[Associate command](typescript/associateExample.md)
+
+## JavaScript Examples
+
+[Connect command](javascript/connectExample.md)
+
+[Bind command](javascript/bindExample.md)
+
+[Associate command](javascript/associateExample.md) \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md b/deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md
new file mode 100644
index 0000000000..a29cb2fc29
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/javascript/associateExample.md
@@ -0,0 +1,90 @@
+# socks examples
+
+## Example for SOCKS 'associate' command
+
+The associate command tells the SOCKS proxy server to establish a UDP relay. The server binds to a new UDP port and communicates the newly opened port back to the origin client. From here, any SOCKS UDP frame packets sent to this special UDP port on the Proxy server will be forwarded to the desired destination, and any responses will be forwarded back to the origin client (you).
+
+This can be used for things such as DNS queries, and other UDP communicates.
+
+**Connection Steps**
+
+1. Client -(associate)-> Proxy (Tells the proxy to create a UDP relay and bind on a new port)
+2. Client <-(port)- Proxy (Tells the origin client which port it opened and is accepting UDP frame packets on)
+
+At this point the proxy is accepting UDP frames on the specified port.
+
+3. Client --(udp frame) -> Proxy -> Destination (The origin client sends a UDP frame to the proxy on the UDP port, and the proxy then forwards it to the destination specified in the UDP frame.)
+4. Client <--(udp frame) <-- Proxy <-- Destination (The destination client responds to the udp packet sent in #3)
+
+## Usage
+
+The 'associate' command can only be used by creating a new SocksClient instance and listening for the 'established' event.
+
+**Note:** UDP packets relayed through the proxy servers are encompassed in a special Socks UDP frame format. SocksClient.createUDPFrame() and SocksClient.parseUDPFrame() create and parse these special UDP packets.
+
+```typescript
+const dgram = require('dgram');
+const SocksClient = require('socks').SocksClient;
+
+// Create a local UDP socket for sending/receiving packets to/from the proxy.
+const udpSocket = dgram.createSocket('udp4');
+udpSocket.bind();
+
+// Listen for incoming UDP packets from the proxy server.
+udpSocket.on('message', (message, rinfo) => {
+ console.log(SocksClient.parseUDPFrame(message));
+ /*
+ { frameNumber: 0,
+ remoteHost: { host: '8.8.8.8', port: 53 }, // The remote host that replied with a UDP packet
+ data: <Buffer 74 65 73 74 0a> // The data
+ }
+ */
+});
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ // This should be the ip and port of the expected client that will be sending UDP frames to the newly opened UDP port on the server.
+ // Most SOCKS servers accept 0.0.0.0 as a wildcard address to accept UDP frames from any source.
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ },
+
+ command: 'associate'
+};
+
+const client = new SocksClient(options);
+
+// This event is fired when the SOCKS server has started listening on a new UDP port for UDP relaying.
+client.on('established', info => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote port on the SOCKS proxy server to send UDP frame packets to.
+ host: '104.131.124.203',
+ port: 58232
+ }
+ }
+ */
+
+ // Send a udp frame to 8.8.8.8 on port 53 through the proxy.
+ const packet = SocksClient.createUDPFrame({
+ remoteHost: { host: '8.8.8.8', port: 53 },
+ data: Buffer.from('hello') // A DNS lookup in the real world.
+ });
+
+ // Send packet.
+ udpSocket.send(packet, info.remoteHost.port, info.remoteHost.host);
+});
+
+// SOCKS proxy failed to bind.
+client.on('error', () => {
+ // Handle errors
+});
+```
diff --git a/deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md b/deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md
new file mode 100644
index 0000000000..ee60bff448
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/javascript/bindExample.md
@@ -0,0 +1,83 @@
+# socks examples
+
+## Example for SOCKS 'bind' command
+
+The bind command tells the SOCKS proxy server to bind and listen on a new TCP port for an incoming connection. It communicates the newly opened port back to the origin client. Once a incoming connection is accepted by the SOCKS proxy server it then communicates the remote host that connected to the SOCKS proxy back through the same initial connection via the origin client.
+
+This can be used for things such as FTP clients which require incoming TCP connections, etc.
+
+**Connection Steps**
+
+1. Client -(bind)-> Proxy (Tells the proxy to bind to a new port)
+2. Client <-(port)- Proxy (Tells the origin client which port it opened)
+3. Client2 --> Proxy (Other client connects to the proxy on this port)
+4. Client <--(client2's host info) (Proxy tells the origin client who connected to it)
+5. Original connection to the proxy is now a full TCP stream between client (you) and client2.
+6. Client <--> Proxy <--> Client2
+
+
+## Usage
+
+The 'bind' command can only be used by creating a new SocksClient instance and listening for 'bound' and 'established' events.
+
+
+```typescript
+const SocksClient = require('socks').SocksClient;
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ // This should be the ip and port of the expected client that will connect to the SOCKS proxy server on the newly bound port.
+ // Most SOCKS servers accept 0.0.0.0 as a wildcard address to accept any client.
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ },
+
+ command: 'bind'
+};
+
+const client = new SocksClient(options);
+
+// This event is fired when the SOCKS server has started listening on a new port for incoming connections.
+client.on('bound', (info) => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote ip and port of the SOCKS proxy that is now accepting incoming connections.
+ host: '104.131.124.203',
+ port: 49928
+ }
+ }
+ */
+});
+
+// This event is fired when the SOCKS server has accepted an incoming connection on the newly bound port.
+client.on('established', (info) => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote ip and port that connected to the SOCKS proxy on the newly bound port.
+ host: '1.2.3.4',
+ port: 58232
+ }
+ }
+ */
+
+ // At this point info.socket is a regular net.Socket TCP connection between client and client2 (1.2.3.4) (the client which connected to the proxy on the newly bound port.)
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+});
+
+// SOCKS proxy failed to bind.
+client.on('error', () => {
+ // Handle errors
+});
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md b/deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md
new file mode 100644
index 0000000000..ae98c8ff0d
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/javascript/connectExample.md
@@ -0,0 +1,258 @@
+# socks examples
+
+## Example for SOCKS 'connect' command
+
+The connect command is the most common use-case for a SOCKS proxy. This establishes a direct connection to a destination host through a proxy server. The destination host only has knowledge of the proxy server connecting to it and does not know about the origin client (you).
+
+**Origin Client (you) <-> Proxy Server <-> Destination Server**
+
+In this example, we are connecting to a web server on port 80, and sending a very basic HTTP request to receive a response. It's worth noting that there are many socks-http-agents that can be used with the node http module (and libraries such as request.js) to make this easier. This HTTP request is used as a simple example.
+
+The 'connect' command can be used via the SocksClient.createConnection() factory function as well as by creating a SocksClient instance and using event handlers.
+
+### Using createConnection with async/await
+
+Since SocksClient.createConnection returns a Promise, we can easily use async/await for flow control.
+
+```typescript
+const SocksClient = require('socks').SocksClient;
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+async function start() {
+ try {
+ const info = await SocksClient.createConnection(options);
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ } catch (err) {
+ // Handle errors
+ }
+}
+
+start();
+```
+
+### Using createConnection with Promises
+
+```typescript
+const SocksClient = require('socks').SocksClient;
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+SocksClient.createConnection(options)
+.then(info => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+})
+.catch(err => {
+ // handle errors
+});
+```
+
+### Using createConnection with callbacks
+
+SocksClient.createConnection() optionally accepts a callback function as a second parameter.
+
+**Note:** If a callback function is provided, a Promise is still returned from the function, but the promise will always resolve regardless of if there was en error. (tldr: Do not mix callbacks and Promises).
+
+```typescript
+const SocksClient = require('socks').SocksClient;
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+SocksClient.createConnection(options, (err, info) => {
+ if (err) {
+ // handle errors
+ } else {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ }
+})
+```
+
+### Using event handlers
+
+SocksClient also supports instance creation of a SocksClient. This allows for event based flow control.
+
+```typescript
+const SocksClient = require('socks').SocksClient;
+
+const options = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+const client = new SocksClient(options);
+
+client.on('established', (info) => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+});
+
+// Failed to establish proxy connection to destination.
+client.on('error', () => {
+ // Handle errors
+});
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md b/deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md
new file mode 100644
index 0000000000..d00947938a
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/typescript/associateExample.md
@@ -0,0 +1,93 @@
+# socks examples
+
+## Example for SOCKS 'associate' command
+
+The associate command tells the SOCKS proxy server to establish a UDP relay. The server binds to a new UDP port and communicates the newly opened port back to the origin client. From here, any SOCKS UDP frame packets sent to this special UDP port on the Proxy server will be forwarded to the desired destination, and any responses will be forwarded back to the origin client (you).
+
+This can be used for things such as DNS queries, and other UDP communicates.
+
+**Connection Steps**
+
+1. Client -(associate)-> Proxy (Tells the proxy to create a UDP relay and bind on a new port)
+2. Client <-(port)- Proxy (Tells the origin client which port it opened and is accepting UDP frame packets on)
+
+At this point the proxy is accepting UDP frames on the specified port.
+
+3. Client --(udp frame) -> Proxy -> Destination (The origin client sends a UDP frame to the proxy on the UDP port, and the proxy then forwards it to the destination specified in the UDP frame.)
+4. Client <--(udp frame) <-- Proxy <-- Destination (The destination client responds to the udp packet sent in #3)
+
+## Usage
+
+The 'associate' command can only be used by creating a new SocksClient instance and listening for the 'established' event.
+
+**Note:** UDP packets relayed through the proxy servers are packaged in a special Socks UDP frame format. SocksClient.createUDPFrame() and SocksClient.parseUDPFrame() create and parse these special UDP packets.
+
+```typescript
+import * as dgram from 'dgram';
+import { SocksClient, SocksClientOptions } from 'socks';
+
+// Create a local UDP socket for sending/receiving packets to/from the proxy.
+const udpSocket = dgram.createSocket('udp4');
+udpSocket.bind();
+
+// Listen for incoming UDP packets from the proxy server.
+udpSocket.on('message', (message, rinfo) => {
+ console.log(SocksClient.parseUDPFrame(message));
+ /*
+ { frameNumber: 0,
+ remoteHost: { host: '8.8.8.8', port: 53 }, // The remote host that replied with a UDP packet
+ data: <Buffer 74 65 73 74 0a> // The data
+ }
+ */
+});
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ // This should be the ip and port of the expected client that will be sending UDP frames to the newly opened UDP port on the server.
+ // Most SOCKS servers accept 0.0.0.0 as a wildcard address to accept UDP frames from any source.
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ },
+
+ command: 'associate'
+};
+
+const client = new SocksClient(options);
+
+// This event is fired when the SOCKS server has started listening on a new UDP port for UDP relaying.
+client.on('established', info => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote port on the SOCKS proxy server to send UDP frame packets to.
+ host: '104.131.124.203',
+ port: 58232
+ }
+ }
+ */
+
+ // Send a udp frame to 8.8.8.8 on port 53 through the proxy.
+ const packet = SocksClient.createUDPFrame({
+ remoteHost: { host: '8.8.8.8', port: 53 },
+ data: Buffer.from('hello') // A DNS lookup in the real world.
+ });
+
+ // Send packet.
+ udpSocket.send(packet, info.remoteHost.port, info.remoteHost.host);
+});
+
+// SOCKS proxy failed to bind.
+client.on('error', () => {
+ // Handle errors
+});
+
+// Start connection
+client.connect();
+```
diff --git a/deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md b/deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md
new file mode 100644
index 0000000000..f0f4ae3998
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/typescript/bindExample.md
@@ -0,0 +1,86 @@
+# socks examples
+
+## Example for SOCKS 'bind' command
+
+The bind command tells the SOCKS proxy server to bind and listen on a new TCP port for an incoming connection. It communicates the newly opened port back to the origin client. Once a incoming connection is accepted by the SOCKS proxy server it then communicates the remote host that connected to the SOCKS proxy back through the same initial connection via the origin client.
+
+This can be used for things such as FTP clients which require incoming TCP connections, etc.
+
+**Connection Steps**
+
+1. Client -(bind)-> Proxy (Tells the proxy to bind to a new port)
+2. Client <-(port)- Proxy (Tells the origin client which port it opened)
+3. Client2 --> Proxy (Other client connects to the proxy on this port)
+4. Client <--(client2's host info) (Proxy tells the origin client who connected to it)
+5. Original connection to the proxy is now a full TCP stream between client (you) and client2.
+6. Client <--> Proxy <--> Client2
+
+
+## Usage
+
+The 'bind' command can only be used by creating a new SocksClient instance and listening for 'bound' and 'established' events.
+
+
+```typescript
+import { SocksClient, SocksClientOptions } from 'socks';
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ // This should be the ip and port of the expected client that will connect to the SOCKS proxy server on the newly bound port.
+ // Most SOCKS servers accept 0.0.0.0 as a wildcard address to accept any client.
+ destination: {
+ host: '0.0.0.0',
+ port: 0
+ },
+
+ command: 'bind'
+};
+
+const client = new SocksClient(options);
+
+// This event is fired when the SOCKS server has started listening on a new port for incoming connections.
+client.on('bound', (info) => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote ip and port of the SOCKS proxy that is now accepting incoming connections.
+ host: '104.131.124.203',
+ port: 49928
+ }
+ }
+ */
+});
+
+// This event is fired when the SOCKS server has accepted an incoming connection on the newly bound port.
+client.on('established', (info) => {
+ console.log(info);
+ /*
+ {
+ socket: <Socket ...>,
+ remoteHost: { // This is the remote ip and port that connected to the SOCKS proxy on the newly bound port.
+ host: '1.2.3.4',
+ port: 58232
+ }
+ }
+ */
+
+ // At this point info.socket is a regular net.Socket TCP connection between client and client2 (1.2.3.4) (the client which connected to the proxy on the newly bound port.)
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+});
+
+// SOCKS proxy failed to bind.
+client.on('error', () => {
+ // Handle errors
+});
+
+// Start connection
+client.connect();
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md b/deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md
new file mode 100644
index 0000000000..04369df3ee
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/examples/typescript/connectExample.md
@@ -0,0 +1,265 @@
+# socks examples
+
+## Example for SOCKS 'connect' command
+
+The connect command is the most common use-case for a SOCKS proxy. This establishes a direct connection to a destination host through a proxy server. The destination host only has knowledge of the proxy server connecting to it and does not know about the origin client (you).
+
+**Origin Client (you) <-> Proxy Server <-> Destination Server**
+
+In this example, we are connecting to a web server on port 80, and sending a very basic HTTP request to receive a response. It's worth noting that there are many socks-http-agents that can be used with the node http module (and libraries such as request.js) to make this easier. This HTTP request is used as a simple example.
+
+The 'connect' command can be used via the SocksClient.createConnection() factory function as well as by creating a SocksClient instance and using event handlers.
+
+### Using createConnection with async/await
+
+Since SocksClient.createConnection returns a Promise, we can easily use async/await for flow control.
+
+```typescript
+import { SocksClient, SocksClientOptions } from 'socks';
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+async function start() {
+ try {
+ const info = await SocksClient.createConnection(options);
+
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+ } catch (err) {
+ // Handle errors
+ }
+}
+
+start();
+```
+
+### Using createConnection with Promises
+
+```typescript
+import { SocksClient, SocksClientOptions } from 'socks';
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+SocksClient.createConnection(options)
+.then(info => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+})
+.catch(err => {
+ // handle errors
+});
+```
+
+### Using createConnection with callbacks
+
+SocksClient.createConnection() optionally accepts a callback function as a second parameter.
+
+**Note:** If a callback function is provided, a Promise is still returned from the function, but the promise will always resolve regardless of if there was en error. (tldr: Do not mix callbacks and Promises).
+
+```typescript
+import { SocksClient, SocksClientOptions } from 'socks';
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+SocksClient.createConnection(options, (err, info) => {
+ if (err) {
+ // handle errors
+ } else {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+ }
+})
+```
+
+### Using event handlers
+
+SocksClient also supports instance creation of a SocksClient. This allows for event based flow control.
+
+```typescript
+import { SocksClient, SocksClientOptions } from 'socks';
+
+const options: SocksClientOptions = {
+ proxy: {
+ ipaddress: '104.131.124.203',
+ port: 1081,
+ type: 5
+ },
+
+ destination: {
+ host: 'ip-api.com', // host names are supported with SOCKS v4a and SOCKS v5.
+ port: 80
+ },
+
+ command: 'connect'
+};
+
+const client = new SocksClient(options);
+
+client.on('established', (info) => {
+ console.log(info.socket);
+ // <Socket ...> (this is a raw net.Socket that is established to the destination host through the given proxy servers)
+
+ info.socket.write('GET /json HTTP/1.1\nHost: ip-api.com\n\n');
+ info.socket.on('data', (data) => {
+ console.log(data.toString()); // ip-api.com sees that the last proxy (104.131.124.203) is connected to it and not the origin client (you).
+ /*
+ HTTP/1.1 200 OK
+ Access-Control-Allow-Origin: *
+ Content-Type: application/json; charset=utf-8
+ Date: Sun, 24 Dec 2017 03:47:51 GMT
+ Content-Length: 300
+
+ {
+ "as":"AS14061 Digital Ocean, Inc.",
+ "city":"Clifton",
+ "country":"United States",
+ "countryCode":"US",
+ "isp":"Digital Ocean",
+ "lat":40.8326,
+ "lon":-74.1307,
+ "org":"Digital Ocean",
+ "query":"104.131.124.203",
+ "region":"NJ",
+ "regionName":"New Jersey",
+ "status":"success",
+ "timezone":"America/New_York",
+ "zip":"07014"
+ }
+ */
+ });
+});
+
+// Failed to establish proxy connection to destination.
+client.on('error', () => {
+ // Handle errors
+});
+
+// Start connection
+client.connect();
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/index.md b/deps/npm/node_modules/socks/docs/index.md
new file mode 100644
index 0000000000..3eb1d71182
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/index.md
@@ -0,0 +1,5 @@
+# Documentation
+
+- [API Reference](https://github.com/JoshGlazebrook/socks#api-reference)
+
+- [Code Examples](./examples/index.md) \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/docs/migratingFromV1.md b/deps/npm/node_modules/socks/docs/migratingFromV1.md
new file mode 100644
index 0000000000..dd008384b9
--- /dev/null
+++ b/deps/npm/node_modules/socks/docs/migratingFromV1.md
@@ -0,0 +1,86 @@
+# socks
+
+## Migrating from v1
+
+For the most part, migrating from v1 takes minimal effort as v2 still supports factory creation of proxy connections with callback support.
+
+### Notable breaking changes
+
+- In an options object, the proxy 'command' is now required and does not default to 'connect'.
+- **In an options object, 'target' is now known as 'destination'.**
+- Sockets are no longer paused after a SOCKS connection is made, so socket.resume() is no longer required. (Please be sure to attach data handlers immediately to the Socket to avoid losing data).
+- In v2, only the 'connect' command is supported via the factory SocksClient.createConnection function. (BIND and ASSOCIATE must be used with a SocksClient instance via event handlers).
+- In v2, the factory SocksClient.createConnection function callback is called with a single object rather than separate socket and info object.
+- A SOCKS http/https agent is no longer bundled into the library.
+
+For informational purposes, here is the original getting started example from v1 converted to work with v2.
+
+### Before (v1)
+
+```javascript
+var Socks = require('socks');
+
+var options = {
+ proxy: {
+ ipaddress: "202.101.228.108",
+ port: 1080,
+ type: 5
+ },
+ target: {
+ host: "google.com",
+ port: 80
+ },
+ command: 'connect'
+};
+
+Socks.createConnection(options, function(err, socket, info) {
+ if (err)
+ console.log(err);
+ else {
+ socket.write("GET / HTTP/1.1\nHost: google.com\n\n");
+ socket.on('data', function(data) {
+ console.log(data.length);
+ console.log(data);
+ });
+
+ // PLEASE NOTE: sockets need to be resumed before any data will come in or out as they are paused right before this callback is fired.
+ socket.resume();
+
+ // 569
+ // <Buffer 48 54 54 50 2f 31 2e 31 20 33 30 31 20 4d 6f 76 65 64 20 50 65...
+ }
+});
+```
+
+### After (v2)
+```javascript
+const SocksClient = require('socks').SocksClient;
+
+let options = {
+ proxy: {
+ ipaddress: "202.101.228.108",
+ port: 1080,
+ type: 5
+ },
+ destination: {
+ host: "google.com",
+ port: 80
+ },
+ command: 'connect'
+};
+
+SocksClient.createConnection(options, function(err, result) {
+ if (err)
+ console.log(err);
+ else {
+ result.socket.write("GET / HTTP/1.1\nHost: google.com\n\n");
+ result.socket.on('data', function(data) {
+ console.log(data.length);
+ console.log(data);
+ });
+
+ // 569
+ // <Buffer 48 54 54 50 2f 31 2e 31 20 33 30 31 20 4d 6f 76 65 64 20 50 65...
+ }
+});
+``` \ No newline at end of file
diff --git a/deps/npm/node_modules/socks/package.json b/deps/npm/node_modules/socks/package.json
new file mode 100644
index 0000000000..59a7776bf5
--- /dev/null
+++ b/deps/npm/node_modules/socks/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "socks@~2.2.0",
+ "_id": "socks@2.2.0",
+ "_inBundle": false,
+ "_integrity": "sha512-uRKV9uXQ9ytMbGm2+DilS1jB7N3AC0mmusmW5TVWjNuBZjxS8+lX38fasKVY9I4opv/bY/iqTbcpFFaTwpfwRg==",
+ "_location": "/socks",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "socks@~2.2.0",
+ "name": "socks",
+ "escapedName": "socks",
+ "rawSpec": "~2.2.0",
+ "saveSpec": null,
+ "fetchSpec": "~2.2.0"
+ },
+ "_requiredBy": [
+ "/socks-proxy-agent"
+ ],
+ "_resolved": "https://registry.npmjs.org/socks/-/socks-2.2.0.tgz",
+ "_shasum": "144985b3331ced3ab5ccbee640ab7cb7d43fdd1f",
+ "_spec": "socks@~2.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/socks-proxy-agent",
+ "author": {
+ "name": "Josh Glazebrook"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/socks/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ip": "^1.1.5",
+ "smart-buffer": "^4.0.1"
+ },
+ "deprecated": false,
+ "description": "Fully featured SOCKS proxy client supporting SOCKSv4, SOCKSv4a, and SOCKSv5. Includes Bind and Associate functionality.",
+ "devDependencies": {
+ "@types/chai": "4.1.2",
+ "@types/ip": "^0.0.30",
+ "@types/mocha": "5.0.0",
+ "@types/node": "9.6.2",
+ "chai": "^4.1.2",
+ "coveralls": "^3.0.0",
+ "mocha": "5.0.5",
+ "nyc": "11.6.0",
+ "prettier": "^1.9.2",
+ "socks5-server": "^0.1.1",
+ "ts-node": "5.0.1",
+ "tslint": "^5.8.0",
+ "typescript": "2.8.1"
+ },
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ },
+ "homepage": "https://github.com/JoshGlazebrook/socks/",
+ "keywords": [
+ "socks",
+ "proxy",
+ "tor",
+ "socks 4",
+ "socks 5",
+ "socks4",
+ "socks5"
+ ],
+ "license": "MIT",
+ "main": "build/index.js",
+ "name": "socks",
+ "nyc": {
+ "extension": [
+ ".ts",
+ ".tsx"
+ ],
+ "include": [
+ "src/*.ts",
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "**.*.d.ts",
+ "node_modules",
+ "typings"
+ ],
+ "require": [
+ "ts-node/register"
+ ],
+ "reporter": [
+ "json",
+ "html"
+ ],
+ "all": true
+ },
+ "private": false,
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/JoshGlazebrook/socks.git"
+ },
+ "scripts": {
+ "build": "tslint --project tsconfig.json && prettier --write ./src/**/*.ts --config .prettierrc.yaml && tsc -p .",
+ "coverage": "NODE_ENV=test nyc npm test",
+ "coveralls": "NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls",
+ "lint": "tslint --project tsconfig.json 'src/**/*.ts'",
+ "prepublish": "npm install -g typescript && npm run build",
+ "test": "NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts"
+ },
+ "typings": "typings",
+ "version": "2.2.0"
+}
diff --git a/deps/npm/node_modules/socks/typings/client/socksclient.d.ts b/deps/npm/node_modules/socks/typings/client/socksclient.d.ts
new file mode 100644
index 0000000000..33e1c25fc5
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/client/socksclient.d.ts
@@ -0,0 +1,157 @@
+/// <reference types="node" />
+import { EventEmitter } from 'events';
+import { SocksClientOptions, SocksClientChainOptions, SocksRemoteHost, SocksProxy, SocksClientBoundEvent, SocksClientEstablishedEvent, SocksUDPFrameDetails } from '../common/constants';
+import { SocksClientError } from '../common/util';
+import { Duplex } from 'stream';
+interface SocksClient {
+ on(event: 'error', listener: (err: SocksClientError) => void): this;
+ on(event: 'bound', listener: (info: SocksClientBoundEvent) => void): this;
+ on(event: 'established', listener: (info: SocksClientEstablishedEvent) => void): this;
+ once(event: string, listener: (...args: any[]) => void): this;
+ once(event: 'error', listener: (err: SocksClientError) => void): this;
+ once(event: 'bound', listener: (info: SocksClientBoundEvent) => void): this;
+ once(event: 'established', listener: (info: SocksClientEstablishedEvent) => void): this;
+ emit(event: string | symbol, ...args: any[]): boolean;
+ emit(event: 'error', err: SocksClientError): boolean;
+ emit(event: 'bound', info: SocksClientBoundEvent): boolean;
+ emit(event: 'established', info: SocksClientEstablishedEvent): boolean;
+}
+declare class SocksClient extends EventEmitter implements SocksClient {
+ private _options;
+ private _socket;
+ private _state;
+ private _receiveBuffer;
+ private _nextRequiredPacketBufferSize;
+ private _onDataReceived;
+ private _onClose;
+ private _onError;
+ private _onConnect;
+ constructor(options: SocksClientOptions);
+ /**
+ * Creates a new SOCKS connection.
+ *
+ * Note: Supports callbacks and promises. Only supports the connect command.
+ * @param options { SocksClientOptions } Options.
+ * @param callback { Function } An optional callback function.
+ * @returns { Promise }
+ */
+ static createConnection(options: SocksClientOptions, callback?: Function): Promise<SocksClientEstablishedEvent>;
+ /**
+ * Creates a new SOCKS connection chain to a destination host through 2 or more SOCKS proxies.
+ *
+ * Note: Supports callbacks and promises. Only supports the connect method.
+ * Note: Implemented via createConnection() factory function.
+ * @param options { SocksClientChainOptions } Options
+ * @param callback { Function } An optional callback function.
+ * @returns { Promise }
+ */
+ static createConnectionChain(options: SocksClientChainOptions, callback?: Function): Promise<SocksClientEstablishedEvent>;
+ /**
+ * Creates a SOCKS UDP Frame.
+ * @param options
+ */
+ static createUDPFrame(options: SocksUDPFrameDetails): Buffer;
+ /**
+ * Parses a SOCKS UDP frame.
+ * @param data
+ */
+ static parseUDPFrame(data: Buffer): SocksUDPFrameDetails;
+ /**
+ * Gets the SocksClient internal state.
+ */
+ /**
+ * Internal state setter. If the SocksClient is in an error state, it cannot be changed to a non error state.
+ */
+ private state;
+ /**
+ * Starts the connection establishment to the proxy and destination.
+ * @param existing_socket Connected socket to use instead of creating a new one (internal use).
+ */
+ connect(existing_socket?: Duplex): void;
+ /**
+ * Handles internal Socks timeout callback.
+ * Note: If the Socks client is not BoundWaitingForConnection or Established, the connection will be closed.
+ */
+ private onEstablishedTimeout();
+ /**
+ * Handles Socket connect event.
+ */
+ private onConnect();
+ /**
+ * Handles Socket data event.
+ * @param data
+ */
+ private onDataReceived(data);
+ /**
+ * Handles processing of the data we have received.
+ */
+ private processData();
+ /**
+ * Handles Socket close event.
+ * @param had_error
+ */
+ private onClose();
+ /**
+ * Handles Socket error event.
+ * @param err
+ */
+ private onError(err);
+ /**
+ * Removes internal event listeners on the underlying Socket.
+ */
+ private removeInternalSocketHandlers();
+ /**
+ * Closes and destroys the underlying Socket. Emits an error event.
+ * @param err { String } An error string to include in error event.
+ */
+ private _closeSocket(err);
+ /**
+ * Sends initial Socks v4 handshake request.
+ */
+ private sendSocks4InitialHandshake();
+ /**
+ * Handles Socks v4 handshake response.
+ * @param data
+ */
+ private handleSocks4FinalHandshakeResponse();
+ /**
+ * Handles Socks v4 incoming connection request (BIND)
+ * @param data
+ */
+ private handleSocks4IncomingConnectionResponse();
+ /**
+ * Sends initial Socks v5 handshake request.
+ */
+ private sendSocks5InitialHandshake();
+ /**
+ * Handles initial Socks v5 handshake response.
+ * @param data
+ */
+ private handleInitialSocks5HandshakeResponse();
+ /**
+ * Sends Socks v5 user & password auth handshake.
+ *
+ * Note: No auth and user/pass are currently supported.
+ */
+ private sendSocks5UserPassAuthentication();
+ /**
+ * Handles Socks v5 auth handshake response.
+ * @param data
+ */
+ private handleInitialSocks5AuthenticationHandshakeResponse();
+ /**
+ * Sends Socks v5 final handshake request.
+ */
+ private sendSocks5CommandRequest();
+ /**
+ * Handles Socks v5 final handshake response.
+ * @param data
+ */
+ private handleSocks5FinalHandshakeResponse();
+ /**
+ * Handles Socks v5 incoming connection request (BIND).
+ */
+ private handleSocks5IncomingConnectionResponse();
+ readonly socksClientOptions: SocksClientOptions;
+}
+export { SocksClient, SocksClientOptions, SocksClientChainOptions, SocksRemoteHost, SocksProxy, SocksUDPFrameDetails };
diff --git a/deps/npm/node_modules/socks/typings/common/constants.d.ts b/deps/npm/node_modules/socks/typings/common/constants.d.ts
new file mode 100644
index 0000000000..366e578cc0
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/common/constants.d.ts
@@ -0,0 +1,137 @@
+/// <reference types="node" />
+import { Duplex } from 'stream';
+import { Socket } from 'net';
+declare const DEFAULT_TIMEOUT = 30000;
+declare type SocksProxyType = 4 | 5;
+declare const ERRORS: {
+ InvalidSocksCommand: string;
+ InvalidSocksCommandForOperation: string;
+ InvalidSocksCommandChain: string;
+ InvalidSocksClientOptionsDestination: string;
+ InvalidSocksClientOptionsExistingSocket: string;
+ InvalidSocksClientOptionsProxy: string;
+ InvalidSocksClientOptionsTimeout: string;
+ InvalidSocksClientOptionsProxiesLength: string;
+ NegotiationError: string;
+ SocketClosed: string;
+ ProxyConnectionTimedOut: string;
+ InternalError: string;
+ InvalidSocks4HandshakeResponse: string;
+ Socks4ProxyRejectedConnection: string;
+ InvalidSocks4IncomingConnectionResponse: string;
+ Socks4ProxyRejectedIncomingBoundConnection: string;
+ InvalidSocks5InitialHandshakeResponse: string;
+ InvalidSocks5IntiailHandshakeSocksVersion: string;
+ InvalidSocks5InitialHandshakeNoAcceptedAuthType: string;
+ InvalidSocks5InitialHandshakeUnknownAuthType: string;
+ Socks5AuthenticationFailed: string;
+ InvalidSocks5FinalHandshake: string;
+ InvalidSocks5FinalHandshakeRejected: string;
+ InvalidSocks5IncomingConnectionResponse: string;
+ Socks5ProxyRejectedIncomingBoundConnection: string;
+};
+declare const SOCKS_INCOMING_PACKET_SIZES: {
+ Socks5InitialHandshakeResponse: number;
+ Socks5UserPassAuthenticationResponse: number;
+ Socks5ResponseHeader: number;
+ Socks5ResponseIPv4: number;
+ Socks5ResponseIPv6: number;
+ Socks5ResponseHostname: (hostNameLength: number) => number;
+ Socks4Response: number;
+};
+declare type SocksCommandOption = 'connect' | 'bind' | 'associate';
+declare enum SocksCommand {
+ connect = 1,
+ bind = 2,
+ associate = 3,
+}
+declare enum Socks4Response {
+ Granted = 90,
+ Failed = 91,
+ Rejected = 92,
+ RejectedIdent = 93,
+}
+declare enum Socks5Auth {
+ NoAuth = 0,
+ GSSApi = 1,
+ UserPass = 2,
+}
+declare enum Socks5Response {
+ Granted = 0,
+ Failure = 1,
+ NotAllowed = 2,
+ NetworkUnreachable = 3,
+ HostUnreachable = 4,
+ ConnectionRefused = 5,
+ TTLExpired = 6,
+ CommandNotSupported = 7,
+ AddressNotSupported = 8,
+}
+declare enum Socks5HostType {
+ IPv4 = 1,
+ Hostname = 3,
+ IPv6 = 4,
+}
+declare enum SocksClientState {
+ Created = 0,
+ Connecting = 1,
+ Connected = 2,
+ SentInitialHandshake = 3,
+ ReceivedInitialHandshakeResponse = 4,
+ SentAuthentication = 5,
+ ReceivedAuthenticationResponse = 6,
+ SentFinalHandshake = 7,
+ ReceivedFinalResponse = 8,
+ BoundWaitingForConnection = 9,
+ Established = 10,
+ Disconnected = 11,
+ Error = 99,
+}
+/**
+ * Represents a SocksProxy
+ */
+interface SocksProxy {
+ ipaddress: string;
+ port: number;
+ type: SocksProxyType;
+ userId?: string;
+ password?: string;
+}
+/**
+ * Represents a remote host
+ */
+interface SocksRemoteHost {
+ host: string;
+ port: number;
+}
+/**
+ * SocksClient connection options.
+ */
+interface SocksClientOptions {
+ command: SocksCommandOption;
+ destination: SocksRemoteHost;
+ proxy: SocksProxy;
+ timeout?: number;
+ existing_socket?: Duplex;
+}
+/**
+ * SocksClient chain connection options.
+ */
+interface SocksClientChainOptions {
+ command: 'connect';
+ destination: SocksRemoteHost;
+ proxies: SocksProxy[];
+ timeout?: number;
+ randomizeChain?: false;
+}
+interface SocksClientEstablishedEvent {
+ socket: Socket;
+ remoteHost?: SocksRemoteHost;
+}
+declare type SocksClientBoundEvent = SocksClientEstablishedEvent;
+interface SocksUDPFrameDetails {
+ frameNumber?: number;
+ remoteHost: SocksRemoteHost;
+ data: Buffer;
+}
+export { DEFAULT_TIMEOUT, ERRORS, SocksProxyType, SocksCommand, Socks4Response, Socks5Auth, Socks5HostType, Socks5Response, SocksClientState, SocksProxy, SocksRemoteHost, SocksCommandOption, SocksClientOptions, SocksClientChainOptions, SocksClientEstablishedEvent, SocksClientBoundEvent, SocksUDPFrameDetails, SOCKS_INCOMING_PACKET_SIZES };
diff --git a/deps/npm/node_modules/socks/typings/common/helpers.d.ts b/deps/npm/node_modules/socks/typings/common/helpers.d.ts
new file mode 100644
index 0000000000..8c3a106979
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/common/helpers.d.ts
@@ -0,0 +1,13 @@
+import { SocksClientOptions, SocksClientChainOptions } from '../client/socksclient';
+/**
+ * Validates the provided SocksClientOptions
+ * @param options { SocksClientOptions }
+ * @param acceptedCommands { string[] } A list of accepted SocksProxy commands.
+ */
+declare function validateSocksClientOptions(options: SocksClientOptions, acceptedCommands?: string[]): void;
+/**
+ * Validates the SocksClientChainOptions
+ * @param options { SocksClientChainOptions }
+ */
+declare function validateSocksClientChainOptions(options: SocksClientChainOptions): void;
+export { validateSocksClientOptions, validateSocksClientChainOptions };
diff --git a/deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts b/deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts
new file mode 100644
index 0000000000..fe506a0357
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/common/receiveBuffer.d.ts
@@ -0,0 +1,12 @@
+/// <reference types="node" />
+declare class ReceiveBuffer {
+ private _buffer;
+ private _offset;
+ private _originalSize;
+ constructor(size?: number);
+ readonly length: number;
+ append(data: Buffer): number;
+ peek(length: number): Buffer;
+ get(length: number): Buffer;
+}
+export { ReceiveBuffer };
diff --git a/deps/npm/node_modules/socks/typings/common/util.d.ts b/deps/npm/node_modules/socks/typings/common/util.d.ts
new file mode 100644
index 0000000000..14f658e22f
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/common/util.d.ts
@@ -0,0 +1,14 @@
+import { SocksClientOptions, SocksClientChainOptions } from './constants';
+/**
+ * Error wrapper for SocksClient
+ */
+declare class SocksClientError extends Error {
+ options: SocksClientOptions | SocksClientChainOptions;
+ constructor(message: string, options: SocksClientOptions | SocksClientChainOptions);
+}
+/**
+ * Shuffles a given array.
+ * @param array The array to shuffle.
+ */
+declare function shuffleArray(array: any[]): void;
+export { SocksClientError, shuffleArray };
diff --git a/deps/npm/node_modules/socks/typings/index.d.ts b/deps/npm/node_modules/socks/typings/index.d.ts
new file mode 100644
index 0000000000..fbf9006ef1
--- /dev/null
+++ b/deps/npm/node_modules/socks/typings/index.d.ts
@@ -0,0 +1 @@
+export * from './client/socksclient';
diff --git a/deps/npm/node_modules/socks/yarn-error.log b/deps/npm/node_modules/socks/yarn-error.log
new file mode 100644
index 0000000000..7513f0a619
--- /dev/null
+++ b/deps/npm/node_modules/socks/yarn-error.log
@@ -0,0 +1,2416 @@
+Arguments:
+ /usr/local/Cellar/node/9.8.0/bin/node /usr/local/bin/yarn run buld
+
+PATH:
+ /opt/dropbox-override/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/whoseisit/bin:/usr/local/engtools/darwin/bin:/usr/local/engtools/common/bin:/usr/local/arcanist/bin:/usr/local/munki:/opt/dbit/bin
+
+Yarn version:
+ 1.5.1
+
+Node version:
+ 9.8.0
+
+Platform:
+ darwin x64
+
+npm manifest:
+ {
+ "name": "socks",
+ "private": false,
+ "version": "2.1.6",
+ "description": "Fully featured SOCKS proxy client supporting SOCKSv4, SOCKSv4a, and SOCKSv5. Includes Bind and Associate functionality.",
+ "main": "build/index.js",
+ "typings": "typings",
+ "homepage": "https://github.com/JoshGlazebrook/socks/",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/JoshGlazebrook/socks.git"
+ },
+ "bugs": {
+ "url": "https://github.com/JoshGlazebrook/socks/issues"
+ },
+ "keywords": [
+ "socks",
+ "proxy",
+ "tor",
+ "socks 4",
+ "socks 5",
+ "socks4",
+ "socks5"
+ ],
+ "engines": {
+ "node": ">= 6.0.0",
+ "npm": ">= 3.0.0"
+ },
+ "author": "Josh Glazebrook",
+ "license": "MIT",
+ "readmeFilename": "README.md",
+ "devDependencies": {
+ "@types/chai": "4.1.2",
+ "@types/ip": "^0.0.30",
+ "@types/mocha": "5.0.0",
+ "@types/node": "9.6.2",
+ "chai": "^4.1.2",
+ "coveralls": "^3.0.0",
+ "mocha": "5.0.5",
+ "nyc": "11.6.0",
+ "prettier": "^1.9.2",
+ "socks5-server": "^0.1.1",
+ "ts-node": "5.0.1",
+ "tslint": "^5.8.0",
+ "typescript": "2.8.1"
+ },
+ "dependencies": {
+ "ip": "^1.1.5",
+ "smart-buffer": "^4.0.1"
+ },
+ "scripts": {
+ "prepublish": "npm install -g typescript && npm run build",
+ "test": "NODE_ENV=test mocha --recursive --compilers ts:ts-node/register test/**/*.ts",
+ "coverage": "NODE_ENV=test nyc npm test",
+ "coveralls": "NODE_ENV=test nyc npm test && nyc report --reporter=text-lcov | coveralls",
+ "lint": "tslint --project tsconfig.json 'src/**/*.ts'",
+ "build": "tslint --project tsconfig.json && prettier --write ./src/**/*.ts --config .prettierrc.yaml && tsc -p ."
+ },
+ "nyc": {
+ "extension": [
+ ".ts",
+ ".tsx"
+ ],
+ "include": [
+ "src/*.ts",
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "**.*.d.ts",
+ "node_modules",
+ "typings"
+ ],
+ "require": [
+ "ts-node/register"
+ ],
+ "reporter": [
+ "json",
+ "html"
+ ],
+ "all": true
+ }
+ }
+
+yarn manifest:
+ No manifest
+
+Lockfile:
+ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+ # yarn lockfile v1
+
+
+ "@types/chai@4.1.2":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.2.tgz#f1af664769cfb50af805431c407425ed619daa21"
+
+ "@types/ip@^0.0.30":
+ version "0.0.30"
+ resolved "https://registry.yarnpkg.com/@types/ip/-/ip-0.0.30.tgz#60c3309ce1cecdd7293245bbffc201ecb6f8c344"
+
+ "@types/mocha@5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.0.0.tgz#a3014921991066193f6c8e47290d4d598dfd19e6"
+
+ "@types/node@9.6.2":
+ version "9.6.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.2.tgz#e49ac1adb458835e95ca6487bc20f916b37aff23"
+
+ ajv@^5.1.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+ align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+ amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ dependencies:
+ color-convert "^1.9.0"
+
+ append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
+ archy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+
+ argparse@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+ arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ dependencies:
+ arr-flatten "^1.0.1"
+
+ arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+
+ arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+
+ arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+
+ array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+
+ array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+
+ arrify@^1.0.0, arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+ asn1@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+ assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+ assertion-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
+
+ assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+
+ async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+ asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+ atob@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc"
+
+ aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+ aws4@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+ babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+ babel-generator@^6.18.0:
+ version "6.26.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.7"
+ trim-right "^1.0.1"
+
+ babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+ babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+ babel-template@^6.16.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
+ babel-traverse@^6.18.0, babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
+ babel-types@^6.18.0, babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
+ babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+ balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+ base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+ bcrypt-pbkdf@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+ boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+ boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
+ brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+ braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
+ braces@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb"
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ kind-of "^6.0.2"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+ browser-stdout@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+
+ builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+ cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+ caching-transform@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
+ dependencies:
+ md5-hex "^1.2.0"
+ mkdirp "^0.5.1"
+ write-file-atomic "^1.1.4"
+
+ camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+ camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+ caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+ center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+ chai@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+ dependencies:
+ assertion-error "^1.0.1"
+ check-error "^1.0.1"
+ deep-eql "^3.0.0"
+ get-func-name "^2.0.0"
+ pathval "^1.0.0"
+ type-detect "^4.0.0"
+
+ chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+ chalk@^2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+ check-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
+ class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+ cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+ cliui@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+ co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+ code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+ collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+ color-convert@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
+ dependencies:
+ color-name "^1.1.1"
+
+ color-name@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+ combined-stream@^1.0.5, combined-stream@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+ commander@2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
+ commander@^2.12.1:
+ version "2.15.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
+
+ commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+ component-emitter@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+
+ concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+ convert-source-map@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+
+ copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+
+ core-js@^2.4.0:
+ version "2.5.4"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0"
+
+ core-util-is@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+ coveralls@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.0.tgz#22ef730330538080d29b8c151dc9146afde88a99"
+ dependencies:
+ js-yaml "^3.6.1"
+ lcov-parse "^0.0.10"
+ log-driver "^1.2.5"
+ minimist "^1.2.0"
+ request "^2.79.0"
+
+ cross-spawn@^4:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+ dependencies:
+ lru-cache "^4.0.1"
+ which "^1.2.9"
+
+ cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+ cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
+ dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+ debug-log@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
+
+ debug@3.1.0, debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
+ debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+ decamelize@^1.0.0, decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+ decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+
+ deep-eql@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ dependencies:
+ type-detect "^4.0.0"
+
+ default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
+
+ define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ dependencies:
+ is-descriptor "^0.1.0"
+
+ define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ dependencies:
+ is-descriptor "^1.0.0"
+
+ define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+ delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+ detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ dependencies:
+ repeating "^2.0.0"
+
+ diff@3.5.0, diff@^3.1.0, diff@^3.2.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+
+ ecc-jsbn@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ dependencies:
+ jsbn "~0.1.0"
+
+ error-ex@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+ escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+ esprima@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+ esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+ execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+ expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
+ expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ dependencies:
+ fill-range "^2.1.0"
+
+ extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ dependencies:
+ is-extendable "^0.1.0"
+
+ extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+ extend@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+ extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ dependencies:
+ is-extglob "^1.0.0"
+
+ extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ extsprintf@1.3.0, extsprintf@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+ fast-deep-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+
+ fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+ filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+
+ fill-range@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^1.1.3"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
+ fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+ find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+ find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+ find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+ for-in@^1.0.1, for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+ for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ dependencies:
+ for-in "^1.0.1"
+
+ foreground-child@^1.5.3, foreground-child@^1.5.6:
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
+ dependencies:
+ cross-spawn "^4"
+ signal-exit "^3.0.0"
+
+ forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+ form-data@~2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+ fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ dependencies:
+ map-cache "^0.2.2"
+
+ fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+ get-caller-file@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+
+ get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+
+ get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
+ get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+
+ getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+ glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+ glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ dependencies:
+ is-glob "^2.0.0"
+
+ glob@7.1.2, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+ globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
+ graceful-fs@^4.1.11, graceful-fs@^4.1.2:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+ growl@1.10.3:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
+
+ handlebars@^4.0.3:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+ har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+ har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
+ has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+ has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+ has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+
+ has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+ has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+ has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+ has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+
+ has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+ hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
+ he@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+ hoek@4.x.x:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
+ hosted-git-info@^2.1.4:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
+
+ http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+ imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+ inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+ inherits@2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+ invariant@^2.2.2:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ dependencies:
+ loose-envify "^1.0.0"
+
+ invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+
+ ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
+ is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ dependencies:
+ kind-of "^6.0.0"
+
+ is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+ is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+ is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+ is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ dependencies:
+ kind-of "^6.0.0"
+
+ is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+ is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+ is-dotfile@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+
+ is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ dependencies:
+ is-primitive "^2.0.0"
+
+ is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+ is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ dependencies:
+ is-plain-object "^2.0.4"
+
+ is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+
+ is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+ is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+ is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+ is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ dependencies:
+ is-extglob "^1.0.0"
+
+ is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ dependencies:
+ kind-of "^3.0.2"
+
+ is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+
+ is-odd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
+ dependencies:
+ is-number "^4.0.0"
+
+ is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ dependencies:
+ isobject "^3.0.1"
+
+ is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+
+ is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+
+ is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+ is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+ is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+ is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+
+ isarray@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+ isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+ isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+ isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+
+ isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+ istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341"
+
+ istanbul-lib-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
+ dependencies:
+ append-transform "^0.4.0"
+
+ istanbul-lib-instrument@^1.10.0:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
+ dependencies:
+ babel-generator "^6.18.0"
+ babel-template "^6.16.0"
+ babel-traverse "^6.18.0"
+ babel-types "^6.18.0"
+ babylon "^6.18.0"
+ istanbul-lib-coverage "^1.2.0"
+ semver "^5.3.0"
+
+ istanbul-lib-report@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259"
+ dependencies:
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+ istanbul-lib-source-maps@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+ istanbul-reports@^1.1.4:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554"
+ dependencies:
+ handlebars "^4.0.3"
+
+ js-tokens@^3.0.0, js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+ js-yaml@^3.6.1:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+ js-yaml@^3.7.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+ jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+ jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+
+ json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+ json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+ json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+ jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+ kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+ kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ dependencies:
+ is-buffer "^1.1.5"
+
+ kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+
+ kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+
+ lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+ lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ dependencies:
+ invert-kv "^1.0.0"
+
+ lcov-parse@^0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
+
+ load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+ locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+ lodash@^4.17.4:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
+ log-driver@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
+
+ longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+ loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+ lru-cache@^4.0.1:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+ make-error@^1.1.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535"
+
+ map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+
+ map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ dependencies:
+ object-visit "^1.0.0"
+
+ md5-hex@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
+ dependencies:
+ md5-o-matic "^0.1.1"
+
+ md5-o-matic@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
+
+ mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+ merge-source-map@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+ dependencies:
+ source-map "^0.6.1"
+
+ micromatch@^2.3.11:
+ version "2.3.11"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
+ micromatch@^3.1.8:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+ mime-db@~1.30.0:
+ version "1.30.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+
+ mime-types@^2.1.12, mime-types@~2.1.17:
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ dependencies:
+ mime-db "~1.30.0"
+
+ mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+ minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+ minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+ minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+ minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+
+ mixin-deep@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+ mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+ mocha@5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.5.tgz#e228e3386b9387a4710007a641f127b00be44b52"
+ dependencies:
+ browser-stdout "1.3.1"
+ commander "2.11.0"
+ debug "3.1.0"
+ diff "3.5.0"
+ escape-string-regexp "1.0.5"
+ glob "7.1.2"
+ growl "1.10.3"
+ he "1.1.1"
+ mkdirp "0.5.1"
+ supports-color "4.4.0"
+
+ ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+ nanomatch@^1.2.9:
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-odd "^2.0.0"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+ normalize-package-data@^2.3.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+ normalize-path@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+ npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+ number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+ nyc@11.6.0:
+ version "11.6.0"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.6.0.tgz#d9c7b51ffceb6bba099a4683a6adc1b331b98853"
+ dependencies:
+ archy "^1.0.0"
+ arrify "^1.0.1"
+ caching-transform "^1.0.0"
+ convert-source-map "^1.5.1"
+ debug-log "^1.0.1"
+ default-require-extensions "^1.0.0"
+ find-cache-dir "^0.1.1"
+ find-up "^2.1.0"
+ foreground-child "^1.5.3"
+ glob "^7.0.6"
+ istanbul-lib-coverage "^1.1.2"
+ istanbul-lib-hook "^1.1.0"
+ istanbul-lib-instrument "^1.10.0"
+ istanbul-lib-report "^1.1.3"
+ istanbul-lib-source-maps "^1.2.3"
+ istanbul-reports "^1.1.4"
+ md5-hex "^1.2.0"
+ merge-source-map "^1.0.2"
+ micromatch "^2.3.11"
+ mkdirp "^0.5.0"
+ resolve-from "^2.0.0"
+ rimraf "^2.5.4"
+ signal-exit "^3.0.1"
+ spawn-wrap "^1.4.2"
+ test-exclude "^4.2.0"
+ yargs "11.1.0"
+ yargs-parser "^8.0.0"
+
+ oauth-sign@~0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+ object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+ object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+ object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ dependencies:
+ isobject "^3.0.0"
+
+ object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
+ object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ dependencies:
+ isobject "^3.0.1"
+
+ once@^1.3.0, once@^1.3.3:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+ optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+ os-homedir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+ os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+ p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+ p-limit@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
+ dependencies:
+ p-try "^1.0.0"
+
+ p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+ p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+ parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
+ parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+ pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+
+ path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+ path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+ path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+ path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+ path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+ path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+ pathval@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+
+ performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+ pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+ pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+ pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+ pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+ posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+
+ preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+
+ prettier@^1.9.2:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75"
+
+ pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+ punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+ qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+ randomatic@^1.1.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+ read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+ read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+ regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+
+ regex-cache@^0.4.2:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ dependencies:
+ is-equal-shallow "^0.1.3"
+
+ regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+ remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+
+ repeat-element@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+
+ repeat-string@^1.5.2, repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+ repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+ request@^2.79.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
+ require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+ require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+ resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+ resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+
+ resolve@^1.3.2:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c"
+ dependencies:
+ path-parse "^1.0.5"
+
+ ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+
+ right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+ rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+ safe-buffer@^5.0.1, safe-buffer@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+ safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ dependencies:
+ ret "~0.1.10"
+
+ "semver@2 || 3 || 4 || 5", semver@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+
+ set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+ set-value@^0.4.3:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.1"
+ to-object-path "^0.3.0"
+
+ set-value@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+ shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+ shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+ signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+ slide@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
+ smart-buffer@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3"
+
+ snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+ snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ dependencies:
+ kind-of "^3.2.0"
+
+ snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+ sntp@2.x.x:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+ dependencies:
+ hoek "4.x.x"
+
+ socks5-server@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/socks5-server/-/socks5-server-0.1.1.tgz#6542d277bcb55b68c2910430d4112ccca58c0189"
+ dependencies:
+ debug "^2.2.0"
+ ip "^1.1.0"
+ once "^1.3.3"
+
+ source-map-resolve@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
+ dependencies:
+ atob "^2.0.0"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+ source-map-support@^0.5.3:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8"
+ dependencies:
+ source-map "^0.6.0"
+
+ source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+
+ source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+ source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+ source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+ spawn-wrap@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c"
+ dependencies:
+ foreground-child "^1.5.6"
+ mkdirp "^0.5.0"
+ os-homedir "^1.0.1"
+ rimraf "^2.6.2"
+ signal-exit "^3.0.2"
+ which "^1.3.0"
+
+ spdx-correct@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+ spdx-exceptions@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+
+ spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+ spdx-license-ids@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+
+ split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ dependencies:
+ extend-shallow "^3.0.0"
+
+ sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+ sshpk@^1.7.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+ static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+ string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+ string-width@^2.0.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+ stringstream@~0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+ strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+ strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+ strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+ strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+ supports-color@4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
+ dependencies:
+ has-flag "^2.0.0"
+
+ supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+ supports-color@^3.1.2:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+ supports-color@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
+ dependencies:
+ has-flag "^3.0.0"
+
+ test-exclude@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^3.1.8"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
+
+ to-fast-properties@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+ to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ dependencies:
+ kind-of "^3.0.2"
+
+ to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+ to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+ tough-cookie@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+ dependencies:
+ punycode "^1.4.1"
+
+ trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
+ ts-node@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81"
+ dependencies:
+ arrify "^1.0.0"
+ chalk "^2.3.0"
+ diff "^3.1.0"
+ make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.5.3"
+ yn "^2.0.0"
+
+ tslib@^1.8.0, tslib@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
+ tslint@^5.8.0:
+ version "5.9.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.3.0"
+ commander "^2.12.1"
+ diff "^3.2.0"
+ glob "^7.1.1"
+ js-yaml "^3.7.0"
+ minimatch "^3.0.4"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.8.0"
+ tsutils "^2.12.1"
+
+ tsutils@^2.12.1:
+ version "2.26.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.0.tgz#706240d63bcf1ae1797d1716738d6c6be0d0848b"
+ dependencies:
+ tslib "^1.8.1"
+
+ tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+ tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+ type-detect@^4.0.0:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.5.tgz#d70e5bc81db6de2a381bcaca0c6e0cbdc7635de2"
+
+ typescript@2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624"
+
+ uglify-js@^2.6:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+ uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+ union-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^0.4.3"
+
+ unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+ urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+
+ use@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544"
+ dependencies:
+ kind-of "^6.0.2"
+
+ uuid@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+
+ validate-npm-package-license@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+ verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+ which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+ which@^1.2.9, which@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
+ window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+ wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+ wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+ wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+ wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+ write-file-atomic@^1.1.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ slide "^1.1.5"
+
+ y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+
+ yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+ yargs-parser@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ dependencies:
+ camelcase "^4.1.0"
+
+ yargs-parser@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
+ dependencies:
+ camelcase "^4.1.0"
+
+ yargs@11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^9.0.2"
+
+ yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+ yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
+
+Trace:
+ Error: Command "buld" not found. Did you mean "build"?
+ at new MessageError (/Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:186:110)
+ at /Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:87307:17
+ at Generator.next (<anonymous>)
+ at step (/Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:98:30)
+ at /Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:116:14
+ at new Promise (<anonymous>)
+ at new F (/Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:23451:28)
+ at /Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:95:12
+ at runCommand (/Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:87312:22)
+ at Object.<anonymous> (/Users/joshglazebrook/.config/yarn/global/node_modules/yarn/lib/cli.js:87412:14)
diff --git a/deps/npm/node_modules/socks/yarn.lock b/deps/npm/node_modules/socks/yarn.lock
new file mode 100644
index 0000000000..46fafcaf92
--- /dev/null
+++ b/deps/npm/node_modules/socks/yarn.lock
@@ -0,0 +1,2300 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@types/chai@4.1.2":
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.1.2.tgz#f1af664769cfb50af805431c407425ed619daa21"
+
+"@types/ip@^0.0.30":
+ version "0.0.30"
+ resolved "https://registry.yarnpkg.com/@types/ip/-/ip-0.0.30.tgz#60c3309ce1cecdd7293245bbffc201ecb6f8c344"
+
+"@types/mocha@5.0.0":
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-5.0.0.tgz#a3014921991066193f6c8e47290d4d598dfd19e6"
+
+"@types/node@9.6.2":
+ version "9.6.2"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.2.tgz#e49ac1adb458835e95ca6487bc20f916b37aff23"
+
+ajv@^5.1.0:
+ version "5.5.2"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965"
+ dependencies:
+ co "^4.6.0"
+ fast-deep-equal "^1.0.0"
+ fast-json-stable-stringify "^2.0.0"
+ json-schema-traverse "^0.3.0"
+
+align-text@^0.1.1, align-text@^0.1.3:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
+ dependencies:
+ kind-of "^3.0.2"
+ longest "^1.0.1"
+ repeat-string "^1.5.2"
+
+amdefine@>=0.0.4:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
+
+ansi-regex@^2.0.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+
+ansi-regex@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
+
+ansi-styles@^2.2.1:
+ version "2.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
+
+ansi-styles@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
+ dependencies:
+ color-convert "^1.9.0"
+
+append-transform@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991"
+ dependencies:
+ default-require-extensions "^1.0.0"
+
+archy@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40"
+
+argparse@^1.0.7:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
+ dependencies:
+ sprintf-js "~1.0.2"
+
+arr-diff@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
+ dependencies:
+ arr-flatten "^1.0.1"
+
+arr-diff@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
+
+arr-flatten@^1.0.1, arr-flatten@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
+
+arr-union@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
+
+array-unique@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53"
+
+array-unique@^0.3.2:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
+
+arrify@^1.0.0, arrify@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
+
+asn1@~0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86"
+
+assert-plus@1.0.0, assert-plus@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
+
+assertion-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c"
+
+assign-symbols@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
+
+async@^1.4.0:
+ version "1.5.2"
+ resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
+
+asynckit@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
+
+atob@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc"
+
+aws-sign2@~0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
+
+aws4@^1.6.0:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e"
+
+babel-code-frame@^6.22.0, babel-code-frame@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b"
+ dependencies:
+ chalk "^1.1.3"
+ esutils "^2.0.2"
+ js-tokens "^3.0.2"
+
+babel-generator@^6.18.0:
+ version "6.26.1"
+ resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90"
+ dependencies:
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ detect-indent "^4.0.0"
+ jsesc "^1.3.0"
+ lodash "^4.17.4"
+ source-map "^0.5.7"
+ trim-right "^1.0.1"
+
+babel-messages@^6.23.0:
+ version "6.23.0"
+ resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e"
+ dependencies:
+ babel-runtime "^6.22.0"
+
+babel-runtime@^6.22.0, babel-runtime@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
+ dependencies:
+ core-js "^2.4.0"
+ regenerator-runtime "^0.11.0"
+
+babel-template@^6.16.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02"
+ dependencies:
+ babel-runtime "^6.26.0"
+ babel-traverse "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ lodash "^4.17.4"
+
+babel-traverse@^6.18.0, babel-traverse@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee"
+ dependencies:
+ babel-code-frame "^6.26.0"
+ babel-messages "^6.23.0"
+ babel-runtime "^6.26.0"
+ babel-types "^6.26.0"
+ babylon "^6.18.0"
+ debug "^2.6.8"
+ globals "^9.18.0"
+ invariant "^2.2.2"
+ lodash "^4.17.4"
+
+babel-types@^6.18.0, babel-types@^6.26.0:
+ version "6.26.0"
+ resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497"
+ dependencies:
+ babel-runtime "^6.26.0"
+ esutils "^2.0.2"
+ lodash "^4.17.4"
+ to-fast-properties "^1.0.3"
+
+babylon@^6.18.0:
+ version "6.18.0"
+ resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3"
+
+balanced-match@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
+
+base@^0.11.1:
+ version "0.11.2"
+ resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
+ dependencies:
+ cache-base "^1.0.1"
+ class-utils "^0.3.5"
+ component-emitter "^1.2.1"
+ define-property "^1.0.0"
+ isobject "^3.0.1"
+ mixin-deep "^1.2.0"
+ pascalcase "^0.1.1"
+
+bcrypt-pbkdf@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d"
+ dependencies:
+ tweetnacl "^0.14.3"
+
+boom@4.x.x:
+ version "4.3.1"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31"
+ dependencies:
+ hoek "4.x.x"
+
+boom@5.x.x:
+ version "5.2.0"
+ resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02"
+ dependencies:
+ hoek "4.x.x"
+
+brace-expansion@^1.1.7:
+ version "1.1.11"
+ resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
+ dependencies:
+ balanced-match "^1.0.0"
+ concat-map "0.0.1"
+
+braces@^1.8.2:
+ version "1.8.5"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7"
+ dependencies:
+ expand-range "^1.8.1"
+ preserve "^0.2.0"
+ repeat-element "^1.1.2"
+
+braces@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.1.tgz#7086c913b4e5a08dbe37ac0ee6a2500c4ba691bb"
+ dependencies:
+ arr-flatten "^1.1.0"
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ extend-shallow "^2.0.1"
+ fill-range "^4.0.0"
+ isobject "^3.0.1"
+ kind-of "^6.0.2"
+ repeat-element "^1.1.2"
+ snapdragon "^0.8.1"
+ snapdragon-node "^2.0.1"
+ split-string "^3.0.2"
+ to-regex "^3.0.1"
+
+browser-stdout@1.3.1:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
+
+builtin-modules@^1.0.0, builtin-modules@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
+
+cache-base@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
+ dependencies:
+ collection-visit "^1.0.0"
+ component-emitter "^1.2.1"
+ get-value "^2.0.6"
+ has-value "^1.0.0"
+ isobject "^3.0.1"
+ set-value "^2.0.0"
+ to-object-path "^0.3.0"
+ union-value "^1.0.0"
+ unset-value "^1.0.0"
+
+caching-transform@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-1.0.1.tgz#6dbdb2f20f8d8fbce79f3e94e9d1742dcdf5c0a1"
+ dependencies:
+ md5-hex "^1.2.0"
+ mkdirp "^0.5.1"
+ write-file-atomic "^1.1.4"
+
+camelcase@^1.0.2:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
+
+camelcase@^4.1.0:
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd"
+
+caseless@~0.12.0:
+ version "0.12.0"
+ resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
+
+center-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
+ dependencies:
+ align-text "^0.1.3"
+ lazy-cache "^1.0.3"
+
+chai@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.2.tgz#0f64584ba642f0f2ace2806279f4f06ca23ad73c"
+ dependencies:
+ assertion-error "^1.0.1"
+ check-error "^1.0.1"
+ deep-eql "^3.0.0"
+ get-func-name "^2.0.0"
+ pathval "^1.0.0"
+ type-detect "^4.0.0"
+
+chalk@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
+ dependencies:
+ ansi-styles "^2.2.1"
+ escape-string-regexp "^1.0.2"
+ has-ansi "^2.0.0"
+ strip-ansi "^3.0.0"
+ supports-color "^2.0.0"
+
+chalk@^2.3.0:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65"
+ dependencies:
+ ansi-styles "^3.2.1"
+ escape-string-regexp "^1.0.5"
+ supports-color "^5.3.0"
+
+check-error@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82"
+
+class-utils@^0.3.5:
+ version "0.3.6"
+ resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
+ dependencies:
+ arr-union "^3.1.0"
+ define-property "^0.2.5"
+ isobject "^3.0.0"
+ static-extend "^0.1.1"
+
+cliui@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
+ dependencies:
+ center-align "^0.1.1"
+ right-align "^0.1.1"
+ wordwrap "0.0.2"
+
+cliui@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc"
+ dependencies:
+ string-width "^2.1.1"
+ strip-ansi "^4.0.0"
+ wrap-ansi "^2.0.0"
+
+co@^4.6.0:
+ version "4.6.0"
+ resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
+
+code-point-at@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+
+collection-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
+ dependencies:
+ map-visit "^1.0.0"
+ object-visit "^1.0.0"
+
+color-convert@^1.9.0:
+ version "1.9.1"
+ resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed"
+ dependencies:
+ color-name "^1.1.1"
+
+color-name@^1.1.1:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
+
+combined-stream@^1.0.5, combined-stream@~1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009"
+ dependencies:
+ delayed-stream "~1.0.0"
+
+commander@2.11.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563"
+
+commander@^2.12.1:
+ version "2.15.1"
+ resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f"
+
+commondir@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
+
+component-emitter@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6"
+
+concat-map@0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
+
+convert-source-map@^1.5.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
+
+copy-descriptor@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
+
+core-js@^2.4.0:
+ version "2.5.4"
+ resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.4.tgz#f2c8bf181f2a80b92f360121429ce63a2f0aeae0"
+
+core-util-is@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
+
+coveralls@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/coveralls/-/coveralls-3.0.0.tgz#22ef730330538080d29b8c151dc9146afde88a99"
+ dependencies:
+ js-yaml "^3.6.1"
+ lcov-parse "^0.0.10"
+ log-driver "^1.2.5"
+ minimist "^1.2.0"
+ request "^2.79.0"
+
+cross-spawn@^4:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.2.tgz#7b9247621c23adfdd3856004a823cbe397424d41"
+ dependencies:
+ lru-cache "^4.0.1"
+ which "^1.2.9"
+
+cross-spawn@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449"
+ dependencies:
+ lru-cache "^4.0.1"
+ shebang-command "^1.2.0"
+ which "^1.2.9"
+
+cryptiles@3.x.x:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe"
+ dependencies:
+ boom "5.x.x"
+
+dashdash@^1.12.0:
+ version "1.14.1"
+ resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
+ dependencies:
+ assert-plus "^1.0.0"
+
+debug-log@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
+
+debug@3.1.0, debug@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
+ dependencies:
+ ms "2.0.0"
+
+debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
+ version "2.6.9"
+ resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
+ dependencies:
+ ms "2.0.0"
+
+decamelize@^1.0.0, decamelize@^1.1.1:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
+
+decode-uri-component@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
+
+deep-eql@^3.0.0:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
+ dependencies:
+ type-detect "^4.0.0"
+
+default-require-extensions@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8"
+ dependencies:
+ strip-bom "^2.0.0"
+
+define-property@^0.2.5:
+ version "0.2.5"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
+ dependencies:
+ is-descriptor "^0.1.0"
+
+define-property@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
+ dependencies:
+ is-descriptor "^1.0.0"
+
+define-property@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
+ dependencies:
+ is-descriptor "^1.0.2"
+ isobject "^3.0.1"
+
+delayed-stream@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
+
+detect-indent@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208"
+ dependencies:
+ repeating "^2.0.0"
+
+diff@3.5.0, diff@^3.1.0, diff@^3.2.0:
+ version "3.5.0"
+ resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12"
+
+ecc-jsbn@~0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505"
+ dependencies:
+ jsbn "~0.1.0"
+
+error-ex@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
+ dependencies:
+ is-arrayish "^0.2.1"
+
+escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
+
+esprima@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804"
+
+esutils@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
+
+execa@^0.7.0:
+ version "0.7.0"
+ resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777"
+ dependencies:
+ cross-spawn "^5.0.1"
+ get-stream "^3.0.0"
+ is-stream "^1.1.0"
+ npm-run-path "^2.0.0"
+ p-finally "^1.0.0"
+ signal-exit "^3.0.0"
+ strip-eof "^1.0.0"
+
+expand-brackets@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b"
+ dependencies:
+ is-posix-bracket "^0.1.0"
+
+expand-brackets@^2.1.4:
+ version "2.1.4"
+ resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
+ dependencies:
+ debug "^2.3.3"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ posix-character-classes "^0.1.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+expand-range@^1.8.1:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337"
+ dependencies:
+ fill-range "^2.1.0"
+
+extend-shallow@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
+ dependencies:
+ is-extendable "^0.1.0"
+
+extend-shallow@^3.0.0, extend-shallow@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
+ dependencies:
+ assign-symbols "^1.0.0"
+ is-extendable "^1.0.1"
+
+extend@~3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444"
+
+extglob@^0.3.1:
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1"
+ dependencies:
+ is-extglob "^1.0.0"
+
+extglob@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
+ dependencies:
+ array-unique "^0.3.2"
+ define-property "^1.0.0"
+ expand-brackets "^2.1.4"
+ extend-shallow "^2.0.1"
+ fragment-cache "^0.2.1"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+extsprintf@1.3.0, extsprintf@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
+
+fast-deep-equal@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff"
+
+fast-json-stable-stringify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
+
+filename-regex@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26"
+
+fill-range@^2.1.0:
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723"
+ dependencies:
+ is-number "^2.1.0"
+ isobject "^2.0.0"
+ randomatic "^1.1.3"
+ repeat-element "^1.1.2"
+ repeat-string "^1.5.2"
+
+fill-range@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+ to-regex-range "^2.1.0"
+
+find-cache-dir@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9"
+ dependencies:
+ commondir "^1.0.1"
+ mkdirp "^0.5.1"
+ pkg-dir "^1.0.0"
+
+find-up@^1.0.0:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
+ dependencies:
+ path-exists "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+find-up@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
+ dependencies:
+ locate-path "^2.0.0"
+
+for-in@^1.0.1, for-in@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
+
+for-own@^0.1.4:
+ version "0.1.5"
+ resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce"
+ dependencies:
+ for-in "^1.0.1"
+
+foreground-child@^1.5.3, foreground-child@^1.5.6:
+ version "1.5.6"
+ resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-1.5.6.tgz#4fd71ad2dfde96789b980a5c0a295937cb2f5ce9"
+ dependencies:
+ cross-spawn "^4"
+ signal-exit "^3.0.0"
+
+forever-agent@~0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
+
+form-data@~2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.1.tgz#6fb94fbd71885306d73d15cc497fe4cc4ecd44bf"
+ dependencies:
+ asynckit "^0.4.0"
+ combined-stream "^1.0.5"
+ mime-types "^2.1.12"
+
+fragment-cache@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
+ dependencies:
+ map-cache "^0.2.2"
+
+fs.realpath@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
+
+get-caller-file@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5"
+
+get-func-name@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41"
+
+get-stream@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14"
+
+get-value@^2.0.3, get-value@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
+
+getpass@^0.1.1:
+ version "0.1.7"
+ resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
+ dependencies:
+ assert-plus "^1.0.0"
+
+glob-base@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4"
+ dependencies:
+ glob-parent "^2.0.0"
+ is-glob "^2.0.0"
+
+glob-parent@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28"
+ dependencies:
+ is-glob "^2.0.0"
+
+glob@7.1.2, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1:
+ version "7.1.2"
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15"
+ dependencies:
+ fs.realpath "^1.0.0"
+ inflight "^1.0.4"
+ inherits "2"
+ minimatch "^3.0.4"
+ once "^1.3.0"
+ path-is-absolute "^1.0.0"
+
+globals@^9.18.0:
+ version "9.18.0"
+ resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
+
+graceful-fs@^4.1.11, graceful-fs@^4.1.2:
+ version "4.1.11"
+ resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
+
+growl@1.10.3:
+ version "1.10.3"
+ resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.3.tgz#1926ba90cf3edfe2adb4927f5880bc22c66c790f"
+
+handlebars@^4.0.3:
+ version "4.0.11"
+ resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.11.tgz#630a35dfe0294bc281edae6ffc5d329fc7982dcc"
+ dependencies:
+ async "^1.4.0"
+ optimist "^0.6.1"
+ source-map "^0.4.4"
+ optionalDependencies:
+ uglify-js "^2.6"
+
+har-schema@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
+
+har-validator@~5.0.3:
+ version "5.0.3"
+ resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd"
+ dependencies:
+ ajv "^5.1.0"
+ har-schema "^2.0.0"
+
+has-ansi@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+has-flag@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
+
+has-flag@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51"
+
+has-flag@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
+
+has-value@^0.3.1:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
+ dependencies:
+ get-value "^2.0.3"
+ has-values "^0.1.4"
+ isobject "^2.0.0"
+
+has-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
+ dependencies:
+ get-value "^2.0.6"
+ has-values "^1.0.0"
+ isobject "^3.0.0"
+
+has-values@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
+
+has-values@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+hawk@~6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038"
+ dependencies:
+ boom "4.x.x"
+ cryptiles "3.x.x"
+ hoek "4.x.x"
+ sntp "2.x.x"
+
+he@1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
+
+hoek@4.x.x:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.0.tgz#72d9d0754f7fe25ca2d01ad8f8f9a9449a89526d"
+
+hosted-git-info@^2.1.4:
+ version "2.6.0"
+ resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222"
+
+http-signature@~1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
+ dependencies:
+ assert-plus "^1.0.0"
+ jsprim "^1.2.2"
+ sshpk "^1.7.0"
+
+imurmurhash@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
+
+inflight@^1.0.4:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
+ dependencies:
+ once "^1.3.0"
+ wrappy "1"
+
+inherits@2:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
+
+invariant@^2.2.2:
+ version "2.2.4"
+ resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
+ dependencies:
+ loose-envify "^1.0.0"
+
+invert-kv@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6"
+
+ip@^1.1.0, ip@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
+
+is-accessor-descriptor@^0.1.6:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-accessor-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
+ dependencies:
+ kind-of "^6.0.0"
+
+is-arrayish@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
+
+is-buffer@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
+
+is-builtin-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe"
+ dependencies:
+ builtin-modules "^1.0.0"
+
+is-data-descriptor@^0.1.4:
+ version "0.1.4"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-data-descriptor@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
+ dependencies:
+ kind-of "^6.0.0"
+
+is-descriptor@^0.1.0:
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
+ dependencies:
+ is-accessor-descriptor "^0.1.6"
+ is-data-descriptor "^0.1.4"
+ kind-of "^5.0.0"
+
+is-descriptor@^1.0.0, is-descriptor@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
+ dependencies:
+ is-accessor-descriptor "^1.0.0"
+ is-data-descriptor "^1.0.0"
+ kind-of "^6.0.2"
+
+is-dotfile@^1.0.0:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1"
+
+is-equal-shallow@^0.1.3:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534"
+ dependencies:
+ is-primitive "^2.0.0"
+
+is-extendable@^0.1.0, is-extendable@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
+
+is-extendable@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
+ dependencies:
+ is-plain-object "^2.0.4"
+
+is-extglob@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
+
+is-finite@^1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+ dependencies:
+ number-is-nan "^1.0.0"
+
+is-fullwidth-code-point@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
+
+is-glob@^2.0.0, is-glob@^2.0.1:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
+ dependencies:
+ is-extglob "^1.0.0"
+
+is-number@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
+ dependencies:
+ kind-of "^3.0.2"
+
+is-number@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff"
+
+is-odd@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24"
+ dependencies:
+ is-number "^4.0.0"
+
+is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
+ dependencies:
+ isobject "^3.0.1"
+
+is-posix-bracket@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4"
+
+is-primitive@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575"
+
+is-stream@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+
+is-typedarray@~1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
+
+is-utf8@^0.2.0:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72"
+
+is-windows@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
+
+isarray@1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
+
+isexe@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
+
+isobject@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
+ dependencies:
+ isarray "1.0.0"
+
+isobject@^3.0.0, isobject@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
+
+isstream@~0.1.2:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
+
+istanbul-lib-coverage@^1.1.2, istanbul-lib-coverage@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.0.tgz#f7d8f2e42b97e37fe796114cb0f9d68b5e3a4341"
+
+istanbul-lib-hook@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.1.0.tgz#8538d970372cb3716d53e55523dd54b557a8d89b"
+ dependencies:
+ append-transform "^0.4.0"
+
+istanbul-lib-instrument@^1.10.0:
+ version "1.10.1"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.1.tgz#724b4b6caceba8692d3f1f9d0727e279c401af7b"
+ dependencies:
+ babel-generator "^6.18.0"
+ babel-template "^6.16.0"
+ babel-traverse "^6.18.0"
+ babel-types "^6.18.0"
+ babylon "^6.18.0"
+ istanbul-lib-coverage "^1.2.0"
+ semver "^5.3.0"
+
+istanbul-lib-report@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.3.tgz#2df12188c0fa77990c0d2176d2d0ba3394188259"
+ dependencies:
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ path-parse "^1.0.5"
+ supports-color "^3.1.2"
+
+istanbul-lib-source-maps@^1.2.3:
+ version "1.2.3"
+ resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.3.tgz#20fb54b14e14b3fb6edb6aca3571fd2143db44e6"
+ dependencies:
+ debug "^3.1.0"
+ istanbul-lib-coverage "^1.1.2"
+ mkdirp "^0.5.1"
+ rimraf "^2.6.1"
+ source-map "^0.5.3"
+
+istanbul-reports@^1.1.4:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.3.0.tgz#2f322e81e1d9520767597dca3c20a0cce89a3554"
+ dependencies:
+ handlebars "^4.0.3"
+
+js-tokens@^3.0.0, js-tokens@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b"
+
+js-yaml@^3.6.1:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+js-yaml@^3.7.0:
+ version "3.11.0"
+ resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef"
+ dependencies:
+ argparse "^1.0.7"
+ esprima "^4.0.0"
+
+jsbn@~0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
+
+jsesc@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b"
+
+json-schema-traverse@^0.3.0:
+ version "0.3.1"
+ resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340"
+
+json-schema@0.2.3:
+ version "0.2.3"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
+
+json-stringify-safe@~5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
+
+jsprim@^1.2.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
+ dependencies:
+ assert-plus "1.0.0"
+ extsprintf "1.3.0"
+ json-schema "0.2.3"
+ verror "1.10.0"
+
+kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
+ version "3.2.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
+ dependencies:
+ is-buffer "^1.1.5"
+
+kind-of@^5.0.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
+
+kind-of@^6.0.0, kind-of@^6.0.2:
+ version "6.0.2"
+ resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
+
+lazy-cache@^1.0.3:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
+
+lcid@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835"
+ dependencies:
+ invert-kv "^1.0.0"
+
+lcov-parse@^0.0.10:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3"
+
+load-json-file@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0"
+ dependencies:
+ graceful-fs "^4.1.2"
+ parse-json "^2.2.0"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+ strip-bom "^2.0.0"
+
+locate-path@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
+ dependencies:
+ p-locate "^2.0.0"
+ path-exists "^3.0.0"
+
+lodash@^4.17.4:
+ version "4.17.5"
+ resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511"
+
+log-driver@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/log-driver/-/log-driver-1.2.5.tgz#7ae4ec257302fd790d557cb10c97100d857b0056"
+
+longest@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
+
+loose-envify@^1.0.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848"
+ dependencies:
+ js-tokens "^3.0.0"
+
+lru-cache@^4.0.1:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f"
+ dependencies:
+ pseudomap "^1.0.2"
+ yallist "^2.1.2"
+
+make-error@^1.1.1:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.4.tgz#19978ed575f9e9545d2ff8c13e33b5d18a67d535"
+
+map-cache@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
+
+map-visit@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
+ dependencies:
+ object-visit "^1.0.0"
+
+md5-hex@^1.2.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/md5-hex/-/md5-hex-1.3.0.tgz#d2c4afe983c4370662179b8cad145219135046c4"
+ dependencies:
+ md5-o-matic "^0.1.1"
+
+md5-o-matic@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/md5-o-matic/-/md5-o-matic-0.1.1.tgz#822bccd65e117c514fab176b25945d54100a03c3"
+
+mem@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76"
+ dependencies:
+ mimic-fn "^1.0.0"
+
+merge-source-map@^1.0.2:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
+ dependencies:
+ source-map "^0.6.1"
+
+micromatch@^2.3.11:
+ version "2.3.11"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565"
+ dependencies:
+ arr-diff "^2.0.0"
+ array-unique "^0.2.1"
+ braces "^1.8.2"
+ expand-brackets "^0.1.4"
+ extglob "^0.3.1"
+ filename-regex "^2.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.1"
+ kind-of "^3.0.2"
+ normalize-path "^2.0.1"
+ object.omit "^2.0.0"
+ parse-glob "^3.0.4"
+ regex-cache "^0.4.2"
+
+micromatch@^3.1.8:
+ version "3.1.10"
+ resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ braces "^2.3.1"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ extglob "^2.0.4"
+ fragment-cache "^0.2.1"
+ kind-of "^6.0.2"
+ nanomatch "^1.2.9"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.2"
+
+mime-db@~1.30.0:
+ version "1.30.0"
+ resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01"
+
+mime-types@^2.1.12, mime-types@~2.1.17:
+ version "2.1.17"
+ resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a"
+ dependencies:
+ mime-db "~1.30.0"
+
+mimic-fn@^1.0.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+
+minimatch@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
+ dependencies:
+ brace-expansion "^1.1.7"
+
+minimist@0.0.8:
+ version "0.0.8"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
+
+minimist@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
+
+minimist@~0.0.1:
+ version "0.0.10"
+ resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf"
+
+mixin-deep@^1.2.0:
+ version "1.3.1"
+ resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
+ dependencies:
+ for-in "^1.0.2"
+ is-extendable "^1.0.1"
+
+mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
+ dependencies:
+ minimist "0.0.8"
+
+mocha@5.0.5:
+ version "5.0.5"
+ resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.0.5.tgz#e228e3386b9387a4710007a641f127b00be44b52"
+ dependencies:
+ browser-stdout "1.3.1"
+ commander "2.11.0"
+ debug "3.1.0"
+ diff "3.5.0"
+ escape-string-regexp "1.0.5"
+ glob "7.1.2"
+ growl "1.10.3"
+ he "1.1.1"
+ mkdirp "0.5.1"
+ supports-color "4.4.0"
+
+ms@2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
+
+nanomatch@^1.2.9:
+ version "1.2.9"
+ resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2"
+ dependencies:
+ arr-diff "^4.0.0"
+ array-unique "^0.3.2"
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ fragment-cache "^0.2.1"
+ is-odd "^2.0.0"
+ is-windows "^1.0.2"
+ kind-of "^6.0.2"
+ object.pick "^1.3.0"
+ regex-not "^1.0.0"
+ snapdragon "^0.8.1"
+ to-regex "^3.0.1"
+
+normalize-package-data@^2.3.2:
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f"
+ dependencies:
+ hosted-git-info "^2.1.4"
+ is-builtin-module "^1.0.0"
+ semver "2 || 3 || 4 || 5"
+ validate-npm-package-license "^3.0.1"
+
+normalize-path@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
+ dependencies:
+ remove-trailing-separator "^1.0.1"
+
+npm-run-path@^2.0.0:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
+ dependencies:
+ path-key "^2.0.0"
+
+number-is-nan@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+
+nyc@11.6.0:
+ version "11.6.0"
+ resolved "https://registry.yarnpkg.com/nyc/-/nyc-11.6.0.tgz#d9c7b51ffceb6bba099a4683a6adc1b331b98853"
+ dependencies:
+ archy "^1.0.0"
+ arrify "^1.0.1"
+ caching-transform "^1.0.0"
+ convert-source-map "^1.5.1"
+ debug-log "^1.0.1"
+ default-require-extensions "^1.0.0"
+ find-cache-dir "^0.1.1"
+ find-up "^2.1.0"
+ foreground-child "^1.5.3"
+ glob "^7.0.6"
+ istanbul-lib-coverage "^1.1.2"
+ istanbul-lib-hook "^1.1.0"
+ istanbul-lib-instrument "^1.10.0"
+ istanbul-lib-report "^1.1.3"
+ istanbul-lib-source-maps "^1.2.3"
+ istanbul-reports "^1.1.4"
+ md5-hex "^1.2.0"
+ merge-source-map "^1.0.2"
+ micromatch "^2.3.11"
+ mkdirp "^0.5.0"
+ resolve-from "^2.0.0"
+ rimraf "^2.5.4"
+ signal-exit "^3.0.1"
+ spawn-wrap "^1.4.2"
+ test-exclude "^4.2.0"
+ yargs "11.1.0"
+ yargs-parser "^8.0.0"
+
+oauth-sign@~0.8.2:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43"
+
+object-assign@^4.1.0:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
+
+object-copy@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
+ dependencies:
+ copy-descriptor "^0.1.0"
+ define-property "^0.2.5"
+ kind-of "^3.0.3"
+
+object-visit@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
+ dependencies:
+ isobject "^3.0.0"
+
+object.omit@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
+ dependencies:
+ for-own "^0.1.4"
+ is-extendable "^0.1.1"
+
+object.pick@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
+ dependencies:
+ isobject "^3.0.1"
+
+once@^1.3.0, once@^1.3.3:
+ version "1.4.0"
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
+ dependencies:
+ wrappy "1"
+
+optimist@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
+ dependencies:
+ minimist "~0.0.1"
+ wordwrap "~0.0.2"
+
+os-homedir@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
+
+os-locale@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2"
+ dependencies:
+ execa "^0.7.0"
+ lcid "^1.0.0"
+ mem "^1.1.0"
+
+p-finally@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
+
+p-limit@^1.1.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c"
+ dependencies:
+ p-try "^1.0.0"
+
+p-locate@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
+ dependencies:
+ p-limit "^1.1.0"
+
+p-try@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
+
+parse-glob@^3.0.4:
+ version "3.0.4"
+ resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c"
+ dependencies:
+ glob-base "^0.3.0"
+ is-dotfile "^1.0.0"
+ is-extglob "^1.0.0"
+ is-glob "^2.0.0"
+
+parse-json@^2.2.0:
+ version "2.2.0"
+ resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
+ dependencies:
+ error-ex "^1.2.0"
+
+pascalcase@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
+
+path-exists@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
+ dependencies:
+ pinkie-promise "^2.0.0"
+
+path-exists@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
+
+path-is-absolute@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
+
+path-key@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
+
+path-parse@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1"
+
+path-type@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441"
+ dependencies:
+ graceful-fs "^4.1.2"
+ pify "^2.0.0"
+ pinkie-promise "^2.0.0"
+
+pathval@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0"
+
+performance-now@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
+
+pify@^2.0.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
+
+pinkie-promise@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
+ dependencies:
+ pinkie "^2.0.0"
+
+pinkie@^2.0.0:
+ version "2.0.4"
+ resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
+
+pkg-dir@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
+ dependencies:
+ find-up "^1.0.0"
+
+posix-character-classes@^0.1.0:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
+
+preserve@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b"
+
+prettier@^1.9.2:
+ version "1.11.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.11.1.tgz#61e43fc4cd44e68f2b0dfc2c38cd4bb0fccdcc75"
+
+pseudomap@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
+
+punycode@^1.4.1:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+
+qs@~6.5.1:
+ version "6.5.1"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8"
+
+randomatic@^1.1.3:
+ version "1.1.7"
+ resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c"
+ dependencies:
+ is-number "^3.0.0"
+ kind-of "^4.0.0"
+
+read-pkg-up@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02"
+ dependencies:
+ find-up "^1.0.0"
+ read-pkg "^1.0.0"
+
+read-pkg@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28"
+ dependencies:
+ load-json-file "^1.0.0"
+ normalize-package-data "^2.3.2"
+ path-type "^1.0.0"
+
+regenerator-runtime@^0.11.0:
+ version "0.11.1"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
+
+regex-cache@^0.4.2:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd"
+ dependencies:
+ is-equal-shallow "^0.1.3"
+
+regex-not@^1.0.0, regex-not@^1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
+ dependencies:
+ extend-shallow "^3.0.2"
+ safe-regex "^1.1.0"
+
+remove-trailing-separator@^1.0.1:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
+
+repeat-element@^1.1.2:
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a"
+
+repeat-string@^1.5.2, repeat-string@^1.6.1:
+ version "1.6.1"
+ resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
+
+repeating@^2.0.0:
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda"
+ dependencies:
+ is-finite "^1.0.0"
+
+request@^2.79.0:
+ version "2.83.0"
+ resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356"
+ dependencies:
+ aws-sign2 "~0.7.0"
+ aws4 "^1.6.0"
+ caseless "~0.12.0"
+ combined-stream "~1.0.5"
+ extend "~3.0.1"
+ forever-agent "~0.6.1"
+ form-data "~2.3.1"
+ har-validator "~5.0.3"
+ hawk "~6.0.2"
+ http-signature "~1.2.0"
+ is-typedarray "~1.0.0"
+ isstream "~0.1.2"
+ json-stringify-safe "~5.0.1"
+ mime-types "~2.1.17"
+ oauth-sign "~0.8.2"
+ performance-now "^2.1.0"
+ qs "~6.5.1"
+ safe-buffer "^5.1.1"
+ stringstream "~0.0.5"
+ tough-cookie "~2.3.3"
+ tunnel-agent "^0.6.0"
+ uuid "^3.1.0"
+
+require-directory@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+
+require-main-filename@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
+
+resolve-from@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57"
+
+resolve-url@^0.2.1:
+ version "0.2.1"
+ resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
+
+resolve@^1.3.2:
+ version "1.6.0"
+ resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.6.0.tgz#0fbd21278b27b4004481c395349e7aba60a9ff5c"
+ dependencies:
+ path-parse "^1.0.5"
+
+ret@~0.1.10:
+ version "0.1.15"
+ resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
+
+right-align@^0.1.1:
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
+ dependencies:
+ align-text "^0.1.1"
+
+rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2:
+ version "2.6.2"
+ resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36"
+ dependencies:
+ glob "^7.0.5"
+
+safe-buffer@^5.0.1, safe-buffer@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853"
+
+safe-regex@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
+ dependencies:
+ ret "~0.1.10"
+
+"semver@2 || 3 || 4 || 5", semver@^5.3.0:
+ version "5.5.0"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab"
+
+set-blocking@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+
+set-value@^0.4.3:
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.1"
+ to-object-path "^0.3.0"
+
+set-value@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274"
+ dependencies:
+ extend-shallow "^2.0.1"
+ is-extendable "^0.1.1"
+ is-plain-object "^2.0.3"
+ split-string "^3.0.1"
+
+shebang-command@^1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
+ dependencies:
+ shebang-regex "^1.0.0"
+
+shebang-regex@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
+
+signal-exit@^3.0.0, signal-exit@^3.0.1, signal-exit@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
+
+slide@^1.1.5:
+ version "1.1.6"
+ resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707"
+
+smart-buffer@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.0.1.tgz#07ea1ca8d4db24eb4cac86537d7d18995221ace3"
+
+snapdragon-node@^2.0.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
+ dependencies:
+ define-property "^1.0.0"
+ isobject "^3.0.0"
+ snapdragon-util "^3.0.1"
+
+snapdragon-util@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
+ dependencies:
+ kind-of "^3.2.0"
+
+snapdragon@^0.8.1:
+ version "0.8.2"
+ resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
+ dependencies:
+ base "^0.11.1"
+ debug "^2.2.0"
+ define-property "^0.2.5"
+ extend-shallow "^2.0.1"
+ map-cache "^0.2.2"
+ source-map "^0.5.6"
+ source-map-resolve "^0.5.0"
+ use "^3.1.0"
+
+sntp@2.x.x:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8"
+ dependencies:
+ hoek "4.x.x"
+
+socks5-server@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/socks5-server/-/socks5-server-0.1.1.tgz#6542d277bcb55b68c2910430d4112ccca58c0189"
+ dependencies:
+ debug "^2.2.0"
+ ip "^1.1.0"
+ once "^1.3.3"
+
+source-map-resolve@^0.5.0:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a"
+ dependencies:
+ atob "^2.0.0"
+ decode-uri-component "^0.2.0"
+ resolve-url "^0.2.1"
+ source-map-url "^0.4.0"
+ urix "^0.1.0"
+
+source-map-support@^0.5.3:
+ version "0.5.4"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.4.tgz#54456efa89caa9270af7cd624cc2f123e51fbae8"
+ dependencies:
+ source-map "^0.6.0"
+
+source-map-url@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
+
+source-map@^0.4.4:
+ version "0.4.4"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
+ dependencies:
+ amdefine ">=0.0.4"
+
+source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1:
+ version "0.5.7"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
+
+source-map@^0.6.0, source-map@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
+
+spawn-wrap@^1.4.2:
+ version "1.4.2"
+ resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-1.4.2.tgz#cff58e73a8224617b6561abdc32586ea0c82248c"
+ dependencies:
+ foreground-child "^1.5.6"
+ mkdirp "^0.5.0"
+ os-homedir "^1.0.1"
+ rimraf "^2.6.2"
+ signal-exit "^3.0.2"
+ which "^1.3.0"
+
+spdx-correct@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82"
+ dependencies:
+ spdx-expression-parse "^3.0.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-exceptions@^2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9"
+
+spdx-expression-parse@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0"
+ dependencies:
+ spdx-exceptions "^2.1.0"
+ spdx-license-ids "^3.0.0"
+
+spdx-license-ids@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87"
+
+split-string@^3.0.1, split-string@^3.0.2:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
+ dependencies:
+ extend-shallow "^3.0.0"
+
+sprintf-js@~1.0.2:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
+
+sshpk@^1.7.0:
+ version "1.13.1"
+ resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3"
+ dependencies:
+ asn1 "~0.2.3"
+ assert-plus "^1.0.0"
+ dashdash "^1.12.0"
+ getpass "^0.1.1"
+ optionalDependencies:
+ bcrypt-pbkdf "^1.0.0"
+ ecc-jsbn "~0.1.1"
+ jsbn "~0.1.0"
+ tweetnacl "~0.14.0"
+
+static-extend@^0.1.1:
+ version "0.1.2"
+ resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
+ dependencies:
+ define-property "^0.2.5"
+ object-copy "^0.1.0"
+
+string-width@^1.0.1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+ dependencies:
+ code-point-at "^1.0.0"
+ is-fullwidth-code-point "^1.0.0"
+ strip-ansi "^3.0.0"
+
+string-width@^2.0.0, string-width@^2.1.1:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
+ dependencies:
+ is-fullwidth-code-point "^2.0.0"
+ strip-ansi "^4.0.0"
+
+stringstream@~0.0.5:
+ version "0.0.5"
+ resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878"
+
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+ version "3.0.1"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+ dependencies:
+ ansi-regex "^2.0.0"
+
+strip-ansi@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
+ dependencies:
+ ansi-regex "^3.0.0"
+
+strip-bom@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e"
+ dependencies:
+ is-utf8 "^0.2.0"
+
+strip-eof@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
+
+supports-color@4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e"
+ dependencies:
+ has-flag "^2.0.0"
+
+supports-color@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
+
+supports-color@^3.1.2:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
+ dependencies:
+ has-flag "^1.0.0"
+
+supports-color@^5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0"
+ dependencies:
+ has-flag "^3.0.0"
+
+test-exclude@^4.2.0:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-4.2.1.tgz#dfa222f03480bca69207ca728b37d74b45f724fa"
+ dependencies:
+ arrify "^1.0.1"
+ micromatch "^3.1.8"
+ object-assign "^4.1.0"
+ read-pkg-up "^1.0.1"
+ require-main-filename "^1.0.1"
+
+to-fast-properties@^1.0.3:
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47"
+
+to-object-path@^0.3.0:
+ version "0.3.0"
+ resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
+ dependencies:
+ kind-of "^3.0.2"
+
+to-regex-range@^2.1.0:
+ version "2.1.1"
+ resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
+ dependencies:
+ is-number "^3.0.0"
+ repeat-string "^1.6.1"
+
+to-regex@^3.0.1, to-regex@^3.0.2:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
+ dependencies:
+ define-property "^2.0.2"
+ extend-shallow "^3.0.2"
+ regex-not "^1.0.2"
+ safe-regex "^1.1.0"
+
+tough-cookie@~2.3.3:
+ version "2.3.3"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"
+ dependencies:
+ punycode "^1.4.1"
+
+trim-right@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
+
+ts-node@5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-5.0.1.tgz#78e5d1cb3f704de1b641e43b76be2d4094f06f81"
+ dependencies:
+ arrify "^1.0.0"
+ chalk "^2.3.0"
+ diff "^3.1.0"
+ make-error "^1.1.1"
+ minimist "^1.2.0"
+ mkdirp "^0.5.1"
+ source-map-support "^0.5.3"
+ yn "^2.0.0"
+
+tslib@^1.8.0, tslib@^1.8.1:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.0.tgz#e37a86fda8cbbaf23a057f473c9f4dc64e5fc2e8"
+
+tslint@^5.8.0:
+ version "5.9.1"
+ resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.9.1.tgz#1255f87a3ff57eb0b0e1f0e610a8b4748046c9ae"
+ dependencies:
+ babel-code-frame "^6.22.0"
+ builtin-modules "^1.1.1"
+ chalk "^2.3.0"
+ commander "^2.12.1"
+ diff "^3.2.0"
+ glob "^7.1.1"
+ js-yaml "^3.7.0"
+ minimatch "^3.0.4"
+ resolve "^1.3.2"
+ semver "^5.3.0"
+ tslib "^1.8.0"
+ tsutils "^2.12.1"
+
+tsutils@^2.12.1:
+ version "2.26.0"
+ resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.26.0.tgz#706240d63bcf1ae1797d1716738d6c6be0d0848b"
+ dependencies:
+ tslib "^1.8.1"
+
+tunnel-agent@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
+ dependencies:
+ safe-buffer "^5.0.1"
+
+tweetnacl@^0.14.3, tweetnacl@~0.14.0:
+ version "0.14.5"
+ resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
+
+type-detect@^4.0.0:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.5.tgz#d70e5bc81db6de2a381bcaca0c6e0cbdc7635de2"
+
+typescript@2.8.1:
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.8.1.tgz#6160e4f8f195d5ba81d4876f9c0cc1fbc0820624"
+
+uglify-js@^2.6:
+ version "2.8.29"
+ resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd"
+ dependencies:
+ source-map "~0.5.1"
+ yargs "~3.10.0"
+ optionalDependencies:
+ uglify-to-browserify "~1.0.0"
+
+uglify-to-browserify@~1.0.0:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
+
+union-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4"
+ dependencies:
+ arr-union "^3.1.0"
+ get-value "^2.0.6"
+ is-extendable "^0.1.1"
+ set-value "^0.4.3"
+
+unset-value@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
+ dependencies:
+ has-value "^0.3.1"
+ isobject "^3.0.0"
+
+urix@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
+
+use@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544"
+ dependencies:
+ kind-of "^6.0.2"
+
+uuid@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04"
+
+validate-npm-package-license@^3.0.1:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338"
+ dependencies:
+ spdx-correct "^3.0.0"
+ spdx-expression-parse "^3.0.0"
+
+verror@1.10.0:
+ version "1.10.0"
+ resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
+ dependencies:
+ assert-plus "^1.0.0"
+ core-util-is "1.0.2"
+ extsprintf "^1.2.0"
+
+which-module@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
+
+which@^1.2.9, which@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
+ dependencies:
+ isexe "^2.0.0"
+
+window-size@0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
+
+wordwrap@0.0.2:
+ version "0.0.2"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
+
+wordwrap@~0.0.2:
+ version "0.0.3"
+ resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
+
+wrap-ansi@^2.0.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
+ dependencies:
+ string-width "^1.0.1"
+ strip-ansi "^3.0.1"
+
+wrappy@1:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
+
+write-file-atomic@^1.1.4:
+ version "1.3.4"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f"
+ dependencies:
+ graceful-fs "^4.1.11"
+ imurmurhash "^0.1.4"
+ slide "^1.1.5"
+
+y18n@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"
+
+yallist@^2.1.2:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
+
+yargs-parser@^8.0.0:
+ version "8.1.0"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs-parser@^9.0.2:
+ version "9.0.2"
+ resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-9.0.2.tgz#9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077"
+ dependencies:
+ camelcase "^4.1.0"
+
+yargs@11.1.0:
+ version "11.1.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-11.1.0.tgz#90b869934ed6e871115ea2ff58b03f4724ed2d77"
+ dependencies:
+ cliui "^4.0.0"
+ decamelize "^1.1.1"
+ find-up "^2.1.0"
+ get-caller-file "^1.0.1"
+ os-locale "^2.0.0"
+ require-directory "^2.1.1"
+ require-main-filename "^1.0.1"
+ set-blocking "^2.0.0"
+ string-width "^2.0.0"
+ which-module "^2.0.0"
+ y18n "^3.2.1"
+ yargs-parser "^9.0.2"
+
+yargs@~3.10.0:
+ version "3.10.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
+ dependencies:
+ camelcase "^1.0.2"
+ cliui "^2.1.0"
+ decamelize "^1.0.0"
+ window-size "0.1.0"
+
+yn@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a"
diff --git a/deps/npm/node_modules/sorted-object/package.json b/deps/npm/node_modules/sorted-object/package.json
index 4c29d72723..8feacaa3f9 100644
--- a/deps/npm/node_modules/sorted-object/package.json
+++ b/deps/npm/node_modules/sorted-object/package.json
@@ -1,39 +1,40 @@
{
- "_from": "sorted-object@~2.0.1",
+ "_args": [
+ [
+ "sorted-object@2.0.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "sorted-object@2.0.1",
"_id": "sorted-object@2.0.1",
+ "_inBundle": false,
"_integrity": "sha1-fWMfS9OnmKJK8d/8+/6DM3pd9fw=",
"_location": "/sorted-object",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "sorted-object@~2.0.1",
+ "raw": "sorted-object@2.0.1",
"name": "sorted-object",
"escapedName": "sorted-object",
- "rawSpec": "~2.0.1",
+ "rawSpec": "2.0.1",
"saveSpec": null,
- "fetchSpec": "~2.0.1"
+ "fetchSpec": "2.0.1"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/sorted-object/-/sorted-object-2.0.1.tgz",
- "_shasum": "7d631f4bd3a798a24af1dffcfbfe83337a5df5fc",
- "_shrinkwrap": null,
- "_spec": "sorted-object@~2.0.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "2.0.1",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Domenic Denicola",
"email": "d@domenic.me",
"url": "https://domenic.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/domenic/sorted-object/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Returns a copy of an object with its keys sorted",
"devDependencies": {
"eslint": "^2.4.0",
@@ -51,8 +52,6 @@
"license": "(WTFPL OR MIT)",
"main": "lib/sorted-object.js",
"name": "sorted-object",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/domenic/sorted-object.git"
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE
deleted file mode 100644
index d8d7f9437d..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-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/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md
deleted file mode 100644
index 5a76b4149c..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# core-util-is
-
-The `util.is*` functions introduced in Node v0.12.
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch
deleted file mode 100644
index a06d5c05f7..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/float.patch
+++ /dev/null
@@ -1,604 +0,0 @@
-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/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js
deleted file mode 100644
index ff4c851c07..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/lib/util.js
+++ /dev/null
@@ -1,107 +0,0 @@
-// 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/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json
deleted file mode 100644
index e9ed29b272..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "core-util-is@~1.0.0",
- "_id": "core-util-is@1.0.2",
- "_integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "_location": "/sorted-union-stream/from2/readable-stream/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": [
- "/sorted-union-stream/from2/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "_shasum": "b5fd54220aa2bc5ab57aab7140c940754503c1a7",
- "_shrinkwrap": null,
- "_spec": "core-util-is@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/core-util-is/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js
deleted file mode 100644
index 1a490c65ac..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/core-util-is/test.js
+++ /dev/null
@@ -1,68 +0,0 @@
-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/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json
deleted file mode 100644
index 862dd06faf..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "isarray@0.0.1",
- "_id": "isarray@0.0.1",
- "_integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
- "_location": "/sorted-union-stream/from2/readable-stream/isarray",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "isarray@0.0.1",
- "name": "isarray",
- "escapedName": "isarray",
- "rawSpec": "0.0.1",
- "saveSpec": null,
- "fetchSpec": "0.0.1"
- },
- "_requiredBy": [
- "/sorted-union-stream/from2/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
- "_shrinkwrap": null,
- "_spec": "isarray@0.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream",
- "author": {
- "name": "Julian Gruber",
- "email": "mail@juliangruber.com",
- "url": "http://juliangruber.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/juliangruber/isarray/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Array#isArray for older browsers",
- "devDependencies": {
- "tap": "*"
- },
- "homepage": "https://github.com/juliangruber/isarray",
- "keywords": [
- "browser",
- "isarray",
- "array"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "isarray",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/juliangruber/isarray.git"
- },
- "scripts": {
- "test": "tap test/*.js"
- },
- "version": "0.0.1"
-}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore
deleted file mode 100644
index 206320cc1d..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/.npmignore
+++ /dev/null
@@ -1,2 +0,0 @@
-build
-test
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json
deleted file mode 100644
index c743dd4925..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "string_decoder@~0.10.x",
- "_id": "string_decoder@0.10.31",
- "_integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "_location": "/sorted-union-stream/from2/readable-stream/string_decoder",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string_decoder@~0.10.x",
- "name": "string_decoder",
- "escapedName": "string_decoder",
- "rawSpec": "~0.10.x",
- "saveSpec": null,
- "fetchSpec": "~0.10.x"
- },
- "_requiredBy": [
- "/sorted-union-stream/from2/readable-stream"
- ],
- "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94",
- "_shrinkwrap": null,
- "_spec": "string_decoder@~0.10.x",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream",
- "bin": null,
- "bugs": {
- "url": "https://github.com/rvagg/string_decoder/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "The string_decoder module from Node core",
- "devDependencies": {
- "tap": "~0.4.8"
- },
- "homepage": "https://github.com/rvagg/string_decoder",
- "keywords": [
- "string",
- "decoder",
- "browser",
- "browserify"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "string_decoder",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/rvagg/string_decoder.git"
- },
- "scripts": {
- "test": "tap test/simple/*.js"
- },
- "version": "0.10.31"
-}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json
deleted file mode 100644
index 9074c95356..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "readable-stream@~1.1.10",
- "_id": "readable-stream@1.1.14",
- "_integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
- "_location": "/sorted-union-stream/from2/readable-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "readable-stream@~1.1.10",
- "name": "readable-stream",
- "escapedName": "readable-stream",
- "rawSpec": "~1.1.10",
- "saveSpec": null,
- "fetchSpec": "~1.1.10"
- },
- "_requiredBy": [
- "/sorted-union-stream/from2"
- ],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
- "_shasum": "7cf4c54ef648e3813084c636dd2079e166c081d9",
- "_shrinkwrap": null,
- "_spec": "readable-stream@~1.1.10",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream/node_modules/from2",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "browser": {
- "util": false
- },
- "bugs": {
- "url": "https://github.com/isaacs/readable-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- },
- "deprecated": false,
- "description": "Streams3, a user-land copy of the stream library from Node.js v0.11.x",
- "devDependencies": {
- "tap": "~0.2.6"
- },
- "homepage": "https://github.com/isaacs/readable-stream#readme",
- "keywords": [
- "readable",
- "stream",
- "pipe"
- ],
- "license": "MIT",
- "main": "readable.js",
- "name": "readable-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/isaacs/readable-stream.git"
- },
- "scripts": {
- "test": "tap test/simple/*.js"
- },
- "version": "1.1.14"
-}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json
index 4e1e9e597b..f593249558 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/from2/package.json
@@ -1,11 +1,10 @@
{
"_from": "from2@^1.3.0",
"_id": "from2@1.3.0",
+ "_inBundle": false,
"_integrity": "sha1-iEE7qqX5pZfP3pIh2GmGzTwGHf0=",
"_location": "/sorted-union-stream/from2",
- "_phantomChildren": {
- "inherits": "2.0.3"
- },
+ "_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
@@ -21,15 +20,13 @@
],
"_resolved": "https://registry.npmjs.org/from2/-/from2-1.3.0.tgz",
"_shasum": "88413baaa5f9a597cfde9221d86986cd3c061dfd",
- "_shrinkwrap": null,
"_spec": "from2@^1.3.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream",
+ "_where": "/Users/rebecca/code/npm/node_modules/sorted-union-stream",
"author": {
"name": "Hugh Kennedy",
"email": "hughskennedy@gmail.com",
"url": "http://hughsk.io/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/hughsk/from2/issues"
},
@@ -61,8 +58,6 @@
"license": "MIT",
"main": "index.js",
"name": "from2",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/hughsk/from2.git"
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/README.md b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/README.md
index 052a62b8d7..052a62b8d7 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/README.md
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/README.md
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/build/build.js b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/build/build.js
index e1856ef094..e1856ef094 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/build/build.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/build/build.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/component.json b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/component.json
index 9e31b68388..9e31b68388 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/component.json
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/component.json
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/index.js b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/index.js
index 5f5ad45d46..5f5ad45d46 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/isarray/index.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/index.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/package.json
new file mode 100644
index 0000000000..7ffb740810
--- /dev/null
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/isarray/package.json
@@ -0,0 +1,57 @@
+{
+ "_from": "isarray@0.0.1",
+ "_id": "isarray@0.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=",
+ "_location": "/sorted-union-stream/isarray",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "isarray@0.0.1",
+ "name": "isarray",
+ "escapedName": "isarray",
+ "rawSpec": "0.0.1",
+ "saveSpec": null,
+ "fetchSpec": "0.0.1"
+ },
+ "_requiredBy": [
+ "/sorted-union-stream/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "_shasum": "8a18acfca9a8f4177e09abfc6038939b05d1eedf",
+ "_spec": "isarray@0.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/sorted-union-stream/node_modules/readable-stream",
+ "author": {
+ "name": "Julian Gruber",
+ "email": "mail@juliangruber.com",
+ "url": "http://juliangruber.com"
+ },
+ "bugs": {
+ "url": "https://github.com/juliangruber/isarray/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Array#isArray for older browsers",
+ "devDependencies": {
+ "tap": "*"
+ },
+ "homepage": "https://github.com/juliangruber/isarray",
+ "keywords": [
+ "browser",
+ "isarray",
+ "array"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "isarray",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/juliangruber/isarray.git"
+ },
+ "scripts": {
+ "test": "tap test/*.js"
+ },
+ "version": "0.0.1"
+}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/.npmignore b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/.npmignore
index 38344f87a6..38344f87a6 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/.npmignore
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/.npmignore
diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/LICENSE b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/LICENSE
index e3d4e695a4..e3d4e695a4 100644
--- a/deps/npm/node_modules/read-installed/node_modules/util-extend/LICENSE
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/LICENSE
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/README.md b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/README.md
index 9e9b6eee9f..9e9b6eee9f 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/README.md
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/README.md
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/duplex.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/duplex.js
index ca807af876..ca807af876 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/duplex.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/duplex.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/float.patch b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/float.patch
index 7abb6dc30b..7abb6dc30b 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/float.patch
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/float.patch
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_duplex.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_duplex.js
index b513d61a96..b513d61a96 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_duplex.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_duplex.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_passthrough.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_passthrough.js
index 895ca50a1d..895ca50a1d 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_passthrough.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_passthrough.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_readable.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_readable.js
index 19ab358898..19ab358898 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_readable.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_readable.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_transform.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_transform.js
index 905c5e4507..905c5e4507 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_transform.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_transform.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_writable.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_writable.js
index db8539cd5b..db8539cd5b 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/lib/_stream_writable.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/lib/_stream_writable.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/package.json
new file mode 100644
index 0000000000..c09cce6e07
--- /dev/null
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "readable-stream@~1.1.10",
+ "_id": "readable-stream@1.1.14",
+ "_inBundle": false,
+ "_integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+ "_location": "/sorted-union-stream/readable-stream",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "readable-stream@~1.1.10",
+ "name": "readable-stream",
+ "escapedName": "readable-stream",
+ "rawSpec": "~1.1.10",
+ "saveSpec": null,
+ "fetchSpec": "~1.1.10"
+ },
+ "_requiredBy": [
+ "/sorted-union-stream/from2"
+ ],
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+ "_shasum": "7cf4c54ef648e3813084c636dd2079e166c081d9",
+ "_spec": "readable-stream@~1.1.10",
+ "_where": "/Users/rebecca/code/npm/node_modules/sorted-union-stream/node_modules/from2",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "browser": {
+ "util": false
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/readable-stream/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ },
+ "deprecated": false,
+ "description": "Streams3, a user-land copy of the stream library from Node.js v0.11.x",
+ "devDependencies": {
+ "tap": "~0.2.6"
+ },
+ "homepage": "https://github.com/isaacs/readable-stream#readme",
+ "keywords": [
+ "readable",
+ "stream",
+ "pipe"
+ ],
+ "license": "MIT",
+ "main": "readable.js",
+ "name": "readable-stream",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/readable-stream.git"
+ },
+ "scripts": {
+ "test": "tap test/simple/*.js"
+ },
+ "version": "1.1.14"
+}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/passthrough.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/passthrough.js
index 27e8d8a551..27e8d8a551 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/passthrough.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/passthrough.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/readable.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/readable.js
index 2a8b5c6b56..2a8b5c6b56 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/readable.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/readable.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/transform.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/transform.js
index 5d482f0780..5d482f0780 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/transform.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/transform.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/writable.js b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/writable.js
index e1e9efdf3c..e1e9efdf3c 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/writable.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/readable-stream/writable.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml
deleted file mode 100644
index ecd4193f60..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/.travis.yml
+++ /dev/null
@@ -1,6 +0,0 @@
-language: node_js
-node_js:
- - "0.10"
- - "0.12"
- - "4"
- - "6"
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE
deleted file mode 100644
index bae9da7bfa..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2016 Mathias Buus
-
-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/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md
deleted file mode 100644
index d9cc2d945f..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-# stream-shift
-
-Returns the next buffer/object in a stream's readable queue
-
-```
-npm install stream-shift
-```
-
-[![build status](http://img.shields.io/travis/mafintosh/stream-shift.svg?style=flat)](http://travis-ci.org/mafintosh/stream-shift)
-
-## Usage
-
-``` js
-var shift = require('stream-shift')
-
-console.log(shift(someStream)) // first item in its buffer
-```
-
-## Credit
-
-Thanks [@dignifiedquire](https://github.com/dignifiedquire) for making this work on node 6
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js
deleted file mode 100644
index c4b18b9c2a..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/index.js
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports = shift
-
-function shift (stream) {
- var rs = stream._readableState
- if (!rs) return null
- return rs.objectMode ? stream.read() : stream.read(getStateLength(rs))
-}
-
-function getStateLength (state) {
- if (state.buffer.length) {
- // Since node 6.3.0 state.buffer is a BufferList not an array
- if (state.buffer.head) {
- return state.buffer.head.data.length
- }
-
- return state.buffer[0].length
- }
-
- return state.length
-}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json
deleted file mode 100644
index 83077ba491..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "stream-shift@^1.0.0",
- "_id": "stream-shift@1.0.0",
- "_integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
- "_location": "/sorted-union-stream/stream-iterate/stream-shift",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stream-shift@^1.0.0",
- "name": "stream-shift",
- "escapedName": "stream-shift",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/sorted-union-stream/stream-iterate"
- ],
- "_resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
- "_shasum": "d5c752825e5367e786f78e18e445ea223a155952",
- "_shrinkwrap": null,
- "_spec": "stream-shift@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream/node_modules/stream-iterate",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/stream-shift/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Returns the next buffer/object in a stream's readable queue",
- "devDependencies": {
- "standard": "^7.1.2",
- "tape": "^4.6.0",
- "through2": "^2.0.1"
- },
- "homepage": "https://github.com/mafintosh/stream-shift",
- "license": "MIT",
- "main": "index.js",
- "name": "stream-shift",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/stream-shift.git"
- },
- "scripts": {
- "test": "standard && tape test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js
deleted file mode 100644
index c0222c37d5..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/node_modules/stream-shift/test.js
+++ /dev/null
@@ -1,48 +0,0 @@
-var tape = require('tape')
-var through = require('through2')
-var stream = require('stream')
-var shift = require('./')
-
-tape('shifts next', function (t) {
- var passthrough = through()
-
- passthrough.write('hello')
- passthrough.write('world')
-
- t.same(shift(passthrough), Buffer('hello'))
- t.same(shift(passthrough), Buffer('world'))
- t.end()
-})
-
-tape('shifts next with core', function (t) {
- var passthrough = stream.PassThrough()
-
- passthrough.write('hello')
- passthrough.write('world')
-
- t.same(shift(passthrough), Buffer('hello'))
- t.same(shift(passthrough), Buffer('world'))
- t.end()
-})
-
-tape('shifts next with object mode', function (t) {
- var passthrough = through({objectMode: true})
-
- passthrough.write({hello: 1})
- passthrough.write({world: 1})
-
- t.same(shift(passthrough), {hello: 1})
- t.same(shift(passthrough), {world: 1})
- t.end()
-})
-
-tape('shifts next with object mode with core', function (t) {
- var passthrough = stream.PassThrough({objectMode: true})
-
- passthrough.write({hello: 1})
- passthrough.write({world: 1})
-
- t.same(shift(passthrough), {hello: 1})
- t.same(shift(passthrough), {world: 1})
- t.end()
-})
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json
deleted file mode 100644
index c8f83d017b..0000000000
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "stream-iterate@^1.1.0",
- "_id": "stream-iterate@1.2.0",
- "_integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=",
- "_location": "/sorted-union-stream/stream-iterate",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "stream-iterate@^1.1.0",
- "name": "stream-iterate",
- "escapedName": "stream-iterate",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/sorted-union-stream"
- ],
- "_resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz",
- "_shasum": "2bd7c77296c1702a46488b8ad41f79865eecd4e1",
- "_shrinkwrap": null,
- "_spec": "stream-iterate@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/sorted-union-stream",
- "author": {
- "name": "Mathias Buus",
- "url": "@mafintosh"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/mafintosh/stream-iterate/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "readable-stream": "^2.1.5",
- "stream-shift": "^1.0.0"
- },
- "deprecated": false,
- "description": "Iterate through the values of a stream",
- "devDependencies": {
- "from2": "^1.3.0",
- "standard": "^3.3.2",
- "tape": "^4.0.0"
- },
- "homepage": "https://github.com/mafintosh/stream-iterate",
- "license": "MIT",
- "main": "index.js",
- "name": "stream-iterate",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/mafintosh/stream-iterate.git"
- },
- "scripts": {
- "test": "standard && tape test.js"
- },
- "version": "1.2.0"
-}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/.npmignore
index 206320cc1d..206320cc1d 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/.npmignore
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/.npmignore
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/LICENSE
index 6de584a48f..6de584a48f 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/LICENSE
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/LICENSE
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/README.md b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/README.md
index 4d2aa00150..4d2aa00150 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/README.md
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/README.md
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/index.js b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/index.js
index b00e54fb79..b00e54fb79 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/node_modules/string_decoder/index.js
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/index.js
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/package.json b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/package.json
new file mode 100644
index 0000000000..3c7014f039
--- /dev/null
+++ b/deps/npm/node_modules/sorted-union-stream/node_modules/string_decoder/package.json
@@ -0,0 +1,53 @@
+{
+ "_from": "string_decoder@~0.10.x",
+ "_id": "string_decoder@0.10.31",
+ "_inBundle": false,
+ "_integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "_location": "/sorted-union-stream/string_decoder",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string_decoder@~0.10.x",
+ "name": "string_decoder",
+ "escapedName": "string_decoder",
+ "rawSpec": "~0.10.x",
+ "saveSpec": null,
+ "fetchSpec": "~0.10.x"
+ },
+ "_requiredBy": [
+ "/sorted-union-stream/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "_shasum": "62e203bc41766c6c28c9fc84301dab1c5310fa94",
+ "_spec": "string_decoder@~0.10.x",
+ "_where": "/Users/rebecca/code/npm/node_modules/sorted-union-stream/node_modules/readable-stream",
+ "bugs": {
+ "url": "https://github.com/rvagg/string_decoder/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "The string_decoder module from Node core",
+ "devDependencies": {
+ "tap": "~0.4.8"
+ },
+ "homepage": "https://github.com/rvagg/string_decoder",
+ "keywords": [
+ "string",
+ "decoder",
+ "browser",
+ "browserify"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "string_decoder",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/rvagg/string_decoder.git"
+ },
+ "scripts": {
+ "test": "tap test/simple/*.js"
+ },
+ "version": "0.10.31"
+}
diff --git a/deps/npm/node_modules/sorted-union-stream/package.json b/deps/npm/node_modules/sorted-union-stream/package.json
index 0a77f8b16b..dd56c35d7f 100644
--- a/deps/npm/node_modules/sorted-union-stream/package.json
+++ b/deps/npm/node_modules/sorted-union-stream/package.json
@@ -1,44 +1,46 @@
{
- "_from": "sorted-union-stream@~2.1.3",
+ "_args": [
+ [
+ "sorted-union-stream@2.1.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "sorted-union-stream@2.1.3",
"_id": "sorted-union-stream@2.1.3",
+ "_inBundle": false,
"_integrity": "sha1-x3lMfgd4gAUv9xqNSi27Sppjisc=",
"_location": "/sorted-union-stream",
"_phantomChildren": {
- "inherits": "2.0.3",
- "readable-stream": "2.2.9"
+ "core-util-is": "1.0.2",
+ "inherits": "2.0.3"
},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "sorted-union-stream@~2.1.3",
+ "raw": "sorted-union-stream@2.1.3",
"name": "sorted-union-stream",
"escapedName": "sorted-union-stream",
- "rawSpec": "~2.1.3",
+ "rawSpec": "2.1.3",
"saveSpec": null,
- "fetchSpec": "~2.1.3"
+ "fetchSpec": "2.1.3"
},
"_requiredBy": [
"/"
],
"_resolved": "https://registry.npmjs.org/sorted-union-stream/-/sorted-union-stream-2.1.3.tgz",
- "_shasum": "c7794c7e077880052ff71a8d4a2dbb4a9a638ac7",
- "_shrinkwrap": null,
- "_spec": "sorted-union-stream@~2.1.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "2.1.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Mathias Buus Madsen",
"email": "mathiasbuus@gmail.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/mafintosh/sorted-union-stream/issues"
},
- "bundleDependencies": false,
"dependencies": {
"from2": "^1.3.0",
"stream-iterate": "^1.1.0"
},
- "deprecated": false,
"description": "Get the union of two sorted streams",
"devDependencies": {
"standard": "^3.3.0",
@@ -53,8 +55,6 @@
"license": "MIT",
"main": "index.js",
"name": "sorted-union-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/mafintosh/sorted-union-stream.git"
diff --git a/deps/npm/node_modules/spdx-correct/LICENSE b/deps/npm/node_modules/spdx-correct/LICENSE
new file mode 100644
index 0000000000..d645695673
--- /dev/null
+++ b/deps/npm/node_modules/spdx-correct/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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/spdx-correct/README.md b/deps/npm/node_modules/spdx-correct/README.md
new file mode 100644
index 0000000000..4169e61e19
--- /dev/null
+++ b/deps/npm/node_modules/spdx-correct/README.md
@@ -0,0 +1,10 @@
+```javascript
+var correct = require('spdx-correct')
+var assert = require('assert')
+
+assert.equal(correct('mit'), 'MIT')
+
+assert.equal(correct('Apache 2'), 'Apache-2.0')
+
+assert(correct('No idea what license') === null)
+```
diff --git a/deps/npm/node_modules/spdx-correct/index.js b/deps/npm/node_modules/spdx-correct/index.js
new file mode 100644
index 0000000000..a5ff877bc0
--- /dev/null
+++ b/deps/npm/node_modules/spdx-correct/index.js
@@ -0,0 +1,326 @@
+/*
+Copyright 2015 Kyle E. Mitchell
+
+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.
+*/
+var parse = require('spdx-expression-parse')
+var spdxLicenseIds = require('spdx-license-ids')
+
+function valid (string) {
+ try {
+ parse(string)
+ return true
+ } catch (error) {
+ return false
+ }
+}
+
+// Common transpositions of license identifier acronyms
+var transpositions = [
+ ['APGL', 'AGPL'],
+ ['Gpl', 'GPL'],
+ ['GLP', 'GPL'],
+ ['APL', 'Apache'],
+ ['ISD', 'ISC'],
+ ['GLP', 'GPL'],
+ ['IST', 'ISC'],
+ ['Claude', 'Clause'],
+ [' or later', '+'],
+ [' International', ''],
+ ['GNU', 'GPL'],
+ ['GUN', 'GPL'],
+ ['+', ''],
+ ['GNU GPL', 'GPL'],
+ ['GNU/GPL', 'GPL'],
+ ['GNU GLP', 'GPL'],
+ ['GNU General Public License', 'GPL'],
+ ['Gnu public license', 'GPL'],
+ ['GNU Public License', 'GPL'],
+ ['GNU GENERAL PUBLIC LICENSE', 'GPL'],
+ ['MTI', 'MIT'],
+ ['Mozilla Public License', 'MPL'],
+ ['WTH', 'WTF'],
+ ['-License', '']
+]
+
+var TRANSPOSED = 0
+var CORRECT = 1
+
+// Simple corrections to nearly valid identifiers.
+var transforms = [
+ // e.g. 'mit'
+ function (argument) {
+ return argument.toUpperCase()
+ },
+ // e.g. 'MIT '
+ function (argument) {
+ return argument.trim()
+ },
+ // e.g. 'M.I.T.'
+ function (argument) {
+ return argument.replace(/\./g, '')
+ },
+ // e.g. 'Apache- 2.0'
+ function (argument) {
+ return argument.replace(/\s+/g, '')
+ },
+ // e.g. 'CC BY 4.0''
+ function (argument) {
+ return argument.replace(/\s+/g, '-')
+ },
+ // e.g. 'LGPLv2.1'
+ function (argument) {
+ return argument.replace('v', '-')
+ },
+ // e.g. 'Apache 2.0'
+ function (argument) {
+ return argument.replace(/,?\s*(\d)/, '-$1')
+ },
+ // e.g. 'GPL 2'
+ function (argument) {
+ return argument.replace(/,?\s*(\d)/, '-$1.0')
+ },
+ // e.g. 'Apache Version 2.0'
+ function (argument) {
+ return argument
+ .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2')
+ },
+ // e.g. 'Apache Version 2'
+ function (argument) {
+ return argument
+ .replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0')
+ },
+ // e.g. 'ZLIB'
+ function (argument) {
+ return argument[0].toUpperCase() + argument.slice(1)
+ },
+ // e.g. 'MPL/2.0'
+ function (argument) {
+ return argument.replace('/', '-')
+ },
+ // e.g. 'Apache 2'
+ function (argument) {
+ return argument
+ .replace(/\s*V\s*(\d)/, '-$1')
+ .replace(/(\d)$/, '$1.0')
+ },
+ // e.g. 'GPL-2.0', 'GPL-3.0'
+ function (argument) {
+ if (argument.indexOf('3.0') !== -1) {
+ return argument + '-or-later'
+ } else {
+ return argument + '-only'
+ }
+ },
+ // e.g. 'GPL-2.0-'
+ function (argument) {
+ return argument + 'only'
+ },
+ // e.g. 'GPL2'
+ function (argument) {
+ return argument.replace(/(\d)$/, '-$1.0')
+ },
+ // e.g. 'BSD 3'
+ function (argument) {
+ return argument.replace(/(-| )?(\d)$/, '-$2-Clause')
+ },
+ // e.g. 'BSD clause 3'
+ function (argument) {
+ return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause')
+ },
+ // e.g. 'BY-NC-4.0'
+ function (argument) {
+ return 'CC-' + argument
+ },
+ // e.g. 'BY-NC'
+ function (argument) {
+ return 'CC-' + argument + '-4.0'
+ },
+ // e.g. 'Attribution-NonCommercial'
+ function (argument) {
+ return argument
+ .replace('Attribution', 'BY')
+ .replace('NonCommercial', 'NC')
+ .replace('NoDerivatives', 'ND')
+ .replace(/ (\d)/, '-$1')
+ .replace(/ ?International/, '')
+ },
+ // e.g. 'Attribution-NonCommercial'
+ function (argument) {
+ return 'CC-' +
+ argument
+ .replace('Attribution', 'BY')
+ .replace('NonCommercial', 'NC')
+ .replace('NoDerivatives', 'ND')
+ .replace(/ (\d)/, '-$1')
+ .replace(/ ?International/, '') +
+ '-4.0'
+ }
+]
+
+var licensesWithVersions = spdxLicenseIds
+ .map(function (id) {
+ var match = /^(.*)-\d+\.\d+$/.exec(id)
+ return match
+ ? [match[0], match[1]]
+ : [id, null]
+ })
+ .reduce(function (objectMap, item) {
+ var key = item[1]
+ objectMap[key] = objectMap[key] || []
+ objectMap[key].push(item[0])
+ return objectMap
+ }, {})
+
+var licensesWithOneVersion = Object.keys(licensesWithVersions)
+ .map(function makeEntries (key) {
+ return [key, licensesWithVersions[key]]
+ })
+ .filter(function identifySoleVersions (item) {
+ return (
+ // Licenses has just one valid version suffix.
+ item[1].length === 1 &&
+ item[0] !== null &&
+ // APL will be considered Apache, rather than APL-1.0
+ item[0] !== 'APL'
+ )
+ })
+ .map(function createLastResorts (item) {
+ return [item[0], item[1][0]]
+ })
+
+licensesWithVersions = undefined
+
+// If all else fails, guess that strings containing certain substrings
+// meant to identify certain licenses.
+var lastResorts = [
+ ['UNLI', 'Unlicense'],
+ ['WTF', 'WTFPL'],
+ ['2 CLAUSE', 'BSD-2-Clause'],
+ ['2-CLAUSE', 'BSD-2-Clause'],
+ ['3 CLAUSE', 'BSD-3-Clause'],
+ ['3-CLAUSE', 'BSD-3-Clause'],
+ ['AFFERO', 'AGPL-3.0-or-later'],
+ ['AGPL', 'AGPL-3.0-or-later'],
+ ['APACHE', 'Apache-2.0'],
+ ['ARTISTIC', 'Artistic-2.0'],
+ ['Affero', 'AGPL-3.0-or-later'],
+ ['BEER', 'Beerware'],
+ ['BOOST', 'BSL-1.0'],
+ ['BSD', 'BSD-2-Clause'],
+ ['CDDL', 'CDDL-1.1'],
+ ['ECLIPSE', 'EPL-1.0'],
+ ['FUCK', 'WTFPL'],
+ ['GNU', 'GPL-3.0-or-later'],
+ ['LGPL', 'LGPL-3.0-or-later'],
+ ['GPLV1', 'GPL-1.0-only'],
+ ['GPLV2', 'GPL-2.0-only'],
+ ['GPL', 'GPL-3.0-or-later'],
+ ['MIT +NO-FALSE-ATTRIBS', 'MITNFA'],
+ ['MIT', 'MIT'],
+ ['MPL', 'MPL-2.0'],
+ ['X11', 'X11'],
+ ['ZLIB', 'Zlib']
+].concat(licensesWithOneVersion)
+
+var SUBSTRING = 0
+var IDENTIFIER = 1
+
+var validTransformation = function (identifier) {
+ for (var i = 0; i < transforms.length; i++) {
+ var transformed = transforms[i](identifier).trim()
+ if (transformed !== identifier && valid(transformed)) {
+ return transformed
+ }
+ }
+ return null
+}
+
+var validLastResort = function (identifier) {
+ var upperCased = identifier.toUpperCase()
+ for (var i = 0; i < lastResorts.length; i++) {
+ var lastResort = lastResorts[i]
+ if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) {
+ return lastResort[IDENTIFIER]
+ }
+ }
+ return null
+}
+
+var anyCorrection = function (identifier, check) {
+ for (var i = 0; i < transpositions.length; i++) {
+ var transposition = transpositions[i]
+ var transposed = transposition[TRANSPOSED]
+ if (identifier.indexOf(transposed) > -1) {
+ var corrected = identifier.replace(
+ transposed,
+ transposition[CORRECT]
+ )
+ var checked = check(corrected)
+ if (checked !== null) {
+ return checked
+ }
+ }
+ }
+ return null
+}
+
+module.exports = function (identifier) {
+ var validArugment = (
+ typeof identifier === 'string' &&
+ identifier.trim().length !== 0
+ )
+ if (!validArugment) {
+ throw Error('Invalid argument. Expected non-empty string.')
+ }
+ identifier = identifier.replace(/\+$/, '').trim()
+ if (valid(identifier)) {
+ return upgradeGPLs(identifier)
+ }
+ var transformed = validTransformation(identifier)
+ if (transformed !== null) {
+ return upgradeGPLs(transformed)
+ }
+ transformed = anyCorrection(identifier, function (argument) {
+ if (valid(argument)) {
+ return argument
+ }
+ return validTransformation(argument)
+ })
+ if (transformed !== null) {
+ return upgradeGPLs(transformed)
+ }
+ transformed = validLastResort(identifier)
+ if (transformed !== null) {
+ return upgradeGPLs(transformed)
+ }
+ transformed = anyCorrection(identifier, validLastResort)
+ if (transformed !== null) {
+ return upgradeGPLs(transformed)
+ }
+ return null
+}
+
+function upgradeGPLs (value) {
+ if ([
+ 'GPL-1.0', 'LGPL-1.0', 'AGPL-1.0',
+ 'GPL-2.0', 'LGPL-2.0', 'AGPL-2.0',
+ 'LGPL-2.1'
+ ].indexOf(value) !== -1) {
+ return value + '-only'
+ } else if (['GPL-3.0', 'LGPL-3.0', 'AGPL-3.0'].indexOf(value) !== -1) {
+ return value + '-or-later'
+ } else {
+ return value
+ }
+}
diff --git a/deps/npm/node_modules/spdx-correct/package.json b/deps/npm/node_modules/spdx-correct/package.json
new file mode 100644
index 0000000000..c252d65f9a
--- /dev/null
+++ b/deps/npm/node_modules/spdx-correct/package.json
@@ -0,0 +1,80 @@
+{
+ "_from": "spdx-correct@^3.0.0",
+ "_id": "spdx-correct@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==",
+ "_location": "/spdx-correct",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "spdx-correct@^3.0.0",
+ "name": "spdx-correct",
+ "escapedName": "spdx-correct",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/validate-npm-package-license"
+ ],
+ "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz",
+ "_shasum": "05a5b4d7153a195bc92c3c425b69f3b2a9524c82",
+ "_spec": "spdx-correct@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license",
+ "author": {
+ "name": "Kyle E. Mitchell",
+ "email": "kyle@kemitchell.com",
+ "url": "https://kemitchell.com"
+ },
+ "bugs": {
+ "url": "https://github.com/jslicense/spdx-correct.js/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Kyle E. Mitchell",
+ "email": "kyle@kemitchell.com",
+ "url": "https://kemitchell.com"
+ },
+ {
+ "name": "Christian Zommerfelds",
+ "email": "aero_super@yahoo.com"
+ }
+ ],
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "correct invalid SPDX expressions",
+ "devDependencies": {
+ "defence-cli": "^2.0.1",
+ "replace-require-self": "^1.0.0",
+ "standard": "^11.0.0",
+ "standard-markdown": "^4.0.2",
+ "tape": "^4.9.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/jslicense/spdx-correct.js#readme",
+ "keywords": [
+ "SPDX",
+ "law",
+ "legal",
+ "license",
+ "metadata"
+ ],
+ "license": "Apache-2.0",
+ "name": "spdx-correct",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jslicense/spdx-correct.js.git"
+ },
+ "scripts": {
+ "lint": "standard && standard-markdown",
+ "test": "defence README.md | replace-require-self | node && node test.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/spdx-exceptions/README.md b/deps/npm/node_modules/spdx-exceptions/README.md
new file mode 100644
index 0000000000..6c927ecc69
--- /dev/null
+++ b/deps/npm/node_modules/spdx-exceptions/README.md
@@ -0,0 +1,36 @@
+The package exports an array of strings. Each string is an identifier
+for a license exception under the [Software Package Data Exchange
+(SPDX)][SPDX] software license metadata standard.
+
+[SPDX]: https://spdx.org
+
+## Copyright and Licensing
+
+### SPDX
+
+"SPDX" is a federally registered United States trademark of The Linux
+Foundation Corporation.
+
+From version 2.0 of the [SPDX] specification:
+
+> Copyright Ā© 2010-2015 Linux Foundation and its Contributors. Licensed
+> under the Creative Commons Attribution License 3.0 Unported. All other
+> rights are expressly reserved.
+
+The Linux Foundation and the SPDX working groups are good people. Only
+they decide what "SPDX" means, as a standard and otherwise. I respect
+their work and their rights. You should, too.
+
+### This Package
+
+> I created this package by copying exception identifiers out of the
+> SPDX specification. That work was mechanical, routine, and required no
+> creativity whatsoever. - Kyle Mitchell, package author
+
+United States users concerned about intellectual property may wish to
+discuss the following Supreme Court decisions with their attorneys:
+
+- _Baker v. Selden_, 101 U.S. 99 (1879)
+
+- _Feist Publications, Inc., v. Rural Telephone Service Co._,
+ 499 U.S. 340 (1991)
diff --git a/deps/npm/node_modules/spdx-exceptions/index.json b/deps/npm/node_modules/spdx-exceptions/index.json
new file mode 100644
index 0000000000..6981ce3845
--- /dev/null
+++ b/deps/npm/node_modules/spdx-exceptions/index.json
@@ -0,0 +1,29 @@
+[
+ "389-exception",
+ "Autoconf-exception-2.0",
+ "Autoconf-exception-3.0",
+ "Bison-exception-2.2",
+ "Bootloader-exception",
+ "CLISP-exception-2.0",
+ "Classpath-exception-2.0",
+ "DigiRule-FOSS-exception",
+ "FLTK-exception",
+ "Fawkes-Runtime-exception",
+ "Font-exception-2.0",
+ "GCC-exception-2.0",
+ "GCC-exception-3.1",
+ "LZMA-exception",
+ "Libtool-exception",
+ "Linux-syscall-note",
+ "Nokia-Qt-exception-1.1",
+ "OCCT-exception-1.0",
+ "Qwt-exception-1.0",
+ "WxWindows-exception-3.1",
+ "eCos-exception-2.0",
+ "freertos-exception-2.0",
+ "gnu-javamail-exception",
+ "i2p-gpl-java-exception",
+ "mif-exception",
+ "openvpn-openssl-exception",
+ "u-boot-exception-2.0"
+]
diff --git a/deps/npm/node_modules/spdx-exceptions/package.json b/deps/npm/node_modules/spdx-exceptions/package.json
new file mode 100644
index 0000000000..e674073b7d
--- /dev/null
+++ b/deps/npm/node_modules/spdx-exceptions/package.json
@@ -0,0 +1,49 @@
+{
+ "_from": "spdx-exceptions@^2.1.0",
+ "_id": "spdx-exceptions@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==",
+ "_location": "/spdx-exceptions",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "spdx-exceptions@^2.1.0",
+ "name": "spdx-exceptions",
+ "escapedName": "spdx-exceptions",
+ "rawSpec": "^2.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.0"
+ },
+ "_requiredBy": [
+ "/spdx-expression-parse"
+ ],
+ "_resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz",
+ "_shasum": "2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9",
+ "_spec": "spdx-exceptions@^2.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/spdx-expression-parse",
+ "author": {
+ "name": "The Linux Foundation"
+ },
+ "bugs": {
+ "url": "https://github.com/kemitchell/spdx-exceptions.json/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Kyle E. Mitchell",
+ "email": "kyle@kemitchell.com",
+ "url": "https://kemitchell.com/"
+ }
+ ],
+ "deprecated": false,
+ "description": "list of SPDX standard license exceptions",
+ "homepage": "https://github.com/kemitchell/spdx-exceptions.json#readme",
+ "license": "CC-BY-3.0",
+ "name": "spdx-exceptions",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/kemitchell/spdx-exceptions.json.git"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS b/deps/npm/node_modules/spdx-expression-parse/AUTHORS
index 155f0f66c0..257a76b948 100644
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/AUTHORS
+++ b/deps/npm/node_modules/spdx-expression-parse/AUTHORS
@@ -1,3 +1,4 @@
C. Scott Ananian <cscott@cscott.net> (http://cscott.net)
Kyle E. Mitchell <kyle@kemitchell.com> (https://kemitchell.com)
Shinnosuke Watanabe <snnskwtnb@gmail.com>
+Antoine Motet <antoine.motet@gmail.com>
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE b/deps/npm/node_modules/spdx-expression-parse/LICENSE
index 831618eaba..831618eaba 100644
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/LICENSE
+++ b/deps/npm/node_modules/spdx-expression-parse/LICENSE
diff --git a/deps/npm/node_modules/spdx-expression-parse/README.md b/deps/npm/node_modules/spdx-expression-parse/README.md
new file mode 100644
index 0000000000..514895b7d3
--- /dev/null
+++ b/deps/npm/node_modules/spdx-expression-parse/README.md
@@ -0,0 +1,91 @@
+This package parses [SPDX license expression](https://spdx.org/spdx-specification-21-web-version#h.jxpfx0ykyb60) strings describing license terms, like [package.json license strings](https://docs.npmjs.com/files/package.json#license), into consistently structured ECMAScript objects. The npm command-line interface depends on this package, as do many automatic license-audit tools.
+
+In a nutshell:
+
+```javascript
+var parse = require('spdx-expression-parse')
+var assert = require('assert')
+
+assert.deepEqual(
+ // Licensed under the terms of the Two-Clause BSD License.
+ parse('BSD-2-Clause'),
+ {license: 'BSD-2-Clause'}
+)
+
+assert.throws(function () {
+ // An invalid SPDX license expression.
+ // Should be `Apache-2.0`.
+ parse('Apache 2')
+})
+
+assert.deepEqual(
+ // Dual licensed under either:
+ // - LGPL 2.1
+ // - a combination of Three-Clause BSD and MIT
+ parse('(LGPL-2.1 OR BSD-3-Clause AND MIT)'),
+ {
+ left: {license: 'LGPL-2.1'},
+ conjunction: 'or',
+ right: {
+ left: {license: 'BSD-3-Clause'},
+ conjunction: 'and',
+ right: {license: 'MIT'}
+ }
+ }
+)
+```
+
+The syntax comes from the [Software Package Data eXchange (SPDX)](https://spdx.org/), a standard from the [Linux Foundation](https://www.linuxfoundation.org) for shareable data about software package license terms. SPDX aims to make sharing and auditing license data easy, especially for users of open-source software.
+
+The bulk of the SPDX standard describes syntax and semantics of XML metadata files. This package implements two lightweight, plain-text components of that larger standard:
+
+1. The [license list](https://spdx.org/licenses), a mapping from specific string identifiers, like `Apache-2.0`, to standard form license texts and bolt-on license exceptions. The [spdx-license-ids](https://www.npmjs.com/package/spdx-exceptions) and [spdx-exceptions](https://www.npmjs.com/package/spdx-license-ids) packages implement the license list. `spdx-expression-parse` depends on and `require()`s them.
+
+ Any license identifier from the license list is a valid license expression:
+
+ ```javascript
+ var identifiers = []
+ .concat(require('spdx-license-ids'))
+ .concat(require('spdx-license-ids/deprecated'))
+
+ identifiers.forEach(function (id) {
+ assert.deepEqual(parse(id), {license: id})
+ })
+ ```
+
+ So is any license identifier `WITH` a standardized license exception:
+
+ ```javascript
+ identifiers.forEach(function (id) {
+ require('spdx-exceptions').forEach(function (e) {
+ assert.deepEqual(
+ parse(id + ' WITH ' + e),
+ {license: id, exception: e}
+ )
+ })
+ })
+ ```
+
+2. The license expression language, for describing simple and complex license terms, like `MIT` for MIT-licensed and `(GPL-2.0 OR Apache-2.0)` for dual-licensing under GPL 2.0 and Apache 2.0. `spdx-expression-parse` itself implements license expression language, exporting a parser.
+
+ ```javascript
+ assert.deepEqual(
+ // Licensed under a combination of:
+ // - the MIT License AND
+ // - a combination of:
+ // - LGPL 2.1 (or a later version) AND
+ // - Three-Clause BSD
+ parse('(MIT AND (LGPL-2.1+ AND BSD-3-Clause))'),
+ {
+ left: {license: 'MIT'},
+ conjunction: 'and',
+ right: {
+ left: {license: 'LGPL-2.1', plus: true},
+ conjunction: 'and',
+ right: {license: 'BSD-3-Clause'}
+ }
+ }
+ )
+ ```
+
+The Linux Foundation and its contributors license the SPDX standard under the terms of [the Creative Commons Attribution License 3.0 Unported (SPDX: "CC-BY-3.0")](http://spdx.org/licenses/CC-BY-3.0). "SPDX" is a United States federally registered trademark of the Linux Foundation. The authors of this package license their work under the terms of the MIT License.
diff --git a/deps/npm/node_modules/spdx-expression-parse/index.js b/deps/npm/node_modules/spdx-expression-parse/index.js
new file mode 100644
index 0000000000..52fab560ae
--- /dev/null
+++ b/deps/npm/node_modules/spdx-expression-parse/index.js
@@ -0,0 +1,8 @@
+'use strict'
+
+var scan = require('./scan')
+var parse = require('./parse')
+
+module.exports = function (source) {
+ return parse(scan(source))
+}
diff --git a/deps/npm/node_modules/spdx-expression-parse/package.json b/deps/npm/node_modules/spdx-expression-parse/package.json
new file mode 100644
index 0000000000..8f7fa1d268
--- /dev/null
+++ b/deps/npm/node_modules/spdx-expression-parse/package.json
@@ -0,0 +1,97 @@
+{
+ "_from": "spdx-expression-parse@^3.0.0",
+ "_id": "spdx-expression-parse@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==",
+ "_location": "/spdx-expression-parse",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "spdx-expression-parse@^3.0.0",
+ "name": "spdx-expression-parse",
+ "escapedName": "spdx-expression-parse",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/spdx-correct",
+ "/validate-npm-package-license"
+ ],
+ "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz",
+ "_shasum": "99e119b7a5da00e05491c9fa338b7904823b41d0",
+ "_spec": "spdx-expression-parse@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/validate-npm-package-license",
+ "author": {
+ "name": "Kyle E. Mitchell",
+ "email": "kyle@kemitchell.com",
+ "url": "http://kemitchell.com"
+ },
+ "bugs": {
+ "url": "https://github.com/jslicense/spdx-expression-parse.js/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "C. Scott Ananian",
+ "email": "cscott@cscott.net",
+ "url": "http://cscott.net"
+ },
+ {
+ "name": "Kyle E. Mitchell",
+ "email": "kyle@kemitchell.com",
+ "url": "https://kemitchell.com"
+ },
+ {
+ "name": "Shinnosuke Watanabe",
+ "email": "snnskwtnb@gmail.com"
+ },
+ {
+ "name": "Antoine Motet",
+ "email": "antoine.motet@gmail.com"
+ }
+ ],
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "parse SPDX license expressions",
+ "devDependencies": {
+ "defence-cli": "^2.0.1",
+ "mocha": "^3.4.2",
+ "replace-require-self": "^1.0.0",
+ "standard": "^10.0.2"
+ },
+ "files": [
+ "AUTHORS",
+ "index.js",
+ "parse.js",
+ "scan.js"
+ ],
+ "homepage": "https://github.com/jslicense/spdx-expression-parse.js#readme",
+ "keywords": [
+ "SPDX",
+ "law",
+ "legal",
+ "license",
+ "metadata",
+ "package",
+ "package.json",
+ "standards"
+ ],
+ "license": "MIT",
+ "name": "spdx-expression-parse",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/jslicense/spdx-expression-parse.js.git"
+ },
+ "scripts": {
+ "lint": "standard",
+ "test": "npm run test:mocha && npm run test:readme",
+ "test:mocha": "mocha test/index.js",
+ "test:readme": "defence -i javascript README.md | replace-require-self | node"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/spdx-expression-parse/parse.js b/deps/npm/node_modules/spdx-expression-parse/parse.js
new file mode 100644
index 0000000000..a4a52ce93c
--- /dev/null
+++ b/deps/npm/node_modules/spdx-expression-parse/parse.js
@@ -0,0 +1,138 @@
+'use strict'
+
+// The ABNF grammar in the spec is totally ambiguous.
+//
+// This parser follows the operator precedence defined in the
+// `Order of Precedence and Parentheses` section.
+
+module.exports = function (tokens) {
+ var index = 0
+
+ function hasMore () {
+ return index < tokens.length
+ }
+
+ function token () {
+ return hasMore() ? tokens[index] : null
+ }
+
+ function next () {
+ if (!hasMore()) {
+ throw new Error()
+ }
+ index++
+ }
+
+ function parseOperator (operator) {
+ var t = token()
+ if (t && t.type === 'OPERATOR' && operator === t.string) {
+ next()
+ return t.string
+ }
+ }
+
+ function parseWith () {
+ if (parseOperator('WITH')) {
+ var t = token()
+ if (t && t.type === 'EXCEPTION') {
+ next()
+ return t.string
+ }
+ throw new Error('Expected exception after `WITH`')
+ }
+ }
+
+ function parseLicenseRef () {
+ // TODO: Actually, everything is concatenated into one string
+ // for backward-compatibility but it could be better to return
+ // a nice structure.
+ var begin = index
+ var string = ''
+ var t = token()
+ if (t.type === 'DOCUMENTREF') {
+ next()
+ string += 'DocumentRef-' + t.string + ':'
+ if (!parseOperator(':')) {
+ throw new Error('Expected `:` after `DocumentRef-...`')
+ }
+ }
+ t = token()
+ if (t.type === 'LICENSEREF') {
+ next()
+ string += 'LicenseRef-' + t.string
+ return {license: string}
+ }
+ index = begin
+ }
+
+ function parseLicense () {
+ var t = token()
+ if (t && t.type === 'LICENSE') {
+ next()
+ var node = {license: t.string}
+ if (parseOperator('+')) {
+ node.plus = true
+ }
+ var exception = parseWith()
+ if (exception) {
+ node.exception = exception
+ }
+ return node
+ }
+ }
+
+ function parseParenthesizedExpression () {
+ var left = parseOperator('(')
+ if (!left) {
+ return
+ }
+
+ var expr = parseExpression()
+
+ if (!parseOperator(')')) {
+ throw new Error('Expected `)`')
+ }
+
+ return expr
+ }
+
+ function parseAtom () {
+ return (
+ parseParenthesizedExpression() ||
+ parseLicenseRef() ||
+ parseLicense()
+ )
+ }
+
+ function makeBinaryOpParser (operator, nextParser) {
+ return function parseBinaryOp () {
+ var left = nextParser()
+ if (!left) {
+ return
+ }
+
+ if (!parseOperator(operator)) {
+ return left
+ }
+
+ var right = parseBinaryOp()
+ if (!right) {
+ throw new Error('Expected expression')
+ }
+ return {
+ left: left,
+ conjunction: operator.toLowerCase(),
+ right: right
+ }
+ }
+ }
+
+ var parseAnd = makeBinaryOpParser('AND', parseAtom)
+ var parseExpression = makeBinaryOpParser('OR', parseAnd)
+
+ var node = parseExpression()
+ if (!node || hasMore()) {
+ throw new Error('Syntax error')
+ }
+ return node
+}
diff --git a/deps/npm/node_modules/spdx-expression-parse/scan.js b/deps/npm/node_modules/spdx-expression-parse/scan.js
new file mode 100644
index 0000000000..d0567f494b
--- /dev/null
+++ b/deps/npm/node_modules/spdx-expression-parse/scan.js
@@ -0,0 +1,131 @@
+'use strict'
+
+var licenses = []
+ .concat(require('spdx-license-ids'))
+ .concat(require('spdx-license-ids/deprecated'))
+var exceptions = require('spdx-exceptions')
+
+module.exports = function (source) {
+ var index = 0
+
+ function hasMore () {
+ return index < source.length
+ }
+
+ // `value` can be a regexp or a string.
+ // If it is recognized, the matching source string is returned and
+ // the index is incremented. Otherwise `undefined` is returned.
+ function read (value) {
+ if (value instanceof RegExp) {
+ var chars = source.slice(index)
+ var match = chars.match(value)
+ if (match) {
+ index += match[0].length
+ return match[0]
+ }
+ } else {
+ if (source.indexOf(value, index) === index) {
+ index += value.length
+ return value
+ }
+ }
+ }
+
+ function skipWhitespace () {
+ read(/[ ]*/)
+ }
+
+ function operator () {
+ var string
+ var possibilities = ['WITH', 'AND', 'OR', '(', ')', ':', '+']
+ for (var i = 0; i < possibilities.length; i++) {
+ string = read(possibilities[i])
+ if (string) {
+ break
+ }
+ }
+
+ if (string === '+' && index > 1 && source[index - 2] === ' ') {
+ throw new Error('Space before `+`')
+ }
+
+ return string && {
+ type: 'OPERATOR',
+ string: string
+ }
+ }
+
+ function idstring () {
+ return read(/[A-Za-z0-9-.]+/)
+ }
+
+ function expectIdstring () {
+ var string = idstring()
+ if (!string) {
+ throw new Error('Expected idstring at offset ' + index)
+ }
+ return string
+ }
+
+ function documentRef () {
+ if (read('DocumentRef-')) {
+ var string = expectIdstring()
+ return {type: 'DOCUMENTREF', string: string}
+ }
+ }
+
+ function licenseRef () {
+ if (read('LicenseRef-')) {
+ var string = expectIdstring()
+ return {type: 'LICENSEREF', string: string}
+ }
+ }
+
+ function identifier () {
+ var begin = index
+ var string = idstring()
+
+ if (licenses.indexOf(string) !== -1) {
+ return {
+ type: 'LICENSE',
+ string: string
+ }
+ } else if (exceptions.indexOf(string) !== -1) {
+ return {
+ type: 'EXCEPTION',
+ string: string
+ }
+ }
+
+ index = begin
+ }
+
+ // Tries to read the next token. Returns `undefined` if no token is
+ // recognized.
+ function parseToken () {
+ // Ordering matters
+ return (
+ operator() ||
+ documentRef() ||
+ licenseRef() ||
+ identifier()
+ )
+ }
+
+ var tokens = []
+ while (hasMore()) {
+ skipWhitespace()
+ if (!hasMore()) {
+ break
+ }
+
+ var token = parseToken()
+ if (!token) {
+ throw new Error('Unexpected `' + source[index] +
+ '` at offset ' + index)
+ }
+
+ tokens.push(token)
+ }
+ return tokens
+}
diff --git a/deps/npm/node_modules/spdx-license-ids/README.md b/deps/npm/node_modules/spdx-license-ids/README.md
new file mode 100644
index 0000000000..09b080cb20
--- /dev/null
+++ b/deps/npm/node_modules/spdx-license-ids/README.md
@@ -0,0 +1,52 @@
+# spdx-license-ids
+
+[![npm version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids)
+[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids)
+
+A list of [SPDX license](https://spdx.org/licenses/) identifiers
+
+## Installation
+
+[Download JSON directly](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/index.json), or [use](https://docs.npmjs.com/cli/install) [npm](https://docs.npmjs.com/getting-started/what-is-npm):
+
+```
+npm install spdx-license-ids
+```
+
+## [Node.js](https://nodejs.org/) API
+
+### require('spdx-license-ids')
+
+Type: `<Array<string>>`
+
+All license IDs except for the currently deprecated ones.
+
+```javascript
+const ids = require('spdx-license-ids');
+//=> ['0BSD', 'AAL', 'Abstyles', 'Adobe-2006', 'Adobe-Glyph', 'ADSL', 'AFL-1.1', ...]
+
+ids.includes('BSD-3-Clause'); //=> true
+ids.includes('CC-BY-1.0'); //=> true
+
+ids.includes('GPL-3.0'); //=> false
+```
+
+### require('spdx-license-ids/deprecated')
+
+Type: `<Array<string>>`
+
+Deprecated license IDs.
+
+```javascript
+const deprecatedIds = require('spdx-license-ids/deprecated');
+//=> ['AGPL-3.0', 'eCos-2.0', 'GFDL-1.1', 'GFDL-1.2', 'GFDL-1.3', 'GPL-1.0', ...]
+
+deprecatedIds.includes('BSD-3-Clause'); //=> false
+deprecatedIds.includes('CC-BY-1.0'); //=> false
+
+deprecatedIds.includes('GPL-3.0'); //=> true
+```
+
+## License
+
+[Creative Commons Zero v1.0 Universal](https://creativecommons.org/publicdomain/zero/1.0/deed)
diff --git a/deps/npm/node_modules/spdx-license-ids/deprecated.json b/deps/npm/node_modules/spdx-license-ids/deprecated.json
new file mode 100644
index 0000000000..2e40ab7618
--- /dev/null
+++ b/deps/npm/node_modules/spdx-license-ids/deprecated.json
@@ -0,0 +1,23 @@
+[
+ "AGPL-3.0",
+ "eCos-2.0",
+ "GFDL-1.1",
+ "GFDL-1.2",
+ "GFDL-1.3",
+ "GPL-1.0",
+ "GPL-2.0-with-autoconf-exception",
+ "GPL-2.0-with-bison-exception",
+ "GPL-2.0-with-classpath-exception",
+ "GPL-2.0-with-font-exception",
+ "GPL-2.0-with-GCC-exception",
+ "GPL-2.0",
+ "GPL-3.0-with-autoconf-exception",
+ "GPL-3.0-with-GCC-exception",
+ "GPL-3.0",
+ "LGPL-2.0",
+ "LGPL-2.1",
+ "LGPL-3.0",
+ "Nunit",
+ "StandardML-NJ",
+ "wxWindows"
+]
diff --git a/deps/npm/node_modules/spdx-license-ids/index.json b/deps/npm/node_modules/spdx-license-ids/index.json
new file mode 100644
index 0000000000..d383fccb3a
--- /dev/null
+++ b/deps/npm/node_modules/spdx-license-ids/index.json
@@ -0,0 +1,344 @@
+[
+ "0BSD",
+ "AAL",
+ "Abstyles",
+ "Adobe-2006",
+ "Adobe-Glyph",
+ "ADSL",
+ "AFL-1.1",
+ "AFL-1.2",
+ "AFL-2.0",
+ "AFL-2.1",
+ "AFL-3.0",
+ "Afmparse",
+ "AGPL-1.0",
+ "AGPL-3.0-only",
+ "AGPL-3.0-or-later",
+ "Aladdin",
+ "AMDPLPA",
+ "AML",
+ "AMPAS",
+ "ANTLR-PD",
+ "Apache-1.0",
+ "Apache-1.1",
+ "Apache-2.0",
+ "APAFML",
+ "APL-1.0",
+ "APSL-1.0",
+ "APSL-1.1",
+ "APSL-1.2",
+ "APSL-2.0",
+ "Artistic-1.0-cl8",
+ "Artistic-1.0-Perl",
+ "Artistic-1.0",
+ "Artistic-2.0",
+ "Bahyph",
+ "Barr",
+ "Beerware",
+ "BitTorrent-1.0",
+ "BitTorrent-1.1",
+ "Borceux",
+ "BSD-1-Clause",
+ "BSD-2-Clause-FreeBSD",
+ "BSD-2-Clause-NetBSD",
+ "BSD-2-Clause-Patent",
+ "BSD-2-Clause",
+ "BSD-3-Clause-Attribution",
+ "BSD-3-Clause-Clear",
+ "BSD-3-Clause-LBNL",
+ "BSD-3-Clause-No-Nuclear-License-2014",
+ "BSD-3-Clause-No-Nuclear-License",
+ "BSD-3-Clause-No-Nuclear-Warranty",
+ "BSD-3-Clause",
+ "BSD-4-Clause-UC",
+ "BSD-4-Clause",
+ "BSD-Protection",
+ "BSD-Source-Code",
+ "BSL-1.0",
+ "bzip2-1.0.5",
+ "bzip2-1.0.6",
+ "Caldera",
+ "CATOSL-1.1",
+ "CC-BY-1.0",
+ "CC-BY-2.0",
+ "CC-BY-2.5",
+ "CC-BY-3.0",
+ "CC-BY-4.0",
+ "CC-BY-NC-1.0",
+ "CC-BY-NC-2.0",
+ "CC-BY-NC-2.5",
+ "CC-BY-NC-3.0",
+ "CC-BY-NC-4.0",
+ "CC-BY-NC-ND-1.0",
+ "CC-BY-NC-ND-2.0",
+ "CC-BY-NC-ND-2.5",
+ "CC-BY-NC-ND-3.0",
+ "CC-BY-NC-ND-4.0",
+ "CC-BY-NC-SA-1.0",
+ "CC-BY-NC-SA-2.0",
+ "CC-BY-NC-SA-2.5",
+ "CC-BY-NC-SA-3.0",
+ "CC-BY-NC-SA-4.0",
+ "CC-BY-ND-1.0",
+ "CC-BY-ND-2.0",
+ "CC-BY-ND-2.5",
+ "CC-BY-ND-3.0",
+ "CC-BY-ND-4.0",
+ "CC-BY-SA-1.0",
+ "CC-BY-SA-2.0",
+ "CC-BY-SA-2.5",
+ "CC-BY-SA-3.0",
+ "CC-BY-SA-4.0",
+ "CC0-1.0",
+ "CDDL-1.0",
+ "CDDL-1.1",
+ "CDLA-Permissive-1.0",
+ "CDLA-Sharing-1.0",
+ "CECILL-1.0",
+ "CECILL-1.1",
+ "CECILL-2.0",
+ "CECILL-2.1",
+ "CECILL-B",
+ "CECILL-C",
+ "ClArtistic",
+ "CNRI-Jython",
+ "CNRI-Python-GPL-Compatible",
+ "CNRI-Python",
+ "Condor-1.1",
+ "CPAL-1.0",
+ "CPL-1.0",
+ "CPOL-1.02",
+ "Crossword",
+ "CrystalStacker",
+ "CUA-OPL-1.0",
+ "Cube",
+ "curl",
+ "D-FSL-1.0",
+ "diffmark",
+ "DOC",
+ "Dotseqn",
+ "DSDP",
+ "dvipdfm",
+ "ECL-1.0",
+ "ECL-2.0",
+ "EFL-1.0",
+ "EFL-2.0",
+ "eGenix",
+ "Entessa",
+ "EPL-1.0",
+ "EPL-2.0",
+ "ErlPL-1.1",
+ "EUDatagrid",
+ "EUPL-1.0",
+ "EUPL-1.1",
+ "EUPL-1.2",
+ "Eurosym",
+ "Fair",
+ "Frameworx-1.0",
+ "FreeImage",
+ "FSFAP",
+ "FSFUL",
+ "FSFULLR",
+ "FTL",
+ "GFDL-1.1-only",
+ "GFDL-1.1-or-later",
+ "GFDL-1.2-only",
+ "GFDL-1.2-or-later",
+ "GFDL-1.3-only",
+ "GFDL-1.3-or-later",
+ "Giftware",
+ "GL2PS",
+ "Glide",
+ "Glulxe",
+ "gnuplot",
+ "GPL-1.0-only",
+ "GPL-1.0-or-later",
+ "GPL-2.0-only",
+ "GPL-2.0-or-later",
+ "GPL-3.0-only",
+ "GPL-3.0-or-later",
+ "gSOAP-1.3b",
+ "HaskellReport",
+ "HPND",
+ "IBM-pibs",
+ "ICU",
+ "IJG",
+ "ImageMagick",
+ "iMatix",
+ "Imlib2",
+ "Info-ZIP",
+ "Intel-ACPI",
+ "Intel",
+ "Interbase-1.0",
+ "IPA",
+ "IPL-1.0",
+ "ISC",
+ "JasPer-2.0",
+ "JSON",
+ "LAL-1.2",
+ "LAL-1.3",
+ "Latex2e",
+ "Leptonica",
+ "LGPL-2.0-only",
+ "LGPL-2.0-or-later",
+ "LGPL-2.1-only",
+ "LGPL-2.1-or-later",
+ "LGPL-3.0-only",
+ "LGPL-3.0-or-later",
+ "LGPLLR",
+ "Libpng",
+ "libtiff",
+ "LiLiQ-P-1.1",
+ "LiLiQ-R-1.1",
+ "LiLiQ-Rplus-1.1",
+ "LPL-1.0",
+ "LPL-1.02",
+ "LPPL-1.0",
+ "LPPL-1.1",
+ "LPPL-1.2",
+ "LPPL-1.3a",
+ "LPPL-1.3c",
+ "MakeIndex",
+ "MirOS",
+ "MIT-advertising",
+ "MIT-CMU",
+ "MIT-enna",
+ "MIT-feh",
+ "MIT",
+ "MITNFA",
+ "Motosoto",
+ "mpich2",
+ "MPL-1.0",
+ "MPL-1.1",
+ "MPL-2.0-no-copyleft-exception",
+ "MPL-2.0",
+ "MS-PL",
+ "MS-RL",
+ "MTLL",
+ "Multics",
+ "Mup",
+ "NASA-1.3",
+ "Naumen",
+ "NBPL-1.0",
+ "NCSA",
+ "Net-SNMP",
+ "NetCDF",
+ "Newsletr",
+ "NGPL",
+ "NLOD-1.0",
+ "NLPL",
+ "Nokia",
+ "NOSL",
+ "Noweb",
+ "NPL-1.0",
+ "NPL-1.1",
+ "NPOSL-3.0",
+ "NRL",
+ "NTP",
+ "OCCT-PL",
+ "OCLC-2.0",
+ "ODbL-1.0",
+ "OFL-1.0",
+ "OFL-1.1",
+ "OGTSL",
+ "OLDAP-1.1",
+ "OLDAP-1.2",
+ "OLDAP-1.3",
+ "OLDAP-1.4",
+ "OLDAP-2.0.1",
+ "OLDAP-2.0",
+ "OLDAP-2.1",
+ "OLDAP-2.2.1",
+ "OLDAP-2.2.2",
+ "OLDAP-2.2",
+ "OLDAP-2.3",
+ "OLDAP-2.4",
+ "OLDAP-2.5",
+ "OLDAP-2.6",
+ "OLDAP-2.7",
+ "OLDAP-2.8",
+ "OML",
+ "OpenSSL",
+ "OPL-1.0",
+ "OSET-PL-2.1",
+ "OSL-1.0",
+ "OSL-1.1",
+ "OSL-2.0",
+ "OSL-2.1",
+ "OSL-3.0",
+ "PDDL-1.0",
+ "PHP-3.0",
+ "PHP-3.01",
+ "Plexus",
+ "PostgreSQL",
+ "psfrag",
+ "psutils",
+ "Python-2.0",
+ "Qhull",
+ "QPL-1.0",
+ "Rdisc",
+ "RHeCos-1.1",
+ "RPL-1.1",
+ "RPL-1.5",
+ "RPSL-1.0",
+ "RSA-MD",
+ "RSCPL",
+ "Ruby",
+ "SAX-PD",
+ "Saxpath",
+ "SCEA",
+ "Sendmail",
+ "SGI-B-1.0",
+ "SGI-B-1.1",
+ "SGI-B-2.0",
+ "SimPL-2.0",
+ "SISSL-1.2",
+ "SISSL",
+ "Sleepycat",
+ "SMLNJ",
+ "SMPPL",
+ "SNIA",
+ "Spencer-86",
+ "Spencer-94",
+ "Spencer-99",
+ "SPL-1.0",
+ "SugarCRM-1.1.3",
+ "SWL",
+ "TCL",
+ "TCP-wrappers",
+ "TMate",
+ "TORQUE-1.1",
+ "TOSL",
+ "Unicode-DFS-2015",
+ "Unicode-DFS-2016",
+ "Unicode-TOU",
+ "Unlicense",
+ "UPL-1.0",
+ "Vim",
+ "VOSTROM",
+ "VSL-1.0",
+ "W3C-19980720",
+ "W3C-20150513",
+ "W3C",
+ "Watcom-1.0",
+ "Wsuipa",
+ "WTFPL",
+ "X11",
+ "Xerox",
+ "XFree86-1.1",
+ "xinetd",
+ "Xnet",
+ "xpp",
+ "XSkat",
+ "YPL-1.0",
+ "YPL-1.1",
+ "Zed",
+ "Zend-2.0",
+ "Zimbra-1.3",
+ "Zimbra-1.4",
+ "zlib-acknowledgement",
+ "Zlib",
+ "ZPL-1.1",
+ "ZPL-2.0",
+ "ZPL-2.1"
+]
diff --git a/deps/npm/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/spdx-license-ids/package.json
new file mode 100644
index 0000000000..a8b60d5886
--- /dev/null
+++ b/deps/npm/node_modules/spdx-license-ids/package.json
@@ -0,0 +1,78 @@
+{
+ "_from": "spdx-license-ids@^3.0.0",
+ "_id": "spdx-license-ids@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==",
+ "_location": "/spdx-license-ids",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "spdx-license-ids@^3.0.0",
+ "name": "spdx-license-ids",
+ "escapedName": "spdx-license-ids",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/spdx-correct",
+ "/spdx-expression-parse"
+ ],
+ "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
+ "_shasum": "7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87",
+ "_spec": "spdx-license-ids@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/spdx-correct",
+ "author": {
+ "name": "Shinnosuke Watanabe",
+ "url": "https://github.com/shinnn"
+ },
+ "bugs": {
+ "url": "https://github.com/shinnn/spdx-license-ids/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A list of SPDX license identifiers",
+ "devDependencies": {
+ "@shinnn/eslint-config-node": "^5.0.0",
+ "chalk": "^2.3.0",
+ "eslint": "^4.16.0",
+ "get-spdx-license-ids": "^2.1.0",
+ "log-symbols": "^2.2.0",
+ "loud-rejection": "^1.6.0",
+ "rmfr": "^2.0.0-3",
+ "tape": "^4.8.0",
+ "write-file-atomically": "^1.0.0"
+ },
+ "eslintConfig": {
+ "extends": "@shinnn/node"
+ },
+ "files": [
+ "deprecated.json",
+ "index.json"
+ ],
+ "homepage": "https://github.com/shinnn/spdx-license-ids#readme",
+ "keywords": [
+ "spdx",
+ "license",
+ "licenses",
+ "id",
+ "identifier",
+ "identifiers",
+ "json",
+ "array",
+ "oss"
+ ],
+ "license": "CC0-1.0",
+ "name": "spdx-license-ids",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/shinnn/spdx-license-ids.git"
+ },
+ "scripts": {
+ "build": "node build.js",
+ "pretest": "eslint --fix --format=codeframe .",
+ "test": "node test.js"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.npmignore b/deps/npm/node_modules/sshpk/.npmignore
index 8000b595bb..8000b595bb 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.npmignore
+++ b/deps/npm/node_modules/sshpk/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.travis.yml b/deps/npm/node_modules/sshpk/.travis.yml
index c3394c258f..c3394c258f 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/.travis.yml
+++ b/deps/npm/node_modules/sshpk/.travis.yml
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/LICENSE b/deps/npm/node_modules/sshpk/LICENSE
index f6d947d2f6..f6d947d2f6 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/getpass/LICENSE
+++ b/deps/npm/node_modules/sshpk/LICENSE
diff --git a/deps/npm/node_modules/sshpk/README.md b/deps/npm/node_modules/sshpk/README.md
new file mode 100644
index 0000000000..1db0803576
--- /dev/null
+++ b/deps/npm/node_modules/sshpk/README.md
@@ -0,0 +1,698 @@
+sshpk
+=========
+
+Parse, convert, fingerprint and use SSH keys (both public and private) in pure
+node -- no `ssh-keygen` or other external dependencies.
+
+Supports RSA, DSA, ECDSA (nistp-\*) and ED25519 key types, in PEM (PKCS#1,
+PKCS#8) and OpenSSH formats.
+
+This library has been extracted from
+[`node-http-signature`](https://github.com/joyent/node-http-signature)
+(work by [Mark Cavage](https://github.com/mcavage) and
+[Dave Eddy](https://github.com/bahamas10)) and
+[`node-ssh-fingerprint`](https://github.com/bahamas10/node-ssh-fingerprint)
+(work by Dave Eddy), with additions (including ECDSA support) by
+[Alex Wilson](https://github.com/arekinath).
+
+Install
+-------
+
+```
+npm install sshpk
+```
+
+Examples
+--------
+
+```js
+var sshpk = require('sshpk');
+
+var fs = require('fs');
+
+/* Read in an OpenSSH-format public key */
+var keyPub = fs.readFileSync('id_rsa.pub');
+var key = sshpk.parseKey(keyPub, 'ssh');
+
+/* Get metadata about the key */
+console.log('type => %s', key.type);
+console.log('size => %d bits', key.size);
+console.log('comment => %s', key.comment);
+
+/* Compute key fingerprints, in new OpenSSH (>6.7) format, and old MD5 */
+console.log('fingerprint => %s', key.fingerprint().toString());
+console.log('old-style fingerprint => %s', key.fingerprint('md5').toString());
+```
+
+Example output:
+
+```
+type => rsa
+size => 2048 bits
+comment => foo@foo.com
+fingerprint => SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w
+old-style fingerprint => a0:c8:ad:6c:32:9a:32:fa:59:cc:a9:8c:0a:0d:6e:bd
+```
+
+More examples: converting between formats:
+
+```js
+/* Read in a PEM public key */
+var keyPem = fs.readFileSync('id_rsa.pem');
+var key = sshpk.parseKey(keyPem, 'pem');
+
+/* Convert to PEM PKCS#8 public key format */
+var pemBuf = key.toBuffer('pkcs8');
+
+/* Convert to SSH public key format (and return as a string) */
+var sshKey = key.toString('ssh');
+```
+
+Signing and verifying:
+
+```js
+/* Read in an OpenSSH/PEM *private* key */
+var keyPriv = fs.readFileSync('id_ecdsa');
+var key = sshpk.parsePrivateKey(keyPriv, 'pem');
+
+var data = 'some data';
+
+/* Sign some data with the key */
+var s = key.createSign('sha1');
+s.update(data);
+var signature = s.sign();
+
+/* Now load the public key (could also use just key.toPublic()) */
+var keyPub = fs.readFileSync('id_ecdsa.pub');
+key = sshpk.parseKey(keyPub, 'ssh');
+
+/* Make a crypto.Verifier with this key */
+var v = key.createVerify('sha1');
+v.update(data);
+var valid = v.verify(signature);
+/* => true! */
+```
+
+Matching fingerprints with keys:
+
+```js
+var fp = sshpk.parseFingerprint('SHA256:PYC9kPVC6J873CSIbfp0LwYeczP/W4ffObNCuDJ1u5w');
+
+var keys = [sshpk.parseKey(...), sshpk.parseKey(...), ...];
+
+keys.forEach(function (key) {
+ if (fp.matches(key))
+ console.log('found it!');
+});
+```
+
+Usage
+-----
+
+## Public keys
+
+### `parseKey(data[, format = 'auto'[, options]])`
+
+Parses a key from a given data format and returns a new `Key` object.
+
+Parameters
+
+- `data` -- Either a Buffer or String, containing the key
+- `format` -- String name of format to use, valid options are:
+ - `auto`: choose automatically from all below
+ - `pem`: supports both PKCS#1 and PKCS#8
+ - `ssh`: standard OpenSSH format,
+ - `pkcs1`, `pkcs8`: variants of `pem`
+ - `rfc4253`: raw OpenSSH wire format
+ - `openssh`: new post-OpenSSH 6.5 internal format, produced by
+ `ssh-keygen -o`
+- `options` -- Optional Object, extra options, with keys:
+ - `filename` -- Optional String, name for the key being parsed
+ (eg. the filename that was opened). Used to generate
+ Error messages
+ - `passphrase` -- Optional String, encryption passphrase used to decrypt an
+ encrypted PEM file
+
+### `Key.isKey(obj)`
+
+Returns `true` if the given object is a valid `Key` object created by a version
+of `sshpk` compatible with this one.
+
+Parameters
+
+- `obj` -- Object to identify
+
+### `Key#type`
+
+String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`.
+
+### `Key#size`
+
+Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus;
+for ECDSA this is the bit size of the curve in use.
+
+### `Key#comment`
+
+Optional string, a key comment used by some formats (eg the `ssh` format).
+
+### `Key#curve`
+
+Only present if `this.type === 'ecdsa'`, string containing the name of the
+named curve used with this key. Possible values include `nistp256`, `nistp384`
+and `nistp521`.
+
+### `Key#toBuffer([format = 'ssh'])`
+
+Convert the key into a given data format and return the serialized key as
+a Buffer.
+
+Parameters
+
+- `format` -- String name of format to use, for valid options see `parseKey()`
+
+### `Key#toString([format = 'ssh])`
+
+Same as `this.toBuffer(format).toString()`.
+
+### `Key#fingerprint([algorithm = 'sha256'])`
+
+Creates a new `Fingerprint` object representing this Key's fingerprint.
+
+Parameters
+
+- `algorithm` -- String name of hash algorithm to use, valid options are `md5`,
+ `sha1`, `sha256`, `sha384`, `sha512`
+
+### `Key#createVerify([hashAlgorithm])`
+
+Creates a `crypto.Verifier` specialized to use this Key (and the correct public
+key algorithm to match it). The returned Verifier has the same API as a regular
+one, except that the `verify()` function takes only the target signature as an
+argument.
+
+Parameters
+
+- `hashAlgorithm` -- optional String name of hash algorithm to use, any
+ supported by OpenSSL are valid, usually including
+ `sha1`, `sha256`.
+
+`v.verify(signature[, format])` Parameters
+
+- `signature` -- either a Signature object, or a Buffer or String
+- `format` -- optional String, name of format to interpret given String with.
+ Not valid if `signature` is a Signature or Buffer.
+
+### `Key#createDiffieHellman()`
+### `Key#createDH()`
+
+Creates a Diffie-Hellman key exchange object initialized with this key and all
+necessary parameters. This has the same API as a `crypto.DiffieHellman`
+instance, except that functions take `Key` and `PrivateKey` objects as
+arguments, and return them where indicated for.
+
+This is only valid for keys belonging to a cryptosystem that supports DHE
+or a close analogue (i.e. `dsa`, `ecdsa` and `curve25519` keys). An attempt
+to call this function on other keys will yield an `Error`.
+
+## Private keys
+
+### `parsePrivateKey(data[, format = 'auto'[, options]])`
+
+Parses a private key from a given data format and returns a new
+`PrivateKey` object.
+
+Parameters
+
+- `data` -- Either a Buffer or String, containing the key
+- `format` -- String name of format to use, valid options are:
+ - `auto`: choose automatically from all below
+ - `pem`: supports both PKCS#1 and PKCS#8
+ - `ssh`, `openssh`: new post-OpenSSH 6.5 internal format, produced by
+ `ssh-keygen -o`
+ - `pkcs1`, `pkcs8`: variants of `pem`
+ - `rfc4253`: raw OpenSSH wire format
+- `options` -- Optional Object, extra options, with keys:
+ - `filename` -- Optional String, name for the key being parsed
+ (eg. the filename that was opened). Used to generate
+ Error messages
+ - `passphrase` -- Optional String, encryption passphrase used to decrypt an
+ encrypted PEM file
+
+### `generatePrivateKey(type[, options])`
+
+Generates a new private key of a certain key type, from random data.
+
+Parameters
+
+- `type` -- String, type of key to generate. Currently supported are `'ecdsa'`
+ and `'ed25519'`
+- `options` -- optional Object, with keys:
+ - `curve` -- optional String, for `'ecdsa'` keys, specifies the curve to use.
+ If ECDSA is specified and this option is not given, defaults to
+ using `'nistp256'`.
+
+### `PrivateKey.isPrivateKey(obj)`
+
+Returns `true` if the given object is a valid `PrivateKey` object created by a
+version of `sshpk` compatible with this one.
+
+Parameters
+
+- `obj` -- Object to identify
+
+### `PrivateKey#type`
+
+String, the type of key. Valid options are `rsa`, `dsa`, `ecdsa`.
+
+### `PrivateKey#size`
+
+Integer, "size" of the key in bits. For RSA/DSA this is the size of the modulus;
+for ECDSA this is the bit size of the curve in use.
+
+### `PrivateKey#curve`
+
+Only present if `this.type === 'ecdsa'`, string containing the name of the
+named curve used with this key. Possible values include `nistp256`, `nistp384`
+and `nistp521`.
+
+### `PrivateKey#toBuffer([format = 'pkcs1'])`
+
+Convert the key into a given data format and return the serialized key as
+a Buffer.
+
+Parameters
+
+- `format` -- String name of format to use, valid options are listed under
+ `parsePrivateKey`. Note that ED25519 keys default to `openssh`
+ format instead (as they have no `pkcs1` representation).
+
+### `PrivateKey#toString([format = 'pkcs1'])`
+
+Same as `this.toBuffer(format).toString()`.
+
+### `PrivateKey#toPublic()`
+
+Extract just the public part of this private key, and return it as a `Key`
+object.
+
+### `PrivateKey#fingerprint([algorithm = 'sha256'])`
+
+Same as `this.toPublic().fingerprint()`.
+
+### `PrivateKey#createVerify([hashAlgorithm])`
+
+Same as `this.toPublic().createVerify()`.
+
+### `PrivateKey#createSign([hashAlgorithm])`
+
+Creates a `crypto.Sign` specialized to use this PrivateKey (and the correct
+key algorithm to match it). The returned Signer has the same API as a regular
+one, except that the `sign()` function takes no arguments, and returns a
+`Signature` object.
+
+Parameters
+
+- `hashAlgorithm` -- optional String name of hash algorithm to use, any
+ supported by OpenSSL are valid, usually including
+ `sha1`, `sha256`.
+
+`v.sign()` Parameters
+
+- none
+
+### `PrivateKey#derive(newType)`
+
+Derives a related key of type `newType` from this key. Currently this is
+only supported to change between `ed25519` and `curve25519` keys which are
+stored with the same private key (but usually distinct public keys in order
+to avoid degenerate keys that lead to a weak Diffie-Hellman exchange).
+
+Parameters
+
+- `newType` -- String, type of key to derive, either `ed25519` or `curve25519`
+
+## Fingerprints
+
+### `parseFingerprint(fingerprint[, algorithms])`
+
+Pre-parses a fingerprint, creating a `Fingerprint` object that can be used to
+quickly locate a key by using the `Fingerprint#matches` function.
+
+Parameters
+
+- `fingerprint` -- String, the fingerprint value, in any supported format
+- `algorithms` -- Optional list of strings, names of hash algorithms to limit
+ support to. If `fingerprint` uses a hash algorithm not on
+ this list, throws `InvalidAlgorithmError`.
+
+### `Fingerprint.isFingerprint(obj)`
+
+Returns `true` if the given object is a valid `Fingerprint` object created by a
+version of `sshpk` compatible with this one.
+
+Parameters
+
+- `obj` -- Object to identify
+
+### `Fingerprint#toString([format])`
+
+Returns a fingerprint as a string, in the given format.
+
+Parameters
+
+- `format` -- Optional String, format to use, valid options are `hex` and
+ `base64`. If this `Fingerprint` uses the `md5` algorithm, the
+ default format is `hex`. Otherwise, the default is `base64`.
+
+### `Fingerprint#matches(key)`
+
+Verifies whether or not this `Fingerprint` matches a given `Key`. This function
+uses double-hashing to avoid leaking timing information. Returns a boolean.
+
+Parameters
+
+- `key` -- a `Key` object, the key to match this fingerprint against
+
+## Signatures
+
+### `parseSignature(signature, algorithm, format)`
+
+Parses a signature in a given format, creating a `Signature` object. Useful
+for converting between the SSH and ASN.1 (PKCS/OpenSSL) signature formats, and
+also returned as output from `PrivateKey#createSign().sign()`.
+
+A Signature object can also be passed to a verifier produced by
+`Key#createVerify()` and it will automatically be converted internally into the
+correct format for verification.
+
+Parameters
+
+- `signature` -- a Buffer (binary) or String (base64), data of the actual
+ signature in the given format
+- `algorithm` -- a String, name of the algorithm to be used, possible values
+ are `rsa`, `dsa`, `ecdsa`
+- `format` -- a String, either `asn1` or `ssh`
+
+### `Signature.isSignature(obj)`
+
+Returns `true` if the given object is a valid `Signature` object created by a
+version of `sshpk` compatible with this one.
+
+Parameters
+
+- `obj` -- Object to identify
+
+### `Signature#toBuffer([format = 'asn1'])`
+
+Converts a Signature to the given format and returns it as a Buffer.
+
+Parameters
+
+- `format` -- a String, either `asn1` or `ssh`
+
+### `Signature#toString([format = 'asn1'])`
+
+Same as `this.toBuffer(format).toString('base64')`.
+
+## Certificates
+
+`sshpk` includes basic support for parsing certificates in X.509 (PEM) format
+and the OpenSSH certificate format. This feature is intended to be used mainly
+to access basic metadata about certificates, extract public keys from them, and
+also to generate simple self-signed certificates from an existing key.
+
+Notably, there is no implementation of CA chain-of-trust verification, and only
+very minimal support for key usage restrictions. Please do the security world
+a favour, and DO NOT use this code for certificate verification in the
+traditional X.509 CA chain style.
+
+### `parseCertificate(data, format)`
+
+Parameters
+
+ - `data` -- a Buffer or String
+ - `format` -- a String, format to use, one of `'openssh'`, `'pem'` (X.509 in a
+ PEM wrapper), or `'x509'` (raw DER encoded)
+
+### `createSelfSignedCertificate(subject, privateKey[, options])`
+
+Parameters
+
+ - `subject` -- an Identity, the subject of the certificate
+ - `privateKey` -- a PrivateKey, the key of the subject: will be used both to be
+ placed in the certificate and also to sign it (since this is
+ a self-signed certificate)
+ - `options` -- optional Object, with keys:
+ - `lifetime` -- optional Number, lifetime of the certificate from now in
+ seconds
+ - `validFrom`, `validUntil` -- optional Dates, beginning and end of
+ certificate validity period. If given
+ `lifetime` will be ignored
+ - `serial` -- optional Buffer, the serial number of the certificate
+ - `purposes` -- optional Array of String, X.509 key usage restrictions
+
+### `createCertificate(subject, key, issuer, issuerKey[, options])`
+
+Parameters
+
+ - `subject` -- an Identity, the subject of the certificate
+ - `key` -- a Key, the public key of the subject
+ - `issuer` -- an Identity, the issuer of the certificate who will sign it
+ - `issuerKey` -- a PrivateKey, the issuer's private key for signing
+ - `options` -- optional Object, with keys:
+ - `lifetime` -- optional Number, lifetime of the certificate from now in
+ seconds
+ - `validFrom`, `validUntil` -- optional Dates, beginning and end of
+ certificate validity period. If given
+ `lifetime` will be ignored
+ - `serial` -- optional Buffer, the serial number of the certificate
+ - `purposes` -- optional Array of String, X.509 key usage restrictions
+
+### `Certificate#subjects`
+
+Array of `Identity` instances describing the subject of this certificate.
+
+### `Certificate#issuer`
+
+The `Identity` of the Certificate's issuer (signer).
+
+### `Certificate#subjectKey`
+
+The public key of the subject of the certificate, as a `Key` instance.
+
+### `Certificate#issuerKey`
+
+The public key of the signing issuer of this certificate, as a `Key` instance.
+May be `undefined` if the issuer's key is unknown (e.g. on an X509 certificate).
+
+### `Certificate#serial`
+
+The serial number of the certificate. As this is normally a 64-bit or wider
+integer, it is returned as a Buffer.
+
+### `Certificate#purposes`
+
+Array of Strings indicating the X.509 key usage purposes that this certificate
+is valid for. The possible strings at the moment are:
+
+ * `'signature'` -- key can be used for digital signatures
+ * `'identity'` -- key can be used to attest about the identity of the signer
+ (X.509 calls this `nonRepudiation`)
+ * `'codeSigning'` -- key can be used to sign executable code
+ * `'keyEncryption'` -- key can be used to encrypt other keys
+ * `'encryption'` -- key can be used to encrypt data (only applies for RSA)
+ * `'keyAgreement'` -- key can be used for key exchange protocols such as
+ Diffie-Hellman
+ * `'ca'` -- key can be used to sign other certificates (is a Certificate
+ Authority)
+ * `'crl'` -- key can be used to sign Certificate Revocation Lists (CRLs)
+
+### `Certificate#isExpired([when])`
+
+Tests whether the Certificate is currently expired (i.e. the `validFrom` and
+`validUntil` dates specify a range of time that does not include the current
+time).
+
+Parameters
+
+ - `when` -- optional Date, if specified, tests whether the Certificate was or
+ will be expired at the specified time instead of now
+
+Returns a Boolean.
+
+### `Certificate#isSignedByKey(key)`
+
+Tests whether the Certificate was validly signed by the given (public) Key.
+
+Parameters
+
+ - `key` -- a Key instance
+
+Returns a Boolean.
+
+### `Certificate#isSignedBy(certificate)`
+
+Tests whether this Certificate was validly signed by the subject of the given
+certificate. Also tests that the issuer Identity of this Certificate and the
+subject Identity of the other Certificate are equivalent.
+
+Parameters
+
+ - `certificate` -- another Certificate instance
+
+Returns a Boolean.
+
+### `Certificate#fingerprint([hashAlgo])`
+
+Returns the X509-style fingerprint of the entire certificate (as a Fingerprint
+instance). This matches what a web-browser or similar would display as the
+certificate fingerprint and should not be confused with the fingerprint of the
+subject's public key.
+
+Parameters
+
+ - `hashAlgo` -- an optional String, any hash function name
+
+### `Certificate#toBuffer([format])`
+
+Serializes the Certificate to a Buffer and returns it.
+
+Parameters
+
+ - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or
+ `'x509'`. Defaults to `'x509'`.
+
+Returns a Buffer.
+
+### `Certificate#toString([format])`
+
+ - `format` -- an optional String, output format, one of `'openssh'`, `'pem'` or
+ `'x509'`. Defaults to `'pem'`.
+
+Returns a String.
+
+## Certificate identities
+
+### `identityForHost(hostname)`
+
+Constructs a host-type Identity for a given hostname.
+
+Parameters
+
+ - `hostname` -- the fully qualified DNS name of the host
+
+Returns an Identity instance.
+
+### `identityForUser(uid)`
+
+Constructs a user-type Identity for a given UID.
+
+Parameters
+
+ - `uid` -- a String, user identifier (login name)
+
+Returns an Identity instance.
+
+### `identityForEmail(email)`
+
+Constructs an email-type Identity for a given email address.
+
+Parameters
+
+ - `email` -- a String, email address
+
+Returns an Identity instance.
+
+### `identityFromDN(dn)`
+
+Parses an LDAP-style DN string (e.g. `'CN=foo, C=US'`) and turns it into an
+Identity instance.
+
+Parameters
+
+ - `dn` -- a String
+
+Returns an Identity instance.
+
+### `Identity#toString()`
+
+Returns the identity as an LDAP-style DN string.
+e.g. `'CN=foo, O=bar corp, C=us'`
+
+### `Identity#type`
+
+The type of identity. One of `'host'`, `'user'`, `'email'` or `'unknown'`
+
+### `Identity#hostname`
+### `Identity#uid`
+### `Identity#email`
+
+Set when `type` is `'host'`, `'user'`, or `'email'`, respectively. Strings.
+
+### `Identity#cn`
+
+The value of the first `CN=` in the DN, if any.
+
+Errors
+------
+
+### `InvalidAlgorithmError`
+
+The specified algorithm is not valid, either because it is not supported, or
+because it was not included on a list of allowed algorithms.
+
+Thrown by `Fingerprint.parse`, `Key#fingerprint`.
+
+Properties
+
+- `algorithm` -- the algorithm that could not be validated
+
+### `FingerprintFormatError`
+
+The fingerprint string given could not be parsed as a supported fingerprint
+format, or the specified fingerprint format is invalid.
+
+Thrown by `Fingerprint.parse`, `Fingerprint#toString`.
+
+Properties
+
+- `fingerprint` -- if caused by a fingerprint, the string value given
+- `format` -- if caused by an invalid format specification, the string value given
+
+### `KeyParseError`
+
+The key data given could not be parsed as a valid key.
+
+Properties
+
+- `keyName` -- `filename` that was given to `parseKey`
+- `format` -- the `format` that was trying to parse the key (see `parseKey`)
+- `innerErr` -- the inner Error thrown by the format parser
+
+### `KeyEncryptedError`
+
+The key is encrypted with a symmetric key (ie, it is password protected). The
+parsing operation would succeed if it was given the `passphrase` option.
+
+Properties
+
+- `keyName` -- `filename` that was given to `parseKey`
+- `format` -- the `format` that was trying to parse the key (currently can only
+ be `"pem"`)
+
+### `CertificateParseError`
+
+The certificate data given could not be parsed as a valid certificate.
+
+Properties
+
+- `certName` -- `filename` that was given to `parseCertificate`
+- `format` -- the `format` that was trying to parse the key
+ (see `parseCertificate`)
+- `innerErr` -- the inner Error thrown by the format parser
+
+Friends of sshpk
+----------------
+
+ * [`sshpk-agent`](https://github.com/arekinath/node-sshpk-agent) is a library
+ for speaking the `ssh-agent` protocol from node.js, which uses `sshpk`
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv b/deps/npm/node_modules/sshpk/bin/sshpk-conv
index 444045a5e8..856a03ed01 100755
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-conv
+++ b/deps/npm/node_modules/sshpk/bin/sshpk-conv
@@ -1,7 +1,7 @@
#!/usr/bin/env node
// -*- mode: js -*-
// vim: set filetype=javascript :
-// Copyright 2015 Joyent, Inc. All rights reserved.
+// Copyright 2015 Joyent, Inc. All rights reserved.
var dashdash = require('dashdash');
var sshpk = require('../lib/index');
@@ -76,11 +76,12 @@ if (require.main === module) {
console.error('sshpk-conv: converts between SSH key formats\n');
console.error(help);
console.error('\navailable formats:');
- console.error(' - pem, pkcs1 eg id_rsa');
- console.error(' - ssh eg id_rsa.pub');
- console.error(' - pkcs8 format you want for openssl');
- console.error(' - openssh like output of ssh-keygen -o');
- console.error(' - rfc4253 raw OpenSSH wire format');
+ console.error(' - pem, pkcs1 eg id_rsa');
+ console.error(' - ssh eg id_rsa.pub');
+ console.error(' - pkcs8 format you want for openssl');
+ console.error(' - openssh like output of ssh-keygen -o');
+ console.error(' - rfc4253 raw OpenSSH wire format');
+ console.error(' - dnssec dnssec-keygen format');
process.exit(1);
}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-sign b/deps/npm/node_modules/sshpk/bin/sshpk-sign
index 673fc98642..673fc98642 100755
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-sign
+++ b/deps/npm/node_modules/sshpk/bin/sshpk-sign
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-verify b/deps/npm/node_modules/sshpk/bin/sshpk-verify
index a1669f409d..a1669f409d 100755
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/bin/sshpk-verify
+++ b/deps/npm/node_modules/sshpk/bin/sshpk-verify
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js b/deps/npm/node_modules/sshpk/lib/algs.js
index f30af560e3..da5d0c780a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/algs.js
+++ b/deps/npm/node_modules/sshpk/lib/algs.js
@@ -14,9 +14,8 @@ var algInfo = {
sizePart: 'Q'
},
'ed25519': {
- parts: ['R'],
- normalize: false,
- sizePart: 'R'
+ parts: ['A'],
+ sizePart: 'A'
}
};
algInfo['curve25519'] = algInfo['ed25519'];
@@ -32,8 +31,7 @@ var algPrivInfo = {
parts: ['curve', 'Q', 'd']
},
'ed25519': {
- parts: ['R', 'r'],
- normalize: false
+ parts: ['A', 'k']
}
};
algPrivInfo['curve25519'] = algPrivInfo['ed25519'];
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/certificate.js b/deps/npm/node_modules/sshpk/lib/certificate.js
index f6b25c9140..f6b25c9140 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/certificate.js
+++ b/deps/npm/node_modules/sshpk/lib/certificate.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js b/deps/npm/node_modules/sshpk/lib/dhe.js
index b4d366289b..2e844e73c6 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/dhe.js
+++ b/deps/npm/node_modules/sshpk/lib/dhe.js
@@ -79,7 +79,8 @@ function DiffieHellman(key) {
nacl = require('tweetnacl');
if (this._isPriv) {
- this._priv = key.part.r.data;
+ utils.assertCompatible(key, PrivateKey, [1, 5], 'key');
+ this._priv = key.part.k.data;
}
} else {
@@ -143,7 +144,10 @@ DiffieHellman.prototype.setKey = function (pk) {
}
} else if (pk.type === 'curve25519') {
- this._priv = pk.part.r.data;
+ var k = pk.part.k;
+ if (!pk.part.k)
+ k = pk.part.r;
+ this._priv = k.data;
if (this._priv[0] === 0x00)
this._priv = this._priv.slice(1);
this._priv = this._priv.slice(0, 32);
@@ -175,13 +179,12 @@ DiffieHellman.prototype.computeSecret = function (otherpk) {
}
} else if (this._algo === 'curve25519') {
- pub = otherpk.part.R.data;
+ pub = otherpk.part.A.data;
while (pub[0] === 0x00 && pub.length > 32)
pub = pub.slice(1);
+ var priv = this._priv;
assert.strictEqual(pub.length, 32);
- assert.strictEqual(this._priv.length, 64);
-
- var priv = this._priv.slice(0, 32);
+ assert.strictEqual(priv.length, 32);
var secret = nacl.box.before(new Uint8Array(pub),
new Uint8Array(priv));
@@ -261,8 +264,8 @@ DiffieHellman.prototype.generateKey = function () {
assert.strictEqual(priv.length, 64);
assert.strictEqual(pub.length, 32);
- parts.push({name: 'R', data: pub});
- parts.push({name: 'r', data: priv});
+ parts.push({name: 'A', data: pub});
+ parts.push({name: 'k', data: priv});
this._key = new PrivateKey({
type: 'curve25519',
parts: parts
@@ -327,8 +330,8 @@ function generateED25519() {
assert.strictEqual(pub.length, 32);
var parts = [];
- parts.push({name: 'R', data: pub});
- parts.push({name: 'r', data: priv});
+ parts.push({name: 'A', data: pub});
+ parts.push({name: 'k', data: priv.slice(0, 32)});
var key = new PrivateKey({
type: 'ed25519',
parts: parts
@@ -369,7 +372,6 @@ function generateECDSA(curve) {
parts: parts
});
return (key);
-
} else {
if (ecdh === undefined)
ecdh = require('ecc-jsbn');
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js b/deps/npm/node_modules/sshpk/lib/ed-compat.js
index 5365fb1402..6d906b78bb 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ed-compat.js
+++ b/deps/npm/node_modules/sshpk/lib/ed-compat.js
@@ -56,7 +56,7 @@ Verifier.prototype.verify = function (signature, fmt) {
return (nacl.sign.detached.verify(
new Uint8Array(Buffer.concat(this.chunks)),
new Uint8Array(sig),
- new Uint8Array(this.key.part.R.data)));
+ new Uint8Array(this.key.part.A.data)));
};
function Signer(key, hashAlgo) {
@@ -88,7 +88,8 @@ Signer.prototype.update = function (chunk) {
Signer.prototype.sign = function () {
var sig = nacl.sign.detached(
new Uint8Array(Buffer.concat(this.chunks)),
- new Uint8Array(this.key.part.r.data));
+ new Uint8Array(Buffer.concat([
+ this.key.part.k.data, this.key.part.A.data])));
var sigBuf = new Buffer(sig);
var sigObj = Signature.parse(sigBuf, 'ed25519', 'raw');
sigObj.hashAlgorithm = 'sha512';
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js b/deps/npm/node_modules/sshpk/lib/errors.js
index 1cc09ec71d..1cc09ec71d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/errors.js
+++ b/deps/npm/node_modules/sshpk/lib/errors.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js b/deps/npm/node_modules/sshpk/lib/fingerprint.js
index 7ed7e51304..7ed7e51304 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/fingerprint.js
+++ b/deps/npm/node_modules/sshpk/lib/fingerprint.js
diff --git a/deps/npm/node_modules/sshpk/lib/formats/auto.js b/deps/npm/node_modules/sshpk/lib/formats/auto.js
new file mode 100644
index 0000000000..39865710aa
--- /dev/null
+++ b/deps/npm/node_modules/sshpk/lib/formats/auto.js
@@ -0,0 +1,106 @@
+// Copyright 2015 Joyent, Inc.
+
+module.exports = {
+ read: read,
+ write: write
+};
+
+var assert = require('assert-plus');
+var utils = require('../utils');
+var Key = require('../key');
+var PrivateKey = require('../private-key');
+
+var pem = require('./pem');
+var ssh = require('./ssh');
+var rfc4253 = require('./rfc4253');
+var dnssec = require('./dnssec');
+
+var DNSSEC_PRIVKEY_HEADER_PREFIX = 'Private-key-format: v1';
+
+function read(buf, options) {
+ if (typeof (buf) === 'string') {
+ if (buf.trim().match(/^[-]+[ ]*BEGIN/))
+ return (pem.read(buf, options));
+ if (buf.match(/^\s*ssh-[a-z]/))
+ return (ssh.read(buf, options));
+ if (buf.match(/^\s*ecdsa-/))
+ return (ssh.read(buf, options));
+ if (findDNSSECHeader(buf))
+ return (dnssec.read(buf, options));
+ buf = new Buffer(buf, 'binary');
+ } else {
+ assert.buffer(buf);
+ if (findPEMHeader(buf))
+ return (pem.read(buf, options));
+ if (findSSHHeader(buf))
+ return (ssh.read(buf, options));
+ if (findDNSSECHeader(buf))
+ return (dnssec.read(buf, options));
+ }
+ if (buf.readUInt32BE(0) < buf.length)
+ return (rfc4253.read(buf, options));
+ throw (new Error('Failed to auto-detect format of key'));
+}
+
+function findSSHHeader(buf) {
+ var offset = 0;
+ while (offset < buf.length &&
+ (buf[offset] === 32 || buf[offset] === 10 || buf[offset] === 9))
+ ++offset;
+ if (offset + 4 <= buf.length &&
+ buf.slice(offset, offset + 4).toString('ascii') === 'ssh-')
+ return (true);
+ if (offset + 6 <= buf.length &&
+ buf.slice(offset, offset + 6).toString('ascii') === 'ecdsa-')
+ return (true);
+ return (false);
+}
+
+function findPEMHeader(buf) {
+ var offset = 0;
+ while (offset < buf.length &&
+ (buf[offset] === 32 || buf[offset] === 10))
+ ++offset;
+ if (buf[offset] !== 45)
+ return (false);
+ while (offset < buf.length &&
+ (buf[offset] === 45))
+ ++offset;
+ while (offset < buf.length &&
+ (buf[offset] === 32))
+ ++offset;
+ if (offset + 5 > buf.length ||
+ buf.slice(offset, offset + 5).toString('ascii') !== 'BEGIN')
+ return (false);
+ return (true);
+}
+
+function findDNSSECHeader(buf) {
+ // private case first
+ if (buf.length <= DNSSEC_PRIVKEY_HEADER_PREFIX.length)
+ return (false);
+ var headerCheck = buf.slice(0, DNSSEC_PRIVKEY_HEADER_PREFIX.length);
+ if (headerCheck.toString('ascii') === DNSSEC_PRIVKEY_HEADER_PREFIX)
+ return (true);
+
+ // public-key RFC3110 ?
+ // 'domain.com. IN KEY ...' or 'domain.com. IN DNSKEY ...'
+ // skip any comment-lines
+ if (typeof (buf) !== 'string') {
+ buf = buf.toString('ascii');
+ }
+ var lines = buf.split('\n');
+ var line = 0;
+ /* JSSTYLED */
+ while (lines[line].match(/^\;/))
+ line++;
+ if (lines[line].toString('ascii').match(/\. IN KEY /))
+ return (true);
+ if (lines[line].toString('ascii').match(/\. IN DNSKEY /))
+ return (true);
+ return (false);
+}
+
+function write(key, options) {
+ throw (new Error('"auto" format cannot be used for writing'));
+}
diff --git a/deps/npm/node_modules/sshpk/lib/formats/dnssec.js b/deps/npm/node_modules/sshpk/lib/formats/dnssec.js
new file mode 100644
index 0000000000..1eb4b5b413
--- /dev/null
+++ b/deps/npm/node_modules/sshpk/lib/formats/dnssec.js
@@ -0,0 +1,286 @@
+// Copyright 2017 Joyent, Inc.
+
+module.exports = {
+ read: read,
+ write: write
+};
+
+var assert = require('assert-plus');
+var Key = require('../key');
+var PrivateKey = require('../private-key');
+var utils = require('../utils');
+var SSHBuffer = require('../ssh-buffer');
+var Dhe = require('../dhe');
+
+var supportedAlgos = {
+ 'rsa-sha1' : 5,
+ 'rsa-sha256' : 8,
+ 'rsa-sha512' : 10,
+ 'ecdsa-p256-sha256' : 13,
+ 'ecdsa-p384-sha384' : 14
+ /*
+ * ed25519 is hypothetically supported with id 15
+ * but the common tools available don't appear to be
+ * capable of generating/using ed25519 keys
+ */
+};
+
+var supportedAlgosById = {};
+Object.keys(supportedAlgos).forEach(function (k) {
+ supportedAlgosById[supportedAlgos[k]] = k.toUpperCase();
+});
+
+function read(buf, options) {
+ if (typeof (buf) !== 'string') {
+ assert.buffer(buf, 'buf');
+ buf = buf.toString('ascii');
+ }
+ var lines = buf.split('\n');
+ if (lines[0].match(/^Private-key-format\: v1/)) {
+ var algElems = lines[1].split(' ');
+ var algoNum = parseInt(algElems[1], 10);
+ var algoName = algElems[2];
+ if (!supportedAlgosById[algoNum])
+ throw (new Error('Unsupported algorithm: ' + algoName));
+ return (readDNSSECPrivateKey(algoNum, lines.slice(2)));
+ }
+
+ // skip any comment-lines
+ var line = 0;
+ /* JSSTYLED */
+ while (lines[line].match(/^\;/))
+ line++;
+ // we should now have *one single* line left with our KEY on it.
+ if ((lines[line].match(/\. IN KEY /) ||
+ lines[line].match(/\. IN DNSKEY /)) && lines[line+1].length === 0) {
+ return (readRFC3110(lines[line]));
+ }
+ throw (new Error('Cannot parse dnssec key'));
+}
+
+function readRFC3110(keyString) {
+ var elems = keyString.split(' ');
+ //unused var flags = parseInt(elems[3], 10);
+ //unused var protocol = parseInt(elems[4], 10);
+ var algorithm = parseInt(elems[5], 10);
+ if (!supportedAlgosById[algorithm])
+ throw (new Error('Unsupported algorithm: ' + algorithm));
+ var base64key = elems.slice(6, elems.length).join();
+ var keyBuffer = new Buffer(base64key, 'base64');
+ if (supportedAlgosById[algorithm].match(/^RSA-/)) {
+ // join the rest of the body into a single base64-blob
+ var publicExponentLen = keyBuffer.readUInt8(0);
+ if (publicExponentLen != 3 && publicExponentLen != 1)
+ throw (new Error('Cannot parse dnssec key: ' +
+ 'unsupported exponent length'));
+
+ var publicExponent = keyBuffer.slice(1, publicExponentLen+1);
+ publicExponent = utils.mpNormalize(publicExponent);
+ var modulus = keyBuffer.slice(1+publicExponentLen);
+ modulus = utils.mpNormalize(modulus);
+ // now, make the key
+ var rsaKey = {
+ type: 'rsa',
+ parts: []
+ };
+ rsaKey.parts.push({ name: 'e', data: publicExponent});
+ rsaKey.parts.push({ name: 'n', data: modulus});
+ return (new Key(rsaKey));
+ }
+ if (supportedAlgosById[algorithm] === 'ECDSA-P384-SHA384' ||
+ supportedAlgosById[algorithm] === 'ECDSA-P256-SHA256') {
+ var curve = 'nistp384';
+ var size = 384;
+ if (supportedAlgosById[algorithm].match(/^ECDSA-P256-SHA256/)) {
+ curve = 'nistp256';
+ size = 256;
+ }
+
+ var ecdsaKey = {
+ type: 'ecdsa',
+ curve: curve,
+ size: size,
+ parts: [
+ {name: 'curve', data: new Buffer(curve) },
+ {name: 'Q', data: utils.ecNormalize(keyBuffer) }
+ ]
+ };
+ return (new Key(ecdsaKey));
+ }
+ throw (new Error('Unsupported algorithm: ' +
+ supportedAlgosById[algorithm]));
+}
+
+function elementToBuf(e) {
+ return (new Buffer(e.split(' ')[1], 'base64'));
+}
+
+function readDNSSECRSAPrivateKey(elements) {
+ var rsaParams = {};
+ elements.forEach(function (element) {
+ if (element.split(' ')[0] === 'Modulus:')
+ rsaParams['n'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'PublicExponent:')
+ rsaParams['e'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'PrivateExponent:')
+ rsaParams['d'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'Prime1:')
+ rsaParams['p'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'Prime2:')
+ rsaParams['q'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'Exponent1:')
+ rsaParams['dmodp'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'Exponent2:')
+ rsaParams['dmodq'] = elementToBuf(element);
+ else if (element.split(' ')[0] === 'Coefficient:')
+ rsaParams['iqmp'] = elementToBuf(element);
+ });
+ // now, make the key
+ var key = {
+ type: 'rsa',
+ parts: [
+ { name: 'e', data: utils.mpNormalize(rsaParams['e'])},
+ { name: 'n', data: utils.mpNormalize(rsaParams['n'])},
+ { name: 'd', data: utils.mpNormalize(rsaParams['d'])},
+ { name: 'p', data: utils.mpNormalize(rsaParams['p'])},
+ { name: 'q', data: utils.mpNormalize(rsaParams['q'])},
+ { name: 'dmodp',
+ data: utils.mpNormalize(rsaParams['dmodp'])},
+ { name: 'dmodq',
+ data: utils.mpNormalize(rsaParams['dmodq'])},
+ { name: 'iqmp',
+ data: utils.mpNormalize(rsaParams['iqmp'])}
+ ]
+ };
+ return (new PrivateKey(key));
+}
+
+function readDNSSECPrivateKey(alg, elements) {
+ if (supportedAlgosById[alg].match(/^RSA-/)) {
+ return (readDNSSECRSAPrivateKey(elements));
+ }
+ if (supportedAlgosById[alg] === 'ECDSA-P384-SHA384' ||
+ supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
+ var d = new Buffer(elements[0].split(' ')[1], 'base64');
+ var curve = 'nistp384';
+ var size = 384;
+ if (supportedAlgosById[alg] === 'ECDSA-P256-SHA256') {
+ curve = 'nistp256';
+ size = 256;
+ }
+ // DNSSEC generates the public-key on the fly (go calculate it)
+ var publicKey = utils.publicFromPrivateECDSA(curve, d);
+ var Q = publicKey.part['Q'].data;
+ var ecdsaKey = {
+ type: 'ecdsa',
+ curve: curve,
+ size: size,
+ parts: [
+ {name: 'curve', data: new Buffer(curve) },
+ {name: 'd', data: d },
+ {name: 'Q', data: Q }
+ ]
+ };
+ return (new PrivateKey(ecdsaKey));
+ }
+ throw (new Error('Unsupported algorithm: ' + supportedAlgosById[alg]));
+}
+
+function dnssecTimestamp(date) {
+ var year = date.getFullYear() + ''; //stringify
+ var month = (date.getMonth() + 1);
+ var timestampStr = year + month + date.getUTCDate();
+ timestampStr += '' + date.getUTCHours() + date.getUTCMinutes();
+ timestampStr += date.getUTCSeconds();
+ return (timestampStr);
+}
+
+function rsaAlgFromOptions(opts) {
+ if (!opts || !opts.hashAlgo || opts.hashAlgo === 'sha1')
+ return ('5 (RSASHA1)');
+ else if (opts.hashAlgo === 'sha256')
+ return ('8 (RSASHA256)');
+ else if (opts.hashAlgo === 'sha512')
+ return ('10 (RSASHA512)');
+ else
+ throw (new Error('Unknown or unsupported hash: ' +
+ opts.hashAlgo));
+}
+
+function writeRSA(key, options) {
+ // if we're missing parts, add them.
+ if (!key.part.dmodp || !key.part.dmodq) {
+ utils.addRSAMissing(key);
+ }
+
+ var out = '';
+ out += 'Private-key-format: v1.3\n';
+ out += 'Algorithm: ' + rsaAlgFromOptions(options) + '\n';
+ var n = utils.mpDenormalize(key.part['n'].data);
+ out += 'Modulus: ' + n.toString('base64') + '\n';
+ var e = utils.mpDenormalize(key.part['e'].data);
+ out += 'PublicExponent: ' + e.toString('base64') + '\n';
+ var d = utils.mpDenormalize(key.part['d'].data);
+ out += 'PrivateExponent: ' + d.toString('base64') + '\n';
+ var p = utils.mpDenormalize(key.part['p'].data);
+ out += 'Prime1: ' + p.toString('base64') + '\n';
+ var q = utils.mpDenormalize(key.part['q'].data);
+ out += 'Prime2: ' + q.toString('base64') + '\n';
+ var dmodp = utils.mpDenormalize(key.part['dmodp'].data);
+ out += 'Exponent1: ' + dmodp.toString('base64') + '\n';
+ var dmodq = utils.mpDenormalize(key.part['dmodq'].data);
+ out += 'Exponent2: ' + dmodq.toString('base64') + '\n';
+ var iqmp = utils.mpDenormalize(key.part['iqmp'].data);
+ out += 'Coefficient: ' + iqmp.toString('base64') + '\n';
+ // Assume that we're valid as-of now
+ var timestamp = new Date();
+ out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
+ out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
+ out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';
+ return (new Buffer(out, 'ascii'));
+}
+
+function writeECDSA(key, options) {
+ var out = '';
+ out += 'Private-key-format: v1.3\n';
+
+ if (key.curve === 'nistp256') {
+ out += 'Algorithm: 13 (ECDSAP256SHA256)\n';
+ } else if (key.curve === 'nistp384') {
+ out += 'Algorithm: 14 (ECDSAP384SHA384)\n';
+ } else {
+ throw (new Error('Unsupported curve'));
+ }
+ var base64Key = key.part['d'].data.toString('base64');
+ out += 'PrivateKey: ' + base64Key + '\n';
+
+ // Assume that we're valid as-of now
+ var timestamp = new Date();
+ out += 'Created: ' + dnssecTimestamp(timestamp) + '\n';
+ out += 'Publish: ' + dnssecTimestamp(timestamp) + '\n';
+ out += 'Activate: ' + dnssecTimestamp(timestamp) + '\n';
+
+ return (new Buffer(out, 'ascii'));
+}
+
+function write(key, options) {
+ if (PrivateKey.isPrivateKey(key)) {
+ if (key.type === 'rsa') {
+ return (writeRSA(key, options));
+ } else if (key.type === 'ecdsa') {
+ return (writeECDSA(key, options));
+ } else {
+ throw (new Error('Unsupported algorithm: ' + key.type));
+ }
+ } else if (Key.isKey(key)) {
+ /*
+ * RFC3110 requires a keyname, and a keytype, which we
+ * don't really have a mechanism for specifying such
+ * additional metadata.
+ */
+ throw (new Error('Format "dnssec" only supports ' +
+ 'writing private keys'));
+ } else {
+ throw (new Error('key is not a Key or PrivateKey'));
+ }
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/openssh-cert.js b/deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js
index b68155e887..b68155e887 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/openssh-cert.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/openssh-cert.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js b/deps/npm/node_modules/sshpk/lib/formats/pem.js
index c254e4e804..9196449b8d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pem.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/pem.js
@@ -34,11 +34,11 @@ function read(buf, options, forceType) {
var lines = buf.trim().split('\n');
var m = lines[0].match(/*JSSTYLED*/
- /[-]+[ ]*BEGIN ([A-Z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
+ /[-]+[ ]*BEGIN ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
assert.ok(m, 'invalid PEM header');
var m2 = lines[lines.length - 1].match(/*JSSTYLED*/
- /[-]+[ ]*END ([A-Z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
+ /[-]+[ ]*END ([A-Z0-9][A-Za-z0-9]+ )?(PUBLIC|PRIVATE) KEY[ ]*[-]+/);
assert.ok(m2, 'invalid PEM footer');
/* Begin and end banners must match key type */
@@ -135,7 +135,12 @@ function read(buf, options, forceType) {
function write(key, options, type) {
assert.object(key);
- var alg = {'ecdsa': 'EC', 'rsa': 'RSA', 'dsa': 'DSA'}[key.type];
+ var alg = {
+ 'ecdsa': 'EC',
+ 'rsa': 'RSA',
+ 'dsa': 'DSA',
+ 'ed25519': 'EdDSA'
+ }[key.type];
var header;
var der = new asn1.BerWriter();
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js b/deps/npm/node_modules/sshpk/lib/formats/pkcs1.js
index a5676af6ef..9d7246d41d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs1.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/pkcs1.js
@@ -55,6 +55,11 @@ function readPkcs1(alg, type, der) {
else if (type === 'public')
return (readPkcs1ECDSAPublic(der));
throw (new Error('Unknown key type: ' + type));
+ case 'EDDSA':
+ case 'EdDSA':
+ if (type === 'private')
+ return (readPkcs1EdDSAPrivate(der));
+ throw (new Error(type + ' keys not supported with EdDSA'));
default:
throw (new Error('Unknown key algo: ' + alg));
}
@@ -134,6 +139,31 @@ function readPkcs1DSAPrivate(der) {
return (new PrivateKey(key));
}
+function readPkcs1EdDSAPrivate(der) {
+ var version = readMPInt(der, 'version');
+ assert.strictEqual(version.readUInt8(0), 1);
+
+ // private key
+ var k = der.readString(asn1.Ber.OctetString, true);
+
+ der.readSequence(0xa0);
+ var oid = der.readOID();
+ assert.strictEqual(oid, '1.3.101.112', 'the ed25519 curve identifier');
+
+ der.readSequence(0xa1);
+ var A = utils.readBitString(der);
+
+ var key = {
+ type: 'ed25519',
+ parts: [
+ { name: 'A', data: utils.zeroPadToLength(A, 32) },
+ { name: 'k', data: k }
+ ]
+ };
+
+ return (new PrivateKey(key));
+}
+
function readPkcs1DSAPublic(der) {
var y = readMPInt(der, 'y');
var p = readMPInt(der, 'p');
@@ -236,6 +266,12 @@ function writePkcs1(der, key) {
else
writePkcs1ECDSAPublic(der, key);
break;
+ case 'ed25519':
+ if (PrivateKey.isPrivateKey(key))
+ writePkcs1EdDSAPrivate(der, key);
+ else
+ writePkcs1EdDSAPublic(der, key);
+ break;
default:
throw (new Error('Unknown key algo: ' + key.type));
}
@@ -318,3 +354,23 @@ function writePkcs1ECDSAPrivate(der, key) {
der.writeBuffer(Q, asn1.Ber.BitString);
der.endSequence();
}
+
+function writePkcs1EdDSAPrivate(der, key) {
+ var ver = new Buffer(1);
+ ver[0] = 1;
+ der.writeBuffer(ver, asn1.Ber.Integer);
+
+ der.writeBuffer(key.part.k.data, asn1.Ber.OctetString);
+
+ der.startSequence(0xa0);
+ der.writeOID('1.3.101.112');
+ der.endSequence();
+
+ der.startSequence(0xa1);
+ utils.writeBitString(der, key.part.A.data);
+ der.endSequence();
+}
+
+function writePkcs1EdDSAPublic(der, key) {
+ throw (new Error('Public keys are not supported for EdDSA PKCS#1'));
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js b/deps/npm/node_modules/sshpk/lib/formats/pkcs8.js
index 4ccbefcbec..0838b76962 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/pkcs8.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/pkcs8.js
@@ -62,6 +62,18 @@ function readPkcs8(alg, type, der) {
return (readPkcs8ECDSAPublic(der));
else
return (readPkcs8ECDSAPrivate(der));
+ case '1.3.101.112':
+ if (type === 'public') {
+ return (readPkcs8EdDSAPublic(der));
+ } else {
+ return (readPkcs8EdDSAPrivate(der));
+ }
+ case '1.3.101.110':
+ if (type === 'public') {
+ return (readPkcs8X25519Public(der));
+ } else {
+ return (readPkcs8X25519Private(der));
+ }
default:
throw (new Error('Unknown key type OID ' + oid));
}
@@ -322,6 +334,83 @@ function readPkcs8ECDSAPublic(der) {
return (new Key(key));
}
+function readPkcs8EdDSAPublic(der) {
+ if (der.peek() === 0x00)
+ der.readByte();
+
+ var A = utils.readBitString(der);
+
+ var key = {
+ type: 'ed25519',
+ parts: [
+ { name: 'A', data: utils.zeroPadToLength(A, 32) }
+ ]
+ };
+
+ return (new Key(key));
+}
+
+function readPkcs8X25519Public(der) {
+ var A = utils.readBitString(der);
+
+ var key = {
+ type: 'curve25519',
+ parts: [
+ { name: 'A', data: utils.zeroPadToLength(A, 32) }
+ ]
+ };
+
+ return (new Key(key));
+}
+
+function readPkcs8EdDSAPrivate(der) {
+ if (der.peek() === 0x00)
+ der.readByte();
+
+ der.readSequence(asn1.Ber.OctetString);
+ var k = der.readString(asn1.Ber.OctetString, true);
+ k = utils.zeroPadToLength(k, 32);
+
+ var A;
+ if (der.peek() === asn1.Ber.BitString) {
+ A = utils.readBitString(der);
+ A = utils.zeroPadToLength(A, 32);
+ } else {
+ A = utils.calculateED25519Public(k);
+ }
+
+ var key = {
+ type: 'ed25519',
+ parts: [
+ { name: 'A', data: utils.zeroPadToLength(A, 32) },
+ { name: 'k', data: utils.zeroPadToLength(k, 32) }
+ ]
+ };
+
+ return (new PrivateKey(key));
+}
+
+function readPkcs8X25519Private(der) {
+ if (der.peek() === 0x00)
+ der.readByte();
+
+ der.readSequence(asn1.Ber.OctetString);
+ var k = der.readString(asn1.Ber.OctetString, true);
+ k = utils.zeroPadToLength(k, 32);
+
+ var A = utils.calculateX25519Public(k);
+
+ var key = {
+ type: 'curve25519',
+ parts: [
+ { name: 'A', data: utils.zeroPadToLength(A, 32) },
+ { name: 'k', data: utils.zeroPadToLength(k, 32) }
+ ]
+ };
+
+ return (new PrivateKey(key));
+}
+
function writePkcs8(der, key) {
der.startSequence();
@@ -354,6 +443,13 @@ function writePkcs8(der, key) {
else
writePkcs8ECDSAPublic(key, der);
break;
+ case 'ed25519':
+ der.writeOID('1.3.101.112');
+ if (PrivateKey.isPrivateKey(key))
+ throw (new Error('Ed25519 private keys in pkcs8 ' +
+ 'format are not supported'));
+ writePkcs8EdDSAPublic(key, der);
+ break;
default:
throw (new Error('Unsupported key type: ' + key.type));
}
@@ -503,3 +599,18 @@ function writePkcs8ECDSAPrivate(key, der) {
der.endSequence();
der.endSequence();
}
+
+function writePkcs8EdDSAPublic(key, der) {
+ der.endSequence();
+
+ utils.writeBitString(der, key.part.A.data);
+}
+
+function writePkcs8EdDSAPrivate(key, der) {
+ der.endSequence();
+
+ var k = utils.mpNormalize(key.part.k.data, true);
+ der.startSequence(asn1.Ber.OctetString);
+ der.writeBuffer(k, asn1.Ber.OctetString);
+ der.endSequence();
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js b/deps/npm/node_modules/sshpk/lib/formats/rfc4253.js
index 9d436dd921..56b7682934 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/rfc4253.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/rfc4253.js
@@ -97,12 +97,25 @@ function read(partial, type, buf, options) {
var normalized = true;
for (var i = 0; i < algInfo.parts.length; ++i) {
- parts[i].name = algInfo.parts[i];
- if (parts[i].name !== 'curve' &&
- algInfo.normalize !== false) {
- var p = parts[i];
- var nd = utils.mpNormalize(p.data);
- if (nd !== p.data) {
+ var p = parts[i];
+ p.name = algInfo.parts[i];
+ /*
+ * OpenSSH stores ed25519 "private" keys as seed + public key
+ * concat'd together (k followed by A). We want to keep them
+ * separate for other formats that don't do this.
+ */
+ if (key.type === 'ed25519' && p.name === 'k')
+ p.data = p.data.slice(0, 32);
+
+ if (p.name !== 'curve' && algInfo.normalize !== false) {
+ var nd;
+ if (key.type === 'ed25519') {
+ nd = utils.zeroPadToLength(p.data, 32);
+ } else {
+ nd = utils.mpNormalize(p.data);
+ }
+ if (nd.toString('binary') !==
+ p.data.toString('binary')) {
p.data = nd;
normalized = false;
}
@@ -137,8 +150,14 @@ function write(key, options) {
for (i = 0; i < parts.length; ++i) {
var data = key.part[parts[i]].data;
- if (algInfo.normalize !== false)
- data = utils.mpNormalize(data);
+ if (algInfo.normalize !== false) {
+ if (key.type === 'ed25519')
+ data = utils.zeroPadToLength(data, 32);
+ else
+ data = utils.mpNormalize(data);
+ }
+ if (key.type === 'ed25519' && parts[i] === 'k')
+ data = Buffer.concat([data, key.part.A.data]);
buf.writeBuffer(data);
}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js b/deps/npm/node_modules/sshpk/lib/formats/ssh-private.js
index 2fcf71990c..2fcf71990c 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh-private.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/ssh-private.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js b/deps/npm/node_modules/sshpk/lib/formats/ssh.js
index 655c9eaf3b..7f88ceb916 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/ssh.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/ssh.js
@@ -14,9 +14,9 @@ var PrivateKey = require('../private-key');
var sshpriv = require('./ssh-private');
/*JSSTYLED*/
-var SSHKEY_RE = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([\n \t]+([^\n]+))?$/;
+var SSHKEY_RE = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/]+[=]*)([ \t]+([^ \t][^\n]*[\n]*)?)?$/;
/*JSSTYLED*/
-var SSHKEY_RE2 = /^([a-z0-9-]+)[ \t]+([a-zA-Z0-9+\/ \t\n]+[=]*)(.*)$/;
+var SSHKEY_RE2 = /^([a-z0-9-]+)[ \t\n]+([a-zA-Z0-9+\/][a-zA-Z0-9+\/ \t\n=]*)([^a-zA-Z0-9+\/ \t\n=].*)?$/;
function read(buf, options) {
if (typeof (buf) !== 'string') {
@@ -71,7 +71,7 @@ function read(buf, options) {
* chars from the beginning up to this point in the the string.
* Then offset in this and try to make up for missing = chars.
*/
- var data = m[2] + m[3];
+ var data = m[2] + (m[3] ? m[3] : '');
var realOffset = Math.ceil(ret.consumed / 3) * 4;
data = data.slice(0, realOffset - 2). /*JSSTYLED*/
replace(/[^a-zA-Z0-9+\/=]/g, '') +
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509-pem.js b/deps/npm/node_modules/sshpk/lib/formats/x509-pem.js
index c59c7d5ff0..c59c7d5ff0 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509-pem.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/x509-pem.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509.js b/deps/npm/node_modules/sshpk/lib/formats/x509.js
index 23acd245fb..cad74b529b 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/formats/x509.js
+++ b/deps/npm/node_modules/sshpk/lib/formats/x509.js
@@ -70,7 +70,8 @@ var SIGN_ALGS = {
'ecdsa-sha1': '1.2.840.10045.4.1',
'ecdsa-sha256': '1.2.840.10045.4.3.2',
'ecdsa-sha384': '1.2.840.10045.4.3.3',
- 'ecdsa-sha512': '1.2.840.10045.4.3.4'
+ 'ecdsa-sha512': '1.2.840.10045.4.3.4',
+ 'ed25519-sha512': '1.3.101.112'
};
Object.keys(SIGN_ALGS).forEach(function (k) {
SIGN_ALGS[SIGN_ALGS[k]] = k;
@@ -522,6 +523,8 @@ function writeTBSCert(cert, der) {
der.startSequence();
der.writeOID(SIGN_ALGS[sig.algo]);
+ if (sig.algo.match(/^rsa-/))
+ der.writeNull();
der.endSequence();
cert.issuer.toAsn1(der);
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/identity.js b/deps/npm/node_modules/sshpk/lib/identity.js
index 5e9021f8ee..e7e7c22b75 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/identity.js
+++ b/deps/npm/node_modules/sshpk/lib/identity.js
@@ -136,14 +136,25 @@ Identity.prototype.toAsn1 = function (der, tag) {
/*
* If we fit in a PrintableString, use that. Otherwise use an
* IA5String or UTF8String.
+ *
+ * If this identity was parsed from a DN, use the ASN.1 types
+ * from the original representation (otherwise this might not
+ * be a full match for the original in some validators).
*/
- if (c.value.match(NOT_IA5)) {
+ if (c.asn1type === asn1.Ber.Utf8String ||
+ c.value.match(NOT_IA5)) {
var v = new Buffer(c.value, 'utf8');
der.writeBuffer(v, asn1.Ber.Utf8String);
- } else if (c.value.match(NOT_PRINTABLE)) {
+
+ } else if (c.asn1type === asn1.Ber.IA5String ||
+ c.value.match(NOT_PRINTABLE)) {
der.writeString(c.value, asn1.Ber.IA5String);
+
} else {
- der.writeString(c.value, asn1.Ber.PrintableString);
+ var type = asn1.Ber.PrintableString;
+ if (c.asn1type !== undefined)
+ type = c.asn1type;
+ der.writeString(c.value, type);
}
der.endSequence();
der.endSequence();
@@ -253,7 +264,7 @@ Identity.parseAsn1 = function (der, top) {
default:
throw (new Error('Unknown asn1 type ' + type));
}
- components.push({ oid: oid, value: value });
+ components.push({ oid: oid, asn1type: type, value: value });
der._offset = after;
}
der._offset = end;
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js b/deps/npm/node_modules/sshpk/lib/index.js
index cb8cd1a1b8..cb8cd1a1b8 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/index.js
+++ b/deps/npm/node_modules/sshpk/lib/index.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js b/deps/npm/node_modules/sshpk/lib/key.js
index 64e24b4db7..f8ef22dc71 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/key.js
+++ b/deps/npm/node_modules/sshpk/lib/key.js
@@ -31,6 +31,7 @@ formats['rfc4253'] = require('./formats/rfc4253');
formats['ssh'] = require('./formats/ssh');
formats['ssh-private'] = require('./formats/ssh-private');
formats['openssh'] = formats['ssh-private'];
+formats['dnssec'] = require('./formats/dnssec');
function Key(opts) {
assert.object(opts, 'options');
@@ -105,7 +106,6 @@ Key.prototype.hash = function (algo) {
if (this._hashCache[algo])
return (this._hashCache[algo]);
-
var hash = crypto.createHash(algo).
update(this.toBuffer('rfc4253')).digest();
this._hashCache[algo] = hash;
@@ -256,8 +256,9 @@ Key.isKey = function (obj, ver) {
* [1,3] -- added defaultHashAlgorithm
* [1,4] -- added ed support, createDH
* [1,5] -- first explicitly tagged version
+ * [1,6] -- changed ed25519 part names
*/
-Key.prototype._sshpkApiVersion = [1, 5];
+Key.prototype._sshpkApiVersion = [1, 6];
Key._oldVersionDetect = function (obj) {
assert.func(obj.toBuffer);
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js b/deps/npm/node_modules/sshpk/lib/private-key.js
index 36b6f8ceb8..4c98be22a4 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/private-key.js
+++ b/deps/npm/node_modules/sshpk/lib/private-key.js
@@ -37,6 +37,7 @@ formats['rfc4253'] = require('./formats/rfc4253');
formats['ssh-private'] = require('./formats/ssh-private');
formats['openssh'] = formats['ssh-private'];
formats['ssh'] = formats['ssh-private'];
+formats['dnssec'] = require('./formats/dnssec');
function PrivateKey(opts) {
assert.object(opts, 'options');
@@ -91,40 +92,36 @@ PrivateKey.prototype.derive = function (newType) {
if (nacl === undefined)
nacl = require('tweetnacl');
- priv = this.part.r.data;
+ priv = this.part.k.data;
if (priv[0] === 0x00)
priv = priv.slice(1);
- priv = priv.slice(0, 32);
pair = nacl.box.keyPair.fromSecretKey(new Uint8Array(priv));
pub = new Buffer(pair.publicKey);
- priv = Buffer.concat([priv, pub]);
return (new PrivateKey({
type: 'curve25519',
parts: [
- { name: 'R', data: utils.mpNormalize(pub) },
- { name: 'r', data: priv }
+ { name: 'A', data: utils.mpNormalize(pub) },
+ { name: 'k', data: utils.mpNormalize(priv) }
]
}));
} else if (this.type === 'curve25519' && newType === 'ed25519') {
if (nacl === undefined)
nacl = require('tweetnacl');
- priv = this.part.r.data;
+ priv = this.part.k.data;
if (priv[0] === 0x00)
priv = priv.slice(1);
- priv = priv.slice(0, 32);
pair = nacl.sign.keyPair.fromSeed(new Uint8Array(priv));
pub = new Buffer(pair.publicKey);
- priv = Buffer.concat([priv, pub]);
return (new PrivateKey({
type: 'ed25519',
parts: [
- { name: 'R', data: utils.mpNormalize(pub) },
- { name: 'r', data: priv }
+ { name: 'A', data: utils.mpNormalize(pub) },
+ { name: 'k', data: utils.mpNormalize(priv) }
]
}));
}
@@ -238,8 +235,9 @@ PrivateKey.generate = function (type, options) {
* [1,2] -- added defaultHashAlgorithm
* [1,3] -- added derive, ed, createDH
* [1,4] -- first tagged version
+ * [1,5] -- changed ed25519 part names and format
*/
-PrivateKey.prototype._sshpkApiVersion = [1, 4];
+PrivateKey.prototype._sshpkApiVersion = [1, 5];
PrivateKey._oldVersionDetect = function (obj) {
assert.func(obj.toPublic);
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js b/deps/npm/node_modules/sshpk/lib/signature.js
index 333bb5d39e..333bb5d39e 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/signature.js
+++ b/deps/npm/node_modules/sshpk/lib/signature.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js b/deps/npm/node_modules/sshpk/lib/ssh-buffer.js
index 8fc2cb8785..8fc2cb8785 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/lib/ssh-buffer.js
+++ b/deps/npm/node_modules/sshpk/lib/ssh-buffer.js
diff --git a/deps/npm/node_modules/sshpk/lib/utils.js b/deps/npm/node_modules/sshpk/lib/utils.js
new file mode 100644
index 0000000000..d2e9c0d6a1
--- /dev/null
+++ b/deps/npm/node_modules/sshpk/lib/utils.js
@@ -0,0 +1,388 @@
+// Copyright 2015 Joyent, Inc.
+
+module.exports = {
+ bufferSplit: bufferSplit,
+ addRSAMissing: addRSAMissing,
+ calculateDSAPublic: calculateDSAPublic,
+ calculateED25519Public: calculateED25519Public,
+ calculateX25519Public: calculateX25519Public,
+ mpNormalize: mpNormalize,
+ mpDenormalize: mpDenormalize,
+ ecNormalize: ecNormalize,
+ countZeros: countZeros,
+ assertCompatible: assertCompatible,
+ isCompatible: isCompatible,
+ opensslKeyDeriv: opensslKeyDeriv,
+ opensshCipherInfo: opensshCipherInfo,
+ publicFromPrivateECDSA: publicFromPrivateECDSA,
+ zeroPadToLength: zeroPadToLength,
+ writeBitString: writeBitString,
+ readBitString: readBitString
+};
+
+var assert = require('assert-plus');
+var PrivateKey = require('./private-key');
+var Key = require('./key');
+var crypto = require('crypto');
+var algs = require('./algs');
+var asn1 = require('asn1');
+
+var ec, jsbn;
+var nacl;
+
+var MAX_CLASS_DEPTH = 3;
+
+function isCompatible(obj, klass, needVer) {
+ if (obj === null || typeof (obj) !== 'object')
+ return (false);
+ if (needVer === undefined)
+ needVer = klass.prototype._sshpkApiVersion;
+ if (obj instanceof klass &&
+ klass.prototype._sshpkApiVersion[0] == needVer[0])
+ return (true);
+ var proto = Object.getPrototypeOf(obj);
+ var depth = 0;
+ while (proto.constructor.name !== klass.name) {
+ proto = Object.getPrototypeOf(proto);
+ if (!proto || ++depth > MAX_CLASS_DEPTH)
+ return (false);
+ }
+ if (proto.constructor.name !== klass.name)
+ return (false);
+ var ver = proto._sshpkApiVersion;
+ if (ver === undefined)
+ ver = klass._oldVersionDetect(obj);
+ if (ver[0] != needVer[0] || ver[1] < needVer[1])
+ return (false);
+ return (true);
+}
+
+function assertCompatible(obj, klass, needVer, name) {
+ if (name === undefined)
+ name = 'object';
+ assert.ok(obj, name + ' must not be null');
+ assert.object(obj, name + ' must be an object');
+ if (needVer === undefined)
+ needVer = klass.prototype._sshpkApiVersion;
+ if (obj instanceof klass &&
+ klass.prototype._sshpkApiVersion[0] == needVer[0])
+ return;
+ var proto = Object.getPrototypeOf(obj);
+ var depth = 0;
+ while (proto.constructor.name !== klass.name) {
+ proto = Object.getPrototypeOf(proto);
+ assert.ok(proto && ++depth <= MAX_CLASS_DEPTH,
+ name + ' must be a ' + klass.name + ' instance');
+ }
+ assert.strictEqual(proto.constructor.name, klass.name,
+ name + ' must be a ' + klass.name + ' instance');
+ var ver = proto._sshpkApiVersion;
+ if (ver === undefined)
+ ver = klass._oldVersionDetect(obj);
+ assert.ok(ver[0] == needVer[0] && ver[1] >= needVer[1],
+ name + ' must be compatible with ' + klass.name + ' klass ' +
+ 'version ' + needVer[0] + '.' + needVer[1]);
+}
+
+var CIPHER_LEN = {
+ 'des-ede3-cbc': { key: 7, iv: 8 },
+ 'aes-128-cbc': { key: 16, iv: 16 }
+};
+var PKCS5_SALT_LEN = 8;
+
+function opensslKeyDeriv(cipher, salt, passphrase, count) {
+ assert.buffer(salt, 'salt');
+ assert.buffer(passphrase, 'passphrase');
+ assert.number(count, 'iteration count');
+
+ var clen = CIPHER_LEN[cipher];
+ assert.object(clen, 'supported cipher');
+
+ salt = salt.slice(0, PKCS5_SALT_LEN);
+
+ var D, D_prev, bufs;
+ var material = new Buffer(0);
+ while (material.length < clen.key + clen.iv) {
+ bufs = [];
+ if (D_prev)
+ bufs.push(D_prev);
+ bufs.push(passphrase);
+ bufs.push(salt);
+ D = Buffer.concat(bufs);
+ for (var j = 0; j < count; ++j)
+ D = crypto.createHash('md5').update(D).digest();
+ material = Buffer.concat([material, D]);
+ D_prev = D;
+ }
+
+ return ({
+ key: material.slice(0, clen.key),
+ iv: material.slice(clen.key, clen.key + clen.iv)
+ });
+}
+
+/* Count leading zero bits on a buffer */
+function countZeros(buf) {
+ var o = 0, obit = 8;
+ while (o < buf.length) {
+ var mask = (1 << obit);
+ if ((buf[o] & mask) === mask)
+ break;
+ obit--;
+ if (obit < 0) {
+ o++;
+ obit = 8;
+ }
+ }
+ return (o*8 + (8 - obit) - 1);
+}
+
+function bufferSplit(buf, chr) {
+ assert.buffer(buf);
+ assert.string(chr);
+
+ var parts = [];
+ var lastPart = 0;
+ var matches = 0;
+ for (var i = 0; i < buf.length; ++i) {
+ if (buf[i] === chr.charCodeAt(matches))
+ ++matches;
+ else if (buf[i] === chr.charCodeAt(0))
+ matches = 1;
+ else
+ matches = 0;
+
+ if (matches >= chr.length) {
+ var newPart = i + 1;
+ parts.push(buf.slice(lastPart, newPart - matches));
+ lastPart = newPart;
+ matches = 0;
+ }
+ }
+ if (lastPart <= buf.length)
+ parts.push(buf.slice(lastPart, buf.length));
+
+ return (parts);
+}
+
+function ecNormalize(buf, addZero) {
+ assert.buffer(buf);
+ if (buf[0] === 0x00 && buf[1] === 0x04) {
+ if (addZero)
+ return (buf);
+ return (buf.slice(1));
+ } else if (buf[0] === 0x04) {
+ if (!addZero)
+ return (buf);
+ } else {
+ while (buf[0] === 0x00)
+ buf = buf.slice(1);
+ if (buf[0] === 0x02 || buf[0] === 0x03)
+ throw (new Error('Compressed elliptic curve points ' +
+ 'are not supported'));
+ if (buf[0] !== 0x04)
+ throw (new Error('Not a valid elliptic curve point'));
+ if (!addZero)
+ return (buf);
+ }
+ var b = new Buffer(buf.length + 1);
+ b[0] = 0x0;
+ buf.copy(b, 1);
+ return (b);
+}
+
+function readBitString(der, tag) {
+ if (tag === undefined)
+ tag = asn1.Ber.BitString;
+ var buf = der.readString(tag, true);
+ assert.strictEqual(buf[0], 0x00, 'bit strings with unused bits are ' +
+ 'not supported (0x' + buf[0].toString(16) + ')');
+ return (buf.slice(1));
+}
+
+function writeBitString(der, buf, tag) {
+ if (tag === undefined)
+ tag = asn1.Ber.BitString;
+ var b = new Buffer(buf.length + 1);
+ b[0] = 0x00;
+ buf.copy(b, 1);
+ der.writeBuffer(b, tag);
+}
+
+function mpNormalize(buf) {
+ assert.buffer(buf);
+ while (buf.length > 1 && buf[0] === 0x00 && (buf[1] & 0x80) === 0x00)
+ buf = buf.slice(1);
+ if ((buf[0] & 0x80) === 0x80) {
+ var b = new Buffer(buf.length + 1);
+ b[0] = 0x00;
+ buf.copy(b, 1);
+ buf = b;
+ }
+ return (buf);
+}
+
+function mpDenormalize(buf) {
+ assert.buffer(buf);
+ while (buf.length > 1 && buf[0] === 0x00)
+ buf = buf.slice(1);
+ return (buf);
+}
+
+function zeroPadToLength(buf, len) {
+ assert.buffer(buf);
+ assert.number(len);
+ while (buf.length > len) {
+ assert.equal(buf[0], 0x00);
+ buf = buf.slice(1);
+ }
+ while (buf.length < len) {
+ var b = new Buffer(buf.length + 1);
+ b[0] = 0x00;
+ buf.copy(b, 1);
+ buf = b;
+ }
+ return (buf);
+}
+
+function bigintToMpBuf(bigint) {
+ var buf = new Buffer(bigint.toByteArray());
+ buf = mpNormalize(buf);
+ return (buf);
+}
+
+function calculateDSAPublic(g, p, x) {
+ assert.buffer(g);
+ assert.buffer(p);
+ assert.buffer(x);
+ try {
+ var bigInt = require('jsbn').BigInteger;
+ } catch (e) {
+ throw (new Error('To load a PKCS#8 format DSA private key, ' +
+ 'the node jsbn library is required.'));
+ }
+ g = new bigInt(g);
+ p = new bigInt(p);
+ x = new bigInt(x);
+ var y = g.modPow(x, p);
+ var ybuf = bigintToMpBuf(y);
+ return (ybuf);
+}
+
+function calculateED25519Public(k) {
+ assert.buffer(k);
+
+ if (nacl === undefined)
+ nacl = require('tweetnacl');
+
+ var kp = nacl.sign.keyPair.fromSeed(new Uint8Array(k));
+ return (new Buffer(kp.publicKey));
+}
+
+function calculateX25519Public(k) {
+ assert.buffer(k);
+
+ if (nacl === undefined)
+ nacl = require('tweetnacl');
+
+ var kp = nacl.box.keyPair.fromSeed(new Uint8Array(k));
+ return (new Buffer(kp.publicKey));
+}
+
+function addRSAMissing(key) {
+ assert.object(key);
+ assertCompatible(key, PrivateKey, [1, 1]);
+ try {
+ var bigInt = require('jsbn').BigInteger;
+ } catch (e) {
+ throw (new Error('To write a PEM private key from ' +
+ 'this source, the node jsbn lib is required.'));
+ }
+
+ var d = new bigInt(key.part.d.data);
+ var buf;
+
+ if (!key.part.dmodp) {
+ var p = new bigInt(key.part.p.data);
+ var dmodp = d.mod(p.subtract(1));
+
+ buf = bigintToMpBuf(dmodp);
+ key.part.dmodp = {name: 'dmodp', data: buf};
+ key.parts.push(key.part.dmodp);
+ }
+ if (!key.part.dmodq) {
+ var q = new bigInt(key.part.q.data);
+ var dmodq = d.mod(q.subtract(1));
+
+ buf = bigintToMpBuf(dmodq);
+ key.part.dmodq = {name: 'dmodq', data: buf};
+ key.parts.push(key.part.dmodq);
+ }
+}
+
+function publicFromPrivateECDSA(curveName, priv) {
+ assert.string(curveName, 'curveName');
+ assert.buffer(priv);
+ if (ec === undefined)
+ ec = require('ecc-jsbn/lib/ec');
+ if (jsbn === undefined)
+ jsbn = require('jsbn').BigInteger;
+ var params = algs.curves[curveName];
+ var p = new jsbn(params.p);
+ var a = new jsbn(params.a);
+ var b = new jsbn(params.b);
+ var curve = new ec.ECCurveFp(p, a, b);
+ var G = curve.decodePointHex(params.G.toString('hex'));
+
+ var d = new jsbn(mpNormalize(priv));
+ var pub = G.multiply(d);
+ pub = new Buffer(curve.encodePointHex(pub), 'hex');
+
+ var parts = [];
+ parts.push({name: 'curve', data: new Buffer(curveName)});
+ parts.push({name: 'Q', data: pub});
+
+ var key = new Key({type: 'ecdsa', curve: curve, parts: parts});
+ return (key);
+}
+
+function opensshCipherInfo(cipher) {
+ var inf = {};
+ switch (cipher) {
+ case '3des-cbc':
+ inf.keySize = 24;
+ inf.blockSize = 8;
+ inf.opensslName = 'des-ede3-cbc';
+ break;
+ case 'blowfish-cbc':
+ inf.keySize = 16;
+ inf.blockSize = 8;
+ inf.opensslName = 'bf-cbc';
+ break;
+ case 'aes128-cbc':
+ case 'aes128-ctr':
+ case 'aes128-gcm@openssh.com':
+ inf.keySize = 16;
+ inf.blockSize = 16;
+ inf.opensslName = 'aes-128-' + cipher.slice(7, 10);
+ break;
+ case 'aes192-cbc':
+ case 'aes192-ctr':
+ case 'aes192-gcm@openssh.com':
+ inf.keySize = 24;
+ inf.blockSize = 16;
+ inf.opensslName = 'aes-192-' + cipher.slice(7, 10);
+ break;
+ case 'aes256-cbc':
+ case 'aes256-ctr':
+ case 'aes256-gcm@openssh.com':
+ inf.keySize = 32;
+ inf.blockSize = 16;
+ inf.opensslName = 'aes-256-' + cipher.slice(7, 10);
+ break;
+ default:
+ throw (new Error(
+ 'Unsupported openssl cipher "' + cipher + '"'));
+ }
+ return (inf);
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1
index 0887dce272..d03b306739 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-conv.1
+++ b/deps/npm/node_modules/sshpk/man/man1/sshpk-conv.1
@@ -13,7 +13,7 @@ Reads in a public or private key and converts it between different formats,
particularly formats used in the SSH protocol and the well\-known PEM PKCS#1/7
formats.
.PP
-In the second form, with the \fB\fC\-i\fR option given, identifies a key and prints to
+In the second form, with the \fB\fC\-i\fR option given, identifies a key and prints to
stderr information about its nature, size and fingerprint.
.SH EXAMPLES
.PP
@@ -76,7 +76,7 @@ MIIDpAIBAAKCAQEA6T/GYJndb1TRH3+NL....
.SH OPTIONS
.TP
\fB\fC\-i, \-\-identify\fR
-Instead of converting the key, output identifying information about it to
+Instead of converting the key, output identifying information about it to
stderr, including its type, size and fingerprints.
.TP
\fB\fC\-p, \-\-private\fR
@@ -125,7 +125,7 @@ The internal binary format of keys when sent over the wire in the SSH
protocol. This is also the format that the \fB\fCssh\-agent\fR uses in its protocol.
.SH SEE ALSO
.PP
-.BR ssh-keygen (1),
+.BR ssh-keygen (1),
.BR openssl (1)
.SH BUGS
.PP
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1
index 749916ba88..749916ba88 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-sign.1
+++ b/deps/npm/node_modules/sshpk/man/man1/sshpk-sign.1
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1 b/deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1
index f79169d275..f79169d275 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/man/man1/sshpk-verify.1
+++ b/deps/npm/node_modules/sshpk/man/man1/sshpk-verify.1
diff --git a/deps/npm/node_modules/sshpk/package.json b/deps/npm/node_modules/sshpk/package.json
new file mode 100644
index 0000000000..ae4bcb7f92
--- /dev/null
+++ b/deps/npm/node_modules/sshpk/package.json
@@ -0,0 +1,100 @@
+{
+ "_from": "sshpk@^1.7.0",
+ "_id": "sshpk@1.14.1",
+ "_inBundle": false,
+ "_integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=",
+ "_location": "/sshpk",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "sshpk@^1.7.0",
+ "name": "sshpk",
+ "escapedName": "sshpk",
+ "rawSpec": "^1.7.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.7.0"
+ },
+ "_requiredBy": [
+ "/http-signature"
+ ],
+ "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz",
+ "_shasum": "130f5975eddad963f1d56f92b9ac6c51fa9f83eb",
+ "_spec": "sshpk@^1.7.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/http-signature",
+ "author": {
+ "name": "Joyent, Inc"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "bugs": {
+ "url": "https://github.com/arekinath/node-sshpk/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Dave Eddy",
+ "email": "dave@daveeddy.com"
+ },
+ {
+ "name": "Mark Cavage",
+ "email": "mcavage@gmail.com"
+ },
+ {
+ "name": "Alex Wilson",
+ "email": "alex@cooperi.net"
+ }
+ ],
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
+ },
+ "deprecated": false,
+ "description": "A library for finding and using SSH public keys",
+ "devDependencies": {
+ "benchmark": "^1.0.0",
+ "sinon": "^1.17.2",
+ "tape": "^3.5.0",
+ "temp": "^0.8.2"
+ },
+ "directories": {
+ "bin": "./bin",
+ "lib": "./lib",
+ "man": "./man/man1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "homepage": "https://github.com/arekinath/node-sshpk#readme",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "man": [
+ "/Users/rebecca/code/npm/node_modules/sshpk/man/man1/sshpk-conv.1",
+ "/Users/rebecca/code/npm/node_modules/sshpk/man/man1/sshpk-sign.1",
+ "/Users/rebecca/code/npm/node_modules/sshpk/man/man1/sshpk-verify.1"
+ ],
+ "name": "sshpk",
+ "optionalDependencies": {
+ "bcrypt-pbkdf": "^1.0.0",
+ "ecc-jsbn": "~0.1.1",
+ "jsbn": "~0.1.0",
+ "tweetnacl": "~0.14.0"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/arekinath/node-sshpk.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "version": "1.14.1"
+}
diff --git a/deps/npm/node_modules/ssri/CHANGELOG.md b/deps/npm/node_modules/ssri/CHANGELOG.md
index 7ae2b000dc..a56594ae62 100644
--- a/deps/npm/node_modules/ssri/CHANGELOG.md
+++ b/deps/npm/node_modules/ssri/CHANGELOG.md
@@ -2,6 +2,92 @@
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/zkat/ssri/compare/v5.3.0...v6.0.0) (2018-04-09)
+
+
+### Bug Fixes
+
+* **docs:** minor typo ([b71ef17](https://github.com/zkat/ssri/commit/b71ef17))
+
+
+### meta
+
+* drop support for node@4 ([d9bf359](https://github.com/zkat/ssri/commit/d9bf359))
+
+
+### BREAKING CHANGES
+
+* node@4 is no longer supported
+
+
+
+<a name="5.3.0"></a>
+# [5.3.0](https://github.com/zkat/ssri/compare/v5.2.4...v5.3.0) (2018-03-13)
+
+
+### Features
+
+* **checkData:** optionally throw when checkData fails ([bf26b84](https://github.com/zkat/ssri/commit/bf26b84))
+
+
+
+<a name="5.2.4"></a>
+## [5.2.4](https://github.com/zkat/ssri/compare/v5.2.3...v5.2.4) (2018-02-16)
+
+
+
+<a name="5.2.3"></a>
+## [5.2.3](https://github.com/zkat/ssri/compare/v5.2.2...v5.2.3) (2018-02-16)
+
+
+### Bug Fixes
+
+* **hashes:** filter hash priority list by available hashes ([2fa30b8](https://github.com/zkat/ssri/commit/2fa30b8))
+* **integrityStream:** dedupe algorithms to generate ([d56c654](https://github.com/zkat/ssri/commit/d56c654))
+
+
+
+<a name="5.2.2"></a>
+## [5.2.2](https://github.com/zkat/ssri/compare/v5.2.1...v5.2.2) (2018-02-14)
+
+
+### Bug Fixes
+
+* **security:** tweak strict SRI regex ([#10](https://github.com/zkat/ssri/issues/10)) ([d0ebcdc](https://github.com/zkat/ssri/commit/d0ebcdc))
+
+
+
+<a name="5.2.1"></a>
+## [5.2.1](https://github.com/zkat/ssri/compare/v5.2.0...v5.2.1) (2018-02-06)
+
+
+
+<a name="5.2.0"></a>
+# [5.2.0](https://github.com/zkat/ssri/compare/v5.1.0...v5.2.0) (2018-02-06)
+
+
+### Features
+
+* **match:** add integrity.match() ([3c49cc4](https://github.com/zkat/ssri/commit/3c49cc4))
+
+
+
+<a name="5.1.0"></a>
+# [5.1.0](https://github.com/zkat/ssri/compare/v5.0.0...v5.1.0) (2018-01-18)
+
+
+### Bug Fixes
+
+* **checkStream:** integrityStream now takes opts.integrity algos into account ([d262910](https://github.com/zkat/ssri/commit/d262910))
+
+
+### Features
+
+* **sha3:** do some guesswork about upcoming sha3 ([7fdd9df](https://github.com/zkat/ssri/commit/7fdd9df))
+
+
+
<a name="5.0.0"></a>
# [5.0.0](https://github.com/zkat/ssri/compare/v4.1.6...v5.0.0) (2017-10-23)
diff --git a/deps/npm/node_modules/ssri/README.md b/deps/npm/node_modules/ssri/README.md
index f2fc035da5..c250961bd3 100644
--- a/deps/npm/node_modules/ssri/README.md
+++ b/deps/npm/node_modules/ssri/README.md
@@ -21,6 +21,7 @@ Integrity](https://w3c.github.io/webappsec/specs/subresourceintegrity/) hashes.
* [`Integrity#concat`](#integrity-concat)
* [`Integrity#toString`](#integrity-to-string)
* [`Integrity#toJSON`](#integrity-to-json)
+ * [`Integrity#match`](#integrity-match)
* [`Integrity#pickAlgorithm`](#integrity-pick-algorithm)
* [`Integrity#hexDigest`](#integrity-hex-digest)
* Integrity Generation
@@ -188,7 +189,7 @@ desktopIntegrity.concat(mobileIntegrity)
Returns the string representation of an `Integrity` object. All hash entries
will be concatenated in the string by `opts.sep`, which defaults to `' '`.
-If you want to serialize an object that didn't from from an `ssri` function,
+If you want to serialize an object that didn't come from an `ssri` function,
use [`ssri.stringify()`](#stringify).
If `opts.strict` is true, the integrity string will be created using strict
@@ -218,6 +219,27 @@ const integrity = '"sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3x
JSON.stringify(ssri.parse(integrity)) === integrity
```
+#### <a name="integrity-match"></a> `> Integrity#match(sri, [opts]) -> Hash | false`
+
+Returns the matching (truthy) hash if `Integrity` matches the argument passed as
+`sri`, which can be anything that [`parse`](#parse) will accept. `opts` will be
+passed through to `parse` and [`pickAlgorithm()`](#integrity-pick-algorithm).
+
+##### Example
+
+```javascript
+const integrity = 'sha512-9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+
+ssri.parse(integrity).match(integrity)
+// Hash {
+// digest: '9KhgCRIx/AmzC8xqYJTZRrnO8OW2Pxyl2DIMZSBOr0oDvtEFyht3xpp71j/r/pAe1DM+JI/A+line3jUBgzQ7A=='
+// algorithm: 'sha512'
+// }
+
+ssri.parse(integrity).match('sha1-deadbeef')
+// false
+```
+
#### <a name="integrity-pick-algorithm"></a> `> Integrity#pickAlgorithm([opts]) -> String`
Returns the "best" algorithm from those available in the integrity object.
@@ -367,6 +389,9 @@ If `opts.pickAlgorithm` is provided, it will be used by
[`Integrity#pickAlgorithm`](#integrity-pick-algorithm) when deciding which of
the available digests to match against.
+If `opts.error` is true, and verification fails, `checkData` will throw either
+an `EBADSIZE` or an `EINTEGRITY` error, instead of just returning false.
+
##### Example
```javascript
@@ -374,6 +399,7 @@ const data = fs.readFileSync('index.js')
ssri.checkData(data, ssri.fromData(data)) // -> 'sha512'
ssri.checkData(data, 'sha256-l981iLWj8kurw4UbNy8Lpxqdzd7UOxS50Glhv8FwfZ0')
ssri.checkData(data, 'sha1-BaDDigEST') // -> false
+ssri.checkData(data, 'sha1-BaDDigEST', {error: true}) // -> Error! EINTEGRITY
```
#### <a name="check-stream"></a> `> ssri.checkStream(stream, sri, [opts]) -> Promise<Hash>`
@@ -423,7 +449,7 @@ ssri.checkStream(
) // -> Promise<Error<{code: 'EINTEGRITY'}>>
```
-#### <a name="integrity-stream"></a> `> integrityStream(sri, [opts]) -> IntegrityStream`
+#### <a name="integrity-stream"></a> `> integrityStream([opts]) -> IntegrityStream`
Returns a `Transform` stream that data can be piped through in order to generate
and optionally check data integrity for piped data. When the stream completes
@@ -458,5 +484,5 @@ may intentionally deprioritize algorithms with known vulnerabilities.
```javascript
const integrity = ssri.fromData(fs.readFileSync('index.js'))
fs.createReadStream('index.js')
-.pipe(ssri.checkStream(integrity))
+.pipe(ssri.integrityStream({integrity}))
```
diff --git a/deps/npm/node_modules/ssri/index.js b/deps/npm/node_modules/ssri/index.js
index 8ece662ba6..d4c9e49c4d 100644
--- a/deps/npm/node_modules/ssri/index.js
+++ b/deps/npm/node_modules/ssri/index.js
@@ -1,7 +1,5 @@
'use strict'
-const Buffer = require('safe-buffer').Buffer
-
const crypto = require('crypto')
const Transform = require('stream').Transform
@@ -9,7 +7,7 @@ const SPEC_ALGORITHMS = ['sha256', 'sha384', 'sha512']
const BASE64_REGEX = /^[a-z0-9+/]+(?:=?=?)$/i
const SRI_REGEX = /^([^-]+)-([^?]+)([?\S*]*)$/
-const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/]+(?:=?=?))([?\x21-\x7E]*)$/
+const STRICT_SRI_REGEX = /^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/
const VCHAR_REGEX = /^[\x21-\x7E]+$/
class Hash {
@@ -93,6 +91,19 @@ class Integrity {
hexDigest () {
return parse(this, {single: true}).hexDigest()
}
+ match (integrity, opts) {
+ const other = parse(integrity, opts)
+ const algo = other.pickAlgorithm(opts)
+ return (
+ this[algo] &&
+ other[algo] &&
+ this[algo].find(hash =>
+ other[algo].find(otherhash =>
+ hash.digest === otherhash.digest
+ )
+ )
+ ) || false
+ }
pickAlgorithm (opts) {
const pickAlgorithm = (opts && opts.pickAlgorithm) || getPrioritizedHash
const keys = Object.keys(this)
@@ -203,11 +214,39 @@ module.exports.checkData = checkData
function checkData (data, sri, opts) {
opts = opts || {}
sri = parse(sri, opts)
- if (!Object.keys(sri).length) { return false }
+ if (!Object.keys(sri).length) {
+ if (opts.error) {
+ throw Object.assign(
+ new Error('No valid integrity hashes to check against'), {
+ code: 'EINTEGRITY'
+ }
+ )
+ } else {
+ return false
+ }
+ }
const algorithm = sri.pickAlgorithm(opts)
- const digests = sri[algorithm] || []
const digest = crypto.createHash(algorithm).update(data).digest('base64')
- return digests.find(hash => hash.digest === digest) || false
+ const newSri = parse({algorithm, digest})
+ const match = newSri.match(sri, opts)
+ if (match || !opts.error) {
+ return match
+ } else if (typeof opts.size === 'number' && (data.length !== opts.size)) {
+ const err = new Error(`data size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${data.length}`)
+ err.code = 'EBADSIZE'
+ err.found = data.length
+ err.expected = opts.size
+ err.sri = sri
+ throw err
+ } else {
+ const err = new Error(`Integrity checksum failed when using ${algorithm}: Wanted ${sri}, but got ${newSri}. (${data.length} bytes)`)
+ err.code = 'EINTEGRITY'
+ err.found = newSri
+ err.expected = sri
+ err.algorithm = algorithm
+ err.sri = sri
+ throw err
+ }
}
module.exports.checkStream = checkStream
@@ -237,7 +276,12 @@ function integrityStream (opts) {
const algorithm = goodSri && sri.pickAlgorithm(opts)
const digests = goodSri && sri[algorithm]
// Calculating stream
- const algorithms = opts.algorithms || [algorithm || 'sha512']
+ const algorithms = Array.from(
+ new Set(
+ (opts.algorithms || ['sha512'])
+ .concat(algorithm ? [algorithm] : [])
+ )
+ )
const hashes = algorithms.map(crypto.createHash)
let streamSize = 0
const stream = new Transform({
@@ -253,17 +297,8 @@ function integrityStream (opts) {
const newSri = parse(hashes.map((h, i) => {
return `${algorithms[i]}-${h.digest('base64')}${optString}`
}).join(' '), opts)
- const match = (
- // Integrity verification mode
- opts.integrity &&
- newSri[algorithm] &&
- digests &&
- digests.find(hash => {
- return newSri[algorithm].find(newhash => {
- return hash.digest === newhash.digest
- })
- })
- )
+ // Integrity verification mode
+ const match = goodSri && newSri.match(sri, opts)
if (typeof opts.size === 'number' && streamSize !== opts.size) {
const err = new Error(`stream size mismatch when checking ${sri}.\n Wanted: ${opts.size}\n Found: ${streamSize}`)
err.code = 'EBADSIZE'
@@ -323,10 +358,18 @@ function createIntegrity (opts) {
}
}
+const NODE_HASHES = new Set(crypto.getHashes())
+
// This is a Best Effortā„¢ at a reasonable priority for hash algos
const DEFAULT_PRIORITY = [
- 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512'
-]
+ 'md5', 'whirlpool', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
+ // TODO - it's unclear _which_ of these Node will actually use as its name
+ // for the algorithm, so we guesswork it based on the OpenSSL names.
+ 'sha3',
+ 'sha3-256', 'sha3-384', 'sha3-512',
+ 'sha3_256', 'sha3_384', 'sha3_512'
+].filter(algo => NODE_HASHES.has(algo))
+
function getPrioritizedHash (algo1, algo2) {
return DEFAULT_PRIORITY.indexOf(algo1.toLowerCase()) >= DEFAULT_PRIORITY.indexOf(algo2.toLowerCase())
? algo1
diff --git a/deps/npm/node_modules/ssri/package.json b/deps/npm/node_modules/ssri/package.json
index 24722ee821..ec561fc3f7 100644
--- a/deps/npm/node_modules/ssri/package.json
+++ b/deps/npm/node_modules/ssri/package.json
@@ -1,28 +1,35 @@
{
- "_from": "ssri@5.0.0",
- "_id": "ssri@5.0.0",
+ "_args": [
+ [
+ "ssri@6.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "ssri@6.0.0",
+ "_id": "ssri@6.0.0",
"_inBundle": false,
- "_integrity": "sha512-728D4yoQcQm1ooZvSbywLkV1RjfITZXh0oWrhM/lnsx3nAHx7LsRGJWB/YyvoceAYRq98xqbstiN4JBv1/wNHg==",
+ "_integrity": "sha512-zYOGfVHPhxyzwi8MdtdNyxv3IynWCIM4jYReR48lqu0VngxgH1c+C6CmipRdJ55eVByTJV/gboFEEI7TEQI8DA==",
"_location": "/ssri",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "ssri@5.0.0",
+ "raw": "ssri@6.0.0",
"name": "ssri",
"escapedName": "ssri",
- "rawSpec": "5.0.0",
+ "rawSpec": "6.0.0",
"saveSpec": null,
- "fetchSpec": "5.0.0"
+ "fetchSpec": "6.0.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/cacache",
+ "/make-fetch-happen",
+ "/pacote"
],
- "_resolved": "https://registry.npmjs.org/ssri/-/ssri-5.0.0.tgz",
- "_shasum": "13c19390b606c821f2a10d02b351c1729b94d8cf",
- "_spec": "ssri@5.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.0.tgz",
+ "_spec": "6.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Kat MarchƔn",
"email": "kzm@sykosomatic.org"
@@ -30,7 +37,6 @@
"bugs": {
"url": "https://github.com/zkat/ssri/issues"
},
- "bundleDependencies": false,
"config": {
"nyc": {
"exclude": [
@@ -39,16 +45,13 @@
]
}
},
- "dependencies": {
- "safe-buffer": "^5.1.0"
- },
- "deprecated": false,
+ "dependencies": {},
"description": "Standard Subresource Integrity library -- parses, serializes, generates, and verifies integrity metadata according to the SRI spec.",
"devDependencies": {
- "nyc": "^10.3.2",
- "standard": "^9.0.2",
- "standard-version": "^4.1.0",
- "tap": "^10.3.3",
+ "nyc": "^11.4.1",
+ "standard": "^10.0.3",
+ "standard-version": "^4.3.0",
+ "tap": "^11.1.0",
"weallbehave": "^1.2.0",
"weallcontribute": "^1.0.8"
},
@@ -86,5 +89,5 @@
"update-coc": "weallbehave -o . && git add CODE_OF_CONDUCT.md && git commit -m 'docs(coc): updated CODE_OF_CONDUCT.md'",
"update-contrib": "weallcontribute -o . && git add CONTRIBUTING.md && git commit -m 'docs(contributing): updated CONTRIBUTING.md'"
},
- "version": "5.0.0"
+ "version": "6.0.0"
}
diff --git a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/.npmignore b/deps/npm/node_modules/stream-each/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/parallel-transform/.npmignore
+++ b/deps/npm/node_modules/stream-each/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/.travis.yml b/deps/npm/node_modules/stream-each/.travis.yml
index aa89858a8a..aa89858a8a 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/.travis.yml
+++ b/deps/npm/node_modules/stream-each/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/LICENSE b/deps/npm/node_modules/stream-each/LICENSE
index 66a4d2a149..66a4d2a149 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/LICENSE
+++ b/deps/npm/node_modules/stream-each/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/README.md b/deps/npm/node_modules/stream-each/README.md
index e0832d55bd..e0832d55bd 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/README.md
+++ b/deps/npm/node_modules/stream-each/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/collaborators.md b/deps/npm/node_modules/stream-each/collaborators.md
index fc16de25f9..fc16de25f9 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/collaborators.md
+++ b/deps/npm/node_modules/stream-each/collaborators.md
diff --git a/deps/npm/node_modules/stream-each/index.js b/deps/npm/node_modules/stream-each/index.js
new file mode 100644
index 0000000000..7e67f7337a
--- /dev/null
+++ b/deps/npm/node_modules/stream-each/index.js
@@ -0,0 +1,58 @@
+var eos = require('end-of-stream')
+var shift = require('stream-shift')
+
+module.exports = each
+
+function each (stream, fn, cb) {
+ var want = true
+ var error = null
+ var ended = false
+ var running = false
+ var calling = false
+
+ stream.on('readable', onreadable)
+ onreadable()
+
+ if (cb) eos(stream, {readable: true, writable: false}, done)
+ return stream
+
+ function done (err) {
+ if (!error) error = err
+ ended = true
+ if (!running) cb(error)
+ }
+
+ function onreadable () {
+ if (want) read()
+ }
+
+ function afterRead (err) {
+ running = false
+
+ if (err) {
+ error = err
+ if (ended) return cb(error)
+ stream.destroy(err)
+ return
+ }
+ if (ended) return cb(error)
+ if (!calling) read()
+ }
+
+ function read () {
+ while (!running && !ended) {
+ want = false
+
+ var data = shift(stream)
+ if (data === null) {
+ want = true
+ return
+ }
+
+ running = true
+ calling = true
+ fn(data, afterRead)
+ calling = false
+ }
+ }
+}
diff --git a/deps/npm/node_modules/stream-each/package.json b/deps/npm/node_modules/stream-each/package.json
new file mode 100644
index 0000000000..16d8cb2af8
--- /dev/null
+++ b/deps/npm/node_modules/stream-each/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "stream-each@^1.1.0",
+ "_id": "stream-each@1.2.2",
+ "_inBundle": false,
+ "_integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==",
+ "_location": "/stream-each",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "stream-each@^1.1.0",
+ "name": "stream-each",
+ "escapedName": "stream-each",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz",
+ "_shasum": "8e8c463f91da8991778765873fe4d960d8f616bd",
+ "_spec": "stream-each@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Mathias Buus",
+ "url": "@mafintosh"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/stream-each/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "end-of-stream": "^1.1.0",
+ "stream-shift": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Iterate all the data in a stream",
+ "devDependencies": {
+ "standard": "^5.3.1",
+ "tape": "^4.2.1",
+ "through2": "^2.0.0"
+ },
+ "homepage": "https://github.com/mafintosh/stream-each",
+ "license": "MIT",
+ "main": "index.js",
+ "name": "stream-each",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mafintosh/stream-each.git"
+ },
+ "scripts": {
+ "test": "standard && tape test.js"
+ },
+ "version": "1.2.2"
+}
diff --git a/deps/npm/node_modules/stream-each/test.js b/deps/npm/node_modules/stream-each/test.js
new file mode 100644
index 0000000000..277634cd05
--- /dev/null
+++ b/deps/npm/node_modules/stream-each/test.js
@@ -0,0 +1,122 @@
+var tape = require('tape')
+var through = require('through2')
+var each = require('./')
+
+tape('each', function (t) {
+ var s = through.obj()
+ s.write('a')
+ s.write('b')
+ s.write('c')
+ s.end()
+
+ s.on('end', function () {
+ t.end()
+ })
+
+ var expected = ['a', 'b', 'c']
+ each(s, function (data, next) {
+ t.same(data, expected.shift())
+ next()
+ })
+})
+
+tape('each and callback', function (t) {
+ var s = through.obj()
+ s.write('a')
+ s.write('b')
+ s.write('c')
+ s.end()
+
+ var expected = ['a', 'b', 'c']
+ each(s, function (data, next) {
+ t.same(data, expected.shift())
+ next()
+ }, function () {
+ t.end()
+ })
+})
+
+tape('each (write after)', function (t) {
+ var s = through.obj()
+ s.on('end', function () {
+ t.end()
+ })
+
+ var expected = ['a', 'b', 'c']
+ each(s, function (data, next) {
+ t.same(data, expected.shift())
+ next()
+ })
+
+ setTimeout(function () {
+ s.write('a')
+ s.write('b')
+ s.write('c')
+ s.end()
+ }, 100)
+})
+
+tape('each error', function (t) {
+ var s = through.obj()
+ s.write('hello')
+ s.on('error', function (err) {
+ t.same(err.message, 'stop')
+ t.end()
+ })
+
+ each(s, function (data, next) {
+ next(new Error('stop'))
+ })
+})
+
+tape('each error and callback', function (t) {
+ var s = through.obj()
+ s.write('hello')
+
+ each(s, function (data, next) {
+ next(new Error('stop'))
+ }, function (err) {
+ t.same(err.message, 'stop')
+ t.end()
+ })
+})
+
+tape('each with falsey values', function (t) {
+ var s = through.obj()
+ s.write(0)
+ s.write(false)
+ s.write(undefined)
+ s.end()
+
+ s.on('end', function () {
+ t.end()
+ })
+
+ var expected = [0, false]
+ var count = 0
+ each(s, function (data, next) {
+ count++
+ t.same(data, expected.shift())
+ next()
+ }, function () {
+ t.same(count, 2)
+ })
+})
+
+tape('huge stack', function (t) {
+ var s = through.obj()
+
+ for (var i = 0; i < 5000; i++) {
+ s.write('foo')
+ }
+
+ s.end()
+
+ each(s, function (data, cb) {
+ if (data !== 'foo') t.fail('bad data')
+ cb()
+ }, function (err) {
+ t.error(err, 'no error')
+ t.end()
+ })
+})
diff --git a/deps/npm/node_modules/mississippi/node_modules/pump/.npmignore b/deps/npm/node_modules/stream-iterate/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pump/.npmignore
+++ b/deps/npm/node_modules/stream-iterate/.npmignore
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.travis.yml b/deps/npm/node_modules/stream-iterate/.travis.yml
index 89d7548954..89d7548954 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/.travis.yml
+++ b/deps/npm/node_modules/stream-iterate/.travis.yml
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/LICENSE b/deps/npm/node_modules/stream-iterate/LICENSE
index 66a4d2a149..66a4d2a149 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/LICENSE
+++ b/deps/npm/node_modules/stream-iterate/LICENSE
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/README.md b/deps/npm/node_modules/stream-iterate/README.md
index 001112045b..001112045b 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/README.md
+++ b/deps/npm/node_modules/stream-iterate/README.md
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/index.js b/deps/npm/node_modules/stream-iterate/index.js
index c60d6ab550..c60d6ab550 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/index.js
+++ b/deps/npm/node_modules/stream-iterate/index.js
diff --git a/deps/npm/node_modules/stream-iterate/package.json b/deps/npm/node_modules/stream-iterate/package.json
new file mode 100644
index 0000000000..200f13fc27
--- /dev/null
+++ b/deps/npm/node_modules/stream-iterate/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "stream-iterate@^1.1.0",
+ "_id": "stream-iterate@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-K9fHcpbBcCpGSIuK1B95hl7s1OE=",
+ "_location": "/stream-iterate",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "stream-iterate@^1.1.0",
+ "name": "stream-iterate",
+ "escapedName": "stream-iterate",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/sorted-union-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/stream-iterate/-/stream-iterate-1.2.0.tgz",
+ "_shasum": "2bd7c77296c1702a46488b8ad41f79865eecd4e1",
+ "_spec": "stream-iterate@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/sorted-union-stream",
+ "author": {
+ "name": "Mathias Buus",
+ "url": "@mafintosh"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/stream-iterate/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "readable-stream": "^2.1.5",
+ "stream-shift": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Iterate through the values of a stream",
+ "devDependencies": {
+ "from2": "^1.3.0",
+ "standard": "^3.3.2",
+ "tape": "^4.0.0"
+ },
+ "homepage": "https://github.com/mafintosh/stream-iterate",
+ "license": "MIT",
+ "main": "index.js",
+ "name": "stream-iterate",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mafintosh/stream-iterate.git"
+ },
+ "scripts": {
+ "test": "standard && tape test.js"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/test.js b/deps/npm/node_modules/stream-iterate/test.js
index 5beb23a5d9..5beb23a5d9 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/stream-iterate/test.js
+++ b/deps/npm/node_modules/stream-iterate/test.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/pumpify/.npmignore b/deps/npm/node_modules/stream-shift/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/pumpify/.npmignore
+++ b/deps/npm/node_modules/stream-shift/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.travis.yml b/deps/npm/node_modules/stream-shift/.travis.yml
index ecd4193f60..ecd4193f60 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/.travis.yml
+++ b/deps/npm/node_modules/stream-shift/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/LICENSE b/deps/npm/node_modules/stream-shift/LICENSE
index bae9da7bfa..bae9da7bfa 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/LICENSE
+++ b/deps/npm/node_modules/stream-shift/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/README.md b/deps/npm/node_modules/stream-shift/README.md
index d9cc2d945f..d9cc2d945f 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/README.md
+++ b/deps/npm/node_modules/stream-shift/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/index.js b/deps/npm/node_modules/stream-shift/index.js
index c4b18b9c2a..c4b18b9c2a 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/index.js
+++ b/deps/npm/node_modules/stream-shift/index.js
diff --git a/deps/npm/node_modules/stream-shift/package.json b/deps/npm/node_modules/stream-shift/package.json
new file mode 100644
index 0000000000..fc472a5159
--- /dev/null
+++ b/deps/npm/node_modules/stream-shift/package.json
@@ -0,0 +1,55 @@
+{
+ "_from": "stream-shift@^1.0.0",
+ "_id": "stream-shift@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=",
+ "_location": "/stream-shift",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "stream-shift@^1.0.0",
+ "name": "stream-shift",
+ "escapedName": "stream-shift",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/duplexify",
+ "/stream-each",
+ "/stream-iterate"
+ ],
+ "_resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz",
+ "_shasum": "d5c752825e5367e786f78e18e445ea223a155952",
+ "_spec": "stream-shift@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/duplexify",
+ "author": {
+ "name": "Mathias Buus",
+ "url": "@mafintosh"
+ },
+ "bugs": {
+ "url": "https://github.com/mafintosh/stream-shift/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Returns the next buffer/object in a stream's readable queue",
+ "devDependencies": {
+ "standard": "^7.1.2",
+ "tape": "^4.6.0",
+ "through2": "^2.0.1"
+ },
+ "homepage": "https://github.com/mafintosh/stream-shift",
+ "license": "MIT",
+ "main": "index.js",
+ "name": "stream-shift",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/mafintosh/stream-shift.git"
+ },
+ "scripts": {
+ "test": "standard && tape test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/test.js b/deps/npm/node_modules/stream-shift/test.js
index c0222c37d5..c0222c37d5 100644
--- a/deps/npm/node_modules/mississippi/node_modules/duplexify/node_modules/stream-shift/test.js
+++ b/deps/npm/node_modules/stream-shift/test.js
diff --git a/deps/npm/node_modules/strict-uri-encode/index.js b/deps/npm/node_modules/strict-uri-encode/index.js
new file mode 100644
index 0000000000..affabef0c8
--- /dev/null
+++ b/deps/npm/node_modules/strict-uri-encode/index.js
@@ -0,0 +1,2 @@
+'use strict';
+module.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);
diff --git a/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 b/deps/npm/node_modules/strict-uri-encode/license
index 0f8cf79c3c..0f8cf79c3c 100644
--- a/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
+++ b/deps/npm/node_modules/strict-uri-encode/license
diff --git a/deps/npm/node_modules/strict-uri-encode/package.json b/deps/npm/node_modules/strict-uri-encode/package.json
new file mode 100644
index 0000000000..ddd02a7a30
--- /dev/null
+++ b/deps/npm/node_modules/strict-uri-encode/package.json
@@ -0,0 +1,63 @@
+{
+ "_from": "strict-uri-encode@^2.0.0",
+ "_id": "strict-uri-encode@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-ucczDHBChi9rFC3CdLvMWGbONUY=",
+ "_location": "/strict-uri-encode",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strict-uri-encode@^2.0.0",
+ "name": "strict-uri-encode",
+ "escapedName": "strict-uri-encode",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/query-string"
+ ],
+ "_resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz",
+ "_shasum": "b9c7330c7042862f6b142dc274bbcc5866ce3546",
+ "_spec": "strict-uri-encode@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/query-string",
+ "author": {
+ "name": "Kevin MĆ„rtensson",
+ "email": "kevinmartensson@gmail.com",
+ "url": "github.com/kevva"
+ },
+ "bugs": {
+ "url": "https://github.com/kevva/strict-uri-encode/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "A stricter URI encode adhering to RFC 3986",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/kevva/strict-uri-encode#readme",
+ "keywords": [
+ "component",
+ "encode",
+ "RFC3986",
+ "uri"
+ ],
+ "license": "MIT",
+ "name": "strict-uri-encode",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/kevva/strict-uri-encode.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/strict-uri-encode/readme.md b/deps/npm/node_modules/strict-uri-encode/readme.md
new file mode 100644
index 0000000000..05e3fee251
--- /dev/null
+++ b/deps/npm/node_modules/strict-uri-encode/readme.md
@@ -0,0 +1,39 @@
+# strict-uri-encode [![Build Status](https://travis-ci.org/kevva/strict-uri-encode.svg?branch=master)](https://travis-ci.org/kevva/strict-uri-encode)
+
+> A stricter URI encode adhering to [RFC 3986](http://tools.ietf.org/html/rfc3986)
+
+
+## Install
+
+```
+$ npm install --save strict-uri-encode
+```
+
+
+## Usage
+
+```js
+const strictUriEncode = require('strict-uri-encode');
+
+strictUriEncode('unicorn!foobar');
+//=> 'unicorn%21foobar'
+
+strictUriEncode('unicorn*foobar');
+//=> 'unicorn%2Afoobar'
+```
+
+
+## API
+
+### strictUriEncode(string)
+
+#### string
+
+Type: `string`, `number`
+
+String to URI encode.
+
+
+## License
+
+MIT Ā© [Kevin MĆ„rtensson](http://github.com/kevva)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/index.js b/deps/npm/node_modules/string-width/index.js
index bbc49d29b1..bbc49d29b1 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/index.js
+++ b/deps/npm/node_modules/string-width/index.js
diff --git a/deps/npm/node_modules/string-width/license b/deps/npm/node_modules/string-width/license
new file mode 100644
index 0000000000..e7af2f7710
--- /dev/null
+++ b/deps/npm/node_modules/string-width/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/string-width/package.json b/deps/npm/node_modules/string-width/package.json
new file mode 100644
index 0000000000..f4dbbf4745
--- /dev/null
+++ b/deps/npm/node_modules/string-width/package.json
@@ -0,0 +1,94 @@
+{
+ "_from": "string-width@^2.0.0",
+ "_id": "string-width@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "_location": "/string-width",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string-width@^2.0.0",
+ "name": "string-width",
+ "escapedName": "string-width",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/ansi-align",
+ "/boxen",
+ "/cli-columns",
+ "/cliui",
+ "/inquirer",
+ "/table",
+ "/widest-line",
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "_shasum": "ab93f27a8dc13d28cac815c462143a6d9012ae9e",
+ "_spec": "string-width@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cli-columns",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "name": "string-width",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.1.1"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/readme.md b/deps/npm/node_modules/string-width/readme.md
index df5b7199f9..df5b7199f9 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/string-width/readme.md
+++ b/deps/npm/node_modules/string-width/readme.md
diff --git a/deps/npm/node_modules/string_decoder/.travis.yml b/deps/npm/node_modules/string_decoder/.travis.yml
new file mode 100644
index 0000000000..3347a72546
--- /dev/null
+++ b/deps/npm/node_modules/string_decoder/.travis.yml
@@ -0,0 +1,50 @@
+sudo: false
+language: node_js
+before_install:
+ - npm install -g npm@2
+ - test $NPM_LEGACY && npm install -g npm@latest-3 || npm install npm -g
+notifications:
+ email: false
+matrix:
+ fast_finish: true
+ include:
+ - node_js: '0.8'
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: '0.10'
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: '0.11'
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: '0.12'
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: 1
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: 2
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: 3
+ env:
+ - TASK=test
+ - NPM_LEGACY=true
+ - node_js: 4
+ env: TASK=test
+ - node_js: 5
+ env: TASK=test
+ - node_js: 6
+ env: TASK=test
+ - node_js: 7
+ env: TASK=test
+ - node_js: 8
+ env: TASK=test
+ - node_js: 9
+ env: TASK=test
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE b/deps/npm/node_modules/string_decoder/LICENSE
index 2873b3b2e5..2873b3b2e5 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/LICENSE
+++ b/deps/npm/node_modules/string_decoder/LICENSE
diff --git a/deps/npm/node_modules/string_decoder/README.md b/deps/npm/node_modules/string_decoder/README.md
new file mode 100644
index 0000000000..5fd58315ed
--- /dev/null
+++ b/deps/npm/node_modules/string_decoder/README.md
@@ -0,0 +1,47 @@
+# string_decoder
+
+***Node-core v8.9.4 string_decoder for userland***
+
+
+[![NPM](https://nodei.co/npm/string_decoder.png?downloads=true&downloadRank=true)](https://nodei.co/npm/string_decoder/)
+[![NPM](https://nodei.co/npm-dl/string_decoder.png?&months=6&height=3)](https://nodei.co/npm/string_decoder/)
+
+
+```bash
+npm install --save string_decoder
+```
+
+***Node-core string_decoder for userland***
+
+This package is a mirror of the string_decoder implementation in Node-core.
+
+Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.9.4/docs/api/).
+
+As of version 1.0.0 **string_decoder** uses semantic versioning.
+
+## Previous versions
+
+Previous version numbers match the versions found in Node core, e.g. 0.10.24 matches Node 0.10.24, likewise 0.11.10 matches Node 0.11.10.
+
+## Update
+
+The *build/* directory contains a build script that will scrape the source from the [nodejs/node](https://github.com/nodejs/node) repo given a specific Node version.
+
+## Streams Working Group
+
+`string_decoder` is maintained by the Streams Working Group, which
+oversees the development and maintenance of the Streams API within
+Node.js. The responsibilities of the Streams Working Group include:
+
+* Addressing stream issues on the Node.js issue tracker.
+* Authoring and editing stream documentation within the Node.js project.
+* Reviewing changes to stream subclasses within the Node.js project.
+* Redirecting changes to streams from the Node.js project to this
+ project.
+* Assisting in the implementation of stream providers within Node.js.
+* Recommending versions of `readable-stream` to be included in Node.js.
+* Messaging about the future of streams to give the community advance
+ notice of changes.
+
+See [readable-stream](https://github.com/nodejs/readable-stream) for
+more details.
diff --git a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js b/deps/npm/node_modules/string_decoder/lib/string_decoder.js
index 26fb94c349..2e89e63f79 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/string_decoder/lib/string_decoder.js
+++ b/deps/npm/node_modules/string_decoder/lib/string_decoder.js
@@ -1,6 +1,30 @@
+// 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';
+/*<replacement>*/
+
var Buffer = require('safe-buffer').Buffer;
+/*</replacement>*/
var isEncoding = Buffer.isEncoding || function (encoding) {
encoding = '' + encoding;
@@ -112,10 +136,10 @@ StringDecoder.prototype.fillLast = function (buf) {
};
// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a
-// continuation byte.
+// continuation byte. If an invalid byte is detected, -2 is returned.
function utf8CheckByte(byte) {
if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;
- return -1;
+ return byte >> 6 === 0x02 ? -1 : -2;
}
// Checks at most 3 bytes at the end of a Buffer in order to detect an
@@ -129,13 +153,13 @@ function utf8CheckIncomplete(self, buf, i) {
if (nb > 0) self.lastNeed = nb - 1;
return nb;
}
- if (--j < i) return 0;
+ if (--j < i || nb === -2) return 0;
nb = utf8CheckByte(buf[j]);
if (nb >= 0) {
if (nb > 0) self.lastNeed = nb - 2;
return nb;
}
- if (--j < i) return 0;
+ if (--j < i || nb === -2) return 0;
nb = utf8CheckByte(buf[j]);
if (nb >= 0) {
if (nb > 0) {
@@ -149,7 +173,7 @@ function utf8CheckIncomplete(self, buf, i) {
// Validates as many continuation bytes for a multi-byte UTF-8 character as
// needed or are available. If we see a non-continuation byte where we expect
// one, we "replace" the validated continuation bytes we've seen so far with
-// UTF-8 replacement characters ('\ufffd'), to match v8's UTF-8 decoding
+// a single UTF-8 replacement character ('\ufffd'), to match v8's UTF-8 decoding
// behavior. The continuation byte check is included three times in the case
// where all of the continuation bytes for a character exist in the same buffer.
// It is also done this way as a slight performance increase instead of using a
@@ -157,17 +181,17 @@ function utf8CheckIncomplete(self, buf, i) {
function utf8CheckExtraBytes(self, buf, p) {
if ((buf[0] & 0xC0) !== 0x80) {
self.lastNeed = 0;
- return '\ufffd'.repeat(p);
+ return '\ufffd';
}
if (self.lastNeed > 1 && buf.length > 1) {
if ((buf[1] & 0xC0) !== 0x80) {
self.lastNeed = 1;
- return '\ufffd'.repeat(p + 1);
+ return '\ufffd';
}
if (self.lastNeed > 2 && buf.length > 2) {
if ((buf[2] & 0xC0) !== 0x80) {
self.lastNeed = 2;
- return '\ufffd'.repeat(p + 2);
+ return '\ufffd';
}
}
}
@@ -198,11 +222,11 @@ function utf8Text(buf, i) {
return buf.toString('utf8', i, end);
}
-// For UTF-8, a replacement character for each buffered byte of a (partial)
-// character needs to be added to the output.
+// For UTF-8, a replacement character is added when ending on a partial
+// character.
function utf8End(buf) {
var r = buf && buf.length ? this.write(buf) : '';
- if (this.lastNeed) return r + '\ufffd'.repeat(this.lastTotal - this.lastNeed);
+ if (this.lastNeed) return r + '\ufffd';
return r;
}
diff --git a/deps/npm/node_modules/string_decoder/package.json b/deps/npm/node_modules/string_decoder/package.json
new file mode 100644
index 0000000000..e98874b555
--- /dev/null
+++ b/deps/npm/node_modules/string_decoder/package.json
@@ -0,0 +1,59 @@
+{
+ "_from": "string_decoder@~1.1.1",
+ "_id": "string_decoder@1.1.1",
+ "_inBundle": false,
+ "_integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "_location": "/string_decoder",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string_decoder@~1.1.1",
+ "name": "string_decoder",
+ "escapedName": "string_decoder",
+ "rawSpec": "~1.1.1",
+ "saveSpec": null,
+ "fetchSpec": "~1.1.1"
+ },
+ "_requiredBy": [
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "_shasum": "9cf1611ba62685d7030ae9e4ba34149c3af03fc8",
+ "_spec": "string_decoder@~1.1.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
+ "bugs": {
+ "url": "https://github.com/nodejs/string_decoder/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ },
+ "deprecated": false,
+ "description": "The string_decoder module from Node core",
+ "devDependencies": {
+ "babel-polyfill": "^6.23.0",
+ "core-util-is": "^1.0.2",
+ "inherits": "^2.0.3",
+ "tap": "~0.4.8"
+ },
+ "homepage": "https://github.com/nodejs/string_decoder",
+ "keywords": [
+ "string",
+ "decoder",
+ "browser",
+ "browserify"
+ ],
+ "license": "MIT",
+ "main": "lib/string_decoder.js",
+ "name": "string_decoder",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/nodejs/string_decoder.git"
+ },
+ "scripts": {
+ "ci": "tap test/parallel/*.js test/ours/*.js --tap | tee test.tap && node test/verify-dependencies.js",
+ "test": "tap test/parallel/*.js && node test/verify-dependencies"
+ },
+ "version": "1.1.1"
+}
diff --git a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js
deleted file mode 100644
index c4aaecf505..0000000000
--- a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-
-module.exports = () => {
- const pattern = [
- '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[a-zA-Z\\d]*)*)?\\u0007)',
- '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PRZcf-ntqry=><~]))'
- ].join('|');
-
- return new RegExp(pattern, 'g');
-};
diff --git a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json
deleted file mode 100644
index 9c278632d1..0000000000
--- a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "_from": "ansi-regex@^3.0.0",
- "_id": "ansi-regex@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "_location": "/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^3.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "_shasum": "ed0317c322064f79466c02966bddb605ab37d998",
- "_spec": "ansi-regex@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
deleted file mode 100644
index 22db1c3405..0000000000
--- a/deps/npm/node_modules/strip-ansi/node_modules/ansi-regex/readme.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
-
-> Regular expression for matching [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code)
-
-
-## Install
-
-```
-$ npm install ansi-regex
-```
-
-
-## Usage
-
-```js
-const ansiRegex = require('ansi-regex');
-
-ansiRegex().test('\u001B[4mcake\u001B[0m');
-//=> true
-
-ansiRegex().test('cake');
-//=> false
-
-'\u001B[4mcake\u001B[0m'.match(ansiRegex());
-//=> ['\u001B[4m', '\u001B[0m']
-```
-
-
-## FAQ
-
-### Why do you test for codes not in the ECMA 48 standard?
-
-Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. We test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
-
-On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/strip-ansi/package.json b/deps/npm/node_modules/strip-ansi/package.json
index d175ebf798..3a8175f7b7 100644
--- a/deps/npm/node_modules/strip-ansi/package.json
+++ b/deps/npm/node_modules/strip-ansi/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "strip-ansi@4.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "strip-ansi@4.0.0",
"_id": "strip-ansi@4.0.0",
"_inBundle": false,
@@ -16,12 +22,14 @@
"fetchSpec": "4.0.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/cliui",
+ "/eslint",
+ "/inquirer",
+ "/string-width"
],
"_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "_shasum": "a8479022eb1ac368a871389b635262c505ee368f",
- "_spec": "strip-ansi@4.0.0",
+ "_spec": "4.0.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sindre Sorhus",
@@ -31,11 +39,9 @@
"bugs": {
"url": "https://github.com/chalk/strip-ansi/issues"
},
- "bundleDependencies": false,
"dependencies": {
"ansi-regex": "^3.0.0"
},
- "deprecated": false,
"description": "Strip ANSI escape codes",
"devDependencies": {
"ava": "*",
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/index.js b/deps/npm/node_modules/strip-eof/index.js
index a17d0afd33..a17d0afd33 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/index.js
+++ b/deps/npm/node_modules/strip-eof/index.js
diff --git a/deps/npm/node_modules/pacote/node_modules/get-stream/license b/deps/npm/node_modules/strip-eof/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/pacote/node_modules/get-stream/license
+++ b/deps/npm/node_modules/strip-eof/license
diff --git a/deps/npm/node_modules/strip-eof/package.json b/deps/npm/node_modules/strip-eof/package.json
new file mode 100644
index 0000000000..db7166bbe0
--- /dev/null
+++ b/deps/npm/node_modules/strip-eof/package.json
@@ -0,0 +1,71 @@
+{
+ "_from": "strip-eof@^1.0.0",
+ "_id": "strip-eof@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
+ "_location": "/strip-eof",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-eof@^1.0.0",
+ "name": "strip-eof",
+ "escapedName": "strip-eof",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/execa"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "_shasum": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
+ "_spec": "strip-eof@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/execa",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/strip-eof/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Strip the End-Of-File (EOF) character from a string/buffer",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/strip-eof#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "delete",
+ "eof",
+ "end",
+ "file",
+ "newline",
+ "linebreak",
+ "character",
+ "string",
+ "buffer"
+ ],
+ "license": "MIT",
+ "name": "strip-eof",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/strip-eof.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/readme.md b/deps/npm/node_modules/strip-eof/readme.md
index 45ffe04362..45ffe04362 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/strip-eof/readme.md
+++ b/deps/npm/node_modules/strip-eof/readme.md
diff --git a/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 b/deps/npm/node_modules/strip-json-comments/index.js
index 4e6576e6d3..4e6576e6d3 100644
--- a/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
+++ b/deps/npm/node_modules/strip-json-comments/index.js
diff --git a/deps/npm/node_modules/query-string/node_modules/object-assign/license b/deps/npm/node_modules/strip-json-comments/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/query-string/node_modules/object-assign/license
+++ b/deps/npm/node_modules/strip-json-comments/license
diff --git a/deps/npm/node_modules/strip-json-comments/package.json b/deps/npm/node_modules/strip-json-comments/package.json
new file mode 100644
index 0000000000..f974733358
--- /dev/null
+++ b/deps/npm/node_modules/strip-json-comments/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "strip-json-comments@~2.0.1",
+ "_id": "strip-json-comments@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
+ "_location": "/strip-json-comments",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-json-comments@~2.0.1",
+ "name": "strip-json-comments",
+ "escapedName": "strip-json-comments",
+ "rawSpec": "~2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~2.0.1"
+ },
+ "_requiredBy": [
+ "/eslint",
+ "/rc"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
+ "_spec": "strip-json-comments@~2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/rc",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/strip-json-comments/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Strip comments from JSON. Lets you use comments in your JSON files!",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/strip-json-comments#readme",
+ "keywords": [
+ "json",
+ "strip",
+ "remove",
+ "delete",
+ "trim",
+ "comments",
+ "multiline",
+ "parse",
+ "config",
+ "configuration",
+ "conf",
+ "settings",
+ "util",
+ "env",
+ "environment"
+ ],
+ "license": "MIT",
+ "name": "strip-json-comments",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/strip-json-comments.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.1"
+}
diff --git a/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 b/deps/npm/node_modules/strip-json-comments/readme.md
index 5a34471474..5a34471474 100644
--- a/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
+++ b/deps/npm/node_modules/strip-json-comments/readme.md
diff --git a/deps/npm/node_modules/supports-color/browser.js b/deps/npm/node_modules/supports-color/browser.js
new file mode 100644
index 0000000000..62afa3a742
--- /dev/null
+++ b/deps/npm/node_modules/supports-color/browser.js
@@ -0,0 +1,5 @@
+'use strict';
+module.exports = {
+ stdout: false,
+ stderr: false
+};
diff --git a/deps/npm/node_modules/supports-color/index.js b/deps/npm/node_modules/supports-color/index.js
new file mode 100644
index 0000000000..62d14de41a
--- /dev/null
+++ b/deps/npm/node_modules/supports-color/index.js
@@ -0,0 +1,131 @@
+'use strict';
+const os = require('os');
+const hasFlag = require('has-flag');
+
+const env = process.env;
+
+let forceColor;
+if (hasFlag('no-color') ||
+ hasFlag('no-colors') ||
+ hasFlag('color=false')) {
+ forceColor = false;
+} else if (hasFlag('color') ||
+ hasFlag('colors') ||
+ hasFlag('color=true') ||
+ hasFlag('color=always')) {
+ forceColor = true;
+}
+if ('FORCE_COLOR' in env) {
+ forceColor = env.FORCE_COLOR.length === 0 || parseInt(env.FORCE_COLOR, 10) !== 0;
+}
+
+function translateLevel(level) {
+ if (level === 0) {
+ return false;
+ }
+
+ return {
+ level,
+ hasBasic: true,
+ has256: level >= 2,
+ has16m: level >= 3
+ };
+}
+
+function supportsColor(stream) {
+ if (forceColor === false) {
+ return 0;
+ }
+
+ if (hasFlag('color=16m') ||
+ hasFlag('color=full') ||
+ hasFlag('color=truecolor')) {
+ return 3;
+ }
+
+ if (hasFlag('color=256')) {
+ return 2;
+ }
+
+ if (stream && !stream.isTTY && forceColor !== true) {
+ return 0;
+ }
+
+ const min = forceColor ? 1 : 0;
+
+ if (process.platform === 'win32') {
+ // Node.js 7.5.0 is the first version of Node.js to include a patch to
+ // libuv that enables 256 color output on Windows. Anything earlier and it
+ // won't work. However, here we target Node.js 8 at minimum as it is an LTS
+ // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
+ // release that supports 256 colors. Windows 10 build 14931 is the first release
+ // that supports 16m/TrueColor.
+ const osRelease = os.release().split('.');
+ if (
+ Number(process.versions.node.split('.')[0]) >= 8 &&
+ Number(osRelease[0]) >= 10 &&
+ Number(osRelease[2]) >= 10586
+ ) {
+ return Number(osRelease[2]) >= 14931 ? 3 : 2;
+ }
+
+ return 1;
+ }
+
+ if ('CI' in env) {
+ if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
+ return 1;
+ }
+
+ return min;
+ }
+
+ if ('TEAMCITY_VERSION' in env) {
+ return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
+ }
+
+ if (env.COLORTERM === 'truecolor') {
+ return 3;
+ }
+
+ if ('TERM_PROGRAM' in env) {
+ const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
+
+ switch (env.TERM_PROGRAM) {
+ case 'iTerm.app':
+ return version >= 3 ? 3 : 2;
+ case 'Apple_Terminal':
+ return 2;
+ // No default
+ }
+ }
+
+ if (/-256(color)?$/i.test(env.TERM)) {
+ return 2;
+ }
+
+ if (/^screen|^xterm|^vt100|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {
+ return 1;
+ }
+
+ if ('COLORTERM' in env) {
+ return 1;
+ }
+
+ if (env.TERM === 'dumb') {
+ return min;
+ }
+
+ return min;
+}
+
+function getSupportLevel(stream) {
+ const level = supportsColor(stream);
+ return translateLevel(level);
+}
+
+module.exports = {
+ supportsColor: getSupportLevel,
+ stdout: getSupportLevel(process.stdout),
+ stderr: getSupportLevel(process.stderr)
+};
diff --git a/deps/npm/node_modules/supports-color/license b/deps/npm/node_modules/supports-color/license
new file mode 100644
index 0000000000..e7af2f7710
--- /dev/null
+++ b/deps/npm/node_modules/supports-color/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/supports-color/package.json b/deps/npm/node_modules/supports-color/package.json
new file mode 100644
index 0000000000..bd223c7904
--- /dev/null
+++ b/deps/npm/node_modules/supports-color/package.json
@@ -0,0 +1,85 @@
+{
+ "_from": "supports-color@^5.3.0",
+ "_id": "supports-color@5.4.0",
+ "_inBundle": false,
+ "_integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "_location": "/supports-color",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "supports-color@^5.3.0",
+ "name": "supports-color",
+ "escapedName": "supports-color",
+ "rawSpec": "^5.3.0",
+ "saveSpec": null,
+ "fetchSpec": "^5.3.0"
+ },
+ "_requiredBy": [
+ "/chalk"
+ ],
+ "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "_shasum": "1c6b337402c2137605efe19f10fec390f6faab54",
+ "_spec": "supports-color@^5.3.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/chalk",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "browser": "browser.js",
+ "bugs": {
+ "url": "https://github.com/chalk/supports-color/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Detect whether a terminal supports color",
+ "devDependencies": {
+ "ava": "*",
+ "import-fresh": "^2.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "browser.js"
+ ],
+ "homepage": "https://github.com/chalk/supports-color#readme",
+ "keywords": [
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "ansi",
+ "styles",
+ "tty",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "support",
+ "supports",
+ "capability",
+ "detect",
+ "truecolor",
+ "16m"
+ ],
+ "license": "MIT",
+ "name": "supports-color",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/supports-color.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "5.4.0"
+}
diff --git a/deps/npm/node_modules/supports-color/readme.md b/deps/npm/node_modules/supports-color/readme.md
new file mode 100644
index 0000000000..f6e4019573
--- /dev/null
+++ b/deps/npm/node_modules/supports-color/readme.md
@@ -0,0 +1,66 @@
+# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color)
+
+> Detect whether a terminal supports color
+
+
+## Install
+
+```
+$ npm install supports-color
+```
+
+
+## Usage
+
+```js
+const supportsColor = require('supports-color');
+
+if (supportsColor.stdout) {
+ console.log('Terminal stdout supports color');
+}
+
+if (supportsColor.stdout.has256) {
+ console.log('Terminal stdout supports 256 colors');
+}
+
+if (supportsColor.stderr.has16m) {
+ console.log('Terminal stderr supports 16 million colors (truecolor)');
+}
+```
+
+
+## API
+
+Returns an `Object` with a `stdout` and `stderr` property for testing either streams. Each property is an `Object`, or `false` if color is not supported.
+
+The `stdout`/`stderr` objects specifies a level of support for color through a `.level` property and a corresponding flag:
+
+- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors)
+- `.level = 2` and `.has256 = true`: 256 color support
+- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors)
+
+
+## Info
+
+It obeys the `--color` and `--no-color` CLI flags.
+
+Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
+
+Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
+
+
+## Related
+
+- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module
+- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
+
+
+## Maintainers
+
+- [Sindre Sorhus](https://github.com/sindresorhus)
+- [Josh Junon](https://github.com/qix-)
+
+
+## License
+
+MIT
diff --git a/deps/npm/node_modules/tar/README.md b/deps/npm/node_modules/tar/README.md
index a356a78da2..ea98e0b21b 100644
--- a/deps/npm/node_modules/tar/README.md
+++ b/deps/npm/node_modules/tar/README.md
@@ -226,6 +226,10 @@ The following options are supported:
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
+ [Alias: `m`, `no-mtime`]
The following options are mostly internal, but can be modified in some
advanced use cases, such as re-using caches between runs.
@@ -310,6 +314,16 @@ The following options are supported:
specified group id, regardless of the `gid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`uid` option.
+- `noMtime` Set to true to omit writing `mtime` value for extracted
+ entries. [Alias: `m`, `no-mtime`]
+- `transform` Provide a function that takes an `entry` object, and
+ returns a stream, or any falsey value. If a stream is provided,
+ then that stream's data will be written instead of the contents of
+ the archive entry. If a falsey value is provided, then the entry is
+ written to disk as normal. (To exclude items from extraction, use
+ the `filter` option described above.)
+- `onentry` A function that gets called with `(entry)` for each entry
+ that passes the filter.
The following options are mostly internal, but can be modified in some
advanced use cases, such as re-using caches between runs.
@@ -323,6 +337,11 @@ advanced use cases, such as re-using caches between runs.
- `maxMetaEntrySize` The maximum size of meta entries that is
supported. Defaults to 1 MB.
+Note that using an asynchronous stream type with the `transform`
+option will cause undefined behavior in sync extractions.
+[MiniPass](http://npm.im/minipass)-based streams are designed for this
+use case.
+
### tar.t(options, fileList, callback) [alias: tar.list]
List the contents of a tarball archive.
@@ -405,6 +424,12 @@ The following options are supported:
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
+ [Alias: `m`, `no-mtime`]
+- `mtime` Set to a `Date` object to force a specific `mtime` for
+ everything added to the archive. Overridden by `noMtime`.
### tar.r(options, fileList, callback) [alias: tar.replace]
@@ -450,6 +475,13 @@ The following options are supported:
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
+ [Alias: `m`, `no-mtime`]
+- `mtime` Set to a `Date` object to force a specific `mtime` for
+ everything added to the archive. Overridden by `noMtime`.
+
## Low-Level API
@@ -496,6 +528,12 @@ The following options are supported:
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
+- `mtime` Set to a `Date` object to force a specific `mtime` for
+ everything added to the archive. Overridden by `noMtime`.
+
#### add(path)
@@ -583,11 +621,29 @@ Most unpack errors will cause a `warn` event to be emitted. If the
specified group id, regardless of the `gid` field in the archive.
Cannot be used along with `preserveOwner`. Requires also setting a
`uid` option.
+- `noMtime` Set to true to omit writing `mtime` value for extracted
+ entries.
+- `transform` Provide a function that takes an `entry` object, and
+ returns a stream, or any falsey value. If a stream is provided,
+ then that stream's data will be written instead of the contents of
+ the archive entry. If a falsey value is provided, then the entry is
+ written to disk as normal. (To exclude items from extraction, use
+ the `filter` option described above.)
+- `strict` Treat warnings as crash-worthy errors. Default false.
+- `onentry` A function that gets called with `(entry)` for each entry
+ that passes the filter.
+- `onwarn` A function that will get called with `(message, data)` for
+ any warnings encountered.
### class tar.Unpack.Sync
Synchronous version of `tar.Unpack`.
+Note that using an asynchronous stream type with the `transform`
+option will cause undefined behavior in sync unpack streams.
+[MiniPass](http://npm.im/minipass)-based streams are designed for this
+use case.
+
### class tar.Parse
A writable stream that parses a tar archive stream. All the standard
@@ -693,6 +749,10 @@ It has the following fields:
- `noPax` Suppress pax extended headers. Note that this means that
long paths and linkpaths will be truncated, and large or negative
numeric values may be interpreted incorrectly.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
+
#### constructor(path, options)
@@ -721,6 +781,9 @@ The following options are supported:
replace `\` with `/`.
- `onwarn` A function that will get called with `(message, data)` for
any warnings encountered.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
#### warn(message, data)
@@ -752,6 +815,9 @@ The following options are supported:
- `strict` Treat warnings as crash-worthy errors. Default false.
- `onwarn` A function that will get called with `(message, data)` for
any warnings encountered.
+- `noMtime` Set to true to omit writing `mtime` values for entries.
+ Note that this prevents using other mtime-based features like
+ `tar.update` or the `keepNewer` option with the resulting tar archive.
### class tar.Header
diff --git a/deps/npm/node_modules/tar/lib/buffer.js b/deps/npm/node_modules/tar/lib/buffer.js
new file mode 100644
index 0000000000..7876d5b3e8
--- /dev/null
+++ b/deps/npm/node_modules/tar/lib/buffer.js
@@ -0,0 +1,11 @@
+'use strict'
+
+// Buffer in node 4.x < 4.5.0 doesn't have working Buffer.from
+// or Buffer.alloc, and Buffer in node 10 deprecated the ctor.
+// .M, this is fine .\^/M..
+let B = Buffer
+/* istanbul ignore next */
+if (!B.alloc) {
+ B = require('safe-buffer').Buffer
+}
+module.exports = B
diff --git a/deps/npm/node_modules/tar/lib/create.js b/deps/npm/node_modules/tar/lib/create.js
index 5d46b3ba70..a37aa52e6d 100644
--- a/deps/npm/node_modules/tar/lib/create.js
+++ b/deps/npm/node_modules/tar/lib/create.js
@@ -5,6 +5,7 @@ const hlo = require('./high-level-opt.js')
const Pack = require('./pack.js')
const fs = require('fs')
+const fsm = require('fs-minipass')
const t = require('./list.js')
const path = require('path')
@@ -36,24 +37,18 @@ const c = module.exports = (opt_, files, cb) => {
const createFileSync = (opt, files) => {
const p = new Pack.Sync(opt)
-
- let threw = true
- let fd
- try {
- fd = fs.openSync(opt.file, 'w', opt.mode || 0o666)
- p.on('data', chunk => fs.writeSync(fd, chunk, 0, chunk.length))
- p.on('end', _ => fs.closeSync(fd))
- addFilesSync(p, files)
- threw = false
- } finally {
- if (threw)
- try { fs.closeSync(fd) } catch (er) {}
- }
+ const stream = new fsm.WriteStreamSync(opt.file, {
+ mode: opt.mode || 0o666
+ })
+ p.pipe(stream)
+ addFilesSync(p, files)
}
const createFile = (opt, files, cb) => {
const p = new Pack(opt)
- const stream = fs.createWriteStream(opt.file, { mode: opt.mode || 0o666 })
+ const stream = new fsm.WriteStream(opt.file, {
+ mode: opt.mode || 0o666
+ })
p.pipe(stream)
const promise = new Promise((res, rej) => {
diff --git a/deps/npm/node_modules/tar/lib/extract.js b/deps/npm/node_modules/tar/lib/extract.js
index 53ecf67894..cbb458a0a4 100644
--- a/deps/npm/node_modules/tar/lib/extract.js
+++ b/deps/npm/node_modules/tar/lib/extract.js
@@ -4,6 +4,7 @@
const hlo = require('./high-level-opt.js')
const Unpack = require('./unpack.js')
const fs = require('fs')
+const fsm = require('fs-minipass')
const path = require('path')
const x = module.exports = (opt_, files, cb) => {
@@ -64,28 +65,15 @@ const extractFileSync = opt => {
const file = opt.file
let threw = true
let fd
- try {
- const stat = fs.statSync(file)
- const readSize = opt.maxReadSize || 16*1024*1024
- if (stat.size < readSize)
- u.end(fs.readFileSync(file))
- else {
- let pos = 0
- const buf = Buffer.allocUnsafe(readSize)
- fd = fs.openSync(file, 'r')
- while (pos < stat.size) {
- let bytesRead = fs.readSync(fd, buf, 0, readSize, pos)
- pos += bytesRead
- u.write(buf.slice(0, bytesRead))
- }
- u.end()
- fs.closeSync(fd)
- }
- threw = false
- } finally {
- if (threw && fd)
- try { fs.closeSync(fd) } catch (er) {}
- }
+ const stat = fs.statSync(file)
+ // This trades a zero-byte read() syscall for a stat
+ // However, it will usually result in less memory allocation
+ const readSize = opt.maxReadSize || 16*1024*1024
+ const stream = new fsm.ReadStreamSync(file, {
+ readSize: readSize,
+ size: stat.size
+ })
+ stream.pipe(u)
}
const extractFile = (opt, cb) => {
@@ -97,18 +85,15 @@ const extractFile = (opt, cb) => {
u.on('error', reject)
u.on('close', resolve)
+ // This trades a zero-byte read() syscall for a stat
+ // However, it will usually result in less memory allocation
fs.stat(file, (er, stat) => {
if (er)
reject(er)
- else if (stat.size < readSize)
- fs.readFile(file, (er, data) => {
- if (er)
- return reject(er)
- u.end(data)
- })
else {
- const stream = fs.createReadStream(file, {
- highWaterMark: readSize
+ const stream = new fsm.ReadStream(file, {
+ readSize: readSize,
+ size: stat.size
})
stream.on('error', reject)
stream.pipe(u)
diff --git a/deps/npm/node_modules/tar/lib/header.js b/deps/npm/node_modules/tar/lib/header.js
index db002e8c18..31cde8b5cb 100644
--- a/deps/npm/node_modules/tar/lib/header.js
+++ b/deps/npm/node_modules/tar/lib/header.js
@@ -4,6 +4,7 @@
// the data could not be faithfully encoded in a simple header.
// (Also, check header.needPax to see if it needs a pax header.)
+const Buffer = require('./buffer.js')
const types = require('./types.js')
const pathModule = require('path')
const large = require('./large-numbers.js')
@@ -33,9 +34,9 @@ class Header {
this.atime = null
this.ctime = null
- if (Buffer.isBuffer(data)) {
+ if (Buffer.isBuffer(data))
this.decode(data, off || 0)
- } else if (data)
+ else if (data)
this.set(data)
}
diff --git a/deps/npm/node_modules/tar/lib/list.js b/deps/npm/node_modules/tar/lib/list.js
index 1f5e70bd36..250ebe0017 100644
--- a/deps/npm/node_modules/tar/lib/list.js
+++ b/deps/npm/node_modules/tar/lib/list.js
@@ -1,5 +1,7 @@
'use strict'
+const Buffer = require('./buffer.js')
+
// XXX: This shares a lot in common with extract.js
// maybe some DRY opportunity here?
@@ -7,6 +9,7 @@
const hlo = require('./high-level-opt.js')
const Parser = require('./parse.js')
const fs = require('fs')
+const fsm = require('fs-minipass')
const path = require('path')
const t = module.exports = (opt_, files, cb) => {
@@ -111,15 +114,10 @@ const listFile = (opt, cb) => {
fs.stat(file, (er, stat) => {
if (er)
reject(er)
- else if (stat.size < readSize)
- fs.readFile(file, (er, data) => {
- if (er)
- return reject(er)
- parse.end(data)
- })
else {
- const stream = fs.createReadStream(file, {
- highWaterMark: readSize
+ const stream = new fsm.ReadStream(file, {
+ readSize: readSize,
+ size: stat.size
})
stream.on('error', reject)
stream.pipe(parse)
diff --git a/deps/npm/node_modules/tar/lib/mkdir.js b/deps/npm/node_modules/tar/lib/mkdir.js
index 2a8f461afe..382329ef51 100644
--- a/deps/npm/node_modules/tar/lib/mkdir.js
+++ b/deps/npm/node_modules/tar/lib/mkdir.js
@@ -145,7 +145,6 @@ const mkdirSync = module.exports.sync = (dir, opt) => {
chownr.sync(created, uid, gid)
if (needChmod)
fs.chmodSync(dir, mode)
- cache.set(dir, true)
}
if (cache && cache.get(dir) === true)
diff --git a/deps/npm/node_modules/tar/lib/pack.js b/deps/npm/node_modules/tar/lib/pack.js
index 09b6ac590b..180e332e9c 100644
--- a/deps/npm/node_modules/tar/lib/pack.js
+++ b/deps/npm/node_modules/tar/lib/pack.js
@@ -1,5 +1,7 @@
'use strict'
+const Buffer = require('./buffer.js')
+
// A readable tar stream creator
// Technically, this is a transform stream that you write paths into,
// and tar format comes out of.
@@ -88,6 +90,8 @@ const Pack = warner(class Pack extends MiniPass {
this.portable = !!opt.portable
this.noDirRecurse = !!opt.noDirRecurse
this.follow = !!opt.follow
+ this.noMtime = !!opt.noMtime
+ this.mtime = opt.mtime || null
this.filter = typeof opt.filter === 'function' ? opt.filter : _ => true
@@ -291,17 +295,18 @@ const Pack = warner(class Pack extends MiniPass {
strict: this.strict,
portable: this.portable,
linkCache: this.linkCache,
- statCache: this.statCache
+ statCache: this.statCache,
+ noMtime: this.noMtime,
+ mtime: this.mtime
}
}
[ENTRY] (job) {
this[JOBS] += 1
try {
- return new this[WRITEENTRYCLASS](
- job.path, this[ENTRYOPT](job)).on('end', _ => {
- this[JOBDONE](job)
- }).on('error', er => this.emit('error', er))
+ return new this[WRITEENTRYCLASS](job.path, this[ENTRYOPT](job))
+ .on('end', () => this[JOBDONE](job))
+ .on('error', er => this.emit('error', er))
} catch (er) {
this.emit('error', er)
}
@@ -378,7 +383,6 @@ class PackSync extends Pack {
job.path.slice(this.prefix.length + 1) || './'
: job.path
-
const base = p === './' ? '' : p.replace(/\/*$/, '/')
this[ADDFSENTRY](base + entry)
})
diff --git a/deps/npm/node_modules/tar/lib/parse.js b/deps/npm/node_modules/tar/lib/parse.js
index 63c7ee9cef..2a73b2bb72 100644
--- a/deps/npm/node_modules/tar/lib/parse.js
+++ b/deps/npm/node_modules/tar/lib/parse.js
@@ -30,7 +30,7 @@ const Entry = require('./read-entry.js')
const Pax = require('./pax.js')
const zlib = require('minizlib')
-const gzipHeader = new Buffer([0x1f, 0x8b])
+const gzipHeader = Buffer.from([0x1f, 0x8b])
const STATE = Symbol('state')
const WRITEENTRY = Symbol('writeEntry')
const READENTRY = Symbol('readEntry')
@@ -262,7 +262,8 @@ module.exports = warner(class Parser extends EE {
abort (msg, error) {
this[ABORTED] = true
this.warn(msg, error)
- this.emit('abort')
+ this.emit('abort', error)
+ this.emit('error', error)
}
write (chunk) {
@@ -289,12 +290,15 @@ module.exports = warner(class Parser extends EE {
this[UNZIP] = new zlib.Unzip()
this[UNZIP].on('data', chunk => this[CONSUMECHUNK](chunk))
this[UNZIP].on('error', er =>
- this.abort('zlib error: ' + er.message, er))
+ this.abort(er.message, er))
this[UNZIP].on('end', _ => {
this[ENDED] = true
this[CONSUMECHUNK]()
})
- return ended ? this[UNZIP].end(chunk) : this[UNZIP].write(chunk)
+ this[WRITING] = true
+ const ret = this[UNZIP][ended ? 'end' : 'write' ](chunk)
+ this[WRITING] = false
+ return ret
}
}
@@ -324,7 +328,10 @@ module.exports = warner(class Parser extends EE {
}
[MAYBEEND] () {
- if (this[ENDED] && !this[EMITTEDEND] && !this[ABORTED]) {
+ if (this[ENDED] &&
+ !this[EMITTEDEND] &&
+ !this[ABORTED] &&
+ !this[CONSUMING]) {
this[EMITTEDEND] = true
const entry = this[WRITEENTRY]
if (entry && entry.blockRemain) {
diff --git a/deps/npm/node_modules/tar/lib/pax.js b/deps/npm/node_modules/tar/lib/pax.js
index 214a459f3b..9d7e4aba52 100644
--- a/deps/npm/node_modules/tar/lib/pax.js
+++ b/deps/npm/node_modules/tar/lib/pax.js
@@ -1,4 +1,5 @@
'use strict'
+const Buffer = require('./buffer.js')
const Header = require('./header.js')
const path = require('path')
diff --git a/deps/npm/node_modules/tar/lib/replace.js b/deps/npm/node_modules/tar/lib/replace.js
index aac6b57fa8..571cee94ab 100644
--- a/deps/npm/node_modules/tar/lib/replace.js
+++ b/deps/npm/node_modules/tar/lib/replace.js
@@ -1,10 +1,12 @@
'use strict'
+const Buffer = require('./buffer.js')
// tar -r
const hlo = require('./high-level-opt.js')
const Pack = require('./pack.js')
const Parse = require('./parse.js')
const fs = require('fs')
+const fsm = require('fs-minipass')
const t = require('./list.js')
const path = require('path')
@@ -39,6 +41,8 @@ const replaceSync = (opt, files) => {
let threw = true
let fd
+ let position
+
try {
try {
fd = fs.openSync(opt.file, 'r+')
@@ -51,7 +55,6 @@ const replaceSync = (opt, files) => {
const st = fs.fstatSync(fd)
const headBuf = Buffer.alloc(512)
- let position
POSITION: for (position = 0; position < st.size; position += 512) {
for (let bufPos = 0, bytes = 0; bufPos < 512; bufPos += bytes) {
@@ -78,21 +81,24 @@ const replaceSync = (opt, files) => {
if (opt.mtimeCache)
opt.mtimeCache.set(h.path, h.mtime)
}
-
- p.on('data', c => {
- fs.writeSync(fd, c, 0, c.length, position)
- position += c.length
- })
- p.on('end', _ => fs.closeSync(fd))
-
- addFilesSync(p, files)
threw = false
+
+ streamSync(opt, p, position, fd, files)
} finally {
if (threw)
try { fs.closeSync(fd) } catch (er) {}
}
}
+const streamSync = (opt, p, position, fd, files) => {
+ const stream = new fsm.WriteStreamSync(opt.file, {
+ fd: fd,
+ start: position
+ })
+ p.pipe(stream)
+ addFilesSync(p, files)
+}
+
const replace = (opt, files, cb) => {
files = Array.from(files)
const p = new Pack(opt)
@@ -150,21 +156,24 @@ const replace = (opt, files, cb) => {
const promise = new Promise((resolve, reject) => {
p.on('error', reject)
+ let flag = 'r+'
const onopen = (er, fd) => {
- if (er) {
- if (er.code === 'ENOENT')
- return fs.open(opt.file, 'w+', onopen)
- return reject(er)
+ if (er && er.code === 'ENOENT' && flag === 'r+') {
+ flag = 'w+'
+ return fs.open(opt.file, flag, onopen)
}
+
+ if (er)
+ return reject(er)
+
fs.fstat(fd, (er, st) => {
if (er)
return reject(er)
getPos(fd, st.size, (er, position) => {
if (er)
return reject(er)
- const stream = fs.createWriteStream(opt.file, {
+ const stream = new fsm.WriteStream(opt.file, {
fd: fd,
- flags: 'r+',
start: position
})
p.pipe(stream)
@@ -174,7 +183,7 @@ const replace = (opt, files, cb) => {
})
})
}
- fs.open(opt.file, 'r+', onopen)
+ fs.open(opt.file, flag, onopen)
})
return cb ? promise.then(cb, cb) : promise
diff --git a/deps/npm/node_modules/tar/lib/unpack.js b/deps/npm/node_modules/tar/lib/unpack.js
index e8c80c6fd5..5b79cda09a 100644
--- a/deps/npm/node_modules/tar/lib/unpack.js
+++ b/deps/npm/node_modules/tar/lib/unpack.js
@@ -4,6 +4,7 @@ const assert = require('assert')
const EE = require('events').EventEmitter
const Parser = require('./parse.js')
const fs = require('fs')
+const fsm = require('fs-minipass')
const path = require('path')
const mkdir = require('./mkdir.js')
const mkdirSync = mkdir.sync
@@ -11,6 +12,7 @@ const wc = require('./winchars.js')
const ONENTRY = Symbol('onEntry')
const CHECKFS = Symbol('checkFs')
+const ISREUSABLE = Symbol('isReusable')
const MAKEFS = Symbol('makeFs')
const FILE = Symbol('file')
const DIRECTORY = Symbol('directory')
@@ -31,6 +33,51 @@ const SKIP = Symbol('skip')
const DOCHOWN = Symbol('doChown')
const UID = Symbol('uid')
const GID = Symbol('gid')
+const crypto = require('crypto')
+
+// Unlinks on Windows are not atomic.
+//
+// This means that if you have a file entry, followed by another
+// file entry with an identical name, and you cannot re-use the file
+// (because it's a hardlink, or because unlink:true is set, or it's
+// Windows, which does not have useful nlink values), then the unlink
+// will be committed to the disk AFTER the new file has been written
+// over the old one, deleting the new file.
+//
+// To work around this, on Windows systems, we rename the file and then
+// delete the renamed file. It's a sloppy kludge, but frankly, I do not
+// know of a better way to do this, given windows' non-atomic unlink
+// semantics.
+//
+// See: https://github.com/npm/node-tar/issues/183
+/* istanbul ignore next */
+const unlinkFile = (path, cb) => {
+ if (process.platform !== 'win32')
+ return fs.unlink(path, cb)
+
+ const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
+ fs.rename(path, name, er => {
+ if (er)
+ return cb(er)
+ fs.unlink(name, cb)
+ })
+}
+
+/* istanbul ignore next */
+const unlinkFileSync = path => {
+ if (process.platform !== 'win32')
+ return fs.unlinkSync(path)
+
+ const name = path + '.DELETE.' + crypto.randomBytes(16).toString('hex')
+ fs.renameSync(path, name)
+ fs.unlinkSync(name)
+}
+
+// this.gid, entry.gid, this.processUid
+const uint32 = (a, b, c) =>
+ a === a >>> 0 ? a
+ : b === b >>> 0 ? b
+ : c
class Unpack extends Parser {
constructor (opt) {
@@ -44,6 +91,8 @@ class Unpack extends Parser {
super(opt)
+ this.transform = typeof opt.transform === 'function' ? opt.transform : null
+
this.writable = true
this.readable = false
@@ -79,6 +128,10 @@ class Unpack extends Parser {
this.processGid = (this.preserveOwner || this.setOwner) && process.getgid ?
process.getgid() : null
+ // mostly just for testing, but useful in some cases.
+ // Forcibly trigger a chown on every entry, no matter what
+ this.forceChown = opt.forceChown === true
+
// turn ><?| in filenames into 0xf000-higher encoded forms
this.win32 = !!opt.win32 || process.platform === 'win32'
@@ -215,7 +268,8 @@ class Unpack extends Parser {
[DOCHOWN] (entry) {
// in preserve owner mode, chown if the entry doesn't match process
// in set owner mode, chown if setting doesn't match process
- return this.preserveOwner &&
+ return this.forceChown ||
+ this.preserveOwner &&
( typeof entry.uid === 'number' && entry.uid !== this.processUid ||
typeof entry.gid === 'number' && entry.gid !== this.processGid )
||
@@ -224,41 +278,62 @@ class Unpack extends Parser {
}
[UID] (entry) {
- return typeof this.uid === 'number' ? this.uid
- : typeof entry.uid === 'number' ? entry.uid
- : this.processUid
+ return uint32(this.uid, entry.uid, this.processUid)
}
[GID] (entry) {
- return typeof this.gid === 'number' ? this.gid
- : typeof entry.gid === 'number' ? entry.gid
- : this.processGid
+ return uint32(this.gid, entry.gid, this.processGid)
}
[FILE] (entry) {
const mode = entry.mode & 0o7777 || this.fmode
- const stream = fs.createWriteStream(entry.absolute, { mode: mode })
+ const stream = new fsm.WriteStream(entry.absolute, {
+ mode: mode,
+ autoClose: false
+ })
stream.on('error', er => this[ONERROR](er, entry))
- const queue = []
- const processQueue = _ => {
- const action = queue.shift()
- if (action)
- action(processQueue)
- else
- this[UNPEND]()
+ let actions = 1
+ const done = er => {
+ if (er)
+ return this[ONERROR](er, entry)
+
+ if (--actions === 0)
+ fs.close(stream.fd, _ => this[UNPEND]())
}
- stream.on('close', _ => {
- if (entry.mtime && !this.noMtime)
- queue.push(cb =>
- fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, cb))
- if (this[DOCHOWN](entry))
- queue.push(cb =>
- fs.chown(entry.absolute, this[UID](entry), this[GID](entry), cb))
- processQueue()
+ stream.on('finish', _ => {
+ // if futimes fails, try utimes
+ // if utimes fails, fail with the original error
+ // same for fchown/chown
+ const abs = entry.absolute
+ const fd = stream.fd
+
+ if (entry.mtime && !this.noMtime) {
+ actions++
+ const atime = entry.atime || new Date()
+ const mtime = entry.mtime
+ fs.futimes(fd, atime, mtime, er =>
+ er ? fs.utimes(abs, atime, mtime, er2 => done(er2 && er))
+ : done())
+ }
+
+ if (this[DOCHOWN](entry)) {
+ actions++
+ const uid = this[UID](entry)
+ const gid = this[GID](entry)
+ fs.fchown(fd, uid, gid, er =>
+ er ? fs.chown(abs, uid, gid, er2 => done(er2 && er))
+ : done())
+ }
+
+ done()
})
- entry.pipe(stream)
+
+ const tx = this.transform ? this.transform(entry) || entry : entry
+ if (tx !== entry)
+ entry.pipe(tx)
+ tx.pipe(stream)
}
[DIRECTORY] (entry) {
@@ -267,25 +342,25 @@ class Unpack extends Parser {
if (er)
return this[ONERROR](er, entry)
- const queue = []
- const processQueue = _ => {
- const action = queue.shift()
- if (action)
- action(processQueue)
- else {
+ let actions = 1
+ const done = _ => {
+ if (--actions === 0) {
this[UNPEND]()
entry.resume()
}
}
- if (entry.mtime && !this.noMtime)
- queue.push(cb =>
- fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, cb))
- if (this[DOCHOWN](entry))
- queue.push(cb =>
- fs.chown(entry.absolute, this[UID](entry), this[GID](entry), cb))
+ if (entry.mtime && !this.noMtime) {
+ actions++
+ fs.utimes(entry.absolute, entry.atime || new Date(), entry.mtime, done)
+ }
- processQueue()
+ if (this[DOCHOWN](entry)) {
+ actions++
+ fs.chown(entry.absolute, this[UID](entry), this[GID](entry), done)
+ }
+
+ done()
})
}
@@ -316,6 +391,17 @@ class Unpack extends Parser {
entry.resume()
}
+ // Check if we can reuse an existing filesystem entry safely and
+ // overwrite it, rather than unlinking and recreating
+ // Windows doesn't report a useful nlink, so we just never reuse entries
+ [ISREUSABLE] (entry, st) {
+ return entry.type === 'File' &&
+ !this.unlink &&
+ st.isFile() &&
+ st.nlink <= 1 &&
+ process.platform !== 'win32'
+ }
+
// check if a thing is there, and if so, try to clobber it
[CHECKFS] (entry) {
this[PEND]()
@@ -325,7 +411,7 @@ class Unpack extends Parser {
fs.lstat(entry.absolute, (er, st) => {
if (st && (this.keep || this.newer && st.mtime > entry.mtime))
this[SKIP](entry)
- else if (er || (entry.type === 'File' && !this.unlink && st.isFile()))
+ else if (er || this[ISREUSABLE](entry, st))
this[MAKEFS](null, entry)
else if (st.isDirectory()) {
if (entry.type === 'Directory') {
@@ -336,7 +422,7 @@ class Unpack extends Parser {
} else
fs.rmdir(entry.absolute, er => this[MAKEFS](er, entry))
} else
- fs.unlink(entry.absolute, er => this[MAKEFS](er, entry))
+ unlinkFile(entry.absolute, er => this[MAKEFS](er, entry))
})
})
}
@@ -387,7 +473,7 @@ class UnpackSync extends Unpack {
const st = fs.lstatSync(entry.absolute)
if (this.keep || this.newer && st.mtime > entry.mtime)
return this[SKIP](entry)
- else if (entry.type === 'File' && !this.unlink && st.isFile())
+ else if (this[ISREUSABLE](entry, st))
return this[MAKEFS](null, entry)
else {
try {
@@ -398,7 +484,7 @@ class UnpackSync extends Unpack {
} else
fs.rmdirSync(entry.absolute)
} else
- fs.unlinkSync(entry.absolute)
+ unlinkFileSync(entry.absolute)
return this[MAKEFS](null, entry)
} catch (er) {
return this[ONERROR](er, entry)
@@ -411,23 +497,67 @@ class UnpackSync extends Unpack {
[FILE] (entry) {
const mode = entry.mode & 0o7777 || this.fmode
+
+ const oner = er => {
+ try { fs.closeSync(fd) } catch (_) {}
+ if (er)
+ this[ONERROR](er, entry)
+ }
+
+ let stream
+ let fd
try {
- const fd = fs.openSync(entry.absolute, 'w', mode)
- entry.on('data', buf => fs.writeSync(fd, buf, 0, buf.length, null))
- entry.on('end', _ => {
- if (entry.mtime && !this.noMtime) {
+ fd = fs.openSync(entry.absolute, 'w', mode)
+ } catch (er) {
+ return oner(er)
+ }
+ const tx = this.transform ? this.transform(entry) || entry : entry
+ if (tx !== entry)
+ entry.pipe(tx)
+
+ tx.on('data', chunk => {
+ try {
+ fs.writeSync(fd, chunk, 0, chunk.length)
+ } catch (er) {
+ oner(er)
+ }
+ })
+
+ tx.on('end', _ => {
+ let er = null
+ // try both, falling futimes back to utimes
+ // if either fails, handle the first error
+ if (entry.mtime && !this.noMtime) {
+ const atime = entry.atime || new Date()
+ const mtime = entry.mtime
+ try {
+ fs.futimesSync(fd, atime, mtime)
+ } catch (futimeser) {
try {
- fs.futimesSync(fd, entry.atime || new Date(), entry.mtime)
- } catch (er) {}
+ fs.utimesSync(entry.absolute, atime, mtime)
+ } catch (utimeser) {
+ er = futimeser
+ }
}
- if (this[DOCHOWN](entry)) {
+ }
+
+ if (this[DOCHOWN](entry)) {
+ const uid = this[UID](entry)
+ const gid = this[GID](entry)
+
+ try {
+ fs.fchownSync(fd, uid, gid)
+ } catch (fchowner) {
try {
- fs.fchownSync(fd, this[UID](entry), this[GID](entry))
- } catch (er) {}
+ fs.chownSync(entry.absolute, uid, gid)
+ } catch (chowner) {
+ er = er || fchowner
+ }
}
- try { fs.closeSync(fd) } catch (er) { this[ONERROR](er, entry) }
- })
- } catch (er) { this[ONERROR](er, entry) }
+ }
+
+ oner(er)
+ })
}
[DIRECTORY] (entry) {
diff --git a/deps/npm/node_modules/tar/lib/write-entry.js b/deps/npm/node_modules/tar/lib/write-entry.js
index f562bf138a..7b43ebcd35 100644
--- a/deps/npm/node_modules/tar/lib/write-entry.js
+++ b/deps/npm/node_modules/tar/lib/write-entry.js
@@ -1,4 +1,5 @@
'use strict'
+const Buffer = require('./buffer.js')
const MiniPass = require('minipass')
const Pax = require('./pax.js')
const Header = require('./header.js')
@@ -44,6 +45,9 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
this.cwd = opt.cwd || process.cwd()
this.strict = !!opt.strict
this.noPax = !!opt.noPax
+ this.noMtime = !!opt.noMtime
+ this.mtime = opt.mtime || null
+
if (typeof opt.onwarn === 'function')
this.on('warn', opt.onwarn)
@@ -101,6 +105,9 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
}
[HEADER] () {
+ if (this.type === 'Directory' && this.portable)
+ this.noMtime = true
+
this.header = new Header({
path: this.path,
linkpath: this.linkpath,
@@ -110,8 +117,7 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
uid: this.portable ? null : this.stat.uid,
gid: this.portable ? null : this.stat.gid,
size: this.stat.size,
- mtime: this.type === 'Directory' && this.portable
- ? null : this.stat.mtime,
+ mtime: this.noMtime ? null : this.mtime || this.stat.mtime,
type: this.type,
uname: this.portable ? null :
this.stat.uid === this.myuid ? this.myuser : '',
@@ -124,7 +130,7 @@ const WriteEntry = warner(class WriteEntry extends MiniPass {
atime: this.portable ? null : this.header.atime,
ctime: this.portable ? null : this.header.ctime,
gid: this.portable ? null : this.header.gid,
- mtime: this.header.mtime,
+ mtime: this.noMtime ? null : this.mtime || this.header.mtime,
path: this.path,
linkpath: this.linkpath,
size: this.header.size,
@@ -294,28 +300,30 @@ const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
constructor (readEntry, opt) {
opt = opt || {}
super(opt)
+ this.preservePaths = !!opt.preservePaths
+ this.portable = !!opt.portable
+ this.strict = !!opt.strict
+ this.noPax = !!opt.noPax
+ this.noMtime = !!opt.noMtime
+
this.readEntry = readEntry
this.type = readEntry.type
+ if (this.type === 'Directory' && this.portable)
+ this.noMtime = true
+
this.path = readEntry.path
this.mode = readEntry.mode
if (this.mode)
this.mode = this.mode & 0o7777
- this.uid = readEntry.uid
- this.gid = readEntry.gid
- this.uname = readEntry.uname
- this.gname = readEntry.gname
+ this.uid = this.portable ? null : readEntry.uid
+ this.gid = this.portable ? null : readEntry.gid
+ this.uname = this.portable ? null : readEntry.uname
+ this.gname = this.portable ? null : readEntry.gname
this.size = readEntry.size
- this.mtime = readEntry.mtime
- this.atime = readEntry.atime
- this.ctime = readEntry.ctime
+ this.mtime = this.noMtime ? null : opt.mtime || readEntry.mtime
+ this.atime = this.portable ? null : readEntry.atime
+ this.ctime = this.portable ? null : readEntry.ctime
this.linkpath = readEntry.linkpath
- this.uname = readEntry.uname
- this.gname = readEntry.gname
-
- this.preservePaths = !!opt.preservePaths
- this.portable = !!opt.portable
- this.strict = !!opt.strict
- this.noPax = !!opt.noPax
if (typeof opt.onwarn === 'function')
this.on('warn', opt.onwarn)
@@ -341,7 +349,7 @@ const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
uid: this.portable ? null : this.uid,
gid: this.portable ? null : this.gid,
size: this.size,
- mtime: this.mtime,
+ mtime: this.noMtime ? null : this.mtime,
type: this.type,
uname: this.portable ? null : this.uname,
atime: this.portable ? null : this.atime,
@@ -353,7 +361,7 @@ const WriteEntryTar = warner(class WriteEntryTar extends MiniPass {
atime: this.portable ? null : this.atime,
ctime: this.portable ? null : this.ctime,
gid: this.portable ? null : this.gid,
- mtime: this.mtime,
+ mtime: this.noMtime ? null : this.mtime,
path: this.path,
linkpath: this.linkpath,
size: this.size,
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/.npmignore b/deps/npm/node_modules/tar/node_modules/minipass/.npmignore
deleted file mode 100644
index 183822a7ff..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-.*.swp
-node_modules
-.nyc_output/
-coverage/
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/.travis.yml b/deps/npm/node_modules/tar/node_modules/minipass/.travis.yml
deleted file mode 100644
index 59410a36d0..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/.travis.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-language: node_js
-sudo: false
-node_js:
- - 7
-cache:
- directories:
- - /Users/isaacs/.npm
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/README.md b/deps/npm/node_modules/tar/node_modules/minipass/README.md
deleted file mode 100644
index 97eadeaeae..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/README.md
+++ /dev/null
@@ -1,46 +0,0 @@
-# minipass
-
-A _very_ minimal implementation of a [PassThrough
-stream](https://nodejs.org/api/stream.html#stream_class_stream_passthrough)
-
-[It's very
-fast](https://docs.google.com/spreadsheets/d/1oObKSrVwLX_7Ut4Z6g3fZW-AX1j1-k6w-cDsrkaSbHM/edit#gid=0)
-for objects, strings, and buffers.
-
-Supports pipe()ing (including multi-pipe() and backpressure
-transmission), buffering data until either a `data` event handler or
-`pipe()` is added (so you don't lose the first chunk), and most other
-cases where PassThrough is a good idea.
-
-There is a `read()` method, but it's much more efficient to consume
-data from this stream via `'data'` events or by calling `pipe()` into
-some other stream. Calling `read()` requires the buffer to be
-flattened in some cases, which requires copying memory. Also,
-`read()` always returns Buffers, even if an `encoding` option is
-specified.
-
-There is also no `unpipe()` method. Once you start piping, there is
-no stopping it!
-
-If you set `objectMode: true` in the options, then whatever is written
-will be emitted. Otherwise, it'll do a minimal amount of Buffer
-copying to ensure proper Streams semantics when `read(n)` is called.
-
-This is not a `through` or `through2` stream. It doesn't transform
-the data, it just passes it right through. If you want to transform
-the data, extend the class, and override the `write()` method. Once
-you're done transforming the data however you want, call
-`super.write()` with the transform output.
-
-For an example of a stream that extends MiniPass to provide transform
-capabilities, check out [minizlib](http://npm.im/minizlib).
-
-## USAGE
-
-```js
-const MiniPass = require('minipass')
-const mp = new MiniPass(options) // optional: { encoding }
-mp.write('foo')
-mp.pipe(someOtherStream)
-mp.end('bar')
-```
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/b.js b/deps/npm/node_modules/tar/node_modules/minipass/b.js
deleted file mode 100644
index 324c4190a0..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/b.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const MiniPass = require('./')
-const butterfly = 'šŸ¦‹'
-var mp = new MiniPass({ encoding: 'utf8' })
-mp.on('data', chunk => {
- console.error('data %s', chunk)
-})
-var butterbuf = new Buffer([0xf0, 0x9f, 0xa6, 0x8b])
-mp.write(butterbuf.slice(0, 1))
-mp.write(butterbuf.slice(1, 2))
-mp.write(butterbuf.slice(2, 3))
-mp.write(butterbuf.slice(3, 4))
-mp.end()
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js
deleted file mode 100644
index 8e7841a87c..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-minipass.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict'
-const MiniPass = require('../..')
-
-module.exports = class ExtendMiniPass extends MiniPass {
- constructor (opts) {
- super(opts)
- }
- write (data, encoding) {
- return super.write(data, encoding)
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js
deleted file mode 100644
index 6a021084c4..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-through2.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict'
-const through2 = require('through2')
-module.exports = function (opt) {
- return opt.objectMode
- ? through2.obj(func)
- : through2(func)
-
- function func (data, enc, done) {
- this.push(data, enc)
- done()
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js
deleted file mode 100644
index 1d2d24026d..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/extend-transform.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict'
-const stream = require('stream')
-module.exports = class ExtendTransform extends stream.Transform {
- constructor (opts) {
- super(opts)
- }
- _transform (data, enc, done) {
- this.push(data, enc)
- done()
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js
deleted file mode 100644
index 13f6e916b9..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/nullsink.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'use strict'
-const EE = require('events').EventEmitter
-
-module.exports = class NullSink extends EE {
- write (data, encoding, next) {
- if (next) next()
- return true
- }
- end () {
- this.emit('finish')
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js
deleted file mode 100644
index bd1593299a..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/numbers.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict'
-const stream = require('stream')
-
-const numbers = new Array(1000).join(',').split(',').map((v, k) => k)
-let acc = ''
-const strings = numbers.map(n => acc += n)
-const bufs = strings.map(s => new Buffer(s))
-const objs = strings.map(s => ({ str: s }))
-
-module.exports = class Numbers {
- constructor (opt) {
- this.objectMode = opt.objectMode
- this.encoding = opt.encoding
- this.ii = 0
- this.done = false
- }
- pipe (dest) {
- this.dest = dest
- this.go()
- return dest
- }
-
- go () {
- let flowing = true
- while (flowing) {
- if (this.ii >= 1000) {
- this.dest.end()
- this.done = true
- flowing = false
- } else {
- flowing = this.dest.write(
- (this.objectMode ? objs
- : this.encoding ? strings
- : bufs)[this.ii++])
- }
- }
-
- if (!this.done)
- this.dest.once('drain', _ => this.go())
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js
deleted file mode 100644
index 8d8fe3d80d..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/lib/timer.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict'
-module.exports = _ => {
- const start = process.hrtime()
- return _ => {
- const end = process.hrtime(start)
- const ms = Math.round(end[0]*1e6 + end[1]/1e3)/1e3
- if (!process.env.isTTY)
- console.log(ms)
- else {
- const s = Math.round(end[0]*10 + end[1]/1e8)/10
- const ss = s <= 1 ? '' : ' (' + s + 's)'
- console.log('%d%s', ms, ss)
- }
- }
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/bench/test.js b/deps/npm/node_modules/tar/node_modules/minipass/bench/test.js
deleted file mode 100644
index 29c9fd07d6..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/bench/test.js
+++ /dev/null
@@ -1,160 +0,0 @@
-'use strict'
-
-const iterations = +process.env.BENCH_TEST_ITERATION || 100
-const testCount = +process.env.BENCH_TEST_COUNT || 20
-
-const tests = [
- 'baseline',
- 'minipass',
- 'extend-minipass',
- 'through2',
- 'extend-through2',
- 'passthrough',
- 'extend-transform'
-]
-
-const manyOpts = [ 'many', 'single' ]
-const typeOpts = [ 'buffer', 'string', 'object' ]
-
-const main = () => {
- const spawn = require('child_process').spawn
- const node = process.execPath
-
- const results = {}
-
- const testSet = []
- tests.forEach(t =>
- manyOpts.forEach(many =>
- typeOpts.forEach(type =>
- new Array(testCount).join(',').split(',').forEach(() =>
- t !== 'baseline' || (many === 'single' && type === 'object')
- ? testSet.push([t, many, type]) : null))))
-
- let didFirst = false
- const mainRunTest = t => {
- if (!t)
- return afterMain(results)
-
- const k = t.join('\t')
- if (!results[k]) {
- results[k] = []
- if (!didFirst)
- didFirst = true
- else
- process.stderr.write('\n')
-
- process.stderr.write(k + ' #')
- } else {
- process.stderr.write('#')
- }
-
- const c = spawn(node, [__filename].concat(t), {
- stdio: [ 'ignore', 'pipe', 2 ]
- })
- let out = ''
- c.stdout.on('data', c => out += c)
- c.on('close', (code, signal) => {
- if (code || signal)
- throw new Error('failed: ' + code + ' ' + signal)
- results[k].push(+out)
- mainRunTest(testSet.shift())
- })
- }
-
- mainRunTest(testSet.shift())
-}
-
-const afterMain = results => {
- console.log('test\tmany\ttype\tops/s\tmean\tmedian\tmax\tmin' +
- '\tstdev\trange\traw')
- // get the mean, median, stddev, and range of each test
- Object.keys(results).forEach(test => {
- const k = results[test].sort((a, b) => a - b)
- const min = k[0]
- const max = k[ k.length - 1 ]
- const range = max - min
- const sum = k.reduce((a,b) => a + b, 0)
- const mean = sum / k.length
- const ops = iterations / mean * 1000
- const devs = k.map(n => n - mean).map(n => n * n)
- const avgdev = devs.reduce((a,b) => a + b, 0) / k.length
- const stdev = Math.pow(avgdev, 0.5)
- const median = k.length % 2 ? k[Math.floor(k.length / 2)] :
- (k[k.length/2] + k[k.length/2+1])/2
- console.log(
- '%s\t%d\t%d\t%d\t%d\t%d\t%d\t%d\t%s', test, round(ops),
- round(mean), round(median),
- max, min, round(stdev), round(range),
- k.join('\t'))
- })
-}
-
-const round = num => Math.round(num * 1000)/1000
-
-const test = (testname, many, type) => {
- const timer = require('./lib/timer.js')
- const Class = getClass(testname)
-
- const done = timer()
- runTest(Class, many, type, iterations, done)
-}
-
-// don't blow up the stack! loop unless deferred
-const runTest = (Class, many, type, iterations, done) => {
- const Nullsink = require('./lib/nullsink.js')
- const Numbers = require('./lib/numbers.js')
- const opt = {}
- if (type === 'string')
- opt.encoding = 'utf8'
- else if (type === 'object')
- opt.objectMode = true
-
- while (iterations--) {
- let finished = false
- let inloop = true
- const after = iterations === 0 ? done
- : () => {
- if (iterations === 0)
- done()
- else if (inloop)
- finished = true
- else
- runTest(Class, many, type, iterations, done)
- }
-
- const out = new Nullsink().on('finish', after)
- let sink = Class ? new Class(opt) : out
-
- if (many && Class)
- sink = sink
- .pipe(new Class(opt))
- .pipe(new Class(opt))
- .pipe(new Class(opt))
- .pipe(new Class(opt))
-
- if (sink !== out)
- sink.pipe(out)
-
- new Numbers(opt).pipe(sink)
-
- // keep tight-looping if the stream is done already
- if (!finished) {
- inloop = false
- break
- }
- }
-}
-
-const getClass = testname =>
- testname === 'through2' ? require('through2').obj
- : testname === 'extend-through2' ? require('./lib/extend-through2.js')
- : testname === 'minipass' ? require('../')
- : testname === 'extend-minipass' ? require('./lib/extend-minipass.js')
- : testname === 'passthrough' ? require('stream').PassThrough
- : testname === 'extend-transform' ? require('./lib/extend-transform.js')
- : null
-
-if (!process.argv[2])
- main()
-else
- test(process.argv[2], process.argv[3] === 'many', process.argv[4])
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/d.js b/deps/npm/node_modules/tar/node_modules/minipass/d.js
deleted file mode 100644
index ceea513960..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/d.js
+++ /dev/null
@@ -1,7 +0,0 @@
-var MD = require('./')
-var d = new MD()
-console.log(d.write('hello'))
-console.log(d.write('goodbye'))
-d.pipe(process.stderr)
-console.log(d.write('the end'))
-console.log(d.end())
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/e.js b/deps/npm/node_modules/tar/node_modules/minipass/e.js
deleted file mode 100644
index f1da6c7460..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/e.js
+++ /dev/null
@@ -1,17 +0,0 @@
-const MP = require('stream').PassThrough // require('./')
-const mp = new MP()
-const wait = (n) => new Promise(resolve => setTimeout(resolve, n))
-const t = require('tap')
-
-t.test('end ordering', async t => {
- mp.on('end', _ => console.log('end'))
- mp.end()
- console.log('called end')
- // mp.resume()
- // console.log('called resume()')
- // mp.read()
- // console.log('called read')
- mp.on('data', _=>_)
- console.log('added data handler')
- await wait(1)
-})
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/eos.js b/deps/npm/node_modules/tar/node_modules/minipass/eos.js
deleted file mode 100644
index 2250720940..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/eos.js
+++ /dev/null
@@ -1,12 +0,0 @@
-const EE = require('events').EventEmitter
-const eos = require('end-of-stream')
-const ee = new EE()
-ee.readable = ee.writable = true
-eos(ee, er => {
- if (er)
- throw er
- console.log('stream ended')
-})
-ee.emit('finish')
-ee.emit('close')
-ee.emit('end')
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/index.js b/deps/npm/node_modules/tar/node_modules/minipass/index.js
deleted file mode 100644
index 3a3ad412b5..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/index.js
+++ /dev/null
@@ -1,295 +0,0 @@
-'use strict'
-const EE = require('events')
-const Yallist = require('yallist')
-const EOF = Symbol('EOF')
-const MAYBE_EMIT_END = Symbol('maybeEmitEnd')
-const EMITTED_END = Symbol('emittedEnd')
-const CLOSED = Symbol('closed')
-const READ = Symbol('read')
-const FLUSH = Symbol('flush')
-const FLUSHCHUNK = Symbol('flushChunk')
-const SD = require('string_decoder').StringDecoder
-const ENCODING = Symbol('encoding')
-const DECODER = Symbol('decoder')
-const FLOWING = Symbol('flowing')
-const RESUME = Symbol('resume')
-const BUFFERLENGTH = Symbol('bufferLength')
-const BUFFERPUSH = Symbol('bufferPush')
-const BUFFERSHIFT = Symbol('bufferShift')
-const OBJECTMODE = Symbol('objectMode')
-
-class MiniPass extends EE {
- constructor (options) {
- super()
- this[FLOWING] = false
- this.pipes = new Yallist()
- this.buffer = new Yallist()
- this[OBJECTMODE] = options && options.objectMode || false
- if (this[OBJECTMODE])
- this[ENCODING] = null
- else
- this[ENCODING] = options && options.encoding || null
- if (this[ENCODING] === 'buffer')
- this[ENCODING] = null
- this[DECODER] = this[ENCODING] ? new SD(this[ENCODING]) : null
- this[EOF] = false
- this[EMITTED_END] = false
- this[CLOSED] = false
- this.writable = true
- this.readable = true
- this[BUFFERLENGTH] = 0
- }
-
- get bufferLength () { return this[BUFFERLENGTH] }
-
- get encoding () { return this[ENCODING] }
- set encoding (enc) {
- if (this[OBJECTMODE])
- throw new Error('cannot set encoding in objectMode')
-
- if (this[ENCODING] && enc !== this[ENCODING] &&
- (this[DECODER] && this[DECODER].lastNeed || this[BUFFERLENGTH]))
- throw new Error('cannot change encoding')
-
- if (this[ENCODING] !== enc) {
- this[DECODER] = enc ? new SD(enc) : null
- if (this.buffer.length)
- this.buffer = this.buffer.map(chunk => this[DECODER].write(chunk))
- }
-
- this[ENCODING] = enc
- }
-
- setEncoding (enc) {
- this.encoding = enc
- }
-
- write (chunk, encoding, cb) {
- if (this[EOF])
- throw new Error('write after end')
-
- if (typeof encoding === 'function')
- cb = encoding, encoding = 'utf8'
-
- if (!encoding)
- encoding = 'utf8'
-
- // fast-path writing strings of same encoding to a stream with
- // an empty buffer, skipping the buffer/decoder dance
- if (typeof chunk === 'string' && !this[OBJECTMODE] &&
- // unless it is a string already ready for us to use
- !(encoding === this[ENCODING] && !this[DECODER].lastNeed)) {
- chunk = new Buffer(chunk, encoding)
- }
-
- if (Buffer.isBuffer(chunk) && this[ENCODING])
- chunk = this[DECODER].write(chunk)
-
- try {
- return this.flowing
- ? (this.emit('data', chunk), this.flowing)
- : (this[BUFFERPUSH](chunk), false)
- } finally {
- this.emit('readable')
- if (cb)
- cb()
- }
- }
-
- read (n) {
- try {
- if (this[BUFFERLENGTH] === 0 || n === 0 || n > this[BUFFERLENGTH])
- return null
-
- if (this[OBJECTMODE])
- n = null
-
- if (this.buffer.length > 1 && !this[OBJECTMODE]) {
- if (this.encoding)
- this.buffer = new Yallist([
- Array.from(this.buffer).join('')
- ])
- else
- this.buffer = new Yallist([
- Buffer.concat(Array.from(this.buffer), this[BUFFERLENGTH])
- ])
- }
-
- return this[READ](n || null, this.buffer.head.value)
- } finally {
- this[MAYBE_EMIT_END]()
- }
- }
-
- [READ] (n, chunk) {
- if (n === chunk.length || n === null)
- this[BUFFERSHIFT]()
- else {
- this.buffer.head.value = chunk.slice(n)
- chunk = chunk.slice(0, n)
- this[BUFFERLENGTH] -= n
- }
-
- this.emit('data', chunk)
-
- if (!this.buffer.length && !this[EOF])
- this.emit('drain')
-
- return chunk
- }
-
- end (chunk, encoding, cb) {
- if (typeof chunk === 'function')
- cb = chunk, chunk = null
- if (typeof encoding === 'function')
- cb = encoding, encoding = 'utf8'
- if (chunk)
- this.write(chunk, encoding)
- if (cb)
- this.once('end', cb)
- this[EOF] = true
- this.writable = false
- if (this.flowing)
- this[MAYBE_EMIT_END]()
- }
-
- // don't let the internal resume be overwritten
- [RESUME] () {
- this[FLOWING] = true
- this.emit('resume')
- if (this.buffer.length)
- this[FLUSH]()
- else if (this[EOF])
- this[MAYBE_EMIT_END]()
- else
- this.emit('drain')
- }
-
- resume () {
- return this[RESUME]()
- }
-
- pause () {
- this[FLOWING] = false
- }
-
- get flowing () {
- return this[FLOWING]
- }
-
- [BUFFERPUSH] (chunk) {
- if (this[OBJECTMODE])
- this[BUFFERLENGTH] += 1
- else
- this[BUFFERLENGTH] += chunk.length
- return this.buffer.push(chunk)
- }
-
- [BUFFERSHIFT] () {
- if (this.buffer.length) {
- if (this[OBJECTMODE])
- this[BUFFERLENGTH] -= 1
- else
- this[BUFFERLENGTH] -= this.buffer.head.value.length
- }
- return this.buffer.shift()
- }
-
- [FLUSH] () {
- do {} while (this[FLUSHCHUNK](this[BUFFERSHIFT]()))
-
- if (!this.buffer.length && !this[EOF])
- this.emit('drain')
- }
-
- [FLUSHCHUNK] (chunk) {
- return chunk ? (this.emit('data', chunk), this.flowing) : false
- }
-
- pipe (dest, opts) {
- if (dest === process.stdout || dest === process.stderr)
- (opts = opts || {}).end = false
- const p = { dest: dest, opts: opts, ondrain: _ => this[RESUME]() }
- this.pipes.push(p)
-
- dest.on('drain', p.ondrain)
- this[RESUME]()
- return dest
- }
-
- addEventHandler (ev, fn) {
- return this.on(ev, fn)
- }
-
- on (ev, fn) {
- try {
- return super.on(ev, fn)
- } finally {
- if (ev === 'data' && !this.pipes.length && !this.flowing) {
- this[RESUME]()
- }
- }
- }
-
- get emittedEnd () {
- return this[EMITTED_END]
- }
-
- [MAYBE_EMIT_END] () {
- if (!this[EMITTED_END] && this.buffer.length === 0 && this[EOF]) {
- this.emit('end')
- this.emit('prefinish')
- this.emit('finish')
- if (this[CLOSED])
- this.emit('close')
- }
- }
-
- emit (ev, data) {
- if (ev === 'data') {
- if (!data)
- return
-
- if (this.pipes.length)
- this.pipes.forEach(p => p.dest.write(data) || this.pause())
- } else if (ev === 'end') {
- if (this[DECODER]) {
- data = this[DECODER].end()
- if (data) {
- this.pipes.forEach(p => p.dest.write(data))
- super.emit('data', data)
- }
- }
- this.pipes.forEach(p => {
- p.dest.removeListener('drain', p.ondrain)
- if (!p.opts || p.opts.end !== false)
- p.dest.end()
- })
- this[EMITTED_END] = true
- this.readable = false
- } else if (ev === 'close') {
- this[CLOSED] = true
- // don't emit close before 'end' and 'finish'
- if (!this[EMITTED_END])
- return
- }
-
- const args = new Array(arguments.length)
- args[0] = ev
- args[1] = data
- if (arguments.length > 2) {
- for (let i = 2; i < arguments.length; i++) {
- args[i] = arguments[i]
- }
- }
-
- try {
- return super.emit.apply(this, args)
- } finally {
- if (ev !== 'end')
- this[MAYBE_EMIT_END]()
- }
- }
-}
-
-module.exports = MiniPass
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsx b/deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsx
deleted file mode 100644
index 05e19a41b7..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/minipass-benchmarks.xlsx
+++ /dev/null
Binary files differ
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/package.json b/deps/npm/node_modules/tar/node_modules/minipass/package.json
deleted file mode 100644
index 52856521fc..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "minipass@^2.0.2",
- "_id": "minipass@2.2.1",
- "_inBundle": false,
- "_integrity": "sha512-u1aUllxPJUI07cOqzR7reGmQxmCqlH88uIIsf6XZFEWgw7gXKpJdR+5R9Y3KEDmWYkdIz9wXZs3C0jOPxejk/Q==",
- "_location": "/tar/minipass",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minipass@^2.0.2",
- "name": "minipass",
- "escapedName": "minipass",
- "rawSpec": "^2.0.2",
- "saveSpec": null,
- "fetchSpec": "^2.0.2"
- },
- "_requiredBy": [
- "/tar",
- "/tar/minizlib"
- ],
- "_resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.1.tgz",
- "_shasum": "5ada97538b1027b4cf7213432428578cb564011f",
- "_spec": "minipass@^2.0.2",
- "_where": "/Users/rebecca/code/npm/node_modules/tar",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minipass/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "yallist": "^3.0.0"
- },
- "deprecated": false,
- "description": "minimal implementation of a PassThrough stream",
- "devDependencies": {
- "end-of-stream": "^1.4.0",
- "tap": "^10.7.0",
- "through2": "^2.0.3"
- },
- "homepage": "https://github.com/isaacs/minipass#readme",
- "keywords": [
- "passthrough",
- "stream"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "minipass",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/minipass.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --100"
- },
- "version": "2.2.1"
-}
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/test/basic.js b/deps/npm/node_modules/tar/node_modules/minipass/test/basic.js
deleted file mode 100644
index e3885c808b..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/test/basic.js
+++ /dev/null
@@ -1,438 +0,0 @@
-const MiniPass = require('../')
-const t = require('tap')
-const EE = require('events').EventEmitter
-
-t.test('some basic piping and writing', async t => {
- let mp = new MiniPass({ encoding: 'base64' })
- t.notOk(mp.flowing)
- mp.flowing = true
- t.notOk(mp.flowing)
- t.equal(mp.encoding, 'base64')
- mp.encoding = null
- t.equal(mp.encoding, null)
- t.equal(mp.readable, true)
- t.equal(mp.writable, true)
- t.equal(mp.write('hello'), false)
- let dest = new MiniPass()
- let sawDestData = false
- dest.once('data', chunk => {
- sawDestData = true
- t.isa(chunk, Buffer)
- })
- t.equal(mp.pipe(dest), dest, 'pipe returns dest')
- t.ok(sawDestData, 'got data becasue pipe() flushes')
- t.equal(mp.write('bye'), true, 'write() returns true when flowing')
- dest.pause()
- t.equal(mp.write('after pause'), false, 'false when dest is paused')
- t.equal(mp.write('after false'), false, 'false when not flowing')
- t.equal(dest.buffer.length, 1, '1 item is buffered in dest')
- t.equal(mp.buffer.length, 1, '1 item buffered in src')
- dest.resume()
- t.equal(dest.buffer.length, 0, 'nothing is buffered in dest')
- t.equal(mp.buffer.length, 0, 'nothing buffered in src')
-})
-
-t.test('unicode splitting', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'utf8' })
- t.plan(2)
- t.equal(mp.encoding, 'utf8')
- mp.on('data', chunk => {
- t.equal(chunk, butterfly)
- })
- const butterbuf = new Buffer([0xf0, 0x9f, 0xa6, 0x8b])
- mp.write(butterbuf.slice(0, 1))
- mp.write(butterbuf.slice(1, 2))
- mp.write(butterbuf.slice(2, 3))
- mp.write(butterbuf.slice(3, 4))
- mp.end()
-})
-
-t.test('unicode splitting with setEncoding', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'hex' })
- t.plan(4)
- t.equal(mp.encoding, 'hex')
- mp.setEncoding('hex')
- t.equal(mp.encoding, 'hex')
- mp.setEncoding('utf8')
- t.equal(mp.encoding, 'utf8')
- mp.on('data', chunk => {
- t.equal(chunk, butterfly)
- })
- const butterbuf = new Buffer([0xf0, 0x9f, 0xa6, 0x8b])
- mp.write(butterbuf.slice(0, 1))
- mp.write(butterbuf.slice(1, 2))
- mp.write(butterbuf.slice(2, 3))
- mp.write(butterbuf.slice(3, 4))
- mp.end()
-})
-
-t.test('base64 -> utf8 piping', t => {
- t.plan(1)
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'base64' })
- const dest = new MiniPass({ encoding: 'utf8' })
- mp.pipe(dest)
- let out = ''
- dest.on('data', c => out += c)
- dest.on('end', _ =>
- t.equal(new Buffer(out, 'base64').toString('utf8'), butterfly))
- mp.write(butterfly)
- mp.end()
-})
-
-t.test('utf8 -> base64 piping', t => {
- t.plan(1)
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'utf8' })
- const dest = new MiniPass({ encoding: 'base64' })
- mp.pipe(dest)
- let out = ''
- dest.on('data', c => out += c)
- dest.on('end', _ =>
- t.equal(new Buffer(out, 'base64').toString('utf8'), butterfly))
- mp.write(butterfly)
- mp.end()
-})
-
-t.test('read method', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'utf8' })
- mp.on('data', c => t.equal(c, butterfly))
- mp.pause()
- mp.write(new Buffer(butterfly))
- t.equal(mp.read(5), null)
- t.equal(mp.read(0), null)
- t.same(mp.read(2), butterfly)
-})
-
-t.test('read with no args', async t => {
- t.test('buffer -> string', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'utf8' })
- mp.on('data', c => t.equal(c, butterfly))
- mp.pause()
- const butterbuf = new Buffer(butterfly)
- mp.write(butterbuf.slice(0, 2))
- mp.write(butterbuf.slice(2))
- t.same(mp.read(), butterfly)
- t.equal(mp.read(), null)
- })
-
- t.test('buffer -> buffer', async t => {
- const butterfly = new Buffer('šŸ¦‹')
- const mp = new MiniPass()
- mp.on('data', c => t.same(c, butterfly))
- mp.pause()
- mp.write(butterfly.slice(0, 2))
- mp.write(butterfly.slice(2))
- t.same(mp.read(), butterfly)
- t.equal(mp.read(), null)
- })
-
- t.test('string -> buffer', async t => {
- const butterfly = 'šŸ¦‹'
- const butterbuf = new Buffer(butterfly)
- const mp = new MiniPass()
- mp.on('data', c => t.same(c, butterbuf))
- mp.pause()
- mp.write(butterfly)
- t.same(mp.read(), butterbuf)
- t.equal(mp.read(), null)
- })
-
- t.test('string -> string', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass({ encoding: 'utf8' })
- mp.on('data', c => t.equal(c, butterfly))
- mp.pause()
- mp.write(butterfly[0])
- mp.write(butterfly[1])
- t.same(mp.read(), butterfly)
- t.equal(mp.read(), null)
- })
-})
-
-t.test('partial read', async t => {
- const butterfly = 'šŸ¦‹'
- const mp = new MiniPass()
- const butterbuf = new Buffer(butterfly)
- mp.write(butterbuf.slice(0, 1))
- mp.write(butterbuf.slice(1, 2))
- mp.write(butterbuf.slice(2, 3))
- mp.write(butterbuf.slice(3, 4))
- t.equal(mp.read(5), null)
- t.equal(mp.read(0), null)
- t.same(mp.read(2), butterbuf.slice(0, 2))
- t.same(mp.read(2), butterbuf.slice(2, 4))
-})
-
-t.test('write after end', async t => {
- const mp = new MiniPass()
- let sawEnd = false
- mp.on('end', _ => sawEnd = true)
- mp.end()
- t.throws(_ => mp.write('nope'))
- t.notOk(sawEnd, 'should not get end event yet (not flowing)')
- mp.resume()
- t.ok(sawEnd, 'should get end event after resume()')
-})
-
-t.test('write cb', async t => {
- const mp = new MiniPass()
- let calledCb = false
- mp.write('ok', () => calledCb = true)
- t.ok(calledCb)
-})
-
-t.test('end with chunk', async t => {
- let out = ''
- const mp = new MiniPass({ encoding: 'utf8' })
- let sawEnd = false
- mp.on('end', _ => sawEnd = true)
- mp.addEventHandler('data', c => out += c)
- let endCb = false
- mp.end('ok', _ => endCb = true)
- t.equal(out, 'ok')
- t.ok(sawEnd, 'should see end event')
- t.ok(endCb, 'end cb should get called')
-})
-
-t.test('no drain if could not entirely drain on resume', async t => {
- const mp = new MiniPass()
- const dest = new MiniPass({ encoding: 'buffer' })
- t.equal(mp.write('foo'), false)
- t.equal(mp.write('bar'), false)
- t.equal(mp.write('baz'), false)
- t.equal(mp.write('qux'), false)
- mp.on('drain', _ => t.fail('should not drain'))
- mp.pipe(dest)
-})
-
-t.test('end with chunk pending', async t => {
- const mp = new MiniPass()
- t.equal(mp.write('foo'), false)
- t.equal(mp.write('626172', 'hex'), false)
- t.equal(mp.write('baz'), false)
- t.equal(mp.write('qux'), false)
- let sawEnd = false
- mp.on('end', _ => sawEnd = true)
- let endCb = false
- mp.end(_ => endCb = true)
- t.notOk(endCb, 'endcb should not happen yet')
- t.notOk(sawEnd, 'should not see end yet')
- let out = ''
- mp.on('data', c => out += c)
- t.ok(sawEnd, 'see end after flush')
- t.ok(endCb, 'end cb after flush')
- t.equal(out, 'foobarbazqux')
-})
-
-t.test('pipe to stderr does not throw', t => {
- const spawn = require('child_process').spawn
- const module = JSON.stringify(require.resolve('../'))
- const fs = require('fs')
- const file = __dirname + '/prog.js'
- fs.writeFileSync(file, `
- const MP = require(${module})
- const mp = new MP()
- mp.pipe(process.stderr)
- mp.end("hello")
- `)
- let err = ''
- return new Promise(res => {
- const child = spawn(process.execPath, [file])
- child.stderr.on('data', c => err += c)
- child.on('close', (code, signal) => {
- t.equal(code, 0)
- t.equal(signal, null)
- t.equal(err, 'hello')
- fs.unlinkSync(file)
- res()
- })
- })
-})
-
-t.test('emit works with many args', t => {
- const mp = new MiniPass()
- t.plan(2)
- mp.on('foo', function (a, b, c, d, e, f, g) {
- t.same([a,b,c,d,e,f,g], [1,2,3,4,5,6,7])
- t.equal(arguments.length, 7)
- })
- mp.emit('foo', 1, 2, 3, 4, 5, 6, 7)
-})
-
-t.test('emit drain on resume, even if no flush', t => {
- const mp = new MiniPass()
- mp.encoding = 'utf8'
-
- const chunks = []
- class SlowStream extends EE {
- write (chunk) {
- chunks.push(chunk)
- setTimeout(_ => this.emit('drain'))
- return false
- }
- end () { return this.write() }
- }
-
- const ss = new SlowStream()
-
- mp.pipe(ss)
- t.ok(mp.flowing, 'flowing, because piped')
- t.equal(mp.write('foo'), false, 'write() returns false, backpressure')
- t.equal(mp.buffer.length, 0, 'buffer len is 0')
- t.equal(mp.flowing, false, 'flowing false, awaiting drain')
- t.same(chunks, ['foo'], 'chunk made it through')
- mp.once('drain', _ => {
- t.pass('received mp drain event')
- t.end()
- })
-})
-
-t.test('save close for end', t => {
- const mp = new MiniPass()
- let ended = false
- mp.on('close', _ => {
- t.equal(ended, true, 'end before close')
- t.end()
- })
- mp.on('end', _ => {
- t.equal(ended, false, 'only end once')
- ended = true
- })
-
- mp.emit('close')
- mp.end('foo')
- t.equal(ended, false, 'no end until flushed')
- mp.resume()
-})
-
-t.test('eos works', t => {
- const eos = require('end-of-stream')
- const mp = new MiniPass()
-
- eos(mp, er => {
- if (er)
- throw er
- t.end()
- })
-
- mp.emit('close')
- mp.end('foo')
- mp.resume()
-})
-
-t.test('bufferLength property', t => {
- const eos = require('end-of-stream')
- const mp = new MiniPass()
- mp.write('a')
- mp.write('a')
- mp.write('a')
- mp.write('a')
- mp.write('a')
- mp.write('a')
-
- t.equal(mp.bufferLength, 6)
- t.equal(mp.read(7), null)
- t.equal(mp.read(3).toString(), 'aaa')
- t.equal(mp.bufferLength, 3)
- t.equal(mp.read().toString(), 'aaa')
- t.equal(mp.bufferLength, 0)
- t.end()
-})
-
-t.test('emit resume event on resume', t => {
- const mp = new MiniPass()
- t.plan(3)
- mp.on('resume', _ => t.pass('got resume event'))
- mp.end('asdf')
- t.equal(mp.flowing, false, 'not flowing yet')
- mp.resume()
- t.equal(mp.flowing, true, 'flowing after resume')
-})
-
-t.test('objectMode', t => {
- const mp = new MiniPass({ objectMode: true })
- const a = { a: 1 }
- const b = { b: 1 }
- const out = []
- mp.on('data', c => out.push(c))
- mp.on('end', _ => {
- t.equal(out.length, 2)
- t.equal(out[0], a)
- t.equal(out[1], b)
- t.same(out, [ { a: 1 }, { b: 1 } ], 'objs not munged')
- t.end()
- })
- t.ok(mp.write(a))
- t.ok(mp.write(b))
- mp.end()
-})
-
-t.test('objectMode no encoding', t => {
- const mp = new MiniPass({
- objectMode: true,
- encoding: 'utf8'
- })
- t.equal(mp.encoding, null)
- const a = { a: 1 }
- const b = { b: 1 }
- const out = []
- mp.on('data', c => out.push(c))
- mp.on('end', _ => {
- t.equal(out.length, 2)
- t.equal(out[0], a)
- t.equal(out[1], b)
- t.same(out, [ { a: 1 }, { b: 1 } ], 'objs not munged')
- t.end()
- })
- t.ok(mp.write(a))
- t.ok(mp.write(b))
- mp.end()
-})
-
-t.test('objectMode read() and buffering', t => {
- const mp = new MiniPass({ objectMode: true })
- const a = { a: 1 }
- const b = { b: 1 }
- t.notOk(mp.write(a))
- t.notOk(mp.write(b))
- t.equal(mp.read(2), a)
- t.equal(mp.read(), b)
- t.end()
-})
-
-t.test('set encoding in object mode throws', async t =>
- t.throws(_ => new MiniPass({ objectMode: true }).encoding = 'utf8',
- new Error('cannot set encoding in objectMode')))
-
-t.test('set encoding again throws', async t =>
- t.throws(_ => {
- const mp = new MiniPass({ encoding: 'hex' })
- mp.write('ok')
- mp.encoding = 'utf8'
- }, new Error('cannot change encoding')))
-
-t.test('set encoding with existing buffer', async t => {
- const mp = new MiniPass()
- const butterfly = 'šŸ¦‹'
- const butterbuf = new Buffer(butterfly)
- mp.write(butterbuf.slice(0, 1))
- mp.write(butterbuf.slice(1, 2))
- mp.setEncoding('utf8')
- mp.write(butterbuf.slice(2))
- t.equal(mp.read(), butterfly)
-})
-
-t.test('end:false', async t => {
- t.plan(1)
- const mp = new MiniPass({ encoding: 'utf8' })
- const d = new MiniPass({ encoding: 'utf8' })
- d.end = () => t.threw(new Error('no end no exit no way out'))
- d.on('data', c => t.equal(c, 'this is fine'))
- mp.pipe(d, { end: false })
- mp.end('this is fine')
-})
diff --git a/deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js b/deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js
deleted file mode 100644
index 42387d51af..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minipass/test/empty-end.js
+++ /dev/null
@@ -1,38 +0,0 @@
-const t = require('tap')
-const MP = require('../')
-
-t.test('emit end on resume', async t => {
- const list = []
- const mp = new MP()
- mp.on('end', _ => list.push('end'))
- mp.end()
- t.notOk(mp.emittedEnd)
- list.push('called end')
- mp.resume()
- t.ok(mp.emittedEnd)
- list.push('called resume')
- t.same(list, ['called end', 'end', 'called resume'])
-})
-
-t.test('emit end on read()', async t => {
- const list = []
- const mp = new MP()
- mp.on('end', _ => list.push('end'))
- mp.end()
- list.push('called end')
-
- mp.read()
- list.push('called read()')
- t.same(list, ['called end', 'end', 'called read()'])
-})
-
-t.test('emit end on data handler', async t => {
- const list = []
- const mp = new MP()
- mp.on('end', _ => list.push('end'))
- mp.end()
- list.push('called end')
- mp.on('data', _=>_)
- list.push('added data handler')
- t.same(list, ['called end', 'end', 'added data handler'])
-})
diff --git a/deps/npm/node_modules/tar/node_modules/minizlib/index.js b/deps/npm/node_modules/tar/node_modules/minizlib/index.js
deleted file mode 100644
index 8c0df2ac43..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minizlib/index.js
+++ /dev/null
@@ -1,354 +0,0 @@
-'use strict'
-
-const assert = require('assert')
-const Buffer = require('buffer').Buffer
-const binding = process.binding('zlib')
-
-const constants = exports.constants = require('./constants.js')
-const MiniPass = require('minipass')
-
-// translation table for return codes.
-const codes = new Map([
- [constants.Z_OK, 'Z_OK'],
- [constants.Z_STREAM_END, 'Z_STREAM_END'],
- [constants.Z_NEED_DICT, 'Z_NEED_DICT'],
- [constants.Z_ERRNO, 'Z_ERRNO'],
- [constants.Z_STREAM_ERROR, 'Z_STREAM_ERROR'],
- [constants.Z_DATA_ERROR, 'Z_DATA_ERROR'],
- [constants.Z_MEM_ERROR, 'Z_MEM_ERROR'],
- [constants.Z_BUF_ERROR, 'Z_BUF_ERROR'],
- [constants.Z_VERSION_ERROR, 'Z_VERSION_ERROR']
-])
-
-const validFlushFlags = new Set([
- constants.Z_NO_FLUSH,
- constants.Z_PARTIAL_FLUSH,
- constants.Z_SYNC_FLUSH,
- constants.Z_FULL_FLUSH,
- constants.Z_FINISH,
- constants.Z_BLOCK
-])
-
-const strategies = new Set([
- constants.Z_FILTERED,
- constants.Z_HUFFMAN_ONLY,
- constants.Z_RLE,
- constants.Z_FIXED,
- constants.Z_DEFAULT_STRATEGY
-])
-
-// the Zlib class they all inherit from
-// This thing manages the queue of requests, and returns
-// true or false if there is anything in the queue when
-// you call the .write() method.
-const _opts = Symbol('opts')
-const _chunkSize = Symbol('chunkSize')
-const _flushFlag = Symbol('flushFlag')
-const _finishFlush = Symbol('finishFlush')
-const _handle = Symbol('handle')
-const _hadError = Symbol('hadError')
-const _buffer = Symbol('buffer')
-const _offset = Symbol('offset')
-const _level = Symbol('level')
-const _strategy = Symbol('strategy')
-const _ended = Symbol('ended')
-const _writeState = Symbol('writeState')
-
-class Zlib extends MiniPass {
- constructor (opts, mode) {
- super(opts)
- this[_ended] = false
- this[_opts] = opts = opts || {}
- this[_chunkSize] = opts.chunkSize || constants.Z_DEFAULT_CHUNK
- if (opts.flush && !validFlushFlags.has(opts.flush)) {
- throw new Error('Invalid flush flag: ' + opts.flush)
- }
- if (opts.finishFlush && !validFlushFlags.has(opts.finishFlush)) {
- throw new Error('Invalid flush flag: ' + opts.finishFlush)
- }
-
- this[_flushFlag] = opts.flush || constants.Z_NO_FLUSH
- this[_finishFlush] = typeof opts.finishFlush !== 'undefined' ?
- opts.finishFlush : constants.Z_FINISH
-
- if (opts.chunkSize) {
- if (opts.chunkSize < constants.Z_MIN_CHUNK) {
- throw new Error('Invalid chunk size: ' + opts.chunkSize)
- }
- }
-
- if (opts.windowBits) {
- if (opts.windowBits < constants.Z_MIN_WINDOWBITS ||
- opts.windowBits > constants.Z_MAX_WINDOWBITS) {
- throw new Error('Invalid windowBits: ' + opts.windowBits)
- }
- }
-
- if (opts.level) {
- if (opts.level < constants.Z_MIN_LEVEL ||
- opts.level > constants.Z_MAX_LEVEL) {
- throw new Error('Invalid compression level: ' + opts.level)
- }
- }
-
- if (opts.memLevel) {
- if (opts.memLevel < constants.Z_MIN_MEMLEVEL ||
- opts.memLevel > constants.Z_MAX_MEMLEVEL) {
- throw new Error('Invalid memLevel: ' + opts.memLevel)
- }
- }
-
- if (opts.strategy && !(strategies.has(opts.strategy)))
- throw new Error('Invalid strategy: ' + opts.strategy)
-
- if (opts.dictionary) {
- if (!(opts.dictionary instanceof Buffer)) {
- throw new Error('Invalid dictionary: it should be a Buffer instance')
- }
- }
-
- this[_handle] = new binding.Zlib(mode)
-
- this[_hadError] = false
- this[_handle].onerror = (message, errno) => {
- // there is no way to cleanly recover.
- // continuing only obscures problems.
- this.close()
- this[_hadError] = true
-
- const error = new Error(message)
- error.errno = errno
- error.code = codes.get(errno)
- this.emit('error', error)
- }
-
- const level = typeof opts.level === 'number' ? opts.level
- : constants.Z_DEFAULT_COMPRESSION
-
- var strategy = typeof opts.strategy === 'number' ? opts.strategy
- : constants.Z_DEFAULT_STRATEGY
-
- this[_writeState] = new Uint32Array(2);
- const window = opts.windowBits || constants.Z_DEFAULT_WINDOWBITS
- const memLevel = opts.memLevel || constants.Z_DEFAULT_MEMLEVEL
-
- // API changed in node v9
- /* istanbul ignore next */
- if (/^v[0-8]\./.test(process.version)) {
- this[_handle].init(window,
- level,
- memLevel,
- strategy,
- opts.dictionary)
- } else {
- this[_handle].init(window,
- level,
- memLevel,
- strategy,
- this[_writeState],
- () => {},
- opts.dictionary)
- }
-
- this[_buffer] = Buffer.allocUnsafe(this[_chunkSize])
- this[_offset] = 0
- this[_level] = level
- this[_strategy] = strategy
-
- this.once('end', this.close)
- }
-
- close () {
- if (this[_handle]) {
- this[_handle].close()
- this[_handle] = null
- this.emit('close')
- }
- }
-
- params (level, strategy) {
- if (!this[_handle])
- throw new Error('cannot switch params when binding is closed')
-
- // no way to test this without also not supporting params at all
- /* istanbul ignore if */
- if (!this[_handle].params)
- throw new Error('not supported in this implementation')
-
- if (level < constants.Z_MIN_LEVEL ||
- level > constants.Z_MAX_LEVEL) {
- throw new RangeError('Invalid compression level: ' + level)
- }
-
- if (!(strategies.has(strategy)))
- throw new TypeError('Invalid strategy: ' + strategy)
-
- if (this[_level] !== level || this[_strategy] !== strategy) {
- this.flush(constants.Z_SYNC_FLUSH)
- assert(this[_handle], 'zlib binding closed')
- this[_handle].params(level, strategy)
- /* istanbul ignore else */
- if (!this[_hadError]) {
- this[_level] = level
- this[_strategy] = strategy
- }
- }
- }
-
- reset () {
- assert(this[_handle], 'zlib binding closed')
- return this[_handle].reset()
- }
-
- flush (kind) {
- if (kind === undefined)
- kind = constants.Z_FULL_FLUSH
-
- if (this.ended)
- return
-
- const flushFlag = this[_flushFlag]
- this[_flushFlag] = kind
- this.write(Buffer.alloc(0))
- this[_flushFlag] = flushFlag
- }
-
- end (chunk, encoding, cb) {
- if (chunk)
- this.write(chunk, encoding)
- this.flush(this[_finishFlush])
- this[_ended] = true
- return super.end(null, null, cb)
- }
-
- get ended () {
- return this[_ended]
- }
-
- write (chunk, encoding, cb) {
- // process the chunk using the sync process
- // then super.write() all the outputted chunks
- if (typeof encoding === 'function')
- cb = encoding, encoding = 'utf8'
-
- if (typeof chunk === 'string')
- chunk = new Buffer(chunk, encoding)
-
- let availInBefore = chunk && chunk.length
- let availOutBefore = this[_chunkSize] - this[_offset]
- let inOff = 0 // the offset of the input buffer
- const flushFlag = this[_flushFlag]
- let writeReturn = true
-
- assert(this[_handle], 'zlib binding closed')
- do {
- let res = this[_handle].writeSync(
- flushFlag,
- chunk, // in
- inOff, // in_off
- availInBefore, // in_len
- this[_buffer], // out
- this[_offset], //out_off
- availOutBefore // out_len
- )
-
- if (this[_hadError])
- break
-
- // API changed in v9
- /* istanbul ignore next */
- let availInAfter = res ? res[0] : this[_writeState][1]
- /* istanbul ignore next */
- let availOutAfter = res ? res[1] : this[_writeState][0]
-
- const have = availOutBefore - availOutAfter
- assert(have >= 0, 'have should not go down')
-
- if (have > 0) {
- const out = this[_buffer].slice(
- this[_offset], this[_offset] + have
- )
-
- this[_offset] += have
- // serve some output to the consumer.
- writeReturn = super.write(out) && writeReturn
- }
-
- // exhausted the output buffer, or used all the input create a new one.
- if (availOutAfter === 0 || this[_offset] >= this[_chunkSize]) {
- availOutBefore = this[_chunkSize]
- this[_offset] = 0
- this[_buffer] = Buffer.allocUnsafe(this[_chunkSize])
- }
-
- if (availOutAfter === 0) {
- // Not actually done. Need to reprocess.
- // Also, update the availInBefore to the availInAfter value,
- // so that if we have to hit it a third (fourth, etc.) time,
- // it'll have the correct byte counts.
- inOff += (availInBefore - availInAfter)
- availInBefore = availInAfter
- continue
- }
- break
- } while (!this[_hadError])
-
- if (cb)
- cb()
- return writeReturn
- }
-}
-
-// minimal 2-byte header
-class Deflate extends Zlib {
- constructor (opts) {
- super(opts, constants.DEFLATE)
- }
-}
-
-class Inflate extends Zlib {
- constructor (opts) {
- super(opts, constants.INFLATE)
- }
-}
-
-// gzip - bigger header, same deflate compression
-class Gzip extends Zlib {
- constructor (opts) {
- super(opts, constants.GZIP)
- }
-}
-
-class Gunzip extends Zlib {
- constructor (opts) {
- super(opts, constants.GUNZIP)
- }
-}
-
-// raw - no header
-class DeflateRaw extends Zlib {
- constructor (opts) {
- super(opts, constants.DEFLATERAW)
- }
-}
-
-class InflateRaw extends Zlib {
- constructor (opts) {
- super(opts, constants.INFLATERAW)
- }
-}
-
-// auto-detect header.
-class Unzip extends Zlib {
- constructor (opts) {
- super(opts, constants.UNZIP)
- }
-}
-
-exports.Deflate = Deflate
-exports.Inflate = Inflate
-exports.Gzip = Gzip
-exports.Gunzip = Gunzip
-exports.DeflateRaw = DeflateRaw
-exports.InflateRaw = InflateRaw
-exports.Unzip = Unzip
diff --git a/deps/npm/node_modules/tar/node_modules/minizlib/package.json b/deps/npm/node_modules/tar/node_modules/minizlib/package.json
deleted file mode 100644
index 0a41e31c82..0000000000
--- a/deps/npm/node_modules/tar/node_modules/minizlib/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "minizlib@1.0.4",
- "_id": "minizlib@1.0.4",
- "_inBundle": false,
- "_integrity": "sha512-sN4U9tIJtBRwKbwgFh9qJfrPIQ/GGTRr1MGqkgOeMTLy8/lM0FcWU//FqlnZ3Vb7gJ+Mxh3FOg1EklibdajbaQ==",
- "_location": "/tar/minizlib",
- "_phantomChildren": {},
- "_requested": {
- "type": "version",
- "registry": true,
- "raw": "minizlib@1.0.4",
- "name": "minizlib",
- "escapedName": "minizlib",
- "rawSpec": "1.0.4",
- "saveSpec": null,
- "fetchSpec": "1.0.4"
- },
- "_requiredBy": [
- "/tar"
- ],
- "_resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.0.4.tgz",
- "_shasum": "8ebb51dd8bbe40b0126b5633dbb36b284a2f523c",
- "_spec": "minizlib@1.0.4",
- "_where": "/Users/rebecca/code/npm",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bugs": {
- "url": "https://github.com/isaacs/minizlib/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "minipass": "^2.2.1"
- },
- "deprecated": false,
- "description": "A small fast zlib stream built on [minipass](http://npm.im/minipass) and Node.js's zlib binding.",
- "devDependencies": {
- "tap": "^10.7.2"
- },
- "files": [
- "index.js",
- "constants.js"
- ],
- "homepage": "https://github.com/isaacs/minizlib#readme",
- "keywords": [
- "zlib",
- "gzip",
- "gunzip",
- "deflate",
- "inflate",
- "compression",
- "zip",
- "unzip"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "minizlib",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/minizlib.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --100 -J"
- },
- "version": "1.0.4"
-}
diff --git a/deps/npm/node_modules/tar/node_modules/yallist/package.json b/deps/npm/node_modules/tar/node_modules/yallist/package.json
index c2a8e0d399..ac8e7c54a1 100644
--- a/deps/npm/node_modules/tar/node_modules/yallist/package.json
+++ b/deps/npm/node_modules/tar/node_modules/yallist/package.json
@@ -16,8 +16,7 @@
"fetchSpec": "^3.0.2"
},
"_requiredBy": [
- "/tar",
- "/tar/minipass"
+ "/tar"
],
"_resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz",
"_shasum": "8452b4bb7e83c7c188d8041c1a837c773d6d8bb9",
diff --git a/deps/npm/node_modules/tar/package.json b/deps/npm/node_modules/tar/package.json
index d68b63a66d..b3a1816bfe 100644
--- a/deps/npm/node_modules/tar/package.json
+++ b/deps/npm/node_modules/tar/package.json
@@ -1,29 +1,33 @@
{
- "_from": "tar@4.0.2",
- "_id": "tar@4.0.2",
+ "_args": [
+ [
+ "tar@4.4.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "tar@4.4.3",
+ "_id": "tar@4.4.3",
"_inBundle": false,
- "_integrity": "sha512-4lWN4uAEWzw8aHyBUx9HWXvH3vIFEhOyvN22HfBzWpE07HaTBXM8ttSeCQpswRo5On4q3nmmYmk7Tomn0uhUaw==",
+ "_integrity": "sha512-LBw+tcY+/iCCTvF4i3SjqKWIgixSs/dB+Elg3BaY0MXh03D9jWclYskg3BiOkgg414NqpFI3nRgr2Qnw5jJs7Q==",
"_location": "/tar",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "tar@4.0.2",
+ "raw": "tar@4.4.3",
"name": "tar",
"escapedName": "tar",
- "rawSpec": "4.0.2",
+ "rawSpec": "4.4.3",
"saveSpec": null,
- "fetchSpec": "4.0.2"
+ "fetchSpec": "4.4.3"
},
"_requiredBy": [
- "#USER",
"/",
"/pacote"
],
- "_resolved": "https://registry.npmjs.org/tar/-/tar-4.0.2.tgz",
- "_shasum": "e8e22bf3eec330e5c616d415a698395e294e8fad",
- "_spec": "tar@4.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/tar/-/tar-4.4.3.tgz",
+ "_spec": "4.4.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
@@ -32,25 +36,25 @@
"bugs": {
"url": "https://github.com/npm/node-tar/issues"
},
- "bundleDependencies": false,
"dependencies": {
"chownr": "^1.0.1",
- "minipass": "^2.2.1",
- "minizlib": "^1.0.4",
+ "fs-minipass": "^1.2.5",
+ "minipass": "^2.3.3",
+ "minizlib": "^1.1.0",
"mkdirp": "^0.5.0",
+ "safe-buffer": "^5.1.2",
"yallist": "^3.0.2"
},
- "deprecated": false,
"description": "tar for node",
"devDependencies": {
"chmodr": "^1.0.2",
- "end-of-stream": "^1.4.0",
+ "end-of-stream": "^1.4.1",
"events-to-array": "^1.1.2",
- "mutate-fs": "^1.1.0",
+ "mutate-fs": "^2.1.1",
"rimraf": "^2.6.2",
- "tap": "^10.7.2",
- "tar-fs": "^1.16.0",
- "tar-stream": "^1.5.2"
+ "tap": "^12.0.1",
+ "tar-fs": "^1.16.2",
+ "tar-stream": "^1.6.0"
},
"engines": {
"node": ">=4.5"
@@ -72,7 +76,7 @@
"postpublish": "git push origin --all; git push origin --tags",
"postversion": "npm publish",
"preversion": "npm test",
- "test": "tap test/*.js --100 -J --coverage-report=text"
+ "test": "tap test/*.js --100 -J --coverage-report=text -c"
},
- "version": "4.0.2"
+ "version": "4.4.3"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js b/deps/npm/node_modules/term-size/index.js
index 95e410df26..95e410df26 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/index.js
+++ b/deps/npm/node_modules/term-size/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/license b/deps/npm/node_modules/term-size/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/license
+++ b/deps/npm/node_modules/term-size/license
diff --git a/deps/npm/node_modules/term-size/package.json b/deps/npm/node_modules/term-size/package.json
new file mode 100644
index 0000000000..8f2eb54c02
--- /dev/null
+++ b/deps/npm/node_modules/term-size/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "term-size@^1.2.0",
+ "_id": "term-size@1.2.0",
+ "_inBundle": false,
+ "_integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
+ "_location": "/term-size",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "term-size@^1.2.0",
+ "name": "term-size",
+ "escapedName": "term-size",
+ "rawSpec": "^1.2.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.2.0"
+ },
+ "_requiredBy": [
+ "/boxen"
+ ],
+ "_resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
+ "_shasum": "458b83887f288fc56d6fffbfad262e26638efa69",
+ "_spec": "term-size@^1.2.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/boxen",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/term-size/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "execa": "^0.7.0"
+ },
+ "deprecated": false,
+ "description": "Reliably get the terminal window size (columns & rows)",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "vendor"
+ ],
+ "homepage": "https://github.com/sindresorhus/term-size#readme",
+ "keywords": [
+ "term",
+ "terminal",
+ "size",
+ "console",
+ "window",
+ "width",
+ "height",
+ "columns",
+ "rows",
+ "lines",
+ "tty",
+ "redirected"
+ ],
+ "license": "MIT",
+ "name": "term-size",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/term-size.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.2.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md b/deps/npm/node_modules/term-size/readme.md
index dd642cadc2..dd642cadc2 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/readme.md
+++ b/deps/npm/node_modules/term-size/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size b/deps/npm/node_modules/term-size/vendor/macos/term-size
index e383cc737f..e383cc737f 100755
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/macos/term-size
+++ b/deps/npm/node_modules/term-size/vendor/macos/term-size
Binary files differ
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe b/deps/npm/node_modules/term-size/vendor/windows/term-size.exe
index c7a170c964..c7a170c964 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/vendor/windows/term-size.exe
+++ b/deps/npm/node_modules/term-size/vendor/windows/term-size.exe
Binary files differ
diff --git a/deps/npm/node_modules/text-table/package.json b/deps/npm/node_modules/text-table/package.json
index 158041e21c..de1ad21bd0 100644
--- a/deps/npm/node_modules/text-table/package.json
+++ b/deps/npm/node_modules/text-table/package.json
@@ -1,40 +1,41 @@
{
- "_from": "text-table@~0.2.0",
+ "_args": [
+ [
+ "text-table@0.2.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "text-table@0.2.0",
"_id": "text-table@0.2.0",
+ "_inBundle": false,
"_integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=",
"_location": "/text-table",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "text-table@~0.2.0",
+ "raw": "text-table@0.2.0",
"name": "text-table",
"escapedName": "text-table",
- "rawSpec": "~0.2.0",
+ "rawSpec": "0.2.0",
"saveSpec": null,
- "fetchSpec": "~0.2.0"
+ "fetchSpec": "0.2.0"
},
"_requiredBy": [
"/",
- "/standard/eslint"
+ "/eslint"
],
"_resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "_shasum": "7f5ee823ae805207c00af2df4a84ec3fcfa570b4",
- "_shrinkwrap": null,
- "_spec": "text-table@~0.2.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.2.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "James Halliday",
"email": "mail@substack.net",
"url": "http://substack.net"
},
- "bin": null,
"bugs": {
"url": "https://github.com/substack/text-table/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "borderless text tables with alignment",
"devDependencies": {
"cli-color": "~0.2.3",
@@ -53,8 +54,6 @@
"license": "MIT",
"main": "index.js",
"name": "text-table",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/substack/text-table.git"
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml b/deps/npm/node_modules/through/.travis.yml
index c693a939df..c693a939df 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/.travis.yml
+++ b/deps/npm/node_modules/through/.travis.yml
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.APACHE2 b/deps/npm/node_modules/through/LICENSE.APACHE2
index 6366c04716..6366c04716 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.APACHE2
+++ b/deps/npm/node_modules/through/LICENSE.APACHE2
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.MIT b/deps/npm/node_modules/through/LICENSE.MIT
index 49e7da41fe..49e7da41fe 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/LICENSE.MIT
+++ b/deps/npm/node_modules/through/LICENSE.MIT
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/index.js b/deps/npm/node_modules/through/index.js
index 9f443ffd2b..9f443ffd2b 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/index.js
+++ b/deps/npm/node_modules/through/index.js
diff --git a/deps/npm/node_modules/through/package.json b/deps/npm/node_modules/through/package.json
new file mode 100644
index 0000000000..e1e55755a3
--- /dev/null
+++ b/deps/npm/node_modules/through/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "through@>=2.2.7 <3",
+ "_id": "through@2.3.8",
+ "_inBundle": false,
+ "_integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
+ "_location": "/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",
+ "/inquirer"
+ ],
+ "_resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "_shasum": "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5",
+ "_spec": "through@>=2.2.7 <3",
+ "_where": "/Users/rebecca/code/npm/node_modules/JSONStream",
+ "author": {
+ "name": "Dominic Tarr",
+ "email": "dominic.tarr@gmail.com",
+ "url": "dominictarr.com"
+ },
+ "bugs": {
+ "url": "https://github.com/dominictarr/through/issues"
+ },
+ "bundleDependencies": false,
+ "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",
+ "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/through/readme.markdown
index 4939fffe42..4939fffe42 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/readme.markdown
+++ b/deps/npm/node_modules/through/readme.markdown
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js b/deps/npm/node_modules/through/test/async.js
index f6fc95f4ff..f6fc95f4ff 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/test/async.js
+++ b/deps/npm/node_modules/through/test/async.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js b/deps/npm/node_modules/through/test/auto-destroy.js
index 305fff23d3..305fff23d3 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/test/auto-destroy.js
+++ b/deps/npm/node_modules/through/test/auto-destroy.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js b/deps/npm/node_modules/through/test/buffering.js
index b0084bfc6e..b0084bfc6e 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/test/buffering.js
+++ b/deps/npm/node_modules/through/test/buffering.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js b/deps/npm/node_modules/through/test/end.js
index fa113f58e0..fa113f58e0 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/test/end.js
+++ b/deps/npm/node_modules/through/test/end.js
diff --git a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js b/deps/npm/node_modules/through/test/index.js
index 1d9523f40e..1d9523f40e 100644
--- a/deps/npm/node_modules/JSONStream/node_modules/through/test/index.js
+++ b/deps/npm/node_modules/through/test/index.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/.npmignore b/deps/npm/node_modules/through2/.npmignore
index 1e1dcab34c..1e1dcab34c 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/.npmignore
+++ b/deps/npm/node_modules/through2/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.html b/deps/npm/node_modules/through2/LICENSE.html
index ac478189ea..ac478189ea 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.html
+++ b/deps/npm/node_modules/through2/LICENSE.html
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.md b/deps/npm/node_modules/through2/LICENSE.md
index 7f0b93daaa..7f0b93daaa 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/LICENSE.md
+++ b/deps/npm/node_modules/through2/LICENSE.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/README.md b/deps/npm/node_modules/through2/README.md
index a916f15ef5..a916f15ef5 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/README.md
+++ b/deps/npm/node_modules/through2/README.md
diff --git a/deps/npm/node_modules/through2/package.json b/deps/npm/node_modules/through2/package.json
new file mode 100644
index 0000000000..e33afc91d7
--- /dev/null
+++ b/deps/npm/node_modules/through2/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "through2@^2.0.0",
+ "_id": "through2@2.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=",
+ "_location": "/through2",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "through2@^2.0.0",
+ "name": "through2",
+ "escapedName": "through2",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/mississippi",
+ "/npm-profile/cacache/mississippi",
+ "/npm-profile/mississippi",
+ "/npm-registry-fetch/cacache/mississippi"
+ ],
+ "_resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz",
+ "_shasum": "0004569b37c7c74ba39c43f3ced78d1ad94140be",
+ "_spec": "through2@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/mississippi",
+ "author": {
+ "name": "Rod Vagg",
+ "email": "r@va.gg",
+ "url": "https://github.com/rvagg"
+ },
+ "bugs": {
+ "url": "https://github.com/rvagg/through2/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "readable-stream": "^2.1.5",
+ "xtend": "~4.0.1"
+ },
+ "deprecated": false,
+ "description": "A tiny wrapper around Node streams2 Transform to avoid explicit subclassing noise",
+ "devDependencies": {
+ "bl": "~1.1.2",
+ "faucet": "0.0.1",
+ "stream-spigot": "~3.0.5",
+ "tape": "~4.6.2"
+ },
+ "homepage": "https://github.com/rvagg/through2#readme",
+ "keywords": [
+ "stream",
+ "streams2",
+ "through",
+ "transform"
+ ],
+ "license": "MIT",
+ "main": "through2.js",
+ "name": "through2",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/rvagg/through2.git"
+ },
+ "scripts": {
+ "test": "node test/test.js | faucet",
+ "test-local": "brtapsauce-local test/basic-test.js"
+ },
+ "version": "2.0.3"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/through2.js b/deps/npm/node_modules/through2/through2.js
index ef13980d7b..ef13980d7b 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/through2.js
+++ b/deps/npm/node_modules/through2/through2.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/index.js b/deps/npm/node_modules/timed-out/index.js
index 94007a4aea..94007a4aea 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/index.js
+++ b/deps/npm/node_modules/timed-out/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/license b/deps/npm/node_modules/timed-out/license
index faadd52875..faadd52875 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/license
+++ b/deps/npm/node_modules/timed-out/license
diff --git a/deps/npm/node_modules/timed-out/package.json b/deps/npm/node_modules/timed-out/package.json
new file mode 100644
index 0000000000..8823f1aa32
--- /dev/null
+++ b/deps/npm/node_modules/timed-out/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "timed-out@^4.0.0",
+ "_id": "timed-out@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
+ "_location": "/timed-out",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "timed-out@^4.0.0",
+ "name": "timed-out",
+ "escapedName": "timed-out",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
+ "_shasum": "f32eacac5a175bea25d7fab565ab3ed8741ef56f",
+ "_spec": "timed-out@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "author": {
+ "name": "Vsevolod Strukchinsky",
+ "email": "floatdrop@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/floatdrop/timed-out/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Emit `ETIMEDOUT` or `ESOCKETTIMEDOUT` when ClientRequest is hanged",
+ "devDependencies": {
+ "mocha": "*",
+ "xo": "^0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/floatdrop/timed-out#readme",
+ "keywords": [
+ "http",
+ "https",
+ "get",
+ "got",
+ "url",
+ "uri",
+ "request",
+ "util",
+ "utility",
+ "simple"
+ ],
+ "license": "MIT",
+ "name": "timed-out",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/floatdrop/timed-out.git"
+ },
+ "scripts": {
+ "test": "xo && mocha"
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/readme.md b/deps/npm/node_modules/timed-out/readme.md
index d0eb92341e..d0eb92341e 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/readme.md
+++ b/deps/npm/node_modules/timed-out/readme.md
diff --git a/deps/npm/node_modules/tiny-relative-date/LICENSE.md b/deps/npm/node_modules/tiny-relative-date/LICENSE.md
new file mode 100644
index 0000000000..e42aca312b
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/LICENSE.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Joseph Wynn
+
+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/tiny-relative-date/README.md b/deps/npm/node_modules/tiny-relative-date/README.md
new file mode 100644
index 0000000000..4087a79263
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/README.md
@@ -0,0 +1,120 @@
+# Relative Date
+
+[![Build Status](https://travis-ci.org/wildlyinaccurate/tiny-relative-date.png?branch=master)](https://travis-ci.org/wildlyinaccurate/tiny-relative-date)
+
+Tiny function that provides relative, human-readable dates.
+
+## Installation
+
+```
+npm install tiny-relative-date
+```
+
+## Usage
+
+The module returns a `relativeDate` function with English translations by default.
+
+```js
+const relativeDate = require('tiny-relative-date')
+```
+
+The `relativeDate` function accepts date strings or `Date` objects.
+
+```js
+relativeDate('2017-06-25 09:00') // '12 hours ago'
+relativeDate(new Date()) // 'just now'
+```
+
+The value of "now" can also be passed as a second parameter.
+
+```js
+const now = new Date('2017-06-25 08:00:00')
+const date = new Date('2017-06-25 07:00:00')
+
+relativeDate(date, now) // 'an hour ago'
+```
+
+### Using a non-English locale
+
+The tiny-relative-date module can be initialised with a locale. See the [translations directory]('./translations') for a list of available locales.
+
+```js
+const relativeDateFactory = require('tiny-relative-date/lib/factory')
+const deTranslations = require('tiny-relative-date/translations/de')
+const relativeDate = relativeDateFactory(deTranslations)
+
+relativeDate(new Date()) // 'gerade eben'
+```
+
+### Using a custom locale
+
+You can also use a completely custom locale by passing a translations object instead of a locale string. Translations can be plain strings with a `{{time}}` placeholder, or they can be functions. See the **Adding new locales** section below for a list of translation keys.
+
+```js
+const relativeDateFactory = require('tiny-relative-date/lib/factory')
+const relativeDate = relativeDateFactory({
+ hoursAgo: '{{time}}h ago',
+ daysAgo: (days) => `${days * 24}h ago`
+})
+
+relativeDate('2017-06-25 07:00:00') // '2h ago'
+relativeDate('2017-06-24 06:00:00') // '27h ago'
+```
+
+## Contributing
+
+Contributions are welcome! Running this project locally requires Git and Node.js.
+
+```
+git clone git@github.com:wildlyinaccurate/tiny-relative-date.git
+cd tiny-relative-date/
+npm install
+```
+
+Once you are set up, you can make changes to files in the `src/`, `spec/` and `translations/` directories. Build any changes you make by running
+
+```
+npm run build
+```
+
+And run the tests with
+
+```
+npm run test
+```
+
+### Adding new locales
+
+If you would like to add a new locale, please create a JSON file in the `translations` directory and ensure it has the following keys:
+
+| Key | Default value ("en" locale) |
+|------------------------|-----------------------------|
+| `justNow` | just now |
+| `secondsAgo` | {{time}} seconds ago |
+| `aMinuteAgo` | a minute ago |
+| `minutesAgo` | {{time}} minutes ago |
+| `anHourAgo` | an hour ago |
+| `hoursAgo` | {{time}} hours ago |
+| `aDayAgo` | yesterday |
+| `daysAgo` | {{time}} days ago |
+| `aWeekAgo` | a week ago |
+| `weeksAgo` | {{time}} weeks ago |
+| `aMonthAgo` | a month ago |
+| `monthsAgo` | {{time}} months ago |
+| `aYearAgo` | a year ago |
+| `yearsAgo` | {{time}} years ago |
+| `overAYearAgo` | over a year ago |
+| `secondsFromNow` | {{time}} seconds from now |
+| `aMinuteFromNow` | a minute from now |
+| `minutesFromNow` | {{time}} minutes from now |
+| `anHourFromNow` | an hour from now |
+| `hoursFromNow` | {{time}} hours from now |
+| `aDayFromNow` | tomorrow |
+| `daysFromNow` | {{time}} days from now |
+| `aWeekFromNow` | a week from now |
+| `weeksFromNow` | {{time}} weeks from now |
+| `aMonthFromNow` | a month from now |
+| `monthsFromNow` | {{time}} months from now |
+| `aYearFromNow` | a year from now |
+| `yearsFromNow` | {{time}} years from now |
+| `overAYearFromNow` | over a year from now |
diff --git a/deps/npm/node_modules/tiny-relative-date/lib/factory.js b/deps/npm/node_modules/tiny-relative-date/lib/factory.js
new file mode 100644
index 0000000000..ac90161445
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/lib/factory.js
@@ -0,0 +1,100 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = relativeDateFactory;
+var calculateDelta = function calculateDelta(now, date) {
+ return Math.round(Math.abs(now - date) / 1000);
+};
+
+function relativeDateFactory(translations) {
+ return function relativeDate(date) {
+ var now = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Date();
+
+ if (!(date instanceof Date)) {
+ date = new Date(date);
+ }
+
+ var delta = null;
+
+ var minute = 60;
+ var hour = minute * 60;
+ var day = hour * 24;
+ var week = day * 7;
+ var month = day * 30;
+ var year = day * 365;
+
+ delta = calculateDelta(now, date);
+
+ if (delta > day && delta < week) {
+ date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
+ delta = calculateDelta(now, date);
+ }
+
+ var translate = function translate(translatePhrase, timeValue) {
+ var key = void 0;
+
+ if (translatePhrase === 'justNow') {
+ key = translatePhrase;
+ } else if (now >= date) {
+ key = translatePhrase + 'Ago';
+ } else {
+ key = translatePhrase + 'FromNow';
+ }
+
+ var translation = translations[key];
+
+ if (typeof translation === 'function') {
+ return translation(timeValue);
+ }
+
+ return translation.replace('{{time}}', timeValue);
+ };
+
+ switch (false) {
+ case !(delta < 30):
+ return translate('justNow');
+
+ case !(delta < minute):
+ return translate('seconds', delta);
+
+ case !(delta < 2 * minute):
+ return translate('aMinute');
+
+ case !(delta < hour):
+ return translate('minutes', Math.floor(delta / minute));
+
+ case Math.floor(delta / hour) !== 1:
+ return translate('anHour');
+
+ case !(delta < day):
+ return translate('hours', Math.floor(delta / hour));
+
+ case !(delta < day * 2):
+ return translate('aDay');
+
+ case !(delta < week):
+ return translate('days', Math.floor(delta / day));
+
+ case Math.floor(delta / week) !== 1:
+ return translate('aWeek');
+
+ case !(delta < month):
+ return translate('weeks', Math.floor(delta / week));
+
+ case Math.floor(delta / month) !== 1:
+ return translate('aMonth');
+
+ case !(delta < year):
+ return translate('months', Math.floor(delta / month));
+
+ case Math.floor(delta / year) !== 1:
+ return translate('aYear');
+
+ default:
+ return translate('overAYear');
+ }
+ };
+}
+module.exports = exports['default']; \ No newline at end of file
diff --git a/deps/npm/node_modules/tiny-relative-date/lib/index.js b/deps/npm/node_modules/tiny-relative-date/lib/index.js
new file mode 100644
index 0000000000..ed8a82ad6a
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/lib/index.js
@@ -0,0 +1,18 @@
+'use strict';
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+
+var _factory = require('./factory');
+
+var _factory2 = _interopRequireDefault(_factory);
+
+var _en = require('../translations/en');
+
+var _en2 = _interopRequireDefault(_en);
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+exports.default = (0, _factory2.default)(_en2.default);
+module.exports = exports['default']; \ No newline at end of file
diff --git a/deps/npm/node_modules/tiny-relative-date/package.json b/deps/npm/node_modules/tiny-relative-date/package.json
new file mode 100644
index 0000000000..6934650708
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/package.json
@@ -0,0 +1,75 @@
+{
+ "_args": [
+ [
+ "tiny-relative-date@1.3.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "tiny-relative-date@1.3.0",
+ "_id": "tiny-relative-date@1.3.0",
+ "_inBundle": false,
+ "_integrity": "sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A==",
+ "_location": "/tiny-relative-date",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "tiny-relative-date@1.3.0",
+ "name": "tiny-relative-date",
+ "escapedName": "tiny-relative-date",
+ "rawSpec": "1.3.0",
+ "saveSpec": null,
+ "fetchSpec": "1.3.0"
+ },
+ "_requiredBy": [
+ "/"
+ ],
+ "_resolved": "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz",
+ "_spec": "1.3.0",
+ "_where": "/Users/rebecca/code/npm",
+ "author": {
+ "name": "Joseph Wynn",
+ "email": "joseph@wildlyinaccurate.com",
+ "url": "https://wildlyinaccurate.com/"
+ },
+ "bugs": {
+ "url": "https://github.com/wildlyinaccurate/relative-date/issues"
+ },
+ "description": "Tiny function that provides relative, human-readable dates.",
+ "devDependencies": {
+ "babel-cli": "^6.24.1",
+ "babel-plugin-add-module-exports": "^0.2.1",
+ "babel-preset-es2015": "^6.24.1",
+ "babel-register": "^6.24.1",
+ "eslint": "^4.1.0",
+ "eslint-config-standard": "^10.2.1",
+ "eslint-plugin-import": "^2.6.0",
+ "eslint-plugin-node": "^5.0.0",
+ "eslint-plugin-promise": "^3.5.0",
+ "eslint-plugin-standard": "^3.0.1",
+ "jasmine": "^2.6.0",
+ "jasmine-spec-reporter": "^4.1.1"
+ },
+ "files": [
+ "lib/",
+ "src/",
+ "translations/"
+ ],
+ "homepage": "https://github.com/wildlyinaccurate/relative-date#readme",
+ "license": "MIT",
+ "main": "lib/index.js",
+ "module": "src/index.js",
+ "name": "tiny-relative-date",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/wildlyinaccurate/relative-date.git"
+ },
+ "scripts": {
+ "build": "babel src -d lib",
+ "eslint": "eslint --fix src/**/*.js",
+ "jasmine": "jasmine",
+ "prepublish": "npm run build",
+ "test": "npm run eslint && npm run jasmine"
+ },
+ "version": "1.3.0"
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/src/factory.js b/deps/npm/node_modules/tiny-relative-date/src/factory.js
new file mode 100644
index 0000000000..689359bcf9
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/src/factory.js
@@ -0,0 +1,89 @@
+const calculateDelta = (now, date) => Math.round(Math.abs(now - date) / 1000)
+
+export default function relativeDateFactory (translations) {
+ return function relativeDate (date, now = new Date()) {
+ if (!(date instanceof Date)) {
+ date = new Date(date)
+ }
+
+ let delta = null
+
+ const minute = 60
+ const hour = minute * 60
+ const day = hour * 24
+ const week = day * 7
+ const month = day * 30
+ const year = day * 365
+
+ delta = calculateDelta(now, date)
+
+ if (delta > day && delta < week) {
+ date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0)
+ delta = calculateDelta(now, date)
+ }
+
+ const translate = (translatePhrase, timeValue) => {
+ let key
+
+ if (translatePhrase === 'justNow') {
+ key = translatePhrase
+ } else if (now >= date) {
+ key = `${translatePhrase}Ago`
+ } else {
+ key = `${translatePhrase}FromNow`
+ }
+
+ const translation = translations[key]
+
+ if (typeof translation === 'function') {
+ return translation(timeValue)
+ }
+
+ return translation.replace('{{time}}', timeValue)
+ }
+
+ switch (false) {
+ case !(delta < 30):
+ return translate('justNow')
+
+ case !(delta < minute):
+ return translate('seconds', delta)
+
+ case !(delta < 2 * minute):
+ return translate('aMinute')
+
+ case !(delta < hour):
+ return translate('minutes', Math.floor(delta / minute))
+
+ case Math.floor(delta / hour) !== 1:
+ return translate('anHour')
+
+ case !(delta < day):
+ return translate('hours', Math.floor(delta / hour))
+
+ case !(delta < day * 2):
+ return translate('aDay')
+
+ case !(delta < week):
+ return translate('days', Math.floor(delta / day))
+
+ case Math.floor(delta / week) !== 1:
+ return translate('aWeek')
+
+ case !(delta < month):
+ return translate('weeks', Math.floor(delta / week))
+
+ case Math.floor(delta / month) !== 1:
+ return translate('aMonth')
+
+ case !(delta < year):
+ return translate('months', Math.floor(delta / month))
+
+ case Math.floor(delta / year) !== 1:
+ return translate('aYear')
+
+ default:
+ return translate('overAYear')
+ }
+ }
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/src/index.js b/deps/npm/node_modules/tiny-relative-date/src/index.js
new file mode 100644
index 0000000000..c2cef68899
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/src/index.js
@@ -0,0 +1,4 @@
+import relativeDateFactory from './factory'
+import enTranslations from '../translations/en'
+
+export default relativeDateFactory(enTranslations)
diff --git a/deps/npm/node_modules/tiny-relative-date/translations/da.js b/deps/npm/node_modules/tiny-relative-date/translations/da.js
new file mode 100644
index 0000000000..dedc17d97b
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/translations/da.js
@@ -0,0 +1,31 @@
+module.exports = {
+ justNow: "ligenu",
+ secondsAgo: "{{time}} sekunder siden",
+ aMinuteAgo: "et minut siden",
+ minutesAgo: "{{time}} minutter siden",
+ anHourAgo: "en time siden",
+ hoursAgo: "{{time}} timer siden",
+ aDayAgo: "i gƄr",
+ daysAgo: "{{time}} dage siden",
+ aWeekAgo: "en uge siden",
+ weeksAgo: "{{time}} uger siden",
+ aMonthAgo: "en mƄned siden",
+ monthsAgo: "{{time}} mƄneder siden",
+ aYearAgo: "et Ć„r siden",
+ yearsAgo: "{{time}} Ć„r siden",
+ overAYearAgo: "over et Ć„r siden",
+ secondsFromNow: "om {{time}} sekunder",
+ aMinuteFromNow: "om et minut",
+ minutesFromNow: "om {{time}} minutter",
+ anHourFromNow: "om en time",
+ hoursFromNow: "om {{time}} timer",
+ aDayFromNow: "i morgen",
+ daysFromNow: "om {{time}} dage",
+ aWeekFromNow: "om en uge",
+ weeksFromNow: "om {{time}} uger",
+ aMonthFromNow: "om en mƄned",
+ monthsFromNow: "om {{time}} mƄneder",
+ aYearFromNow: "om et Ć„r",
+ yearsFromNow: "om {{time}} Ć„r",
+ overAYearFromNow: "om over et Ć„r"
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/translations/de.js b/deps/npm/node_modules/tiny-relative-date/translations/de.js
new file mode 100644
index 0000000000..c0342e190e
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/translations/de.js
@@ -0,0 +1,31 @@
+module.exports = {
+ justNow: "gerade eben",
+ secondsAgo: "vor {{time}} Sekunden",
+ aMinuteAgo: "vor einer Minute",
+ minutesAgo: "vor {{time}} Minuten",
+ anHourAgo: "vor einer Stunde",
+ hoursAgo: "vor {{time}} Stunden",
+ aDayAgo: "gestern",
+ daysAgo: "vor {{time}} Tagen",
+ aWeekAgo: "letzte Woche",
+ weeksAgo: "vor {{time}} Wochen",
+ aMonthAgo: "letzten Monat",
+ monthsAgo: "vor {{time}} Monaten",
+ aYearAgo: "letztes Jahr",
+ yearsAgo: "vor {{time}} Jahren",
+ overAYearAgo: "vor Ć¼ber einem Jahr",
+ secondsFromNow: "in {{time}} Sekunden",
+ aMinuteFromNow: "in einer Minute",
+ minutesFromNow: "in {{time}} Minuten",
+ anHourFromNow: "in einer Stunde",
+ hoursFromNow: "in {{time}} Stunden",
+ aDayFromNow: "morgen",
+ daysFromNow: "in {{time}} Tagen",
+ aWeekFromNow: "nƤchste Woche",
+ weeksFromNow: "in {{time}} Wochen",
+ aMonthFromNow: "nƤchsten Monat",
+ monthsFromNow: "in {{time}} Monaten",
+ aYearFromNow: "nƤchstes Jahr",
+ yearsFromNow: "in {{time}} Jahren",
+ overAYearFromNow: "in Ć¼ber einem Jahr"
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/translations/en-short.js b/deps/npm/node_modules/tiny-relative-date/translations/en-short.js
new file mode 100644
index 0000000000..b368d1921a
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/translations/en-short.js
@@ -0,0 +1,31 @@
+module.exports = {
+ justNow: "now",
+ secondsAgo: "{{time}}s",
+ aMinuteAgo: "1m",
+ minutesAgo: "{{time}}m",
+ anHourAgo: "1h",
+ hoursAgo: "{{time}}h",
+ aDayAgo: "1d",
+ daysAgo: "{{time}}d",
+ aWeekAgo: "1w",
+ weeksAgo: "{{time}}w",
+ aMonthAgo: '4w',
+ monthsAgo: (months) => `${Math.round(months / 12 * 52)}w`,
+ aYearAgo: "1y",
+ yearsAgo: "{{time}}y",
+ overAYearAgo: "1y+",
+ secondsFromNow: "+{{time}}s",
+ aMinuteFromNow: "+1m",
+ minutesFromNow: "+{{time}}m",
+ anHourFromNow: "+1h",
+ hoursFromNow: "+{{time}}h",
+ aDayFromNow: "+1d",
+ daysFromNow: "+{{time}}d",
+ aWeekFromNow: "+1w",
+ weeksFromNow: "+{{time}}w",
+ aMonthFromNow: '+4w',
+ monthsFromNow: (months) => `+${Math.round(months / 12 * 52)}w`,
+ aYearFromNow: "+1y",
+ yearsFromNow: "+{{time}}y",
+ overAYearFromNow: "+1y+"
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/translations/en.js b/deps/npm/node_modules/tiny-relative-date/translations/en.js
new file mode 100644
index 0000000000..8411bf0347
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/translations/en.js
@@ -0,0 +1,31 @@
+module.exports = {
+ justNow: "just now",
+ secondsAgo: "{{time}} seconds ago",
+ aMinuteAgo: "a minute ago",
+ minutesAgo: "{{time}} minutes ago",
+ anHourAgo: "an hour ago",
+ hoursAgo: "{{time}} hours ago",
+ aDayAgo: "yesterday",
+ daysAgo: "{{time}} days ago",
+ aWeekAgo: "a week ago",
+ weeksAgo: "{{time}} weeks ago",
+ aMonthAgo: "a month ago",
+ monthsAgo: "{{time}} months ago",
+ aYearAgo: "a year ago",
+ yearsAgo: "{{time}} years ago",
+ overAYearAgo: "over a year ago",
+ secondsFromNow: "{{time}} seconds from now",
+ aMinuteFromNow: "a minute from now",
+ minutesFromNow: "{{time}} minutes from now",
+ anHourFromNow: "an hour from now",
+ hoursFromNow: "{{time}} hours from now",
+ aDayFromNow: "tomorrow",
+ daysFromNow: "{{time}} days from now",
+ aWeekFromNow: "a week from now",
+ weeksFromNow: "{{time}} weeks from now",
+ aMonthFromNow: "a month from now",
+ monthsFromNow: "{{time}} months from now",
+ aYearFromNow: "a year from now",
+ yearsFromNow: "{{time}} years from now",
+ overAYearFromNow: "over a year from now"
+}
diff --git a/deps/npm/node_modules/tiny-relative-date/translations/es.js b/deps/npm/node_modules/tiny-relative-date/translations/es.js
new file mode 100644
index 0000000000..fac622ff8e
--- /dev/null
+++ b/deps/npm/node_modules/tiny-relative-date/translations/es.js
@@ -0,0 +1,31 @@
+module.exports = {
+ justNow: "reciƩn",
+ secondsAgo: "hace {{time}} segundos",
+ aMinuteAgo: "hace un minuto",
+ minutesAgo: "hace {{time}} minutos",
+ anHourAgo: "hace una hora",
+ hoursAgo: "hace {{time}} horas",
+ aDayAgo: "ayer",
+ daysAgo: "hace {{time}} dĆ­as",
+ aWeekAgo: "hace una semana",
+ weeksAgo: "hace {{time}} semanas",
+ aMonthAgo: "hace un mes",
+ monthsAgo: "hace {{time}} meses",
+ aYearAgo: "hace un aƱo",
+ yearsAgo: "hace {{time}} aƱos",
+ overAYearAgo: "hace mas de un aƱo",
+ secondsFromNow: "dentro de {{time}} segundos",
+ aMinuteFromNow: "dentro de un minuto",
+ minutesFromNow: "dentro de {{time}} minutos",
+ anHourFromNow: "dentro de una hora",
+ hoursFromNow: "dentro de {{time}} horas",
+ aDayFromNow: "maƱana",
+ daysFromNow: "dentro de {{time}} dĆ­as",
+ aWeekFromNow: "dentro de una semana",
+ weeksFromNow: "dentro de {{time}} semanas",
+ aMonthFromNow: "dentro de un mes",
+ monthsFromNow: "dentro de {{time}} meses",
+ aYearFromNow: "dentro de un aƱo",
+ yearsFromNow: "dentro de {{time}} aƱos",
+ overAYearFromNow: "dentro de mas de un aƱo"
+}
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE b/deps/npm/node_modules/tough-cookie/LICENSE
index 1bc286fb57..1bc286fb57 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/LICENSE
+++ b/deps/npm/node_modules/tough-cookie/LICENSE
diff --git a/deps/npm/node_modules/tough-cookie/README.md b/deps/npm/node_modules/tough-cookie/README.md
new file mode 100644
index 0000000000..7c04e0a601
--- /dev/null
+++ b/deps/npm/node_modules/tough-cookie/README.md
@@ -0,0 +1,509 @@
+[RFC6265](https://tools.ietf.org/html/rfc6265) Cookies and CookieJar for Node.js
+
+[![npm package](https://nodei.co/npm/tough-cookie.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/tough-cookie/)
+
+[![Build Status](https://travis-ci.org/salesforce/tough-cookie.png?branch=master)](https://travis-ci.org/salesforce/tough-cookie)
+
+# Synopsis
+
+``` javascript
+var tough = require('tough-cookie');
+var Cookie = tough.Cookie;
+var cookie = Cookie.parse(header);
+cookie.value = 'somethingdifferent';
+header = cookie.toString();
+
+var cookiejar = new tough.CookieJar();
+cookiejar.setCookie(cookie, 'http://currentdomain.example.com/path', cb);
+// ...
+cookiejar.getCookies('http://example.com/otherpath',function(err,cookies) {
+ res.headers['cookie'] = cookies.join('; ');
+});
+```
+
+# Installation
+
+It's _so_ easy!
+
+`npm install tough-cookie`
+
+Why the name? NPM modules `cookie`, `cookies` and `cookiejar` were already taken.
+
+## Version Support
+
+Support for versions of node.js will follow that of the [request](https://www.npmjs.com/package/request) module.
+
+# API
+
+## tough
+
+Functions on the module you get from `require('tough-cookie')`. All can be used as pure functions and don't need to be "bound".
+
+**Note**: prior to 1.0.x, several of these functions took a `strict` parameter. This has since been removed from the API as it was no longer necessary.
+
+### `parseDate(string)`
+
+Parse a cookie date string into a `Date`. Parses according to RFC6265 Section 5.1.1, not `Date.parse()`.
+
+### `formatDate(date)`
+
+Format a Date into a RFC1123 string (the RFC6265-recommended format).
+
+### `canonicalDomain(str)`
+
+Transforms a domain-name into a canonical domain-name. The canonical domain-name is a trimmed, lowercased, stripped-of-leading-dot and optionally punycode-encoded domain-name (Section 5.1.2 of RFC6265). For the most part, this function is idempotent (can be run again on its output without ill effects).
+
+### `domainMatch(str,domStr[,canonicalize=true])`
+
+Answers "does this real domain match the domain in a cookie?". The `str` is the "current" domain-name and the `domStr` is the "cookie" domain-name. Matches according to RFC6265 Section 5.1.3, but it helps to think of it as a "suffix match".
+
+The `canonicalize` parameter will run the other two paramters through `canonicalDomain` or not.
+
+### `defaultPath(path)`
+
+Given a current request/response path, gives the Path apropriate for storing in a cookie. This is basically the "directory" of a "file" in the path, but is specified by Section 5.1.4 of the RFC.
+
+The `path` parameter MUST be _only_ the pathname part of a URI (i.e. excludes the hostname, query, fragment, etc.). This is the `.pathname` property of node's `uri.parse()` output.
+
+### `pathMatch(reqPath,cookiePath)`
+
+Answers "does the request-path path-match a given cookie-path?" as per RFC6265 Section 5.1.4. Returns a boolean.
+
+This is essentially a prefix-match where `cookiePath` is a prefix of `reqPath`.
+
+### `parse(cookieString[, options])`
+
+alias for `Cookie.parse(cookieString[, options])`
+
+### `fromJSON(string)`
+
+alias for `Cookie.fromJSON(string)`
+
+### `getPublicSuffix(hostname)`
+
+Returns the public suffix of this hostname. The public suffix is the shortest domain-name upon which a cookie can be set. Returns `null` if the hostname cannot have cookies set for it.
+
+For example: `www.example.com` and `www.subdomain.example.com` both have public suffix `example.com`.
+
+For further information, see http://publicsuffix.org/. This module derives its list from that site.
+
+### `cookieCompare(a,b)`
+
+For use with `.sort()`, sorts a list of cookies into the recommended order given in the RFC (Section 5.4 step 2). The sort algorithm is, in order of precedence:
+
+* Longest `.path`
+* oldest `.creation` (which has a 1ms precision, same as `Date`)
+* lowest `.creationIndex` (to get beyond the 1ms precision)
+
+``` javascript
+var cookies = [ /* unsorted array of Cookie objects */ ];
+cookies = cookies.sort(cookieCompare);
+```
+
+**Note**: Since JavaScript's `Date` is limited to a 1ms precision, cookies within the same milisecond are entirely possible. This is especially true when using the `now` option to `.setCookie()`. The `.creationIndex` property is a per-process global counter, assigned during construction with `new Cookie()`. This preserves the spirit of the RFC sorting: older cookies go first. This works great for `MemoryCookieStore`, since `Set-Cookie` headers are parsed in order, but may not be so great for distributed systems. Sophisticated `Store`s may wish to set this to some other _logical clock_ such that if cookies A and B are created in the same millisecond, but cookie A is created before cookie B, then `A.creationIndex < B.creationIndex`. If you want to alter the global counter, which you probably _shouldn't_ do, it's stored in `Cookie.cookiesCreated`.
+
+### `permuteDomain(domain)`
+
+Generates a list of all possible domains that `domainMatch()` the parameter. May be handy for implementing cookie stores.
+
+### `permutePath(path)`
+
+Generates a list of all possible paths that `pathMatch()` the parameter. May be handy for implementing cookie stores.
+
+
+## Cookie
+
+Exported via `tough.Cookie`.
+
+### `Cookie.parse(cookieString[, options])`
+
+Parses a single Cookie or Set-Cookie HTTP header into a `Cookie` object. Returns `undefined` if the string can't be parsed.
+
+The options parameter is not required and currently has only one property:
+
+ * _loose_ - boolean - if `true` enable parsing of key-less cookies like `=abc` and `=`, which are not RFC-compliant.
+
+If options is not an object, it is ignored, which means you can use `Array#map` with it.
+
+Here's how to process the Set-Cookie header(s) on a node HTTP/HTTPS response:
+
+``` javascript
+if (res.headers['set-cookie'] instanceof Array)
+ cookies = res.headers['set-cookie'].map(Cookie.parse);
+else
+ cookies = [Cookie.parse(res.headers['set-cookie'])];
+```
+
+_Note:_ in version 2.3.3, tough-cookie limited the number of spaces before the `=` to 256 characters. This limitation has since been removed.
+See [Issue 92](https://github.com/salesforce/tough-cookie/issues/92)
+
+### Properties
+
+Cookie object properties:
+
+ * _key_ - string - the name or key of the cookie (default "")
+ * _value_ - string - the value of the cookie (default "")
+ * _expires_ - `Date` - if set, the `Expires=` attribute of the cookie (defaults to the string `"Infinity"`). See `setExpires()`
+ * _maxAge_ - seconds - if set, the `Max-Age=` attribute _in seconds_ of the cookie. May also be set to strings `"Infinity"` and `"-Infinity"` for non-expiry and immediate-expiry, respectively. See `setMaxAge()`
+ * _domain_ - string - the `Domain=` attribute of the cookie
+ * _path_ - string - the `Path=` of the cookie
+ * _secure_ - boolean - the `Secure` cookie flag
+ * _httpOnly_ - boolean - the `HttpOnly` cookie flag
+ * _extensions_ - `Array` - any unrecognized cookie attributes as strings (even if equal-signs inside)
+ * _creation_ - `Date` - when this cookie was constructed
+ * _creationIndex_ - number - set at construction, used to provide greater sort precision (please see `cookieCompare(a,b)` for a full explanation)
+
+After a cookie has been passed through `CookieJar.setCookie()` it will have the following additional attributes:
+
+ * _hostOnly_ - boolean - is this a host-only cookie (i.e. no Domain field was set, but was instead implied)
+ * _pathIsDefault_ - boolean - if true, there was no Path field on the cookie and `defaultPath()` was used to derive one.
+ * _creation_ - `Date` - **modified** from construction to when the cookie was added to the jar
+ * _lastAccessed_ - `Date` - last time the cookie got accessed. Will affect cookie cleaning once implemented. Using `cookiejar.getCookies(...)` will update this attribute.
+
+### `Cookie([{properties}])`
+
+Receives an options object that can contain any of the above Cookie properties, uses the default for unspecified properties.
+
+### `.toString()`
+
+encode to a Set-Cookie header value. The Expires cookie field is set using `formatDate()`, but is omitted entirely if `.expires` is `Infinity`.
+
+### `.cookieString()`
+
+encode to a Cookie header value (i.e. the `.key` and `.value` properties joined with '=').
+
+### `.setExpires(String)`
+
+sets the expiry based on a date-string passed through `parseDate()`. If parseDate returns `null` (i.e. can't parse this date string), `.expires` is set to `"Infinity"` (a string) is set.
+
+### `.setMaxAge(number)`
+
+sets the maxAge in seconds. Coerces `-Infinity` to `"-Infinity"` and `Infinity` to `"Infinity"` so it JSON serializes correctly.
+
+### `.expiryTime([now=Date.now()])`
+
+### `.expiryDate([now=Date.now()])`
+
+expiryTime() Computes the absolute unix-epoch milliseconds that this cookie expires. expiryDate() works similarly, except it returns a `Date` object. Note that in both cases the `now` parameter should be milliseconds.
+
+Max-Age takes precedence over Expires (as per the RFC). The `.creation` attribute -- or, by default, the `now` paramter -- is used to offset the `.maxAge` attribute.
+
+If Expires (`.expires`) is set, that's returned.
+
+Otherwise, `expiryTime()` returns `Infinity` and `expiryDate()` returns a `Date` object for "Tue, 19 Jan 2038 03:14:07 GMT" (latest date that can be expressed by a 32-bit `time_t`; the common limit for most user-agents).
+
+### `.TTL([now=Date.now()])`
+
+compute the TTL relative to `now` (milliseconds). The same precedence rules as for `expiryTime`/`expiryDate` apply.
+
+The "number" `Infinity` is returned for cookies without an explicit expiry and `0` is returned if the cookie is expired. Otherwise a time-to-live in milliseconds is returned.
+
+### `.canonicalizedDoman()`
+
+### `.cdomain()`
+
+return the canonicalized `.domain` field. This is lower-cased and punycode (RFC3490) encoded if the domain has any non-ASCII characters.
+
+### `.toJSON()`
+
+For convenience in using `JSON.serialize(cookie)`. Returns a plain-old `Object` that can be JSON-serialized.
+
+Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are exported in ISO format (`.toISOString()`).
+
+**NOTE**: Custom `Cookie` properties will be discarded. In tough-cookie 1.x, since there was no `.toJSON` method explicitly defined, all enumerable properties were captured. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array.
+
+### `Cookie.fromJSON(strOrObj)`
+
+Does the reverse of `cookie.toJSON()`. If passed a string, will `JSON.parse()` that first.
+
+Any `Date` properties (i.e., `.expires`, `.creation`, and `.lastAccessed`) are parsed via `Date.parse()`, not the tough-cookie `parseDate`, since it's JavaScript/JSON-y timestamps being handled at this layer.
+
+Returns `null` upon JSON parsing error.
+
+### `.clone()`
+
+Does a deep clone of this cookie, exactly implemented as `Cookie.fromJSON(cookie.toJSON())`.
+
+### `.validate()`
+
+Status: *IN PROGRESS*. Works for a few things, but is by no means comprehensive.
+
+validates cookie attributes for semantic correctness. Useful for "lint" checking any Set-Cookie headers you generate. For now, it returns a boolean, but eventually could return a reason string -- you can future-proof with this construct:
+
+``` javascript
+if (cookie.validate() === true) {
+ // it's tasty
+} else {
+ // yuck!
+}
+```
+
+
+## CookieJar
+
+Exported via `tough.CookieJar`.
+
+### `CookieJar([store],[options])`
+
+Simply use `new CookieJar()`. If you'd like to use a custom store, pass that to the constructor otherwise a `MemoryCookieStore` will be created and used.
+
+The `options` object can be omitted and can have the following properties:
+
+ * _rejectPublicSuffixes_ - boolean - default `true` - reject cookies with domains like "com" and "co.uk"
+ * _looseMode_ - boolean - default `false` - accept malformed cookies like `bar` and `=bar`, which have an implied empty name.
+ This is not in the standard, but is used sometimes on the web and is accepted by (most) browsers.
+
+Since eventually this module would like to support database/remote/etc. CookieJars, continuation passing style is used for CookieJar methods.
+
+### `.setCookie(cookieOrString, currentUrl, [{options},] cb(err,cookie))`
+
+Attempt to set the cookie in the cookie jar. If the operation fails, an error will be given to the callback `cb`, otherwise the cookie is passed through. The cookie will have updated `.creation`, `.lastAccessed` and `.hostOnly` properties.
+
+The `options` object can be omitted and can have the following properties:
+
+ * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.
+ * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.
+ * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies
+ * _ignoreError_ - boolean - default `false` - silently ignore things like parse errors and invalid domains. `Store` errors aren't ignored by this option.
+
+As per the RFC, the `.hostOnly` property is set if there was no "Domain=" parameter in the cookie string (or `.domain` was null on the Cookie object). The `.domain` property is set to the fully-qualified hostname of `currentUrl` in this case. Matching this cookie requires an exact hostname match (not a `domainMatch` as per usual).
+
+### `.setCookieSync(cookieOrString, currentUrl, [{options}])`
+
+Synchronous version of `setCookie`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
+
+### `.getCookies(currentUrl, [{options},] cb(err,cookies))`
+
+Retrieve the list of cookies that can be sent in a Cookie header for the current url.
+
+If an error is encountered, that's passed as `err` to the callback, otherwise an `Array` of `Cookie` objects is passed. The array is sorted with `cookieCompare()` unless the `{sort:false}` option is given.
+
+The `options` object can be omitted and can have the following properties:
+
+ * _http_ - boolean - default `true` - indicates if this is an HTTP or non-HTTP API. Affects HttpOnly cookies.
+ * _secure_ - boolean - autodetect from url - indicates if this is a "Secure" API. If the currentUrl starts with `https:` or `wss:` then this is defaulted to `true`, otherwise `false`.
+ * _now_ - Date - default `new Date()` - what to use for the creation/access time of cookies
+ * _expire_ - boolean - default `true` - perform expiry-time checking of cookies and asynchronously remove expired cookies from the store. Using `false` will return expired cookies and **not** remove them from the store (which is useful for replaying Set-Cookie headers, potentially).
+ * _allPaths_ - boolean - default `false` - if `true`, do not scope cookies by path. The default uses RFC-compliant path scoping. **Note**: may not be supported by the underlying store (the default `MemoryCookieStore` supports it).
+
+The `.lastAccessed` property of the returned cookies will have been updated.
+
+### `.getCookiesSync(currentUrl, [{options}])`
+
+Synchronous version of `getCookies`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
+
+### `.getCookieString(...)`
+
+Accepts the same options as `.getCookies()` but passes a string suitable for a Cookie header rather than an array to the callback. Simply maps the `Cookie` array via `.cookieString()`.
+
+### `.getCookieStringSync(...)`
+
+Synchronous version of `getCookieString`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
+
+### `.getSetCookieStrings(...)`
+
+Returns an array of strings suitable for **Set-Cookie** headers. Accepts the same options as `.getCookies()`. Simply maps the cookie array via `.toString()`.
+
+### `.getSetCookieStringsSync(...)`
+
+Synchronous version of `getSetCookieStrings`; only works with synchronous stores (e.g. the default `MemoryCookieStore`).
+
+### `.serialize(cb(err,serializedObject))`
+
+Serialize the Jar if the underlying store supports `.getAllCookies`.
+
+**NOTE**: Custom `Cookie` properties will be discarded. If you want a property to be serialized, add the property name to the `Cookie.serializableProperties` Array.
+
+See [Serialization Format].
+
+### `.serializeSync()`
+
+Sync version of .serialize
+
+### `.toJSON()`
+
+Alias of .serializeSync() for the convenience of `JSON.stringify(cookiejar)`.
+
+### `CookieJar.deserialize(serialized, [store], cb(err,object))`
+
+A new Jar is created and the serialized Cookies are added to the underlying store. Each `Cookie` is added via `store.putCookie` in the order in which they appear in the serialization.
+
+The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created.
+
+As a convenience, if `serialized` is a string, it is passed through `JSON.parse` first. If that throws an error, this is passed to the callback.
+
+### `CookieJar.deserializeSync(serialized, [store])`
+
+Sync version of `.deserialize`. _Note_ that the `store` must be synchronous for this to work.
+
+### `CookieJar.fromJSON(string)`
+
+Alias of `.deserializeSync` to provide consistency with `Cookie.fromJSON()`.
+
+### `.clone([store,]cb(err,newJar))`
+
+Produces a deep clone of this jar. Modifications to the original won't affect the clone, and vice versa.
+
+The `store` argument is optional, but should be an instance of `Store`. By default, a new instance of `MemoryCookieStore` is created. Transferring between store types is supported so long as the source implements `.getAllCookies()` and the destination implements `.putCookie()`.
+
+### `.cloneSync([store])`
+
+Synchronous version of `.clone`, returning a new `CookieJar` instance.
+
+The `store` argument is optional, but must be a _synchronous_ `Store` instance if specified. If not passed, a new instance of `MemoryCookieStore` is used.
+
+The _source_ and _destination_ must both be synchronous `Store`s. If one or both stores are asynchronous, use `.clone` instead. Recall that `MemoryCookieStore` supports both synchronous and asynchronous API calls.
+
+## Store
+
+Base class for CookieJar stores. Available as `tough.Store`.
+
+## Store API
+
+The storage model for each `CookieJar` instance can be replaced with a custom implementation. The default is `MemoryCookieStore` which can be found in the `lib/memstore.js` file. The API uses continuation-passing-style to allow for asynchronous stores.
+
+Stores should inherit from the base `Store` class, which is available as `require('tough-cookie').Store`.
+
+Stores are asynchronous by default, but if `store.synchronous` is set to `true`, then the `*Sync` methods on the of the containing `CookieJar` can be used (however, the continuation-passing style
+
+All `domain` parameters will have been normalized before calling.
+
+The Cookie store must have all of the following methods.
+
+### `store.findCookie(domain, path, key, cb(err,cookie))`
+
+Retrieve a cookie with the given domain, path and key (a.k.a. name). The RFC maintains that exactly one of these cookies should exist in a store. If the store is using versioning, this means that the latest/newest such cookie should be returned.
+
+Callback takes an error and the resulting `Cookie` object. If no cookie is found then `null` MUST be passed instead (i.e. not an error).
+
+### `store.findCookies(domain, path, cb(err,cookies))`
+
+Locates cookies matching the given domain and path. This is most often called in the context of `cookiejar.getCookies()` above.
+
+If no cookies are found, the callback MUST be passed an empty array.
+
+The resulting list will be checked for applicability to the current request according to the RFC (domain-match, path-match, http-only-flag, secure-flag, expiry, etc.), so it's OK to use an optimistic search algorithm when implementing this method. However, the search algorithm used SHOULD try to find cookies that `domainMatch()` the domain and `pathMatch()` the path in order to limit the amount of checking that needs to be done.
+
+As of version 0.9.12, the `allPaths` option to `cookiejar.getCookies()` above will cause the path here to be `null`. If the path is `null`, path-matching MUST NOT be performed (i.e. domain-matching only).
+
+### `store.putCookie(cookie, cb(err))`
+
+Adds a new cookie to the store. The implementation SHOULD replace any existing cookie with the same `.domain`, `.path`, and `.key` properties -- depending on the nature of the implementation, it's possible that between the call to `fetchCookie` and `putCookie` that a duplicate `putCookie` can occur.
+
+The `cookie` object MUST NOT be modified; the caller will have already updated the `.creation` and `.lastAccessed` properties.
+
+Pass an error if the cookie cannot be stored.
+
+### `store.updateCookie(oldCookie, newCookie, cb(err))`
+
+Update an existing cookie. The implementation MUST update the `.value` for a cookie with the same `domain`, `.path` and `.key`. The implementation SHOULD check that the old value in the store is equivalent to `oldCookie` - how the conflict is resolved is up to the store.
+
+The `.lastAccessed` property will always be different between the two objects (to the precision possible via JavaScript's clock). Both `.creation` and `.creationIndex` are guaranteed to be the same. Stores MAY ignore or defer the `.lastAccessed` change at the cost of affecting how cookies are selected for automatic deletion (e.g., least-recently-used, which is up to the store to implement).
+
+Stores may wish to optimize changing the `.value` of the cookie in the store versus storing a new cookie. If the implementation doesn't define this method a stub that calls `putCookie(newCookie,cb)` will be added to the store object.
+
+The `newCookie` and `oldCookie` objects MUST NOT be modified.
+
+Pass an error if the newCookie cannot be stored.
+
+### `store.removeCookie(domain, path, key, cb(err))`
+
+Remove a cookie from the store (see notes on `findCookie` about the uniqueness constraint).
+
+The implementation MUST NOT pass an error if the cookie doesn't exist; only pass an error due to the failure to remove an existing cookie.
+
+### `store.removeCookies(domain, path, cb(err))`
+
+Removes matching cookies from the store. The `path` parameter is optional, and if missing means all paths in a domain should be removed.
+
+Pass an error ONLY if removing any existing cookies failed.
+
+### `store.getAllCookies(cb(err, cookies))`
+
+Produces an `Array` of all cookies during `jar.serialize()`. The items in the array can be true `Cookie` objects or generic `Object`s with the [Serialization Format] data structure.
+
+Cookies SHOULD be returned in creation order to preserve sorting via `compareCookies()`. For reference, `MemoryCookieStore` will sort by `.creationIndex` since it uses true `Cookie` objects internally. If you don't return the cookies in creation order, they'll still be sorted by creation time, but this only has a precision of 1ms. See `compareCookies` for more detail.
+
+Pass an error if retrieval fails.
+
+## MemoryCookieStore
+
+Inherits from `Store`.
+
+A just-in-memory CookieJar synchronous store implementation, used by default. Despite being a synchronous implementation, it's usable with both the synchronous and asynchronous forms of the `CookieJar` API.
+
+## Community Cookie Stores
+
+These are some Store implementations authored and maintained by the community. They aren't official and we don't vouch for them but you may be interested to have a look:
+
+- [`db-cookie-store`](https://github.com/JSBizon/db-cookie-store): SQL including SQLite-based databases
+- [`file-cookie-store`](https://github.com/JSBizon/file-cookie-store): Netscape cookie file format on disk
+- [`redis-cookie-store`](https://github.com/benkroeger/redis-cookie-store): Redis
+- [`tough-cookie-filestore`](https://github.com/mitsuru/tough-cookie-filestore): JSON on disk
+- [`tough-cookie-web-storage-store`](https://github.com/exponentjs/tough-cookie-web-storage-store): DOM localStorage and sessionStorage
+
+
+# Serialization Format
+
+**NOTE**: if you want to have custom `Cookie` properties serialized, add the property name to `Cookie.serializableProperties`.
+
+```js
+ {
+ // The version of tough-cookie that serialized this jar.
+ version: 'tough-cookie@1.x.y',
+
+ // add the store type, to make humans happy:
+ storeType: 'MemoryCookieStore',
+
+ // CookieJar configuration:
+ rejectPublicSuffixes: true,
+ // ... future items go here
+
+ // Gets filled from jar.store.getAllCookies():
+ cookies: [
+ {
+ key: 'string',
+ value: 'string',
+ // ...
+ /* other Cookie.serializableProperties go here */
+ }
+ ]
+ }
+```
+
+# Copyright and License
+
+(tl;dr: BSD-3-Clause with some MPL/2.0)
+
+```text
+ Copyright (c) 2015, Salesforce.com, Inc.
+ All rights reserved.
+
+ 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.
+
+ 3. Neither the name of Salesforce.com nor the names of its contributors may
+ 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 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.
+```
+
+Portions may be licensed under different licenses (in particular `public_suffix_list.dat` is MPL/2.0); please read that file and the LICENSE file for full details.
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js b/deps/npm/node_modules/tough-cookie/lib/cookie.js
index ccf941f841..9f1afa180c 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/cookie.js
+++ b/deps/npm/node_modules/tough-cookie/lib/cookie.js
@@ -44,37 +44,24 @@ try {
console.warn("cookie: can't load punycode; won't use punycode for domain normalization");
}
-var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
-
// From RFC6265 S4.1.1
// note that it excludes \x3B ";"
-var COOKIE_OCTET = /[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]/;
-var COOKIE_OCTETS = new RegExp('^'+COOKIE_OCTET.source+'+$');
+var COOKIE_OCTETS = /^[\x21\x23-\x2B\x2D-\x3A\x3C-\x5B\x5D-\x7E]+$/;
var CONTROL_CHARS = /[\x00-\x1F]/;
-// For COOKIE_PAIR and LOOSE_COOKIE_PAIR below, the number of spaces has been
-// restricted to 256 to side-step a ReDoS issue reported here:
-// https://github.com/salesforce/tough-cookie/issues/92
-
-// Double quotes are part of the value (see: S4.1.1).
-// '\r', '\n' and '\0' should be treated as a terminator in the "relaxed" mode
-// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60)
-// '=' and ';' are attribute/values separators
-// (see: https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L64)
-var COOKIE_PAIR = /^(([^=;]+))\s{0,256}=\s*([^\n\r\0]*)/;
-
-// Used to parse non-RFC-compliant cookies like '=abc' when given the `loose`
-// option in Cookie.parse:
-var LOOSE_COOKIE_PAIR = /^((?:=)?([^=;]*)\s{0,256}=\s*)?([^\n\r\0]*)/;
+// From Chromium // '\r', '\n' and '\0' should be treated as a terminator in
+// the "relaxed" mode, see:
+// https://github.com/ChromiumWebApps/chromium/blob/b3d3b4da8bb94c1b2e061600df106d590fda3620/net/cookies/parsed_cookie.cc#L60
+var TERMINATORS = ['\n', '\r', '\0'];
// RFC6265 S4.1.1 defines path value as 'any CHAR except CTLs or ";"'
// Note ';' is \x3B
var PATH_VALUE = /[\x20-\x3A\x3C-\x7E]+/;
-var DAY_OF_MONTH = /^(\d{1,2})[^\d]*$/;
-var TIME = /^(\d{1,2})[^\d]*:(\d{1,2})[^\d]*:(\d{1,2})[^\d]*$/;
-var MONTH = /^(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)/i;
+// date-time parsing constants (RFC6265 S5.1.1)
+
+var DATE_DELIM = /[\x09\x20-\x2F\x3B-\x40\x5B-\x60\x7B-\x7E]/;
var MONTH_TO_NUM = {
jan:0, feb:1, mar:2, apr:3, may:4, jun:5,
@@ -87,13 +74,80 @@ var NUM_TO_DAY = [
'Sun','Mon','Tue','Wed','Thu','Fri','Sat'
];
-var YEAR = /^(\d{2}|\d{4})$/; // 2 to 4 digits
-
var MAX_TIME = 2147483647000; // 31-bit max
var MIN_TIME = 0; // 31-bit min
+/*
+ * Parses a Natural number (i.e., non-negative integer) with either the
+ * <min>*<max>DIGIT ( non-digit *OCTET )
+ * or
+ * <min>*<max>DIGIT
+ * grammar (RFC6265 S5.1.1).
+ *
+ * The "trailingOK" boolean controls if the grammar accepts a
+ * "( non-digit *OCTET )" trailer.
+ */
+function parseDigits(token, minDigits, maxDigits, trailingOK) {
+ var count = 0;
+ while (count < token.length) {
+ var c = token.charCodeAt(count);
+ // "non-digit = %x00-2F / %x3A-FF"
+ if (c <= 0x2F || c >= 0x3A) {
+ break;
+ }
+ count++;
+ }
+
+ // constrain to a minimum and maximum number of digits.
+ if (count < minDigits || count > maxDigits) {
+ return null;
+ }
+
+ if (!trailingOK && count != token.length) {
+ return null;
+ }
-// RFC6265 S5.1.1 date parser:
+ return parseInt(token.substr(0,count), 10);
+}
+
+function parseTime(token) {
+ var parts = token.split(':');
+ var result = [0,0,0];
+
+ /* RF6256 S5.1.1:
+ * time = hms-time ( non-digit *OCTET )
+ * hms-time = time-field ":" time-field ":" time-field
+ * time-field = 1*2DIGIT
+ */
+
+ if (parts.length !== 3) {
+ return null;
+ }
+
+ for (var i = 0; i < 3; i++) {
+ // "time-field" must be strictly "1*2DIGIT", HOWEVER, "hms-time" can be
+ // followed by "( non-digit *OCTET )" so therefore the last time-field can
+ // have a trailer
+ var trailingOK = (i == 2);
+ var num = parseDigits(parts[i], 1, 2, trailingOK);
+ if (num === null) {
+ return null;
+ }
+ result[i] = num;
+ }
+
+ return result;
+}
+
+function parseMonth(token) {
+ token = String(token).substr(0,3).toLowerCase();
+ var num = MONTH_TO_NUM[token];
+ return num >= 0 ? num : null;
+}
+
+/*
+ * RFC6265 S5.1.1 date parser (see RFC for full grammar)
+ */
function parseDate(str) {
if (!str) {
return;
@@ -109,9 +163,9 @@ function parseDate(str) {
}
var hour = null;
- var minutes = null;
- var seconds = null;
- var day = null;
+ var minute = null;
+ var second = null;
+ var dayOfMonth = null;
var month = null;
var year = null;
@@ -129,22 +183,12 @@ function parseDate(str) {
* the date-token, respectively. Skip the remaining sub-steps and continue
* to the next date-token.
*/
- if (seconds === null) {
- result = TIME.exec(token);
+ if (second === null) {
+ result = parseTime(token);
if (result) {
- hour = parseInt(result[1], 10);
- minutes = parseInt(result[2], 10);
- seconds = parseInt(result[3], 10);
- /* RFC6265 S5.1.1.5:
- * [fail if]
- * * the hour-value is greater than 23,
- * * the minute-value is greater than 59, or
- * * the second-value is greater than 59.
- */
- if(hour > 23 || minutes > 59 || seconds > 59) {
- return;
- }
-
+ hour = result[0];
+ minute = result[1];
+ second = result[2];
continue;
}
}
@@ -154,16 +198,11 @@ function parseDate(str) {
* the day-of-month-value to the number denoted by the date-token. Skip
* the remaining sub-steps and continue to the next date-token.
*/
- if (day === null) {
- result = DAY_OF_MONTH.exec(token);
- if (result) {
- day = parseInt(result, 10);
- /* RFC6265 S5.1.1.5:
- * [fail if] the day-of-month-value is less than 1 or greater than 31
- */
- if(day < 1 || day > 31) {
- return;
- }
+ if (dayOfMonth === null) {
+ // "day-of-month = 1*2DIGIT ( non-digit *OCTET )"
+ result = parseDigits(token, 1, 2, true);
+ if (result !== null) {
+ dayOfMonth = result;
continue;
}
}
@@ -174,47 +213,63 @@ function parseDate(str) {
* continue to the next date-token.
*/
if (month === null) {
- result = MONTH.exec(token);
- if (result) {
- month = MONTH_TO_NUM[result[1].toLowerCase()];
+ result = parseMonth(token);
+ if (result !== null) {
+ month = result;
continue;
}
}
- /* 2.4. If the found-year flag is not set and the date-token matches the year
- * production, set the found-year flag and set the year-value to the number
- * denoted by the date-token. Skip the remaining sub-steps and continue to
- * the next date-token.
+ /* 2.4. If the found-year flag is not set and the date-token matches the
+ * year production, set the found-year flag and set the year-value to the
+ * number denoted by the date-token. Skip the remaining sub-steps and
+ * continue to the next date-token.
*/
if (year === null) {
- result = YEAR.exec(token);
- if (result) {
- year = parseInt(result[0], 10);
+ // "year = 2*4DIGIT ( non-digit *OCTET )"
+ result = parseDigits(token, 2, 4, true);
+ if (result !== null) {
+ year = result;
/* From S5.1.1:
* 3. If the year-value is greater than or equal to 70 and less
* than or equal to 99, increment the year-value by 1900.
* 4. If the year-value is greater than or equal to 0 and less
* than or equal to 69, increment the year-value by 2000.
*/
- if (70 <= year && year <= 99) {
+ if (year >= 70 && year <= 99) {
year += 1900;
- } else if (0 <= year && year <= 69) {
+ } else if (year >= 0 && year <= 69) {
year += 2000;
}
-
- if (year < 1601) {
- return; // 5. ... the year-value is less than 1601
- }
}
}
}
- if (seconds === null || day === null || month === null || year === null) {
- return; // 5. ... at least one of the found-day-of-month, found-month, found-
- // year, or found-time flags is not set,
+ /* RFC 6265 S5.1.1
+ * "5. Abort these steps and fail to parse the cookie-date if:
+ * * at least one of the found-day-of-month, found-month, found-
+ * year, or found-time flags is not set,
+ * * the day-of-month-value is less than 1 or greater than 31,
+ * * the year-value is less than 1601,
+ * * the hour-value is greater than 23,
+ * * the minute-value is greater than 59, or
+ * * the second-value is greater than 59.
+ * (Note that leap seconds cannot be represented in this syntax.)"
+ *
+ * So, in order as above:
+ */
+ if (
+ dayOfMonth === null || month === null || year === null || second === null ||
+ dayOfMonth < 1 || dayOfMonth > 31 ||
+ year < 1601 ||
+ hour > 23 ||
+ minute > 59 ||
+ second > 59
+ ) {
+ return;
}
- return new Date(Date.UTC(year, month, day, hour, minutes, seconds));
+ return new Date(Date.UTC(year, month, dayOfMonth, hour, minute, second));
}
function formatDate(date) {
@@ -321,32 +376,62 @@ function defaultPath(path) {
return path.slice(0, rightSlash);
}
+function trimTerminator(str) {
+ for (var t = 0; t < TERMINATORS.length; t++) {
+ var terminatorIdx = str.indexOf(TERMINATORS[t]);
+ if (terminatorIdx !== -1) {
+ str = str.substr(0,terminatorIdx);
+ }
+ }
-function parse(str, options) {
- if (!options || typeof options !== 'object') {
- options = {};
+ return str;
+}
+
+function parseCookiePair(cookiePair, looseMode) {
+ cookiePair = trimTerminator(cookiePair);
+
+ var firstEq = cookiePair.indexOf('=');
+ if (looseMode) {
+ if (firstEq === 0) { // '=' is immediately at start
+ cookiePair = cookiePair.substr(1);
+ firstEq = cookiePair.indexOf('='); // might still need to split on '='
+ }
+ } else { // non-loose mode
+ if (firstEq <= 0) { // no '=' or is at start
+ return; // needs to have non-empty "cookie-name"
+ }
}
- str = str.trim();
- // We use a regex to parse the "name-value-pair" part of S5.2
- var firstSemi = str.indexOf(';'); // S5.2 step 1
- var pairRe = options.loose ? LOOSE_COOKIE_PAIR : COOKIE_PAIR;
- var result = pairRe.exec(firstSemi === -1 ? str : str.substr(0,firstSemi));
+ var cookieName, cookieValue;
+ if (firstEq <= 0) {
+ cookieName = "";
+ cookieValue = cookiePair.trim();
+ } else {
+ cookieName = cookiePair.substr(0, firstEq).trim();
+ cookieValue = cookiePair.substr(firstEq+1).trim();
+ }
- // Rx satisfies the "the name string is empty" and "lacks a %x3D ("=")"
- // constraints as well as trimming any whitespace.
- if (!result) {
+ if (CONTROL_CHARS.test(cookieName) || CONTROL_CHARS.test(cookieValue)) {
return;
}
var c = new Cookie();
- if (result[1]) {
- c.key = result[2].trim();
- } else {
- c.key = '';
+ c.key = cookieName;
+ c.value = cookieValue;
+ return c;
+}
+
+function parse(str, options) {
+ if (!options || typeof options !== 'object') {
+ options = {};
}
- c.value = result[3].trim();
- if (CONTROL_CHARS.test(c.key) || CONTROL_CHARS.test(c.value)) {
+ str = str.trim();
+
+ // We use a regex to parse the "name-value-pair" part of S5.2
+ var firstSemi = str.indexOf(';'); // S5.2 step 1
+ var cookiePair = (firstSemi === -1) ? str : str.substr(0, firstSemi);
+ var c = parseCookiePair(cookiePair, !!options.loose);
+ if (!c) {
return;
}
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js b/deps/npm/node_modules/tough-cookie/lib/memstore.js
index 89ceb69000..89ceb69000 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/memstore.js
+++ b/deps/npm/node_modules/tough-cookie/lib/memstore.js
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js b/deps/npm/node_modules/tough-cookie/lib/pathMatch.js
index 7c7a79f1f0..7c7a79f1f0 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/pathMatch.js
+++ b/deps/npm/node_modules/tough-cookie/lib/pathMatch.js
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js b/deps/npm/node_modules/tough-cookie/lib/permuteDomain.js
index 8af841b65e..8af841b65e 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/permuteDomain.js
+++ b/deps/npm/node_modules/tough-cookie/lib/permuteDomain.js
diff --git a/deps/npm/node_modules/tough-cookie/lib/pubsuffix.js b/deps/npm/node_modules/tough-cookie/lib/pubsuffix.js
new file mode 100644
index 0000000000..1b4d7ca319
--- /dev/null
+++ b/deps/npm/node_modules/tough-cookie/lib/pubsuffix.js
@@ -0,0 +1,98 @@
+/****************************************************
+ * AUTOMATICALLY GENERATED by generate-pubsuffix.js *
+ * DO NOT EDIT! *
+ ****************************************************/
+
+"use strict";
+
+var punycode = require('punycode');
+
+module.exports.getPublicSuffix = function getPublicSuffix(domain) {
+ /*!
+ * Copyright (c) 2015, Salesforce.com, Inc.
+ * All rights reserved.
+ *
+ * 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.
+ *
+ * 3. Neither the name of Salesforce.com nor the names of its contributors may
+ * 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 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.
+ */
+ if (!domain) {
+ return null;
+ }
+ if (domain.match(/^\./)) {
+ return null;
+ }
+ var asciiDomain = punycode.toASCII(domain);
+ var converted = false;
+ if (asciiDomain !== domain) {
+ domain = asciiDomain;
+ converted = true;
+ }
+ if (index[domain]) {
+ return null;
+ }
+
+ domain = domain.toLowerCase();
+ var parts = domain.split('.').reverse();
+
+ var suffix = '';
+ var suffixLen = 0;
+ for (var i=0; i<parts.length; i++) {
+ var part = parts[i];
+ var starstr = '*'+suffix;
+ var partstr = part+suffix;
+
+ if (index[starstr]) { // star rule matches
+ suffixLen = i+1;
+ if (index[partstr] === false) { // exception rule matches (NB: false, not undefined)
+ suffixLen--;
+ }
+ } else if (index[partstr]) { // exact match, not exception
+ suffixLen = i+1;
+ }
+
+ suffix = '.'+partstr;
+ }
+
+ if (index['*'+suffix]) { // *.domain exists (e.g. *.kyoto.jp for domain='kyoto.jp');
+ return null;
+ }
+
+ suffixLen = suffixLen || 1;
+ if (parts.length > suffixLen) {
+ var publicSuffix = parts.slice(0,suffixLen+1).reverse().join('.');
+ return converted ? punycode.toUnicode(publicSuffix) : publicSuffix;
+ }
+
+ return null;
+};
+
+// The following generated structure is used under the MPL version 2.0
+// See public-suffix.txt for more information
+
+var index = module.exports.index = Object.freeze(
+{"ac":true,"com.ac":true,"edu.ac":true,"gov.ac":true,"net.ac":true,"mil.ac":true,"org.ac":true,"ad":true,"nom.ad":true,"ae":true,"co.ae":true,"net.ae":true,"org.ae":true,"sch.ae":true,"ac.ae":true,"gov.ae":true,"mil.ae":true,"aero":true,"accident-investigation.aero":true,"accident-prevention.aero":true,"aerobatic.aero":true,"aeroclub.aero":true,"aerodrome.aero":true,"agents.aero":true,"aircraft.aero":true,"airline.aero":true,"airport.aero":true,"air-surveillance.aero":true,"airtraffic.aero":true,"air-traffic-control.aero":true,"ambulance.aero":true,"amusement.aero":true,"association.aero":true,"author.aero":true,"ballooning.aero":true,"broker.aero":true,"caa.aero":true,"cargo.aero":true,"catering.aero":true,"certification.aero":true,"championship.aero":true,"charter.aero":true,"civilaviation.aero":true,"club.aero":true,"conference.aero":true,"consultant.aero":true,"consulting.aero":true,"control.aero":true,"council.aero":true,"crew.aero":true,"design.aero":true,"dgca.aero":true,"educator.aero":true,"emergency.aero":true,"engine.aero":true,"engineer.aero":true,"entertainment.aero":true,"equipment.aero":true,"exchange.aero":true,"express.aero":true,"federation.aero":true,"flight.aero":true,"freight.aero":true,"fuel.aero":true,"gliding.aero":true,"government.aero":true,"groundhandling.aero":true,"group.aero":true,"hanggliding.aero":true,"homebuilt.aero":true,"insurance.aero":true,"journal.aero":true,"journalist.aero":true,"leasing.aero":true,"logistics.aero":true,"magazine.aero":true,"maintenance.aero":true,"media.aero":true,"microlight.aero":true,"modelling.aero":true,"navigation.aero":true,"parachuting.aero":true,"paragliding.aero":true,"passenger-association.aero":true,"pilot.aero":true,"press.aero":true,"production.aero":true,"recreation.aero":true,"repbody.aero":true,"res.aero":true,"research.aero":true,"rotorcraft.aero":true,"safety.aero":true,"scientist.aero":true,"services.aero":true,"show.aero":true,"skydiving.aero":true,"software.aero":true,"student.aero":true,"trader.aero":true,"trading.aero":true,"trainer.aero":true,"union.aero":true,"workinggroup.aero":true,"works.aero":true,"af":true,"gov.af":true,"com.af":true,"org.af":true,"net.af":true,"edu.af":true,"ag":true,"com.ag":true,"org.ag":true,"net.ag":true,"co.ag":true,"nom.ag":true,"ai":true,"off.ai":true,"com.ai":true,"net.ai":true,"org.ai":true,"al":true,"com.al":true,"edu.al":true,"gov.al":true,"mil.al":true,"net.al":true,"org.al":true,"am":true,"ao":true,"ed.ao":true,"gv.ao":true,"og.ao":true,"co.ao":true,"pb.ao":true,"it.ao":true,"aq":true,"ar":true,"com.ar":true,"edu.ar":true,"gob.ar":true,"gov.ar":true,"int.ar":true,"mil.ar":true,"musica.ar":true,"net.ar":true,"org.ar":true,"tur.ar":true,"arpa":true,"e164.arpa":true,"in-addr.arpa":true,"ip6.arpa":true,"iris.arpa":true,"uri.arpa":true,"urn.arpa":true,"as":true,"gov.as":true,"asia":true,"at":true,"ac.at":true,"co.at":true,"gv.at":true,"or.at":true,"au":true,"com.au":true,"net.au":true,"org.au":true,"edu.au":true,"gov.au":true,"asn.au":true,"id.au":true,"info.au":true,"conf.au":true,"oz.au":true,"act.au":true,"nsw.au":true,"nt.au":true,"qld.au":true,"sa.au":true,"tas.au":true,"vic.au":true,"wa.au":true,"act.edu.au":true,"nsw.edu.au":true,"nt.edu.au":true,"qld.edu.au":true,"sa.edu.au":true,"tas.edu.au":true,"vic.edu.au":true,"wa.edu.au":true,"qld.gov.au":true,"sa.gov.au":true,"tas.gov.au":true,"vic.gov.au":true,"wa.gov.au":true,"aw":true,"com.aw":true,"ax":true,"az":true,"com.az":true,"net.az":true,"int.az":true,"gov.az":true,"org.az":true,"edu.az":true,"info.az":true,"pp.az":true,"mil.az":true,"name.az":true,"pro.az":true,"biz.az":true,"ba":true,"com.ba":true,"edu.ba":true,"gov.ba":true,"mil.ba":true,"net.ba":true,"org.ba":true,"bb":true,"biz.bb":true,"co.bb":true,"com.bb":true,"edu.bb":true,"gov.bb":true,"info.bb":true,"net.bb":true,"org.bb":true,"store.bb":true,"tv.bb":true,"*.bd":true,"be":true,"ac.be":true,"bf":true,"gov.bf":true,"bg":true,"a.bg":true,"b.bg":true,"c.bg":true,"d.bg":true,"e.bg":true,"f.bg":true,"g.bg":true,"h.bg":true,"i.bg":true,"j.bg":true,"k.bg":true,"l.bg":true,"m.bg":true,"n.bg":true,"o.bg":true,"p.bg":true,"q.bg":true,"r.bg":true,"s.bg":true,"t.bg":true,"u.bg":true,"v.bg":true,"w.bg":true,"x.bg":true,"y.bg":true,"z.bg":true,"0.bg":true,"1.bg":true,"2.bg":true,"3.bg":true,"4.bg":true,"5.bg":true,"6.bg":true,"7.bg":true,"8.bg":true,"9.bg":true,"bh":true,"com.bh":true,"edu.bh":true,"net.bh":true,"org.bh":true,"gov.bh":true,"bi":true,"co.bi":true,"com.bi":true,"edu.bi":true,"or.bi":true,"org.bi":true,"biz":true,"bj":true,"asso.bj":true,"barreau.bj":true,"gouv.bj":true,"bm":true,"com.bm":true,"edu.bm":true,"gov.bm":true,"net.bm":true,"org.bm":true,"*.bn":true,"bo":true,"com.bo":true,"edu.bo":true,"gob.bo":true,"int.bo":true,"org.bo":true,"net.bo":true,"mil.bo":true,"tv.bo":true,"web.bo":true,"academia.bo":true,"agro.bo":true,"arte.bo":true,"blog.bo":true,"bolivia.bo":true,"ciencia.bo":true,"cooperativa.bo":true,"democracia.bo":true,"deporte.bo":true,"ecologia.bo":true,"economia.bo":true,"empresa.bo":true,"indigena.bo":true,"industria.bo":true,"info.bo":true,"medicina.bo":true,"movimiento.bo":true,"musica.bo":true,"natural.bo":true,"nombre.bo":true,"noticias.bo":true,"patria.bo":true,"politica.bo":true,"profesional.bo":true,"plurinacional.bo":true,"pueblo.bo":true,"revista.bo":true,"salud.bo":true,"tecnologia.bo":true,"tksat.bo":true,"transporte.bo":true,"wiki.bo":true,"br":true,"9guacu.br":true,"abc.br":true,"adm.br":true,"adv.br":true,"agr.br":true,"aju.br":true,"am.br":true,"anani.br":true,"aparecida.br":true,"arq.br":true,"art.br":true,"ato.br":true,"b.br":true,"belem.br":true,"bhz.br":true,"bio.br":true,"blog.br":true,"bmd.br":true,"boavista.br":true,"bsb.br":true,"campinagrande.br":true,"campinas.br":true,"caxias.br":true,"cim.br":true,"cng.br":true,"cnt.br":true,"com.br":true,"contagem.br":true,"coop.br":true,"cri.br":true,"cuiaba.br":true,"curitiba.br":true,"def.br":true,"ecn.br":true,"eco.br":true,"edu.br":true,"emp.br":true,"eng.br":true,"esp.br":true,"etc.br":true,"eti.br":true,"far.br":true,"feira.br":true,"flog.br":true,"floripa.br":true,"fm.br":true,"fnd.br":true,"fortal.br":true,"fot.br":true,"foz.br":true,"fst.br":true,"g12.br":true,"ggf.br":true,"goiania.br":true,"gov.br":true,"ac.gov.br":true,"al.gov.br":true,"am.gov.br":true,"ap.gov.br":true,"ba.gov.br":true,"ce.gov.br":true,"df.gov.br":true,"es.gov.br":true,"go.gov.br":true,"ma.gov.br":true,"mg.gov.br":true,"ms.gov.br":true,"mt.gov.br":true,"pa.gov.br":true,"pb.gov.br":true,"pe.gov.br":true,"pi.gov.br":true,"pr.gov.br":true,"rj.gov.br":true,"rn.gov.br":true,"ro.gov.br":true,"rr.gov.br":true,"rs.gov.br":true,"sc.gov.br":true,"se.gov.br":true,"sp.gov.br":true,"to.gov.br":true,"gru.br":true,"imb.br":true,"ind.br":true,"inf.br":true,"jab.br":true,"jampa.br":true,"jdf.br":true,"joinville.br":true,"jor.br":true,"jus.br":true,"leg.br":true,"lel.br":true,"londrina.br":true,"macapa.br":true,"maceio.br":true,"manaus.br":true,"maringa.br":true,"mat.br":true,"med.br":true,"mil.br":true,"morena.br":true,"mp.br":true,"mus.br":true,"natal.br":true,"net.br":true,"niteroi.br":true,"*.nom.br":true,"not.br":true,"ntr.br":true,"odo.br":true,"org.br":true,"osasco.br":true,"palmas.br":true,"poa.br":true,"ppg.br":true,"pro.br":true,"psc.br":true,"psi.br":true,"pvh.br":true,"qsl.br":true,"radio.br":true,"rec.br":true,"recife.br":true,"ribeirao.br":true,"rio.br":true,"riobranco.br":true,"riopreto.br":true,"salvador.br":true,"sampa.br":true,"santamaria.br":true,"santoandre.br":true,"saobernardo.br":true,"saogonca.br":true,"sjc.br":true,"slg.br":true,"slz.br":true,"sorocaba.br":true,"srv.br":true,"taxi.br":true,"teo.br":true,"the.br":true,"tmp.br":true,"trd.br":true,"tur.br":true,"tv.br":true,"udi.br":true,"vet.br":true,"vix.br":true,"vlog.br":true,"wiki.br":true,"zlg.br":true,"bs":true,"com.bs":true,"net.bs":true,"org.bs":true,"edu.bs":true,"gov.bs":true,"bt":true,"com.bt":true,"edu.bt":true,"gov.bt":true,"net.bt":true,"org.bt":true,"bv":true,"bw":true,"co.bw":true,"org.bw":true,"by":true,"gov.by":true,"mil.by":true,"com.by":true,"of.by":true,"bz":true,"com.bz":true,"net.bz":true,"org.bz":true,"edu.bz":true,"gov.bz":true,"ca":true,"ab.ca":true,"bc.ca":true,"mb.ca":true,"nb.ca":true,"nf.ca":true,"nl.ca":true,"ns.ca":true,"nt.ca":true,"nu.ca":true,"on.ca":true,"pe.ca":true,"qc.ca":true,"sk.ca":true,"yk.ca":true,"gc.ca":true,"cat":true,"cc":true,"cd":true,"gov.cd":true,"cf":true,"cg":true,"ch":true,"ci":true,"org.ci":true,"or.ci":true,"com.ci":true,"co.ci":true,"edu.ci":true,"ed.ci":true,"ac.ci":true,"net.ci":true,"go.ci":true,"asso.ci":true,"xn--aroport-bya.ci":true,"int.ci":true,"presse.ci":true,"md.ci":true,"gouv.ci":true,"*.ck":true,"www.ck":false,"cl":true,"gov.cl":true,"gob.cl":true,"co.cl":true,"mil.cl":true,"cm":true,"co.cm":true,"com.cm":true,"gov.cm":true,"net.cm":true,"cn":true,"ac.cn":true,"com.cn":true,"edu.cn":true,"gov.cn":true,"net.cn":true,"org.cn":true,"mil.cn":true,"xn--55qx5d.cn":true,"xn--io0a7i.cn":true,"xn--od0alg.cn":true,"ah.cn":true,"bj.cn":true,"cq.cn":true,"fj.cn":true,"gd.cn":true,"gs.cn":true,"gz.cn":true,"gx.cn":true,"ha.cn":true,"hb.cn":true,"he.cn":true,"hi.cn":true,"hl.cn":true,"hn.cn":true,"jl.cn":true,"js.cn":true,"jx.cn":true,"ln.cn":true,"nm.cn":true,"nx.cn":true,"qh.cn":true,"sc.cn":true,"sd.cn":true,"sh.cn":true,"sn.cn":true,"sx.cn":true,"tj.cn":true,"xj.cn":true,"xz.cn":true,"yn.cn":true,"zj.cn":true,"hk.cn":true,"mo.cn":true,"tw.cn":true,"co":true,"arts.co":true,"com.co":true,"edu.co":true,"firm.co":true,"gov.co":true,"info.co":true,"int.co":true,"mil.co":true,"net.co":true,"nom.co":true,"org.co":true,"rec.co":true,"web.co":true,"com":true,"coop":true,"cr":true,"ac.cr":true,"co.cr":true,"ed.cr":true,"fi.cr":true,"go.cr":true,"or.cr":true,"sa.cr":true,"cu":true,"com.cu":true,"edu.cu":true,"org.cu":true,"net.cu":true,"gov.cu":true,"inf.cu":true,"cv":true,"cw":true,"com.cw":true,"edu.cw":true,"net.cw":true,"org.cw":true,"cx":true,"gov.cx":true,"cy":true,"ac.cy":true,"biz.cy":true,"com.cy":true,"ekloges.cy":true,"gov.cy":true,"ltd.cy":true,"name.cy":true,"net.cy":true,"org.cy":true,"parliament.cy":true,"press.cy":true,"pro.cy":true,"tm.cy":true,"cz":true,"de":true,"dj":true,"dk":true,"dm":true,"com.dm":true,"net.dm":true,"org.dm":true,"edu.dm":true,"gov.dm":true,"do":true,"art.do":true,"com.do":true,"edu.do":true,"gob.do":true,"gov.do":true,"mil.do":true,"net.do":true,"org.do":true,"sld.do":true,"web.do":true,"dz":true,"com.dz":true,"org.dz":true,"net.dz":true,"gov.dz":true,"edu.dz":true,"asso.dz":true,"pol.dz":true,"art.dz":true,"ec":true,"com.ec":true,"info.ec":true,"net.ec":true,"fin.ec":true,"k12.ec":true,"med.ec":true,"pro.ec":true,"org.ec":true,"edu.ec":true,"gov.ec":true,"gob.ec":true,"mil.ec":true,"edu":true,"ee":true,"edu.ee":true,"gov.ee":true,"riik.ee":true,"lib.ee":true,"med.ee":true,"com.ee":true,"pri.ee":true,"aip.ee":true,"org.ee":true,"fie.ee":true,"eg":true,"com.eg":true,"edu.eg":true,"eun.eg":true,"gov.eg":true,"mil.eg":true,"name.eg":true,"net.eg":true,"org.eg":true,"sci.eg":true,"*.er":true,"es":true,"com.es":true,"nom.es":true,"org.es":true,"gob.es":true,"edu.es":true,"et":true,"com.et":true,"gov.et":true,"org.et":true,"edu.et":true,"biz.et":true,"name.et":true,"info.et":true,"net.et":true,"eu":true,"fi":true,"aland.fi":true,"*.fj":true,"*.fk":true,"fm":true,"fo":true,"fr":true,"com.fr":true,"asso.fr":true,"nom.fr":true,"prd.fr":true,"presse.fr":true,"tm.fr":true,"aeroport.fr":true,"assedic.fr":true,"avocat.fr":true,"avoues.fr":true,"cci.fr":true,"chambagri.fr":true,"chirurgiens-dentistes.fr":true,"experts-comptables.fr":true,"geometre-expert.fr":true,"gouv.fr":true,"greta.fr":true,"huissier-justice.fr":true,"medecin.fr":true,"notaires.fr":true,"pharmacien.fr":true,"port.fr":true,"veterinaire.fr":true,"ga":true,"gb":true,"gd":true,"ge":true,"com.ge":true,"edu.ge":true,"gov.ge":true,"org.ge":true,"mil.ge":true,"net.ge":true,"pvt.ge":true,"gf":true,"gg":true,"co.gg":true,"net.gg":true,"org.gg":true,"gh":true,"com.gh":true,"edu.gh":true,"gov.gh":true,"org.gh":true,"mil.gh":true,"gi":true,"com.gi":true,"ltd.gi":true,"gov.gi":true,"mod.gi":true,"edu.gi":true,"org.gi":true,"gl":true,"co.gl":true,"com.gl":true,"edu.gl":true,"net.gl":true,"org.gl":true,"gm":true,"gn":true,"ac.gn":true,"com.gn":true,"edu.gn":true,"gov.gn":true,"org.gn":true,"net.gn":true,"gov":true,"gp":true,"com.gp":true,"net.gp":true,"mobi.gp":true,"edu.gp":true,"org.gp":true,"asso.gp":true,"gq":true,"gr":true,"com.gr":true,"edu.gr":true,"net.gr":true,"org.gr":true,"gov.gr":true,"gs":true,"gt":true,"com.gt":true,"edu.gt":true,"gob.gt":true,"ind.gt":true,"mil.gt":true,"net.gt":true,"org.gt":true,"*.gu":true,"gw":true,"gy":true,"co.gy":true,"com.gy":true,"edu.gy":true,"gov.gy":true,"net.gy":true,"org.gy":true,"hk":true,"com.hk":true,"edu.hk":true,"gov.hk":true,"idv.hk":true,"net.hk":true,"org.hk":true,"xn--55qx5d.hk":true,"xn--wcvs22d.hk":true,"xn--lcvr32d.hk":true,"xn--mxtq1m.hk":true,"xn--gmqw5a.hk":true,"xn--ciqpn.hk":true,"xn--gmq050i.hk":true,"xn--zf0avx.hk":true,"xn--io0a7i.hk":true,"xn--mk0axi.hk":true,"xn--od0alg.hk":true,"xn--od0aq3b.hk":true,"xn--tn0ag.hk":true,"xn--uc0atv.hk":true,"xn--uc0ay4a.hk":true,"hm":true,"hn":true,"com.hn":true,"edu.hn":true,"org.hn":true,"net.hn":true,"mil.hn":true,"gob.hn":true,"hr":true,"iz.hr":true,"from.hr":true,"name.hr":true,"com.hr":true,"ht":true,"com.ht":true,"shop.ht":true,"firm.ht":true,"info.ht":true,"adult.ht":true,"net.ht":true,"pro.ht":true,"org.ht":true,"med.ht":true,"art.ht":true,"coop.ht":true,"pol.ht":true,"asso.ht":true,"edu.ht":true,"rel.ht":true,"gouv.ht":true,"perso.ht":true,"hu":true,"co.hu":true,"info.hu":true,"org.hu":true,"priv.hu":true,"sport.hu":true,"tm.hu":true,"2000.hu":true,"agrar.hu":true,"bolt.hu":true,"casino.hu":true,"city.hu":true,"erotica.hu":true,"erotika.hu":true,"film.hu":true,"forum.hu":true,"games.hu":true,"hotel.hu":true,"ingatlan.hu":true,"jogasz.hu":true,"konyvelo.hu":true,"lakas.hu":true,"media.hu":true,"news.hu":true,"reklam.hu":true,"sex.hu":true,"shop.hu":true,"suli.hu":true,"szex.hu":true,"tozsde.hu":true,"utazas.hu":true,"video.hu":true,"id":true,"ac.id":true,"biz.id":true,"co.id":true,"desa.id":true,"go.id":true,"mil.id":true,"my.id":true,"net.id":true,"or.id":true,"sch.id":true,"web.id":true,"ie":true,"gov.ie":true,"il":true,"ac.il":true,"co.il":true,"gov.il":true,"idf.il":true,"k12.il":true,"muni.il":true,"net.il":true,"org.il":true,"im":true,"ac.im":true,"co.im":true,"com.im":true,"ltd.co.im":true,"net.im":true,"org.im":true,"plc.co.im":true,"tt.im":true,"tv.im":true,"in":true,"co.in":true,"firm.in":true,"net.in":true,"org.in":true,"gen.in":true,"ind.in":true,"nic.in":true,"ac.in":true,"edu.in":true,"res.in":true,"gov.in":true,"mil.in":true,"info":true,"int":true,"eu.int":true,"io":true,"com.io":true,"iq":true,"gov.iq":true,"edu.iq":true,"mil.iq":true,"com.iq":true,"org.iq":true,"net.iq":true,"ir":true,"ac.ir":true,"co.ir":true,"gov.ir":true,"id.ir":true,"net.ir":true,"org.ir":true,"sch.ir":true,"xn--mgba3a4f16a.ir":true,"xn--mgba3a4fra.ir":true,"is":true,"net.is":true,"com.is":true,"edu.is":true,"gov.is":true,"org.is":true,"int.is":true,"it":true,"gov.it":true,"edu.it":true,"abr.it":true,"abruzzo.it":true,"aosta-valley.it":true,"aostavalley.it":true,"bas.it":true,"basilicata.it":true,"cal.it":true,"calabria.it":true,"cam.it":true,"campania.it":true,"emilia-romagna.it":true,"emiliaromagna.it":true,"emr.it":true,"friuli-v-giulia.it":true,"friuli-ve-giulia.it":true,"friuli-vegiulia.it":true,"friuli-venezia-giulia.it":true,"friuli-veneziagiulia.it":true,"friuli-vgiulia.it":true,"friuliv-giulia.it":true,"friulive-giulia.it":true,"friulivegiulia.it":true,"friulivenezia-giulia.it":true,"friuliveneziagiulia.it":true,"friulivgiulia.it":true,"fvg.it":true,"laz.it":true,"lazio.it":true,"lig.it":true,"liguria.it":true,"lom.it":true,"lombardia.it":true,"lombardy.it":true,"lucania.it":true,"mar.it":true,"marche.it":true,"mol.it":true,"molise.it":true,"piedmont.it":true,"piemonte.it":true,"pmn.it":true,"pug.it":true,"puglia.it":true,"sar.it":true,"sardegna.it":true,"sardinia.it":true,"sic.it":true,"sicilia.it":true,"sicily.it":true,"taa.it":true,"tos.it":true,"toscana.it":true,"trentino-a-adige.it":true,"trentino-aadige.it":true,"trentino-alto-adige.it":true,"trentino-altoadige.it":true,"trentino-s-tirol.it":true,"trentino-stirol.it":true,"trentino-sud-tirol.it":true,"trentino-sudtirol.it":true,"trentino-sued-tirol.it":true,"trentino-suedtirol.it":true,"trentinoa-adige.it":true,"trentinoaadige.it":true,"trentinoalto-adige.it":true,"trentinoaltoadige.it":true,"trentinos-tirol.it":true,"trentinostirol.it":true,"trentinosud-tirol.it":true,"trentinosudtirol.it":true,"trentinosued-tirol.it":true,"trentinosuedtirol.it":true,"tuscany.it":true,"umb.it":true,"umbria.it":true,"val-d-aosta.it":true,"val-daosta.it":true,"vald-aosta.it":true,"valdaosta.it":true,"valle-aosta.it":true,"valle-d-aosta.it":true,"valle-daosta.it":true,"valleaosta.it":true,"valled-aosta.it":true,"valledaosta.it":true,"vallee-aoste.it":true,"valleeaoste.it":true,"vao.it":true,"vda.it":true,"ven.it":true,"veneto.it":true,"ag.it":true,"agrigento.it":true,"al.it":true,"alessandria.it":true,"alto-adige.it":true,"altoadige.it":true,"an.it":true,"ancona.it":true,"andria-barletta-trani.it":true,"andria-trani-barletta.it":true,"andriabarlettatrani.it":true,"andriatranibarletta.it":true,"ao.it":true,"aosta.it":true,"aoste.it":true,"ap.it":true,"aq.it":true,"aquila.it":true,"ar.it":true,"arezzo.it":true,"ascoli-piceno.it":true,"ascolipiceno.it":true,"asti.it":true,"at.it":true,"av.it":true,"avellino.it":true,"ba.it":true,"balsan.it":true,"bari.it":true,"barletta-trani-andria.it":true,"barlettatraniandria.it":true,"belluno.it":true,"benevento.it":true,"bergamo.it":true,"bg.it":true,"bi.it":true,"biella.it":true,"bl.it":true,"bn.it":true,"bo.it":true,"bologna.it":true,"bolzano.it":true,"bozen.it":true,"br.it":true,"brescia.it":true,"brindisi.it":true,"bs.it":true,"bt.it":true,"bz.it":true,"ca.it":true,"cagliari.it":true,"caltanissetta.it":true,"campidano-medio.it":true,"campidanomedio.it":true,"campobasso.it":true,"carbonia-iglesias.it":true,"carboniaiglesias.it":true,"carrara-massa.it":true,"carraramassa.it":true,"caserta.it":true,"catania.it":true,"catanzaro.it":true,"cb.it":true,"ce.it":true,"cesena-forli.it":true,"cesenaforli.it":true,"ch.it":true,"chieti.it":true,"ci.it":true,"cl.it":true,"cn.it":true,"co.it":true,"como.it":true,"cosenza.it":true,"cr.it":true,"cremona.it":true,"crotone.it":true,"cs.it":true,"ct.it":true,"cuneo.it":true,"cz.it":true,"dell-ogliastra.it":true,"dellogliastra.it":true,"en.it":true,"enna.it":true,"fc.it":true,"fe.it":true,"fermo.it":true,"ferrara.it":true,"fg.it":true,"fi.it":true,"firenze.it":true,"florence.it":true,"fm.it":true,"foggia.it":true,"forli-cesena.it":true,"forlicesena.it":true,"fr.it":true,"frosinone.it":true,"ge.it":true,"genoa.it":true,"genova.it":true,"go.it":true,"gorizia.it":true,"gr.it":true,"grosseto.it":true,"iglesias-carbonia.it":true,"iglesiascarbonia.it":true,"im.it":true,"imperia.it":true,"is.it":true,"isernia.it":true,"kr.it":true,"la-spezia.it":true,"laquila.it":true,"laspezia.it":true,"latina.it":true,"lc.it":true,"le.it":true,"lecce.it":true,"lecco.it":true,"li.it":true,"livorno.it":true,"lo.it":true,"lodi.it":true,"lt.it":true,"lu.it":true,"lucca.it":true,"macerata.it":true,"mantova.it":true,"massa-carrara.it":true,"massacarrara.it":true,"matera.it":true,"mb.it":true,"mc.it":true,"me.it":true,"medio-campidano.it":true,"mediocampidano.it":true,"messina.it":true,"mi.it":true,"milan.it":true,"milano.it":true,"mn.it":true,"mo.it":true,"modena.it":true,"monza-brianza.it":true,"monza-e-della-brianza.it":true,"monza.it":true,"monzabrianza.it":true,"monzaebrianza.it":true,"monzaedellabrianza.it":true,"ms.it":true,"mt.it":true,"na.it":true,"naples.it":true,"napoli.it":true,"no.it":true,"novara.it":true,"nu.it":true,"nuoro.it":true,"og.it":true,"ogliastra.it":true,"olbia-tempio.it":true,"olbiatempio.it":true,"or.it":true,"oristano.it":true,"ot.it":true,"pa.it":true,"padova.it":true,"padua.it":true,"palermo.it":true,"parma.it":true,"pavia.it":true,"pc.it":true,"pd.it":true,"pe.it":true,"perugia.it":true,"pesaro-urbino.it":true,"pesarourbino.it":true,"pescara.it":true,"pg.it":true,"pi.it":true,"piacenza.it":true,"pisa.it":true,"pistoia.it":true,"pn.it":true,"po.it":true,"pordenone.it":true,"potenza.it":true,"pr.it":true,"prato.it":true,"pt.it":true,"pu.it":true,"pv.it":true,"pz.it":true,"ra.it":true,"ragusa.it":true,"ravenna.it":true,"rc.it":true,"re.it":true,"reggio-calabria.it":true,"reggio-emilia.it":true,"reggiocalabria.it":true,"reggioemilia.it":true,"rg.it":true,"ri.it":true,"rieti.it":true,"rimini.it":true,"rm.it":true,"rn.it":true,"ro.it":true,"roma.it":true,"rome.it":true,"rovigo.it":true,"sa.it":true,"salerno.it":true,"sassari.it":true,"savona.it":true,"si.it":true,"siena.it":true,"siracusa.it":true,"so.it":true,"sondrio.it":true,"sp.it":true,"sr.it":true,"ss.it":true,"suedtirol.it":true,"sv.it":true,"ta.it":true,"taranto.it":true,"te.it":true,"tempio-olbia.it":true,"tempioolbia.it":true,"teramo.it":true,"terni.it":true,"tn.it":true,"to.it":true,"torino.it":true,"tp.it":true,"tr.it":true,"trani-andria-barletta.it":true,"trani-barletta-andria.it":true,"traniandriabarletta.it":true,"tranibarlettaandria.it":true,"trapani.it":true,"trentino.it":true,"trento.it":true,"treviso.it":true,"trieste.it":true,"ts.it":true,"turin.it":true,"tv.it":true,"ud.it":true,"udine.it":true,"urbino-pesaro.it":true,"urbinopesaro.it":true,"va.it":true,"varese.it":true,"vb.it":true,"vc.it":true,"ve.it":true,"venezia.it":true,"venice.it":true,"verbania.it":true,"vercelli.it":true,"verona.it":true,"vi.it":true,"vibo-valentia.it":true,"vibovalentia.it":true,"vicenza.it":true,"viterbo.it":true,"vr.it":true,"vs.it":true,"vt.it":true,"vv.it":true,"je":true,"co.je":true,"net.je":true,"org.je":true,"*.jm":true,"jo":true,"com.jo":true,"org.jo":true,"net.jo":true,"edu.jo":true,"sch.jo":true,"gov.jo":true,"mil.jo":true,"name.jo":true,"jobs":true,"jp":true,"ac.jp":true,"ad.jp":true,"co.jp":true,"ed.jp":true,"go.jp":true,"gr.jp":true,"lg.jp":true,"ne.jp":true,"or.jp":true,"aichi.jp":true,"akita.jp":true,"aomori.jp":true,"chiba.jp":true,"ehime.jp":true,"fukui.jp":true,"fukuoka.jp":true,"fukushima.jp":true,"gifu.jp":true,"gunma.jp":true,"hiroshima.jp":true,"hokkaido.jp":true,"hyogo.jp":true,"ibaraki.jp":true,"ishikawa.jp":true,"iwate.jp":true,"kagawa.jp":true,"kagoshima.jp":true,"kanagawa.jp":true,"kochi.jp":true,"kumamoto.jp":true,"kyoto.jp":true,"mie.jp":true,"miyagi.jp":true,"miyazaki.jp":true,"nagano.jp":true,"nagasaki.jp":true,"nara.jp":true,"niigata.jp":true,"oita.jp":true,"okayama.jp":true,"okinawa.jp":true,"osaka.jp":true,"saga.jp":true,"saitama.jp":true,"shiga.jp":true,"shimane.jp":true,"shizuoka.jp":true,"tochigi.jp":true,"tokushima.jp":true,"tokyo.jp":true,"tottori.jp":true,"toyama.jp":true,"wakayama.jp":true,"yamagata.jp":true,"yamaguchi.jp":true,"yamanashi.jp":true,"xn--4pvxs.jp":true,"xn--vgu402c.jp":true,"xn--c3s14m.jp":true,"xn--f6qx53a.jp":true,"xn--8pvr4u.jp":true,"xn--uist22h.jp":true,"xn--djrs72d6uy.jp":true,"xn--mkru45i.jp":true,"xn--0trq7p7nn.jp":true,"xn--8ltr62k.jp":true,"xn--2m4a15e.jp":true,"xn--efvn9s.jp":true,"xn--32vp30h.jp":true,"xn--4it797k.jp":true,"xn--1lqs71d.jp":true,"xn--5rtp49c.jp":true,"xn--5js045d.jp":true,"xn--ehqz56n.jp":true,"xn--1lqs03n.jp":true,"xn--qqqt11m.jp":true,"xn--kbrq7o.jp":true,"xn--pssu33l.jp":true,"xn--ntsq17g.jp":true,"xn--uisz3g.jp":true,"xn--6btw5a.jp":true,"xn--1ctwo.jp":true,"xn--6orx2r.jp":true,"xn--rht61e.jp":true,"xn--rht27z.jp":true,"xn--djty4k.jp":true,"xn--nit225k.jp":true,"xn--rht3d.jp":true,"xn--klty5x.jp":true,"xn--kltx9a.jp":true,"xn--kltp7d.jp":true,"xn--uuwu58a.jp":true,"xn--zbx025d.jp":true,"xn--ntso0iqx3a.jp":true,"xn--elqq16h.jp":true,"xn--4it168d.jp":true,"xn--klt787d.jp":true,"xn--rny31h.jp":true,"xn--7t0a264c.jp":true,"xn--5rtq34k.jp":true,"xn--k7yn95e.jp":true,"xn--tor131o.jp":true,"xn--d5qv7z876c.jp":true,"*.kawasaki.jp":true,"*.kitakyushu.jp":true,"*.kobe.jp":true,"*.nagoya.jp":true,"*.sapporo.jp":true,"*.sendai.jp":true,"*.yokohama.jp":true,"city.kawasaki.jp":false,"city.kitakyushu.jp":false,"city.kobe.jp":false,"city.nagoya.jp":false,"city.sapporo.jp":false,"city.sendai.jp":false,"city.yokohama.jp":false,"aisai.aichi.jp":true,"ama.aichi.jp":true,"anjo.aichi.jp":true,"asuke.aichi.jp":true,"chiryu.aichi.jp":true,"chita.aichi.jp":true,"fuso.aichi.jp":true,"gamagori.aichi.jp":true,"handa.aichi.jp":true,"hazu.aichi.jp":true,"hekinan.aichi.jp":true,"higashiura.aichi.jp":true,"ichinomiya.aichi.jp":true,"inazawa.aichi.jp":true,"inuyama.aichi.jp":true,"isshiki.aichi.jp":true,"iwakura.aichi.jp":true,"kanie.aichi.jp":true,"kariya.aichi.jp":true,"kasugai.aichi.jp":true,"kira.aichi.jp":true,"kiyosu.aichi.jp":true,"komaki.aichi.jp":true,"konan.aichi.jp":true,"kota.aichi.jp":true,"mihama.aichi.jp":true,"miyoshi.aichi.jp":true,"nishio.aichi.jp":true,"nisshin.aichi.jp":true,"obu.aichi.jp":true,"oguchi.aichi.jp":true,"oharu.aichi.jp":true,"okazaki.aichi.jp":true,"owariasahi.aichi.jp":true,"seto.aichi.jp":true,"shikatsu.aichi.jp":true,"shinshiro.aichi.jp":true,"shitara.aichi.jp":true,"tahara.aichi.jp":true,"takahama.aichi.jp":true,"tobishima.aichi.jp":true,"toei.aichi.jp":true,"togo.aichi.jp":true,"tokai.aichi.jp":true,"tokoname.aichi.jp":true,"toyoake.aichi.jp":true,"toyohashi.aichi.jp":true,"toyokawa.aichi.jp":true,"toyone.aichi.jp":true,"toyota.aichi.jp":true,"tsushima.aichi.jp":true,"yatomi.aichi.jp":true,"akita.akita.jp":true,"daisen.akita.jp":true,"fujisato.akita.jp":true,"gojome.akita.jp":true,"hachirogata.akita.jp":true,"happou.akita.jp":true,"higashinaruse.akita.jp":true,"honjo.akita.jp":true,"honjyo.akita.jp":true,"ikawa.akita.jp":true,"kamikoani.akita.jp":true,"kamioka.akita.jp":true,"katagami.akita.jp":true,"kazuno.akita.jp":true,"kitaakita.akita.jp":true,"kosaka.akita.jp":true,"kyowa.akita.jp":true,"misato.akita.jp":true,"mitane.akita.jp":true,"moriyoshi.akita.jp":true,"nikaho.akita.jp":true,"noshiro.akita.jp":true,"odate.akita.jp":true,"oga.akita.jp":true,"ogata.akita.jp":true,"semboku.akita.jp":true,"yokote.akita.jp":true,"yurihonjo.akita.jp":true,"aomori.aomori.jp":true,"gonohe.aomori.jp":true,"hachinohe.aomori.jp":true,"hashikami.aomori.jp":true,"hiranai.aomori.jp":true,"hirosaki.aomori.jp":true,"itayanagi.aomori.jp":true,"kuroishi.aomori.jp":true,"misawa.aomori.jp":true,"mutsu.aomori.jp":true,"nakadomari.aomori.jp":true,"noheji.aomori.jp":true,"oirase.aomori.jp":true,"owani.aomori.jp":true,"rokunohe.aomori.jp":true,"sannohe.aomori.jp":true,"shichinohe.aomori.jp":true,"shingo.aomori.jp":true,"takko.aomori.jp":true,"towada.aomori.jp":true,"tsugaru.aomori.jp":true,"tsuruta.aomori.jp":true,"abiko.chiba.jp":true,"asahi.chiba.jp":true,"chonan.chiba.jp":true,"chosei.chiba.jp":true,"choshi.chiba.jp":true,"chuo.chiba.jp":true,"funabashi.chiba.jp":true,"futtsu.chiba.jp":true,"hanamigawa.chiba.jp":true,"ichihara.chiba.jp":true,"ichikawa.chiba.jp":true,"ichinomiya.chiba.jp":true,"inzai.chiba.jp":true,"isumi.chiba.jp":true,"kamagaya.chiba.jp":true,"kamogawa.chiba.jp":true,"kashiwa.chiba.jp":true,"katori.chiba.jp":true,"katsuura.chiba.jp":true,"kimitsu.chiba.jp":true,"kisarazu.chiba.jp":true,"kozaki.chiba.jp":true,"kujukuri.chiba.jp":true,"kyonan.chiba.jp":true,"matsudo.chiba.jp":true,"midori.chiba.jp":true,"mihama.chiba.jp":true,"minamiboso.chiba.jp":true,"mobara.chiba.jp":true,"mutsuzawa.chiba.jp":true,"nagara.chiba.jp":true,"nagareyama.chiba.jp":true,"narashino.chiba.jp":true,"narita.chiba.jp":true,"noda.chiba.jp":true,"oamishirasato.chiba.jp":true,"omigawa.chiba.jp":true,"onjuku.chiba.jp":true,"otaki.chiba.jp":true,"sakae.chiba.jp":true,"sakura.chiba.jp":true,"shimofusa.chiba.jp":true,"shirako.chiba.jp":true,"shiroi.chiba.jp":true,"shisui.chiba.jp":true,"sodegaura.chiba.jp":true,"sosa.chiba.jp":true,"tako.chiba.jp":true,"tateyama.chiba.jp":true,"togane.chiba.jp":true,"tohnosho.chiba.jp":true,"tomisato.chiba.jp":true,"urayasu.chiba.jp":true,"yachimata.chiba.jp":true,"yachiyo.chiba.jp":true,"yokaichiba.chiba.jp":true,"yokoshibahikari.chiba.jp":true,"yotsukaido.chiba.jp":true,"ainan.ehime.jp":true,"honai.ehime.jp":true,"ikata.ehime.jp":true,"imabari.ehime.jp":true,"iyo.ehime.jp":true,"kamijima.ehime.jp":true,"kihoku.ehime.jp":true,"kumakogen.ehime.jp":true,"masaki.ehime.jp":true,"matsuno.ehime.jp":true,"matsuyama.ehime.jp":true,"namikata.ehime.jp":true,"niihama.ehime.jp":true,"ozu.ehime.jp":true,"saijo.ehime.jp":true,"seiyo.ehime.jp":true,"shikokuchuo.ehime.jp":true,"tobe.ehime.jp":true,"toon.ehime.jp":true,"uchiko.ehime.jp":true,"uwajima.ehime.jp":true,"yawatahama.ehime.jp":true,"echizen.fukui.jp":true,"eiheiji.fukui.jp":true,"fukui.fukui.jp":true,"ikeda.fukui.jp":true,"katsuyama.fukui.jp":true,"mihama.fukui.jp":true,"minamiechizen.fukui.jp":true,"obama.fukui.jp":true,"ohi.fukui.jp":true,"ono.fukui.jp":true,"sabae.fukui.jp":true,"sakai.fukui.jp":true,"takahama.fukui.jp":true,"tsuruga.fukui.jp":true,"wakasa.fukui.jp":true,"ashiya.fukuoka.jp":true,"buzen.fukuoka.jp":true,"chikugo.fukuoka.jp":true,"chikuho.fukuoka.jp":true,"chikujo.fukuoka.jp":true,"chikushino.fukuoka.jp":true,"chikuzen.fukuoka.jp":true,"chuo.fukuoka.jp":true,"dazaifu.fukuoka.jp":true,"fukuchi.fukuoka.jp":true,"hakata.fukuoka.jp":true,"higashi.fukuoka.jp":true,"hirokawa.fukuoka.jp":true,"hisayama.fukuoka.jp":true,"iizuka.fukuoka.jp":true,"inatsuki.fukuoka.jp":true,"kaho.fukuoka.jp":true,"kasuga.fukuoka.jp":true,"kasuya.fukuoka.jp":true,"kawara.fukuoka.jp":true,"keisen.fukuoka.jp":true,"koga.fukuoka.jp":true,"kurate.fukuoka.jp":true,"kurogi.fukuoka.jp":true,"kurume.fukuoka.jp":true,"minami.fukuoka.jp":true,"miyako.fukuoka.jp":true,"miyama.fukuoka.jp":true,"miyawaka.fukuoka.jp":true,"mizumaki.fukuoka.jp":true,"munakata.fukuoka.jp":true,"nakagawa.fukuoka.jp":true,"nakama.fukuoka.jp":true,"nishi.fukuoka.jp":true,"nogata.fukuoka.jp":true,"ogori.fukuoka.jp":true,"okagaki.fukuoka.jp":true,"okawa.fukuoka.jp":true,"oki.fukuoka.jp":true,"omuta.fukuoka.jp":true,"onga.fukuoka.jp":true,"onojo.fukuoka.jp":true,"oto.fukuoka.jp":true,"saigawa.fukuoka.jp":true,"sasaguri.fukuoka.jp":true,"shingu.fukuoka.jp":true,"shinyoshitomi.fukuoka.jp":true,"shonai.fukuoka.jp":true,"soeda.fukuoka.jp":true,"sue.fukuoka.jp":true,"tachiarai.fukuoka.jp":true,"tagawa.fukuoka.jp":true,"takata.fukuoka.jp":true,"toho.fukuoka.jp":true,"toyotsu.fukuoka.jp":true,"tsuiki.fukuoka.jp":true,"ukiha.fukuoka.jp":true,"umi.fukuoka.jp":true,"usui.fukuoka.jp":true,"yamada.fukuoka.jp":true,"yame.fukuoka.jp":true,"yanagawa.fukuoka.jp":true,"yukuhashi.fukuoka.jp":true,"aizubange.fukushima.jp":true,"aizumisato.fukushima.jp":true,"aizuwakamatsu.fukushima.jp":true,"asakawa.fukushima.jp":true,"bandai.fukushima.jp":true,"date.fukushima.jp":true,"fukushima.fukushima.jp":true,"furudono.fukushima.jp":true,"futaba.fukushima.jp":true,"hanawa.fukushima.jp":true,"higashi.fukushima.jp":true,"hirata.fukushima.jp":true,"hirono.fukushima.jp":true,"iitate.fukushima.jp":true,"inawashiro.fukushima.jp":true,"ishikawa.fukushima.jp":true,"iwaki.fukushima.jp":true,"izumizaki.fukushima.jp":true,"kagamiishi.fukushima.jp":true,"kaneyama.fukushima.jp":true,"kawamata.fukushima.jp":true,"kitakata.fukushima.jp":true,"kitashiobara.fukushima.jp":true,"koori.fukushima.jp":true,"koriyama.fukushima.jp":true,"kunimi.fukushima.jp":true,"miharu.fukushima.jp":true,"mishima.fukushima.jp":true,"namie.fukushima.jp":true,"nango.fukushima.jp":true,"nishiaizu.fukushima.jp":true,"nishigo.fukushima.jp":true,"okuma.fukushima.jp":true,"omotego.fukushima.jp":true,"ono.fukushima.jp":true,"otama.fukushima.jp":true,"samegawa.fukushima.jp":true,"shimogo.fukushima.jp":true,"shirakawa.fukushima.jp":true,"showa.fukushima.jp":true,"soma.fukushima.jp":true,"sukagawa.fukushima.jp":true,"taishin.fukushima.jp":true,"tamakawa.fukushima.jp":true,"tanagura.fukushima.jp":true,"tenei.fukushima.jp":true,"yabuki.fukushima.jp":true,"yamato.fukushima.jp":true,"yamatsuri.fukushima.jp":true,"yanaizu.fukushima.jp":true,"yugawa.fukushima.jp":true,"anpachi.gifu.jp":true,"ena.gifu.jp":true,"gifu.gifu.jp":true,"ginan.gifu.jp":true,"godo.gifu.jp":true,"gujo.gifu.jp":true,"hashima.gifu.jp":true,"hichiso.gifu.jp":true,"hida.gifu.jp":true,"higashishirakawa.gifu.jp":true,"ibigawa.gifu.jp":true,"ikeda.gifu.jp":true,"kakamigahara.gifu.jp":true,"kani.gifu.jp":true,"kasahara.gifu.jp":true,"kasamatsu.gifu.jp":true,"kawaue.gifu.jp":true,"kitagata.gifu.jp":true,"mino.gifu.jp":true,"minokamo.gifu.jp":true,"mitake.gifu.jp":true,"mizunami.gifu.jp":true,"motosu.gifu.jp":true,"nakatsugawa.gifu.jp":true,"ogaki.gifu.jp":true,"sakahogi.gifu.jp":true,"seki.gifu.jp":true,"sekigahara.gifu.jp":true,"shirakawa.gifu.jp":true,"tajimi.gifu.jp":true,"takayama.gifu.jp":true,"tarui.gifu.jp":true,"toki.gifu.jp":true,"tomika.gifu.jp":true,"wanouchi.gifu.jp":true,"yamagata.gifu.jp":true,"yaotsu.gifu.jp":true,"yoro.gifu.jp":true,"annaka.gunma.jp":true,"chiyoda.gunma.jp":true,"fujioka.gunma.jp":true,"higashiagatsuma.gunma.jp":true,"isesaki.gunma.jp":true,"itakura.gunma.jp":true,"kanna.gunma.jp":true,"kanra.gunma.jp":true,"katashina.gunma.jp":true,"kawaba.gunma.jp":true,"kiryu.gunma.jp":true,"kusatsu.gunma.jp":true,"maebashi.gunma.jp":true,"meiwa.gunma.jp":true,"midori.gunma.jp":true,"minakami.gunma.jp":true,"naganohara.gunma.jp":true,"nakanojo.gunma.jp":true,"nanmoku.gunma.jp":true,"numata.gunma.jp":true,"oizumi.gunma.jp":true,"ora.gunma.jp":true,"ota.gunma.jp":true,"shibukawa.gunma.jp":true,"shimonita.gunma.jp":true,"shinto.gunma.jp":true,"showa.gunma.jp":true,"takasaki.gunma.jp":true,"takayama.gunma.jp":true,"tamamura.gunma.jp":true,"tatebayashi.gunma.jp":true,"tomioka.gunma.jp":true,"tsukiyono.gunma.jp":true,"tsumagoi.gunma.jp":true,"ueno.gunma.jp":true,"yoshioka.gunma.jp":true,"asaminami.hiroshima.jp":true,"daiwa.hiroshima.jp":true,"etajima.hiroshima.jp":true,"fuchu.hiroshima.jp":true,"fukuyama.hiroshima.jp":true,"hatsukaichi.hiroshima.jp":true,"higashihiroshima.hiroshima.jp":true,"hongo.hiroshima.jp":true,"jinsekikogen.hiroshima.jp":true,"kaita.hiroshima.jp":true,"kui.hiroshima.jp":true,"kumano.hiroshima.jp":true,"kure.hiroshima.jp":true,"mihara.hiroshima.jp":true,"miyoshi.hiroshima.jp":true,"naka.hiroshima.jp":true,"onomichi.hiroshima.jp":true,"osakikamijima.hiroshima.jp":true,"otake.hiroshima.jp":true,"saka.hiroshima.jp":true,"sera.hiroshima.jp":true,"seranishi.hiroshima.jp":true,"shinichi.hiroshima.jp":true,"shobara.hiroshima.jp":true,"takehara.hiroshima.jp":true,"abashiri.hokkaido.jp":true,"abira.hokkaido.jp":true,"aibetsu.hokkaido.jp":true,"akabira.hokkaido.jp":true,"akkeshi.hokkaido.jp":true,"asahikawa.hokkaido.jp":true,"ashibetsu.hokkaido.jp":true,"ashoro.hokkaido.jp":true,"assabu.hokkaido.jp":true,"atsuma.hokkaido.jp":true,"bibai.hokkaido.jp":true,"biei.hokkaido.jp":true,"bifuka.hokkaido.jp":true,"bihoro.hokkaido.jp":true,"biratori.hokkaido.jp":true,"chippubetsu.hokkaido.jp":true,"chitose.hokkaido.jp":true,"date.hokkaido.jp":true,"ebetsu.hokkaido.jp":true,"embetsu.hokkaido.jp":true,"eniwa.hokkaido.jp":true,"erimo.hokkaido.jp":true,"esan.hokkaido.jp":true,"esashi.hokkaido.jp":true,"fukagawa.hokkaido.jp":true,"fukushima.hokkaido.jp":true,"furano.hokkaido.jp":true,"furubira.hokkaido.jp":true,"haboro.hokkaido.jp":true,"hakodate.hokkaido.jp":true,"hamatonbetsu.hokkaido.jp":true,"hidaka.hokkaido.jp":true,"higashikagura.hokkaido.jp":true,"higashikawa.hokkaido.jp":true,"hiroo.hokkaido.jp":true,"hokuryu.hokkaido.jp":true,"hokuto.hokkaido.jp":true,"honbetsu.hokkaido.jp":true,"horokanai.hokkaido.jp":true,"horonobe.hokkaido.jp":true,"ikeda.hokkaido.jp":true,"imakane.hokkaido.jp":true,"ishikari.hokkaido.jp":true,"iwamizawa.hokkaido.jp":true,"iwanai.hokkaido.jp":true,"kamifurano.hokkaido.jp":true,"kamikawa.hokkaido.jp":true,"kamishihoro.hokkaido.jp":true,"kamisunagawa.hokkaido.jp":true,"kamoenai.hokkaido.jp":true,"kayabe.hokkaido.jp":true,"kembuchi.hokkaido.jp":true,"kikonai.hokkaido.jp":true,"kimobetsu.hokkaido.jp":true,"kitahiroshima.hokkaido.jp":true,"kitami.hokkaido.jp":true,"kiyosato.hokkaido.jp":true,"koshimizu.hokkaido.jp":true,"kunneppu.hokkaido.jp":true,"kuriyama.hokkaido.jp":true,"kuromatsunai.hokkaido.jp":true,"kushiro.hokkaido.jp":true,"kutchan.hokkaido.jp":true,"kyowa.hokkaido.jp":true,"mashike.hokkaido.jp":true,"matsumae.hokkaido.jp":true,"mikasa.hokkaido.jp":true,"minamifurano.hokkaido.jp":true,"mombetsu.hokkaido.jp":true,"moseushi.hokkaido.jp":true,"mukawa.hokkaido.jp":true,"muroran.hokkaido.jp":true,"naie.hokkaido.jp":true,"nakagawa.hokkaido.jp":true,"nakasatsunai.hokkaido.jp":true,"nakatombetsu.hokkaido.jp":true,"nanae.hokkaido.jp":true,"nanporo.hokkaido.jp":true,"nayoro.hokkaido.jp":true,"nemuro.hokkaido.jp":true,"niikappu.hokkaido.jp":true,"niki.hokkaido.jp":true,"nishiokoppe.hokkaido.jp":true,"noboribetsu.hokkaido.jp":true,"numata.hokkaido.jp":true,"obihiro.hokkaido.jp":true,"obira.hokkaido.jp":true,"oketo.hokkaido.jp":true,"okoppe.hokkaido.jp":true,"otaru.hokkaido.jp":true,"otobe.hokkaido.jp":true,"otofuke.hokkaido.jp":true,"otoineppu.hokkaido.jp":true,"oumu.hokkaido.jp":true,"ozora.hokkaido.jp":true,"pippu.hokkaido.jp":true,"rankoshi.hokkaido.jp":true,"rebun.hokkaido.jp":true,"rikubetsu.hokkaido.jp":true,"rishiri.hokkaido.jp":true,"rishirifuji.hokkaido.jp":true,"saroma.hokkaido.jp":true,"sarufutsu.hokkaido.jp":true,"shakotan.hokkaido.jp":true,"shari.hokkaido.jp":true,"shibecha.hokkaido.jp":true,"shibetsu.hokkaido.jp":true,"shikabe.hokkaido.jp":true,"shikaoi.hokkaido.jp":true,"shimamaki.hokkaido.jp":true,"shimizu.hokkaido.jp":true,"shimokawa.hokkaido.jp":true,"shinshinotsu.hokkaido.jp":true,"shintoku.hokkaido.jp":true,"shiranuka.hokkaido.jp":true,"shiraoi.hokkaido.jp":true,"shiriuchi.hokkaido.jp":true,"sobetsu.hokkaido.jp":true,"sunagawa.hokkaido.jp":true,"taiki.hokkaido.jp":true,"takasu.hokkaido.jp":true,"takikawa.hokkaido.jp":true,"takinoue.hokkaido.jp":true,"teshikaga.hokkaido.jp":true,"tobetsu.hokkaido.jp":true,"tohma.hokkaido.jp":true,"tomakomai.hokkaido.jp":true,"tomari.hokkaido.jp":true,"toya.hokkaido.jp":true,"toyako.hokkaido.jp":true,"toyotomi.hokkaido.jp":true,"toyoura.hokkaido.jp":true,"tsubetsu.hokkaido.jp":true,"tsukigata.hokkaido.jp":true,"urakawa.hokkaido.jp":true,"urausu.hokkaido.jp":true,"uryu.hokkaido.jp":true,"utashinai.hokkaido.jp":true,"wakkanai.hokkaido.jp":true,"wassamu.hokkaido.jp":true,"yakumo.hokkaido.jp":true,"yoichi.hokkaido.jp":true,"aioi.hyogo.jp":true,"akashi.hyogo.jp":true,"ako.hyogo.jp":true,"amagasaki.hyogo.jp":true,"aogaki.hyogo.jp":true,"asago.hyogo.jp":true,"ashiya.hyogo.jp":true,"awaji.hyogo.jp":true,"fukusaki.hyogo.jp":true,"goshiki.hyogo.jp":true,"harima.hyogo.jp":true,"himeji.hyogo.jp":true,"ichikawa.hyogo.jp":true,"inagawa.hyogo.jp":true,"itami.hyogo.jp":true,"kakogawa.hyogo.jp":true,"kamigori.hyogo.jp":true,"kamikawa.hyogo.jp":true,"kasai.hyogo.jp":true,"kasuga.hyogo.jp":true,"kawanishi.hyogo.jp":true,"miki.hyogo.jp":true,"minamiawaji.hyogo.jp":true,"nishinomiya.hyogo.jp":true,"nishiwaki.hyogo.jp":true,"ono.hyogo.jp":true,"sanda.hyogo.jp":true,"sannan.hyogo.jp":true,"sasayama.hyogo.jp":true,"sayo.hyogo.jp":true,"shingu.hyogo.jp":true,"shinonsen.hyogo.jp":true,"shiso.hyogo.jp":true,"sumoto.hyogo.jp":true,"taishi.hyogo.jp":true,"taka.hyogo.jp":true,"takarazuka.hyogo.jp":true,"takasago.hyogo.jp":true,"takino.hyogo.jp":true,"tamba.hyogo.jp":true,"tatsuno.hyogo.jp":true,"toyooka.hyogo.jp":true,"yabu.hyogo.jp":true,"yashiro.hyogo.jp":true,"yoka.hyogo.jp":true,"yokawa.hyogo.jp":true,"ami.ibaraki.jp":true,"asahi.ibaraki.jp":true,"bando.ibaraki.jp":true,"chikusei.ibaraki.jp":true,"daigo.ibaraki.jp":true,"fujishiro.ibaraki.jp":true,"hitachi.ibaraki.jp":true,"hitachinaka.ibaraki.jp":true,"hitachiomiya.ibaraki.jp":true,"hitachiota.ibaraki.jp":true,"ibaraki.ibaraki.jp":true,"ina.ibaraki.jp":true,"inashiki.ibaraki.jp":true,"itako.ibaraki.jp":true,"iwama.ibaraki.jp":true,"joso.ibaraki.jp":true,"kamisu.ibaraki.jp":true,"kasama.ibaraki.jp":true,"kashima.ibaraki.jp":true,"kasumigaura.ibaraki.jp":true,"koga.ibaraki.jp":true,"miho.ibaraki.jp":true,"mito.ibaraki.jp":true,"moriya.ibaraki.jp":true,"naka.ibaraki.jp":true,"namegata.ibaraki.jp":true,"oarai.ibaraki.jp":true,"ogawa.ibaraki.jp":true,"omitama.ibaraki.jp":true,"ryugasaki.ibaraki.jp":true,"sakai.ibaraki.jp":true,"sakuragawa.ibaraki.jp":true,"shimodate.ibaraki.jp":true,"shimotsuma.ibaraki.jp":true,"shirosato.ibaraki.jp":true,"sowa.ibaraki.jp":true,"suifu.ibaraki.jp":true,"takahagi.ibaraki.jp":true,"tamatsukuri.ibaraki.jp":true,"tokai.ibaraki.jp":true,"tomobe.ibaraki.jp":true,"tone.ibaraki.jp":true,"toride.ibaraki.jp":true,"tsuchiura.ibaraki.jp":true,"tsukuba.ibaraki.jp":true,"uchihara.ibaraki.jp":true,"ushiku.ibaraki.jp":true,"yachiyo.ibaraki.jp":true,"yamagata.ibaraki.jp":true,"yawara.ibaraki.jp":true,"yuki.ibaraki.jp":true,"anamizu.ishikawa.jp":true,"hakui.ishikawa.jp":true,"hakusan.ishikawa.jp":true,"kaga.ishikawa.jp":true,"kahoku.ishikawa.jp":true,"kanazawa.ishikawa.jp":true,"kawakita.ishikawa.jp":true,"komatsu.ishikawa.jp":true,"nakanoto.ishikawa.jp":true,"nanao.ishikawa.jp":true,"nomi.ishikawa.jp":true,"nonoichi.ishikawa.jp":true,"noto.ishikawa.jp":true,"shika.ishikawa.jp":true,"suzu.ishikawa.jp":true,"tsubata.ishikawa.jp":true,"tsurugi.ishikawa.jp":true,"uchinada.ishikawa.jp":true,"wajima.ishikawa.jp":true,"fudai.iwate.jp":true,"fujisawa.iwate.jp":true,"hanamaki.iwate.jp":true,"hiraizumi.iwate.jp":true,"hirono.iwate.jp":true,"ichinohe.iwate.jp":true,"ichinoseki.iwate.jp":true,"iwaizumi.iwate.jp":true,"iwate.iwate.jp":true,"joboji.iwate.jp":true,"kamaishi.iwate.jp":true,"kanegasaki.iwate.jp":true,"karumai.iwate.jp":true,"kawai.iwate.jp":true,"kitakami.iwate.jp":true,"kuji.iwate.jp":true,"kunohe.iwate.jp":true,"kuzumaki.iwate.jp":true,"miyako.iwate.jp":true,"mizusawa.iwate.jp":true,"morioka.iwate.jp":true,"ninohe.iwate.jp":true,"noda.iwate.jp":true,"ofunato.iwate.jp":true,"oshu.iwate.jp":true,"otsuchi.iwate.jp":true,"rikuzentakata.iwate.jp":true,"shiwa.iwate.jp":true,"shizukuishi.iwate.jp":true,"sumita.iwate.jp":true,"tanohata.iwate.jp":true,"tono.iwate.jp":true,"yahaba.iwate.jp":true,"yamada.iwate.jp":true,"ayagawa.kagawa.jp":true,"higashikagawa.kagawa.jp":true,"kanonji.kagawa.jp":true,"kotohira.kagawa.jp":true,"manno.kagawa.jp":true,"marugame.kagawa.jp":true,"mitoyo.kagawa.jp":true,"naoshima.kagawa.jp":true,"sanuki.kagawa.jp":true,"tadotsu.kagawa.jp":true,"takamatsu.kagawa.jp":true,"tonosho.kagawa.jp":true,"uchinomi.kagawa.jp":true,"utazu.kagawa.jp":true,"zentsuji.kagawa.jp":true,"akune.kagoshima.jp":true,"amami.kagoshima.jp":true,"hioki.kagoshima.jp":true,"isa.kagoshima.jp":true,"isen.kagoshima.jp":true,"izumi.kagoshima.jp":true,"kagoshima.kagoshima.jp":true,"kanoya.kagoshima.jp":true,"kawanabe.kagoshima.jp":true,"kinko.kagoshima.jp":true,"kouyama.kagoshima.jp":true,"makurazaki.kagoshima.jp":true,"matsumoto.kagoshima.jp":true,"minamitane.kagoshima.jp":true,"nakatane.kagoshima.jp":true,"nishinoomote.kagoshima.jp":true,"satsumasendai.kagoshima.jp":true,"soo.kagoshima.jp":true,"tarumizu.kagoshima.jp":true,"yusui.kagoshima.jp":true,"aikawa.kanagawa.jp":true,"atsugi.kanagawa.jp":true,"ayase.kanagawa.jp":true,"chigasaki.kanagawa.jp":true,"ebina.kanagawa.jp":true,"fujisawa.kanagawa.jp":true,"hadano.kanagawa.jp":true,"hakone.kanagawa.jp":true,"hiratsuka.kanagawa.jp":true,"isehara.kanagawa.jp":true,"kaisei.kanagawa.jp":true,"kamakura.kanagawa.jp":true,"kiyokawa.kanagawa.jp":true,"matsuda.kanagawa.jp":true,"minamiashigara.kanagawa.jp":true,"miura.kanagawa.jp":true,"nakai.kanagawa.jp":true,"ninomiya.kanagawa.jp":true,"odawara.kanagawa.jp":true,"oi.kanagawa.jp":true,"oiso.kanagawa.jp":true,"sagamihara.kanagawa.jp":true,"samukawa.kanagawa.jp":true,"tsukui.kanagawa.jp":true,"yamakita.kanagawa.jp":true,"yamato.kanagawa.jp":true,"yokosuka.kanagawa.jp":true,"yugawara.kanagawa.jp":true,"zama.kanagawa.jp":true,"zushi.kanagawa.jp":true,"aki.kochi.jp":true,"geisei.kochi.jp":true,"hidaka.kochi.jp":true,"higashitsuno.kochi.jp":true,"ino.kochi.jp":true,"kagami.kochi.jp":true,"kami.kochi.jp":true,"kitagawa.kochi.jp":true,"kochi.kochi.jp":true,"mihara.kochi.jp":true,"motoyama.kochi.jp":true,"muroto.kochi.jp":true,"nahari.kochi.jp":true,"nakamura.kochi.jp":true,"nankoku.kochi.jp":true,"nishitosa.kochi.jp":true,"niyodogawa.kochi.jp":true,"ochi.kochi.jp":true,"okawa.kochi.jp":true,"otoyo.kochi.jp":true,"otsuki.kochi.jp":true,"sakawa.kochi.jp":true,"sukumo.kochi.jp":true,"susaki.kochi.jp":true,"tosa.kochi.jp":true,"tosashimizu.kochi.jp":true,"toyo.kochi.jp":true,"tsuno.kochi.jp":true,"umaji.kochi.jp":true,"yasuda.kochi.jp":true,"yusuhara.kochi.jp":true,"amakusa.kumamoto.jp":true,"arao.kumamoto.jp":true,"aso.kumamoto.jp":true,"choyo.kumamoto.jp":true,"gyokuto.kumamoto.jp":true,"kamiamakusa.kumamoto.jp":true,"kikuchi.kumamoto.jp":true,"kumamoto.kumamoto.jp":true,"mashiki.kumamoto.jp":true,"mifune.kumamoto.jp":true,"minamata.kumamoto.jp":true,"minamioguni.kumamoto.jp":true,"nagasu.kumamoto.jp":true,"nishihara.kumamoto.jp":true,"oguni.kumamoto.jp":true,"ozu.kumamoto.jp":true,"sumoto.kumamoto.jp":true,"takamori.kumamoto.jp":true,"uki.kumamoto.jp":true,"uto.kumamoto.jp":true,"yamaga.kumamoto.jp":true,"yamato.kumamoto.jp":true,"yatsushiro.kumamoto.jp":true,"ayabe.kyoto.jp":true,"fukuchiyama.kyoto.jp":true,"higashiyama.kyoto.jp":true,"ide.kyoto.jp":true,"ine.kyoto.jp":true,"joyo.kyoto.jp":true,"kameoka.kyoto.jp":true,"kamo.kyoto.jp":true,"kita.kyoto.jp":true,"kizu.kyoto.jp":true,"kumiyama.kyoto.jp":true,"kyotamba.kyoto.jp":true,"kyotanabe.kyoto.jp":true,"kyotango.kyoto.jp":true,"maizuru.kyoto.jp":true,"minami.kyoto.jp":true,"minamiyamashiro.kyoto.jp":true,"miyazu.kyoto.jp":true,"muko.kyoto.jp":true,"nagaokakyo.kyoto.jp":true,"nakagyo.kyoto.jp":true,"nantan.kyoto.jp":true,"oyamazaki.kyoto.jp":true,"sakyo.kyoto.jp":true,"seika.kyoto.jp":true,"tanabe.kyoto.jp":true,"uji.kyoto.jp":true,"ujitawara.kyoto.jp":true,"wazuka.kyoto.jp":true,"yamashina.kyoto.jp":true,"yawata.kyoto.jp":true,"asahi.mie.jp":true,"inabe.mie.jp":true,"ise.mie.jp":true,"kameyama.mie.jp":true,"kawagoe.mie.jp":true,"kiho.mie.jp":true,"kisosaki.mie.jp":true,"kiwa.mie.jp":true,"komono.mie.jp":true,"kumano.mie.jp":true,"kuwana.mie.jp":true,"matsusaka.mie.jp":true,"meiwa.mie.jp":true,"mihama.mie.jp":true,"minamiise.mie.jp":true,"misugi.mie.jp":true,"miyama.mie.jp":true,"nabari.mie.jp":true,"shima.mie.jp":true,"suzuka.mie.jp":true,"tado.mie.jp":true,"taiki.mie.jp":true,"taki.mie.jp":true,"tamaki.mie.jp":true,"toba.mie.jp":true,"tsu.mie.jp":true,"udono.mie.jp":true,"ureshino.mie.jp":true,"watarai.mie.jp":true,"yokkaichi.mie.jp":true,"furukawa.miyagi.jp":true,"higashimatsushima.miyagi.jp":true,"ishinomaki.miyagi.jp":true,"iwanuma.miyagi.jp":true,"kakuda.miyagi.jp":true,"kami.miyagi.jp":true,"kawasaki.miyagi.jp":true,"marumori.miyagi.jp":true,"matsushima.miyagi.jp":true,"minamisanriku.miyagi.jp":true,"misato.miyagi.jp":true,"murata.miyagi.jp":true,"natori.miyagi.jp":true,"ogawara.miyagi.jp":true,"ohira.miyagi.jp":true,"onagawa.miyagi.jp":true,"osaki.miyagi.jp":true,"rifu.miyagi.jp":true,"semine.miyagi.jp":true,"shibata.miyagi.jp":true,"shichikashuku.miyagi.jp":true,"shikama.miyagi.jp":true,"shiogama.miyagi.jp":true,"shiroishi.miyagi.jp":true,"tagajo.miyagi.jp":true,"taiwa.miyagi.jp":true,"tome.miyagi.jp":true,"tomiya.miyagi.jp":true,"wakuya.miyagi.jp":true,"watari.miyagi.jp":true,"yamamoto.miyagi.jp":true,"zao.miyagi.jp":true,"aya.miyazaki.jp":true,"ebino.miyazaki.jp":true,"gokase.miyazaki.jp":true,"hyuga.miyazaki.jp":true,"kadogawa.miyazaki.jp":true,"kawaminami.miyazaki.jp":true,"kijo.miyazaki.jp":true,"kitagawa.miyazaki.jp":true,"kitakata.miyazaki.jp":true,"kitaura.miyazaki.jp":true,"kobayashi.miyazaki.jp":true,"kunitomi.miyazaki.jp":true,"kushima.miyazaki.jp":true,"mimata.miyazaki.jp":true,"miyakonojo.miyazaki.jp":true,"miyazaki.miyazaki.jp":true,"morotsuka.miyazaki.jp":true,"nichinan.miyazaki.jp":true,"nishimera.miyazaki.jp":true,"nobeoka.miyazaki.jp":true,"saito.miyazaki.jp":true,"shiiba.miyazaki.jp":true,"shintomi.miyazaki.jp":true,"takaharu.miyazaki.jp":true,"takanabe.miyazaki.jp":true,"takazaki.miyazaki.jp":true,"tsuno.miyazaki.jp":true,"achi.nagano.jp":true,"agematsu.nagano.jp":true,"anan.nagano.jp":true,"aoki.nagano.jp":true,"asahi.nagano.jp":true,"azumino.nagano.jp":true,"chikuhoku.nagano.jp":true,"chikuma.nagano.jp":true,"chino.nagano.jp":true,"fujimi.nagano.jp":true,"hakuba.nagano.jp":true,"hara.nagano.jp":true,"hiraya.nagano.jp":true,"iida.nagano.jp":true,"iijima.nagano.jp":true,"iiyama.nagano.jp":true,"iizuna.nagano.jp":true,"ikeda.nagano.jp":true,"ikusaka.nagano.jp":true,"ina.nagano.jp":true,"karuizawa.nagano.jp":true,"kawakami.nagano.jp":true,"kiso.nagano.jp":true,"kisofukushima.nagano.jp":true,"kitaaiki.nagano.jp":true,"komagane.nagano.jp":true,"komoro.nagano.jp":true,"matsukawa.nagano.jp":true,"matsumoto.nagano.jp":true,"miasa.nagano.jp":true,"minamiaiki.nagano.jp":true,"minamimaki.nagano.jp":true,"minamiminowa.nagano.jp":true,"minowa.nagano.jp":true,"miyada.nagano.jp":true,"miyota.nagano.jp":true,"mochizuki.nagano.jp":true,"nagano.nagano.jp":true,"nagawa.nagano.jp":true,"nagiso.nagano.jp":true,"nakagawa.nagano.jp":true,"nakano.nagano.jp":true,"nozawaonsen.nagano.jp":true,"obuse.nagano.jp":true,"ogawa.nagano.jp":true,"okaya.nagano.jp":true,"omachi.nagano.jp":true,"omi.nagano.jp":true,"ookuwa.nagano.jp":true,"ooshika.nagano.jp":true,"otaki.nagano.jp":true,"otari.nagano.jp":true,"sakae.nagano.jp":true,"sakaki.nagano.jp":true,"saku.nagano.jp":true,"sakuho.nagano.jp":true,"shimosuwa.nagano.jp":true,"shinanomachi.nagano.jp":true,"shiojiri.nagano.jp":true,"suwa.nagano.jp":true,"suzaka.nagano.jp":true,"takagi.nagano.jp":true,"takamori.nagano.jp":true,"takayama.nagano.jp":true,"tateshina.nagano.jp":true,"tatsuno.nagano.jp":true,"togakushi.nagano.jp":true,"togura.nagano.jp":true,"tomi.nagano.jp":true,"ueda.nagano.jp":true,"wada.nagano.jp":true,"yamagata.nagano.jp":true,"yamanouchi.nagano.jp":true,"yasaka.nagano.jp":true,"yasuoka.nagano.jp":true,"chijiwa.nagasaki.jp":true,"futsu.nagasaki.jp":true,"goto.nagasaki.jp":true,"hasami.nagasaki.jp":true,"hirado.nagasaki.jp":true,"iki.nagasaki.jp":true,"isahaya.nagasaki.jp":true,"kawatana.nagasaki.jp":true,"kuchinotsu.nagasaki.jp":true,"matsuura.nagasaki.jp":true,"nagasaki.nagasaki.jp":true,"obama.nagasaki.jp":true,"omura.nagasaki.jp":true,"oseto.nagasaki.jp":true,"saikai.nagasaki.jp":true,"sasebo.nagasaki.jp":true,"seihi.nagasaki.jp":true,"shimabara.nagasaki.jp":true,"shinkamigoto.nagasaki.jp":true,"togitsu.nagasaki.jp":true,"tsushima.nagasaki.jp":true,"unzen.nagasaki.jp":true,"ando.nara.jp":true,"gose.nara.jp":true,"heguri.nara.jp":true,"higashiyoshino.nara.jp":true,"ikaruga.nara.jp":true,"ikoma.nara.jp":true,"kamikitayama.nara.jp":true,"kanmaki.nara.jp":true,"kashiba.nara.jp":true,"kashihara.nara.jp":true,"katsuragi.nara.jp":true,"kawai.nara.jp":true,"kawakami.nara.jp":true,"kawanishi.nara.jp":true,"koryo.nara.jp":true,"kurotaki.nara.jp":true,"mitsue.nara.jp":true,"miyake.nara.jp":true,"nara.nara.jp":true,"nosegawa.nara.jp":true,"oji.nara.jp":true,"ouda.nara.jp":true,"oyodo.nara.jp":true,"sakurai.nara.jp":true,"sango.nara.jp":true,"shimoichi.nara.jp":true,"shimokitayama.nara.jp":true,"shinjo.nara.jp":true,"soni.nara.jp":true,"takatori.nara.jp":true,"tawaramoto.nara.jp":true,"tenkawa.nara.jp":true,"tenri.nara.jp":true,"uda.nara.jp":true,"yamatokoriyama.nara.jp":true,"yamatotakada.nara.jp":true,"yamazoe.nara.jp":true,"yoshino.nara.jp":true,"aga.niigata.jp":true,"agano.niigata.jp":true,"gosen.niigata.jp":true,"itoigawa.niigata.jp":true,"izumozaki.niigata.jp":true,"joetsu.niigata.jp":true,"kamo.niigata.jp":true,"kariwa.niigata.jp":true,"kashiwazaki.niigata.jp":true,"minamiuonuma.niigata.jp":true,"mitsuke.niigata.jp":true,"muika.niigata.jp":true,"murakami.niigata.jp":true,"myoko.niigata.jp":true,"nagaoka.niigata.jp":true,"niigata.niigata.jp":true,"ojiya.niigata.jp":true,"omi.niigata.jp":true,"sado.niigata.jp":true,"sanjo.niigata.jp":true,"seiro.niigata.jp":true,"seirou.niigata.jp":true,"sekikawa.niigata.jp":true,"shibata.niigata.jp":true,"tagami.niigata.jp":true,"tainai.niigata.jp":true,"tochio.niigata.jp":true,"tokamachi.niigata.jp":true,"tsubame.niigata.jp":true,"tsunan.niigata.jp":true,"uonuma.niigata.jp":true,"yahiko.niigata.jp":true,"yoita.niigata.jp":true,"yuzawa.niigata.jp":true,"beppu.oita.jp":true,"bungoono.oita.jp":true,"bungotakada.oita.jp":true,"hasama.oita.jp":true,"hiji.oita.jp":true,"himeshima.oita.jp":true,"hita.oita.jp":true,"kamitsue.oita.jp":true,"kokonoe.oita.jp":true,"kuju.oita.jp":true,"kunisaki.oita.jp":true,"kusu.oita.jp":true,"oita.oita.jp":true,"saiki.oita.jp":true,"taketa.oita.jp":true,"tsukumi.oita.jp":true,"usa.oita.jp":true,"usuki.oita.jp":true,"yufu.oita.jp":true,"akaiwa.okayama.jp":true,"asakuchi.okayama.jp":true,"bizen.okayama.jp":true,"hayashima.okayama.jp":true,"ibara.okayama.jp":true,"kagamino.okayama.jp":true,"kasaoka.okayama.jp":true,"kibichuo.okayama.jp":true,"kumenan.okayama.jp":true,"kurashiki.okayama.jp":true,"maniwa.okayama.jp":true,"misaki.okayama.jp":true,"nagi.okayama.jp":true,"niimi.okayama.jp":true,"nishiawakura.okayama.jp":true,"okayama.okayama.jp":true,"satosho.okayama.jp":true,"setouchi.okayama.jp":true,"shinjo.okayama.jp":true,"shoo.okayama.jp":true,"soja.okayama.jp":true,"takahashi.okayama.jp":true,"tamano.okayama.jp":true,"tsuyama.okayama.jp":true,"wake.okayama.jp":true,"yakage.okayama.jp":true,"aguni.okinawa.jp":true,"ginowan.okinawa.jp":true,"ginoza.okinawa.jp":true,"gushikami.okinawa.jp":true,"haebaru.okinawa.jp":true,"higashi.okinawa.jp":true,"hirara.okinawa.jp":true,"iheya.okinawa.jp":true,"ishigaki.okinawa.jp":true,"ishikawa.okinawa.jp":true,"itoman.okinawa.jp":true,"izena.okinawa.jp":true,"kadena.okinawa.jp":true,"kin.okinawa.jp":true,"kitadaito.okinawa.jp":true,"kitanakagusuku.okinawa.jp":true,"kumejima.okinawa.jp":true,"kunigami.okinawa.jp":true,"minamidaito.okinawa.jp":true,"motobu.okinawa.jp":true,"nago.okinawa.jp":true,"naha.okinawa.jp":true,"nakagusuku.okinawa.jp":true,"nakijin.okinawa.jp":true,"nanjo.okinawa.jp":true,"nishihara.okinawa.jp":true,"ogimi.okinawa.jp":true,"okinawa.okinawa.jp":true,"onna.okinawa.jp":true,"shimoji.okinawa.jp":true,"taketomi.okinawa.jp":true,"tarama.okinawa.jp":true,"tokashiki.okinawa.jp":true,"tomigusuku.okinawa.jp":true,"tonaki.okinawa.jp":true,"urasoe.okinawa.jp":true,"uruma.okinawa.jp":true,"yaese.okinawa.jp":true,"yomitan.okinawa.jp":true,"yonabaru.okinawa.jp":true,"yonaguni.okinawa.jp":true,"zamami.okinawa.jp":true,"abeno.osaka.jp":true,"chihayaakasaka.osaka.jp":true,"chuo.osaka.jp":true,"daito.osaka.jp":true,"fujiidera.osaka.jp":true,"habikino.osaka.jp":true,"hannan.osaka.jp":true,"higashiosaka.osaka.jp":true,"higashisumiyoshi.osaka.jp":true,"higashiyodogawa.osaka.jp":true,"hirakata.osaka.jp":true,"ibaraki.osaka.jp":true,"ikeda.osaka.jp":true,"izumi.osaka.jp":true,"izumiotsu.osaka.jp":true,"izumisano.osaka.jp":true,"kadoma.osaka.jp":true,"kaizuka.osaka.jp":true,"kanan.osaka.jp":true,"kashiwara.osaka.jp":true,"katano.osaka.jp":true,"kawachinagano.osaka.jp":true,"kishiwada.osaka.jp":true,"kita.osaka.jp":true,"kumatori.osaka.jp":true,"matsubara.osaka.jp":true,"minato.osaka.jp":true,"minoh.osaka.jp":true,"misaki.osaka.jp":true,"moriguchi.osaka.jp":true,"neyagawa.osaka.jp":true,"nishi.osaka.jp":true,"nose.osaka.jp":true,"osakasayama.osaka.jp":true,"sakai.osaka.jp":true,"sayama.osaka.jp":true,"sennan.osaka.jp":true,"settsu.osaka.jp":true,"shijonawate.osaka.jp":true,"shimamoto.osaka.jp":true,"suita.osaka.jp":true,"tadaoka.osaka.jp":true,"taishi.osaka.jp":true,"tajiri.osaka.jp":true,"takaishi.osaka.jp":true,"takatsuki.osaka.jp":true,"tondabayashi.osaka.jp":true,"toyonaka.osaka.jp":true,"toyono.osaka.jp":true,"yao.osaka.jp":true,"ariake.saga.jp":true,"arita.saga.jp":true,"fukudomi.saga.jp":true,"genkai.saga.jp":true,"hamatama.saga.jp":true,"hizen.saga.jp":true,"imari.saga.jp":true,"kamimine.saga.jp":true,"kanzaki.saga.jp":true,"karatsu.saga.jp":true,"kashima.saga.jp":true,"kitagata.saga.jp":true,"kitahata.saga.jp":true,"kiyama.saga.jp":true,"kouhoku.saga.jp":true,"kyuragi.saga.jp":true,"nishiarita.saga.jp":true,"ogi.saga.jp":true,"omachi.saga.jp":true,"ouchi.saga.jp":true,"saga.saga.jp":true,"shiroishi.saga.jp":true,"taku.saga.jp":true,"tara.saga.jp":true,"tosu.saga.jp":true,"yoshinogari.saga.jp":true,"arakawa.saitama.jp":true,"asaka.saitama.jp":true,"chichibu.saitama.jp":true,"fujimi.saitama.jp":true,"fujimino.saitama.jp":true,"fukaya.saitama.jp":true,"hanno.saitama.jp":true,"hanyu.saitama.jp":true,"hasuda.saitama.jp":true,"hatogaya.saitama.jp":true,"hatoyama.saitama.jp":true,"hidaka.saitama.jp":true,"higashichichibu.saitama.jp":true,"higashimatsuyama.saitama.jp":true,"honjo.saitama.jp":true,"ina.saitama.jp":true,"iruma.saitama.jp":true,"iwatsuki.saitama.jp":true,"kamiizumi.saitama.jp":true,"kamikawa.saitama.jp":true,"kamisato.saitama.jp":true,"kasukabe.saitama.jp":true,"kawagoe.saitama.jp":true,"kawaguchi.saitama.jp":true,"kawajima.saitama.jp":true,"kazo.saitama.jp":true,"kitamoto.saitama.jp":true,"koshigaya.saitama.jp":true,"kounosu.saitama.jp":true,"kuki.saitama.jp":true,"kumagaya.saitama.jp":true,"matsubushi.saitama.jp":true,"minano.saitama.jp":true,"misato.saitama.jp":true,"miyashiro.saitama.jp":true,"miyoshi.saitama.jp":true,"moroyama.saitama.jp":true,"nagatoro.saitama.jp":true,"namegawa.saitama.jp":true,"niiza.saitama.jp":true,"ogano.saitama.jp":true,"ogawa.saitama.jp":true,"ogose.saitama.jp":true,"okegawa.saitama.jp":true,"omiya.saitama.jp":true,"otaki.saitama.jp":true,"ranzan.saitama.jp":true,"ryokami.saitama.jp":true,"saitama.saitama.jp":true,"sakado.saitama.jp":true,"satte.saitama.jp":true,"sayama.saitama.jp":true,"shiki.saitama.jp":true,"shiraoka.saitama.jp":true,"soka.saitama.jp":true,"sugito.saitama.jp":true,"toda.saitama.jp":true,"tokigawa.saitama.jp":true,"tokorozawa.saitama.jp":true,"tsurugashima.saitama.jp":true,"urawa.saitama.jp":true,"warabi.saitama.jp":true,"yashio.saitama.jp":true,"yokoze.saitama.jp":true,"yono.saitama.jp":true,"yorii.saitama.jp":true,"yoshida.saitama.jp":true,"yoshikawa.saitama.jp":true,"yoshimi.saitama.jp":true,"aisho.shiga.jp":true,"gamo.shiga.jp":true,"higashiomi.shiga.jp":true,"hikone.shiga.jp":true,"koka.shiga.jp":true,"konan.shiga.jp":true,"kosei.shiga.jp":true,"koto.shiga.jp":true,"kusatsu.shiga.jp":true,"maibara.shiga.jp":true,"moriyama.shiga.jp":true,"nagahama.shiga.jp":true,"nishiazai.shiga.jp":true,"notogawa.shiga.jp":true,"omihachiman.shiga.jp":true,"otsu.shiga.jp":true,"ritto.shiga.jp":true,"ryuoh.shiga.jp":true,"takashima.shiga.jp":true,"takatsuki.shiga.jp":true,"torahime.shiga.jp":true,"toyosato.shiga.jp":true,"yasu.shiga.jp":true,"akagi.shimane.jp":true,"ama.shimane.jp":true,"gotsu.shimane.jp":true,"hamada.shimane.jp":true,"higashiizumo.shimane.jp":true,"hikawa.shimane.jp":true,"hikimi.shimane.jp":true,"izumo.shimane.jp":true,"kakinoki.shimane.jp":true,"masuda.shimane.jp":true,"matsue.shimane.jp":true,"misato.shimane.jp":true,"nishinoshima.shimane.jp":true,"ohda.shimane.jp":true,"okinoshima.shimane.jp":true,"okuizumo.shimane.jp":true,"shimane.shimane.jp":true,"tamayu.shimane.jp":true,"tsuwano.shimane.jp":true,"unnan.shimane.jp":true,"yakumo.shimane.jp":true,"yasugi.shimane.jp":true,"yatsuka.shimane.jp":true,"arai.shizuoka.jp":true,"atami.shizuoka.jp":true,"fuji.shizuoka.jp":true,"fujieda.shizuoka.jp":true,"fujikawa.shizuoka.jp":true,"fujinomiya.shizuoka.jp":true,"fukuroi.shizuoka.jp":true,"gotemba.shizuoka.jp":true,"haibara.shizuoka.jp":true,"hamamatsu.shizuoka.jp":true,"higashiizu.shizuoka.jp":true,"ito.shizuoka.jp":true,"iwata.shizuoka.jp":true,"izu.shizuoka.jp":true,"izunokuni.shizuoka.jp":true,"kakegawa.shizuoka.jp":true,"kannami.shizuoka.jp":true,"kawanehon.shizuoka.jp":true,"kawazu.shizuoka.jp":true,"kikugawa.shizuoka.jp":true,"kosai.shizuoka.jp":true,"makinohara.shizuoka.jp":true,"matsuzaki.shizuoka.jp":true,"minamiizu.shizuoka.jp":true,"mishima.shizuoka.jp":true,"morimachi.shizuoka.jp":true,"nishiizu.shizuoka.jp":true,"numazu.shizuoka.jp":true,"omaezaki.shizuoka.jp":true,"shimada.shizuoka.jp":true,"shimizu.shizuoka.jp":true,"shimoda.shizuoka.jp":true,"shizuoka.shizuoka.jp":true,"susono.shizuoka.jp":true,"yaizu.shizuoka.jp":true,"yoshida.shizuoka.jp":true,"ashikaga.tochigi.jp":true,"bato.tochigi.jp":true,"haga.tochigi.jp":true,"ichikai.tochigi.jp":true,"iwafune.tochigi.jp":true,"kaminokawa.tochigi.jp":true,"kanuma.tochigi.jp":true,"karasuyama.tochigi.jp":true,"kuroiso.tochigi.jp":true,"mashiko.tochigi.jp":true,"mibu.tochigi.jp":true,"moka.tochigi.jp":true,"motegi.tochigi.jp":true,"nasu.tochigi.jp":true,"nasushiobara.tochigi.jp":true,"nikko.tochigi.jp":true,"nishikata.tochigi.jp":true,"nogi.tochigi.jp":true,"ohira.tochigi.jp":true,"ohtawara.tochigi.jp":true,"oyama.tochigi.jp":true,"sakura.tochigi.jp":true,"sano.tochigi.jp":true,"shimotsuke.tochigi.jp":true,"shioya.tochigi.jp":true,"takanezawa.tochigi.jp":true,"tochigi.tochigi.jp":true,"tsuga.tochigi.jp":true,"ujiie.tochigi.jp":true,"utsunomiya.tochigi.jp":true,"yaita.tochigi.jp":true,"aizumi.tokushima.jp":true,"anan.tokushima.jp":true,"ichiba.tokushima.jp":true,"itano.tokushima.jp":true,"kainan.tokushima.jp":true,"komatsushima.tokushima.jp":true,"matsushige.tokushima.jp":true,"mima.tokushima.jp":true,"minami.tokushima.jp":true,"miyoshi.tokushima.jp":true,"mugi.tokushima.jp":true,"nakagawa.tokushima.jp":true,"naruto.tokushima.jp":true,"sanagochi.tokushima.jp":true,"shishikui.tokushima.jp":true,"tokushima.tokushima.jp":true,"wajiki.tokushima.jp":true,"adachi.tokyo.jp":true,"akiruno.tokyo.jp":true,"akishima.tokyo.jp":true,"aogashima.tokyo.jp":true,"arakawa.tokyo.jp":true,"bunkyo.tokyo.jp":true,"chiyoda.tokyo.jp":true,"chofu.tokyo.jp":true,"chuo.tokyo.jp":true,"edogawa.tokyo.jp":true,"fuchu.tokyo.jp":true,"fussa.tokyo.jp":true,"hachijo.tokyo.jp":true,"hachioji.tokyo.jp":true,"hamura.tokyo.jp":true,"higashikurume.tokyo.jp":true,"higashimurayama.tokyo.jp":true,"higashiyamato.tokyo.jp":true,"hino.tokyo.jp":true,"hinode.tokyo.jp":true,"hinohara.tokyo.jp":true,"inagi.tokyo.jp":true,"itabashi.tokyo.jp":true,"katsushika.tokyo.jp":true,"kita.tokyo.jp":true,"kiyose.tokyo.jp":true,"kodaira.tokyo.jp":true,"koganei.tokyo.jp":true,"kokubunji.tokyo.jp":true,"komae.tokyo.jp":true,"koto.tokyo.jp":true,"kouzushima.tokyo.jp":true,"kunitachi.tokyo.jp":true,"machida.tokyo.jp":true,"meguro.tokyo.jp":true,"minato.tokyo.jp":true,"mitaka.tokyo.jp":true,"mizuho.tokyo.jp":true,"musashimurayama.tokyo.jp":true,"musashino.tokyo.jp":true,"nakano.tokyo.jp":true,"nerima.tokyo.jp":true,"ogasawara.tokyo.jp":true,"okutama.tokyo.jp":true,"ome.tokyo.jp":true,"oshima.tokyo.jp":true,"ota.tokyo.jp":true,"setagaya.tokyo.jp":true,"shibuya.tokyo.jp":true,"shinagawa.tokyo.jp":true,"shinjuku.tokyo.jp":true,"suginami.tokyo.jp":true,"sumida.tokyo.jp":true,"tachikawa.tokyo.jp":true,"taito.tokyo.jp":true,"tama.tokyo.jp":true,"toshima.tokyo.jp":true,"chizu.tottori.jp":true,"hino.tottori.jp":true,"kawahara.tottori.jp":true,"koge.tottori.jp":true,"kotoura.tottori.jp":true,"misasa.tottori.jp":true,"nanbu.tottori.jp":true,"nichinan.tottori.jp":true,"sakaiminato.tottori.jp":true,"tottori.tottori.jp":true,"wakasa.tottori.jp":true,"yazu.tottori.jp":true,"yonago.tottori.jp":true,"asahi.toyama.jp":true,"fuchu.toyama.jp":true,"fukumitsu.toyama.jp":true,"funahashi.toyama.jp":true,"himi.toyama.jp":true,"imizu.toyama.jp":true,"inami.toyama.jp":true,"johana.toyama.jp":true,"kamiichi.toyama.jp":true,"kurobe.toyama.jp":true,"nakaniikawa.toyama.jp":true,"namerikawa.toyama.jp":true,"nanto.toyama.jp":true,"nyuzen.toyama.jp":true,"oyabe.toyama.jp":true,"taira.toyama.jp":true,"takaoka.toyama.jp":true,"tateyama.toyama.jp":true,"toga.toyama.jp":true,"tonami.toyama.jp":true,"toyama.toyama.jp":true,"unazuki.toyama.jp":true,"uozu.toyama.jp":true,"yamada.toyama.jp":true,"arida.wakayama.jp":true,"aridagawa.wakayama.jp":true,"gobo.wakayama.jp":true,"hashimoto.wakayama.jp":true,"hidaka.wakayama.jp":true,"hirogawa.wakayama.jp":true,"inami.wakayama.jp":true,"iwade.wakayama.jp":true,"kainan.wakayama.jp":true,"kamitonda.wakayama.jp":true,"katsuragi.wakayama.jp":true,"kimino.wakayama.jp":true,"kinokawa.wakayama.jp":true,"kitayama.wakayama.jp":true,"koya.wakayama.jp":true,"koza.wakayama.jp":true,"kozagawa.wakayama.jp":true,"kudoyama.wakayama.jp":true,"kushimoto.wakayama.jp":true,"mihama.wakayama.jp":true,"misato.wakayama.jp":true,"nachikatsuura.wakayama.jp":true,"shingu.wakayama.jp":true,"shirahama.wakayama.jp":true,"taiji.wakayama.jp":true,"tanabe.wakayama.jp":true,"wakayama.wakayama.jp":true,"yuasa.wakayama.jp":true,"yura.wakayama.jp":true,"asahi.yamagata.jp":true,"funagata.yamagata.jp":true,"higashine.yamagata.jp":true,"iide.yamagata.jp":true,"kahoku.yamagata.jp":true,"kaminoyama.yamagata.jp":true,"kaneyama.yamagata.jp":true,"kawanishi.yamagata.jp":true,"mamurogawa.yamagata.jp":true,"mikawa.yamagata.jp":true,"murayama.yamagata.jp":true,"nagai.yamagata.jp":true,"nakayama.yamagata.jp":true,"nanyo.yamagata.jp":true,"nishikawa.yamagata.jp":true,"obanazawa.yamagata.jp":true,"oe.yamagata.jp":true,"oguni.yamagata.jp":true,"ohkura.yamagata.jp":true,"oishida.yamagata.jp":true,"sagae.yamagata.jp":true,"sakata.yamagata.jp":true,"sakegawa.yamagata.jp":true,"shinjo.yamagata.jp":true,"shirataka.yamagata.jp":true,"shonai.yamagata.jp":true,"takahata.yamagata.jp":true,"tendo.yamagata.jp":true,"tozawa.yamagata.jp":true,"tsuruoka.yamagata.jp":true,"yamagata.yamagata.jp":true,"yamanobe.yamagata.jp":true,"yonezawa.yamagata.jp":true,"yuza.yamagata.jp":true,"abu.yamaguchi.jp":true,"hagi.yamaguchi.jp":true,"hikari.yamaguchi.jp":true,"hofu.yamaguchi.jp":true,"iwakuni.yamaguchi.jp":true,"kudamatsu.yamaguchi.jp":true,"mitou.yamaguchi.jp":true,"nagato.yamaguchi.jp":true,"oshima.yamaguchi.jp":true,"shimonoseki.yamaguchi.jp":true,"shunan.yamaguchi.jp":true,"tabuse.yamaguchi.jp":true,"tokuyama.yamaguchi.jp":true,"toyota.yamaguchi.jp":true,"ube.yamaguchi.jp":true,"yuu.yamaguchi.jp":true,"chuo.yamanashi.jp":true,"doshi.yamanashi.jp":true,"fuefuki.yamanashi.jp":true,"fujikawa.yamanashi.jp":true,"fujikawaguchiko.yamanashi.jp":true,"fujiyoshida.yamanashi.jp":true,"hayakawa.yamanashi.jp":true,"hokuto.yamanashi.jp":true,"ichikawamisato.yamanashi.jp":true,"kai.yamanashi.jp":true,"kofu.yamanashi.jp":true,"koshu.yamanashi.jp":true,"kosuge.yamanashi.jp":true,"minami-alps.yamanashi.jp":true,"minobu.yamanashi.jp":true,"nakamichi.yamanashi.jp":true,"nanbu.yamanashi.jp":true,"narusawa.yamanashi.jp":true,"nirasaki.yamanashi.jp":true,"nishikatsura.yamanashi.jp":true,"oshino.yamanashi.jp":true,"otsuki.yamanashi.jp":true,"showa.yamanashi.jp":true,"tabayama.yamanashi.jp":true,"tsuru.yamanashi.jp":true,"uenohara.yamanashi.jp":true,"yamanakako.yamanashi.jp":true,"yamanashi.yamanashi.jp":true,"ke":true,"ac.ke":true,"co.ke":true,"go.ke":true,"info.ke":true,"me.ke":true,"mobi.ke":true,"ne.ke":true,"or.ke":true,"sc.ke":true,"kg":true,"org.kg":true,"net.kg":true,"com.kg":true,"edu.kg":true,"gov.kg":true,"mil.kg":true,"*.kh":true,"ki":true,"edu.ki":true,"biz.ki":true,"net.ki":true,"org.ki":true,"gov.ki":true,"info.ki":true,"com.ki":true,"km":true,"org.km":true,"nom.km":true,"gov.km":true,"prd.km":true,"tm.km":true,"edu.km":true,"mil.km":true,"ass.km":true,"com.km":true,"coop.km":true,"asso.km":true,"presse.km":true,"medecin.km":true,"notaires.km":true,"pharmaciens.km":true,"veterinaire.km":true,"gouv.km":true,"kn":true,"net.kn":true,"org.kn":true,"edu.kn":true,"gov.kn":true,"kp":true,"com.kp":true,"edu.kp":true,"gov.kp":true,"org.kp":true,"rep.kp":true,"tra.kp":true,"kr":true,"ac.kr":true,"co.kr":true,"es.kr":true,"go.kr":true,"hs.kr":true,"kg.kr":true,"mil.kr":true,"ms.kr":true,"ne.kr":true,"or.kr":true,"pe.kr":true,"re.kr":true,"sc.kr":true,"busan.kr":true,"chungbuk.kr":true,"chungnam.kr":true,"daegu.kr":true,"daejeon.kr":true,"gangwon.kr":true,"gwangju.kr":true,"gyeongbuk.kr":true,"gyeonggi.kr":true,"gyeongnam.kr":true,"incheon.kr":true,"jeju.kr":true,"jeonbuk.kr":true,"jeonnam.kr":true,"seoul.kr":true,"ulsan.kr":true,"*.kw":true,"ky":true,"edu.ky":true,"gov.ky":true,"com.ky":true,"org.ky":true,"net.ky":true,"kz":true,"org.kz":true,"edu.kz":true,"net.kz":true,"gov.kz":true,"mil.kz":true,"com.kz":true,"la":true,"int.la":true,"net.la":true,"info.la":true,"edu.la":true,"gov.la":true,"per.la":true,"com.la":true,"org.la":true,"lb":true,"com.lb":true,"edu.lb":true,"gov.lb":true,"net.lb":true,"org.lb":true,"lc":true,"com.lc":true,"net.lc":true,"co.lc":true,"org.lc":true,"edu.lc":true,"gov.lc":true,"li":true,"lk":true,"gov.lk":true,"sch.lk":true,"net.lk":true,"int.lk":true,"com.lk":true,"org.lk":true,"edu.lk":true,"ngo.lk":true,"soc.lk":true,"web.lk":true,"ltd.lk":true,"assn.lk":true,"grp.lk":true,"hotel.lk":true,"ac.lk":true,"lr":true,"com.lr":true,"edu.lr":true,"gov.lr":true,"org.lr":true,"net.lr":true,"ls":true,"co.ls":true,"org.ls":true,"lt":true,"gov.lt":true,"lu":true,"lv":true,"com.lv":true,"edu.lv":true,"gov.lv":true,"org.lv":true,"mil.lv":true,"id.lv":true,"net.lv":true,"asn.lv":true,"conf.lv":true,"ly":true,"com.ly":true,"net.ly":true,"gov.ly":true,"plc.ly":true,"edu.ly":true,"sch.ly":true,"med.ly":true,"org.ly":true,"id.ly":true,"ma":true,"co.ma":true,"net.ma":true,"gov.ma":true,"org.ma":true,"ac.ma":true,"press.ma":true,"mc":true,"tm.mc":true,"asso.mc":true,"md":true,"me":true,"co.me":true,"net.me":true,"org.me":true,"edu.me":true,"ac.me":true,"gov.me":true,"its.me":true,"priv.me":true,"mg":true,"org.mg":true,"nom.mg":true,"gov.mg":true,"prd.mg":true,"tm.mg":true,"edu.mg":true,"mil.mg":true,"com.mg":true,"co.mg":true,"mh":true,"mil":true,"mk":true,"com.mk":true,"org.mk":true,"net.mk":true,"edu.mk":true,"gov.mk":true,"inf.mk":true,"name.mk":true,"ml":true,"com.ml":true,"edu.ml":true,"gouv.ml":true,"gov.ml":true,"net.ml":true,"org.ml":true,"presse.ml":true,"*.mm":true,"mn":true,"gov.mn":true,"edu.mn":true,"org.mn":true,"mo":true,"com.mo":true,"net.mo":true,"org.mo":true,"edu.mo":true,"gov.mo":true,"mobi":true,"mp":true,"mq":true,"mr":true,"gov.mr":true,"ms":true,"com.ms":true,"edu.ms":true,"gov.ms":true,"net.ms":true,"org.ms":true,"mt":true,"com.mt":true,"edu.mt":true,"net.mt":true,"org.mt":true,"mu":true,"com.mu":true,"net.mu":true,"org.mu":true,"gov.mu":true,"ac.mu":true,"co.mu":true,"or.mu":true,"museum":true,"academy.museum":true,"agriculture.museum":true,"air.museum":true,"airguard.museum":true,"alabama.museum":true,"alaska.museum":true,"amber.museum":true,"ambulance.museum":true,"american.museum":true,"americana.museum":true,"americanantiques.museum":true,"americanart.museum":true,"amsterdam.museum":true,"and.museum":true,"annefrank.museum":true,"anthro.museum":true,"anthropology.museum":true,"antiques.museum":true,"aquarium.museum":true,"arboretum.museum":true,"archaeological.museum":true,"archaeology.museum":true,"architecture.museum":true,"art.museum":true,"artanddesign.museum":true,"artcenter.museum":true,"artdeco.museum":true,"arteducation.museum":true,"artgallery.museum":true,"arts.museum":true,"artsandcrafts.museum":true,"asmatart.museum":true,"assassination.museum":true,"assisi.museum":true,"association.museum":true,"astronomy.museum":true,"atlanta.museum":true,"austin.museum":true,"australia.museum":true,"automotive.museum":true,"aviation.museum":true,"axis.museum":true,"badajoz.museum":true,"baghdad.museum":true,"bahn.museum":true,"bale.museum":true,"baltimore.museum":true,"barcelona.museum":true,"baseball.museum":true,"basel.museum":true,"baths.museum":true,"bauern.museum":true,"beauxarts.museum":true,"beeldengeluid.museum":true,"bellevue.museum":true,"bergbau.museum":true,"berkeley.museum":true,"berlin.museum":true,"bern.museum":true,"bible.museum":true,"bilbao.museum":true,"bill.museum":true,"birdart.museum":true,"birthplace.museum":true,"bonn.museum":true,"boston.museum":true,"botanical.museum":true,"botanicalgarden.museum":true,"botanicgarden.museum":true,"botany.museum":true,"brandywinevalley.museum":true,"brasil.museum":true,"bristol.museum":true,"british.museum":true,"britishcolumbia.museum":true,"broadcast.museum":true,"brunel.museum":true,"brussel.museum":true,"brussels.museum":true,"bruxelles.museum":true,"building.museum":true,"burghof.museum":true,"bus.museum":true,"bushey.museum":true,"cadaques.museum":true,"california.museum":true,"cambridge.museum":true,"can.museum":true,"canada.museum":true,"capebreton.museum":true,"carrier.museum":true,"cartoonart.museum":true,"casadelamoneda.museum":true,"castle.museum":true,"castres.museum":true,"celtic.museum":true,"center.museum":true,"chattanooga.museum":true,"cheltenham.museum":true,"chesapeakebay.museum":true,"chicago.museum":true,"children.museum":true,"childrens.museum":true,"childrensgarden.museum":true,"chiropractic.museum":true,"chocolate.museum":true,"christiansburg.museum":true,"cincinnati.museum":true,"cinema.museum":true,"circus.museum":true,"civilisation.museum":true,"civilization.museum":true,"civilwar.museum":true,"clinton.museum":true,"clock.museum":true,"coal.museum":true,"coastaldefence.museum":true,"cody.museum":true,"coldwar.museum":true,"collection.museum":true,"colonialwilliamsburg.museum":true,"coloradoplateau.museum":true,"columbia.museum":true,"columbus.museum":true,"communication.museum":true,"communications.museum":true,"community.museum":true,"computer.museum":true,"computerhistory.museum":true,"xn--comunicaes-v6a2o.museum":true,"contemporary.museum":true,"contemporaryart.museum":true,"convent.museum":true,"copenhagen.museum":true,"corporation.museum":true,"xn--correios-e-telecomunicaes-ghc29a.museum":true,"corvette.museum":true,"costume.museum":true,"countryestate.museum":true,"county.museum":true,"crafts.museum":true,"cranbrook.museum":true,"creation.museum":true,"cultural.museum":true,"culturalcenter.museum":true,"culture.museum":true,"cyber.museum":true,"cymru.museum":true,"dali.museum":true,"dallas.museum":true,"database.museum":true,"ddr.museum":true,"decorativearts.museum":true,"delaware.museum":true,"delmenhorst.museum":true,"denmark.museum":true,"depot.museum":true,"design.museum":true,"detroit.museum":true,"dinosaur.museum":true,"discovery.museum":true,"dolls.museum":true,"donostia.museum":true,"durham.museum":true,"eastafrica.museum":true,"eastcoast.museum":true,"education.museum":true,"educational.museum":true,"egyptian.museum":true,"eisenbahn.museum":true,"elburg.museum":true,"elvendrell.museum":true,"embroidery.museum":true,"encyclopedic.museum":true,"england.museum":true,"entomology.museum":true,"environment.museum":true,"environmentalconservation.museum":true,"epilepsy.museum":true,"essex.museum":true,"estate.museum":true,"ethnology.museum":true,"exeter.museum":true,"exhibition.museum":true,"family.museum":true,"farm.museum":true,"farmequipment.museum":true,"farmers.museum":true,"farmstead.museum":true,"field.museum":true,"figueres.museum":true,"filatelia.museum":true,"film.museum":true,"fineart.museum":true,"finearts.museum":true,"finland.museum":true,"flanders.museum":true,"florida.museum":true,"force.museum":true,"fortmissoula.museum":true,"fortworth.museum":true,"foundation.museum":true,"francaise.museum":true,"frankfurt.museum":true,"franziskaner.museum":true,"freemasonry.museum":true,"freiburg.museum":true,"fribourg.museum":true,"frog.museum":true,"fundacio.museum":true,"furniture.museum":true,"gallery.museum":true,"garden.museum":true,"gateway.museum":true,"geelvinck.museum":true,"gemological.museum":true,"geology.museum":true,"georgia.museum":true,"giessen.museum":true,"glas.museum":true,"glass.museum":true,"gorge.museum":true,"grandrapids.museum":true,"graz.museum":true,"guernsey.museum":true,"halloffame.museum":true,"hamburg.museum":true,"handson.museum":true,"harvestcelebration.museum":true,"hawaii.museum":true,"health.museum":true,"heimatunduhren.museum":true,"hellas.museum":true,"helsinki.museum":true,"hembygdsforbund.museum":true,"heritage.museum":true,"histoire.museum":true,"historical.museum":true,"historicalsociety.museum":true,"historichouses.museum":true,"historisch.museum":true,"historisches.museum":true,"history.museum":true,"historyofscience.museum":true,"horology.museum":true,"house.museum":true,"humanities.museum":true,"illustration.museum":true,"imageandsound.museum":true,"indian.museum":true,"indiana.museum":true,"indianapolis.museum":true,"indianmarket.museum":true,"intelligence.museum":true,"interactive.museum":true,"iraq.museum":true,"iron.museum":true,"isleofman.museum":true,"jamison.museum":true,"jefferson.museum":true,"jerusalem.museum":true,"jewelry.museum":true,"jewish.museum":true,"jewishart.museum":true,"jfk.museum":true,"journalism.museum":true,"judaica.museum":true,"judygarland.museum":true,"juedisches.museum":true,"juif.museum":true,"karate.museum":true,"karikatur.museum":true,"kids.museum":true,"koebenhavn.museum":true,"koeln.museum":true,"kunst.museum":true,"kunstsammlung.museum":true,"kunstunddesign.museum":true,"labor.museum":true,"labour.museum":true,"lajolla.museum":true,"lancashire.museum":true,"landes.museum":true,"lans.museum":true,"xn--lns-qla.museum":true,"larsson.museum":true,"lewismiller.museum":true,"lincoln.museum":true,"linz.museum":true,"living.museum":true,"livinghistory.museum":true,"localhistory.museum":true,"london.museum":true,"losangeles.museum":true,"louvre.museum":true,"loyalist.museum":true,"lucerne.museum":true,"luxembourg.museum":true,"luzern.museum":true,"mad.museum":true,"madrid.museum":true,"mallorca.museum":true,"manchester.museum":true,"mansion.museum":true,"mansions.museum":true,"manx.museum":true,"marburg.museum":true,"maritime.museum":true,"maritimo.museum":true,"maryland.museum":true,"marylhurst.museum":true,"media.museum":true,"medical.museum":true,"medizinhistorisches.museum":true,"meeres.museum":true,"memorial.museum":true,"mesaverde.museum":true,"michigan.museum":true,"midatlantic.museum":true,"military.museum":true,"mill.museum":true,"miners.museum":true,"mining.museum":true,"minnesota.museum":true,"missile.museum":true,"missoula.museum":true,"modern.museum":true,"moma.museum":true,"money.museum":true,"monmouth.museum":true,"monticello.museum":true,"montreal.museum":true,"moscow.museum":true,"motorcycle.museum":true,"muenchen.museum":true,"muenster.museum":true,"mulhouse.museum":true,"muncie.museum":true,"museet.museum":true,"museumcenter.museum":true,"museumvereniging.museum":true,"music.museum":true,"national.museum":true,"nationalfirearms.museum":true,"nationalheritage.museum":true,"nativeamerican.museum":true,"naturalhistory.museum":true,"naturalhistorymuseum.museum":true,"naturalsciences.museum":true,"nature.museum":true,"naturhistorisches.museum":true,"natuurwetenschappen.museum":true,"naumburg.museum":true,"naval.museum":true,"nebraska.museum":true,"neues.museum":true,"newhampshire.museum":true,"newjersey.museum":true,"newmexico.museum":true,"newport.museum":true,"newspaper.museum":true,"newyork.museum":true,"niepce.museum":true,"norfolk.museum":true,"north.museum":true,"nrw.museum":true,"nuernberg.museum":true,"nuremberg.museum":true,"nyc.museum":true,"nyny.museum":true,"oceanographic.museum":true,"oceanographique.museum":true,"omaha.museum":true,"online.museum":true,"ontario.museum":true,"openair.museum":true,"oregon.museum":true,"oregontrail.museum":true,"otago.museum":true,"oxford.museum":true,"pacific.museum":true,"paderborn.museum":true,"palace.museum":true,"paleo.museum":true,"palmsprings.museum":true,"panama.museum":true,"paris.museum":true,"pasadena.museum":true,"pharmacy.museum":true,"philadelphia.museum":true,"philadelphiaarea.museum":true,"philately.museum":true,"phoenix.museum":true,"photography.museum":true,"pilots.museum":true,"pittsburgh.museum":true,"planetarium.museum":true,"plantation.museum":true,"plants.museum":true,"plaza.museum":true,"portal.museum":true,"portland.museum":true,"portlligat.museum":true,"posts-and-telecommunications.museum":true,"preservation.museum":true,"presidio.museum":true,"press.museum":true,"project.museum":true,"public.museum":true,"pubol.museum":true,"quebec.museum":true,"railroad.museum":true,"railway.museum":true,"research.museum":true,"resistance.museum":true,"riodejaneiro.museum":true,"rochester.museum":true,"rockart.museum":true,"roma.museum":true,"russia.museum":true,"saintlouis.museum":true,"salem.museum":true,"salvadordali.museum":true,"salzburg.museum":true,"sandiego.museum":true,"sanfrancisco.museum":true,"santabarbara.museum":true,"santacruz.museum":true,"santafe.museum":true,"saskatchewan.museum":true,"satx.museum":true,"savannahga.museum":true,"schlesisches.museum":true,"schoenbrunn.museum":true,"schokoladen.museum":true,"school.museum":true,"schweiz.museum":true,"science.museum":true,"scienceandhistory.museum":true,"scienceandindustry.museum":true,"sciencecenter.museum":true,"sciencecenters.museum":true,"science-fiction.museum":true,"sciencehistory.museum":true,"sciences.museum":true,"sciencesnaturelles.museum":true,"scotland.museum":true,"seaport.museum":true,"settlement.museum":true,"settlers.museum":true,"shell.museum":true,"sherbrooke.museum":true,"sibenik.museum":true,"silk.museum":true,"ski.museum":true,"skole.museum":true,"society.museum":true,"sologne.museum":true,"soundandvision.museum":true,"southcarolina.museum":true,"southwest.museum":true,"space.museum":true,"spy.museum":true,"square.museum":true,"stadt.museum":true,"stalbans.museum":true,"starnberg.museum":true,"state.museum":true,"stateofdelaware.museum":true,"station.museum":true,"steam.museum":true,"steiermark.museum":true,"stjohn.museum":true,"stockholm.museum":true,"stpetersburg.museum":true,"stuttgart.museum":true,"suisse.museum":true,"surgeonshall.museum":true,"surrey.museum":true,"svizzera.museum":true,"sweden.museum":true,"sydney.museum":true,"tank.museum":true,"tcm.museum":true,"technology.museum":true,"telekommunikation.museum":true,"television.museum":true,"texas.museum":true,"textile.museum":true,"theater.museum":true,"time.museum":true,"timekeeping.museum":true,"topology.museum":true,"torino.museum":true,"touch.museum":true,"town.museum":true,"transport.museum":true,"tree.museum":true,"trolley.museum":true,"trust.museum":true,"trustee.museum":true,"uhren.museum":true,"ulm.museum":true,"undersea.museum":true,"university.museum":true,"usa.museum":true,"usantiques.museum":true,"usarts.museum":true,"uscountryestate.museum":true,"usculture.museum":true,"usdecorativearts.museum":true,"usgarden.museum":true,"ushistory.museum":true,"ushuaia.museum":true,"uslivinghistory.museum":true,"utah.museum":true,"uvic.museum":true,"valley.museum":true,"vantaa.museum":true,"versailles.museum":true,"viking.museum":true,"village.museum":true,"virginia.museum":true,"virtual.museum":true,"virtuel.museum":true,"vlaanderen.museum":true,"volkenkunde.museum":true,"wales.museum":true,"wallonie.museum":true,"war.museum":true,"washingtondc.museum":true,"watchandclock.museum":true,"watch-and-clock.museum":true,"western.museum":true,"westfalen.museum":true,"whaling.museum":true,"wildlife.museum":true,"williamsburg.museum":true,"windmill.museum":true,"workshop.museum":true,"york.museum":true,"yorkshire.museum":true,"yosemite.museum":true,"youth.museum":true,"zoological.museum":true,"zoology.museum":true,"xn--9dbhblg6di.museum":true,"xn--h1aegh.museum":true,"mv":true,"aero.mv":true,"biz.mv":true,"com.mv":true,"coop.mv":true,"edu.mv":true,"gov.mv":true,"info.mv":true,"int.mv":true,"mil.mv":true,"museum.mv":true,"name.mv":true,"net.mv":true,"org.mv":true,"pro.mv":true,"mw":true,"ac.mw":true,"biz.mw":true,"co.mw":true,"com.mw":true,"coop.mw":true,"edu.mw":true,"gov.mw":true,"int.mw":true,"museum.mw":true,"net.mw":true,"org.mw":true,"mx":true,"com.mx":true,"org.mx":true,"gob.mx":true,"edu.mx":true,"net.mx":true,"my":true,"com.my":true,"net.my":true,"org.my":true,"gov.my":true,"edu.my":true,"mil.my":true,"name.my":true,"mz":true,"ac.mz":true,"adv.mz":true,"co.mz":true,"edu.mz":true,"gov.mz":true,"mil.mz":true,"net.mz":true,"org.mz":true,"na":true,"info.na":true,"pro.na":true,"name.na":true,"school.na":true,"or.na":true,"dr.na":true,"us.na":true,"mx.na":true,"ca.na":true,"in.na":true,"cc.na":true,"tv.na":true,"ws.na":true,"mobi.na":true,"co.na":true,"com.na":true,"org.na":true,"name":true,"nc":true,"asso.nc":true,"nom.nc":true,"ne":true,"net":true,"nf":true,"com.nf":true,"net.nf":true,"per.nf":true,"rec.nf":true,"web.nf":true,"arts.nf":true,"firm.nf":true,"info.nf":true,"other.nf":true,"store.nf":true,"ng":true,"com.ng":true,"edu.ng":true,"gov.ng":true,"i.ng":true,"mil.ng":true,"mobi.ng":true,"name.ng":true,"net.ng":true,"org.ng":true,"sch.ng":true,"ni":true,"ac.ni":true,"biz.ni":true,"co.ni":true,"com.ni":true,"edu.ni":true,"gob.ni":true,"in.ni":true,"info.ni":true,"int.ni":true,"mil.ni":true,"net.ni":true,"nom.ni":true,"org.ni":true,"web.ni":true,"nl":true,"bv.nl":true,"no":true,"fhs.no":true,"vgs.no":true,"fylkesbibl.no":true,"folkebibl.no":true,"museum.no":true,"idrett.no":true,"priv.no":true,"mil.no":true,"stat.no":true,"dep.no":true,"kommune.no":true,"herad.no":true,"aa.no":true,"ah.no":true,"bu.no":true,"fm.no":true,"hl.no":true,"hm.no":true,"jan-mayen.no":true,"mr.no":true,"nl.no":true,"nt.no":true,"of.no":true,"ol.no":true,"oslo.no":true,"rl.no":true,"sf.no":true,"st.no":true,"svalbard.no":true,"tm.no":true,"tr.no":true,"va.no":true,"vf.no":true,"gs.aa.no":true,"gs.ah.no":true,"gs.bu.no":true,"gs.fm.no":true,"gs.hl.no":true,"gs.hm.no":true,"gs.jan-mayen.no":true,"gs.mr.no":true,"gs.nl.no":true,"gs.nt.no":true,"gs.of.no":true,"gs.ol.no":true,"gs.oslo.no":true,"gs.rl.no":true,"gs.sf.no":true,"gs.st.no":true,"gs.svalbard.no":true,"gs.tm.no":true,"gs.tr.no":true,"gs.va.no":true,"gs.vf.no":true,"akrehamn.no":true,"xn--krehamn-dxa.no":true,"algard.no":true,"xn--lgrd-poac.no":true,"arna.no":true,"brumunddal.no":true,"bryne.no":true,"bronnoysund.no":true,"xn--brnnysund-m8ac.no":true,"drobak.no":true,"xn--drbak-wua.no":true,"egersund.no":true,"fetsund.no":true,"floro.no":true,"xn--flor-jra.no":true,"fredrikstad.no":true,"hokksund.no":true,"honefoss.no":true,"xn--hnefoss-q1a.no":true,"jessheim.no":true,"jorpeland.no":true,"xn--jrpeland-54a.no":true,"kirkenes.no":true,"kopervik.no":true,"krokstadelva.no":true,"langevag.no":true,"xn--langevg-jxa.no":true,"leirvik.no":true,"mjondalen.no":true,"xn--mjndalen-64a.no":true,"mo-i-rana.no":true,"mosjoen.no":true,"xn--mosjen-eya.no":true,"nesoddtangen.no":true,"orkanger.no":true,"osoyro.no":true,"xn--osyro-wua.no":true,"raholt.no":true,"xn--rholt-mra.no":true,"sandnessjoen.no":true,"xn--sandnessjen-ogb.no":true,"skedsmokorset.no":true,"slattum.no":true,"spjelkavik.no":true,"stathelle.no":true,"stavern.no":true,"stjordalshalsen.no":true,"xn--stjrdalshalsen-sqb.no":true,"tananger.no":true,"tranby.no":true,"vossevangen.no":true,"afjord.no":true,"xn--fjord-lra.no":true,"agdenes.no":true,"al.no":true,"xn--l-1fa.no":true,"alesund.no":true,"xn--lesund-hua.no":true,"alstahaug.no":true,"alta.no":true,"xn--lt-liac.no":true,"alaheadju.no":true,"xn--laheadju-7ya.no":true,"alvdal.no":true,"amli.no":true,"xn--mli-tla.no":true,"amot.no":true,"xn--mot-tla.no":true,"andebu.no":true,"andoy.no":true,"xn--andy-ira.no":true,"andasuolo.no":true,"ardal.no":true,"xn--rdal-poa.no":true,"aremark.no":true,"arendal.no":true,"xn--s-1fa.no":true,"aseral.no":true,"xn--seral-lra.no":true,"asker.no":true,"askim.no":true,"askvoll.no":true,"askoy.no":true,"xn--asky-ira.no":true,"asnes.no":true,"xn--snes-poa.no":true,"audnedaln.no":true,"aukra.no":true,"aure.no":true,"aurland.no":true,"aurskog-holand.no":true,"xn--aurskog-hland-jnb.no":true,"austevoll.no":true,"austrheim.no":true,"averoy.no":true,"xn--avery-yua.no":true,"balestrand.no":true,"ballangen.no":true,"balat.no":true,"xn--blt-elab.no":true,"balsfjord.no":true,"bahccavuotna.no":true,"xn--bhccavuotna-k7a.no":true,"bamble.no":true,"bardu.no":true,"beardu.no":true,"beiarn.no":true,"bajddar.no":true,"xn--bjddar-pta.no":true,"baidar.no":true,"xn--bidr-5nac.no":true,"berg.no":true,"bergen.no":true,"berlevag.no":true,"xn--berlevg-jxa.no":true,"bearalvahki.no":true,"xn--bearalvhki-y4a.no":true,"bindal.no":true,"birkenes.no":true,"bjarkoy.no":true,"xn--bjarky-fya.no":true,"bjerkreim.no":true,"bjugn.no":true,"bodo.no":true,"xn--bod-2na.no":true,"badaddja.no":true,"xn--bdddj-mrabd.no":true,"budejju.no":true,"bokn.no":true,"bremanger.no":true,"bronnoy.no":true,"xn--brnny-wuac.no":true,"bygland.no":true,"bykle.no":true,"barum.no":true,"xn--brum-voa.no":true,"bo.telemark.no":true,"xn--b-5ga.telemark.no":true,"bo.nordland.no":true,"xn--b-5ga.nordland.no":true,"bievat.no":true,"xn--bievt-0qa.no":true,"bomlo.no":true,"xn--bmlo-gra.no":true,"batsfjord.no":true,"xn--btsfjord-9za.no":true,"bahcavuotna.no":true,"xn--bhcavuotna-s4a.no":true,"dovre.no":true,"drammen.no":true,"drangedal.no":true,"dyroy.no":true,"xn--dyry-ira.no":true,"donna.no":true,"xn--dnna-gra.no":true,"eid.no":true,"eidfjord.no":true,"eidsberg.no":true,"eidskog.no":true,"eidsvoll.no":true,"eigersund.no":true,"elverum.no":true,"enebakk.no":true,"engerdal.no":true,"etne.no":true,"etnedal.no":true,"evenes.no":true,"evenassi.no":true,"xn--eveni-0qa01ga.no":true,"evje-og-hornnes.no":true,"farsund.no":true,"fauske.no":true,"fuossko.no":true,"fuoisku.no":true,"fedje.no":true,"fet.no":true,"finnoy.no":true,"xn--finny-yua.no":true,"fitjar.no":true,"fjaler.no":true,"fjell.no":true,"flakstad.no":true,"flatanger.no":true,"flekkefjord.no":true,"flesberg.no":true,"flora.no":true,"fla.no":true,"xn--fl-zia.no":true,"folldal.no":true,"forsand.no":true,"fosnes.no":true,"frei.no":true,"frogn.no":true,"froland.no":true,"frosta.no":true,"frana.no":true,"xn--frna-woa.no":true,"froya.no":true,"xn--frya-hra.no":true,"fusa.no":true,"fyresdal.no":true,"forde.no":true,"xn--frde-gra.no":true,"gamvik.no":true,"gangaviika.no":true,"xn--ggaviika-8ya47h.no":true,"gaular.no":true,"gausdal.no":true,"gildeskal.no":true,"xn--gildeskl-g0a.no":true,"giske.no":true,"gjemnes.no":true,"gjerdrum.no":true,"gjerstad.no":true,"gjesdal.no":true,"gjovik.no":true,"xn--gjvik-wua.no":true,"gloppen.no":true,"gol.no":true,"gran.no":true,"grane.no":true,"granvin.no":true,"gratangen.no":true,"grimstad.no":true,"grong.no":true,"kraanghke.no":true,"xn--kranghke-b0a.no":true,"grue.no":true,"gulen.no":true,"hadsel.no":true,"halden.no":true,"halsa.no":true,"hamar.no":true,"hamaroy.no":true,"habmer.no":true,"xn--hbmer-xqa.no":true,"hapmir.no":true,"xn--hpmir-xqa.no":true,"hammerfest.no":true,"hammarfeasta.no":true,"xn--hmmrfeasta-s4ac.no":true,"haram.no":true,"hareid.no":true,"harstad.no":true,"hasvik.no":true,"aknoluokta.no":true,"xn--koluokta-7ya57h.no":true,"hattfjelldal.no":true,"aarborte.no":true,"haugesund.no":true,"hemne.no":true,"hemnes.no":true,"hemsedal.no":true,"heroy.more-og-romsdal.no":true,"xn--hery-ira.xn--mre-og-romsdal-qqb.no":true,"heroy.nordland.no":true,"xn--hery-ira.nordland.no":true,"hitra.no":true,"hjartdal.no":true,"hjelmeland.no":true,"hobol.no":true,"xn--hobl-ira.no":true,"hof.no":true,"hol.no":true,"hole.no":true,"holmestrand.no":true,"holtalen.no":true,"xn--holtlen-hxa.no":true,"hornindal.no":true,"horten.no":true,"hurdal.no":true,"hurum.no":true,"hvaler.no":true,"hyllestad.no":true,"hagebostad.no":true,"xn--hgebostad-g3a.no":true,"hoyanger.no":true,"xn--hyanger-q1a.no":true,"hoylandet.no":true,"xn--hylandet-54a.no":true,"ha.no":true,"xn--h-2fa.no":true,"ibestad.no":true,"inderoy.no":true,"xn--indery-fya.no":true,"iveland.no":true,"jevnaker.no":true,"jondal.no":true,"jolster.no":true,"xn--jlster-bya.no":true,"karasjok.no":true,"karasjohka.no":true,"xn--krjohka-hwab49j.no":true,"karlsoy.no":true,"galsa.no":true,"xn--gls-elac.no":true,"karmoy.no":true,"xn--karmy-yua.no":true,"kautokeino.no":true,"guovdageaidnu.no":true,"klepp.no":true,"klabu.no":true,"xn--klbu-woa.no":true,"kongsberg.no":true,"kongsvinger.no":true,"kragero.no":true,"xn--krager-gya.no":true,"kristiansand.no":true,"kristiansund.no":true,"krodsherad.no":true,"xn--krdsherad-m8a.no":true,"kvalsund.no":true,"rahkkeravju.no":true,"xn--rhkkervju-01af.no":true,"kvam.no":true,"kvinesdal.no":true,"kvinnherad.no":true,"kviteseid.no":true,"kvitsoy.no":true,"xn--kvitsy-fya.no":true,"kvafjord.no":true,"xn--kvfjord-nxa.no":true,"giehtavuoatna.no":true,"kvanangen.no":true,"xn--kvnangen-k0a.no":true,"navuotna.no":true,"xn--nvuotna-hwa.no":true,"kafjord.no":true,"xn--kfjord-iua.no":true,"gaivuotna.no":true,"xn--givuotna-8ya.no":true,"larvik.no":true,"lavangen.no":true,"lavagis.no":true,"loabat.no":true,"xn--loabt-0qa.no":true,"lebesby.no":true,"davvesiida.no":true,"leikanger.no":true,"leirfjord.no":true,"leka.no":true,"leksvik.no":true,"lenvik.no":true,"leangaviika.no":true,"xn--leagaviika-52b.no":true,"lesja.no":true,"levanger.no":true,"lier.no":true,"lierne.no":true,"lillehammer.no":true,"lillesand.no":true,"lindesnes.no":true,"lindas.no":true,"xn--linds-pra.no":true,"lom.no":true,"loppa.no":true,"lahppi.no":true,"xn--lhppi-xqa.no":true,"lund.no":true,"lunner.no":true,"luroy.no":true,"xn--lury-ira.no":true,"luster.no":true,"lyngdal.no":true,"lyngen.no":true,"ivgu.no":true,"lardal.no":true,"lerdal.no":true,"xn--lrdal-sra.no":true,"lodingen.no":true,"xn--ldingen-q1a.no":true,"lorenskog.no":true,"xn--lrenskog-54a.no":true,"loten.no":true,"xn--lten-gra.no":true,"malvik.no":true,"masoy.no":true,"xn--msy-ula0h.no":true,"muosat.no":true,"xn--muost-0qa.no":true,"mandal.no":true,"marker.no":true,"marnardal.no":true,"masfjorden.no":true,"meland.no":true,"meldal.no":true,"melhus.no":true,"meloy.no":true,"xn--mely-ira.no":true,"meraker.no":true,"xn--merker-kua.no":true,"moareke.no":true,"xn--moreke-jua.no":true,"midsund.no":true,"midtre-gauldal.no":true,"modalen.no":true,"modum.no":true,"molde.no":true,"moskenes.no":true,"moss.no":true,"mosvik.no":true,"malselv.no":true,"xn--mlselv-iua.no":true,"malatvuopmi.no":true,"xn--mlatvuopmi-s4a.no":true,"namdalseid.no":true,"aejrie.no":true,"namsos.no":true,"namsskogan.no":true,"naamesjevuemie.no":true,"xn--nmesjevuemie-tcba.no":true,"laakesvuemie.no":true,"nannestad.no":true,"narvik.no":true,"narviika.no":true,"naustdal.no":true,"nedre-eiker.no":true,"nes.akershus.no":true,"nes.buskerud.no":true,"nesna.no":true,"nesodden.no":true,"nesseby.no":true,"unjarga.no":true,"xn--unjrga-rta.no":true,"nesset.no":true,"nissedal.no":true,"nittedal.no":true,"nord-aurdal.no":true,"nord-fron.no":true,"nord-odal.no":true,"norddal.no":true,"nordkapp.no":true,"davvenjarga.no":true,"xn--davvenjrga-y4a.no":true,"nordre-land.no":true,"nordreisa.no":true,"raisa.no":true,"xn--risa-5na.no":true,"nore-og-uvdal.no":true,"notodden.no":true,"naroy.no":true,"xn--nry-yla5g.no":true,"notteroy.no":true,"xn--nttery-byae.no":true,"odda.no":true,"oksnes.no":true,"xn--ksnes-uua.no":true,"oppdal.no":true,"oppegard.no":true,"xn--oppegrd-ixa.no":true,"orkdal.no":true,"orland.no":true,"xn--rland-uua.no":true,"orskog.no":true,"xn--rskog-uua.no":true,"orsta.no":true,"xn--rsta-fra.no":true,"os.hedmark.no":true,"os.hordaland.no":true,"osen.no":true,"osteroy.no":true,"xn--ostery-fya.no":true,"ostre-toten.no":true,"xn--stre-toten-zcb.no":true,"overhalla.no":true,"ovre-eiker.no":true,"xn--vre-eiker-k8a.no":true,"oyer.no":true,"xn--yer-zna.no":true,"oygarden.no":true,"xn--ygarden-p1a.no":true,"oystre-slidre.no":true,"xn--ystre-slidre-ujb.no":true,"porsanger.no":true,"porsangu.no":true,"xn--porsgu-sta26f.no":true,"porsgrunn.no":true,"radoy.no":true,"xn--rady-ira.no":true,"rakkestad.no":true,"rana.no":true,"ruovat.no":true,"randaberg.no":true,"rauma.no":true,"rendalen.no":true,"rennebu.no":true,"rennesoy.no":true,"xn--rennesy-v1a.no":true,"rindal.no":true,"ringebu.no":true,"ringerike.no":true,"ringsaker.no":true,"rissa.no":true,"risor.no":true,"xn--risr-ira.no":true,"roan.no":true,"rollag.no":true,"rygge.no":true,"ralingen.no":true,"xn--rlingen-mxa.no":true,"rodoy.no":true,"xn--rdy-0nab.no":true,"romskog.no":true,"xn--rmskog-bya.no":true,"roros.no":true,"xn--rros-gra.no":true,"rost.no":true,"xn--rst-0na.no":true,"royken.no":true,"xn--ryken-vua.no":true,"royrvik.no":true,"xn--ryrvik-bya.no":true,"rade.no":true,"xn--rde-ula.no":true,"salangen.no":true,"siellak.no":true,"saltdal.no":true,"salat.no":true,"xn--slt-elab.no":true,"xn--slat-5na.no":true,"samnanger.no":true,"sande.more-og-romsdal.no":true,"sande.xn--mre-og-romsdal-qqb.no":true,"sande.vestfold.no":true,"sandefjord.no":true,"sandnes.no":true,"sandoy.no":true,"xn--sandy-yua.no":true,"sarpsborg.no":true,"sauda.no":true,"sauherad.no":true,"sel.no":true,"selbu.no":true,"selje.no":true,"seljord.no":true,"sigdal.no":true,"siljan.no":true,"sirdal.no":true,"skaun.no":true,"skedsmo.no":true,"ski.no":true,"skien.no":true,"skiptvet.no":true,"skjervoy.no":true,"xn--skjervy-v1a.no":true,"skierva.no":true,"xn--skierv-uta.no":true,"skjak.no":true,"xn--skjk-soa.no":true,"skodje.no":true,"skanland.no":true,"xn--sknland-fxa.no":true,"skanit.no":true,"xn--sknit-yqa.no":true,"smola.no":true,"xn--smla-hra.no":true,"snillfjord.no":true,"snasa.no":true,"xn--snsa-roa.no":true,"snoasa.no":true,"snaase.no":true,"xn--snase-nra.no":true,"sogndal.no":true,"sokndal.no":true,"sola.no":true,"solund.no":true,"songdalen.no":true,"sortland.no":true,"spydeberg.no":true,"stange.no":true,"stavanger.no":true,"steigen.no":true,"steinkjer.no":true,"stjordal.no":true,"xn--stjrdal-s1a.no":true,"stokke.no":true,"stor-elvdal.no":true,"stord.no":true,"stordal.no":true,"storfjord.no":true,"omasvuotna.no":true,"strand.no":true,"stranda.no":true,"stryn.no":true,"sula.no":true,"suldal.no":true,"sund.no":true,"sunndal.no":true,"surnadal.no":true,"sveio.no":true,"svelvik.no":true,"sykkylven.no":true,"sogne.no":true,"xn--sgne-gra.no":true,"somna.no":true,"xn--smna-gra.no":true,"sondre-land.no":true,"xn--sndre-land-0cb.no":true,"sor-aurdal.no":true,"xn--sr-aurdal-l8a.no":true,"sor-fron.no":true,"xn--sr-fron-q1a.no":true,"sor-odal.no":true,"xn--sr-odal-q1a.no":true,"sor-varanger.no":true,"xn--sr-varanger-ggb.no":true,"matta-varjjat.no":true,"xn--mtta-vrjjat-k7af.no":true,"sorfold.no":true,"xn--srfold-bya.no":true,"sorreisa.no":true,"xn--srreisa-q1a.no":true,"sorum.no":true,"xn--srum-gra.no":true,"tana.no":true,"deatnu.no":true,"time.no":true,"tingvoll.no":true,"tinn.no":true,"tjeldsund.no":true,"dielddanuorri.no":true,"tjome.no":true,"xn--tjme-hra.no":true,"tokke.no":true,"tolga.no":true,"torsken.no":true,"tranoy.no":true,"xn--trany-yua.no":true,"tromso.no":true,"xn--troms-zua.no":true,"tromsa.no":true,"romsa.no":true,"trondheim.no":true,"troandin.no":true,"trysil.no":true,"trana.no":true,"xn--trna-woa.no":true,"trogstad.no":true,"xn--trgstad-r1a.no":true,"tvedestrand.no":true,"tydal.no":true,"tynset.no":true,"tysfjord.no":true,"divtasvuodna.no":true,"divttasvuotna.no":true,"tysnes.no":true,"tysvar.no":true,"xn--tysvr-vra.no":true,"tonsberg.no":true,"xn--tnsberg-q1a.no":true,"ullensaker.no":true,"ullensvang.no":true,"ulvik.no":true,"utsira.no":true,"vadso.no":true,"xn--vads-jra.no":true,"cahcesuolo.no":true,"xn--hcesuolo-7ya35b.no":true,"vaksdal.no":true,"valle.no":true,"vang.no":true,"vanylven.no":true,"vardo.no":true,"xn--vard-jra.no":true,"varggat.no":true,"xn--vrggt-xqad.no":true,"vefsn.no":true,"vaapste.no":true,"vega.no":true,"vegarshei.no":true,"xn--vegrshei-c0a.no":true,"vennesla.no":true,"verdal.no":true,"verran.no":true,"vestby.no":true,"vestnes.no":true,"vestre-slidre.no":true,"vestre-toten.no":true,"vestvagoy.no":true,"xn--vestvgy-ixa6o.no":true,"vevelstad.no":true,"vik.no":true,"vikna.no":true,"vindafjord.no":true,"volda.no":true,"voss.no":true,"varoy.no":true,"xn--vry-yla5g.no":true,"vagan.no":true,"xn--vgan-qoa.no":true,"voagat.no":true,"vagsoy.no":true,"xn--vgsy-qoa0j.no":true,"vaga.no":true,"xn--vg-yiab.no":true,"valer.ostfold.no":true,"xn--vler-qoa.xn--stfold-9xa.no":true,"valer.hedmark.no":true,"xn--vler-qoa.hedmark.no":true,"*.np":true,"nr":true,"biz.nr":true,"info.nr":true,"gov.nr":true,"edu.nr":true,"org.nr":true,"net.nr":true,"com.nr":true,"nu":true,"nz":true,"ac.nz":true,"co.nz":true,"cri.nz":true,"geek.nz":true,"gen.nz":true,"govt.nz":true,"health.nz":true,"iwi.nz":true,"kiwi.nz":true,"maori.nz":true,"mil.nz":true,"xn--mori-qsa.nz":true,"net.nz":true,"org.nz":true,"parliament.nz":true,"school.nz":true,"om":true,"co.om":true,"com.om":true,"edu.om":true,"gov.om":true,"med.om":true,"museum.om":true,"net.om":true,"org.om":true,"pro.om":true,"onion":true,"org":true,"pa":true,"ac.pa":true,"gob.pa":true,"com.pa":true,"org.pa":true,"sld.pa":true,"edu.pa":true,"net.pa":true,"ing.pa":true,"abo.pa":true,"med.pa":true,"nom.pa":true,"pe":true,"edu.pe":true,"gob.pe":true,"nom.pe":true,"mil.pe":true,"org.pe":true,"com.pe":true,"net.pe":true,"pf":true,"com.pf":true,"org.pf":true,"edu.pf":true,"*.pg":true,"ph":true,"com.ph":true,"net.ph":true,"org.ph":true,"gov.ph":true,"edu.ph":true,"ngo.ph":true,"mil.ph":true,"i.ph":true,"pk":true,"com.pk":true,"net.pk":true,"edu.pk":true,"org.pk":true,"fam.pk":true,"biz.pk":true,"web.pk":true,"gov.pk":true,"gob.pk":true,"gok.pk":true,"gon.pk":true,"gop.pk":true,"gos.pk":true,"info.pk":true,"pl":true,"com.pl":true,"net.pl":true,"org.pl":true,"aid.pl":true,"agro.pl":true,"atm.pl":true,"auto.pl":true,"biz.pl":true,"edu.pl":true,"gmina.pl":true,"gsm.pl":true,"info.pl":true,"mail.pl":true,"miasta.pl":true,"media.pl":true,"mil.pl":true,"nieruchomosci.pl":true,"nom.pl":true,"pc.pl":true,"powiat.pl":true,"priv.pl":true,"realestate.pl":true,"rel.pl":true,"sex.pl":true,"shop.pl":true,"sklep.pl":true,"sos.pl":true,"szkola.pl":true,"targi.pl":true,"tm.pl":true,"tourism.pl":true,"travel.pl":true,"turystyka.pl":true,"gov.pl":true,"ap.gov.pl":true,"ic.gov.pl":true,"is.gov.pl":true,"us.gov.pl":true,"kmpsp.gov.pl":true,"kppsp.gov.pl":true,"kwpsp.gov.pl":true,"psp.gov.pl":true,"wskr.gov.pl":true,"kwp.gov.pl":true,"mw.gov.pl":true,"ug.gov.pl":true,"um.gov.pl":true,"umig.gov.pl":true,"ugim.gov.pl":true,"upow.gov.pl":true,"uw.gov.pl":true,"starostwo.gov.pl":true,"pa.gov.pl":true,"po.gov.pl":true,"psse.gov.pl":true,"pup.gov.pl":true,"rzgw.gov.pl":true,"sa.gov.pl":true,"so.gov.pl":true,"sr.gov.pl":true,"wsa.gov.pl":true,"sko.gov.pl":true,"uzs.gov.pl":true,"wiih.gov.pl":true,"winb.gov.pl":true,"pinb.gov.pl":true,"wios.gov.pl":true,"witd.gov.pl":true,"wzmiuw.gov.pl":true,"piw.gov.pl":true,"wiw.gov.pl":true,"griw.gov.pl":true,"wif.gov.pl":true,"oum.gov.pl":true,"sdn.gov.pl":true,"zp.gov.pl":true,"uppo.gov.pl":true,"mup.gov.pl":true,"wuoz.gov.pl":true,"konsulat.gov.pl":true,"oirm.gov.pl":true,"augustow.pl":true,"babia-gora.pl":true,"bedzin.pl":true,"beskidy.pl":true,"bialowieza.pl":true,"bialystok.pl":true,"bielawa.pl":true,"bieszczady.pl":true,"boleslawiec.pl":true,"bydgoszcz.pl":true,"bytom.pl":true,"cieszyn.pl":true,"czeladz.pl":true,"czest.pl":true,"dlugoleka.pl":true,"elblag.pl":true,"elk.pl":true,"glogow.pl":true,"gniezno.pl":true,"gorlice.pl":true,"grajewo.pl":true,"ilawa.pl":true,"jaworzno.pl":true,"jelenia-gora.pl":true,"jgora.pl":true,"kalisz.pl":true,"kazimierz-dolny.pl":true,"karpacz.pl":true,"kartuzy.pl":true,"kaszuby.pl":true,"katowice.pl":true,"kepno.pl":true,"ketrzyn.pl":true,"klodzko.pl":true,"kobierzyce.pl":true,"kolobrzeg.pl":true,"konin.pl":true,"konskowola.pl":true,"kutno.pl":true,"lapy.pl":true,"lebork.pl":true,"legnica.pl":true,"lezajsk.pl":true,"limanowa.pl":true,"lomza.pl":true,"lowicz.pl":true,"lubin.pl":true,"lukow.pl":true,"malbork.pl":true,"malopolska.pl":true,"mazowsze.pl":true,"mazury.pl":true,"mielec.pl":true,"mielno.pl":true,"mragowo.pl":true,"naklo.pl":true,"nowaruda.pl":true,"nysa.pl":true,"olawa.pl":true,"olecko.pl":true,"olkusz.pl":true,"olsztyn.pl":true,"opoczno.pl":true,"opole.pl":true,"ostroda.pl":true,"ostroleka.pl":true,"ostrowiec.pl":true,"ostrowwlkp.pl":true,"pila.pl":true,"pisz.pl":true,"podhale.pl":true,"podlasie.pl":true,"polkowice.pl":true,"pomorze.pl":true,"pomorskie.pl":true,"prochowice.pl":true,"pruszkow.pl":true,"przeworsk.pl":true,"pulawy.pl":true,"radom.pl":true,"rawa-maz.pl":true,"rybnik.pl":true,"rzeszow.pl":true,"sanok.pl":true,"sejny.pl":true,"slask.pl":true,"slupsk.pl":true,"sosnowiec.pl":true,"stalowa-wola.pl":true,"skoczow.pl":true,"starachowice.pl":true,"stargard.pl":true,"suwalki.pl":true,"swidnica.pl":true,"swiebodzin.pl":true,"swinoujscie.pl":true,"szczecin.pl":true,"szczytno.pl":true,"tarnobrzeg.pl":true,"tgory.pl":true,"turek.pl":true,"tychy.pl":true,"ustka.pl":true,"walbrzych.pl":true,"warmia.pl":true,"warszawa.pl":true,"waw.pl":true,"wegrow.pl":true,"wielun.pl":true,"wlocl.pl":true,"wloclawek.pl":true,"wodzislaw.pl":true,"wolomin.pl":true,"wroclaw.pl":true,"zachpomor.pl":true,"zagan.pl":true,"zarow.pl":true,"zgora.pl":true,"zgorzelec.pl":true,"pm":true,"pn":true,"gov.pn":true,"co.pn":true,"org.pn":true,"edu.pn":true,"net.pn":true,"post":true,"pr":true,"com.pr":true,"net.pr":true,"org.pr":true,"gov.pr":true,"edu.pr":true,"isla.pr":true,"pro.pr":true,"biz.pr":true,"info.pr":true,"name.pr":true,"est.pr":true,"prof.pr":true,"ac.pr":true,"pro":true,"aaa.pro":true,"aca.pro":true,"acct.pro":true,"avocat.pro":true,"bar.pro":true,"cpa.pro":true,"eng.pro":true,"jur.pro":true,"law.pro":true,"med.pro":true,"recht.pro":true,"ps":true,"edu.ps":true,"gov.ps":true,"sec.ps":true,"plo.ps":true,"com.ps":true,"org.ps":true,"net.ps":true,"pt":true,"net.pt":true,"gov.pt":true,"org.pt":true,"edu.pt":true,"int.pt":true,"publ.pt":true,"com.pt":true,"nome.pt":true,"pw":true,"co.pw":true,"ne.pw":true,"or.pw":true,"ed.pw":true,"go.pw":true,"belau.pw":true,"py":true,"com.py":true,"coop.py":true,"edu.py":true,"gov.py":true,"mil.py":true,"net.py":true,"org.py":true,"qa":true,"com.qa":true,"edu.qa":true,"gov.qa":true,"mil.qa":true,"name.qa":true,"net.qa":true,"org.qa":true,"sch.qa":true,"re":true,"asso.re":true,"com.re":true,"nom.re":true,"ro":true,"arts.ro":true,"com.ro":true,"firm.ro":true,"info.ro":true,"nom.ro":true,"nt.ro":true,"org.ro":true,"rec.ro":true,"store.ro":true,"tm.ro":true,"www.ro":true,"rs":true,"ac.rs":true,"co.rs":true,"edu.rs":true,"gov.rs":true,"in.rs":true,"org.rs":true,"ru":true,"ac.ru":true,"edu.ru":true,"gov.ru":true,"int.ru":true,"mil.ru":true,"test.ru":true,"rw":true,"gov.rw":true,"net.rw":true,"edu.rw":true,"ac.rw":true,"com.rw":true,"co.rw":true,"int.rw":true,"mil.rw":true,"gouv.rw":true,"sa":true,"com.sa":true,"net.sa":true,"org.sa":true,"gov.sa":true,"med.sa":true,"pub.sa":true,"edu.sa":true,"sch.sa":true,"sb":true,"com.sb":true,"edu.sb":true,"gov.sb":true,"net.sb":true,"org.sb":true,"sc":true,"com.sc":true,"gov.sc":true,"net.sc":true,"org.sc":true,"edu.sc":true,"sd":true,"com.sd":true,"net.sd":true,"org.sd":true,"edu.sd":true,"med.sd":true,"tv.sd":true,"gov.sd":true,"info.sd":true,"se":true,"a.se":true,"ac.se":true,"b.se":true,"bd.se":true,"brand.se":true,"c.se":true,"d.se":true,"e.se":true,"f.se":true,"fh.se":true,"fhsk.se":true,"fhv.se":true,"g.se":true,"h.se":true,"i.se":true,"k.se":true,"komforb.se":true,"kommunalforbund.se":true,"komvux.se":true,"l.se":true,"lanbib.se":true,"m.se":true,"n.se":true,"naturbruksgymn.se":true,"o.se":true,"org.se":true,"p.se":true,"parti.se":true,"pp.se":true,"press.se":true,"r.se":true,"s.se":true,"t.se":true,"tm.se":true,"u.se":true,"w.se":true,"x.se":true,"y.se":true,"z.se":true,"sg":true,"com.sg":true,"net.sg":true,"org.sg":true,"gov.sg":true,"edu.sg":true,"per.sg":true,"sh":true,"com.sh":true,"net.sh":true,"gov.sh":true,"org.sh":true,"mil.sh":true,"si":true,"sj":true,"sk":true,"sl":true,"com.sl":true,"net.sl":true,"edu.sl":true,"gov.sl":true,"org.sl":true,"sm":true,"sn":true,"art.sn":true,"com.sn":true,"edu.sn":true,"gouv.sn":true,"org.sn":true,"perso.sn":true,"univ.sn":true,"so":true,"com.so":true,"net.so":true,"org.so":true,"sr":true,"st":true,"co.st":true,"com.st":true,"consulado.st":true,"edu.st":true,"embaixada.st":true,"gov.st":true,"mil.st":true,"net.st":true,"org.st":true,"principe.st":true,"saotome.st":true,"store.st":true,"su":true,"sv":true,"com.sv":true,"edu.sv":true,"gob.sv":true,"org.sv":true,"red.sv":true,"sx":true,"gov.sx":true,"sy":true,"edu.sy":true,"gov.sy":true,"net.sy":true,"mil.sy":true,"com.sy":true,"org.sy":true,"sz":true,"co.sz":true,"ac.sz":true,"org.sz":true,"tc":true,"td":true,"tel":true,"tf":true,"tg":true,"th":true,"ac.th":true,"co.th":true,"go.th":true,"in.th":true,"mi.th":true,"net.th":true,"or.th":true,"tj":true,"ac.tj":true,"biz.tj":true,"co.tj":true,"com.tj":true,"edu.tj":true,"go.tj":true,"gov.tj":true,"int.tj":true,"mil.tj":true,"name.tj":true,"net.tj":true,"nic.tj":true,"org.tj":true,"test.tj":true,"web.tj":true,"tk":true,"tl":true,"gov.tl":true,"tm":true,"com.tm":true,"co.tm":true,"org.tm":true,"net.tm":true,"nom.tm":true,"gov.tm":true,"mil.tm":true,"edu.tm":true,"tn":true,"com.tn":true,"ens.tn":true,"fin.tn":true,"gov.tn":true,"ind.tn":true,"intl.tn":true,"nat.tn":true,"net.tn":true,"org.tn":true,"info.tn":true,"perso.tn":true,"tourism.tn":true,"edunet.tn":true,"rnrt.tn":true,"rns.tn":true,"rnu.tn":true,"mincom.tn":true,"agrinet.tn":true,"defense.tn":true,"turen.tn":true,"to":true,"com.to":true,"gov.to":true,"net.to":true,"org.to":true,"edu.to":true,"mil.to":true,"tr":true,"com.tr":true,"info.tr":true,"biz.tr":true,"net.tr":true,"org.tr":true,"web.tr":true,"gen.tr":true,"tv.tr":true,"av.tr":true,"dr.tr":true,"bbs.tr":true,"name.tr":true,"tel.tr":true,"gov.tr":true,"bel.tr":true,"pol.tr":true,"mil.tr":true,"k12.tr":true,"edu.tr":true,"kep.tr":true,"nc.tr":true,"gov.nc.tr":true,"travel":true,"tt":true,"co.tt":true,"com.tt":true,"org.tt":true,"net.tt":true,"biz.tt":true,"info.tt":true,"pro.tt":true,"int.tt":true,"coop.tt":true,"jobs.tt":true,"mobi.tt":true,"travel.tt":true,"museum.tt":true,"aero.tt":true,"name.tt":true,"gov.tt":true,"edu.tt":true,"tv":true,"tw":true,"edu.tw":true,"gov.tw":true,"mil.tw":true,"com.tw":true,"net.tw":true,"org.tw":true,"idv.tw":true,"game.tw":true,"ebiz.tw":true,"club.tw":true,"xn--zf0ao64a.tw":true,"xn--uc0atv.tw":true,"xn--czrw28b.tw":true,"tz":true,"ac.tz":true,"co.tz":true,"go.tz":true,"hotel.tz":true,"info.tz":true,"me.tz":true,"mil.tz":true,"mobi.tz":true,"ne.tz":true,"or.tz":true,"sc.tz":true,"tv.tz":true,"ua":true,"com.ua":true,"edu.ua":true,"gov.ua":true,"in.ua":true,"net.ua":true,"org.ua":true,"cherkassy.ua":true,"cherkasy.ua":true,"chernigov.ua":true,"chernihiv.ua":true,"chernivtsi.ua":true,"chernovtsy.ua":true,"ck.ua":true,"cn.ua":true,"cr.ua":true,"crimea.ua":true,"cv.ua":true,"dn.ua":true,"dnepropetrovsk.ua":true,"dnipropetrovsk.ua":true,"dominic.ua":true,"donetsk.ua":true,"dp.ua":true,"if.ua":true,"ivano-frankivsk.ua":true,"kh.ua":true,"kharkiv.ua":true,"kharkov.ua":true,"kherson.ua":true,"khmelnitskiy.ua":true,"khmelnytskyi.ua":true,"kiev.ua":true,"kirovograd.ua":true,"km.ua":true,"kr.ua":true,"krym.ua":true,"ks.ua":true,"kv.ua":true,"kyiv.ua":true,"lg.ua":true,"lt.ua":true,"lugansk.ua":true,"lutsk.ua":true,"lv.ua":true,"lviv.ua":true,"mk.ua":true,"mykolaiv.ua":true,"nikolaev.ua":true,"od.ua":true,"odesa.ua":true,"odessa.ua":true,"pl.ua":true,"poltava.ua":true,"rivne.ua":true,"rovno.ua":true,"rv.ua":true,"sb.ua":true,"sebastopol.ua":true,"sevastopol.ua":true,"sm.ua":true,"sumy.ua":true,"te.ua":true,"ternopil.ua":true,"uz.ua":true,"uzhgorod.ua":true,"vinnica.ua":true,"vinnytsia.ua":true,"vn.ua":true,"volyn.ua":true,"yalta.ua":true,"zaporizhzhe.ua":true,"zaporizhzhia.ua":true,"zhitomir.ua":true,"zhytomyr.ua":true,"zp.ua":true,"zt.ua":true,"ug":true,"co.ug":true,"or.ug":true,"ac.ug":true,"sc.ug":true,"go.ug":true,"ne.ug":true,"com.ug":true,"org.ug":true,"uk":true,"ac.uk":true,"co.uk":true,"gov.uk":true,"ltd.uk":true,"me.uk":true,"net.uk":true,"nhs.uk":true,"org.uk":true,"plc.uk":true,"police.uk":true,"*.sch.uk":true,"us":true,"dni.us":true,"fed.us":true,"isa.us":true,"kids.us":true,"nsn.us":true,"ak.us":true,"al.us":true,"ar.us":true,"as.us":true,"az.us":true,"ca.us":true,"co.us":true,"ct.us":true,"dc.us":true,"de.us":true,"fl.us":true,"ga.us":true,"gu.us":true,"hi.us":true,"ia.us":true,"id.us":true,"il.us":true,"in.us":true,"ks.us":true,"ky.us":true,"la.us":true,"ma.us":true,"md.us":true,"me.us":true,"mi.us":true,"mn.us":true,"mo.us":true,"ms.us":true,"mt.us":true,"nc.us":true,"nd.us":true,"ne.us":true,"nh.us":true,"nj.us":true,"nm.us":true,"nv.us":true,"ny.us":true,"oh.us":true,"ok.us":true,"or.us":true,"pa.us":true,"pr.us":true,"ri.us":true,"sc.us":true,"sd.us":true,"tn.us":true,"tx.us":true,"ut.us":true,"vi.us":true,"vt.us":true,"va.us":true,"wa.us":true,"wi.us":true,"wv.us":true,"wy.us":true,"k12.ak.us":true,"k12.al.us":true,"k12.ar.us":true,"k12.as.us":true,"k12.az.us":true,"k12.ca.us":true,"k12.co.us":true,"k12.ct.us":true,"k12.dc.us":true,"k12.de.us":true,"k12.fl.us":true,"k12.ga.us":true,"k12.gu.us":true,"k12.ia.us":true,"k12.id.us":true,"k12.il.us":true,"k12.in.us":true,"k12.ks.us":true,"k12.ky.us":true,"k12.la.us":true,"k12.ma.us":true,"k12.md.us":true,"k12.me.us":true,"k12.mi.us":true,"k12.mn.us":true,"k12.mo.us":true,"k12.ms.us":true,"k12.mt.us":true,"k12.nc.us":true,"k12.ne.us":true,"k12.nh.us":true,"k12.nj.us":true,"k12.nm.us":true,"k12.nv.us":true,"k12.ny.us":true,"k12.oh.us":true,"k12.ok.us":true,"k12.or.us":true,"k12.pa.us":true,"k12.pr.us":true,"k12.ri.us":true,"k12.sc.us":true,"k12.tn.us":true,"k12.tx.us":true,"k12.ut.us":true,"k12.vi.us":true,"k12.vt.us":true,"k12.va.us":true,"k12.wa.us":true,"k12.wi.us":true,"k12.wy.us":true,"cc.ak.us":true,"cc.al.us":true,"cc.ar.us":true,"cc.as.us":true,"cc.az.us":true,"cc.ca.us":true,"cc.co.us":true,"cc.ct.us":true,"cc.dc.us":true,"cc.de.us":true,"cc.fl.us":true,"cc.ga.us":true,"cc.gu.us":true,"cc.hi.us":true,"cc.ia.us":true,"cc.id.us":true,"cc.il.us":true,"cc.in.us":true,"cc.ks.us":true,"cc.ky.us":true,"cc.la.us":true,"cc.ma.us":true,"cc.md.us":true,"cc.me.us":true,"cc.mi.us":true,"cc.mn.us":true,"cc.mo.us":true,"cc.ms.us":true,"cc.mt.us":true,"cc.nc.us":true,"cc.nd.us":true,"cc.ne.us":true,"cc.nh.us":true,"cc.nj.us":true,"cc.nm.us":true,"cc.nv.us":true,"cc.ny.us":true,"cc.oh.us":true,"cc.ok.us":true,"cc.or.us":true,"cc.pa.us":true,"cc.pr.us":true,"cc.ri.us":true,"cc.sc.us":true,"cc.sd.us":true,"cc.tn.us":true,"cc.tx.us":true,"cc.ut.us":true,"cc.vi.us":true,"cc.vt.us":true,"cc.va.us":true,"cc.wa.us":true,"cc.wi.us":true,"cc.wv.us":true,"cc.wy.us":true,"lib.ak.us":true,"lib.al.us":true,"lib.ar.us":true,"lib.as.us":true,"lib.az.us":true,"lib.ca.us":true,"lib.co.us":true,"lib.ct.us":true,"lib.dc.us":true,"lib.fl.us":true,"lib.ga.us":true,"lib.gu.us":true,"lib.hi.us":true,"lib.ia.us":true,"lib.id.us":true,"lib.il.us":true,"lib.in.us":true,"lib.ks.us":true,"lib.ky.us":true,"lib.la.us":true,"lib.ma.us":true,"lib.md.us":true,"lib.me.us":true,"lib.mi.us":true,"lib.mn.us":true,"lib.mo.us":true,"lib.ms.us":true,"lib.mt.us":true,"lib.nc.us":true,"lib.nd.us":true,"lib.ne.us":true,"lib.nh.us":true,"lib.nj.us":true,"lib.nm.us":true,"lib.nv.us":true,"lib.ny.us":true,"lib.oh.us":true,"lib.ok.us":true,"lib.or.us":true,"lib.pa.us":true,"lib.pr.us":true,"lib.ri.us":true,"lib.sc.us":true,"lib.sd.us":true,"lib.tn.us":true,"lib.tx.us":true,"lib.ut.us":true,"lib.vi.us":true,"lib.vt.us":true,"lib.va.us":true,"lib.wa.us":true,"lib.wi.us":true,"lib.wy.us":true,"pvt.k12.ma.us":true,"chtr.k12.ma.us":true,"paroch.k12.ma.us":true,"ann-arbor.mi.us":true,"cog.mi.us":true,"dst.mi.us":true,"eaton.mi.us":true,"gen.mi.us":true,"mus.mi.us":true,"tec.mi.us":true,"washtenaw.mi.us":true,"uy":true,"com.uy":true,"edu.uy":true,"gub.uy":true,"mil.uy":true,"net.uy":true,"org.uy":true,"uz":true,"co.uz":true,"com.uz":true,"net.uz":true,"org.uz":true,"va":true,"vc":true,"com.vc":true,"net.vc":true,"org.vc":true,"gov.vc":true,"mil.vc":true,"edu.vc":true,"ve":true,"arts.ve":true,"co.ve":true,"com.ve":true,"e12.ve":true,"edu.ve":true,"firm.ve":true,"gob.ve":true,"gov.ve":true,"info.ve":true,"int.ve":true,"mil.ve":true,"net.ve":true,"org.ve":true,"rec.ve":true,"store.ve":true,"tec.ve":true,"web.ve":true,"vg":true,"vi":true,"co.vi":true,"com.vi":true,"k12.vi":true,"net.vi":true,"org.vi":true,"vn":true,"com.vn":true,"net.vn":true,"org.vn":true,"edu.vn":true,"gov.vn":true,"int.vn":true,"ac.vn":true,"biz.vn":true,"info.vn":true,"name.vn":true,"pro.vn":true,"health.vn":true,"vu":true,"com.vu":true,"edu.vu":true,"net.vu":true,"org.vu":true,"wf":true,"ws":true,"com.ws":true,"net.ws":true,"org.ws":true,"gov.ws":true,"edu.ws":true,"yt":true,"xn--mgbaam7a8h":true,"xn--y9a3aq":true,"xn--54b7fta0cc":true,"xn--90ae":true,"xn--90ais":true,"xn--fiqs8s":true,"xn--fiqz9s":true,"xn--lgbbat1ad8j":true,"xn--wgbh1c":true,"xn--e1a4c":true,"xn--node":true,"xn--qxam":true,"xn--j6w193g":true,"xn--2scrj9c":true,"xn--3hcrj9c":true,"xn--45br5cyl":true,"xn--h2breg3eve":true,"xn--h2brj9c8c":true,"xn--mgbgu82a":true,"xn--rvc1e0am3e":true,"xn--h2brj9c":true,"xn--mgbbh1a71e":true,"xn--fpcrj9c3d":true,"xn--gecrj9c":true,"xn--s9brj9c":true,"xn--45brj9c":true,"xn--xkc2dl3a5ee0h":true,"xn--mgba3a4f16a":true,"xn--mgba3a4fra":true,"xn--mgbtx2b":true,"xn--mgbayh7gpa":true,"xn--3e0b707e":true,"xn--80ao21a":true,"xn--fzc2c9e2c":true,"xn--xkc2al3hye2a":true,"xn--mgbc0a9azcg":true,"xn--d1alf":true,"xn--l1acc":true,"xn--mix891f":true,"xn--mix082f":true,"xn--mgbx4cd0ab":true,"xn--mgb9awbf":true,"xn--mgbai9azgqp6j":true,"xn--mgbai9a5eva00b":true,"xn--ygbi2ammx":true,"xn--90a3ac":true,"xn--o1ac.xn--90a3ac":true,"xn--c1avg.xn--90a3ac":true,"xn--90azh.xn--90a3ac":true,"xn--d1at.xn--90a3ac":true,"xn--o1ach.xn--90a3ac":true,"xn--80au.xn--90a3ac":true,"xn--p1ai":true,"xn--wgbl6a":true,"xn--mgberp4a5d4ar":true,"xn--mgberp4a5d4a87g":true,"xn--mgbqly7c0a67fbc":true,"xn--mgbqly7cvafr":true,"xn--mgbpl2fh":true,"xn--yfro4i67o":true,"xn--clchc0ea0b2g2a9gcd":true,"xn--ogbpf8fl":true,"xn--mgbtf8fl":true,"xn--o3cw4h":true,"xn--12c1fe0br.xn--o3cw4h":true,"xn--12co0c3b4eva.xn--o3cw4h":true,"xn--h3cuzk1di.xn--o3cw4h":true,"xn--o3cyx2a.xn--o3cw4h":true,"xn--m3ch0j3a.xn--o3cw4h":true,"xn--12cfi8ixb8l.xn--o3cw4h":true,"xn--pgbs0dh":true,"xn--kpry57d":true,"xn--kprw13d":true,"xn--nnx388a":true,"xn--j1amh":true,"xn--mgb2ddes":true,"xxx":true,"*.ye":true,"ac.za":true,"agric.za":true,"alt.za":true,"co.za":true,"edu.za":true,"gov.za":true,"grondar.za":true,"law.za":true,"mil.za":true,"net.za":true,"ngo.za":true,"nis.za":true,"nom.za":true,"org.za":true,"school.za":true,"tm.za":true,"web.za":true,"zm":true,"ac.zm":true,"biz.zm":true,"co.zm":true,"com.zm":true,"edu.zm":true,"gov.zm":true,"info.zm":true,"mil.zm":true,"net.zm":true,"org.zm":true,"sch.zm":true,"zw":true,"ac.zw":true,"co.zw":true,"gov.zw":true,"mil.zw":true,"org.zw":true,"aaa":true,"aarp":true,"abarth":true,"abb":true,"abbott":true,"abbvie":true,"abc":true,"able":true,"abogado":true,"abudhabi":true,"academy":true,"accenture":true,"accountant":true,"accountants":true,"aco":true,"active":true,"actor":true,"adac":true,"ads":true,"adult":true,"aeg":true,"aetna":true,"afamilycompany":true,"afl":true,"africa":true,"agakhan":true,"agency":true,"aig":true,"aigo":true,"airbus":true,"airforce":true,"airtel":true,"akdn":true,"alfaromeo":true,"alibaba":true,"alipay":true,"allfinanz":true,"allstate":true,"ally":true,"alsace":true,"alstom":true,"americanexpress":true,"americanfamily":true,"amex":true,"amfam":true,"amica":true,"amsterdam":true,"analytics":true,"android":true,"anquan":true,"anz":true,"aol":true,"apartments":true,"app":true,"apple":true,"aquarelle":true,"arab":true,"aramco":true,"archi":true,"army":true,"art":true,"arte":true,"asda":true,"associates":true,"athleta":true,"attorney":true,"auction":true,"audi":true,"audible":true,"audio":true,"auspost":true,"author":true,"auto":true,"autos":true,"avianca":true,"aws":true,"axa":true,"azure":true,"baby":true,"baidu":true,"banamex":true,"bananarepublic":true,"band":true,"bank":true,"bar":true,"barcelona":true,"barclaycard":true,"barclays":true,"barefoot":true,"bargains":true,"baseball":true,"basketball":true,"bauhaus":true,"bayern":true,"bbc":true,"bbt":true,"bbva":true,"bcg":true,"bcn":true,"beats":true,"beauty":true,"beer":true,"bentley":true,"berlin":true,"best":true,"bestbuy":true,"bet":true,"bharti":true,"bible":true,"bid":true,"bike":true,"bing":true,"bingo":true,"bio":true,"black":true,"blackfriday":true,"blanco":true,"blockbuster":true,"blog":true,"bloomberg":true,"blue":true,"bms":true,"bmw":true,"bnl":true,"bnpparibas":true,"boats":true,"boehringer":true,"bofa":true,"bom":true,"bond":true,"boo":true,"book":true,"booking":true,"boots":true,"bosch":true,"bostik":true,"boston":true,"bot":true,"boutique":true,"box":true,"bradesco":true,"bridgestone":true,"broadway":true,"broker":true,"brother":true,"brussels":true,"budapest":true,"bugatti":true,"build":true,"builders":true,"business":true,"buy":true,"buzz":true,"bzh":true,"cab":true,"cafe":true,"cal":true,"call":true,"calvinklein":true,"cam":true,"camera":true,"camp":true,"cancerresearch":true,"canon":true,"capetown":true,"capital":true,"capitalone":true,"car":true,"caravan":true,"cards":true,"care":true,"career":true,"careers":true,"cars":true,"cartier":true,"casa":true,"case":true,"caseih":true,"cash":true,"casino":true,"catering":true,"catholic":true,"cba":true,"cbn":true,"cbre":true,"cbs":true,"ceb":true,"center":true,"ceo":true,"cern":true,"cfa":true,"cfd":true,"chanel":true,"channel":true,"chase":true,"chat":true,"cheap":true,"chintai":true,"christmas":true,"chrome":true,"chrysler":true,"church":true,"cipriani":true,"circle":true,"cisco":true,"citadel":true,"citi":true,"citic":true,"city":true,"cityeats":true,"claims":true,"cleaning":true,"click":true,"clinic":true,"clinique":true,"clothing":true,"cloud":true,"club":true,"clubmed":true,"coach":true,"codes":true,"coffee":true,"college":true,"cologne":true,"comcast":true,"commbank":true,"community":true,"company":true,"compare":true,"computer":true,"comsec":true,"condos":true,"construction":true,"consulting":true,"contact":true,"contractors":true,"cooking":true,"cookingchannel":true,"cool":true,"corsica":true,"country":true,"coupon":true,"coupons":true,"courses":true,"credit":true,"creditcard":true,"creditunion":true,"cricket":true,"crown":true,"crs":true,"cruise":true,"cruises":true,"csc":true,"cuisinella":true,"cymru":true,"cyou":true,"dabur":true,"dad":true,"dance":true,"data":true,"date":true,"dating":true,"datsun":true,"day":true,"dclk":true,"dds":true,"deal":true,"dealer":true,"deals":true,"degree":true,"delivery":true,"dell":true,"deloitte":true,"delta":true,"democrat":true,"dental":true,"dentist":true,"desi":true,"design":true,"dev":true,"dhl":true,"diamonds":true,"diet":true,"digital":true,"direct":true,"directory":true,"discount":true,"discover":true,"dish":true,"diy":true,"dnp":true,"docs":true,"doctor":true,"dodge":true,"dog":true,"doha":true,"domains":true,"dot":true,"download":true,"drive":true,"dtv":true,"dubai":true,"duck":true,"dunlop":true,"duns":true,"dupont":true,"durban":true,"dvag":true,"dvr":true,"earth":true,"eat":true,"eco":true,"edeka":true,"education":true,"email":true,"emerck":true,"energy":true,"engineer":true,"engineering":true,"enterprises":true,"epost":true,"epson":true,"equipment":true,"ericsson":true,"erni":true,"esq":true,"estate":true,"esurance":true,"etisalat":true,"eurovision":true,"eus":true,"events":true,"everbank":true,"exchange":true,"expert":true,"exposed":true,"express":true,"extraspace":true,"fage":true,"fail":true,"fairwinds":true,"faith":true,"family":true,"fan":true,"fans":true,"farm":true,"farmers":true,"fashion":true,"fast":true,"fedex":true,"feedback":true,"ferrari":true,"ferrero":true,"fiat":true,"fidelity":true,"fido":true,"film":true,"final":true,"finance":true,"financial":true,"fire":true,"firestone":true,"firmdale":true,"fish":true,"fishing":true,"fit":true,"fitness":true,"flickr":true,"flights":true,"flir":true,"florist":true,"flowers":true,"fly":true,"foo":true,"food":true,"foodnetwork":true,"football":true,"ford":true,"forex":true,"forsale":true,"forum":true,"foundation":true,"fox":true,"free":true,"fresenius":true,"frl":true,"frogans":true,"frontdoor":true,"frontier":true,"ftr":true,"fujitsu":true,"fujixerox":true,"fun":true,"fund":true,"furniture":true,"futbol":true,"fyi":true,"gal":true,"gallery":true,"gallo":true,"gallup":true,"game":true,"games":true,"gap":true,"garden":true,"gbiz":true,"gdn":true,"gea":true,"gent":true,"genting":true,"george":true,"ggee":true,"gift":true,"gifts":true,"gives":true,"giving":true,"glade":true,"glass":true,"gle":true,"global":true,"globo":true,"gmail":true,"gmbh":true,"gmo":true,"gmx":true,"godaddy":true,"gold":true,"goldpoint":true,"golf":true,"goo":true,"goodhands":true,"goodyear":true,"goog":true,"google":true,"gop":true,"got":true,"grainger":true,"graphics":true,"gratis":true,"green":true,"gripe":true,"grocery":true,"group":true,"guardian":true,"gucci":true,"guge":true,"guide":true,"guitars":true,"guru":true,"hair":true,"hamburg":true,"hangout":true,"haus":true,"hbo":true,"hdfc":true,"hdfcbank":true,"health":true,"healthcare":true,"help":true,"helsinki":true,"here":true,"hermes":true,"hgtv":true,"hiphop":true,"hisamitsu":true,"hitachi":true,"hiv":true,"hkt":true,"hockey":true,"holdings":true,"holiday":true,"homedepot":true,"homegoods":true,"homes":true,"homesense":true,"honda":true,"honeywell":true,"horse":true,"hospital":true,"host":true,"hosting":true,"hot":true,"hoteles":true,"hotels":true,"hotmail":true,"house":true,"how":true,"hsbc":true,"hughes":true,"hyatt":true,"hyundai":true,"ibm":true,"icbc":true,"ice":true,"icu":true,"ieee":true,"ifm":true,"ikano":true,"imamat":true,"imdb":true,"immo":true,"immobilien":true,"industries":true,"infiniti":true,"ing":true,"ink":true,"institute":true,"insurance":true,"insure":true,"intel":true,"international":true,"intuit":true,"investments":true,"ipiranga":true,"irish":true,"iselect":true,"ismaili":true,"ist":true,"istanbul":true,"itau":true,"itv":true,"iveco":true,"iwc":true,"jaguar":true,"java":true,"jcb":true,"jcp":true,"jeep":true,"jetzt":true,"jewelry":true,"jio":true,"jlc":true,"jll":true,"jmp":true,"jnj":true,"joburg":true,"jot":true,"joy":true,"jpmorgan":true,"jprs":true,"juegos":true,"juniper":true,"kaufen":true,"kddi":true,"kerryhotels":true,"kerrylogistics":true,"kerryproperties":true,"kfh":true,"kia":true,"kim":true,"kinder":true,"kindle":true,"kitchen":true,"kiwi":true,"koeln":true,"komatsu":true,"kosher":true,"kpmg":true,"kpn":true,"krd":true,"kred":true,"kuokgroup":true,"kyoto":true,"lacaixa":true,"ladbrokes":true,"lamborghini":true,"lamer":true,"lancaster":true,"lancia":true,"lancome":true,"land":true,"landrover":true,"lanxess":true,"lasalle":true,"lat":true,"latino":true,"latrobe":true,"law":true,"lawyer":true,"lds":true,"lease":true,"leclerc":true,"lefrak":true,"legal":true,"lego":true,"lexus":true,"lgbt":true,"liaison":true,"lidl":true,"life":true,"lifeinsurance":true,"lifestyle":true,"lighting":true,"like":true,"lilly":true,"limited":true,"limo":true,"lincoln":true,"linde":true,"link":true,"lipsy":true,"live":true,"living":true,"lixil":true,"loan":true,"loans":true,"locker":true,"locus":true,"loft":true,"lol":true,"london":true,"lotte":true,"lotto":true,"love":true,"lpl":true,"lplfinancial":true,"ltd":true,"ltda":true,"lundbeck":true,"lupin":true,"luxe":true,"luxury":true,"macys":true,"madrid":true,"maif":true,"maison":true,"makeup":true,"man":true,"management":true,"mango":true,"map":true,"market":true,"marketing":true,"markets":true,"marriott":true,"marshalls":true,"maserati":true,"mattel":true,"mba":true,"mckinsey":true,"med":true,"media":true,"meet":true,"melbourne":true,"meme":true,"memorial":true,"men":true,"menu":true,"meo":true,"merckmsd":true,"metlife":true,"miami":true,"microsoft":true,"mini":true,"mint":true,"mit":true,"mitsubishi":true,"mlb":true,"mls":true,"mma":true,"mobile":true,"mobily":true,"moda":true,"moe":true,"moi":true,"mom":true,"monash":true,"money":true,"monster":true,"mopar":true,"mormon":true,"mortgage":true,"moscow":true,"moto":true,"motorcycles":true,"mov":true,"movie":true,"movistar":true,"msd":true,"mtn":true,"mtpc":true,"mtr":true,"mutual":true,"nab":true,"nadex":true,"nagoya":true,"nationwide":true,"natura":true,"navy":true,"nba":true,"nec":true,"netbank":true,"netflix":true,"network":true,"neustar":true,"new":true,"newholland":true,"news":true,"next":true,"nextdirect":true,"nexus":true,"nfl":true,"ngo":true,"nhk":true,"nico":true,"nike":true,"nikon":true,"ninja":true,"nissan":true,"nissay":true,"nokia":true,"northwesternmutual":true,"norton":true,"now":true,"nowruz":true,"nowtv":true,"nra":true,"nrw":true,"ntt":true,"nyc":true,"obi":true,"observer":true,"off":true,"office":true,"okinawa":true,"olayan":true,"olayangroup":true,"oldnavy":true,"ollo":true,"omega":true,"one":true,"ong":true,"onl":true,"online":true,"onyourside":true,"ooo":true,"open":true,"oracle":true,"orange":true,"organic":true,"origins":true,"osaka":true,"otsuka":true,"ott":true,"ovh":true,"page":true,"panasonic":true,"panerai":true,"paris":true,"pars":true,"partners":true,"parts":true,"party":true,"passagens":true,"pay":true,"pccw":true,"pet":true,"pfizer":true,"pharmacy":true,"phd":true,"philips":true,"phone":true,"photo":true,"photography":true,"photos":true,"physio":true,"piaget":true,"pics":true,"pictet":true,"pictures":true,"pid":true,"pin":true,"ping":true,"pink":true,"pioneer":true,"pizza":true,"place":true,"play":true,"playstation":true,"plumbing":true,"plus":true,"pnc":true,"pohl":true,"poker":true,"politie":true,"porn":true,"pramerica":true,"praxi":true,"press":true,"prime":true,"prod":true,"productions":true,"prof":true,"progressive":true,"promo":true,"properties":true,"property":true,"protection":true,"pru":true,"prudential":true,"pub":true,"pwc":true,"qpon":true,"quebec":true,"quest":true,"qvc":true,"racing":true,"radio":true,"raid":true,"read":true,"realestate":true,"realtor":true,"realty":true,"recipes":true,"red":true,"redstone":true,"redumbrella":true,"rehab":true,"reise":true,"reisen":true,"reit":true,"reliance":true,"ren":true,"rent":true,"rentals":true,"repair":true,"report":true,"republican":true,"rest":true,"restaurant":true,"review":true,"reviews":true,"rexroth":true,"rich":true,"richardli":true,"ricoh":true,"rightathome":true,"ril":true,"rio":true,"rip":true,"rmit":true,"rocher":true,"rocks":true,"rodeo":true,"rogers":true,"room":true,"rsvp":true,"rugby":true,"ruhr":true,"run":true,"rwe":true,"ryukyu":true,"saarland":true,"safe":true,"safety":true,"sakura":true,"sale":true,"salon":true,"samsclub":true,"samsung":true,"sandvik":true,"sandvikcoromant":true,"sanofi":true,"sap":true,"sapo":true,"sarl":true,"sas":true,"save":true,"saxo":true,"sbi":true,"sbs":true,"sca":true,"scb":true,"schaeffler":true,"schmidt":true,"scholarships":true,"school":true,"schule":true,"schwarz":true,"science":true,"scjohnson":true,"scor":true,"scot":true,"search":true,"seat":true,"secure":true,"security":true,"seek":true,"select":true,"sener":true,"services":true,"ses":true,"seven":true,"sew":true,"sex":true,"sexy":true,"sfr":true,"shangrila":true,"sharp":true,"shaw":true,"shell":true,"shia":true,"shiksha":true,"shoes":true,"shop":true,"shopping":true,"shouji":true,"show":true,"showtime":true,"shriram":true,"silk":true,"sina":true,"singles":true,"site":true,"ski":true,"skin":true,"sky":true,"skype":true,"sling":true,"smart":true,"smile":true,"sncf":true,"soccer":true,"social":true,"softbank":true,"software":true,"sohu":true,"solar":true,"solutions":true,"song":true,"sony":true,"soy":true,"space":true,"spiegel":true,"spot":true,"spreadbetting":true,"srl":true,"srt":true,"stada":true,"staples":true,"star":true,"starhub":true,"statebank":true,"statefarm":true,"statoil":true,"stc":true,"stcgroup":true,"stockholm":true,"storage":true,"store":true,"stream":true,"studio":true,"study":true,"style":true,"sucks":true,"supplies":true,"supply":true,"support":true,"surf":true,"surgery":true,"suzuki":true,"swatch":true,"swiftcover":true,"swiss":true,"sydney":true,"symantec":true,"systems":true,"tab":true,"taipei":true,"talk":true,"taobao":true,"target":true,"tatamotors":true,"tatar":true,"tattoo":true,"tax":true,"taxi":true,"tci":true,"tdk":true,"team":true,"tech":true,"technology":true,"telecity":true,"telefonica":true,"temasek":true,"tennis":true,"teva":true,"thd":true,"theater":true,"theatre":true,"tiaa":true,"tickets":true,"tienda":true,"tiffany":true,"tips":true,"tires":true,"tirol":true,"tjmaxx":true,"tjx":true,"tkmaxx":true,"tmall":true,"today":true,"tokyo":true,"tools":true,"top":true,"toray":true,"toshiba":true,"total":true,"tours":true,"town":true,"toyota":true,"toys":true,"trade":true,"trading":true,"training":true,"travelchannel":true,"travelers":true,"travelersinsurance":true,"trust":true,"trv":true,"tube":true,"tui":true,"tunes":true,"tushu":true,"tvs":true,"ubank":true,"ubs":true,"uconnect":true,"unicom":true,"university":true,"uno":true,"uol":true,"ups":true,"vacations":true,"vana":true,"vanguard":true,"vegas":true,"ventures":true,"verisign":true,"versicherung":true,"vet":true,"viajes":true,"video":true,"vig":true,"viking":true,"villas":true,"vin":true,"vip":true,"virgin":true,"visa":true,"vision":true,"vista":true,"vistaprint":true,"viva":true,"vivo":true,"vlaanderen":true,"vodka":true,"volkswagen":true,"volvo":true,"vote":true,"voting":true,"voto":true,"voyage":true,"vuelos":true,"wales":true,"walmart":true,"walter":true,"wang":true,"wanggou":true,"warman":true,"watch":true,"watches":true,"weather":true,"weatherchannel":true,"webcam":true,"weber":true,"website":true,"wed":true,"wedding":true,"weibo":true,"weir":true,"whoswho":true,"wien":true,"wiki":true,"williamhill":true,"win":true,"windows":true,"wine":true,"winners":true,"wme":true,"wolterskluwer":true,"woodside":true,"work":true,"works":true,"world":true,"wow":true,"wtc":true,"wtf":true,"xbox":true,"xerox":true,"xfinity":true,"xihuan":true,"xin":true,"xn--11b4c3d":true,"xn--1ck2e1b":true,"xn--1qqw23a":true,"xn--30rr7y":true,"xn--3bst00m":true,"xn--3ds443g":true,"xn--3oq18vl8pn36a":true,"xn--3pxu8k":true,"xn--42c2d9a":true,"xn--45q11c":true,"xn--4gbrim":true,"xn--55qw42g":true,"xn--55qx5d":true,"xn--5su34j936bgsg":true,"xn--5tzm5g":true,"xn--6frz82g":true,"xn--6qq986b3xl":true,"xn--80adxhks":true,"xn--80aqecdr1a":true,"xn--80asehdb":true,"xn--80aswg":true,"xn--8y0a063a":true,"xn--9dbq2a":true,"xn--9et52u":true,"xn--9krt00a":true,"xn--b4w605ferd":true,"xn--bck1b9a5dre4c":true,"xn--c1avg":true,"xn--c2br7g":true,"xn--cck2b3b":true,"xn--cg4bki":true,"xn--czr694b":true,"xn--czrs0t":true,"xn--czru2d":true,"xn--d1acj3b":true,"xn--eckvdtc9d":true,"xn--efvy88h":true,"xn--estv75g":true,"xn--fct429k":true,"xn--fhbei":true,"xn--fiq228c5hs":true,"xn--fiq64b":true,"xn--fjq720a":true,"xn--flw351e":true,"xn--fzys8d69uvgm":true,"xn--g2xx48c":true,"xn--gckr3f0f":true,"xn--gk3at1e":true,"xn--hxt814e":true,"xn--i1b6b1a6a2e":true,"xn--imr513n":true,"xn--io0a7i":true,"xn--j1aef":true,"xn--jlq61u9w7b":true,"xn--jvr189m":true,"xn--kcrx77d1x4a":true,"xn--kpu716f":true,"xn--kput3i":true,"xn--mgba3a3ejt":true,"xn--mgba7c0bbn0a":true,"xn--mgbaakc7dvf":true,"xn--mgbab2bd":true,"xn--mgbb9fbpob":true,"xn--mgbca7dzdo":true,"xn--mgbi4ecexp":true,"xn--mgbt3dhd":true,"xn--mk1bu44c":true,"xn--mxtq1m":true,"xn--ngbc5azd":true,"xn--ngbe9e0a":true,"xn--ngbrx":true,"xn--nqv7f":true,"xn--nqv7fs00ema":true,"xn--nyqy26a":true,"xn--p1acf":true,"xn--pbt977c":true,"xn--pssy2u":true,"xn--q9jyb4c":true,"xn--qcka1pmc":true,"xn--rhqv96g":true,"xn--rovu88b":true,"xn--ses554g":true,"xn--t60b56a":true,"xn--tckwe":true,"xn--tiq49xqyj":true,"xn--unup4y":true,"xn--vermgensberater-ctb":true,"xn--vermgensberatung-pwb":true,"xn--vhquv":true,"xn--vuq861b":true,"xn--w4r85el8fhu5dnra":true,"xn--w4rs40l":true,"xn--xhq521b":true,"xn--zfr164b":true,"xperia":true,"xyz":true,"yachts":true,"yahoo":true,"yamaxun":true,"yandex":true,"yodobashi":true,"yoga":true,"yokohama":true,"you":true,"youtube":true,"yun":true,"zappos":true,"zara":true,"zero":true,"zip":true,"zippo":true,"zone":true,"zuerich":true,"cc.ua":true,"inf.ua":true,"ltd.ua":true,"1password.ca":true,"1password.com":true,"1password.eu":true,"beep.pl":true,"*.compute.estate":true,"*.alces.network":true,"alwaysdata.net":true,"cloudfront.net":true,"*.compute.amazonaws.com":true,"*.compute-1.amazonaws.com":true,"*.compute.amazonaws.com.cn":true,"us-east-1.amazonaws.com":true,"cn-north-1.eb.amazonaws.com.cn":true,"elasticbeanstalk.com":true,"ap-northeast-1.elasticbeanstalk.com":true,"ap-northeast-2.elasticbeanstalk.com":true,"ap-south-1.elasticbeanstalk.com":true,"ap-southeast-1.elasticbeanstalk.com":true,"ap-southeast-2.elasticbeanstalk.com":true,"ca-central-1.elasticbeanstalk.com":true,"eu-central-1.elasticbeanstalk.com":true,"eu-west-1.elasticbeanstalk.com":true,"eu-west-2.elasticbeanstalk.com":true,"eu-west-3.elasticbeanstalk.com":true,"sa-east-1.elasticbeanstalk.com":true,"us-east-1.elasticbeanstalk.com":true,"us-east-2.elasticbeanstalk.com":true,"us-gov-west-1.elasticbeanstalk.com":true,"us-west-1.elasticbeanstalk.com":true,"us-west-2.elasticbeanstalk.com":true,"*.elb.amazonaws.com":true,"*.elb.amazonaws.com.cn":true,"s3.amazonaws.com":true,"s3-ap-northeast-1.amazonaws.com":true,"s3-ap-northeast-2.amazonaws.com":true,"s3-ap-south-1.amazonaws.com":true,"s3-ap-southeast-1.amazonaws.com":true,"s3-ap-southeast-2.amazonaws.com":true,"s3-ca-central-1.amazonaws.com":true,"s3-eu-central-1.amazonaws.com":true,"s3-eu-west-1.amazonaws.com":true,"s3-eu-west-2.amazonaws.com":true,"s3-eu-west-3.amazonaws.com":true,"s3-external-1.amazonaws.com":true,"s3-fips-us-gov-west-1.amazonaws.com":true,"s3-sa-east-1.amazonaws.com":true,"s3-us-gov-west-1.amazonaws.com":true,"s3-us-east-2.amazonaws.com":true,"s3-us-west-1.amazonaws.com":true,"s3-us-west-2.amazonaws.com":true,"s3.ap-northeast-2.amazonaws.com":true,"s3.ap-south-1.amazonaws.com":true,"s3.cn-north-1.amazonaws.com.cn":true,"s3.ca-central-1.amazonaws.com":true,"s3.eu-central-1.amazonaws.com":true,"s3.eu-west-2.amazonaws.com":true,"s3.eu-west-3.amazonaws.com":true,"s3.us-east-2.amazonaws.com":true,"s3.dualstack.ap-northeast-1.amazonaws.com":true,"s3.dualstack.ap-northeast-2.amazonaws.com":true,"s3.dualstack.ap-south-1.amazonaws.com":true,"s3.dualstack.ap-southeast-1.amazonaws.com":true,"s3.dualstack.ap-southeast-2.amazonaws.com":true,"s3.dualstack.ca-central-1.amazonaws.com":true,"s3.dualstack.eu-central-1.amazonaws.com":true,"s3.dualstack.eu-west-1.amazonaws.com":true,"s3.dualstack.eu-west-2.amazonaws.com":true,"s3.dualstack.eu-west-3.amazonaws.com":true,"s3.dualstack.sa-east-1.amazonaws.com":true,"s3.dualstack.us-east-1.amazonaws.com":true,"s3.dualstack.us-east-2.amazonaws.com":true,"s3-website-us-east-1.amazonaws.com":true,"s3-website-us-west-1.amazonaws.com":true,"s3-website-us-west-2.amazonaws.com":true,"s3-website-ap-northeast-1.amazonaws.com":true,"s3-website-ap-southeast-1.amazonaws.com":true,"s3-website-ap-southeast-2.amazonaws.com":true,"s3-website-eu-west-1.amazonaws.com":true,"s3-website-sa-east-1.amazonaws.com":true,"s3-website.ap-northeast-2.amazonaws.com":true,"s3-website.ap-south-1.amazonaws.com":true,"s3-website.ca-central-1.amazonaws.com":true,"s3-website.eu-central-1.amazonaws.com":true,"s3-website.eu-west-2.amazonaws.com":true,"s3-website.eu-west-3.amazonaws.com":true,"s3-website.us-east-2.amazonaws.com":true,"t3l3p0rt.net":true,"tele.amune.org":true,"on-aptible.com":true,"user.party.eus":true,"pimienta.org":true,"poivron.org":true,"potager.org":true,"sweetpepper.org":true,"myasustor.com":true,"myfritz.net":true,"*.awdev.ca":true,"*.advisor.ws":true,"backplaneapp.io":true,"betainabox.com":true,"bnr.la":true,"boomla.net":true,"boxfuse.io":true,"square7.ch":true,"bplaced.com":true,"bplaced.de":true,"square7.de":true,"bplaced.net":true,"square7.net":true,"browsersafetymark.io":true,"mycd.eu":true,"ae.org":true,"ar.com":true,"br.com":true,"cn.com":true,"com.de":true,"com.se":true,"de.com":true,"eu.com":true,"gb.com":true,"gb.net":true,"hu.com":true,"hu.net":true,"jp.net":true,"jpn.com":true,"kr.com":true,"mex.com":true,"no.com":true,"qc.com":true,"ru.com":true,"sa.com":true,"se.com":true,"se.net":true,"uk.com":true,"uk.net":true,"us.com":true,"uy.com":true,"za.bz":true,"za.com":true,"africa.com":true,"gr.com":true,"in.net":true,"us.org":true,"co.com":true,"c.la":true,"certmgr.org":true,"xenapponazure.com":true,"virtueeldomein.nl":true,"c66.me":true,"cloud66.ws":true,"jdevcloud.com":true,"wpdevcloud.com":true,"cloudaccess.host":true,"freesite.host":true,"cloudaccess.net":true,"cloudcontrolled.com":true,"cloudcontrolapp.com":true,"co.ca":true,"co.cz":true,"c.cdn77.org":true,"cdn77-ssl.net":true,"r.cdn77.net":true,"rsc.cdn77.org":true,"ssl.origin.cdn77-secure.org":true,"cloudns.asia":true,"cloudns.biz":true,"cloudns.club":true,"cloudns.cc":true,"cloudns.eu":true,"cloudns.in":true,"cloudns.info":true,"cloudns.org":true,"cloudns.pro":true,"cloudns.pw":true,"cloudns.us":true,"co.nl":true,"co.no":true,"webhosting.be":true,"hosting-cluster.nl":true,"dyn.cosidns.de":true,"dynamisches-dns.de":true,"dnsupdater.de":true,"internet-dns.de":true,"l-o-g-i-n.de":true,"dynamic-dns.info":true,"feste-ip.net":true,"knx-server.net":true,"static-access.net":true,"realm.cz":true,"*.cryptonomic.net":true,"cupcake.is":true,"cyon.link":true,"cyon.site":true,"daplie.me":true,"localhost.daplie.me":true,"biz.dk":true,"co.dk":true,"firm.dk":true,"reg.dk":true,"store.dk":true,"debian.net":true,"dedyn.io":true,"dnshome.de":true,"drayddns.com":true,"dreamhosters.com":true,"mydrobo.com":true,"drud.io":true,"drud.us":true,"duckdns.org":true,"dy.fi":true,"tunk.org":true,"dyndns-at-home.com":true,"dyndns-at-work.com":true,"dyndns-blog.com":true,"dyndns-free.com":true,"dyndns-home.com":true,"dyndns-ip.com":true,"dyndns-mail.com":true,"dyndns-office.com":true,"dyndns-pics.com":true,"dyndns-remote.com":true,"dyndns-server.com":true,"dyndns-web.com":true,"dyndns-wiki.com":true,"dyndns-work.com":true,"dyndns.biz":true,"dyndns.info":true,"dyndns.org":true,"dyndns.tv":true,"at-band-camp.net":true,"ath.cx":true,"barrel-of-knowledge.info":true,"barrell-of-knowledge.info":true,"better-than.tv":true,"blogdns.com":true,"blogdns.net":true,"blogdns.org":true,"blogsite.org":true,"boldlygoingnowhere.org":true,"broke-it.net":true,"buyshouses.net":true,"cechire.com":true,"dnsalias.com":true,"dnsalias.net":true,"dnsalias.org":true,"dnsdojo.com":true,"dnsdojo.net":true,"dnsdojo.org":true,"does-it.net":true,"doesntexist.com":true,"doesntexist.org":true,"dontexist.com":true,"dontexist.net":true,"dontexist.org":true,"doomdns.com":true,"doomdns.org":true,"dvrdns.org":true,"dyn-o-saur.com":true,"dynalias.com":true,"dynalias.net":true,"dynalias.org":true,"dynathome.net":true,"dyndns.ws":true,"endofinternet.net":true,"endofinternet.org":true,"endoftheinternet.org":true,"est-a-la-maison.com":true,"est-a-la-masion.com":true,"est-le-patron.com":true,"est-mon-blogueur.com":true,"for-better.biz":true,"for-more.biz":true,"for-our.info":true,"for-some.biz":true,"for-the.biz":true,"forgot.her.name":true,"forgot.his.name":true,"from-ak.com":true,"from-al.com":true,"from-ar.com":true,"from-az.net":true,"from-ca.com":true,"from-co.net":true,"from-ct.com":true,"from-dc.com":true,"from-de.com":true,"from-fl.com":true,"from-ga.com":true,"from-hi.com":true,"from-ia.com":true,"from-id.com":true,"from-il.com":true,"from-in.com":true,"from-ks.com":true,"from-ky.com":true,"from-la.net":true,"from-ma.com":true,"from-md.com":true,"from-me.org":true,"from-mi.com":true,"from-mn.com":true,"from-mo.com":true,"from-ms.com":true,"from-mt.com":true,"from-nc.com":true,"from-nd.com":true,"from-ne.com":true,"from-nh.com":true,"from-nj.com":true,"from-nm.com":true,"from-nv.com":true,"from-ny.net":true,"from-oh.com":true,"from-ok.com":true,"from-or.com":true,"from-pa.com":true,"from-pr.com":true,"from-ri.com":true,"from-sc.com":true,"from-sd.com":true,"from-tn.com":true,"from-tx.com":true,"from-ut.com":true,"from-va.com":true,"from-vt.com":true,"from-wa.com":true,"from-wi.com":true,"from-wv.com":true,"from-wy.com":true,"ftpaccess.cc":true,"fuettertdasnetz.de":true,"game-host.org":true,"game-server.cc":true,"getmyip.com":true,"gets-it.net":true,"go.dyndns.org":true,"gotdns.com":true,"gotdns.org":true,"groks-the.info":true,"groks-this.info":true,"ham-radio-op.net":true,"here-for-more.info":true,"hobby-site.com":true,"hobby-site.org":true,"home.dyndns.org":true,"homedns.org":true,"homeftp.net":true,"homeftp.org":true,"homeip.net":true,"homelinux.com":true,"homelinux.net":true,"homelinux.org":true,"homeunix.com":true,"homeunix.net":true,"homeunix.org":true,"iamallama.com":true,"in-the-band.net":true,"is-a-anarchist.com":true,"is-a-blogger.com":true,"is-a-bookkeeper.com":true,"is-a-bruinsfan.org":true,"is-a-bulls-fan.com":true,"is-a-candidate.org":true,"is-a-caterer.com":true,"is-a-celticsfan.org":true,"is-a-chef.com":true,"is-a-chef.net":true,"is-a-chef.org":true,"is-a-conservative.com":true,"is-a-cpa.com":true,"is-a-cubicle-slave.com":true,"is-a-democrat.com":true,"is-a-designer.com":true,"is-a-doctor.com":true,"is-a-financialadvisor.com":true,"is-a-geek.com":true,"is-a-geek.net":true,"is-a-geek.org":true,"is-a-green.com":true,"is-a-guru.com":true,"is-a-hard-worker.com":true,"is-a-hunter.com":true,"is-a-knight.org":true,"is-a-landscaper.com":true,"is-a-lawyer.com":true,"is-a-liberal.com":true,"is-a-libertarian.com":true,"is-a-linux-user.org":true,"is-a-llama.com":true,"is-a-musician.com":true,"is-a-nascarfan.com":true,"is-a-nurse.com":true,"is-a-painter.com":true,"is-a-patsfan.org":true,"is-a-personaltrainer.com":true,"is-a-photographer.com":true,"is-a-player.com":true,"is-a-republican.com":true,"is-a-rockstar.com":true,"is-a-socialist.com":true,"is-a-soxfan.org":true,"is-a-student.com":true,"is-a-teacher.com":true,"is-a-techie.com":true,"is-a-therapist.com":true,"is-an-accountant.com":true,"is-an-actor.com":true,"is-an-actress.com":true,"is-an-anarchist.com":true,"is-an-artist.com":true,"is-an-engineer.com":true,"is-an-entertainer.com":true,"is-by.us":true,"is-certified.com":true,"is-found.org":true,"is-gone.com":true,"is-into-anime.com":true,"is-into-cars.com":true,"is-into-cartoons.com":true,"is-into-games.com":true,"is-leet.com":true,"is-lost.org":true,"is-not-certified.com":true,"is-saved.org":true,"is-slick.com":true,"is-uberleet.com":true,"is-very-bad.org":true,"is-very-evil.org":true,"is-very-good.org":true,"is-very-nice.org":true,"is-very-sweet.org":true,"is-with-theband.com":true,"isa-geek.com":true,"isa-geek.net":true,"isa-geek.org":true,"isa-hockeynut.com":true,"issmarterthanyou.com":true,"isteingeek.de":true,"istmein.de":true,"kicks-ass.net":true,"kicks-ass.org":true,"knowsitall.info":true,"land-4-sale.us":true,"lebtimnetz.de":true,"leitungsen.de":true,"likes-pie.com":true,"likescandy.com":true,"merseine.nu":true,"mine.nu":true,"misconfused.org":true,"mypets.ws":true,"myphotos.cc":true,"neat-url.com":true,"office-on-the.net":true,"on-the-web.tv":true,"podzone.net":true,"podzone.org":true,"readmyblog.org":true,"saves-the-whales.com":true,"scrapper-site.net":true,"scrapping.cc":true,"selfip.biz":true,"selfip.com":true,"selfip.info":true,"selfip.net":true,"selfip.org":true,"sells-for-less.com":true,"sells-for-u.com":true,"sells-it.net":true,"sellsyourhome.org":true,"servebbs.com":true,"servebbs.net":true,"servebbs.org":true,"serveftp.net":true,"serveftp.org":true,"servegame.org":true,"shacknet.nu":true,"simple-url.com":true,"space-to-rent.com":true,"stuff-4-sale.org":true,"stuff-4-sale.us":true,"teaches-yoga.com":true,"thruhere.net":true,"traeumtgerade.de":true,"webhop.biz":true,"webhop.info":true,"webhop.net":true,"webhop.org":true,"worse-than.tv":true,"writesthisblog.com":true,"ddnss.de":true,"dyn.ddnss.de":true,"dyndns.ddnss.de":true,"dyndns1.de":true,"dyn-ip24.de":true,"home-webserver.de":true,"dyn.home-webserver.de":true,"myhome-server.de":true,"ddnss.org":true,"definima.net":true,"definima.io":true,"ddnsfree.com":true,"ddnsgeek.com":true,"giize.com":true,"gleeze.com":true,"kozow.com":true,"loseyourip.com":true,"ooguy.com":true,"theworkpc.com":true,"casacam.net":true,"dynu.net":true,"accesscam.org":true,"camdvr.org":true,"freeddns.org":true,"mywire.org":true,"webredirect.org":true,"myddns.rocks":true,"blogsite.xyz":true,"dynv6.net":true,"e4.cz":true,"mytuleap.com":true,"enonic.io":true,"customer.enonic.io":true,"eu.org":true,"al.eu.org":true,"asso.eu.org":true,"at.eu.org":true,"au.eu.org":true,"be.eu.org":true,"bg.eu.org":true,"ca.eu.org":true,"cd.eu.org":true,"ch.eu.org":true,"cn.eu.org":true,"cy.eu.org":true,"cz.eu.org":true,"de.eu.org":true,"dk.eu.org":true,"edu.eu.org":true,"ee.eu.org":true,"es.eu.org":true,"fi.eu.org":true,"fr.eu.org":true,"gr.eu.org":true,"hr.eu.org":true,"hu.eu.org":true,"ie.eu.org":true,"il.eu.org":true,"in.eu.org":true,"int.eu.org":true,"is.eu.org":true,"it.eu.org":true,"jp.eu.org":true,"kr.eu.org":true,"lt.eu.org":true,"lu.eu.org":true,"lv.eu.org":true,"mc.eu.org":true,"me.eu.org":true,"mk.eu.org":true,"mt.eu.org":true,"my.eu.org":true,"net.eu.org":true,"ng.eu.org":true,"nl.eu.org":true,"no.eu.org":true,"nz.eu.org":true,"paris.eu.org":true,"pl.eu.org":true,"pt.eu.org":true,"q-a.eu.org":true,"ro.eu.org":true,"ru.eu.org":true,"se.eu.org":true,"si.eu.org":true,"sk.eu.org":true,"tr.eu.org":true,"uk.eu.org":true,"us.eu.org":true,"eu-1.evennode.com":true,"eu-2.evennode.com":true,"eu-3.evennode.com":true,"eu-4.evennode.com":true,"us-1.evennode.com":true,"us-2.evennode.com":true,"us-3.evennode.com":true,"us-4.evennode.com":true,"twmail.cc":true,"twmail.net":true,"twmail.org":true,"mymailer.com.tw":true,"url.tw":true,"apps.fbsbx.com":true,"ru.net":true,"adygeya.ru":true,"bashkiria.ru":true,"bir.ru":true,"cbg.ru":true,"com.ru":true,"dagestan.ru":true,"grozny.ru":true,"kalmykia.ru":true,"kustanai.ru":true,"marine.ru":true,"mordovia.ru":true,"msk.ru":true,"mytis.ru":true,"nalchik.ru":true,"nov.ru":true,"pyatigorsk.ru":true,"spb.ru":true,"vladikavkaz.ru":true,"vladimir.ru":true,"abkhazia.su":true,"adygeya.su":true,"aktyubinsk.su":true,"arkhangelsk.su":true,"armenia.su":true,"ashgabad.su":true,"azerbaijan.su":true,"balashov.su":true,"bashkiria.su":true,"bryansk.su":true,"bukhara.su":true,"chimkent.su":true,"dagestan.su":true,"east-kazakhstan.su":true,"exnet.su":true,"georgia.su":true,"grozny.su":true,"ivanovo.su":true,"jambyl.su":true,"kalmykia.su":true,"kaluga.su":true,"karacol.su":true,"karaganda.su":true,"karelia.su":true,"khakassia.su":true,"krasnodar.su":true,"kurgan.su":true,"kustanai.su":true,"lenug.su":true,"mangyshlak.su":true,"mordovia.su":true,"msk.su":true,"murmansk.su":true,"nalchik.su":true,"navoi.su":true,"north-kazakhstan.su":true,"nov.su":true,"obninsk.su":true,"penza.su":true,"pokrovsk.su":true,"sochi.su":true,"spb.su":true,"tashkent.su":true,"termez.su":true,"togliatti.su":true,"troitsk.su":true,"tselinograd.su":true,"tula.su":true,"tuva.su":true,"vladikavkaz.su":true,"vladimir.su":true,"vologda.su":true,"channelsdvr.net":true,"fastlylb.net":true,"map.fastlylb.net":true,"freetls.fastly.net":true,"map.fastly.net":true,"a.prod.fastly.net":true,"global.prod.fastly.net":true,"a.ssl.fastly.net":true,"b.ssl.fastly.net":true,"global.ssl.fastly.net":true,"fhapp.xyz":true,"fedorainfracloud.org":true,"fedorapeople.org":true,"cloud.fedoraproject.org":true,"app.os.fedoraproject.org":true,"app.os.stg.fedoraproject.org":true,"filegear.me":true,"firebaseapp.com":true,"flynnhub.com":true,"flynnhosting.net":true,"freebox-os.com":true,"freeboxos.com":true,"fbx-os.fr":true,"fbxos.fr":true,"freebox-os.fr":true,"freeboxos.fr":true,"*.futurecms.at":true,"futurehosting.at":true,"futuremailing.at":true,"*.ex.ortsinfo.at":true,"*.kunden.ortsinfo.at":true,"*.statics.cloud":true,"service.gov.uk":true,"github.io":true,"githubusercontent.com":true,"gitlab.io":true,"homeoffice.gov.uk":true,"ro.im":true,"shop.ro":true,"goip.de":true,"*.0emm.com":true,"appspot.com":true,"blogspot.ae":true,"blogspot.al":true,"blogspot.am":true,"blogspot.ba":true,"blogspot.be":true,"blogspot.bg":true,"blogspot.bj":true,"blogspot.ca":true,"blogspot.cf":true,"blogspot.ch":true,"blogspot.cl":true,"blogspot.co.at":true,"blogspot.co.id":true,"blogspot.co.il":true,"blogspot.co.ke":true,"blogspot.co.nz":true,"blogspot.co.uk":true,"blogspot.co.za":true,"blogspot.com":true,"blogspot.com.ar":true,"blogspot.com.au":true,"blogspot.com.br":true,"blogspot.com.by":true,"blogspot.com.co":true,"blogspot.com.cy":true,"blogspot.com.ee":true,"blogspot.com.eg":true,"blogspot.com.es":true,"blogspot.com.mt":true,"blogspot.com.ng":true,"blogspot.com.tr":true,"blogspot.com.uy":true,"blogspot.cv":true,"blogspot.cz":true,"blogspot.de":true,"blogspot.dk":true,"blogspot.fi":true,"blogspot.fr":true,"blogspot.gr":true,"blogspot.hk":true,"blogspot.hr":true,"blogspot.hu":true,"blogspot.ie":true,"blogspot.in":true,"blogspot.is":true,"blogspot.it":true,"blogspot.jp":true,"blogspot.kr":true,"blogspot.li":true,"blogspot.lt":true,"blogspot.lu":true,"blogspot.md":true,"blogspot.mk":true,"blogspot.mr":true,"blogspot.mx":true,"blogspot.my":true,"blogspot.nl":true,"blogspot.no":true,"blogspot.pe":true,"blogspot.pt":true,"blogspot.qa":true,"blogspot.re":true,"blogspot.ro":true,"blogspot.rs":true,"blogspot.ru":true,"blogspot.se":true,"blogspot.sg":true,"blogspot.si":true,"blogspot.sk":true,"blogspot.sn":true,"blogspot.td":true,"blogspot.tw":true,"blogspot.ug":true,"blogspot.vn":true,"cloudfunctions.net":true,"cloud.goog":true,"codespot.com":true,"googleapis.com":true,"googlecode.com":true,"pagespeedmobilizer.com":true,"publishproxy.com":true,"withgoogle.com":true,"withyoutube.com":true,"hashbang.sh":true,"hasura-app.io":true,"hepforge.org":true,"herokuapp.com":true,"herokussl.com":true,"moonscale.net":true,"iki.fi":true,"biz.at":true,"info.at":true,"info.cx":true,"ac.leg.br":true,"al.leg.br":true,"am.leg.br":true,"ap.leg.br":true,"ba.leg.br":true,"ce.leg.br":true,"df.leg.br":true,"es.leg.br":true,"go.leg.br":true,"ma.leg.br":true,"mg.leg.br":true,"ms.leg.br":true,"mt.leg.br":true,"pa.leg.br":true,"pb.leg.br":true,"pe.leg.br":true,"pi.leg.br":true,"pr.leg.br":true,"rj.leg.br":true,"rn.leg.br":true,"ro.leg.br":true,"rr.leg.br":true,"rs.leg.br":true,"sc.leg.br":true,"se.leg.br":true,"sp.leg.br":true,"to.leg.br":true,"pixolino.com":true,"ipifony.net":true,"*.triton.zone":true,"*.cns.joyent.com":true,"js.org":true,"keymachine.de":true,"knightpoint.systems":true,"co.krd":true,"edu.krd":true,"git-repos.de":true,"lcube-server.de":true,"svn-repos.de":true,"linkyard.cloud":true,"linkyard-cloud.ch":true,"we.bs":true,"barsy.bg":true,"barsyonline.com":true,"barsy.de":true,"barsy.eu":true,"barsy.in":true,"barsy.net":true,"barsy.online":true,"barsy.support":true,"*.magentosite.cloud":true,"hb.cldmail.ru":true,"cloud.metacentrum.cz":true,"custom.metacentrum.cz":true,"meteorapp.com":true,"eu.meteorapp.com":true,"co.pl":true,"azurewebsites.net":true,"azure-mobile.net":true,"cloudapp.net":true,"mozilla-iot.org":true,"bmoattachments.org":true,"net.ru":true,"org.ru":true,"pp.ru":true,"bitballoon.com":true,"netlify.com":true,"4u.com":true,"ngrok.io":true,"nh-serv.co.uk":true,"nfshost.com":true,"nsupdate.info":true,"nerdpol.ovh":true,"blogsyte.com":true,"brasilia.me":true,"cable-modem.org":true,"ciscofreak.com":true,"collegefan.org":true,"couchpotatofries.org":true,"damnserver.com":true,"ddns.me":true,"ditchyourip.com":true,"dnsfor.me":true,"dnsiskinky.com":true,"dvrcam.info":true,"dynns.com":true,"eating-organic.net":true,"fantasyleague.cc":true,"geekgalaxy.com":true,"golffan.us":true,"health-carereform.com":true,"homesecuritymac.com":true,"homesecuritypc.com":true,"hopto.me":true,"ilovecollege.info":true,"loginto.me":true,"mlbfan.org":true,"mmafan.biz":true,"myactivedirectory.com":true,"mydissent.net":true,"myeffect.net":true,"mymediapc.net":true,"mypsx.net":true,"mysecuritycamera.com":true,"mysecuritycamera.net":true,"mysecuritycamera.org":true,"net-freaks.com":true,"nflfan.org":true,"nhlfan.net":true,"no-ip.ca":true,"no-ip.co.uk":true,"no-ip.net":true,"noip.us":true,"onthewifi.com":true,"pgafan.net":true,"point2this.com":true,"pointto.us":true,"privatizehealthinsurance.net":true,"quicksytes.com":true,"read-books.org":true,"securitytactics.com":true,"serveexchange.com":true,"servehumour.com":true,"servep2p.com":true,"servesarcasm.com":true,"stufftoread.com":true,"ufcfan.org":true,"unusualperson.com":true,"workisboring.com":true,"3utilities.com":true,"bounceme.net":true,"ddns.net":true,"ddnsking.com":true,"gotdns.ch":true,"hopto.org":true,"myftp.biz":true,"myftp.org":true,"myvnc.com":true,"no-ip.biz":true,"no-ip.info":true,"no-ip.org":true,"noip.me":true,"redirectme.net":true,"servebeer.com":true,"serveblog.net":true,"servecounterstrike.com":true,"serveftp.com":true,"servegame.com":true,"servehalflife.com":true,"servehttp.com":true,"serveirc.com":true,"serveminecraft.net":true,"servemp3.com":true,"servepics.com":true,"servequake.com":true,"sytes.net":true,"webhop.me":true,"zapto.org":true,"stage.nodeart.io":true,"nodum.co":true,"nodum.io":true,"nyc.mn":true,"nom.ae":true,"nom.ai":true,"nom.al":true,"nym.by":true,"nym.bz":true,"nom.cl":true,"nom.gd":true,"nom.gl":true,"nym.gr":true,"nom.gt":true,"nom.hn":true,"nom.im":true,"nym.kz":true,"nym.la":true,"nom.li":true,"nym.li":true,"nym.lt":true,"nym.lu":true,"nym.me":true,"nom.mk":true,"nym.mx":true,"nom.nu":true,"nym.nz":true,"nym.pe":true,"nym.pt":true,"nom.pw":true,"nom.qa":true,"nom.rs":true,"nom.si":true,"nym.sk":true,"nym.su":true,"nym.sx":true,"nym.tw":true,"nom.ug":true,"nom.uy":true,"nom.vc":true,"nom.vg":true,"cya.gg":true,"nid.io":true,"opencraft.hosting":true,"operaunite.com":true,"outsystemscloud.com":true,"ownprovider.com":true,"oy.lc":true,"pgfog.com":true,"pagefrontapp.com":true,"art.pl":true,"gliwice.pl":true,"krakow.pl":true,"poznan.pl":true,"wroc.pl":true,"zakopane.pl":true,"pantheonsite.io":true,"gotpantheon.com":true,"mypep.link":true,"on-web.fr":true,"*.platform.sh":true,"*.platformsh.site":true,"xen.prgmr.com":true,"priv.at":true,"protonet.io":true,"chirurgiens-dentistes-en-france.fr":true,"byen.site":true,"qa2.com":true,"dev-myqnapcloud.com":true,"alpha-myqnapcloud.com":true,"myqnapcloud.com":true,"*.quipelements.com":true,"vapor.cloud":true,"vaporcloud.io":true,"rackmaze.com":true,"rackmaze.net":true,"rhcloud.com":true,"resindevice.io":true,"devices.resinstaging.io":true,"hzc.io":true,"wellbeingzone.eu":true,"ptplus.fit":true,"wellbeingzone.co.uk":true,"sandcats.io":true,"logoip.de":true,"logoip.com":true,"schokokeks.net":true,"scrysec.com":true,"firewall-gateway.com":true,"firewall-gateway.de":true,"my-gateway.de":true,"my-router.de":true,"spdns.de":true,"spdns.eu":true,"firewall-gateway.net":true,"my-firewall.org":true,"myfirewall.org":true,"spdns.org":true,"*.s5y.io":true,"*.sensiosite.cloud":true,"biz.ua":true,"co.ua":true,"pp.ua":true,"shiftedit.io":true,"myshopblocks.com":true,"1kapp.com":true,"appchizi.com":true,"applinzi.com":true,"sinaapp.com":true,"vipsinaapp.com":true,"bounty-full.com":true,"alpha.bounty-full.com":true,"beta.bounty-full.com":true,"static.land":true,"dev.static.land":true,"sites.static.land":true,"apps.lair.io":true,"*.stolos.io":true,"spacekit.io":true,"stackspace.space":true,"storj.farm":true,"temp-dns.com":true,"diskstation.me":true,"dscloud.biz":true,"dscloud.me":true,"dscloud.mobi":true,"dsmynas.com":true,"dsmynas.net":true,"dsmynas.org":true,"familyds.com":true,"familyds.net":true,"familyds.org":true,"i234.me":true,"myds.me":true,"synology.me":true,"vpnplus.to":true,"taifun-dns.de":true,"gda.pl":true,"gdansk.pl":true,"gdynia.pl":true,"med.pl":true,"sopot.pl":true,"cust.dev.thingdust.io":true,"cust.disrec.thingdust.io":true,"cust.prod.thingdust.io":true,"cust.testing.thingdust.io":true,"bloxcms.com":true,"townnews-staging.com":true,"12hp.at":true,"2ix.at":true,"4lima.at":true,"lima-city.at":true,"12hp.ch":true,"2ix.ch":true,"4lima.ch":true,"lima-city.ch":true,"trafficplex.cloud":true,"de.cool":true,"12hp.de":true,"2ix.de":true,"4lima.de":true,"lima-city.de":true,"1337.pictures":true,"clan.rip":true,"lima-city.rocks":true,"webspace.rocks":true,"lima.zone":true,"*.transurl.be":true,"*.transurl.eu":true,"*.transurl.nl":true,"tuxfamily.org":true,"dd-dns.de":true,"diskstation.eu":true,"diskstation.org":true,"dray-dns.de":true,"draydns.de":true,"dyn-vpn.de":true,"dynvpn.de":true,"mein-vigor.de":true,"my-vigor.de":true,"my-wan.de":true,"syno-ds.de":true,"synology-diskstation.de":true,"synology-ds.de":true,"uber.space":true,"hk.com":true,"hk.org":true,"ltd.hk":true,"inc.hk":true,"lib.de.us":true,"2038.io":true,"router.management":true,"v-info.info":true,"wedeploy.io":true,"wedeploy.me":true,"wedeploy.sh":true,"remotewd.com":true,"wmflabs.org":true,"cistron.nl":true,"demon.nl":true,"xs4all.space":true,"official.academy":true,"yolasite.com":true,"ybo.faith":true,"yombo.me":true,"homelink.one":true,"ybo.party":true,"ybo.review":true,"ybo.science":true,"ybo.trade":true,"za.net":true,"za.org":true,"now.sh":true});
+
+// END of automatically generated file
diff --git a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js b/deps/npm/node_modules/tough-cookie/lib/store.js
index bce52925db..bce52925db 100644
--- a/deps/npm/node_modules/request/node_modules/tough-cookie/lib/store.js
+++ b/deps/npm/node_modules/tough-cookie/lib/store.js
diff --git a/deps/npm/node_modules/tough-cookie/package.json b/deps/npm/node_modules/tough-cookie/package.json
new file mode 100644
index 0000000000..121d82823a
--- /dev/null
+++ b/deps/npm/node_modules/tough-cookie/package.json
@@ -0,0 +1,92 @@
+{
+ "_from": "tough-cookie@~2.3.3",
+ "_id": "tough-cookie@2.3.4",
+ "_inBundle": false,
+ "_integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
+ "_location": "/tough-cookie",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "tough-cookie@~2.3.3",
+ "name": "tough-cookie",
+ "escapedName": "tough-cookie",
+ "rawSpec": "~2.3.3",
+ "saveSpec": null,
+ "fetchSpec": "~2.3.3"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
+ "_shasum": "ec60cee38ac675063ffc97a5c18970578ee83655",
+ "_spec": "tough-cookie@~2.3.3",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Jeremy Stashewsky",
+ "email": "jstashewsky@salesforce.com"
+ },
+ "bugs": {
+ "url": "https://github.com/salesforce/tough-cookie/issues"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Alexander Savin"
+ },
+ {
+ "name": "Ian Livingstone"
+ },
+ {
+ "name": "Ivan Nikulin"
+ },
+ {
+ "name": "Lalit Kapoor"
+ },
+ {
+ "name": "Sam Thompson"
+ },
+ {
+ "name": "Sebastian Mayr"
+ }
+ ],
+ "dependencies": {
+ "punycode": "^1.4.1"
+ },
+ "deprecated": false,
+ "description": "RFC6265 Cookies and Cookie Jar for node.js",
+ "devDependencies": {
+ "async": "^1.4.2",
+ "string.prototype.repeat": "^0.2.0",
+ "vows": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=0.8"
+ },
+ "files": [
+ "lib"
+ ],
+ "homepage": "https://github.com/salesforce/tough-cookie",
+ "keywords": [
+ "HTTP",
+ "cookie",
+ "cookies",
+ "set-cookie",
+ "cookiejar",
+ "jar",
+ "RFC6265",
+ "RFC2965"
+ ],
+ "license": "BSD-3-Clause",
+ "main": "./lib/cookie",
+ "name": "tough-cookie",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/salesforce/tough-cookie.git"
+ },
+ "scripts": {
+ "suffixup": "curl -o public_suffix_list.dat https://publicsuffix.org/list/public_suffix_list.dat && ./generate-pubsuffix.js",
+ "test": "vows test/*_test.js"
+ },
+ "version": "2.3.4"
+}
diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE b/deps/npm/node_modules/tunnel-agent/LICENSE
index a4a9aee0c2..a4a9aee0c2 100644
--- a/deps/npm/node_modules/request/node_modules/tunnel-agent/LICENSE
+++ b/deps/npm/node_modules/tunnel-agent/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/README.md b/deps/npm/node_modules/tunnel-agent/README.md
index bb533d56b1..bb533d56b1 100644
--- a/deps/npm/node_modules/request/node_modules/tunnel-agent/README.md
+++ b/deps/npm/node_modules/tunnel-agent/README.md
diff --git a/deps/npm/node_modules/request/node_modules/tunnel-agent/index.js b/deps/npm/node_modules/tunnel-agent/index.js
index 3ee9abc507..3ee9abc507 100644
--- a/deps/npm/node_modules/request/node_modules/tunnel-agent/index.js
+++ b/deps/npm/node_modules/tunnel-agent/index.js
diff --git a/deps/npm/node_modules/tunnel-agent/package.json b/deps/npm/node_modules/tunnel-agent/package.json
new file mode 100644
index 0000000000..3045d3378e
--- /dev/null
+++ b/deps/npm/node_modules/tunnel-agent/package.json
@@ -0,0 +1,55 @@
+{
+ "_from": "tunnel-agent@^0.6.0",
+ "_id": "tunnel-agent@0.6.0",
+ "_inBundle": false,
+ "_integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+ "_location": "/tunnel-agent",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "tunnel-agent@^0.6.0",
+ "name": "tunnel-agent",
+ "escapedName": "tunnel-agent",
+ "rawSpec": "^0.6.0",
+ "saveSpec": null,
+ "fetchSpec": "^0.6.0"
+ },
+ "_requiredBy": [
+ "/request"
+ ],
+ "_resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "_shasum": "27a5dea06b36b04a0a9966774b290868f0fc40fd",
+ "_spec": "tunnel-agent@^0.6.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/request",
+ "author": {
+ "name": "Mikeal Rogers",
+ "email": "mikeal.rogers@gmail.com",
+ "url": "http://www.futurealoof.com"
+ },
+ "bugs": {
+ "url": "https://github.com/mikeal/tunnel-agent/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "deprecated": false,
+ "description": "HTTP proxy tunneling agent. Formerly part of mikeal/request, now a standalone module.",
+ "devDependencies": {},
+ "engines": {
+ "node": "*"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/mikeal/tunnel-agent#readme",
+ "license": "Apache-2.0",
+ "main": "index.js",
+ "name": "tunnel-agent",
+ "optionalDependencies": {},
+ "repository": {
+ "url": "git+https://github.com/mikeal/tunnel-agent.git"
+ },
+ "version": "0.6.0"
+}
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore b/deps/npm/node_modules/tweetnacl/.npmignore
index 7d98dcbd2d..7d98dcbd2d 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/.npmignore
+++ b/deps/npm/node_modules/tweetnacl/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/AUTHORS.md b/deps/npm/node_modules/tweetnacl/AUTHORS.md
index 6d74d40694..6d74d40694 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/AUTHORS.md
+++ b/deps/npm/node_modules/tweetnacl/AUTHORS.md
diff --git a/deps/npm/node_modules/tweetnacl/CHANGELOG.md b/deps/npm/node_modules/tweetnacl/CHANGELOG.md
new file mode 100644
index 0000000000..b6deabce44
--- /dev/null
+++ b/deps/npm/node_modules/tweetnacl/CHANGELOG.md
@@ -0,0 +1,221 @@
+TweetNaCl.js Changelog
+======================
+
+
+v0.14.5
+-------
+
+* Fixed incomplete return types in TypeScript typings.
+* Replaced COPYING.txt with LICENSE file, which now has public domain dedication
+ text from The Unlicense. License fields in package.json and bower.json have
+ been set to "Unlicense". The project was and will be in the public domain --
+ this change just makes it easier for automated tools to know about this fact by
+ using the widely recognized and SPDX-compatible template for public domain
+ dedication.
+
+
+v0.14.4
+-------
+
+* Added TypeScript type definitions (contributed by @AndSDev).
+* Improved benchmarking code.
+
+
+v0.14.3
+-------
+
+Fixed a bug in the fast version of Poly1305 and brought it back.
+
+Thanks to @floodyberry for promptly responding and fixing the original C code:
+
+> "The issue was not properly detecting if st->h was >= 2^130 - 5, coupled with
+> [testing mistake] not catching the failure. The chance of the bug affecting
+> anything in the real world is essentially zero luckily, but it's good to have
+> it fixed."
+
+https://github.com/floodyberry/poly1305-donna/issues/2#issuecomment-202698577
+
+
+v0.14.2
+-------
+
+Switched Poly1305 fast version back to original (slow) version due to a bug.
+
+
+v0.14.1
+-------
+
+No code changes, just tweaked packaging and added COPYING.txt.
+
+
+v0.14.0
+-------
+
+* **Breaking change!** All functions from `nacl.util` have been removed. These
+ functions are no longer available:
+
+ nacl.util.decodeUTF8
+ nacl.util.encodeUTF8
+ nacl.util.decodeBase64
+ nacl.util.encodeBase64
+
+ If want to continue using them, you can include
+ <https://github.com/dchest/tweetnacl-util-js> package:
+
+ <script src="nacl.min.js"></script>
+ <script src="nacl-util.min.js"></script>
+
+ or
+
+ var nacl = require('tweetnacl');
+ nacl.util = require('tweetnacl-util');
+
+ However it is recommended to use better packages that have wider
+ compatibility and better performance. Functions from `nacl.util` were never
+ intended to be robust solution for string conversion and were included for
+ convenience: cryptography library is not the right place for them.
+
+ Currently calling these functions will throw error pointing to
+ `tweetnacl-util-js` (in the next version this error message will be removed).
+
+* Improved detection of available random number generators, making it possible
+ to use `nacl.randomBytes` and related functions in Web Workers without
+ changes.
+
+* Changes to testing (see README).
+
+
+v0.13.3
+-------
+
+No code changes.
+
+* Reverted license field in package.json to "Public domain".
+
+* Fixed typo in README.
+
+
+v0.13.2
+-------
+
+* Fixed undefined variable bug in fast version of Poly1305. No worries, this
+ bug was *never* triggered.
+
+* Specified CC0 public domain dedication.
+
+* Updated development dependencies.
+
+
+v0.13.1
+-------
+
+* Exclude `crypto` and `buffer` modules from browserify builds.
+
+
+v0.13.0
+-------
+
+* Made `nacl-fast` the default version in NPM package. Now
+ `require("tweetnacl")` will use fast version; to get the original version,
+ use `require("tweetnacl/nacl.js")`.
+
+* Cleanup temporary array after generating random bytes.
+
+
+v0.12.2
+-------
+
+* Improved performance of curve operations, making `nacl.scalarMult`, `nacl.box`,
+ `nacl.sign` and related functions up to 3x faster in `nacl-fast` version.
+
+
+v0.12.1
+-------
+
+* Significantly improved performance of Salsa20 (~1.5x faster) and
+ Poly1305 (~3.5x faster) in `nacl-fast` version.
+
+
+v0.12.0
+-------
+
+* Instead of using the given secret key directly, TweetNaCl.js now copies it to
+ a new array in `nacl.box.keyPair.fromSecretKey` and
+ `nacl.sign.keyPair.fromSecretKey`.
+
+
+v0.11.2
+-------
+
+* Added new constant: `nacl.sign.seedLength`.
+
+
+v0.11.1
+-------
+
+* Even faster hash for both short and long inputs (in `nacl-fast`).
+
+
+v0.11.0
+-------
+
+* Implement `nacl.sign.keyPair.fromSeed` to enable creation of sign key pairs
+ deterministically from a 32-byte seed. (It behaves like
+ [libsodium's](http://doc.libsodium.org/public-key_cryptography/public-key_signatures.html)
+ `crypto_sign_seed_keypair`: the seed becomes a secret part of the secret key.)
+
+* Fast version now has an improved hash implementation that is 2x-5x faster.
+
+* Fixed benchmarks, which may have produced incorrect measurements.
+
+
+v0.10.1
+-------
+
+* Exported undocumented `nacl.lowlevel.crypto_core_hsalsa20`.
+
+
+v0.10.0
+-------
+
+* **Signature API breaking change!** `nacl.sign` and `nacl.sign.open` now deal
+ with signed messages, and new `nacl.sign.detached` and
+ `nacl.sign.detached.verify` are available.
+
+ Previously, `nacl.sign` returned a signature, and `nacl.sign.open` accepted a
+ message and "detached" signature. This was unlike NaCl's API, which dealt with
+ signed messages (concatenation of signature and message).
+
+ The new API is:
+
+ nacl.sign(message, secretKey) -> signedMessage
+ nacl.sign.open(signedMessage, publicKey) -> message | null
+
+ Since detached signatures are common, two new API functions were introduced:
+
+ nacl.sign.detached(message, secretKey) -> signature
+ nacl.sign.detached.verify(message, signature, publicKey) -> true | false
+
+ (Note that it's `verify`, not `open`, and it returns a boolean value, unlike
+ `open`, which returns an "unsigned" message.)
+
+* NPM package now comes without `test` directory to keep it small.
+
+
+v0.9.2
+------
+
+* Improved documentation.
+* Fast version: increased theoretical message size limit from 2^32-1 to 2^52
+ bytes in Poly1305 (and thus, secretbox and box). However this has no impact
+ in practice since JavaScript arrays or ArrayBuffers are limited to 32-bit
+ indexes, and most implementations won't allocate more than a gigabyte or so.
+ (Obviously, there are no tests for the correctness of implementation.) Also,
+ it's not recommended to use messages that large without splitting them into
+ smaller packets anyway.
+
+
+v0.9.1
+------
+
+* Initial release
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/LICENSE b/deps/npm/node_modules/tweetnacl/LICENSE
index cf1ab25da0..cf1ab25da0 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/LICENSE
+++ b/deps/npm/node_modules/tweetnacl/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md b/deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md
index a8eb4a9a9a..a8eb4a9a9a 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md
+++ b/deps/npm/node_modules/tweetnacl/PULL_REQUEST_TEMPLATE.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md b/deps/npm/node_modules/tweetnacl/README.md
index ffb6871d36..ffb6871d36 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/README.md
+++ b/deps/npm/node_modules/tweetnacl/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js b/deps/npm/node_modules/tweetnacl/nacl-fast.js
index 5e4562fe89..5e4562fe89 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.js
+++ b/deps/npm/node_modules/tweetnacl/nacl-fast.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js b/deps/npm/node_modules/tweetnacl/nacl-fast.min.js
index 8bc47daa03..8bc47daa03 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl-fast.min.js
+++ b/deps/npm/node_modules/tweetnacl/nacl-fast.min.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.d.ts b/deps/npm/node_modules/tweetnacl/nacl.d.ts
index 964e7dca3c..964e7dca3c 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.d.ts
+++ b/deps/npm/node_modules/tweetnacl/nacl.d.ts
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js b/deps/npm/node_modules/tweetnacl/nacl.js
index f72dd78d12..f72dd78d12 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.js
+++ b/deps/npm/node_modules/tweetnacl/nacl.js
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js b/deps/npm/node_modules/tweetnacl/nacl.min.js
index 4484974e61..4484974e61 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/sshpk/node_modules/tweetnacl/nacl.min.js
+++ b/deps/npm/node_modules/tweetnacl/nacl.min.js
diff --git a/deps/npm/node_modules/tweetnacl/package.json b/deps/npm/node_modules/tweetnacl/package.json
new file mode 100644
index 0000000000..9ba581ed07
--- /dev/null
+++ b/deps/npm/node_modules/tweetnacl/package.json
@@ -0,0 +1,86 @@
+{
+ "_from": "tweetnacl@~0.14.0",
+ "_id": "tweetnacl@0.14.5",
+ "_inBundle": false,
+ "_integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "_location": "/tweetnacl",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "tweetnacl@~0.14.0",
+ "name": "tweetnacl",
+ "escapedName": "tweetnacl",
+ "rawSpec": "~0.14.0",
+ "saveSpec": null,
+ "fetchSpec": "~0.14.0"
+ },
+ "_requiredBy": [
+ "/bcrypt-pbkdf",
+ "/sshpk"
+ ],
+ "_resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "_shasum": "5ae68177f192d4456269d108afa93ff8743f4f64",
+ "_spec": "tweetnacl@~0.14.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/sshpk",
+ "author": {
+ "name": "TweetNaCl-js contributors"
+ },
+ "browser": {
+ "buffer": false,
+ "crypto": false
+ },
+ "bugs": {
+ "url": "https://github.com/dchest/tweetnacl-js/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Port of TweetNaCl cryptographic library to JavaScript",
+ "devDependencies": {
+ "browserify": "^13.0.0",
+ "eslint": "^2.2.0",
+ "faucet": "^0.0.1",
+ "tap-browser-color": "^0.1.2",
+ "tape": "^4.4.0",
+ "tape-run": "^2.1.3",
+ "tweetnacl-util": "^0.13.3",
+ "uglify-js": "^2.6.1"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "homepage": "https://tweetnacl.js.org",
+ "keywords": [
+ "crypto",
+ "cryptography",
+ "curve25519",
+ "ed25519",
+ "encrypt",
+ "hash",
+ "key",
+ "nacl",
+ "poly1305",
+ "public",
+ "salsa20",
+ "signatures"
+ ],
+ "license": "Unlicense",
+ "main": "nacl-fast.js",
+ "name": "tweetnacl",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/dchest/tweetnacl-js.git"
+ },
+ "scripts": {
+ "bench": "node test/benchmark/bench.js",
+ "build": "uglifyjs nacl.js -c -m -o nacl.min.js && uglifyjs nacl-fast.js -c -m -o nacl-fast.min.js",
+ "build-test-browser": "browserify test/browser/init.js test/*.js | uglifyjs -c -m -o test/browser/_bundle.js 2>/dev/null && browserify test/browser/init.js test/*.quick.js | uglifyjs -c -m -o test/browser/_bundle-quick.js 2>/dev/null",
+ "lint": "eslint nacl.js nacl-fast.js test/*.js test/benchmark/*.js",
+ "test": "npm run test-node-all && npm run test-browser",
+ "test-browser": "NACL_SRC=${NACL_SRC:='nacl.min.js'} && npm run build-test-browser && cat $NACL_SRC test/browser/_bundle.js | tape-run | faucet",
+ "test-node": "tape test/*.js | faucet",
+ "test-node-all": "make -C test/c && tape test/*.js test/c/*.js | faucet"
+ },
+ "types": "nacl.d.ts",
+ "version": "0.14.5"
+}
diff --git a/deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml b/deps/npm/node_modules/typedarray/.travis.yml
index cc4dba29d9..cc4dba29d9 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/isarray/.travis.yml
+++ b/deps/npm/node_modules/typedarray/.travis.yml
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/LICENSE b/deps/npm/node_modules/typedarray/LICENSE
index 11adfaec9e..11adfaec9e 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/LICENSE
+++ b/deps/npm/node_modules/typedarray/LICENSE
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/example/tarray.js b/deps/npm/node_modules/typedarray/example/tarray.js
index 8423d7c9b1..8423d7c9b1 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/example/tarray.js
+++ b/deps/npm/node_modules/typedarray/example/tarray.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/index.js b/deps/npm/node_modules/typedarray/index.js
index 5e540841f4..5e540841f4 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/index.js
+++ b/deps/npm/node_modules/typedarray/index.js
diff --git a/deps/npm/node_modules/typedarray/package.json b/deps/npm/node_modules/typedarray/package.json
new file mode 100644
index 0000000000..535bb63cd4
--- /dev/null
+++ b/deps/npm/node_modules/typedarray/package.json
@@ -0,0 +1,83 @@
+{
+ "_from": "typedarray@^0.0.6",
+ "_id": "typedarray@0.0.6",
+ "_inBundle": false,
+ "_integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
+ "_location": "/typedarray",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "typedarray@^0.0.6",
+ "name": "typedarray",
+ "escapedName": "typedarray",
+ "rawSpec": "^0.0.6",
+ "saveSpec": null,
+ "fetchSpec": "^0.0.6"
+ },
+ "_requiredBy": [
+ "/concat-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "_shasum": "867ac74e3864187b1d3d47d996a78ec5c8830777",
+ "_spec": "typedarray@^0.0.6",
+ "_where": "/Users/rebecca/code/npm/node_modules/concat-stream",
+ "author": {
+ "name": "James Halliday",
+ "email": "mail@substack.net",
+ "url": "http://substack.net"
+ },
+ "bugs": {
+ "url": "https://github.com/substack/typedarray/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "TypedArray polyfill for old browsers",
+ "devDependencies": {
+ "tape": "~2.3.2"
+ },
+ "homepage": "https://github.com/substack/typedarray",
+ "keywords": [
+ "ArrayBuffer",
+ "DataView",
+ "Float32Array",
+ "Float64Array",
+ "Int8Array",
+ "Int16Array",
+ "Int32Array",
+ "Uint8Array",
+ "Uint8ClampedArray",
+ "Uint16Array",
+ "Uint32Array",
+ "typed",
+ "array",
+ "polyfill"
+ ],
+ "license": "MIT",
+ "main": "index.js",
+ "name": "typedarray",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/substack/typedarray.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js test/server/*.js"
+ },
+ "testling": {
+ "files": "test/*.js",
+ "browsers": [
+ "ie/6..latest",
+ "firefox/16..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": "0.0.6"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/readme.markdown b/deps/npm/node_modules/typedarray/readme.markdown
index d18f6f7197..d18f6f7197 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/readme.markdown
+++ b/deps/npm/node_modules/typedarray/readme.markdown
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js b/deps/npm/node_modules/typedarray/test/server/undef_globals.js
index e57dabdceb..e57dabdceb 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/server/undef_globals.js
+++ b/deps/npm/node_modules/typedarray/test/server/undef_globals.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/tarray.js b/deps/npm/node_modules/typedarray/test/tarray.js
index df596a34f2..df596a34f2 100644
--- a/deps/npm/node_modules/mississippi/node_modules/concat-stream/node_modules/typedarray/test/tarray.js
+++ b/deps/npm/node_modules/typedarray/test/tarray.js
diff --git a/deps/npm/node_modules/uid-number/package.json b/deps/npm/node_modules/uid-number/package.json
index f1d540783e..6c5b27ea3c 100644
--- a/deps/npm/node_modules/uid-number/package.json
+++ b/deps/npm/node_modules/uid-number/package.json
@@ -1,6 +1,13 @@
{
+ "_args": [
+ [
+ "uid-number@0.0.6",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "uid-number@0.0.6",
"_id": "uid-number@0.0.6",
+ "_inBundle": false,
"_integrity": "sha1-DqEOgDXo61uOREnwbaHHMGY7qoE=",
"_location": "/uid-number",
"_phantomChildren": {},
@@ -15,25 +22,21 @@
"fetchSpec": "0.0.6"
},
"_requiredBy": [
- "/"
+ "/",
+ "/npm-lifecycle"
],
"_resolved": "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz",
- "_shasum": "0ea10e8035e8eb5b8e4449f06da1c730663baa81",
- "_shrinkwrap": null,
- "_spec": "uid-number@0.0.6",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "0.0.6",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/isaacs/uid-number/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Convert a username/group name to a uid/gid number",
"devDependencies": {},
"engines": {
@@ -44,7 +47,6 @@
"main": "uid-number.js",
"name": "uid-number",
"optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git://github.com/isaacs/uid-number.git"
diff --git a/deps/npm/node_modules/umask/package.json b/deps/npm/node_modules/umask/package.json
index 0e15048626..2db4afee16 100644
--- a/deps/npm/node_modules/umask/package.json
+++ b/deps/npm/node_modules/umask/package.json
@@ -1,38 +1,40 @@
{
- "_from": "umask@~1.1.0",
+ "_args": [
+ [
+ "umask@1.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "umask@1.1.0",
"_id": "umask@1.1.0",
+ "_inBundle": false,
"_integrity": "sha1-8pzr8B31F5ErtY/5xOUP3o4zMg0=",
"_location": "/umask",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "umask@~1.1.0",
+ "raw": "umask@1.1.0",
"name": "umask",
"escapedName": "umask",
- "rawSpec": "~1.1.0",
+ "rawSpec": "1.1.0",
"saveSpec": null,
- "fetchSpec": "~1.1.0"
+ "fetchSpec": "1.1.0"
},
"_requiredBy": [
- "/"
+ "/",
+ "/npm-lifecycle"
],
"_resolved": "https://registry.npmjs.org/umask/-/umask-1.1.0.tgz",
- "_shasum": "f29cebf01df517912bb58ff9c4e50fde8e33320d",
- "_shrinkwrap": null,
- "_spec": "umask@~1.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sam Mikes",
"email": "smikes@cubane.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/smikes/umask/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "convert umask from string <-> number",
"devDependencies": {
"code": "^1.2.1",
@@ -46,8 +48,6 @@
"license": "MIT",
"main": "index.js",
"name": "umask",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/smikes/umask.git"
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md b/deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md
deleted file mode 100644
index 52de4277db..0000000000
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/README.md
+++ /dev/null
@@ -1,20 +0,0 @@
-unique-slug
-===========
-
-Generate a unique character string suitible for use in files and URLs.
-
-```
-var uniqueSlug = require('unique-slug')
-
-var randomSlug = uniqueSlug()
-var fileSlug = uniqueSlug('/etc/passwd')
-```
-
-### uniqueSlug(*str*) ā†’ String (8 chars)
-
-If *str* is passed in then the return value will be its murmur hash in
-hex.
-
-If *str* is not passed in, it will be 4 bytes coverted into 8 hex
-characters, generated by `crypto.pseudoRandomBytes`.
-
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json b/deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json
deleted file mode 100644
index a95932abe8..0000000000
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/package.json
+++ /dev/null
@@ -1,59 +0,0 @@
-{
- "_from": "unique-slug@^2.0.0",
- "_id": "unique-slug@2.0.0",
- "_integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
- "_location": "/unique-filename/unique-slug",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "unique-slug@^2.0.0",
- "name": "unique-slug",
- "escapedName": "unique-slug",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/unique-filename"
- ],
- "_resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
- "_shasum": "db6676e7c7cc0629878ff196097c78855ae9f4ab",
- "_shrinkwrap": null,
- "_spec": "unique-slug@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/unique-filename",
- "author": {
- "name": "Rebecca Turner",
- "email": "me@re-becca.org",
- "url": "http://re-becca.org"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/iarna/unique-slug/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "imurmurhash": "^0.1.4"
- },
- "deprecated": false,
- "description": "Generate a unique character string suitible for use in files and URLs.",
- "devDependencies": {
- "standard": "^5.4.1",
- "tap": "^2.3.1"
- },
- "homepage": "https://github.com/iarna/unique-slug#readme",
- "keywords": [],
- "license": "ISC",
- "main": "index.js",
- "name": "unique-slug",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/iarna/unique-slug.git"
- },
- "scripts": {
- "test": "standard && tap --coverage test"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/unique-filename/package.json b/deps/npm/node_modules/unique-filename/package.json
index 883793a97e..f0b7074b28 100644
--- a/deps/npm/node_modules/unique-filename/package.json
+++ b/deps/npm/node_modules/unique-filename/package.json
@@ -1,45 +1,47 @@
{
- "_from": "unique-filename@~1.1.0",
+ "_args": [
+ [
+ "unique-filename@1.1.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "unique-filename@1.1.0",
"_id": "unique-filename@1.1.0",
+ "_inBundle": false,
"_integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=",
"_location": "/unique-filename",
- "_phantomChildren": {
- "imurmurhash": "0.1.4"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "unique-filename@~1.1.0",
+ "raw": "unique-filename@1.1.0",
"name": "unique-filename",
"escapedName": "unique-filename",
- "rawSpec": "~1.1.0",
+ "rawSpec": "1.1.0",
"saveSpec": null,
- "fetchSpec": "~1.1.0"
+ "fetchSpec": "1.1.0"
},
"_requiredBy": [
"/",
"/cacache",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache",
"/pacote"
],
"_resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz",
- "_shasum": "d05f2fe4032560871f30e93cbe735eea201514f3",
- "_shrinkwrap": null,
- "_spec": "unique-filename@~1.1.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.1.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
"email": "me@re-becca.org",
"url": "http://re-becca.org/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/iarna/unique-filename/issues"
},
- "bundleDependencies": false,
"dependencies": {
"unique-slug": "^2.0.0"
},
- "deprecated": false,
"description": "Generate a unique filename for use in temporary directories or caches.",
"devDependencies": {
"standard": "^5.4.1",
@@ -50,8 +52,6 @@
"license": "ISC",
"main": "index.js",
"name": "unique-filename",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/iarna/unique-filename.git"
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore b/deps/npm/node_modules/unique-slug/.npmignore
index 2833ae874d..2833ae874d 100644
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/.npmignore
+++ b/deps/npm/node_modules/unique-slug/.npmignore
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml b/deps/npm/node_modules/unique-slug/.travis.yml
index 3bc5d90c56..3bc5d90c56 100644
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/.travis.yml
+++ b/deps/npm/node_modules/unique-slug/.travis.yml
diff --git a/deps/npm/node_modules/unique-slug/README.md b/deps/npm/node_modules/unique-slug/README.md
new file mode 100644
index 0000000000..08f7a7b48f
--- /dev/null
+++ b/deps/npm/node_modules/unique-slug/README.md
@@ -0,0 +1,19 @@
+unique-slug
+===========
+
+Generate a unique character string suitible for use in files and URLs.
+
+```
+var uniqueSlug = require('unique-slug')
+
+var randomSlug = uniqueSlug()
+var fileSlug = uniqueSlug('/etc/passwd')
+```
+
+### uniqueSlug(*str*) ā†’ String (8 chars)
+
+If *str* is passed in then the return value will be its murmur hash in
+hex.
+
+If *str* is not passed in, it will be 4 bytes coverted into 8 hex
+characters, generated by `crypto.pseudoRandomBytes`.
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/index.js b/deps/npm/node_modules/unique-slug/index.js
index 7c5d6c751c..7c5d6c751c 100644
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/index.js
+++ b/deps/npm/node_modules/unique-slug/index.js
diff --git a/deps/npm/node_modules/unique-slug/package.json b/deps/npm/node_modules/unique-slug/package.json
new file mode 100644
index 0000000000..fb5e08b610
--- /dev/null
+++ b/deps/npm/node_modules/unique-slug/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "unique-slug@^2.0.0",
+ "_id": "unique-slug@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=",
+ "_location": "/unique-slug",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "unique-slug@^2.0.0",
+ "name": "unique-slug",
+ "escapedName": "unique-slug",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/unique-filename"
+ ],
+ "_resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz",
+ "_shasum": "db6676e7c7cc0629878ff196097c78855ae9f4ab",
+ "_spec": "unique-slug@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/unique-filename",
+ "author": {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org",
+ "url": "http://re-becca.org"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/unique-slug/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "imurmurhash": "^0.1.4"
+ },
+ "deprecated": false,
+ "description": "Generate a unique character string suitible for use in files and URLs.",
+ "devDependencies": {
+ "standard": "^5.4.1",
+ "tap": "^2.3.1"
+ },
+ "homepage": "https://github.com/iarna/unique-slug#readme",
+ "keywords": [],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "unique-slug",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/iarna/unique-slug.git"
+ },
+ "scripts": {
+ "test": "standard && tap --coverage test"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js b/deps/npm/node_modules/unique-slug/test/index.js
index 0f4ccad04a..0f4ccad04a 100644
--- a/deps/npm/node_modules/unique-filename/node_modules/unique-slug/test/index.js
+++ b/deps/npm/node_modules/unique-slug/test/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/index.js b/deps/npm/node_modules/unique-string/index.js
index 5bc7787f4b..5bc7787f4b 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/index.js
+++ b/deps/npm/node_modules/unique-string/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/license b/deps/npm/node_modules/unique-string/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/license
+++ b/deps/npm/node_modules/unique-string/license
diff --git a/deps/npm/node_modules/unique-string/package.json b/deps/npm/node_modules/unique-string/package.json
new file mode 100644
index 0000000000..c25934a4ab
--- /dev/null
+++ b/deps/npm/node_modules/unique-string/package.json
@@ -0,0 +1,76 @@
+{
+ "_from": "unique-string@^1.0.0",
+ "_id": "unique-string@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
+ "_location": "/unique-string",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "unique-string@^1.0.0",
+ "name": "unique-string",
+ "escapedName": "unique-string",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/configstore"
+ ],
+ "_resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "_shasum": "9e1057cca851abb93398f8b33ae187b99caec11a",
+ "_spec": "unique-string@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/configstore",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/unique-string/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "crypto-random-string": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Generate a unique random string",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/unique-string#readme",
+ "keywords": [
+ "unique",
+ "string",
+ "random",
+ "uniq",
+ "str",
+ "rand",
+ "text",
+ "id",
+ "identifier",
+ "slug",
+ "hex"
+ ],
+ "license": "MIT",
+ "name": "unique-string",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/unique-string.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.0",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/readme.md b/deps/npm/node_modules/unique-string/readme.md
index 5d5ac971e4..5d5ac971e4 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/readme.md
+++ b/deps/npm/node_modules/unique-string/readme.md
diff --git a/deps/npm/node_modules/unpipe/package.json b/deps/npm/node_modules/unpipe/package.json
index e687e56cde..d04acd0db7 100644
--- a/deps/npm/node_modules/unpipe/package.json
+++ b/deps/npm/node_modules/unpipe/package.json
@@ -1,39 +1,40 @@
{
- "_from": "unpipe@~1.0.0",
+ "_args": [
+ [
+ "unpipe@1.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "unpipe@1.0.0",
"_id": "unpipe@1.0.0",
+ "_inBundle": false,
"_integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
"_location": "/unpipe",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "unpipe@~1.0.0",
+ "raw": "unpipe@1.0.0",
"name": "unpipe",
"escapedName": "unpipe",
- "rawSpec": "~1.0.0",
+ "rawSpec": "1.0.0",
"saveSpec": null,
- "fetchSpec": "~1.0.0"
+ "fetchSpec": "1.0.0"
},
"_requiredBy": [
"/",
- "/npm-registry-couchapp/couchapp/connect/finalhandler"
+ "/finalhandler"
],
"_resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "_shasum": "b2bf4ee8514aae6165b4817829d21b2ef49904ec",
- "_shrinkwrap": null,
- "_spec": "unpipe@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Douglas Christopher Wilson",
"email": "doug@somethingdoug.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/stream-utils/unpipe/issues"
},
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
"description": "Unpipe a stream from all destinations",
"devDependencies": {
"istanbul": "0.3.15",
@@ -52,8 +53,6 @@
"homepage": "https://github.com/stream-utils/unpipe#readme",
"license": "MIT",
"name": "unpipe",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/stream-utils/unpipe.git"
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/index.js b/deps/npm/node_modules/unzip-response/index.js
index e97b9937ae..e97b9937ae 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/index.js
+++ b/deps/npm/node_modules/unzip-response/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/license b/deps/npm/node_modules/unzip-response/license
index 32a16ce321..32a16ce321 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/license
+++ b/deps/npm/node_modules/unzip-response/license
diff --git a/deps/npm/node_modules/unzip-response/package.json b/deps/npm/node_modules/unzip-response/package.json
new file mode 100644
index 0000000000..981355c77d
--- /dev/null
+++ b/deps/npm/node_modules/unzip-response/package.json
@@ -0,0 +1,81 @@
+{
+ "_from": "unzip-response@^2.0.1",
+ "_id": "unzip-response@2.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
+ "_location": "/unzip-response",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "unzip-response@^2.0.1",
+ "name": "unzip-response",
+ "escapedName": "unzip-response",
+ "rawSpec": "^2.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.1"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
+ "_shasum": "d2f0f737d16b0615e72a6935ed04214572d56f97",
+ "_spec": "unzip-response@^2.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "bugs": {
+ "url": "https://github.com/sindresorhus/unzip-response/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Unzip a HTTP response if needed",
+ "devDependencies": {
+ "ava": "*",
+ "get-stream": "^2.3.0",
+ "pify": "^2.3.0",
+ "rfpify": "^1.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/unzip-response#readme",
+ "keywords": [
+ "http",
+ "unzip",
+ "zlib",
+ "gzip",
+ "deflate",
+ "incoming",
+ "message",
+ "response",
+ "stream"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Vsevolod Strukchinsky",
+ "email": "floatdrop@gmail.com",
+ "url": "github.com/floatdrop"
+ }
+ ],
+ "name": "unzip-response",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/unzip-response.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.1",
+ "xo": {
+ "esnext": true
+ }
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/readme.md b/deps/npm/node_modules/unzip-response/readme.md
index 87a62c4b3d..87a62c4b3d 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/readme.md
+++ b/deps/npm/node_modules/unzip-response/readme.md
diff --git a/deps/npm/node_modules/update-notifier/index.js b/deps/npm/node_modules/update-notifier/index.js
index 58f2459036..38ff01e295 100644
--- a/deps/npm/node_modules/update-notifier/index.js
+++ b/deps/npm/node_modules/update-notifier/index.js
@@ -12,6 +12,7 @@ const isNpm = importLazy('is-npm');
const isInstalledGlobally = importLazy('is-installed-globally');
const boxen = importLazy('boxen');
const xdgBasedir = importLazy('xdg-basedir');
+const isCi = importLazy('is-ci');
const ONE_DAY = 1000 * 60 * 60 * 24;
class UpdateNotifier {
@@ -37,7 +38,9 @@ class UpdateNotifier {
this.hasCallback = typeof options.callback === 'function';
this.callback = options.callback || (() => {});
this.disabled = 'NO_UPDATE_NOTIFIER' in process.env ||
- process.argv.indexOf('--no-update-notifier') !== -1;
+ process.argv.indexOf('--no-update-notifier') !== -1 ||
+ isCi();
+ this.shouldNotifyInNpmScript = options.shouldNotifyInNpmScript;
if (!this.disabled && !this.hasCallback) {
try {
@@ -106,7 +109,8 @@ class UpdateNotifier {
});
}
notify(opts) {
- if (!process.stdout.isTTY || isNpm() || !this.update) {
+ const suppressForNpm = !this.shouldNotifyInNpmScript && isNpm();
+ if (!process.stdout.isTTY || suppressForNpm || !this.update) {
return this;
}
diff --git a/deps/npm/node_modules/update-notifier/license b/deps/npm/node_modules/update-notifier/license
new file mode 100644
index 0000000000..cea5a35525
--- /dev/null
+++ b/deps/npm/node_modules/update-notifier/license
@@ -0,0 +1,9 @@
+Copyright Google
+
+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/update-notifier/node_modules/boxen/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js
deleted file mode 100644
index 0fe96a5a44..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/index.js
+++ /dev/null
@@ -1,138 +0,0 @@
-'use strict';
-const stringWidth = require('string-width');
-const chalk = require('chalk');
-const widestLine = require('widest-line');
-const cliBoxes = require('cli-boxes');
-const camelCase = require('camelcase');
-const ansiAlign = require('ansi-align');
-const termSize = require('term-size');
-
-const getObject = detail => {
- let obj;
-
- if (typeof detail === 'number') {
- obj = {
- top: detail,
- right: detail * 3,
- bottom: detail,
- left: detail * 3
- };
- } else {
- obj = Object.assign({
- top: 0,
- right: 0,
- bottom: 0,
- left: 0
- }, detail);
- }
-
- return obj;
-};
-
-const getBorderChars = borderStyle => {
- const sides = [
- 'topLeft',
- 'topRight',
- 'bottomRight',
- 'bottomLeft',
- 'vertical',
- 'horizontal'
- ];
-
- let chars;
-
- if (typeof borderStyle === 'string') {
- chars = cliBoxes[borderStyle];
-
- if (!chars) {
- throw new TypeError(`Invalid border style: ${borderStyle}`);
- }
- } else {
- sides.forEach(key => {
- if (!borderStyle[key] || typeof borderStyle[key] !== 'string') {
- throw new TypeError(`Invalid border style: ${key}`);
- }
- });
-
- chars = borderStyle;
- }
-
- return chars;
-};
-
-const getBackgroundColorName = x => camelCase('bg', x);
-
-module.exports = (text, opts) => {
- opts = Object.assign({
- padding: 0,
- borderStyle: 'single',
- dimBorder: false,
- align: 'left',
- float: 'left'
- }, opts);
-
- if (opts.backgroundColor) {
- opts.backgroundColor = getBackgroundColorName(opts.backgroundColor);
- }
-
- if (opts.borderColor && !chalk[opts.borderColor]) {
- throw new Error(`${opts.borderColor} is not a valid borderColor`);
- }
-
- if (opts.backgroundColor && !chalk[opts.backgroundColor]) {
- throw new Error(`${opts.backgroundColor} is not a valid backgroundColor`);
- }
-
- const chars = getBorderChars(opts.borderStyle);
- const padding = getObject(opts.padding);
- const margin = getObject(opts.margin);
-
- const colorizeBorder = x => {
- const ret = opts.borderColor ? chalk[opts.borderColor](x) : x;
- return opts.dimBorder ? chalk.dim(ret) : ret;
- };
-
- const colorizeContent = x => opts.backgroundColor ? chalk[opts.backgroundColor](x) : x;
-
- text = ansiAlign(text, {align: opts.align});
-
- const NL = '\n';
- const PAD = ' ';
-
- let lines = text.split(NL);
-
- if (padding.top > 0) {
- lines = Array(padding.top).fill('').concat(lines);
- }
-
- if (padding.bottom > 0) {
- lines = lines.concat(Array(padding.bottom).fill(''));
- }
-
- const contentWidth = widestLine(text) + padding.left + padding.right;
- const paddingLeft = PAD.repeat(padding.left);
- const columns = termSize().columns;
- let marginLeft = PAD.repeat(margin.left);
-
- if (opts.float === 'center') {
- const padWidth = (columns - contentWidth) / 2;
- marginLeft = PAD.repeat(padWidth);
- } else if (opts.float === 'right') {
- const padWidth = Math.max(columns - contentWidth - margin.right - 2, 0);
- marginLeft = PAD.repeat(padWidth);
- }
-
- const horizontal = chars.horizontal.repeat(contentWidth);
- const top = colorizeBorder(NL.repeat(margin.top) + marginLeft + chars.topLeft + horizontal + chars.topRight);
- const bottom = colorizeBorder(marginLeft + chars.bottomLeft + horizontal + chars.bottomRight + NL.repeat(margin.bottom));
- const side = colorizeBorder(chars.vertical);
-
- const middle = lines.map(line => {
- const paddingRight = PAD.repeat(contentWidth - stringWidth(line) - padding.left);
- return marginLeft + side + colorizeContent(paddingLeft + line + paddingRight) + side;
- }).join(NL);
-
- return top + NL + middle + NL + bottom;
-};
-
-module.exports._borderStyles = cliBoxes;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json
deleted file mode 100644
index 2d5a64b090..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/package.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "_from": "ansi-align@^2.0.0",
- "_id": "ansi-align@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=",
- "_location": "/update-notifier/boxen/ansi-align",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-align@^2.0.0",
- "name": "ansi-align",
- "escapedName": "ansi-align",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz",
- "_shasum": "c36aeccba563b89ceb556f3690f0b1d9e3547f7f",
- "_spec": "ansi-align@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "nexdrew"
- },
- "bugs": {
- "url": "https://github.com/nexdrew/ansi-align/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "string-width": "^2.0.0"
- },
- "deprecated": false,
- "description": "align-text with ANSI support for CLIs",
- "devDependencies": {
- "ava": "^0.19.1",
- "chalk": "^1.1.3",
- "coveralls": "^2.13.1",
- "nyc": "^10.3.0",
- "standard": "^10.0.2",
- "standard-version": "^4.0.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/nexdrew/ansi-align#readme",
- "keywords": [
- "ansi",
- "align",
- "cli",
- "center",
- "pad"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "ansi-align",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/nexdrew/ansi-align.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "release": "standard-version",
- "test": "nyc ava"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js
deleted file mode 100644
index c8492a2286..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/index.js
+++ /dev/null
@@ -1,64 +0,0 @@
-'use strict';
-
-function preserveCamelCase(str) {
- let isLastCharLower = false;
- let isLastCharUpper = false;
- let isLastLastCharUpper = false;
-
- for (let i = 0; i < str.length; i++) {
- const c = str[i];
-
- if (isLastCharLower && /[a-zA-Z]/.test(c) && c.toUpperCase() === c) {
- str = str.substr(0, i) + '-' + str.substr(i);
- isLastCharLower = false;
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = true;
- i++;
- } else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(c) && c.toLowerCase() === c) {
- str = str.substr(0, i - 1) + '-' + str.substr(i - 1);
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = false;
- isLastCharLower = true;
- } else {
- isLastCharLower = c.toLowerCase() === c;
- isLastLastCharUpper = isLastCharUpper;
- isLastCharUpper = c.toUpperCase() === c;
- }
- }
-
- return str;
-}
-
-module.exports = function (str) {
- if (arguments.length > 1) {
- str = Array.from(arguments)
- .map(x => x.trim())
- .filter(x => x.length)
- .join('-');
- } else {
- str = str.trim();
- }
-
- if (str.length === 0) {
- return '';
- }
-
- if (str.length === 1) {
- return str.toLowerCase();
- }
-
- if (/^[a-z0-9]+$/.test(str)) {
- return str;
- }
-
- const hasUpperCase = str !== str.toLowerCase();
-
- if (hasUpperCase) {
- str = preserveCamelCase(str);
- }
-
- return str
- .replace(/^[_.\- ]+/, '')
- .toLowerCase()
- .replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase());
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json
deleted file mode 100644
index 39f57ebf53..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "camelcase@^4.0.0",
- "_id": "camelcase@4.1.0",
- "_integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=",
- "_location": "/update-notifier/boxen/camelcase",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "camelcase@^4.0.0",
- "name": "camelcase",
- "escapedName": "camelcase",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz",
- "_shasum": "d545635be1e33c542649c69173e5de6acfae34dd",
- "_shrinkwrap": null,
- "_spec": "camelcase@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/camelcase/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Convert a dash/dot/underscore/space separated string to camelCase: foo-bar ā†’ fooBar",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/camelcase#readme",
- "keywords": [
- "camelcase",
- "camel-case",
- "camel",
- "case",
- "dash",
- "hyphen",
- "dot",
- "underscore",
- "separator",
- "string",
- "text",
- "convert"
- ],
- "license": "MIT",
- "name": "camelcase",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/camelcase.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "4.1.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md
deleted file mode 100644
index 0610dc627d..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/camelcase/readme.md
+++ /dev/null
@@ -1,57 +0,0 @@
-# camelcase [![Build Status](https://travis-ci.org/sindresorhus/camelcase.svg?branch=master)](https://travis-ci.org/sindresorhus/camelcase)
-
-> Convert a dash/dot/underscore/space separated string to camelCase: `foo-bar` ā†’ `fooBar`
-
-
-## Install
-
-```
-$ npm install --save camelcase
-```
-
-
-## Usage
-
-```js
-const camelCase = require('camelcase');
-
-camelCase('foo-bar');
-//=> 'fooBar'
-
-camelCase('foo_bar');
-//=> 'fooBar'
-
-camelCase('Foo-Bar');
-//=> 'fooBar'
-
-camelCase('--foo.bar');
-//=> 'fooBar'
-
-camelCase('__foo__bar__');
-//=> 'fooBar'
-
-camelCase('foo bar');
-//=> 'fooBar'
-
-console.log(process.argv[3]);
-//=> '--foo-bar'
-camelCase(process.argv[3]);
-//=> 'fooBar'
-
-camelCase('foo', 'bar');
-//=> 'fooBar'
-
-camelCase('__foo__', '--bar');
-//=> 'fooBar'
-```
-
-
-## Related
-
-- [decamelize](https://github.com/sindresorhus/decamelize) - The inverse of this module
-- [uppercamelcase](https://github.com/SamVerschueren/uppercamelcase) - Like this module, but to PascalCase instead of camelCase
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json
deleted file mode 100644
index 7a253467c4..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/cli-boxes/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "cli-boxes@^1.0.0",
- "_id": "cli-boxes@1.0.0",
- "_integrity": "sha1-T6kXw+WclKAEzWH47lCdplFocUM=",
- "_location": "/update-notifier/boxen/cli-boxes",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "cli-boxes@^1.0.0",
- "name": "cli-boxes",
- "escapedName": "cli-boxes",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz",
- "_shasum": "4fa917c3e59c94a004cd61f8ee509da651687143",
- "_shrinkwrap": null,
- "_spec": "cli-boxes@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/cli-boxes/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Boxes for use in the terminal",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js",
- "boxes.json"
- ],
- "homepage": "https://github.com/sindresorhus/cli-boxes#readme",
- "keywords": [
- "cli",
- "box",
- "boxes",
- "terminal",
- "term",
- "console",
- "ascii",
- "unicode",
- "border",
- "text",
- "json"
- ],
- "license": "MIT",
- "name": "cli-boxes",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/cli-boxes.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js
deleted file mode 100644
index bbc49d29b1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/index.js
+++ /dev/null
@@ -1,36 +0,0 @@
-'use strict';
-const stripAnsi = require('strip-ansi');
-const isFullwidthCodePoint = require('is-fullwidth-code-point');
-
-module.exports = str => {
- if (typeof str !== 'string' || str.length === 0) {
- return 0;
- }
-
- str = stripAnsi(str);
-
- let width = 0;
-
- for (let i = 0; i < str.length; i++) {
- const code = str.codePointAt(i);
-
- // Ignore control characters
- if (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {
- continue;
- }
-
- // Ignore combining characters
- if (code >= 0x300 && code <= 0x36F) {
- continue;
- }
-
- // Surrogates
- if (code > 0xFFFF) {
- i++;
- }
-
- width += isFullwidthCodePoint(code) ? 2 : 1;
- }
-
- return width;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
deleted file mode 100644
index d506327c3e..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
+++ /dev/null
@@ -1,46 +0,0 @@
-'use strict';
-/* eslint-disable yoda */
-module.exports = x => {
- if (Number.isNaN(x)) {
- return false;
- }
-
- // code points are derived from:
- // http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt
- if (
- x >= 0x1100 && (
- x <= 0x115f || // Hangul Jamo
- x === 0x2329 || // LEFT-POINTING ANGLE BRACKET
- x === 0x232a || // RIGHT-POINTING ANGLE BRACKET
- // CJK Radicals Supplement .. Enclosed CJK Letters and Months
- (0x2e80 <= x && x <= 0x3247 && x !== 0x303f) ||
- // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A
- (0x3250 <= x && x <= 0x4dbf) ||
- // CJK Unified Ideographs .. Yi Radicals
- (0x4e00 <= x && x <= 0xa4c6) ||
- // Hangul Jamo Extended-A
- (0xa960 <= x && x <= 0xa97c) ||
- // Hangul Syllables
- (0xac00 <= x && x <= 0xd7a3) ||
- // CJK Compatibility Ideographs
- (0xf900 <= x && x <= 0xfaff) ||
- // Vertical Forms
- (0xfe10 <= x && x <= 0xfe19) ||
- // CJK Compatibility Forms .. Small Form Variants
- (0xfe30 <= x && x <= 0xfe6b) ||
- // Halfwidth and Fullwidth Forms
- (0xff01 <= x && x <= 0xff60) ||
- (0xffe0 <= x && x <= 0xffe6) ||
- // Kana Supplement
- (0x1b000 <= x && x <= 0x1b001) ||
- // Enclosed Ideographic Supplement
- (0x1f200 <= x && x <= 0x1f251) ||
- // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane
- (0x20000 <= x && x <= 0x3fffd)
- )
- ) {
- return true;
- }
-
- return false;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
deleted file mode 100644
index f72c16ab58..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^2.0.0",
- "_id": "is-fullwidth-code-point@2.0.0",
- "_integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
- "_location": "/update-notifier/boxen/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^2.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "_shasum": "a3b30a5c4f199183167aaab93beefae3ddfb654f",
- "_shrinkwrap": null,
- "_spec": "is-fullwidth-code-point@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if the character represented by a given Unicode code point is fullwidth",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
- "keywords": [
- "fullwidth",
- "full-width",
- "full",
- "width",
- "unicode",
- "character",
- "char",
- "string",
- "str",
- "codepoint",
- "code",
- "point",
- "is",
- "detect",
- "check"
- ],
- "license": "MIT",
- "name": "is-fullwidth-code-point",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
deleted file mode 100644
index 093b0281b2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
+++ /dev/null
@@ -1,39 +0,0 @@
-# is-fullwidth-code-point [![Build Status](https://travis-ci.org/sindresorhus/is-fullwidth-code-point.svg?branch=master)](https://travis-ci.org/sindresorhus/is-fullwidth-code-point)
-
-> Check if the character represented by a given [Unicode code point](https://en.wikipedia.org/wiki/Code_point) is [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms)
-
-
-## Install
-
-```
-$ npm install --save is-fullwidth-code-point
-```
-
-
-## Usage
-
-```js
-const isFullwidthCodePoint = require('is-fullwidth-code-point');
-
-isFullwidthCodePoint('č°¢'.codePointAt());
-//=> true
-
-isFullwidthCodePoint('a'.codePointAt());
-//=> false
-```
-
-
-## API
-
-### isFullwidthCodePoint(input)
-
-#### input
-
-Type: `number`
-
-[Code point](https://en.wikipedia.org/wiki/Code_point) of a character.
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json
deleted file mode 100644
index 52f250897c..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/package.json
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- "_from": "string-width@^2.0.0",
- "_id": "string-width@2.1.1",
- "_inBundle": false,
- "_integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "_location": "/update-notifier/boxen/string-width",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string-width@^2.0.0",
- "name": "string-width",
- "escapedName": "string-width",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen",
- "/update-notifier/boxen/ansi-align"
- ],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "_shasum": "ab93f27a8dc13d28cac815c462143a6d9012ae9e",
- "_spec": "string-width@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/string-width/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "deprecated": false,
- "description": "Get the visual width of a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/string-width#readme",
- "keywords": [
- "string",
- "str",
- "character",
- "char",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "license": "MIT",
- "name": "string-width",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/string-width.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.1.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md
deleted file mode 100644
index df5b7199f9..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# string-width [![Build Status](https://travis-ci.org/sindresorhus/string-width.svg?branch=master)](https://travis-ci.org/sindresorhus/string-width)
-
-> Get the visual width of a string - the number of columns required to display it
-
-Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](https://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
-
-Useful to be able to measure the actual width of command-line output.
-
-
-## Install
-
-```
-$ npm install string-width
-```
-
-
-## Usage
-
-```js
-const stringWidth = require('string-width');
-
-stringWidth('古');
-//=> 2
-
-stringWidth('\u001b[1m古\u001b[22m');
-//=> 2
-
-stringWidth('a');
-//=> 1
-```
-
-
-## Related
-
-- [string-width-cli](https://github.com/sindresorhus/string-width-cli) - CLI for this module
-- [string-length](https://github.com/sindresorhus/string-length) - Get the real length of a string
-- [widest-line](https://github.com/sindresorhus/widest-line) - Get the visual width of the widest line in a string
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js
deleted file mode 100644
index 74ba8ee2de..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/index.js
+++ /dev/null
@@ -1,309 +0,0 @@
-'use strict';
-const childProcess = require('child_process');
-const util = require('util');
-const crossSpawn = require('cross-spawn');
-const stripEof = require('strip-eof');
-const npmRunPath = require('npm-run-path');
-const isStream = require('is-stream');
-const _getStream = require('get-stream');
-const pFinally = require('p-finally');
-const onExit = require('signal-exit');
-const errname = require('./lib/errname');
-const stdio = require('./lib/stdio');
-
-const TEN_MEGABYTES = 1000 * 1000 * 10;
-
-function handleArgs(cmd, args, opts) {
- let parsed;
-
- if (opts && opts.env && opts.extendEnv !== false) {
- opts.env = Object.assign({}, process.env, opts.env);
- }
-
- if (opts && opts.__winShell === true) {
- delete opts.__winShell;
- parsed = {
- command: cmd,
- args,
- options: opts,
- file: cmd,
- original: cmd
- };
- } else {
- parsed = crossSpawn._parse(cmd, args, opts);
- }
-
- opts = Object.assign({
- maxBuffer: TEN_MEGABYTES,
- stripEof: true,
- preferLocal: true,
- localDir: parsed.options.cwd || process.cwd(),
- encoding: 'utf8',
- reject: true,
- cleanup: true
- }, parsed.options);
-
- opts.stdio = stdio(opts);
-
- if (opts.preferLocal) {
- opts.env = npmRunPath.env(Object.assign({}, opts, {cwd: opts.localDir}));
- }
-
- return {
- cmd: parsed.command,
- args: parsed.args,
- opts,
- parsed
- };
-}
-
-function handleInput(spawned, opts) {
- const input = opts.input;
-
- if (input === null || input === undefined) {
- return;
- }
-
- if (isStream(input)) {
- input.pipe(spawned.stdin);
- } else {
- spawned.stdin.end(input);
- }
-}
-
-function handleOutput(opts, val) {
- if (val && opts.stripEof) {
- val = stripEof(val);
- }
-
- return val;
-}
-
-function handleShell(fn, cmd, opts) {
- let file = '/bin/sh';
- let args = ['-c', cmd];
-
- opts = Object.assign({}, opts);
-
- if (process.platform === 'win32') {
- opts.__winShell = true;
- file = process.env.comspec || 'cmd.exe';
- args = ['/s', '/c', `"${cmd}"`];
- opts.windowsVerbatimArguments = true;
- }
-
- if (opts.shell) {
- file = opts.shell;
- delete opts.shell;
- }
-
- return fn(file, args, opts);
-}
-
-function getStream(process, stream, encoding, maxBuffer) {
- if (!process[stream]) {
- return null;
- }
-
- let ret;
-
- if (encoding) {
- ret = _getStream(process[stream], {
- encoding,
- maxBuffer
- });
- } else {
- ret = _getStream.buffer(process[stream], {maxBuffer});
- }
-
- return ret.catch(err => {
- err.stream = stream;
- err.message = `${stream} ${err.message}`;
- throw err;
- });
-}
-
-module.exports = (cmd, args, opts) => {
- let joinedCmd = cmd;
-
- if (Array.isArray(args) && args.length > 0) {
- joinedCmd += ' ' + args.join(' ');
- }
-
- const parsed = handleArgs(cmd, args, opts);
- const encoding = parsed.opts.encoding;
- const maxBuffer = parsed.opts.maxBuffer;
-
- let spawned;
- try {
- spawned = childProcess.spawn(parsed.cmd, parsed.args, parsed.opts);
- } catch (err) {
- return Promise.reject(err);
- }
-
- let removeExitHandler;
- if (parsed.opts.cleanup) {
- removeExitHandler = onExit(() => {
- spawned.kill();
- });
- }
-
- let timeoutId = null;
- let timedOut = false;
-
- const cleanupTimeout = () => {
- if (timeoutId) {
- clearTimeout(timeoutId);
- timeoutId = null;
- }
- };
-
- if (parsed.opts.timeout > 0) {
- timeoutId = setTimeout(() => {
- timeoutId = null;
- timedOut = true;
- spawned.kill(parsed.opts.killSignal);
- }, parsed.opts.timeout);
- }
-
- const processDone = new Promise(resolve => {
- spawned.on('exit', (code, signal) => {
- cleanupTimeout();
- resolve({code, signal});
- });
-
- spawned.on('error', err => {
- cleanupTimeout();
- resolve({err});
- });
-
- if (spawned.stdin) {
- spawned.stdin.on('error', err => {
- cleanupTimeout();
- resolve({err});
- });
- }
- });
-
- function destroy() {
- if (spawned.stdout) {
- spawned.stdout.destroy();
- }
-
- if (spawned.stderr) {
- spawned.stderr.destroy();
- }
- }
-
- const promise = pFinally(Promise.all([
- processDone,
- getStream(spawned, 'stdout', encoding, maxBuffer),
- getStream(spawned, 'stderr', encoding, maxBuffer)
- ]).then(arr => {
- const result = arr[0];
- const stdout = arr[1];
- const stderr = arr[2];
-
- let err = result.err;
- const code = result.code;
- const signal = result.signal;
-
- if (removeExitHandler) {
- removeExitHandler();
- }
-
- if (err || code !== 0 || signal !== null) {
- if (!err) {
- let output = '';
-
- if (Array.isArray(parsed.opts.stdio)) {
- if (parsed.opts.stdio[2] !== 'inherit') {
- output += output.length > 0 ? stderr : `\n${stderr}`;
- }
-
- if (parsed.opts.stdio[1] !== 'inherit') {
- output += `\n${stdout}`;
- }
- } else if (parsed.opts.stdio !== 'inherit') {
- output = `\n${stderr}${stdout}`;
- }
-
- err = new Error(`Command failed: ${joinedCmd}${output}`);
- err.code = code < 0 ? errname(code) : code;
- }
-
- // TODO: missing some timeout logic for killed
- // https://github.com/nodejs/node/blob/master/lib/child_process.js#L203
- // err.killed = spawned.killed || killed;
- err.killed = err.killed || spawned.killed;
-
- err.stdout = stdout;
- err.stderr = stderr;
- err.failed = true;
- err.signal = signal || null;
- err.cmd = joinedCmd;
- err.timedOut = timedOut;
-
- if (!parsed.opts.reject) {
- return err;
- }
-
- throw err;
- }
-
- return {
- stdout: handleOutput(parsed.opts, stdout),
- stderr: handleOutput(parsed.opts, stderr),
- code: 0,
- failed: false,
- killed: false,
- signal: null,
- cmd: joinedCmd,
- timedOut: false
- };
- }), destroy);
-
- crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed);
-
- handleInput(spawned, parsed.opts);
-
- spawned.then = promise.then.bind(promise);
- spawned.catch = promise.catch.bind(promise);
-
- return spawned;
-};
-
-module.exports.stdout = function () {
- // TODO: set `stderr: 'ignore'` when that option is implemented
- return module.exports.apply(null, arguments).then(x => x.stdout);
-};
-
-module.exports.stderr = function () {
- // TODO: set `stdout: 'ignore'` when that option is implemented
- return module.exports.apply(null, arguments).then(x => x.stderr);
-};
-
-module.exports.shell = (cmd, opts) => handleShell(module.exports, cmd, opts);
-
-module.exports.sync = (cmd, args, opts) => {
- const parsed = handleArgs(cmd, args, opts);
-
- if (isStream(parsed.opts.input)) {
- throw new TypeError('The `input` option cannot be a stream in sync mode');
- }
-
- const result = childProcess.spawnSync(parsed.cmd, parsed.args, parsed.opts);
-
- if (result.error || result.status !== 0) {
- throw (result.error || new Error(result.stderr === '' ? result.stdout : result.stderr));
- }
-
- result.stdout = handleOutput(parsed.opts, result.stdout);
- result.stderr = handleOutput(parsed.opts, result.stderr);
-
- return result;
-};
-
-module.exports.shellSync = (cmd, opts) => handleShell(module.exports.sync, cmd, opts);
-
-module.exports.spawn = util.deprecate(module.exports, 'execa.spawn() is deprecated. Use execa() instead.');
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js
deleted file mode 100644
index 328f3e35da..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/errname.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'use strict';
-// The Node team wants to deprecate `process.bind(...)`.
-// https://github.com/nodejs/node/pull/2768
-//
-// However, we need the 'uv' binding for errname support.
-// This is a defensive wrapper around it so `execa` will not fail entirely if it stops working someday.
-//
-// If this ever stops working. See: https://github.com/sindresorhus/execa/issues/31#issuecomment-215939939 for another possible solution.
-let uv;
-
-try {
- uv = process.binding('uv');
-
- if (typeof uv.errname !== 'function') {
- throw new TypeError('uv.errname is not a function');
- }
-} catch (err) {
- console.error('execa/lib/errname: unable to establish process.binding(\'uv\')', err);
- uv = null;
-}
-
-function errname(uv, code) {
- if (uv) {
- return uv.errname(code);
- }
-
- if (!(code < 0)) {
- throw new Error('err >= 0');
- }
-
- return `Unknown system error ${code}`;
-}
-
-module.exports = code => errname(uv, code);
-
-// Used for testing the fallback behavior
-module.exports.__test__ = errname;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js
deleted file mode 100644
index a82d46838a..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/lib/stdio.js
+++ /dev/null
@@ -1,41 +0,0 @@
-'use strict';
-const alias = ['stdin', 'stdout', 'stderr'];
-
-const hasAlias = opts => alias.some(x => Boolean(opts[x]));
-
-module.exports = opts => {
- if (!opts) {
- return null;
- }
-
- if (opts.stdio && hasAlias(opts)) {
- throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${alias.map(x => `\`${x}\``).join(', ')}`);
- }
-
- if (typeof opts.stdio === 'string') {
- return opts.stdio;
- }
-
- const stdio = opts.stdio || [];
-
- if (!Array.isArray(stdio)) {
- throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``);
- }
-
- const result = [];
- const len = Math.max(stdio.length, alias.length);
-
- for (let i = 0; i < len; i++) {
- let value = null;
-
- if (stdio[i] !== undefined) {
- value = stdio[i];
- } else if (opts[alias[i]] !== undefined) {
- value = opts[alias[i]];
- }
-
- result[i] = value;
- }
-
- return result;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md
deleted file mode 100644
index f1298a82f7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/CHANGELOG.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## 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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE
deleted file mode 100644
index db5e914de1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md
deleted file mode 100644
index dde730df1b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/README.md
+++ /dev/null
@@ -1,85 +0,0 @@
-# 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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js
deleted file mode 100644
index 7814a9692d..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js
deleted file mode 100644
index d0a193aecd..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/enoent.js
+++ /dev/null
@@ -1,73 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js
deleted file mode 100644
index 10a013625b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/parse.js
+++ /dev/null
@@ -1,113 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
deleted file mode 100644
index 367263f669..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeArgument.js
+++ /dev/null
@@ -1,30 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js
deleted file mode 100644
index d9c25b2656..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/escapeCommand.js
+++ /dev/null
@@ -1,12 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
deleted file mode 100644
index 9f2eba6355..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/hasEmptyArgumentBug.js
+++ /dev/null
@@ -1,18 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js
deleted file mode 100644
index 2cf3541c99..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/readShebang.js
+++ /dev/null
@@ -1,37 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js
deleted file mode 100644
index b7a9490974..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/lib/util/resolveCommand.js
+++ /dev/null
@@ -1,31 +0,0 @@
-'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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command/index.js b/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
deleted file mode 100644
index 2de70b0742..0000000000
--- a/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
+++ /dev/null
@@ -1,19 +0,0 @@
-'use strict';
-var shebangRegex = require('shebang-regex');
-
-module.exports = function (str) {
- var match = str.match(shebangRegex);
-
- if (!match) {
- return null;
- }
-
- var arr = match[0].replace(/#! ?/, '').split(' ');
- var bin = arr[0].split('/').pop();
- var arg = arr[1];
-
- return (bin === 'env' ?
- arg :
- bin + (arg ? ' ' + arg : '')
- );
-};
diff --git a/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 b/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
deleted file mode 100644
index d052d2e05e..0000000000
--- a/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
+++ /dev/null
@@ -1,2 +0,0 @@
-'use strict';
-module.exports = /^#!.*/;
diff --git a/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 b/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
deleted file mode 100644
index f394bdb1d6..0000000000
--- a/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
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "shebang-regex@^1.0.0",
- "_id": "shebang-regex@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
- "_location": "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command/shebang-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "shebang-regex@^1.0.0",
- "name": "shebang-regex",
- "escapedName": "shebang-regex",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command"
- ],
- "_resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
- "_shasum": "da42f49740c0b42db2ca9728571cb190c98efea3",
- "_spec": "shebang-regex@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/node_modules/shebang-command",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/shebang-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching a shebang",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/shebang-regex#readme",
- "keywords": [
- "re",
- "regex",
- "regexp",
- "shebang",
- "match",
- "test"
- ],
- "license": "MIT",
- "name": "shebang-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/shebang-regex.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index ef75e51b5b..0000000000
--- a/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
+++ /dev/null
@@ -1,29 +0,0 @@
-# shebang-regex [![Build Status](https://travis-ci.org/sindresorhus/shebang-regex.svg?branch=master)](https://travis-ci.org/sindresorhus/shebang-regex)
-
-> Regular expression for matching a [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix))
-
-
-## Install
-
-```
-$ npm install --save shebang-regex
-```
-
-
-## Usage
-
-```js
-var shebangRegex = require('shebang-regex');
-var str = '#!/usr/bin/env node\nconsole.log("unicorns");';
-
-shebangRegex.test(str);
-//=> true
-
-shebangRegex.exec(str)[0];
-//=> '#!/usr/bin/env node'
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index 6375b89939..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "shebang-command@^1.2.0",
- "_id": "shebang-command@1.2.0",
- "_inBundle": false,
- "_integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
- "_location": "/update-notifier/boxen/term-size/execa/cross-spawn/shebang-command",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "shebang-command@^1.2.0",
- "name": "shebang-command",
- "escapedName": "shebang-command",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa/cross-spawn"
- ],
- "_resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
- "_shasum": "44aac65b695b03398968c39f363fee5deafdf1ea",
- "_spec": "shebang-command@^1.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn",
- "author": {
- "name": "Kevin Martensson",
- "email": "kevinmartensson@gmail.com",
- "url": "github.com/kevva"
- },
- "bugs": {
- "url": "https://github.com/kevva/shebang-command/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "shebang-regex": "^1.0.0"
- },
- "deprecated": false,
- "description": "Get the command from a shebang",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/kevva/shebang-command#readme",
- "keywords": [
- "cmd",
- "command",
- "parse",
- "shebang"
- ],
- "license": "MIT",
- "name": "shebang-command",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kevva/shebang-command.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.2.0",
- "xo": {
- "ignores": [
- "test.js"
- ]
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index 16b0be4d7d..0000000000
--- a/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
+++ /dev/null
@@ -1,39 +0,0 @@
-# shebang-command [![Build Status](https://travis-ci.org/kevva/shebang-command.svg?branch=master)](https://travis-ci.org/kevva/shebang-command)
-
-> Get the command from a shebang
-
-
-## Install
-
-```
-$ npm install --save shebang-command
-```
-
-
-## Usage
-
-```js
-const shebangCommand = require('shebang-command');
-
-shebangCommand('#!/usr/bin/env node');
-//=> 'node'
-
-shebangCommand('#!/bin/bash');
-//=> 'bash'
-```
-
-
-## API
-
-### shebangCommand(string)
-
-#### string
-
-Type: `string`
-
-String containing a shebang.
-
-
-## License
-
-MIT Ā© [Kevin Martensson](http://github.com/kevva)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json
deleted file mode 100644
index d2fea962ce..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/cross-spawn/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "_from": "cross-spawn@^5.0.1",
- "_id": "cross-spawn@5.1.0",
- "_inBundle": false,
- "_integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=",
- "_location": "/update-notifier/boxen/term-size/execa/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": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz",
- "_shasum": "e8bd0efee58fcff6f8f94510a0a554bbfa235449",
- "_spec": "cross-spawn@^5.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js
deleted file mode 100644
index ae45d3d9e7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/buffer-stream.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const PassThrough = require('stream').PassThrough;
-
-module.exports = opts => {
- opts = Object.assign({}, opts);
-
- const array = opts.array;
- let encoding = opts.encoding;
- const buffer = encoding === 'buffer';
- let objectMode = false;
-
- if (array) {
- objectMode = !(encoding || buffer);
- } else {
- encoding = encoding || 'utf8';
- }
-
- if (buffer) {
- encoding = null;
- }
-
- let len = 0;
- const ret = [];
- const stream = new PassThrough({objectMode});
-
- if (encoding) {
- stream.setEncoding(encoding);
- }
-
- stream.on('data', chunk => {
- ret.push(chunk);
-
- if (objectMode) {
- len = ret.length;
- } else {
- len += chunk.length;
- }
- });
-
- stream.getBufferedValue = () => {
- if (array) {
- return ret;
- }
-
- return buffer ? Buffer.concat(ret, len) : ret.join('');
- };
-
- stream.getBufferedLength = () => len;
-
- return stream;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js
deleted file mode 100644
index 2dc5ee96af..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const bufferStream = require('./buffer-stream');
-
-function getStream(inputStream, opts) {
- if (!inputStream) {
- return Promise.reject(new Error('Expected a stream'));
- }
-
- opts = Object.assign({maxBuffer: Infinity}, opts);
-
- const maxBuffer = opts.maxBuffer;
- let stream;
- let clean;
-
- const p = new Promise((resolve, reject) => {
- const error = err => {
- if (err) { // null check
- err.bufferedData = stream.getBufferedValue();
- }
-
- reject(err);
- };
-
- stream = bufferStream(opts);
- inputStream.once('error', error);
- inputStream.pipe(stream);
-
- stream.on('data', () => {
- if (stream.getBufferedLength() > maxBuffer) {
- reject(new Error('maxBuffer exceeded'));
- }
- });
- stream.once('error', error);
- stream.on('end', resolve);
-
- clean = () => {
- // some streams doesn't implement the `stream.Readable` interface correctly
- if (inputStream.unpipe) {
- inputStream.unpipe(stream);
- }
- };
- });
-
- p.then(clean, clean);
-
- return p.then(() => stream.getBufferedValue());
-}
-
-module.exports = getStream;
-module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'}));
-module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true}));
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json
deleted file mode 100644
index 4dd1d9caf4..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "get-stream@^3.0.0",
- "_id": "get-stream@3.0.0",
- "_inBundle": false,
- "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "_location": "/update-notifier/boxen/term-size/execa/get-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-stream@^3.0.0",
- "name": "get-stream",
- "escapedName": "get-stream",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
- "_spec": "get-stream@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/get-stream/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Get a stream as a string, buffer, or array",
- "devDependencies": {
- "ava": "*",
- "into-stream": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "buffer-stream.js"
- ],
- "homepage": "https://github.com/sindresorhus/get-stream#readme",
- "keywords": [
- "get",
- "stream",
- "promise",
- "concat",
- "string",
- "str",
- "text",
- "buffer",
- "read",
- "data",
- "consume",
- "readable",
- "readablestream",
- "array",
- "object",
- "obj"
- ],
- "license": "MIT",
- "name": "get-stream",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/get-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md
deleted file mode 100644
index 73b188fb42..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/readme.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)
-
-> Get a stream as a string, buffer, or array
-
-
-## Install
-
-```
-$ npm install --save get-stream
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const getStream = require('get-stream');
-const stream = fs.createReadStream('unicorn.txt');
-
-getStream(stream).then(str => {
- console.log(str);
- /*
- ,,))))))));,
- __)))))))))))))),
- \|/ -\(((((''''((((((((.
- -*-==//////(('' . `)))))),
- /|\ ))| o ;-. '((((( ,(,
- ( `| / ) ;))))' ,_))^;(~
- | | | ,))((((_ _____------~~~-. %,;(;(>';'~
- o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
- ; ''''```` `: `:::|\,__,%% );`'; ~
- | _ ) / `:|`----' `-'
- ______/\/~ | / /
- /~;;.____/;;' / ___--,-( `;;;/
- / // _;______;'------~~~~~ /;;/\ /
- // | | / ; \;;,\
- (<_ | ; /',/-----' _>
- \_| ||_ //~;~~~~~~~~~
- `\_| (,~~
- \~\
- ~~
- */
-});
-```
-
-
-## API
-
-The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
-
-### getStream(stream, [options])
-
-Get the `stream` as a string.
-
-#### options
-
-##### encoding
-
-Type: `string`<br>
-Default: `utf8`
-
-[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
-
-##### maxBuffer
-
-Type: `number`<br>
-Default: `Infinity`
-
-Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.
-
-### getStream.buffer(stream, [options])
-
-Get the `stream` as a buffer.
-
-It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
-
-### getStream.array(stream, [options])
-
-Get the `stream` as an array of values.
-
-It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
-
-- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
-
-- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
-
-- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
-
-
-## Errors
-
-If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.
-
-```js
-getStream(streamThatErrorsAtTheEnd('unicorn'))
- .catch(err => {
- console.log(err.bufferedData);
- //=> 'unicorn'
- });
-```
-
-
-## FAQ
-
-### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?
-
-This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.
-
-
-## Related
-
-- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js
deleted file mode 100644
index 6f7ec91a40..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-var isStream = module.exports = function (stream) {
- return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';
-};
-
-isStream.writable = function (stream) {
- return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';
-};
-
-isStream.readable = function (stream) {
- return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';
-};
-
-isStream.duplex = function (stream) {
- return isStream.writable(stream) && isStream.readable(stream);
-};
-
-isStream.transform = function (stream) {
- return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json
deleted file mode 100644
index c5742a6f7e..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "is-stream@^1.1.0",
- "_id": "is-stream@1.1.0",
- "_integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "_location": "/update-notifier/boxen/term-size/execa/is-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-stream@^1.1.0",
- "name": "is-stream",
- "escapedName": "is-stream",
- "rawSpec": "^1.1.0",
- "saveSpec": null,
- "fetchSpec": "^1.1.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "_shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "_shrinkwrap": null,
- "_spec": "is-stream@^1.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if something is a Node.js stream",
- "devDependencies": {
- "ava": "*",
- "tempfile": "^1.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-stream#readme",
- "keywords": [
- "stream",
- "type",
- "streams",
- "writable",
- "readable",
- "duplex",
- "transform",
- "check",
- "detect",
- "is"
- ],
- "license": "MIT",
- "name": "is-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md
deleted file mode 100644
index d8afce81d2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream)
-
-> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html)
-
-
-## Install
-
-```
-$ npm install --save is-stream
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const isStream = require('is-stream');
-
-isStream(fs.createReadStream('unicorn.png'));
-//=> true
-
-isStream({});
-//=> false
-```
-
-
-## API
-
-### isStream(stream)
-
-#### isStream.writable(stream)
-
-#### isStream.readable(stream)
-
-#### isStream.duplex(stream)
-
-#### isStream.transform(stream)
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js
deleted file mode 100644
index 56f31e4712..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/index.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-const path = require('path');
-const pathKey = require('path-key');
-
-module.exports = opts => {
- opts = Object.assign({
- cwd: process.cwd(),
- path: process.env[pathKey()]
- }, opts);
-
- let prev;
- let pth = path.resolve(opts.cwd);
- const ret = [];
-
- while (prev !== pth) {
- ret.push(path.join(pth, 'node_modules/.bin'));
- prev = pth;
- pth = path.resolve(pth, '..');
- }
-
- // ensure the running `node` binary is used
- ret.push(path.dirname(process.execPath));
-
- return ret.concat(opts.path).join(path.delimiter);
-};
-
-module.exports.env = opts => {
- opts = Object.assign({
- env: process.env
- }, opts);
-
- const env = Object.assign({}, opts.env);
- const path = pathKey({env});
-
- opts.path = env[path];
- env[path] = module.exports(opts);
-
- return env;
-};
diff --git a/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 b/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
deleted file mode 100644
index 62c8250ab4..0000000000
--- a/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
+++ /dev/null
@@ -1,13 +0,0 @@
-'use strict';
-module.exports = opts => {
- opts = opts || {};
-
- const env = opts.env || process.env;
- const platform = opts.platform || process.platform;
-
- if (platform !== 'win32') {
- return 'PATH';
- }
-
- return Object.keys(env).find(x => x.toUpperCase() === 'PATH') || 'Path';
-};
diff --git a/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 b/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
deleted file mode 100644
index 75b08325d9..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "path-key@^2.0.0",
- "_id": "path-key@2.0.1",
- "_inBundle": false,
- "_integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
- "_location": "/update-notifier/boxen/term-size/execa/npm-run-path/path-key",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "path-key@^2.0.0",
- "name": "path-key",
- "escapedName": "path-key",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa/npm-run-path"
- ],
- "_resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
- "_shasum": "411cadb574c5a140d3a4b1910d40d80cc9f40b40",
- "_spec": "path-key@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/path-key/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Get the PATH environment variable key cross-platform",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/path-key#readme",
- "keywords": [
- "path",
- "key",
- "environment",
- "env",
- "variable",
- "var",
- "get",
- "cross-platform",
- "windows"
- ],
- "license": "MIT",
- "name": "path-key",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/path-key.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.1",
- "xo": {
- "esnext": true
- }
-}
diff --git a/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 b/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
deleted file mode 100644
index cb5710aace..0000000000
--- a/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
+++ /dev/null
@@ -1,51 +0,0 @@
-# path-key [![Build Status](https://travis-ci.org/sindresorhus/path-key.svg?branch=master)](https://travis-ci.org/sindresorhus/path-key)
-
-> Get the [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) environment variable key cross-platform
-
-It's usually `PATH`, but on Windows it can be any casing like `Path`...
-
-
-## Install
-
-```
-$ npm install --save path-key
-```
-
-
-## Usage
-
-```js
-const pathKey = require('path-key');
-
-const key = pathKey();
-//=> 'PATH'
-
-const PATH = process.env[key];
-//=> '/usr/local/bin:/usr/bin:/bin'
-```
-
-
-## API
-
-### pathKey([options])
-
-#### options
-
-##### env
-
-Type: `Object`<br>
-Default: [`process.env`](https://nodejs.org/api/process.html#process_process_env)
-
-Use a custom environment variables object.
-
-#### platform
-
-Type: `string`<br>
-Default: [`process.platform`](https://nodejs.org/api/process.html#process_process_platform)
-
-Get the PATH key for a specific platform.
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json
deleted file mode 100644
index 357c5ceaf5..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "npm-run-path@^2.0.0",
- "_id": "npm-run-path@2.0.2",
- "_inBundle": false,
- "_integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
- "_location": "/update-notifier/boxen/term-size/execa/npm-run-path",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "npm-run-path@^2.0.0",
- "name": "npm-run-path",
- "escapedName": "npm-run-path",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
- "_shasum": "35a9232dfa35d7067b4cb2ddf2357b1871536c5f",
- "_spec": "npm-run-path@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/npm-run-path/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "path-key": "^2.0.0"
- },
- "deprecated": false,
- "description": "Get your PATH prepended with locally installed binaries",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/npm-run-path#readme",
- "keywords": [
- "npm",
- "run",
- "path",
- "package",
- "bin",
- "binary",
- "binaries",
- "script",
- "cli",
- "command-line",
- "execute",
- "executable"
- ],
- "license": "MIT",
- "name": "npm-run-path",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/npm-run-path.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.2",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md
deleted file mode 100644
index 4ff4722a6c..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/readme.md
+++ /dev/null
@@ -1,81 +0,0 @@
-# npm-run-path [![Build Status](https://travis-ci.org/sindresorhus/npm-run-path.svg?branch=master)](https://travis-ci.org/sindresorhus/npm-run-path)
-
-> Get your [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) prepended with locally installed binaries
-
-In [npm run scripts](https://docs.npmjs.com/cli/run-script) you can execute locally installed binaries by name. This enables the same outside npm.
-
-
-## Install
-
-```
-$ npm install --save npm-run-path
-```
-
-
-## Usage
-
-```js
-const childProcess = require('child_process');
-const npmRunPath = require('npm-run-path');
-
-console.log(process.env.PATH);
-//=> '/usr/local/bin'
-
-console.log(npmRunPath());
-//=> '/Users/sindresorhus/dev/foo/node_modules/.bin:/Users/sindresorhus/dev/node_modules/.bin:/Users/sindresorhus/node_modules/.bin:/Users/node_modules/.bin:/node_modules/.bin:/usr/local/bin'
-
-// `foo` is a locally installed binary
-childProcess.execFileSync('foo', {
- env: npmRunPath.env()
-});
-```
-
-
-## API
-
-### npmRunPath([options])
-
-#### options
-
-##### cwd
-
-Type: `string`<br>
-Default: `process.cwd()`
-
-Working directory.
-
-##### path
-
-Type: `string`<br>
-Default: [`PATH`](https://github.com/sindresorhus/path-key)
-
-PATH to be appended.<br>
-Set it to an empty string to exclude the default PATH.
-
-### npmRunPath.env([options])
-
-#### options
-
-##### cwd
-
-Type: `string`<br>
-Default: `process.cwd()`
-
-Working directory.
-
-##### env
-
-Type: `Object`
-
-Accepts an object of environment variables, like `process.env`, and modifies the PATH using the correct [PATH key](https://github.com/sindresorhus/path-key). Use this if you're modifying the PATH for use in the `child_process` options.
-
-
-## Related
-
-- [npm-run-path-cli](https://github.com/sindresorhus/npm-run-path-cli) - CLI for this module
-- [execa](https://github.com/sindresorhus/execa) - Execute a locally installed binary
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js
deleted file mode 100644
index 52b7b49c5f..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-module.exports = (promise, onFinally) => {
- onFinally = onFinally || (() => {});
-
- return promise.then(
- val => new Promise(resolve => {
- resolve(onFinally());
- }).then(() => val),
- err => new Promise(resolve => {
- resolve(onFinally());
- }).then(() => {
- throw err;
- })
- );
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json
deleted file mode 100644
index 902a8e39df..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "p-finally@^1.0.0",
- "_id": "p-finally@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=",
- "_location": "/update-notifier/boxen/term-size/execa/p-finally",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "p-finally@^1.0.0",
- "name": "p-finally",
- "escapedName": "p-finally",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
- "_shasum": "3fbcfb15b899a44123b34b6dcc18b724336a2cae",
- "_spec": "p-finally@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/p-finally/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "`Promise#finally()` ponyfill - Invoked when the promise is settled regardless of outcome",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/p-finally#readme",
- "keywords": [
- "promise",
- "finally",
- "handler",
- "function",
- "async",
- "await",
- "promises",
- "settled",
- "ponyfill",
- "polyfill",
- "shim",
- "bluebird"
- ],
- "license": "MIT",
- "name": "p-finally",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/p-finally.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md
deleted file mode 100644
index 09ef36416b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/readme.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# p-finally [![Build Status](https://travis-ci.org/sindresorhus/p-finally.svg?branch=master)](https://travis-ci.org/sindresorhus/p-finally)
-
-> [`Promise#finally()`](https://github.com/tc39/proposal-promise-finally) [ponyfill](https://ponyfill.com) - Invoked when the promise is settled regardless of outcome
-
-Useful for cleanup.
-
-
-## Install
-
-```
-$ npm install --save p-finally
-```
-
-
-## Usage
-
-```js
-const pFinally = require('p-finally');
-
-const dir = createTempDir();
-
-pFinally(write(dir), () => cleanup(dir));
-```
-
-
-## API
-
-### pFinally(promise, [onFinally])
-
-Returns a `Promise`.
-
-#### onFinally
-
-Type: `Function`
-
-Note: Throwing or returning a rejected promise will reject `promise` with the rejection reason.
-
-
-## Related
-
-- [p-try](https://github.com/sindresorhus/p-try) - `Promise#try()` ponyfill - Starts a promise chain
-- [Moreā€¦](https://github.com/sindresorhus/promise-fun)
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md
deleted file mode 100644
index e2f70d2250..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/CHANGELOG.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# Change Log
-
-All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
-
-<a name="3.0.1"></a>
-## [3.0.1](https://github.com/tapjs/signal-exit/compare/v3.0.0...v3.0.1) (2016-09-08)
-
-
-### Bug Fixes
-
-* do not listen on SIGBUS, SIGFPE, SIGSEGV and SIGILL ([#40](https://github.com/tapjs/signal-exit/issues/40)) ([5b105fb](https://github.com/tapjs/signal-exit/commit/5b105fb))
-
-
-
-<a name="3.0.0"></a>
-# [3.0.0](https://github.com/tapjs/signal-exit/compare/v2.1.2...v3.0.0) (2016-06-13)
-
-
-### Bug Fixes
-
-* get our test suite running on Windows ([#23](https://github.com/tapjs/signal-exit/issues/23)) ([6f3eda8](https://github.com/tapjs/signal-exit/commit/6f3eda8))
-* hooking SIGPROF was interfering with profilers see [#21](https://github.com/tapjs/signal-exit/issues/21) ([#24](https://github.com/tapjs/signal-exit/issues/24)) ([1248a4c](https://github.com/tapjs/signal-exit/commit/1248a4c))
-
-
-### BREAKING CHANGES
-
-* signal-exit no longer wires into SIGPROF
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt
deleted file mode 100644
index eead04a121..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/LICENSE.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-The ISC License
-
-Copyright (c) 2015, 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/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md
deleted file mode 100644
index 8ebccabeca..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-# signal-exit
-
-[![Build Status](https://travis-ci.org/tapjs/signal-exit.png)](https://travis-ci.org/tapjs/signal-exit)
-[![Coverage](https://coveralls.io/repos/tapjs/signal-exit/badge.svg?branch=master)](https://coveralls.io/r/tapjs/signal-exit?branch=master)
-[![NPM version](https://img.shields.io/npm/v/signal-exit.svg)](https://www.npmjs.com/package/signal-exit)
-[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/signal-exit/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/signal-exit)
-[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
-
-When you want to fire an event no matter how a process exits:
-
-* reaching the end of execution.
-* explicitly having `process.exit(code)` called.
-* having `process.kill(pid, sig)` called.
-* receiving a fatal signal from outside the process
-
-Use `signal-exit`.
-
-```js
-var onExit = require('signal-exit')
-
-onExit(function (code, signal) {
- console.log('process exited!')
-})
-```
-
-## API
-
-`var remove = onExit(function (code, signal) {}, options)`
-
-The return value of the function is a function that will remove the
-handler.
-
-Note that the function *only* fires for signals if the signal would
-cause the proces to exit. That is, there are no other listeners, and
-it is a fatal signal.
-
-## Options
-
-* `alwaysLast`: Run this handler after any other signal or exit
- handlers. This causes `process.emit` to be monkeypatched.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js
deleted file mode 100644
index 337f691ed2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/index.js
+++ /dev/null
@@ -1,157 +0,0 @@
-// Note: since nyc uses this module to output coverage, any lines
-// that are in the direct sync flow of nyc's outputCoverage are
-// ignored, since we can never get coverage for them.
-var assert = require('assert')
-var signals = require('./signals.js')
-
-var EE = require('events')
-/* istanbul ignore if */
-if (typeof EE !== 'function') {
- EE = EE.EventEmitter
-}
-
-var emitter
-if (process.__signal_exit_emitter__) {
- emitter = process.__signal_exit_emitter__
-} else {
- emitter = process.__signal_exit_emitter__ = new EE()
- emitter.count = 0
- emitter.emitted = {}
-}
-
-// Because this emitter is a global, we have to check to see if a
-// previous version of this library failed to enable infinite listeners.
-// I know what you're about to say. But literally everything about
-// signal-exit is a compromise with evil. Get used to it.
-if (!emitter.infinite) {
- emitter.setMaxListeners(Infinity)
- emitter.infinite = true
-}
-
-module.exports = function (cb, opts) {
- assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')
-
- if (loaded === false) {
- load()
- }
-
- var ev = 'exit'
- if (opts && opts.alwaysLast) {
- ev = 'afterexit'
- }
-
- var remove = function () {
- emitter.removeListener(ev, cb)
- if (emitter.listeners('exit').length === 0 &&
- emitter.listeners('afterexit').length === 0) {
- unload()
- }
- }
- emitter.on(ev, cb)
-
- return remove
-}
-
-module.exports.unload = unload
-function unload () {
- if (!loaded) {
- return
- }
- loaded = false
-
- signals.forEach(function (sig) {
- try {
- process.removeListener(sig, sigListeners[sig])
- } catch (er) {}
- })
- process.emit = originalProcessEmit
- process.reallyExit = originalProcessReallyExit
- emitter.count -= 1
-}
-
-function emit (event, code, signal) {
- if (emitter.emitted[event]) {
- return
- }
- emitter.emitted[event] = true
- emitter.emit(event, code, signal)
-}
-
-// { <signal>: <listener fn>, ... }
-var sigListeners = {}
-signals.forEach(function (sig) {
- sigListeners[sig] = function listener () {
- // If there are no other listeners, an exit is coming!
- // Simplest way: remove us and then re-send the signal.
- // We know that this will kill the process, so we can
- // safely emit now.
- var listeners = process.listeners(sig)
- if (listeners.length === emitter.count) {
- unload()
- emit('exit', null, sig)
- /* istanbul ignore next */
- emit('afterexit', null, sig)
- /* istanbul ignore next */
- process.kill(process.pid, sig)
- }
- }
-})
-
-module.exports.signals = function () {
- return signals
-}
-
-module.exports.load = load
-
-var loaded = false
-
-function load () {
- if (loaded) {
- return
- }
- loaded = true
-
- // This is the number of onSignalExit's that are in play.
- // It's important so that we can count the correct number of
- // listeners on signals, and don't wait for the other one to
- // handle it instead of us.
- emitter.count += 1
-
- signals = signals.filter(function (sig) {
- try {
- process.on(sig, sigListeners[sig])
- return true
- } catch (er) {
- return false
- }
- })
-
- process.emit = processEmit
- process.reallyExit = processReallyExit
-}
-
-var originalProcessReallyExit = process.reallyExit
-function processReallyExit (code) {
- process.exitCode = code || 0
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- /* istanbul ignore next */
- originalProcessReallyExit.call(process, process.exitCode)
-}
-
-var originalProcessEmit = process.emit
-function processEmit (ev, arg) {
- if (ev === 'exit') {
- if (arg !== undefined) {
- process.exitCode = arg
- }
- var ret = originalProcessEmit.apply(this, arguments)
- emit('exit', process.exitCode, null)
- /* istanbul ignore next */
- emit('afterexit', process.exitCode, null)
- return ret
- } else {
- return originalProcessEmit.apply(this, arguments)
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json
deleted file mode 100644
index 92d88ba361..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "signal-exit@^3.0.0",
- "_id": "signal-exit@3.0.2",
- "_inBundle": false,
- "_integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
- "_location": "/update-notifier/boxen/term-size/execa/signal-exit",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "signal-exit@^3.0.0",
- "name": "signal-exit",
- "escapedName": "signal-exit",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
- "_shasum": "b5fdc08f1287ea1178628e415e25132b73646c6d",
- "_spec": "signal-exit@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Ben Coe",
- "email": "ben@npmjs.com"
- },
- "bugs": {
- "url": "https://github.com/tapjs/signal-exit/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "when you want to fire an event no matter how a process exits.",
- "devDependencies": {
- "chai": "^3.5.0",
- "coveralls": "^2.11.10",
- "nyc": "^8.1.0",
- "standard": "^7.1.2",
- "standard-version": "^2.3.0",
- "tap": "^8.0.1"
- },
- "files": [
- "index.js",
- "signals.js"
- ],
- "homepage": "https://github.com/tapjs/signal-exit",
- "keywords": [
- "signal",
- "exit"
- ],
- "license": "ISC",
- "main": "index.js",
- "name": "signal-exit",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/tapjs/signal-exit.git"
- },
- "scripts": {
- "coverage": "nyc report --reporter=text-lcov | coveralls",
- "pretest": "standard",
- "release": "standard-version",
- "test": "tap --timeout=240 ./test/*.js --cov"
- },
- "version": "3.0.2"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js
deleted file mode 100644
index 3bd67a8a55..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/signal-exit/signals.js
+++ /dev/null
@@ -1,53 +0,0 @@
-// This is not the set of all possible signals.
-//
-// It IS, however, the set of all signals that trigger
-// an exit on either Linux or BSD systems. Linux is a
-// superset of the signal names supported on BSD, and
-// the unknown signals just fail to register, so we can
-// catch that easily enough.
-//
-// Don't bother with SIGKILL. It's uncatchable, which
-// means that we can't fire any callbacks anyway.
-//
-// If a user does happen to register a handler on a non-
-// fatal signal like SIGWINCH or something, and then
-// exit, it'll end up firing `process.emit('exit')`, so
-// the handler will be fired anyway.
-//
-// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised
-// artificially, inherently leave the process in a
-// state from which it is not safe to try and enter JS
-// listeners.
-module.exports = [
- 'SIGABRT',
- 'SIGALRM',
- 'SIGHUP',
- 'SIGINT',
- 'SIGTERM'
-]
-
-if (process.platform !== 'win32') {
- module.exports.push(
- 'SIGVTALRM',
- 'SIGXCPU',
- 'SIGXFSZ',
- 'SIGUSR2',
- 'SIGTRAP',
- 'SIGSYS',
- 'SIGQUIT',
- 'SIGIOT'
- // should detect profiler and enable/disable accordingly.
- // see #21
- // 'SIGPROF'
- )
-}
-
-if (process.platform === 'linux') {
- module.exports.push(
- 'SIGIO',
- 'SIGPOLL',
- 'SIGPWR',
- 'SIGSTKFLT',
- 'SIGUNUSED'
- )
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js
deleted file mode 100644
index a17d0afd33..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/index.js
+++ /dev/null
@@ -1,15 +0,0 @@
-'use strict';
-module.exports = function (x) {
- var lf = typeof x === 'string' ? '\n' : '\n'.charCodeAt();
- var cr = typeof x === 'string' ? '\r' : '\r'.charCodeAt();
-
- if (x[x.length - 1] === lf) {
- x = x.slice(0, x.length - 1);
- }
-
- if (x[x.length - 1] === cr) {
- x = x.slice(0, x.length - 1);
- }
-
- return x;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json
deleted file mode 100644
index db4e1d2876..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/package.json
+++ /dev/null
@@ -1,75 +0,0 @@
-{
- "_from": "strip-eof@^1.0.0",
- "_id": "strip-eof@1.0.0",
- "_integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=",
- "_location": "/update-notifier/boxen/term-size/execa/strip-eof",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-eof@^1.0.0",
- "name": "strip-eof",
- "escapedName": "strip-eof",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size/execa"
- ],
- "_resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
- "_shasum": "bb43ff5598a6eb05d89b59fcd129c983313606bf",
- "_shrinkwrap": null,
- "_spec": "strip-eof@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/strip-eof/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Strip the End-Of-File (EOF) character from a string/buffer",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/strip-eof#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "delete",
- "eof",
- "end",
- "file",
- "newline",
- "linebreak",
- "character",
- "string",
- "buffer"
- ],
- "license": "MIT",
- "name": "strip-eof",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/strip-eof.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md
deleted file mode 100644
index 45ffe04362..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# strip-eof [![Build Status](https://travis-ci.org/sindresorhus/strip-eof.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-eof)
-
-> Strip the [End-Of-File](https://en.wikipedia.org/wiki/End-of-file) (EOF) character from a string/buffer
-
-
-## Install
-
-```
-$ npm install --save strip-eof
-```
-
-
-## Usage
-
-```js
-const stripEof = require('strip-eof');
-
-stripEof('foo\nbar\n\n');
-//=> 'foo\nbar\n'
-
-stripEof(new Buffer('foo\nbar\n\n')).toString();
-//=> 'foo\nbar\n'
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json
deleted file mode 100644
index 08df8f3b49..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/package.json
+++ /dev/null
@@ -1,111 +0,0 @@
-{
- "_from": "execa@^0.7.0",
- "_id": "execa@0.7.0",
- "_inBundle": false,
- "_integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=",
- "_location": "/update-notifier/boxen/term-size/execa",
- "_phantomChildren": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "execa@^0.7.0",
- "name": "execa",
- "escapedName": "execa",
- "rawSpec": "^0.7.0",
- "saveSpec": null,
- "fetchSpec": "^0.7.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/term-size"
- ],
- "_resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz",
- "_shasum": "944becd34cc41ee32a63a9faf27ad5a65fc59777",
- "_spec": "execa@^0.7.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/execa/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "cross-spawn": "^5.0.1",
- "get-stream": "^3.0.0",
- "is-stream": "^1.1.0",
- "npm-run-path": "^2.0.0",
- "p-finally": "^1.0.0",
- "signal-exit": "^3.0.0",
- "strip-eof": "^1.0.0"
- },
- "deprecated": false,
- "description": "A better `child_process`",
- "devDependencies": {
- "ava": "*",
- "cat-names": "^1.0.2",
- "coveralls": "^2.11.9",
- "delay": "^2.0.0",
- "is-running": "^2.0.0",
- "nyc": "^11.0.2",
- "tempfile": "^2.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "lib"
- ],
- "homepage": "https://github.com/sindresorhus/execa#readme",
- "keywords": [
- "exec",
- "child",
- "process",
- "execute",
- "fork",
- "execfile",
- "spawn",
- "file",
- "shell",
- "bin",
- "binary",
- "binaries",
- "npm",
- "path",
- "local"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "James Talmage",
- "email": "james@talmage.io",
- "url": "github.com/jamestalmage"
- }
- ],
- "name": "execa",
- "nyc": {
- "reporter": [
- "text",
- "lcov"
- ],
- "exclude": [
- "**/fixtures/**",
- "**/test.js",
- "**/test/**"
- ]
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/execa.git"
- },
- "scripts": {
- "test": "xo && nyc ava"
- },
- "version": "0.7.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md
deleted file mode 100644
index 18c808aa69..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/readme.md
+++ /dev/null
@@ -1,279 +0,0 @@
-# execa [![Build Status: Linux](https://travis-ci.org/sindresorhus/execa.svg?branch=master)](https://travis-ci.org/sindresorhus/execa) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/x5ajamxtjtt93cqv/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/execa/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/execa/badge.svg?branch=master)](https://coveralls.io/github/sindresorhus/execa?branch=master)
-
-> A better [`child_process`](https://nodejs.org/api/child_process.html)
-
-
-## Why
-
-- Promise interface.
-- [Strips EOF](https://github.com/sindresorhus/strip-eof) from the output so you don't have to `stdout.trim()`.
-- Supports [shebang](https://en.wikipedia.org/wiki/Shebang_(Unix)) binaries cross-platform.
-- [Improved Windows support.](https://github.com/IndigoUnited/node-cross-spawn#why)
-- Higher max buffer. 10 MB instead of 200 KB.
-- [Executes locally installed binaries by name.](#preferlocal)
-- [Cleans up spawned processes when the parent process dies.](#cleanup)
-
-
-## Install
-
-```
-$ npm install --save execa
-```
-
-
-## Usage
-
-```js
-const execa = require('execa');
-
-execa('echo', ['unicorns']).then(result => {
- console.log(result.stdout);
- //=> 'unicorns'
-});
-
-// pipe the child process stdout to the current stdout
-execa('echo', ['unicorns']).stdout.pipe(process.stdout);
-
-execa.shell('echo unicorns').then(result => {
- console.log(result.stdout);
- //=> 'unicorns'
-});
-
-// example of catching an error
-execa.shell('exit 3').catch(error => {
- console.log(error);
- /*
- {
- message: 'Command failed: /bin/sh -c exit 3'
- killed: false,
- code: 3,
- signal: null,
- cmd: '/bin/sh -c exit 3',
- stdout: '',
- stderr: '',
- timedOut: false
- }
- */
-});
-```
-
-
-## API
-
-### execa(file, [arguments], [options])
-
-Execute a file.
-
-Think of this as a mix of `child_process.execFile` and `child_process.spawn`.
-
-Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess), which is enhanced to also be a `Promise` for a result `Object` with `stdout` and `stderr` properties.
-
-### execa.stdout(file, [arguments], [options])
-
-Same as `execa()`, but returns only `stdout`.
-
-### execa.stderr(file, [arguments], [options])
-
-Same as `execa()`, but returns only `stderr`.
-
-### execa.shell(command, [options])
-
-Execute a command through the system shell. Prefer `execa()` whenever possible, as it's both faster and safer.
-
-Returns a [`child_process` instance](https://nodejs.org/api/child_process.html#child_process_class_childprocess).
-
-The `child_process` instance is enhanced to also be promise for a result object with `stdout` and `stderr` properties.
-
-### execa.sync(file, [arguments], [options])
-
-Execute a file synchronously.
-
-Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
-
-This method throws an `Error` if the command fails.
-
-### execa.shellSync(file, [options])
-
-Execute a command synchronously through the system shell.
-
-Returns the same result object as [`child_process.spawnSync`](https://nodejs.org/api/child_process.html#child_process_child_process_spawnsync_command_args_options).
-
-### options
-
-Type: `Object`
-
-#### cwd
-
-Type: `string`<br>
-Default: `process.cwd()`
-
-Current working directory of the child process.
-
-#### env
-
-Type: `Object`<br>
-Default: `process.env`
-
-Environment key-value pairs. Extends automatically from `process.env`. Set `extendEnv` to `false` if you don't want this.
-
-#### extendEnv
-
-Type: `boolean`<br>
-Default: `true`
-
-Set to `false` if you don't want to extend the environment variables when providing the `env` property.
-
-#### argv0
-
-Type: `string`
-
-Explicitly set the value of `argv[0]` sent to the child process. This will be set to `command` or `file` if not specified.
-
-#### stdio
-
-Type: `Array` `string`<br>
-Default: `pipe`
-
-Child's [stdio](https://nodejs.org/api/child_process.html#child_process_options_stdio) configuration.
-
-#### detached
-
-Type: `boolean`
-
-Prepare child to run independently of its parent process. Specific behavior [depends on the platform](https://nodejs.org/api/child_process.html#child_process_options_detached).
-
-#### uid
-
-Type: `number`
-
-Sets the user identity of the process.
-
-#### gid
-
-Type: `number`
-
-Sets the group identity of the process.
-
-#### shell
-
-Type: `boolean` `string`<br>
-Default: `false`
-
-If `true`, runs `command` inside of a shell. Uses `/bin/sh` on UNIX and `cmd.exe` on Windows. A different shell can be specified as a string. The shell should understand the `-c` switch on UNIX or `/d /s /c` on Windows.
-
-#### stripEof
-
-Type: `boolean`<br>
-Default: `true`
-
-[Strip EOF](https://github.com/sindresorhus/strip-eof) (last newline) from the output.
-
-#### preferLocal
-
-Type: `boolean`<br>
-Default: `true`
-
-Prefer locally installed binaries when looking for a binary to execute.<br>
-If you `$ npm install foo`, you can then `execa('foo')`.
-
-#### localDir
-
-Type: `string`<br>
-Default: `process.cwd()`
-
-Preferred path to find locally installed binaries in (use with `preferLocal`).
-
-#### input
-
-Type: `string` `Buffer` `stream.Readable`
-
-Write some input to the `stdin` of your binary.<br>
-Streams are not allowed when using the synchronous methods.
-
-#### reject
-
-Type: `boolean`<br>
-Default: `true`
-
-Setting this to `false` resolves the promise with the error instead of rejecting it.
-
-#### cleanup
-
-Type: `boolean`<br>
-Default: `true`
-
-Keep track of the spawned process and `kill` it when the parent process exits.
-
-#### encoding
-
-Type: `string`<br>
-Default: `utf8`
-
-Specify the character encoding used to decode the `stdout` and `stderr` output.
-
-#### timeout
-
-Type: `number`<br>
-Default: `0`
-
-If timeout is greater than `0`, the parent will send the signal identified by the `killSignal` property (the default is `SIGTERM`) if the child runs longer than timeout milliseconds.
-
-#### maxBuffer
-
-Type: `number`<br>
-Default: `10000000` (10MB)
-
-Largest amount of data in bytes allowed on `stdout` or `stderr`.
-
-#### killSignal
-
-Type: `string` `number`<br>
-Default: `SIGTERM`
-
-Signal value to be used when the spawned process will be killed.
-
-#### stdin
-
-Type: `string` `number` `Stream` `undefined` `null`<br>
-Default: `pipe`
-
-Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
-
-#### stdout
-
-Type: `string` `number` `Stream` `undefined` `null`<br>
-Default: `pipe`
-
-Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
-
-#### stderr
-
-Type: `string` `number` `Stream` `undefined` `null`<br>
-Default: `pipe`
-
-Same options as [`stdio`](https://nodejs.org/dist/latest-v6.x/docs/api/child_process.html#child_process_options_stdio).
-
-
-## Tips
-
-### Save and pipe output from a child process
-
-Let's say you want to show the output of a child process in real-time while also saving it to a variable.
-
-```js
-const execa = require('execa');
-const getStream = require('get-stream');
-
-const stream = execa('echo', ['foo']).stdout;
-
-stream.pipe(process.stdout);
-
-getStream(stream).then(value => {
- console.log('child output:', value);
-});
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json
deleted file mode 100644
index b4b65c52e6..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "term-size@^1.2.0",
- "_id": "term-size@1.2.0",
- "_inBundle": false,
- "_integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=",
- "_location": "/update-notifier/boxen/term-size",
- "_phantomChildren": {
- "lru-cache": "4.1.1",
- "which": "1.3.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "term-size@^1.2.0",
- "name": "term-size",
- "escapedName": "term-size",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz",
- "_shasum": "458b83887f288fc56d6fffbfad262e26638efa69",
- "_spec": "term-size@^1.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/term-size/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "execa": "^0.7.0"
- },
- "deprecated": false,
- "description": "Reliably get the terminal window size (columns & rows)",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "vendor"
- ],
- "homepage": "https://github.com/sindresorhus/term-size#readme",
- "keywords": [
- "term",
- "terminal",
- "size",
- "console",
- "window",
- "width",
- "height",
- "columns",
- "rows",
- "lines",
- "tty",
- "redirected"
- ],
- "license": "MIT",
- "name": "term-size",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/term-size.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.2.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js
deleted file mode 100644
index e5baea9e91..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/index.js
+++ /dev/null
@@ -1,8 +0,0 @@
-'use strict';
-var stringWidth = require('string-width');
-
-module.exports = function (str) {
- return Math.max.apply(null, str.split('\n').map(function (x) {
- return stringWidth(x);
- }));
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js
deleted file mode 100644
index 0432fe6a30..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/index.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/* eslint-disable babel/new-cap, xo/throw-new-error */
-'use strict';
-module.exports = function (str, pos) {
- if (str === null || str === undefined) {
- throw TypeError();
- }
-
- str = String(str);
-
- var size = str.length;
- var i = pos ? Number(pos) : 0;
-
- if (Number.isNaN(i)) {
- i = 0;
- }
-
- if (i < 0 || i >= size) {
- return undefined;
- }
-
- var first = str.charCodeAt(i);
-
- if (first >= 0xD800 && first <= 0xDBFF && size > i + 1) {
- var second = str.charCodeAt(i + 1);
-
- if (second >= 0xDC00 && second <= 0xDFFF) {
- return ((first - 0xD800) * 0x400) + second - 0xDC00 + 0x10000;
- }
- }
-
- return first;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json
deleted file mode 100644
index 42007ea604..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "code-point-at@^1.0.0",
- "_id": "code-point-at@1.1.0",
- "_integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
- "_location": "/update-notifier/boxen/widest-line/string-width/code-point-at",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "code-point-at@^1.0.0",
- "name": "code-point-at",
- "escapedName": "code-point-at",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "_shasum": "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77",
- "_shrinkwrap": null,
- "_spec": "code-point-at@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/code-point-at/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 `String#codePointAt()` ponyfill",
- "devDependencies": {
- "ava": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/code-point-at#readme",
- "keywords": [
- "es2015",
- "ponyfill",
- "polyfill",
- "shim",
- "string",
- "str",
- "code",
- "point",
- "at",
- "codepoint",
- "unicode"
- ],
- "license": "MIT",
- "name": "code-point-at",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/code-point-at.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md
deleted file mode 100644
index 4c97730e69..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/code-point-at/readme.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# code-point-at [![Build Status](https://travis-ci.org/sindresorhus/code-point-at.svg?branch=master)](https://travis-ci.org/sindresorhus/code-point-at)
-
-> ES2015 [`String#codePointAt()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/codePointAt) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save code-point-at
-```
-
-
-## Usage
-
-```js
-var codePointAt = require('code-point-at');
-
-codePointAt('šŸ“');
-//=> 128052
-
-codePointAt('abc', 2);
-//=> 99
-```
-
-## API
-
-### codePointAt(input, [position])
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/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 b/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
deleted file mode 100644
index 79be4b9cb8..0000000000
--- a/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
+++ /dev/null
@@ -1,4 +0,0 @@
-'use strict';
-module.exports = Number.isNaN || function (x) {
- return x !== x;
-};
diff --git a/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 b/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
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/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 b/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
deleted file mode 100644
index 0f2895d900..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "number-is-nan@^1.0.0",
- "_id": "number-is-nan@1.0.1",
- "_integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "_location": "/update-notifier/boxen/widest-line/string-width/is-fullwidth-code-point/number-is-nan",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "number-is-nan@^1.0.0",
- "name": "number-is-nan",
- "escapedName": "number-is-nan",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line/string-width/is-fullwidth-code-point"
- ],
- "_resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "_shasum": "097b602b53422a522c1afb8790318336941a011d",
- "_shrinkwrap": null,
- "_spec": "number-is-nan@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/is-fullwidth-code-point",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/number-is-nan/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "ES2015 Number.isNaN() ponyfill",
- "devDependencies": {
- "ava": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/number-is-nan#readme",
- "keywords": [
- "es2015",
- "ecmascript",
- "ponyfill",
- "polyfill",
- "shim",
- "number",
- "is",
- "nan",
- "not"
- ],
- "license": "MIT",
- "name": "number-is-nan",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/number-is-nan.git"
- },
- "scripts": {
- "test": "ava"
- },
- "version": "1.0.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 2463508712..0000000000
--- a/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
+++ /dev/null
@@ -1,28 +0,0 @@
-# number-is-nan [![Build Status](https://travis-ci.org/sindresorhus/number-is-nan.svg?branch=master)](https://travis-ci.org/sindresorhus/number-is-nan)
-
-> ES2015 [`Number.isNaN()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/isNaN) [ponyfill](https://ponyfill.com)
-
-
-## Install
-
-```
-$ npm install --save number-is-nan
-```
-
-
-## Usage
-
-```js
-var numberIsNan = require('number-is-nan');
-
-numberIsNan(NaN);
-//=> true
-
-numberIsNan('unicorn');
-//=> false
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/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 b/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
deleted file mode 100644
index b5d8514ec2..0000000000
--- a/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
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "is-fullwidth-code-point@^1.0.0",
- "_id": "is-fullwidth-code-point@1.0.0",
- "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "_location": "/update-notifier/boxen/widest-line/string-width/is-fullwidth-code-point",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-fullwidth-code-point@^1.0.0",
- "name": "is-fullwidth-code-point",
- "escapedName": "is-fullwidth-code-point",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
- "_shrinkwrap": null,
- "_spec": "is-fullwidth-code-point@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "deprecated": false,
- "description": "Check if the character represented by a given Unicode code point is fullwidth",
- "devDependencies": {
- "ava": "0.0.4",
- "code-point-at": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
- "keywords": [
- "fullwidth",
- "full-width",
- "full",
- "width",
- "unicode",
- "character",
- "char",
- "string",
- "str",
- "codepoint",
- "code",
- "point",
- "is",
- "detect",
- "check"
- ],
- "license": "MIT",
- "name": "is-fullwidth-code-point",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/license b/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
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/node_modules/ansi-regex/package.json b/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
deleted file mode 100644
index 66ce664bec..0000000000
--- a/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
+++ /dev/null
@@ -1,108 +0,0 @@
-{
- "_from": "ansi-regex@^2.0.0",
- "_id": "ansi-regex@2.1.1",
- "_inBundle": false,
- "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
- "_location": "/update-notifier/boxen/widest-line/string-width/strip-ansi/ansi-regex",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-regex@^2.0.0",
- "name": "ansi-regex",
- "escapedName": "ansi-regex",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line/string-width/strip-ansi"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
- "_spec": "ansi-regex@^2.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-regex/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Regular expression for matching ANSI escape codes",
- "devDependencies": {
- "ava": "0.17.0",
- "xo": "0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-regex#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "text",
- "regex",
- "regexp",
- "re",
- "match",
- "test",
- "find",
- "pattern"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "ansi-regex",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-regex.git"
- },
- "scripts": {
- "test": "xo && ava --verbose",
- "view-supported": "node fixtures/view-codes.js"
- },
- "version": "2.1.1",
- "xo": {
- "rules": {
- "guard-for-in": 0,
- "no-loop-func": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json
deleted file mode 100644
index 7d715bb57d..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/package.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
- "_from": "strip-ansi@^3.0.0",
- "_id": "strip-ansi@3.0.1",
- "_inBundle": false,
- "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "_location": "/update-notifier/boxen/widest-line/string-width/strip-ansi",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-ansi@^3.0.0",
- "name": "strip-ansi",
- "escapedName": "strip-ansi",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line/string-width"
- ],
- "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
- "_spec": "strip-ansi@^3.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/chalk/strip-ansi/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "deprecated": false,
- "description": "Strip ANSI escape codes",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/strip-ansi#readme",
- "keywords": [
- "strip",
- "trim",
- "remove",
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Boy Nicolai Appelman",
- "email": "joshua@jbna.nl",
- "url": "jbna.nl"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "strip-ansi",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/strip-ansi.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json
deleted file mode 100644
index e207d3b750..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "_from": "string-width@^1.0.1",
- "_id": "string-width@1.0.2",
- "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "_location": "/update-notifier/boxen/widest-line/string-width",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "string-width@^1.0.1",
- "name": "string-width",
- "escapedName": "string-width",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/update-notifier/boxen/widest-line"
- ],
- "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
- "_shrinkwrap": null,
- "_spec": "string-width@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/string-width/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "deprecated": false,
- "description": "Get the visual width of a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/string-width#readme",
- "keywords": [
- "string",
- "str",
- "character",
- "char",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "license": "MIT",
- "name": "string-width",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/string-width.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json
deleted file mode 100644
index b47c28f57e..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/package.json
+++ /dev/null
@@ -1,91 +0,0 @@
-{
- "_from": "widest-line@^1.0.0",
- "_id": "widest-line@1.0.0",
- "_integrity": "sha1-DAnIXCqUaD0Nfq+O4JfVZL8OEFw=",
- "_location": "/update-notifier/boxen/widest-line",
- "_phantomChildren": {
- "strip-ansi": "3.0.1"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "widest-line@^1.0.0",
- "name": "widest-line",
- "escapedName": "widest-line",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz",
- "_shasum": "0c09c85c2a94683d0d7eaf8ee097d564bf0e105c",
- "_shrinkwrap": null,
- "_spec": "widest-line@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/boxen",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/widest-line/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "string-width": "^1.0.1"
- },
- "deprecated": false,
- "description": "Get the visual width of the widest line in a string - the number of columns required to display it",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/widest-line#readme",
- "keywords": [
- "string",
- "str",
- "character",
- "char",
- "unicode",
- "width",
- "visual",
- "column",
- "columns",
- "fullwidth",
- "full-width",
- "full",
- "ansi",
- "escape",
- "codes",
- "cli",
- "command-line",
- "terminal",
- "console",
- "cjk",
- "chinese",
- "japanese",
- "korean",
- "fixed-width"
- ],
- "license": "MIT",
- "name": "widest-line",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/widest-line.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md b/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md
deleted file mode 100644
index 3a2e305edd..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/readme.md
+++ /dev/null
@@ -1,34 +0,0 @@
-# widest-line [![Build Status](https://travis-ci.org/sindresorhus/widest-line.svg?branch=master)](https://travis-ci.org/sindresorhus/widest-line)
-
-> Get the visual width of the widest line in a string - the number of columns required to display it
-
-Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
-
-Useful to be able to know the maximum width a string will take up in the terminal.
-
-
-## Install
-
-```
-$ npm install --save widest-line
-```
-
-
-## Usage
-
-```js
-const widestLine = require('widest-line');
-
-widestLine('古\n\u001b[1m@\u001b[22m');
-//=> 2
-```
-
-
-## Related
-
-- [string-width](https://github.com/sindresorhus/string-width) - Get the visual width of a string
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json b/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json
deleted file mode 100644
index 4b29403272..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "_from": "boxen@^1.0.0",
- "_id": "boxen@1.2.1",
- "_inBundle": false,
- "_integrity": "sha1-DxHn/jRO25OXl3/BPt5/ZNlWSB0=",
- "_location": "/update-notifier/boxen",
- "_phantomChildren": {
- "lru-cache": "4.1.1",
- "strip-ansi": "4.0.0",
- "which": "1.3.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "boxen@^1.0.0",
- "name": "boxen",
- "escapedName": "boxen",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/boxen/-/boxen-1.2.1.tgz",
- "_shasum": "0f11e7fe344edb9397977fc13ede7f64d956481d",
- "_spec": "boxen@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/boxen/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-align": "^2.0.0",
- "camelcase": "^4.0.0",
- "chalk": "^2.0.1",
- "cli-boxes": "^1.0.0",
- "string-width": "^2.0.0",
- "term-size": "^1.2.0",
- "widest-line": "^1.0.0"
- },
- "deprecated": false,
- "description": "Create boxes in the terminal",
- "devDependencies": {
- "ava": "*",
- "nyc": "^11.0.3",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/boxen#readme",
- "keywords": [
- "cli",
- "box",
- "boxes",
- "terminal",
- "term",
- "console",
- "ascii",
- "unicode",
- "border",
- "text"
- ],
- "license": "MIT",
- "name": "boxen",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/boxen.git"
- },
- "scripts": {
- "test": "xo && nyc ava"
- },
- "version": "1.2.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js
deleted file mode 100644
index 4c81d6d20f..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/index.js
+++ /dev/null
@@ -1,220 +0,0 @@
-'use strict';
-const escapeStringRegexp = require('escape-string-regexp');
-const ansiStyles = require('ansi-styles');
-const supportsColor = require('supports-color');
-
-const template = require('./templates.js');
-
-const isSimpleWindowsTerm = process.platform === 'win32' && !(process.env.TERM || '').toLowerCase().startsWith('xterm');
-
-// `supportsColor.level` ā†’ `ansiStyles.color[name]` mapping
-const levelMapping = ['ansi', 'ansi', 'ansi256', 'ansi16m'];
-
-// `color-convert` models to exclude from the Chalk API due to conflicts and such
-const skipModels = new Set(['gray']);
-
-const styles = Object.create(null);
-
-function applyOptions(obj, options) {
- options = options || {};
-
- // Detect level if not set manually
- const scLevel = supportsColor ? supportsColor.level : 0;
- obj.level = options.level === undefined ? scLevel : options.level;
- obj.enabled = 'enabled' in options ? options.enabled : obj.level > 0;
-}
-
-function Chalk(options) {
- // We check for this.template here since calling `chalk.constructor()`
- // by itself will have a `this` of a previously constructed chalk object
- if (!this || !(this instanceof Chalk) || this.template) {
- const chalk = {};
- applyOptions(chalk, options);
-
- chalk.template = function () {
- const args = [].slice.call(arguments);
- return chalkTag.apply(null, [chalk.template].concat(args));
- };
-
- Object.setPrototypeOf(chalk, Chalk.prototype);
- Object.setPrototypeOf(chalk.template, chalk);
-
- chalk.template.constructor = Chalk;
-
- return chalk.template;
- }
-
- applyOptions(this, options);
-}
-
-// Use bright blue on Windows as the normal blue color is illegible
-if (isSimpleWindowsTerm) {
- ansiStyles.blue.open = '\u001B[94m';
-}
-
-for (const key of Object.keys(ansiStyles)) {
- ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g');
-
- styles[key] = {
- get() {
- const codes = ansiStyles[key];
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], key);
- }
- };
-}
-
-ansiStyles.color.closeRe = new RegExp(escapeStringRegexp(ansiStyles.color.close), 'g');
-for (const model of Object.keys(ansiStyles.color.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
-
- styles[model] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.color[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.color.close,
- closeRe: ansiStyles.color.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
- };
- }
- };
-}
-
-ansiStyles.bgColor.closeRe = new RegExp(escapeStringRegexp(ansiStyles.bgColor.close), 'g');
-for (const model of Object.keys(ansiStyles.bgColor.ansi)) {
- if (skipModels.has(model)) {
- continue;
- }
-
- const bgModel = 'bg' + model[0].toUpperCase() + model.slice(1);
- styles[bgModel] = {
- get() {
- const level = this.level;
- return function () {
- const open = ansiStyles.bgColor[levelMapping[level]][model].apply(null, arguments);
- const codes = {
- open,
- close: ansiStyles.bgColor.close,
- closeRe: ansiStyles.bgColor.closeRe
- };
- return build.call(this, this._styles ? this._styles.concat(codes) : [codes], model);
- };
- }
- };
-}
-
-const proto = Object.defineProperties(() => {}, styles);
-
-function build(_styles, key) {
- const builder = function () {
- return applyStyle.apply(builder, arguments);
- };
-
- builder._styles = _styles;
-
- const self = this;
-
- Object.defineProperty(builder, 'level', {
- enumerable: true,
- get() {
- return self.level;
- },
- set(level) {
- self.level = level;
- }
- });
-
- Object.defineProperty(builder, 'enabled', {
- enumerable: true,
- get() {
- return self.enabled;
- },
- set(enabled) {
- self.enabled = enabled;
- }
- });
-
- // See below for fix regarding invisible grey/dim combination on Windows
- builder.hasGrey = this.hasGrey || key === 'gray' || key === 'grey';
-
- // `__proto__` is used because we must return a function, but there is
- // no way to create a function with a different prototype
- builder.__proto__ = proto; // eslint-disable-line no-proto
-
- return builder;
-}
-
-function applyStyle() {
- // Support varags, but simply cast to string in case there's only one arg
- const args = arguments;
- const argsLen = args.length;
- let str = String(arguments[0]);
-
- if (argsLen === 0) {
- return '';
- }
-
- if (argsLen > 1) {
- // Don't slice `arguments`, it prevents V8 optimizations
- for (let a = 1; a < argsLen; a++) {
- str += ' ' + args[a];
- }
- }
-
- if (!this.enabled || this.level <= 0 || !str) {
- return str;
- }
-
- // Turns out that on Windows dimmed gray text becomes invisible in cmd.exe,
- // see https://github.com/chalk/chalk/issues/58
- // If we're on Windows and we're dealing with a gray color, temporarily make 'dim' a noop.
- const originalDim = ansiStyles.dim.open;
- if (isSimpleWindowsTerm && this.hasGrey) {
- ansiStyles.dim.open = '';
- }
-
- for (const code of this._styles.slice().reverse()) {
- // Replace any instances already present with a re-opening code
- // otherwise only the part of the string until said closing code
- // will be colored, and the rest will simply be 'plain'.
- str = code.open + str.replace(code.closeRe, code.open) + code.close;
-
- // Close the styling before a linebreak and reopen
- // after next line to fix a bleed issue on macOS
- // https://github.com/chalk/chalk/pull/92
- str = str.replace(/\r?\n/g, `${code.close}$&${code.open}`);
- }
-
- // Reset the original `dim` if we changed it to work around the Windows dimmed gray issue
- ansiStyles.dim.open = originalDim;
-
- return str;
-}
-
-function chalkTag(chalk, strings) {
- if (!Array.isArray(strings)) {
- // If chalk() was called by itself or with a string,
- // return the string itself as a string.
- return [].slice.call(arguments, 1).join(' ');
- }
-
- const args = [].slice.call(arguments, 2);
- const parts = [strings.raw[0]];
-
- for (let i = 1; i < strings.length; i++) {
- parts.push(String(args[i - 1]).replace(/[{}\\]/g, '\\$&'));
- parts.push(String(strings.raw[i]));
- }
-
- return template(chalk, parts.join(''));
-}
-
-Object.defineProperties(Chalk.prototype, styles);
-
-module.exports = Chalk(); // eslint-disable-line new-cap
-module.exports.supportsColor = supportsColor;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js
deleted file mode 100644
index 3d3baa66d7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/index.js
+++ /dev/null
@@ -1,152 +0,0 @@
-'use strict';
-const colorConvert = require('color-convert');
-
-const wrapAnsi16 = (fn, offset) => function () {
- const code = fn.apply(colorConvert, arguments);
- return `\u001B[${code + offset}m`;
-};
-
-const wrapAnsi256 = (fn, offset) => function () {
- const code = fn.apply(colorConvert, arguments);
- return `\u001B[${38 + offset};5;${code}m`;
-};
-
-const wrapAnsi16m = (fn, offset) => function () {
- const rgb = fn.apply(colorConvert, arguments);
- return `\u001B[${38 + offset};2;${rgb[0]};${rgb[1]};${rgb[2]}m`;
-};
-
-function assembleStyles() {
- const codes = new Map();
- const styles = {
- modifier: {
- reset: [0, 0],
- // 21 isn't widely supported and 22 does the same thing
- bold: [1, 22],
- dim: [2, 22],
- italic: [3, 23],
- underline: [4, 24],
- inverse: [7, 27],
- hidden: [8, 28],
- strikethrough: [9, 29]
- },
- color: {
- 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],
-
- // Bright color
- redBright: [91, 39],
- greenBright: [92, 39],
- yellowBright: [93, 39],
- blueBright: [94, 39],
- magentaBright: [95, 39],
- cyanBright: [96, 39],
- whiteBright: [97, 39]
- },
- bgColor: {
- bgBlack: [40, 49],
- bgRed: [41, 49],
- bgGreen: [42, 49],
- bgYellow: [43, 49],
- bgBlue: [44, 49],
- bgMagenta: [45, 49],
- bgCyan: [46, 49],
- bgWhite: [47, 49],
-
- // Bright color
- bgBlackBright: [100, 49],
- bgRedBright: [101, 49],
- bgGreenBright: [102, 49],
- bgYellowBright: [103, 49],
- bgBlueBright: [104, 49],
- bgMagentaBright: [105, 49],
- bgCyanBright: [106, 49],
- bgWhiteBright: [107, 49]
- }
- };
-
- // Fix humans
- styles.color.grey = styles.color.gray;
-
- for (const groupName of Object.keys(styles)) {
- const group = styles[groupName];
-
- for (const styleName of Object.keys(group)) {
- const style = group[styleName];
-
- styles[styleName] = {
- open: `\u001B[${style[0]}m`,
- close: `\u001B[${style[1]}m`
- };
-
- group[styleName] = styles[styleName];
-
- codes.set(style[0], style[1]);
- }
-
- Object.defineProperty(styles, groupName, {
- value: group,
- enumerable: false
- });
-
- Object.defineProperty(styles, 'codes', {
- value: codes,
- enumerable: false
- });
- }
-
- const rgb2rgb = (r, g, b) => [r, g, b];
-
- styles.color.close = '\u001B[39m';
- styles.bgColor.close = '\u001B[49m';
-
- styles.color.ansi = {};
- styles.color.ansi256 = {};
- styles.color.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 0)
- };
-
- styles.bgColor.ansi = {};
- styles.bgColor.ansi256 = {};
- styles.bgColor.ansi16m = {
- rgb: wrapAnsi16m(rgb2rgb, 10)
- };
-
- for (const key of Object.keys(colorConvert)) {
- if (typeof colorConvert[key] !== 'object') {
- continue;
- }
-
- const suite = colorConvert[key];
-
- if ('ansi16' in suite) {
- styles.color.ansi[key] = wrapAnsi16(suite.ansi16, 0);
- styles.bgColor.ansi[key] = wrapAnsi16(suite.ansi16, 10);
- }
-
- if ('ansi256' in suite) {
- styles.color.ansi256[key] = wrapAnsi256(suite.ansi256, 0);
- styles.bgColor.ansi256[key] = wrapAnsi256(suite.ansi256, 10);
- }
-
- if ('rgb' in suite) {
- styles.color.ansi16m[key] = wrapAnsi16m(suite.rgb, 0);
- styles.bgColor.ansi16m[key] = wrapAnsi16m(suite.rgb, 10);
- }
- }
-
- return styles;
-}
-
-// Make the export immutable
-Object.defineProperty(module, 'exports', {
- enumerable: true,
- get: assembleStyles
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json
deleted file mode 100644
index f269d7266a..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/node_modules/color-name/package.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "_from": "color-name@^1.1.1",
- "_id": "color-name@1.1.3",
- "_inBundle": false,
- "_integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "_location": "/update-notifier/chalk/ansi-styles/color-convert/color-name",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "color-name@^1.1.1",
- "name": "color-name",
- "escapedName": "color-name",
- "rawSpec": "^1.1.1",
- "saveSpec": null,
- "fetchSpec": "^1.1.1"
- },
- "_requiredBy": [
- "/update-notifier/chalk/ansi-styles/color-convert"
- ],
- "_resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "_shasum": "a7d0558bd89c42f795dd42328f740831ca53bc25",
- "_spec": "color-name@^1.1.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert",
- "author": {
- "name": "DY",
- "email": "dfcreative@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/dfcreative/color-name/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "A list of color names and its values",
- "homepage": "https://github.com/dfcreative/color-name",
- "keywords": [
- "color-name",
- "color",
- "color-keyword",
- "keyword"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "color-name",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/dfcreative/color-name.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.1.3"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json
deleted file mode 100644
index b52844a38d..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/node_modules/color-convert/package.json
+++ /dev/null
@@ -1,81 +0,0 @@
-{
- "_from": "color-convert@^1.9.0",
- "_id": "color-convert@1.9.0",
- "_inBundle": false,
- "_integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=",
- "_location": "/update-notifier/chalk/ansi-styles/color-convert",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "color-convert@^1.9.0",
- "name": "color-convert",
- "escapedName": "color-convert",
- "rawSpec": "^1.9.0",
- "saveSpec": null,
- "fetchSpec": "^1.9.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk/ansi-styles"
- ],
- "_resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz",
- "_shasum": "1accf97dd739b983bf994d56fec8f95853641b7a",
- "_spec": "color-convert@^1.9.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles",
- "author": {
- "name": "Heather Arthur",
- "email": "fayearthur@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/Qix-/color-convert/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "color-name": "^1.1.1"
- },
- "deprecated": false,
- "description": "Plain color conversion functions",
- "devDependencies": {
- "chalk": "^1.1.1",
- "xo": "^0.11.2"
- },
- "files": [
- "index.js",
- "conversions.js",
- "css-keywords.js",
- "route.js"
- ],
- "homepage": "https://github.com/Qix-/color-convert#readme",
- "keywords": [
- "color",
- "colour",
- "convert",
- "converter",
- "conversion",
- "rgb",
- "hsl",
- "hsv",
- "hwb",
- "cmyk",
- "ansi",
- "ansi16"
- ],
- "license": "MIT",
- "name": "color-convert",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/Qix-/color-convert.git"
- },
- "scripts": {
- "pretest": "xo",
- "test": "node test/basic.js"
- },
- "version": "1.9.0",
- "xo": {
- "rules": {
- "default-case": 0,
- "no-inline-comments": 0,
- "operator-linebreak": 0
- }
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json
deleted file mode 100644
index c9c0f3af06..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "_from": "ansi-styles@^3.1.0",
- "_id": "ansi-styles@3.2.0",
- "_inBundle": false,
- "_integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==",
- "_location": "/update-notifier/chalk/ansi-styles",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "ansi-styles@^3.1.0",
- "name": "ansi-styles",
- "escapedName": "ansi-styles",
- "rawSpec": "^3.1.0",
- "saveSpec": null,
- "fetchSpec": "^3.1.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk"
- ],
- "_resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz",
- "_shasum": "c159b8d5be0f9e5a6f346dab94f16ce022161b88",
- "_spec": "ansi-styles@^3.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "ava": {
- "require": "babel-polyfill"
- },
- "bugs": {
- "url": "https://github.com/chalk/ansi-styles/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "deprecated": false,
- "description": "ANSI escape codes for styling strings in the terminal",
- "devDependencies": {
- "ava": "*",
- "babel-polyfill": "^6.23.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/chalk/ansi-styles#readme",
- "keywords": [
- "ansi",
- "styles",
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "tty",
- "escape",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "name": "ansi-styles",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/ansi-styles.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.2.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md
deleted file mode 100644
index dce368742b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/ansi-styles/readme.md
+++ /dev/null
@@ -1,147 +0,0 @@
-# ansi-styles [![Build Status](https://travis-ci.org/chalk/ansi-styles.svg?branch=master)](https://travis-ci.org/chalk/ansi-styles)
-
-> [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code#Colors_and_Styles) for styling strings in the terminal
-
-You probably want the higher-level [chalk](https://github.com/chalk/chalk) module for styling your strings.
-
-![](screenshot.png)
-
-
-## Install
-
-```
-$ npm install ansi-styles
-```
-
-
-## Usage
-
-```js
-const style = require('ansi-styles');
-
-console.log(`${style.green.open}Hello world!${style.green.close}`);
-
-
-// Color conversion between 16/256/truecolor
-// NOTE: If conversion goes to 16 colors or 256 colors, the original color
-// may be degraded to fit that color palette. This means terminals
-// that do not support 16 million colors will best-match the
-// original color.
-console.log(style.bgColor.ansi.hsl(120, 80, 72) + 'Hello world!' + style.bgColor.close);
-console.log(style.color.ansi256.rgb(199, 20, 250) + 'Hello world!' + style.color.close);
-console.log(style.color.ansi16m.hex('#ABCDEF') + 'Hello world!' + style.color.close);
-```
-
-## API
-
-Each style has an `open` and `close` property.
-
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(Not widely supported)*
-- `underline`
-- `inverse`
-- `hidden`
-- `strikethrough` *(Not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue`
-- `magenta`
-- `cyan`
-- `white`
-- `gray` ("bright black")
-- `redBright`
-- `greenBright`
-- `yellowBright`
-- `blueBright`
-- `magentaBright`
-- `cyanBright`
-- `whiteBright`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-- `bgBlackBright`
-- `bgRedBright`
-- `bgGreenBright`
-- `bgYellowBright`
-- `bgBlueBright`
-- `bgMagentaBright`
-- `bgCyanBright`
-- `bgWhiteBright`
-
-
-## Advanced usage
-
-By default, you get a map of styles, but the styles are also available as groups. They are non-enumerable so they don't show up unless you access them explicitly. This makes it easier to expose only a subset in a higher-level module.
-
-- `style.modifier`
-- `style.color`
-- `style.bgColor`
-
-###### Example
-
-```js
-console.log(style.color.green.open);
-```
-
-Raw escape codes (i.e. without the CSI escape prefix `\u001B[` and render mode postfix `m`) are available under `style.codes`, which returns a `Map` with the open codes as keys and close codes as values.
-
-###### Example
-
-```js
-console.log(style.codes.get(36));
-//=> 39
-```
-
-
-## [256 / 16 million (TrueColor) support](https://gist.github.com/XVilka/8346728)
-
-`ansi-styles` uses the [`color-convert`](https://github.com/Qix-/color-convert) package to allow for converting between various colors and ANSI escapes, with support for 256 and 16 million colors.
-
-To use these, call the associated conversion function with the intended output, for example:
-
-```js
-style.color.ansi.rgb(100, 200, 15); // RGB to 16 color ansi foreground code
-style.bgColor.ansi.rgb(100, 200, 15); // RGB to 16 color ansi background code
-
-style.color.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
-style.bgColor.ansi256.hsl(120, 100, 60); // HSL to 256 color ansi foreground code
-
-style.color.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color foreground code
-style.bgColor.ansi16m.hex('#C0FFEE'); // Hex (RGB) to 16 million color background code
-```
-
-
-## Related
-
-- [ansi-escapes](https://github.com/sindresorhus/ansi-escapes) - ANSI escape codes for manipulating the terminal
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json
deleted file mode 100644
index 25465ec290..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/escape-string-regexp/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "_from": "escape-string-regexp@^1.0.2",
- "_id": "escape-string-regexp@1.0.5",
- "_integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "_location": "/update-notifier/chalk/escape-string-regexp",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "escape-string-regexp@^1.0.2",
- "name": "escape-string-regexp",
- "escapedName": "escape-string-regexp",
- "rawSpec": "^1.0.2",
- "saveSpec": null,
- "fetchSpec": "^1.0.2"
- },
- "_requiredBy": [
- "/update-notifier/chalk"
- ],
- "_resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "_shasum": "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4",
- "_shrinkwrap": null,
- "_spec": "escape-string-regexp@^1.0.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/escape-string-regexp/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Escape RegExp special characters",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.8.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/escape-string-regexp#readme",
- "keywords": [
- "escape",
- "regex",
- "regexp",
- "re",
- "regular",
- "expression",
- "string",
- "str",
- "special",
- "characters"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Boy Nicolai Appelman",
- "email": "joshua@jbna.nl",
- "url": "jbna.nl"
- }
- ],
- "name": "escape-string-regexp",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/escape-string-regexp.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.5"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js
deleted file mode 100644
index ae7c87b17c..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/browser.js
+++ /dev/null
@@ -1,2 +0,0 @@
-'use strict';
-module.exports = false;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js
deleted file mode 100644
index a5d9331df1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/index.js
+++ /dev/null
@@ -1,115 +0,0 @@
-'use strict';
-const os = require('os');
-const hasFlag = require('has-flag');
-
-const env = process.env;
-
-const support = level => {
- if (level === 0) {
- return false;
- }
-
- return {
- level,
- hasBasic: true,
- has256: level >= 2,
- has16m: level >= 3
- };
-};
-
-let supportLevel = (() => {
- if (hasFlag('no-color') ||
- hasFlag('no-colors') ||
- hasFlag('color=false')) {
- return 0;
- }
-
- if (hasFlag('color=16m') ||
- hasFlag('color=full') ||
- hasFlag('color=truecolor')) {
- return 3;
- }
-
- if (hasFlag('color=256')) {
- return 2;
- }
-
- if (hasFlag('color') ||
- hasFlag('colors') ||
- hasFlag('color=true') ||
- hasFlag('color=always')) {
- return 1;
- }
-
- if (process.stdout && !process.stdout.isTTY) {
- return 0;
- }
-
- if (process.platform === 'win32') {
- // Node.js 7.5.0 is the first version of Node.js to include a patch to
- // libuv that enables 256 color output on Windows. Anything earlier and it
- // won't work. However, here we target Node.js 8 at minimum as it is an LTS
- // release, and Node.js 7 is not. Windows 10 build 10586 is the first Windows
- // release that supports 256 colors.
- const osRelease = os.release().split('.');
- if (
- Number(process.versions.node.split('.')[0]) >= 8 &&
- Number(osRelease[0]) >= 10 &&
- Number(osRelease[2]) >= 10586
- ) {
- return 2;
- }
-
- return 1;
- }
-
- if ('CI' in env) {
- if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI'].some(sign => sign in env) || env.CI_NAME === 'codeship') {
- return 1;
- }
-
- return 0;
- }
-
- if ('TEAMCITY_VERSION' in env) {
- return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;
- }
-
- if ('TERM_PROGRAM' in env) {
- const version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);
-
- switch (env.TERM_PROGRAM) {
- case 'iTerm.app':
- return version >= 3 ? 3 : 2;
- case 'Hyper':
- return 3;
- case 'Apple_Terminal':
- return 2;
- // No default
- }
- }
-
- if (/-256(color)?$/i.test(env.TERM)) {
- return 2;
- }
-
- if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(env.TERM)) {
- return 1;
- }
-
- if ('COLORTERM' in env) {
- return 1;
- }
-
- if (env.TERM === 'dumb') {
- return 0;
- }
-
- return 0;
-})();
-
-if ('FORCE_COLOR' in env) {
- supportLevel = parseInt(env.FORCE_COLOR, 10) === 0 ? 0 : (supportLevel || 1);
-}
-
-module.exports = process && support(supportLevel);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js
deleted file mode 100644
index 68820307dc..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/index.js
+++ /dev/null
@@ -1,10 +0,0 @@
-'use strict';
-module.exports = function (flag, argv) {
- argv = argv || process.argv;
-
- var terminatorPos = argv.indexOf('--');
- var prefix = /^-{1,2}/.test(flag) ? '' : '--';
- var pos = argv.indexOf(prefix + flag);
-
- return pos !== -1 && (terminatorPos === -1 ? true : pos < terminatorPos);
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json
deleted file mode 100644
index 804a12fdcb..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/package.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "_from": "has-flag@^2.0.0",
- "_id": "has-flag@2.0.0",
- "_inBundle": false,
- "_integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
- "_location": "/update-notifier/chalk/supports-color/has-flag",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "has-flag@^2.0.0",
- "name": "has-flag",
- "escapedName": "has-flag",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk/supports-color"
- ],
- "_resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "_shasum": "e8207af1cc7b30d446cc70b734b5e8be18f88d51",
- "_spec": "has-flag@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/has-flag/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Check if argv has a specific flag",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/has-flag#readme",
- "keywords": [
- "has",
- "check",
- "detect",
- "contains",
- "find",
- "flag",
- "cli",
- "command-line",
- "argv",
- "process",
- "arg",
- "args",
- "argument",
- "arguments",
- "getopt",
- "minimist",
- "optimist"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Joshua Appelman",
- "email": "jappelman@xebia.com",
- "url": "jbnicolai.com"
- },
- {
- "name": "JD Ballard",
- "email": "i.am.qix@gmail.com",
- "url": "github.com/qix-"
- }
- ],
- "name": "has-flag",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/has-flag.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md
deleted file mode 100644
index 0caca6cba1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/node_modules/has-flag/readme.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# has-flag [![Build Status](https://travis-ci.org/sindresorhus/has-flag.svg?branch=master)](https://travis-ci.org/sindresorhus/has-flag)
-
-> Check if [`argv`](https://nodejs.org/docs/latest/api/process.html#process_process_argv) has a specific flag
-
-Correctly stops looking after an `--` argument terminator.
-
-
-## Install
-
-```
-$ npm install --save has-flag
-```
-
-
-## Usage
-
-```js
-// foo.js
-const hasFlag = require('has-flag');
-
-hasFlag('unicorn');
-//=> true
-
-hasFlag('--unicorn');
-//=> true
-
-hasFlag('-f');
-//=> true
-
-hasFlag('foo=bar');
-//=> true
-
-hasFlag('foo');
-//=> false
-
-hasFlag('rainbow');
-//=> false
-```
-
-```
-$ node foo.js -f --unicorn --foo=bar -- --rainbow
-```
-
-
-## API
-
-### hasFlag(flag, [argv])
-
-Returns a boolean whether the flag exists.
-
-#### flag
-
-Type: `string`
-
-CLI flag to look for. The `--` prefix is optional.
-
-#### argv
-
-Type: `array`<br>
-Default: `process.argv`
-
-CLI arguments.
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json
deleted file mode 100644
index 6f0d0362b8..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "_from": "supports-color@^4.0.0",
- "_id": "supports-color@4.4.0",
- "_inBundle": false,
- "_integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
- "_location": "/update-notifier/chalk/supports-color",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "supports-color@^4.0.0",
- "name": "supports-color",
- "escapedName": "supports-color",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/update-notifier/chalk"
- ],
- "_resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
- "_shasum": "883f7ddabc165142b2a61427f3352ded195d1a3e",
- "_spec": "supports-color@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/chalk",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "browser": "browser.js",
- "bugs": {
- "url": "https://github.com/chalk/supports-color/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "has-flag": "^2.0.0"
- },
- "deprecated": false,
- "description": "Detect whether a terminal supports color",
- "devDependencies": {
- "ava": "*",
- "import-fresh": "^2.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "browser.js"
- ],
- "homepage": "https://github.com/chalk/supports-color#readme",
- "keywords": [
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "ansi",
- "styles",
- "tty",
- "rgb",
- "256",
- "shell",
- "xterm",
- "command-line",
- "support",
- "supports",
- "capability",
- "detect",
- "truecolor",
- "16m"
- ],
- "license": "MIT",
- "name": "supports-color",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/supports-color.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "4.4.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md
deleted file mode 100644
index 3bef57db0e..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/node_modules/supports-color/readme.md
+++ /dev/null
@@ -1,66 +0,0 @@
-# supports-color [![Build Status](https://travis-ci.org/chalk/supports-color.svg?branch=master)](https://travis-ci.org/chalk/supports-color)
-
-> Detect whether a terminal supports color
-
-
-## Install
-
-```
-$ npm install supports-color
-```
-
-
-## Usage
-
-```js
-const supportsColor = require('supports-color');
-
-if (supportsColor) {
- console.log('Terminal supports color');
-}
-
-if (supportsColor.has256) {
- console.log('Terminal supports 256 colors');
-}
-
-if (supportsColor.has16m) {
- console.log('Terminal supports 16 million colors (truecolor)');
-}
-```
-
-
-## API
-
-Returns an `Object`, or `false` if color is not supported.
-
-The returned object specifies a level of support for color through a `.level` property and a corresponding flag:
-
-- `.level = 1` and `.hasBasic = true`: Basic color support (16 colors)
-- `.level = 2` and `.has256 = true`: 256 color support
-- `.level = 3` and `.has16m = true`: Truecolor support (16 million colors)
-
-
-## Info
-
-It obeys the `--color` and `--no-color` CLI flags.
-
-Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
-
-Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
-
-
-## Related
-
-- [supports-color-cli](https://github.com/chalk/supports-color-cli) - CLI for this module
-- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json b/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json
deleted file mode 100644
index 8433207ece..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/package.json
+++ /dev/null
@@ -1,96 +0,0 @@
-{
- "_from": "chalk@^2.0.1",
- "_id": "chalk@2.1.0",
- "_inBundle": false,
- "_integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==",
- "_location": "/update-notifier/chalk",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "chalk@^2.0.1",
- "name": "chalk",
- "escapedName": "chalk",
- "rawSpec": "^2.0.1",
- "saveSpec": null,
- "fetchSpec": "^2.0.1"
- },
- "_requiredBy": [
- "/update-notifier",
- "/update-notifier/boxen"
- ],
- "_resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz",
- "_shasum": "ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e",
- "_spec": "chalk@^2.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "bugs": {
- "url": "https://github.com/chalk/chalk/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ansi-styles": "^3.1.0",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^4.0.0"
- },
- "deprecated": false,
- "description": "Terminal string styling done right",
- "devDependencies": {
- "ava": "*",
- "coveralls": "^2.11.2",
- "execa": "^0.7.0",
- "import-fresh": "^2.0.0",
- "matcha": "^0.7.0",
- "nyc": "^11.0.2",
- "resolve-from": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "templates.js"
- ],
- "homepage": "https://github.com/chalk/chalk#readme",
- "keywords": [
- "color",
- "colour",
- "colors",
- "terminal",
- "console",
- "cli",
- "string",
- "str",
- "ansi",
- "style",
- "styles",
- "tty",
- "formatting",
- "rgb",
- "256",
- "shell",
- "xterm",
- "log",
- "logging",
- "command-line",
- "text"
- ],
- "license": "MIT",
- "name": "chalk",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/chalk/chalk.git"
- },
- "scripts": {
- "bench": "matcha benchmark.js",
- "coveralls": "nyc report --reporter=text-lcov | coveralls",
- "test": "xo && nyc ava"
- },
- "version": "2.1.0",
- "xo": {
- "envs": [
- "node",
- "mocha"
- ]
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md b/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md
deleted file mode 100644
index dfcfdf25d8..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/chalk/readme.md
+++ /dev/null
@@ -1,306 +0,0 @@
-<h1 align="center">
- <br>
- <br>
- <img width="320" src="https://cdn.rawgit.com/chalk/chalk/19935d6484811c5e468817f846b7b3d417d7bf4a/logo.svg" alt="chalk">
- <br>
- <br>
- <br>
-</h1>
-
-> Terminal string styling done right
-
-[![Build Status](https://travis-ci.org/chalk/chalk.svg?branch=master)](https://travis-ci.org/chalk/chalk) [![Coverage Status](https://coveralls.io/repos/github/chalk/chalk/badge.svg?branch=master)](https://coveralls.io/github/chalk/chalk?branch=master) [![](https://img.shields.io/badge/unicorn-approved-ff69b4.svg)](https://www.youtube.com/watch?v=9auOCbH5Ns4) [![XO code style](https://img.shields.io/badge/code_style-XO-5ed9c7.svg)](https://github.com/sindresorhus/xo)
-
-### [See what's new in Chalk 2](https://github.com/chalk/chalk/releases/tag/v2.0.0)
-
-![](https://github.com/chalk/ansi-styles/raw/master/screenshot.png)
-
-
-## Highlights
-
-- Expressive API
-- Highly performant
-- Ability to nest styles
-- [256/Truecolor color support](#256-and-truecolor-color-support)
-- Auto-detects color support
-- Doesn't extend `String.prototype`
-- Clean and focused
-- Actively maintained
-- [Used by ~17,000 packages](https://www.npmjs.com/browse/depended/chalk) as of June 20th, 2017
-
-
-## Install
-
-```console
-$ npm install chalk
-```
-
-
-## Usage
-
-```js
-const chalk = require('chalk');
-
-console.log(chalk.blue('Hello world!'));
-```
-
-Chalk comes with an easy to use composable API where you just chain and nest the styles you want.
-
-```js
-const chalk = require('chalk');
-const log = console.log;
-
-// Combine styled and normal strings
-log(chalk.blue('Hello') + 'World' + chalk.red('!'));
-
-// Compose multiple styles using the chainable API
-log(chalk.blue.bgRed.bold('Hello world!'));
-
-// Pass in multiple arguments
-log(chalk.blue('Hello', 'World!', 'Foo', 'bar', 'biz', 'baz'));
-
-// Nest styles
-log(chalk.red('Hello', chalk.underline.bgBlue('world') + '!'));
-
-// Nest styles of the same type even (color, underline, background)
-log(chalk.green(
- 'I am a green line ' +
- chalk.blue.underline.bold('with a blue substring') +
- ' that becomes green again!'
-));
-
-// ES2015 template literal
-log(`
-CPU: ${chalk.red('90%')}
-RAM: ${chalk.green('40%')}
-DISK: ${chalk.yellow('70%')}
-`);
-
-// ES2015 tagged template literal
-log(chalk`
-CPU: {red ${cpu.totalPercent}%}
-RAM: {green ${ram.used / ram.total * 100}%}
-DISK: {rgb(255,131,0) ${disk.used / disk.total * 100}%}
-`);
-
-// Use RGB colors in terminal emulators that support it.
-log(chalk.keyword('orange')('Yay for orange colored text!'));
-log(chalk.rgb(123, 45, 67).underline('Underlined reddish color'));
-log(chalk.hex('#DEADED').bold('Bold gray!'));
-```
-
-Easily define your own themes:
-
-```js
-const chalk = require('chalk');
-
-const error = chalk.bold.red;
-const warning = chalk.keyword('orange');
-
-console.log(error('Error!'));
-console.log(warning('Warning!'));
-```
-
-Take advantage of console.log [string substitution](https://nodejs.org/docs/latest/api/console.html#console_console_log_data_args):
-
-```js
-const name = 'Sindre';
-console.log(chalk.green('Hello %s'), name);
-//=> 'Hello Sindre'
-```
-
-
-## API
-
-### chalk.`<style>[.<style>...](string, [string...])`
-
-Example: `chalk.red.bold.underline('Hello', 'world');`
-
-Chain [styles](#styles) and call the last one as a method with a string argument. Order doesn't matter, and later styles take precedent in case of a conflict. This simply means that `chalk.red.yellow.green` is equivalent to `chalk.green`.
-
-Multiple arguments will be separated by space.
-
-### chalk.enabled
-
-Color support is automatically detected, as is the level (see `chalk.level`). However, if you'd like to simply enable/disable Chalk, you can do so via the `.enabled` property.
-
-Chalk is enabled by default unless expicitly disabled via the constructor or `chalk.level` is `0`.
-
-If you need to change this in a reusable module, create a new instance:
-
-```js
-const ctx = new chalk.constructor({enabled: false});
-```
-
-### chalk.level
-
-Color support is automatically detected, but you can override it by setting the `level` property. You should however only do this in your own code as it applies globally to all Chalk consumers.
-
-If you need to change this in a reusable module, create a new instance:
-
-```js
-const ctx = new chalk.constructor({level: 0});
-```
-
-Levels are as follows:
-
-0. All colors disabled
-1. Basic color support (16 colors)
-2. 256 color support
-3. Truecolor support (16 million colors)
-
-### chalk.supportsColor
-
-Detect whether the terminal [supports color](https://github.com/chalk/supports-color). Used internally and handled for you, but exposed for convenience.
-
-Can be overridden by the user with the flags `--color` and `--no-color`. For situations where using `--color` is not possible, add the environment variable `FORCE_COLOR=1` to forcefully enable color or `FORCE_COLOR=0` to forcefully disable. The use of `FORCE_COLOR` overrides all other color support checks.
-
-Explicit 256/Truecolor mode can be enabled using the `--color=256` and `--color=16m` flags, respectively.
-
-
-## Styles
-
-### Modifiers
-
-- `reset`
-- `bold`
-- `dim`
-- `italic` *(Not widely supported)*
-- `underline`
-- `inverse`
-- `hidden`
-- `strikethrough` *(Not widely supported)*
-
-### Colors
-
-- `black`
-- `red`
-- `green`
-- `yellow`
-- `blue` *(On Windows the bright version is used since normal blue is illegible)*
-- `magenta`
-- `cyan`
-- `white`
-- `gray` ("bright black")
-- `redBright`
-- `greenBright`
-- `yellowBright`
-- `blueBright`
-- `magentaBright`
-- `cyanBright`
-- `whiteBright`
-
-### Background colors
-
-- `bgBlack`
-- `bgRed`
-- `bgGreen`
-- `bgYellow`
-- `bgBlue`
-- `bgMagenta`
-- `bgCyan`
-- `bgWhite`
-- `bgBlackBright`
-- `bgRedBright`
-- `bgGreenBright`
-- `bgYellowBright`
-- `bgBlueBright`
-- `bgMagentaBright`
-- `bgCyanBright`
-- `bgWhiteBright`
-
-
-## Tagged template literal
-
-Chalk can be used as a [tagged template literal](http://exploringjs.com/es6/ch_template-literals.html#_tagged-template-literals).
-
-```js
-const chalk = require('chalk');
-
-const miles = 18;
-const calculateFeet = miles => miles * 5280;
-
-console.log(chalk`
- There are {bold 5280 feet} in a mile.
- In {bold ${miles} miles}, there are {green.bold ${calculateFeet(miles)} feet}.
-`);
-```
-
-Blocks are delimited by an opening curly brace (`{`), a style, some content, and a closing curly brace (`}`).
-
-Template styles are chained exactly like normal Chalk styles. The following two statements are equivalent:
-
-```js
-console.log(chalk.bold.rgb(10, 100, 200)('Hello!'));
-console.log(chalk`{bold.rgb(10,100,200) Hello!}`);
-```
-
-Note that function styles (`rgb()`, `hsl()`, `keyword()`, etc.) may not contain spaces between parameters.
-
-All interpolated values (`` chalk`${foo}` ``) are converted to strings via the `.toString()` method. All curly braces (`{` and `}`) in interpolated value strings are escaped.
-
-
-## 256 and Truecolor color support
-
-Chalk supports 256 colors and [Truecolor](https://gist.github.com/XVilka/8346728) (16 million colors) on supported terminal apps.
-
-Colors are downsampled from 16 million RGB values to an ANSI color format that is supported by the terminal emulator (or by specifying `{level: n}` as a Chalk option). For example, Chalk configured to run at level 1 (basic color support) will downsample an RGB value of #FF0000 (red) to 31 (ANSI escape for red).
-
-Examples:
-
-- `chalk.hex('#DEADED').underline('Hello, world!')`
-- `chalk.keyword('orange')('Some orange text')`
-- `chalk.rgb(15, 100, 204).inverse('Hello!')`
-
-Background versions of these models are prefixed with `bg` and the first level of the module capitalized (e.g. `keyword` for foreground colors and `bgKeyword` for background colors).
-
-- `chalk.bgHex('#DEADED').underline('Hello, world!')`
-- `chalk.bgKeyword('orange')('Some orange text')`
-- `chalk.bgRgb(15, 100, 204).inverse('Hello!')`
-
-The following color models can be used:
-
-- [`rgb`](https://en.wikipedia.org/wiki/RGB_color_model) - Example: `chalk.rgb(255, 136, 0).bold('Orange!')`
-- [`hex`](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) - Example: `chalk.hex('#FF8800').bold('Orange!')`
-- [`keyword`](https://www.w3.org/wiki/CSS/Properties/color/keywords) (CSS keywords) - Example: `chalk.keyword('orange').bold('Orange!')`
-- [`hsl`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsl(32, 100, 50).bold('Orange!')`
-- [`hsv`](https://en.wikipedia.org/wiki/HSL_and_HSV) - Example: `chalk.hsl(32, 1, 1).bold('Orange!')`
-- [`hwb`](https://en.wikipedia.org/wiki/HWB_color_model) - Example: `chalk.hsl(32, 0, 50).bold('Orange!')`
-- `ansi16`
-- `ansi256`
-
-
-## Windows
-
-If you're on Windows, do yourself a favor and use [`cmder`](http://cmder.net/) instead of `cmd.exe`.
-
-
-## Origin story
-
-[colors.js](https://github.com/Marak/colors.js) used to be the most popular string styling module, but it has serious deficiencies like extending `String.prototype` which causes all kinds of [problems](https://github.com/yeoman/yo/issues/68) and the package is unmaintained. Although there are other packages, they either do too much or not enough. Chalk is a clean and focused alternative.
-
-
-## Related
-
-- [chalk-cli](https://github.com/chalk/chalk-cli) - CLI for this module
-- [ansi-styles](https://github.com/chalk/ansi-styles) - ANSI escape codes for styling strings in the terminal
-- [supports-color](https://github.com/chalk/supports-color) - Detect whether a terminal supports color
-- [strip-ansi](https://github.com/chalk/strip-ansi) - Strip ANSI escape codes
-- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
-- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
-- [wrap-ansi](https://github.com/chalk/wrap-ansi) - Wordwrap a string with ANSI escape codes
-- [slice-ansi](https://github.com/chalk/slice-ansi) - Slice a string with ANSI escape codes
-- [color-convert](https://github.com/qix-/color-convert) - Converts colors between different models
-- [chalk-animation](https://github.com/bokub/chalk-animation) - Animate strings in the terminal
-- [gradient-string](https://github.com/bokub/gradient-string) - Apply color gradients to strings
-
-
-## Maintainers
-
-- [Sindre Sorhus](https://github.com/sindresorhus)
-- [Josh Junon](https://github.com/qix-)
-
-
-## License
-
-MIT
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js b/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js
deleted file mode 100644
index 4883613cad..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/index.js
+++ /dev/null
@@ -1,98 +0,0 @@
-'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/update-notifier/node_modules/configstore/node_modules/dot-prop/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json
deleted file mode 100644
index 3946ff2a89..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/node_modules/is-obj/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "is-obj@^1.0.0",
- "_id": "is-obj@1.0.1",
- "_integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=",
- "_location": "/update-notifier/configstore/dot-prop/is-obj",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-obj@^1.0.0",
- "name": "is-obj",
- "escapedName": "is-obj",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/configstore/dot-prop"
- ],
- "_resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
- "_shasum": "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f",
- "_shrinkwrap": null,
- "_spec": "is-obj@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-obj/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if a value is an object",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-obj#readme",
- "keywords": [
- "obj",
- "object",
- "is",
- "check",
- "test",
- "type"
- ],
- "license": "MIT",
- "name": "is-obj",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-obj.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json
deleted file mode 100644
index 1512c61aff..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/dot-prop/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "dot-prop@^4.1.0",
- "_id": "dot-prop@4.2.0",
- "_inBundle": false,
- "_integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==",
- "_location": "/update-notifier/configstore/dot-prop",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "dot-prop@^4.1.0",
- "name": "dot-prop",
- "escapedName": "dot-prop",
- "rawSpec": "^4.1.0",
- "saveSpec": null,
- "fetchSpec": "^4.1.0"
- },
- "_requiredBy": [
- "/update-notifier/configstore"
- ],
- "_resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz",
- "_shasum": "1f19e0c2e1aa0e32797c49799f2837ac6af69c57",
- "_spec": "dot-prop@^4.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/configstore",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/dot-prop/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "is-obj": "^1.0.0"
- },
- "deprecated": false,
- "description": "Get, set, or delete a property from a nested object using a dot path",
- "devDependencies": {
- "ava": "*",
- "matcha": "^0.7.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/dot-prop#readme",
- "keywords": [
- "obj",
- "object",
- "prop",
- "property",
- "dot",
- "path",
- "get",
- "set",
- "delete",
- "del",
- "access",
- "notation",
- "dotty"
- ],
- "license": "MIT",
- "name": "dot-prop",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/dot-prop.git"
- },
- "scripts": {
- "bench": "matcha bench.js",
- "test": "xo && ava"
- },
- "version": "4.2.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js
deleted file mode 100644
index ca1f5e9c6a..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/index.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-const fs = require('fs');
-const path = require('path');
-const pify = require('pify');
-
-const defaults = {
- mode: 0o777 & (~process.umask()),
- fs
-};
-
-// https://github.com/nodejs/node/issues/8987
-// https://github.com/libuv/libuv/pull/1088
-const checkPath = pth => {
- if (process.platform === 'win32') {
- const pathHasInvalidWinCharacters = /[<>:"|?*]/.test(pth.replace(path.parse(pth).root, ''));
-
- if (pathHasInvalidWinCharacters) {
- const err = new Error(`Path contains invalid characters: ${pth}`);
- err.code = 'EINVAL';
- throw err;
- }
- }
-};
-
-module.exports = (input, opts) => Promise.resolve().then(() => {
- checkPath(input);
- opts = Object.assign({}, defaults, opts);
- const fsP = pify(opts.fs);
-
- const make = pth => {
- return fsP.mkdir(pth, opts.mode)
- .then(() => pth)
- .catch(err => {
- if (err.code === 'ENOENT') {
- if (err.message.includes('null bytes') || path.dirname(pth) === pth) {
- throw err;
- }
-
- return make(path.dirname(pth)).then(() => make(pth));
- }
-
- return fsP.stat(pth)
- .then(stats => stats.isDirectory() ? pth : Promise.reject())
- .catch(() => {
- throw err;
- });
- });
- };
-
- return make(path.resolve(input));
-});
-
-module.exports.sync = (input, opts) => {
- checkPath(input);
- opts = Object.assign({}, defaults, opts);
-
- const make = pth => {
- try {
- opts.fs.mkdirSync(pth, opts.mode);
- } catch (err) {
- if (err.code === 'ENOENT') {
- if (err.message.includes('null bytes') || path.dirname(pth) === pth) {
- throw err;
- }
-
- make(path.dirname(pth));
- return make(pth);
- }
-
- try {
- if (!opts.fs.statSync(pth).isDirectory()) {
- throw new Error();
- }
- } catch (_) {
- throw err;
- }
- }
-
- return pth;
- };
-
- return make(path.resolve(input));
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js
deleted file mode 100644
index 7c720ebee8..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/index.js
+++ /dev/null
@@ -1,68 +0,0 @@
-'use strict';
-
-var processFn = function (fn, P, opts) {
- return function () {
- var that = this;
- var args = new Array(arguments.length);
-
- for (var i = 0; i < arguments.length; i++) {
- args[i] = arguments[i];
- }
-
- return new P(function (resolve, reject) {
- args.push(function (err, result) {
- if (err) {
- reject(err);
- } else if (opts.multiArgs) {
- var results = new Array(arguments.length - 1);
-
- for (var i = 1; i < arguments.length; i++) {
- results[i - 1] = arguments[i];
- }
-
- resolve(results);
- } else {
- resolve(result);
- }
- });
-
- fn.apply(that, args);
- });
- };
-};
-
-var pify = module.exports = function (obj, P, opts) {
- if (typeof P !== 'function') {
- opts = P;
- P = Promise;
- }
-
- opts = opts || {};
- opts.exclude = opts.exclude || [/.+Sync$/];
-
- var filter = function (key) {
- var match = function (pattern) {
- return typeof pattern === 'string' ? key === pattern : pattern.test(key);
- };
-
- return opts.include ? opts.include.some(match) : !opts.exclude.some(match);
- };
-
- var ret = typeof obj === 'function' ? function () {
- if (opts.excludeMain) {
- return obj.apply(this, arguments);
- }
-
- return processFn(obj, P, opts).apply(this, arguments);
- } : {};
-
- return Object.keys(obj).reduce(function (ret, key) {
- var x = obj[key];
-
- ret[key] = typeof x === 'function' && filter(key) ? processFn(x, P, opts) : x;
-
- return ret;
- }, ret);
-};
-
-pify.all = pify;
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json
deleted file mode 100644
index f267937ec3..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "pify@^2.3.0",
- "_id": "pify@2.3.0",
- "_inBundle": false,
- "_integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "_location": "/update-notifier/configstore/make-dir/pify",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "pify@^2.3.0",
- "name": "pify",
- "escapedName": "pify",
- "rawSpec": "^2.3.0",
- "saveSpec": null,
- "fetchSpec": "^2.3.0"
- },
- "_requiredBy": [
- "/update-notifier/configstore/make-dir"
- ],
- "_resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "_shasum": "ed141a6ac043a849ea588498e7dca8b15330e90c",
- "_spec": "pify@^2.3.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/pify/issues"
- },
- "bundleDependencies": false,
- "deprecated": false,
- "description": "Promisify a callback-style function",
- "devDependencies": {
- "ava": "*",
- "pinkie-promise": "^1.0.0",
- "v8-natives": "0.0.2",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/pify#readme",
- "keywords": [
- "promise",
- "promises",
- "promisify",
- "denodify",
- "denodeify",
- "callback",
- "cb",
- "node",
- "then",
- "thenify",
- "convert",
- "transform",
- "wrap",
- "wrapper",
- "bind",
- "to",
- "async",
- "es2015"
- ],
- "license": "MIT",
- "name": "pify",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/pify.git"
- },
- "scripts": {
- "optimization-test": "node --allow-natives-syntax optimization-test.js",
- "test": "xo && ava && npm run optimization-test"
- },
- "version": "2.3.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md
deleted file mode 100644
index 97aeeb628b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/node_modules/pify/readme.md
+++ /dev/null
@@ -1,119 +0,0 @@
-# pify [![Build Status](https://travis-ci.org/sindresorhus/pify.svg?branch=master)](https://travis-ci.org/sindresorhus/pify)
-
-> Promisify a callback-style function
-
-
-## Install
-
-```
-$ npm install --save pify
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const pify = require('pify');
-
-// promisify a single function
-
-pify(fs.readFile)('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-
-// or promisify all methods in a module
-
-pify(fs).readFile('package.json', 'utf8').then(data => {
- console.log(JSON.parse(data).name);
- //=> 'pify'
-});
-```
-
-
-## API
-
-### pify(input, [promiseModule], [options])
-
-Returns a promise wrapped version of the supplied function or module.
-
-#### input
-
-Type: `function`, `object`
-
-Callback-style function or module whose methods you want to promisify.
-
-#### promiseModule
-
-Type: `function`
-
-Custom promise module to use instead of the native one.
-
-Check out [`pinkie-promise`](https://github.com/floatdrop/pinkie-promise) if you need a tiny promise polyfill.
-
-#### options
-
-##### multiArgs
-
-Type: `boolean`
-Default: `false`
-
-By default, the promisified function will only return the second argument from the callback, which works fine for most APIs. This option can be useful for modules like `request` that return multiple arguments. Turning this on will make it return an array of all arguments from the callback, excluding the error argument, instead of just the second argument.
-
-```js
-const request = require('request');
-const pify = require('pify');
-
-pify(request, {multiArgs: true})('https://sindresorhus.com').then(result => {
- const [httpResponse, body] = result;
-});
-```
-
-##### include
-
-Type: `array` of (`string`|`regex`)
-
-Methods in a module to promisify. Remaining methods will be left untouched.
-
-##### exclude
-
-Type: `array` of (`string`|`regex`)
-Default: `[/.+Sync$/]`
-
-Methods in a module **not** to promisify. Methods with names ending with `'Sync'` are excluded by default.
-
-##### excludeMain
-
-Type: `boolean`
-Default: `false`
-
-By default, if given module is a function itself, this function will be promisified. Turn this option on if you want to promisify only methods of the module.
-
-```js
-const pify = require('pify');
-
-function fn() {
- return true;
-}
-
-fn.method = (data, callback) => {
- setImmediate(() => {
- callback(data, null);
- });
-};
-
-// promisify methods but not fn()
-const promiseFn = pify(fn, {excludeMain: true});
-
-if (promiseFn()) {
- promiseFn.method('hi').then(data => {
- console.log(data);
- });
-}
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json
deleted file mode 100644
index 73f3d8f512..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/package.json
+++ /dev/null
@@ -1,86 +0,0 @@
-{
- "_from": "make-dir@^1.0.0",
- "_id": "make-dir@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-l6ARdR6R3YfPre9Ygy67BJNt6Xg=",
- "_location": "/update-notifier/configstore/make-dir",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "make-dir@^1.0.0",
- "name": "make-dir",
- "escapedName": "make-dir",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/configstore"
- ],
- "_resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
- "_shasum": "97a011751e91dd87cfadef58832ebb04936de978",
- "_spec": "make-dir@^1.0.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/configstore",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/make-dir/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "pify": "^2.3.0"
- },
- "deprecated": false,
- "description": "Make a directory and its parents if needed - Think `mkdir -p`",
- "devDependencies": {
- "ava": "*",
- "coveralls": "^2.13.0",
- "graceful-fs": "^4.1.11",
- "nyc": "^10.2.0",
- "path-type": "^2.0.0",
- "tempy": "^0.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/make-dir#readme",
- "keywords": [
- "mkdir",
- "mkdirp",
- "make",
- "directories",
- "dir",
- "dirs",
- "folders",
- "directory",
- "folder",
- "path",
- "parent",
- "parents",
- "intermediate",
- "recursively",
- "recursive",
- "create",
- "fs",
- "filesystem",
- "file-system"
- ],
- "license": "MIT",
- "name": "make-dir",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/make-dir.git"
- },
- "scripts": {
- "test": "xo && nyc ava"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md
deleted file mode 100644
index 23cf232521..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/make-dir/readme.md
+++ /dev/null
@@ -1,113 +0,0 @@
-# make-dir [![Build Status: macOS & Linux](https://travis-ci.org/sindresorhus/make-dir.svg?branch=master)](https://travis-ci.org/sindresorhus/make-dir) [![Build status: Windows](https://ci.appveyor.com/api/projects/status/e0vtt8y600w91gcs/branch/master?svg=true)](https://ci.appveyor.com/project/sindresorhus/make-dir/branch/master) [![Coverage Status](https://coveralls.io/repos/github/sindresorhus/make-dir/badge.svg)](https://coveralls.io/github/sindresorhus/make-dir)
-
-> Make a directory and its parents if needed - Think `mkdir -p`
-
-
-## Advantages over [`mkdirp`](https://github.com/substack/node-mkdirp)
-
-- Promise API *(Async/await ready!)*
-- Fixes many `mkdirp` issues: [#96](https://github.com/substack/node-mkdirp/pull/96) [#70](https://github.com/substack/node-mkdirp/issues/70) [#66](https://github.com/substack/node-mkdirp/issues/66)
-- 100% test coverage
-- CI-tested on macOS, Linux, and Windows
-- Actively maintained
-- Doesn't bundle a CLI
-
-
-## Install
-
-```
-$ npm install --save make-dir
-```
-
-
-## Usage
-
-```
-$ pwd
-/Users/sindresorhus/fun
-$ tree
-.
-```
-
-```js
-const makeDir = require('make-dir');
-
-makeDir('unicorn/rainbow/cake').then(path => {
- console.log(path);
- //=> '/Users/sindresorhus/fun/unicorn/rainbow/cake'
-});
-```
-
-```
-$ tree
-.
-ā””ā”€ā”€ unicorn
- ā””ā”€ā”€ rainbow
- ā””ā”€ā”€ cake
-```
-
-Multiple directories:
-
-```js
-const makeDir = require('make-dir');
-
-Promise.all([
- makeDir('unicorn/rainbow')
- makeDir('foo/bar')
-]).then(paths => {
- console.log(paths);
- /*
- [
- '/Users/sindresorhus/fun/unicorn/rainbow',
- '/Users/sindresorhus/fun/foo/bar'
- ]
- */
-});
-```
-
-
-## API
-
-### makeDir(path, [options])
-
-Returns a `Promise` for the path to the created directory.
-
-### makeDir.sync(path, [options])
-
-Returns the path to the created directory.
-
-#### path
-
-Type: `string`
-
-Directory to create.
-
-#### options
-
-Type: `Object`
-
-##### mode
-
-Type: `integer`<br>
-Default: `0o777 & (~process.umask())`
-
-Directory [permissions](https://x-team.com/blog/file-system-permissions-umask-node-js/).
-
-##### fs
-
-Type: `Object`<br>
-Default: `require('fs')`
-
-Use a custom `fs` implementation. For example [`graceful-fs`](https://github.com/isaacs/node-graceful-fs).
-
-
-## Related
-
-- [make-dir-cli](https://github.com/sindresorhus/make-dir-cli) - CLI for this module
-- [del](https://github.com/sindresorhus/del) - Delete files and directories
-- [globby](https://github.com/sindresorhus/globby) - User-friendly glob matching
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json
deleted file mode 100644
index d3bf40f81c..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/node_modules/crypto-random-string/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "crypto-random-string@^1.0.0",
- "_id": "crypto-random-string@1.0.0",
- "_integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=",
- "_location": "/update-notifier/configstore/unique-string/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": [
- "/update-notifier/configstore/unique-string"
- ],
- "_resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
- "_shasum": "a230f64f568310e1498009940790ec99545bca7e",
- "_shrinkwrap": null,
- "_spec": "crypto-random-string@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/crypto-random-string/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/update-notifier/node_modules/configstore/node_modules/unique-string/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/package.json
deleted file mode 100644
index 62130d8bfc..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/node_modules/unique-string/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "unique-string@^1.0.0",
- "_id": "unique-string@1.0.0",
- "_integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=",
- "_location": "/update-notifier/configstore/unique-string",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "unique-string@^1.0.0",
- "name": "unique-string",
- "escapedName": "unique-string",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/configstore"
- ],
- "_resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
- "_shasum": "9e1057cca851abb93398f8b33ae187b99caec11a",
- "_shrinkwrap": null,
- "_spec": "unique-string@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/configstore",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/unique-string/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "crypto-random-string": "^1.0.0"
- },
- "deprecated": false,
- "description": "Generate a unique random string",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/unique-string#readme",
- "keywords": [
- "unique",
- "string",
- "random",
- "uniq",
- "str",
- "rand",
- "text",
- "id",
- "identifier",
- "slug",
- "hex"
- ],
- "license": "MIT",
- "name": "unique-string",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/unique-string.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json b/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json
deleted file mode 100644
index 46762de578..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/configstore/package.json
+++ /dev/null
@@ -1,79 +0,0 @@
-{
- "_from": "configstore@^3.0.0",
- "_id": "configstore@3.1.1",
- "_inBundle": false,
- "_integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==",
- "_location": "/update-notifier/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.1.tgz",
- "_shasum": "094ee662ab83fad9917678de114faaea8fcdca90",
- "_spec": "configstore@^3.0.0",
- "_where": "/Users/zkat/Documents/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.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/license b/deps/npm/node_modules/update-notifier/node_modules/import-lazy/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/import-lazy/package.json b/deps/npm/node_modules/update-notifier/node_modules/import-lazy/package.json
deleted file mode 100644
index 404284f9ff..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/import-lazy/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "import-lazy@^2.1.0",
- "_id": "import-lazy@2.1.0",
- "_inBundle": false,
- "_integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=",
- "_location": "/update-notifier/import-lazy",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "import-lazy@^2.1.0",
- "name": "import-lazy",
- "escapedName": "import-lazy",
- "rawSpec": "^2.1.0",
- "saveSpec": null,
- "fetchSpec": "^2.1.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
- "_shasum": "05698e3d45c88e8d7e9d92cb0584e77f096f3e43",
- "_spec": "import-lazy@^2.1.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/sindresorhus/import-lazy/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Jorge Bucaran",
- "email": "jbucaran@me.com"
- }
- ],
- "deprecated": false,
- "description": "Import modules lazily",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/import-lazy#readme",
- "keywords": [
- "import",
- "require",
- "load",
- "module",
- "modules",
- "lazy",
- "lazily",
- "defer",
- "deferred",
- "proxy",
- "proxies"
- ],
- "license": "MIT",
- "name": "import-lazy",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/import-lazy.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js
deleted file mode 100644
index c88287c0b0..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/index.js
+++ /dev/null
@@ -1,89 +0,0 @@
-'use strict';
-const path = require('path');
-const os = require('os');
-const fs = require('fs');
-const ini = require('ini');
-
-const readRc = fp => {
- try {
- return ini.parse(fs.readFileSync(fp, 'utf8')).prefix;
- } catch (err) {}
-};
-
-const defaultNpmPrefix = (() => {
- if (process.env.PREFIX) {
- return process.env.PREFIX;
- }
-
- if (process.platform === 'win32') {
- // `c:\node\node.exe` ā†’ `prefix=c:\node\`
- return path.dirname(process.execPath);
- }
-
- // `/usr/local/bin/node` ā†’ `prefix=/usr/local`
- return path.dirname(path.dirname(process.execPath));
-})();
-
-const getNpmPrefix = () => {
- if (process.env.PREFIX) {
- return process.env.PREFIX;
- }
-
- const homePrefix = readRc(path.join(os.homedir(), '.npmrc'));
- if (homePrefix) {
- return homePrefix;
- }
-
- const globalConfigPrefix = readRc(path.resolve(defaultNpmPrefix, 'etc', 'npmrc'));
- if (globalConfigPrefix) {
- return globalConfigPrefix;
- }
-
- if (process.platform === 'win32') {
- // Hardcoded contents of `c:\Program Files\nodejs\node_modules\npm\.npmrc`
- return path.join(process.env.APPDATA, 'npm');
- }
-
- return defaultNpmPrefix;
-};
-
-const npmPrefix = path.resolve(getNpmPrefix());
-
-const getYarnPrefix = () => {
- if (process.env.PREFIX) {
- return process.env.PREFIX;
- }
-
- if (process.platform === 'win32') {
- if (process.env.LOCALAPPDATA) {
- const prefix = path.join(process.env.LOCALAPPDATA, 'Yarn');
- if (fs.existsSync(prefix)) {
- return prefix;
- }
- }
- }
-
- const configPrefix = path.join(os.homedir(), '.config/yarn');
- if (fs.existsSync(configPrefix)) {
- return configPrefix;
- }
-
- const homePrefix = path.join(os.homedir(), '.yarn-config');
- if (fs.existsSync(homePrefix)) {
- return homePrefix;
- }
-
- // Yarn supports the npm conventions but the inverse is not true
- return npmPrefix;
-};
-
-exports.npm = {};
-exports.npm.prefix = npmPrefix;
-exports.npm.packages = path.join(npmPrefix, process.platform === 'win32' ? 'node_modules' : 'lib/node_modules');
-exports.npm.binaries = process.platform === 'win32' ? npmPrefix : path.join(npmPrefix, 'bin');
-
-const yarnPrefix = path.resolve(getYarnPrefix());
-exports.yarn = {};
-exports.yarn.prefix = yarnPrefix;
-exports.yarn.packages = path.join(yarnPrefix, process.platform === 'win32' ? 'config/global/node_modules' : 'global/node_modules');
-exports.yarn.binaries = path.join(exports.yarn.packages, '.bin');
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json
deleted file mode 100644
index 65334a0279..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/global-dirs/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "_from": "global-dirs@^0.1.0",
- "_id": "global-dirs@0.1.0",
- "_inBundle": false,
- "_integrity": "sha1-ENNAOeDfBCcuJizyQiT3IJQ0308=",
- "_location": "/update-notifier/is-installed-globally/global-dirs",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "global-dirs@^0.1.0",
- "name": "global-dirs",
- "escapedName": "global-dirs",
- "rawSpec": "^0.1.0",
- "saveSpec": null,
- "fetchSpec": "^0.1.0"
- },
- "_requiredBy": [
- "/update-notifier/is-installed-globally"
- ],
- "_resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.0.tgz",
- "_shasum": "10d34039e0df04272e262cf24224f7209434df4f",
- "_spec": "global-dirs@^0.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/is-installed-globally",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/global-dirs/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "ini": "^1.3.4"
- },
- "deprecated": false,
- "description": "Get the directory of globally installed packages and binaries",
- "devDependencies": {
- "ava": "*",
- "execa": "^0.7.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/global-dirs#readme",
- "keywords": [
- "global",
- "prefix",
- "path",
- "paths",
- "npm",
- "yarn",
- "node",
- "modules",
- "node-modules",
- "package",
- "packages",
- "binary",
- "binaries",
- "bin",
- "directory",
- "directories",
- "npmrc",
- "rc",
- "config",
- "root",
- "resolve"
- ],
- "license": "MIT",
- "name": "global-dirs",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/global-dirs.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "0.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json
deleted file mode 100644
index c56279c7cb..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "is-path-inside@^1.0.0",
- "_id": "is-path-inside@1.0.0",
- "_inBundle": false,
- "_integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=",
- "_location": "/update-notifier/is-installed-globally/is-path-inside",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-path-inside@^1.0.0",
- "name": "is-path-inside",
- "escapedName": "is-path-inside",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/is-installed-globally"
- ],
- "_resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz",
- "_shasum": "fc06e5a1683fbda13de667aff717bbc10a48f37f",
- "_spec": "is-path-inside@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/is-installed-globally",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/is-path-inside/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "path-is-inside": "^1.0.1"
- },
- "deprecated": false,
- "description": "Check if a path is inside another path",
- "devDependencies": {
- "mocha": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-path-inside#readme",
- "keywords": [
- "path",
- "inside",
- "folder",
- "directory",
- "dir",
- "file",
- "resolve"
- ],
- "license": "MIT",
- "name": "is-path-inside",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-path-inside.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md
deleted file mode 100644
index 0e4eb74f75..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/node_modules/is-path-inside/readme.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# is-path-inside [![Build Status](https://travis-ci.org/sindresorhus/is-path-inside.svg?branch=master)](https://travis-ci.org/sindresorhus/is-path-inside)
-
-> Check if a path is inside another path
-
-
-## Install
-
-```sh
-$ npm install --save is-path-inside
-```
-
-
-## Usage
-
-```js
-var isPathInside = require('is-path-inside');
-
-isPathInside('a/b', 'a/b/c');
-//=> true
-
-isPathInside('x/y', 'a/b/c');
-//=> false
-
-isPathInside('a/b/c', 'a/b/c');
-//=> false
-```
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json
deleted file mode 100644
index d89580e7d1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-installed-globally/package.json
+++ /dev/null
@@ -1,83 +0,0 @@
-{
- "_from": "is-installed-globally@^0.1.0",
- "_id": "is-installed-globally@0.1.0",
- "_inBundle": false,
- "_integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=",
- "_location": "/update-notifier/is-installed-globally",
- "_phantomChildren": {
- "ini": "1.3.4",
- "path-is-inside": "1.0.2"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-installed-globally@^0.1.0",
- "name": "is-installed-globally",
- "escapedName": "is-installed-globally",
- "rawSpec": "^0.1.0",
- "saveSpec": null,
- "fetchSpec": "^0.1.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz",
- "_shasum": "0dfd98f5a9111716dd535dda6492f67bf3d25a80",
- "_spec": "is-installed-globally@^0.1.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/is-installed-globally/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "global-dirs": "^0.1.0",
- "is-path-inside": "^1.0.0"
- },
- "deprecated": false,
- "description": "Check if your package was installed globally",
- "devDependencies": {
- "ava": "*",
- "execa": "^0.7.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-installed-globally#readme",
- "keywords": [
- "global",
- "package",
- "globally",
- "module",
- "install",
- "installed",
- "npm",
- "yarn",
- "is",
- "check",
- "detect",
- "local",
- "locally",
- "cli",
- "bin",
- "binary"
- ],
- "license": "MIT",
- "name": "is-installed-globally",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-installed-globally.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "0.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json b/deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json
deleted file mode 100644
index 8d8cf3e814..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/is-npm/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "is-npm@^1.0.0",
- "_id": "is-npm@1.0.0",
- "_integrity": "sha1-8vtjpl5JBbQGyGBydloaTceTufQ=",
- "_location": "/update-notifier/is-npm",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-npm@^1.0.0",
- "name": "is-npm",
- "escapedName": "is-npm",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz",
- "_shasum": "f2fb63a65e4905b406c86072765a1a4dc793b9f4",
- "_shrinkwrap": null,
- "_spec": "is-npm@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-npm/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if your code is running as an npm script",
- "devDependencies": {
- "ava": "0.0.3"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-npm#readme",
- "keywords": [
- "npm",
- "is",
- "check",
- "detect",
- "env",
- "environment"
- ],
- "license": "MIT",
- "name": "is-npm",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-npm.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/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 b/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
deleted file mode 100644
index be2ce572be..0000000000
--- a/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
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "capture-stack-trace@^1.0.0",
- "_id": "capture-stack-trace@1.0.0",
- "_integrity": "sha1-Sm+gc5nCa7pH8LJJa00PtAjFVQ0=",
- "_location": "/update-notifier/latest-version/package-json/got/create-error-class/capture-stack-trace",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "capture-stack-trace@^1.0.0",
- "name": "capture-stack-trace",
- "escapedName": "capture-stack-trace",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got/create-error-class"
- ],
- "_resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz",
- "_shasum": "4a6fa07399c26bba47f0b2496b4d0fb408c5550d",
- "_shrinkwrap": null,
- "_spec": "capture-stack-trace@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/floatdrop/capture-stack-trace/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Error.captureStackTrace ponyfill",
- "devDependencies": {
- "mocha": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/floatdrop/capture-stack-trace#readme",
- "keywords": [
- "Error",
- "captureStackTrace"
- ],
- "license": "MIT",
- "name": "capture-stack-trace",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/floatdrop/capture-stack-trace.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json
deleted file mode 100644
index 501e5e13df..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/create-error-class/package.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "_from": "create-error-class@^3.0.0",
- "_id": "create-error-class@3.0.2",
- "_integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=",
- "_location": "/update-notifier/latest-version/package-json/got/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": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz",
- "_shasum": "06be7abef947a3f14a30fd610671d401bca8b7b6",
- "_shrinkwrap": null,
- "_spec": "create-error-class@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- },
- "bin": null,
- "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",
- "optionalDependencies": {},
- "peerDependencies": {},
- "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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json
deleted file mode 100644
index 8ee3d16618..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/duplexer3/package.json
+++ /dev/null
@@ -1,68 +0,0 @@
-{
- "_from": "duplexer3@^0.1.4",
- "_id": "duplexer3@0.1.4",
- "_integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=",
- "_location": "/update-notifier/latest-version/package-json/got/duplexer3",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "duplexer3@^0.1.4",
- "name": "duplexer3",
- "escapedName": "duplexer3",
- "rawSpec": "^0.1.4",
- "saveSpec": null,
- "fetchSpec": "^0.1.4"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz",
- "_shasum": "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2",
- "_shrinkwrap": null,
- "_spec": "duplexer3@^0.1.4",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Conrad Pankoff",
- "email": "deoxxa@fknsrs.biz",
- "url": "http://www.fknsrs.biz/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/floatdrop/duplexer3/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Like duplexer but using streams3",
- "devDependencies": {
- "mocha": "^2.2.5"
- },
- "engine": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/floatdrop/duplexer3#readme",
- "keywords": [
- "duplex",
- "duplexer",
- "stream",
- "stream3",
- "join",
- "combine"
- ],
- "license": "BSD-3-Clause",
- "name": "duplexer3",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/floatdrop/duplexer3.git"
- },
- "scripts": {
- "test": "mocha -R tap"
- },
- "version": "0.1.4"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js
deleted file mode 100644
index ae45d3d9e7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/buffer-stream.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const PassThrough = require('stream').PassThrough;
-
-module.exports = opts => {
- opts = Object.assign({}, opts);
-
- const array = opts.array;
- let encoding = opts.encoding;
- const buffer = encoding === 'buffer';
- let objectMode = false;
-
- if (array) {
- objectMode = !(encoding || buffer);
- } else {
- encoding = encoding || 'utf8';
- }
-
- if (buffer) {
- encoding = null;
- }
-
- let len = 0;
- const ret = [];
- const stream = new PassThrough({objectMode});
-
- if (encoding) {
- stream.setEncoding(encoding);
- }
-
- stream.on('data', chunk => {
- ret.push(chunk);
-
- if (objectMode) {
- len = ret.length;
- } else {
- len += chunk.length;
- }
- });
-
- stream.getBufferedValue = () => {
- if (array) {
- return ret;
- }
-
- return buffer ? Buffer.concat(ret, len) : ret.join('');
- };
-
- stream.getBufferedLength = () => len;
-
- return stream;
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js
deleted file mode 100644
index 2dc5ee96af..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/index.js
+++ /dev/null
@@ -1,51 +0,0 @@
-'use strict';
-const bufferStream = require('./buffer-stream');
-
-function getStream(inputStream, opts) {
- if (!inputStream) {
- return Promise.reject(new Error('Expected a stream'));
- }
-
- opts = Object.assign({maxBuffer: Infinity}, opts);
-
- const maxBuffer = opts.maxBuffer;
- let stream;
- let clean;
-
- const p = new Promise((resolve, reject) => {
- const error = err => {
- if (err) { // null check
- err.bufferedData = stream.getBufferedValue();
- }
-
- reject(err);
- };
-
- stream = bufferStream(opts);
- inputStream.once('error', error);
- inputStream.pipe(stream);
-
- stream.on('data', () => {
- if (stream.getBufferedLength() > maxBuffer) {
- reject(new Error('maxBuffer exceeded'));
- }
- });
- stream.once('error', error);
- stream.on('end', resolve);
-
- clean = () => {
- // some streams doesn't implement the `stream.Readable` interface correctly
- if (inputStream.unpipe) {
- inputStream.unpipe(stream);
- }
- };
- });
-
- p.then(clean, clean);
-
- return p.then(() => stream.getBufferedValue());
-}
-
-module.exports = getStream;
-module.exports.buffer = (stream, opts) => getStream(stream, Object.assign({}, opts, {encoding: 'buffer'}));
-module.exports.array = (stream, opts) => getStream(stream, Object.assign({}, opts, {array: true}));
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json
deleted file mode 100644
index 1d30ce6f64..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "_from": "get-stream@^3.0.0",
- "_id": "get-stream@3.0.0",
- "_integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=",
- "_location": "/update-notifier/latest-version/package-json/got/get-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "get-stream@^3.0.0",
- "name": "get-stream",
- "escapedName": "get-stream",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz",
- "_shasum": "8e943d1358dc37555054ecbe2edb05aa174ede14",
- "_shrinkwrap": null,
- "_spec": "get-stream@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/get-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Get a stream as a string, buffer, or array",
- "devDependencies": {
- "ava": "*",
- "into-stream": "^3.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js",
- "buffer-stream.js"
- ],
- "homepage": "https://github.com/sindresorhus/get-stream#readme",
- "keywords": [
- "get",
- "stream",
- "promise",
- "concat",
- "string",
- "str",
- "text",
- "buffer",
- "read",
- "data",
- "consume",
- "readable",
- "readablestream",
- "array",
- "object",
- "obj"
- ],
- "license": "MIT",
- "name": "get-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/get-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md
deleted file mode 100644
index 73b188fb42..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/get-stream/readme.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# get-stream [![Build Status](https://travis-ci.org/sindresorhus/get-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/get-stream)
-
-> Get a stream as a string, buffer, or array
-
-
-## Install
-
-```
-$ npm install --save get-stream
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const getStream = require('get-stream');
-const stream = fs.createReadStream('unicorn.txt');
-
-getStream(stream).then(str => {
- console.log(str);
- /*
- ,,))))))));,
- __)))))))))))))),
- \|/ -\(((((''''((((((((.
- -*-==//////(('' . `)))))),
- /|\ ))| o ;-. '((((( ,(,
- ( `| / ) ;))))' ,_))^;(~
- | | | ,))((((_ _____------~~~-. %,;(;(>';'~
- o_); ; )))(((` ~---~ `:: \ %%~~)(v;(`('~
- ; ''''```` `: `:::|\,__,%% );`'; ~
- | _ ) / `:|`----' `-'
- ______/\/~ | / /
- /~;;.____/;;' / ___--,-( `;;;/
- / // _;______;'------~~~~~ /;;/\ /
- // | | / ; \;;,\
- (<_ | ; /',/-----' _>
- \_| ||_ //~;~~~~~~~~~
- `\_| (,~~
- \~\
- ~~
- */
-});
-```
-
-
-## API
-
-The methods returns a promise that resolves when the `end` event fires on the stream, indicating that there is no more data to be read. The stream is switched to flowing mode.
-
-### getStream(stream, [options])
-
-Get the `stream` as a string.
-
-#### options
-
-##### encoding
-
-Type: `string`<br>
-Default: `utf8`
-
-[Encoding](https://nodejs.org/api/buffer.html#buffer_buffer) of the incoming stream.
-
-##### maxBuffer
-
-Type: `number`<br>
-Default: `Infinity`
-
-Maximum length of the returned string. If it exceeds this value before the stream ends, the promise will be rejected.
-
-### getStream.buffer(stream, [options])
-
-Get the `stream` as a buffer.
-
-It honors the `maxBuffer` option as above, but it refers to byte length rather than string length.
-
-### getStream.array(stream, [options])
-
-Get the `stream` as an array of values.
-
-It honors both the `maxBuffer` and `encoding` options. The behavior changes slightly based on the encoding chosen:
-
-- When `encoding` is unset, it assumes an [object mode stream](https://nodesource.com/blog/understanding-object-streams/) and collects values emitted from `stream` unmodified. In this case `maxBuffer` refers to the number of items in the array (not the sum of their sizes).
-
-- When `encoding` is set to `buffer`, it collects an array of buffers. `maxBuffer` refers to the summed byte lengths of every buffer in the array.
-
-- When `encoding` is set to anything else, it collects an array of strings. `maxBuffer` refers to the summed character lengths of every string in the array.
-
-
-## Errors
-
-If the input stream emits an `error` event, the promise will be rejected with the error. The buffered data will be attached to the `bufferedData` property of the error.
-
-```js
-getStream(streamThatErrorsAtTheEnd('unicorn'))
- .catch(err => {
- console.log(err.bufferedData);
- //=> 'unicorn'
- });
-```
-
-
-## FAQ
-
-### How is this different from [`concat-stream`](https://github.com/maxogden/concat-stream)?
-
-This module accepts a stream instead of being one and returns a promise instead of using a callback. The API is simpler and it only supports returning a string, buffer, or array. It doesn't have a fragile type inference. You explicitly choose what you want. And it doesn't depend on the huge `readable-stream` package.
-
-
-## Related
-
-- [get-stdin](https://github.com/sindresorhus/get-stdin) - Get stdin as a string or buffer
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json
deleted file mode 100644
index 2348970a01..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-redirect/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "is-redirect@^1.0.0",
- "_id": "is-redirect@1.0.0",
- "_integrity": "sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ=",
- "_location": "/update-notifier/latest-version/package-json/got/is-redirect",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-redirect@^1.0.0",
- "name": "is-redirect",
- "escapedName": "is-redirect",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz",
- "_shasum": "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24",
- "_shrinkwrap": null,
- "_spec": "is-redirect@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-redirect/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if a number is a redirect HTTP status code",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-redirect#readme",
- "keywords": [
- "redirect",
- "http",
- "https",
- "status",
- "code",
- "codes",
- "is",
- "check",
- "detect"
- ],
- "license": "MIT",
- "name": "is-redirect",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-redirect.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json
deleted file mode 100644
index a7fcf47c68..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-retry-allowed/package.json
+++ /dev/null
@@ -1,62 +0,0 @@
-{
- "_from": "is-retry-allowed@^1.0.0",
- "_id": "is-retry-allowed@1.1.0",
- "_integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=",
- "_location": "/update-notifier/latest-version/package-json/got/is-retry-allowed",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-retry-allowed@^1.0.0",
- "name": "is-retry-allowed",
- "escapedName": "is-retry-allowed",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz",
- "_shasum": "11a060568b67339444033d0125a61a20d564fb34",
- "_shrinkwrap": null,
- "_spec": "is-retry-allowed@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/floatdrop/is-retry-allowed/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "My prime module",
- "devDependencies": {
- "ava": "^0.8.0",
- "xo": "^0.12.1"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/floatdrop/is-retry-allowed#readme",
- "keywords": [],
- "license": "MIT",
- "name": "is-retry-allowed",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/floatdrop/is-retry-allowed.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js
deleted file mode 100644
index 6f7ec91a40..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/index.js
+++ /dev/null
@@ -1,21 +0,0 @@
-'use strict';
-
-var isStream = module.exports = function (stream) {
- return stream !== null && typeof stream === 'object' && typeof stream.pipe === 'function';
-};
-
-isStream.writable = function (stream) {
- return isStream(stream) && stream.writable !== false && typeof stream._write === 'function' && typeof stream._writableState === 'object';
-};
-
-isStream.readable = function (stream) {
- return isStream(stream) && stream.readable !== false && typeof stream._read === 'function' && typeof stream._readableState === 'object';
-};
-
-isStream.duplex = function (stream) {
- return isStream.writable(stream) && isStream.readable(stream);
-};
-
-isStream.transform = function (stream) {
- return isStream.duplex(stream) && typeof stream._transform === 'function' && typeof stream._transformState === 'object';
-};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json
deleted file mode 100644
index 3401937b81..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/package.json
+++ /dev/null
@@ -1,74 +0,0 @@
-{
- "_from": "is-stream@^1.0.0",
- "_id": "is-stream@1.1.0",
- "_integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
- "_location": "/update-notifier/latest-version/package-json/got/is-stream",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "is-stream@^1.0.0",
- "name": "is-stream",
- "escapedName": "is-stream",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "_shasum": "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44",
- "_shrinkwrap": null,
- "_spec": "is-stream@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/is-stream/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Check if something is a Node.js stream",
- "devDependencies": {
- "ava": "*",
- "tempfile": "^1.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/is-stream#readme",
- "keywords": [
- "stream",
- "type",
- "streams",
- "writable",
- "readable",
- "duplex",
- "transform",
- "check",
- "detect",
- "is"
- ],
- "license": "MIT",
- "name": "is-stream",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/is-stream.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md
deleted file mode 100644
index d8afce81d2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/is-stream/readme.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# is-stream [![Build Status](https://travis-ci.org/sindresorhus/is-stream.svg?branch=master)](https://travis-ci.org/sindresorhus/is-stream)
-
-> Check if something is a [Node.js stream](https://nodejs.org/api/stream.html)
-
-
-## Install
-
-```
-$ npm install --save is-stream
-```
-
-
-## Usage
-
-```js
-const fs = require('fs');
-const isStream = require('is-stream');
-
-isStream(fs.createReadStream('unicorn.png'));
-//=> true
-
-isStream({});
-//=> false
-```
-
-
-## API
-
-### isStream(stream)
-
-#### isStream.writable(stream)
-
-#### isStream.readable(stream)
-
-#### isStream.duplex(stream)
-
-#### isStream.transform(stream)
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json
deleted file mode 100644
index 19db7aa898..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/lowercase-keys/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "lowercase-keys@^1.0.0",
- "_id": "lowercase-keys@1.0.0",
- "_integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=",
- "_location": "/update-notifier/latest-version/package-json/got/lowercase-keys",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "lowercase-keys@^1.0.0",
- "name": "lowercase-keys",
- "escapedName": "lowercase-keys",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz",
- "_shasum": "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306",
- "_shrinkwrap": null,
- "_spec": "lowercase-keys@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/lowercase-keys/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Lowercase the keys of an object",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/lowercase-keys#readme",
- "keywords": [
- "object",
- "assign",
- "extend",
- "properties",
- "lowercase",
- "lower-case",
- "case",
- "keys",
- "key"
- ],
- "license": "MIT",
- "name": "lowercase-keys",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/lowercase-keys.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json
deleted file mode 100644
index e784347a43..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/timed-out/package.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "_from": "timed-out@^4.0.0",
- "_id": "timed-out@4.0.1",
- "_integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=",
- "_location": "/update-notifier/latest-version/package-json/got/timed-out",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "timed-out@^4.0.0",
- "name": "timed-out",
- "escapedName": "timed-out",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
- "_shasum": "f32eacac5a175bea25d7fab565ab3ed8741ef56f",
- "_shrinkwrap": null,
- "_spec": "timed-out@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/floatdrop/timed-out/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Emit `ETIMEDOUT` or `ESOCKETTIMEDOUT` when ClientRequest is hanged",
- "devDependencies": {
- "mocha": "*",
- "xo": "^0.16.0"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/floatdrop/timed-out#readme",
- "keywords": [
- "http",
- "https",
- "get",
- "got",
- "url",
- "uri",
- "request",
- "util",
- "utility",
- "simple"
- ],
- "license": "MIT",
- "name": "timed-out",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/floatdrop/timed-out.git"
- },
- "scripts": {
- "test": "xo && mocha"
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json
deleted file mode 100644
index b9ccc46f18..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/unzip-response/package.json
+++ /dev/null
@@ -1,85 +0,0 @@
-{
- "_from": "unzip-response@^2.0.1",
- "_id": "unzip-response@2.0.1",
- "_integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=",
- "_location": "/update-notifier/latest-version/package-json/got/unzip-response",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "unzip-response@^2.0.1",
- "name": "unzip-response",
- "escapedName": "unzip-response",
- "rawSpec": "^2.0.1",
- "saveSpec": null,
- "fetchSpec": "^2.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz",
- "_shasum": "d2f0f737d16b0615e72a6935ed04214572d56f97",
- "_shrinkwrap": null,
- "_spec": "unzip-response@^2.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/unzip-response/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Unzip a HTTP response if needed",
- "devDependencies": {
- "ava": "*",
- "get-stream": "^2.3.0",
- "pify": "^2.3.0",
- "rfpify": "^1.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/unzip-response#readme",
- "keywords": [
- "http",
- "unzip",
- "zlib",
- "gzip",
- "deflate",
- "incoming",
- "message",
- "response",
- "stream"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- }
- ],
- "name": "unzip-response",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/unzip-response.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.1",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/license b/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
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/node_modules/prepend-http/package.json b/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
deleted file mode 100644
index b47614ce3d..0000000000
--- a/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
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "_from": "prepend-http@^1.0.1",
- "_id": "prepend-http@1.0.4",
- "_integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=",
- "_location": "/update-notifier/latest-version/package-json/got/url-parse-lax/prepend-http",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "prepend-http@^1.0.1",
- "name": "prepend-http",
- "escapedName": "prepend-http",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got/url-parse-lax"
- ],
- "_resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
- "_shasum": "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc",
- "_shrinkwrap": null,
- "_spec": "prepend-http@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/prepend-http/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Prepend `http://` to humanized URLs like todomvc.com and localhost",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/prepend-http#readme",
- "keywords": [
- "prepend",
- "protocol",
- "scheme",
- "url",
- "uri",
- "http",
- "https",
- "humanized"
- ],
- "license": "MIT",
- "name": "prepend-http",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/prepend-http.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "1.0.4"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json
deleted file mode 100644
index 0a228ba3f1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "url-parse-lax@^1.0.0",
- "_id": "url-parse-lax@1.0.0",
- "_integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
- "_location": "/update-notifier/latest-version/package-json/got/url-parse-lax",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "url-parse-lax@^1.0.0",
- "name": "url-parse-lax",
- "escapedName": "url-parse-lax",
- "rawSpec": "^1.0.0",
- "saveSpec": null,
- "fetchSpec": "^1.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/got"
- ],
- "_resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
- "_shasum": "7af8f303645e9bd79a272e7a14ac68bc0609da73",
- "_shrinkwrap": null,
- "_spec": "url-parse-lax@^1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/url-parse-lax/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "prepend-http": "^1.0.1"
- },
- "deprecated": false,
- "description": "url.parse() with support for protocol-less URLs & IPs",
- "devDependencies": {
- "ava": "0.0.4"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/url-parse-lax#readme",
- "keywords": [
- "url",
- "uri",
- "parse",
- "parser",
- "loose",
- "lax",
- "protocol",
- "less",
- "protocol-less",
- "ip",
- "ipv4",
- "ipv6"
- ],
- "license": "MIT",
- "name": "url-parse-lax",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/url-parse-lax.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json
deleted file mode 100644
index f8aefb9d4a..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/package.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "_from": "got@^6.7.1",
- "_id": "got@6.7.1",
- "_integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=",
- "_location": "/update-notifier/latest-version/package-json/got",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "got@^6.7.1",
- "name": "got",
- "escapedName": "got",
- "rawSpec": "^6.7.1",
- "saveSpec": null,
- "fetchSpec": "^6.7.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json"
- ],
- "_resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz",
- "_shasum": "240cd05785a9a18e561dc1b44b41c763ef1e8db0",
- "_shrinkwrap": null,
- "_spec": "got@^6.7.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json",
- "ava": {
- "concurrency": 4
- },
- "bin": null,
- "browser": {
- "unzip-response": false
- },
- "bugs": {
- "url": "https://github.com/sindresorhus/got/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "create-error-class": "^3.0.0",
- "duplexer3": "^0.1.4",
- "get-stream": "^3.0.0",
- "is-redirect": "^1.0.0",
- "is-retry-allowed": "^1.0.0",
- "is-stream": "^1.0.0",
- "lowercase-keys": "^1.0.0",
- "safe-buffer": "^5.0.1",
- "timed-out": "^4.0.0",
- "unzip-response": "^2.0.1",
- "url-parse-lax": "^1.0.0"
- },
- "deprecated": false,
- "description": "Simplified HTTP requests",
- "devDependencies": {
- "ava": "^0.17.0",
- "coveralls": "^2.11.4",
- "form-data": "^2.1.1",
- "get-port": "^2.0.0",
- "into-stream": "^3.0.0",
- "nyc": "^10.0.0",
- "pem": "^1.4.4",
- "pify": "^2.3.0",
- "tempfile": "^1.1.1",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/got#readme",
- "keywords": [
- "http",
- "https",
- "get",
- "got",
- "url",
- "uri",
- "request",
- "util",
- "utility",
- "simple",
- "curl",
- "wget",
- "fetch"
- ],
- "license": "MIT",
- "maintainers": [
- {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- {
- "name": "Vsevolod Strukchinsky",
- "email": "floatdrop@gmail.com",
- "url": "github.com/floatdrop"
- }
- ],
- "name": "got",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/got.git"
- },
- "scripts": {
- "coveralls": "nyc report --reporter=text-lcov | coveralls",
- "test": "xo && nyc ava"
- },
- "version": "6.7.1",
- "xo": {
- "esnext": true
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore
deleted file mode 100644
index 4196028460..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/.npmignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.editorconfig
-.eslintignore
-.eslintrc
-.travis.yml
-npm-debug.log
-coverage
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md
deleted file mode 100644
index d1a9ab4c70..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/CHANGELOG.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# Change Log
-
-All notable changes will be documented in this file.
-
-## [3.3.0] - 2017-04-24
-
-### Changes
-
-- Support legacy auth token config key (Zoltan Kochan)
-- Use safe-buffer module for backwards-compatible base64 encoding/decoding (Espen Hovlandsdal)
-- Change to standard.js coding style (Espen Hovlandsdal)
-
-## [3.2.0] - 2017-04-20
-
-### Changes
-
-- Allow passing parsed npmrc from outside (Zoltan Kochan)
-
-## [3.1.2] - 2017-04-07
-
-### Changes
-
-- Avoid infinite loop on invalid URL (Zoltan Kochan)
-
-## [3.1.1] - 2017-04-06
-
-### Changes
-
-- Nerf-dart URLs even if recursive is set to false (Espen Hovlandsdal)
-
-## [3.1.0] - 2016-10-19
-
-### Changes
-
-- Return the password and username for Basic authorization (Zoltan Kochan)
-
-## [3.0.1] - 2016-08-07
-
-### Changes
-
-- Fix recursion bug (Lukas Eipert)
-- Implement alternative base64 encoding/decoding implementation for Node 6 (Lukas Eipert)
-
-## [3.0.0] - 2016-08-04
-
-### Added
-
-- Support for Basic Authentication (username/password) (Lukas Eipert)
-
-### Changes
-
-- The result format of the output changed from a simple string to an object which contains the token type
-
-```js
- // before: returns 'tokenString'
- // after: returns {token: 'tokenString', type: 'Bearer'}
- getAuthToken()
-```
-
-## [2.1.1] - 2016-07-10
-
-### Changes
-
-- Fix infinite loop when recursively resolving registry URLs on Windows (Espen Hovlandsdal)
-
-## [2.1.0] - 2016-07-07
-
-### Added
-
-- Add feature to find configured registry URL for a scope (Espen Hovlandsdal)
-
-## [2.0.0] - 2016-06-17
-
-### Changes
-
-- Fix tokens defined by reference to environment variables (Dan MacTough)
-
-## [1.1.1] - 2016-04-26
-
-### Changes
-
-- Fix for registries with port number in URL (Ryan Day)
-
-[1.1.1]: https://github.com/rexxars/registry-auth-token/compare/a5b4fe2f5ff982110eb8a813ba1b3b3c5d851af1...v1.1.1
-[2.0.0]: https://github.com/rexxars/registry-auth-token/compare/v1.1.1...v2.0.0
-[2.1.0]: https://github.com/rexxars/registry-auth-token/compare/v2.0.0...v2.1.0
-[2.1.1]: https://github.com/rexxars/registry-auth-token/compare/v2.1.0...v2.1.1
-[3.0.0]: https://github.com/rexxars/registry-auth-token/compare/v2.1.1...v3.0.0
-[3.0.1]: https://github.com/rexxars/registry-auth-token/compare/v3.0.0...v3.0.1
-[3.1.0]: https://github.com/rexxars/registry-auth-token/compare/v3.0.1...v3.1.0
-[3.1.1]: https://github.com/rexxars/registry-auth-token/compare/v3.1.0...v3.1.1
-[3.1.2]: https://github.com/rexxars/registry-auth-token/compare/v3.1.1...v3.1.2
-[3.2.0]: https://github.com/rexxars/registry-auth-token/compare/v3.1.2...v3.2.0
-[3.3.0]: https://github.com/rexxars/registry-auth-token/compare/v3.2.0...v3.3.0
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js
deleted file mode 100644
index 0fc8528b24..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/index.js
+++ /dev/null
@@ -1,116 +0,0 @@
-var url = require('url')
-var base64 = require('./base64')
-
-var decodeBase64 = base64.decodeBase64
-var encodeBase64 = base64.encodeBase64
-
-var tokenKey = ':_authToken'
-var userKey = ':username'
-var passwordKey = ':_password'
-
-module.exports = function () {
- var checkUrl
- var options
- if (arguments.length >= 2) {
- checkUrl = arguments[0]
- options = arguments[1]
- } else if (typeof arguments[0] === 'string') {
- checkUrl = arguments[0]
- } else {
- options = arguments[0]
- }
- options = options || {}
- options.npmrc = options.npmrc || require('rc')('npm', {registry: 'https://registry.npmjs.org/'})
- checkUrl = checkUrl || options.npmrc.registry
- return getRegistryAuthInfo(checkUrl, options) || getLegacyAuthInfo(options.npmrc)
-}
-
-function getRegistryAuthInfo (checkUrl, options) {
- var parsed = url.parse(checkUrl, false, true)
- var pathname
-
- while (pathname !== '/' && parsed.pathname !== pathname) {
- pathname = parsed.pathname || '/'
-
- var regUrl = '//' + parsed.host + pathname.replace(/\/$/, '')
- var authInfo = getAuthInfoForUrl(regUrl, options.npmrc)
- if (authInfo) {
- return authInfo
- }
-
- // break if not recursive
- if (!options.recursive) {
- return /\/$/.test(checkUrl)
- ? undefined
- : getRegistryAuthInfo(url.resolve(checkUrl, '.'), options)
- }
-
- parsed.pathname = url.resolve(normalizePath(pathname), '..') || '/'
- }
-
- return undefined
-}
-
-function getLegacyAuthInfo (npmrc) {
- if (npmrc._auth) {
- return {token: npmrc._auth, type: 'Basic'}
- }
- return undefined
-}
-
-function normalizePath (path) {
- return path[path.length - 1] === '/' ? path : path + '/'
-}
-
-function getAuthInfoForUrl (regUrl, npmrc) {
- // try to get bearer token
- var bearerAuth = getBearerToken(npmrc[regUrl + tokenKey] || npmrc[regUrl + '/' + tokenKey])
- if (bearerAuth) {
- return bearerAuth
- }
-
- // try to get basic token
- var username = npmrc[regUrl + userKey] || npmrc[regUrl + '/' + userKey]
- var password = npmrc[regUrl + passwordKey] || npmrc[regUrl + '/' + passwordKey]
- var basicAuth = getTokenForUsernameAndPassword(username, password)
- if (basicAuth) {
- return basicAuth
- }
-
- return undefined
-}
-
-function getBearerToken (tok) {
- if (!tok) {
- return undefined
- }
-
- // check if bearer token
- var token = tok.replace(/^\$\{?([^}]*)\}?$/, function (fullMatch, envVar) {
- return process.env[envVar]
- })
-
- return {token: token, type: 'Bearer'}
-}
-
-function getTokenForUsernameAndPassword (username, password) {
- if (!username || !password) {
- return undefined
- }
-
- // passwords are base64 encoded, so we need to decode it
- // See https://github.com/npm/npm/blob/v3.10.6/lib/config/set-credentials-by-uri.js#L26
- var pass = decodeBase64(password)
-
- // a basic auth token is base64 encoded 'username:password'
- // See https://github.com/npm/npm/blob/v3.10.6/lib/config/get-credentials-by-uri.js#L70
- var token = encodeBase64(username + ':' + pass)
-
- // we found a basicToken token so let's exit the loop
- return {
- token: token,
- type: 'Basic',
- password: pass,
- username: username
- }
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore
deleted file mode 100644
index 13abef4f58..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-node_modules/*
-npm_debug.log
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md
deleted file mode 100644
index b7f77d5660..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/README.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# rc
-
-The non-configurable configuration loader for lazy people.
-
-## Usage
-
-The only option is to pass rc the name of your app, and your default configuration.
-
-```javascript
-var conf = require('rc')(appname, {
- //defaults go here.
- port: 2468,
-
- //defaults which are objects will be merged, not replaced
- views: {
- engine: 'jade'
- }
-});
-```
-
-`rc` will return your configuration options merged with the defaults you specify.
-If you pass in a predefined defaults object, it will be mutated:
-
-```javascript
-var conf = {};
-require('rc')(appname, conf);
-```
-
-If `rc` finds any config files for your app, the returned config object will have
-a `configs` array containing their paths:
-
-```javascript
-var appCfg = require('rc')(appname, conf);
-appCfg.configs[0] // /etc/appnamerc
-appCfg.configs[1] // /home/dominictarr/.config/appname
-appCfg.config // same as appCfg.configs[appCfg.configs.length - 1]
-```
-
-## Standards
-
-Given your application name (`appname`), rc will look in all the obvious places for configuration.
-
- * command line arguments (parsed by minimist)
- * environment variables prefixed with `${appname}_`
- * or use "\_\_" to indicate nested properties <br/> _(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_
- * if you passed an option `--config file` then from that file
- * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc.
- * `$HOME/.${appname}rc`
- * `$HOME/.${appname}/config`
- * `$HOME/.config/${appname}`
- * `$HOME/.config/${appname}/config`
- * `/etc/${appname}rc`
- * `/etc/${appname}/config`
- * the defaults object you passed in.
-
-All configuration sources that were found will be flattened into one object,
-so that sources **earlier** in this list override later ones.
-
-
-## Configuration File Formats
-
-Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. The example configurations below are equivalent:
-
-
-#### Formatted as `ini`
-
-```
-; You can include comments in `ini` format if you want.
-
-dependsOn=0.10.0
-
-
-; `rc` has built-in support for ini sections, see?
-
-[commands]
- www = ./commands/www
- console = ./commands/repl
-
-
-; You can even do nested sections
-
-[generators.options]
- engine = ejs
-
-[generators.modules]
- new = generate-new
- engine = generate-backend
-
-```
-
-#### Formatted as `json`
-
-```javascript
-{
- // You can even comment your JSON, if you want
- "dependsOn": "0.10.0",
- "commands": {
- "www": "./commands/www",
- "console": "./commands/repl"
- },
- "generators": {
- "options": {
- "engine": "ejs"
- },
- "modules": {
- "new": "generate-new",
- "backend": "generate-backend"
- }
- }
-}
-```
-
-Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments).
-
-> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings.
-
-
-
-## Advanced Usage
-
-#### Pass in your own `argv`
-
-You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12).
-
-```javascript
-require('rc')(appname, defaults, customArgvParser);
-```
-
-## Pass in your own parser
-
-If you have a special need to use a non-standard parser,
-you can do so by passing in the parser as the 4th argument.
-(leave the 3rd as null to get the default args parser)
-
-```javascript
-require('rc')(appname, defaults, null, parser);
-```
-
-This may also be used to force a more strict format,
-such as strict, valid JSON only.
-
-## Note on Performance
-
-`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler)
-
-
-## License
-
-Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js
deleted file mode 100755
index 6f8f1139d7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env node
-var cc = require('./lib/utils')
-var join = require('path').join
-var deepExtend = require('deep-extend')
-var etc = '/etc'
-var win = process.platform === "win32"
-var home = win
- ? process.env.USERPROFILE
- : process.env.HOME
-
-module.exports = function (name, defaults, argv, parse) {
- if('string' !== typeof name)
- throw new Error('rc(name): name *must* be string')
- if(!argv)
- argv = require('minimist')(process.argv.slice(2))
- defaults = (
- 'string' === typeof defaults
- ? cc.json(defaults) : defaults
- ) || {}
-
- parse = parse || cc.parse
-
- var env = cc.env(name + '_')
-
- var configs = [defaults]
- var configFiles = []
- function addConfigFile (file) {
- if (configFiles.indexOf(file) >= 0) return
- var fileConfig = cc.file(file)
- if (fileConfig) {
- configs.push(parse(fileConfig))
- configFiles.push(file)
- }
- }
-
- // which files do we look at?
- if (!win)
- [join(etc, name, 'config'),
- join(etc, name + 'rc')].forEach(addConfigFile)
- if (home)
- [join(home, '.config', name, 'config'),
- join(home, '.config', name),
- join(home, '.' + name, 'config'),
- join(home, '.' + name + 'rc')].forEach(addConfigFile)
- addConfigFile(cc.find('.'+name+'rc'))
- if (env.config) addConfigFile(env.config)
- if (argv.config) addConfigFile(argv.config)
-
- return deepExtend.apply(null, configs.concat([
- env,
- argv,
- configFiles.length ? {configs: configFiles, config: configFiles[configFiles.length - 1]} : undefined,
- ]))
-}
-
-if(!module.parent) {
- console.log(
- JSON.stringify(module.exports(process.argv[2]), false, 2)
- )
-}
diff --git a/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 b/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
deleted file mode 100644
index f3efe0b222..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-Changelog
-=========
-
-v0.4.1
-------
-
-- Removed test code from <b>npm</b> package
- ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21));
-- Increased minimal version of Node from 0.4.0 to 0.12.0
- (because can't run tests on lesser version anyway).
-
-v0.4.0
-------
-
-Broken backward compatibility with v0.3.x
-
-- Fixed bug with extending arrays instead of cloning;
-- Deep cloning for arrays;
-- Check for own property;
-- Fixed some documentation issues;
-- Strict JS mode.
diff --git a/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 b/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
deleted file mode 100644
index acc4662ea4..0000000000
--- a/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
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2015, Viacheslav Lotsmanov
-
-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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/deep-extend/README.md b/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
deleted file mode 100644
index 70022248d0..0000000000
--- a/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
+++ /dev/null
@@ -1,90 +0,0 @@
-Deep Extend
-===========
-
-Recursive object extending.
-
-[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/)
-[![NPM](https://nodei.co/npm-dl/deep-extend.png?height=3)](https://nodei.co/npm/deep-extend/)
-
-Install
--------
-
-```bash
-$ npm install deep-extend
-```
-
-Usage
------
-
-```javascript
-var deepExtend = require('deep-extend');
-var obj1 = {
- a: 1,
- b: 2,
- d: {
- a: 1,
- b: [],
- c: { test1: 123, test2: 321 }
- },
- f: 5,
- g: 123,
- i: 321,
- j: [1, 2]
-};
-var obj2 = {
- b: 3,
- c: 5,
- d: {
- b: { first: 'one', second: 'two' },
- c: { test2: 222 }
- },
- e: { one: 1, two: 2 },
- f: [],
- g: (void 0),
- h: /abc/g,
- i: null,
- j: [3, 4]
-};
-
-deepExtend(obj1, obj2);
-
-console.log(obj1);
-/*
-{ a: 1,
- b: 3,
- d:
- { a: 1,
- b: { first: 'one', second: 'two' },
- c: { test1: 123, test2: 222 } },
- f: [],
- g: undefined,
- c: 5,
- e: { one: 1, two: 2 },
- h: /abc/g,
- i: null,
- j: [3, 4] }
-*/
-```
-
-Unit testing
-------------
-
-```bash
-$ npm test
-```
-
-Changelog
----------
-
-[CHANGELOG.md](./CHANGELOG.md)
-
-Any issues?
------------
-
-Please, report about issues
-[here](https://github.com/unclechu/node-deep-extend/issues).
-
-License
--------
-
-[MIT](./LICENSE)
diff --git a/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 b/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
deleted file mode 100644
index 08f70ed763..0000000000
--- a/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
+++ /dev/null
@@ -1,144 +0,0 @@
-/*!
- * @description Recursive object extending
- * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
- * @license MIT
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2013-2015 Viacheslav Lotsmanov
- *
- * 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';
-
-function isSpecificValue(val) {
- return (
- val instanceof Buffer
- || val instanceof Date
- || val instanceof RegExp
- ) ? true : false;
-}
-
-function cloneSpecificValue(val) {
- if (val instanceof Buffer) {
- var x = new Buffer(val.length);
- val.copy(x);
- return x;
- } else if (val instanceof Date) {
- return new Date(val.getTime());
- } else if (val instanceof RegExp) {
- return new RegExp(val);
- } else {
- throw new Error('Unexpected situation');
- }
-}
-
-/**
- * Recursive cloning array.
- */
-function deepCloneArray(arr) {
- var clone = [];
- arr.forEach(function (item, index) {
- if (typeof item === 'object' && item !== null) {
- if (Array.isArray(item)) {
- clone[index] = deepCloneArray(item);
- } else if (isSpecificValue(item)) {
- clone[index] = cloneSpecificValue(item);
- } else {
- clone[index] = deepExtend({}, item);
- }
- } else {
- clone[index] = item;
- }
- });
- return clone;
-}
-
-/**
- * Extening object that entered in first argument.
- *
- * Returns extended object or false if have no target object or incorrect type.
- *
- * If you wish to clone source object (without modify it), just use empty new
- * object as first argument, like this:
- * deepExtend({}, yourObj_1, [yourObj_N]);
- */
-var deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) {
- if (arguments.length < 1 || typeof arguments[0] !== 'object') {
- return false;
- }
-
- if (arguments.length < 2) {
- return arguments[0];
- }
-
- var target = arguments[0];
-
- // convert arguments to array and cut off target object
- var args = Array.prototype.slice.call(arguments, 1);
-
- var val, src, clone;
-
- args.forEach(function (obj) {
- // skip argument if isn't an object, is null, or is an array
- if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
- return;
- }
-
- Object.keys(obj).forEach(function (key) {
- src = target[key]; // source value
- val = obj[key]; // new value
-
- // recursion prevention
- if (val === target) {
- return;
-
- /**
- * if new value isn't object then just overwrite by new value
- * instead of extending.
- */
- } else if (typeof val !== 'object' || val === null) {
- target[key] = val;
- return;
-
- // just clone arrays (and recursive clone objects inside)
- } else if (Array.isArray(val)) {
- target[key] = deepCloneArray(val);
- return;
-
- // custom cloning and overwrite for specific objects
- } else if (isSpecificValue(val)) {
- target[key] = cloneSpecificValue(val);
- return;
-
- // overwrite by new value if source isn't object or array
- } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {
- target[key] = deepExtend({}, val);
- return;
-
- // source value and new value is objects both, extending...
- } else {
- target[key] = deepExtend(src, val);
- return;
- }
- });
- });
-
- return target;
-}
diff --git a/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 b/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
deleted file mode 100644
index 2e3ec335af..0000000000
--- a/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
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "_from": "deep-extend@~0.4.0",
- "_id": "deep-extend@0.4.2",
- "_inBundle": false,
- "_integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "_location": "/update-notifier/latest-version/package-json/registry-auth-token/rc/deep-extend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "deep-extend@~0.4.0",
- "name": "deep-extend",
- "escapedName": "deep-extend",
- "rawSpec": "~0.4.0",
- "saveSpec": null,
- "fetchSpec": "~0.4.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-auth-token/rc"
- ],
- "_resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "_shasum": "48b699c27e334bf89f10892be432f6e4c7d34a7f",
- "_spec": "deep-extend@~0.4.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc",
- "author": {
- "name": "Viacheslav Lotsmanov",
- "email": "lotsmanov89@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/unclechu/node-deep-extend/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Romain Prieto",
- "url": "https://github.com/rprieto"
- },
- {
- "name": "Max Maximov",
- "url": "https://github.com/maxmaximov"
- },
- {
- "name": "Marshall Bowers",
- "url": "https://github.com/maxdeviant"
- }
- ],
- "deprecated": false,
- "description": "Recursive object extending",
- "devDependencies": {
- "mocha": "^2.2.1",
- "should": "^5.2.0"
- },
- "directories": {
- "lib": "./lib/",
- "test": "./test/"
- },
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.12.0"
- },
- "files": [
- "lib/deep-extend.js",
- "index.js"
- ],
- "homepage": "https://github.com/unclechu/node-deep-extend",
- "keywords": [
- "deep-extend",
- "extend",
- "deep",
- "recursive",
- "xtend",
- "clone",
- "merge",
- "json"
- ],
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE"
- }
- ],
- "main": "lib/deep-extend.js",
- "name": "deep-extend",
- "repository": {
- "type": "git",
- "url": "git://github.com/unclechu/node-deep-extend.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "0.4.2"
-}
diff --git a/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 b/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
deleted file mode 100644
index ee27ba4b44..0000000000
--- a/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
+++ /dev/null
@@ -1,18 +0,0 @@
-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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/node_modules/minimist/package.json b/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
deleted file mode 100644
index 79f5296a78..0000000000
--- a/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
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "minimist@^1.2.0",
- "_id": "minimist@1.2.0",
- "_integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "_location": "/update-notifier/latest-version/package-json/registry-auth-token/rc/minimist",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimist@^1.2.0",
- "name": "minimist",
- "escapedName": "minimist",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-auth-token/rc"
- ],
- "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "_shasum": "a35008b20f41383eec1fb914f4cd5df79a264284",
- "_shrinkwrap": null,
- "_spec": "minimist@^1.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/minimist/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "parse argument options",
- "devDependencies": {
- "covert": "^1.0.0",
- "tap": "~0.4.0",
- "tape": "^3.5.0"
- },
- "homepage": "https://github.com/substack/minimist",
- "keywords": [
- "argv",
- "getopt",
- "parser",
- "optimist"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "minimist",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/minimist.git"
- },
- "scripts": {
- "coverage": "covert test/*.js",
- "test": "tap test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/6..latest",
- "ff/5",
- "firefox/latest",
- "chrome/10",
- "chrome/latest",
- "safari/5.1",
- "safari/latest",
- "opera/12"
- ]
- },
- "version": "1.2.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/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 b/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
deleted file mode 100644
index 55bb1b2c87..0000000000
--- a/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
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "strip-json-comments@~2.0.1",
- "_id": "strip-json-comments@2.0.1",
- "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "_location": "/update-notifier/latest-version/package-json/registry-auth-token/rc/strip-json-comments",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-json-comments@~2.0.1",
- "name": "strip-json-comments",
- "escapedName": "strip-json-comments",
- "rawSpec": "~2.0.1",
- "saveSpec": null,
- "fetchSpec": "~2.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-auth-token/rc"
- ],
- "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
- "_shrinkwrap": null,
- "_spec": "strip-json-comments@~2.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/strip-json-comments/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Strip comments from JSON. Lets you use comments in your JSON files!",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/strip-json-comments#readme",
- "keywords": [
- "json",
- "strip",
- "remove",
- "delete",
- "trim",
- "comments",
- "multiline",
- "parse",
- "config",
- "configuration",
- "conf",
- "settings",
- "util",
- "env",
- "environment"
- ],
- "license": "MIT",
- "name": "strip-json-comments",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/strip-json-comments.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json
deleted file mode 100644
index 91b7fc3d90..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/node_modules/rc/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "_from": "rc@^1.1.6",
- "_id": "rc@1.2.1",
- "_integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
- "_location": "/update-notifier/latest-version/package-json/registry-auth-token/rc",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "rc@^1.1.6",
- "name": "rc",
- "escapedName": "rc",
- "rawSpec": "^1.1.6",
- "saveSpec": null,
- "fetchSpec": "^1.1.6"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-auth-token"
- ],
- "_resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
- "_shasum": "2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95",
- "_shrinkwrap": null,
- "_spec": "rc@^1.1.6",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token",
- "author": {
- "name": "Dominic Tarr",
- "email": "dominic.tarr@gmail.com",
- "url": "dominictarr.com"
- },
- "bin": {
- "rc": "./index.js"
- },
- "browserify": "browser.js",
- "bugs": {
- "url": "https://github.com/dominictarr/rc/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "deep-extend": "~0.4.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "deprecated": false,
- "description": "hardwired configuration loader",
- "devDependencies": {},
- "homepage": "https://github.com/dominictarr/rc#readme",
- "keywords": [
- "config",
- "rc",
- "unix",
- "defaults"
- ],
- "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
- "main": "index.js",
- "name": "rc",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/dominictarr/rc.git"
- },
- "scripts": {
- "test": "set -e; node test/test.js; node test/ini.js; node test/nested-env-vars.js"
- },
- "version": "1.2.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json
deleted file mode 100644
index b838a70e83..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/package.json
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- "_from": "registry-auth-token@^3.0.1",
- "_id": "registry-auth-token@3.3.1",
- "_inBundle": false,
- "_integrity": "sha1-+w0yie4Nmtosu1KvXf5mywcNMAY=",
- "_location": "/update-notifier/latest-version/package-json/registry-auth-token",
- "_phantomChildren": {
- "ini": "1.3.4"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "registry-auth-token@^3.0.1",
- "name": "registry-auth-token",
- "escapedName": "registry-auth-token",
- "rawSpec": "^3.0.1",
- "saveSpec": null,
- "fetchSpec": "^3.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json"
- ],
- "_resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.3.1.tgz",
- "_shasum": "fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006",
- "_spec": "registry-auth-token@^3.0.1",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json",
- "author": {
- "name": "Espen Hovlandsdal",
- "email": "espen@hovlandsdal.com"
- },
- "bugs": {
- "url": "https://github.com/rexxars/registry-auth-token/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "rc": "^1.1.6",
- "safe-buffer": "^5.0.1"
- },
- "deprecated": false,
- "description": "Get the auth token set for an npm registry (if any)",
- "devDependencies": {
- "istanbul": "^0.4.2",
- "mocha": "^3.3.0",
- "require-uncached": "^1.0.2",
- "standard": "^10.0.2"
- },
- "homepage": "https://github.com/rexxars/registry-auth-token#readme",
- "keywords": [
- "npm",
- "conf",
- "config",
- "npmconf",
- "registry",
- "auth",
- "token",
- "authtoken"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "registry-auth-token",
- "repository": {
- "type": "git",
- "url": "git+ssh://git@github.com/rexxars/registry-auth-token.git"
- },
- "scripts": {
- "coverage": "istanbul cover _mocha",
- "posttest": "standard",
- "test": "mocha"
- },
- "standard": {
- "ignore": [
- "coverage/**"
- ]
- },
- "version": "3.3.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock
deleted file mode 100644
index 6ce953f732..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-auth-token/yarn.lock
+++ /dev/null
@@ -1,1466 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-abbrev@1, abbrev@1.0.x:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135"
-
-acorn-jsx@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b"
- dependencies:
- acorn "^3.0.4"
-
-acorn@^3.0.4:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a"
-
-acorn@^5.0.1:
- version "5.0.3"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d"
-
-ajv-keywords@^1.0.0:
- version "1.5.1"
- resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c"
-
-ajv@^4.7.0:
- version "4.11.8"
- resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536"
- dependencies:
- co "^4.6.0"
- json-stable-stringify "^1.0.1"
-
-align-text@^0.1.1, align-text@^0.1.3:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117"
- dependencies:
- kind-of "^3.0.2"
- longest "^1.0.1"
- repeat-string "^1.5.2"
-
-amdefine@>=0.0.4:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
-
-ansi-escapes@^1.1.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-
-ansi-regex@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-
-ansi-styles@^2.2.1:
- version "2.2.1"
- resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-
-argparse@^1.0.7:
- version "1.0.9"
- resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86"
- dependencies:
- sprintf-js "~1.0.2"
-
-array-union@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
- dependencies:
- array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-
-array.prototype.find@^2.0.1:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.0.4.tgz#556a5c5362c08648323ddaeb9de9d14bc1864c90"
- dependencies:
- define-properties "^1.1.2"
- es-abstract "^1.7.0"
-
-arrify@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d"
-
-async@1.x, async@^1.4.0:
- version "1.5.2"
- resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-
-babel-code-frame@^6.16.0:
- version "6.22.0"
- resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4"
- dependencies:
- chalk "^1.1.0"
- esutils "^2.0.2"
- js-tokens "^3.0.0"
-
-balanced-match@^0.4.1:
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838"
-
-brace-expansion@^1.0.0:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59"
- dependencies:
- balanced-match "^0.4.1"
- concat-map "0.0.1"
-
-browser-stdout@1.3.0:
- version "1.3.0"
- resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f"
-
-buffer-shims@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/buffer-shims/-/buffer-shims-1.0.0.tgz#9978ce317388c649ad8793028c3477ef044a8b51"
-
-builtin-modules@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
-
-caller-path@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f"
- dependencies:
- callsites "^0.2.0"
-
-callsites@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca"
-
-camelcase@^1.0.2:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39"
-
-center-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad"
- dependencies:
- align-text "^0.1.3"
- lazy-cache "^1.0.3"
-
-chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
- dependencies:
- ansi-styles "^2.2.1"
- escape-string-regexp "^1.0.2"
- has-ansi "^2.0.0"
- strip-ansi "^3.0.0"
- supports-color "^2.0.0"
-
-circular-json@^0.3.1:
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d"
-
-cli-cursor@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
- dependencies:
- restore-cursor "^1.0.1"
-
-cli-width@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a"
-
-cliui@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1"
- dependencies:
- center-align "^0.1.1"
- right-align "^0.1.1"
- wordwrap "0.0.2"
-
-co@^4.6.0:
- version "4.6.0"
- resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
-
-code-point-at@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-
-commander@2.9.0:
- version "2.9.0"
- resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4"
- dependencies:
- graceful-readlink ">= 1.0.0"
-
-concat-map@0.0.1:
- version "0.0.1"
- resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-
-concat-stream@^1.5.2:
- version "1.6.0"
- resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7"
- dependencies:
- inherits "^2.0.3"
- readable-stream "^2.2.2"
- typedarray "^0.0.6"
-
-contains-path@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a"
-
-core-util-is@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-
-d@1:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f"
- dependencies:
- es5-ext "^0.10.9"
-
-debug-log@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/debug-log/-/debug-log-1.0.1.tgz#2307632d4c04382b8df8a32f70b895046d52745f"
-
-debug@2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da"
- dependencies:
- ms "0.7.1"
-
-debug@2.6.0, debug@^2.1.1, debug@^2.2.0:
- version "2.6.0"
- resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b"
- dependencies:
- ms "0.7.2"
-
-decamelize@^1.0.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-
-deep-extend@~0.4.0:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.1.tgz#efe4113d08085f4e6f9687759810f807469e2253"
-
-deep-is@~0.1.3:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-
-define-properties@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94"
- dependencies:
- foreach "^2.0.5"
- object-keys "^1.0.8"
-
-deglob@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/deglob/-/deglob-2.1.0.tgz#4d44abe16ef32c779b4972bd141a80325029a14a"
- dependencies:
- find-root "^1.0.0"
- glob "^7.0.5"
- ignore "^3.0.9"
- pkg-config "^1.1.0"
- run-parallel "^1.1.2"
- uniq "^1.0.1"
-
-del@^2.0.2:
- version "2.2.2"
- resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8"
- dependencies:
- globby "^5.0.0"
- is-path-cwd "^1.0.0"
- is-path-in-cwd "^1.0.0"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
- rimraf "^2.2.8"
-
-diff@3.2.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9"
-
-doctrine@1.5.0, doctrine@^1.2.2:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa"
- dependencies:
- esutils "^2.0.2"
- isarray "^1.0.0"
-
-doctrine@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63"
- dependencies:
- esutils "^2.0.2"
- isarray "^1.0.0"
-
-error-ex@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc"
- dependencies:
- is-arrayish "^0.2.1"
-
-es-abstract@^1.7.0:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c"
- dependencies:
- es-to-primitive "^1.1.1"
- function-bind "^1.1.0"
- is-callable "^1.1.3"
- is-regex "^1.0.3"
-
-es-to-primitive@^1.1.1:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d"
- dependencies:
- is-callable "^1.1.1"
- is-date-object "^1.0.1"
- is-symbol "^1.0.1"
-
-es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14:
- version "0.10.15"
- resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.15.tgz#c330a5934c1ee21284a7c081a86e5fd937c91ea6"
- dependencies:
- es6-iterator "2"
- es6-symbol "~3.1"
-
-es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-symbol "^3.1"
-
-es6-map@^0.1.3:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-set "~0.1.5"
- es6-symbol "~3.1.1"
- event-emitter "~0.3.5"
-
-es6-set@~0.1.5:
- version "0.1.5"
- resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
- es6-iterator "~2.0.1"
- es6-symbol "3.1.1"
- event-emitter "~0.3.5"
-
-es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-es6-weak-map@^2.0.1:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f"
- dependencies:
- d "1"
- es5-ext "^0.10.14"
- es6-iterator "^2.0.1"
- es6-symbol "^3.1.1"
-
-escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
- version "1.0.5"
- resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-
-escodegen@1.8.x:
- version "1.8.1"
- resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.8.1.tgz#5a5b53af4693110bebb0867aa3430dd3b70a1018"
- dependencies:
- esprima "^2.7.1"
- estraverse "^1.9.1"
- esutils "^2.0.2"
- optionator "^0.8.1"
- optionalDependencies:
- source-map "~0.2.0"
-
-escope@^3.6.0:
- version "3.6.0"
- resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3"
- dependencies:
- es6-map "^0.1.3"
- es6-weak-map "^2.0.1"
- esrecurse "^4.1.0"
- estraverse "^4.1.1"
-
-eslint-config-standard-jsx@4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/eslint-config-standard-jsx/-/eslint-config-standard-jsx-4.0.1.tgz#cd4e463d0268e2d9e707f61f42f73f5b3333c642"
-
-eslint-config-standard@10.2.1:
- version "10.2.1"
- resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-10.2.1.tgz#c061e4d066f379dc17cd562c64e819b4dd454591"
-
-eslint-import-resolver-node@^0.2.0:
- version "0.2.3"
- resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.2.3.tgz#5add8106e8c928db2cba232bcd9efa846e3da16c"
- dependencies:
- debug "^2.2.0"
- object-assign "^4.0.1"
- resolve "^1.1.6"
-
-eslint-module-utils@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.0.0.tgz#a6f8c21d901358759cdc35dbac1982ae1ee58bce"
- dependencies:
- debug "2.2.0"
- pkg-dir "^1.0.0"
-
-eslint-plugin-import@~2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.2.0.tgz#72ba306fad305d67c4816348a4699a4229ac8b4e"
- dependencies:
- builtin-modules "^1.1.1"
- contains-path "^0.1.0"
- debug "^2.2.0"
- doctrine "1.5.0"
- eslint-import-resolver-node "^0.2.0"
- eslint-module-utils "^2.0.0"
- has "^1.0.1"
- lodash.cond "^4.3.0"
- minimatch "^3.0.3"
- pkg-up "^1.0.0"
-
-eslint-plugin-node@~4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-4.2.2.tgz#82959ca9aed79fcbd28bb1b188d05cac04fb3363"
- dependencies:
- ignore "^3.0.11"
- minimatch "^3.0.2"
- object-assign "^4.0.1"
- resolve "^1.1.7"
- semver "5.3.0"
-
-eslint-plugin-promise@~3.5.0:
- version "3.5.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-3.5.0.tgz#78fbb6ffe047201627569e85a6c5373af2a68fca"
-
-eslint-plugin-react@~6.10.0:
- version "6.10.3"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-6.10.3.tgz#c5435beb06774e12c7db2f6abaddcbf900cd3f78"
- dependencies:
- array.prototype.find "^2.0.1"
- doctrine "^1.2.2"
- has "^1.0.1"
- jsx-ast-utils "^1.3.4"
- object.assign "^4.0.4"
-
-eslint-plugin-standard@~3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-3.0.1.tgz#34d0c915b45edc6f010393c7eef3823b08565cf2"
-
-eslint@~3.19.0:
- version "3.19.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc"
- dependencies:
- babel-code-frame "^6.16.0"
- chalk "^1.1.3"
- concat-stream "^1.5.2"
- debug "^2.1.1"
- doctrine "^2.0.0"
- escope "^3.6.0"
- espree "^3.4.0"
- esquery "^1.0.0"
- estraverse "^4.2.0"
- esutils "^2.0.2"
- file-entry-cache "^2.0.0"
- glob "^7.0.3"
- globals "^9.14.0"
- ignore "^3.2.0"
- imurmurhash "^0.1.4"
- inquirer "^0.12.0"
- is-my-json-valid "^2.10.0"
- is-resolvable "^1.0.0"
- js-yaml "^3.5.1"
- json-stable-stringify "^1.0.0"
- levn "^0.3.0"
- lodash "^4.0.0"
- mkdirp "^0.5.0"
- natural-compare "^1.4.0"
- optionator "^0.8.2"
- path-is-inside "^1.0.1"
- pluralize "^1.2.1"
- progress "^1.1.8"
- require-uncached "^1.0.2"
- shelljs "^0.7.5"
- strip-bom "^3.0.0"
- strip-json-comments "~2.0.1"
- table "^3.7.8"
- text-table "~0.2.0"
- user-home "^2.0.0"
-
-espree@^3.4.0:
- version "3.4.2"
- resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.2.tgz#38dbdedbedc95b8961a1fbf04734a8f6a9c8c592"
- dependencies:
- acorn "^5.0.1"
- acorn-jsx "^3.0.0"
-
-esprima@2.7.x, esprima@^2.7.1:
- version "2.7.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581"
-
-esprima@^3.1.1:
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633"
-
-esquery@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa"
- dependencies:
- estraverse "^4.0.0"
-
-esrecurse@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.1.0.tgz#4713b6536adf7f2ac4f327d559e7756bff648220"
- dependencies:
- estraverse "~4.1.0"
- object-assign "^4.0.1"
-
-estraverse@^1.9.1:
- version "1.9.3"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44"
-
-estraverse@^4.0.0, estraverse@^4.1.1, estraverse@^4.2.0:
- version "4.2.0"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13"
-
-estraverse@~4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.1.1.tgz#f6caca728933a850ef90661d0e17982ba47111a2"
-
-esutils@^2.0.2:
- version "2.0.2"
- resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
-
-event-emitter@~0.3.5:
- version "0.3.5"
- resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39"
- dependencies:
- d "1"
- es5-ext "~0.10.14"
-
-exit-hook@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-
-fast-levenshtein@~2.0.4:
- version "2.0.6"
- resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-
-figures@^1.3.5:
- version "1.7.0"
- resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
- dependencies:
- escape-string-regexp "^1.0.5"
- object-assign "^4.1.0"
-
-file-entry-cache@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361"
- dependencies:
- flat-cache "^1.2.1"
- object-assign "^4.0.1"
-
-find-root@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.0.0.tgz#962ff211aab25c6520feeeb8d6287f8f6e95807a"
-
-find-up@^1.0.0:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f"
- dependencies:
- path-exists "^2.0.0"
- pinkie-promise "^2.0.0"
-
-find-up@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
- dependencies:
- locate-path "^2.0.0"
-
-flat-cache@^1.2.1:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96"
- dependencies:
- circular-json "^0.3.1"
- del "^2.0.2"
- graceful-fs "^4.1.2"
- write "^0.2.1"
-
-foreach@^2.0.5:
- version "2.0.5"
- resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-
-fs.realpath@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-
-function-bind@^1.0.2, function-bind@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771"
-
-generate-function@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74"
-
-generate-object-property@^1.1.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0"
- dependencies:
- is-property "^1.0.0"
-
-get-stdin@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398"
-
-glob@7.1.1, glob@^7.0.0, glob@^7.0.3, glob@^7.0.5:
- version "7.1.1"
- resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.1.tgz#805211df04faaf1c63a3600306cdf5ade50b2ec8"
- dependencies:
- fs.realpath "^1.0.0"
- inflight "^1.0.4"
- inherits "2"
- minimatch "^3.0.2"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-glob@^5.0.15:
- version "5.0.15"
- resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"
- dependencies:
- inflight "^1.0.4"
- inherits "2"
- minimatch "2 || 3"
- once "^1.3.0"
- path-is-absolute "^1.0.0"
-
-globals@^9.14.0:
- version "9.17.0"
- resolved "https://registry.yarnpkg.com/globals/-/globals-9.17.0.tgz#0c0ca696d9b9bb694d2e5470bd37777caad50286"
-
-globby@^5.0.0:
- version "5.0.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d"
- dependencies:
- array-union "^1.0.1"
- arrify "^1.0.0"
- glob "^7.0.3"
- object-assign "^4.0.1"
- pify "^2.0.0"
- pinkie-promise "^2.0.0"
-
-graceful-fs@^4.1.2:
- version "4.1.11"
- resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658"
-
-"graceful-readlink@>= 1.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725"
-
-growl@1.9.2:
- version "1.9.2"
- resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f"
-
-handlebars@^4.0.1:
- version "4.0.7"
- resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.7.tgz#e97325aeb8ea0b9e12b9c4dd73c4c312ad0ede59"
- dependencies:
- async "^1.4.0"
- optimist "^0.6.1"
- source-map "^0.4.4"
- optionalDependencies:
- uglify-js "^2.6"
-
-has-ansi@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
- dependencies:
- ansi-regex "^2.0.0"
-
-has-flag@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa"
-
-has@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28"
- dependencies:
- function-bind "^1.0.2"
-
-ignore@^3.0.11, ignore@^3.0.9, ignore@^3.2.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.0.tgz#3812d22cbe9125f2c2b4915755a1b8abd745a001"
-
-imurmurhash@^0.1.4:
- version "0.1.4"
- resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-
-inflight@^1.0.4:
- version "1.0.6"
- resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
- dependencies:
- once "^1.3.0"
- wrappy "1"
-
-inherits@2, inherits@^2.0.3, inherits@~2.0.1:
- version "2.0.3"
- resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-
-ini@~1.3.0:
- version "1.3.4"
- resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e"
-
-inquirer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e"
- dependencies:
- ansi-escapes "^1.1.0"
- ansi-regex "^2.0.0"
- chalk "^1.0.0"
- cli-cursor "^1.0.1"
- cli-width "^2.0.0"
- figures "^1.3.5"
- lodash "^4.3.0"
- readline2 "^1.0.1"
- run-async "^0.1.0"
- rx-lite "^3.1.2"
- string-width "^1.0.1"
- strip-ansi "^3.0.0"
- through "^2.3.6"
-
-interpret@^1.0.0:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90"
-
-is-arrayish@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-
-is-buffer@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc"
-
-is-callable@^1.1.1, is-callable@^1.1.3:
- version "1.1.3"
- resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2"
-
-is-date-object@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-
-is-fullwidth-code-point@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
- dependencies:
- number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-
-is-my-json-valid@^2.10.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693"
- dependencies:
- generate-function "^2.0.0"
- generate-object-property "^1.1.0"
- jsonpointer "^4.0.0"
- xtend "^4.0.0"
-
-is-path-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d"
-
-is-path-in-cwd@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc"
- dependencies:
- is-path-inside "^1.0.0"
-
-is-path-inside@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f"
- dependencies:
- path-is-inside "^1.0.1"
-
-is-property@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84"
-
-is-regex@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
- dependencies:
- has "^1.0.1"
-
-is-resolvable@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62"
- dependencies:
- tryit "^1.0.1"
-
-is-symbol@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572"
-
-isarray@^1.0.0, isarray@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-
-isexe@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-
-istanbul@^0.4.2:
- version "0.4.5"
- resolved "https://registry.yarnpkg.com/istanbul/-/istanbul-0.4.5.tgz#65c7d73d4c4da84d4f3ac310b918fb0b8033733b"
- dependencies:
- abbrev "1.0.x"
- async "1.x"
- escodegen "1.8.x"
- esprima "2.7.x"
- glob "^5.0.15"
- handlebars "^4.0.1"
- js-yaml "3.x"
- mkdirp "0.5.x"
- nopt "3.x"
- once "1.x"
- resolve "1.1.x"
- supports-color "^3.1.0"
- which "^1.1.1"
- wordwrap "^1.0.0"
-
-js-tokens@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7"
-
-js-yaml@3.x, js-yaml@^3.5.1:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.8.3.tgz#33a05ec481c850c8875929166fe1beb61c728766"
- dependencies:
- argparse "^1.0.7"
- esprima "^3.1.1"
-
-json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af"
- dependencies:
- jsonify "~0.0.0"
-
-json3@3.3.2:
- version "3.3.2"
- resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1"
-
-jsonify@~0.0.0:
- version "0.0.0"
- resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
-
-jsonpointer@^4.0.0:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9"
-
-jsx-ast-utils@^1.3.4:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz#3867213e8dd79bf1e8f2300c0cfc1efb182c0df1"
-
-kind-of@^3.0.2:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.0.tgz#b58abe4d5c044ad33726a8c1525b48cf891bff07"
- dependencies:
- is-buffer "^1.1.5"
-
-lazy-cache@^1.0.3:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e"
-
-levn@^0.3.0, levn@~0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee"
- dependencies:
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
-
-load-json-file@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8"
- dependencies:
- graceful-fs "^4.1.2"
- parse-json "^2.2.0"
- pify "^2.0.0"
- strip-bom "^3.0.0"
-
-locate-path@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
- dependencies:
- p-locate "^2.0.0"
- path-exists "^3.0.0"
-
-lodash._baseassign@^3.0.0:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e"
- dependencies:
- lodash._basecopy "^3.0.0"
- lodash.keys "^3.0.0"
-
-lodash._basecopy@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36"
-
-lodash._basecreate@^3.0.0:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz#1bc661614daa7fc311b7d03bf16806a0213cf821"
-
-lodash._getnative@^3.0.0:
- version "3.9.1"
- resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5"
-
-lodash._isiterateecall@^3.0.0:
- version "3.0.9"
- resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c"
-
-lodash.cond@^4.3.0:
- version "4.5.2"
- resolved "https://registry.yarnpkg.com/lodash.cond/-/lodash.cond-4.5.2.tgz#f471a1da486be60f6ab955d17115523dd1d255d5"
-
-lodash.create@3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/lodash.create/-/lodash.create-3.1.1.tgz#d7f2849f0dbda7e04682bb8cd72ab022461debe7"
- dependencies:
- lodash._baseassign "^3.0.0"
- lodash._basecreate "^3.0.0"
- lodash._isiterateecall "^3.0.0"
-
-lodash.isarguments@^3.0.0:
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a"
-
-lodash.isarray@^3.0.0:
- version "3.0.4"
- resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55"
-
-lodash.keys@^3.0.0:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a"
- dependencies:
- lodash._getnative "^3.0.0"
- lodash.isarguments "^3.0.0"
- lodash.isarray "^3.0.0"
-
-lodash@^4.0.0, lodash@^4.3.0:
- version "4.17.4"
- resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae"
-
-longest@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097"
-
-"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.3:
- version "3.0.3"
- resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774"
- dependencies:
- brace-expansion "^1.0.0"
-
-minimist@0.0.8, minimist@~0.0.1:
- version "0.0.8"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-
-minimist@^1.1.0, minimist@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-
-mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
- dependencies:
- minimist "0.0.8"
-
-mocha@^3.3.0:
- version "3.3.0"
- resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.3.0.tgz#d29b7428d3f52c82e2e65df1ecb7064e1aabbfb5"
- dependencies:
- browser-stdout "1.3.0"
- commander "2.9.0"
- debug "2.6.0"
- diff "3.2.0"
- escape-string-regexp "1.0.5"
- glob "7.1.1"
- growl "1.9.2"
- json3 "3.3.2"
- lodash.create "3.1.1"
- mkdirp "0.5.1"
- supports-color "3.1.2"
-
-ms@0.7.1:
- version "0.7.1"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098"
-
-ms@0.7.2:
- version "0.7.2"
- resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765"
-
-mute-stream@0.0.5:
- version "0.0.5"
- resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0"
-
-natural-compare@^1.4.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-
-nopt@3.x:
- version "3.0.6"
- resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9"
- dependencies:
- abbrev "1"
-
-number-is-nan@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-
-object-assign@^4.0.1, object-assign@^4.1.0:
- version "4.1.1"
- resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-
-object-keys@^1.0.10, object-keys@^1.0.8:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d"
-
-object.assign@^4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.0.4.tgz#b1c9cc044ef1b9fe63606fc141abbb32e14730cc"
- dependencies:
- define-properties "^1.1.2"
- function-bind "^1.1.0"
- object-keys "^1.0.10"
-
-once@1.x, once@^1.3.0:
- version "1.4.0"
- resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
- dependencies:
- wrappy "1"
-
-onetime@^1.0.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-
-optimist@^0.6.1:
- version "0.6.1"
- resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686"
- dependencies:
- minimist "~0.0.1"
- wordwrap "~0.0.2"
-
-optionator@^0.8.1, optionator@^0.8.2:
- version "0.8.2"
- resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64"
- dependencies:
- deep-is "~0.1.3"
- fast-levenshtein "~2.0.4"
- levn "~0.3.0"
- prelude-ls "~1.1.2"
- type-check "~0.3.2"
- wordwrap "~1.0.0"
-
-os-homedir@^1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-
-p-limit@^1.1.0:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc"
-
-p-locate@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
- dependencies:
- p-limit "^1.1.0"
-
-parse-json@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9"
- dependencies:
- error-ex "^1.2.0"
-
-path-exists@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b"
- dependencies:
- pinkie-promise "^2.0.0"
-
-path-exists@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-
-path-is-absolute@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-
-path-is-inside@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-
-pify@^2.0.0:
- version "2.3.0"
- resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-
-pinkie-promise@^2.0.0:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
- dependencies:
- pinkie "^2.0.0"
-
-pinkie@^2.0.0:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-
-pkg-conf@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pkg-conf/-/pkg-conf-2.0.0.tgz#071c87650403bccfb9c627f58751bfe47c067279"
- dependencies:
- find-up "^2.0.0"
- load-json-file "^2.0.0"
-
-pkg-config@^1.1.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/pkg-config/-/pkg-config-1.1.1.tgz#557ef22d73da3c8837107766c52eadabde298fe4"
- dependencies:
- debug-log "^1.0.0"
- find-root "^1.0.0"
- xtend "^4.0.1"
-
-pkg-dir@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4"
- dependencies:
- find-up "^1.0.0"
-
-pkg-up@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-1.0.0.tgz#3e08fb461525c4421624a33b9f7e6d0af5b05a26"
- dependencies:
- find-up "^1.0.0"
-
-pluralize@^1.2.1:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45"
-
-prelude-ls@~1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
-
-process-nextick-args@~1.0.6:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3"
-
-progress@^1.1.8:
- version "1.1.8"
- resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be"
-
-rc@^1.1.6:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95"
- dependencies:
- deep-extend "~0.4.0"
- ini "~1.3.0"
- minimist "^1.2.0"
- strip-json-comments "~2.0.1"
-
-readable-stream@^2.2.2:
- version "2.2.9"
- resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.9.tgz#cf78ec6f4a6d1eb43d26488cac97f042e74b7fc8"
- dependencies:
- buffer-shims "~1.0.0"
- core-util-is "~1.0.0"
- inherits "~2.0.1"
- isarray "~1.0.0"
- process-nextick-args "~1.0.6"
- string_decoder "~1.0.0"
- util-deprecate "~1.0.1"
-
-readline2@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- mute-stream "0.0.5"
-
-rechoir@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384"
- dependencies:
- resolve "^1.1.6"
-
-repeat-string@^1.5.2:
- version "1.6.1"
- resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-
-require-uncached@^1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3"
- dependencies:
- caller-path "^0.1.0"
- resolve-from "^1.0.0"
-
-resolve-from@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
-
-resolve@1.1.x, resolve@^1.1.6, resolve@^1.1.7:
- version "1.1.7"
- resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
-
-restore-cursor@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
- dependencies:
- exit-hook "^1.0.0"
- onetime "^1.0.0"
-
-right-align@^0.1.1:
- version "0.1.3"
- resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef"
- dependencies:
- align-text "^0.1.1"
-
-rimraf@^2.2.8:
- version "2.6.1"
- resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d"
- dependencies:
- glob "^7.0.5"
-
-run-async@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389"
- dependencies:
- once "^1.3.0"
-
-run-parallel@^1.1.2:
- version "1.1.6"
- resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.6.tgz#29003c9a2163e01e2d2dfc90575f2c6c1d61a039"
-
-rx-lite@^3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102"
-
-safe-buffer@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7"
-
-semver@5.3.0:
- version "5.3.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
-
-shelljs@^0.7.5:
- version "0.7.7"
- resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.7.tgz#b2f5c77ef97148f4b4f6e22682e10bba8667cff1"
- dependencies:
- glob "^7.0.0"
- interpret "^1.0.0"
- rechoir "^0.6.2"
-
-slice-ansi@0.0.4:
- version "0.0.4"
- resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35"
-
-source-map@^0.4.4:
- version "0.4.4"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.2.0.tgz#dab73fbcfc2ba819b4de03bd6f6eaa48164b3f9d"
- dependencies:
- amdefine ">=0.0.4"
-
-source-map@~0.5.1:
- version "0.5.6"
- resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-
-sprintf-js@~1.0.2:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-
-standard-engine@~7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/standard-engine/-/standard-engine-7.0.0.tgz#ebb77b9c8fc2c8165ffa353bd91ba0dff41af690"
- dependencies:
- deglob "^2.1.0"
- get-stdin "^5.0.1"
- minimist "^1.1.0"
- pkg-conf "^2.0.0"
-
-standard@^10.0.2:
- version "10.0.2"
- resolved "https://registry.yarnpkg.com/standard/-/standard-10.0.2.tgz#974c1c53cc865b075a4b576e78441e1695daaf7b"
- dependencies:
- eslint "~3.19.0"
- eslint-config-standard "10.2.1"
- eslint-config-standard-jsx "4.0.1"
- eslint-plugin-import "~2.2.0"
- eslint-plugin-node "~4.2.2"
- eslint-plugin-promise "~3.5.0"
- eslint-plugin-react "~6.10.0"
- eslint-plugin-standard "~3.0.1"
- standard-engine "~7.0.0"
-
-string-width@^1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
- dependencies:
- code-point-at "^1.0.0"
- is-fullwidth-code-point "^1.0.0"
- strip-ansi "^3.0.0"
-
-string-width@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.0.0.tgz#635c5436cc72a6e0c387ceca278d4e2eec52687e"
- dependencies:
- is-fullwidth-code-point "^2.0.0"
- strip-ansi "^3.0.0"
-
-string_decoder@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.0.tgz#f06f41157b664d86069f84bdbdc9b0d8ab281667"
- dependencies:
- buffer-shims "~1.0.0"
-
-strip-ansi@^3.0.0:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
- dependencies:
- ansi-regex "^2.0.0"
-
-strip-bom@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
-
-strip-json-comments@~2.0.1:
- version "2.0.1"
- resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-
-supports-color@3.1.2:
- version "3.1.2"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5"
- dependencies:
- has-flag "^1.0.0"
-
-supports-color@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-
-supports-color@^3.1.0:
- version "3.2.3"
- resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6"
- dependencies:
- has-flag "^1.0.0"
-
-table@^3.7.8:
- version "3.8.3"
- resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f"
- dependencies:
- ajv "^4.7.0"
- ajv-keywords "^1.0.0"
- chalk "^1.1.1"
- lodash "^4.0.0"
- slice-ansi "0.0.4"
- string-width "^2.0.0"
-
-text-table@~0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-
-through@^2.3.6:
- version "2.3.8"
- resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-
-tryit@^1.0.1:
- version "1.0.3"
- resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb"
-
-type-check@~0.3.2:
- version "0.3.2"
- resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72"
- dependencies:
- prelude-ls "~1.1.2"
-
-typedarray@^0.0.6:
- version "0.0.6"
- resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-
-uglify-js@^2.6:
- version "2.8.22"
- resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.22.tgz#d54934778a8da14903fa29a326fb24c0ab51a1a0"
- dependencies:
- source-map "~0.5.1"
- yargs "~3.10.0"
- optionalDependencies:
- uglify-to-browserify "~1.0.0"
-
-uglify-to-browserify@~1.0.0:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7"
-
-uniq@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
-
-user-home@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f"
- dependencies:
- os-homedir "^1.0.0"
-
-util-deprecate@~1.0.1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-
-which@^1.1.1:
- version "1.2.14"
- resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5"
- dependencies:
- isexe "^2.0.0"
-
-window-size@0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d"
-
-wordwrap@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f"
-
-wordwrap@^1.0.0, wordwrap@~1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb"
-
-wordwrap@~0.0.2:
- version "0.0.3"
- resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107"
-
-wrappy@1:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-
-write@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757"
- dependencies:
- mkdirp "^0.5.1"
-
-xtend@^4.0.0, xtend@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
-
-yargs@~3.10.0:
- version "3.10.0"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1"
- dependencies:
- camelcase "^1.0.2"
- cliui "^2.1.0"
- decamelize "^1.0.0"
- window-size "0.1.0"
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore
deleted file mode 100644
index 13abef4f58..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/.npmignore
+++ /dev/null
@@ -1,3 +0,0 @@
-node_modules
-node_modules/*
-npm_debug.log
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.APACHE2 b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.APACHE2
deleted file mode 100644
index 6366c04716..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD
deleted file mode 100644
index c6f2e5490c..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.BSD
+++ /dev/null
@@ -1,26 +0,0 @@
-Copyright (c) 2013, Dominic Tarr
-All rights reserved.
-
-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 OWNER 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.
-
-The views and conclusions contained in the software and documentation are those
-of the authors and should not be interpreted as representing official policies,
-either expressed or implied, of the FreeBSD Project.
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.MIT b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/LICENSE.MIT
deleted file mode 100644
index 49e7da41fe..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md
deleted file mode 100644
index b7f77d5660..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/README.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# rc
-
-The non-configurable configuration loader for lazy people.
-
-## Usage
-
-The only option is to pass rc the name of your app, and your default configuration.
-
-```javascript
-var conf = require('rc')(appname, {
- //defaults go here.
- port: 2468,
-
- //defaults which are objects will be merged, not replaced
- views: {
- engine: 'jade'
- }
-});
-```
-
-`rc` will return your configuration options merged with the defaults you specify.
-If you pass in a predefined defaults object, it will be mutated:
-
-```javascript
-var conf = {};
-require('rc')(appname, conf);
-```
-
-If `rc` finds any config files for your app, the returned config object will have
-a `configs` array containing their paths:
-
-```javascript
-var appCfg = require('rc')(appname, conf);
-appCfg.configs[0] // /etc/appnamerc
-appCfg.configs[1] // /home/dominictarr/.config/appname
-appCfg.config // same as appCfg.configs[appCfg.configs.length - 1]
-```
-
-## Standards
-
-Given your application name (`appname`), rc will look in all the obvious places for configuration.
-
- * command line arguments (parsed by minimist)
- * environment variables prefixed with `${appname}_`
- * or use "\_\_" to indicate nested properties <br/> _(e.g. `appname_foo__bar__baz` => `foo.bar.baz`)_
- * if you passed an option `--config file` then from that file
- * a local `.${appname}rc` or the first found looking in `./ ../ ../../ ../../../` etc.
- * `$HOME/.${appname}rc`
- * `$HOME/.${appname}/config`
- * `$HOME/.config/${appname}`
- * `$HOME/.config/${appname}/config`
- * `/etc/${appname}rc`
- * `/etc/${appname}/config`
- * the defaults object you passed in.
-
-All configuration sources that were found will be flattened into one object,
-so that sources **earlier** in this list override later ones.
-
-
-## Configuration File Formats
-
-Configuration files (e.g. `.appnamerc`) may be in either [json](http://json.org/example) or [ini](http://en.wikipedia.org/wiki/INI_file) format. The example configurations below are equivalent:
-
-
-#### Formatted as `ini`
-
-```
-; You can include comments in `ini` format if you want.
-
-dependsOn=0.10.0
-
-
-; `rc` has built-in support for ini sections, see?
-
-[commands]
- www = ./commands/www
- console = ./commands/repl
-
-
-; You can even do nested sections
-
-[generators.options]
- engine = ejs
-
-[generators.modules]
- new = generate-new
- engine = generate-backend
-
-```
-
-#### Formatted as `json`
-
-```javascript
-{
- // You can even comment your JSON, if you want
- "dependsOn": "0.10.0",
- "commands": {
- "www": "./commands/www",
- "console": "./commands/repl"
- },
- "generators": {
- "options": {
- "engine": "ejs"
- },
- "modules": {
- "new": "generate-new",
- "backend": "generate-backend"
- }
- }
-}
-```
-
-Comments are stripped from JSON config via [strip-json-comments](https://github.com/sindresorhus/strip-json-comments).
-
-> Since ini, and env variables do not have a standard for types, your application needs be prepared for strings.
-
-
-
-## Advanced Usage
-
-#### Pass in your own `argv`
-
-You may pass in your own `argv` as the third argument to `rc`. This is in case you want to [use your own command-line opts parser](https://github.com/dominictarr/rc/pull/12).
-
-```javascript
-require('rc')(appname, defaults, customArgvParser);
-```
-
-## Pass in your own parser
-
-If you have a special need to use a non-standard parser,
-you can do so by passing in the parser as the 4th argument.
-(leave the 3rd as null to get the default args parser)
-
-```javascript
-require('rc')(appname, defaults, null, parser);
-```
-
-This may also be used to force a more strict format,
-such as strict, valid JSON only.
-
-## Note on Performance
-
-`rc` is running `fs.statSync`-- so make sure you don't use it in a hot code path (e.g. a request handler)
-
-
-## License
-
-Multi-licensed under the two-clause BSD License, MIT License, or Apache License, version 2.0
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js
deleted file mode 100644
index 9ea1a3e395..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/browser.js
+++ /dev/null
@@ -1,7 +0,0 @@
-
-// when this is loaded into the browser,
-// just use the defaults...
-
-module.exports = function (name, defaults) {
- return defaults
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js
deleted file mode 100755
index 6f8f1139d7..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/index.js
+++ /dev/null
@@ -1,60 +0,0 @@
-#! /usr/bin/env node
-var cc = require('./lib/utils')
-var join = require('path').join
-var deepExtend = require('deep-extend')
-var etc = '/etc'
-var win = process.platform === "win32"
-var home = win
- ? process.env.USERPROFILE
- : process.env.HOME
-
-module.exports = function (name, defaults, argv, parse) {
- if('string' !== typeof name)
- throw new Error('rc(name): name *must* be string')
- if(!argv)
- argv = require('minimist')(process.argv.slice(2))
- defaults = (
- 'string' === typeof defaults
- ? cc.json(defaults) : defaults
- ) || {}
-
- parse = parse || cc.parse
-
- var env = cc.env(name + '_')
-
- var configs = [defaults]
- var configFiles = []
- function addConfigFile (file) {
- if (configFiles.indexOf(file) >= 0) return
- var fileConfig = cc.file(file)
- if (fileConfig) {
- configs.push(parse(fileConfig))
- configFiles.push(file)
- }
- }
-
- // which files do we look at?
- if (!win)
- [join(etc, name, 'config'),
- join(etc, name + 'rc')].forEach(addConfigFile)
- if (home)
- [join(home, '.config', name, 'config'),
- join(home, '.config', name),
- join(home, '.' + name, 'config'),
- join(home, '.' + name + 'rc')].forEach(addConfigFile)
- addConfigFile(cc.find('.'+name+'rc'))
- if (env.config) addConfigFile(env.config)
- if (argv.config) addConfigFile(argv.config)
-
- return deepExtend.apply(null, configs.concat([
- env,
- argv,
- configFiles.length ? {configs: configFiles, config: configFiles[configFiles.length - 1]} : undefined,
- ]))
-}
-
-if(!module.parent) {
- console.log(
- JSON.stringify(module.exports(process.argv[2]), false, 2)
- )
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js
deleted file mode 100644
index 52c201f7e1..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/lib/utils.js
+++ /dev/null
@@ -1,102 +0,0 @@
-'use strict';
-var fs = require('fs')
-var ini = require('ini')
-var path = require('path')
-var stripJsonComments = require('strip-json-comments')
-
-var parse = exports.parse = function (content) {
-
- //if it ends in .json or starts with { then it must be json.
- //must be done this way, because ini accepts everything.
- //can't just try and parse it and let it throw if it's not ini.
- //everything is ini. even json with a syntax error.
-
- if(/^\s*{/.test(content))
- return JSON.parse(stripJsonComments(content))
- return ini.parse(content)
-
-}
-
-var file = exports.file = function () {
- var args = [].slice.call(arguments).filter(function (arg) { return arg != null })
-
- //path.join breaks if it's a not a string, so just skip this.
- for(var i in args)
- if('string' !== typeof args[i])
- return
-
- var file = path.join.apply(null, args)
- var content
- try {
- return fs.readFileSync(file,'utf-8')
- } catch (err) {
- return
- }
-}
-
-var json = exports.json = function () {
- var content = file.apply(null, arguments)
- return content ? parse(content) : null
-}
-
-var env = exports.env = function (prefix, env) {
- env = env || process.env
- var obj = {}
- var l = prefix.length
- for(var k in env) {
- if(k.toLowerCase().indexOf(prefix.toLowerCase()) === 0) {
-
- var keypath = k.substring(l).split('__')
-
- // Trim empty strings from keypath array
- var _emptyStringIndex
- while ((_emptyStringIndex=keypath.indexOf('')) > -1) {
- keypath.splice(_emptyStringIndex, 1)
- }
-
- var cursor = obj
- keypath.forEach(function _buildSubObj(_subkey,i){
-
- // (check for _subkey first so we ignore empty strings)
- // (check for cursor to avoid assignment to primitive objects)
- if (!_subkey || typeof cursor !== 'object')
- return
-
- // If this is the last key, just stuff the value in there
- // Assigns actual value from env variable to final key
- // (unless it's just an empty string- in that case use the last valid key)
- if (i === keypath.length-1)
- cursor[_subkey] = env[k]
-
-
- // Build sub-object if nothing already exists at the keypath
- if (cursor[_subkey] === undefined)
- cursor[_subkey] = {}
-
- // Increment cursor used to track the object at the current depth
- cursor = cursor[_subkey]
-
- })
-
- }
-
- }
-
- return obj
-}
-
-var find = exports.find = function () {
- var rel = path.join.apply(null, [].slice.call(arguments))
-
- function find(start, rel) {
- var file = path.join(start, rel)
- try {
- fs.statSync(file)
- return file
- } catch (err) {
- if(path.dirname(start) !== start) // root
- return find(path.dirname(start), rel)
- }
- }
- return find(process.cwd(), rel)
-}
diff --git a/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 b/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
deleted file mode 100644
index f3efe0b222..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-Changelog
-=========
-
-v0.4.1
-------
-
-- Removed test code from <b>npm</b> package
- ([see pull request #21](https://github.com/unclechu/node-deep-extend/pull/21));
-- Increased minimal version of Node from 0.4.0 to 0.12.0
- (because can't run tests on lesser version anyway).
-
-v0.4.0
-------
-
-Broken backward compatibility with v0.3.x
-
-- Fixed bug with extending arrays instead of cloning;
-- Deep cloning for arrays;
-- Check for own property;
-- Fixed some documentation issues;
-- Strict JS mode.
diff --git a/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 b/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
deleted file mode 100644
index acc4662ea4..0000000000
--- a/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
+++ /dev/null
@@ -1,20 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2013-2015, Viacheslav Lotsmanov
-
-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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/deep-extend/README.md b/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
deleted file mode 100644
index 70022248d0..0000000000
--- a/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
+++ /dev/null
@@ -1,90 +0,0 @@
-Deep Extend
-===========
-
-Recursive object extending.
-
-[![NPM](https://nodei.co/npm/deep-extend.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/deep-extend/)
-[![NPM](https://nodei.co/npm-dl/deep-extend.png?height=3)](https://nodei.co/npm/deep-extend/)
-
-Install
--------
-
-```bash
-$ npm install deep-extend
-```
-
-Usage
------
-
-```javascript
-var deepExtend = require('deep-extend');
-var obj1 = {
- a: 1,
- b: 2,
- d: {
- a: 1,
- b: [],
- c: { test1: 123, test2: 321 }
- },
- f: 5,
- g: 123,
- i: 321,
- j: [1, 2]
-};
-var obj2 = {
- b: 3,
- c: 5,
- d: {
- b: { first: 'one', second: 'two' },
- c: { test2: 222 }
- },
- e: { one: 1, two: 2 },
- f: [],
- g: (void 0),
- h: /abc/g,
- i: null,
- j: [3, 4]
-};
-
-deepExtend(obj1, obj2);
-
-console.log(obj1);
-/*
-{ a: 1,
- b: 3,
- d:
- { a: 1,
- b: { first: 'one', second: 'two' },
- c: { test1: 123, test2: 222 } },
- f: [],
- g: undefined,
- c: 5,
- e: { one: 1, two: 2 },
- h: /abc/g,
- i: null,
- j: [3, 4] }
-*/
-```
-
-Unit testing
-------------
-
-```bash
-$ npm test
-```
-
-Changelog
----------
-
-[CHANGELOG.md](./CHANGELOG.md)
-
-Any issues?
------------
-
-Please, report about issues
-[here](https://github.com/unclechu/node-deep-extend/issues).
-
-License
--------
-
-[MIT](./LICENSE)
diff --git a/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 b/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
deleted file mode 100644
index 762d81e954..0000000000
--- a/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
+++ /dev/null
@@ -1 +0,0 @@
-module.exports = require('./lib/deep-extend');
diff --git a/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 b/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
deleted file mode 100644
index 08f70ed763..0000000000
--- a/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
+++ /dev/null
@@ -1,144 +0,0 @@
-/*!
- * @description Recursive object extending
- * @author Viacheslav Lotsmanov <lotsmanov89@gmail.com>
- * @license MIT
- *
- * The MIT License (MIT)
- *
- * Copyright (c) 2013-2015 Viacheslav Lotsmanov
- *
- * 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';
-
-function isSpecificValue(val) {
- return (
- val instanceof Buffer
- || val instanceof Date
- || val instanceof RegExp
- ) ? true : false;
-}
-
-function cloneSpecificValue(val) {
- if (val instanceof Buffer) {
- var x = new Buffer(val.length);
- val.copy(x);
- return x;
- } else if (val instanceof Date) {
- return new Date(val.getTime());
- } else if (val instanceof RegExp) {
- return new RegExp(val);
- } else {
- throw new Error('Unexpected situation');
- }
-}
-
-/**
- * Recursive cloning array.
- */
-function deepCloneArray(arr) {
- var clone = [];
- arr.forEach(function (item, index) {
- if (typeof item === 'object' && item !== null) {
- if (Array.isArray(item)) {
- clone[index] = deepCloneArray(item);
- } else if (isSpecificValue(item)) {
- clone[index] = cloneSpecificValue(item);
- } else {
- clone[index] = deepExtend({}, item);
- }
- } else {
- clone[index] = item;
- }
- });
- return clone;
-}
-
-/**
- * Extening object that entered in first argument.
- *
- * Returns extended object or false if have no target object or incorrect type.
- *
- * If you wish to clone source object (without modify it), just use empty new
- * object as first argument, like this:
- * deepExtend({}, yourObj_1, [yourObj_N]);
- */
-var deepExtend = module.exports = function (/*obj_1, [obj_2], [obj_N]*/) {
- if (arguments.length < 1 || typeof arguments[0] !== 'object') {
- return false;
- }
-
- if (arguments.length < 2) {
- return arguments[0];
- }
-
- var target = arguments[0];
-
- // convert arguments to array and cut off target object
- var args = Array.prototype.slice.call(arguments, 1);
-
- var val, src, clone;
-
- args.forEach(function (obj) {
- // skip argument if isn't an object, is null, or is an array
- if (typeof obj !== 'object' || obj === null || Array.isArray(obj)) {
- return;
- }
-
- Object.keys(obj).forEach(function (key) {
- src = target[key]; // source value
- val = obj[key]; // new value
-
- // recursion prevention
- if (val === target) {
- return;
-
- /**
- * if new value isn't object then just overwrite by new value
- * instead of extending.
- */
- } else if (typeof val !== 'object' || val === null) {
- target[key] = val;
- return;
-
- // just clone arrays (and recursive clone objects inside)
- } else if (Array.isArray(val)) {
- target[key] = deepCloneArray(val);
- return;
-
- // custom cloning and overwrite for specific objects
- } else if (isSpecificValue(val)) {
- target[key] = cloneSpecificValue(val);
- return;
-
- // overwrite by new value if source isn't object or array
- } else if (typeof src !== 'object' || src === null || Array.isArray(src)) {
- target[key] = deepExtend({}, val);
- return;
-
- // source value and new value is objects both, extending...
- } else {
- target[key] = deepExtend(src, val);
- return;
- }
- });
- });
-
- return target;
-}
diff --git a/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 b/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
deleted file mode 100644
index 955e6ef513..0000000000
--- a/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
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "_from": "deep-extend@~0.4.0",
- "_id": "deep-extend@0.4.2",
- "_inBundle": false,
- "_integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=",
- "_location": "/update-notifier/latest-version/package-json/registry-url/rc/deep-extend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "deep-extend@~0.4.0",
- "name": "deep-extend",
- "escapedName": "deep-extend",
- "rawSpec": "~0.4.0",
- "saveSpec": null,
- "fetchSpec": "~0.4.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-url/rc"
- ],
- "_resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz",
- "_shasum": "48b699c27e334bf89f10892be432f6e4c7d34a7f",
- "_spec": "deep-extend@~0.4.0",
- "_where": "/Users/rebecca/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc",
- "author": {
- "name": "Viacheslav Lotsmanov",
- "email": "lotsmanov89@gmail.com"
- },
- "bugs": {
- "url": "https://github.com/unclechu/node-deep-extend/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "Romain Prieto",
- "url": "https://github.com/rprieto"
- },
- {
- "name": "Max Maximov",
- "url": "https://github.com/maxmaximov"
- },
- {
- "name": "Marshall Bowers",
- "url": "https://github.com/maxdeviant"
- }
- ],
- "deprecated": false,
- "description": "Recursive object extending",
- "devDependencies": {
- "mocha": "^2.2.1",
- "should": "^5.2.0"
- },
- "directories": {
- "lib": "./lib/",
- "test": "./test/"
- },
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.12.0"
- },
- "files": [
- "lib/deep-extend.js",
- "index.js"
- ],
- "homepage": "https://github.com/unclechu/node-deep-extend",
- "keywords": [
- "deep-extend",
- "extend",
- "deep",
- "recursive",
- "xtend",
- "clone",
- "merge",
- "json"
- ],
- "license": "MIT",
- "licenses": [
- {
- "type": "MIT",
- "url": "https://raw.githubusercontent.com/unclechu/node-deep-extend/master/LICENSE"
- }
- ],
- "main": "lib/deep-extend.js",
- "name": "deep-extend",
- "repository": {
- "type": "git",
- "url": "git://github.com/unclechu/node-deep-extend.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "0.4.2"
-}
diff --git a/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 b/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
deleted file mode 100644
index 74c57bf15e..0000000000
--- a/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
+++ /dev/null
@@ -1,8 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
- - "0.12"
- - "iojs"
-before_install:
- - npm install -g npm@~1.4.6
diff --git a/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 b/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
deleted file mode 100644
index ee27ba4b44..0000000000
--- a/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
+++ /dev/null
@@ -1,18 +0,0 @@
-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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/example/parse.js b/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
deleted file mode 100644
index abff3e8ee8..0000000000
--- a/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
+++ /dev/null
@@ -1,2 +0,0 @@
-var argv = require('../')(process.argv.slice(2));
-console.dir(argv);
diff --git a/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 b/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
deleted file mode 100644
index e06783fb1c..0000000000
--- a/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
+++ /dev/null
@@ -1,235 +0,0 @@
-module.exports = function (args, opts) {
- if (!opts) opts = {};
-
- var flags = { bools : {}, strings : {}, unknownFn: null };
-
- if (typeof opts['unknown'] === 'function') {
- flags.unknownFn = opts['unknown'];
- }
-
- if (typeof opts['boolean'] === 'boolean' && opts['boolean']) {
- flags.allBools = true;
- } else {
- [].concat(opts['boolean']).filter(Boolean).forEach(function (key) {
- flags.bools[key] = true;
- });
- }
-
- var aliases = {};
- Object.keys(opts.alias || {}).forEach(function (key) {
- aliases[key] = [].concat(opts.alias[key]);
- aliases[key].forEach(function (x) {
- aliases[x] = [key].concat(aliases[key].filter(function (y) {
- return x !== y;
- }));
- });
- });
-
- [].concat(opts.string).filter(Boolean).forEach(function (key) {
- flags.strings[key] = true;
- if (aliases[key]) {
- flags.strings[aliases[key]] = true;
- }
- });
-
- var defaults = opts['default'] || {};
-
- var argv = { _ : [] };
- Object.keys(flags.bools).forEach(function (key) {
- setArg(key, defaults[key] === undefined ? false : defaults[key]);
- });
-
- var notFlags = [];
-
- if (args.indexOf('--') !== -1) {
- notFlags = args.slice(args.indexOf('--')+1);
- args = args.slice(0, args.indexOf('--'));
- }
-
- function argDefined(key, arg) {
- return (flags.allBools && /^--[^=]+$/.test(arg)) ||
- flags.strings[key] || flags.bools[key] || aliases[key];
- }
-
- function setArg (key, val, arg) {
- if (arg && flags.unknownFn && !argDefined(key, arg)) {
- if (flags.unknownFn(arg) === false) return;
- }
-
- var value = !flags.strings[key] && isNumber(val)
- ? Number(val) : val
- ;
- setKey(argv, key.split('.'), value);
-
- (aliases[key] || []).forEach(function (x) {
- setKey(argv, x.split('.'), value);
- });
- }
-
- function setKey (obj, keys, value) {
- var o = obj;
- keys.slice(0,-1).forEach(function (key) {
- if (o[key] === undefined) o[key] = {};
- o = o[key];
- });
-
- var key = keys[keys.length - 1];
- if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') {
- o[key] = value;
- }
- else if (Array.isArray(o[key])) {
- o[key].push(value);
- }
- else {
- o[key] = [ o[key], value ];
- }
- }
-
- function aliasIsBoolean(key) {
- return aliases[key].some(function (x) {
- return flags.bools[x];
- });
- }
-
- for (var i = 0; i < args.length; i++) {
- var arg = args[i];
-
- if (/^--.+=/.test(arg)) {
- // Using [\s\S] instead of . because js doesn't support the
- // 'dotall' regex modifier. See:
- // http://stackoverflow.com/a/1068308/13216
- var m = arg.match(/^--([^=]+)=([\s\S]*)$/);
- var key = m[1];
- var value = m[2];
- if (flags.bools[key]) {
- value = value !== 'false';
- }
- setArg(key, value, arg);
- }
- else if (/^--no-.+/.test(arg)) {
- var key = arg.match(/^--no-(.+)/)[1];
- setArg(key, false, arg);
- }
- else if (/^--.+/.test(arg)) {
- var key = arg.match(/^--(.+)/)[1];
- var next = args[i + 1];
- if (next !== undefined && !/^-/.test(next)
- && !flags.bools[key]
- && !flags.allBools
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
- setArg(key, next, arg);
- i++;
- }
- else if (/^(true|false)$/.test(next)) {
- setArg(key, next === 'true', arg);
- i++;
- }
- else {
- setArg(key, flags.strings[key] ? '' : true, arg);
- }
- }
- else if (/^-[^-]+/.test(arg)) {
- var letters = arg.slice(1,-1).split('');
-
- var broken = false;
- for (var j = 0; j < letters.length; j++) {
- var next = arg.slice(j+2);
-
- if (next === '-') {
- setArg(letters[j], next, arg)
- continue;
- }
-
- if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) {
- setArg(letters[j], next.split('=')[1], arg);
- broken = true;
- break;
- }
-
- if (/[A-Za-z]/.test(letters[j])
- && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
- setArg(letters[j], next, arg);
- broken = true;
- break;
- }
-
- if (letters[j+1] && letters[j+1].match(/\W/)) {
- setArg(letters[j], arg.slice(j+2), arg);
- broken = true;
- break;
- }
- else {
- setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg);
- }
- }
-
- var key = arg.slice(-1)[0];
- if (!broken && key !== '-') {
- if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1])
- && !flags.bools[key]
- && (aliases[key] ? !aliasIsBoolean(key) : true)) {
- setArg(key, args[i+1], arg);
- i++;
- }
- else if (args[i+1] && /true|false/.test(args[i+1])) {
- setArg(key, args[i+1] === 'true', arg);
- i++;
- }
- else {
- setArg(key, flags.strings[key] ? '' : true, arg);
- }
- }
- }
- else {
- if (!flags.unknownFn || flags.unknownFn(arg) !== false) {
- argv._.push(
- flags.strings['_'] || !isNumber(arg) ? arg : Number(arg)
- );
- }
- if (opts.stopEarly) {
- argv._.push.apply(argv._, args.slice(i + 1));
- break;
- }
- }
- }
-
- Object.keys(defaults).forEach(function (key) {
- if (!hasKey(argv, key.split('.'))) {
- setKey(argv, key.split('.'), defaults[key]);
-
- (aliases[key] || []).forEach(function (x) {
- setKey(argv, x.split('.'), defaults[key]);
- });
- }
- });
-
- if (opts['--']) {
- argv['--'] = new Array();
- notFlags.forEach(function(key) {
- argv['--'].push(key);
- });
- }
- else {
- notFlags.forEach(function(key) {
- argv._.push(key);
- });
- }
-
- return argv;
-};
-
-function hasKey (obj, keys) {
- var o = obj;
- keys.slice(0,-1).forEach(function (key) {
- o = (o[key] || {});
- });
-
- var key = keys[keys.length - 1];
- return key in o;
-}
-
-function isNumber (x) {
- if (typeof x === 'number') return true;
- if (/^0x[0-9a-f]+$/i.test(x)) return true;
- return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x);
-}
diff --git a/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 b/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
deleted file mode 100644
index 341e943217..0000000000
--- a/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
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "minimist@^1.2.0",
- "_id": "minimist@1.2.0",
- "_integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "_location": "/update-notifier/latest-version/package-json/registry-url/rc/minimist",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "minimist@^1.2.0",
- "name": "minimist",
- "escapedName": "minimist",
- "rawSpec": "^1.2.0",
- "saveSpec": null,
- "fetchSpec": "^1.2.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-url/rc"
- ],
- "_resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "_shasum": "a35008b20f41383eec1fb914f4cd5df79a264284",
- "_shrinkwrap": null,
- "_spec": "minimist@^1.2.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc",
- "author": {
- "name": "James Halliday",
- "email": "mail@substack.net",
- "url": "http://substack.net"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/substack/minimist/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "parse argument options",
- "devDependencies": {
- "covert": "^1.0.0",
- "tap": "~0.4.0",
- "tape": "^3.5.0"
- },
- "homepage": "https://github.com/substack/minimist",
- "keywords": [
- "argv",
- "getopt",
- "parser",
- "optimist"
- ],
- "license": "MIT",
- "main": "index.js",
- "name": "minimist",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git://github.com/substack/minimist.git"
- },
- "scripts": {
- "coverage": "covert test/*.js",
- "test": "tap test/*.js"
- },
- "testling": {
- "files": "test/*.js",
- "browsers": [
- "ie/6..latest",
- "ff/5",
- "firefox/latest",
- "chrome/10",
- "chrome/latest",
- "safari/5.1",
- "safari/latest",
- "opera/12"
- ]
- },
- "version": "1.2.0"
-}
diff --git a/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 b/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
deleted file mode 100644
index 30a74cf8c1..0000000000
--- a/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
+++ /dev/null
@@ -1,91 +0,0 @@
-# minimist
-
-parse argument options
-
-This module is the guts of optimist's argument parser without all the
-fanciful decoration.
-
-[![browser support](https://ci.testling.com/substack/minimist.png)](http://ci.testling.com/substack/minimist)
-
-[![build status](https://secure.travis-ci.org/substack/minimist.png)](http://travis-ci.org/substack/minimist)
-
-# example
-
-``` js
-var argv = require('minimist')(process.argv.slice(2));
-console.dir(argv);
-```
-
-```
-$ node example/parse.js -a beep -b boop
-{ _: [], a: 'beep', b: 'boop' }
-```
-
-```
-$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz
-{ _: [ 'foo', 'bar', 'baz' ],
- x: 3,
- y: 4,
- n: 5,
- a: true,
- b: true,
- c: true,
- beep: 'boop' }
-```
-
-# methods
-
-``` js
-var parseArgs = require('minimist')
-```
-
-## var argv = parseArgs(args, opts={})
-
-Return an argument object `argv` populated with the array arguments from `args`.
-
-`argv._` contains all the arguments that didn't have an option associated with
-them.
-
-Numeric-looking arguments will be returned as numbers unless `opts.string` or
-`opts.boolean` is set for that argument name.
-
-Any arguments after `'--'` will not be parsed and will end up in `argv._`.
-
-options can be:
-
-* `opts.string` - a string or array of strings argument names to always treat as
-strings
-* `opts.boolean` - a boolean, string or array of strings to always treat as
-booleans. if `true` will treat all double hyphenated arguments without equal signs
-as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`)
-* `opts.alias` - an object mapping string names to strings or arrays of string
-argument names to use as aliases
-* `opts.default` - an object mapping string argument names to default values
-* `opts.stopEarly` - when true, populate `argv._` with everything after the
-first non-option
-* `opts['--']` - when true, populate `argv._` with everything before the `--`
-and `argv['--']` with everything after the `--`. Here's an example:
-* `opts.unknown` - a function which is invoked with a command line parameter not
-defined in the `opts` configuration object. If the function returns `false`, the
-unknown option is not added to `argv`.
-
-```
-> require('./')('one two three -- four five --six'.split(' '), { '--': true })
-{ _: [ 'one', 'two', 'three' ],
- '--': [ 'four', 'five', '--six' ] }
-```
-
-Note that with `opts['--']` set, parsing for arguments still stops after the
-`--`.
-
-# install
-
-With [npm](https://npmjs.org) do:
-
-```
-npm install minimist
-```
-
-# license
-
-MIT
diff --git a/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 b/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
deleted file mode 100644
index 25df1654bc..0000000000
--- a/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
+++ /dev/null
@@ -1,32 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('flag boolean true (default all --args to boolean)', function (t) {
- var argv = parse(['moo', '--honk', 'cow'], {
- boolean: true
- });
-
- t.deepEqual(argv, {
- honk: true,
- _: ['moo', 'cow']
- });
-
- t.deepEqual(typeof argv.honk, 'boolean');
- t.end();
-});
-
-test('flag boolean true only affects double hyphen arguments without equals signs', function (t) {
- var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], {
- boolean: true
- });
-
- t.deepEqual(argv, {
- honk: true,
- tacos: 'good',
- p: 55,
- _: ['moo', 'cow']
- });
-
- t.deepEqual(typeof argv.honk, 'boolean');
- t.end();
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/bool.js b/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
deleted file mode 100644
index 6e793e4b64..0000000000
--- a/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
+++ /dev/null
@@ -1,166 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('flag boolean default false', function (t) {
- var argv = parse(['moo'], {
- boolean: ['t', 'verbose'],
- default: { verbose: false, t: false }
- });
-
- t.deepEqual(argv, {
- verbose: false,
- t: false,
- _: ['moo']
- });
-
- t.deepEqual(typeof argv.verbose, 'boolean');
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-
-});
-
-test('boolean groups', function (t) {
- var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], {
- boolean: ['x','y','z']
- });
-
- t.deepEqual(argv, {
- x : true,
- y : false,
- z : true,
- _ : [ 'one', 'two', 'three' ]
- });
-
- t.deepEqual(typeof argv.x, 'boolean');
- t.deepEqual(typeof argv.y, 'boolean');
- t.deepEqual(typeof argv.z, 'boolean');
- t.end();
-});
-test('boolean and alias with chainable api', function (t) {
- var aliased = [ '-h', 'derp' ];
- var regular = [ '--herp', 'derp' ];
- var opts = {
- herp: { alias: 'h', boolean: true }
- };
- var aliasedArgv = parse(aliased, {
- boolean: 'herp',
- alias: { h: 'herp' }
- });
- var propertyArgv = parse(regular, {
- boolean: 'herp',
- alias: { h: 'herp' }
- });
- var expected = {
- herp: true,
- h: true,
- '_': [ 'derp' ]
- };
-
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-test('boolean and alias with options hash', function (t) {
- var aliased = [ '-h', 'derp' ];
- var regular = [ '--herp', 'derp' ];
- var opts = {
- alias: { 'h': 'herp' },
- boolean: 'herp'
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
- var expected = {
- herp: true,
- h: true,
- '_': [ 'derp' ]
- };
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-test('boolean and alias array with options hash', function (t) {
- var aliased = [ '-h', 'derp' ];
- var regular = [ '--herp', 'derp' ];
- var alt = [ '--harp', 'derp' ];
- var opts = {
- alias: { 'h': ['herp', 'harp'] },
- boolean: 'h'
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
- var altPropertyArgv = parse(alt, opts);
- var expected = {
- harp: true,
- herp: true,
- h: true,
- '_': [ 'derp' ]
- };
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.same(altPropertyArgv, expected);
- t.end();
-});
-
-test('boolean and alias using explicit true', function (t) {
- var aliased = [ '-h', 'true' ];
- var regular = [ '--herp', 'true' ];
- var opts = {
- alias: { h: 'herp' },
- boolean: 'h'
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
- var expected = {
- herp: true,
- h: true,
- '_': [ ]
- };
-
- t.same(aliasedArgv, expected);
- t.same(propertyArgv, expected);
- t.end();
-});
-
-// regression, see https://github.com/substack/node-optimist/issues/71
-test('boolean and --x=true', function(t) {
- var parsed = parse(['--boool', '--other=true'], {
- boolean: 'boool'
- });
-
- t.same(parsed.boool, true);
- t.same(parsed.other, 'true');
-
- parsed = parse(['--boool', '--other=false'], {
- boolean: 'boool'
- });
-
- t.same(parsed.boool, true);
- t.same(parsed.other, 'false');
- t.end();
-});
-
-test('boolean --boool=true', function (t) {
- var parsed = parse(['--boool=true'], {
- default: {
- boool: false
- },
- boolean: ['boool']
- });
-
- t.same(parsed.boool, true);
- t.end();
-});
-
-test('boolean --boool=false', function (t) {
- var parsed = parse(['--boool=false'], {
- default: {
- boool: true
- },
- boolean: ['boool']
- });
-
- t.same(parsed.boool, false);
- t.end();
-});
diff --git a/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 b/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
deleted file mode 100644
index 5a4fa5be41..0000000000
--- a/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
+++ /dev/null
@@ -1,31 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('-', function (t) {
- t.plan(5);
- t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] });
- t.deepEqual(parse([ '-' ]), { _: [ '-' ] });
- t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] });
- t.deepEqual(
- parse([ '-b', '-' ], { boolean: 'b' }),
- { b: true, _: [ '-' ] }
- );
- t.deepEqual(
- parse([ '-s', '-' ], { string: 's' }),
- { s: '-', _: [] }
- );
-});
-
-test('-a -- b', function (t) {
- t.plan(3);
- t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] });
- t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] });
- t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] });
-});
-
-test('move arguments after the -- into their own `--` array', function(t) {
- t.plan(1);
- t.deepEqual(
- parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }),
- { name: 'John', _: [ 'before' ], '--': [ 'after' ] });
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/default_bool.js b/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
deleted file mode 100644
index 780a311270..0000000000
--- a/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
+++ /dev/null
@@ -1,35 +0,0 @@
-var test = require('tape');
-var parse = require('../');
-
-test('boolean default true', function (t) {
- var argv = parse([], {
- boolean: 'sometrue',
- default: { sometrue: true }
- });
- t.equal(argv.sometrue, true);
- t.end();
-});
-
-test('boolean default false', function (t) {
- var argv = parse([], {
- boolean: 'somefalse',
- default: { somefalse: false }
- });
- t.equal(argv.somefalse, false);
- t.end();
-});
-
-test('boolean default to null', function (t) {
- var argv = parse([], {
- boolean: 'maybe',
- default: { maybe: null }
- });
- t.equal(argv.maybe, null);
- var argv = parse(['--maybe'], {
- boolean: 'maybe',
- default: { maybe: null }
- });
- t.equal(argv.maybe, true);
- t.end();
-
-})
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/dotted.js b/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
deleted file mode 100644
index d8b3e856ec..0000000000
--- a/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
+++ /dev/null
@@ -1,22 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('dotted alias', function (t) {
- var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}});
- t.equal(argv.a.b, 22);
- t.equal(argv.aa.bb, 22);
- t.end();
-});
-
-test('dotted default', function (t) {
- var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}});
- t.equal(argv.a.b, 11);
- t.equal(argv.aa.bb, 11);
- t.end();
-});
-
-test('dotted default with no alias', function (t) {
- var argv = parse('', {default: {'a.b': 11}});
- t.equal(argv.a.b, 11);
- t.end();
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/kv_short.js b/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
deleted file mode 100644
index ae880be466..0000000000
--- a/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
+++ /dev/null
@@ -1,16 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('short -k=v' , function (t) {
- t.plan(1);
-
- var argv = parse([ '-b=123' ]);
- t.deepEqual(argv, { b: 123, _: [] });
-});
-
-test('multi short -k=v' , function (t) {
- t.plan(1);
-
- var argv = parse([ '-a=whatever', '-b=robots' ]);
- t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] });
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/long.js b/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
deleted file mode 100644
index 5d3a1e09d3..0000000000
--- a/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
+++ /dev/null
@@ -1,31 +0,0 @@
-var test = require('tape');
-var parse = require('../');
-
-test('long opts', function (t) {
- t.deepEqual(
- parse([ '--bool' ]),
- { bool : true, _ : [] },
- 'long boolean'
- );
- t.deepEqual(
- parse([ '--pow', 'xixxle' ]),
- { pow : 'xixxle', _ : [] },
- 'long capture sp'
- );
- t.deepEqual(
- parse([ '--pow=xixxle' ]),
- { pow : 'xixxle', _ : [] },
- 'long capture eq'
- );
- t.deepEqual(
- parse([ '--host', 'localhost', '--port', '555' ]),
- { host : 'localhost', port : 555, _ : [] },
- 'long captures sp'
- );
- t.deepEqual(
- parse([ '--host=localhost', '--port=555' ]),
- { host : 'localhost', port : 555, _ : [] },
- 'long captures eq'
- );
- t.end();
-});
diff --git a/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 b/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
deleted file mode 100644
index 2cc77f4d62..0000000000
--- a/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
+++ /dev/null
@@ -1,36 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('nums', function (t) {
- var argv = parse([
- '-x', '1234',
- '-y', '5.67',
- '-z', '1e7',
- '-w', '10f',
- '--hex', '0xdeadbeef',
- '789'
- ]);
- t.deepEqual(argv, {
- x : 1234,
- y : 5.67,
- z : 1e7,
- w : '10f',
- hex : 0xdeadbeef,
- _ : [ 789 ]
- });
- t.deepEqual(typeof argv.x, 'number');
- t.deepEqual(typeof argv.y, 'number');
- t.deepEqual(typeof argv.z, 'number');
- t.deepEqual(typeof argv.w, 'string');
- t.deepEqual(typeof argv.hex, 'number');
- t.deepEqual(typeof argv._[0], 'number');
- t.end();
-});
-
-test('already a number', function (t) {
- var argv = parse([ '-x', 1234, 789 ]);
- t.deepEqual(argv, { x : 1234, _ : [ 789 ] });
- t.deepEqual(typeof argv.x, 'number');
- t.deepEqual(typeof argv._[0], 'number');
- t.end();
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/parse.js b/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
deleted file mode 100644
index 58f24572c4..0000000000
--- a/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
+++ /dev/null
@@ -1,197 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('parse args', function (t) {
- t.deepEqual(
- parse([ '--no-moo' ]),
- { moo : false, _ : [] },
- 'no'
- );
- t.deepEqual(
- parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]),
- { v : ['a','b','c'], _ : [] },
- 'multi'
- );
- t.end();
-});
-
-test('comprehensive', function (t) {
- t.deepEqual(
- parse([
- '--name=meowmers', 'bare', '-cats', 'woo',
- '-h', 'awesome', '--multi=quux',
- '--key', 'value',
- '-b', '--bool', '--no-meep', '--multi=baz',
- '--', '--not-a-flag', 'eek'
- ]),
- {
- c : true,
- a : true,
- t : true,
- s : 'woo',
- h : 'awesome',
- b : true,
- bool : true,
- key : 'value',
- multi : [ 'quux', 'baz' ],
- meep : false,
- name : 'meowmers',
- _ : [ 'bare', '--not-a-flag', 'eek' ]
- }
- );
- t.end();
-});
-
-test('flag boolean', function (t) {
- var argv = parse([ '-t', 'moo' ], { boolean: 't' });
- t.deepEqual(argv, { t : true, _ : [ 'moo' ] });
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-});
-
-test('flag boolean value', function (t) {
- var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], {
- boolean: [ 't', 'verbose' ],
- default: { verbose: true }
- });
-
- t.deepEqual(argv, {
- verbose: false,
- t: true,
- _: ['moo']
- });
-
- t.deepEqual(typeof argv.verbose, 'boolean');
- t.deepEqual(typeof argv.t, 'boolean');
- t.end();
-});
-
-test('newlines in params' , function (t) {
- var args = parse([ '-s', "X\nX" ])
- t.deepEqual(args, { _ : [], s : "X\nX" });
-
- // reproduce in bash:
- // VALUE="new
- // line"
- // node program.js --s="$VALUE"
- args = parse([ "--s=X\nX" ])
- t.deepEqual(args, { _ : [], s : "X\nX" });
- t.end();
-});
-
-test('strings' , function (t) {
- var s = parse([ '-s', '0001234' ], { string: 's' }).s;
- t.equal(s, '0001234');
- t.equal(typeof s, 'string');
-
- var x = parse([ '-x', '56' ], { string: 'x' }).x;
- t.equal(x, '56');
- t.equal(typeof x, 'string');
- t.end();
-});
-
-test('stringArgs', function (t) {
- var s = parse([ ' ', ' ' ], { string: '_' })._;
- t.same(s.length, 2);
- t.same(typeof s[0], 'string');
- t.same(s[0], ' ');
- t.same(typeof s[1], 'string');
- t.same(s[1], ' ');
- t.end();
-});
-
-test('empty strings', function(t) {
- var s = parse([ '-s' ], { string: 's' }).s;
- t.equal(s, '');
- t.equal(typeof s, 'string');
-
- var str = parse([ '--str' ], { string: 'str' }).str;
- t.equal(str, '');
- t.equal(typeof str, 'string');
-
- var letters = parse([ '-art' ], {
- string: [ 'a', 't' ]
- });
-
- t.equal(letters.a, '');
- t.equal(letters.r, true);
- t.equal(letters.t, '');
-
- t.end();
-});
-
-
-test('string and alias', function(t) {
- var x = parse([ '--str', '000123' ], {
- string: 's',
- alias: { s: 'str' }
- });
-
- t.equal(x.str, '000123');
- t.equal(typeof x.str, 'string');
- t.equal(x.s, '000123');
- t.equal(typeof x.s, 'string');
-
- var y = parse([ '-s', '000123' ], {
- string: 'str',
- alias: { str: 's' }
- });
-
- t.equal(y.str, '000123');
- t.equal(typeof y.str, 'string');
- t.equal(y.s, '000123');
- t.equal(typeof y.s, 'string');
- t.end();
-});
-
-test('slashBreak', function (t) {
- t.same(
- parse([ '-I/foo/bar/baz' ]),
- { I : '/foo/bar/baz', _ : [] }
- );
- t.same(
- parse([ '-xyz/foo/bar/baz' ]),
- { x : true, y : true, z : '/foo/bar/baz', _ : [] }
- );
- t.end();
-});
-
-test('alias', function (t) {
- var argv = parse([ '-f', '11', '--zoom', '55' ], {
- alias: { z: 'zoom' }
- });
- t.equal(argv.zoom, 55);
- t.equal(argv.z, argv.zoom);
- t.equal(argv.f, 11);
- t.end();
-});
-
-test('multiAlias', function (t) {
- var argv = parse([ '-f', '11', '--zoom', '55' ], {
- alias: { z: [ 'zm', 'zoom' ] }
- });
- t.equal(argv.zoom, 55);
- t.equal(argv.z, argv.zoom);
- t.equal(argv.z, argv.zm);
- t.equal(argv.f, 11);
- t.end();
-});
-
-test('nested dotted objects', function (t) {
- var argv = parse([
- '--foo.bar', '3', '--foo.baz', '4',
- '--foo.quux.quibble', '5', '--foo.quux.o_O',
- '--beep.boop'
- ]);
-
- t.same(argv.foo, {
- bar : 3,
- baz : 4,
- quux : {
- quibble : 5,
- o_O : true
- }
- });
- t.same(argv.beep, { boop : true });
- t.end();
-});
diff --git a/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 b/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
deleted file mode 100644
index a22248532f..0000000000
--- a/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
+++ /dev/null
@@ -1,9 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('parse with modifier functions' , function (t) {
- t.plan(1);
-
- var argv = parse([ '-b', '123' ], { boolean: 'b' });
- t.deepEqual(argv, { b: true, _: [123] });
-});
diff --git a/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 b/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
deleted file mode 100644
index bdf9fbcb0b..0000000000
--- a/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
+++ /dev/null
@@ -1,15 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('stops parsing on the first non-option when stopEarly is set', function (t) {
- var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], {
- stopEarly: true
- });
-
- t.deepEqual(argv, {
- aaa: 'bbb',
- _: ['ccc', '--ddd']
- });
-
- t.end();
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/unknown.js b/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
deleted file mode 100644
index 462a36bdd7..0000000000
--- a/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
+++ /dev/null
@@ -1,102 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('boolean and alias is not unknown', function (t) {
- var unknown = [];
- function unknownFn(arg) {
- unknown.push(arg);
- return false;
- }
- var aliased = [ '-h', 'true', '--derp', 'true' ];
- var regular = [ '--herp', 'true', '-d', 'true' ];
- var opts = {
- alias: { h: 'herp' },
- boolean: 'h',
- unknown: unknownFn
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
-
- t.same(unknown, ['--derp', '-d']);
- t.end();
-});
-
-test('flag boolean true any double hyphen argument is not unknown', function (t) {
- var unknown = [];
- function unknownFn(arg) {
- unknown.push(arg);
- return false;
- }
- var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], {
- boolean: true,
- unknown: unknownFn
- });
- t.same(unknown, ['--tacos=good', 'cow', '-p']);
- t.same(argv, {
- honk: true,
- _: []
- });
- t.end();
-});
-
-test('string and alias is not unknown', function (t) {
- var unknown = [];
- function unknownFn(arg) {
- unknown.push(arg);
- return false;
- }
- var aliased = [ '-h', 'hello', '--derp', 'goodbye' ];
- var regular = [ '--herp', 'hello', '-d', 'moon' ];
- var opts = {
- alias: { h: 'herp' },
- string: 'h',
- unknown: unknownFn
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
-
- t.same(unknown, ['--derp', '-d']);
- t.end();
-});
-
-test('default and alias is not unknown', function (t) {
- var unknown = [];
- function unknownFn(arg) {
- unknown.push(arg);
- return false;
- }
- var aliased = [ '-h', 'hello' ];
- var regular = [ '--herp', 'hello' ];
- var opts = {
- default: { 'h': 'bar' },
- alias: { 'h': 'herp' },
- unknown: unknownFn
- };
- var aliasedArgv = parse(aliased, opts);
- var propertyArgv = parse(regular, opts);
-
- t.same(unknown, []);
- t.end();
- unknownFn(); // exercise fn for 100% coverage
-});
-
-test('value following -- is not unknown', function (t) {
- var unknown = [];
- function unknownFn(arg) {
- unknown.push(arg);
- return false;
- }
- var aliased = [ '--bad', '--', 'good', 'arg' ];
- var opts = {
- '--': true,
- unknown: unknownFn
- };
- var argv = parse(aliased, opts);
-
- t.same(unknown, ['--bad']);
- t.same(argv, {
- '--': ['good', 'arg'],
- '_': []
- })
- t.end();
-});
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/minimist/test/whitespace.js b/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
deleted file mode 100644
index 8a52a58cec..0000000000
--- a/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
+++ /dev/null
@@ -1,8 +0,0 @@
-var parse = require('../');
-var test = require('tape');
-
-test('whitespace should be whitespace' , function (t) {
- t.plan(1);
- var x = parse([ '-x', '\t' ]).x;
- t.equal(x, '\t');
-});
diff --git a/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 b/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
deleted file mode 100644
index 4e6576e6d3..0000000000
--- a/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
+++ /dev/null
@@ -1,70 +0,0 @@
-'use strict';
-var singleComment = 1;
-var multiComment = 2;
-
-function stripWithoutWhitespace() {
- return '';
-}
-
-function stripWithWhitespace(str, start, end) {
- return str.slice(start, end).replace(/\S/g, ' ');
-}
-
-module.exports = function (str, opts) {
- opts = opts || {};
-
- var currentChar;
- var nextChar;
- var insideString = false;
- var insideComment = false;
- var offset = 0;
- var ret = '';
- var strip = opts.whitespace === false ? stripWithoutWhitespace : stripWithWhitespace;
-
- for (var i = 0; i < str.length; i++) {
- currentChar = str[i];
- nextChar = str[i + 1];
-
- if (!insideComment && currentChar === '"') {
- var escaped = str[i - 1] === '\\' && str[i - 2] !== '\\';
- if (!escaped) {
- insideString = !insideString;
- }
- }
-
- if (insideString) {
- continue;
- }
-
- if (!insideComment && currentChar + nextChar === '//') {
- ret += str.slice(offset, i);
- offset = i;
- insideComment = singleComment;
- i++;
- } else if (insideComment === singleComment && currentChar + nextChar === '\r\n') {
- i++;
- insideComment = false;
- ret += strip(str, offset, i);
- offset = i;
- continue;
- } else if (insideComment === singleComment && currentChar === '\n') {
- insideComment = false;
- ret += strip(str, offset, i);
- offset = i;
- } else if (!insideComment && currentChar + nextChar === '/*') {
- ret += str.slice(offset, i);
- offset = i;
- insideComment = multiComment;
- i++;
- continue;
- } else if (insideComment === multiComment && currentChar + nextChar === '*/') {
- i++;
- insideComment = false;
- ret += strip(str, offset, i + 1);
- offset = i + 1;
- continue;
- }
- }
-
- return ret + (insideComment ? strip(str.substr(offset)) : str.substr(offset));
-};
diff --git a/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 b/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
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/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
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/node_modules/strip-json-comments/package.json b/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
deleted file mode 100644
index d3734fc5d8..0000000000
--- a/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
+++ /dev/null
@@ -1,78 +0,0 @@
-{
- "_from": "strip-json-comments@~2.0.1",
- "_id": "strip-json-comments@2.0.1",
- "_integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
- "_location": "/update-notifier/latest-version/package-json/registry-url/rc/strip-json-comments",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "strip-json-comments@~2.0.1",
- "name": "strip-json-comments",
- "escapedName": "strip-json-comments",
- "rawSpec": "~2.0.1",
- "saveSpec": null,
- "fetchSpec": "~2.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-url/rc"
- ],
- "_resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "_shasum": "3c531942e908c2697c0ec344858c286c7ca0a60a",
- "_shrinkwrap": null,
- "_spec": "strip-json-comments@~2.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/strip-json-comments/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Strip comments from JSON. Lets you use comments in your JSON files!",
- "devDependencies": {
- "ava": "*",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/strip-json-comments#readme",
- "keywords": [
- "json",
- "strip",
- "remove",
- "delete",
- "trim",
- "comments",
- "multiline",
- "parse",
- "config",
- "configuration",
- "conf",
- "settings",
- "util",
- "env",
- "environment"
- ],
- "license": "MIT",
- "name": "strip-json-comments",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/strip-json-comments.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "2.0.1"
-}
diff --git a/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 b/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
deleted file mode 100644
index 5a34471474..0000000000
--- a/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
+++ /dev/null
@@ -1,64 +0,0 @@
-# strip-json-comments [![Build Status](https://travis-ci.org/sindresorhus/strip-json-comments.svg?branch=master)](https://travis-ci.org/sindresorhus/strip-json-comments)
-
-> Strip comments from JSON. Lets you use comments in your JSON files!
-
-This is now possible:
-
-```js
-{
- // rainbows
- "unicorn": /* ā¤ */ "cake"
-}
-```
-
-It will replace single-line comments `//` and multi-line comments `/**/` with whitespace. This allows JSON error positions to remain as close as possible to the original source.
-
-Also available as a [gulp](https://github.com/sindresorhus/gulp-strip-json-comments)/[grunt](https://github.com/sindresorhus/grunt-strip-json-comments)/[broccoli](https://github.com/sindresorhus/broccoli-strip-json-comments) plugin.
-
-
-## Install
-
-```
-$ npm install --save strip-json-comments
-```
-
-
-## Usage
-
-```js
-const json = '{/*rainbows*/"unicorn":"cake"}';
-
-JSON.parse(stripJsonComments(json));
-//=> {unicorn: 'cake'}
-```
-
-
-## API
-
-### stripJsonComments(input, [options])
-
-#### input
-
-Type: `string`
-
-Accepts a string with JSON and returns a string without comments.
-
-#### options
-
-##### whitespace
-
-Type: `boolean`
-Default: `true`
-
-Replace comments with whitespace instead of stripping them entirely.
-
-
-## Related
-
-- [strip-json-comments-cli](https://github.com/sindresorhus/strip-json-comments-cli) - CLI for this module
-- [strip-css-comments](https://github.com/sindresorhus/strip-css-comments) - Strip comments from CSS
-
-
-## License
-
-MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json
deleted file mode 100644
index c1b93bcdf2..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/package.json
+++ /dev/null
@@ -1,67 +0,0 @@
-{
- "_from": "rc@^1.0.1",
- "_id": "rc@1.2.1",
- "_integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=",
- "_location": "/update-notifier/latest-version/package-json/registry-url/rc",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "rc@^1.0.1",
- "name": "rc",
- "escapedName": "rc",
- "rawSpec": "^1.0.1",
- "saveSpec": null,
- "fetchSpec": "^1.0.1"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json/registry-url"
- ],
- "_resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz",
- "_shasum": "2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95",
- "_shrinkwrap": null,
- "_spec": "rc@^1.0.1",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url",
- "author": {
- "name": "Dominic Tarr",
- "email": "dominic.tarr@gmail.com",
- "url": "dominictarr.com"
- },
- "bin": {
- "rc": "./index.js"
- },
- "browserify": "browser.js",
- "bugs": {
- "url": "https://github.com/dominictarr/rc/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "deep-extend": "~0.4.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- },
- "deprecated": false,
- "description": "hardwired configuration loader",
- "devDependencies": {},
- "homepage": "https://github.com/dominictarr/rc#readme",
- "keywords": [
- "config",
- "rc",
- "unix",
- "defaults"
- ],
- "license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
- "main": "index.js",
- "name": "rc",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/dominictarr/rc.git"
- },
- "scripts": {
- "test": "set -e; node test/test.js; node test/ini.js; node test/nested-env-vars.js"
- },
- "version": "1.2.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js
deleted file mode 100644
index cdb1990062..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/ini.js
+++ /dev/null
@@ -1,15 +0,0 @@
-var cc =require('../lib/utils')
-var INI = require('ini')
-var assert = require('assert')
-
-function test(obj) {
-
- var _json, _ini
- var json = cc.parse (_json = JSON.stringify(obj))
- var ini = cc.parse (_ini = INI.stringify(obj))
- console.log(_ini, _json)
- assert.deepEqual(json, ini)
-}
-
-
-test({hello: true})
diff --git a/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 b/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
deleted file mode 100644
index 0ecd176344..0000000000
--- a/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
+++ /dev/null
@@ -1,50 +0,0 @@
-
-var seed = Math.random();
-var n = 'rc'+ seed;
-var N = 'RC'+ seed;
-var assert = require('assert')
-
-
-// Basic usage
-process.env[n+'_someOpt__a'] = 42
-process.env[n+'_someOpt__x__'] = 99
-process.env[n+'_someOpt__a__b'] = 186
-process.env[n+'_someOpt__a__b__c'] = 243
-process.env[n+'_someOpt__x__y'] = 1862
-process.env[n+'_someOpt__z'] = 186577
-
-// Should ignore empty strings from orphaned '__'
-process.env[n+'_someOpt__z__x__'] = 18629
-process.env[n+'_someOpt__w__w__'] = 18629
-
-// Leading '__' should ignore everything up to 'z'
-process.env[n+'___z__i__'] = 9999
-
-// should ignore case for config name section.
-process.env[N+'_test_upperCase'] = 187
-
-function testPrefix(prefix) {
- var config = require('../')(prefix, {
- option: true
- })
-
- console.log('\n\n------ nested-env-vars ------\n',{prefix: prefix}, '\n', config);
-
- assert.equal(config.option, true)
- assert.equal(config.someOpt.a, 42)
- assert.equal(config.someOpt.x, 99)
- // Should not override `a` once it's been set
- assert.equal(config.someOpt.a/*.b*/, 42)
- // Should not override `x` once it's been set
- assert.equal(config.someOpt.x/*.y*/, 99)
- assert.equal(config.someOpt.z, 186577)
- // Should not override `z` once it's been set
- assert.equal(config.someOpt.z/*.x*/, 186577)
- assert.equal(config.someOpt.w.w, 18629)
- assert.equal(config.z.i, 9999)
-
- assert.equal(config.test_upperCase, 187)
-}
-
-testPrefix(n);
-testPrefix(N);
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js
deleted file mode 100644
index 4f6335189b..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/node_modules/rc/test/test.js
+++ /dev/null
@@ -1,59 +0,0 @@
-
-var n = 'rc'+Math.random()
-var assert = require('assert')
-
-process.env[n+'_envOption'] = 42
-
-var config = require('../')(n, {
- option: true
-})
-
-console.log(config)
-
-assert.equal(config.option, true)
-assert.equal(config.envOption, 42)
-
-var customArgv = require('../')(n, {
- option: true
-}, { // nopt-like argv
- option: false,
- envOption: 24,
- argv: {
- remain: [],
- cooked: ['--no-option', '--envOption', '24'],
- original: ['--no-option', '--envOption=24']
- }
-})
-
-console.log(customArgv)
-
-assert.equal(customArgv.option, false)
-assert.equal(customArgv.envOption, 24)
-
-var fs = require('fs')
-var path = require('path')
-var jsonrc = path.resolve('.' + n + 'rc');
-
-fs.writeFileSync(jsonrc, [
- '{',
- '// json overrides default',
- '"option": false,',
- '/* env overrides json */',
- '"envOption": 24',
- '}'
-].join('\n'));
-
-var commentedJSON = require('../')(n, {
- option: true
-})
-
-fs.unlinkSync(jsonrc);
-
-console.log(commentedJSON)
-
-assert.equal(commentedJSON.option, false)
-assert.equal(commentedJSON.envOption, 42)
-
-assert.equal(commentedJSON.config, jsonrc)
-assert.equal(commentedJSON.configs.length, 1)
-assert.equal(commentedJSON.configs[0], jsonrc)
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json
deleted file mode 100644
index 6e7aef66fc..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/registry-url/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "registry-url@^3.0.3",
- "_id": "registry-url@3.1.0",
- "_integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=",
- "_location": "/update-notifier/latest-version/package-json/registry-url",
- "_phantomChildren": {
- "ini": "1.3.4"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "registry-url@^3.0.3",
- "name": "registry-url",
- "escapedName": "registry-url",
- "rawSpec": "^3.0.3",
- "saveSpec": null,
- "fetchSpec": "^3.0.3"
- },
- "_requiredBy": [
- "/update-notifier/latest-version/package-json"
- ],
- "_resolved": "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz",
- "_shasum": "3d4ef870f73dde1d77f0cf9a381432444e174942",
- "_shrinkwrap": null,
- "_spec": "registry-url@^3.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/registry-url/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "rc": "^1.0.1"
- },
- "deprecated": false,
- "description": "Get the set npm registry URL",
- "devDependencies": {
- "ava": "*",
- "pify": "^2.3.0",
- "require-uncached": "^1.0.2",
- "xo": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/registry-url#readme",
- "keywords": [
- "npm",
- "conf",
- "config",
- "npmconf",
- "registry",
- "url",
- "uri",
- "scope"
- ],
- "license": "MIT",
- "name": "registry-url",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/registry-url.git"
- },
- "scripts": {
- "test": "xo && ava --serial"
- },
- "version": "3.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json
deleted file mode 100644
index 1a7f197d72..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/package.json
+++ /dev/null
@@ -1,80 +0,0 @@
-{
- "_from": "package-json@^4.0.0",
- "_id": "package-json@4.0.1",
- "_integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=",
- "_location": "/update-notifier/latest-version/package-json",
- "_phantomChildren": {
- "ini": "1.3.4"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "package-json@^4.0.0",
- "name": "package-json",
- "escapedName": "package-json",
- "rawSpec": "^4.0.0",
- "saveSpec": null,
- "fetchSpec": "^4.0.0"
- },
- "_requiredBy": [
- "/update-notifier/latest-version"
- ],
- "_resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz",
- "_shasum": "8869a0401253661c4c4ca3da6c2121ed555f5eed",
- "_shrinkwrap": null,
- "_spec": "package-json@^4.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier/node_modules/latest-version",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/package-json/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "got": "^6.7.1",
- "registry-auth-token": "^3.0.1",
- "registry-url": "^3.0.3",
- "semver": "^5.1.0"
- },
- "deprecated": false,
- "description": "Get metadata of a package from the npm registry",
- "devDependencies": {
- "ava": "*",
- "mock-private-registry": "^1.1.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/package-json#readme",
- "keywords": [
- "npm",
- "registry",
- "package",
- "pkg",
- "package.json",
- "json",
- "module",
- "scope",
- "scoped"
- ],
- "license": "MIT",
- "name": "package-json",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/package-json.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json b/deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json
deleted file mode 100644
index 38e8735977..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "latest-version@^3.0.0",
- "_id": "latest-version@3.1.0",
- "_integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=",
- "_location": "/update-notifier/latest-version",
- "_phantomChildren": {
- "ini": "1.3.4",
- "semver": "5.3.0"
- },
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "latest-version@^3.0.0",
- "name": "latest-version",
- "escapedName": "latest-version",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz",
- "_shasum": "a205383fea322b33b5ae3b18abee0dc2f356ee15",
- "_shrinkwrap": null,
- "_spec": "latest-version@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/latest-version/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "package-json": "^4.0.0"
- },
- "deprecated": false,
- "description": "Get the latest version of an npm package",
- "devDependencies": {
- "ava": "*",
- "semver-regex": "^1.0.0",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/latest-version#readme",
- "keywords": [
- "latest",
- "version",
- "npm",
- "pkg",
- "package",
- "package.json",
- "current",
- "module"
- ],
- "license": "MIT",
- "name": "latest-version",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/latest-version.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/license b/deps/npm/node_modules/update-notifier/node_modules/semver-diff/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/semver-diff/package.json b/deps/npm/node_modules/update-notifier/node_modules/semver-diff/package.json
deleted file mode 100644
index 1c73e05b23..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/semver-diff/package.json
+++ /dev/null
@@ -1,69 +0,0 @@
-{
- "_from": "semver-diff@^2.0.0",
- "_id": "semver-diff@2.1.0",
- "_integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=",
- "_location": "/update-notifier/semver-diff",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "semver-diff@^2.0.0",
- "name": "semver-diff",
- "escapedName": "semver-diff",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/update-notifier"
- ],
- "_resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz",
- "_shasum": "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36",
- "_shrinkwrap": null,
- "_spec": "semver-diff@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "http://sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/semver-diff/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "semver": "^5.0.3"
- },
- "deprecated": false,
- "description": "Get the diff type of two semver versions: 0.0.1 0.0.2 ā†’ patch",
- "devDependencies": {
- "mocha": "*"
- },
- "engines": {
- "node": ">=0.10.0"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/semver-diff#readme",
- "keywords": [
- "semver",
- "version",
- "semantic",
- "diff",
- "difference"
- ],
- "license": "MIT",
- "name": "semver-diff",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/semver-diff.git"
- },
- "scripts": {
- "test": "mocha"
- },
- "version": "2.1.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license b/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license
deleted file mode 100644
index 654d0bfe94..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/license
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/update-notifier/node_modules/xdg-basedir/package.json b/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/package.json
deleted file mode 100644
index 0247ea3ae3..0000000000
--- a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/package.json
+++ /dev/null
@@ -1,77 +0,0 @@
-{
- "_from": "xdg-basedir@^3.0.0",
- "_id": "xdg-basedir@3.0.0",
- "_integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
- "_location": "/update-notifier/xdg-basedir",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "xdg-basedir@^3.0.0",
- "name": "xdg-basedir",
- "escapedName": "xdg-basedir",
- "rawSpec": "^3.0.0",
- "saveSpec": null,
- "fetchSpec": "^3.0.0"
- },
- "_requiredBy": [
- "/update-notifier",
- "/update-notifier/configstore"
- ],
- "_resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
- "_shasum": "496b2cc109eca8dbacfe2dc72b603c17c5870ad4",
- "_shrinkwrap": null,
- "_spec": "xdg-basedir@^3.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/update-notifier",
- "author": {
- "name": "Sindre Sorhus",
- "email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/sindresorhus/xdg-basedir/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Get XDG Base Directory paths",
- "devDependencies": {
- "ava": "*",
- "require-uncached": "^1.0.2",
- "xo": "*"
- },
- "engines": {
- "node": ">=4"
- },
- "files": [
- "index.js"
- ],
- "homepage": "https://github.com/sindresorhus/xdg-basedir#readme",
- "keywords": [
- "xdg",
- "base",
- "directory",
- "dir",
- "basedir",
- "path",
- "data",
- "config",
- "cache",
- "linux",
- "unix",
- "spec"
- ],
- "license": "MIT",
- "name": "xdg-basedir",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/sindresorhus/xdg-basedir.git"
- },
- "scripts": {
- "test": "xo && ava"
- },
- "version": "3.0.0"
-}
diff --git a/deps/npm/node_modules/update-notifier/package.json b/deps/npm/node_modules/update-notifier/package.json
index 537142bf56..836b3df254 100644
--- a/deps/npm/node_modules/update-notifier/package.json
+++ b/deps/npm/node_modules/update-notifier/package.json
@@ -1,65 +1,59 @@
{
- "_from": "update-notifier@2.3",
- "_id": "update-notifier@2.3.0",
+ "_args": [
+ [
+ "update-notifier@2.5.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "update-notifier@2.5.0",
+ "_id": "update-notifier@2.5.0",
"_inBundle": false,
- "_integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=",
+ "_integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==",
"_location": "/update-notifier",
- "_phantomChildren": {
- "graceful-fs": "4.1.11",
- "ini": "1.3.4",
- "lru-cache": "4.1.1",
- "path-is-inside": "1.0.2",
- "safe-buffer": "5.1.1",
- "semver": "5.4.1",
- "strip-ansi": "4.0.0",
- "which": "1.3.0",
- "write-file-atomic": "2.1.0"
- },
+ "_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "update-notifier@2.3",
+ "raw": "update-notifier@2.5.0",
"name": "update-notifier",
"escapedName": "update-notifier",
- "rawSpec": "2.3",
+ "rawSpec": "2.5.0",
"saveSpec": null,
- "fetchSpec": "2.3"
+ "fetchSpec": "2.5.0"
},
"_requiredBy": [
- "#USER",
"/",
"/libnpx"
],
- "_resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz",
- "_shasum": "4e8827a6bb915140ab093559d7014e3ebb837451",
- "_spec": "update-notifier@2.3",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz",
+ "_spec": "2.5.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Sindre Sorhus",
"email": "sindresorhus@gmail.com",
- "url": "sindresorhus.com"
+ "url": "https://sindresorhus.com"
},
"bugs": {
"url": "https://github.com/yeoman/update-notifier/issues"
},
- "bundleDependencies": false,
"dependencies": {
"boxen": "^1.2.1",
"chalk": "^2.0.1",
"configstore": "^3.0.0",
"import-lazy": "^2.1.0",
+ "is-ci": "^1.0.10",
"is-installed-globally": "^0.1.0",
"is-npm": "^1.0.0",
"latest-version": "^3.0.0",
"semver-diff": "^2.0.0",
"xdg-basedir": "^3.0.0"
},
- "deprecated": false,
"description": "Update notifications for your CLI app",
"devDependencies": {
"ava": "*",
"clear-module": "^2.1.0",
"fixture-stdout": "^0.2.1",
+ "mock-require": "^2.0.2",
"strip-ansi": "^4.0.0",
"xo": "^0.18.2"
},
@@ -93,5 +87,5 @@
"scripts": {
"test": "xo && ava --timeout=20s"
},
- "version": "2.3.0"
+ "version": "2.5.0"
}
diff --git a/deps/npm/node_modules/update-notifier/readme.md b/deps/npm/node_modules/update-notifier/readme.md
index 99e73976ee..ef6a1a8b1c 100644
--- a/deps/npm/node_modules/update-notifier/readme.md
+++ b/deps/npm/node_modules/update-notifier/readme.md
@@ -23,7 +23,7 @@ $ npm install update-notifier
```
-## Usafe
+## Usage
### Simple
@@ -153,12 +153,21 @@ Default: `{padding: 1, margin: 1, align: 'center', borderColor: 'yellow', border
Options object that will be passed to [`boxen`](https://github.com/sindresorhus/boxen).
+##### shouldNotifyInNpmScript
+
+Type: `boolean`<br>
+Default: `false`
+
+Allows notification to be shown when running as an npm script.
+
### User settings
Users of your module have the ability to opt-out of the update notifier by changing the `optOut` property to `true` in `~/.config/configstore/update-notifier-[your-module-name].json`. The path is available in `notifier.config.path`.
Users can also opt-out by [setting the environment variable](https://github.com/sindresorhus/guides/blob/master/set-environment-variables.md) `NO_UPDATE_NOTIFIER` with any value or by using the `--no-update-notifier` flag on a per run basis.
+The check is also skipped on CI automatically.
+
## About
@@ -172,7 +181,7 @@ There are a bunch projects using it:
- [npm](https://github.com/npm/npm) - Package manager for JavaScript
- [Yeoman](http://yeoman.io) - Modern workflows for modern webapps
- [AVA](https://ava.li) - Simple concurrent test runner
-- [XO](https://github.com/sindresorhus/xo) - JavaScript happiness style linter
+- [XO](https://github.com/xojs/xo) - JavaScript happiness style linter
- [Pageres](https://github.com/sindresorhus/pageres) - Capture website screenshots
- [Node GH](http://nodegh.io) - GitHub command line tool
@@ -181,4 +190,4 @@ There are a bunch projects using it:
## License
-[BSD license](http://opensource.org/licenses/bsd-license.php) and copyright Google
+BSD-2-Clause Ā© Google
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/index.js b/deps/npm/node_modules/url-parse-lax/index.js
index f9c0c65afd..f9c0c65afd 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/index.js
+++ b/deps/npm/node_modules/url-parse-lax/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/license b/deps/npm/node_modules/url-parse-lax/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/string-width/node_modules/is-fullwidth-code-point/license
+++ b/deps/npm/node_modules/url-parse-lax/license
diff --git a/deps/npm/node_modules/url-parse-lax/package.json b/deps/npm/node_modules/url-parse-lax/package.json
new file mode 100644
index 0000000000..cf4a70a0b3
--- /dev/null
+++ b/deps/npm/node_modules/url-parse-lax/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "url-parse-lax@^1.0.0",
+ "_id": "url-parse-lax@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=",
+ "_location": "/url-parse-lax",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "url-parse-lax@^1.0.0",
+ "name": "url-parse-lax",
+ "escapedName": "url-parse-lax",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/got"
+ ],
+ "_resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
+ "_shasum": "7af8f303645e9bd79a272e7a14ac68bc0609da73",
+ "_spec": "url-parse-lax@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/got",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/url-parse-lax/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "prepend-http": "^1.0.1"
+ },
+ "deprecated": false,
+ "description": "url.parse() with support for protocol-less URLs & IPs",
+ "devDependencies": {
+ "ava": "0.0.4"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/url-parse-lax#readme",
+ "keywords": [
+ "url",
+ "uri",
+ "parse",
+ "parser",
+ "loose",
+ "lax",
+ "protocol",
+ "less",
+ "protocol-less",
+ "ip",
+ "ipv4",
+ "ipv6"
+ ],
+ "license": "MIT",
+ "name": "url-parse-lax",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/url-parse-lax.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/readme.md b/deps/npm/node_modules/url-parse-lax/readme.md
index f2639446e5..f2639446e5 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/latest-version/node_modules/package-json/node_modules/got/node_modules/url-parse-lax/readme.md
+++ b/deps/npm/node_modules/url-parse-lax/readme.md
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md b/deps/npm/node_modules/util-deprecate/History.md
index acc8675372..acc8675372 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/History.md
+++ b/deps/npm/node_modules/util-deprecate/History.md
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE b/deps/npm/node_modules/util-deprecate/LICENSE
index 6a60e8c225..6a60e8c225 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/LICENSE
+++ b/deps/npm/node_modules/util-deprecate/LICENSE
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md b/deps/npm/node_modules/util-deprecate/README.md
index 75622fa7c2..75622fa7c2 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/README.md
+++ b/deps/npm/node_modules/util-deprecate/README.md
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js b/deps/npm/node_modules/util-deprecate/browser.js
index 549ae2f065..549ae2f065 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/browser.js
+++ b/deps/npm/node_modules/util-deprecate/browser.js
diff --git a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js b/deps/npm/node_modules/util-deprecate/node.js
index 5e6fcff5dd..5e6fcff5dd 100644
--- a/deps/npm/node_modules/readable-stream/node_modules/util-deprecate/node.js
+++ b/deps/npm/node_modules/util-deprecate/node.js
diff --git a/deps/npm/node_modules/util-deprecate/package.json b/deps/npm/node_modules/util-deprecate/package.json
new file mode 100644
index 0000000000..58a6abf9fd
--- /dev/null
+++ b/deps/npm/node_modules/util-deprecate/package.json
@@ -0,0 +1,56 @@
+{
+ "_from": "util-deprecate@~1.0.1",
+ "_id": "util-deprecate@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "_location": "/util-deprecate",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "util-deprecate@~1.0.1",
+ "name": "util-deprecate",
+ "escapedName": "util-deprecate",
+ "rawSpec": "~1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~1.0.1"
+ },
+ "_requiredBy": [
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "_shasum": "450d4dc9fa70de732762fbd2d4a28981419a0ccf",
+ "_spec": "util-deprecate@~1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/readable-stream",
+ "author": {
+ "name": "Nathan Rajlich",
+ "email": "nathan@tootallnate.net",
+ "url": "http://n8.io/"
+ },
+ "browser": "browser.js",
+ "bugs": {
+ "url": "https://github.com/TooTallNate/util-deprecate/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "The Node.js `util.deprecate()` function with browser support",
+ "homepage": "https://github.com/TooTallNate/util-deprecate",
+ "keywords": [
+ "util",
+ "deprecate",
+ "browserify",
+ "browser",
+ "node"
+ ],
+ "license": "MIT",
+ "main": "node.js",
+ "name": "util-deprecate",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/TooTallNate/util-deprecate.git"
+ },
+ "scripts": {
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/LICENSE b/deps/npm/node_modules/util-extend/LICENSE
index e3d4e695a4..e3d4e695a4 100644
--- a/deps/npm/node_modules/sorted-union-stream/node_modules/from2/node_modules/readable-stream/LICENSE
+++ b/deps/npm/node_modules/util-extend/LICENSE
diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/README.md b/deps/npm/node_modules/util-extend/README.md
index be03922ab0..be03922ab0 100644
--- a/deps/npm/node_modules/read-installed/node_modules/util-extend/README.md
+++ b/deps/npm/node_modules/util-extend/README.md
diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js b/deps/npm/node_modules/util-extend/extend.js
index de9fcf471a..de9fcf471a 100644
--- a/deps/npm/node_modules/read-installed/node_modules/util-extend/extend.js
+++ b/deps/npm/node_modules/util-extend/extend.js
diff --git a/deps/npm/node_modules/util-extend/package.json b/deps/npm/node_modules/util-extend/package.json
new file mode 100644
index 0000000000..fa05e6bb12
--- /dev/null
+++ b/deps/npm/node_modules/util-extend/package.json
@@ -0,0 +1,45 @@
+{
+ "_from": "util-extend@^1.0.1",
+ "_id": "util-extend@1.0.3",
+ "_inBundle": false,
+ "_integrity": "sha1-p8IW0mdUUWljeztu3GypEZ4v+T8=",
+ "_location": "/util-extend",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "util-extend@^1.0.1",
+ "name": "util-extend",
+ "escapedName": "util-extend",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/npm-registry-mock",
+ "/read-installed"
+ ],
+ "_resolved": "https://registry.npmjs.org/util-extend/-/util-extend-1.0.3.tgz",
+ "_shasum": "a7c216d267545169637b3b6edc6ca9119e2ff93f",
+ "_spec": "util-extend@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/read-installed",
+ "author": "",
+ "bugs": {
+ "url": "https://github.com/isaacs/util-extend/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Node's internal object extension function",
+ "homepage": "https://github.com/isaacs/util-extend#readme",
+ "license": "MIT",
+ "main": "extend.js",
+ "name": "util-extend",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/isaacs/util-extend.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.3"
+}
diff --git a/deps/npm/node_modules/read-installed/node_modules/util-extend/test.js b/deps/npm/node_modules/util-extend/test.js
index fbee2b1e1b..fbee2b1e1b 100644
--- a/deps/npm/node_modules/read-installed/node_modules/util-extend/test.js
+++ b/deps/npm/node_modules/util-extend/test.js
diff --git a/deps/npm/node_modules/uuid/.eslintrc.json b/deps/npm/node_modules/uuid/.eslintrc.json
index 638b0a56fd..734a8e14c7 100644
--- a/deps/npm/node_modules/uuid/.eslintrc.json
+++ b/deps/npm/node_modules/uuid/.eslintrc.json
@@ -7,16 +7,16 @@
"mocha": true
},
"extends": ["eslint:recommended"],
- "installedESLint": true,
"rules": {
"array-bracket-spacing": ["warn", "never"],
"arrow-body-style": ["warn", "as-needed"],
"arrow-parens": ["warn", "as-needed"],
"arrow-spacing": "warn",
- "brace-style": "warn",
+ "brace-style": ["warn", "1tbs"],
"camelcase": "warn",
"comma-spacing": ["warn", {"after": true}],
"dot-notation": "warn",
+ "eqeqeq": ["warn", "smart"],
"indent": ["warn", 2, {
"SwitchCase": 1,
"FunctionDeclaration": {"parameters": 1},
@@ -33,6 +33,7 @@
"no-trailing-spaces": "warn",
"no-undef": "error",
"no-unused-vars": ["warn", {"args": "none"}],
+ "one-var": ["warn", "never"],
"padded-blocks": ["warn", "never"],
"object-curly-spacing": ["warn", "never"],
"quotes": ["warn", "single"],
diff --git a/deps/npm/node_modules/uuid/CHANGELOG.md b/deps/npm/node_modules/uuid/CHANGELOG.md
new file mode 100644
index 0000000000..d9fe59c150
--- /dev/null
+++ b/deps/npm/node_modules/uuid/CHANGELOG.md
@@ -0,0 +1,57 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="3.2.1"></a>
+## [3.2.1](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.1) (2018-01-16)
+
+
+### Bug Fixes
+
+* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b))
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/kelektiv/node-uuid/compare/v3.1.0...v3.2.0) (2018-01-16)
+
+
+### Bug Fixes
+
+* remove mistakenly added typescript dependency, rollback version (standard-version will auto-increment) ([09fa824](https://github.com/kelektiv/node-uuid/commit/09fa824))
+* use msCrypto if available. Fixes [#241](https://github.com/kelektiv/node-uuid/issues/241) ([#247](https://github.com/kelektiv/node-uuid/issues/247)) ([1fef18b](https://github.com/kelektiv/node-uuid/commit/1fef18b))
+
+
+### Features
+
+* Add v3 Support ([#217](https://github.com/kelektiv/node-uuid/issues/217)) ([d94f726](https://github.com/kelektiv/node-uuid/commit/d94f726))
+
+
+
+# 3.0.1 (2016-11-28)
+
+ * split uuid versions into separate files
+
+# 3.0.0 (2016-11-17)
+
+ * remove .parse and .unparse
+
+# 2.0.0
+
+ * Removed uuid.BufferClass
+
+# 1.4.0
+
+ * Improved module context detection
+ * Removed public RNG functions
+
+# 1.3.2
+
+ * Improve tests and handling of v1() options (Issue #24)
+ * Expose RNG option to allow for perf testing with different generators
+
+# 1.3.0
+
+ * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
+ * Support for node.js crypto API
+ * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
diff --git a/deps/npm/node_modules/uuid/HISTORY.md b/deps/npm/node_modules/uuid/HISTORY.md
deleted file mode 100644
index 02daad3f61..0000000000
--- a/deps/npm/node_modules/uuid/HISTORY.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# 3.0.1 (2016-11-28)
-
- * split uuid versions into separate files
-
-# 3.0.0 (2016-11-17)
-
- * remove .parse and .unparse
-
-# 2.0.0
-
- * Removed uuid.BufferClass
-
-# 1.4.0
-
- * Improved module context detection
- * Removed public RNG functions
-
-# 1.3.2
-
- * Improve tests and handling of v1() options (Issue #24)
- * Expose RNG option to allow for perf testing with different generators
-
-# 1.3.0
-
- * Support for version 1 ids, thanks to [@ctavan](https://github.com/ctavan)!
- * Support for node.js crypto API
- * De-emphasizing performance in favor of a) cryptographic quality PRNGs where available and b) more manageable code
diff --git a/deps/npm/node_modules/uuid/README.md b/deps/npm/node_modules/uuid/README.md
index 5adaa8f946..cddaa14469 100644
--- a/deps/npm/node_modules/uuid/README.md
+++ b/deps/npm/node_modules/uuid/README.md
@@ -1,14 +1,21 @@
+<!--
+ -- This file is auto-generated from README_js.md. Changes should be made there.
+ -->
+
# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
Features:
-* Support for version 1, 4 and 5 UUIDs
+* Support for version 1, 3, 4 and 5 UUIDs
* Cross-platform
* Uses cryptographically-strong random number APIs (when available)
* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
+[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
+supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
+
## Quickstart - CommonJS (Recommended)
```shell
@@ -21,14 +28,36 @@ Version 1 (timestamp):
```javascript
const uuidv1 = require('uuid/v1');
-uuidv1(); // -> '6c84fb90-12c4-11e1-840d-7b25c5ee775a'
+uuidv1(); // ā‡Ø 'f64f2940-fae4-11e7-8c5f-ef356f279131'
+
+```
+
+Version 3 (namespace):
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv3('hello.example.com', uuidv3.DNS); // ā‡Ø '9125a8dc-52ee-365b-a5aa-81b0b3681cf6'
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv3('http://example.com/hello', uuidv3.URL); // ā‡Ø 'c6235813-3ba4-3801-ae84-e0a6ebb7d138'
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv3('Hello, World!', MY_NAMESPACE); // ā‡Ø 'e8b5a51d-11c8-3310-a6ab-367563f20686'
+
```
Version 4 (random):
```javascript
const uuidv4 = require('uuid/v4');
-uuidv4(); // -> '110ec58a-a0f2-4ac4-8393-c866d813b8d1'
+uuidv4(); // ā‡Ø '416ac246-e7ac-49ff-93b4-f7e94d997e6b'
+
```
Version 5 (namespace):
@@ -37,14 +66,18 @@ Version 5 (namespace):
const uuidv5 = require('uuid/v5');
// ... using predefined DNS namespace (for domain names)
-uuidv5('hello.example.com', uuidv5.DNS)); // -> 'fdda765f-fc57-5604-a269-52a7df8164ec'
+uuidv5('hello.example.com', uuidv5.DNS); // ā‡Ø 'fdda765f-fc57-5604-a269-52a7df8164ec'
// ... using predefined URL namespace (for, well, URLs)
-uuidv5('http://example.com/hello', uuidv5.URL); // -> '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
+uuidv5('http://example.com/hello', uuidv5.URL); // ā‡Ø '3bbcee75-cecc-5b56-8031-b6641c1ed1f1'
// ... using a custom namespace
-const MY_NAMESPACE = '<UUID string you previously generated elsewhere>';
-uuidv5('Hello, World!', MY_NAMESPACE); // -> '90123e1c-7512-523e-bb28-76fab9f2f73d'
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv5('Hello, World!', MY_NAMESPACE); // ā‡Ø '630eb68f-e0fa-5ecc-887a-7c7a62614681'
+
```
## Quickstart - Browser-ready Versions
@@ -60,6 +93,15 @@ uuidv1(); // -> v1 UUID
</script>
```
+For version 3 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script>
+<script>
+uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID
+</script>
+```
+
For version 4 uuids:
```html
@@ -85,7 +127,7 @@ uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID
```javascript
const uuidv1 = require('uuid/v1');
-// Allowed arguments
+// Incantations
uuidv1();
uuidv1(options);
uuidv1(options, buffer, offset);
@@ -97,7 +139,7 @@ Generate and return a RFC4122 v1 (timestamp-based) UUID.
* `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
* `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
- * `msecs` - (Number | Date) Time in milliseconds since unix Epoch. Default: The current time is used.
+ * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used.
* `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
@@ -110,21 +152,51 @@ Note: The <node> id is generated guaranteed to stay constant for the lifetime of
Example: Generate string UUID with fully-specified options
```javascript
-uuidv1({
+const v1options = {
node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
clockseq: 0x1234,
msecs: new Date('2011-11-01').getTime(),
nsecs: 5678
-}); // -> "710b962e-041c-11e1-9234-0123456789ab"
+};
+uuidv1(v1options); // ā‡Ø '710b962e-041c-11e1-9234-0123456789ab'
+
```
Example: In-place generation of two binary IDs
```javascript
// Generate two ids in an array
-const arr = new Array(32); // -> []
-uuidv1(null, arr, 0); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
-uuidv1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 02 a3 1c b0 14 32 11 e1 85 58 0b 48 8e 4f c1 15]
+const arr = new Array();
+uuidv1(null, arr, 0); // ā‡Ø [ 246, 87, 141, 176, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49 ]
+uuidv1(null, arr, 16); // ā‡Ø [ 246, 87, 141, 176, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49, 246, 87, 180, 192, 250, 228, 17, 231, 146, 52, 239, 53, 111, 39, 145, 49 ]
+
+```
+
+### Version 3
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// Incantations
+uuidv3(name, namespace);
+uuidv3(name, namespace, buffer);
+uuidv3(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v3 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript
+uuidv3('hello world', MY_NAMESPACE); // ā‡Ø '042ffd34-d989-321c-ad06-f60826172424'
+
```
### Version 4
@@ -132,7 +204,7 @@ uuidv1(null, arr, 16); // -> [02 a2 ce 90 14 32 11 e1 85 58 0b 48 8e 4f c1 15 0
```javascript
const uuidv4 = require('uuid/v4')
-// Allowed arguments
+// Incantations
uuidv4();
uuidv4(options);
uuidv4(options, buffer, offset);
@@ -148,38 +220,40 @@ Generate and return a RFC4122 v4 UUID.
Returns `buffer`, if specified, otherwise the string form of the UUID
-Example: Generate string UUID with fully-specified options
+Example: Generate string UUID with predefined `random` values
```javascript
-uuid.v4({
+const v4options = {
random: [
0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
]
-});
-// -> "109156be-c4fb-41ea-b1b4-efe1671c5836"
+};
+uuidv4(v4options); // ā‡Ø '109156be-c4fb-41ea-b1b4-efe1671c5836'
+
```
Example: Generate two IDs in a single buffer
```javascript
-const buffer = new Array(32); // (or 'new Buffer' in node.js)
-uuid.v4(null, buffer, 0);
-uuid.v4(null, buffer, 16);
+const buffer = new Array();
+uuidv4(null, buffer, 0); // ā‡Ø [ 175, 10, 162, 184, 217, 255, 77, 139, 161, 80, 41, 200, 70, 238, 196, 250 ]
+uuidv4(null, buffer, 16); // ā‡Ø [ 175, 10, 162, 184, 217, 255, 77, 139, 161, 80, 41, 200, 70, 238, 196, 250, 75, 162, 105, 153, 48, 238, 77, 58, 169, 56, 158, 207, 106, 160, 47, 239 ]
+
```
### Version 5
```javascript
-const uuidv5 = require('uuid/v4');
+const uuidv5 = require('uuid/v5');
-// Allowed arguments
+// Incantations
uuidv5(name, namespace);
uuidv5(name, namespace, buffer);
uuidv5(name, namespace, buffer, offset);
```
-Generate and return a RFC4122 v4 UUID.
+Generate and return a RFC4122 v5 UUID.
* `name` - (String | Array[]) "name" to create UUID with
* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
@@ -191,37 +265,29 @@ Returns `buffer`, if specified, otherwise the string form of the UUID
Example:
```javascript
-// Generate a unique namespace (typically you would do this once, outside of
-// your project, then bake this value into your code)
-const uuidv4 = require('uuid/v4');
-const MY_NAMESPACE = uuidv4(); //
+uuidv5('hello world', MY_NAMESPACE); // ā‡Ø '9f282611-e0fd-5650-8953-89c8e342da0b'
-// Generate a couple namespace uuids
-const uuidv5 = require('uuid/v5');
-uuidv5('hello', MY_NAMESPACE);
-uuidv5('world', MY_NAMESPACE);
```
-## Testing
+## Command Line
-```shell
-npm test
-```
+UUIDs can be generated from the command line with the `uuid` command.
-## Deprecated / Browser-ready API
+```shell
+$ uuid
+ddeb27fb-d9a0-4624-be4d-4615062daed4
-The API below is available for legacy purposes and is not expected to be available post-3.X
+$ uuid v1
+02d37060-d446-11e7-a9fa-7bdae751ebe1
+```
-```javascript
-const uuid = require('uuid');
+Type `uuid --help` for usage details
-uuid.v1(...); // alias of uuid/v1
-uuid.v4(...); // alias of uuid/v4
-uuid(...); // alias of uuid/v4
+## Testing
-// uuid.v5() is not supported in this API
+```shell
+npm test
```
-## Legacy node-uuid package
-
-The code for the legacy node-uuid package is available in the `node-uuid` branch.
+----
+Markdown generated from [README_js.md](README_js.md) by [![RunMD Logo](http://i.imgur.com/h0FVyzU.png)](https://github.com/broofa/runmd) \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/README_js.md b/deps/npm/node_modules/uuid/README_js.md
new file mode 100644
index 0000000000..f34453be40
--- /dev/null
+++ b/deps/npm/node_modules/uuid/README_js.md
@@ -0,0 +1,280 @@
+```javascript --hide
+runmd.onRequire = path => path.replace(/^uuid/, './');
+```
+
+# uuid [![Build Status](https://secure.travis-ci.org/kelektiv/node-uuid.svg?branch=master)](http://travis-ci.org/kelektiv/node-uuid) #
+
+Simple, fast generation of [RFC4122](http://www.ietf.org/rfc/rfc4122.txt) UUIDS.
+
+Features:
+
+* Support for version 1, 3, 4 and 5 UUIDs
+* Cross-platform
+* Uses cryptographically-strong random number APIs (when available)
+* Zero-dependency, small footprint (... but not [this small](https://gist.github.com/982883))
+
+[**Deprecation warning**: The use of `require('uuid')` is deprecated and will not be
+supported after version 3.x of this module. Instead, use `require('uuid/[v1|v3|v4|v5]')` as shown in the examples below.]
+
+## Quickstart - CommonJS (Recommended)
+
+```shell
+npm install uuid
+```
+
+Then generate your uuid version of choice ...
+
+Version 1 (timestamp):
+
+```javascript --run v1
+const uuidv1 = require('uuid/v1');
+uuidv1(); // RESULT
+```
+
+Version 3 (namespace):
+
+```javascript --run v3
+const uuidv3 = require('uuid/v3');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv3('hello.example.com', uuidv3.DNS); // RESULT
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv3('http://example.com/hello', uuidv3.URL); // RESULT
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv3('Hello, World!', MY_NAMESPACE); // RESULT
+```
+
+Version 4 (random):
+
+```javascript --run v4
+const uuidv4 = require('uuid/v4');
+uuidv4(); // RESULT
+```
+
+Version 5 (namespace):
+
+```javascript --run v5
+const uuidv5 = require('uuid/v5');
+
+// ... using predefined DNS namespace (for domain names)
+uuidv5('hello.example.com', uuidv5.DNS); // RESULT
+
+// ... using predefined URL namespace (for, well, URLs)
+uuidv5('http://example.com/hello', uuidv5.URL); // RESULT
+
+// ... using a custom namespace
+//
+// Note: Custom namespaces should be a UUID string specific to your application!
+// E.g. the one here was generated using this modules `uuid` CLI.
+const MY_NAMESPACE = '1b671a64-40d5-491e-99b0-da01ff1f3341';
+uuidv5('Hello, World!', MY_NAMESPACE); // RESULT
+```
+
+## Quickstart - Browser-ready Versions
+
+Browser-ready versions of this module are available via [wzrd.in](https://github.com/jfhbrook/wzrd.in).
+
+For version 1 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv1@latest"></script>
+<script>
+uuidv1(); // -> v1 UUID
+</script>
+```
+
+For version 3 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv3@latest"></script>
+<script>
+uuidv3('http://example.com/hello', uuidv3.URL); // -> v3 UUID
+</script>
+```
+
+For version 4 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv4@latest"></script>
+<script>
+uuidv4(); // -> v4 UUID
+</script>
+```
+
+For version 5 uuids:
+
+```html
+<script src="http://wzrd.in/standalone/uuid%2Fv5@latest"></script>
+<script>
+uuidv5('http://example.com/hello', uuidv5.URL); // -> v5 UUID
+</script>
+```
+
+## API
+
+### Version 1
+
+```javascript
+const uuidv1 = require('uuid/v1');
+
+// Incantations
+uuidv1();
+uuidv1(options);
+uuidv1(options, buffer, offset);
+```
+
+Generate and return a RFC4122 v1 (timestamp-based) UUID.
+
+* `options` - (Object) Optional uuid state to apply. Properties may include:
+
+ * `node` - (Array) Node id as Array of 6 bytes (per 4.1.6). Default: Randomly generated ID. See note 1.
+ * `clockseq` - (Number between 0 - 0x3fff) RFC clock sequence. Default: An internally maintained clockseq is used.
+ * `msecs` - (Number) Time in milliseconds since unix Epoch. Default: The current time is used.
+ * `nsecs` - (Number between 0-9999) additional time, in 100-nanosecond units. Ignored if `msecs` is unspecified. Default: internal uuid counter is used, as per 4.2.1.2.
+
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing.
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Note: The <node> id is generated guaranteed to stay constant for the lifetime of the current JS runtime. (Future versions of this module may use persistent storage mechanisms to extend this guarantee.)
+
+Example: Generate string UUID with fully-specified options
+
+```javascript --run v1
+const v1options = {
+ node: [0x01, 0x23, 0x45, 0x67, 0x89, 0xab],
+ clockseq: 0x1234,
+ msecs: new Date('2011-11-01').getTime(),
+ nsecs: 5678
+};
+uuidv1(v1options); // RESULT
+```
+
+Example: In-place generation of two binary IDs
+
+```javascript --run v1
+// Generate two ids in an array
+const arr = new Array();
+uuidv1(null, arr, 0); // RESULT
+uuidv1(null, arr, 16); // RESULT
+```
+
+### Version 3
+
+```javascript
+const uuidv3 = require('uuid/v3');
+
+// Incantations
+uuidv3(name, namespace);
+uuidv3(name, namespace, buffer);
+uuidv3(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v3 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript --run v3
+uuidv3('hello world', MY_NAMESPACE); // RESULT
+```
+
+### Version 4
+
+```javascript
+const uuidv4 = require('uuid/v4')
+
+// Incantations
+uuidv4();
+uuidv4(options);
+uuidv4(options, buffer, offset);
+```
+
+Generate and return a RFC4122 v4 UUID.
+
+* `options` - (Object) Optional uuid state to apply. Properties may include:
+ * `random` - (Number[16]) Array of 16 numbers (0-255) to use in place of randomly generated values
+ * `rng` - (Function) Random # generator function that returns an Array[16] of byte values (0-255)
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing.
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example: Generate string UUID with predefined `random` values
+
+```javascript --run v4
+const v4options = {
+ random: [
+ 0x10, 0x91, 0x56, 0xbe, 0xc4, 0xfb, 0xc1, 0xea,
+ 0x71, 0xb4, 0xef, 0xe1, 0x67, 0x1c, 0x58, 0x36
+ ]
+};
+uuidv4(v4options); // RESULT
+```
+
+Example: Generate two IDs in a single buffer
+
+```javascript --run v4
+const buffer = new Array();
+uuidv4(null, buffer, 0); // RESULT
+uuidv4(null, buffer, 16); // RESULT
+```
+
+### Version 5
+
+```javascript
+const uuidv5 = require('uuid/v5');
+
+// Incantations
+uuidv5(name, namespace);
+uuidv5(name, namespace, buffer);
+uuidv5(name, namespace, buffer, offset);
+```
+
+Generate and return a RFC4122 v5 UUID.
+
+* `name` - (String | Array[]) "name" to create UUID with
+* `namespace` - (String | Array[]) "namespace" UUID either as a String or Array[16] of byte values
+* `buffer` - (Array | Buffer) Array or buffer where UUID bytes are to be written.
+* `offset` - (Number) Starting index in `buffer` at which to begin writing. Default = 0
+
+Returns `buffer`, if specified, otherwise the string form of the UUID
+
+Example:
+
+```javascript --run v5
+uuidv5('hello world', MY_NAMESPACE); // RESULT
+```
+
+## Command Line
+
+UUIDs can be generated from the command line with the `uuid` command.
+
+```shell
+$ uuid
+ddeb27fb-d9a0-4624-be4d-4615062daed4
+
+$ uuid v1
+02d37060-d446-11e7-a9fa-7bdae751ebe1
+```
+
+Type `uuid --help` for usage details
+
+## Testing
+
+```shell
+npm test
+```
diff --git a/deps/npm/node_modules/uuid/bin/uuid b/deps/npm/node_modules/uuid/bin/uuid
index 2fd26d7642..502626e60f 100755
--- a/deps/npm/node_modules/uuid/bin/uuid
+++ b/deps/npm/node_modules/uuid/bin/uuid
@@ -5,6 +5,7 @@ function usage() {
console.log('Usage:');
console.log(' uuid');
console.log(' uuid v1');
+ console.log(' uuid v3 <name> <namespace uuid>');
console.log(' uuid v4');
console.log(' uuid v5 <name> <namespace uuid>');
console.log(' uuid --help');
@@ -25,6 +26,20 @@ switch (version) {
console.log(uuidV1());
break;
+ case 'v3':
+ var uuidV3 = require('../v3');
+
+ var name = args.shift();
+ var namespace = args.shift();
+ assert(name != null, 'v3 name not specified');
+ assert(namespace != null, 'v3 namespace not specified');
+
+ if (namespace == 'URL') namespace = uuidV3.URL;
+ if (namespace == 'DNS') namespace = uuidV3.DNS;
+
+ console.log(uuidV3(name, namespace));
+ break;
+
case 'v4':
var uuidV4 = require('../v4');
console.log(uuidV4());
diff --git a/deps/npm/node_modules/uuid/lib/md5-browser.js b/deps/npm/node_modules/uuid/lib/md5-browser.js
new file mode 100644
index 0000000000..9b3b6c7eff
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/md5-browser.js
@@ -0,0 +1,216 @@
+/*
+ * Browser-compatible JavaScript MD5
+ *
+ * Modification of JavaScript MD5
+ * https://github.com/blueimp/JavaScript-MD5
+ *
+ * Copyright 2011, Sebastian Tschan
+ * https://blueimp.net
+ *
+ * Licensed under the MIT license:
+ * https://opensource.org/licenses/MIT
+ *
+ * Based on
+ * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
+ * Digest Algorithm, as defined in RFC 1321.
+ * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009
+ * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
+ * Distributed under the BSD License
+ * See http://pajhome.org.uk/crypt/md5 for more info.
+ */
+
+'use strict';
+
+function md5(bytes) {
+ if (typeof(bytes) == 'string') {
+ var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape
+ bytes = new Array(msg.length);
+ for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);
+ }
+
+ return md5ToHexEncodedArray(
+ wordsToMd5(
+ bytesToWords(bytes)
+ , bytes.length * 8)
+ );
+}
+
+
+/*
+* Convert an array of little-endian words to an array of bytes
+*/
+function md5ToHexEncodedArray(input) {
+ var i;
+ var x;
+ var output = [];
+ var length32 = input.length * 32;
+ var hexTab = '0123456789abcdef';
+ var hex;
+
+ for (i = 0; i < length32; i += 8) {
+ x = (input[i >> 5] >>> (i % 32)) & 0xFF;
+
+ hex = parseInt(hexTab.charAt((x >>> 4) & 0x0F) + hexTab.charAt(x & 0x0F), 16);
+
+ output.push(hex);
+ }
+ return output;
+}
+
+/*
+* Calculate the MD5 of an array of little-endian words, and a bit length.
+*/
+function wordsToMd5(x, len) {
+ /* append padding */
+ x[len >> 5] |= 0x80 << (len % 32);
+ x[(((len + 64) >>> 9) << 4) + 14] = len;
+
+ var i;
+ var olda;
+ var oldb;
+ var oldc;
+ var oldd;
+ var a = 1732584193;
+ var b = -271733879;
+ var c = -1732584194;
+
+ var d = 271733878;
+
+ for (i = 0; i < x.length; i += 16) {
+ olda = a;
+ oldb = b;
+ oldc = c;
+ oldd = d;
+
+ a = md5ff(a, b, c, d, x[i], 7, -680876936);
+ d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
+ c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
+ b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
+ a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
+ d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
+ c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
+ b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
+ a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
+ d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
+ c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
+ b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
+ a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
+ d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
+ c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
+ b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
+
+ a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
+ d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
+ c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
+ b = md5gg(b, c, d, a, x[i], 20, -373897302);
+ a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
+ d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
+ c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
+ b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
+ a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
+ d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
+ c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
+ b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
+ a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
+ d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
+ c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
+ b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
+
+ a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
+ d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
+ c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
+ b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
+ a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
+ d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
+ c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
+ b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
+ a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
+ d = md5hh(d, a, b, c, x[i], 11, -358537222);
+ c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
+ b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
+ a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
+ d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
+ c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
+ b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
+
+ a = md5ii(a, b, c, d, x[i], 6, -198630844);
+ d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
+ c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
+ b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
+ a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
+ d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
+ c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
+ b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
+ a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
+ d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
+ c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
+ b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
+ a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
+ d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
+ c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
+ b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
+
+ a = safeAdd(a, olda);
+ b = safeAdd(b, oldb);
+ c = safeAdd(c, oldc);
+ d = safeAdd(d, oldd);
+ }
+ return [a, b, c, d];
+}
+
+/*
+* Convert an array bytes to an array of little-endian words
+* Characters >255 have their high-byte silently ignored.
+*/
+function bytesToWords(input) {
+ var i;
+ var output = [];
+ output[(input.length >> 2) - 1] = undefined;
+ for (i = 0; i < output.length; i += 1) {
+ output[i] = 0;
+ }
+ var length8 = input.length * 8;
+ for (i = 0; i < length8; i += 8) {
+ output[i >> 5] |= (input[(i / 8)] & 0xFF) << (i % 32);
+ }
+
+ return output;
+}
+
+/*
+* Add integers, wrapping at 2^32. This uses 16-bit operations internally
+* to work around bugs in some JS interpreters.
+*/
+function safeAdd(x, y) {
+ var lsw = (x & 0xFFFF) + (y & 0xFFFF);
+ var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
+ return (msw << 16) | (lsw & 0xFFFF);
+}
+
+/*
+* Bitwise rotate a 32-bit number to the left.
+*/
+function bitRotateLeft(num, cnt) {
+ return (num << cnt) | (num >>> (32 - cnt));
+}
+
+/*
+* These functions implement the four basic operations the algorithm uses.
+*/
+function md5cmn(q, a, b, x, s, t) {
+ return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
+}
+function md5ff(a, b, c, d, x, s, t) {
+ return md5cmn((b & c) | ((~b) & d), a, b, x, s, t);
+}
+function md5gg(a, b, c, d, x, s, t) {
+ return md5cmn((b & d) | (c & (~d)), a, b, x, s, t);
+}
+function md5hh(a, b, c, d, x, s, t) {
+ return md5cmn(b ^ c ^ d, a, b, x, s, t);
+}
+function md5ii(a, b, c, d, x, s, t) {
+ return md5cmn(c ^ (b | (~d)), a, b, x, s, t);
+}
+
+module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/md5.js b/deps/npm/node_modules/uuid/lib/md5.js
new file mode 100644
index 0000000000..7044b872f5
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/md5.js
@@ -0,0 +1,25 @@
+'use strict';
+
+var crypto = require('crypto');
+
+function md5(bytes) {
+ if (typeof Buffer.from === 'function') {
+ // Modern Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
+ } else {
+ // Pre-v4 Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = new Buffer(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = new Buffer(bytes, 'utf8');
+ }
+ }
+
+ return crypto.createHash('md5').update(bytes).digest();
+}
+
+module.exports = md5;
diff --git a/deps/npm/node_modules/uuid/lib/rng-browser.js b/deps/npm/node_modules/uuid/lib/rng-browser.js
index ac39b1289b..14d21170d5 100644
--- a/deps/npm/node_modules/uuid/lib/rng-browser.js
+++ b/deps/npm/node_modules/uuid/lib/rng-browser.js
@@ -2,25 +2,26 @@
// browser this is a little complicated due to unknown quality of Math.random()
// and inconsistent support for the `crypto` API. We do the best we can via
// feature-detection
-var rng;
-var crypto = global.crypto || global.msCrypto; // for IE 11
-if (crypto && crypto.getRandomValues) {
+// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation.
+var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues.bind(crypto)) ||
+ (typeof(msCrypto) != 'undefined' && msCrypto.getRandomValues.bind(msCrypto));
+if (getRandomValues) {
// WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto
var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef
- rng = function whatwgRNG() {
- crypto.getRandomValues(rnds8);
+
+ module.exports = function whatwgRNG() {
+ getRandomValues(rnds8);
return rnds8;
};
-}
-
-if (!rng) {
+} else {
// Math.random()-based (RNG)
//
// If all else fails, use Math.random(). It's fast, but is of unspecified
// quality.
var rnds = new Array(16);
- rng = function() {
+
+ module.exports = function mathRNG() {
for (var i = 0, r; i < 16; i++) {
if ((i & 0x03) === 0) r = Math.random() * 0x100000000;
rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;
@@ -29,5 +30,3 @@ if (!rng) {
return rnds;
};
}
-
-module.exports = rng;
diff --git a/deps/npm/node_modules/uuid/lib/rng.js b/deps/npm/node_modules/uuid/lib/rng.js
index 4a0182fd68..58f0dc9cfb 100644
--- a/deps/npm/node_modules/uuid/lib/rng.js
+++ b/deps/npm/node_modules/uuid/lib/rng.js
@@ -1,10 +1,8 @@
// Unique ID creation requires a high quality random # generator. In node.js
// this is pretty straight-forward - we use the crypto API.
-var rb = require('crypto').randomBytes;
+var crypto = require('crypto');
-function rng() {
- return rb(16);
-}
-
-module.exports = rng;
+module.exports = function nodeRNG() {
+ return crypto.randomBytes(16);
+};
diff --git a/deps/npm/node_modules/uuid/lib/sha1-browser.js b/deps/npm/node_modules/uuid/lib/sha1-browser.js
index dbc3184208..5758ed75c9 100644
--- a/deps/npm/node_modules/uuid/lib/sha1-browser.js
+++ b/deps/npm/node_modules/uuid/lib/sha1-browser.js
@@ -54,7 +54,11 @@ function sha1(bytes) {
W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);
}
- var a = H[0], b = H[1], c = H[2], d = H[3], e = H[4];
+ var a = H[0];
+ var b = H[1];
+ var c = H[2];
+ var d = H[3];
+ var e = H[4];
for (var t=0; t<80; t++) {
var s = Math.floor(t/20);
diff --git a/deps/npm/node_modules/uuid/lib/sha1.js b/deps/npm/node_modules/uuid/lib/sha1.js
index e8771ce540..0b54b25072 100644
--- a/deps/npm/node_modules/uuid/lib/sha1.js
+++ b/deps/npm/node_modules/uuid/lib/sha1.js
@@ -3,19 +3,23 @@
var crypto = require('crypto');
function sha1(bytes) {
- // support modern Buffer API
- if (typeof Buffer.from === 'function') {
- if (Array.isArray(bytes)) bytes = Buffer.from(bytes);
- else if (typeof bytes === 'string') bytes = Buffer.from(bytes, 'utf8');
- }
+ if (typeof Buffer.from === 'function') {
+ // Modern Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = Buffer.from(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = Buffer.from(bytes, 'utf8');
+ }
+ } else {
+ // Pre-v4 Buffer API
+ if (Array.isArray(bytes)) {
+ bytes = new Buffer(bytes);
+ } else if (typeof bytes === 'string') {
+ bytes = new Buffer(bytes, 'utf8');
+ }
+ }
- // support pre-v4 Buffer API
- else {
- if (Array.isArray(bytes)) bytes = new Buffer(bytes);
- else if (typeof bytes === 'string') bytes = new Buffer(bytes, 'utf8');
- }
-
- return crypto.createHash('sha1').update(bytes).digest();
+ return crypto.createHash('sha1').update(bytes).digest();
}
module.exports = sha1;
diff --git a/deps/npm/node_modules/uuid/lib/v35.js b/deps/npm/node_modules/uuid/lib/v35.js
new file mode 100644
index 0000000000..842c60ea2b
--- /dev/null
+++ b/deps/npm/node_modules/uuid/lib/v35.js
@@ -0,0 +1,53 @@
+var bytesToUuid = require('./bytesToUuid');
+
+function uuidToBytes(uuid) {
+ // Note: We assume we're being passed a valid uuid string
+ var bytes = [];
+ uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
+ bytes.push(parseInt(hex, 16));
+ });
+
+ return bytes;
+}
+
+function stringToBytes(str) {
+ str = unescape(encodeURIComponent(str)); // UTF8 escape
+ var bytes = new Array(str.length);
+ for (var i = 0; i < str.length; i++) {
+ bytes[i] = str.charCodeAt(i);
+ }
+ return bytes;
+}
+
+module.exports = function(name, version, hashfunc) {
+ var generateUUID = function(value, namespace, buf, offset) {
+ var off = buf && offset || 0;
+
+ if (typeof(value) == 'string') value = stringToBytes(value);
+ if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
+
+ if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');
+ if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
+
+ // Per 4.3
+ var bytes = hashfunc(namespace.concat(value));
+ bytes[6] = (bytes[6] & 0x0f) | version;
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
+
+ if (buf) {
+ for (var idx = 0; idx < 16; ++idx) {
+ buf[off+idx] = bytes[idx];
+ }
+ }
+
+ return buf || bytesToUuid(bytes);
+ };
+
+ generateUUID.name = name;
+
+ // Pre-defined namespaces, per Appendix C
+ generateUUID.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
+ generateUUID.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
+
+ return generateUUID;
+};
diff --git a/deps/npm/node_modules/uuid/package.json b/deps/npm/node_modules/uuid/package.json
index 8aebdb2ed1..ec24a56720 100644
--- a/deps/npm/node_modules/uuid/package.json
+++ b/deps/npm/node_modules/uuid/package.json
@@ -1,41 +1,44 @@
{
- "_from": "uuid@3.1.0",
- "_id": "uuid@3.1.0",
+ "_args": [
+ [
+ "uuid@3.2.1",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "uuid@3.2.1",
+ "_id": "uuid@3.2.1",
"_inBundle": false,
- "_integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==",
+ "_integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA==",
"_location": "/uuid",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "uuid@3.1.0",
+ "raw": "uuid@3.2.1",
"name": "uuid",
"escapedName": "uuid",
- "rawSpec": "3.1.0",
+ "rawSpec": "3.2.1",
"saveSpec": null,
- "fetchSpec": "3.1.0"
+ "fetchSpec": "3.2.1"
},
"_requiredBy": [
- "#USER",
"/",
- "/request",
- "/tap/coveralls/request"
+ "/request"
],
- "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz",
- "_shasum": "3dd3d3e790abc24d7b0d3a034ffababe28ebbc04",
- "_spec": "uuid@3.1.0",
+ "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
+ "_spec": "3.2.1",
"_where": "/Users/rebecca/code/npm",
"bin": {
"uuid": "./bin/uuid"
},
"browser": {
"./lib/rng.js": "./lib/rng-browser.js",
- "./lib/sha1.js": "./lib/sha1-browser.js"
+ "./lib/sha1.js": "./lib/sha1-browser.js",
+ "./lib/md5.js": "./lib/md5-browser.js"
},
"bugs": {
"url": "https://github.com/kelektiv/node-uuid/issues"
},
- "bundleDependencies": false,
"contributors": [
{
"name": "Robert Kieffer",
@@ -58,10 +61,13 @@
"email": "shtylman@gmail.com"
}
],
- "deprecated": false,
+ "dependencies": {},
"description": "RFC4122 (v1, v4, and v5) UUIDs",
"devDependencies": {
- "mocha": "3.1.2"
+ "eslint": "4.5.0",
+ "mocha": "3.1.2",
+ "runmd": "1.0.1",
+ "standard-version": "4.2.0"
},
"homepage": "https://github.com/kelektiv/node-uuid#readme",
"keywords": [
@@ -76,7 +82,10 @@
"url": "git+https://github.com/kelektiv/node-uuid.git"
},
"scripts": {
+ "md": "runmd --watch --output=README.md README_js.md",
+ "prepare": "runmd --output=README.md README_js.md",
+ "release": "standard-version",
"test": "mocha test/test.js"
},
- "version": "3.1.0"
+ "version": "3.2.1"
}
diff --git a/deps/npm/node_modules/uuid/v1.js b/deps/npm/node_modules/uuid/v1.js
index 613f67e2e8..d84c0f4523 100644
--- a/deps/npm/node_modules/uuid/v1.js
+++ b/deps/npm/node_modules/uuid/v1.js
@@ -6,20 +6,12 @@ var bytesToUuid = require('./lib/bytesToUuid');
// Inspired by https://github.com/LiosK/UUID.js
// and http://docs.python.org/library/uuid.html
-// random #'s we need to init node and clockseq
-var _seedBytes = rng();
-
-// Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
-var _nodeId = [
- _seedBytes[0] | 0x01,
- _seedBytes[1], _seedBytes[2], _seedBytes[3], _seedBytes[4], _seedBytes[5]
-];
-
-// Per 4.2.2, randomize (14 bit) clockseq
-var _clockseq = (_seedBytes[6] << 8 | _seedBytes[7]) & 0x3fff;
+var _nodeId;
+var _clockseq;
// Previous uuid creation time
-var _lastMSecs = 0, _lastNSecs = 0;
+var _lastMSecs = 0;
+var _lastNSecs = 0;
// See https://github.com/broofa/node-uuid for API details
function v1(options, buf, offset) {
@@ -27,9 +19,27 @@ function v1(options, buf, offset) {
var b = buf || [];
options = options || {};
-
+ var node = options.node || _nodeId;
var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;
+ // node and clockseq need to be initialized to random values if they're not
+ // specified. We do this lazily to minimize issues related to insufficient
+ // system entropy. See #189
+ if (node == null || clockseq == null) {
+ var seedBytes = rng();
+ if (node == null) {
+ // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)
+ node = _nodeId = [
+ seedBytes[0] | 0x01,
+ seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]
+ ];
+ }
+ if (clockseq == null) {
+ // Per 4.2.2, randomize (14 bit) clockseq
+ clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;
+ }
+ }
+
// UUID timestamps are 100 nano-second units since the Gregorian epoch,
// (1582-10-15 00:00). JSNumbers aren't precise enough for this, so
// time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'
@@ -89,7 +99,6 @@ function v1(options, buf, offset) {
b[i++] = clockseq & 0xff;
// `node`
- var node = options.node || _nodeId;
for (var n = 0; n < 6; ++n) {
b[i + n] = node[n];
}
diff --git a/deps/npm/node_modules/uuid/v3.js b/deps/npm/node_modules/uuid/v3.js
new file mode 100644
index 0000000000..ee7e14c0f0
--- /dev/null
+++ b/deps/npm/node_modules/uuid/v3.js
@@ -0,0 +1,4 @@
+var v35 = require('./lib/v35.js');
+var md5 = require('./lib/md5');
+
+module.exports = v35('v3', 0x30, md5); \ No newline at end of file
diff --git a/deps/npm/node_modules/uuid/v4.js b/deps/npm/node_modules/uuid/v4.js
index 38b6f76a98..1f07be1c53 100644
--- a/deps/npm/node_modules/uuid/v4.js
+++ b/deps/npm/node_modules/uuid/v4.js
@@ -5,7 +5,7 @@ function v4(options, buf, offset) {
var i = buf && offset || 0;
if (typeof(options) == 'string') {
- buf = options == 'binary' ? new Array(16) : null;
+ buf = options === 'binary' ? new Array(16) : null;
options = null;
}
options = options || {};
diff --git a/deps/npm/node_modules/uuid/v5.js b/deps/npm/node_modules/uuid/v5.js
index 39cc35e7c8..4945baf385 100644
--- a/deps/npm/node_modules/uuid/v5.js
+++ b/deps/npm/node_modules/uuid/v5.js
@@ -1,42 +1,3 @@
-var sha1 = require('./lib/sha1-browser');
-var bytesToUuid = require('./lib/bytesToUuid');
-
-function uuidToBytes(uuid) {
- // Note: We assume we're being passed a valid uuid string
- var bytes = [];
- uuid.replace(/[a-fA-F0-9]{2}/g, function(hex) {
- bytes.push(parseInt(hex, 16));
- });
-
- return bytes;
-}
-
-function stringToBytes(str) {
- str = unescape(encodeURIComponent(str)); // UTF8 escape
- var bytes = new Array(str.length);
- for (var i = 0; i < str.length; i++) {
- bytes[i] = str.charCodeAt(i);
- }
- return bytes;
-}
-
-function v5(name, namespace, buf, offset) {
- if (typeof(name) == 'string') name = stringToBytes(name);
- if (typeof(namespace) == 'string') namespace = uuidToBytes(namespace);
-
- if (!Array.isArray(name)) throw TypeError('name must be an array of bytes');
- if (!Array.isArray(namespace) || namespace.length != 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values');
-
- // Per 4.3
- var bytes = sha1(namespace.concat(name));
- bytes[6] = (bytes[6] & 0x0f) | 0x50;
- bytes[8] = (bytes[8] & 0x3f) | 0x80;
-
- return buf || bytesToUuid(bytes);
-}
-
-// Pre-defined namespaces, per Appendix C
-v5.DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';
-v5.URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';
-
-module.exports = v5;
+var v35 = require('./lib/v35.js');
+var sha1 = require('./lib/sha1');
+module.exports = v35('v5', 0x50, sha1);
diff --git a/deps/npm/node_modules/validate-npm-package-license/LICENSE b/deps/npm/node_modules/validate-npm-package-license/LICENSE
index a5e905d552..d645695673 100644
--- a/deps/npm/node_modules/validate-npm-package-license/LICENSE
+++ b/deps/npm/node_modules/validate-npm-package-license/LICENSE
@@ -1,174 +1,202 @@
-SPDX:Apache-2.0
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and
-distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the
-copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other
-entities that control, are controlled by, or are under common control
-with that entity. For the purposes of this definition, "control" means
-(i) the power, direct or indirect, to cause the direction or management
-of such entity, whether by contract or otherwise, or (ii) ownership of
-fifty percent (50%) or more of the outstanding shares, or (iii)
-beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising
-permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications,
-including but not limited to software source code, documentation source,
-and configuration files.
-
-"Object" form shall mean any form resulting from mechanical
-transformation or translation of a Source form, including but not
-limited to compiled object code, generated documentation, and
-conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object
-form, made available under the License, as indicated by a copyright
-notice that is included in or attached to the work (an example is
-provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object
-form, that is based on (or derived from) the Work and for which the
-editorial revisions, annotations, elaborations, or other modifications
-represent, as a whole, an original work of authorship. For the purposes
-of this License, Derivative Works shall not include works that remain
-separable from, or merely link (or bind by name) to the interfaces of,
-the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original
-version of the Work and any modifications or additions to that Work or
-Derivative Works thereof, that is intentionally submitted to Licensor
-for inclusion in the Work by the copyright owner or by an individual or
-Legal Entity authorized to submit on behalf of the copyright owner. For
-the purposes of this definition, "submitted" means any form of
-electronic, verbal, or written communication sent to the Licensor or its
-representatives, including but not limited to communication on
-electronic mailing lists, source code control systems, and issue
-tracking systems that are managed by, or on behalf of, the Licensor for
-the purpose of discussing and improving the Work, but excluding
-communication that is conspicuously marked or otherwise designated in
-writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on
-behalf of whom a Contribution has been received by Licensor and
-subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-this License, each Contributor hereby grants to You a perpetual,
-worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright
-license to reproduce, prepare Derivative Works of, publicly display,
-publicly perform, sublicense, and distribute the Work and such
-Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this
-License, each Contributor hereby grants to You a perpetual, worldwide,
-non-exclusive, no-charge, royalty-free, irrevocable (except as stated in
-this section) patent license to make, have made, use, offer to sell,
-sell, import, and otherwise transfer the Work, where such license
-applies only to those patent claims licensable by such Contributor that
-are necessarily infringed by their Contribution(s) alone or by
-combination of their Contribution(s) with the Work to which such
-Contribution(s) was submitted. If You institute patent litigation
-against any entity (including a cross-claim or counterclaim in a
-lawsuit) alleging that the Work or a Contribution incorporated within
-the Work constitutes direct or contributory patent infringement, then
-any patent licenses granted to You under this License for that Work
-shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work
-or Derivative Works thereof in any medium, with or without
-modifications, and in Source or Object form, provided that You meet the
-following conditions:
-
-(a) You must give any other recipients of the Work or Derivative Works a
-copy of this License; and
-
-(b) You must cause any modified files to carry prominent notices stating
-that You changed the files; and
-
-(c) You must retain, in the Source form of any Derivative Works that You
-distribute, all copyright, patent, trademark, and attribution notices
-from the Source form of the Work, excluding those notices that do not
-pertain to any part of the Derivative Works; and
-
-(d) If the Work includes a "NOTICE" text file as part of its
-distribution, then any Derivative Works that You distribute must include
-a readable copy of the attribution notices contained within such NOTICE
-file, excluding those notices that do not pertain to any part of the
-Derivative Works, in at least one of the following places: within a
-NOTICE text file distributed as part of the Derivative Works; within the
-Source form or documentation, if provided along with the Derivative
-Works; or, within a display generated by the Derivative Works, if and
-wherever such third-party notices normally appear. The contents of the
-NOTICE file are for informational purposes only and do not modify the
-License. You may add Your own attribution notices within Derivative
-Works that You distribute, alongside or as an addendum to the NOTICE
-text from the Work, provided that such additional attribution notices
-cannot be construed as modifying the License.
-
-You may add Your own copyright statement to Your modifications and may
-provide additional or different license terms and conditions for use,
-reproduction, or distribution of Your modifications, or for any such
-Derivative Works as a whole, provided Your use, reproduction, and
-distribution of the Work otherwise complies with the conditions stated
-in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-any Contribution intentionally submitted for inclusion in the Work by
-You to the Licensor shall be under the terms and conditions of this
-License, without any additional terms or conditions. Notwithstanding the
-above, nothing herein shall supersede or modify the terms of any
-separate license agreement you may have executed with Licensor regarding
-such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-names, trademarks, service marks, or product names of the Licensor,
-except as required for reasonable and customary use in describing the
-origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed
-to in writing, Licensor provides the Work (and each Contributor provides
-its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, either express or implied, including, without limitation,
-any warranties or conditions of TITLE, NON-INFRINGEMENT,
-MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely
-responsible for determining the appropriateness of using or
-redistributing the Work and assume any risks associated with Your
-exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-whether in tort (including negligence), contract, or otherwise, unless
-required by applicable law (such as deliberate and grossly negligent
-acts) or agreed to in writing, shall any Contributor be liable to You
-for damages, including any direct, indirect, special, incidental, or
-consequential damages of any character arising as a result of this
-License or out of the use or inability to use the Work (including but
-not limited to damages for loss of goodwill, work stoppage, computer
-failure or malfunction, or any and all other commercial damages or
-losses), even if such Contributor has been advised of the possibility of
-such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the
-Work or Derivative Works thereof, You may choose to offer, and charge a
-fee for, acceptance of support, warranty, indemnity, or other liability
-obligations and/or rights consistent with this License. However, in
-accepting such obligations, You may act only on Your own behalf and on
-Your sole responsibility, not on behalf of any other Contributor, and
-only if You agree to indemnify, defend, and hold each Contributor
-harmless for any liability incurred by, or claims asserted against, such
-Contributor by reason of your accepting any such warranty or additional
-liability.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ 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/validate-npm-package-license/README.md b/deps/npm/node_modules/validate-npm-package-license/README.md
index c5b3bfcf38..702bc7b4f3 100644
--- a/deps/npm/node_modules/validate-npm-package-license/README.md
+++ b/deps/npm/node_modules/validate-npm-package-license/README.md
@@ -47,7 +47,7 @@ SPDX expressions are valid, too ...
```javascript
// Simple SPDX license expression for dual licensing
assert.deepEqual(
- valid('(GPL-3.0 OR BSD-2-Clause)'),
+ valid('(GPL-3.0-only OR BSD-2-Clause)'),
validSPDXExpression
);
```
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE
deleted file mode 100644
index 4b54239b2e..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/LICENSE
+++ /dev/null
@@ -1,57 +0,0 @@
-SPDX:Apache-2.0
-
-Apache License
-
-Version 2.0, January 2004
-
-http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-
-"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-
-"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-
-"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
-
-"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-
-"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-
-"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-
-"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-
-"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
-
-"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-
-(a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
-
-(b) You must cause any modified files to carry prominent notices stating that You changed the files; and
-
-(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
-
-(d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
-
-You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md
deleted file mode 100644
index 4289e5cd8c..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-```javascript
-var correct = require('spdx-correct');
-var assert = require('assert');
-
-assert.equal(correct('mit'), 'MIT')
-
-assert.equal(correct('Apache 2'), 'Apache-2.0')
-
-assert(correct('No idea what license') === null)
-```
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js
deleted file mode 100644
index 75b7a21afe..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/index.js
+++ /dev/null
@@ -1,237 +0,0 @@
-var licenseIDs = require('spdx-license-ids');
-
-function valid(string) {
- return licenseIDs.indexOf(string) > -1;
-}
-
-// Common transpositions of license identifier acronyms
-var transpositions = [
- ['APGL', 'AGPL'],
- ['Gpl', 'GPL'],
- ['GLP', 'GPL'],
- ['APL', 'Apache'],
- ['ISD', 'ISC'],
- ['GLP', 'GPL'],
- ['IST', 'ISC'],
- ['Claude', 'Clause'],
- [' or later', '+'],
- [' International', ''],
- ['GNU', 'GPL'],
- ['GUN', 'GPL'],
- ['+', ''],
- ['GNU GPL', 'GPL'],
- ['GNU/GPL', 'GPL'],
- ['GNU GLP', 'GPL'],
- ['GNU General Public License', 'GPL'],
- ['Gnu public license', 'GPL'],
- ['GNU Public License', 'GPL'],
- ['GNU GENERAL PUBLIC LICENSE', 'GPL'],
- ['MTI', 'MIT'],
- ['Mozilla Public License', 'MPL'],
- ['WTH', 'WTF'],
- ['-License', '']
-];
-
-var TRANSPOSED = 0;
-var CORRECT = 1;
-
-// Simple corrections to nearly valid identifiers.
-var transforms = [
- // e.g. 'mit'
- function(argument) {
- return argument.toUpperCase();
- },
- // e.g. 'MIT '
- function(argument) {
- return argument.trim();
- },
- // e.g. 'M.I.T.'
- function(argument) {
- return argument.replace(/\./g, '');
- },
- // e.g. 'Apache- 2.0'
- function(argument) {
- return argument.replace(/\s+/g, '');
- },
- // e.g. 'CC BY 4.0''
- function(argument) {
- return argument.replace(/\s+/g, '-');
- },
- // e.g. 'LGPLv2.1'
- function(argument) {
- return argument.replace('v', '-');
- },
- // e.g. 'Apache 2.0'
- function(argument) {
- return argument.replace(/,?\s*(\d)/, '-$1');
- },
- // e.g. 'GPL 2'
- function(argument) {
- return argument.replace(/,?\s*(\d)/, '-$1.0');
- },
- // e.g. 'Apache Version 2.0'
- function(argument) {
- return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2');
- },
- // e.g. 'Apache Version 2'
- function(argument) {
- return argument.replace(/,?\s*(V\.|v\.|V|v|Version|version)\s*(\d)/, '-$2.0');
- },
- // e.g. 'ZLIB'
- function(argument) {
- return argument[0].toUpperCase() + argument.slice(1);
- },
- // e.g. 'MPL/2.0'
- function(argument) {
- return argument.replace('/', '-');
- },
- // e.g. 'Apache 2'
- function(argument) {
- return argument
- .replace(/\s*V\s*(\d)/, '-$1')
- .replace(/(\d)$/, '$1.0');
- },
- // e.g. 'GPL-2.0-'
- function(argument) {
- return argument.slice(0, argument.length - 1);
- },
- // e.g. 'GPL2'
- function(argument) {
- return argument.replace(/(\d)$/, '-$1.0');
- },
- // e.g. 'BSD 3'
- function(argument) {
- return argument.replace(/(-| )?(\d)$/, '-$2-Clause');
- },
- // e.g. 'BSD clause 3'
- function(argument) {
- return argument.replace(/(-| )clause(-| )(\d)/, '-$3-Clause');
- },
- // e.g. 'BY-NC-4.0'
- function(argument) {
- return 'CC-' + argument;
- },
- // e.g. 'BY-NC'
- function(argument) {
- return 'CC-' + argument + '-4.0';
- },
- // e.g. 'Attribution-NonCommercial'
- function(argument) {
- return argument
- .replace('Attribution', 'BY')
- .replace('NonCommercial', 'NC')
- .replace('NoDerivatives', 'ND')
- .replace(/ (\d)/, '-$1')
- .replace(/ ?International/, '');
- },
- // e.g. 'Attribution-NonCommercial'
- function(argument) {
- return 'CC-' +
- argument
- .replace('Attribution', 'BY')
- .replace('NonCommercial', 'NC')
- .replace('NoDerivatives', 'ND')
- .replace(/ (\d)/, '-$1')
- .replace(/ ?International/, '') +
- '-4.0';
- }
-];
-
-// If all else fails, guess that strings containing certain substrings
-// meant to identify certain licenses.
-var lastResorts = [
- ['UNLI', 'Unlicense'],
- ['WTF', 'WTFPL'],
- ['2 CLAUSE', 'BSD-2-Clause'],
- ['2-CLAUSE', 'BSD-2-Clause'],
- ['3 CLAUSE', 'BSD-3-Clause'],
- ['3-CLAUSE', 'BSD-3-Clause'],
- ['AFFERO', 'AGPL-3.0'],
- ['AGPL', 'AGPL-3.0'],
- ['APACHE', 'Apache-2.0'],
- ['ARTISTIC', 'Artistic-2.0'],
- ['Affero', 'AGPL-3.0'],
- ['BEER', 'Beerware'],
- ['BOOST', 'BSL-1.0'],
- ['BSD', 'BSD-2-Clause'],
- ['ECLIPSE', 'EPL-1.0'],
- ['FUCK', 'WTFPL'],
- ['GNU', 'GPL-3.0'],
- ['LGPL', 'LGPL-3.0'],
- ['GPL', 'GPL-3.0'],
- ['MIT', 'MIT'],
- ['MPL', 'MPL-2.0'],
- ['X11', 'X11'],
- ['ZLIB', 'Zlib']
-];
-
-var SUBSTRING = 0;
-var IDENTIFIER = 1;
-
-var validTransformation = function(identifier) {
- for (var i = 0; i < transforms.length; i++) {
- var transformed = transforms[i](identifier);
- if (transformed !== identifier && valid(transformed)) {
- return transformed;
- }
- }
- return null;
-};
-
-var validLastResort = function(identifier) {
- var upperCased = identifier.toUpperCase();
- for (var i = 0; i < lastResorts.length; i++) {
- var lastResort = lastResorts[i];
- if (upperCased.indexOf(lastResort[SUBSTRING]) > -1) {
- return lastResort[IDENTIFIER];
- }
- }
- return null;
-};
-
-var anyCorrection = function(identifier, check) {
- for (var i = 0; i < transpositions.length; i++) {
- var transposition = transpositions[i];
- var transposed = transposition[TRANSPOSED];
- if (identifier.indexOf(transposed) > -1) {
- var corrected = identifier.replace(
- transposed,
- transposition[CORRECT]
- );
- var checked = check(corrected);
- if (checked !== null) {
- return checked;
- }
- }
- }
- return null;
-};
-
-module.exports = function(identifier) {
- identifier = identifier.replace(/\+$/, '');
- if (valid(identifier)) {
- return identifier;
- }
- var transformed = validTransformation(identifier);
- if (transformed !== null) {
- return transformed;
- }
- transformed = anyCorrection(identifier, function(argument) {
- if (valid(argument)) {
- return argument;
- }
- return validTransformation(argument);
- });
- if (transformed !== null) {
- return transformed;
- }
- transformed = validLastResort(identifier);
- if (transformed !== null) {
- return transformed;
- }
- transformed = anyCorrection(identifier, validLastResort);
- if (transformed !== null) {
- return transformed;
- }
- return null;
-};
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE
deleted file mode 100644
index 68a49daad8..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/LICENSE
+++ /dev/null
@@ -1,24 +0,0 @@
-This is free and unencumbered software released into the public domain.
-
-Anyone is free to copy, modify, publish, use, compile, sell, or
-distribute this software, either in source code form or as a compiled
-binary, for any purpose, commercial or non-commercial, and by any
-means.
-
-In jurisdictions that recognize copyright laws, the author or authors
-of this software dedicate any and all copyright interest in the
-software to the public domain. We make this dedication for the benefit
-of the public at large and to the detriment of our heirs and
-successors. We intend this dedication to be an overt act of
-relinquishment in perpetuity of all present and future rights to this
-software under copyright law.
-
-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 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.
-
-For more information, please refer to <http://unlicense.org/>
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md
deleted file mode 100644
index 92523532b2..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/README.md
+++ /dev/null
@@ -1,55 +0,0 @@
-# spdx-license-ids
-
-A list of [SPDX license](https://spdx.org/licenses/) identifiers
-
-[**Download JSON**](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids.json)
-
-## Use as a JavaScript Library
-
-[![NPM version](https://img.shields.io/npm/v/spdx-license-ids.svg)](https://www.npmjs.org/package/spdx-license-ids)
-[![Bower version](https://img.shields.io/bower/v/spdx-license-ids.svg)](https://github.com/shinnn/spdx-license-ids/releases)
-[![Build Status](https://travis-ci.org/shinnn/spdx-license-ids.svg?branch=master)](https://travis-ci.org/shinnn/spdx-license-ids)
-[![Coverage Status](https://img.shields.io/coveralls/shinnn/spdx-license-ids.svg)](https://coveralls.io/r/shinnn/spdx-license-ids)
-[![devDependency Status](https://david-dm.org/shinnn/spdx-license-ids/dev-status.svg)](https://david-dm.org/shinnn/spdx-license-ids#info=devDependencies)
-
-### Installation
-
-#### Package managers
-
-##### [npm](https://www.npmjs.com/)
-
-```sh
-npm install spdx-license-ids
-```
-
-##### [bower](http://bower.io/)
-
-```sh
-bower install spdx-license-ids
-```
-
-##### [Duo](http://duojs.org/)
-
-```javascript
-const spdxLicenseIds = require('shinnn/spdx-license-ids');
-```
-
-#### Standalone
-
-[Download the script file directly.](https://raw.githubusercontent.com/shinnn/spdx-license-ids/master/spdx-license-ids-browser.js)
-
-### API
-
-#### spdxLicenseIds
-
-Type: `Array` of `String`
-
-It returns an array of SPDX license identifiers.
-
-```javascript
-const spdxLicenseIds = require('spdx-license-ids'); //=> ['Glide', 'Abstyles', 'AFL-1.1', ... ]
-```
-
-## License
-
-[The Unlicense](./LICENSE).
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json
deleted file mode 100644
index fce0ad83db..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/package.json
+++ /dev/null
@@ -1,84 +0,0 @@
-{
- "_from": "spdx-license-ids@^1.0.2",
- "_id": "spdx-license-ids@1.2.2",
- "_integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
- "_location": "/validate-npm-package-license/spdx-correct/spdx-license-ids",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "spdx-license-ids@^1.0.2",
- "name": "spdx-license-ids",
- "escapedName": "spdx-license-ids",
- "rawSpec": "^1.0.2",
- "saveSpec": null,
- "fetchSpec": "^1.0.2"
- },
- "_requiredBy": [
- "/validate-npm-package-license/spdx-correct"
- ],
- "_resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
- "_shasum": "c9df7a3424594ade6bd11900d596696dc06bac57",
- "_shrinkwrap": null,
- "_spec": "spdx-license-ids@^1.0.2",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct",
- "author": {
- "name": "Shinnosuke Watanabe",
- "url": "https://github.com/shinnn"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/shinnn/spdx-license-ids/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "A list of SPDX license identifiers",
- "devDependencies": {
- "@shinnn/eslint-config-node": "^3.0.0",
- "chalk": "^1.1.3",
- "eslint": "^3.1.1",
- "get-spdx-license-ids": "^1.0.0",
- "istanbul": "^0.4.4",
- "loud-rejection": "^1.6.0",
- "rimraf-promise": "^2.0.0",
- "stringify-object": "^2.4.0",
- "tap-spec": "^4.1.1",
- "tape": "^4.6.0",
- "write-file-atomically": "1.0.0"
- },
- "files": [
- "spdx-license-ids.json"
- ],
- "homepage": "https://github.com/shinnn/spdx-license-ids#readme",
- "keywords": [
- "spdx",
- "license",
- "licenses",
- "id",
- "identifier",
- "identifiers",
- "json",
- "array",
- "oss",
- "browser",
- "client-side"
- ],
- "license": "Unlicense",
- "main": "spdx-license-ids.json",
- "name": "spdx-license-ids",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/shinnn/spdx-license-ids.git"
- },
- "scripts": {
- "build": "node --strong_mode build.js",
- "coverage": "node --strong_mode node_modules/.bin/istanbul cover test.js",
- "lint": "eslint --config @shinnn/node --env browser --ignore-path .gitignore .",
- "pretest": "${npm_package_scripts_build} && ${npm_package_scripts_lint}",
- "test": "node --strong_mode test.js | tap-spec"
- },
- "version": "1.2.2"
-}
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json
deleted file mode 100644
index 1c60d6eed9..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/node_modules/spdx-license-ids/spdx-license-ids.json
+++ /dev/null
@@ -1,334 +0,0 @@
-[
- "Glide",
- "Abstyles",
- "AFL-1.1",
- "AFL-1.2",
- "AFL-2.0",
- "AFL-2.1",
- "AFL-3.0",
- "AMPAS",
- "APL-1.0",
- "Adobe-Glyph",
- "APAFML",
- "Adobe-2006",
- "AGPL-1.0",
- "Afmparse",
- "Aladdin",
- "ADSL",
- "AMDPLPA",
- "ANTLR-PD",
- "Apache-1.0",
- "Apache-1.1",
- "Apache-2.0",
- "AML",
- "APSL-1.0",
- "APSL-1.1",
- "APSL-1.2",
- "APSL-2.0",
- "Artistic-1.0",
- "Artistic-1.0-Perl",
- "Artistic-1.0-cl8",
- "Artistic-2.0",
- "AAL",
- "Bahyph",
- "Barr",
- "Beerware",
- "BitTorrent-1.0",
- "BitTorrent-1.1",
- "BSL-1.0",
- "Borceux",
- "BSD-2-Clause",
- "BSD-2-Clause-FreeBSD",
- "BSD-2-Clause-NetBSD",
- "BSD-3-Clause",
- "BSD-3-Clause-Clear",
- "BSD-4-Clause",
- "BSD-Protection",
- "BSD-Source-Code",
- "BSD-3-Clause-Attribution",
- "0BSD",
- "BSD-4-Clause-UC",
- "bzip2-1.0.5",
- "bzip2-1.0.6",
- "Caldera",
- "CECILL-1.0",
- "CECILL-1.1",
- "CECILL-2.0",
- "CECILL-2.1",
- "CECILL-B",
- "CECILL-C",
- "ClArtistic",
- "MIT-CMU",
- "CNRI-Jython",
- "CNRI-Python",
- "CNRI-Python-GPL-Compatible",
- "CPOL-1.02",
- "CDDL-1.0",
- "CDDL-1.1",
- "CPAL-1.0",
- "CPL-1.0",
- "CATOSL-1.1",
- "Condor-1.1",
- "CC-BY-1.0",
- "CC-BY-2.0",
- "CC-BY-2.5",
- "CC-BY-3.0",
- "CC-BY-4.0",
- "CC-BY-ND-1.0",
- "CC-BY-ND-2.0",
- "CC-BY-ND-2.5",
- "CC-BY-ND-3.0",
- "CC-BY-ND-4.0",
- "CC-BY-NC-1.0",
- "CC-BY-NC-2.0",
- "CC-BY-NC-2.5",
- "CC-BY-NC-3.0",
- "CC-BY-NC-4.0",
- "CC-BY-NC-ND-1.0",
- "CC-BY-NC-ND-2.0",
- "CC-BY-NC-ND-2.5",
- "CC-BY-NC-ND-3.0",
- "CC-BY-NC-ND-4.0",
- "CC-BY-NC-SA-1.0",
- "CC-BY-NC-SA-2.0",
- "CC-BY-NC-SA-2.5",
- "CC-BY-NC-SA-3.0",
- "CC-BY-NC-SA-4.0",
- "CC-BY-SA-1.0",
- "CC-BY-SA-2.0",
- "CC-BY-SA-2.5",
- "CC-BY-SA-3.0",
- "CC-BY-SA-4.0",
- "CC0-1.0",
- "Crossword",
- "CrystalStacker",
- "CUA-OPL-1.0",
- "Cube",
- "curl",
- "D-FSL-1.0",
- "diffmark",
- "WTFPL",
- "DOC",
- "Dotseqn",
- "DSDP",
- "dvipdfm",
- "EPL-1.0",
- "ECL-1.0",
- "ECL-2.0",
- "eGenix",
- "EFL-1.0",
- "EFL-2.0",
- "MIT-advertising",
- "MIT-enna",
- "Entessa",
- "ErlPL-1.1",
- "EUDatagrid",
- "EUPL-1.0",
- "EUPL-1.1",
- "Eurosym",
- "Fair",
- "MIT-feh",
- "Frameworx-1.0",
- "FreeImage",
- "FTL",
- "FSFAP",
- "FSFUL",
- "FSFULLR",
- "Giftware",
- "GL2PS",
- "Glulxe",
- "AGPL-3.0",
- "GFDL-1.1",
- "GFDL-1.2",
- "GFDL-1.3",
- "GPL-1.0",
- "GPL-2.0",
- "GPL-3.0",
- "LGPL-2.1",
- "LGPL-3.0",
- "LGPL-2.0",
- "gnuplot",
- "gSOAP-1.3b",
- "HaskellReport",
- "HPND",
- "IBM-pibs",
- "IPL-1.0",
- "ICU",
- "ImageMagick",
- "iMatix",
- "Imlib2",
- "IJG",
- "Info-ZIP",
- "Intel-ACPI",
- "Intel",
- "Interbase-1.0",
- "IPA",
- "ISC",
- "JasPer-2.0",
- "JSON",
- "LPPL-1.0",
- "LPPL-1.1",
- "LPPL-1.2",
- "LPPL-1.3a",
- "LPPL-1.3c",
- "Latex2e",
- "BSD-3-Clause-LBNL",
- "Leptonica",
- "LGPLLR",
- "Libpng",
- "libtiff",
- "LAL-1.2",
- "LAL-1.3",
- "LiLiQ-P-1.1",
- "LiLiQ-Rplus-1.1",
- "LiLiQ-R-1.1",
- "LPL-1.02",
- "LPL-1.0",
- "MakeIndex",
- "MTLL",
- "MS-PL",
- "MS-RL",
- "MirOS",
- "MITNFA",
- "MIT",
- "Motosoto",
- "MPL-1.0",
- "MPL-1.1",
- "MPL-2.0",
- "MPL-2.0-no-copyleft-exception",
- "mpich2",
- "Multics",
- "Mup",
- "NASA-1.3",
- "Naumen",
- "NBPL-1.0",
- "NetCDF",
- "NGPL",
- "NOSL",
- "NPL-1.0",
- "NPL-1.1",
- "Newsletr",
- "NLPL",
- "Nokia",
- "NPOSL-3.0",
- "NLOD-1.0",
- "Noweb",
- "NRL",
- "NTP",
- "Nunit",
- "OCLC-2.0",
- "ODbL-1.0",
- "PDDL-1.0",
- "OCCT-PL",
- "OGTSL",
- "OLDAP-2.2.2",
- "OLDAP-1.1",
- "OLDAP-1.2",
- "OLDAP-1.3",
- "OLDAP-1.4",
- "OLDAP-2.0",
- "OLDAP-2.0.1",
- "OLDAP-2.1",
- "OLDAP-2.2",
- "OLDAP-2.2.1",
- "OLDAP-2.3",
- "OLDAP-2.4",
- "OLDAP-2.5",
- "OLDAP-2.6",
- "OLDAP-2.7",
- "OLDAP-2.8",
- "OML",
- "OPL-1.0",
- "OSL-1.0",
- "OSL-1.1",
- "OSL-2.0",
- "OSL-2.1",
- "OSL-3.0",
- "OpenSSL",
- "OSET-PL-2.1",
- "PHP-3.0",
- "PHP-3.01",
- "Plexus",
- "PostgreSQL",
- "psfrag",
- "psutils",
- "Python-2.0",
- "QPL-1.0",
- "Qhull",
- "Rdisc",
- "RPSL-1.0",
- "RPL-1.1",
- "RPL-1.5",
- "RHeCos-1.1",
- "RSCPL",
- "RSA-MD",
- "Ruby",
- "SAX-PD",
- "Saxpath",
- "SCEA",
- "SWL",
- "SMPPL",
- "Sendmail",
- "SGI-B-1.0",
- "SGI-B-1.1",
- "SGI-B-2.0",
- "OFL-1.0",
- "OFL-1.1",
- "SimPL-2.0",
- "Sleepycat",
- "SNIA",
- "Spencer-86",
- "Spencer-94",
- "Spencer-99",
- "SMLNJ",
- "SugarCRM-1.1.3",
- "SISSL",
- "SISSL-1.2",
- "SPL-1.0",
- "Watcom-1.0",
- "TCL",
- "Unlicense",
- "TMate",
- "TORQUE-1.1",
- "TOSL",
- "Unicode-TOU",
- "UPL-1.0",
- "NCSA",
- "Vim",
- "VOSTROM",
- "VSL-1.0",
- "W3C-19980720",
- "W3C",
- "Wsuipa",
- "Xnet",
- "X11",
- "Xerox",
- "XFree86-1.1",
- "xinetd",
- "xpp",
- "XSkat",
- "YPL-1.0",
- "YPL-1.1",
- "Zed",
- "Zend-2.0",
- "Zimbra-1.3",
- "Zimbra-1.4",
- "Zlib",
- "zlib-acknowledgement",
- "ZPL-1.1",
- "ZPL-2.0",
- "ZPL-2.1",
- "BSD-3-Clause-No-Nuclear-License",
- "BSD-3-Clause-No-Nuclear-Warranty",
- "BSD-3-Clause-No-Nuclear-License-2014",
- "eCos-2.0",
- "GPL-2.0-with-autoconf-exception",
- "GPL-2.0-with-bison-exception",
- "GPL-2.0-with-classpath-exception",
- "GPL-2.0-with-font-exception",
- "GPL-2.0-with-GCC-exception",
- "GPL-3.0-with-autoconf-exception",
- "GPL-3.0-with-GCC-exception",
- "StandardML-NJ",
- "WXwindows"
-]
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json
deleted file mode 100644
index 36b002a0ee..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-correct/package.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "_from": "spdx-correct@~1.0.0",
- "_id": "spdx-correct@1.0.2",
- "_integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
- "_location": "/validate-npm-package-license/spdx-correct",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "spdx-correct@~1.0.0",
- "name": "spdx-correct",
- "escapedName": "spdx-correct",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/validate-npm-package-license"
- ],
- "_resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
- "_shasum": "4b3073d933ff51f3912f03ac5519498a4150db40",
- "_shrinkwrap": null,
- "_spec": "spdx-correct@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/validate-npm-package-license",
- "author": {
- "name": "Kyle E. Mitchell",
- "email": "kyle@kemitchell.com",
- "url": "https://kemitchell.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/kemitchell/spdx-correct.js/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "spdx-license-ids": "^1.0.2"
- },
- "deprecated": false,
- "description": "correct invalid SPDX identifiers",
- "devDependencies": {
- "defence-cli": "^1.0.1",
- "replace-require-self": "^1.0.0",
- "spdx-expression-parse": "^1.0.0",
- "tape": "~4.0.0"
- },
- "homepage": "https://github.com/kemitchell/spdx-correct.js#readme",
- "keywords": [
- "SPDX",
- "law",
- "legal",
- "license",
- "metadata"
- ],
- "license": "Apache-2.0",
- "name": "spdx-correct",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kemitchell/spdx-correct.js.git"
- },
- "scripts": {
- "test": "defence README.md | replace-require-self | node && tape *.test.js"
- },
- "version": "1.0.2"
-}
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md
deleted file mode 100644
index 9928cdccfc..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/README.md
+++ /dev/null
@@ -1,83 +0,0 @@
-This package parses SPDX license expression strings describing license terms, like [package.json license strings](https://docs.npmjs.com/files/package.json#license), into consistently structured ECMAScript objects. The npm command-line interface depends on this package, as do many automatic license-audit tools.
-
-In a nutshell:
-
-```javascript
-var parse = require('spdx-expression-parse')
-var assert = require('assert')
-
-assert.deepEqual(
- // Licensed under the terms of the Two-Clause BSD License.
- parse('BSD-2-Clause'),
- {license: 'BSD-2-Clause'}
-)
-
-assert.throws(function () {
- // An invalid SPDX license expression.
- // Should be `Apache-2.0`.
- parse('Apache 2')
-})
-
-assert.deepEqual(
- // Dual licensed under LGPL 2.1 or a combination of the Three-Clause
- // BSD License and the MIT License.
- parse('(LGPL-2.1 OR BSD-3-Clause AND MIT)'),
- {
- left: {license: 'LGPL-2.1'},
- conjunction: 'or',
- right: {
- left: {license: 'BSD-3-Clause'},
- conjunction: 'and',
- right: {license: 'MIT'}
- }
- }
-)
-```
-
-The syntax comes from the [Software Package Data eXchange (SPDX)](https://spdx.org/), a standard from the [Linux Foundation](https://www.linuxfoundation.org) for shareable data about software package license terms. SPDX aims to make sharing and auditing license data easy, especially for users of open-source software.
-
-The bulk of the SPDX standard describes syntax and semantics of XML metadata files. This package implements two lightweight, plain-text components of that larger standard:
-
-1. The [license list](https://spdx.org/licenses), a mapping from specific string identifiers, like `Apache-2.0`, to standard form license texts and bolt-on license exceptions. The [spdx-license-ids](https://www.npmjs.com/package/spdx-exceptions) and [spdx-exceptions](https://www.npmjs.com/package/spdx-license-ids) packages implement the license list. They are development dependencies of this package.
-
- Any license identifier from the license list is a valid license expression:
-
- ```javascript
- require('spdx-license-ids').forEach(function (id) {
- assert.deepEqual(parse(id), {license: id})
- })
- ```
-
- So is any license identifier `WITH` a standardized license exception:
-
- ```javascript
- require('spdx-license-ids').forEach(function (id) {
- require('spdx-exceptions').forEach(function (e) {
- assert.deepEqual(
- parse(id + ' WITH ' + e),
- {license: id, exception: e}
- )
- })
- })
- ```
-
-2. The license expression language, for describing simple and complex license terms, like `MIT` for MIT-licensed and `(GPL-2.0 OR Apache-2.0)` for dual-licensing under GPL 2.0 and Apache 2.0. This package implements the license expression language.
-
- ```javascript
- assert.deepEqual(
- // Licensed under a combination of the MIT License and a combination
- // of LGPL 2.1 (or a later version) and the Three-Clause BSD License.
- parse('(MIT AND (LGPL-2.1+ AND BSD-3-Clause))'),
- {
- left: {license: 'MIT'},
- conjunction: 'and',
- right: {
- left: {license: 'LGPL-2.1', plus: true},
- conjunction: 'and',
- right: {license: 'BSD-3-Clause'}
- }
- }
- )
- ```
-
-The Linux Foundation and its contributors license the SPDX standard under the terms of [the Creative Commons Attribution License 3.0 Unported (SPDX: "CC-BY-3.0")](http://spdx.org/licenses/CC-BY-3.0). "SPDX" is a United States federally registered trademark of the Linux Foundation. The authors of this package license their work under the terms of the MIT License.
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js
deleted file mode 100644
index 56a9b50c65..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-var parser = require('./parser').parser
-
-module.exports = function (argument) {
- return parser.parse(argument)
-}
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json
deleted file mode 100644
index 5a309a16eb..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/package.json
+++ /dev/null
@@ -1,93 +0,0 @@
-{
- "_from": "spdx-expression-parse@~1.0.0",
- "_id": "spdx-expression-parse@1.0.4",
- "_integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
- "_location": "/validate-npm-package-license/spdx-expression-parse",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "spdx-expression-parse@~1.0.0",
- "name": "spdx-expression-parse",
- "escapedName": "spdx-expression-parse",
- "rawSpec": "~1.0.0",
- "saveSpec": null,
- "fetchSpec": "~1.0.0"
- },
- "_requiredBy": [
- "/validate-npm-package-license"
- ],
- "_resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
- "_shasum": "9bdf2f20e1f40ed447fbe273266191fced51626c",
- "_shrinkwrap": null,
- "_spec": "spdx-expression-parse@~1.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/validate-npm-package-license",
- "author": {
- "name": "Kyle E. Mitchell",
- "email": "kyle@kemitchell.com",
- "url": "http://kemitchell.com"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/kemitchell/spdx-expression-parse.js/issues"
- },
- "bundleDependencies": false,
- "contributors": [
- {
- "name": "C. Scott Ananian",
- "email": "cscott@cscott.net",
- "url": "http://cscott.net"
- },
- {
- "name": "Kyle E. Mitchell",
- "email": "kyle@kemitchell.com",
- "url": "https://kemitchell.com"
- },
- {
- "name": "Shinnosuke Watanabe",
- "email": "snnskwtnb@gmail.com"
- }
- ],
- "dependencies": {},
- "deprecated": false,
- "description": "parse SPDX license expressions",
- "devDependencies": {
- "defence-cli": "^1.0.1",
- "jison": "^0.4.15",
- "replace-require-self": "^1.0.0",
- "spdx-exceptions": "^1.0.4",
- "spdx-license-ids": "^1.0.0",
- "standard": "^8.0.0"
- },
- "files": [
- "AUTHORS",
- "index.js",
- "parser.js"
- ],
- "homepage": "https://github.com/kemitchell/spdx-expression-parse.js#readme",
- "keywords": [
- "SPDX",
- "law",
- "legal",
- "license",
- "metadata",
- "package",
- "package.json",
- "standards"
- ],
- "license": "(MIT AND CC-BY-3.0)",
- "name": "spdx-expression-parse",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/kemitchell/spdx-expression-parse.js.git"
- },
- "scripts": {
- "lint": "standard",
- "prepublish": "node generate-parser.js > parser.js",
- "pretest": "npm run prepublish",
- "test": "defence -i javascript README.md | replace-require-self | node"
- },
- "version": "1.0.4"
-}
diff --git a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js b/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js
deleted file mode 100644
index a5e2edbaa2..0000000000
--- a/deps/npm/node_modules/validate-npm-package-license/node_modules/spdx-expression-parse/parser.js
+++ /dev/null
@@ -1,1357 +0,0 @@
-/* parser generated by jison 0.4.17 */
-/*
- Returns a Parser object of the following structure:
-
- Parser: {
- yy: {}
- }
-
- Parser.prototype: {
- yy: {},
- trace: function(),
- symbols_: {associative list: name ==> number},
- terminals_: {associative list: number ==> name},
- productions_: [...],
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
- table: [...],
- defaultActions: {...},
- parseError: function(str, hash),
- parse: function(input),
-
- lexer: {
- EOF: 1,
- parseError: function(str, hash),
- setInput: function(input),
- input: function(),
- unput: function(str),
- more: function(),
- less: function(n),
- pastInput: function(),
- upcomingInput: function(),
- showPosition: function(),
- test_match: function(regex_match_array, rule_index),
- next: function(),
- lex: function(),
- begin: function(condition),
- popState: function(),
- _currentRules: function(),
- topState: function(),
- pushState: function(condition),
-
- options: {
- ranges: boolean (optional: true ==> token location info will include a .range[] member)
- flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
- backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
- },
-
- performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
- rules: [...],
- conditions: {associative list: name ==> set},
- }
- }
-
-
- token location info (@$, _$, etc.): {
- first_line: n,
- last_line: n,
- first_column: n,
- last_column: n,
- range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
- }
-
-
- the parseError function receives a 'hash' object with these members for lexer and parser errors: {
- text: (matched text)
- token: (the produced terminal token, if any)
- line: (yylineno)
- }
- while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
- loc: (yylloc)
- expected: (string describing the set of expected tokens)
- recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
- }
-*/
-var spdxparse = (function(){
-var o=function(k,v,o,l){for(o=o||{},l=k.length;l--;o[k[l]]=v);return o},$V0=[1,5],$V1=[1,6],$V2=[1,7],$V3=[1,4],$V4=[1,9],$V5=[1,10],$V6=[5,14,15,17],$V7=[5,12,14,15,17];
-var parser = {trace: function trace() { },
-yy: {},
-symbols_: {"error":2,"start":3,"expression":4,"EOS":5,"simpleExpression":6,"LICENSE":7,"PLUS":8,"LICENSEREF":9,"DOCUMENTREF":10,"COLON":11,"WITH":12,"EXCEPTION":13,"AND":14,"OR":15,"OPEN":16,"CLOSE":17,"$accept":0,"$end":1},
-terminals_: {2:"error",5:"EOS",7:"LICENSE",8:"PLUS",9:"LICENSEREF",10:"DOCUMENTREF",11:"COLON",12:"WITH",13:"EXCEPTION",14:"AND",15:"OR",16:"OPEN",17:"CLOSE"},
-productions_: [0,[3,2],[6,1],[6,2],[6,1],[6,3],[4,1],[4,3],[4,3],[4,3],[4,3]],
-performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate /* action[1] */, $$ /* vstack */, _$ /* lstack */) {
-/* this == yyval */
-
-var $0 = $$.length - 1;
-switch (yystate) {
-case 1:
-return this.$ = $$[$0-1]
-break;
-case 2: case 4: case 5:
-this.$ = {license: yytext}
-break;
-case 3:
-this.$ = {license: $$[$0-1], plus: true}
-break;
-case 6:
-this.$ = $$[$0]
-break;
-case 7:
-this.$ = {exception: $$[$0]}
-this.$.license = $$[$0-2].license
-if ($$[$0-2].hasOwnProperty('plus')) {
- this.$.plus = $$[$0-2].plus
-}
-break;
-case 8:
-this.$ = {conjunction: 'and', left: $$[$0-2], right: $$[$0]}
-break;
-case 9:
-this.$ = {conjunction: 'or', left: $$[$0-2], right: $$[$0]}
-break;
-case 10:
-this.$ = $$[$0-1]
-break;
-}
-},
-table: [{3:1,4:2,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{1:[3]},{5:[1,8],14:$V4,15:$V5},o($V6,[2,6],{12:[1,11]}),{4:12,6:3,7:$V0,9:$V1,10:$V2,16:$V3},o($V7,[2,2],{8:[1,13]}),o($V7,[2,4]),{11:[1,14]},{1:[2,1]},{4:15,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{4:16,6:3,7:$V0,9:$V1,10:$V2,16:$V3},{13:[1,17]},{14:$V4,15:$V5,17:[1,18]},o($V7,[2,3]),{9:[1,19]},o($V6,[2,8]),o([5,15,17],[2,9],{14:$V4}),o($V6,[2,7]),o($V6,[2,10]),o($V7,[2,5])],
-defaultActions: {8:[2,1]},
-parseError: function parseError(str, hash) {
- if (hash.recoverable) {
- this.trace(str);
- } else {
- function _parseError (msg, hash) {
- this.message = msg;
- this.hash = hash;
- }
- _parseError.prototype = Error;
-
- throw new _parseError(str, hash);
- }
-},
-parse: function parse(input) {
- var self = this, stack = [0], tstack = [], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, recovering = 0, TERROR = 2, EOF = 1;
- var args = lstack.slice.call(arguments, 1);
- var lexer = Object.create(this.lexer);
- var sharedState = { yy: {} };
- for (var k in this.yy) {
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
- sharedState.yy[k] = this.yy[k];
- }
- }
- lexer.setInput(input, sharedState.yy);
- sharedState.yy.lexer = lexer;
- sharedState.yy.parser = this;
- if (typeof lexer.yylloc == 'undefined') {
- lexer.yylloc = {};
- }
- var yyloc = lexer.yylloc;
- lstack.push(yyloc);
- var ranges = lexer.options && lexer.options.ranges;
- if (typeof sharedState.yy.parseError === 'function') {
- this.parseError = sharedState.yy.parseError;
- } else {
- this.parseError = Object.getPrototypeOf(this).parseError;
- }
- function popStack(n) {
- stack.length = stack.length - 2 * n;
- vstack.length = vstack.length - n;
- lstack.length = lstack.length - n;
- }
- _token_stack:
- var lex = function () {
- var token;
- token = lexer.lex() || EOF;
- if (typeof token !== 'number') {
- token = self.symbols_[token] || token;
- }
- return token;
- };
- var symbol, preErrorSymbol, state, action, a, r, yyval = {}, p, len, newState, expected;
- while (true) {
- state = stack[stack.length - 1];
- if (this.defaultActions[state]) {
- action = this.defaultActions[state];
- } else {
- if (symbol === null || typeof symbol == 'undefined') {
- symbol = lex();
- }
- action = table[state] && table[state][symbol];
- }
- if (typeof action === 'undefined' || !action.length || !action[0]) {
- var errStr = '';
- expected = [];
- for (p in table[state]) {
- if (this.terminals_[p] && p > TERROR) {
- expected.push('\'' + this.terminals_[p] + '\'');
- }
- }
- if (lexer.showPosition) {
- errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
- } else {
- errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
- }
- this.parseError(errStr, {
- text: lexer.match,
- token: this.terminals_[symbol] || symbol,
- line: lexer.yylineno,
- loc: yyloc,
- expected: expected
- });
- }
- if (action[0] instanceof Array && action.length > 1) {
- throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
- }
- switch (action[0]) {
- case 1:
- stack.push(symbol);
- vstack.push(lexer.yytext);
- lstack.push(lexer.yylloc);
- stack.push(action[1]);
- symbol = null;
- if (!preErrorSymbol) {
- yyleng = lexer.yyleng;
- yytext = lexer.yytext;
- yylineno = lexer.yylineno;
- yyloc = lexer.yylloc;
- if (recovering > 0) {
- recovering--;
- }
- } else {
- symbol = preErrorSymbol;
- preErrorSymbol = null;
- }
- break;
- case 2:
- len = this.productions_[action[1]][1];
- yyval.$ = vstack[vstack.length - len];
- yyval._$ = {
- first_line: lstack[lstack.length - (len || 1)].first_line,
- last_line: lstack[lstack.length - 1].last_line,
- first_column: lstack[lstack.length - (len || 1)].first_column,
- last_column: lstack[lstack.length - 1].last_column
- };
- if (ranges) {
- yyval._$.range = [
- lstack[lstack.length - (len || 1)].range[0],
- lstack[lstack.length - 1].range[1]
- ];
- }
- r = this.performAction.apply(yyval, [
- yytext,
- yyleng,
- yylineno,
- sharedState.yy,
- action[1],
- vstack,
- lstack
- ].concat(args));
- if (typeof r !== 'undefined') {
- return r;
- }
- if (len) {
- stack = stack.slice(0, -1 * len * 2);
- vstack = vstack.slice(0, -1 * len);
- lstack = lstack.slice(0, -1 * len);
- }
- stack.push(this.productions_[action[1]][0]);
- vstack.push(yyval.$);
- lstack.push(yyval._$);
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
- stack.push(newState);
- break;
- case 3:
- return true;
- }
- }
- return true;
-}};
-/* generated by jison-lex 0.3.4 */
-var lexer = (function(){
-var lexer = ({
-
-EOF:1,
-
-parseError:function parseError(str, hash) {
- if (this.yy.parser) {
- this.yy.parser.parseError(str, hash);
- } else {
- throw new Error(str);
- }
- },
-
-// resets the lexer, sets new input
-setInput:function (input, yy) {
- this.yy = yy || this.yy || {};
- this._input = input;
- this._more = this._backtrack = this.done = false;
- this.yylineno = this.yyleng = 0;
- this.yytext = this.matched = this.match = '';
- this.conditionStack = ['INITIAL'];
- this.yylloc = {
- first_line: 1,
- first_column: 0,
- last_line: 1,
- last_column: 0
- };
- if (this.options.ranges) {
- this.yylloc.range = [0,0];
- }
- this.offset = 0;
- return this;
- },
-
-// consumes and returns one char from the input
-input:function () {
- var ch = this._input[0];
- this.yytext += ch;
- this.yyleng++;
- this.offset++;
- this.match += ch;
- this.matched += ch;
- var lines = ch.match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno++;
- this.yylloc.last_line++;
- } else {
- this.yylloc.last_column++;
- }
- if (this.options.ranges) {
- this.yylloc.range[1]++;
- }
-
- this._input = this._input.slice(1);
- return ch;
- },
-
-// unshifts one char (or a string) into the input
-unput:function (ch) {
- var len = ch.length;
- var lines = ch.split(/(?:\r\n?|\n)/g);
-
- this._input = ch + this._input;
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
- //this.yyleng -= len;
- this.offset -= len;
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
- this.match = this.match.substr(0, this.match.length - 1);
- this.matched = this.matched.substr(0, this.matched.length - 1);
-
- if (lines.length - 1) {
- this.yylineno -= lines.length - 1;
- }
- var r = this.yylloc.range;
-
- this.yylloc = {
- first_line: this.yylloc.first_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.first_column,
- last_column: lines ?
- (lines.length === oldLines.length ? this.yylloc.first_column : 0)
- + oldLines[oldLines.length - lines.length].length - lines[0].length :
- this.yylloc.first_column - len
- };
-
- if (this.options.ranges) {
- this.yylloc.range = [r[0], r[0] + this.yyleng - len];
- }
- this.yyleng = this.yytext.length;
- return this;
- },
-
-// When called from action, caches matched text and appends it on next action
-more:function () {
- this._more = true;
- return this;
- },
-
-// When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
-reject:function () {
- if (this.options.backtrack_lexer) {
- this._backtrack = true;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
-
- }
- return this;
- },
-
-// retain first n characters of the match
-less:function (n) {
- this.unput(this.match.slice(n));
- },
-
-// displays already matched input, i.e. for error messages
-pastInput:function () {
- var past = this.matched.substr(0, this.matched.length - this.match.length);
- return (past.length > 20 ? '...':'') + past.substr(-20).replace(/\n/g, "");
- },
-
-// displays upcoming input, i.e. for error messages
-upcomingInput:function () {
- var next = this.match;
- if (next.length < 20) {
- next += this._input.substr(0, 20-next.length);
- }
- return (next.substr(0,20) + (next.length > 20 ? '...' : '')).replace(/\n/g, "");
- },
-
-// displays the character position where the lexing error occurred, i.e. for error messages
-showPosition:function () {
- var pre = this.pastInput();
- var c = new Array(pre.length + 1).join("-");
- return pre + this.upcomingInput() + "\n" + c + "^";
- },
-
-// test the lexed token: return FALSE when not a match, otherwise return token
-test_match:function (match, indexed_rule) {
- var token,
- lines,
- backup;
-
- if (this.options.backtrack_lexer) {
- // save context
- backup = {
- yylineno: this.yylineno,
- yylloc: {
- first_line: this.yylloc.first_line,
- last_line: this.last_line,
- first_column: this.yylloc.first_column,
- last_column: this.yylloc.last_column
- },
- yytext: this.yytext,
- match: this.match,
- matches: this.matches,
- matched: this.matched,
- yyleng: this.yyleng,
- offset: this.offset,
- _more: this._more,
- _input: this._input,
- yy: this.yy,
- conditionStack: this.conditionStack.slice(0),
- done: this.done
- };
- if (this.options.ranges) {
- backup.yylloc.range = this.yylloc.range.slice(0);
- }
- }
-
- lines = match[0].match(/(?:\r\n?|\n).*/g);
- if (lines) {
- this.yylineno += lines.length;
- }
- this.yylloc = {
- first_line: this.yylloc.last_line,
- last_line: this.yylineno + 1,
- first_column: this.yylloc.last_column,
- last_column: lines ?
- lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length :
- this.yylloc.last_column + match[0].length
- };
- this.yytext += match[0];
- this.match += match[0];
- this.matches = match;
- this.yyleng = this.yytext.length;
- if (this.options.ranges) {
- this.yylloc.range = [this.offset, this.offset += this.yyleng];
- }
- this._more = false;
- this._backtrack = false;
- this._input = this._input.slice(match[0].length);
- this.matched += match[0];
- token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
- if (this.done && this._input) {
- this.done = false;
- }
- if (token) {
- return token;
- } else if (this._backtrack) {
- // recover context
- for (var k in backup) {
- this[k] = backup[k];
- }
- return false; // rule action called reject() implying the next rule should be tested instead.
- }
- return false;
- },
-
-// return next match in input
-next:function () {
- if (this.done) {
- return this.EOF;
- }
- if (!this._input) {
- this.done = true;
- }
-
- var token,
- match,
- tempMatch,
- index;
- if (!this._more) {
- this.yytext = '';
- this.match = '';
- }
- var rules = this._currentRules();
- for (var i = 0; i < rules.length; i++) {
- tempMatch = this._input.match(this.rules[rules[i]]);
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
- match = tempMatch;
- index = i;
- if (this.options.backtrack_lexer) {
- token = this.test_match(tempMatch, rules[i]);
- if (token !== false) {
- return token;
- } else if (this._backtrack) {
- match = false;
- continue; // rule action called reject() implying a rule MISmatch.
- } else {
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- } else if (!this.options.flex) {
- break;
- }
- }
- }
- if (match) {
- token = this.test_match(match, rules[index]);
- if (token !== false) {
- return token;
- }
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
- return false;
- }
- if (this._input === "") {
- return this.EOF;
- } else {
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
- text: "",
- token: null,
- line: this.yylineno
- });
- }
- },
-
-// return next match that has a token
-lex:function lex() {
- var r = this.next();
- if (r) {
- return r;
- } else {
- return this.lex();
- }
- },
-
-// activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
-begin:function begin(condition) {
- this.conditionStack.push(condition);
- },
-
-// pop the previously active lexer condition state off the condition stack
-popState:function popState() {
- var n = this.conditionStack.length - 1;
- if (n > 0) {
- return this.conditionStack.pop();
- } else {
- return this.conditionStack[0];
- }
- },
-
-// produce the lexer rule set which is active for the currently active lexer condition state
-_currentRules:function _currentRules() {
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
- } else {
- return this.conditions["INITIAL"].rules;
- }
- },
-
-// return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
-topState:function topState(n) {
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
- if (n >= 0) {
- return this.conditionStack[n];
- } else {
- return "INITIAL";
- }
- },
-
-// alias for begin(condition)
-pushState:function pushState(condition) {
- this.begin(condition);
- },
-
-// return the number of states currently on the stack
-stateStackSize:function stateStackSize() {
- return this.conditionStack.length;
- },
-options: {},
-performAction: function anonymous(yy,yy_,$avoiding_name_collisions,YY_START) {
-var YYSTATE=YY_START;
-switch($avoiding_name_collisions) {
-case 0:return 5
-break;
-case 1:/* skip whitespace */
-break;
-case 2:return 8
-break;
-case 3:return 16
-break;
-case 4:return 17
-break;
-case 5:return 11
-break;
-case 6:return 10
-break;
-case 7:return 9
-break;
-case 8:return 14
-break;
-case 9:return 15
-break;
-case 10:return 12
-break;
-case 11:return 7
-break;
-case 12:return 7
-break;
-case 13:return 7
-break;
-case 14:return 7
-break;
-case 15:return 7
-break;
-case 16:return 7
-break;
-case 17:return 7
-break;
-case 18:return 7
-break;
-case 19:return 7
-break;
-case 20:return 7
-break;
-case 21:return 7
-break;
-case 22:return 7
-break;
-case 23:return 7
-break;
-case 24:return 13
-break;
-case 25:return 13
-break;
-case 26:return 13
-break;
-case 27:return 13
-break;
-case 28:return 13
-break;
-case 29:return 13
-break;
-case 30:return 13
-break;
-case 31:return 13
-break;
-case 32:return 7
-break;
-case 33:return 13
-break;
-case 34:return 7
-break;
-case 35:return 13
-break;
-case 36:return 7
-break;
-case 37:return 13
-break;
-case 38:return 13
-break;
-case 39:return 7
-break;
-case 40:return 13
-break;
-case 41:return 13
-break;
-case 42:return 13
-break;
-case 43:return 13
-break;
-case 44:return 13
-break;
-case 45:return 7
-break;
-case 46:return 13
-break;
-case 47:return 7
-break;
-case 48:return 7
-break;
-case 49:return 7
-break;
-case 50:return 7
-break;
-case 51:return 7
-break;
-case 52:return 7
-break;
-case 53:return 7
-break;
-case 54:return 7
-break;
-case 55:return 7
-break;
-case 56:return 7
-break;
-case 57:return 7
-break;
-case 58:return 7
-break;
-case 59:return 7
-break;
-case 60:return 7
-break;
-case 61:return 7
-break;
-case 62:return 7
-break;
-case 63:return 13
-break;
-case 64:return 7
-break;
-case 65:return 7
-break;
-case 66:return 13
-break;
-case 67:return 7
-break;
-case 68:return 7
-break;
-case 69:return 7
-break;
-case 70:return 7
-break;
-case 71:return 7
-break;
-case 72:return 7
-break;
-case 73:return 13
-break;
-case 74:return 7
-break;
-case 75:return 13
-break;
-case 76:return 7
-break;
-case 77:return 7
-break;
-case 78:return 7
-break;
-case 79:return 7
-break;
-case 80:return 7
-break;
-case 81:return 7
-break;
-case 82:return 7
-break;
-case 83:return 7
-break;
-case 84:return 7
-break;
-case 85:return 7
-break;
-case 86:return 7
-break;
-case 87:return 7
-break;
-case 88:return 7
-break;
-case 89:return 7
-break;
-case 90:return 7
-break;
-case 91:return 7
-break;
-case 92:return 7
-break;
-case 93:return 7
-break;
-case 94:return 7
-break;
-case 95:return 7
-break;
-case 96:return 7
-break;
-case 97:return 7
-break;
-case 98:return 7
-break;
-case 99:return 7
-break;
-case 100:return 7
-break;
-case 101:return 7
-break;
-case 102:return 7
-break;
-case 103:return 7
-break;
-case 104:return 7
-break;
-case 105:return 7
-break;
-case 106:return 7
-break;
-case 107:return 7
-break;
-case 108:return 7
-break;
-case 109:return 7
-break;
-case 110:return 7
-break;
-case 111:return 7
-break;
-case 112:return 7
-break;
-case 113:return 7
-break;
-case 114:return 7
-break;
-case 115:return 7
-break;
-case 116:return 7
-break;
-case 117:return 7
-break;
-case 118:return 7
-break;
-case 119:return 7
-break;
-case 120:return 7
-break;
-case 121:return 7
-break;
-case 122:return 7
-break;
-case 123:return 7
-break;
-case 124:return 7
-break;
-case 125:return 7
-break;
-case 126:return 7
-break;
-case 127:return 7
-break;
-case 128:return 7
-break;
-case 129:return 7
-break;
-case 130:return 7
-break;
-case 131:return 7
-break;
-case 132:return 7
-break;
-case 133:return 7
-break;
-case 134:return 7
-break;
-case 135:return 7
-break;
-case 136:return 7
-break;
-case 137:return 7
-break;
-case 138:return 7
-break;
-case 139:return 7
-break;
-case 140:return 7
-break;
-case 141:return 7
-break;
-case 142:return 7
-break;
-case 143:return 7
-break;
-case 144:return 7
-break;
-case 145:return 7
-break;
-case 146:return 7
-break;
-case 147:return 7
-break;
-case 148:return 7
-break;
-case 149:return 7
-break;
-case 150:return 7
-break;
-case 151:return 7
-break;
-case 152:return 7
-break;
-case 153:return 7
-break;
-case 154:return 7
-break;
-case 155:return 7
-break;
-case 156:return 7
-break;
-case 157:return 7
-break;
-case 158:return 7
-break;
-case 159:return 7
-break;
-case 160:return 7
-break;
-case 161:return 7
-break;
-case 162:return 7
-break;
-case 163:return 7
-break;
-case 164:return 7
-break;
-case 165:return 7
-break;
-case 166:return 7
-break;
-case 167:return 7
-break;
-case 168:return 7
-break;
-case 169:return 7
-break;
-case 170:return 7
-break;
-case 171:return 7
-break;
-case 172:return 7
-break;
-case 173:return 7
-break;
-case 174:return 7
-break;
-case 175:return 7
-break;
-case 176:return 7
-break;
-case 177:return 7
-break;
-case 178:return 7
-break;
-case 179:return 7
-break;
-case 180:return 7
-break;
-case 181:return 7
-break;
-case 182:return 7
-break;
-case 183:return 7
-break;
-case 184:return 7
-break;
-case 185:return 7
-break;
-case 186:return 7
-break;
-case 187:return 7
-break;
-case 188:return 7
-break;
-case 189:return 7
-break;
-case 190:return 7
-break;
-case 191:return 7
-break;
-case 192:return 7
-break;
-case 193:return 7
-break;
-case 194:return 7
-break;
-case 195:return 7
-break;
-case 196:return 7
-break;
-case 197:return 7
-break;
-case 198:return 7
-break;
-case 199:return 7
-break;
-case 200:return 7
-break;
-case 201:return 7
-break;
-case 202:return 7
-break;
-case 203:return 7
-break;
-case 204:return 7
-break;
-case 205:return 7
-break;
-case 206:return 7
-break;
-case 207:return 7
-break;
-case 208:return 7
-break;
-case 209:return 7
-break;
-case 210:return 7
-break;
-case 211:return 7
-break;
-case 212:return 7
-break;
-case 213:return 7
-break;
-case 214:return 7
-break;
-case 215:return 7
-break;
-case 216:return 7
-break;
-case 217:return 7
-break;
-case 218:return 7
-break;
-case 219:return 7
-break;
-case 220:return 7
-break;
-case 221:return 7
-break;
-case 222:return 7
-break;
-case 223:return 7
-break;
-case 224:return 7
-break;
-case 225:return 7
-break;
-case 226:return 7
-break;
-case 227:return 7
-break;
-case 228:return 7
-break;
-case 229:return 7
-break;
-case 230:return 7
-break;
-case 231:return 7
-break;
-case 232:return 7
-break;
-case 233:return 7
-break;
-case 234:return 7
-break;
-case 235:return 7
-break;
-case 236:return 7
-break;
-case 237:return 7
-break;
-case 238:return 7
-break;
-case 239:return 7
-break;
-case 240:return 7
-break;
-case 241:return 7
-break;
-case 242:return 7
-break;
-case 243:return 7
-break;
-case 244:return 7
-break;
-case 245:return 7
-break;
-case 246:return 7
-break;
-case 247:return 7
-break;
-case 248:return 7
-break;
-case 249:return 7
-break;
-case 250:return 7
-break;
-case 251:return 7
-break;
-case 252:return 7
-break;
-case 253:return 7
-break;
-case 254:return 7
-break;
-case 255:return 7
-break;
-case 256:return 7
-break;
-case 257:return 7
-break;
-case 258:return 7
-break;
-case 259:return 7
-break;
-case 260:return 7
-break;
-case 261:return 7
-break;
-case 262:return 7
-break;
-case 263:return 7
-break;
-case 264:return 7
-break;
-case 265:return 7
-break;
-case 266:return 7
-break;
-case 267:return 7
-break;
-case 268:return 7
-break;
-case 269:return 7
-break;
-case 270:return 7
-break;
-case 271:return 7
-break;
-case 272:return 7
-break;
-case 273:return 7
-break;
-case 274:return 7
-break;
-case 275:return 7
-break;
-case 276:return 7
-break;
-case 277:return 7
-break;
-case 278:return 7
-break;
-case 279:return 7
-break;
-case 280:return 7
-break;
-case 281:return 7
-break;
-case 282:return 7
-break;
-case 283:return 7
-break;
-case 284:return 7
-break;
-case 285:return 7
-break;
-case 286:return 7
-break;
-case 287:return 7
-break;
-case 288:return 7
-break;
-case 289:return 7
-break;
-case 290:return 7
-break;
-case 291:return 7
-break;
-case 292:return 7
-break;
-case 293:return 7
-break;
-case 294:return 7
-break;
-case 295:return 7
-break;
-case 296:return 7
-break;
-case 297:return 7
-break;
-case 298:return 7
-break;
-case 299:return 7
-break;
-case 300:return 7
-break;
-case 301:return 7
-break;
-case 302:return 7
-break;
-case 303:return 7
-break;
-case 304:return 7
-break;
-case 305:return 7
-break;
-case 306:return 7
-break;
-case 307:return 7
-break;
-case 308:return 7
-break;
-case 309:return 7
-break;
-case 310:return 7
-break;
-case 311:return 7
-break;
-case 312:return 7
-break;
-case 313:return 7
-break;
-case 314:return 7
-break;
-case 315:return 7
-break;
-case 316:return 7
-break;
-case 317:return 7
-break;
-case 318:return 7
-break;
-case 319:return 7
-break;
-case 320:return 7
-break;
-case 321:return 7
-break;
-case 322:return 7
-break;
-case 323:return 7
-break;
-case 324:return 7
-break;
-case 325:return 7
-break;
-case 326:return 7
-break;
-case 327:return 7
-break;
-case 328:return 7
-break;
-case 329:return 7
-break;
-case 330:return 7
-break;
-case 331:return 7
-break;
-case 332:return 7
-break;
-case 333:return 7
-break;
-case 334:return 7
-break;
-case 335:return 7
-break;
-case 336:return 7
-break;
-case 337:return 7
-break;
-case 338:return 7
-break;
-case 339:return 7
-break;
-case 340:return 7
-break;
-case 341:return 7
-break;
-case 342:return 7
-break;
-case 343:return 7
-break;
-case 344:return 7
-break;
-case 345:return 7
-break;
-case 346:return 7
-break;
-case 347:return 7
-break;
-case 348:return 7
-break;
-case 349:return 7
-break;
-case 350:return 7
-break;
-case 351:return 7
-break;
-case 352:return 7
-break;
-case 353:return 7
-break;
-case 354:return 7
-break;
-case 355:return 7
-break;
-case 356:return 7
-break;
-case 357:return 7
-break;
-case 358:return 7
-break;
-case 359:return 7
-break;
-case 360:return 7
-break;
-case 361:return 7
-break;
-case 362:return 7
-break;
-case 363:return 7
-break;
-case 364:return 7
-break;
-}
-},
-rules: [/^(?:$)/,/^(?:\s+)/,/^(?:\+)/,/^(?:\()/,/^(?:\))/,/^(?::)/,/^(?:DocumentRef-([0-9A-Za-z-+.]+))/,/^(?:LicenseRef-([0-9A-Za-z-+.]+))/,/^(?:AND)/,/^(?:OR)/,/^(?:WITH)/,/^(?:BSD-3-Clause-No-Nuclear-License-2014)/,/^(?:BSD-3-Clause-No-Nuclear-Warranty)/,/^(?:GPL-2\.0-with-classpath-exception)/,/^(?:GPL-3\.0-with-autoconf-exception)/,/^(?:GPL-2\.0-with-autoconf-exception)/,/^(?:BSD-3-Clause-No-Nuclear-License)/,/^(?:MPL-2\.0-no-copyleft-exception)/,/^(?:GPL-2\.0-with-bison-exception)/,/^(?:GPL-2\.0-with-font-exception)/,/^(?:GPL-2\.0-with-GCC-exception)/,/^(?:CNRI-Python-GPL-Compatible)/,/^(?:GPL-3\.0-with-GCC-exception)/,/^(?:BSD-3-Clause-Attribution)/,/^(?:Classpath-exception-2\.0)/,/^(?:WxWindows-exception-3\.1)/,/^(?:freertos-exception-2\.0)/,/^(?:Autoconf-exception-3\.0)/,/^(?:i2p-gpl-java-exception)/,/^(?:gnu-javamail-exception)/,/^(?:Nokia-Qt-exception-1\.1)/,/^(?:Autoconf-exception-2\.0)/,/^(?:BSD-2-Clause-FreeBSD)/,/^(?:u-boot-exception-2\.0)/,/^(?:zlib-acknowledgement)/,/^(?:Bison-exception-2\.2)/,/^(?:BSD-2-Clause-NetBSD)/,/^(?:CLISP-exception-2\.0)/,/^(?:eCos-exception-2\.0)/,/^(?:BSD-3-Clause-Clear)/,/^(?:Font-exception-2\.0)/,/^(?:FLTK-exception-2\.0)/,/^(?:GCC-exception-2\.0)/,/^(?:Qwt-exception-1\.0)/,/^(?:Libtool-exception)/,/^(?:BSD-3-Clause-LBNL)/,/^(?:GCC-exception-3\.1)/,/^(?:Artistic-1\.0-Perl)/,/^(?:Artistic-1\.0-cl8)/,/^(?:CC-BY-NC-SA-2\.5)/,/^(?:MIT-advertising)/,/^(?:BSD-Source-Code)/,/^(?:CC-BY-NC-SA-4\.0)/,/^(?:LiLiQ-Rplus-1\.1)/,/^(?:CC-BY-NC-SA-3\.0)/,/^(?:BSD-4-Clause-UC)/,/^(?:CC-BY-NC-SA-2\.0)/,/^(?:CC-BY-NC-SA-1\.0)/,/^(?:CC-BY-NC-ND-4\.0)/,/^(?:CC-BY-NC-ND-3\.0)/,/^(?:CC-BY-NC-ND-2\.5)/,/^(?:CC-BY-NC-ND-2\.0)/,/^(?:CC-BY-NC-ND-1\.0)/,/^(?:LZMA-exception)/,/^(?:BitTorrent-1\.1)/,/^(?:CrystalStacker)/,/^(?:FLTK-exception)/,/^(?:SugarCRM-1\.1\.3)/,/^(?:BSD-Protection)/,/^(?:BitTorrent-1\.0)/,/^(?:HaskellReport)/,/^(?:Interbase-1\.0)/,/^(?:StandardML-NJ)/,/^(?:mif-exception)/,/^(?:Frameworx-1\.0)/,/^(?:389-exception)/,/^(?:CC-BY-NC-2\.0)/,/^(?:CC-BY-NC-2\.5)/,/^(?:CC-BY-NC-3\.0)/,/^(?:CC-BY-NC-4\.0)/,/^(?:W3C-19980720)/,/^(?:CC-BY-SA-1\.0)/,/^(?:CC-BY-SA-2\.0)/,/^(?:CC-BY-SA-2\.5)/,/^(?:CC-BY-ND-2\.0)/,/^(?:CC-BY-SA-4\.0)/,/^(?:CC-BY-SA-3\.0)/,/^(?:Artistic-1\.0)/,/^(?:Artistic-2\.0)/,/^(?:CC-BY-ND-2\.5)/,/^(?:CC-BY-ND-3\.0)/,/^(?:CC-BY-ND-4\.0)/,/^(?:CC-BY-ND-1\.0)/,/^(?:BSD-4-Clause)/,/^(?:BSD-3-Clause)/,/^(?:BSD-2-Clause)/,/^(?:CC-BY-NC-1\.0)/,/^(?:bzip2-1\.0\.6)/,/^(?:Unicode-TOU)/,/^(?:CNRI-Jython)/,/^(?:ImageMagick)/,/^(?:Adobe-Glyph)/,/^(?:CUA-OPL-1\.0)/,/^(?:OLDAP-2\.2\.2)/,/^(?:LiLiQ-R-1\.1)/,/^(?:bzip2-1\.0\.5)/,/^(?:LiLiQ-P-1\.1)/,/^(?:OLDAP-2\.0\.1)/,/^(?:OLDAP-2\.2\.1)/,/^(?:CNRI-Python)/,/^(?:XFree86-1\.1)/,/^(?:OSET-PL-2\.1)/,/^(?:Apache-2\.0)/,/^(?:Watcom-1\.0)/,/^(?:PostgreSQL)/,/^(?:Python-2\.0)/,/^(?:RHeCos-1\.1)/,/^(?:EUDatagrid)/,/^(?:Spencer-99)/,/^(?:Intel-ACPI)/,/^(?:CECILL-1\.0)/,/^(?:CECILL-1\.1)/,/^(?:JasPer-2\.0)/,/^(?:CECILL-2\.0)/,/^(?:CECILL-2\.1)/,/^(?:gSOAP-1\.3b)/,/^(?:Spencer-94)/,/^(?:Apache-1\.1)/,/^(?:Spencer-86)/,/^(?:Apache-1\.0)/,/^(?:ClArtistic)/,/^(?:TORQUE-1\.1)/,/^(?:CATOSL-1\.1)/,/^(?:Adobe-2006)/,/^(?:Zimbra-1\.4)/,/^(?:Zimbra-1\.3)/,/^(?:Condor-1\.1)/,/^(?:CC-BY-3\.0)/,/^(?:CC-BY-2\.5)/,/^(?:OLDAP-2\.4)/,/^(?:SGI-B-1\.1)/,/^(?:SISSL-1\.2)/,/^(?:SGI-B-1\.0)/,/^(?:OLDAP-2\.3)/,/^(?:CC-BY-4\.0)/,/^(?:Crossword)/,/^(?:SimPL-2\.0)/,/^(?:OLDAP-2\.2)/,/^(?:OLDAP-2\.1)/,/^(?:ErlPL-1\.1)/,/^(?:LPPL-1\.3a)/,/^(?:LPPL-1\.3c)/,/^(?:OLDAP-2\.0)/,/^(?:Leptonica)/,/^(?:CPOL-1\.02)/,/^(?:OLDAP-1\.4)/,/^(?:OLDAP-1\.3)/,/^(?:CC-BY-2\.0)/,/^(?:Unlicense)/,/^(?:OLDAP-2\.8)/,/^(?:OLDAP-1\.2)/,/^(?:MakeIndex)/,/^(?:OLDAP-2\.7)/,/^(?:OLDAP-1\.1)/,/^(?:Sleepycat)/,/^(?:D-FSL-1\.0)/,/^(?:CC-BY-1\.0)/,/^(?:OLDAP-2\.6)/,/^(?:WXwindows)/,/^(?:NPOSL-3\.0)/,/^(?:FreeImage)/,/^(?:SGI-B-2\.0)/,/^(?:OLDAP-2\.5)/,/^(?:Beerware)/,/^(?:Newsletr)/,/^(?:NBPL-1\.0)/,/^(?:NASA-1\.3)/,/^(?:NLOD-1\.0)/,/^(?:AGPL-1\.0)/,/^(?:OCLC-2\.0)/,/^(?:ODbL-1\.0)/,/^(?:PDDL-1\.0)/,/^(?:Motosoto)/,/^(?:Afmparse)/,/^(?:ANTLR-PD)/,/^(?:LPL-1\.02)/,/^(?:Abstyles)/,/^(?:eCos-2\.0)/,/^(?:APSL-1\.0)/,/^(?:LPPL-1\.2)/,/^(?:LPPL-1\.1)/,/^(?:LPPL-1\.0)/,/^(?:APSL-1\.1)/,/^(?:APSL-2\.0)/,/^(?:Info-ZIP)/,/^(?:Zend-2\.0)/,/^(?:IBM-pibs)/,/^(?:LGPL-2\.0)/,/^(?:LGPL-3\.0)/,/^(?:LGPL-2\.1)/,/^(?:GFDL-1\.3)/,/^(?:PHP-3\.01)/,/^(?:GFDL-1\.2)/,/^(?:GFDL-1\.1)/,/^(?:AGPL-3\.0)/,/^(?:Giftware)/,/^(?:EUPL-1\.1)/,/^(?:RPSL-1\.0)/,/^(?:EUPL-1\.0)/,/^(?:MIT-enna)/,/^(?:CECILL-B)/,/^(?:diffmark)/,/^(?:CECILL-C)/,/^(?:CDDL-1\.0)/,/^(?:Sendmail)/,/^(?:CDDL-1\.1)/,/^(?:CPAL-1\.0)/,/^(?:APSL-1\.2)/,/^(?:NPL-1\.1)/,/^(?:AFL-1\.2)/,/^(?:Caldera)/,/^(?:AFL-2\.0)/,/^(?:FSFULLR)/,/^(?:AFL-2\.1)/,/^(?:VSL-1\.0)/,/^(?:VOSTROM)/,/^(?:UPL-1\.0)/,/^(?:Dotseqn)/,/^(?:CPL-1\.0)/,/^(?:dvipdfm)/,/^(?:EPL-1\.0)/,/^(?:OCCT-PL)/,/^(?:ECL-1\.0)/,/^(?:Latex2e)/,/^(?:ECL-2\.0)/,/^(?:GPL-1\.0)/,/^(?:GPL-2\.0)/,/^(?:GPL-3\.0)/,/^(?:AFL-3\.0)/,/^(?:LAL-1\.2)/,/^(?:LAL-1\.3)/,/^(?:EFL-1\.0)/,/^(?:EFL-2\.0)/,/^(?:gnuplot)/,/^(?:Aladdin)/,/^(?:LPL-1\.0)/,/^(?:libtiff)/,/^(?:Entessa)/,/^(?:AMDPLPA)/,/^(?:IPL-1\.0)/,/^(?:OPL-1\.0)/,/^(?:OSL-1\.0)/,/^(?:OSL-1\.1)/,/^(?:OSL-2\.0)/,/^(?:OSL-2\.1)/,/^(?:OSL-3\.0)/,/^(?:OpenSSL)/,/^(?:ZPL-2\.1)/,/^(?:PHP-3\.0)/,/^(?:ZPL-2\.0)/,/^(?:ZPL-1\.1)/,/^(?:CC0-1\.0)/,/^(?:SPL-1\.0)/,/^(?:psutils)/,/^(?:MPL-1\.0)/,/^(?:QPL-1\.0)/,/^(?:MPL-1\.1)/,/^(?:MPL-2\.0)/,/^(?:APL-1\.0)/,/^(?:RPL-1\.1)/,/^(?:RPL-1\.5)/,/^(?:MIT-CMU)/,/^(?:Multics)/,/^(?:Eurosym)/,/^(?:BSL-1\.0)/,/^(?:MIT-feh)/,/^(?:Saxpath)/,/^(?:Borceux)/,/^(?:OFL-1\.1)/,/^(?:OFL-1\.0)/,/^(?:AFL-1\.1)/,/^(?:YPL-1\.1)/,/^(?:YPL-1\.0)/,/^(?:NPL-1\.0)/,/^(?:iMatix)/,/^(?:mpich2)/,/^(?:APAFML)/,/^(?:Bahyph)/,/^(?:RSA-MD)/,/^(?:psfrag)/,/^(?:Plexus)/,/^(?:eGenix)/,/^(?:Glulxe)/,/^(?:SAX-PD)/,/^(?:Imlib2)/,/^(?:Wsuipa)/,/^(?:LGPLLR)/,/^(?:Libpng)/,/^(?:xinetd)/,/^(?:MITNFA)/,/^(?:NetCDF)/,/^(?:Naumen)/,/^(?:SMPPL)/,/^(?:Nunit)/,/^(?:FSFUL)/,/^(?:GL2PS)/,/^(?:SMLNJ)/,/^(?:Rdisc)/,/^(?:Noweb)/,/^(?:Nokia)/,/^(?:SISSL)/,/^(?:Qhull)/,/^(?:Intel)/,/^(?:Glide)/,/^(?:Xerox)/,/^(?:AMPAS)/,/^(?:WTFPL)/,/^(?:MS-PL)/,/^(?:XSkat)/,/^(?:MS-RL)/,/^(?:MirOS)/,/^(?:RSCPL)/,/^(?:TMate)/,/^(?:OGTSL)/,/^(?:FSFAP)/,/^(?:NCSA)/,/^(?:Zlib)/,/^(?:SCEA)/,/^(?:SNIA)/,/^(?:NGPL)/,/^(?:NOSL)/,/^(?:ADSL)/,/^(?:MTLL)/,/^(?:NLPL)/,/^(?:Ruby)/,/^(?:JSON)/,/^(?:Barr)/,/^(?:0BSD)/,/^(?:Xnet)/,/^(?:Cube)/,/^(?:curl)/,/^(?:DSDP)/,/^(?:Fair)/,/^(?:HPND)/,/^(?:TOSL)/,/^(?:IJG)/,/^(?:SWL)/,/^(?:Vim)/,/^(?:FTL)/,/^(?:ICU)/,/^(?:OML)/,/^(?:NRL)/,/^(?:DOC)/,/^(?:TCL)/,/^(?:W3C)/,/^(?:NTP)/,/^(?:IPA)/,/^(?:ISC)/,/^(?:X11)/,/^(?:AAL)/,/^(?:AML)/,/^(?:xpp)/,/^(?:Zed)/,/^(?:MIT)/,/^(?:Mup)/],
-conditions: {"INITIAL":{"rules":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364],"inclusive":true}}
-});
-return lexer;
-})();
-parser.lexer = lexer;
-function Parser () {
- this.yy = {};
-}
-Parser.prototype = parser;parser.Parser = Parser;
-return new Parser;
-})();
-
-
-if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
-exports.parser = spdxparse;
-exports.Parser = spdxparse.Parser;
-exports.parse = function () { return spdxparse.parse.apply(spdxparse, arguments); };
-exports.main = function commonjsMain(args) {
- if (!args[1]) {
- console.log('Usage: '+args[0]+' FILE');
- process.exit(1);
- }
- var source = require('fs').readFileSync(require('path').normalize(args[1]), "utf8");
- return exports.parser.parse(source);
-};
-if (typeof module !== 'undefined' && require.main === module) {
- exports.main(process.argv.slice(1));
-}
-}
diff --git a/deps/npm/node_modules/validate-npm-package-license/package.json b/deps/npm/node_modules/validate-npm-package-license/package.json
index 09792c0b01..b7d3c13293 100644
--- a/deps/npm/node_modules/validate-npm-package-license/package.json
+++ b/deps/npm/node_modules/validate-npm-package-license/package.json
@@ -1,47 +1,49 @@
{
- "_from": "validate-npm-package-license@*",
- "_id": "validate-npm-package-license@3.0.1",
- "_integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
+ "_args": [
+ [
+ "validate-npm-package-license@3.0.3",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "validate-npm-package-license@3.0.3",
+ "_id": "validate-npm-package-license@3.0.3",
+ "_inBundle": false,
+ "_integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==",
"_location": "/validate-npm-package-license",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "validate-npm-package-license@*",
+ "raw": "validate-npm-package-license@3.0.3",
"name": "validate-npm-package-license",
"escapedName": "validate-npm-package-license",
- "rawSpec": "*",
+ "rawSpec": "3.0.3",
"saveSpec": null,
- "fetchSpec": "*"
+ "fetchSpec": "3.0.3"
},
"_requiredBy": [
"/",
"/init-package-json",
"/normalize-package-data"
],
- "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
- "_shasum": "2804babe712ad3379459acfbe24746ab2c303fbc",
- "_shrinkwrap": null,
- "_spec": "validate-npm-package-license@*",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz",
+ "_spec": "3.0.3",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Kyle E. Mitchell",
"email": "kyle@kemitchell.com",
"url": "https://kemitchell.com"
},
- "bin": null,
"bugs": {
"url": "https://github.com/kemitchell/validate-npm-package-license.js/issues"
},
- "bundleDependencies": false,
"dependencies": {
- "spdx-correct": "~1.0.0",
- "spdx-expression-parse": "~1.0.0"
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
},
- "deprecated": false,
"description": "Give me a string and I'll tell you if it's a valid npm package license string",
"devDependencies": {
- "defence-cli": "^1.0.1",
+ "defence-cli": "^2.0.1",
"replace-require-self": "^1.0.0"
},
"homepage": "https://github.com/kemitchell/validate-npm-package-license.js#readme",
@@ -53,8 +55,6 @@
],
"license": "Apache-2.0",
"name": "validate-npm-package-license",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/kemitchell/validate-npm-package-license.js.git"
@@ -62,5 +62,5 @@
"scripts": {
"test": "defence README.md | replace-require-self | node"
},
- "version": "3.0.1"
+ "version": "3.0.3"
}
diff --git a/deps/npm/node_modules/validate-npm-package-license/test.log b/deps/npm/node_modules/validate-npm-package-license/test.log
new file mode 100644
index 0000000000..a6dd336483
--- /dev/null
+++ b/deps/npm/node_modules/validate-npm-package-license/test.log
@@ -0,0 +1,3 @@
+
+> validate-npm-package-license@3.0.2 test /home/kyle/validate-npm-package-license.js
+> defence README.md | replace-require-self | node
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml b/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml
deleted file mode 100644
index cc4dba29d9..0000000000
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/.travis.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-language: node_js
-node_js:
- - "0.8"
- - "0.10"
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md b/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md
deleted file mode 100644
index 0eb45c4207..0000000000
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/History.md
+++ /dev/null
@@ -1,39 +0,0 @@
-
-0.0.7 / 2014-09-01
-==================
-
- * update .repository
-
-0.0.6 / 2014-09-01
-==================
-
- * add travis
- * add test script
- * add constants
-
-0.0.5 / 2014-06-27
-==================
-
- * add module
- * publish to public npm
-
-0.0.4 / 2014-04-25
-==================
-
- * add timers
-
-0.0.3 / 2014-02-22
-==================
-
- * add buffer
-
-0.0.2 / 2014-02-11
-==================
-
- * add assert
-
-0.0.1 / 2014-02-11
-==================
-
- * add main
- * initial commit
diff --git a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json b/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json
deleted file mode 100644
index 8cc973ef28..0000000000
--- a/deps/npm/node_modules/validate-npm-package-name/node_modules/builtins/package.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "_from": "builtins@^1.0.3",
- "_id": "builtins@1.0.3",
- "_integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=",
- "_location": "/validate-npm-package-name/builtins",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "builtins@^1.0.3",
- "name": "builtins",
- "escapedName": "builtins",
- "rawSpec": "^1.0.3",
- "saveSpec": null,
- "fetchSpec": "^1.0.3"
- },
- "_requiredBy": [
- "/validate-npm-package-name"
- ],
- "_resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
- "_shasum": "cb94faeb61c8696451db36534e1422f94f0aee88",
- "_shrinkwrap": null,
- "_spec": "builtins@^1.0.3",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/validate-npm-package-name",
- "bin": null,
- "bugs": {
- "url": "https://github.com/juliangruber/builtins/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "List of node.js builtin modules",
- "devDependencies": {},
- "homepage": "https://github.com/juliangruber/builtins#readme",
- "license": "MIT",
- "main": "builtins.json",
- "name": "builtins",
- "optionalDependencies": {},
- "peerDependencies": {},
- "publishConfig": {
- "registry": "https://registry.npmjs.org"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/juliangruber/builtins.git"
- },
- "scripts": {
- "test": "node test.js"
- },
- "version": "1.0.3"
-}
diff --git a/deps/npm/node_modules/validate-npm-package-name/package.json b/deps/npm/node_modules/validate-npm-package-name/package.json
index 5b3898e4d3..197e156c2e 100644
--- a/deps/npm/node_modules/validate-npm-package-name/package.json
+++ b/deps/npm/node_modules/validate-npm-package-name/package.json
@@ -1,18 +1,25 @@
{
- "_from": "validate-npm-package-name@~3.0.0",
+ "_args": [
+ [
+ "validate-npm-package-name@3.0.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "validate-npm-package-name@3.0.0",
"_id": "validate-npm-package-name@3.0.0",
+ "_inBundle": false,
"_integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=",
"_location": "/validate-npm-package-name",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "validate-npm-package-name@~3.0.0",
+ "raw": "validate-npm-package-name@3.0.0",
"name": "validate-npm-package-name",
"escapedName": "validate-npm-package-name",
- "rawSpec": "~3.0.0",
+ "rawSpec": "3.0.0",
"saveSpec": null,
- "fetchSpec": "~3.0.0"
+ "fetchSpec": "3.0.0"
},
"_requiredBy": [
"/",
@@ -20,22 +27,17 @@
"/npm-package-arg"
],
"_resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
- "_shasum": "5fa912d81eb7d0c74afc140de7317f0ca7df437e",
- "_shrinkwrap": null,
- "_spec": "validate-npm-package-name@~3.0.0",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "3.0.0",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "zeke"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/validate-npm-package-name/issues"
},
- "bundleDependencies": false,
"dependencies": {
"builtins": "^1.0.3"
},
- "deprecated": false,
"description": "Give me a string and I'll tell you if it's a valid npm package name",
"devDependencies": {
"standard": "^8.6.0",
@@ -54,8 +56,6 @@
"license": "ISC",
"main": "index.js",
"name": "validate-npm-package-name",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/validate-npm-package-name.git"
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/.npmignore b/deps/npm/node_modules/verror/.npmignore
index f14aec8043..f14aec8043 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/.npmignore
+++ b/deps/npm/node_modules/verror/.npmignore
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CHANGES.md b/deps/npm/node_modules/verror/CHANGES.md
index bbb745a2f3..bbb745a2f3 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CHANGES.md
+++ b/deps/npm/node_modules/verror/CHANGES.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CONTRIBUTING.md b/deps/npm/node_modules/verror/CONTRIBUTING.md
index 750cef8dfd..750cef8dfd 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/CONTRIBUTING.md
+++ b/deps/npm/node_modules/verror/CONTRIBUTING.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/LICENSE b/deps/npm/node_modules/verror/LICENSE
index 82a5cb8634..82a5cb8634 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/LICENSE
+++ b/deps/npm/node_modules/verror/LICENSE
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/README.md b/deps/npm/node_modules/verror/README.md
index c1f0635ef5..c1f0635ef5 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/README.md
+++ b/deps/npm/node_modules/verror/README.md
diff --git a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js b/deps/npm/node_modules/verror/lib/verror.js
index 8663ddeadc..8663ddeadc 100644
--- a/deps/npm/node_modules/request/node_modules/http-signature/node_modules/jsprim/node_modules/verror/lib/verror.js
+++ b/deps/npm/node_modules/verror/lib/verror.js
diff --git a/deps/npm/node_modules/verror/package.json b/deps/npm/node_modules/verror/package.json
new file mode 100644
index 0000000000..35cc37851c
--- /dev/null
+++ b/deps/npm/node_modules/verror/package.json
@@ -0,0 +1,51 @@
+{
+ "_from": "verror@1.10.0",
+ "_id": "verror@1.10.0",
+ "_inBundle": false,
+ "_integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+ "_location": "/verror",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "version",
+ "registry": true,
+ "raw": "verror@1.10.0",
+ "name": "verror",
+ "escapedName": "verror",
+ "rawSpec": "1.10.0",
+ "saveSpec": null,
+ "fetchSpec": "1.10.0"
+ },
+ "_requiredBy": [
+ "/jsprim"
+ ],
+ "_resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "_shasum": "3a105ca17053af55d6e270c1f8288682e18da400",
+ "_spec": "verror@1.10.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/jsprim",
+ "bugs": {
+ "url": "https://github.com/davepacheco/node-verror/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ },
+ "deprecated": false,
+ "description": "richer JavaScript errors",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "homepage": "https://github.com/davepacheco/node-verror#readme",
+ "license": "MIT",
+ "main": "./lib/verror.js",
+ "name": "verror",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/davepacheco/node-verror.git"
+ },
+ "scripts": {
+ "test": "make test"
+ },
+ "version": "1.10.0"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/.npmignore b/deps/npm/node_modules/wcwidth/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/.npmignore
+++ b/deps/npm/node_modules/wcwidth/.npmignore
diff --git a/deps/npm/node_modules/wcwidth/LICENSE b/deps/npm/node_modules/wcwidth/LICENSE
new file mode 100644
index 0000000000..14deaf94b8
--- /dev/null
+++ b/deps/npm/node_modules/wcwidth/LICENSE
@@ -0,0 +1,29 @@
+wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation
+=======================================================================
+
+Copyright (C) 2012 by Jun Woong.
+
+This package is a JavaScript porting of `wcwidth()` implementation
+[by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c).
+
+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.
+
+
+THIS SOFTWARE IS PROVIDED ``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 AUTHOR
+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/columnify/node_modules/wcwidth/Readme.md b/deps/npm/node_modules/wcwidth/Readme.md
index 0649a31987..0649a31987 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/Readme.md
+++ b/deps/npm/node_modules/wcwidth/Readme.md
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js b/deps/npm/node_modules/wcwidth/combining.js
index dac9789d35..dac9789d35 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/combining.js
+++ b/deps/npm/node_modules/wcwidth/combining.js
diff --git a/deps/npm/node_modules/wcwidth/docs/index.md b/deps/npm/node_modules/wcwidth/docs/index.md
new file mode 100644
index 0000000000..64c1f3f7cd
--- /dev/null
+++ b/deps/npm/node_modules/wcwidth/docs/index.md
@@ -0,0 +1,62 @@
+### Javascript porting of Markus Kuhn's wcwidth() implementation
+
+The following explanation comes from the original C implementation:
+
+This is an implementation of wcwidth() and wcswidth() (defined in
+IEEE Std 1002.1-2001) for Unicode.
+
+http://www.opengroup.org/onlinepubs/007904975/functions/wcwidth.html
+http://www.opengroup.org/onlinepubs/007904975/functions/wcswidth.html
+
+In fixed-width output devices, Latin characters all occupy a single
+"cell" position of equal width, whereas ideographic CJK characters
+occupy two such cells. Interoperability between terminal-line
+applications and (teletype-style) character terminals using the
+UTF-8 encoding requires agreement on which character should advance
+the cursor by how many cell positions. No established formal
+standards exist at present on which Unicode character shall occupy
+how many cell positions on character terminals. These routines are
+a first attempt of defining such behavior based on simple rules
+applied to data provided by the Unicode Consortium.
+
+For some graphical characters, the Unicode standard explicitly
+defines a character-cell width via the definition of the East Asian
+FullWidth (F), Wide (W), Half-width (H), and Narrow (Na) classes.
+In all these cases, there is no ambiguity about which width a
+terminal shall use. For characters in the East Asian Ambiguous (A)
+class, the width choice depends purely on a preference of backward
+compatibility with either historic CJK or Western practice.
+Choosing single-width for these characters is easy to justify as
+the appropriate long-term solution, as the CJK practice of
+displaying these characters as double-width comes from historic
+implementation simplicity (8-bit encoded characters were displayed
+single-width and 16-bit ones double-width, even for Greek,
+Cyrillic, etc.) and not any typographic considerations.
+
+Much less clear is the choice of width for the Not East Asian
+(Neutral) class. Existing practice does not dictate a width for any
+of these characters. It would nevertheless make sense
+typographically to allocate two character cells to characters such
+as for instance EM SPACE or VOLUME INTEGRAL, which cannot be
+represented adequately with a single-width glyph. The following
+routines at present merely assign a single-cell width to all
+neutral characters, in the interest of simplicity. This is not
+entirely satisfactory and should be reconsidered before
+establishing a formal standard in this area. At the moment, the
+decision which Not East Asian (Neutral) characters should be
+represented by double-width glyphs cannot yet be answered by
+applying a simple rule from the Unicode database content. Setting
+up a proper standard for the behavior of UTF-8 character terminals
+will require a careful analysis not only of each Unicode character,
+but also of each presentation form, something the author of these
+routines has avoided to do so far.
+
+http://www.unicode.org/unicode/reports/tr11/
+
+Markus Kuhn -- 2007-05-26 (Unicode 5.0)
+
+Permission to use, copy, modify, and distribute this software
+for any purpose and without fee is hereby granted. The author
+disclaims all warranties with regard to this software.
+
+Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
diff --git a/deps/npm/node_modules/columnify/node_modules/wcwidth/index.js b/deps/npm/node_modules/wcwidth/index.js
index 48cbb6020a..48cbb6020a 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/index.js
+++ b/deps/npm/node_modules/wcwidth/index.js
diff --git a/deps/npm/node_modules/wcwidth/package.json b/deps/npm/node_modules/wcwidth/package.json
new file mode 100644
index 0000000000..bd34c94b8d
--- /dev/null
+++ b/deps/npm/node_modules/wcwidth/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "wcwidth@^1.0.0",
+ "_id": "wcwidth@1.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+ "_location": "/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",
+ "_spec": "wcwidth@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/columnify",
+ "author": {
+ "name": "Tim Oxley"
+ },
+ "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",
+ "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/wcwidth/test/index.js
index 5180599a2f..5180599a2f 100644
--- a/deps/npm/node_modules/columnify/node_modules/wcwidth/test/index.js
+++ b/deps/npm/node_modules/wcwidth/test/index.js
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/CHANGELOG.md b/deps/npm/node_modules/which-module/CHANGELOG.md
index 863d4698ec..863d4698ec 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/CHANGELOG.md
+++ b/deps/npm/node_modules/which-module/CHANGELOG.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/LICENSE b/deps/npm/node_modules/which-module/LICENSE
index ab601b657e..ab601b657e 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/ansi-align/LICENSE
+++ b/deps/npm/node_modules/which-module/LICENSE
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/README.md b/deps/npm/node_modules/which-module/README.md
index a8c4bf8d70..a8c4bf8d70 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/README.md
+++ b/deps/npm/node_modules/which-module/README.md
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/index.js b/deps/npm/node_modules/which-module/index.js
index 45559b7818..45559b7818 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/which-module/index.js
+++ b/deps/npm/node_modules/which-module/index.js
diff --git a/deps/npm/node_modules/which-module/package.json b/deps/npm/node_modules/which-module/package.json
new file mode 100644
index 0000000000..fb7067d365
--- /dev/null
+++ b/deps/npm/node_modules/which-module/package.json
@@ -0,0 +1,68 @@
+{
+ "_from": "which-module@^2.0.0",
+ "_id": "which-module@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "_location": "/which-module",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "which-module@^2.0.0",
+ "name": "which-module",
+ "escapedName": "which-module",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "_shasum": "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a",
+ "_spec": "which-module@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "nexdrew"
+ },
+ "bugs": {
+ "url": "https://github.com/nexdrew/which-module/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Find the module object for something that was require()d",
+ "devDependencies": {
+ "ava": "^0.19.1",
+ "coveralls": "^2.13.1",
+ "nyc": "^10.3.0",
+ "standard": "^10.0.2",
+ "standard-version": "^4.0.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/nexdrew/which-module#readme",
+ "keywords": [
+ "which",
+ "module",
+ "exports",
+ "filename",
+ "require",
+ "reverse",
+ "lookup"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "which-module",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/nexdrew/which-module.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc ava"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/which/node_modules/isexe/LICENSE b/deps/npm/node_modules/which/node_modules/isexe/LICENSE
deleted file mode 100644
index 19129e315f..0000000000
--- a/deps/npm/node_modules/which/node_modules/isexe/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/which/node_modules/isexe/package.json b/deps/npm/node_modules/which/node_modules/isexe/package.json
deleted file mode 100644
index d9e2abbf8a..0000000000
--- a/deps/npm/node_modules/which/node_modules/isexe/package.json
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- "_from": "isexe@^2.0.0",
- "_id": "isexe@2.0.0",
- "_integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "_location": "/which/isexe",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "isexe@^2.0.0",
- "name": "isexe",
- "escapedName": "isexe",
- "rawSpec": "^2.0.0",
- "saveSpec": null,
- "fetchSpec": "^2.0.0"
- },
- "_requiredBy": [
- "/which"
- ],
- "_resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "_shasum": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
- "_shrinkwrap": null,
- "_spec": "isexe@^2.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/which",
- "author": {
- "name": "Isaac Z. Schlueter",
- "email": "i@izs.me",
- "url": "http://blog.izs.me/"
- },
- "bin": null,
- "bugs": {
- "url": "https://github.com/isaacs/isexe/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "Minimal module to check if a file is executable.",
- "devDependencies": {
- "mkdirp": "^0.5.1",
- "rimraf": "^2.5.0",
- "tap": "^10.3.0"
- },
- "directories": {
- "test": "test"
- },
- "homepage": "https://github.com/isaacs/isexe#readme",
- "keywords": [],
- "license": "ISC",
- "main": "index.js",
- "name": "isexe",
- "optionalDependencies": {},
- "peerDependencies": {},
- "repository": {
- "type": "git",
- "url": "git+https://github.com/isaacs/isexe.git"
- },
- "scripts": {
- "postpublish": "git push origin --all; git push origin --tags",
- "postversion": "npm publish",
- "preversion": "npm test",
- "test": "tap test/*.js --100"
- },
- "version": "2.0.0"
-}
diff --git a/deps/npm/node_modules/which/package.json b/deps/npm/node_modules/which/package.json
index 5c43403f9e..5ff586789d 100644
--- a/deps/npm/node_modules/which/package.json
+++ b/deps/npm/node_modules/which/package.json
@@ -1,4 +1,10 @@
{
+ "_args": [
+ [
+ "which@1.3.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
"_from": "which@1.3.0",
"_id": "which@1.3.0",
"_inBundle": false,
@@ -16,18 +22,16 @@
"fetchSpec": "1.3.0"
},
"_requiredBy": [
- "#USER",
"/",
+ "/cross-spawn",
+ "/foreground-child/cross-spawn",
"/libnpx",
- "/libnpx/yargs/os-locale/execa/cross-spawn",
"/node-gyp",
- "/pacote",
- "/tap/foreground-child/cross-spawn",
- "/update-notifier/boxen/term-size/execa/cross-spawn-async"
+ "/npm-lifecycle",
+ "/pacote"
],
"_resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
- "_shasum": "ff04bdfc010ee547d780bec38e1ac1c2777d253a",
- "_spec": "which@1.3.0",
+ "_spec": "1.3.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
@@ -40,11 +44,9 @@
"bugs": {
"url": "https://github.com/isaacs/node-which/issues"
},
- "bundleDependencies": false,
"dependencies": {
"isexe": "^2.0.0"
},
- "deprecated": false,
"description": "Like which(1) unix command. Find the first instance of an executable in the PATH.",
"devDependencies": {
"mkdirp": "^0.5.0",
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/LICENSE b/deps/npm/node_modules/wide-align/LICENSE
index 2a4982dc40..2a4982dc40 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/LICENSE
+++ b/deps/npm/node_modules/wide-align/LICENSE
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/README.md b/deps/npm/node_modules/wide-align/README.md
index 4cbb017556..4cbb017556 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/README.md
+++ b/deps/npm/node_modules/wide-align/README.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js b/deps/npm/node_modules/wide-align/align.js
index 9e8359c6c7..9e8359c6c7 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/wide-align/align.js
+++ b/deps/npm/node_modules/wide-align/align.js
diff --git a/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 b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/index.js
index b9574ed7e8..b9574ed7e8 100644
--- a/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
+++ b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/license b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/license
+++ b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/wide-align/node_modules/ansi-regex/package.json b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..e1e60b9d29
--- /dev/null
+++ b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/wide-align/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/wide-align/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/wide-align/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/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 b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/readme.md
index 6a928edf0f..6a928edf0f 100644
--- a/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
+++ b/deps/npm/node_modules/wide-align/node_modules/ansi-regex/readme.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/index.js
index a7d3e3855f..a7d3e3855f 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/index.js
+++ b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/index.js
diff --git a/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 b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/license
diff --git a/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..4ccf5e8b35
--- /dev/null
+++ b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "is-fullwidth-code-point@^1.0.0",
+ "_id": "is-fullwidth-code-point@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "_location": "/wide-align/is-fullwidth-code-point",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-fullwidth-code-point@^1.0.0",
+ "name": "is-fullwidth-code-point",
+ "escapedName": "is-fullwidth-code-point",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/wide-align/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
+ "_spec": "is-fullwidth-code-point@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/wide-align/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "0.0.4",
+ "code-point-at": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "is-fullwidth-code-point",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/readme.md
index 4936464b1b..4936464b1b 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/node_modules/is-fullwidth-code-point/readme.md
+++ b/deps/npm/node_modules/wide-align/node_modules/is-fullwidth-code-point/readme.md
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js b/deps/npm/node_modules/wide-align/node_modules/string-width/index.js
index b9bec62440..b9bec62440 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/index.js
+++ b/deps/npm/node_modules/wide-align/node_modules/string-width/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license b/deps/npm/node_modules/wide-align/node_modules/string-width/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/get-stream/license
+++ b/deps/npm/node_modules/wide-align/node_modules/string-width/license
diff --git a/deps/npm/node_modules/wide-align/node_modules/string-width/package.json b/deps/npm/node_modules/wide-align/node_modules/string-width/package.json
new file mode 100644
index 0000000000..0ddda22db1
--- /dev/null
+++ b/deps/npm/node_modules/wide-align/node_modules/string-width/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "string-width@^1.0.2",
+ "_id": "string-width@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "_location": "/wide-align/string-width",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string-width@^1.0.2",
+ "name": "string-width",
+ "escapedName": "string-width",
+ "rawSpec": "^1.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.2"
+ },
+ "_requiredBy": [
+ "/wide-align"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_spec": "string-width@^1.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/wide-align",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "name": "string-width",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/readme.md b/deps/npm/node_modules/wide-align/node_modules/string-width/readme.md
index 1ab42c9358..1ab42c9358 100644
--- a/deps/npm/node_modules/npmlog/node_modules/gauge/node_modules/string-width/readme.md
+++ b/deps/npm/node_modules/wide-align/node_modules/string-width/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/index.js b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/index.js
index 099480fbfc..099480fbfc 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/index.js
+++ b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/license b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/is-stream/license
+++ b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/license
diff --git a/deps/npm/node_modules/wide-align/node_modules/strip-ansi/package.json b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/package.json
new file mode 100644
index 0000000000..1f4aa56b0f
--- /dev/null
+++ b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/package.json
@@ -0,0 +1,101 @@
+{
+ "_from": "strip-ansi@^3.0.0",
+ "_id": "strip-ansi@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "_location": "/wide-align/strip-ansi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-ansi@^3.0.0",
+ "name": "strip-ansi",
+ "escapedName": "strip-ansi",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/wide-align/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_spec": "strip-ansi@^3.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/wide-align/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "strip-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/readme.md
index cb7d9ff7ee..cb7d9ff7ee 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/node_modules/strip-ansi/readme.md
+++ b/deps/npm/node_modules/wide-align/node_modules/strip-ansi/readme.md
diff --git a/deps/npm/node_modules/wide-align/package.json b/deps/npm/node_modules/wide-align/package.json
new file mode 100644
index 0000000000..2e86207a30
--- /dev/null
+++ b/deps/npm/node_modules/wide-align/package.json
@@ -0,0 +1,69 @@
+{
+ "_from": "wide-align@^1.1.0",
+ "_id": "wide-align@1.1.2",
+ "_inBundle": false,
+ "_integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==",
+ "_location": "/wide-align",
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "number-is-nan": "1.0.1"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "wide-align@^1.1.0",
+ "name": "wide-align",
+ "escapedName": "wide-align",
+ "rawSpec": "^1.1.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.1.0"
+ },
+ "_requiredBy": [
+ "/gauge"
+ ],
+ "_resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz",
+ "_shasum": "571e0f1b0604636ebc0dfc21b0339bbe31341710",
+ "_spec": "wide-align@^1.1.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/gauge",
+ "author": {
+ "name": "Rebecca Turner",
+ "email": "me@re-becca.org",
+ "url": "http://re-becca.org/"
+ },
+ "bugs": {
+ "url": "https://github.com/iarna/wide-align/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "string-width": "^1.0.2"
+ },
+ "deprecated": false,
+ "description": "A wide-character aware text alignment function for use on the console or with fixed width fonts.",
+ "devDependencies": {
+ "tap": "^10.3.2"
+ },
+ "files": [
+ "align.js"
+ ],
+ "homepage": "https://github.com/iarna/wide-align#readme",
+ "keywords": [
+ "wide",
+ "double",
+ "unicode",
+ "cjkv",
+ "pad",
+ "align"
+ ],
+ "license": "ISC",
+ "main": "align.js",
+ "name": "wide-align",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/iarna/wide-align.git"
+ },
+ "scripts": {
+ "test": "tap --coverage test/*.js",
+ "version": "perl -pi -e 's/^( \"version\": $ENV{npm_config_node_version}\").*?\",/$1abc\",/' package-lock.json ; git add package-lock.json"
+ },
+ "version": "1.1.2"
+}
diff --git a/deps/npm/node_modules/widest-line/index.js b/deps/npm/node_modules/widest-line/index.js
new file mode 100644
index 0000000000..284a0251e4
--- /dev/null
+++ b/deps/npm/node_modules/widest-line/index.js
@@ -0,0 +1,4 @@
+'use strict';
+const stringWidth = require('string-width');
+
+module.exports = input => Math.max.apply(null, input.split('\n').map(x => stringWidth(x)));
diff --git a/deps/npm/node_modules/widest-line/license b/deps/npm/node_modules/widest-line/license
new file mode 100644
index 0000000000..e7af2f7710
--- /dev/null
+++ b/deps/npm/node_modules/widest-line/license
@@ -0,0 +1,9 @@
+MIT License
+
+Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (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/widest-line/package.json b/deps/npm/node_modules/widest-line/package.json
new file mode 100644
index 0000000000..2eb1d53fc9
--- /dev/null
+++ b/deps/npm/node_modules/widest-line/package.json
@@ -0,0 +1,86 @@
+{
+ "_from": "widest-line@^2.0.0",
+ "_id": "widest-line@2.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=",
+ "_location": "/widest-line",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "widest-line@^2.0.0",
+ "name": "widest-line",
+ "escapedName": "widest-line",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/boxen"
+ ],
+ "_resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz",
+ "_shasum": "0142a4e8a243f8882c0233aa0e0281aa76152273",
+ "_spec": "widest-line@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/boxen",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/widest-line/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "string-width": "^2.1.1"
+ },
+ "deprecated": false,
+ "description": "Get the visual width of the widest line in a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/widest-line#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "name": "widest-line",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/widest-line.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "2.0.0"
+}
diff --git a/deps/npm/node_modules/widest-line/readme.md b/deps/npm/node_modules/widest-line/readme.md
new file mode 100644
index 0000000000..20e02d5746
--- /dev/null
+++ b/deps/npm/node_modules/widest-line/readme.md
@@ -0,0 +1,34 @@
+# widest-line [![Build Status](https://travis-ci.org/sindresorhus/widest-line.svg?branch=master)](https://travis-ci.org/sindresorhus/widest-line)
+
+> Get the visual width of the widest line in a string - the number of columns required to display it
+
+Some Unicode characters are [fullwidth](https://en.wikipedia.org/wiki/Halfwidth_and_fullwidth_forms) and use double the normal width. [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code) are stripped and doesn't affect the width.
+
+Useful to be able to know the maximum width a string will take up in the terminal.
+
+
+## Install
+
+```
+$ npm install widest-line
+```
+
+
+## Usage
+
+```js
+const widestLine = require('widest-line');
+
+widestLine('古\n\u001B[1m@\u001B[22m');
+//=> 2
+```
+
+
+## Related
+
+- [string-width](https://github.com/sindresorhus/string-width) - Get the visual width of a string
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](https://sindresorhus.com)
diff --git a/deps/npm/node_modules/worker-farm/.editorconfig b/deps/npm/node_modules/worker-farm/.editorconfig
new file mode 100644
index 0000000000..feaebc2315
--- /dev/null
+++ b/deps/npm/node_modules/worker-farm/.editorconfig
@@ -0,0 +1,16 @@
+# This file is for unifying the coding style for different editors and IDEs
+# editorconfig.org
+
+root = true
+
+[*]
+end_of_line = lf
+charset = utf-8
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = space
+indent_size = 2
+
+[*.js]
+max_line_length = 80
+View
diff --git a/deps/npm/node_modules/worker-farm/.travis.yml b/deps/npm/node_modules/worker-farm/.travis.yml
index 8e23761153..1c9e2b559d 100644
--- a/deps/npm/node_modules/worker-farm/.travis.yml
+++ b/deps/npm/node_modules/worker-farm/.travis.yml
@@ -3,6 +3,7 @@ node_js:
- 4
- 6
- 8
+ - 9
branches:
only:
- master
diff --git a/deps/npm/node_modules/worker-farm/README.md b/deps/npm/node_modules/worker-farm/README.md
index 87ee4b61b5..982b37cb5d 100644
--- a/deps/npm/node_modules/worker-farm/README.md
+++ b/deps/npm/node_modules/worker-farm/README.md
@@ -103,7 +103,8 @@ If you don't provide an `options` object then the following defaults will be use
```js
{
- maxCallsPerWorker : Infinity
+ workerOptions : {}
+ , maxCallsPerWorker : Infinity
, maxConcurrentWorkers : require('os').cpus().length
, maxConcurrentCallsPerWorker : 10
, maxConcurrentCalls : Infinity
@@ -113,6 +114,8 @@ If you don't provide an `options` object then the following defaults will be use
}
```
+ * **<code>workerOptions</code>** allows you to customize all the parameters passed to child nodes. This object supports [all possible options of `child_process.fork`](https://nodejs.org/api/child_process.html#child_process_child_process_fork_modulepath_args_options). The default options passed are the parent `execArgv`, `cwd` and `env`. Any (or all) of them can be overridden, and others can be added as well.
+
* **<code>maxCallsPerWorker</code>** allows you to control the lifespan of your child processes. A positive number will indicate that you only want each child to accept that many calls before it is terminated. This may be useful if you need to control memory leaks or similar in child processes.
* **<code>maxConcurrentWorkers</code>** will set the number of child processes to maintain concurrently. By default it is set to the number of CPUs available on the current system, but it can be any reasonable number, including `1`.
diff --git a/deps/npm/node_modules/worker-farm/examples/basic/child.js b/deps/npm/node_modules/worker-farm/examples/basic/child.js
index 41e124b06e..0f0900b5e2 100644
--- a/deps/npm/node_modules/worker-farm/examples/basic/child.js
+++ b/deps/npm/node_modules/worker-farm/examples/basic/child.js
@@ -2,4 +2,4 @@
module.exports = function (inp, callback) {
callback(null, inp + ' BAR (' + process.pid + ')')
-} \ No newline at end of file
+}
diff --git a/deps/npm/node_modules/worker-farm/examples/basic/index.js b/deps/npm/node_modules/worker-farm/examples/basic/index.js
index 3c9a1086e9..452e7b1630 100644
--- a/deps/npm/node_modules/worker-farm/examples/basic/index.js
+++ b/deps/npm/node_modules/worker-farm/examples/basic/index.js
@@ -10,4 +10,4 @@ for (let i = 0; i < 10; i++) {
if (++ret == 10)
workerFarm.end(workers)
})
-} \ No newline at end of file
+}
diff --git a/deps/npm/node_modules/worker-farm/examples/pi/calc.js b/deps/npm/node_modules/worker-farm/examples/pi/calc.js
index 42c77c2bd2..df9e5bae13 100644
--- a/deps/npm/node_modules/worker-farm/examples/pi/calc.js
+++ b/deps/npm/node_modules/worker-farm/examples/pi/calc.js
@@ -19,4 +19,4 @@ module.exports = function (points, callback) {
inside++
callback(null, (inside / points) * 4)
-} \ No newline at end of file
+}
diff --git a/deps/npm/node_modules/worker-farm/lib/farm.js b/deps/npm/node_modules/worker-farm/lib/farm.js
index bdc70e84a1..ef0ab0e105 100644
--- a/deps/npm/node_modules/worker-farm/lib/farm.js
+++ b/deps/npm/node_modules/worker-farm/lib/farm.js
@@ -1,8 +1,9 @@
'use strict'
const DEFAULT_OPTIONS = {
- maxCallsPerWorker : Infinity
- , maxConcurrentWorkers : require('os').cpus().length
+ workerOptions : {}
+ , maxCallsPerWorker : Infinity
+ , maxConcurrentWorkers : (require('os').cpus() || { length: 1 }).length
, maxConcurrentCallsPerWorker : 10
, maxConcurrentCalls : Infinity
, maxCallTime : Infinity // exceed this and the whole worker is terminated
@@ -11,15 +12,14 @@ const DEFAULT_OPTIONS = {
, autoStart : false
}
-const extend = require('xtend')
- , fork = require('./fork')
+const fork = require('./fork')
, TimeoutError = require('errno').create('TimeoutError')
, ProcessTerminatedError = require('errno').create('ProcessTerminatedError')
, MaxConcurrentCallsError = require('errno').create('MaxConcurrentCallsError')
function Farm (options, path) {
- this.options = extend(DEFAULT_OPTIONS, options)
+ this.options = Object.assign({}, DEFAULT_OPTIONS, options)
this.path = path
this.activeCalls = 0
}
@@ -103,7 +103,7 @@ Farm.prototype.onExit = function (childId) {
Farm.prototype.startChild = function () {
this.childId++
- let forked = fork(this.path)
+ let forked = fork(this.path, this.options.workerOptions)
, id = this.childId
, c = {
send : forked.send
@@ -132,7 +132,7 @@ Farm.prototype.stopChild = function (childId) {
setTimeout(function () {
if (child.exitCode === null)
child.child.kill('SIGKILL')
- }, this.options.forcedKillTime)
+ }, this.options.forcedKillTime).unref()
;delete this.children[childId]
this.activeChildren--
}
diff --git a/deps/npm/node_modules/worker-farm/lib/fork.js b/deps/npm/node_modules/worker-farm/lib/fork.js
index 46cf79b73e..2843df4847 100644
--- a/deps/npm/node_modules/worker-farm/lib/fork.js
+++ b/deps/npm/node_modules/worker-farm/lib/fork.js
@@ -4,16 +4,17 @@ const childProcess = require('child_process')
, childModule = require.resolve('./child/index')
-function fork (forkModule) {
+function fork (forkModule, workerOptions) {
// suppress --debug / --inspect flags while preserving others (like --harmony)
let filteredArgs = process.execArgv.filter(function (v) {
return !(/^--(debug|inspect)/).test(v)
})
- , child = childProcess.fork(childModule, process.argv, {
- execArgv: filteredArgs
- , env: process.env
- , cwd: process.cwd()
- })
+ , options = Object.assign({
+ execArgv : filteredArgs
+ , env : process.env
+ , cwd : process.cwd()
+ }, workerOptions)
+ , child = childProcess.fork(childModule, process.argv, options)
child.on('error', function() {
// this *should* be picked up by onExit and the operation requeued
diff --git a/deps/npm/node_modules/worker-farm/lib/index.js b/deps/npm/node_modules/worker-farm/lib/index.js
index 4df0902f84..fe574e59b5 100644
--- a/deps/npm/node_modules/worker-farm/lib/index.js
+++ b/deps/npm/node_modules/worker-farm/lib/index.js
@@ -31,4 +31,4 @@ function end (api, callback) {
module.exports = farm
-module.exports.end = end \ No newline at end of file
+module.exports.end = end
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore b/deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore
deleted file mode 100644
index b512c09d47..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/README.md b/deps/npm/node_modules/worker-farm/node_modules/errno/README.md
deleted file mode 100644
index 2c1f8a525d..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/README.md
+++ /dev/null
@@ -1,141 +0,0 @@
-# node-errno
-
-Better [libuv](https://github.com/libuv/libuv)/[Node.js](https://nodejs.org)/[io.js](https://iojs.org) error handling & reporting. Available in npm as *errno*.
-
-* [errno exposed](#errnoexposed)
-* [Custom errors](#customerrors)
-
-<a name="errnoexposed"></a>
-## errno exposed
-
-Ever find yourself needing more details about Node.js errors? Me too, so *node-errno* contains the errno mappings direct from libuv so you can use them in your code.
-
-**By errno:**
-
-```js
-require('errno').errno[3]
-// ā†’ {
-// "errno": 3,
-// "code": "EACCES",
-// "description": "permission denied"
-// }
-```
-
-**By code:**
-
-```js
-require('errno').code.ENOTEMPTY
-// ā†’ {
-// "errno": 53,
-// "code": "ENOTEMPTY",
-// "description": "directory not empty"
-// }
-```
-
-**Make your errors more descriptive:**
-
-```js
-var errno = require('errno')
-
-function errmsg(err) {
- var str = 'Error: '
- // if it's a libuv error then get the description from errno
- if (errno.errno[err.errno])
- str += errno.errno[err.errno].description
- else
- str += err.message
-
- // if it's a `fs` error then it'll have a 'path' property
- if (err.path)
- str += ' [' + err.path + ']'
-
- return str
-}
-
-var fs = require('fs')
-
-fs.readFile('thisisnotarealfile.txt', function (err, data) {
- if (err)
- console.log(errmsg(err))
-})
-```
-
-**Use as a command line tool:**
-
-```
-~ $ errno 53
-{
- "errno": 53,
- "code": "ENOTEMPTY",
- "description": "directory not empty"
-}
-~ $ errno EROFS
-{
- "errno": 56,
- "code": "EROFS",
- "description": "read-only file system"
-}
-~ $ errno foo
-No such errno/code: "foo"
-```
-
-Supply no arguments for the full list. Error codes are processed case-insensitive.
-
-You will need to install with `npm install errno -g` if you want the `errno` command to be available without supplying a full path to the node_modules installation.
-
-<a name="customerrors"></a>
-## Custom errors
-
-Use `errno.custom.createError()` to create custom `Error` objects to throw around in your Node.js library. Create error heirachies so `instanceof` becomes a useful tool in tracking errors. Call-stack is correctly captured at the time you create an instance of the error object, plus a `cause` property will make available the original error object if you pass one in to the constructor.
-
-```js
-var create = require('errno').custom.createError
-var MyError = create('MyError') // inherits from Error
-var SpecificError = create('SpecificError', MyError) // inherits from MyError
-var OtherError = create('OtherError', MyError)
-
-// use them!
-if (condition) throw new SpecificError('Eeek! Something bad happened')
-
-if (err) return callback(new OtherError(err))
-```
-
-Also available is a `errno.custom.FilesystemError` with in-built access to errno properties:
-
-```js
-fs.readFile('foo', function (err, data) {
- if (err) return callback(new errno.custom.FilesystemError(err))
- // do something else
-})
-```
-
-The resulting error object passed through the callback will have the following properties: `code`, `errno`, `path` and `message` will contain a descriptive human-readable message.
-
-## Contributors
-
-* [bahamas10](https://github.com/bahamas10) (Dave Eddy) - Added CLI
-* [ralphtheninja](https://github.com/ralphtheninja) (Lars-Magnus Skog)
-
-## Copyright & Licence
-
-*Copyright (c) 2012-2015 [Rod Vagg](https://github.com/rvagg) ([@rvagg](https://twitter.com/rvagg))*
-
-Made available under the MIT licence:
-
-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/worker-farm/node_modules/errno/cli.js b/deps/npm/node_modules/worker-farm/node_modules/errno/cli.js
deleted file mode 100755
index f841771b8a..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/cli.js
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env node
-
-var errno = require('./')
- , arg = process.argv[2]
- , data, code
-
-if (arg === undefined)
- return console.log(JSON.stringify(errno.code, null, 2))
-
-if ((code = +arg) == arg)
- data = errno.errno[code]
-else
- data = errno.code[arg] || errno.code[arg.toUpperCase()]
-
-if (data)
- console.log(JSON.stringify(data, null, 2))
-else {
- console.error('No such errno/code: "' + arg + '"')
- process.exit(1)
-} \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore b/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore
deleted file mode 100644
index b512c09d47..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml b/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml
deleted file mode 100644
index fe3f4eb153..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/.travis.yml
+++ /dev/null
@@ -1,10 +0,0 @@
-language: node_js
-node_js:
- - 0.8
- - "0.10"
-branches:
- only:
- - master
-notifications:
- email:
- - rod@vagg.org
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE b/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE
deleted file mode 100644
index f6a0029de1..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/LICENSE
+++ /dev/null
@@ -1,39 +0,0 @@
-Copyright 2013, Rod Vagg (the "Original Author")
-All rights reserved.
-
-MIT +no-false-attribs 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.
-
-Distributions of all or part of the Software intended to be used
-by the recipients as they would use the unmodified Software,
-containing modifications that substantially alter, remove, or
-disable functionality of the Software, outside of the documented
-configuration mechanisms provided by the Software, shall be
-modified such that the Original Author's bug reporting email
-addresses and urls are either replaced with the contact information
-of the parties responsible for the changes, or removed entirely.
-
-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.
-
-
-Except where noted, this license applies to any and all software
-programs and associated documentation files created by the
-Original Author, when distributed with the Software. \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md b/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md
deleted file mode 100644
index 3e709e3bd9..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/README.md
+++ /dev/null
@@ -1,45 +0,0 @@
-# prr [![Build Status](https://secure.travis-ci.org/rvagg/prr.png)](http://travis-ci.org/rvagg/prr)
-
-An sensible alternative to `Object.defineProperty()`. Available in npm and Ender as **prr**.
-
-## Usage
-
-Set the property `'foo'` (`obj.foo`) to have the value `'bar'` with default options (*enumerable, configurable and writable are all false*):
-
-```js
-prr(obj, 'foo', 'bar')
-```
-
-Adjust the default options:
-
-```js
-prr(obj, 'foo', 'bar', { enumerable: true, writable: true })
-```
-
-Do the same operation for multiple properties:
-
-```js
-prr(obj, { one: 'one', two: 'two' })
-// or with options:
-prr(obj, { one: 'one', two: 'two' }, { enumerable: true, writable: true })
-```
-
-But obviously, having to write out the full options object makes it nearly as bad as the original `Object.defineProperty()` so we can **simplify**.
-
-As an alternative method we can use an options string where each character represents a option: `'e'=='enumerable'`, `'c'=='configurable'` and `'w'=='writable'`:
-
-```js
-prr(obj, 'foo', 'bar', 'ew') // enumerable and writable but not configurable
-// muliple properties:
-prr(obj, { one: 'one', two: 'two' }, 'ewc') // configurable too
-```
-
-## Where can I use it?
-
-Anywhere! For pre-ES5 environments *prr* will simply fall-back to an `object[property] = value` so you can get close to what you want.
-
-*prr* is Ender-compatible so you can include it in your Ender build and `$.prr(...)` or `var prr = require('prr'); prr(...)`.
-
-## Licence
-
-prr is Copyright (c) 2013 Rod Vagg [@rvagg](https://twitter.com/rvagg) and licensed under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE file for more details. \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json b/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json
deleted file mode 100644
index 4af59e2e92..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/node_modules/prr/package.json
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "_from": "prr@~0.0.0",
- "_id": "prr@0.0.0",
- "_inBundle": false,
- "_integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=",
- "_location": "/worker-farm/errno/prr",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "prr@~0.0.0",
- "name": "prr",
- "escapedName": "prr",
- "rawSpec": "~0.0.0",
- "saveSpec": null,
- "fetchSpec": "~0.0.0"
- },
- "_requiredBy": [
- "/worker-farm/errno"
- ],
- "_resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz",
- "_shasum": "1a84b85908325501411853d0081ee3fa86e2926a",
- "_spec": "prr@~0.0.0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/worker-farm/node_modules/errno",
- "authors": [
- "Rod Vagg <rod@vagg.org> (https://github.com/rvagg)"
- ],
- "bugs": {
- "url": "https://github.com/rvagg/prr/issues"
- },
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "A better Object.defineProperty()",
- "devDependencies": {
- "tap": "*"
- },
- "homepage": "https://github.com/rvagg/prr",
- "keywords": [
- "property",
- "properties",
- "defineProperty",
- "ender"
- ],
- "license": "MIT",
- "main": "./prr.js",
- "name": "prr",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rvagg/prr.git"
- },
- "scripts": {
- "test": "node ./test.js"
- },
- "version": "0.0.0"
-}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/package.json b/deps/npm/node_modules/worker-farm/node_modules/errno/package.json
deleted file mode 100644
index c0df7f24aa..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/package.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "_from": "errno@>=0.1.1 <0.2.0-0",
- "_id": "errno@0.1.4",
- "_inBundle": false,
- "_integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=",
- "_location": "/worker-farm/errno",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "errno@>=0.1.1 <0.2.0-0",
- "name": "errno",
- "escapedName": "errno",
- "rawSpec": ">=0.1.1 <0.2.0-0",
- "saveSpec": null,
- "fetchSpec": ">=0.1.1 <0.2.0-0"
- },
- "_requiredBy": [
- "/worker-farm"
- ],
- "_resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz",
- "_shasum": "b896e23a9e5e8ba33871fc996abd3635fc9a1c7d",
- "_spec": "errno@>=0.1.1 <0.2.0-0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/worker-farm",
- "authors": [
- "Rod Vagg @rvagg <rod@vagg.org> (https://github.com/rvagg)"
- ],
- "bin": {
- "errno": "./cli.js"
- },
- "bugs": {
- "url": "https://github.com/rvagg/node-errno/issues"
- },
- "bundleDependencies": false,
- "dependencies": {
- "prr": "~0.0.0"
- },
- "deprecated": false,
- "description": "libuv errno details exposed",
- "devDependencies": {
- "tape": "~3.5.0"
- },
- "homepage": "https://github.com/rvagg/node-errno#readme",
- "keywords": [
- "errors",
- "errno",
- "libuv"
- ],
- "license": "MIT",
- "main": "errno.js",
- "name": "errno",
- "repository": {
- "type": "git",
- "url": "git+https://github.com/rvagg/node-errno.git"
- },
- "scripts": {
- "test": "tape test.js"
- },
- "version": "0.1.4"
-}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/errno/test.js b/deps/npm/node_modules/worker-farm/node_modules/errno/test.js
deleted file mode 100755
index 6b76a85ae1..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/errno/test.js
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/usr/bin/env node
-
-var test = require('tape')
- , errno = require('./')
-
-test('sanity checks', function (t) {
- t.ok(errno.all, 'errno.all not found')
- t.ok(errno.errno, 'errno.errno not found')
- t.ok(errno.code, 'errno.code not found')
-
- t.equal(errno.all.length, 59, 'found ' + errno.all.length + ', expected 59')
- t.equal(errno.errno['-1'], errno.all[0], 'errno -1 not first element')
-
- t.equal(errno.code['UNKNOWN'], errno.all[0], 'code UNKNOWN not first element')
-
- t.equal(errno.errno[1], errno.all[2], 'errno 1 not third element')
-
- t.equal(errno.code['EOF'], errno.all[2], 'code EOF not third element')
- t.end()
-})
-
-test('custom errors', function (t) {
- var Cust = errno.create('FooNotBarError')
- var cust = new Cust('foo is not bar')
-
- t.equal(cust.name, 'FooNotBarError', 'correct custom name')
- t.equal(cust.type, 'FooNotBarError', 'correct custom type')
- t.equal(cust.message, 'foo is not bar', 'correct custom message')
- t.notOk(cust.cause, 'no cause')
- t.end()
-})
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore b/deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore
deleted file mode 100644
index 3c3629e647..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/.npmignore
+++ /dev/null
@@ -1 +0,0 @@
-node_modules
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE b/deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE
deleted file mode 100644
index 1a14b437e8..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/LICENCE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2012-2014 Raynos.
-
-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/worker-farm/node_modules/xtend/Makefile b/deps/npm/node_modules/worker-farm/node_modules/xtend/Makefile
deleted file mode 100644
index d583fcf49d..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-browser:
- node ./support/compile
-
-.PHONY: browser \ No newline at end of file
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/README.md b/deps/npm/node_modules/worker-farm/node_modules/xtend/README.md
deleted file mode 100644
index 093cb2978e..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/README.md
+++ /dev/null
@@ -1,32 +0,0 @@
-# xtend
-
-[![browser support][3]][4]
-
-[![locked](http://badges.github.io/stability-badges/dist/locked.svg)](http://github.com/badges/stability-badges)
-
-Extend like a boss
-
-xtend is a basic utility library which allows you to extend an object by appending all of the properties from each object in a list. When there are identical properties, the right-most property takes precedence.
-
-## Examples
-
-```js
-var extend = require("xtend")
-
-// extend returns a new object. Does not mutate arguments
-var combination = extend({
- a: "a",
- b: 'c'
-}, {
- b: "b"
-})
-// { a: "a", b: "b" }
-```
-
-## Stability status: Locked
-
-## MIT Licenced
-
-
- [3]: http://ci.testling.com/Raynos/xtend.png
- [4]: http://ci.testling.com/Raynos/xtend
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js b/deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js
deleted file mode 100644
index 94889c9de1..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/immutable.js
+++ /dev/null
@@ -1,19 +0,0 @@
-module.exports = extend
-
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-function extend() {
- var target = {}
-
- for (var i = 0; i < arguments.length; i++) {
- var source = arguments[i]
-
- for (var key in source) {
- if (hasOwnProperty.call(source, key)) {
- target[key] = source[key]
- }
- }
- }
-
- return target
-}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js b/deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js
deleted file mode 100644
index 72debede6c..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/mutable.js
+++ /dev/null
@@ -1,17 +0,0 @@
-module.exports = extend
-
-var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-function extend(target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i]
-
- for (var key in source) {
- if (hasOwnProperty.call(source, key)) {
- target[key] = source[key]
- }
- }
- }
-
- return target
-}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/package.json b/deps/npm/node_modules/worker-farm/node_modules/xtend/package.json
deleted file mode 100644
index 7df1addbac..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/package.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "_from": "xtend@>=4.0.0 <4.1.0-0",
- "_id": "xtend@4.0.1",
- "_inBundle": false,
- "_integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "_location": "/worker-farm/xtend",
- "_phantomChildren": {},
- "_requested": {
- "type": "range",
- "registry": true,
- "raw": "xtend@>=4.0.0 <4.1.0-0",
- "name": "xtend",
- "escapedName": "xtend",
- "rawSpec": ">=4.0.0 <4.1.0-0",
- "saveSpec": null,
- "fetchSpec": ">=4.0.0 <4.1.0-0"
- },
- "_requiredBy": [
- "/worker-farm"
- ],
- "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
- "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af",
- "_shrinkwrap": null,
- "_spec": "xtend@>=4.0.0 <4.1.0-0",
- "_where": "/Users/zkat/Documents/code/npm/node_modules/worker-farm",
- "bin": null,
- "bundleDependencies": false,
- "dependencies": {},
- "deprecated": false,
- "description": "[![browser support][3]][4]",
- "devDependencies": {
- "tape": "~1.1.0"
- },
- "engines": {
- "node": ">=0.4"
- },
- "main": "immutable",
- "name": "xtend",
- "optionalDependencies": {},
- "peerDependencies": {},
- "scripts": {},
- "version": "4.0.1"
-}
diff --git a/deps/npm/node_modules/worker-farm/node_modules/xtend/test.js b/deps/npm/node_modules/worker-farm/node_modules/xtend/test.js
deleted file mode 100644
index 093a2b061e..0000000000
--- a/deps/npm/node_modules/worker-farm/node_modules/xtend/test.js
+++ /dev/null
@@ -1,83 +0,0 @@
-var test = require("tape")
-var extend = require("./")
-var mutableExtend = require("./mutable")
-
-test("merge", function(assert) {
- var a = { a: "foo" }
- var b = { b: "bar" }
-
- assert.deepEqual(extend(a, b), { a: "foo", b: "bar" })
- assert.end()
-})
-
-test("replace", function(assert) {
- var a = { a: "foo" }
- var b = { a: "bar" }
-
- assert.deepEqual(extend(a, b), { a: "bar" })
- assert.end()
-})
-
-test("undefined", function(assert) {
- var a = { a: undefined }
- var b = { b: "foo" }
-
- assert.deepEqual(extend(a, b), { a: undefined, b: "foo" })
- assert.deepEqual(extend(b, a), { a: undefined, b: "foo" })
- assert.end()
-})
-
-test("handle 0", function(assert) {
- var a = { a: "default" }
- var b = { a: 0 }
-
- assert.deepEqual(extend(a, b), { a: 0 })
- assert.deepEqual(extend(b, a), { a: "default" })
- assert.end()
-})
-
-test("is immutable", function (assert) {
- var record = {}
-
- extend(record, { foo: "bar" })
- assert.equal(record.foo, undefined)
- assert.end()
-})
-
-test("null as argument", function (assert) {
- var a = { foo: "bar" }
- var b = null
- var c = void 0
-
- assert.deepEqual(extend(b, a, c), { foo: "bar" })
- assert.end()
-})
-
-test("mutable", function (assert) {
- var a = { foo: "bar" }
-
- mutableExtend(a, { bar: "baz" })
-
- assert.equal(a.bar, "baz")
- assert.end()
-})
-
-test("null prototype", function(assert) {
- var a = { a: "foo" }
- var b = Object.create(null)
- b.b = "bar";
-
- assert.deepEqual(extend(a, b), { a: "foo", b: "bar" })
- assert.end()
-})
-
-test("null prototype mutable", function (assert) {
- var a = { foo: "bar" }
- var b = Object.create(null)
- b.bar = "baz";
-
- mutableExtend(a, b)
-
- assert.equal(a.bar, "baz")
- assert.end()
-})
diff --git a/deps/npm/node_modules/worker-farm/package.json b/deps/npm/node_modules/worker-farm/package.json
index d60f581cff..ba43c44d4b 100644
--- a/deps/npm/node_modules/worker-farm/package.json
+++ b/deps/npm/node_modules/worker-farm/package.json
@@ -1,43 +1,45 @@
{
- "_from": "worker-farm@1.5.1",
- "_id": "worker-farm@1.5.1",
+ "_args": [
+ [
+ "worker-farm@1.6.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "worker-farm@1.6.0",
+ "_id": "worker-farm@1.6.0",
"_inBundle": false,
- "_integrity": "sha512-T5NH6Wqsd8MwGD4AK8BBllUy6LmHaqjEOyo/YIUEegZui6/v5Bqde//3jwyE3PGiGYMmWi06exFBi5LNhhPFNw==",
+ "_integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==",
"_location": "/worker-farm",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "worker-farm@1.5.1",
+ "raw": "worker-farm@1.6.0",
"name": "worker-farm",
"escapedName": "worker-farm",
- "rawSpec": "1.5.1",
+ "rawSpec": "1.6.0",
"saveSpec": null,
- "fetchSpec": "1.5.1"
+ "fetchSpec": "1.6.0"
},
"_requiredBy": [
- "#USER",
- "/"
+ "/",
+ "/libcipm"
],
- "_resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.5.1.tgz",
- "_shasum": "8e9f4a7da4f3c595aa600903051b969390423fa1",
- "_spec": "worker-farm@1.5.1",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz",
+ "_spec": "1.6.0",
+ "_where": "/Users/rebecca/code/npm",
"authors": [
"Rod Vagg @rvagg <rod@vagg.org> (https://github.com/rvagg)"
],
"bugs": {
"url": "https://github.com/rvagg/node-worker-farm/issues"
},
- "bundleDependencies": false,
"dependencies": {
- "errno": "^0.1.4",
- "xtend": "^4.0.1"
+ "errno": "~0.1.7"
},
- "deprecated": false,
"description": "Distribute processing tasks to child processes with an Ć¼ber-simple API and baked-in durability & custom concurrency options.",
"devDependencies": {
- "tape": "^4.7.0"
+ "tape": "~4.9.0"
},
"homepage": "https://github.com/rvagg/node-worker-farm",
"keywords": [
@@ -57,5 +59,5 @@
"test": "node ./tests/"
},
"types": "./index.d.ts",
- "version": "1.5.1"
+ "version": "1.6.0"
}
diff --git a/deps/npm/node_modules/worker-farm/tests/child.js b/deps/npm/node_modules/worker-farm/tests/child.js
new file mode 100644
index 0000000000..71cb728f77
--- /dev/null
+++ b/deps/npm/node_modules/worker-farm/tests/child.js
@@ -0,0 +1,87 @@
+'use strict'
+
+const fs = require('fs')
+const started = Date.now()
+
+
+module.exports = function (timeout, callback) {
+ callback = callback.bind(null, null, process.pid, Math.random(), timeout)
+ if (timeout)
+ return setTimeout(callback, timeout)
+ callback()
+}
+
+
+module.exports.args = function (callback) {
+ callback(null, {
+ argv : process.argv
+ , cwd : process.cwd()
+ , execArgv : process.execArgv
+ })
+}
+
+
+module.exports.run0 = function (callback) {
+ module.exports(0, callback)
+}
+
+
+module.exports.killable = function (id, callback) {
+ if (Math.random() < 0.5)
+ return process.exit(-1)
+ callback(null, id, process.pid)
+}
+
+
+module.exports.err = function (type, message, data, callback) {
+ if (typeof data == 'function') {
+ callback = data
+ data = null
+ } else {
+ let err = new Error(message)
+ Object.keys(data).forEach(function(key) {
+ err[key] = data[key]
+ })
+ callback(err)
+ return
+ }
+
+ if (type == 'TypeError')
+ return callback(new TypeError(message))
+ callback(new Error(message))
+}
+
+
+module.exports.block = function () {
+ while (true);
+}
+
+
+// use provided file path to save retries count among terminated workers
+module.exports.stubborn = function (path, callback) {
+ function isOutdated(path) {
+ return ((new Date).getTime() - fs.statSync(path).mtime.getTime()) > 2000
+ }
+
+ // file may not be properly deleted, check if modified no earler than two seconds ago
+ if (!fs.existsSync(path) || isOutdated(path)) {
+ fs.writeFileSync(path, '1')
+ process.exit(-1)
+ }
+
+ let retry = parseInt(fs.readFileSync(path, 'utf8'))
+ if (Number.isNaN(retry))
+ return callback(new Error('file contents is not a number'))
+
+ if (retry > 4) {
+ callback(null, 12)
+ } else {
+ fs.writeFileSync(path, String(retry + 1))
+ process.exit(-1)
+ }
+}
+
+
+module.exports.uptime = function (callback) {
+ callback(null, Date.now() - started)
+}
diff --git a/deps/npm/node_modules/worker-farm/tests/debug.js b/deps/npm/node_modules/worker-farm/tests/debug.js
new file mode 100644
index 0000000000..4d2b803216
--- /dev/null
+++ b/deps/npm/node_modules/worker-farm/tests/debug.js
@@ -0,0 +1,12 @@
+'use strict'
+
+const workerFarm = require('../')
+ , workers = workerFarm(require.resolve('./child'), ['args'])
+
+
+workers.args(function(err, result) {
+ console.log(result);
+ workerFarm.end(workers)
+ console.log('FINISHED')
+ process.exit(0)
+})
diff --git a/deps/npm/node_modules/worker-farm/tests/index.js b/deps/npm/node_modules/worker-farm/tests/index.js
new file mode 100644
index 0000000000..ec9deabedd
--- /dev/null
+++ b/deps/npm/node_modules/worker-farm/tests/index.js
@@ -0,0 +1,564 @@
+'use strict'
+
+const tape = require('tape')
+ , child_process = require('child_process')
+ , workerFarm = require('../')
+ , childPath = require.resolve('./child')
+ , fs = require('fs')
+ , os = require('os')
+
+function uniq (ar) {
+ let a = [], i, j
+ o: for (i = 0; i < ar.length; ++i) {
+ for (j = 0; j < a.length; ++j) if (a[j] == ar[i]) continue o
+ a[a.length] = ar[i]
+ }
+ return a
+}
+
+
+// a child where module.exports = function ...
+tape('simple, exports=function test', function (t) {
+ t.plan(4)
+
+ let child = workerFarm(childPath)
+ child(0, function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense')
+ t.ok(pid < process.pid + 750, 'pid makes sense')
+ t.ok(rnd >= 0 && rnd < 1, 'rnd result makes sense')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+// a child where we have module.exports.fn = function ...
+tape('simple, exports.fn test', function (t) {
+ t.plan(4)
+
+ let child = workerFarm(childPath, [ 'run0' ])
+ child.run0(function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense')
+ t.ok(pid < process.pid + 750, 'pid makes sense')
+ t.ok(rnd >= 0 && rnd < 1, 'rnd result makes sense')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+// use the returned pids to check that we're using a single child process
+// when maxConcurrentWorkers = 1
+tape('single worker', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({ maxConcurrentWorkers: 1 }, childPath)
+ , pids = []
+ , i = 10
+
+ while (i--) {
+ child(0, function (err, pid) {
+ pids.push(pid)
+ if (pids.length == 10) {
+ t.equal(1, uniq(pids).length, 'only a single process (by pid)')
+ } else if (pids.length > 10)
+ t.fail('too many callbacks!')
+ })
+ }
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+// use the returned pids to check that we're using two child processes
+// when maxConcurrentWorkers = 2
+tape('two workers', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({ maxConcurrentWorkers: 2 }, childPath)
+ , pids = []
+ , i = 10
+
+ while (i--) {
+ child(0, function (err, pid) {
+ pids.push(pid)
+ if (pids.length == 10) {
+ t.equal(2, uniq(pids).length, 'only two child processes (by pid)')
+ } else if (pids.length > 10)
+ t.fail('too many callbacks!')
+ })
+ }
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+// use the returned pids to check that we're using a child process per
+// call when maxConcurrentWorkers = 10
+tape('many workers', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({ maxConcurrentWorkers: 10 }, childPath)
+ , pids = []
+ , i = 10
+
+ while (i--) {
+ child(1, function (err, pid) {
+ pids.push(pid)
+ if (pids.length == 10) {
+ t.equal(10, uniq(pids).length, 'pids are all the same (by pid)')
+ } else if (pids.length > 10)
+ t.fail('too many callbacks!')
+ })
+ }
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+tape('auto start workers', function (t) {
+ let child = workerFarm({ maxConcurrentWorkers: 3, autoStart: true }, childPath, ['uptime'])
+ , pids = []
+ , count = 5
+ , i = count
+ , delay = 250
+
+ t.plan(count + 1)
+
+ setTimeout(function() {
+ while (i--)
+ child.uptime(function (err, uptime) {
+ t.ok(uptime > 10, 'child has been up before the request (' + uptime + 'ms)')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ }, delay)
+})
+
+
+// use the returned pids to check that we're using a child process per
+// call when we set maxCallsPerWorker = 1 even when we have maxConcurrentWorkers = 1
+tape('single call per worker', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({
+ maxConcurrentWorkers: 1
+ , maxConcurrentCallsPerWorker: Infinity
+ , maxCallsPerWorker: 1
+ , autoStart: true
+ }, childPath)
+ , pids = []
+ , count = 25
+ , i = count
+
+ while (i--) {
+ child(0, function (err, pid) {
+ pids.push(pid)
+ if (pids.length == count) {
+ t.equal(count, uniq(pids).length, 'one process for each call (by pid)')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (pids.length > count)
+ t.fail('too many callbacks!')
+ })
+ }
+})
+
+
+// use the returned pids to check that we're using a child process per
+// two-calls when we set maxCallsPerWorker = 2 even when we have maxConcurrentWorkers = 1
+tape('two calls per worker', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({
+ maxConcurrentWorkers: 1
+ , maxConcurrentCallsPerWorker: Infinity
+ , maxCallsPerWorker: 2
+ , autoStart: true
+ }, childPath)
+ , pids = []
+ , count = 20
+ , i = count
+
+ while (i--) {
+ child(0, function (err, pid) {
+ pids.push(pid)
+ if (pids.length == count) {
+ t.equal(count / 2, uniq(pids).length, 'one process for each call (by pid)')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (pids.length > count)
+ t.fail('too many callbacks!')
+ })
+ }
+})
+
+
+// use timing to confirm that one worker will process calls sequentially
+tape('many concurrent calls', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({
+ maxConcurrentWorkers: 1
+ , maxConcurrentCallsPerWorker: Infinity
+ , maxCallsPerWorker: Infinity
+ , autoStart: true
+ }, childPath)
+ , defer = 200
+ , count = 200
+ , i = count
+ , cbc = 0
+
+ setTimeout(function () {
+ let start = Date.now()
+
+ while (i--) {
+ child(defer, function () {
+ if (++cbc == count) {
+ let time = Date.now() - start
+ // upper-limit not tied to `count` at all
+ t.ok(time > defer && time < (defer * 2.5), 'processed tasks concurrently (' + time + 'ms)')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (cbc > count)
+ t.fail('too many callbacks!')
+ })
+ }
+ }, 250)
+})
+
+
+// use timing to confirm that one child processes calls sequentially with
+// maxConcurrentCallsPerWorker = 1
+tape('single concurrent call', function (t) {
+ t.plan(2)
+
+ let child = workerFarm({
+ maxConcurrentWorkers: 1
+ , maxConcurrentCallsPerWorker: 1
+ , maxCallsPerWorker: Infinity
+ , autoStart: true
+ }, childPath)
+ , defer = 20
+ , count = 100
+ , i = count
+ , cbc = 0
+
+ setTimeout(function () {
+ let start = Date.now()
+
+ while (i--) {
+ child(defer, function () {
+ if (++cbc == count) {
+ let time = Date.now() - start
+ // upper-limit tied closely to `count`, 1.3 is generous but accounts for all the timers
+ // coming back at the same time and the IPC overhead
+ t.ok(time > (defer * count) && time < (defer * count * 1.3), 'processed tasks sequentially (' + time + ')')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (cbc > count)
+ t.fail('too many callbacks!')
+ })
+ }
+ }, 250)
+})
+
+
+// use timing to confirm that one child processes *only* 5 calls concurrently
+tape('multiple concurrent calls', function (t) {
+ t.plan(2)
+
+ let callsPerWorker = 5
+ , child = workerFarm({
+ maxConcurrentWorkers: 1
+ , maxConcurrentCallsPerWorker: callsPerWorker
+ , maxCallsPerWorker: Infinity
+ , autoStart: true
+ }, childPath)
+ , defer = 100
+ , count = 100
+ , i = count
+ , cbc = 0
+
+ setTimeout(function () {
+ let start = Date.now()
+
+ while (i--) {
+ child(defer, function () {
+ if (++cbc == count) {
+ let time = Date.now() - start
+ // (defer * (count / callsPerWorker + 1)) - if precise it'd be count/callsPerWorker
+ // but accounting for IPC and other overhead, we need to give it a bit of extra time,
+ // hence the +1
+ t.ok(time > (defer * 1.5) && time < (defer * (count / callsPerWorker + 1)), 'processed tasks concurrently (' + time + 'ms)')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (cbc > count)
+ t.fail('too many callbacks!')
+ })
+ }
+ }, 250)
+})
+
+
+// call a method that will die with a probability of 0.5 but expect that
+// we'll get results for each of our calls anyway
+tape('durability', function (t) {
+ t.plan(3)
+
+ let child = workerFarm({ maxConcurrentWorkers: 2 }, childPath, [ 'killable' ])
+ , ids = []
+ , pids = []
+ , count = 20
+ , i = count
+
+ while (i--) {
+ child.killable(i, function (err, id, pid) {
+ ids.push(id)
+ pids.push(pid)
+ if (ids.length == count) {
+ t.ok(uniq(pids).length > 2, 'processed by many (' + uniq(pids).length + ') workers, but got there in the end!')
+ t.ok(uniq(ids).length == count, 'received a single result for each unique call')
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ } else if (ids.length > count)
+ t.fail('too many callbacks!')
+ })
+ }
+})
+
+
+// a callback provided to .end() can and will be called (uses "simple, exports=function test" to create a child)
+tape('simple, end callback', function (t) {
+ t.plan(4)
+
+ let child = workerFarm(childPath)
+ child(0, function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(pid < process.pid + 750, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(rnd >= 0 && rnd < 1, 'rnd result makes sense')
+ })
+
+ workerFarm.end(child, function() {
+ t.pass('an .end() callback was successfully called')
+ })
+})
+
+
+tape('call timeout test', function (t) {
+ t.plan(3 + 3 + 4 + 4 + 4 + 3 + 1)
+
+ let child = workerFarm({ maxCallTime: 250, maxConcurrentWorkers: 1 }, childPath)
+
+ // should come back ok
+ child(50, function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(pid < process.pid + 750, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(rnd > 0 && rnd < 1, 'rnd result makes sense ' + rnd)
+ })
+
+ // should come back ok
+ child(50, function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(pid < process.pid + 750, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(rnd > 0 && rnd < 1, 'rnd result makes sense ' + rnd)
+ })
+
+ // should die
+ child(500, function (err, pid, rnd) {
+ t.ok(err, 'got an error')
+ t.equal(err.type, 'TimeoutError', 'correct error type')
+ t.ok(pid === undefined, 'no pid')
+ t.ok(rnd === undefined, 'no rnd')
+ })
+
+ // should die
+ child(1000, function (err, pid, rnd) {
+ t.ok(err, 'got an error')
+ t.equal(err.type, 'TimeoutError', 'correct error type')
+ t.ok(pid === undefined, 'no pid')
+ t.ok(rnd === undefined, 'no rnd')
+ })
+
+ // should die even though it is only a 100ms task, it'll get caught up
+ // in a dying worker
+ setTimeout(function () {
+ child(100, function (err, pid, rnd) {
+ t.ok(err, 'got an error')
+ t.equal(err.type, 'TimeoutError', 'correct error type')
+ t.ok(pid === undefined, 'no pid')
+ t.ok(rnd === undefined, 'no rnd')
+ })
+ }, 200)
+
+ // should be ok, new worker
+ setTimeout(function () {
+ child(50, function (err, pid, rnd) {
+ t.ok(pid > process.pid, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(pid < process.pid + 750, 'pid makes sense ' + pid + ' vs ' + process.pid)
+ t.ok(rnd > 0 && rnd < 1, 'rnd result makes sense ' + rnd)
+ })
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+ }, 400)
+})
+
+
+tape('test error passing', function (t) {
+ t.plan(10)
+
+ let child = workerFarm(childPath, [ 'err' ])
+ child.err('Error', 'this is an Error', function (err) {
+ t.ok(err instanceof Error, 'is an Error object')
+ t.equal('Error', err.type, 'correct type')
+ t.equal('this is an Error', err.message, 'correct message')
+ })
+ child.err('TypeError', 'this is a TypeError', function (err) {
+ t.ok(err instanceof Error, 'is a TypeError object')
+ t.equal('TypeError', err.type, 'correct type')
+ t.equal('this is a TypeError', err.message, 'correct message')
+ })
+ child.err('Error', 'this is an Error with custom props', {foo: 'bar', 'baz': 1}, function (err) {
+ t.ok(err instanceof Error, 'is an Error object')
+ t.equal(err.foo, 'bar', 'passes data')
+ t.equal(err.baz, 1, 'passes data')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+tape('test maxConcurrentCalls', function (t) {
+ t.plan(10)
+
+ let child = workerFarm({ maxConcurrentCalls: 5 }, childPath)
+
+ child(50, function (err) { t.notOk(err, 'no error') })
+ child(50, function (err) { t.notOk(err, 'no error') })
+ child(50, function (err) { t.notOk(err, 'no error') })
+ child(50, function (err) { t.notOk(err, 'no error') })
+ child(50, function (err) { t.notOk(err, 'no error') })
+ child(50, function (err) {
+ t.ok(err)
+ t.equal(err.type, 'MaxConcurrentCallsError', 'correct error type')
+ })
+ child(50, function (err) {
+ t.ok(err)
+ t.equal(err.type, 'MaxConcurrentCallsError', 'correct error type')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+// this test should not keep the process running! if the test process
+// doesn't die then the problem is here
+tape('test timeout kill', function (t) {
+ t.plan(3)
+
+ let child = workerFarm({ maxCallTime: 250, maxConcurrentWorkers: 1 }, childPath, [ 'block' ])
+ child.block(function (err) {
+ t.ok(err, 'got an error')
+ t.equal(err.type, 'TimeoutError', 'correct error type')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+tape('test max retries after process terminate', function (t) {
+ t.plan(7)
+
+ // temporary file is used to store the number of retries among terminating workers
+ let filepath1 = '.retries1'
+ let child1 = workerFarm({ maxConcurrentWorkers: 1, maxRetries: 5}, childPath, [ 'stubborn' ])
+ child1.stubborn(filepath1, function (err, result) {
+ t.notOk(err, 'no error')
+ t.equal(result, 12, 'correct result')
+ })
+
+ workerFarm.end(child1, function () {
+ fs.unlinkSync(filepath1)
+ t.ok(true, 'workerFarm ended')
+ })
+
+ let filepath2 = '.retries2'
+ let child2 = workerFarm({ maxConcurrentWorkers: 1, maxRetries: 3}, childPath, [ 'stubborn' ])
+ child2.stubborn(filepath2, function (err, result) {
+ t.ok(err, 'got an error')
+ t.equal(err.type, 'ProcessTerminatedError', 'correct error type')
+ t.equal(err.message, 'cancel after 3 retries!', 'correct message and number of retries')
+ })
+
+ workerFarm.end(child2, function () {
+ fs.unlinkSync(filepath2)
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+tape('custom arguments can be passed to "fork"', function (t) {
+ t.plan(3)
+
+ // allocate a real, valid path, in any OS
+ let cwd = fs.realpathSync(os.tmpdir())
+ , workerOptions = {
+ cwd : cwd
+ , execArgv : ['--no-warnings']
+ }
+ , child = workerFarm({ maxConcurrentWorkers: 1, maxRetries: 5, workerOptions: workerOptions}, childPath, ['args'])
+
+ child.args(function (err, result) {
+ t.equal(result.execArgv[0], '--no-warnings', 'flags passed (overridden default)')
+ t.equal(result.cwd, cwd, 'correct cwd folder')
+ })
+
+ workerFarm.end(child, function () {
+ t.ok(true, 'workerFarm ended')
+ })
+})
+
+
+tape('ensure --debug/--inspect not propagated to children', function (t) {
+ t.plan(3)
+
+ let script = __dirname + '/debug.js'
+ , debugArg = process.version.replace(/^v(\d+)\..*$/, '$1') >= 8 ? '--inspect' : '--debug=8881'
+ , child = child_process.spawn(process.execPath, [ debugArg, script ])
+ , stdout = ''
+
+ child.stdout.on('data', function (data) {
+ stdout += data.toString()
+ })
+
+ child.on('close', function (code) {
+ t.equal(code, 0, 'exited without error (' + code + ')')
+ t.ok(stdout.indexOf('FINISHED') > -1, 'process finished')
+ t.ok(stdout.indexOf('--debug') === -1, 'child does not receive debug flag')
+ })
+})
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/index.js b/deps/npm/node_modules/wrap-ansi/index.js
index ff625435fa..ff625435fa 100755
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/index.js
+++ b/deps/npm/node_modules/wrap-ansi/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/license b/deps/npm/node_modules/wrap-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/npm-run-path/license
+++ b/deps/npm/node_modules/wrap-ansi/license
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/index.js b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
new file mode 100644
index 0000000000..b9574ed7e8
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/index.js
@@ -0,0 +1,4 @@
+'use strict';
+module.exports = function () {
+ return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
+};
diff --git a/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 b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/license
index 654d0bfe94..654d0bfe94 100644
--- a/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
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/license
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/package.json b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
new file mode 100644
index 0000000000..efd217c446
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/package.json
@@ -0,0 +1,108 @@
+{
+ "_from": "ansi-regex@^2.0.0",
+ "_id": "ansi-regex@2.1.1",
+ "_inBundle": false,
+ "_integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "_location": "/wrap-ansi/ansi-regex",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "ansi-regex@^2.0.0",
+ "name": "ansi-regex",
+ "escapedName": "ansi-regex",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/wrap-ansi/strip-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "_shasum": "c3b33ab5ee360d86e0e628f0468ae7ef27d654df",
+ "_spec": "ansi-regex@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/wrap-ansi/node_modules/strip-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/ansi-regex/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Regular expression for matching ANSI escape codes",
+ "devDependencies": {
+ "ava": "0.17.0",
+ "xo": "0.16.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/ansi-regex#readme",
+ "keywords": [
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "command-line",
+ "text",
+ "regex",
+ "regexp",
+ "re",
+ "match",
+ "test",
+ "find",
+ "pattern"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "ansi-regex",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/ansi-regex.git"
+ },
+ "scripts": {
+ "test": "xo && ava --verbose",
+ "view-supported": "node fixtures/view-codes.js"
+ },
+ "version": "2.1.1",
+ "xo": {
+ "rules": {
+ "guard-for-in": 0,
+ "no-loop-func": 0
+ }
+ }
+}
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md
new file mode 100644
index 0000000000..6a928edf0f
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/ansi-regex/readme.md
@@ -0,0 +1,39 @@
+# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
+
+> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
+
+
+## Install
+
+```
+$ npm install --save ansi-regex
+```
+
+
+## Usage
+
+```js
+const ansiRegex = require('ansi-regex');
+
+ansiRegex().test('\u001b[4mcake\u001b[0m');
+//=> true
+
+ansiRegex().test('cake');
+//=> false
+
+'\u001b[4mcake\u001b[0m'.match(ansiRegex());
+//=> ['\u001b[4m', '\u001b[0m']
+```
+
+## FAQ
+
+### Why do you test for codes not in the ECMA 48 standard?
+
+Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
+
+On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/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 b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js
index a7d3e3855f..a7d3e3855f 100644
--- a/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
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/p-finally/license
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/license
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json
new file mode 100644
index 0000000000..5544d02df1
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/package.json
@@ -0,0 +1,77 @@
+{
+ "_from": "is-fullwidth-code-point@^1.0.0",
+ "_id": "is-fullwidth-code-point@1.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+ "_location": "/wrap-ansi/is-fullwidth-code-point",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "is-fullwidth-code-point@^1.0.0",
+ "name": "is-fullwidth-code-point",
+ "escapedName": "is-fullwidth-code-point",
+ "rawSpec": "^1.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.0"
+ },
+ "_requiredBy": [
+ "/wrap-ansi/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "_shasum": "ef9e31386f031a7f0d643af82fde50c457ef00cb",
+ "_spec": "is-fullwidth-code-point@^1.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/wrap-ansi/node_modules/string-width",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/is-fullwidth-code-point/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "deprecated": false,
+ "description": "Check if the character represented by a given Unicode code point is fullwidth",
+ "devDependencies": {
+ "ava": "0.0.4",
+ "code-point-at": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/is-fullwidth-code-point#readme",
+ "keywords": [
+ "fullwidth",
+ "full-width",
+ "full",
+ "width",
+ "unicode",
+ "character",
+ "char",
+ "string",
+ "str",
+ "codepoint",
+ "code",
+ "point",
+ "is",
+ "detect",
+ "check"
+ ],
+ "license": "MIT",
+ "name": "is-fullwidth-code-point",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/is-fullwidth-code-point.git"
+ },
+ "scripts": {
+ "test": "node test.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/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 b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md
index 4936464b1b..4936464b1b 100644
--- a/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
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point/readme.md
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/index.js b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/index.js
index b9bec62440..b9bec62440 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/index.js
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/license b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/term-size/node_modules/execa/node_modules/strip-eof/license
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/license
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/string-width/package.json b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/package.json
new file mode 100644
index 0000000000..1f4dda52ae
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/package.json
@@ -0,0 +1,88 @@
+{
+ "_from": "string-width@^1.0.1",
+ "_id": "string-width@1.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+ "_location": "/wrap-ansi/string-width",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "string-width@^1.0.1",
+ "name": "string-width",
+ "escapedName": "string-width",
+ "rawSpec": "^1.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^1.0.1"
+ },
+ "_requiredBy": [
+ "/wrap-ansi"
+ ],
+ "_resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "_shasum": "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3",
+ "_spec": "string-width@^1.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/wrap-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/sindresorhus/string-width/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "deprecated": false,
+ "description": "Get the visual width of a string - the number of columns required to display it",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/string-width#readme",
+ "keywords": [
+ "string",
+ "str",
+ "character",
+ "char",
+ "unicode",
+ "width",
+ "visual",
+ "column",
+ "columns",
+ "fullwidth",
+ "full-width",
+ "full",
+ "ansi",
+ "escape",
+ "codes",
+ "cli",
+ "command-line",
+ "terminal",
+ "console",
+ "cjk",
+ "chinese",
+ "japanese",
+ "korean",
+ "fixed-width"
+ ],
+ "license": "MIT",
+ "name": "string-width",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/string-width.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "1.0.2"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/readme.md b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/readme.md
index 1ab42c9358..1ab42c9358 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/readme.md
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/string-width/readme.md
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/index.js b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
new file mode 100644
index 0000000000..099480fbfc
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/index.js
@@ -0,0 +1,6 @@
+'use strict';
+var ansiRegex = require('ansi-regex')();
+
+module.exports = function (str) {
+ return typeof str === 'string' ? str.replace(ansiRegex, '') : str;
+};
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/license b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/license
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/license
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/package.json b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
new file mode 100644
index 0000000000..4c6900e4a9
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/package.json
@@ -0,0 +1,102 @@
+{
+ "_from": "strip-ansi@^3.0.1",
+ "_id": "strip-ansi@3.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+ "_location": "/wrap-ansi/strip-ansi",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "strip-ansi@^3.0.1",
+ "name": "strip-ansi",
+ "escapedName": "strip-ansi",
+ "rawSpec": "^3.0.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.1"
+ },
+ "_requiredBy": [
+ "/wrap-ansi",
+ "/wrap-ansi/string-width"
+ ],
+ "_resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "_shasum": "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf",
+ "_spec": "strip-ansi@^3.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/wrap-ansi",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/strip-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "deprecated": false,
+ "description": "Strip ANSI escape codes",
+ "devDependencies": {
+ "ava": "*",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/strip-ansi#readme",
+ "keywords": [
+ "strip",
+ "trim",
+ "remove",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Boy Nicolai Appelman",
+ "email": "joshua@jbna.nl",
+ "url": "jbna.nl"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ }
+ ],
+ "name": "strip-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/strip-ansi.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.1"
+}
diff --git a/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md
new file mode 100644
index 0000000000..cb7d9ff7ee
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/node_modules/strip-ansi/readme.md
@@ -0,0 +1,33 @@
+# strip-ansi [![Build Status](https://travis-ci.org/chalk/strip-ansi.svg?branch=master)](https://travis-ci.org/chalk/strip-ansi)
+
+> Strip [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
+
+
+## Install
+
+```
+$ npm install --save strip-ansi
+```
+
+
+## Usage
+
+```js
+var stripAnsi = require('strip-ansi');
+
+stripAnsi('\u001b[4mcake\u001b[0m');
+//=> 'cake'
+```
+
+
+## Related
+
+- [strip-ansi-cli](https://github.com/chalk/strip-ansi-cli) - CLI for this module
+- [has-ansi](https://github.com/chalk/has-ansi) - Check if a string has ANSI escape codes
+- [ansi-regex](https://github.com/chalk/ansi-regex) - Regular expression for matching ANSI escape codes
+- [chalk](https://github.com/chalk/chalk) - Terminal string styling done right
+
+
+## License
+
+MIT Ā© [Sindre Sorhus](http://sindresorhus.com)
diff --git a/deps/npm/node_modules/wrap-ansi/package.json b/deps/npm/node_modules/wrap-ansi/package.json
new file mode 100644
index 0000000000..6ac0d86498
--- /dev/null
+++ b/deps/npm/node_modules/wrap-ansi/package.json
@@ -0,0 +1,120 @@
+{
+ "_from": "wrap-ansi@^2.0.0",
+ "_id": "wrap-ansi@2.1.0",
+ "_inBundle": false,
+ "_integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "_location": "/wrap-ansi",
+ "_phantomChildren": {
+ "code-point-at": "1.1.0",
+ "number-is-nan": "1.0.1"
+ },
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "wrap-ansi@^2.0.0",
+ "name": "wrap-ansi",
+ "escapedName": "wrap-ansi",
+ "rawSpec": "^2.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^2.0.0"
+ },
+ "_requiredBy": [
+ "/cliui",
+ "/tacks/cliui"
+ ],
+ "_resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "_shasum": "d8fc3d284dd05794fe84973caecdd1cf824fdd85",
+ "_spec": "wrap-ansi@^2.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cliui",
+ "author": {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ "bugs": {
+ "url": "https://github.com/chalk/wrap-ansi/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "deprecated": false,
+ "description": "Wordwrap a string with ANSI escape codes",
+ "devDependencies": {
+ "ava": "^0.16.0",
+ "chalk": "^1.1.0",
+ "coveralls": "^2.11.4",
+ "has-ansi": "^2.0.0",
+ "nyc": "^6.2.1",
+ "strip-ansi": "^3.0.0",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/chalk/wrap-ansi#readme",
+ "keywords": [
+ "wrap",
+ "break",
+ "wordwrap",
+ "wordbreak",
+ "linewrap",
+ "ansi",
+ "styles",
+ "color",
+ "colour",
+ "colors",
+ "terminal",
+ "console",
+ "cli",
+ "string",
+ "tty",
+ "escape",
+ "formatting",
+ "rgb",
+ "256",
+ "shell",
+ "xterm",
+ "log",
+ "logging",
+ "command-line",
+ "text"
+ ],
+ "license": "MIT",
+ "maintainers": [
+ {
+ "name": "Sindre Sorhus",
+ "email": "sindresorhus@gmail.com",
+ "url": "sindresorhus.com"
+ },
+ {
+ "name": "Joshua Appelman",
+ "email": "jappelman@xebia.com",
+ "url": "jbnicolai.com"
+ },
+ {
+ "name": "JD Ballard",
+ "email": "i.am.qix@gmail.com",
+ "url": "github.com/qix-"
+ },
+ {
+ "name": "Benjamin Coe",
+ "email": "ben@npmjs.com",
+ "url": "github.com/bcoe"
+ }
+ ],
+ "name": "wrap-ansi",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/chalk/wrap-ansi.git"
+ },
+ "scripts": {
+ "coveralls": "nyc report --reporter=text-lcov | coveralls",
+ "test": "xo && nyc ava"
+ },
+ "version": "2.1.0"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/readme.md b/deps/npm/node_modules/wrap-ansi/readme.md
index 59fc96bda4..59fc96bda4 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/cliui/node_modules/wrap-ansi/readme.md
+++ b/deps/npm/node_modules/wrap-ansi/readme.md
diff --git a/deps/npm/node_modules/wrappy/package.json b/deps/npm/node_modules/wrappy/package.json
index 168a9ffc45..ae9c38ea80 100644
--- a/deps/npm/node_modules/wrappy/package.json
+++ b/deps/npm/node_modules/wrappy/package.json
@@ -1,43 +1,44 @@
{
- "_from": "wrappy@~1.0.2",
+ "_args": [
+ [
+ "wrappy@1.0.2",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "wrappy@1.0.2",
"_id": "wrappy@1.0.2",
+ "_inBundle": false,
"_integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"_location": "/wrappy",
"_phantomChildren": {},
"_requested": {
- "type": "range",
+ "type": "version",
"registry": true,
- "raw": "wrappy@~1.0.2",
+ "raw": "wrappy@1.0.2",
"name": "wrappy",
"escapedName": "wrappy",
- "rawSpec": "~1.0.2",
+ "rawSpec": "1.0.2",
"saveSpec": null,
- "fetchSpec": "~1.0.2"
+ "fetchSpec": "1.0.2"
},
"_requiredBy": [
"/",
"/dezalgo",
"/inflight",
- "/mississippi/duplexify/end-of-stream/once",
"/once"
],
"_resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "_shasum": "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f",
- "_shrinkwrap": null,
- "_spec": "wrappy@~1.0.2",
- "_where": "/Users/zkat/Documents/code/npm",
+ "_spec": "1.0.2",
+ "_where": "/Users/rebecca/code/npm",
"author": {
"name": "Isaac Z. Schlueter",
"email": "i@izs.me",
"url": "http://blog.izs.me/"
},
- "bin": null,
"bugs": {
"url": "https://github.com/npm/wrappy/issues"
},
- "bundleDependencies": false,
"dependencies": {},
- "deprecated": false,
"description": "Callback wrapping utility",
"devDependencies": {
"tap": "^2.3.1"
@@ -52,8 +53,6 @@
"license": "ISC",
"main": "wrappy.js",
"name": "wrappy",
- "optionalDependencies": {},
- "peerDependencies": {},
"repository": {
"type": "git",
"url": "git+https://github.com/npm/wrappy.git"
diff --git a/deps/npm/node_modules/write-file-atomic/README.md b/deps/npm/node_modules/write-file-atomic/README.md
index 63f00420ca..af385f3b70 100644
--- a/deps/npm/node_modules/write-file-atomic/README.md
+++ b/deps/npm/node_modules/write-file-atomic/README.md
@@ -15,6 +15,7 @@ atomic and allows you set ownership (uid/gid of the file).
* encoding **String** | **Null** default = 'utf8'
* fsync **Boolean** default = true
* mode **Number** default = 438 (aka 0666 in Octal)
+ * Promise **Object** default = native Promise object
callback **Function**
Atomically and asynchronously writes data to a file, replacing the file if it already
@@ -25,6 +26,7 @@ If writeFile completes successfully then, if passed the **chown** option it will
the ownership of the file. Finally it renames the file back to the filename you specified. If
it encounters errors at any of these steps it will attempt to unlink the temporary file and then
pass the error back to the caller.
+If multiple writes are concurrently issued to the same file, the write operations are put into a queue and serialized in the order they were called, using Promises. Native promises are used by default, but you can inject your own promise-like object with the **Promise** option. Writes to different files are still executed in parallel.
If provided, the **chown** option requires both **uid** and **gid** properties or else
you'll get an error.
diff --git a/deps/npm/node_modules/write-file-atomic/index.js b/deps/npm/node_modules/write-file-atomic/index.js
index c677ee9622..3b5607d154 100644
--- a/deps/npm/node_modules/write-file-atomic/index.js
+++ b/deps/npm/node_modules/write-file-atomic/index.js
@@ -2,10 +2,13 @@
module.exports = writeFile
module.exports.sync = writeFileSync
module.exports._getTmpname = getTmpname // for testing
+module.exports._cleanupOnExit = cleanupOnExit
var fs = require('graceful-fs')
-var chain = require('slide').chain
var MurmurHash3 = require('imurmurhash')
+var onExit = require('signal-exit')
+var path = require('path')
+var activeFiles = {}
var invocations = 0
function getTmpname (filename) {
@@ -16,75 +19,134 @@ function getTmpname (filename) {
.result()
}
+function cleanupOnExit (tmpfile) {
+ return function () {
+ try {
+ fs.unlinkSync(typeof tmpfile === 'function' ? tmpfile() : tmpfile)
+ } catch (_) {}
+ }
+}
+
function writeFile (filename, data, options, callback) {
if (options instanceof Function) {
callback = options
options = null
}
if (!options) options = {}
- fs.realpath(filename, function (_, realname) {
- _writeFile(realname || filename, data, options, callback)
- })
-}
-function _writeFile (filename, data, options, callback) {
- var tmpfile = getTmpname(filename)
- if (options.mode && options.chown) {
- return thenWriteFile()
- } else {
- // Either mode or chown is not explicitly set
- // Default behavior is to copy it from original file
- return fs.stat(filename, function (err, stats) {
- if (err || !stats) return thenWriteFile()
+ var Promise = options.Promise || global.Promise
+ var truename
+ var fd
+ var tmpfile
+ var removeOnExit = cleanupOnExit(() => tmpfile)
+ var absoluteName = path.resolve(filename)
- options = Object.assign({}, options)
- if (!options.mode) {
- options.mode = stats.mode
- }
- if (!options.chown && process.getuid) {
- options.chown = { uid: stats.uid, gid: stats.gid }
- }
- return thenWriteFile()
- })
- }
+ new Promise(function serializeSameFile (resolve) {
+ // make a queue if it doesn't already exist
+ if (!activeFiles[absoluteName]) activeFiles[absoluteName] = []
- function thenWriteFile () {
- chain([
- [writeFileAsync, tmpfile, data, options.mode, options.encoding || 'utf8'],
- options.chown && [fs, fs.chown, tmpfile, options.chown.uid, options.chown.gid],
- options.mode && [fs, fs.chmod, tmpfile, options.mode],
- [fs, fs.rename, tmpfile, filename]
- ], function (err) {
- err ? fs.unlink(tmpfile, function () { callback(err) })
- : callback()
+ activeFiles[absoluteName].push(resolve) // add this job to the queue
+ if (activeFiles[absoluteName].length === 1) resolve() // kick off the first one
+ }).then(function getRealPath () {
+ return new Promise(function (resolve) {
+ fs.realpath(filename, function (_, realname) {
+ truename = realname || filename
+ tmpfile = getTmpname(truename)
+ resolve()
+ })
})
- }
+ }).then(function stat () {
+ return new Promise(function stat (resolve) {
+ if (options.mode && options.chown) resolve()
+ else {
+ // Either mode or chown is not explicitly set
+ // Default behavior is to copy it from original file
+ fs.stat(truename, function (err, stats) {
+ if (err || !stats) resolve()
+ else {
+ options = Object.assign({}, options)
- // doing this instead of `fs.writeFile` in order to get the ability to
- // call `fsync`.
- function writeFileAsync (file, data, mode, encoding, cb) {
- fs.open(file, 'w', options.mode, function (err, fd) {
- if (err) return cb(err)
+ if (!options.mode) {
+ options.mode = stats.mode
+ }
+ if (!options.chown && process.getuid) {
+ options.chown = { uid: stats.uid, gid: stats.gid }
+ }
+ resolve()
+ }
+ })
+ }
+ })
+ }).then(function thenWriteFile () {
+ return new Promise(function (resolve, reject) {
+ fs.open(tmpfile, 'w', options.mode, function (err, _fd) {
+ fd = _fd
+ if (err) reject(err)
+ else resolve()
+ })
+ })
+ }).then(function write () {
+ return new Promise(function (resolve, reject) {
if (Buffer.isBuffer(data)) {
- return fs.write(fd, data, 0, data.length, 0, syncAndClose)
+ fs.write(fd, data, 0, data.length, 0, function (err) {
+ if (err) reject(err)
+ else resolve()
+ })
} else if (data != null) {
- return fs.write(fd, String(data), 0, String(encoding), syncAndClose)
- } else {
- return syncAndClose()
- }
- function syncAndClose (err) {
- if (err) return cb(err)
- if (options.fsync !== false) {
- fs.fsync(fd, function (err) {
- if (err) return cb(err)
- fs.close(fd, cb)
- })
- } else {
- fs.close(fd, cb)
- }
- }
+ fs.write(fd, String(data), 0, String(options.encoding || 'utf8'), function (err) {
+ if (err) reject(err)
+ else resolve()
+ })
+ } else resolve()
})
- }
+ }).then(function syncAndClose () {
+ if (options.fsync !== false) {
+ return new Promise(function (resolve, reject) {
+ fs.fsync(fd, function (err) {
+ if (err) reject(err)
+ else fs.close(fd, resolve)
+ })
+ })
+ }
+ }).then(function chown () {
+ if (options.chown) {
+ return new Promise(function (resolve, reject) {
+ fs.chown(tmpfile, options.chown.uid, options.chown.gid, function (err) {
+ if (err) reject(err)
+ else resolve()
+ })
+ })
+ }
+ }).then(function chmod () {
+ if (options.mode) {
+ return new Promise(function (resolve, reject) {
+ fs.chmod(tmpfile, options.mode, function (err) {
+ if (err) reject(err)
+ else resolve()
+ })
+ })
+ }
+ }).then(function rename () {
+ return new Promise(function (resolve, reject) {
+ fs.rename(tmpfile, truename, function (err) {
+ if (err) reject(err)
+ else resolve()
+ })
+ })
+ }).then(function success () {
+ removeOnExit()
+ callback()
+ }).catch(function fail (err) {
+ removeOnExit()
+ fs.unlink(tmpfile, function () {
+ callback(err)
+ })
+ }).then(function checkQueue () {
+ activeFiles[absoluteName].shift() // remove the element added by serializeSameFile
+ if (activeFiles[absoluteName].length > 0) {
+ activeFiles[absoluteName][0]() // start next job if one is pending
+ } else delete activeFiles[absoluteName]
+ })
}
function writeFileSync (filename, data, options) {
@@ -114,6 +176,7 @@ function writeFileSync (filename, data, options) {
}
}
+ var removeOnExit = onExit(cleanupOnExit(tmpfile))
var fd = fs.openSync(tmpfile, 'w', options.mode)
if (Buffer.isBuffer(data)) {
fs.writeSync(fd, data, 0, data.length, 0)
@@ -127,7 +190,9 @@ function writeFileSync (filename, data, options) {
if (options.chown) fs.chownSync(tmpfile, options.chown.uid, options.chown.gid)
if (options.mode) fs.chmodSync(tmpfile, options.mode)
fs.renameSync(tmpfile, filename)
+ removeOnExit()
} catch (err) {
+ removeOnExit()
try { fs.unlinkSync(tmpfile) } catch (e) {}
throw err
}
diff --git a/deps/npm/node_modules/write-file-atomic/package.json b/deps/npm/node_modules/write-file-atomic/package.json
index 7e4029a0ec..cdf47414a4 100644
--- a/deps/npm/node_modules/write-file-atomic/package.json
+++ b/deps/npm/node_modules/write-file-atomic/package.json
@@ -1,28 +1,34 @@
{
- "_from": "write-file-atomic@2.1.0",
- "_id": "write-file-atomic@2.1.0",
+ "_args": [
+ [
+ "write-file-atomic@2.3.0",
+ "/Users/rebecca/code/npm"
+ ]
+ ],
+ "_from": "write-file-atomic@2.3.0",
+ "_id": "write-file-atomic@2.3.0",
"_inBundle": false,
- "_integrity": "sha512-0TZ20a+xcIl4u0+Mj5xDH2yOWdmQiXlKf9Hm+TgDXjTMsEYb+gDrmb8e8UNAzMCitX8NBqG4Z/FUQIyzv/R1JQ==",
+ "_integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==",
"_location": "/write-file-atomic",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
- "raw": "write-file-atomic@2.1.0",
+ "raw": "write-file-atomic@2.3.0",
"name": "write-file-atomic",
"escapedName": "write-file-atomic",
- "rawSpec": "2.1.0",
+ "rawSpec": "2.3.0",
"saveSpec": null,
- "fetchSpec": "2.1.0"
+ "fetchSpec": "2.3.0"
},
"_requiredBy": [
- "#USER",
"/",
- "/update-notifier/configstore"
+ "/bin-links",
+ "/configstore",
+ "/tap"
],
- "_resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.1.0.tgz",
- "_shasum": "1769f4b551eedce419f0505deae2e26763542d37",
- "_spec": "write-file-atomic@2.1.0",
+ "_resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz",
+ "_spec": "2.3.0",
"_where": "/Users/rebecca/code/npm",
"author": {
"name": "Rebecca Turner",
@@ -32,13 +38,11 @@
"bugs": {
"url": "https://github.com/iarna/write-file-atomic/issues"
},
- "bundleDependencies": false,
"dependencies": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
- "slide": "^1.1.5"
+ "signal-exit": "^3.0.2"
},
- "deprecated": false,
"description": "Write files in an atomic fashion w/configurable ownership",
"devDependencies": {
"mkdirp": "^0.5.1",
@@ -65,5 +69,5 @@
"scripts": {
"test": "standard && tap --100 test/*.js"
},
- "version": "2.1.0"
+ "version": "2.3.0"
}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/index.js b/deps/npm/node_modules/xdg-basedir/index.js
index f5aa176952..f5aa176952 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/index.js
+++ b/deps/npm/node_modules/xdg-basedir/index.js
diff --git a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/license b/deps/npm/node_modules/xdg-basedir/license
index 654d0bfe94..654d0bfe94 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/boxen/node_modules/widest-line/node_modules/string-width/license
+++ b/deps/npm/node_modules/xdg-basedir/license
diff --git a/deps/npm/node_modules/xdg-basedir/package.json b/deps/npm/node_modules/xdg-basedir/package.json
new file mode 100644
index 0000000000..939ac842ac
--- /dev/null
+++ b/deps/npm/node_modules/xdg-basedir/package.json
@@ -0,0 +1,73 @@
+{
+ "_from": "xdg-basedir@^3.0.0",
+ "_id": "xdg-basedir@3.0.0",
+ "_inBundle": false,
+ "_integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
+ "_location": "/xdg-basedir",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "xdg-basedir@^3.0.0",
+ "name": "xdg-basedir",
+ "escapedName": "xdg-basedir",
+ "rawSpec": "^3.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^3.0.0"
+ },
+ "_requiredBy": [
+ "/configstore",
+ "/update-notifier"
+ ],
+ "_resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "_shasum": "496b2cc109eca8dbacfe2dc72b603c17c5870ad4",
+ "_spec": "xdg-basedir@^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/sindresorhus/xdg-basedir/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "Get XDG Base Directory paths",
+ "devDependencies": {
+ "ava": "*",
+ "require-uncached": "^1.0.2",
+ "xo": "*"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/sindresorhus/xdg-basedir#readme",
+ "keywords": [
+ "xdg",
+ "base",
+ "directory",
+ "dir",
+ "basedir",
+ "path",
+ "data",
+ "config",
+ "cache",
+ "linux",
+ "unix",
+ "spec"
+ ],
+ "license": "MIT",
+ "name": "xdg-basedir",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/sindresorhus/xdg-basedir.git"
+ },
+ "scripts": {
+ "test": "xo && ava"
+ },
+ "version": "3.0.0"
+}
diff --git a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/readme.md b/deps/npm/node_modules/xdg-basedir/readme.md
index 61f8c16bed..61f8c16bed 100644
--- a/deps/npm/node_modules/update-notifier/node_modules/xdg-basedir/readme.md
+++ b/deps/npm/node_modules/xdg-basedir/readme.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.npmignore b/deps/npm/node_modules/xtend/.npmignore
index 3c3629e647..3c3629e647 100644
--- a/deps/npm/node_modules/mississippi/node_modules/stream-each/node_modules/stream-shift/.npmignore
+++ b/deps/npm/node_modules/xtend/.npmignore
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/LICENCE b/deps/npm/node_modules/xtend/LICENCE
index 1a14b437e8..1a14b437e8 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/LICENCE
+++ b/deps/npm/node_modules/xtend/LICENCE
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/Makefile b/deps/npm/node_modules/xtend/Makefile
index d583fcf49d..d583fcf49d 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/Makefile
+++ b/deps/npm/node_modules/xtend/Makefile
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/README.md b/deps/npm/node_modules/xtend/README.md
index 093cb2978e..093cb2978e 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/README.md
+++ b/deps/npm/node_modules/xtend/README.md
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/immutable.js b/deps/npm/node_modules/xtend/immutable.js
index 94889c9de1..94889c9de1 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/immutable.js
+++ b/deps/npm/node_modules/xtend/immutable.js
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/mutable.js b/deps/npm/node_modules/xtend/mutable.js
index 72debede6c..72debede6c 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/mutable.js
+++ b/deps/npm/node_modules/xtend/mutable.js
diff --git a/deps/npm/node_modules/xtend/package.json b/deps/npm/node_modules/xtend/package.json
new file mode 100644
index 0000000000..bce44d650e
--- /dev/null
+++ b/deps/npm/node_modules/xtend/package.json
@@ -0,0 +1,87 @@
+{
+ "_from": "xtend@~4.0.1",
+ "_id": "xtend@4.0.1",
+ "_inBundle": false,
+ "_integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
+ "_location": "/xtend",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "xtend@~4.0.1",
+ "name": "xtend",
+ "escapedName": "xtend",
+ "rawSpec": "~4.0.1",
+ "saveSpec": null,
+ "fetchSpec": "~4.0.1"
+ },
+ "_requiredBy": [
+ "/pkg-config",
+ "/through2"
+ ],
+ "_resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
+ "_shasum": "a5c6d532be656e23db820efb943a1f04998d63af",
+ "_spec": "xtend@~4.0.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/through2",
+ "author": {
+ "name": "Raynos",
+ "email": "raynos2@gmail.com"
+ },
+ "bugs": {
+ "url": "https://github.com/Raynos/xtend/issues",
+ "email": "raynos2@gmail.com"
+ },
+ "bundleDependencies": false,
+ "contributors": [
+ {
+ "name": "Jake Verbaten"
+ },
+ {
+ "name": "Matt Esch"
+ }
+ ],
+ "dependencies": {},
+ "deprecated": false,
+ "description": "extend like a boss",
+ "devDependencies": {
+ "tape": "~1.1.0"
+ },
+ "engines": {
+ "node": ">=0.4"
+ },
+ "homepage": "https://github.com/Raynos/xtend",
+ "keywords": [
+ "extend",
+ "merge",
+ "options",
+ "opts",
+ "object",
+ "array"
+ ],
+ "license": "MIT",
+ "main": "immutable",
+ "name": "xtend",
+ "repository": {
+ "type": "git",
+ "url": "git://github.com/Raynos/xtend.git"
+ },
+ "scripts": {
+ "test": "node test"
+ },
+ "testling": {
+ "files": "test.js",
+ "browsers": [
+ "ie/7..latest",
+ "firefox/16..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"
+ ]
+ },
+ "version": "4.0.1"
+}
diff --git a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/test.js b/deps/npm/node_modules/xtend/test.js
index 093a2b061e..093a2b061e 100644
--- a/deps/npm/node_modules/mississippi/node_modules/through2/node_modules/xtend/test.js
+++ b/deps/npm/node_modules/xtend/test.js
diff --git a/deps/npm/node_modules/y18n/CHANGELOG.md b/deps/npm/node_modules/y18n/CHANGELOG.md
new file mode 100644
index 0000000000..c259076ad6
--- /dev/null
+++ b/deps/npm/node_modules/y18n/CHANGELOG.md
@@ -0,0 +1,21 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/y18n/compare/v3.2.1...v4.0.0) (2017-10-10)
+
+
+### Bug Fixes
+
+* allow support for falsy values like 0 in tagged literal ([#45](https://github.com/yargs/y18n/issues/45)) ([c926123](https://github.com/yargs/y18n/commit/c926123))
+
+
+### Features
+
+* **__:** added tagged template literal support ([#44](https://github.com/yargs/y18n/issues/44)) ([0598daf](https://github.com/yargs/y18n/commit/0598daf))
+
+
+### BREAKING CHANGES
+
+* **__:** dropping Node 0.10/Node 0.12 support
diff --git a/deps/npm/node_modules/cacache/node_modules/y18n/LICENSE b/deps/npm/node_modules/y18n/LICENSE
index 3c157f0b9d..3c157f0b9d 100644
--- a/deps/npm/node_modules/cacache/node_modules/y18n/LICENSE
+++ b/deps/npm/node_modules/y18n/LICENSE
diff --git a/deps/npm/node_modules/y18n/README.md b/deps/npm/node_modules/y18n/README.md
new file mode 100644
index 0000000000..826474f209
--- /dev/null
+++ b/deps/npm/node_modules/y18n/README.md
@@ -0,0 +1,109 @@
+# y18n
+
+[![Build Status][travis-image]][travis-url]
+[![Coverage Status][coveralls-image]][coveralls-url]
+[![NPM version][npm-image]][npm-url]
+[![js-standard-style][standard-image]][standard-url]
+[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)
+
+The bare-bones internationalization library used by yargs.
+
+Inspired by [i18n](https://www.npmjs.com/package/i18n).
+
+## Examples
+
+_simple string translation:_
+
+```js
+var __ = require('y18n').__
+
+console.log(__('my awesome string %s', 'foo'))
+```
+
+output:
+
+`my awesome string foo`
+
+_using tagged template literals_
+
+```js
+var __ = require('y18n').__
+var str = 'foo'
+
+console.log(__`my awesome string ${str}`)
+```
+
+output:
+
+`my awesome string foo`
+
+_pluralization support:_
+
+```js
+var __n = require('y18n').__n
+
+console.log(__n('one fish %s', '%d fishes %s', 2, 'foo'))
+```
+
+output:
+
+`2 fishes foo`
+
+## JSON Language Files
+
+The JSON language files should be stored in a `./locales` folder.
+File names correspond to locales, e.g., `en.json`, `pirate.json`.
+
+When strings are observed for the first time they will be
+added to the JSON file corresponding to the current locale.
+
+## Methods
+
+### require('y18n')(config)
+
+Create an instance of y18n with the config provided, options include:
+
+* `directory`: the locale directory, default `./locales`.
+* `updateFiles`: should newly observed strings be updated in file, default `true`.
+* `locale`: what locale should be used.
+* `fallbackToLanguage`: should fallback to a language-only file (e.g. `en.json`)
+ be allowed if a file matching the locale does not exist (e.g. `en_US.json`),
+ default `true`.
+
+### y18n.\_\_(str, arg, arg, arg)
+
+Print a localized string, `%s` will be replaced with `arg`s.
+
+This function can also be used as a tag for a template literal. You can use it
+like this: <code>__&#96;hello ${'world'}&#96;</code>. This will be equivalent to
+`__('hello %s', 'world')`.
+
+### y18n.\_\_n(singularString, pluralString, count, arg, arg, arg)
+
+Print a localized string with appropriate pluralization. If `%d` is provided
+in the string, the `count` will replace this placeholder.
+
+### y18n.setLocale(str)
+
+Set the current locale being used.
+
+### y18n.getLocale()
+
+What locale is currently being used?
+
+### y18n.updateLocale(obj)
+
+Update the current locale with the key value pairs in `obj`.
+
+## License
+
+ISC
+
+[travis-url]: https://travis-ci.org/yargs/y18n
+[travis-image]: https://img.shields.io/travis/yargs/y18n.svg
+[coveralls-url]: https://coveralls.io/github/yargs/y18n
+[coveralls-image]: https://img.shields.io/coveralls/yargs/y18n.svg
+[npm-url]: https://npmjs.org/package/y18n
+[npm-image]: https://img.shields.io/npm/v/y18n.svg
+[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
+[standard-url]: https://github.com/feross/standard
diff --git a/deps/npm/node_modules/y18n/index.js b/deps/npm/node_modules/y18n/index.js
new file mode 100644
index 0000000000..d720681628
--- /dev/null
+++ b/deps/npm/node_modules/y18n/index.js
@@ -0,0 +1,188 @@
+var fs = require('fs')
+var path = require('path')
+var util = require('util')
+
+function Y18N (opts) {
+ // configurable options.
+ opts = opts || {}
+ this.directory = opts.directory || './locales'
+ this.updateFiles = typeof opts.updateFiles === 'boolean' ? opts.updateFiles : true
+ this.locale = opts.locale || 'en'
+ this.fallbackToLanguage = typeof opts.fallbackToLanguage === 'boolean' ? opts.fallbackToLanguage : true
+
+ // internal stuff.
+ this.cache = {}
+ this.writeQueue = []
+}
+
+Y18N.prototype.__ = function () {
+ if (typeof arguments[0] !== 'string') {
+ return this._taggedLiteral.apply(this, arguments)
+ }
+ var args = Array.prototype.slice.call(arguments)
+ var str = args.shift()
+ var cb = function () {} // start with noop.
+
+ if (typeof args[args.length - 1] === 'function') cb = args.pop()
+ cb = cb || function () {} // noop.
+
+ if (!this.cache[this.locale]) this._readLocaleFile()
+
+ // we've observed a new string, update the language file.
+ if (!this.cache[this.locale][str] && this.updateFiles) {
+ this.cache[this.locale][str] = str
+
+ // include the current directory and locale,
+ // since these values could change before the
+ // write is performed.
+ this._enqueueWrite([this.directory, this.locale, cb])
+ } else {
+ cb()
+ }
+
+ return util.format.apply(util, [this.cache[this.locale][str] || str].concat(args))
+}
+
+Y18N.prototype._taggedLiteral = function (parts) {
+ var args = arguments
+ var str = ''
+ parts.forEach(function (part, i) {
+ var arg = args[i + 1]
+ str += part
+ if (typeof arg !== 'undefined') {
+ str += '%s'
+ }
+ })
+ return this.__.apply(null, [str].concat([].slice.call(arguments, 1)))
+}
+
+Y18N.prototype._enqueueWrite = function (work) {
+ this.writeQueue.push(work)
+ if (this.writeQueue.length === 1) this._processWriteQueue()
+}
+
+Y18N.prototype._processWriteQueue = function () {
+ var _this = this
+ var work = this.writeQueue[0]
+
+ // destructure the enqueued work.
+ var directory = work[0]
+ var locale = work[1]
+ var cb = work[2]
+
+ var languageFile = this._resolveLocaleFile(directory, locale)
+ var serializedLocale = JSON.stringify(this.cache[locale], null, 2)
+
+ fs.writeFile(languageFile, serializedLocale, 'utf-8', function (err) {
+ _this.writeQueue.shift()
+ if (_this.writeQueue.length > 0) _this._processWriteQueue()
+ cb(err)
+ })
+}
+
+Y18N.prototype._readLocaleFile = function () {
+ var localeLookup = {}
+ var languageFile = this._resolveLocaleFile(this.directory, this.locale)
+
+ try {
+ localeLookup = JSON.parse(fs.readFileSync(languageFile, 'utf-8'))
+ } catch (err) {
+ if (err instanceof SyntaxError) {
+ err.message = 'syntax error in ' + languageFile
+ }
+
+ if (err.code === 'ENOENT') localeLookup = {}
+ else throw err
+ }
+
+ this.cache[this.locale] = localeLookup
+}
+
+Y18N.prototype._resolveLocaleFile = function (directory, locale) {
+ var file = path.resolve(directory, './', locale + '.json')
+ if (this.fallbackToLanguage && !this._fileExistsSync(file) && ~locale.lastIndexOf('_')) {
+ // attempt fallback to language only
+ var languageFile = path.resolve(directory, './', locale.split('_')[0] + '.json')
+ if (this._fileExistsSync(languageFile)) file = languageFile
+ }
+ return file
+}
+
+// this only exists because fs.existsSync() "will be deprecated"
+// see https://nodejs.org/api/fs.html#fs_fs_existssync_path
+Y18N.prototype._fileExistsSync = function (file) {
+ try {
+ return fs.statSync(file).isFile()
+ } catch (err) {
+ return false
+ }
+}
+
+Y18N.prototype.__n = function () {
+ var args = Array.prototype.slice.call(arguments)
+ var singular = args.shift()
+ var plural = args.shift()
+ var quantity = args.shift()
+
+ var cb = function () {} // start with noop.
+ if (typeof args[args.length - 1] === 'function') cb = args.pop()
+
+ if (!this.cache[this.locale]) this._readLocaleFile()
+
+ var str = quantity === 1 ? singular : plural
+ if (this.cache[this.locale][singular]) {
+ str = this.cache[this.locale][singular][quantity === 1 ? 'one' : 'other']
+ }
+
+ // we've observed a new string, update the language file.
+ if (!this.cache[this.locale][singular] && this.updateFiles) {
+ this.cache[this.locale][singular] = {
+ one: singular,
+ other: plural
+ }
+
+ // include the current directory and locale,
+ // since these values could change before the
+ // write is performed.
+ this._enqueueWrite([this.directory, this.locale, cb])
+ } else {
+ cb()
+ }
+
+ // if a %d placeholder is provided, add quantity
+ // to the arguments expanded by util.format.
+ var values = [str]
+ if (~str.indexOf('%d')) values.push(quantity)
+
+ return util.format.apply(util, values.concat(args))
+}
+
+Y18N.prototype.setLocale = function (locale) {
+ this.locale = locale
+}
+
+Y18N.prototype.getLocale = function () {
+ return this.locale
+}
+
+Y18N.prototype.updateLocale = function (obj) {
+ if (!this.cache[this.locale]) this._readLocaleFile()
+
+ for (var key in obj) {
+ this.cache[this.locale][key] = obj[key]
+ }
+}
+
+module.exports = function (opts) {
+ var y18n = new Y18N(opts)
+
+ // bind all functions to y18n, so that
+ // they can be used in isolation.
+ for (var key in y18n) {
+ if (typeof y18n[key] === 'function') {
+ y18n[key] = y18n[key].bind(y18n)
+ }
+ }
+
+ return y18n
+}
diff --git a/deps/npm/node_modules/y18n/package.json b/deps/npm/node_modules/y18n/package.json
new file mode 100644
index 0000000000..24016e224a
--- /dev/null
+++ b/deps/npm/node_modules/y18n/package.json
@@ -0,0 +1,70 @@
+{
+ "_from": "y18n@^4.0.0",
+ "_id": "y18n@4.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
+ "_location": "/y18n",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "y18n@^4.0.0",
+ "name": "y18n",
+ "escapedName": "y18n",
+ "rawSpec": "^4.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^4.0.0"
+ },
+ "_requiredBy": [
+ "/cacache",
+ "/libnpx",
+ "/npm-profile/cacache",
+ "/npm-registry-fetch/cacache"
+ ],
+ "_resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+ "_shasum": "95ef94f85ecc81d007c264e190a120f0a3c8566b",
+ "_spec": "y18n@^4.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/cacache",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/y18n/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "the bare-bones internationalization library used by yargs",
+ "devDependencies": {
+ "chai": "^4.0.1",
+ "coveralls": "^3.0.0",
+ "mocha": "^4.0.1",
+ "nyc": "^11.0.1",
+ "rimraf": "^2.5.0",
+ "standard": "^10.0.0-beta.0",
+ "standard-version": "^4.2.0"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/yargs/y18n",
+ "keywords": [
+ "i18n",
+ "internationalization",
+ "yargs"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "y18n",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/y18n.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "release": "standard-version",
+ "test": "nyc mocha"
+ },
+ "version": "4.0.0"
+}
diff --git a/deps/npm/node_modules/read/node_modules/mute-stream/LICENSE b/deps/npm/node_modules/yallist/LICENSE
index 19129e315f..19129e315f 100644
--- a/deps/npm/node_modules/read/node_modules/mute-stream/LICENSE
+++ b/deps/npm/node_modules/yallist/LICENSE
diff --git a/deps/npm/node_modules/yallist/README.md b/deps/npm/node_modules/yallist/README.md
new file mode 100644
index 0000000000..f586101869
--- /dev/null
+++ b/deps/npm/node_modules/yallist/README.md
@@ -0,0 +1,204 @@
+# yallist
+
+Yet Another Linked List
+
+There are many doubly-linked list implementations like it, but this
+one is mine.
+
+For when an array would be too big, and a Map can't be iterated in
+reverse order.
+
+
+[![Build Status](https://travis-ci.org/isaacs/yallist.svg?branch=master)](https://travis-ci.org/isaacs/yallist) [![Coverage Status](https://coveralls.io/repos/isaacs/yallist/badge.svg?service=github)](https://coveralls.io/github/isaacs/yallist)
+
+## basic usage
+
+```javascript
+var yallist = require('yallist')
+var myList = yallist.create([1, 2, 3])
+myList.push('foo')
+myList.unshift('bar')
+// of course pop() and shift() are there, too
+console.log(myList.toArray()) // ['bar', 1, 2, 3, 'foo']
+myList.forEach(function (k) {
+ // walk the list head to tail
+})
+myList.forEachReverse(function (k, index, list) {
+ // walk the list tail to head
+})
+var myDoubledList = myList.map(function (k) {
+ return k + k
+})
+// now myDoubledList contains ['barbar', 2, 4, 6, 'foofoo']
+// mapReverse is also a thing
+var myDoubledListReverse = myList.mapReverse(function (k) {
+ return k + k
+}) // ['foofoo', 6, 4, 2, 'barbar']
+
+var reduced = myList.reduce(function (set, entry) {
+ set += entry
+ return set
+}, 'start')
+console.log(reduced) // 'startfoo123bar'
+```
+
+## api
+
+The whole API is considered "public".
+
+Functions with the same name as an Array method work more or less the
+same way.
+
+There's reverse versions of most things because that's the point.
+
+### Yallist
+
+Default export, the class that holds and manages a list.
+
+Call it with either a forEach-able (like an array) or a set of
+arguments, to initialize the list.
+
+The Array-ish methods all act like you'd expect. No magic length,
+though, so if you change that it won't automatically prune or add
+empty spots.
+
+### Yallist.create(..)
+
+Alias for Yallist function. Some people like factories.
+
+#### yallist.head
+
+The first node in the list
+
+#### yallist.tail
+
+The last node in the list
+
+#### yallist.length
+
+The number of nodes in the list. (Change this at your peril. It is
+not magic like Array length.)
+
+#### yallist.toArray()
+
+Convert the list to an array.
+
+#### yallist.forEach(fn, [thisp])
+
+Call a function on each item in the list.
+
+#### yallist.forEachReverse(fn, [thisp])
+
+Call a function on each item in the list, in reverse order.
+
+#### yallist.get(n)
+
+Get the data at position `n` in the list. If you use this a lot,
+probably better off just using an Array.
+
+#### yallist.getReverse(n)
+
+Get the data at position `n`, counting from the tail.
+
+#### yallist.map(fn, thisp)
+
+Create a new Yallist with the result of calling the function on each
+item.
+
+#### yallist.mapReverse(fn, thisp)
+
+Same as `map`, but in reverse.
+
+#### yallist.pop()
+
+Get the data from the list tail, and remove the tail from the list.
+
+#### yallist.push(item, ...)
+
+Insert one or more items to the tail of the list.
+
+#### yallist.reduce(fn, initialValue)
+
+Like Array.reduce.
+
+#### yallist.reduceReverse
+
+Like Array.reduce, but in reverse.
+
+#### yallist.reverse
+
+Reverse the list in place.
+
+#### yallist.shift()
+
+Get the data from the list head, and remove the head from the list.
+
+#### yallist.slice([from], [to])
+
+Just like Array.slice, but returns a new Yallist.
+
+#### yallist.sliceReverse([from], [to])
+
+Just like yallist.slice, but the result is returned in reverse.
+
+#### yallist.toArray()
+
+Create an array representation of the list.
+
+#### yallist.toArrayReverse()
+
+Create a reversed array representation of the list.
+
+#### yallist.unshift(item, ...)
+
+Insert one or more items to the head of the list.
+
+#### yallist.unshiftNode(node)
+
+Move a Node object to the front of the list. (That is, pull it out of
+wherever it lives, and make it the new head.)
+
+If the node belongs to a different list, then that list will remove it
+first.
+
+#### yallist.pushNode(node)
+
+Move a Node object to the end of the list. (That is, pull it out of
+wherever it lives, and make it the new tail.)
+
+If the node belongs to a list already, then that list will remove it
+first.
+
+#### yallist.removeNode(node)
+
+Remove a node from the list, preserving referential integrity of head
+and tail and other nodes.
+
+Will throw an error if you try to have a list remove a node that
+doesn't belong to it.
+
+### Yallist.Node
+
+The class that holds the data and is actually the list.
+
+Call with `var n = new Node(value, previousNode, nextNode)`
+
+Note that if you do direct operations on Nodes themselves, it's very
+easy to get into weird states where the list is broken. Be careful :)
+
+#### node.next
+
+The next node in the list.
+
+#### node.prev
+
+The previous node in the list.
+
+#### node.value
+
+The data the node contains.
+
+#### node.list
+
+The list to which this node belongs. (Null if it does not belong to
+any list.)
diff --git a/deps/npm/node_modules/lru-cache/node_modules/yallist/iterator.js b/deps/npm/node_modules/yallist/iterator.js
index 4a15bf22c4..4a15bf22c4 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/yallist/iterator.js
+++ b/deps/npm/node_modules/yallist/iterator.js
diff --git a/deps/npm/node_modules/yallist/package.json b/deps/npm/node_modules/yallist/package.json
new file mode 100644
index 0000000000..f56d6b6a33
--- /dev/null
+++ b/deps/npm/node_modules/yallist/package.json
@@ -0,0 +1,62 @@
+{
+ "_from": "yallist@^2.1.2",
+ "_id": "yallist@2.1.2",
+ "_inBundle": false,
+ "_integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
+ "_location": "/yallist",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "yallist@^2.1.2",
+ "name": "yallist",
+ "escapedName": "yallist",
+ "rawSpec": "^2.1.2",
+ "saveSpec": null,
+ "fetchSpec": "^2.1.2"
+ },
+ "_requiredBy": [
+ "/lru-cache"
+ ],
+ "_resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
+ "_shasum": "1c11f9218f076089a47dd512f93c6699a6a81d52",
+ "_spec": "yallist@^2.1.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/lru-cache",
+ "author": {
+ "name": "Isaac Z. Schlueter",
+ "email": "i@izs.me",
+ "url": "http://blog.izs.me/"
+ },
+ "bugs": {
+ "url": "https://github.com/isaacs/yallist/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {},
+ "deprecated": false,
+ "description": "Yet Another Linked List",
+ "devDependencies": {
+ "tap": "^10.3.0"
+ },
+ "directories": {
+ "test": "test"
+ },
+ "files": [
+ "yallist.js",
+ "iterator.js"
+ ],
+ "homepage": "https://github.com/isaacs/yallist#readme",
+ "license": "ISC",
+ "main": "yallist.js",
+ "name": "yallist",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/isaacs/yallist.git"
+ },
+ "scripts": {
+ "postpublish": "git push origin --all; git push origin --tags",
+ "postversion": "npm publish",
+ "preversion": "npm test",
+ "test": "tap test/*.js --100"
+ },
+ "version": "2.1.2"
+}
diff --git a/deps/npm/node_modules/lru-cache/node_modules/yallist/yallist.js b/deps/npm/node_modules/yallist/yallist.js
index 518d23330b..518d23330b 100644
--- a/deps/npm/node_modules/lru-cache/node_modules/yallist/yallist.js
+++ b/deps/npm/node_modules/yallist/yallist.js
diff --git a/deps/npm/node_modules/yargs-parser/CHANGELOG.md b/deps/npm/node_modules/yargs-parser/CHANGELOG.md
new file mode 100644
index 0000000000..f75cfa0ec3
--- /dev/null
+++ b/deps/npm/node_modules/yargs-parser/CHANGELOG.md
@@ -0,0 +1,300 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="9.0.2"></a>
+## [9.0.2](https://github.com/yargs/yargs-parser/compare/v9.0.1...v9.0.2) (2018-01-20)
+
+
+### Bug Fixes
+
+* nargs was still aggressively consuming too many arguments ([9b28aad](https://github.com/yargs/yargs-parser/commit/9b28aad))
+
+
+
+<a name="9.0.1"></a>
+## [9.0.1](https://github.com/yargs/yargs-parser/compare/v9.0.0...v9.0.1) (2018-01-20)
+
+
+### Bug Fixes
+
+* nargs was consuming too many arguments ([4fef206](https://github.com/yargs/yargs-parser/commit/4fef206))
+
+
+
+<a name="9.0.0"></a>
+# [9.0.0](https://github.com/yargs/yargs-parser/compare/v8.1.0...v9.0.0) (2018-01-20)
+
+
+### Features
+
+* narg arguments no longer consume flag arguments ([#114](https://github.com/yargs/yargs-parser/issues/114)) ([60bb9b3](https://github.com/yargs/yargs-parser/commit/60bb9b3))
+
+
+### BREAKING CHANGES
+
+* arguments of form --foo, -abc, will no longer be consumed by nargs
+
+
+
+<a name="8.1.0"></a>
+# [8.1.0](https://github.com/yargs/yargs-parser/compare/v8.0.0...v8.1.0) (2017-12-20)
+
+
+### Bug Fixes
+
+* allow null config values ([#108](https://github.com/yargs/yargs-parser/issues/108)) ([d8b14f9](https://github.com/yargs/yargs-parser/commit/d8b14f9))
+* ensure consistent parsing of dot-notation arguments ([#102](https://github.com/yargs/yargs-parser/issues/102)) ([c9bd79c](https://github.com/yargs/yargs-parser/commit/c9bd79c))
+* implement [@antoniom](https://github.com/antoniom)'s fix for camel-case expansion ([3087e1d](https://github.com/yargs/yargs-parser/commit/3087e1d))
+* only run coercion functions once, despite aliases. ([#76](https://github.com/yargs/yargs-parser/issues/76)) ([#103](https://github.com/yargs/yargs-parser/issues/103)) ([507aaef](https://github.com/yargs/yargs-parser/commit/507aaef))
+* scientific notation circumvented bounds check ([#110](https://github.com/yargs/yargs-parser/issues/110)) ([3571f57](https://github.com/yargs/yargs-parser/commit/3571f57))
+* tokenizer should ignore spaces at the beginning of the argString ([#106](https://github.com/yargs/yargs-parser/issues/106)) ([f34ead9](https://github.com/yargs/yargs-parser/commit/f34ead9))
+
+
+### Features
+
+* make combining arrays a configurable option ([#111](https://github.com/yargs/yargs-parser/issues/111)) ([c8bf536](https://github.com/yargs/yargs-parser/commit/c8bf536))
+* merge array from arguments with array from config ([#83](https://github.com/yargs/yargs-parser/issues/83)) ([806ddd6](https://github.com/yargs/yargs-parser/commit/806ddd6))
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/yargs/yargs-parser/compare/v7.0.0...v8.0.0) (2017-10-05)
+
+
+### Bug Fixes
+
+* Ignore multiple spaces between arguments. ([#100](https://github.com/yargs/yargs-parser/issues/100)) ([d137227](https://github.com/yargs/yargs-parser/commit/d137227))
+
+
+### Features
+
+* allow configuration of prefix for boolean negation ([#94](https://github.com/yargs/yargs-parser/issues/94)) ([00bde7d](https://github.com/yargs/yargs-parser/commit/00bde7d))
+* reworking how numbers are parsed ([#104](https://github.com/yargs/yargs-parser/issues/104)) ([fba00eb](https://github.com/yargs/yargs-parser/commit/fba00eb))
+
+
+### BREAKING CHANGES
+
+* strings that fail `Number.isSafeInteger()` are no longer coerced into numbers.
+
+
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/yargs/yargs-parser/compare/v6.0.1...v7.0.0) (2017-05-02)
+
+
+### Chores
+
+* revert populate-- logic ([#91](https://github.com/yargs/yargs-parser/issues/91)) ([6003e6d](https://github.com/yargs/yargs-parser/commit/6003e6d))
+
+
+### BREAKING CHANGES
+
+* populate-- now defaults to false.
+
+
+
+<a name="6.0.1"></a>
+## [6.0.1](https://github.com/yargs/yargs-parser/compare/v6.0.0...v6.0.1) (2017-05-01)
+
+
+### Bug Fixes
+
+* default '--' to undefined when not provided; this is closer to the array API ([#90](https://github.com/yargs/yargs-parser/issues/90)) ([4e739cc](https://github.com/yargs/yargs-parser/commit/4e739cc))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v6.0.0) (2017-05-01)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+* parsing hints should apply for dot notation keys ([#86](https://github.com/yargs/yargs-parser/issues/86)) ([3e47d62](https://github.com/yargs/yargs-parser/commit/3e47d62))
+
+
+### Chores
+
+* upgrade to newest version of camelcase ([#87](https://github.com/yargs/yargs-parser/issues/87)) ([f1903aa](https://github.com/yargs/yargs-parser/commit/f1903aa))
+
+
+### Features
+
+* add -- option which allows arguments after the -- flag to be returned separated from positional arguments ([#84](https://github.com/yargs/yargs-parser/issues/84)) ([2572ca8](https://github.com/yargs/yargs-parser/commit/2572ca8))
+* when parsing stops, we now populate "--" by default ([#88](https://github.com/yargs/yargs-parser/issues/88)) ([cd666db](https://github.com/yargs/yargs-parser/commit/cd666db))
+
+
+### BREAKING CHANGES
+
+* rather than placing arguments in "_", when parsing is stopped via "--"; we now populate an array called "--" by default.
+* camelcase now requires Node 4+.
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/yargs/yargs-parser/compare/v4.2.1...v5.0.0) (2017-02-18)
+
+
+### Bug Fixes
+
+* environment variables should take precedence over config file ([#81](https://github.com/yargs/yargs-parser/issues/81)) ([76cee1f](https://github.com/yargs/yargs-parser/commit/76cee1f))
+
+
+### BREAKING CHANGES
+
+* environment variables will now override config files (args, env, config-file, config-object)
+
+
+
+<a name="4.2.1"></a>
+## [4.2.1](https://github.com/yargs/yargs-parser/compare/v4.2.0...v4.2.1) (2017-01-02)
+
+
+### Bug Fixes
+
+* flatten/duplicate regression ([#75](https://github.com/yargs/yargs-parser/issues/75)) ([68d68a0](https://github.com/yargs/yargs-parser/commit/68d68a0))
+
+
+
+<a name="4.2.0"></a>
+# [4.2.0](https://github.com/yargs/yargs-parser/compare/v4.1.0...v4.2.0) (2016-12-01)
+
+
+### Bug Fixes
+
+* inner objects in configs had their keys appended to top-level key when dot-notation was disabled ([#72](https://github.com/yargs/yargs-parser/issues/72)) ([0b1b5f9](https://github.com/yargs/yargs-parser/commit/0b1b5f9))
+
+
+### Features
+
+* allow multiple arrays to be provided, rather than always combining ([#71](https://github.com/yargs/yargs-parser/issues/71)) ([0f0fb2d](https://github.com/yargs/yargs-parser/commit/0f0fb2d))
+
+
+
+<a name="4.1.0"></a>
+# [4.1.0](https://github.com/yargs/yargs-parser/compare/v4.0.2...v4.1.0) (2016-11-07)
+
+
+### Features
+
+* apply coercions to default options ([#65](https://github.com/yargs/yargs-parser/issues/65)) ([c79052b](https://github.com/yargs/yargs-parser/commit/c79052b))
+* handle dot notation boolean options ([#63](https://github.com/yargs/yargs-parser/issues/63)) ([02c3545](https://github.com/yargs/yargs-parser/commit/02c3545))
+
+
+
+<a name="4.0.2"></a>
+## [4.0.2](https://github.com/yargs/yargs-parser/compare/v4.0.1...v4.0.2) (2016-09-30)
+
+
+### Bug Fixes
+
+* whoops, let's make the assign not change the Object key order ([29d069a](https://github.com/yargs/yargs-parser/commit/29d069a))
+
+
+
+<a name="4.0.1"></a>
+## [4.0.1](https://github.com/yargs/yargs-parser/compare/v4.0.0...v4.0.1) (2016-09-30)
+
+
+### Bug Fixes
+
+* lodash.assign was deprecated ([#59](https://github.com/yargs/yargs-parser/issues/59)) ([5e7eb11](https://github.com/yargs/yargs-parser/commit/5e7eb11))
+
+
+
+<a name="4.0.0"></a>
+# [4.0.0](https://github.com/yargs/yargs-parser/compare/v3.2.0...v4.0.0) (2016-09-26)
+
+
+### Bug Fixes
+
+* coerce should be applied to the final objects and arrays created ([#57](https://github.com/yargs/yargs-parser/issues/57)) ([4ca69da](https://github.com/yargs/yargs-parser/commit/4ca69da))
+
+
+### BREAKING CHANGES
+
+* coerce is no longer applied to individual arguments in an implicit array.
+
+
+
+<a name="3.2.0"></a>
+# [3.2.0](https://github.com/yargs/yargs-parser/compare/v3.1.0...v3.2.0) (2016-08-13)
+
+
+### Features
+
+* coerce full array instead of each element ([#51](https://github.com/yargs/yargs-parser/issues/51)) ([cc4dc56](https://github.com/yargs/yargs-parser/commit/cc4dc56))
+
+
+
+<a name="3.1.0"></a>
+# [3.1.0](https://github.com/yargs/yargs-parser/compare/v3.0.0...v3.1.0) (2016-08-09)
+
+
+### Bug Fixes
+
+* address pkgConf parsing bug outlined in [#37](https://github.com/yargs/yargs-parser/issues/37) ([#45](https://github.com/yargs/yargs-parser/issues/45)) ([be76ee6](https://github.com/yargs/yargs-parser/commit/be76ee6))
+* better parsing of negative values ([#44](https://github.com/yargs/yargs-parser/issues/44)) ([2e43692](https://github.com/yargs/yargs-parser/commit/2e43692))
+* check aliases when guessing defaults for arguments fixes [#41](https://github.com/yargs/yargs-parser/issues/41) ([#43](https://github.com/yargs/yargs-parser/issues/43)) ([f3e4616](https://github.com/yargs/yargs-parser/commit/f3e4616))
+
+
+### Features
+
+* added coerce option, for providing specialized argument parsing ([#42](https://github.com/yargs/yargs-parser/issues/42)) ([7b49cd2](https://github.com/yargs/yargs-parser/commit/7b49cd2))
+
+
+
+<a name="3.0.0"></a>
+# [3.0.0](https://github.com/yargs/yargs-parser/compare/v2.4.1...v3.0.0) (2016-08-07)
+
+
+### Bug Fixes
+
+* parsing issue with numeric character in group of options ([#19](https://github.com/yargs/yargs-parser/issues/19)) ([f743236](https://github.com/yargs/yargs-parser/commit/f743236))
+* upgraded lodash.assign ([5d7fdf4](https://github.com/yargs/yargs-parser/commit/5d7fdf4))
+
+### BREAKING CHANGES
+
+* subtle change to how values are parsed in a group of single-character arguments.
+* _first released in 3.1.0, better handling of negative values should be considered a breaking change._
+
+
+
+<a name="2.4.1"></a>
+## [2.4.1](https://github.com/yargs/yargs-parser/compare/v2.4.0...v2.4.1) (2016-07-16)
+
+
+### Bug Fixes
+
+* **count:** do not increment a default value ([#39](https://github.com/yargs/yargs-parser/issues/39)) ([b04a189](https://github.com/yargs/yargs-parser/commit/b04a189))
+
+
+
+<a name="2.4.0"></a>
+# [2.4.0](https://github.com/yargs/yargs-parser/compare/v2.3.0...v2.4.0) (2016-04-11)
+
+
+### Features
+
+* **environment:** Support nested options in environment variables ([#26](https://github.com/yargs/yargs-parser/issues/26)) thanks [@elas7](https://github.com/elas7) \o/ ([020778b](https://github.com/yargs/yargs-parser/commit/020778b))
+
+
+
+<a name="2.3.0"></a>
+# [2.3.0](https://github.com/yargs/yargs-parser/compare/v2.2.0...v2.3.0) (2016-04-09)
+
+
+### Bug Fixes
+
+* **boolean:** fix for boolean options with non boolean defaults (#20) ([2dbe86b](https://github.com/yargs/yargs-parser/commit/2dbe86b)), closes [(#20](https://github.com/(/issues/20)
+* **package:** remove tests from tarball ([0353c0d](https://github.com/yargs/yargs-parser/commit/0353c0d))
+* **parsing:** handle calling short option with an empty string as the next value. ([a867165](https://github.com/yargs/yargs-parser/commit/a867165))
+* boolean flag when next value contains the strings 'true' or 'false'. ([69941a6](https://github.com/yargs/yargs-parser/commit/69941a6))
+* update dependencies; add standard-version bin for next release (#24) ([822d9d5](https://github.com/yargs/yargs-parser/commit/822d9d5))
+
+### Features
+
+* **configuration:** Allow to pass configuration objects to yargs-parser ([0780900](https://github.com/yargs/yargs-parser/commit/0780900))
+* **normalize:** allow normalize to work with arrays ([e0eaa1a](https://github.com/yargs/yargs-parser/commit/e0eaa1a))
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt b/deps/npm/node_modules/yargs-parser/LICENSE.txt
index 836440bef7..836440bef7 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/LICENSE.txt
+++ b/deps/npm/node_modules/yargs-parser/LICENSE.txt
diff --git a/deps/npm/node_modules/yargs-parser/README.md b/deps/npm/node_modules/yargs-parser/README.md
new file mode 100644
index 0000000000..6d6d0d4c9c
--- /dev/null
+++ b/deps/npm/node_modules/yargs-parser/README.md
@@ -0,0 +1,308 @@
+# yargs-parser
+
+[![Build Status](https://travis-ci.org/yargs/yargs-parser.png)](https://travis-ci.org/yargs/yargs-parser)
+[![Coverage Status](https://coveralls.io/repos/yargs/yargs-parser/badge.svg?branch=)](https://coveralls.io/r/yargs/yargs-parser?branch=master)
+[![NPM version](https://img.shields.io/npm/v/yargs-parser.svg)](https://www.npmjs.com/package/yargs-parser)
+[![Windows Tests](https://img.shields.io/appveyor/ci/bcoe/yargs-parser/master.svg?label=Windows%20Tests)](https://ci.appveyor.com/project/bcoe/yargs-parser)
+[![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)
+
+
+The mighty option parser used by [yargs](https://github.com/yargs/yargs).
+
+visit the [yargs website](http://yargs.js.org/) for more examples, and thorough usage instructions.
+
+<img width="250" src="https://raw.githubusercontent.com/yargs/yargs-parser/master/yargs-logo.png">
+
+## Example
+
+```sh
+npm i yargs-parser --save
+```
+
+```js
+var argv = require('yargs-parser')(process.argv.slice(2))
+console.log(argv)
+```
+
+```sh
+node example.js --foo=33 --bar hello
+{ _: [], foo: 33, bar: 'hello' }
+```
+
+_or parse a string!_
+
+```js
+var argv = require('./')('--foo=99 --bar=33')
+console.log(argv)
+```
+
+```sh
+{ _: [], foo: 99, bar: 33 }
+```
+
+Convert an array of mixed types before passing to `yargs-parser`:
+
+```js
+var parse = require('yargs-parser')
+parse(['-f', 11, '--zoom', 55].join(' ')) // <-- array to string
+parse(['-f', 11, '--zoom', 55].map(String)) // <-- array of strings
+```
+
+## API
+
+### require('yargs-parser')(args, opts={})
+
+Parses command line arguments returning a simple mapping of keys and values.
+
+**expects:**
+
+* `args`: a string or array of strings representing the options to parse.
+* `opts`: provide a set of hints indicating how `args` should be parsed:
+ * `opts.alias`: an object representing the set of aliases for a key: `{alias: {foo: ['f']}}`.
+ * `opts.array`: indicate that keys should be parsed as an array: `{array: ['foo', 'bar']}`.
+ * `opts.boolean`: arguments should be parsed as booleans: `{boolean: ['x', 'y']}`.
+ * `opts.config`: indicate a key that represents a path to a configuration file (this file will be loaded and parsed).
+ * `opts.coerce`: provide a custom synchronous function that returns a coerced value from the argument provided
+ (or throws an error), e.g. `{coerce: {foo: function (arg) {return modifiedArg}}}`.
+ * `opts.count`: indicate a key that should be used as a counter, e.g., `-vvv` = `{v: 3}`.
+ * `opts.default`: provide default values for keys: `{default: {x: 33, y: 'hello world!'}}`.
+ * `opts.envPrefix`: environment variables (`process.env`) with the prefix provided should be parsed.
+ * `opts.narg`: specify that a key requires `n` arguments: `{narg: {x: 2}}`.
+ * `opts.normalize`: `path.normalize()` will be applied to values set to this key.
+ * `opts.string`: keys should be treated as strings (even if they resemble a number `-x 33`).
+ * `opts.configuration`: provide configuration options to the yargs-parser (see: [configuration](#configuration)).
+ * `opts.number`: keys should be treated as numbers.
+ * `opts['--']`: arguments after the end-of-options flag `--` will be set to the `argv.['--']` array instead of being set to the `argv._` array.
+
+**returns:**
+
+* `obj`: an object representing the parsed value of `args`
+ * `key/value`: key value pairs for each argument and their aliases.
+ * `_`: an array representing the positional arguments.
+ * [optional] `--`: an array with arguments after the end-of-options flag `--`.
+
+### require('yargs-parser').detailed(args, opts={})
+
+Parses a command line string, returning detailed information required by the
+yargs engine.
+
+**expects:**
+
+* `args`: a string or array of strings representing options to parse.
+* `opts`: provide a set of hints indicating how `args`, inputs are identical to `require('yargs-parser')(args, opts={})`.
+
+**returns:**
+
+* `argv`: an object representing the parsed value of `args`
+ * `key/value`: key value pairs for each argument and their aliases.
+ * `_`: an array representing the positional arguments.
+* `error`: populated with an error object if an exception occurred during parsing.
+* `aliases`: the inferred list of aliases built by combining lists in `opts.alias`.
+* `newAliases`: any new aliases added via camel-case expansion.
+* `configuration`: the configuration loaded from the `yargs` stanza in package.json.
+
+<a name="configuration"></a>
+
+### Configuration
+
+The yargs-parser applies several automated transformations on the keys provided
+in `args`. These features can be turned on and off using the `configuration` field
+of `opts`.
+
+```js
+var parsed = parser(['--no-dice'], {
+ configuration: {
+ 'boolean-negation': false
+ }
+})
+```
+
+### short option groups
+
+* default: `true`.
+* key: `short-option-groups`.
+
+Should a group of short-options be treated as boolean flags?
+
+```sh
+node example.js -abc
+{ _: [], a: true, b: true, c: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js -abc
+{ _: [], abc: true }
+```
+
+### camel-case expansion
+
+* default: `true`.
+* key: `camel-case-expansion`.
+
+Should hyphenated arguments be expanded into camel-case aliases?
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true, fooBar: true }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo-bar
+{ _: [], 'foo-bar': true }
+```
+
+### dot-notation
+
+* default: `true`
+* key: `dot-notation`
+
+Should keys that contain `.` be treated as objects?
+
+```sh
+node example.js --foo.bar
+{ _: [], foo: { bar: true } }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo.bar
+{ _: [], "foo.bar": true }
+```
+
+### parse numbers
+
+* default: `true`
+* key: `parse-numbers`
+
+Should keys that look like numbers be treated as such?
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: 99.3 }
+```
+
+_if disabled:_
+
+```sh
+node example.js --foo=99.3
+{ _: [], foo: "99.3" }
+```
+
+### boolean negation
+
+* default: `true`
+* key: `boolean-negation`
+
+Should variables prefixed with `--no` be treated as negations?
+
+```sh
+node example.js --no-foo
+{ _: [], foo: false }
+```
+
+_if disabled:_
+
+```sh
+node example.js --no-foo
+{ _: [], "no-foo": true }
+```
+
+### combine arrays
+
+* default: `false`
+* key: `combine-arrays`
+
+Should arrays be combined when provided by both command line arguments and
+a configuration file.
+
+### duplicate arguments array
+
+* default: `true`
+* key: `duplicate-arguments-array`
+
+Should arguments be coerced into an array when duplicated:
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: [1, 2] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 -x 2
+{ _: [], x: 2 }
+```
+
+### flatten duplicate arrays
+
+* default: `true`
+* key: `flatten-duplicate-arrays`
+
+Should array arguments be coerced into a single array when duplicated:
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [1, 2, 3, 4] }
+```
+
+_if disabled:_
+
+```sh
+node example.js -x 1 2 -x 3 4
+{ _: [], x: [[1, 2], [3, 4]] }
+```
+
+### negation prefix
+
+* default: `no-`
+* key: `negation-prefix`
+
+The prefix to use for negated boolean variables.
+
+```sh
+node example.js --no-foo
+{ _: [], foo: false }
+```
+
+_if set to `quux`:_
+
+```sh
+node example.js --quuxfoo
+{ _: [], foo: false }
+```
+
+### populate --
+
+* default: `false`.
+* key: `populate--`
+
+Should unparsed flags be stored in `--` or `_`.
+
+_If disabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a', 'x', 'y' ], b: true }
+```
+
+_If enabled:_
+
+```sh
+node example.js a -b -- x y
+{ _: [ 'a' ], '--': [ 'x', 'y' ], b: true }
+```
+
+## Special Thanks
+
+The yargs project evolves from optimist and minimist. It owes its
+existence to a lot of James Halliday's hard work. Thanks [substack](https://github.com/substack) **beep** **boop** \o/
+
+## License
+
+ISC
diff --git a/deps/npm/node_modules/yargs-parser/index.js b/deps/npm/node_modules/yargs-parser/index.js
new file mode 100644
index 0000000000..d39414b737
--- /dev/null
+++ b/deps/npm/node_modules/yargs-parser/index.js
@@ -0,0 +1,811 @@
+var camelCase = require('camelcase')
+var path = require('path')
+var tokenizeArgString = require('./lib/tokenize-arg-string')
+var util = require('util')
+
+function parse (args, opts) {
+ if (!opts) opts = {}
+ // allow a string argument to be passed in rather
+ // than an argv array.
+ args = tokenizeArgString(args)
+ // aliases might have transitive relationships, normalize this.
+ var aliases = combineAliases(opts.alias || {})
+ var configuration = assign({
+ 'short-option-groups': true,
+ 'camel-case-expansion': true,
+ 'dot-notation': true,
+ 'parse-numbers': true,
+ 'boolean-negation': true,
+ 'negation-prefix': 'no-',
+ 'duplicate-arguments-array': true,
+ 'flatten-duplicate-arrays': true,
+ 'populate--': false,
+ 'combine-arrays': false
+ }, opts.configuration)
+ var defaults = opts.default || {}
+ var configObjects = opts.configObjects || []
+ var envPrefix = opts.envPrefix
+ var notFlagsOption = configuration['populate--']
+ var notFlagsArgv = notFlagsOption ? '--' : '_'
+ var newAliases = {}
+ // allow a i18n handler to be passed in, default to a fake one (util.format).
+ var __ = opts.__ || function (str) {
+ return util.format.apply(util, Array.prototype.slice.call(arguments))
+ }
+ var error = null
+ var flags = {
+ aliases: {},
+ arrays: {},
+ bools: {},
+ strings: {},
+ numbers: {},
+ counts: {},
+ normalize: {},
+ configs: {},
+ defaulted: {},
+ nargs: {},
+ coercions: {}
+ }
+ var negative = /^-[0-9]+(\.[0-9]+)?/
+ var negatedBoolean = new RegExp('^--' + configuration['negation-prefix'] + '(.+)')
+
+ ;[].concat(opts.array).filter(Boolean).forEach(function (key) {
+ flags.arrays[key] = true
+ })
+
+ ;[].concat(opts.boolean).filter(Boolean).forEach(function (key) {
+ flags.bools[key] = true
+ })
+
+ ;[].concat(opts.string).filter(Boolean).forEach(function (key) {
+ flags.strings[key] = true
+ })
+
+ ;[].concat(opts.number).filter(Boolean).forEach(function (key) {
+ flags.numbers[key] = true
+ })
+
+ ;[].concat(opts.count).filter(Boolean).forEach(function (key) {
+ flags.counts[key] = true
+ })
+
+ ;[].concat(opts.normalize).filter(Boolean).forEach(function (key) {
+ flags.normalize[key] = true
+ })
+
+ Object.keys(opts.narg || {}).forEach(function (k) {
+ flags.nargs[k] = opts.narg[k]
+ })
+
+ Object.keys(opts.coerce || {}).forEach(function (k) {
+ flags.coercions[k] = opts.coerce[k]
+ })
+
+ if (Array.isArray(opts.config) || typeof opts.config === 'string') {
+ ;[].concat(opts.config).filter(Boolean).forEach(function (key) {
+ flags.configs[key] = true
+ })
+ } else {
+ Object.keys(opts.config || {}).forEach(function (k) {
+ flags.configs[k] = opts.config[k]
+ })
+ }
+
+ // create a lookup table that takes into account all
+ // combinations of aliases: {f: ['foo'], foo: ['f']}
+ extendAliases(opts.key, aliases, opts.default, flags.arrays)
+
+ // apply default values to all aliases.
+ Object.keys(defaults).forEach(function (key) {
+ (flags.aliases[key] || []).forEach(function (alias) {
+ defaults[alias] = defaults[key]
+ })
+ })
+
+ var argv = { _: [] }
+
+ Object.keys(flags.bools).forEach(function (key) {
+ setArg(key, !(key in defaults) ? false : defaults[key])
+ setDefaulted(key)
+ })
+
+ var notFlags = []
+ if (args.indexOf('--') !== -1) {
+ notFlags = args.slice(args.indexOf('--') + 1)
+ args = args.slice(0, args.indexOf('--'))
+ }
+
+ for (var i = 0; i < args.length; i++) {
+ var arg = args[i]
+ var broken
+ var key
+ var letters
+ var m
+ var next
+ var value
+
+ // -- seperated by =
+ if (arg.match(/^--.+=/) || (
+ !configuration['short-option-groups'] && arg.match(/^-.+=/)
+ )) {
+ // Using [\s\S] instead of . because js doesn't support the
+ // 'dotall' regex modifier. See:
+ // http://stackoverflow.com/a/1068308/13216
+ m = arg.match(/^--?([^=]+)=([\s\S]*)$/)
+
+ // nargs format = '--f=monkey washing cat'
+ if (checkAllAliases(m[1], flags.nargs)) {
+ args.splice(i + 1, 0, m[2])
+ i = eatNargs(i, m[1], args)
+ // arrays format = '--f=a b c'
+ } else if (checkAllAliases(m[1], flags.arrays) && args.length > i + 1) {
+ args.splice(i + 1, 0, m[2])
+ i = eatArray(i, m[1], args)
+ } else {
+ setArg(m[1], m[2])
+ }
+ } else if (arg.match(negatedBoolean) && configuration['boolean-negation']) {
+ key = arg.match(negatedBoolean)[1]
+ setArg(key, false)
+
+ // -- seperated by space.
+ } else if (arg.match(/^--.+/) || (
+ !configuration['short-option-groups'] && arg.match(/^-.+/)
+ )) {
+ key = arg.match(/^--?(.+)/)[1]
+
+ // nargs format = '--foo a b c'
+ if (checkAllAliases(key, flags.nargs)) {
+ i = eatNargs(i, key, args)
+ // array format = '--foo a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ i = eatArray(i, key, args)
+ } else {
+ next = args[i + 1]
+
+ if (next !== undefined && (!next.match(/^-/) ||
+ next.match(negative)) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else if (/^(true|false)$/.test(next)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ }
+
+ // dot-notation flag seperated by '='.
+ } else if (arg.match(/^-.\..+=/)) {
+ m = arg.match(/^-([^=]+)=([\s\S]*)$/)
+ setArg(m[1], m[2])
+
+ // dot-notation flag seperated by space.
+ } else if (arg.match(/^-.\..+/)) {
+ next = args[i + 1]
+ key = arg.match(/^-(.\..+)/)[1]
+
+ if (next !== undefined && !next.match(/^-/) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ } else if (arg.match(/^-[^-]+/) && !arg.match(negative)) {
+ letters = arg.slice(1, -1).split('')
+ broken = false
+
+ for (var j = 0; j < letters.length; j++) {
+ next = arg.slice(j + 2)
+
+ if (letters[j + 1] && letters[j + 1] === '=') {
+ value = arg.slice(j + 3)
+ key = letters[j]
+
+ // nargs format = '-f=monkey washing cat'
+ if (checkAllAliases(key, flags.nargs)) {
+ args.splice(i + 1, 0, value)
+ i = eatNargs(i, key, args)
+ // array format = '-f=a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ args.splice(i + 1, 0, value)
+ i = eatArray(i, key, args)
+ } else {
+ setArg(key, value)
+ }
+
+ broken = true
+ break
+ }
+
+ if (next === '-') {
+ setArg(letters[j], next)
+ continue
+ }
+
+ // current letter is an alphabetic character and next value is a number
+ if (/[A-Za-z]/.test(letters[j]) &&
+ /^-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) {
+ setArg(letters[j], next)
+ broken = true
+ break
+ }
+
+ if (letters[j + 1] && letters[j + 1].match(/\W/)) {
+ setArg(letters[j], next)
+ broken = true
+ break
+ } else {
+ setArg(letters[j], defaultForType(guessType(letters[j], flags)))
+ }
+ }
+
+ key = arg.slice(-1)[0]
+
+ if (!broken && key !== '-') {
+ // nargs format = '-f a b c'
+ if (checkAllAliases(key, flags.nargs)) {
+ i = eatNargs(i, key, args)
+ // array format = '-f a b c'
+ } else if (checkAllAliases(key, flags.arrays) && args.length > i + 1) {
+ i = eatArray(i, key, args)
+ } else {
+ next = args[i + 1]
+
+ if (next !== undefined && (!/^(-|--)[^-]/.test(next) ||
+ next.match(negative)) &&
+ !checkAllAliases(key, flags.bools) &&
+ !checkAllAliases(key, flags.counts)) {
+ setArg(key, next)
+ i++
+ } else if (/^(true|false)$/.test(next)) {
+ setArg(key, next)
+ i++
+ } else {
+ setArg(key, defaultForType(guessType(key, flags)))
+ }
+ }
+ }
+ } else {
+ argv._.push(maybeCoerceNumber('_', arg))
+ }
+ }
+
+ // order of precedence:
+ // 1. command line arg
+ // 2. value from env var
+ // 3. value from config file
+ // 4. value from config objects
+ // 5. configured default value
+ applyEnvVars(argv, true) // special case: check env vars that point to config file
+ applyEnvVars(argv, false)
+ setConfig(argv)
+ setConfigObjects()
+ applyDefaultsAndAliases(argv, flags.aliases, defaults)
+ applyCoercions(argv)
+
+ // for any counts either not in args or without an explicit default, set to 0
+ Object.keys(flags.counts).forEach(function (key) {
+ if (!hasKey(argv, key.split('.'))) setArg(key, 0)
+ })
+
+ // '--' defaults to undefined.
+ if (notFlagsOption && notFlags.length) argv[notFlagsArgv] = []
+ notFlags.forEach(function (key) {
+ argv[notFlagsArgv].push(key)
+ })
+
+ // how many arguments should we consume, based
+ // on the nargs option?
+ function eatNargs (i, key, args) {
+ var ii
+ const toEat = checkAllAliases(key, flags.nargs)
+
+ // nargs will not consume flag arguments, e.g., -abc, --foo,
+ // and terminates when one is observed.
+ var available = 0
+ for (ii = i + 1; ii < args.length; ii++) {
+ if (!args[ii].match(/^-[^0-9]/)) available++
+ else break
+ }
+
+ if (available < toEat) error = Error(__('Not enough arguments following: %s', key))
+
+ const consumed = Math.min(available, toEat)
+ for (ii = i + 1; ii < (consumed + i + 1); ii++) {
+ setArg(key, args[ii])
+ }
+
+ return (i + consumed)
+ }
+
+ // if an option is an array, eat all non-hyphenated arguments
+ // following it... YUM!
+ // e.g., --foo apple banana cat becomes ["apple", "banana", "cat"]
+ function eatArray (i, key, args) {
+ var start = i + 1
+ var argsToSet = []
+ var multipleArrayFlag = i > 0
+ for (var ii = i + 1; ii < args.length; ii++) {
+ if (/^-/.test(args[ii]) && !negative.test(args[ii])) {
+ if (ii === start) {
+ setArg(key, defaultForType('array'))
+ }
+ multipleArrayFlag = true
+ break
+ }
+ i = ii
+ argsToSet.push(args[ii])
+ }
+ if (multipleArrayFlag) {
+ setArg(key, argsToSet.map(function (arg) {
+ return processValue(key, arg)
+ }))
+ } else {
+ argsToSet.forEach(function (arg) {
+ setArg(key, arg)
+ })
+ }
+
+ return i
+ }
+
+ function setArg (key, val) {
+ unsetDefaulted(key)
+
+ if (/-/.test(key) && configuration['camel-case-expansion']) {
+ addNewAlias(key, camelCase(key))
+ }
+
+ var value = processValue(key, val)
+
+ var splitKey = key.split('.')
+ setKey(argv, splitKey, value)
+
+ // handle populating aliases of the full key
+ if (flags.aliases[key]) {
+ flags.aliases[key].forEach(function (x) {
+ x = x.split('.')
+ setKey(argv, x, value)
+ })
+ }
+
+ // handle populating aliases of the first element of the dot-notation key
+ if (splitKey.length > 1 && configuration['dot-notation']) {
+ ;(flags.aliases[splitKey[0]] || []).forEach(function (x) {
+ x = x.split('.')
+
+ // expand alias with nested objects in key
+ var a = [].concat(splitKey)
+ a.shift() // nuke the old key.
+ x = x.concat(a)
+
+ setKey(argv, x, value)
+ })
+ }
+
+ // Set normalize getter and setter when key is in 'normalize' but isn't an array
+ if (checkAllAliases(key, flags.normalize) && !checkAllAliases(key, flags.arrays)) {
+ var keys = [key].concat(flags.aliases[key] || [])
+ keys.forEach(function (key) {
+ argv.__defineSetter__(key, function (v) {
+ val = path.normalize(v)
+ })
+
+ argv.__defineGetter__(key, function () {
+ return typeof val === 'string' ? path.normalize(val) : val
+ })
+ })
+ }
+ }
+
+ function addNewAlias (key, alias) {
+ if (!(flags.aliases[key] && flags.aliases[key].length)) {
+ flags.aliases[key] = [alias]
+ newAliases[alias] = true
+ }
+ if (!(flags.aliases[alias] && flags.aliases[alias].length)) {
+ addNewAlias(alias, key)
+ }
+ }
+
+ function processValue (key, val) {
+ // handle parsing boolean arguments --foo=true --bar false.
+ if (checkAllAliases(key, flags.bools) || checkAllAliases(key, flags.counts)) {
+ if (typeof val === 'string') val = val === 'true'
+ }
+
+ var value = maybeCoerceNumber(key, val)
+
+ // increment a count given as arg (either no value or value parsed as boolean)
+ if (checkAllAliases(key, flags.counts) && (isUndefined(value) || typeof value === 'boolean')) {
+ value = increment
+ }
+
+ // Set normalized value when key is in 'normalize' and in 'arrays'
+ if (checkAllAliases(key, flags.normalize) && checkAllAliases(key, flags.arrays)) {
+ if (Array.isArray(val)) value = val.map(path.normalize)
+ else value = path.normalize(val)
+ }
+ return value
+ }
+
+ function maybeCoerceNumber (key, value) {
+ if (!checkAllAliases(key, flags.strings) && !checkAllAliases(key, flags.coercions)) {
+ const shouldCoerceNumber = isNumber(value) && configuration['parse-numbers'] && (
+ Number.isSafeInteger(Math.floor(value))
+ )
+ if (shouldCoerceNumber || (!isUndefined(value) && checkAllAliases(key, flags.numbers))) value = Number(value)
+ }
+ return value
+ }
+
+ // set args from config.json file, this should be
+ // applied last so that defaults can be applied.
+ function setConfig (argv) {
+ var configLookup = {}
+
+ // expand defaults/aliases, in-case any happen to reference
+ // the config.json file.
+ applyDefaultsAndAliases(configLookup, flags.aliases, defaults)
+
+ Object.keys(flags.configs).forEach(function (configKey) {
+ var configPath = argv[configKey] || configLookup[configKey]
+ if (configPath) {
+ try {
+ var config = null
+ var resolvedConfigPath = path.resolve(process.cwd(), configPath)
+
+ if (typeof flags.configs[configKey] === 'function') {
+ try {
+ config = flags.configs[configKey](resolvedConfigPath)
+ } catch (e) {
+ config = e
+ }
+ if (config instanceof Error) {
+ error = config
+ return
+ }
+ } else {
+ config = require(resolvedConfigPath)
+ }
+
+ setConfigObject(config)
+ } catch (ex) {
+ if (argv[configKey]) error = Error(__('Invalid JSON config file: %s', configPath))
+ }
+ }
+ })
+ }
+
+ // set args from config object.
+ // it recursively checks nested objects.
+ function setConfigObject (config, prev) {
+ Object.keys(config).forEach(function (key) {
+ var value = config[key]
+ var fullKey = prev ? prev + '.' + key : key
+
+ // if the value is an inner object and we have dot-notation
+ // enabled, treat inner objects in config the same as
+ // heavily nested dot notations (foo.bar.apple).
+ if (typeof value === 'object' && value !== null && !Array.isArray(value) && configuration['dot-notation']) {
+ // if the value is an object but not an array, check nested object
+ setConfigObject(value, fullKey)
+ } else {
+ // setting arguments via CLI takes precedence over
+ // values within the config file.
+ if (!hasKey(argv, fullKey.split('.')) || (flags.defaulted[fullKey]) || (flags.arrays[fullKey] && configuration['combine-arrays'])) {
+ setArg(fullKey, value)
+ }
+ }
+ })
+ }
+
+ // set all config objects passed in opts
+ function setConfigObjects () {
+ if (typeof configObjects === 'undefined') return
+ configObjects.forEach(function (configObject) {
+ setConfigObject(configObject)
+ })
+ }
+
+ function applyEnvVars (argv, configOnly) {
+ if (typeof envPrefix === 'undefined') return
+
+ var prefix = typeof envPrefix === 'string' ? envPrefix : ''
+ Object.keys(process.env).forEach(function (envVar) {
+ if (prefix === '' || envVar.lastIndexOf(prefix, 0) === 0) {
+ // get array of nested keys and convert them to camel case
+ var keys = envVar.split('__').map(function (key, i) {
+ if (i === 0) {
+ key = key.substring(prefix.length)
+ }
+ return camelCase(key)
+ })
+
+ if (((configOnly && flags.configs[keys.join('.')]) || !configOnly) && (!hasKey(argv, keys) || flags.defaulted[keys.join('.')])) {
+ setArg(keys.join('.'), process.env[envVar])
+ }
+ }
+ })
+ }
+
+ function applyCoercions (argv) {
+ var coerce
+ var applied = {}
+ Object.keys(argv).forEach(function (key) {
+ if (!applied.hasOwnProperty(key)) { // If we haven't already coerced this option via one of its aliases
+ coerce = checkAllAliases(key, flags.coercions)
+ if (typeof coerce === 'function') {
+ try {
+ var value = coerce(argv[key])
+ ;([].concat(flags.aliases[key] || [], key)).forEach(ali => {
+ applied[ali] = argv[ali] = value
+ })
+ } catch (err) {
+ error = err
+ }
+ }
+ }
+ })
+ }
+
+ function applyDefaultsAndAliases (obj, aliases, defaults) {
+ Object.keys(defaults).forEach(function (key) {
+ if (!hasKey(obj, key.split('.'))) {
+ setKey(obj, key.split('.'), defaults[key])
+
+ ;(aliases[key] || []).forEach(function (x) {
+ if (hasKey(obj, x.split('.'))) return
+ setKey(obj, x.split('.'), defaults[key])
+ })
+ }
+ })
+ }
+
+ function hasKey (obj, keys) {
+ var o = obj
+
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+ keys.slice(0, -1).forEach(function (key) {
+ o = (o[key] || {})
+ })
+
+ var key = keys[keys.length - 1]
+
+ if (typeof o !== 'object') return false
+ else return key in o
+ }
+
+ function setKey (obj, keys, value) {
+ var o = obj
+
+ if (!configuration['dot-notation']) keys = [keys.join('.')]
+
+ keys.slice(0, -1).forEach(function (key, index) {
+ if (typeof o === 'object' && o[key] === undefined) {
+ o[key] = {}
+ }
+
+ if (typeof o[key] !== 'object' || Array.isArray(o[key])) {
+ // ensure that o[key] is an array, and that the last item is an empty object.
+ if (Array.isArray(o[key])) {
+ o[key].push({})
+ } else {
+ o[key] = [o[key], {}]
+ }
+
+ // we want to update the empty object at the end of the o[key] array, so set o to that object
+ o = o[key][o[key].length - 1]
+ } else {
+ o = o[key]
+ }
+ })
+
+ var key = keys[keys.length - 1]
+
+ var isTypeArray = checkAllAliases(keys.join('.'), flags.arrays)
+ var isValueArray = Array.isArray(value)
+ var duplicate = configuration['duplicate-arguments-array']
+
+ if (value === increment) {
+ o[key] = increment(o[key])
+ } else if (Array.isArray(o[key])) {
+ if (duplicate && isTypeArray && isValueArray) {
+ o[key] = configuration['flatten-duplicate-arrays'] ? o[key].concat(value) : [o[key]].concat([value])
+ } else if (!duplicate && Boolean(isTypeArray) === Boolean(isValueArray)) {
+ o[key] = value
+ } else {
+ o[key] = o[key].concat([value])
+ }
+ } else if (o[key] === undefined && isTypeArray) {
+ o[key] = isValueArray ? value : [value]
+ } else if (duplicate && !(o[key] === undefined || checkAllAliases(key, flags.bools) || checkAllAliases(keys.join('.'), flags.bools) || checkAllAliases(key, flags.counts))) {
+ o[key] = [ o[key], value ]
+ } else {
+ o[key] = value
+ }
+ }
+
+ // extend the aliases list with inferred aliases.
+ function extendAliases () {
+ Array.prototype.slice.call(arguments).forEach(function (obj) {
+ Object.keys(obj || {}).forEach(function (key) {
+ // short-circuit if we've already added a key
+ // to the aliases array, for example it might
+ // exist in both 'opts.default' and 'opts.key'.
+ if (flags.aliases[key]) return
+
+ flags.aliases[key] = [].concat(aliases[key] || [])
+ // For "--option-name", also set argv.optionName
+ flags.aliases[key].concat(key).forEach(function (x) {
+ if (/-/.test(x) && configuration['camel-case-expansion']) {
+ var c = camelCase(x)
+ if (c !== key && flags.aliases[key].indexOf(c) === -1) {
+ flags.aliases[key].push(c)
+ newAliases[c] = true
+ }
+ }
+ })
+ flags.aliases[key].forEach(function (x) {
+ flags.aliases[x] = [key].concat(flags.aliases[key].filter(function (y) {
+ return x !== y
+ }))
+ })
+ })
+ })
+ }
+
+ // check if a flag is set for any of a key's aliases.
+ function checkAllAliases (key, flag) {
+ var isSet = false
+ var toCheck = [].concat(flags.aliases[key] || [], key)
+
+ toCheck.forEach(function (key) {
+ if (flag[key]) isSet = flag[key]
+ })
+
+ return isSet
+ }
+
+ function setDefaulted (key) {
+ [].concat(flags.aliases[key] || [], key).forEach(function (k) {
+ flags.defaulted[k] = true
+ })
+ }
+
+ function unsetDefaulted (key) {
+ [].concat(flags.aliases[key] || [], key).forEach(function (k) {
+ delete flags.defaulted[k]
+ })
+ }
+
+ // return a default value, given the type of a flag.,
+ // e.g., key of type 'string' will default to '', rather than 'true'.
+ function defaultForType (type) {
+ var def = {
+ boolean: true,
+ string: '',
+ number: undefined,
+ array: []
+ }
+
+ return def[type]
+ }
+
+ // given a flag, enforce a default type.
+ function guessType (key, flags) {
+ var type = 'boolean'
+
+ if (checkAllAliases(key, flags.strings)) type = 'string'
+ else if (checkAllAliases(key, flags.numbers)) type = 'number'
+ else if (checkAllAliases(key, flags.arrays)) type = 'array'
+
+ return type
+ }
+
+ function isNumber (x) {
+ if (typeof x === 'number') return true
+ if (/^0x[0-9a-f]+$/i.test(x)) return true
+ return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x)
+ }
+
+ function isUndefined (num) {
+ return num === undefined
+ }
+
+ return {
+ argv: argv,
+ error: error,
+ aliases: flags.aliases,
+ newAliases: newAliases,
+ configuration: configuration
+ }
+}
+
+// if any aliases reference each other, we should
+// merge them together.
+function combineAliases (aliases) {
+ var aliasArrays = []
+ var change = true
+ var combined = {}
+
+ // turn alias lookup hash {key: ['alias1', 'alias2']} into
+ // a simple array ['key', 'alias1', 'alias2']
+ Object.keys(aliases).forEach(function (key) {
+ aliasArrays.push(
+ [].concat(aliases[key], key)
+ )
+ })
+
+ // combine arrays until zero changes are
+ // made in an iteration.
+ while (change) {
+ change = false
+ for (var i = 0; i < aliasArrays.length; i++) {
+ for (var ii = i + 1; ii < aliasArrays.length; ii++) {
+ var intersect = aliasArrays[i].filter(function (v) {
+ return aliasArrays[ii].indexOf(v) !== -1
+ })
+
+ if (intersect.length) {
+ aliasArrays[i] = aliasArrays[i].concat(aliasArrays[ii])
+ aliasArrays.splice(ii, 1)
+ change = true
+ break
+ }
+ }
+ }
+ }
+
+ // map arrays back to the hash-lookup (de-dupe while
+ // we're at it).
+ aliasArrays.forEach(function (aliasArray) {
+ aliasArray = aliasArray.filter(function (v, i, self) {
+ return self.indexOf(v) === i
+ })
+ combined[aliasArray.pop()] = aliasArray
+ })
+
+ return combined
+}
+
+function assign (defaults, configuration) {
+ var o = {}
+ configuration = configuration || {}
+
+ Object.keys(defaults).forEach(function (k) {
+ o[k] = defaults[k]
+ })
+ Object.keys(configuration).forEach(function (k) {
+ o[k] = configuration[k]
+ })
+
+ return o
+}
+
+// this function should only be called when a count is given as an arg
+// it is NOT called to set a default value
+// thus we can start the count at 1 instead of 0
+function increment (orig) {
+ return orig !== undefined ? orig + 1 : 1
+}
+
+function Parser (args, opts) {
+ var result = parse(args.slice(), opts)
+
+ return result.argv
+}
+
+// parse arguments and return detailed
+// meta information, aliases, etc.
+Parser.detailed = function (args, opts) {
+ return parse(args.slice(), opts)
+}
+
+module.exports = Parser
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js b/deps/npm/node_modules/yargs-parser/lib/tokenize-arg-string.js
index 23d39e1feb..6c8d23ef21 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/node_modules/yargs-parser/lib/tokenize-arg-string.js
+++ b/deps/npm/node_modules/yargs-parser/lib/tokenize-arg-string.js
@@ -2,17 +2,23 @@
module.exports = function (argString) {
if (Array.isArray(argString)) return argString
+ argString = argString.trim()
+
var i = 0
+ var prevC = null
var c = null
var opening = null
var args = []
for (var ii = 0; ii < argString.length; ii++) {
+ prevC = c
c = argString.charAt(ii)
// split on spaces unless we're in quotes.
if (c === ' ' && !opening) {
- i++
+ if (!(prevC === ' ')) {
+ i++
+ }
continue
}
diff --git a/deps/npm/node_modules/yargs-parser/package.json b/deps/npm/node_modules/yargs-parser/package.json
new file mode 100644
index 0000000000..c4d1ca1ce5
--- /dev/null
+++ b/deps/npm/node_modules/yargs-parser/package.json
@@ -0,0 +1,75 @@
+{
+ "_from": "yargs-parser@^9.0.2",
+ "_id": "yargs-parser@9.0.2",
+ "_inBundle": false,
+ "_integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=",
+ "_location": "/yargs-parser",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "yargs-parser@^9.0.2",
+ "name": "yargs-parser",
+ "escapedName": "yargs-parser",
+ "rawSpec": "^9.0.2",
+ "saveSpec": null,
+ "fetchSpec": "^9.0.2"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz",
+ "_shasum": "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077",
+ "_spec": "yargs-parser@^9.0.2",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/yargs-parser/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "camelcase": "^4.1.0"
+ },
+ "deprecated": false,
+ "description": "the mighty option parser used by yargs",
+ "devDependencies": {
+ "chai": "^3.5.0",
+ "coveralls": "^2.11.12",
+ "mocha": "^3.0.1",
+ "nyc": "^11.4.1",
+ "standard": "^10.0.2",
+ "standard-version": "^4.3.0"
+ },
+ "files": [
+ "lib",
+ "index.js"
+ ],
+ "homepage": "https://github.com/yargs/yargs-parser#readme",
+ "keywords": [
+ "argument",
+ "parser",
+ "yargs",
+ "command",
+ "cli",
+ "parsing",
+ "option",
+ "args",
+ "argument"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "yargs-parser",
+ "repository": {
+ "url": "git+ssh://git@github.com/yargs/yargs-parser.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "posttest": "standard",
+ "release": "standard-version",
+ "test": "nyc mocha test/*.js"
+ },
+ "version": "9.0.2"
+}
diff --git a/deps/npm/node_modules/yargs/CHANGELOG.md b/deps/npm/node_modules/yargs/CHANGELOG.md
new file mode 100644
index 0000000000..0eaf2f33ed
--- /dev/null
+++ b/deps/npm/node_modules/yargs/CHANGELOG.md
@@ -0,0 +1,1131 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+<a name="11.0.0"></a>
+# [11.0.0](https://github.com/yargs/yargs/compare/v10.1.2...v11.0.0) (2018-01-22)
+
+
+### Bug Fixes
+
+* Set implicit nargs=1 when type=number requiresArg=true ([#1050](https://github.com/yargs/yargs/issues/1050)) ([2b56812](https://github.com/yargs/yargs/commit/2b56812))
+
+
+### Features
+
+* requiresArg is now simply an alias for nargs(1) ([#1054](https://github.com/yargs/yargs/issues/1054)) ([a3ddacc](https://github.com/yargs/yargs/commit/a3ddacc))
+
+
+### BREAKING CHANGES
+
+* requiresArg now has significantly different error output, matching nargs.
+
+
+
+<a name="10.1.2"></a>
+## [10.1.2](https://github.com/yargs/yargs/compare/v10.1.1...v10.1.2) (2018-01-17)
+
+
+### Bug Fixes
+
+* requiresArg should only be enforced if argument exists ([#1043](https://github.com/yargs/yargs/issues/1043)) ([fbf41ae](https://github.com/yargs/yargs/commit/fbf41ae))
+
+
+
+<a name="10.1.1"></a>
+## [10.1.1](https://github.com/yargs/yargs/compare/v10.1.0...v10.1.1) (2018-01-09)
+
+
+### Bug Fixes
+
+* Add `dirname` sanity check on `findUp` ([#1036](https://github.com/yargs/yargs/issues/1036)) ([331d103](https://github.com/yargs/yargs/commit/331d103))
+
+
+
+<a name="10.1.0"></a>
+# [10.1.0](https://github.com/yargs/yargs/compare/v10.0.3...v10.1.0) (2018-01-01)
+
+
+### Bug Fixes
+
+* 'undefined' should be taken to mean no argument was provided ([#1015](https://github.com/yargs/yargs/issues/1015)) ([c679e90](https://github.com/yargs/yargs/commit/c679e90))
+
+
+### Features
+
+* add missing simple chinese locale strings ([#1004](https://github.com/yargs/yargs/issues/1004)) ([3cc24ec](https://github.com/yargs/yargs/commit/3cc24ec))
+* add Norwegian Nynorsk translations ([#1028](https://github.com/yargs/yargs/issues/1028)) ([a5ac213](https://github.com/yargs/yargs/commit/a5ac213))
+* async command handlers ([#1001](https://github.com/yargs/yargs/issues/1001)) ([241124b](https://github.com/yargs/yargs/commit/241124b))
+* middleware ([#881](https://github.com/yargs/yargs/issues/881)) ([77b8dbc](https://github.com/yargs/yargs/commit/77b8dbc))
+
+
+
+<a name="10.0.3"></a>
+## [10.0.3](https://github.com/yargs/yargs/compare/v10.0.2...v10.0.3) (2017-10-21)
+
+
+### Bug Fixes
+
+* parse array rather than string, so that quotes are safe ([#993](https://github.com/yargs/yargs/issues/993)) ([c351685](https://github.com/yargs/yargs/commit/c351685))
+
+
+
+<a name="10.0.2"></a>
+## [10.0.2](https://github.com/yargs/yargs/compare/v10.0.1...v10.0.2) (2017-10-21)
+
+
+### Bug Fixes
+
+* fix tiny spacing issue with usage ([#992](https://github.com/yargs/yargs/issues/992)) ([7871327](https://github.com/yargs/yargs/commit/7871327))
+
+
+
+<a name="10.0.1"></a>
+## [10.0.1](https://github.com/yargs/yargs/compare/v10.0.0...v10.0.1) (2017-10-19)
+
+
+### Bug Fixes
+
+* help strings for nested commands were missing parent commands ([#990](https://github.com/yargs/yargs/issues/990)) ([cd1ca15](https://github.com/yargs/yargs/commit/cd1ca15))
+* use correct completion command in generated completion script ([#988](https://github.com/yargs/yargs/issues/988)) ([3c8ac1d](https://github.com/yargs/yargs/commit/3c8ac1d))
+
+
+
+<a name="10.0.0"></a>
+# [10.0.0](https://github.com/yargs/yargs/compare/v9.1.0...v10.0.0) (2017-10-18)
+
+
+### Bug Fixes
+
+* config and normalize can be disabled with false ([#952](https://github.com/yargs/yargs/issues/952)) ([3bb8771](https://github.com/yargs/yargs/commit/3bb8771))
+* less eager help command execution ([#972](https://github.com/yargs/yargs/issues/972)) ([8c1d7bf](https://github.com/yargs/yargs/commit/8c1d7bf))
+* the positional argument parse was clobbering global flag arguments ([#984](https://github.com/yargs/yargs/issues/984)) ([7e58453](https://github.com/yargs/yargs/commit/7e58453))
+
+
+### Features
+
+* .usage() can now be used to configure a default command ([#975](https://github.com/yargs/yargs/issues/975)) ([7269531](https://github.com/yargs/yargs/commit/7269531))
+* hidden options are now explicitly indicated using "hidden" flag ([#962](https://github.com/yargs/yargs/issues/962)) ([280d0d6](https://github.com/yargs/yargs/commit/280d0d6))
+* introduce .positional() for configuring positional arguments ([#967](https://github.com/yargs/yargs/issues/967)) ([cb16460](https://github.com/yargs/yargs/commit/cb16460))
+* replace $0 with file basename ([#983](https://github.com/yargs/yargs/issues/983)) ([20bb99b](https://github.com/yargs/yargs/commit/20bb99b))
+
+
+### BREAKING CHANGES
+
+* .usage() no longer accepts an options object as the second argument. It can instead be used as an alias for configuring a default command.
+* previously hidden options were simply implied using a falsy description
+* help command now only executes if it's the last positional in argv._
+
+
+
+<a name="9.1.0"></a>
+# [9.1.0](https://github.com/yargs/yargs/compare/v9.0.1...v9.1.0) (2017-09-25)
+
+
+### Bug Fixes
+
+* **command:** Run default cmd even if the only cmd ([#950](https://github.com/yargs/yargs/issues/950)) ([7b22203](https://github.com/yargs/yargs/commit/7b22203))
+
+
+### Features
+
+* multiple usage calls are now collected, not replaced ([#958](https://github.com/yargs/yargs/issues/958)) ([74a38b2](https://github.com/yargs/yargs/commit/74a38b2))
+
+
+
+<a name="9.0.1"></a>
+## [9.0.1](https://github.com/yargs/yargs/compare/v9.0.0...v9.0.1) (2017-09-17)
+
+
+### Bug Fixes
+
+* implications fails only displayed once ([#954](https://github.com/yargs/yargs/issues/954)) ([ac8088b](https://github.com/yargs/yargs/commit/ac8088b))
+
+
+
+<a name="9.0.0"></a>
+# [9.0.0](https://github.com/yargs/yargs/compare/v8.0.2...v9.0.0) (2017-09-03)
+
+
+### Bug Fixes
+
+* 'undefined' default value for choices resulted in validation failing ([782b896](https://github.com/yargs/yargs/commit/782b896))
+* address bug with handling of arrays of implications ([c240661](https://github.com/yargs/yargs/commit/c240661))
+* defaulting keys to 'undefined' interfered with conflicting key logic ([a8e0cff](https://github.com/yargs/yargs/commit/a8e0cff))
+* don't bother calling JSON.stringify() on string default values ([#891](https://github.com/yargs/yargs/issues/891)) ([628be21](https://github.com/yargs/yargs/commit/628be21))
+* exclude positional arguments from completion output ([#927](https://github.com/yargs/yargs/issues/927)) ([71c7ec7](https://github.com/yargs/yargs/commit/71c7ec7))
+* strict mode should not fail for hidden options ([#949](https://github.com/yargs/yargs/issues/949)) ([0e0c58d](https://github.com/yargs/yargs/commit/0e0c58d))
+
+
+### Features
+
+* allow implies and conflicts to accept array values ([#922](https://github.com/yargs/yargs/issues/922)) ([abdc7da](https://github.com/yargs/yargs/commit/abdc7da))
+* allow parse with no arguments as alias for yargs.argv ([#944](https://github.com/yargs/yargs/issues/944)) ([a9f03e7](https://github.com/yargs/yargs/commit/a9f03e7))
+* enable .help() and .version() by default ([#912](https://github.com/yargs/yargs/issues/912)) ([1ef44e0](https://github.com/yargs/yargs/commit/1ef44e0))
+* to allow both undefined and nulls, for benefit of TypeScript ([#945](https://github.com/yargs/yargs/issues/945)) ([792564d](https://github.com/yargs/yargs/commit/792564d))
+
+
+### BREAKING CHANGES
+
+* version() and help() are now enabled by default, and show up in help output; the implicit help command can no longer be enabled/disabled independently from the help command itself (which can now be disabled).
+* parse() now behaves as an alias for .argv, unless a parseCallback is provided.
+
+
+
+<a name="8.0.2"></a>
+## [8.0.2](https://github.com/yargs/yargs/compare/v8.0.1...v8.0.2) (2017-06-12)
+
+
+
+<a name="8.0.1"></a>
+## [8.0.1](https://github.com/yargs/yargs/compare/v8.0.0...v8.0.1) (2017-05-02)
+
+
+
+<a name="8.0.0"></a>
+# [8.0.0](https://github.com/yargs/yargs/compare/v7.1.0...v8.0.0) (2017-05-01)
+
+
+### Bug Fixes
+
+* commands are now applied in order, from left to right ([#857](https://github.com/yargs/yargs/issues/857)) ([baba863](https://github.com/yargs/yargs/commit/baba863))
+* help now takes precedence over command recommendation ([#866](https://github.com/yargs/yargs/issues/866)) ([17e3567](https://github.com/yargs/yargs/commit/17e3567))
+* positional arguments now work if no handler is provided to inner command ([#864](https://github.com/yargs/yargs/issues/864)) ([e28ded3](https://github.com/yargs/yargs/commit/e28ded3))
+
+
+### Chores
+
+* upgrade yargs-parser ([#867](https://github.com/yargs/yargs/issues/867)) ([8f9c6c6](https://github.com/yargs/yargs/commit/8f9c6c6))
+
+
+### Features
+
+* allow extends to inherit from a module ([#865](https://github.com/yargs/yargs/issues/865)) ([89456d9](https://github.com/yargs/yargs/commit/89456d9))
+* allow strict mode to be disabled ([#840](https://github.com/yargs/yargs/issues/840)) ([6f78c05](https://github.com/yargs/yargs/commit/6f78c05))
+
+
+### BREAKING CHANGES
+
+* extends functionality now always loads the JSON provided, rather than reading from a specific key
+* Node 4+ is now required; this will allow us to start updating our dependencies.
+* the first argument to strict() is now used to enable/disable its functionality, rather than controlling whether or not it is global.
+
+
+
+<a name="7.1.0"></a>
+# [7.1.0](https://github.com/yargs/yargs/compare/v7.0.2...v7.1.0) (2017-04-13)
+
+
+### Bug Fixes
+
+* fix demandOption no longer treats 'false' as truthy ([#829](https://github.com/yargs/yargs/issues/829)) ([c748dd2](https://github.com/yargs/yargs/commit/c748dd2))
+* get terminalWidth in non interactive mode no longer causes a validation exception ([#837](https://github.com/yargs/yargs/issues/837)) ([360e301](https://github.com/yargs/yargs/commit/360e301))
+* we shouldn't output help if we've printed a prior help-like message ([#847](https://github.com/yargs/yargs/issues/847)) ([17e89bd](https://github.com/yargs/yargs/commit/17e89bd))
+
+
+### Features
+
+* add support for numeric commands ([#825](https://github.com/yargs/yargs/issues/825)) ([fde0564](https://github.com/yargs/yargs/commit/fde0564))
+
+
+
+<a name="7.0.2"></a>
+## [7.0.2](https://github.com/yargs/yargs/compare/v7.0.1...v7.0.2) (2017-03-10)
+
+
+### Bug Fixes
+
+* populating placeholder arguments broke validation ([b3eb2fe](https://github.com/yargs/yargs/commit/b3eb2fe))
+
+
+
+<a name="7.0.1"></a>
+## [7.0.1](https://github.com/yargs/yargs/compare/v7.0.0...v7.0.1) (2017-03-03)
+
+
+### Bug Fixes
+
+* --help with default command should print top-level help ([#810](https://github.com/yargs/yargs/issues/810)) ([9c03fa4](https://github.com/yargs/yargs/commit/9c03fa4))
+
+
+
+<a name="7.0.0"></a>
+# [7.0.0](https://github.com/yargs/yargs/compare/v6.6.0...v7.0.0) (2017-02-26)
+
+
+### Bug Fixes
+
+* address min/max validation message regression ([#750](https://github.com/yargs/yargs/issues/750)) ([2e5ce0f](https://github.com/yargs/yargs/commit/2e5ce0f))
+* address positional argument strict() bug introduced in [#766](https://github.com/yargs/yargs/issues/766) ([#784](https://github.com/yargs/yargs/issues/784)) ([a8528e6](https://github.com/yargs/yargs/commit/a8528e6))
+* console.warn() rather than throwing errors when api signatures are incorrect ([#804](https://github.com/yargs/yargs/issues/804)) ([a607061](https://github.com/yargs/yargs/commit/a607061))
+* context should override parsed argv ([#786](https://github.com/yargs/yargs/issues/786)) ([0997288](https://github.com/yargs/yargs/commit/0997288))
+* context variables are now recognized in strict() mode ([#796](https://github.com/yargs/yargs/issues/796)) ([48575cd](https://github.com/yargs/yargs/commit/48575cd))
+* errors were not bubbling appropriately from sub-commands to top-level ([#802](https://github.com/yargs/yargs/issues/802)) ([8a992f5](https://github.com/yargs/yargs/commit/8a992f5))
+* positional arguments of sub-commands threw strict() exception ([#805](https://github.com/yargs/yargs/issues/805)) ([f3f074b](https://github.com/yargs/yargs/commit/f3f074b))
+* pull in yargs-parser with modified env precedence ([#787](https://github.com/yargs/yargs/issues/787)) ([e0fbbe5](https://github.com/yargs/yargs/commit/e0fbbe5))
+* running parse() multiple times on the same yargs instance caused exception if help() enabled ([#790](https://github.com/yargs/yargs/issues/790)) ([07e39b7](https://github.com/yargs/yargs/commit/07e39b7))
+* use path.resolve() to support node 0.10 ([#797](https://github.com/yargs/yargs/issues/797)) ([49a93fc](https://github.com/yargs/yargs/commit/49a93fc))
+
+
+### Features
+
+* add conflicts and implies shorthands. ([#753](https://github.com/yargs/yargs/issues/753)) ([bd1472b](https://github.com/yargs/yargs/commit/bd1472b))
+* add traditional Chinese translation ([#780](https://github.com/yargs/yargs/issues/780)) ([6ab6a95](https://github.com/yargs/yargs/commit/6ab6a95))
+* allow provided config object to extend other configs ([#779](https://github.com/yargs/yargs/issues/779)) ([3280dd0](https://github.com/yargs/yargs/commit/3280dd0))
+* function argument validation ([#773](https://github.com/yargs/yargs/issues/773)) ([22ed9bb](https://github.com/yargs/yargs/commit/22ed9bb))
+* if only one column is provided for examples, allow it to take up the entire line ([#749](https://github.com/yargs/yargs/issues/749)) ([7931652](https://github.com/yargs/yargs/commit/7931652))
+* introduce custom yargs error object ([#765](https://github.com/yargs/yargs/issues/765)) ([8308efa](https://github.com/yargs/yargs/commit/8308efa))
+* introduces support for default commands, using the '*' identifier ([#785](https://github.com/yargs/yargs/issues/785)) ([d78a0f5](https://github.com/yargs/yargs/commit/d78a0f5))
+* rethink how options are inherited by commands ([#766](https://github.com/yargs/yargs/issues/766)) ([ab1fa4b](https://github.com/yargs/yargs/commit/ab1fa4b))
+
+
+### BREAKING CHANGES
+
+* `extends` key in config file is now used for extending other config files
+* environment variables now take precedence over config files.
+* context now takes precedence over argv and defaults
+* the arguments passed to functions are now validated, there's a good chance this will throw exceptions for a few folks who are using the API in an unexpected way.
+* by default options, and many of yargs' parsing helpers will now default to being applied globally; such that they are no-longer reset before being passed into commands.
+* yargs will no longer aggressively suppress errors, allowing errors that are not generated internally to bubble.
+
+
+
+<a name="6.6.0"></a>
+# [6.6.0](https://github.com/yargs/yargs/compare/v6.5.0...v6.6.0) (2016-12-29)
+
+
+### Bug Fixes
+
+* [object Object] was accidentally being populated on options object ([#736](https://github.com/yargs/yargs/issues/736)) ([f755e27](https://github.com/yargs/yargs/commit/f755e27))
+* do not use cwd when resolving package.json for yargs parsing config ([#726](https://github.com/yargs/yargs/issues/726)) ([9bdaab7](https://github.com/yargs/yargs/commit/9bdaab7))
+
+
+### Features
+
+* implement conflicts() for defining mutually exclusive arguments; thanks [@madcampos](https://github.com/madcampos)! ([#741](https://github.com/yargs/yargs/issues/741)) ([5883779](https://github.com/yargs/yargs/commit/5883779))
+* split demand() into demandCommand()/demandOption() ([#740](https://github.com/yargs/yargs/issues/740)) ([66573c8](https://github.com/yargs/yargs/commit/66573c8))
+* support for positional argument aliases ([#727](https://github.com/yargs/yargs/issues/727)) ([27e1a57](https://github.com/yargs/yargs/commit/27e1a57))
+
+
+
+<a name="6.5.0"></a>
+# [6.5.0](https://github.com/yargs/yargs/compare/v6.4.0...v6.5.0) (2016-12-01)
+
+
+### Bug Fixes
+
+* still freeze/unfreeze if parse() is called in isolation ([#717](https://github.com/yargs/yargs/issues/717)) ([30a9492](https://github.com/yargs/yargs/commit/30a9492))
+
+
+### Features
+
+* pull in yargs-parser introducing additional settings ([#688](https://github.com/yargs/yargs/issues/688)), and fixing [#716](https://github.com/yargs/yargs/issues/716) ([#722](https://github.com/yargs/yargs/issues/722)) ([702995a](https://github.com/yargs/yargs/commit/702995a))
+
+
+
+<a name="6.4.0"></a>
+# [6.4.0](https://github.com/yargs/yargs/compare/v6.3.0...v6.4.0) (2016-11-13)
+
+
+### Bug Fixes
+
+* **locales:** correct some Russian translations ([#691](https://github.com/yargs/yargs/issues/691)) ([a980671](https://github.com/yargs/yargs/commit/a980671))
+
+
+### Features
+
+* **locales:** Added Belarusian translation ([#690](https://github.com/yargs/yargs/issues/690)) ([68dac1f](https://github.com/yargs/yargs/commit/68dac1f))
+* **locales:** Create nl.json ([#687](https://github.com/yargs/yargs/issues/687)) ([46ce1bb](https://github.com/yargs/yargs/commit/46ce1bb))
+* update to yargs-parser that addresses [#598](https://github.com/yargs/yargs/issues/598), [#617](https://github.com/yargs/yargs/issues/617) ([#700](https://github.com/yargs/yargs/issues/700)) ([54cb31d](https://github.com/yargs/yargs/commit/54cb31d))
+* yargs is now passed as the third-argument to fail handler ([#613](https://github.com/yargs/yargs/issues/613)) ([21b74f9](https://github.com/yargs/yargs/commit/21b74f9))
+
+
+### Performance Improvements
+
+* normalizing package data is an expensive operation ([#705](https://github.com/yargs/yargs/issues/705)) ([49cf533](https://github.com/yargs/yargs/commit/49cf533))
+
+
+
+<a name="6.3.0"></a>
+# [6.3.0](https://github.com/yargs/yargs/compare/v6.2.0...v6.3.0) (2016-10-19)
+
+
+### Bug Fixes
+
+* **command:** subcommands via commandDir() now supported for parse(msg, cb) ([#678](https://github.com/yargs/yargs/issues/678)) ([6b85cc6](https://github.com/yargs/yargs/commit/6b85cc6))
+
+
+### Features
+
+* **locales:** Add Thai locale file ([#679](https://github.com/yargs/yargs/issues/679)) ([c05e36b](https://github.com/yargs/yargs/commit/c05e36b))
+
+
+
+<a name="6.2.0"></a>
+# [6.2.0](https://github.com/yargs/yargs/compare/v6.1.1...v6.2.0) (2016-10-16)
+
+
+### Bug Fixes
+
+* stop applying parser to context object ([#675](https://github.com/yargs/yargs/issues/675)) ([3fe9b8f](https://github.com/yargs/yargs/commit/3fe9b8f))
+
+
+### Features
+
+* add new pt_BR translations ([#674](https://github.com/yargs/yargs/issues/674)) ([5615a82](https://github.com/yargs/yargs/commit/5615a82))
+* Italian translations for 'did you mean' and 'aliases' ([#673](https://github.com/yargs/yargs/issues/673)) ([81984e6](https://github.com/yargs/yargs/commit/81984e6))
+
+
+
+<a name="6.1.1"></a>
+## [6.1.1](https://github.com/yargs/yargs/compare/v6.1.0...v6.1.1) (2016-10-15)
+
+
+### Bug Fixes
+
+* freeze was not resetting configObjects to initial state; addressed performance issue raised by [@nexdrew](https://github.com/nexdrew). ([#670](https://github.com/yargs/yargs/issues/670)) ([ae4bcd4](https://github.com/yargs/yargs/commit/ae4bcd4))
+
+
+
+<a name="6.1.0"></a>
+# [6.1.0](https://github.com/yargs/yargs/compare/v6.0.0...v6.1.0) (2016-10-15)
+
+
+### Bug Fixes
+
+* **locales:** change some translations ([#667](https://github.com/yargs/yargs/issues/667)) ([aa966c5](https://github.com/yargs/yargs/commit/aa966c5))
+* **locales:** conform hi locale to y18n.__n expectations ([#666](https://github.com/yargs/yargs/issues/666)) ([22adb18](https://github.com/yargs/yargs/commit/22adb18))
+
+
+### Features
+
+* initial support for command aliases ([#647](https://github.com/yargs/yargs/issues/647)) ([127a040](https://github.com/yargs/yargs/commit/127a040))
+* **command:** add camelcase commands to argv ([#658](https://github.com/yargs/yargs/issues/658)) ([b1cabae](https://github.com/yargs/yargs/commit/b1cabae))
+* **locales:** add Hindi translations ([9290912](https://github.com/yargs/yargs/commit/9290912))
+* **locales:** add Hungarian translations ([be92327](https://github.com/yargs/yargs/commit/be92327))
+* **locales:** Japanese translations for 'did you mean' and 'aliases' ([#651](https://github.com/yargs/yargs/issues/651)) ([5eb78fc](https://github.com/yargs/yargs/commit/5eb78fc))
+* **locales:** Polish translations for 'did you mean' and 'aliases' ([#650](https://github.com/yargs/yargs/issues/650)) ([c951c0e](https://github.com/yargs/yargs/commit/c951c0e))
+* reworking yargs API to make it easier to run in headless environments, e.g., Slack ([#646](https://github.com/yargs/yargs/issues/646)) ([f284c29](https://github.com/yargs/yargs/commit/f284c29))
+* Turkish translations for 'did you mean' and 'aliases' ([#660](https://github.com/yargs/yargs/issues/660)) ([072fd45](https://github.com/yargs/yargs/commit/072fd45))
+
+
+
+<a name="6.0.0"></a>
+# [6.0.0](https://github.com/yargs/yargs/compare/v5.0.0...v6.0.0) (2016-09-30)
+
+
+### Bug Fixes
+
+* changed parsing of the command string to ignore extra spaces ([#600](https://github.com/yargs/yargs/issues/600)) ([e8e5a72](https://github.com/yargs/yargs/commit/e8e5a72))
+* drop lodash.assign ([#641](https://github.com/yargs/yargs/issues/641)) ([ad3146f](https://github.com/yargs/yargs/commit/ad3146f))
+* for args that have skipValidation set to `true`, check if the parsed arg is `true` ([#619](https://github.com/yargs/yargs/issues/619)) ([658a34c](https://github.com/yargs/yargs/commit/658a34c))
+* upgrade standard, and fix appveyor config so that it works with newest standard ([#607](https://github.com/yargs/yargs/issues/607)) ([c301f42](https://github.com/yargs/yargs/commit/c301f42))
+
+
+### Chores
+
+* upgrade yargs-parser ([#633](https://github.com/yargs/yargs/issues/633)) ([cc1224e](https://github.com/yargs/yargs/commit/cc1224e))
+
+
+### Features
+
+* make opts object optional for .option() ([#624](https://github.com/yargs/yargs/issues/624)) ([4f29de6](https://github.com/yargs/yargs/commit/4f29de6))
+
+
+### Performance Improvements
+
+* defer windowWidth() to improve perf for non-help usage ([#610](https://github.com/yargs/yargs/issues/610)) ([cbc3636](https://github.com/yargs/yargs/commit/cbc3636))
+
+
+### BREAKING CHANGES
+
+* coerce is now applied as a final step after other parsing is complete
+
+
+
+<a name="5.0.0"></a>
+# [5.0.0](https://github.com/yargs/yargs/compare/v4.8.1...v5.0.0) (2016-08-14)
+
+
+### Bug Fixes
+
+* **default:** Remove undocumented alias of default() ([#469](https://github.com/yargs/yargs/issues/469)) ([b8591b2](https://github.com/yargs/yargs/commit/b8591b2))
+* remove deprecated zh.json ([#578](https://github.com/yargs/yargs/issues/578)) ([317c62c](https://github.com/yargs/yargs/commit/317c62c))
+
+
+### Features
+
+* .help() API can now enable implicit help command ([#574](https://github.com/yargs/yargs/issues/574)) ([7645019](https://github.com/yargs/yargs/commit/7645019))
+* **command:** builder function no longer needs to return the yargs instance ([#549](https://github.com/yargs/yargs/issues/549)) ([eaa2873](https://github.com/yargs/yargs/commit/eaa2873))
+* add coerce api ([#586](https://github.com/yargs/yargs/issues/586)) ([1d53ccb](https://github.com/yargs/yargs/commit/1d53ccb))
+* adds recommendCommands() for command suggestions ([#580](https://github.com/yargs/yargs/issues/580)) ([59474dc](https://github.com/yargs/yargs/commit/59474dc))
+* apply .env() globally ([#553](https://github.com/yargs/yargs/issues/553)) ([be65728](https://github.com/yargs/yargs/commit/be65728))
+* apply default builder to command() and apply fail() handlers globally ([#583](https://github.com/yargs/yargs/issues/583)) ([0aaa68b](https://github.com/yargs/yargs/commit/0aaa68b))
+* update yargs-parser to version 3.1.0 ([#581](https://github.com/yargs/yargs/issues/581)) ([882a127](https://github.com/yargs/yargs/commit/882a127))
+
+
+### Performance Improvements
+
+* defer requiring most external libs until needed ([#584](https://github.com/yargs/yargs/issues/584)) ([f9b0ed4](https://github.com/yargs/yargs/commit/f9b0ed4))
+
+
+### BREAKING CHANGES
+
+* fail is now applied globally.
+* we now default to an empty builder function when command is executed with no builder.
+* yargs-parser now better handles negative integer values, at the cost of handling numeric option names, e.g., -1 hello
+* default: removed undocumented `defaults` alias for `default`.
+* introduces a default `help` command which outputs help, as an alternative to a help flag.
+* interpret demand() numbers as relative to executing command ([#582](https://github.com/yargs/yargs/issues/582)) ([927810c](https://github.com/yargs/yargs/commit/927810c))
+
+
+
+<a name="4.8.1"></a>
+## [4.8.1](https://github.com/yargs/yargs/compare/v4.8.0...v4.8.1) (2016-07-16)
+
+
+### Bug Fixes
+
+* **commandDir:** make dir relative to caller instead of require.main.filename ([#548](https://github.com/yargs/yargs/issues/548)) ([3c2e479](https://github.com/yargs/yargs/commit/3c2e479))
+* add config lookup for .implies() ([#556](https://github.com/yargs/yargs/issues/556)) ([8d7585c](https://github.com/yargs/yargs/commit/8d7585c))
+* cache pkg lookups by path to avoid returning the wrong one ([#552](https://github.com/yargs/yargs/issues/552)) ([fea7e0b](https://github.com/yargs/yargs/commit/fea7e0b))
+* positional arguments were not being handled appropriately by parse() ([#559](https://github.com/yargs/yargs/issues/559)) ([063a866](https://github.com/yargs/yargs/commit/063a866))
+* pull in [@nexdrew](https://github.com/nexdrew)'s fixes to yargs-parser ([#560](https://github.com/yargs/yargs/issues/560)) ([c77c080](https://github.com/yargs/yargs/commit/c77c080)), closes [#560](https://github.com/yargs/yargs/issues/560)
+
+
+
+<a name="4.8.0"></a>
+# [4.8.0](https://github.com/yargs/yargs/compare/v4.7.1...v4.8.0) (2016-07-09)
+
+
+### Bug Fixes
+
+* drop unused camelcase dependency fixes [#516](https://github.com/yargs/yargs/issues/516) ([#525](https://github.com/yargs/yargs/issues/525)) ([365fb9a](https://github.com/yargs/yargs/commit/365fb9a)), closes [#516](https://github.com/yargs/yargs/issues/516) [#525](https://github.com/yargs/yargs/issues/525)
+* fake a tty in tests, so that we can use the new set-blocking ([#512](https://github.com/yargs/yargs/issues/512)) ([a54c742](https://github.com/yargs/yargs/commit/a54c742))
+* ignore invalid package.json during read-pkg-up ([#546](https://github.com/yargs/yargs/issues/546)) ([e058c87](https://github.com/yargs/yargs/commit/e058c87))
+* keep both zh and zh_CN until yargs[@5](https://github.com/5).x ([0f8faa7](https://github.com/yargs/yargs/commit/0f8faa7))
+* lazy-load package.json and cache. get rid of pkg-conf dependency. ([#544](https://github.com/yargs/yargs/issues/544)) ([2609b2e](https://github.com/yargs/yargs/commit/2609b2e))
+* we now respect the order of _ when applying commands ([#537](https://github.com/yargs/yargs/issues/537)) ([ed86b78](https://github.com/yargs/yargs/commit/ed86b78))
+
+
+### Features
+
+* add .commandDir(dir) to API to apply all command modules from a relative directory ([#494](https://github.com/yargs/yargs/issues/494)) ([b299dff](https://github.com/yargs/yargs/commit/b299dff))
+* **command:** derive missing command string from module filename ([#527](https://github.com/yargs/yargs/issues/527)) ([20d4b8a](https://github.com/yargs/yargs/commit/20d4b8a))
+* builder is now optional for a command module ([#545](https://github.com/yargs/yargs/issues/545)) ([8d6ad6e](https://github.com/yargs/yargs/commit/8d6ad6e))
+
+
+
+<a name="4.7.1"></a>
+## [4.7.1](https://github.com/yargs/yargs/compare/v4.7.0...v4.7.1) (2016-05-15)
+
+
+### Bug Fixes
+
+* switch to using `const` rather than `var` ([#499](https://github.com/yargs/yargs/pull/499))
+* make stdout flush on newer versions of Node.js ([#501](https://github.com/yargs/yargs/issues/501)) ([9f8c6f4](https://github.com/yargs/yargs/commit/9f8c6f4))
+
+
+
+<a name="4.7.0"></a>
+# [4.7.0](https://github.com/yargs/yargs/compare/v4.6.0...v4.7.0) (2016-05-02)
+
+
+### Bug Fixes
+
+* **pkgConf:** fix aliases issues in .pkgConf() ([#478](https://github.com/yargs/yargs/issues/478))([b900502](https://github.com/yargs/yargs/commit/b900502))
+
+
+### Features
+
+* **completion:** allow to get completions for any string, not just process.argv ([#470](https://github.com/yargs/yargs/issues/470))([74fcfbc](https://github.com/yargs/yargs/commit/74fcfbc))
+* **configuration:** Allow to directly pass a configuration object to .config() ([#480](https://github.com/yargs/yargs/issues/480))([e0a7e05](https://github.com/yargs/yargs/commit/e0a7e05))
+* **validation:** Add .skipValidation() method ([#471](https://github.com/yargs/yargs/issues/471))([d72badb](https://github.com/yargs/yargs/commit/d72badb))
+
+
+
+<a name="4.6.0"></a>
+# [4.6.0](https://github.com/yargs/yargs/compare/v4.5.0...v4.6.0) (2016-04-11)
+
+
+### Bug Fixes
+
+* **my brand!:** I agree with [@osher](https://github.com/osher) lightweight isn't a huge selling point of ours any longer, see [#468](https://github.com/yargs/yargs/issues/468) ([c46d7e1](https://github.com/yargs/yargs/commit/c46d7e1))
+
+### Features
+
+* switch to standard-version for release management ([f70f801](https://github.com/yargs/yargs/commit/f70f801))
+* upgrade to version of yargs-parser that introduces some slick new features, great work [@elas7](https://github.com/elas7). update cliui, replace win-spawn, replace badge. ([#475](https://github.com/yargs/yargs/issues/475)) ([f915dd4](https://github.com/yargs/yargs/commit/f915dd4))
+
+
+
+<a name="4.5.0"></a>
+# [4.5.0](https://github.com/yargs/yargs/compare/v4.4.0...v4.5.0) (2016-04-05)
+
+
+### Bug Fixes
+
+* **windows:** handle $0 better on Windows platforms ([eb6e03f](https://github.com/yargs/yargs/commit/eb6e03f))
+
+### Features
+
+* **commands:** implemented variadic positional arguments ([51d926e](https://github.com/yargs/yargs/commit/51d926e))
+* **completion:** completion now better handles aliases, and avoids duplicating keys. ([86416c8](https://github.com/yargs/yargs/commit/86416c8))
+* **config:** If invoking .config() without parameters, set a default option ([0413dd1](https://github.com/yargs/yargs/commit/0413dd1))
+* **conventional-changelog:** switching to using conventional-changelog for generating the changelog ([a2b5a2a](https://github.com/yargs/yargs/commit/a2b5a2a))
+
+
+
+### v4.4.0 (2016/04/03 21:10 +07:00)
+
+- [#454](https://github.com/yargs/yargs/pull/454) fix demand() when second argument is an array (@elas7)
+- [#452](https://github.com/yargs/yargs/pull/452) fix code example for `.help()` docs (@maxrimue)
+- [#450](https://github.com/yargs/yargs/pull/450) fix for bash completion trailing space edge-case (@elas7)
+- [#448](https://github.com/yargs/yargs/pull/448) allow a method to be passed to `showHelp`, rather than a log-level (@osher)
+- [#446](https://github.com/yargs/yargs/pull/446) update yargs-parser, y18n, nyc, cliui, pkg-conf (@bcoe)
+- [#436](https://github.com/yargs/yargs/pull/436) the rebase method is only used by tests, do not export it in two places (@elas7)
+- [#428](https://github.com/yargs/yargs/pull/428) initial support for subcommands (@nexdrew)
+
+### v4.3.2 (2016/3/20 15:07 +07:00)
+
+- [#445](https://github.com/yargs/yargs/pull/445) strict mode was failing if no commands were registered (@nexdrew)
+- [#443](https://github.com/yargs/yargs/pull/443) adds Italian translation \o/ (@madrisan)
+- [#441](https://github.com/yargs/yargs/pull/441) remove duplicate keys from array options configuration (@elas7)
+- [#437](https://github.com/yargs/yargs/pull/437) standardize tests for .command() (@lrlna)
+
+### v4.3.0 (2016/3/12 14:19 +07:00)
+
+- [#432](https://github.com/yargs/yargs/pull/432) non-singleton version of yargs (@bcoe)
+- [#422, #425, #420] translations for number (@zkat, @rilut, @maxrimue, @watilde)
+- [#414](https://github.com/yargs/yargs/pull/414) all command options can be defined in module now (@nexdrew)
+
+### v4.2.0 (2016/2/22 11:02 +07:00)
+
+- [#395](https://github.com/yargs/yargs/pull/395) do not reset groups if they contain
+ global keys (@novemberborn)
+- [#393](https://github.com/yargs/yargs/pull/393) use sane default for usage strings (@nexdrew)
+- [#392](https://github.com/yargs/yargs/pull/392) resetting wrap() was causing layout issues
+ with commands (@nexdrew)
+- [#391](https://github.com/yargs/yargs/pull/391) commands were being added multiple times (@nexdrew)
+
+### v4.0.0 (2016/2/14 1:27 +07:00)
+
+- [#384](https://github.com/bcoe/yargs/pull/384) add new number type to yargs (@lrlna, @maxrimue)
+- [#382](https://github.com/bcoe/yargs/pull/382) pass error as extra parameter to fail (@gajus)
+- [#378](https://github.com/bcoe/yargs/pull/378) introduces the pkgConf feature, which tells
+ yargs to load default argument values from a key on a project's package.json (@bcoe)
+- [#376](https://github.com/bcoe/yargs/pull/376) **breaking change**, make help() method signature
+ more consistent with other commands (@maxrimue)
+- [#368](https://github.com/bcoe/yargs/pull/368) **breaking change**, overhaul to command handling API:
+ introducing named positional arguments, commands as modules, introduces the concept of global options (options that don't reset). (@nexdrew, @bcoe).
+- [#364](https://github.com/bcoe/yargs/pull/364) add the slick new yargs website to the package.json (@iarna).
+- [#357](https://github.com/bcoe/yargs/pull/357) .strict() now requires that a valid command is provided (@lrlna)
+- [#356](https://github.com/bcoe/yargs/pull/356) pull the parsing bits of yargs into the separate module yargs-parser. Various parsing options can now be turned on and off using configuration (@bcoe).
+- [#330](https://github.com/bcoe/yargs/pull/330) **breaking change**, fix inconsistencies with `.version()` API. (@maxrimue).
+
+### v3.32.0 (2016/1/14 10:13 +07:00)
+
+- [#344](https://github.com/bcoe/yargs/pull/344) yargs now has a code of conduct and contributor guidelines (@bcoe)
+- [#341](https://github.com/bcoe/yargs/issues/341) Fix edge-case with camel-case arguments (@davibe)
+- [#331](https://github.com/bcoe/yargs/pull/331) Handle parsing a raw argument string (@kellyselden)
+- [#325](https://github.com/bcoe/yargs/pull/325) Tweaks to make tests pass again on Windows (@isaacs)
+- [#321](https://github.com/bcoe/yargs/pull/321) Custom config parsing function (@bcoe)
+
+### v3.31.0 (2015/12/03 10:15 +07:00)
+
+- [#239](https://github.com/bcoe/yargs/pull/239) Pass argv to commands (@bcoe)
+- [#308](https://github.com/bcoe/yargs/pull/308) Yargs now handles environment variables (@nexdrew)
+- [#302](https://github.com/bcoe/yargs/pull/302) Add Indonesian translation (@rilut)
+- [#300](https://github.com/bcoe/yargs/pull/300) Add Turkish translation (@feyzo)
+- [#298](https://github.com/bcoe/yargs/pull/298) Add Norwegian BokmaĢŠl translation (@sindresorhus)
+- [#297](https://github.com/bcoe/yargs/pull/297) Fix for layout of cjk characters (@disjukr)
+- [#296](https://github.com/bcoe/yargs/pull/296) Add Korean translation (@disjukr)
+
+### v3.30.0 (2015/11/13 16:29 +07:00)
+
+- [#293](https://github.com/bcoe/yargs/pull/293) Polish language support (@kamilogorek)
+- [#291](https://github.com/bcoe/yargs/pull/291) fix edge-cases with `.alias()` (@bcoe)
+- [#289](https://github.com/bcoe/yargs/pull/289) group options in custom groups (@bcoe)
+
+### v3.29.0 (2015/10/16 21:51 +07:00)
+
+- [#282](https://github.com/bcoe/yargs/pull/282) completions now accept promises (@LinusU)
+- [#281](https://github.com/bcoe/yargs/pull/281) fix parsing issues with dot notation (@bcoe)
+
+### v3.28.0 (2015/10/16 1:55 +07:00)
+
+- [#277](https://github.com/bcoe/yargs/pull/277) adds support for ansi escape codes (@bcoe)
+
+### v3.27.0 (2015/10/08 1:55 +00:00)
+
+- [#271](https://github.com/bcoe/yargs/pull/273) skips validation for help or version flags with exitProcess(false) (@tepez)
+- [#273](https://github.com/bcoe/yargs/pull/273) implements single output for errors with exitProcess(false) (@nexdrew)
+- [#269](https://github.com/bcoe/yargs/pull/269) verifies single output for errors with exitProcess(false) (@tepez)
+- [#268](https://github.com/bcoe/yargs/pull/268) adds Chinese translation (@qiu8310)
+- [#266](https://github.com/bcoe/yargs/pull/266) adds case for -- after -- in parser test (@geophree)
+
+### v3.26.0 (2015/09/25 2:14 +00:00)
+
+- [#263](https://github.com/bcoe/yargs/pull/263) document count() and option() object keys (@nexdrew)
+- [#259](https://github.com/bcoe/yargs/pull/259) remove util in readme (@38elements)
+- [#258](https://github.com/bcoe/yargs/pull/258) node v4 builds, update deps (@nexdrew)
+- [#257](https://github.com/bcoe/yargs/pull/257) fix spelling errors (@dkoleary88)
+
+### v3.25.0 (2015/09/13 7:38 -07:00)
+
+- [#254](https://github.com/bcoe/yargs/pull/254) adds Japanese translation (@oti)
+- [#253](https://github.com/bcoe/yargs/pull/253) fixes for tests on Windows (@bcoe)
+
+### v3.24.0 (2015/09/04 12:02 +00:00)
+
+- [#248](https://github.com/bcoe/yargs/pull/248) reinstate os-locale, no spawning (@nexdrew)
+- [#249](https://github.com/bcoe/yargs/pull/249) use travis container-based infrastructure (@nexdrew)
+- [#247](https://github.com/bcoe/yargs/pull/247) upgrade standard (@nexdrew)
+
+### v3.23.0 (2015/08/30 23:00 +00:00)
+
+- [#246](https://github.com/bcoe/yargs/pull/246) detect locale based only on environment variables (@bcoe)
+- [#244](https://github.com/bcoe/yargs/pull/244) adds Windows CI testing (@bcoe)
+- [#245](https://github.com/bcoe/yargs/pull/245) adds OSX CI testing (@bcoe, @nexdrew)
+
+### v3.22.0 (2015/08/28 22:26 +00:00)
+- [#242](https://github.com/bcoe/yargs/pull/242) adds detectLocale config option (@bcoe)
+
+### v3.21.1 (2015/08/28 20:58 +00:00)
+- [#240](https://github.com/bcoe/yargs/pull/240) hot-fix for Atom on Windows (@bcoe)
+
+### v3.21.0 (2015/08/21 21:20 +00:00)
+- [#238](https://github.com/bcoe/yargs/pull/238) upgrade camelcase, window-size, chai, mocha (@nexdrew)
+- [#237](https://github.com/bcoe/yargs/pull/237) adds defaultDescription to option() (@nexdrew)
+
+### v3.20.0 (2015/08/20 01:29 +00:00)
+- [#231](https://github.com/bcoe/yargs/pull/231) Merge pull request #231 from bcoe/detect-locale (@sindresorhus)
+- [#235](https://github.com/bcoe/yargs/pull/235) adds german translation to yargs (@maxrimue)
+
+### v3.19.0 (2015/08/14 05:12 +00:00)
+- [#224](https://github.com/bcoe/yargs/pull/224) added Portuguese translation (@codemonkey3045)
+
+### v3.18.1 (2015/08/12 05:53 +00:00)
+
+- [#228](https://github.com/bcoe/yargs/pull/228) notes about embedding yargs in Electron (@etiktin)
+- [#223](https://github.com/bcoe/yargs/pull/223) make booleans work in config files (@sgentle)
+
+### v3.18.0 (2015/08/06 20:05 +00:00)
+- [#222](https://github.com/bcoe/yargs/pull/222) updates fr locale (@nexdrew)
+- [#221](https://github.com/bcoe/yargs/pull/221) adds missing locale strings (@nexdrew)
+- [#220](https://github.com/bcoe/yargs/pull/220) adds es locale (@zkat)
+
+### v3.17.1 (2015/08/02 19:35 +00:00)
+- [#218](https://github.com/bcoe/yargs/pull/218) upgrades nyc (@bcoe)
+
+### v3.17.0 (2015/08/02 18:39 +00:00)
+- [#217](https://github.com/bcoe/yargs/pull/217) sort methods in README.md (@nexdrew)
+- [#215](https://github.com/bcoe/yargs/pull/215) adds fr locale (@LoicMahieu)
+
+### v3.16.0 (2015/07/30 04:35 +00:00)
+- [#210](https://github.com/bcoe/yargs/pull/210) adds i18n support to yargs (@bcoe)
+- [#209](https://github.com/bcoe/yargs/pull/209) adds choices type to yargs (@nexdrew)
+- [#207](https://github.com/bcoe/yargs/pull/207) pretty new shields from shields.io (@SimenB)
+- [#208](https://github.com/bcoe/yargs/pull/208) improvements to README.md (@nexdrew)
+- [#205](https://github.com/bcoe/yargs/pull/205) faster build times on Travis (@ChristianMurphy)
+
+### v3.15.0 (2015/07/06 06:01 +00:00)
+- [#197](https://github.com/bcoe/yargs/pull/197) tweaks to how errors bubble up from parser.js (@bcoe)
+- [#193](https://github.com/bcoe/yargs/pull/193) upgraded nyc, reporting now happens by default (@bcoe)
+
+### v3.14.0 (2015/06/28 02:12 +00:00)
+
+- [#192](https://github.com/bcoe/yargs/pull/192) standard style nits (@bcoe)
+- [#190](https://github.com/bcoe/yargs/pull/190) allow for hidden commands, e.g.,
+ .completion('completion', false) (@tschaub)
+
+### v3.13.0 (2015/06/24 04:12 +00:00)
+
+- [#187](https://github.com/bcoe/yargs/pull/187) completion now behaves differently
+ if it is being run in the context of a command (@tschaub)
+- [#186](https://github.com/bcoe/yargs/pull/186) if no matches are found for a completion
+ default to filename completion (@tschaub)
+
+### v3.12.0 (2015/06/19 03:23 +00:00)
+- [#183](https://github.com/bcoe/yargs/pull/183) don't complete commands if they've already been completed (@tschaub)
+- [#181](https://github.com/bcoe/yargs/pull/181) various fixes for completion. (@bcoe, @tschaub)
+- [#182](https://github.com/bcoe/yargs/pull/182) you can now set a maximum # of of required arguments (@bcoe)
+
+### v3.11.0 (2015/06/15 05:15 +00:00)
+
+- [#173](https://github.com/bcoe/yargs/pull/173) update standard, window-size, chai (@bcoe)
+- [#171](https://github.com/bcoe/yargs/pull/171) a description can now be set
+ when providing a config option. (@5c077yP)
+
+### v3.10.0 (2015/05/29 04:25 +00:00)
+
+- [#165](https://github.com/bcoe/yargs/pull/165) expose yargs.terminalWidth() thanks @ensonic (@bcoe)
+- [#164](https://github.com/bcoe/yargs/pull/164) better array handling thanks @getify (@bcoe)
+
+### v3.9.1 (2015/05/20 05:14 +00:00)
+- [b6662b6](https://github.com/bcoe/yargs/commit/b6662b6774cfeab4876f41ec5e2f67b7698f4e2f) clarify .config() docs (@linclark)
+- [0291360](https://github.com/bcoe/yargs/commit/02913606285ce31ce81d7f12c48d8a3029776ec7) fixed tests, switched to nyc for coverage, fixed security issue, added Lin as collaborator (@bcoe)
+
+### v3.9.0 (2015/05/10 18:32 +00:00)
+- [#157](https://github.com/bcoe/yargs/pull/157) Merge pull request #157 from bcoe/command-yargs. allows handling of command specific arguments. Thanks for the suggestion @ohjames (@bcoe)
+- [#158](https://github.com/bcoe/yargs/pull/158) Merge pull request #158 from kemitchell/spdx-license. Update license format (@kemitchell)
+
+### v3.8.0 (2015/04/24 23:10 +00:00)
+- [#154](https://github.com/bcoe/yargs/pull/154) showHelp's method signature was misleading fixes #153 (@bcoe)
+- [#151](https://github.com/bcoe/yargs/pull/151) refactor yargs' table layout logic to use new helper library (@bcoe)
+- [#150](https://github.com/bcoe/yargs/pull/150) Fix README example in argument requirements (@annonymouse)
+
+### v3.7.2 (2015/04/13 11:52 -07:00)
+
+* [679fbbf](https://github.com/bcoe/yargs/commit/679fbbf55904030ccee8a2635e8e5f46551ab2f0) updated yargs to use the [standard](https://github.com/feross/standard) style guide (agokjr)
+* [22382ee](https://github.com/bcoe/yargs/commit/22382ee9f5b495bc2586c1758cd1091cec3647f9 various bug fixes for $0 (@nylen)
+
+### v3.7.1 (2015/04/10 11:06 -07:00)
+
+* [89e1992](https://github.com/bcoe/yargs/commit/89e1992a004ba73609b5f9ee6890c4060857aba4) detect iojs bin along with node bin. (@bcoe)
+* [755509e](https://github.com/bcoe/yargs/commit/755509ea90041e5f7833bba3b8c5deffe56f0aab) improvements to example documentation in README.md (@rstacruz)
+* [0d2dfc8](https://github.com/bcoe/yargs/commit/0d2dfc822a43418242908ad97ddd5291a1b35dc6) showHelp() no longer requires that .argv has been called (@bcoe)
+
+### v3.7.0 (2015/04/04 02:29 -07:00)
+
+* [56cbe2d](https://github.com/bcoe/yargs/commit/56cbe2ddd33dc176dcbf97ba40559864a9f114e4) make .requiresArg() work with type hints. (@bcoe).
+* [2f5d562](https://github.com/bcoe/yargs/commit/2f5d5624f736741deeedf6a664d57bc4d857bdd0) serialize arrays and objects in usage strings. (@bcoe).
+* [5126304](https://github.com/bcoe/yargs/commit/5126304dd18351fc28f10530616fdd9361e0af98) be more lenient about alias/primary key ordering in chaining API. (@bcoe)
+
+### v3.6.0 (2015/03/21 01:00 +00:00)
+- [4e24e22](https://github.com/bcoe/yargs/commit/4e24e22e6a195e55ab943ede704a0231ac33b99c) support for .js configuration files. (@pirxpilot)
+
+### v3.5.4 (2015/03/12 05:56 +00:00)
+- [c16cc08](https://github.com/bcoe/yargs/commit/c16cc085501155cf7fd853ccdf8584b05ab92b78) message for non-option arguments is now optional, thanks to (@raine)
+
+### v3.5.3 (2015/03/09 06:14 +00:00)
+- [870b428](https://github.com/bcoe/yargs/commit/870b428cf515d560926ca392555b7ad57dba9e3d) completion script was missing in package.json (@bcoe)
+
+### v3.5.2 (2015/03/09 06:11 +00:00)
+- [58a4b24](https://github.com/bcoe/yargs/commit/58a4b2473ebbb326713d522be53e32d3aabb08d2) parse was being called multiple times, resulting in strange behavior (@bcoe)
+
+### v3.5.1 (2015/03/09 04:55 +00:00)
+- [4e588e0](https://github.com/bcoe/yargs/commit/4e588e055afbeb9336533095f051496e3977f515) accidentally left testing logic in (@bcoe)
+
+### v3.5.0 (2015/03/09 04:49 +00:00)
+- [718bacd](https://github.com/bcoe/yargs/commit/718bacd81b9b44f786af76b2afe491fe06274f19) added support for bash completions see #4 (@bcoe)
+- [a192882](https://github.com/bcoe/yargs/commit/a19288270fc431396c42af01125eeb4443664528) downgrade to mocha 2.1.0 until https://github.com/mochajs/mocha/issues/1585 can be sorted out (@bcoe)
+
+### v3.4.7 (2015/03/09 04:09 +00:00)
+- [9845e5c](https://github.com/bcoe/yargs/commit/9845e5c1a9c684ba0be3f0bfb40e7b62ab49d9c8) the Argv singleton was not being updated when manually parsing arguments, fixes #114 (@bcoe)
+
+### v3.4.6 (2015/03/09 04:01 +00:00)
+- [45b4c80](https://github.com/bcoe/yargs/commit/45b4c80b890d02770b0a94f326695a8a566e8fe9) set placeholders for all keys fixes #115 (@bcoe)
+
+### v3.4.5 (2015/03/01 20:31 +00:00)
+- [a758e0b](https://github.com/bcoe/yargs/commit/a758e0b2556184f067cf3d9c4ef886d39817ebd2) fix for count consuming too many arguments (@bcoe)
+
+### v3.4.4 (2015/02/28 04:52 +00:00)
+- [0476af7](https://github.com/bcoe/yargs/commit/0476af757966acf980d998b45108221d4888cfcb) added nargs feature, allowing you to specify the number of arguments after an option (@bcoe)
+- [092477d](https://github.com/bcoe/yargs/commit/092477d7ab3efbf0ba11cede57f7d8cfc70b024f) updated README with full example of v3.0 API (@bcoe)
+
+### v3.3.3 (2015/02/28 04:23 +00:00)
+- [0c4b769](https://github.com/bcoe/yargs/commit/0c4b769516cd8d93a7c4e5e675628ae0049aa9a8) remove string dependency, which conflicted with other libraries see #106 (@bcoe)
+
+### v3.3.2 (2015/02/28 04:11 +00:00)
+- [2a98906](https://github.com/bcoe/yargs/commit/2a9890675821c0e7a12f146ce008b0562cb8ec9a) add $0 to epilog (@schnittstabil)
+
+### v3.3.1 (2015/02/24 03:28 +00:00)
+- [ad485ce](https://github.com/bcoe/yargs/commit/ad485ce748ebdfce25b88ef9d6e83d97a2f68987) fix for applying defaults to camel-case args (@bcoe)
+
+### v3.3.0 (2015/02/24 00:49 +00:00)
+- [8bfe36d](https://github.com/bcoe/yargs/commit/8bfe36d7fb0f93a799ea3f4c756a7467c320f8c0) fix and document restart() command, as a tool for building nested CLIs (@bcoe)
+
+### v3.2.1 (2015/02/22 05:45 +00:00)
+- [49a6d18](https://github.com/bcoe/yargs/commit/49a6d1822a4ef9b1ea6f90cc366be60912628885) you can now provide a function that generates a default value (@bcoe)
+
+### v3.2.0 (2015/02/22 05:24 +00:00)
+- [7a55886](https://github.com/bcoe/yargs/commit/7a55886c9343cf71a20744ca5cdd56d2ea7412d5) improvements to yargs two-column text layout (@bcoe)
+- [b6ab513](https://github.com/bcoe/yargs/commit/b6ab5136a4c3fa6aa496f6b6360382e403183989) Tweak NPM version badge (@nylen)
+
+### v3.1.0 (2015/02/19 19:37 +00:00)
+- [9bd2379](https://github.com/bcoe/yargs/commit/9bd237921cf1b61fd9f32c0e6d23f572fc225861) version now accepts a function, making it easy to load version #s from a package.json (@bcoe)
+
+### v3.0.4 (2015/02/14 01:40 +00:00)
+- [0b7c19b](https://github.com/bcoe/yargs/commit/0b7c19beaecb747267ca4cc10e5cb2a8550bc4b7) various fixes for dot-notation handling (@bcoe)
+
+### v3.0.3 (2015/02/14 00:59 +00:00)
+- [c3f35e9](https://github.com/bcoe/yargs/commit/c3f35e99bd5a0d278073fcadd95e2d778616cc17) make sure dot-notation is applied to aliases (@bcoe)
+
+### 3.0.2 (2015/02/13 16:50 +00:00)
+- [74c8967](https://github.com/bcoe/yargs/commit/74c8967c340c204a0a7edf8a702b6f46c2705435) document epilog shorthand of epilogue. (@bcoe)
+- [670110f](https://github.com/bcoe/yargs/commit/670110fc01bedc4831b6fec6afac54517d5a71bc) any non-truthy value now causes check to fail see #76 (@bcoe)
+- [0d8f791](https://github.com/bcoe/yargs/commit/0d8f791a33c11ced4cd431ea8d3d3a337d456b56) finished implementing my wish-list of fetures for yargs 3.0. see #88 (@bcoe)
+- [5768447](https://github.com/bcoe/yargs/commit/5768447447c4c8e8304f178846206ce86540f063) fix coverage. (@bcoe)
+- [82e793f](https://github.com/bcoe/yargs/commit/82e793f3f61c41259eaacb67f0796aea2cf2aaa0) detect console width and perform word-wrapping. (@bcoe)
+- [67476b3](https://github.com/bcoe/yargs/commit/67476b37eea07fee55f23f35b9e0c7d76682b86d) refactor two-column table layout so that we can use it for examples and usage (@bcoe)
+- [4724cdf](https://github.com/bcoe/yargs/commit/4724cdfcc8e37ae1ca3dcce9d762f476e9ef4bb4) major refactor of index.js, in prep for 3.x release. (@bcoe)
+
+### v2.3.0 (2015/02/08 20:41 +00:00)
+- [d824620](https://github.com/bcoe/yargs/commit/d824620493df4e63664af1fe320764dd1a9244e6) allow for undefined boolean defaults (@ashi009)
+
+### v2.2.0 (2015/02/08 20:07 +00:00)
+- [d6edd98](https://github.com/bcoe/yargs/commit/d6edd9848826e7389ed1393858c45d03961365fd) in-prep for further refactoring, and a 3.x release I've shuffled some things around and gotten test-coverage to 100%. (@bcoe)
+
+### v2.1.2 (2015/02/08 06:05 +00:00)
+- [d640745](https://github.com/bcoe/yargs/commit/d640745a7b9f8d476e0223879d056d18d9c265c4) switch to path.relative (@bcoe)
+- [3bfd41f](https://github.com/bcoe/yargs/commit/3bfd41ff262a041f29d828b88936a79c63cad594) remove mocha.opts. (@bcoe)
+- [47a2f35](https://github.com/bcoe/yargs/commit/47a2f357091db70903a402d6765501c1d63f15fe) document using .string('_') for string ids. see #56 (@bcoe)
+- [#57](https://github.com/bcoe/yargs/pull/57) Merge pull request #57 from eush77/option-readme (@eush77)
+
+### v2.1.1 (2015/02/06 08:08 +00:00)
+- [01c6c61](https://github.com/bcoe/yargs/commit/01c6c61d67b4ebf88f41f0b32a345ec67f0ac17d) fix for #71, 'newAliases' of undefined (@bcoe)
+
+### v2.1.0 (2015/02/06 07:59 +00:00)
+- [6a1a3fa](https://github.com/bcoe/yargs/commit/6a1a3fa731958e26ccd56885f183dd8985cc828f) try to guess argument types, and apply sensible defaults see #73 (@bcoe)
+
+### v2.0.1 (2015/02/06 07:54 +00:00)
+- [96a06b2](https://github.com/bcoe/yargs/commit/96a06b2650ff1d085a52b7328d8bba614c20cc12) Fix for strange behavior with --sort option, see #51 (@bcoe)
+
+### v2.0.0 (2015/02/06 07:45 +00:00)
+- [0250517](https://github.com/bcoe/yargs/commit/0250517c9643e53f431b824e8ccfa54937414011) - [108fb84](https://github.com/bcoe/yargs/commit/108fb8409a3a63dcaf99d917fe4dfcfaa1de236d) fixed bug with boolean parsing, when bools separated by = see #66 (@bcoe)
+- [a465a59](https://github.com/bcoe/yargs/commit/a465a5915f912715738de890982e4f8395958b10) Add `files` field to the package.json (@shinnn)
+- [31043de](https://github.com/bcoe/yargs/commit/31043de7a38a17c4c97711f1099f5fb164334db3) fix for yargs.argv having the same keys added multiple times see #63 (@bcoe)
+- [2d68c5b](https://github.com/bcoe/yargs/commit/2d68c5b91c976431001c4863ce47c9297850f1ad) Disable process.exit calls using .exitProcess(false) (@cianclarke)
+- [45da9ec](https://github.com/bcoe/yargs/commit/45da9ec4c55a7bd394721bc6a1db0dabad7bc52a) Mention .option in README (@eush77)
+
+### v1.3.2 (2014/10/06 21:56 +00:00)
+- [b8d3472](https://github.com/bcoe/yargs/commit/b8d34725482e5821a3cc809c0df71378f282f526) 1.3.2 (@chevex)
+
+### list (2014/08/30 18:41 +00:00)
+- [fbc777f](https://github.com/bcoe/yargs/commit/fbc777f416eeefd37c84e44d27d7dfc7c1925721) Now that yargs is the successor to optimist, I'm changing the README language to be more universal. Pirate speak isn't very accessible to non-native speakers. (@chevex)
+- [a54d068](https://github.com/bcoe/yargs/commit/a54d0682ae2efc2394d407ab171cc8a8bbd135ea) version output will not print extra newline (@boneskull)
+- [1cef5d6](https://github.com/bcoe/yargs/commit/1cef5d62a9d6d61a3948a49574892e01932cc6ae) Added contributors section to package.json (@chrisn)
+- [cc295c0](https://github.com/bcoe/yargs/commit/cc295c0a80a2de267e0155b60d315fc4b6f7c709) Added 'require' and 'required' as synonyms for 'demand' (@chrisn)
+- [d0bf951](https://github.com/bcoe/yargs/commit/d0bf951d949066b6280101ed606593d079ee15c8) Updating minimist. (@chevex)
+- [c15f8e7](https://github.com/bcoe/yargs/commit/c15f8e7f245b261e542cf205ce4f4313630cbdb4) Fix #31 (bad interaction between camelCase options and strict mode) (@nylen)
+- [d991b9b](https://github.com/bcoe/yargs/commit/d991b9be687a68812dee1e3b185ba64b7778b82d) Added .help() and .version() methods (@chrisn)
+- [e8c8aa4](https://github.com/bcoe/yargs/commit/e8c8aa46268379357cb11e9fc34b8c403037724b) Added .showHelpOnFail() method (@chrisn)
+- [e855af4](https://github.com/bcoe/yargs/commit/e855af4a933ea966b5bbdd3c4c6397a4bac1a053) Allow boolean flag with .demand() (@chrisn)
+- [14dbec2](https://github.com/bcoe/yargs/commit/14dbec24fb7380683198e2b20c4deb8423e64bea) Fixes issue #22. Arguments are no longer printed to the console when using .config. (@chevex)
+- [bef74fc](https://github.com/bcoe/yargs/commit/bef74fcddc1544598a804f80d0a3728459f196bf) Informing users that Yargs is the official optimist successor. (@chevex)
+- [#24](https://github.com/bcoe/yargs/pull/24) Merge pull request #24 from chrisn/strict (@chrisn)
+- [889a2b2](https://github.com/bcoe/yargs/commit/889a2b28eb9768801b05163360a470d0fd6c8b79) Added requiresArg option, for options that require values (@chrisn)
+- [eb16369](https://github.com/bcoe/yargs/commit/eb163692262be1fe80b992fd8803d5923c5a9b18) Added .strict() method, to report error if unknown arguments are given (@chrisn)
+- [0471c3f](https://github.com/bcoe/yargs/commit/0471c3fd999e1ad4e6cded88b8aa02013b66d14f) Changed optimist to yargs in usage-options.js example (@chrisn)
+- [5c88f74](https://github.com/bcoe/yargs/commit/5c88f74e3cf031b17c54b4b6606c83e485ff520e) Change optimist to yargs in examples (@chrisn)
+- [66f12c8](https://github.com/bcoe/yargs/commit/66f12c82ba3c943e4de8ca862980e835da8ecb3a) Fix a couple of bad interactions between aliases and defaults (@nylen)
+- [8fa1d80](https://github.com/bcoe/yargs/commit/8fa1d80f14b03eb1f2898863a61f1d1615bceb50) Document second argument of usage(message, opts) (@Gobie)
+- [56e6528](https://github.com/bcoe/yargs/commit/56e6528cf674ff70d63083fb044ff240f608448e) For "--some-option", also set argv.someOption (@nylen)
+- [ed5f6d3](https://github.com/bcoe/yargs/commit/ed5f6d33f57ad1086b11c91b51100f7c6c7fa8ee) Finished porting unit tests to Mocha. (@chevex)
+
+### v1.0.15 (2014/02/05 23:18 +00:00)
+- [e2b1fc0](https://github.com/bcoe/yargs/commit/e2b1fc0c4a59cf532ae9b01b275e1ef57eeb64d2) 1.0.15 update to badges (@chevex)
+
+### v1.0.14 (2014/02/05 23:17 +00:00)
+- [f33bbb0](https://github.com/bcoe/yargs/commit/f33bbb0f00fe18960f849cc8e15a7428a4cd59b8) Revert "Fixed issue which caused .demand function not to work correctly." (@chevex)
+
+### v1.0.13 (2014/02/05 22:13 +00:00)
+- [6509e5e](https://github.com/bcoe/yargs/commit/6509e5e7dee6ef1a1f60eea104be0faa1a045075) Fixed issue which caused .demand function not to work correctly. (@chevex)
+
+### v1.0.12 (2013/12/13 00:09 +00:00)
+- [05eb267](https://github.com/bcoe/yargs/commit/05eb26741c9ce446b33ff006e5d33221f53eaceb) 1.0.12 (@chevex)
+
+### v1.0.11 (2013/12/13 00:07 +00:00)
+- [c1bde46](https://github.com/bcoe/yargs/commit/c1bde46e37318a68b87d17a50c130c861d6ce4a9) 1.0.11 (@chevex)
+
+### v1.0.10 (2013/12/12 23:57 +00:00)
+- [dfebf81](https://github.com/bcoe/yargs/commit/dfebf8164c25c650701528ee581ca483a99dc21c) Fixed formatting in README (@chevex)
+
+### v1.0.9 (2013/12/12 23:47 +00:00)
+- [0b4e34a](https://github.com/bcoe/yargs/commit/0b4e34af5e6d84a9dbb3bb6d02cd87588031c182) Update README.md (@chevex)
+
+### v1.0.8 (2013/12/06 16:36 +00:00)
+- [#1](https://github.com/bcoe/yargs/pull/1) fix error caused by check() see #1 (@martinheidegger)
+
+### v1.0.7 (2013/11/24 18:01 +00:00)
+- [a247d88](https://github.com/bcoe/yargs/commit/a247d88d6e46644cbb7303c18b1bb678fc132d72) Modified Pirate Joe image. (@chevex)
+
+### v1.0.6 (2013/11/23 19:21 +00:00)
+- [d7f69e1](https://github.com/bcoe/yargs/commit/d7f69e1d34bc929736a8bdccdc724583e21b7eab) Updated Pirate Joe image. (@chevex)
+
+### v1.0.5 (2013/11/23 19:09 +00:00)
+- [ece809c](https://github.com/bcoe/yargs/commit/ece809cf317cc659175e1d66d87f3ca68c2760be) Updated readme notice again. (@chevex)
+
+### v1.0.4 (2013/11/23 19:05 +00:00)
+- [9e81e81](https://github.com/bcoe/yargs/commit/9e81e81654028f83ba86ffc3ac772a0476084e5e) Updated README with a notice about yargs being a fork of optimist and what that implies. (@chevex)
+
+### v1.0.3 (2013/11/23 17:43 +00:00)
+- [65e7a78](https://github.com/bcoe/yargs/commit/65e7a782c86764944d63d084416aba9ee6019c5f) Changed some small wording in README.md. (@chevex)
+- [459e20e](https://github.com/bcoe/yargs/commit/459e20e539b366b85128dd281ccd42221e96c7da) Fix a bug in the options function, when string and boolean options weren't applied to aliases. (@shockone)
+
+### v1.0.2 (2013/11/23 09:46 +00:00)
+- [3d80ebe](https://github.com/bcoe/yargs/commit/3d80ebed866d3799224b6f7d596247186a3898a9) 1.0.2 (@chevex)
+
+### v1.0.1 (2013/11/23 09:39 +00:00)
+- [f80ff36](https://github.com/bcoe/yargs/commit/f80ff3642d580d4b68bf9f5a94277481bd027142) Updated image. (@chevex)
+
+### v1.0.0 (2013/11/23 09:33 +00:00)
+- [54e31d5](https://github.com/bcoe/yargs/commit/54e31d505f820b80af13644e460894b320bf25a3) Rebranded from optimist to yargs in the spirit of the fork :D (@chevex)
+- [4ebb6c5](https://github.com/bcoe/yargs/commit/4ebb6c59f44787db7c24c5b8fe2680f01a23f498) Added documentation for demandCount(). (@chevex)
+- [4561ce6](https://github.com/bcoe/yargs/commit/4561ce66dcffa95f49e8b4449b25b94cd68acb25) Simplified the error messages returned by .check(). (@chevex)
+- [661c678](https://github.com/bcoe/yargs/commit/661c67886f479b16254a830b7e1db3be29e6b7a6) Fixed an issue with demand not accepting a zero value. (@chevex)
+- [731dd3c](https://github.com/bcoe/yargs/commit/731dd3c37624790490bd6df4d5f1da8f4348279e) Add .fail(fn) so death isn't the only option. Should fix issue #39. (@chevex)
+- [fa15417](https://github.com/bcoe/yargs/commit/fa15417ff9e70dace0d726627a5818654824c1d8) Added a few missing 'return self' (@chevex)
+- [e655e4d](https://github.com/bcoe/yargs/commit/e655e4d99d1ae1d3695ef755d51c2de08d669761) Fix showing help in certain JS environments. (@chevex)
+- [a746a31](https://github.com/bcoe/yargs/commit/a746a31cd47c87327028e6ea33762d6187ec5c87) Better string representation of default values. (@chevex)
+- [6134619](https://github.com/bcoe/yargs/commit/6134619a7e90b911d5443230b644c5d447c1a68c) Implies: conditional demands (@chevex)
+- [046b93b](https://github.com/bcoe/yargs/commit/046b93b5d40a27367af4cb29726e4d781d934639) Added support for JSON config files. (@chevex)
+- [a677ec0](https://github.com/bcoe/yargs/commit/a677ec0a0ecccd99c75e571d03323f950688da03) Add .example(cmd, desc) feature. (@chevex)
+- [1bd4375](https://github.com/bcoe/yargs/commit/1bd4375e11327ba1687d4bb6e5e9f3c30c1be2af) Added 'defaults' as alias to 'default' so as to avoid usage of a reserved keyword. (@chevex)
+- [6b753c1](https://github.com/bcoe/yargs/commit/6b753c16ca09e723060e70b773b430323b29c45c) add .normalize(args..) support for normalizing paths (@chevex)
+- [33d7d59](https://github.com/bcoe/yargs/commit/33d7d59341d364f03d3a25f0a55cb99004dbbe4b) Customize error messages with demand(key, msg) (@chevex)
+- [647d37f](https://github.com/bcoe/yargs/commit/647d37f164c20f4bafbf67dd9db6cd6e2cd3b49f) Merge branch 'rewrite-duplicate-test' of github.com:isbadawi/node-optimist (@chevex)
+- [9059d1a](https://github.com/bcoe/yargs/commit/9059d1ad5e8aea686c2a01c89a23efdf929fff2e) Pass aliases object to check functions for greater versatility. (@chevex)
+- [623dc26](https://github.com/bcoe/yargs/commit/623dc26c7331abff2465ef8532e3418996d42fe6) Added ability to count boolean options and rolled minimist library back into project. (@chevex)
+- [49f0dce](https://github.com/bcoe/yargs/commit/49f0dcef35de4db544c3966350d36eb5838703f6) Fixed small typo. (@chevex)
+- [79ec980](https://github.com/bcoe/yargs/commit/79ec9806d9ca6eb0014cfa4b6d1849f4f004baf2) Removed dependency on wordwrap module. (@chevex)
+- [ea14630](https://github.com/bcoe/yargs/commit/ea14630feddd69d1de99dd8c0e08948f4c91f00a) Merge branch 'master' of github.com:chbrown/node-optimist (@chevex)
+- [2b75da2](https://github.com/bcoe/yargs/commit/2b75da2624061e0f4f3107d20303c06ec9054906) Merge branch 'master' of github.com:seanzhou1023/node-optimist (@chevex)
+- [d9bda11](https://github.com/bcoe/yargs/commit/d9bda1116e26f3b40e833ca9ca19263afea53565) Merge branch 'patch-1' of github.com:thefourtheye/node-optimist (@chevex)
+- [d6cc606](https://github.com/bcoe/yargs/commit/d6cc6064a4f1bea38a16a4430b8a1334832fbeff) Renamed README. (@chevex)
+- [9498d3f](https://github.com/bcoe/yargs/commit/9498d3f59acfb5e102826503e681623c3a64b178) Renamed readme and added .gitignore. (@chevex)
+- [bbd1fe3](https://github.com/bcoe/yargs/commit/bbd1fe37fefa366dde0fb3dc44d91fe8b28f57f5) Included examples for ```help``` and ```showHelp``` functions and fixed few formatting issues (@thefourtheye)
+- [37fea04](https://github.com/bcoe/yargs/commit/37fea0470a5796a0294c1dcfff68d8041650e622) .alias({}) behaves differently based on mapping direction when generating descriptions (@chbrown)
+- [855b20d](https://github.com/bcoe/yargs/commit/855b20d0be567ca121d06b30bea64001b74f3d6d) Documented function signatures are useful for dynamically typed languages. (@chbrown)
+
+### 0.6.0 (2013/06/25 08:48 +00:00)
+- [d37bfe0](https://github.com/bcoe/yargs/commit/d37bfe05ae6d295a0ab481efe4881222412791f4) all tests passing using minimist (@substack)
+- [76f1352](https://github.com/bcoe/yargs/commit/76f135270399d01f2bbc621e524a5966e5c422fd) all parse tests now passing (@substack)
+- [a7b6754](https://github.com/bcoe/yargs/commit/a7b6754276c38d1565479a5685c3781aeb947816) using minimist, some tests passing (@substack)
+- [6655688](https://github.com/bcoe/yargs/commit/66556882aa731cbbbe16cc4d42c85740a2e98099) Give credit where its due (@DeadAlready)
+- [602a2a9](https://github.com/bcoe/yargs/commit/602a2a92a459f93704794ad51b115bbb08b535ce) v0.5.3 - Remove wordwrap as dependency (@DeadAlready)
+
+### 0.5.2 (2013/05/31 03:46 +00:00)
+- [4497ca5](https://github.com/bcoe/yargs/commit/4497ca55e332760a37b866ec119ded347ca27a87) fixed the whitespace bug without breaking anything else (@substack)
+- [5a3dd1a](https://github.com/bcoe/yargs/commit/5a3dd1a4e0211a38613c6e02f61328e1031953fa) failing test for whitespace arg (@substack)
+
+### 0.5.1 (2013/05/30 07:17 +00:00)
+- [a20228f](https://github.com/bcoe/yargs/commit/a20228f62a454755dd07f628a7c5759113918327) fix parse() to work with functions before it (@substack)
+- [b13bd4c](https://github.com/bcoe/yargs/commit/b13bd4cac856a9821d42fa173bdb58f089365a7d) failing test for parse() with modifiers (@substack)
+
+### 0.5.0 (2013/05/18 21:59 +00:00)
+- [c474a64](https://github.com/bcoe/yargs/commit/c474a649231527915c222156e3b40806d365a87c) fixes for dash (@substack)
+
+### 0.4.0 (2013/04/13 19:03 +00:00)
+- [dafe3e1](https://github.com/bcoe/yargs/commit/dafe3e18d7c6e7c2d68e06559df0e5cbea3adb14) failing short test (@substack)
+
+### 0.3.7 (2013/04/04 04:07 +00:00)
+- [6c7a0ec](https://github.com/bcoe/yargs/commit/6c7a0ec94ce4199a505f0518b4d6635d4e47cc81) Fix for windows. On windows there is no _ in environment. (@hdf)
+
+### 0.3.6 (2013/04/04 04:04 +00:00)
+- [e72346a](https://github.com/bcoe/yargs/commit/e72346a727b7267af5aa008b418db89970873f05) Add support for newlines in -a="" arguments (@danielbeardsley)
+- [71e1fb5](https://github.com/bcoe/yargs/commit/71e1fb55ea9987110a669ac6ec12338cfff3821c) drop 0.4, add 0.8 to travis (@substack)
+
+### 0.3.5 (2012/10/10 11:09 +00:00)
+- [ee692b3](https://github.com/bcoe/yargs/commit/ee692b37554c70a0bb16389a50a26b66745cbbea) Fix parsing booleans (@vojtajina)
+- [5045122](https://github.com/bcoe/yargs/commit/5045122664c3f5b4805addf1be2148d5856f7ce8) set $0 properly in the tests (@substack)
+
+### 0.3.4 (2012/04/30 06:54 +00:00)
+- [f28c0e6](https://github.com/bcoe/yargs/commit/f28c0e62ca94f6e0bb2e6d82fc3d91a55e69b903) bump for string "true" params (@substack)
+- [8f44aeb](https://github.com/bcoe/yargs/commit/8f44aeb74121ddd689580e2bf74ef86a605e9bf2) Fix failing test for aliased booleans. (@coderarity)
+- [b9f7b61](https://github.com/bcoe/yargs/commit/b9f7b613b1e68e11e6c23fbda9e555a517dcc976) Add failing test for short aliased booleans. (@coderarity)
+
+### 0.3.3 (2012/04/30 06:45 +00:00)
+- [541bac8](https://github.com/bcoe/yargs/commit/541bac8dd787a5f1a5d28f6d8deb1627871705e7) Fixes #37.
+
+### 0.3.2 (2012/04/12 20:28 +00:00)
+- [3a0f014](https://github.com/bcoe/yargs/commit/3a0f014c1451280ac1c9caa1f639d31675586eec) travis badge (@substack)
+- [4fb60bf](https://github.com/bcoe/yargs/commit/4fb60bf17845f4ce3293f8ca49c9a1a7c736cfce) Fix boolean aliases. (@coderarity)
+- [f14dda5](https://github.com/bcoe/yargs/commit/f14dda546efc4fe06ace04d36919bfbb7634f79b) Adjusted package.json to use tap (@jfhbrook)
+- [88e5d32](https://github.com/bcoe/yargs/commit/88e5d32295be6e544c8d355ff84e355af38a1c74) test/usage.js no longer hangs (@jfhbrook)
+- [e1e740c](https://github.com/bcoe/yargs/commit/e1e740c27082f3ce84deca2093d9db2ef735d0e5) two tests for combined boolean/alias opts parsing (@jfhbrook)
+
+### 0.3.1 (2011/12/31 08:44 +00:00)
+- [d09b719](https://github.com/bcoe/yargs/commit/d09b71980ef711b6cf3918cd19beec8257e40e82) If "default" is set to false it was not passed on, fixed. (@wolframkriesing)
+
+### 0.3.0 (2011/12/09 06:03 +00:00)
+- [6e74aa7](https://github.com/bcoe/yargs/commit/6e74aa7b46a65773e20c0cb68d2d336d4a0d553d) bump and documented dot notation (@substack)
+
+### 0.2.7 (2011/10/20 02:25 +00:00)
+- [94adee2](https://github.com/bcoe/yargs/commit/94adee20e17b58d0836f80e8b9cdbe9813800916) argv._ can be told 'Hey! argv._! Don't be messing with my args.', and it WILL obey (@colinta)
+- [c46fdd5](https://github.com/bcoe/yargs/commit/c46fdd56a05410ae4a1e724a4820c82e77ff5469) optimistic critter image (@substack)
+- [5c95c73](https://github.com/bcoe/yargs/commit/5c95c73aedf4c7482bd423e10c545e86d7c8a125) alias options() to option() (@substack)
+- [f7692ea](https://github.com/bcoe/yargs/commit/f7692ea8da342850af819367833abb685fde41d8) [fix] Fix for parsing boolean edge case (@indexzero)
+- [d1f92d1](https://github.com/bcoe/yargs/commit/d1f92d1425bd7f356055e78621b30cdf9741a3c2)
+- [b01bda8](https://github.com/bcoe/yargs/commit/b01bda8d86e455bbf74ce497864cb8ab5b9fb847) [fix test] Update to ensure optimist is aware of default booleans. Associated tests included (@indexzero)
+- [aa753e7](https://github.com/bcoe/yargs/commit/aa753e7c54fb3a12f513769a0ff6d54aa0f63943) [dist test] Update devDependencies in package.json. Update test pathing to be more npm and require.paths future-proof (@indexzero)
+- [7bfce2f](https://github.com/bcoe/yargs/commit/7bfce2f3b3c98e6539e7549d35fbabced7e9341e) s/sys/util/ (@substack)
+- [d420a7a](https://github.com/bcoe/yargs/commit/d420a7a9c890d2cdb11acfaf3ea3f43bc3e39f41) update usage output (@substack)
+- [cf86eed](https://github.com/bcoe/yargs/commit/cf86eede2e5fc7495b6ec15e6d137d9ac814f075) some sage readme protips about parsing rules (@substack)
+- [5da9f7a](https://github.com/bcoe/yargs/commit/5da9f7a5c0e1758ec7c5801fb3e94d3f6e970513) documented all the methods finally (@substack)
+- [8ca6879](https://github.com/bcoe/yargs/commit/8ca6879311224b25933642987300f6a29de5c21b) fenced syntax highlighting (@substack)
+- [b72bacf](https://github.com/bcoe/yargs/commit/b72bacf1d02594778c1935405bc8137eb61761dc) right-alignment of wrapped extra params (@substack)
+- [2b980bf](https://github.com/bcoe/yargs/commit/2b980bf2656b4ee8fc5134dc5f56a48855c35198) now with .wrap() (@substack)
+- [d614f63](https://github.com/bcoe/yargs/commit/d614f639654057d1b7e35e3f5a306e88ec2ad1e4) don't show 'Options:' when there aren't any (@substack)
+- [691eda3](https://github.com/bcoe/yargs/commit/691eda354df97b5a86168317abcbcaabdc08a0fb) failing test for multi-aliasing (@substack)
+- [0826c9f](https://github.com/bcoe/yargs/commit/0826c9f462109feab2bc7a99346d22e72bf774b7) "Options:" > "options:" (@substack)
+- [72f7490](https://github.com/bcoe/yargs/commit/72f749025d01b7f295738ed370a669d885fbada0) [minor] Update formatting for `.showHelp()` (@indexzero)
+- [75aecce](https://github.com/bcoe/yargs/commit/75aeccea74329094072f95800e02c275e7d999aa) options works again, too lazy to write a proper test right now (@substack)
+- [f742e54](https://github.com/bcoe/yargs/commit/f742e5439817c662dc3bd8734ddd6467e6018cfd) line_count_options example, which breaks (@substack)
+- [4ca06b8](https://github.com/bcoe/yargs/commit/4ca06b8b4ea99b5d5714b315a2a8576bee6e5537) line count example (@substack)
+- [eeb8423](https://github.com/bcoe/yargs/commit/eeb8423e0a5ecc9dc3eb1e6df9f3f8c1c88f920b) remove self.argv setting in boolean (@substack)
+- [6903412](https://github.com/bcoe/yargs/commit/69034126804660af9cc20ea7f4457b50338ee3d7) removed camel case for now (@substack)
+- [5a0d88b](https://github.com/bcoe/yargs/commit/5a0d88bf23e9fa79635dd034e2a1aa992acc83cd) remove dead longest checking code (@substack)
+- [d782170](https://github.com/bcoe/yargs/commit/d782170babf7284b1aa34f5350df0dd49c373fa8) .help() too (@substack)
+- [622ec17](https://github.com/bcoe/yargs/commit/622ec17379bb5374fdbb190404c82bc600975791) rm old help generator (@substack)
+- [7c8baac](https://github.com/bcoe/yargs/commit/7c8baac4d66195e9f5158503ea9ebfb61153dab7) nub keys (@substack)
+- [8197785](https://github.com/bcoe/yargs/commit/8197785ad4762465084485b041abd722f69bf344) generate help message based on the previous calls, todo: nub (@substack)
+- [3ffbdc3](https://github.com/bcoe/yargs/commit/3ffbdc33c8f5e83d4ea2ac60575ce119570c7ede) stub out new showHelp, better checks (@substack)
+- [d4e21f5](https://github.com/bcoe/yargs/commit/d4e21f56a4830f7de841900d3c79756fb9886184) let .options() take single options too (@substack)
+- [3c4cf29](https://github.com/bcoe/yargs/commit/3c4cf2901a29bac119cca8e983028d8669230ec6) .options() is now heaps simpler (@substack)
+- [89f0d04](https://github.com/bcoe/yargs/commit/89f0d043cbccd302f10ab30c2069e05d2bf817c9) defaults work again, all tests pass (@substack)
+- [dd87333](https://github.com/bcoe/yargs/commit/dd8733365423006a6e4156372ebb55f98323af58) update test error messages, down to 2 failing tests (@substack)
+- [53f7bc6](https://github.com/bcoe/yargs/commit/53f7bc626b9875f2abdfc5dd7a80bde7f14143a3) fix for bools doubling up, passes the parse test again, others fail (@substack)
+- [2213e2d](https://github.com/bcoe/yargs/commit/2213e2ddc7263226fba717fb041dc3fde9bc2ee4) refactored for an argv getter, failing several tests (@substack)
+- [d1e7379](https://github.com/bcoe/yargs/commit/d1e737970f15c6c006bebdd8917706827ff2f0f2) just rescan for now, alias test passes (@substack)
+- [b2f8c99](https://github.com/bcoe/yargs/commit/b2f8c99cc477a8eb0fdf4cf178e1785b63185cfd) failing alias test (@substack)
+- [d0c0174](https://github.com/bcoe/yargs/commit/d0c0174daa144bfb6dc7290fdc448c393c475e15) .alias() (@substack)
+- [d85f431](https://github.com/bcoe/yargs/commit/d85f431ad7d07b058af3f2a57daa51495576c164) [api] Remove `.describe()` in favor of building upon the existing `.usage()` API (@indexzero)
+- [edbd527](https://github.com/bcoe/yargs/commit/edbd5272a8e213e71acd802782135c7f9699913a) [doc api] Add `.describe()`, `.options()`, and `.showHelp()` methods along with example. (@indexzero)
+- [be4902f](https://github.com/bcoe/yargs/commit/be4902ff0961ae8feb9093f2c0a4066463ded2cf) updates for coffee since it now does argv the node way (@substack)
+- [e24cb23](https://github.com/bcoe/yargs/commit/e24cb23798ee64e53b60815e7fda78b87f42390c) more general coffeescript detection (@substack)
+- [78ac753](https://github.com/bcoe/yargs/commit/78ac753e5d0ec32a96d39d893272afe989e42a4d) Don't trigger the CoffeeScript hack when running under node_g. (@papandreou)
+- [bcfe973](https://github.com/bcoe/yargs/commit/bcfe9731d7f90d4632281b8a52e8d76eb0195ae6) .string() but failing test (@substack)
+- [1987aca](https://github.com/bcoe/yargs/commit/1987aca28c7ba4e8796c07bbc547cb984804c826) test hex strings (@substack)
+- [ef36db3](https://github.com/bcoe/yargs/commit/ef36db32259b0b0d62448dc907c760e5554fb7e7) more keywords (@substack)
+- [cc53c56](https://github.com/bcoe/yargs/commit/cc53c56329960bed6ab077a79798e991711ba01d) Added camelCase function that converts --multi-word-option to camel case (so it becomes argv.multiWordOption). (@papandreou)
+- [60b57da](https://github.com/bcoe/yargs/commit/60b57da36797716e5783a633c6d5c79099016d45) fixed boolean bug by rescanning (@substack)
+- [dff6d07](https://github.com/bcoe/yargs/commit/dff6d078d97f8ac503c7d18dcc7b7a8c364c2883) boolean examples (@substack)
+- [0e380b9](https://github.com/bcoe/yargs/commit/0e380b92c4ef4e3c8dac1da18b5c31d85b1d02c9) boolean() with passing test (@substack)
+- [62644d4](https://github.com/bcoe/yargs/commit/62644d4bffbb8d1bbf0c2baf58a1d14a6359ef07) coffee compatibility with node regex for versions too (@substack)
+- [430fafc](https://github.com/bcoe/yargs/commit/430fafcf1683d23774772826581acff84b456827) argv._ fixed by fixing the coffee detection (@substack)
+- [343b8af](https://github.com/bcoe/yargs/commit/343b8afefd98af274ebe21b5a16b3a949ec5429f) whichNodeArgs test fails too (@substack)
+- [63df2f3](https://github.com/bcoe/yargs/commit/63df2f371f31e63d7f1dec2cbf0022a5f08da9d2) replicated mnot's bug in whichNodeEmpty test (@substack)
+- [35473a4](https://github.com/bcoe/yargs/commit/35473a4d93a45e5e7e512af8bb54ebb532997ae1) test for ./bin usage (@substack)
+- [13df151](https://github.com/bcoe/yargs/commit/13df151e44228eed10e5441c7cd163e086c458a4) don't coerce booleans to numbers (@substack)
+- [85f8007](https://github.com/bcoe/yargs/commit/85f8007e93b8be7124feea64b1f1916d8ba1894a) package bump for automatic number conversion (@substack)
+- [8f17014](https://github.com/bcoe/yargs/commit/8f170141cded4ccc0c6d67a849c5bf996aa29643) updated readme and examples with new auto-numberification goodness (@substack)
+- [73dc901](https://github.com/bcoe/yargs/commit/73dc9011ac968e39b55e19e916084a839391b506) auto number conversion works yay (@substack)
+- [bcec56b](https://github.com/bcoe/yargs/commit/bcec56b3d031e018064cbb691539ccc4f28c14ad) failing test for not-implemented auto numification (@substack)
+- [ebd2844](https://github.com/bcoe/yargs/commit/ebd2844d683feeac583df79af0e5124a7a7db04e) odd that eql doesn't check types careflly (@substack)
+- [fd854b0](https://github.com/bcoe/yargs/commit/fd854b02e512ce854b76386d395672a7969c1bc4) package author + keywords (@substack)
+- [656a1d5](https://github.com/bcoe/yargs/commit/656a1d5a1b7c0e49d72e80cb13f20671d56f76c6) updated readme with .default() stuff (@substack)
+- [cd7f8c5](https://github.com/bcoe/yargs/commit/cd7f8c55f0b82b79b690d14c5f806851236998a1) passing tests for new .default() behavior (@substack)
+- [932725e](https://github.com/bcoe/yargs/commit/932725e39ce65bc91a0385a5fab659a5fa976ac2) new default() thing for setting default key/values (@substack)
+- [4e6c7ab](https://github.com/bcoe/yargs/commit/4e6c7aba6374ac9ebc6259ecf91f13af7bce40e3) test for coffee usage (@substack)
+- [d54ffcc](https://github.com/bcoe/yargs/commit/d54ffccf2a5a905f51ed5108f7c647f35d64ae23) new --key value style with passing tests. NOTE: changes existing behavior (@substack)
+- [ed2a2d5](https://github.com/bcoe/yargs/commit/ed2a2d5d828100ebeef6385c0fb88d146a5cfe9b) package bump for summatix's coffee script fix (@substack)
+- [75a975e](https://github.com/bcoe/yargs/commit/75a975eed8430d28e2a79dc9e6d819ad545f4587) Added support for CoffeeScript (@summatix)
+- [56b2b1d](https://github.com/bcoe/yargs/commit/56b2b1de8d11f8a2b91979d8ae2d6db02d8fe64d) test coverage for the falsy check() usage (@substack)
+- [a4843a9](https://github.com/bcoe/yargs/commit/a4843a9f0e69ffb4afdf6a671d89eb6f218be35d) check bug fixed plus a handy string (@substack)
+- [857bd2d](https://github.com/bcoe/yargs/commit/857bd2db933a5aaa9cfecba0ced2dc9b415f8111) tests for demandCount, back up to 100% coverage (@substack)
+- [073b776](https://github.com/bcoe/yargs/commit/073b7768ebd781668ef05c13f9003aceca2f5c35) call demandCount from demand (@substack)
+- [4bd4b7a](https://github.com/bcoe/yargs/commit/4bd4b7a085c8b6ce1d885a0f486cc9865cee2db1) add demandCount to check for the number of arguments in the _ list (@marshall)
+- [b8689ac](https://github.com/bcoe/yargs/commit/b8689ac68dacf248119d242bba39a41cb0adfa07) Rebase checks. That will be its own module eventually. (@substack)
+- [e688370](https://github.com/bcoe/yargs/commit/e688370b576f0aa733c3f46183df69e1b561668e) a $0 like in perl (@substack)
+- [2e5e196](https://github.com/bcoe/yargs/commit/2e5e1960fc19afb21fb3293752316eaa8bcd3609) usage test hacking around process and console (@substack)
+- [fcc3521](https://github.com/bcoe/yargs/commit/fcc352163fbec6a1dfe8caf47a0df39de24fe016) description pun (@substack)
+- [87a1fe2](https://github.com/bcoe/yargs/commit/87a1fe29037ca2ca5fefda85141aaeb13e8ce761) mit/x11 license (@substack)
+- [8d089d2](https://github.com/bcoe/yargs/commit/8d089d24cd687c0bde3640a96c09b78f884900dd) bool example is more consistent and also shows off short option grouping (@substack)
+- [448d747](https://github.com/bcoe/yargs/commit/448d7473ac68e8e03d8befc9457b0d9e21725be0) start of the readme and examples (@substack)
+- [da74dea](https://github.com/bcoe/yargs/commit/da74dea799a9b59dbf022cbb8001bfdb0d52eec9) more tests for long and short captures (@substack)
+- [ab6387e](https://github.com/bcoe/yargs/commit/ab6387e6769ca4af82ca94c4c67c7319f0d9fcfa) silly bug in the tests with s/not/no/, all tests pass now (@substack)
+- [102496a](https://github.com/bcoe/yargs/commit/102496a319e8e06f6550d828fc2f72992c7d9ecc) hack an instance for process.argv onto Argv so the export can be called to create an instance or used for argv, which is the most common case (@substack)
+- [a01caeb](https://github.com/bcoe/yargs/commit/a01caeb532546d19f68f2b2b87f7036cfe1aaedd) divide example (@substack)
+- [443da55](https://github.com/bcoe/yargs/commit/443da55736acbaf8ff8b04d1b9ce19ab016ddda2) start of the lib with a package.json (@substack)
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/LICENSE b/deps/npm/node_modules/yargs/LICENSE
index 747ab114c9..747ab114c9 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/LICENSE
+++ b/deps/npm/node_modules/yargs/LICENSE
diff --git a/deps/npm/node_modules/yargs/README.md b/deps/npm/node_modules/yargs/README.md
new file mode 100644
index 0000000000..d16b82d177
--- /dev/null
+++ b/deps/npm/node_modules/yargs/README.md
@@ -0,0 +1,107 @@
+# Yargs
+
+[![Build Status][travis-image]][travis-url]
+[![Coverage Status][coveralls-image]][coveralls-url]
+[![NPM version][npm-image]][npm-url]
+[![Windows Tests][windows-image]][windows-url]
+[![js-standard-style][standard-image]][standard-url]
+[![Conventional Commits][conventional-commits-image]][conventional-commits-url]
+[![Slack][slack-image]][slack-url]
+
+_Having problems? want to contribute? join our [community slack](http://devtoolscommunity.herokuapp.com)_.
+
+> Yargs be a node.js library fer hearties tryin' ter parse optstrings.
+
+<img width="250" src="/yargs-logo.png">
+
+Yargs helps you build interactive command line tools, by parsing arguments and generating an elegant user interface. It gives you:
+
+* commands and (grouped) options (`my-program.js serve --port=5000`).
+* a dynamically generated help menu based on your arguments.
+
+> <img width="400" src="/screen.png">
+
+* bash-completion shortcuts for commands and options.
+* and [tons more](/docs/api.md).
+
+## Installation
+
+```bash
+npm i yargs --save
+```
+
+## Simple Example
+
+````javascript
+#!/usr/bin/env node
+const argv = require('yargs').argv
+
+if (argv.ships > 3 && argv.distance < 53.5) {
+ console.log('Plunder more riffiwobbles!')
+} else {
+ console.log('Retreat from the xupptumblers!')
+}
+````
+
+```bash
+$ ./plunder.js --ships=4 --distance=22
+Plunder more riffiwobbles!
+
+$ ./plunder.js --ships 12 --distance 98.7
+Retreat from the xupptumblers!
+```
+
+## Complex Example
+
+```js
+#!/usr/bin/env node
+require('yargs') // eslint-disable-line
+ .command('serve [port]', 'start the server', (yargs) => {
+ yargs
+ .positional('port', {
+ describe: 'port to bind on',
+ default: 5000
+ })
+ }, (argv) => {
+ if (argv.verbose) console.info(`start server on :${argv.port}`)
+ serve(argv.port)
+ })
+ .option('verbose', {
+ alias: 'v',
+ default: false
+ })
+ .argv
+```
+
+Run the example above with `--help` to see the help for the application.
+
+## Table of Contents
+
+* [Yargs' API](/docs/api.md)
+* [Examples](/docs/examples.md)
+* [Parsing Tricks](/docs/tricks.md)
+ * [Stop the Parser](/docs/tricks.md#stop)
+ * [Negating Boolean Arguments](/docs/tricks.md#negate)
+ * [Numbers](/docs/tricks.md#numbers)
+ * [Arrays](/docs/tricks.md#arrays)
+ * [Objects](/docs/tricks.md#objects)
+* [Advanced Topics](/docs/advanced.md)
+ * [Composing Your App Using Commands](/docs/advanced.md#commands)
+ * [Building Configurable CLI Apps](/docs/advanced.md#configuration)
+ * [Customizing Yargs' Parser](/docs/advanced.md#customizing)
+* [Contributing](/contributing.md)
+
+[travis-url]: https://travis-ci.org/yargs/yargs
+[travis-image]: https://img.shields.io/travis/yargs/yargs/master.svg
+[coveralls-url]: https://coveralls.io/github/yargs/yargs
+[coveralls-image]: https://img.shields.io/coveralls/yargs/yargs.svg
+[npm-url]: https://www.npmjs.com/package/yargs
+[npm-image]: https://img.shields.io/npm/v/yargs.svg
+[windows-url]: https://ci.appveyor.com/project/bcoe/yargs-ljwvf
+[windows-image]: https://img.shields.io/appveyor/ci/bcoe/yargs-ljwvf/master.svg?label=Windows%20Tests
+[standard-image]: https://img.shields.io/badge/code%20style-standard-brightgreen.svg
+[standard-url]: http://standardjs.com/
+[conventional-commits-image]: https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg
+[conventional-commits-url]: https://conventionalcommits.org/
+[slack-image]: http://devtoolscommunity.herokuapp.com/badge.svg
+[slack-url]: http://devtoolscommunity.herokuapp.com
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/completion.sh.hbs b/deps/npm/node_modules/yargs/completion.sh.hbs
index 14445b834e..819c8ae83a 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/completion.sh.hbs
+++ b/deps/npm/node_modules/yargs/completion.sh.hbs
@@ -2,8 +2,8 @@
#
# yargs command completion script
#
-# Installation: {{app_path}} completion >> ~/.bashrc
-# or {{app_path}} completion >> ~/.bash_profile on OSX.
+# Installation: {{app_path}} {{completion_command}} >> ~/.bashrc
+# or {{app_path}} {{completion_command}} >> ~/.bash_profile on OSX.
#
_yargs_completions()
{
diff --git a/deps/npm/node_modules/yargs/index.js b/deps/npm/node_modules/yargs/index.js
new file mode 100644
index 0000000000..dfed54bc51
--- /dev/null
+++ b/deps/npm/node_modules/yargs/index.js
@@ -0,0 +1,32 @@
+'use strict'
+// classic singleton yargs API, to use yargs
+// without running as a singleton do:
+// require('yargs/yargs')(process.argv.slice(2))
+const yargs = require('./yargs')
+
+Argv(process.argv.slice(2))
+
+module.exports = Argv
+
+function Argv (processArgs, cwd) {
+ const argv = yargs(processArgs, cwd, require)
+ singletonify(argv)
+ return argv
+}
+
+/* Hack an instance of Argv with process.argv into Argv
+ so people can do
+ require('yargs')(['--beeble=1','-z','zizzle']).argv
+ to parse a list of args and
+ require('yargs').argv
+ to get a parsed version of process.argv.
+*/
+function singletonify (inst) {
+ Object.keys(inst).forEach((key) => {
+ if (key === 'argv') {
+ Argv.__defineGetter__(key, inst.__lookupGetter__(key))
+ } else {
+ Argv[key] = typeof inst[key] === 'function' ? inst[key].bind(inst) : inst[key]
+ }
+ })
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/apply-extends.js b/deps/npm/node_modules/yargs/lib/apply-extends.js
index 5fc69fab16..3005848e3c 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/apply-extends.js
+++ b/deps/npm/node_modules/yargs/lib/apply-extends.js
@@ -1,13 +1,14 @@
-var fs = require('fs')
-var path = require('path')
-var assign = require('./assign')
-var YError = require('./yerror')
-var previouslyVisitedConfigs = []
+'use strict'
+const fs = require('fs')
+const path = require('path')
+const YError = require('./yerror')
+
+let previouslyVisitedConfigs = []
function checkForCircularExtends (path) {
if (previouslyVisitedConfigs.indexOf(path) > -1) {
- throw new YError("Circular extended configurations: '" + path + "'.")
+ throw new YError(`Circular extended configurations: '${path}'.`)
}
}
@@ -16,12 +17,12 @@ function getPathToDefaultConfig (cwd, pathToExtend) {
}
function applyExtends (config, cwd) {
- var defaultConfig = {}
+ let defaultConfig = {}
if (config.hasOwnProperty('extends')) {
if (typeof config.extends !== 'string') return defaultConfig
- var isPath = /\.json$/.test(config.extends)
- var pathToDefault = null
+ const isPath = /\.json$/.test(config.extends)
+ let pathToDefault = null
if (!isPath) {
try {
pathToDefault = require.resolve(config.extends)
@@ -46,7 +47,7 @@ function applyExtends (config, cwd) {
previouslyVisitedConfigs = []
- return assign(defaultConfig, config)
+ return Object.assign({}, defaultConfig, config)
}
module.exports = applyExtends
diff --git a/deps/npm/node_modules/yargs/lib/argsert.js b/deps/npm/node_modules/yargs/lib/argsert.js
new file mode 100644
index 0000000000..ed1d598713
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/argsert.js
@@ -0,0 +1,66 @@
+'use strict'
+const command = require('./command')()
+const YError = require('./yerror')
+
+const positionName = ['first', 'second', 'third', 'fourth', 'fifth', 'sixth']
+
+module.exports = function argsert (expected, callerArguments, length) {
+ // TODO: should this eventually raise an exception.
+ try {
+ // preface the argument description with "cmd", so
+ // that we can run it through yargs' command parser.
+ let position = 0
+ let parsed = {demanded: [], optional: []}
+ if (typeof expected === 'object') {
+ length = callerArguments
+ callerArguments = expected
+ } else {
+ parsed = command.parseCommand(`cmd ${expected}`)
+ }
+ const args = [].slice.call(callerArguments)
+
+ while (args.length && args[args.length - 1] === undefined) args.pop()
+ length = length || args.length
+
+ if (length < parsed.demanded.length) {
+ throw new YError(`Not enough arguments provided. Expected ${parsed.demanded.length} but received ${args.length}.`)
+ }
+
+ const totalCommands = parsed.demanded.length + parsed.optional.length
+ if (length > totalCommands) {
+ throw new YError(`Too many arguments provided. Expected max ${totalCommands} but received ${length}.`)
+ }
+
+ parsed.demanded.forEach((demanded) => {
+ const arg = args.shift()
+ const observedType = guessType(arg)
+ const matchingTypes = demanded.cmd.filter(type => type === observedType || type === '*')
+ if (matchingTypes.length === 0) argumentTypeError(observedType, demanded.cmd, position, false)
+ position += 1
+ })
+
+ parsed.optional.forEach((optional) => {
+ if (args.length === 0) return
+ const arg = args.shift()
+ const observedType = guessType(arg)
+ const matchingTypes = optional.cmd.filter(type => type === observedType || type === '*')
+ if (matchingTypes.length === 0) argumentTypeError(observedType, optional.cmd, position, true)
+ position += 1
+ })
+ } catch (err) {
+ console.warn(err.stack)
+ }
+}
+
+function guessType (arg) {
+ if (Array.isArray(arg)) {
+ return 'array'
+ } else if (arg === null) {
+ return 'null'
+ }
+ return typeof arg
+}
+
+function argumentTypeError (observedType, allowedTypes, position, optional) {
+ throw new YError(`Invalid ${positionName[position] || 'manyith'} argument. Expected ${allowedTypes.join(' or ')} but received ${observedType}.`)
+}
diff --git a/deps/npm/node_modules/yargs/lib/command.js b/deps/npm/node_modules/yargs/lib/command.js
new file mode 100644
index 0000000000..65322dbbdb
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/command.js
@@ -0,0 +1,426 @@
+'use strict'
+
+const inspect = require('util').inspect
+const path = require('path')
+const Parser = require('yargs-parser')
+
+const DEFAULT_MARKER = /(^\*)|(^\$0)/
+
+// handles parsing positional arguments,
+// and populating argv with said positional
+// arguments.
+module.exports = function command (yargs, usage, validation) {
+ const self = {}
+ let handlers = {}
+ let aliasMap = {}
+ let defaultCommand
+ self.addHandler = function addHandler (cmd, description, builder, handler, middlewares) {
+ let aliases = []
+ handler = handler || (() => {})
+ middlewares = middlewares || []
+ if (Array.isArray(cmd)) {
+ aliases = cmd.slice(1)
+ cmd = cmd[0]
+ } else if (typeof cmd === 'object') {
+ let command = (Array.isArray(cmd.command) || typeof cmd.command === 'string') ? cmd.command : moduleName(cmd)
+ if (cmd.aliases) command = [].concat(command).concat(cmd.aliases)
+ self.addHandler(command, extractDesc(cmd), cmd.builder, cmd.handler, cmd.middlewares)
+ return
+ }
+
+ // allow a module to be provided instead of separate builder and handler
+ if (typeof builder === 'object' && builder.builder && typeof builder.handler === 'function') {
+ self.addHandler([cmd].concat(aliases), description, builder.builder, builder.handler, builder.middlewares)
+ return
+ }
+
+ // parse positionals out of cmd string
+ const parsedCommand = self.parseCommand(cmd)
+
+ // remove positional args from aliases only
+ aliases = aliases.map(alias => self.parseCommand(alias).cmd)
+
+ // check for default and filter out '*''
+ let isDefault = false
+ const parsedAliases = [parsedCommand.cmd].concat(aliases).filter((c) => {
+ if (DEFAULT_MARKER.test(c)) {
+ isDefault = true
+ return false
+ }
+ return true
+ })
+
+ // standardize on $0 for default command.
+ if (parsedAliases.length === 0 && isDefault) parsedAliases.push('$0')
+
+ // shift cmd and aliases after filtering out '*'
+ if (isDefault) {
+ parsedCommand.cmd = parsedAliases[0]
+ aliases = parsedAliases.slice(1)
+ cmd = cmd.replace(DEFAULT_MARKER, parsedCommand.cmd)
+ }
+
+ // populate aliasMap
+ aliases.forEach((alias) => {
+ aliasMap[alias] = parsedCommand.cmd
+ })
+
+ if (description !== false) {
+ usage.command(cmd, description, isDefault, aliases)
+ }
+
+ handlers[parsedCommand.cmd] = {
+ original: cmd,
+ description: description,
+ handler,
+ builder: builder || {},
+ middlewares: middlewares || [],
+ demanded: parsedCommand.demanded,
+ optional: parsedCommand.optional
+ }
+
+ if (isDefault) defaultCommand = handlers[parsedCommand.cmd]
+ }
+
+ self.addDirectory = function addDirectory (dir, context, req, callerFile, opts) {
+ opts = opts || {}
+ // disable recursion to support nested directories of subcommands
+ if (typeof opts.recurse !== 'boolean') opts.recurse = false
+ // exclude 'json', 'coffee' from require-directory defaults
+ if (!Array.isArray(opts.extensions)) opts.extensions = ['js']
+ // allow consumer to define their own visitor function
+ const parentVisit = typeof opts.visit === 'function' ? opts.visit : o => o
+ // call addHandler via visitor function
+ opts.visit = function visit (obj, joined, filename) {
+ const visited = parentVisit(obj, joined, filename)
+ // allow consumer to skip modules with their own visitor
+ if (visited) {
+ // check for cyclic reference
+ // each command file path should only be seen once per execution
+ if (~context.files.indexOf(joined)) return visited
+ // keep track of visited files in context.files
+ context.files.push(joined)
+ self.addHandler(visited)
+ }
+ return visited
+ }
+ require('require-directory')({ require: req, filename: callerFile }, dir, opts)
+ }
+
+ // lookup module object from require()d command and derive name
+ // if module was not require()d and no name given, throw error
+ function moduleName (obj) {
+ const mod = require('which-module')(obj)
+ if (!mod) throw new Error(`No command name given for module: ${inspect(obj)}`)
+ return commandFromFilename(mod.filename)
+ }
+
+ // derive command name from filename
+ function commandFromFilename (filename) {
+ return path.basename(filename, path.extname(filename))
+ }
+
+ function extractDesc (obj) {
+ for (let keys = ['describe', 'description', 'desc'], i = 0, l = keys.length, test; i < l; i++) {
+ test = obj[keys[i]]
+ if (typeof test === 'string' || typeof test === 'boolean') return test
+ }
+ return false
+ }
+
+ self.parseCommand = function parseCommand (cmd) {
+ const extraSpacesStrippedCommand = cmd.replace(/\s{2,}/g, ' ')
+ const splitCommand = extraSpacesStrippedCommand.split(/\s+(?![^[]*]|[^<]*>)/)
+ const bregex = /\.*[\][<>]/g
+ const parsedCommand = {
+ cmd: (splitCommand.shift()).replace(bregex, ''),
+ demanded: [],
+ optional: []
+ }
+ splitCommand.forEach((cmd, i) => {
+ let variadic = false
+ cmd = cmd.replace(/\s/g, '')
+ if (/\.+[\]>]/.test(cmd) && i === splitCommand.length - 1) variadic = true
+ if (/^\[/.test(cmd)) {
+ parsedCommand.optional.push({
+ cmd: cmd.replace(bregex, '').split('|'),
+ variadic
+ })
+ } else {
+ parsedCommand.demanded.push({
+ cmd: cmd.replace(bregex, '').split('|'),
+ variadic
+ })
+ }
+ })
+ return parsedCommand
+ }
+
+ self.getCommands = () => Object.keys(handlers).concat(Object.keys(aliasMap))
+
+ self.getCommandHandlers = () => handlers
+
+ self.hasDefaultCommand = () => !!defaultCommand
+
+ self.runCommand = function runCommand (command, yargs, parsed, commandIndex) {
+ let aliases = parsed.aliases
+ const commandHandler = handlers[command] || handlers[aliasMap[command]] || defaultCommand
+ const currentContext = yargs.getContext()
+ let numFiles = currentContext.files.length
+ const parentCommands = currentContext.commands.slice()
+
+ // what does yargs look like after the buidler is run?
+ let innerArgv = parsed.argv
+ let innerYargs = null
+ let positionalMap = {}
+ if (command) {
+ currentContext.commands.push(command)
+ currentContext.fullCommands.push(commandHandler.original)
+ }
+ if (typeof commandHandler.builder === 'function') {
+ // a function can be provided, which builds
+ // up a yargs chain and possibly returns it.
+ innerYargs = commandHandler.builder(yargs.reset(parsed.aliases))
+ // if the builder function did not yet parse argv with reset yargs
+ // and did not explicitly set a usage() string, then apply the
+ // original command string as usage() for consistent behavior with
+ // options object below.
+ if (yargs.parsed === false) {
+ if (shouldUpdateUsage(yargs)) {
+ yargs.getUsageInstance().usage(
+ usageFromParentCommandsCommandHandler(parentCommands, commandHandler),
+ commandHandler.description
+ )
+ }
+ innerArgv = innerYargs ? innerYargs._parseArgs(null, null, true, commandIndex) : yargs._parseArgs(null, null, true, commandIndex)
+ } else {
+ innerArgv = yargs.parsed.argv
+ }
+
+ if (innerYargs && yargs.parsed === false) aliases = innerYargs.parsed.aliases
+ else aliases = yargs.parsed.aliases
+ } else if (typeof commandHandler.builder === 'object') {
+ // as a short hand, an object can instead be provided, specifying
+ // the options that a command takes.
+ innerYargs = yargs.reset(parsed.aliases)
+ if (shouldUpdateUsage(innerYargs)) {
+ innerYargs.getUsageInstance().usage(
+ usageFromParentCommandsCommandHandler(parentCommands, commandHandler),
+ commandHandler.description
+ )
+ }
+ Object.keys(commandHandler.builder).forEach((key) => {
+ innerYargs.option(key, commandHandler.builder[key])
+ })
+ innerArgv = innerYargs._parseArgs(null, null, true, commandIndex)
+ aliases = innerYargs.parsed.aliases
+ }
+
+ if (!yargs._hasOutput()) {
+ positionalMap = populatePositionals(commandHandler, innerArgv, currentContext, yargs)
+ }
+
+ // we apply validation post-hoc, so that custom
+ // checks get passed populated positional arguments.
+ if (!yargs._hasOutput()) yargs._runValidation(innerArgv, aliases, positionalMap, yargs.parsed.error)
+
+ if (commandHandler.handler && !yargs._hasOutput()) {
+ yargs._setHasOutput()
+ if (commandHandler.middlewares.length > 0) {
+ const middlewareArgs = commandHandler.middlewares.reduce(function (initialObj, middleware) {
+ return Object.assign(initialObj, middleware(innerArgv))
+ }, {})
+ Object.assign(innerArgv, middlewareArgs)
+ }
+ const handlerResult = commandHandler.handler(innerArgv)
+ if (handlerResult && typeof handlerResult.then === 'function') {
+ handlerResult.then(
+ null,
+ (error) => yargs.getUsageInstance().fail(null, error)
+ )
+ }
+ }
+
+ if (command) {
+ currentContext.commands.pop()
+ currentContext.fullCommands.pop()
+ }
+ numFiles = currentContext.files.length - numFiles
+ if (numFiles > 0) currentContext.files.splice(numFiles * -1, numFiles)
+
+ return innerArgv
+ }
+
+ function shouldUpdateUsage (yargs) {
+ return !yargs.getUsageInstance().getUsageDisabled() &&
+ yargs.getUsageInstance().getUsage().length === 0
+ }
+
+ function usageFromParentCommandsCommandHandler (parentCommands, commandHandler) {
+ const c = DEFAULT_MARKER.test(commandHandler.original) ? commandHandler.original.replace(DEFAULT_MARKER, '').trim() : commandHandler.original
+ const pc = parentCommands.filter((c) => { return !DEFAULT_MARKER.test(c) })
+ pc.push(c)
+ return `$0 ${pc.join(' ')}`
+ }
+
+ self.runDefaultBuilderOn = function (yargs) {
+ if (shouldUpdateUsage(yargs)) {
+ // build the root-level command string from the default string.
+ const commandString = DEFAULT_MARKER.test(defaultCommand.original)
+ ? defaultCommand.original : defaultCommand.original.replace(/^[^[\]<>]*/, '$0 ')
+ yargs.getUsageInstance().usage(
+ commandString,
+ defaultCommand.description
+ )
+ }
+ const builder = defaultCommand.builder
+ if (typeof builder === 'function') {
+ builder(yargs)
+ } else {
+ Object.keys(builder).forEach((key) => {
+ yargs.option(key, builder[key])
+ })
+ }
+ }
+
+ // transcribe all positional arguments "command <foo> <bar> [apple]"
+ // onto argv.
+ function populatePositionals (commandHandler, argv, context, yargs) {
+ argv._ = argv._.slice(context.commands.length) // nuke the current commands
+ const demanded = commandHandler.demanded.slice(0)
+ const optional = commandHandler.optional.slice(0)
+ const positionalMap = {}
+
+ validation.positionalCount(demanded.length, argv._.length)
+
+ while (demanded.length) {
+ const demand = demanded.shift()
+ populatePositional(demand, argv, positionalMap)
+ }
+
+ while (optional.length) {
+ const maybe = optional.shift()
+ populatePositional(maybe, argv, positionalMap)
+ }
+
+ argv._ = context.commands.concat(argv._)
+
+ postProcessPositionals(argv, positionalMap, self.cmdToParseOptions(commandHandler.original))
+
+ return positionalMap
+ }
+
+ function populatePositional (positional, argv, positionalMap, parseOptions) {
+ const cmd = positional.cmd[0]
+ if (positional.variadic) {
+ positionalMap[cmd] = argv._.splice(0).map(String)
+ } else {
+ if (argv._.length) positionalMap[cmd] = [String(argv._.shift())]
+ }
+ }
+
+ // we run yargs-parser against the positional arguments
+ // applying the same parsing logic used for flags.
+ function postProcessPositionals (argv, positionalMap, parseOptions) {
+ // combine the parsing hints we've inferred from the command
+ // string with explicitly configured parsing hints.
+ const options = Object.assign({}, yargs.getOptions())
+ options.default = Object.assign(parseOptions.default, options.default)
+ options.alias = Object.assign(parseOptions.alias, options.alias)
+ options.array = options.array.concat(parseOptions.array)
+
+ const unparsed = []
+ Object.keys(positionalMap).forEach((key) => {
+ positionalMap[key].map((value) => {
+ unparsed.push(`--${key}`)
+ unparsed.push(value)
+ })
+ })
+
+ // short-circuit parse.
+ if (!unparsed.length) return
+
+ const parsed = Parser.detailed(unparsed, options)
+
+ if (parsed.error) {
+ yargs.getUsageInstance().fail(parsed.error.message, parsed.error)
+ } else {
+ // only copy over positional keys (don't overwrite
+ // flag arguments that were already parsed).
+ const positionalKeys = Object.keys(positionalMap)
+ Object.keys(positionalMap).forEach((key) => {
+ [].push.apply(positionalKeys, parsed.aliases[key])
+ })
+
+ Object.keys(parsed.argv).forEach((key) => {
+ if (positionalKeys.indexOf(key) !== -1) {
+ argv[key] = parsed.argv[key]
+ }
+ })
+ }
+ }
+
+ self.cmdToParseOptions = function (cmdString) {
+ const parseOptions = {
+ array: [],
+ default: {},
+ alias: {},
+ demand: {}
+ }
+
+ const parsed = self.parseCommand(cmdString)
+ parsed.demanded.forEach((d) => {
+ const cmds = d.cmd.slice(0)
+ const cmd = cmds.shift()
+ if (d.variadic) {
+ parseOptions.array.push(cmd)
+ parseOptions.default[cmd] = []
+ }
+ cmds.forEach((c) => {
+ parseOptions.alias[cmd] = c
+ })
+ parseOptions.demand[cmd] = true
+ })
+
+ parsed.optional.forEach((o) => {
+ const cmds = o.cmd.slice(0)
+ const cmd = cmds.shift()
+ if (o.variadic) {
+ parseOptions.array.push(cmd)
+ parseOptions.default[cmd] = []
+ }
+ cmds.forEach((c) => {
+ parseOptions.alias[cmd] = c
+ })
+ })
+
+ return parseOptions
+ }
+
+ self.reset = () => {
+ handlers = {}
+ aliasMap = {}
+ defaultCommand = undefined
+ return self
+ }
+
+ // used by yargs.parse() to freeze
+ // the state of commands such that
+ // we can apply .parse() multiple times
+ // with the same yargs instance.
+ let frozen
+ self.freeze = () => {
+ frozen = {}
+ frozen.handlers = handlers
+ frozen.aliasMap = aliasMap
+ frozen.defaultCommand = defaultCommand
+ }
+ self.unfreeze = () => {
+ handlers = frozen.handlers
+ aliasMap = frozen.aliasMap
+ defaultCommand = frozen.defaultCommand
+ frozen = undefined
+ }
+
+ return self
+}
diff --git a/deps/npm/node_modules/yargs/lib/completion.js b/deps/npm/node_modules/yargs/lib/completion.js
new file mode 100644
index 0000000000..ad6969a2d9
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/completion.js
@@ -0,0 +1,105 @@
+'use strict'
+const fs = require('fs')
+const path = require('path')
+
+// add bash completions to your
+// yargs-powered applications.
+module.exports = function completion (yargs, usage, command) {
+ const self = {
+ completionKey: 'get-yargs-completions'
+ }
+
+ // get a list of completion commands.
+ // 'args' is the array of strings from the line to be completed
+ self.getCompletion = function getCompletion (args, done) {
+ const completions = []
+ const current = args.length ? args[args.length - 1] : ''
+ const argv = yargs.parse(args, true)
+ const aliases = yargs.parsed.aliases
+
+ // a custom completion function can be provided
+ // to completion().
+ if (completionFunction) {
+ if (completionFunction.length < 3) {
+ const result = completionFunction(current, argv)
+
+ // promise based completion function.
+ if (typeof result.then === 'function') {
+ return result.then((list) => {
+ process.nextTick(() => { done(list) })
+ }).catch((err) => {
+ process.nextTick(() => { throw err })
+ })
+ }
+
+ // synchronous completion function.
+ return done(result)
+ } else {
+ // asynchronous completion function
+ return completionFunction(current, argv, (completions) => {
+ done(completions)
+ })
+ }
+ }
+
+ const handlers = command.getCommandHandlers()
+ for (let i = 0, ii = args.length; i < ii; ++i) {
+ if (handlers[args[i]] && handlers[args[i]].builder) {
+ const builder = handlers[args[i]].builder
+ if (typeof builder === 'function') {
+ const y = yargs.reset()
+ builder(y)
+ return y.argv
+ }
+ }
+ }
+
+ if (!current.match(/^-/)) {
+ usage.getCommands().forEach((usageCommand) => {
+ const commandName = command.parseCommand(usageCommand[0]).cmd
+ if (args.indexOf(commandName) === -1) {
+ completions.push(commandName)
+ }
+ })
+ }
+
+ if (current.match(/^-/)) {
+ Object.keys(yargs.getOptions().key).forEach((key) => {
+ // If the key and its aliases aren't in 'args', add the key to 'completions'
+ const keyAndAliases = [key].concat(aliases[key] || [])
+ const notInArgs = keyAndAliases.every(val => args.indexOf(`--${val}`) === -1)
+ if (notInArgs) {
+ completions.push(`--${key}`)
+ }
+ })
+ }
+
+ done(completions)
+ }
+
+ // generate the completion script to add to your .bashrc.
+ self.generateCompletionScript = function generateCompletionScript ($0, cmd) {
+ let script = fs.readFileSync(
+ path.resolve(__dirname, '../completion.sh.hbs'),
+ 'utf-8'
+ )
+ const name = path.basename($0)
+
+ // add ./to applications not yet installed as bin.
+ if ($0.match(/\.js$/)) $0 = `./${$0}`
+
+ script = script.replace(/{{app_name}}/g, name)
+ script = script.replace(/{{completion_command}}/g, cmd)
+ return script.replace(/{{app_path}}/g, $0)
+ }
+
+ // register a function to perform your own custom
+ // completions., this function can be either
+ // synchrnous or asynchronous.
+ let completionFunction = null
+ self.registerFunction = (fn) => {
+ completionFunction = fn
+ }
+
+ return self
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/levenshtein.js b/deps/npm/node_modules/yargs/lib/levenshtein.js
index 6ec216f59d..f32b0c2771 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/levenshtein.js
+++ b/deps/npm/node_modules/yargs/lib/levenshtein.js
@@ -10,22 +10,22 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
// levenshtein distance algorithm, pulled from Andrei Mackenzie's MIT licensed.
// gist, which can be found here: https://gist.github.com/andrei-m/982927
-
+'use strict'
// Compute the edit distance between the two given strings
-module.exports = function (a, b) {
+module.exports = function levenshtein (a, b) {
if (a.length === 0) return b.length
if (b.length === 0) return a.length
- var matrix = []
+ const matrix = []
// increment along the first column of each row
- var i
+ let i
for (i = 0; i <= b.length; i++) {
matrix[i] = [i]
}
// increment each column in the first row
- var j
+ let j
for (j = 0; j <= a.length; j++) {
matrix[0][j] = j
}
diff --git a/deps/npm/node_modules/yargs/lib/obj-filter.js b/deps/npm/node_modules/yargs/lib/obj-filter.js
new file mode 100644
index 0000000000..c344ac58ca
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/obj-filter.js
@@ -0,0 +1,11 @@
+'use strict'
+module.exports = function objFilter (original, filter) {
+ const obj = {}
+ filter = filter || ((k, v) => true)
+ Object.keys(original || {}).forEach((key) => {
+ if (filter(key, original[key])) {
+ obj[key] = original[key]
+ }
+ })
+ return obj
+}
diff --git a/deps/npm/node_modules/yargs/lib/usage.js b/deps/npm/node_modules/yargs/lib/usage.js
new file mode 100644
index 0000000000..bd0906a89d
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/usage.js
@@ -0,0 +1,524 @@
+'use strict'
+// this file handles outputting usage instructions,
+// failures, etc. keeps logging in one place.
+const stringWidth = require('string-width')
+const objFilter = require('./obj-filter')
+const path = require('path')
+const setBlocking = require('set-blocking')
+const YError = require('./yerror')
+
+module.exports = function usage (yargs, y18n) {
+ const __ = y18n.__
+ const self = {}
+
+ // methods for ouputting/building failure message.
+ const fails = []
+ self.failFn = function failFn (f) {
+ fails.push(f)
+ }
+
+ let failMessage = null
+ let showHelpOnFail = true
+ self.showHelpOnFail = function showHelpOnFailFn (enabled, message) {
+ if (typeof enabled === 'string') {
+ message = enabled
+ enabled = true
+ } else if (typeof enabled === 'undefined') {
+ enabled = true
+ }
+ failMessage = message
+ showHelpOnFail = enabled
+ return self
+ }
+
+ let failureOutput = false
+ self.fail = function fail (msg, err) {
+ const logger = yargs._getLoggerInstance()
+
+ if (fails.length) {
+ for (let i = fails.length - 1; i >= 0; --i) {
+ fails[i](msg, err, self)
+ }
+ } else {
+ if (yargs.getExitProcess()) setBlocking(true)
+
+ // don't output failure message more than once
+ if (!failureOutput) {
+ failureOutput = true
+ if (showHelpOnFail) yargs.showHelp('error')
+ if (msg || err) logger.error(msg || err)
+ if (failMessage) {
+ if (msg || err) logger.error('')
+ logger.error(failMessage)
+ }
+ }
+
+ err = err || new YError(msg)
+ if (yargs.getExitProcess()) {
+ return yargs.exit(1)
+ } else if (yargs._hasParseCallback()) {
+ return yargs.exit(1, err)
+ } else {
+ throw err
+ }
+ }
+ }
+
+ // methods for ouputting/building help (usage) message.
+ let usages = []
+ let usageDisabled = false
+ self.usage = (msg, description) => {
+ if (msg === null) {
+ usageDisabled = true
+ usages = []
+ return
+ }
+ usageDisabled = false
+ usages.push([msg, description || ''])
+ return self
+ }
+ self.getUsage = () => {
+ return usages
+ }
+ self.getUsageDisabled = () => {
+ return usageDisabled
+ }
+
+ self.getPositionalGroupName = () => {
+ return __('Positionals:')
+ }
+
+ let examples = []
+ self.example = (cmd, description) => {
+ examples.push([cmd, description || ''])
+ }
+
+ let commands = []
+ self.command = function command (cmd, description, isDefault, aliases) {
+ // the last default wins, so cancel out any previously set default
+ if (isDefault) {
+ commands = commands.map((cmdArray) => {
+ cmdArray[2] = false
+ return cmdArray
+ })
+ }
+ commands.push([cmd, description || '', isDefault, aliases])
+ }
+ self.getCommands = () => commands
+
+ let descriptions = {}
+ self.describe = function describe (key, desc) {
+ if (typeof key === 'object') {
+ Object.keys(key).forEach((k) => {
+ self.describe(k, key[k])
+ })
+ } else {
+ descriptions[key] = desc
+ }
+ }
+ self.getDescriptions = () => descriptions
+
+ let epilog
+ self.epilog = (msg) => {
+ epilog = msg
+ }
+
+ let wrapSet = false
+ let wrap
+ self.wrap = (cols) => {
+ wrapSet = true
+ wrap = cols
+ }
+
+ function getWrap () {
+ if (!wrapSet) {
+ wrap = windowWidth()
+ wrapSet = true
+ }
+
+ return wrap
+ }
+
+ const deferY18nLookupPrefix = '__yargsString__:'
+ self.deferY18nLookup = str => deferY18nLookupPrefix + str
+
+ const defaultGroup = 'Options:'
+ self.help = function help () {
+ normalizeAliases()
+
+ // handle old demanded API
+ const base$0 = path.basename(yargs.$0)
+ const demandedOptions = yargs.getDemandedOptions()
+ const demandedCommands = yargs.getDemandedCommands()
+ const groups = yargs.getGroups()
+ const options = yargs.getOptions()
+ let keys = Object.keys(
+ Object.keys(descriptions)
+ .concat(Object.keys(demandedOptions))
+ .concat(Object.keys(demandedCommands))
+ .concat(Object.keys(options.default))
+ .reduce((acc, key) => {
+ if (key !== '_') acc[key] = true
+ return acc
+ }, {})
+ )
+
+ const theWrap = getWrap()
+ const ui = require('cliui')({
+ width: theWrap,
+ wrap: !!theWrap
+ })
+
+ // the usage string.
+ if (!usageDisabled) {
+ if (usages.length) {
+ // user-defined usage.
+ usages.forEach((usage) => {
+ ui.div(`${usage[0].replace(/\$0/g, base$0)}`)
+ if (usage[1]) {
+ ui.div({text: `${usage[1]}`, padding: [1, 0, 0, 0]})
+ }
+ })
+ ui.div()
+ } else if (commands.length) {
+ let u = null
+ // demonstrate how commands are used.
+ if (demandedCommands._) {
+ u = `${base$0} <${__('command')}>\n`
+ } else {
+ u = `${base$0} [${__('command')}]\n`
+ }
+ ui.div(`${u}`)
+ }
+ }
+
+ // your application's commands, i.e., non-option
+ // arguments populated in '_'.
+ if (commands.length) {
+ ui.div(__('Commands:'))
+
+ const context = yargs.getContext()
+ const parentCommands = context.commands.length ? `${context.commands.join(' ')} ` : ''
+
+ commands.forEach((command) => {
+ const commandString = `${base$0} ${parentCommands}${command[0].replace(/^\$0 ?/, '')}` // drop $0 from default commands.
+ ui.span(
+ {
+ text: commandString,
+ padding: [0, 2, 0, 2],
+ width: maxWidth(commands, theWrap, `${base$0}${parentCommands}`) + 4
+ },
+ {text: command[1]}
+ )
+ const hints = []
+ if (command[2]) hints.push(`[${__('default:').slice(0, -1)}]`) // TODO hacking around i18n here
+ if (command[3] && command[3].length) {
+ hints.push(`[${__('aliases:')} ${command[3].join(', ')}]`)
+ }
+ if (hints.length) {
+ ui.div({text: hints.join(' '), padding: [0, 0, 0, 2], align: 'right'})
+ } else {
+ ui.div()
+ }
+ })
+
+ ui.div()
+ }
+
+ // perform some cleanup on the keys array, making it
+ // only include top-level keys not their aliases.
+ const aliasKeys = (Object.keys(options.alias) || [])
+ .concat(Object.keys(yargs.parsed.newAliases) || [])
+
+ keys = keys.filter(key => !yargs.parsed.newAliases[key] && aliasKeys.every(alias => (options.alias[alias] || []).indexOf(key) === -1))
+
+ // populate 'Options:' group with any keys that have not
+ // explicitly had a group set.
+ if (!groups[defaultGroup]) groups[defaultGroup] = []
+ addUngroupedKeys(keys, options.alias, groups)
+
+ // display 'Options:' table along with any custom tables:
+ Object.keys(groups).forEach((groupName) => {
+ if (!groups[groupName].length) return
+
+ ui.div(__(groupName))
+
+ // if we've grouped the key 'f', but 'f' aliases 'foobar',
+ // normalizedKeys should contain only 'foobar'.
+ const normalizedKeys = groups[groupName].map((key) => {
+ if (~aliasKeys.indexOf(key)) return key
+ for (let i = 0, aliasKey; (aliasKey = aliasKeys[i]) !== undefined; i++) {
+ if (~(options.alias[aliasKey] || []).indexOf(key)) return aliasKey
+ }
+ return key
+ })
+
+ // actually generate the switches string --foo, -f, --bar.
+ const switches = normalizedKeys.reduce((acc, key) => {
+ acc[key] = [ key ].concat(options.alias[key] || [])
+ .map(sw => {
+ // for the special positional group don't
+ // add '--' or '-' prefix.
+ if (groupName === self.getPositionalGroupName()) return sw
+ else return (sw.length > 1 ? '--' : '-') + sw
+ })
+ .join(', ')
+
+ return acc
+ }, {})
+
+ normalizedKeys.forEach((key) => {
+ const kswitch = switches[key]
+ let desc = descriptions[key] || ''
+ let type = null
+
+ if (~desc.lastIndexOf(deferY18nLookupPrefix)) desc = __(desc.substring(deferY18nLookupPrefix.length))
+
+ if (~options.boolean.indexOf(key)) type = `[${__('boolean')}]`
+ if (~options.count.indexOf(key)) type = `[${__('count')}]`
+ if (~options.string.indexOf(key)) type = `[${__('string')}]`
+ if (~options.normalize.indexOf(key)) type = `[${__('string')}]`
+ if (~options.array.indexOf(key)) type = `[${__('array')}]`
+ if (~options.number.indexOf(key)) type = `[${__('number')}]`
+
+ const extra = [
+ type,
+ (key in demandedOptions) ? `[${__('required')}]` : null,
+ options.choices && options.choices[key] ? `[${__('choices:')} ${
+ self.stringifiedValues(options.choices[key])}]` : null,
+ defaultString(options.default[key], options.defaultDescription[key])
+ ].filter(Boolean).join(' ')
+
+ ui.span(
+ {text: kswitch, padding: [0, 2, 0, 2], width: maxWidth(switches, theWrap) + 4},
+ desc
+ )
+
+ if (extra) ui.div({text: extra, padding: [0, 0, 0, 2], align: 'right'})
+ else ui.div()
+ })
+
+ ui.div()
+ })
+
+ // describe some common use-cases for your application.
+ if (examples.length) {
+ ui.div(__('Examples:'))
+
+ examples.forEach((example) => {
+ example[0] = example[0].replace(/\$0/g, base$0)
+ })
+
+ examples.forEach((example) => {
+ if (example[1] === '') {
+ ui.div(
+ {
+ text: example[0],
+ padding: [0, 2, 0, 2]
+ }
+ )
+ } else {
+ ui.div(
+ {
+ text: example[0],
+ padding: [0, 2, 0, 2],
+ width: maxWidth(examples, theWrap) + 4
+ }, {
+ text: example[1]
+ }
+ )
+ }
+ })
+
+ ui.div()
+ }
+
+ // the usage string.
+ if (epilog) {
+ const e = epilog.replace(/\$0/g, base$0)
+ ui.div(`${e}\n`)
+ }
+
+ return ui.toString()
+ }
+
+ // return the maximum width of a string
+ // in the left-hand column of a table.
+ function maxWidth (table, theWrap, modifier) {
+ let width = 0
+
+ // table might be of the form [leftColumn],
+ // or {key: leftColumn}
+ if (!Array.isArray(table)) {
+ table = Object.keys(table).map(key => [table[key]])
+ }
+
+ table.forEach((v) => {
+ width = Math.max(
+ stringWidth(modifier ? `${modifier} ${v[0]}` : v[0]),
+ width
+ )
+ })
+
+ // if we've enabled 'wrap' we should limit
+ // the max-width of the left-column.
+ if (theWrap) width = Math.min(width, parseInt(theWrap * 0.5, 10))
+
+ return width
+ }
+
+ // make sure any options set for aliases,
+ // are copied to the keys being aliased.
+ function normalizeAliases () {
+ // handle old demanded API
+ const demandedOptions = yargs.getDemandedOptions()
+ const options = yargs.getOptions()
+
+ ;(Object.keys(options.alias) || []).forEach((key) => {
+ options.alias[key].forEach((alias) => {
+ // copy descriptions.
+ if (descriptions[alias]) self.describe(key, descriptions[alias])
+ // copy demanded.
+ if (alias in demandedOptions) yargs.demandOption(key, demandedOptions[alias])
+ // type messages.
+ if (~options.boolean.indexOf(alias)) yargs.boolean(key)
+ if (~options.count.indexOf(alias)) yargs.count(key)
+ if (~options.string.indexOf(alias)) yargs.string(key)
+ if (~options.normalize.indexOf(alias)) yargs.normalize(key)
+ if (~options.array.indexOf(alias)) yargs.array(key)
+ if (~options.number.indexOf(alias)) yargs.number(key)
+ })
+ })
+ }
+
+ // given a set of keys, place any keys that are
+ // ungrouped under the 'Options:' grouping.
+ function addUngroupedKeys (keys, aliases, groups) {
+ let groupedKeys = []
+ let toCheck = null
+ Object.keys(groups).forEach((group) => {
+ groupedKeys = groupedKeys.concat(groups[group])
+ })
+
+ keys.forEach((key) => {
+ toCheck = [key].concat(aliases[key])
+ if (!toCheck.some(k => groupedKeys.indexOf(k) !== -1)) {
+ groups[defaultGroup].push(key)
+ }
+ })
+ return groupedKeys
+ }
+
+ self.showHelp = (level) => {
+ const logger = yargs._getLoggerInstance()
+ if (!level) level = 'error'
+ const emit = typeof level === 'function' ? level : logger[level]
+ emit(self.help())
+ }
+
+ self.functionDescription = (fn) => {
+ const description = fn.name ? require('decamelize')(fn.name, '-') : __('generated-value')
+ return ['(', description, ')'].join('')
+ }
+
+ self.stringifiedValues = function stringifiedValues (values, separator) {
+ let string = ''
+ const sep = separator || ', '
+ const array = [].concat(values)
+
+ if (!values || !array.length) return string
+
+ array.forEach((value) => {
+ if (string.length) string += sep
+ string += JSON.stringify(value)
+ })
+
+ return string
+ }
+
+ // format the default-value-string displayed in
+ // the right-hand column.
+ function defaultString (value, defaultDescription) {
+ let string = `[${__('default:')} `
+
+ if (value === undefined && !defaultDescription) return null
+
+ if (defaultDescription) {
+ string += defaultDescription
+ } else {
+ switch (typeof value) {
+ case 'string':
+ string += `"${value}"`
+ break
+ case 'object':
+ string += JSON.stringify(value)
+ break
+ default:
+ string += value
+ }
+ }
+
+ return `${string}]`
+ }
+
+ // guess the width of the console window, max-width 80.
+ function windowWidth () {
+ const maxWidth = 80
+ if (typeof process === 'object' && process.stdout && process.stdout.columns) {
+ return Math.min(maxWidth, process.stdout.columns)
+ } else {
+ return maxWidth
+ }
+ }
+
+ // logic for displaying application version.
+ let version = null
+ self.version = (ver) => {
+ version = ver
+ }
+
+ self.showVersion = () => {
+ const logger = yargs._getLoggerInstance()
+ logger.log(version)
+ }
+
+ self.reset = function reset (localLookup) {
+ // do not reset wrap here
+ // do not reset fails here
+ failMessage = null
+ failureOutput = false
+ usages = []
+ usageDisabled = false
+ epilog = undefined
+ examples = []
+ commands = []
+ descriptions = objFilter(descriptions, (k, v) => !localLookup[k])
+ return self
+ }
+
+ let frozen
+ self.freeze = function freeze () {
+ frozen = {}
+ frozen.failMessage = failMessage
+ frozen.failureOutput = failureOutput
+ frozen.usages = usages
+ frozen.usageDisabled = usageDisabled
+ frozen.epilog = epilog
+ frozen.examples = examples
+ frozen.commands = commands
+ frozen.descriptions = descriptions
+ }
+ self.unfreeze = function unfreeze () {
+ failMessage = frozen.failMessage
+ failureOutput = frozen.failureOutput
+ usages = frozen.usages
+ usageDisabled = frozen.usageDisabled
+ epilog = frozen.epilog
+ examples = frozen.examples
+ commands = frozen.commands
+ descriptions = frozen.descriptions
+ frozen = undefined
+ }
+
+ return self
+}
diff --git a/deps/npm/node_modules/yargs/lib/validation.js b/deps/npm/node_modules/yargs/lib/validation.js
new file mode 100644
index 0000000000..f4655b4fdc
--- /dev/null
+++ b/deps/npm/node_modules/yargs/lib/validation.js
@@ -0,0 +1,341 @@
+'use strict'
+const argsert = require('./argsert')
+const objFilter = require('./obj-filter')
+const specialKeys = ['$0', '--', '_']
+
+// validation-type-stuff, missing params,
+// bad implications, custom checks.
+module.exports = function validation (yargs, usage, y18n) {
+ const __ = y18n.__
+ const __n = y18n.__n
+ const self = {}
+
+ // validate appropriate # of non-option
+ // arguments were provided, i.e., '_'.
+ self.nonOptionCount = function nonOptionCount (argv) {
+ const demandedCommands = yargs.getDemandedCommands()
+ // don't count currently executing commands
+ const _s = argv._.length - yargs.getContext().commands.length
+
+ if (demandedCommands._ && (_s < demandedCommands._.min || _s > demandedCommands._.max)) {
+ if (_s < demandedCommands._.min) {
+ if (demandedCommands._.minMsg !== undefined) {
+ usage.fail(
+ // replace $0 with observed, $1 with expected.
+ demandedCommands._.minMsg ? demandedCommands._.minMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.min) : null
+ )
+ } else {
+ usage.fail(
+ __('Not enough non-option arguments: got %s, need at least %s', _s, demandedCommands._.min)
+ )
+ }
+ } else if (_s > demandedCommands._.max) {
+ if (demandedCommands._.maxMsg !== undefined) {
+ usage.fail(
+ // replace $0 with observed, $1 with expected.
+ demandedCommands._.maxMsg ? demandedCommands._.maxMsg.replace(/\$0/g, _s).replace(/\$1/, demandedCommands._.max) : null
+ )
+ } else {
+ usage.fail(
+ __('Too many non-option arguments: got %s, maximum of %s', _s, demandedCommands._.max)
+ )
+ }
+ }
+ }
+ }
+
+ // validate the appropriate # of <required>
+ // positional arguments were provided:
+ self.positionalCount = function positionalCount (required, observed) {
+ if (observed < required) {
+ usage.fail(
+ __('Not enough non-option arguments: got %s, need at least %s', observed, required)
+ )
+ }
+ }
+
+ // make sure all the required arguments are present.
+ self.requiredArguments = function requiredArguments (argv) {
+ const demandedOptions = yargs.getDemandedOptions()
+ let missing = null
+
+ Object.keys(demandedOptions).forEach((key) => {
+ if (!argv.hasOwnProperty(key) || typeof argv[key] === 'undefined') {
+ missing = missing || {}
+ missing[key] = demandedOptions[key]
+ }
+ })
+
+ if (missing) {
+ const customMsgs = []
+ Object.keys(missing).forEach((key) => {
+ const msg = missing[key]
+ if (msg && customMsgs.indexOf(msg) < 0) {
+ customMsgs.push(msg)
+ }
+ })
+
+ const customMsg = customMsgs.length ? `\n${customMsgs.join('\n')}` : ''
+
+ usage.fail(__n(
+ 'Missing required argument: %s',
+ 'Missing required arguments: %s',
+ Object.keys(missing).length,
+ Object.keys(missing).join(', ') + customMsg
+ ))
+ }
+ }
+
+ // check for unknown arguments (strict-mode).
+ self.unknownArguments = function unknownArguments (argv, aliases, positionalMap) {
+ const commandKeys = yargs.getCommandInstance().getCommands()
+ const unknown = []
+ const currentContext = yargs.getContext()
+
+ Object.keys(argv).forEach((key) => {
+ if (specialKeys.indexOf(key) === -1 &&
+ !positionalMap.hasOwnProperty(key) &&
+ !yargs._getParseContext().hasOwnProperty(key) &&
+ !aliases.hasOwnProperty(key)
+ ) {
+ unknown.push(key)
+ }
+ })
+
+ if (commandKeys.length > 0) {
+ argv._.slice(currentContext.commands.length).forEach((key) => {
+ if (commandKeys.indexOf(key) === -1) {
+ unknown.push(key)
+ }
+ })
+ }
+
+ if (unknown.length > 0) {
+ usage.fail(__n(
+ 'Unknown argument: %s',
+ 'Unknown arguments: %s',
+ unknown.length,
+ unknown.join(', ')
+ ))
+ }
+ }
+
+ // validate arguments limited to enumerated choices
+ self.limitedChoices = function limitedChoices (argv) {
+ const options = yargs.getOptions()
+ const invalid = {}
+
+ if (!Object.keys(options.choices).length) return
+
+ Object.keys(argv).forEach((key) => {
+ if (specialKeys.indexOf(key) === -1 &&
+ options.choices.hasOwnProperty(key)) {
+ [].concat(argv[key]).forEach((value) => {
+ // TODO case-insensitive configurability
+ if (options.choices[key].indexOf(value) === -1 &&
+ value !== undefined) {
+ invalid[key] = (invalid[key] || []).concat(value)
+ }
+ })
+ }
+ })
+
+ const invalidKeys = Object.keys(invalid)
+
+ if (!invalidKeys.length) return
+
+ let msg = __('Invalid values:')
+ invalidKeys.forEach((key) => {
+ msg += `\n ${__(
+ 'Argument: %s, Given: %s, Choices: %s',
+ key,
+ usage.stringifiedValues(invalid[key]),
+ usage.stringifiedValues(options.choices[key])
+ )}`
+ })
+ usage.fail(msg)
+ }
+
+ // custom checks, added using the `check` option on yargs.
+ let checks = []
+ self.check = function check (f, global) {
+ checks.push({
+ func: f,
+ global
+ })
+ }
+
+ self.customChecks = function customChecks (argv, aliases) {
+ for (let i = 0, f; (f = checks[i]) !== undefined; i++) {
+ const func = f.func
+ let result = null
+ try {
+ result = func(argv, aliases)
+ } catch (err) {
+ usage.fail(err.message ? err.message : err, err)
+ continue
+ }
+
+ if (!result) {
+ usage.fail(__('Argument check failed: %s', func.toString()))
+ } else if (typeof result === 'string' || result instanceof Error) {
+ usage.fail(result.toString(), result)
+ }
+ }
+ }
+
+ // check implications, argument foo implies => argument bar.
+ let implied = {}
+ self.implies = function implies (key, value) {
+ argsert('<string|object> [array|number|string]', [key, value], arguments.length)
+
+ if (typeof key === 'object') {
+ Object.keys(key).forEach((k) => {
+ self.implies(k, key[k])
+ })
+ } else {
+ yargs.global(key)
+ if (!implied[key]) {
+ implied[key] = []
+ }
+ if (Array.isArray(value)) {
+ value.forEach((i) => self.implies(key, i))
+ } else {
+ implied[key].push(value)
+ }
+ }
+ }
+ self.getImplied = function getImplied () {
+ return implied
+ }
+
+ self.implications = function implications (argv) {
+ const implyFail = []
+
+ Object.keys(implied).forEach((key) => {
+ const origKey = key
+ ;(implied[key] || []).forEach((value) => {
+ let num
+ let key = origKey
+ const origValue = value
+
+ // convert string '1' to number 1
+ num = Number(key)
+ key = isNaN(num) ? key : num
+
+ if (typeof key === 'number') {
+ // check length of argv._
+ key = argv._.length >= key
+ } else if (key.match(/^--no-.+/)) {
+ // check if key doesn't exist
+ key = key.match(/^--no-(.+)/)[1]
+ key = !argv[key]
+ } else {
+ // check if key exists
+ key = argv[key]
+ }
+
+ num = Number(value)
+ value = isNaN(num) ? value : num
+
+ if (typeof value === 'number') {
+ value = argv._.length >= value
+ } else if (value.match(/^--no-.+/)) {
+ value = value.match(/^--no-(.+)/)[1]
+ value = !argv[value]
+ } else {
+ value = argv[value]
+ }
+ if (key && !value) {
+ implyFail.push(` ${origKey} -> ${origValue}`)
+ }
+ })
+ })
+
+ if (implyFail.length) {
+ let msg = `${__('Implications failed:')}\n`
+
+ implyFail.forEach((value) => {
+ msg += (value)
+ })
+
+ usage.fail(msg)
+ }
+ }
+
+ let conflicting = {}
+ self.conflicts = function conflicts (key, value) {
+ argsert('<string|object> [array|string]', [key, value], arguments.length)
+
+ if (typeof key === 'object') {
+ Object.keys(key).forEach((k) => {
+ self.conflicts(k, key[k])
+ })
+ } else {
+ yargs.global(key)
+ if (!conflicting[key]) {
+ conflicting[key] = []
+ }
+ if (Array.isArray(value)) {
+ value.forEach((i) => self.conflicts(key, i))
+ } else {
+ conflicting[key].push(value)
+ }
+ }
+ }
+ self.getConflicting = () => conflicting
+
+ self.conflicting = function conflictingFn (argv) {
+ Object.keys(argv).forEach((key) => {
+ if (conflicting[key]) {
+ conflicting[key].forEach((value) => {
+ // we default keys to 'undefined' that have been configured, we should not
+ // apply conflicting check unless they are a value other than 'undefined'.
+ if (value && argv[key] !== undefined && argv[value] !== undefined) {
+ usage.fail(__(`Arguments ${key} and ${value} are mutually exclusive`))
+ }
+ })
+ }
+ })
+ }
+
+ self.recommendCommands = function recommendCommands (cmd, potentialCommands) {
+ const distance = require('./levenshtein')
+ const threshold = 3 // if it takes more than three edits, let's move on.
+ potentialCommands = potentialCommands.sort((a, b) => b.length - a.length)
+
+ let recommended = null
+ let bestDistance = Infinity
+ for (let i = 0, candidate; (candidate = potentialCommands[i]) !== undefined; i++) {
+ const d = distance(cmd, candidate)
+ if (d <= threshold && d < bestDistance) {
+ bestDistance = d
+ recommended = candidate
+ }
+ }
+ if (recommended) usage.fail(__('Did you mean %s?', recommended))
+ }
+
+ self.reset = function reset (localLookup) {
+ implied = objFilter(implied, (k, v) => !localLookup[k])
+ conflicting = objFilter(conflicting, (k, v) => !localLookup[k])
+ checks = checks.filter(c => c.global)
+ return self
+ }
+
+ let frozen
+ self.freeze = function freeze () {
+ frozen = {}
+ frozen.implied = implied
+ frozen.checks = checks
+ frozen.conflicting = conflicting
+ }
+ self.unfreeze = function unfreeze () {
+ implied = frozen.implied
+ checks = frozen.checks
+ conflicting = frozen.conflicting
+ frozen = undefined
+ }
+
+ return self
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/yerror.js b/deps/npm/node_modules/yargs/lib/yerror.js
index ad96a8776e..53375a0f75 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/lib/yerror.js
+++ b/deps/npm/node_modules/yargs/lib/yerror.js
@@ -1,3 +1,4 @@
+'use strict'
function YError (msg) {
this.name = 'YError'
this.message = msg || 'yargs error'
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/be.json b/deps/npm/node_modules/yargs/locales/be.json
index 141ebe1e17..141ebe1e17 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/be.json
+++ b/deps/npm/node_modules/yargs/locales/be.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/de.json b/deps/npm/node_modules/yargs/locales/de.json
index d805710b09..d805710b09 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/de.json
+++ b/deps/npm/node_modules/yargs/locales/de.json
diff --git a/deps/npm/node_modules/yargs/locales/en.json b/deps/npm/node_modules/yargs/locales/en.json
new file mode 100644
index 0000000000..fc65c2a0d8
--- /dev/null
+++ b/deps/npm/node_modules/yargs/locales/en.json
@@ -0,0 +1,42 @@
+{
+ "Commands:": "Commands:",
+ "Options:": "Options:",
+ "Examples:": "Examples:",
+ "boolean": "boolean",
+ "count": "count",
+ "string": "string",
+ "number": "number",
+ "array": "array",
+ "required": "required",
+ "default:": "default:",
+ "choices:": "choices:",
+ "aliases:": "aliases:",
+ "generated-value": "generated-value",
+ "Not enough non-option arguments: got %s, need at least %s": "Not enough non-option arguments: got %s, need at least %s",
+ "Too many non-option arguments: got %s, maximum of %s": "Too many non-option arguments: got %s, maximum of %s",
+ "Missing argument value: %s": {
+ "one": "Missing argument value: %s",
+ "other": "Missing argument values: %s"
+ },
+ "Missing required argument: %s": {
+ "one": "Missing required argument: %s",
+ "other": "Missing required arguments: %s"
+ },
+ "Unknown argument: %s": {
+ "one": "Unknown argument: %s",
+ "other": "Unknown arguments: %s"
+ },
+ "Invalid values:": "Invalid values:",
+ "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Given: %s, Choices: %s",
+ "Argument check failed: %s": "Argument check failed: %s",
+ "Implications failed:": "Implications failed:",
+ "Not enough arguments following: %s": "Not enough arguments following: %s",
+ "Invalid JSON config file: %s": "Invalid JSON config file: %s",
+ "Path to JSON config file": "Path to JSON config file",
+ "Show help": "Show help",
+ "Show version number": "Show version number",
+ "Did you mean %s?": "Did you mean %s?",
+ "Arguments %s and %s are mutually exclusive" : "Arguments %s and %s are mutually exclusive",
+ "Positionals:": "Positionals:",
+ "command": "command"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/es.json b/deps/npm/node_modules/yargs/locales/es.json
index d7c8af9f84..d7c8af9f84 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/es.json
+++ b/deps/npm/node_modules/yargs/locales/es.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/fr.json b/deps/npm/node_modules/yargs/locales/fr.json
index 481f47e37f..481f47e37f 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/fr.json
+++ b/deps/npm/node_modules/yargs/locales/fr.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/hi.json b/deps/npm/node_modules/yargs/locales/hi.json
index 2a9826d96f..2cd677acb4 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/hi.json
+++ b/deps/npm/node_modules/yargs/locales/hi.json
@@ -35,5 +35,8 @@
"Path to JSON config file": "JSON config ą¤«ą¤¾ą¤‡ą¤² ą¤•ą¤¾ ą¤Ŗą¤„",
"Show help": "ą¤øą¤¹ą¤¾ą¤Æą¤¤ą¤¾ ą¤¦ą¤æą¤–ą¤¾ą¤ą¤",
"Show version number": "Version ą¤øą¤‚ą¤–ą„ą¤Æą¤¾ ą¤¦ą¤æą¤–ą¤¾ą¤ą¤",
- "Did you mean %s?": "ą¤•ą„ą¤Æą¤¾ ą¤†ą¤Ŗą¤•ą¤¾ ą¤®ą¤¤ą¤²ą¤¬ ą¤¹ą„ˆ %s?"
+ "Did you mean %s?": "ą¤•ą„ą¤Æą¤¾ ą¤†ą¤Ŗą¤•ą¤¾ ą¤®ą¤¤ą¤²ą¤¬ ą¤¹ą„ˆ %s?",
+ "Arguments %s and %s are mutually exclusive" : "ą¤¤ą¤°ą„ą¤• %s ą¤”ą¤° %s ą¤Ŗą¤°ą¤øą„ą¤Ŗą¤° ą¤…ą¤Øą¤Øą„ą¤Æ ą¤¹ą„ˆą¤‚",
+ "Positionals:": "ą¤øą„ą¤„ą¤¾ą¤Øą„€ą¤Æ:",
+ "command": "ą¤†ą¤¦ą„‡ą¤¶"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/hu.json b/deps/npm/node_modules/yargs/locales/hu.json
index 7b7d16606b..7b7d16606b 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/hu.json
+++ b/deps/npm/node_modules/yargs/locales/hu.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/id.json b/deps/npm/node_modules/yargs/locales/id.json
index a06e8608d0..87e441cd80 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/id.json
+++ b/deps/npm/node_modules/yargs/locales/id.json
@@ -36,5 +36,8 @@
"Path to JSON config file": "Alamat berkas konfigurasi JSON",
"Show help": "Lihat bantuan",
"Show version number": "Lihat nomor versi",
- "Did you mean %s?": "Maksud Anda: %s?"
+ "Did you mean %s?": "Maksud Anda: %s?",
+ "Arguments %s and %s are mutually exclusive" : "Argumen %s dan %s saling eksklusif",
+ "Positionals:": "Posisional-posisional:",
+ "command": "perintah"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/it.json b/deps/npm/node_modules/yargs/locales/it.json
index f9eb3756ea..f9eb3756ea 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/it.json
+++ b/deps/npm/node_modules/yargs/locales/it.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ja.json b/deps/npm/node_modules/yargs/locales/ja.json
index 45a64a8123..64ee6d3fb9 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ja.json
+++ b/deps/npm/node_modules/yargs/locales/ja.json
@@ -35,5 +35,8 @@
"Path to JSON config file": "JSON恮čØ­å®šćƒ•ć‚”ć‚¤ćƒ«ć¾ć§ć®path",
"Show help": "ćƒ˜ćƒ«ćƒ—ć‚’č”Øē¤ŗ",
"Show version number": "ćƒćƒ¼ć‚øćƒ§ćƒ³ć‚’č”Øē¤ŗ",
- "Did you mean %s?": "悂恗恋恗恦 %s?"
+ "Did you mean %s?": "悂恗恋恗恦 %s?",
+ "Arguments %s and %s are mutually exclusive" : "å¼•ę•° %s ćØ %s ćÆåŒę™‚ć«ęŒ‡å®šć§ćć¾ć›ć‚“",
+ "Positionals:": "位ē½®:",
+ "command": "ć‚³ćƒžćƒ³ćƒ‰"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ko.json b/deps/npm/node_modules/yargs/locales/ko.json
index e714984798..0eaeab2f81 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ko.json
+++ b/deps/npm/node_modules/yargs/locales/ko.json
@@ -35,5 +35,8 @@
"Path to JSON config file": "JSON ģ„¤ģ •ķŒŒģ¼ ź²½ė”œ",
"Show help": "ė„ģ›€ė§ģ„ ė³“ģ—¬ģ¤ė‹ˆė‹¤",
"Show version number": "ė²„ģ „ ė„˜ė²„ė„¼ ė³“ģ—¬ģ¤ė‹ˆė‹¤",
- "Did you mean %s?": "ģ°¾ź³ ź³„ģ‹ ź²Œ %sģž…ė‹ˆź¹Œ?"
+ "Did you mean %s?": "ģ°¾ź³ ź³„ģ‹ ź²Œ %sģž…ė‹ˆź¹Œ?",
+ "Arguments %s and %s are mutually exclusive" : "%sģ™€ %s ģøģžėŠ” ź°™ģ“ ģ‚¬ģš©ė  ģˆ˜ ģ—†ģŠµė‹ˆė‹¤",
+ "Positionals:": "ģœ„ģ¹˜:",
+ "command": "ėŖ…ė ¹"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/nb.json b/deps/npm/node_modules/yargs/locales/nb.json
index fc607fb1e1..fc607fb1e1 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/nb.json
+++ b/deps/npm/node_modules/yargs/locales/nb.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/nl.json b/deps/npm/node_modules/yargs/locales/nl.json
index fc029dbebd..1d144724ec 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/nl.json
+++ b/deps/npm/node_modules/yargs/locales/nl.json
@@ -35,5 +35,8 @@
"Path to JSON config file": "Pad naar JSON configuratiebestand",
"Show help": "Toon help",
"Show version number": "Toon versie nummer",
- "Did you mean %s?": "Bedoelde u misschien %s?"
+ "Did you mean %s?": "Bedoelde u misschien %s?",
+ "Arguments %s and %s are mutually exclusive": "Argumenten %s en %s zijn onderling uitsluitend",
+ "Positionals:": "Positie-afhankelijke argumenten",
+ "command": "commando"
}
diff --git a/deps/npm/node_modules/yargs/locales/nn.json b/deps/npm/node_modules/yargs/locales/nn.json
new file mode 100644
index 0000000000..5e03c505ab
--- /dev/null
+++ b/deps/npm/node_modules/yargs/locales/nn.json
@@ -0,0 +1,39 @@
+{
+ "Commands:": "Kommandoar:",
+ "Options:": "Alternativ:",
+ "Examples:": "DĆøme:",
+ "boolean": "boolsk",
+ "count": "mengd",
+ "string": "streng",
+ "number": "nummer",
+ "array": "matrise",
+ "required": "obligatorisk",
+ "default:": "standard:",
+ "choices:": "val:",
+ "generated-value": "generert-verdi",
+ "Not enough non-option arguments: got %s, need at least %s":
+ "Ikkje nok ikkje-alternativ argument: fekk %s, treng minst %s",
+ "Too many non-option arguments: got %s, maximum of %s":
+ "For mange ikkje-alternativ argument: fekk %s, maksimum %s",
+ "Missing argument value: %s": {
+ "one": "Manglar argumentverdi: %s",
+ "other": "Manglar argumentverdiar: %s"
+ },
+ "Missing required argument: %s": {
+ "one": "Manglar obligatorisk argument: %s",
+ "other": "Manglar obligatoriske argument: %s"
+ },
+ "Unknown argument: %s": {
+ "one": "Ukjent argument: %s",
+ "other": "Ukjende argument: %s"
+ },
+ "Invalid values:": "Ugyldige verdiar:",
+ "Argument: %s, Given: %s, Choices: %s": "Argument: %s, Gjeve: %s, Val: %s",
+ "Argument check failed: %s": "Argument sjekk mislukkast: %s",
+ "Implications failed:": "Konsekvensane mislukkast:",
+ "Not enough arguments following: %s": "Ikkje nok fylgande argument: %s",
+ "Invalid JSON config file: %s": "Ugyldig JSON konfigurasjonsfil: %s",
+ "Path to JSON config file": "Bane til JSON konfigurasjonsfil",
+ "Show help": "Vis hjelp",
+ "Show version number": "Vis versjonsnummer"
+}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pirate.json b/deps/npm/node_modules/yargs/locales/pirate.json
index 1f4e19e65d..1f4e19e65d 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pirate.json
+++ b/deps/npm/node_modules/yargs/locales/pirate.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pl.json b/deps/npm/node_modules/yargs/locales/pl.json
index 1c834f693b..6926a45480 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pl.json
+++ b/deps/npm/node_modules/yargs/locales/pl.json
@@ -35,5 +35,8 @@
"Path to JSON config file": "Ścieżka do pliku konfiguracyjnego JSON",
"Show help": "Pokaż pomoc",
"Show version number": "Pokaż numer wersji",
- "Did you mean %s?": "Czy chodziło Ci o %s?"
+ "Did you mean %s?": "Czy chodziło Ci o %s?",
+ "Arguments %s and %s are mutually exclusive": "Argumenty %s i %s wzajemnie się wykluczają",
+ "Positionals:": "Pozycyjne:",
+ "command": "polecenie"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt.json b/deps/npm/node_modules/yargs/locales/pt.json
index 75c3921c80..75c3921c80 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt.json
+++ b/deps/npm/node_modules/yargs/locales/pt.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt_BR.json b/deps/npm/node_modules/yargs/locales/pt_BR.json
index 60e5ffa24d..904cb66eb4 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/pt_BR.json
+++ b/deps/npm/node_modules/yargs/locales/pt_BR.json
@@ -2,7 +2,7 @@
"Commands:": "Comandos:",
"Options:": "OpƧƵes:",
"Examples:": "Exemplos:",
- "boolean": "boolean",
+ "boolean": "booleano",
"count": "contagem",
"string": "string",
"number": "nĆŗmero",
@@ -36,5 +36,7 @@
"Show help": "Exibe ajuda",
"Show version number": "Exibe a versĆ£o",
"Did you mean %s?": "VocĆŖ quis dizer %s?",
- "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s sĆ£o mutualmente exclusivos"
+ "Arguments %s and %s are mutually exclusive" : "Argumentos %s e %s sĆ£o mutualmente exclusivos",
+ "Positionals:": "Posicionais:",
+ "command": "comando"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ru.json b/deps/npm/node_modules/yargs/locales/ru.json
index cb7b88b495..cb7b88b495 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/ru.json
+++ b/deps/npm/node_modules/yargs/locales/ru.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/th.json b/deps/npm/node_modules/yargs/locales/th.json
index 3f08dcd238..3f08dcd238 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/th.json
+++ b/deps/npm/node_modules/yargs/locales/th.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/tr.json b/deps/npm/node_modules/yargs/locales/tr.json
index 000060b91a..9b06c52a8d 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/tr.json
+++ b/deps/npm/node_modules/yargs/locales/tr.json
@@ -35,5 +35,7 @@
"Path to JSON config file": "JSON yapılandırma dosya konumu",
"Show help": "Yardım detaylarını gƶster",
"Show version number": "Versiyon detaylarını gƶster",
- "Did you mean %s?": "Bunu mu demek istediniz: %s?"
+ "Did you mean %s?": "Bunu mu demek istediniz: %s?",
+ "Positionals:": "Sıralılar:",
+ "command": "komut"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_CN.json b/deps/npm/node_modules/yargs/locales/zh_CN.json
index b25c7b9d20..03a3d94f0c 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_CN.json
+++ b/deps/npm/node_modules/yargs/locales/zh_CN.json
@@ -33,5 +33,9 @@
"Invalid JSON config file: %s": "ꗠꕈēš„ JSON 配ē½®ę–‡ä»¶ļ¼š%s",
"Path to JSON config file": "JSON 配ē½®ę–‡ä»¶ēš„č·Æ径",
"Show help": "ę˜¾ē¤ŗåø®åŠ©äæ”ęÆ",
- "Show version number": "ę˜¾ē¤ŗē‰ˆęœ¬å·"
+ "Show version number": "ę˜¾ē¤ŗē‰ˆęœ¬å·",
+ "Did you mean %s?": "ę˜Æꌇ %s?",
+ "Arguments %s and %s are mutually exclusive" : "选锹 %s 和 %s ę˜Æäŗ’ę–„ēš„",
+ "Positionals:": "位ē½®ļ¼š",
+ "command": "命令"
}
diff --git a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_TW.json b/deps/npm/node_modules/yargs/locales/zh_TW.json
index 12498888aa..12498888aa 100644
--- a/deps/npm/node_modules/libnpx/node_modules/yargs/locales/zh_TW.json
+++ b/deps/npm/node_modules/yargs/locales/zh_TW.json
diff --git a/deps/npm/node_modules/libnpx/node_modules/y18n/LICENSE b/deps/npm/node_modules/yargs/node_modules/y18n/LICENSE
index 3c157f0b9d..3c157f0b9d 100644
--- a/deps/npm/node_modules/libnpx/node_modules/y18n/LICENSE
+++ b/deps/npm/node_modules/yargs/node_modules/y18n/LICENSE
diff --git a/deps/npm/node_modules/cacache/node_modules/y18n/README.md b/deps/npm/node_modules/yargs/node_modules/y18n/README.md
index 9859458f20..9859458f20 100644
--- a/deps/npm/node_modules/cacache/node_modules/y18n/README.md
+++ b/deps/npm/node_modules/yargs/node_modules/y18n/README.md
diff --git a/deps/npm/node_modules/cacache/node_modules/y18n/index.js b/deps/npm/node_modules/yargs/node_modules/y18n/index.js
index 91b159e342..91b159e342 100644
--- a/deps/npm/node_modules/cacache/node_modules/y18n/index.js
+++ b/deps/npm/node_modules/yargs/node_modules/y18n/index.js
diff --git a/deps/npm/node_modules/yargs/node_modules/y18n/package.json b/deps/npm/node_modules/yargs/node_modules/y18n/package.json
new file mode 100644
index 0000000000..89e1b7c57f
--- /dev/null
+++ b/deps/npm/node_modules/yargs/node_modules/y18n/package.json
@@ -0,0 +1,65 @@
+{
+ "_from": "y18n@^3.2.1",
+ "_id": "y18n@3.2.1",
+ "_inBundle": false,
+ "_integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=",
+ "_location": "/yargs/y18n",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "y18n@^3.2.1",
+ "name": "y18n",
+ "escapedName": "y18n",
+ "rawSpec": "^3.2.1",
+ "saveSpec": null,
+ "fetchSpec": "^3.2.1"
+ },
+ "_requiredBy": [
+ "/yargs"
+ ],
+ "_resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+ "_shasum": "6d15fba884c08679c0d77e88e7759e811e07fa41",
+ "_spec": "y18n@^3.2.1",
+ "_where": "/Users/rebecca/code/npm/node_modules/yargs",
+ "author": {
+ "name": "Ben Coe",
+ "email": "ben@npmjs.com"
+ },
+ "bugs": {
+ "url": "https://github.com/yargs/y18n/issues"
+ },
+ "bundleDependencies": false,
+ "deprecated": false,
+ "description": "the bare-bones internationalization library used by yargs",
+ "devDependencies": {
+ "chai": "^3.4.1",
+ "coveralls": "^2.11.6",
+ "mocha": "^2.3.4",
+ "nyc": "^6.1.1",
+ "rimraf": "^2.5.0",
+ "standard": "^5.4.1"
+ },
+ "files": [
+ "index.js"
+ ],
+ "homepage": "https://github.com/yargs/y18n",
+ "keywords": [
+ "i18n",
+ "internationalization",
+ "yargs"
+ ],
+ "license": "ISC",
+ "main": "index.js",
+ "name": "y18n",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/y18n.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "pretest": "standard",
+ "test": "nyc mocha"
+ },
+ "version": "3.2.1"
+}
diff --git a/deps/npm/node_modules/yargs/package.json b/deps/npm/node_modules/yargs/package.json
new file mode 100644
index 0000000000..1fe51fedd4
--- /dev/null
+++ b/deps/npm/node_modules/yargs/package.json
@@ -0,0 +1,101 @@
+{
+ "_from": "yargs@^11.0.0",
+ "_id": "yargs@11.0.0",
+ "_inBundle": false,
+ "_integrity": "sha512-Rjp+lMYQOWtgqojx1dEWorjCofi1YN7AoFvYV7b1gx/7dAAeuI4kN5SZiEvr0ZmsZTOpDRcCqrpI10L31tFkBw==",
+ "_location": "/yargs",
+ "_phantomChildren": {},
+ "_requested": {
+ "type": "range",
+ "registry": true,
+ "raw": "yargs@^11.0.0",
+ "name": "yargs",
+ "escapedName": "yargs",
+ "rawSpec": "^11.0.0",
+ "saveSpec": null,
+ "fetchSpec": "^11.0.0"
+ },
+ "_requiredBy": [
+ "/libnpx"
+ ],
+ "_resolved": "https://registry.npmjs.org/yargs/-/yargs-11.0.0.tgz",
+ "_shasum": "c052931006c5eee74610e5fc0354bedfd08a201b",
+ "_spec": "yargs@^11.0.0",
+ "_where": "/Users/rebecca/code/npm/node_modules/libnpx",
+ "bugs": {
+ "url": "https://github.com/yargs/yargs/issues"
+ },
+ "bundleDependencies": false,
+ "dependencies": {
+ "cliui": "^4.0.0",
+ "decamelize": "^1.1.1",
+ "find-up": "^2.1.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^2.0.0",
+ "require-directory": "^2.1.1",
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1",
+ "yargs-parser": "^9.0.2"
+ },
+ "deprecated": false,
+ "description": "yargs the modern, pirate-themed, successor to optimist.",
+ "devDependencies": {
+ "chai": "^4.1.2",
+ "chalk": "^1.1.3",
+ "coveralls": "^2.11.11",
+ "cpr": "^2.0.0",
+ "cross-spawn": "^5.0.1",
+ "es6-promise": "^4.0.2",
+ "hashish": "0.0.4",
+ "mocha": "^3.0.1",
+ "nyc": "^11.2.1",
+ "rimraf": "^2.5.0",
+ "standard": "^8.6.0",
+ "standard-version": "^4.2.0",
+ "which": "^1.2.9",
+ "yargs-test-extends": "^1.0.1"
+ },
+ "engine": {
+ "node": ">=4"
+ },
+ "files": [
+ "index.js",
+ "yargs.js",
+ "lib",
+ "locales",
+ "completion.sh.hbs",
+ "LICENSE"
+ ],
+ "homepage": "http://yargs.js.org/",
+ "keywords": [
+ "argument",
+ "args",
+ "option",
+ "parser",
+ "parsing",
+ "cli",
+ "command"
+ ],
+ "license": "MIT",
+ "main": "./index.js",
+ "name": "yargs",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/yargs/yargs.git"
+ },
+ "scripts": {
+ "coverage": "nyc report --reporter=text-lcov | coveralls",
+ "posttest": "standard",
+ "release": "standard-version",
+ "test": "nyc --cache mocha --require ./test/before.js --timeout=8000 --check-leaks"
+ },
+ "standard": {
+ "ignore": [
+ "**/example/**"
+ ]
+ },
+ "version": "11.0.0"
+}
diff --git a/deps/npm/node_modules/yargs/yargs.js b/deps/npm/node_modules/yargs/yargs.js
new file mode 100644
index 0000000000..9b50b8bfeb
--- /dev/null
+++ b/deps/npm/node_modules/yargs/yargs.js
@@ -0,0 +1,1153 @@
+'use strict'
+const argsert = require('./lib/argsert')
+const fs = require('fs')
+const Command = require('./lib/command')
+const Completion = require('./lib/completion')
+const Parser = require('yargs-parser')
+const path = require('path')
+const Usage = require('./lib/usage')
+const Validation = require('./lib/validation')
+const Y18n = require('y18n')
+const objFilter = require('./lib/obj-filter')
+const setBlocking = require('set-blocking')
+const applyExtends = require('./lib/apply-extends')
+const YError = require('./lib/yerror')
+
+exports = module.exports = Yargs
+function Yargs (processArgs, cwd, parentRequire) {
+ processArgs = processArgs || [] // handle calling yargs().
+
+ const self = {}
+ let command = null
+ let completion = null
+ let groups = {}
+ let output = ''
+ let preservedGroups = {}
+ let usage = null
+ let validation = null
+
+ const y18n = Y18n({
+ directory: path.resolve(__dirname, './locales'),
+ updateFiles: false
+ })
+
+ if (!cwd) cwd = process.cwd()
+
+ self.$0 = process.argv
+ .slice(0, 2)
+ .map((x, i) => {
+ // ignore the node bin, specify this in your
+ // bin file with #!/usr/bin/env node
+ if (i === 0 && /\b(node|iojs)(\.exe)?$/.test(x)) return
+ const b = rebase(cwd, x)
+ return x.match(/^(\/|([a-zA-Z]:)?\\)/) && b.length < x.length ? b : x
+ })
+ .join(' ').trim()
+
+ if (process.env._ !== undefined && process.argv[1] === process.env._) {
+ self.$0 = process.env._.replace(
+ `${path.dirname(process.execPath)}/`, ''
+ )
+ }
+
+ // use context object to keep track of resets, subcommand execution, etc
+ // submodules should modify and check the state of context as necessary
+ const context = { resets: -1, commands: [], fullCommands: [], files: [] }
+ self.getContext = () => context
+
+ // puts yargs back into an initial state. any keys
+ // that have been set to "global" will not be reset
+ // by this action.
+ let options
+ self.resetOptions = self.reset = function resetOptions (aliases) {
+ context.resets++
+ aliases = aliases || {}
+ options = options || {}
+ // put yargs back into an initial state, this
+ // logic is used to build a nested command
+ // hierarchy.
+ const tmpOptions = {}
+ tmpOptions.local = options.local ? options.local : []
+ tmpOptions.configObjects = options.configObjects ? options.configObjects : []
+
+ // if a key has been explicitly set as local,
+ // we should reset it before passing options to command.
+ const localLookup = {}
+ tmpOptions.local.forEach((l) => {
+ localLookup[l] = true
+ ;(aliases[l] || []).forEach((a) => {
+ localLookup[a] = true
+ })
+ })
+
+ // preserve all groups not set to local.
+ preservedGroups = Object.keys(groups).reduce((acc, groupName) => {
+ const keys = groups[groupName].filter(key => !(key in localLookup))
+ if (keys.length > 0) {
+ acc[groupName] = keys
+ }
+ return acc
+ }, {})
+ // groups can now be reset
+ groups = {}
+
+ const arrayOptions = [
+ 'array', 'boolean', 'string', 'skipValidation',
+ 'count', 'normalize', 'number'
+ ]
+
+ const objectOptions = [
+ 'narg', 'key', 'alias', 'default', 'defaultDescription',
+ 'config', 'choices', 'demandedOptions', 'demandedCommands', 'coerce'
+ ]
+
+ arrayOptions.forEach((k) => {
+ tmpOptions[k] = (options[k] || []).filter(k => !localLookup[k])
+ })
+
+ objectOptions.forEach((k) => {
+ tmpOptions[k] = objFilter(options[k], (k, v) => !localLookup[k])
+ })
+
+ tmpOptions.envPrefix = options.envPrefix
+ options = tmpOptions
+
+ // if this is the first time being executed, create
+ // instances of all our helpers -- otherwise just reset.
+ usage = usage ? usage.reset(localLookup) : Usage(self, y18n)
+ validation = validation ? validation.reset(localLookup) : Validation(self, usage, y18n)
+ command = command ? command.reset() : Command(self, usage, validation)
+ if (!completion) completion = Completion(self, usage, command)
+
+ completionCommand = null
+ output = ''
+ exitError = null
+ hasOutput = false
+ self.parsed = false
+
+ return self
+ }
+ self.resetOptions()
+
+ // temporary hack: allow "freezing" of reset-able state for parse(msg, cb)
+ let frozen
+ function freeze () {
+ frozen = {}
+ frozen.options = options
+ frozen.configObjects = options.configObjects.slice(0)
+ frozen.exitProcess = exitProcess
+ frozen.groups = groups
+ usage.freeze()
+ validation.freeze()
+ command.freeze()
+ frozen.strict = strict
+ frozen.completionCommand = completionCommand
+ frozen.output = output
+ frozen.exitError = exitError
+ frozen.hasOutput = hasOutput
+ frozen.parsed = self.parsed
+ }
+ function unfreeze () {
+ options = frozen.options
+ options.configObjects = frozen.configObjects
+ exitProcess = frozen.exitProcess
+ groups = frozen.groups
+ output = frozen.output
+ exitError = frozen.exitError
+ hasOutput = frozen.hasOutput
+ self.parsed = frozen.parsed
+ usage.unfreeze()
+ validation.unfreeze()
+ command.unfreeze()
+ strict = frozen.strict
+ completionCommand = frozen.completionCommand
+ parseFn = null
+ parseContext = null
+ frozen = undefined
+ }
+
+ self.boolean = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('boolean', keys)
+ return self
+ }
+
+ self.array = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('array', keys)
+ return self
+ }
+
+ self.number = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('number', keys)
+ return self
+ }
+
+ self.normalize = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('normalize', keys)
+ return self
+ }
+
+ self.count = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('count', keys)
+ return self
+ }
+
+ self.string = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('string', keys)
+ return self
+ }
+
+ self.requiresArg = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintObject(self.nargs, false, 'narg', keys, 1)
+ return self
+ }
+
+ self.skipValidation = function (keys) {
+ argsert('<array|string>', [keys], arguments.length)
+ populateParserHintArray('skipValidation', keys)
+ return self
+ }
+
+ function populateParserHintArray (type, keys, value) {
+ keys = [].concat(keys)
+ keys.forEach((key) => {
+ options[type].push(key)
+ })
+ }
+
+ self.nargs = function (key, value) {
+ argsert('<string|object|array> [number]', [key, value], arguments.length)
+ populateParserHintObject(self.nargs, false, 'narg', key, value)
+ return self
+ }
+
+ self.choices = function (key, value) {
+ argsert('<object|string|array> [string|array]', [key, value], arguments.length)
+ populateParserHintObject(self.choices, true, 'choices', key, value)
+ return self
+ }
+
+ self.alias = function (key, value) {
+ argsert('<object|string|array> [string|array]', [key, value], arguments.length)
+ populateParserHintObject(self.alias, true, 'alias', key, value)
+ return self
+ }
+
+ // TODO: actually deprecate self.defaults.
+ self.default = self.defaults = function (key, value, defaultDescription) {
+ argsert('<object|string|array> [*] [string]', [key, value, defaultDescription], arguments.length)
+ if (defaultDescription) options.defaultDescription[key] = defaultDescription
+ if (typeof value === 'function') {
+ if (!options.defaultDescription[key]) options.defaultDescription[key] = usage.functionDescription(value)
+ value = value.call()
+ }
+ populateParserHintObject(self.default, false, 'default', key, value)
+ return self
+ }
+
+ self.describe = function (key, desc) {
+ argsert('<object|string|array> [string]', [key, desc], arguments.length)
+ populateParserHintObject(self.describe, false, 'key', key, true)
+ usage.describe(key, desc)
+ return self
+ }
+
+ self.demandOption = function (keys, msg) {
+ argsert('<object|string|array> [string]', [keys, msg], arguments.length)
+ populateParserHintObject(self.demandOption, false, 'demandedOptions', keys, msg)
+ return self
+ }
+
+ self.coerce = function (keys, value) {
+ argsert('<object|string|array> [function]', [keys, value], arguments.length)
+ populateParserHintObject(self.coerce, false, 'coerce', keys, value)
+ return self
+ }
+
+ function populateParserHintObject (builder, isArray, type, key, value) {
+ if (Array.isArray(key)) {
+ // an array of keys with one value ['x', 'y', 'z'], function parse () {}
+ const temp = {}
+ key.forEach((k) => {
+ temp[k] = value
+ })
+ builder(temp)
+ } else if (typeof key === 'object') {
+ // an object of key value pairs: {'x': parse () {}, 'y': parse() {}}
+ Object.keys(key).forEach((k) => {
+ builder(k, key[k])
+ })
+ } else {
+ // a single key value pair 'x', parse() {}
+ if (isArray) {
+ options[type][key] = (options[type][key] || []).concat(value)
+ } else {
+ options[type][key] = value
+ }
+ }
+ }
+
+ function deleteFromParserHintObject (optionKey) {
+ // delete from all parsing hints:
+ // boolean, array, key, alias, etc.
+ Object.keys(options).forEach((hintKey) => {
+ const hint = options[hintKey]
+ if (Array.isArray(hint)) {
+ if (~hint.indexOf(optionKey)) hint.splice(hint.indexOf(optionKey), 1)
+ } else if (typeof hint === 'object') {
+ delete hint[optionKey]
+ }
+ })
+ // now delete the description from usage.js.
+ delete usage.getDescriptions()[optionKey]
+ }
+
+ self.config = function config (key, msg, parseFn) {
+ argsert('[object|string] [string|function] [function]', [key, msg, parseFn], arguments.length)
+ // allow a config object to be provided directly.
+ if (typeof key === 'object') {
+ key = applyExtends(key, cwd)
+ options.configObjects = (options.configObjects || []).concat(key)
+ return self
+ }
+
+ // allow for a custom parsing function.
+ if (typeof msg === 'function') {
+ parseFn = msg
+ msg = null
+ }
+
+ key = key || 'config'
+ self.describe(key, msg || usage.deferY18nLookup('Path to JSON config file'))
+ ;(Array.isArray(key) ? key : [key]).forEach((k) => {
+ options.config[k] = parseFn || true
+ })
+
+ return self
+ }
+
+ self.example = function (cmd, description) {
+ argsert('<string> [string]', [cmd, description], arguments.length)
+ usage.example(cmd, description)
+ return self
+ }
+
+ self.command = function (cmd, description, builder, handler, middlewares) {
+ argsert('<string|array|object> [string|boolean] [function|object] [function] [array]', [cmd, description, builder, handler, middlewares], arguments.length)
+ command.addHandler(cmd, description, builder, handler, middlewares)
+ return self
+ }
+
+ self.commandDir = function (dir, opts) {
+ argsert('<string> [object]', [dir, opts], arguments.length)
+ const req = parentRequire || require
+ command.addDirectory(dir, self.getContext(), req, require('get-caller-file')(), opts)
+ return self
+ }
+
+ // TODO: deprecate self.demand in favor of
+ // .demandCommand() .demandOption().
+ self.demand = self.required = self.require = function demand (keys, max, msg) {
+ // you can optionally provide a 'max' key,
+ // which will raise an exception if too many '_'
+ // options are provided.
+ if (Array.isArray(max)) {
+ max.forEach((key) => {
+ self.demandOption(key, msg)
+ })
+ max = Infinity
+ } else if (typeof max !== 'number') {
+ msg = max
+ max = Infinity
+ }
+
+ if (typeof keys === 'number') {
+ self.demandCommand(keys, max, msg, msg)
+ } else if (Array.isArray(keys)) {
+ keys.forEach((key) => {
+ self.demandOption(key, msg)
+ })
+ } else {
+ if (typeof msg === 'string') {
+ self.demandOption(keys, msg)
+ } else if (msg === true || typeof msg === 'undefined') {
+ self.demandOption(keys)
+ }
+ }
+
+ return self
+ }
+
+ self.demandCommand = function demandCommand (min, max, minMsg, maxMsg) {
+ argsert('[number] [number|string] [string|null|undefined] [string|null|undefined]', [min, max, minMsg, maxMsg], arguments.length)
+
+ if (typeof min === 'undefined') min = 1
+
+ if (typeof max !== 'number') {
+ minMsg = max
+ max = Infinity
+ }
+
+ self.global('_', false)
+
+ options.demandedCommands._ = {
+ min,
+ max,
+ minMsg,
+ maxMsg
+ }
+
+ return self
+ }
+
+ self.getDemandedOptions = () => {
+ argsert([], 0)
+ return options.demandedOptions
+ }
+
+ self.getDemandedCommands = () => {
+ argsert([], 0)
+ return options.demandedCommands
+ }
+
+ self.implies = function (key, value) {
+ argsert('<string|object> [number|string|array]', [key, value], arguments.length)
+ validation.implies(key, value)
+ return self
+ }
+
+ self.conflicts = function (key1, key2) {
+ argsert('<string|object> [string|array]', [key1, key2], arguments.length)
+ validation.conflicts(key1, key2)
+ return self
+ }
+
+ self.usage = function (msg, description, builder, handler) {
+ argsert('<string|null|undefined> [string|boolean] [function|object] [function]', [msg, description, builder, handler], arguments.length)
+
+ if (description !== undefined) {
+ // .usage() can be used as an alias for defining
+ // a default command.
+ if ((msg || '').match(/^\$0( |$)/)) {
+ return self.command(msg, description, builder, handler)
+ } else {
+ throw new YError('.usage() description must start with $0 if being used as alias for .command()')
+ }
+ } else {
+ usage.usage(msg)
+ return self
+ }
+ }
+
+ self.epilogue = self.epilog = function (msg) {
+ argsert('<string>', [msg], arguments.length)
+ usage.epilog(msg)
+ return self
+ }
+
+ self.fail = function (f) {
+ argsert('<function>', [f], arguments.length)
+ usage.failFn(f)
+ return self
+ }
+
+ self.check = function (f, _global) {
+ argsert('<function> [boolean]', [f, _global], arguments.length)
+ validation.check(f, _global !== false)
+ return self
+ }
+
+ self.global = function global (globals, global) {
+ argsert('<string|array> [boolean]', [globals, global], arguments.length)
+ globals = [].concat(globals)
+ if (global !== false) {
+ options.local = options.local.filter(l => globals.indexOf(l) === -1)
+ } else {
+ globals.forEach((g) => {
+ if (options.local.indexOf(g) === -1) options.local.push(g)
+ })
+ }
+ return self
+ }
+
+ self.pkgConf = function pkgConf (key, path) {
+ argsert('<string> [string]', [key, path], arguments.length)
+ let conf = null
+ // prefer cwd to require-main-filename in this method
+ // since we're looking for e.g. "nyc" config in nyc consumer
+ // rather than "yargs" config in nyc (where nyc is the main filename)
+ const obj = pkgUp(path || cwd)
+
+ // If an object exists in the key, add it to options.configObjects
+ if (obj[key] && typeof obj[key] === 'object') {
+ conf = applyExtends(obj[key], path || cwd)
+ options.configObjects = (options.configObjects || []).concat(conf)
+ }
+
+ return self
+ }
+
+ const pkgs = {}
+ function pkgUp (path) {
+ const npath = path || '*'
+ if (pkgs[npath]) return pkgs[npath]
+ const findUp = require('find-up')
+
+ let obj = {}
+ try {
+ const pkgJsonPath = findUp.sync('package.json', {
+ cwd: path || require('path').dirname(require('require-main-filename')(parentRequire || require)),
+ normalize: false
+ })
+ obj = JSON.parse(fs.readFileSync(pkgJsonPath))
+ } catch (noop) {}
+
+ pkgs[npath] = obj || {}
+ return pkgs[npath]
+ }
+
+ let parseFn = null
+ let parseContext = null
+ self.parse = function parse (args, shortCircuit, _parseFn) {
+ argsert('[string|array] [function|boolean|object] [function]', [args, shortCircuit, _parseFn], arguments.length)
+ if (typeof args === 'undefined') args = processArgs
+
+ // a context object can optionally be provided, this allows
+ // additional information to be passed to a command handler.
+ if (typeof shortCircuit === 'object') {
+ parseContext = shortCircuit
+ shortCircuit = _parseFn
+ }
+
+ // by providing a function as a second argument to
+ // parse you can capture output that would otherwise
+ // default to printing to stdout/stderr.
+ if (typeof shortCircuit === 'function') {
+ parseFn = shortCircuit
+ shortCircuit = null
+ }
+ // completion short-circuits the parsing process,
+ // skipping validation, etc.
+ if (!shortCircuit) processArgs = args
+
+ freeze()
+ if (parseFn) exitProcess = false
+
+ const parsed = self._parseArgs(args, shortCircuit)
+ if (parseFn) parseFn(exitError, parsed, output)
+ unfreeze()
+
+ return parsed
+ }
+
+ self._getParseContext = () => parseContext || {}
+
+ self._hasParseCallback = () => !!parseFn
+
+ self.option = self.options = function option (key, opt) {
+ argsert('<string|object> [object]', [key, opt], arguments.length)
+ if (typeof key === 'object') {
+ Object.keys(key).forEach((k) => {
+ self.options(k, key[k])
+ })
+ } else {
+ if (typeof opt !== 'object') {
+ opt = {}
+ }
+
+ options.key[key] = true // track manually set keys.
+
+ if (opt.alias) self.alias(key, opt.alias)
+
+ const demand = opt.demand || opt.required || opt.require
+
+ // deprecated, use 'demandOption' instead
+ if (demand) {
+ self.demand(key, demand)
+ }
+
+ if (opt.demandOption) {
+ self.demandOption(key, typeof opt.demandOption === 'string' ? opt.demandOption : undefined)
+ }
+
+ if ('conflicts' in opt) {
+ self.conflicts(key, opt.conflicts)
+ }
+
+ if ('default' in opt) {
+ self.default(key, opt.default)
+ }
+
+ if ('implies' in opt) {
+ self.implies(key, opt.implies)
+ }
+
+ if ('nargs' in opt) {
+ self.nargs(key, opt.nargs)
+ }
+
+ if (opt.config) {
+ self.config(key, opt.configParser)
+ }
+
+ if (opt.normalize) {
+ self.normalize(key)
+ }
+
+ if ('choices' in opt) {
+ self.choices(key, opt.choices)
+ }
+
+ if ('coerce' in opt) {
+ self.coerce(key, opt.coerce)
+ }
+
+ if ('group' in opt) {
+ self.group(key, opt.group)
+ }
+
+ if (opt.boolean || opt.type === 'boolean') {
+ self.boolean(key)
+ if (opt.alias) self.boolean(opt.alias)
+ }
+
+ if (opt.array || opt.type === 'array') {
+ self.array(key)
+ if (opt.alias) self.array(opt.alias)
+ }
+
+ if (opt.number || opt.type === 'number') {
+ self.number(key)
+ if (opt.alias) self.number(opt.alias)
+ }
+
+ if (opt.string || opt.type === 'string') {
+ self.string(key)
+ if (opt.alias) self.string(opt.alias)
+ }
+
+ if (opt.count || opt.type === 'count') {
+ self.count(key)
+ }
+
+ if (typeof opt.global === 'boolean') {
+ self.global(key, opt.global)
+ }
+
+ if (opt.defaultDescription) {
+ options.defaultDescription[key] = opt.defaultDescription
+ }
+
+ if (opt.skipValidation) {
+ self.skipValidation(key)
+ }
+
+ const desc = opt.describe || opt.description || opt.desc
+ if (!opt.hidden) {
+ self.describe(key, desc)
+ }
+
+ if (opt.requiresArg) {
+ self.requiresArg(key)
+ }
+ }
+
+ return self
+ }
+ self.getOptions = () => options
+
+ self.positional = function (key, opts) {
+ argsert('<string> <object>', [key, opts], arguments.length)
+ if (context.resets === 0) {
+ throw new YError(".positional() can only be called in a command's builder function")
+ }
+
+ // .positional() only supports a subset of the configuration
+ // options availble to .option().
+ const supportedOpts = ['default', 'implies', 'normalize',
+ 'choices', 'conflicts', 'coerce', 'type', 'describe',
+ 'desc', 'description', 'alias']
+ opts = objFilter(opts, (k, v) => {
+ let accept = supportedOpts.indexOf(k) !== -1
+ // type can be one of string|number|boolean.
+ if (k === 'type' && ['string', 'number', 'boolean'].indexOf(v) === -1) accept = false
+ return accept
+ })
+
+ // copy over any settings that can be inferred from the command string.
+ const fullCommand = context.fullCommands[context.fullCommands.length - 1]
+ const parseOptions = fullCommand ? command.cmdToParseOptions(fullCommand) : {
+ array: [],
+ alias: {},
+ default: {},
+ demand: {}
+ }
+ Object.keys(parseOptions).forEach((pk) => {
+ if (Array.isArray(parseOptions[pk])) {
+ if (parseOptions[pk].indexOf(key) !== -1) opts[pk] = true
+ } else {
+ if (parseOptions[pk][key] && !(pk in opts)) opts[pk] = parseOptions[pk][key]
+ }
+ })
+ self.group(key, usage.getPositionalGroupName())
+ return self.option(key, opts)
+ }
+
+ self.group = function group (opts, groupName) {
+ argsert('<string|array> <string>', [opts, groupName], arguments.length)
+ const existing = preservedGroups[groupName] || groups[groupName]
+ if (preservedGroups[groupName]) {
+ // we now only need to track this group name in groups.
+ delete preservedGroups[groupName]
+ }
+
+ const seen = {}
+ groups[groupName] = (existing || []).concat(opts).filter((key) => {
+ if (seen[key]) return false
+ return (seen[key] = true)
+ })
+ return self
+ }
+ // combine explicit and preserved groups. explicit groups should be first
+ self.getGroups = () => Object.assign({}, groups, preservedGroups)
+
+ // as long as options.envPrefix is not undefined,
+ // parser will apply env vars matching prefix to argv
+ self.env = function (prefix) {
+ argsert('[string|boolean]', [prefix], arguments.length)
+ if (prefix === false) options.envPrefix = undefined
+ else options.envPrefix = prefix || ''
+ return self
+ }
+
+ self.wrap = function (cols) {
+ argsert('<number|null|undefined>', [cols], arguments.length)
+ usage.wrap(cols)
+ return self
+ }
+
+ let strict = false
+ self.strict = function (enabled) {
+ argsert('[boolean]', [enabled], arguments.length)
+ strict = enabled !== false
+ return self
+ }
+ self.getStrict = () => strict
+
+ self.showHelp = function (level) {
+ argsert('[string|function]', [level], arguments.length)
+ if (!self.parsed) self._parseArgs(processArgs) // run parser, if it has not already been executed.
+ if (command.hasDefaultCommand()) {
+ context.resets++ // override the restriction on top-level positoinals.
+ command.runDefaultBuilderOn(self, true)
+ }
+ usage.showHelp(level)
+ return self
+ }
+
+ let versionOpt = null
+ self.version = function version (opt, msg, ver) {
+ const defaultVersionOpt = 'version'
+ argsert('[boolean|string] [string] [string]', [opt, msg, ver], arguments.length)
+
+ // nuke the key previously configured
+ // to return version #.
+ if (versionOpt) {
+ deleteFromParserHintObject(versionOpt)
+ usage.version(undefined)
+ versionOpt = null
+ }
+
+ if (arguments.length === 0) {
+ ver = guessVersion()
+ opt = defaultVersionOpt
+ } else if (arguments.length === 1) {
+ if (opt === false) { // disable default 'version' key.
+ return self
+ }
+ ver = opt
+ opt = defaultVersionOpt
+ } else if (arguments.length === 2) {
+ ver = msg
+ msg = null
+ }
+
+ versionOpt = typeof opt === 'string' ? opt : defaultVersionOpt
+ msg = msg || usage.deferY18nLookup('Show version number')
+
+ usage.version(ver || undefined)
+ self.boolean(versionOpt)
+ self.describe(versionOpt, msg)
+ return self
+ }
+
+ function guessVersion () {
+ const obj = pkgUp()
+
+ return obj.version || 'unknown'
+ }
+
+ let helpOpt = null
+ self.addHelpOpt = self.help = function addHelpOpt (opt, msg) {
+ const defaultHelpOpt = 'help'
+ argsert('[string|boolean] [string]', [opt, msg], arguments.length)
+
+ // nuke the key previously configured
+ // to return help.
+ if (helpOpt) {
+ deleteFromParserHintObject(helpOpt)
+ helpOpt = null
+ }
+
+ if (arguments.length === 1) {
+ if (opt === false) return self
+ }
+
+ // use arguments, fallback to defaults for opt and msg
+ helpOpt = typeof opt === 'string' ? opt : defaultHelpOpt
+ self.boolean(helpOpt)
+ self.describe(helpOpt, msg || usage.deferY18nLookup('Show help'))
+ return self
+ }
+
+ self.showHelpOnFail = function showHelpOnFail (enabled, message) {
+ argsert('[boolean|string] [string]', [enabled, message], arguments.length)
+ usage.showHelpOnFail(enabled, message)
+ return self
+ }
+
+ var exitProcess = true
+ self.exitProcess = function (enabled) {
+ argsert('[boolean]', [enabled], arguments.length)
+ if (typeof enabled !== 'boolean') {
+ enabled = true
+ }
+ exitProcess = enabled
+ return self
+ }
+ self.getExitProcess = () => exitProcess
+
+ var completionCommand = null
+ self.completion = function (cmd, desc, fn) {
+ argsert('[string] [string|boolean|function] [function]', [cmd, desc, fn], arguments.length)
+
+ // a function to execute when generating
+ // completions can be provided as the second
+ // or third argument to completion.
+ if (typeof desc === 'function') {
+ fn = desc
+ desc = null
+ }
+
+ // register the completion command.
+ completionCommand = cmd || 'completion'
+ if (!desc && desc !== false) {
+ desc = 'generate bash completion script'
+ }
+ self.command(completionCommand, desc)
+
+ // a function can be provided
+ if (fn) completion.registerFunction(fn)
+
+ return self
+ }
+
+ self.showCompletionScript = function ($0) {
+ argsert('[string]', [$0], arguments.length)
+ $0 = $0 || self.$0
+ _logger.log(completion.generateCompletionScript($0, completionCommand))
+ return self
+ }
+
+ self.getCompletion = function (args, done) {
+ argsert('<array> <function>', [args, done], arguments.length)
+ completion.getCompletion(args, done)
+ }
+
+ self.locale = function (locale) {
+ argsert('[string]', [locale], arguments.length)
+ if (arguments.length === 0) {
+ guessLocale()
+ return y18n.getLocale()
+ }
+ detectLocale = false
+ y18n.setLocale(locale)
+ return self
+ }
+
+ self.updateStrings = self.updateLocale = function (obj) {
+ argsert('<object>', [obj], arguments.length)
+ detectLocale = false
+ y18n.updateLocale(obj)
+ return self
+ }
+
+ let detectLocale = true
+ self.detectLocale = function (detect) {
+ argsert('<boolean>', [detect], arguments.length)
+ detectLocale = detect
+ return self
+ }
+ self.getDetectLocale = () => detectLocale
+
+ var hasOutput = false
+ var exitError = null
+ // maybe exit, always capture
+ // context about why we wanted to exit.
+ self.exit = (code, err) => {
+ hasOutput = true
+ exitError = err
+ if (exitProcess) process.exit(code)
+ }
+
+ // we use a custom logger that buffers output,
+ // so that we can print to non-CLIs, e.g., chat-bots.
+ const _logger = {
+ log () {
+ const args = []
+ for (let i = 0; i < arguments.length; i++) args.push(arguments[i])
+ if (!self._hasParseCallback()) console.log.apply(console, args)
+ hasOutput = true
+ if (output.length) output += '\n'
+ output += args.join(' ')
+ },
+ error () {
+ const args = []
+ for (let i = 0; i < arguments.length; i++) args.push(arguments[i])
+ if (!self._hasParseCallback()) console.error.apply(console, args)
+ hasOutput = true
+ if (output.length) output += '\n'
+ output += args.join(' ')
+ }
+ }
+ self._getLoggerInstance = () => _logger
+ // has yargs output an error our help
+ // message in the current execution context.
+ self._hasOutput = () => hasOutput
+
+ self._setHasOutput = () => {
+ hasOutput = true
+ }
+
+ let recommendCommands
+ self.recommendCommands = function (recommend) {
+ argsert('[boolean]', [recommend], arguments.length)
+ recommendCommands = typeof recommend === 'boolean' ? recommend : true
+ return self
+ }
+
+ self.getUsageInstance = () => usage
+
+ self.getValidationInstance = () => validation
+
+ self.getCommandInstance = () => command
+
+ self.terminalWidth = () => {
+ argsert([], 0)
+ return typeof process.stdout.columns !== 'undefined' ? process.stdout.columns : null
+ }
+
+ Object.defineProperty(self, 'argv', {
+ get: () => self._parseArgs(processArgs),
+ enumerable: true
+ })
+
+ self._parseArgs = function parseArgs (args, shortCircuit, _skipValidation, commandIndex) {
+ let skipValidation = !!_skipValidation
+ args = args || processArgs
+
+ options.__ = y18n.__
+ options.configuration = pkgUp()['yargs'] || {}
+
+ const parsed = Parser.detailed(args, options)
+ let argv = parsed.argv
+ if (parseContext) argv = Object.assign({}, argv, parseContext)
+ const aliases = parsed.aliases
+
+ argv.$0 = self.$0
+ self.parsed = parsed
+
+ try {
+ guessLocale() // guess locale lazily, so that it can be turned off in chain.
+
+ // while building up the argv object, there
+ // are two passes through the parser. If completion
+ // is being performed short-circuit on the first pass.
+ if (shortCircuit) {
+ return argv
+ }
+
+ // if there's a handler associated with a
+ // command defer processing to it.
+ if (helpOpt) {
+ // consider any multi-char helpOpt alias as a valid help command
+ // unless all helpOpt aliases are single-char
+ // note that parsed.aliases is a normalized bidirectional map :)
+ const helpCmds = [helpOpt]
+ .concat(aliases[helpOpt] || [])
+ .filter(k => k.length > 1)
+ // check if help should trigger and strip it from _.
+ if (~helpCmds.indexOf(argv._[argv._.length - 1])) {
+ argv._.pop()
+ argv[helpOpt] = true
+ }
+ }
+ const handlerKeys = command.getCommands()
+ const skipDefaultCommand = argv[helpOpt] && (handlerKeys.length > 1 || handlerKeys[0] !== '$0')
+
+ if (argv._.length) {
+ if (handlerKeys.length) {
+ let firstUnknownCommand
+ for (let i = (commandIndex || 0), cmd; argv._[i] !== undefined; i++) {
+ cmd = String(argv._[i])
+ if (~handlerKeys.indexOf(cmd) && cmd !== completionCommand) {
+ setPlaceholderKeys(argv)
+ // commands are executed using a recursive algorithm that executes
+ // the deepest command first; we keep track of the position in the
+ // argv._ array that is currently being executed.
+ return command.runCommand(cmd, self, parsed, i + 1)
+ } else if (!firstUnknownCommand && cmd !== completionCommand) {
+ firstUnknownCommand = cmd
+ break
+ }
+ }
+
+ // run the default command, if defined
+ if (command.hasDefaultCommand() && !skipDefaultCommand) {
+ setPlaceholderKeys(argv)
+ return command.runCommand(null, self, parsed)
+ }
+
+ // recommend a command if recommendCommands() has
+ // been enabled, and no commands were found to execute
+ if (recommendCommands && firstUnknownCommand && !argv[helpOpt]) {
+ validation.recommendCommands(firstUnknownCommand, handlerKeys)
+ }
+ }
+
+ // generate a completion script for adding to ~/.bashrc.
+ if (completionCommand && ~argv._.indexOf(completionCommand) && !argv[completion.completionKey]) {
+ if (exitProcess) setBlocking(true)
+ self.showCompletionScript()
+ self.exit(0)
+ }
+ } else if (command.hasDefaultCommand() && !skipDefaultCommand) {
+ setPlaceholderKeys(argv)
+ return command.runCommand(null, self, parsed)
+ }
+
+ // we must run completions first, a user might
+ // want to complete the --help or --version option.
+ if (completion.completionKey in argv) {
+ if (exitProcess) setBlocking(true)
+
+ // we allow for asynchronous completions,
+ // e.g., loading in a list of commands from an API.
+ const completionArgs = args.slice(args.indexOf(`--${completion.completionKey}`) + 1)
+ completion.getCompletion(completionArgs, (completions) => {
+ ;(completions || []).forEach((completion) => {
+ _logger.log(completion)
+ })
+
+ self.exit(0)
+ })
+ return setPlaceholderKeys(argv)
+ }
+
+ // Handle 'help' and 'version' options
+ // if we haven't already output help!
+ if (!hasOutput) {
+ Object.keys(argv).forEach((key) => {
+ if (key === helpOpt && argv[key]) {
+ if (exitProcess) setBlocking(true)
+
+ skipValidation = true
+ self.showHelp('log')
+ self.exit(0)
+ } else if (key === versionOpt && argv[key]) {
+ if (exitProcess) setBlocking(true)
+
+ skipValidation = true
+ usage.showVersion()
+ self.exit(0)
+ }
+ })
+ }
+
+ // Check if any of the options to skip validation were provided
+ if (!skipValidation && options.skipValidation.length > 0) {
+ skipValidation = Object.keys(argv).some(key => options.skipValidation.indexOf(key) >= 0 && argv[key] === true)
+ }
+
+ // If the help or version options where used and exitProcess is false,
+ // or if explicitly skipped, we won't run validations.
+ if (!skipValidation) {
+ if (parsed.error) throw new YError(parsed.error.message)
+
+ // if we're executed via bash completion, don't
+ // bother with validation.
+ if (!argv[completion.completionKey]) {
+ self._runValidation(argv, aliases, {}, parsed.error)
+ }
+ }
+ } catch (err) {
+ if (err instanceof YError) usage.fail(err.message, err)
+ else throw err
+ }
+
+ return setPlaceholderKeys(argv)
+ }
+
+ self._runValidation = function runValidation (argv, aliases, positionalMap, parseErrors) {
+ if (parseErrors) throw new YError(parseErrors.message)
+ validation.nonOptionCount(argv)
+ validation.requiredArguments(argv)
+ if (strict) validation.unknownArguments(argv, aliases, positionalMap)
+ validation.customChecks(argv, aliases)
+ validation.limitedChoices(argv)
+ validation.implications(argv)
+ validation.conflicting(argv)
+ }
+
+ function guessLocale () {
+ if (!detectLocale) return
+
+ try {
+ const osLocale = require('os-locale')
+ self.locale(osLocale.sync({ spawn: false }))
+ } catch (err) {
+ // if we explode looking up locale just noop
+ // we'll keep using the default language 'en'.
+ }
+ }
+
+ function setPlaceholderKeys (argv) {
+ Object.keys(options.key).forEach((key) => {
+ // don't set placeholder keys for dot
+ // notation options 'foo.bar'.
+ if (~key.indexOf('.')) return
+ if (typeof argv[key] === 'undefined') argv[key] = undefined
+ })
+ return argv
+ }
+
+ // an app should almost always have --version and --help,
+ // if you *really* want to disable this use .help(false)/.version(false).
+ self.help()
+ self.version()
+
+ return self
+}
+
+// rebase an absolute path to a relative one with respect to a base directory
+// exported for tests
+exports.rebase = rebase
+function rebase (base, dir) {
+ return path.relative(base, dir)
+}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index fb2b04c1b5..9926248eeb 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "5.6.0",
+ "version": "6.1.0",
"name": "npm",
"description": "a package manager for JavaScript",
"keywords": [
@@ -33,102 +33,116 @@
"npx": "./bin/npx-cli.js"
},
"dependencies": {
- "JSONStream": "~1.3.1",
+ "JSONStream": "^1.3.2",
"abbrev": "~1.1.1",
"ansi-regex": "~3.0.0",
"ansicolors": "~0.3.2",
"ansistyles": "~0.1.3",
"aproba": "~1.2.0",
"archy": "~1.0.0",
- "bin-links": "^1.1.0",
+ "bin-links": "^1.1.2",
"bluebird": "~3.5.1",
- "cacache": "~10.0.1",
+ "byte-size": "^4.0.3",
+ "cacache": "^11.0.2",
"call-limit": "~1.1.0",
"chownr": "~1.0.1",
+ "cli-columns": "^3.1.2",
"cli-table2": "~0.2.0",
"cmd-shim": "~2.0.2",
"columnify": "~1.5.4",
"config-chain": "~1.1.11",
"detect-indent": "~5.0.0",
+ "detect-newline": "^2.1.0",
"dezalgo": "~1.0.3",
"editor": "~1.0.0",
- "find-npm-prefix": "~1.0.1",
+ "figgy-pudding": "^3.1.0",
+ "find-npm-prefix": "^1.0.2",
"fs-vacuum": "~1.2.10",
"fs-write-stream-atomic": "~1.0.10",
"gentle-fs": "^2.0.1",
"glob": "~7.1.2",
"graceful-fs": "~4.1.11",
"has-unicode": "~2.0.1",
- "hosted-git-info": "~2.5.0",
- "iferr": "~0.1.5",
+ "hosted-git-info": "^2.6.0",
+ "iferr": "^1.0.0",
"inflight": "~1.0.6",
"inherits": "~2.0.3",
- "ini": "~1.3.4",
- "init-package-json": "~1.10.1",
- "is-cidr": "~1.0.0",
+ "ini": "^1.3.5",
+ "init-package-json": "^1.10.3",
+ "is-cidr": "^2.0.5",
+ "json-parse-better-errors": "^1.0.2",
"lazy-property": "~1.0.0",
- "libnpx": "~9.7.1",
- "lockfile": "~1.0.3",
+ "libcipm": "^2.0.0",
+ "libnpmhook": "^4.0.1",
+ "libnpx": "^10.2.0",
+ "lock-verify": "^2.0.2",
+ "lockfile": "^1.0.4",
"lodash._baseuniq": "~4.6.0",
"lodash.clonedeep": "~4.5.0",
"lodash.union": "~4.6.0",
"lodash.uniq": "~4.5.0",
"lodash.without": "~4.4.0",
- "lru-cache": "~4.1.1",
+ "lru-cache": "^4.1.3",
"meant": "~1.0.1",
- "mississippi": "~1.3.0",
+ "mississippi": "^3.0.0",
"mkdirp": "~0.5.1",
"move-concurrently": "^1.0.1",
+ "node-gyp": "^3.6.2",
"nopt": "~4.0.1",
"normalize-package-data": "~2.4.0",
+ "npm-audit-report": "^1.2.1",
"npm-cache-filename": "~1.0.2",
"npm-install-checks": "~3.0.0",
- "npm-lifecycle": "~2.0.0",
- "npm-package-arg": "~6.0.0",
+ "npm-lifecycle": "^2.0.3",
+ "npm-package-arg": "^6.1.0",
"npm-packlist": "~1.1.10",
- "npm-profile": "~2.0.5",
- "npm-registry-client": "~8.5.0",
+ "npm-pick-manifest": "^2.1.0",
+ "npm-profile": "^3.0.1",
+ "npm-registry-client": "^8.5.1",
+ "npm-registry-fetch": "^1.1.0",
"npm-user-validate": "~1.0.0",
"npmlog": "~4.1.2",
"once": "~1.4.0",
"opener": "~1.4.3",
- "osenv": "~0.1.4",
- "pacote": "^7.0.2",
+ "osenv": "^0.1.5",
+ "pacote": "^8.1.6",
"path-is-inside": "~1.0.2",
"promise-inflight": "~1.0.1",
- "qrcode-terminal": "~0.11.0",
- "query-string": "~5.0.1",
+ "qrcode-terminal": "^0.12.0",
+ "query-string": "^6.1.0",
"qw": "~1.0.1",
"read": "~1.0.7",
"read-cmd-shim": "~1.0.1",
"read-installed": "~4.0.3",
- "read-package-json": "~2.0.12",
- "read-package-tree": "~5.1.6",
- "readable-stream": "~2.3.3",
- "request": "~2.83.0",
- "retry": "~0.10.1",
+ "read-package-json": "^2.0.13",
+ "read-package-tree": "^5.2.1",
+ "readable-stream": "^2.3.6",
+ "request": "^2.86.0",
+ "retry": "^0.12.0",
"rimraf": "~2.6.2",
- "safe-buffer": "~5.1.1",
- "semver": "~5.4.1",
+ "safe-buffer": "^5.1.2",
+ "semver": "^5.5.0",
"sha": "~2.0.1",
"slide": "~1.1.6",
"sorted-object": "~2.0.1",
"sorted-union-stream": "~2.1.3",
- "ssri": "~5.0.0",
+ "ssri": "^6.0.0",
"strip-ansi": "~4.0.0",
- "tar": "^4.0.2",
+ "tar": "^4.4.3",
"text-table": "~0.2.0",
+ "tiny-relative-date": "^1.3.0",
"uid-number": "0.0.6",
"umask": "~1.1.0",
"unique-filename": "~1.1.0",
"unpipe": "~1.0.0",
- "update-notifier": "~2.3.0",
- "uuid": "~3.1.0",
+ "update-notifier": "^2.5.0",
+ "uuid": "^3.2.1",
+ "validate-npm-package-license": "^3.0.3",
"validate-npm-package-name": "~3.0.0",
"which": "~1.3.0",
- "worker-farm": "~1.5.1",
+ "worker-farm": "^1.6.0",
"wrappy": "~1.0.2",
- "write-file-atomic": "~2.1.0"
+ "write-file-atomic": "^2.3.0"
},
"bundleDependencies": [
"abbrev",
@@ -137,6 +151,7 @@
"ansistyles",
"aproba",
"archy",
+ "byte-size",
"cacache",
"call-limit",
"bluebird",
@@ -148,8 +163,10 @@
"config-chain",
"debuglog",
"detect-indent",
+ "detect-newline",
"dezalgo",
"editor",
+ "figgy-pudding",
"find-npm-prefix",
"fs-vacuum",
"fs-write-stream-atomic",
@@ -165,8 +182,11 @@
"ini",
"init-package-json",
"is-cidr",
+ "json-parse-better-errors",
"JSONStream",
"lazy-property",
+ "libcipm",
+ "libnpmhook",
"libnpx",
"lockfile",
"lodash._baseindexof",
@@ -187,13 +207,16 @@
"move-concurrently",
"nopt",
"normalize-package-data",
+ "npm-audit-report",
"npm-cache-filename",
"npm-lifecycle",
"npm-install-checks",
"npm-package-arg",
"npm-packlist",
+ "npm-pick-manifest",
"npm-profile",
"npm-registry-client",
+ "npm-registry-fetch",
"npm-user-validate",
"npmlog",
"once",
@@ -236,26 +259,30 @@
"wrappy",
"write-file-atomic",
"safe-buffer",
- "worker-farm"
+ "worker-farm",
+ "tiny-relative-date",
+ "cli-columns",
+ "node-gyp",
+ "lock-verify"
],
"devDependencies": {
"deep-equal": "~1.0.1",
- "marked": "~0.3.6",
+ "marked": "^0.3.19",
"marked-man": "~0.2.1",
- "npm-registry-couchapp": "~2.7.0",
+ "npm-registry-couchapp": "^2.7.1",
"npm-registry-mock": "~1.1.0",
- "require-inject": "~1.4.2",
+ "require-inject": "^1.4.3",
"sprintf-js": "~1.1.1",
- "standard": "~6.0.8",
+ "standard": "^11.0.1",
"tacks": "~1.2.6",
- "tap": "~10.7.2"
+ "tap": "^11.1.5"
},
"scripts": {
"dumpconf": "env | grep npm | sort | uniq",
- "prepare": "node bin/npm-cli.js --no-timing prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc",
+ "prepare": "node bin/npm-cli.js --no-audit --no-timing prune --prefix=. --no-global && rimraf test/*/*/node_modules && make -j4 doc",
"preversion": "bash scripts/update-authors.sh && git add AUTHORS && git commit -m \"update AUTHORS\" || true",
- "tap": "tap --timeout 300",
- "tap-cover": "tap --nyc-arg='--cache' --coverage --timeout 600",
+ "tap": "tap --reporter=classic --timeout 300",
+ "tap-cover": "tap --reporter=classic --nyc-arg='--cache' --coverage --timeout 600",
"test": "standard && npm run test-tap",
"test-coverage": "npm run tap-cover -- \"test/tap/*.js\" \"test/network/*.js\" \"test/broken-under-*/*.js\"",
"test-tap": "npm run tap -- \"test/tap/*.js\" \"test/network/*.js\" \"test/broken-under-*/*.js\"",
diff --git a/deps/npm/scripts/changelog.js b/deps/npm/scripts/changelog.js
index 07c8eef94a..ff6e43e385 100644
--- a/deps/npm/scripts/changelog.js
+++ b/deps/npm/scripts/changelog.js
@@ -29,7 +29,7 @@ function shortname (url) {
}
}
-function print_commit (c) {
+function printCommit (c) {
console.log(`* [\`${c.shortid}\`](https://github.com/npm/npm/commit/${c.fullid})`)
if (c.fixes) {
let label = shortname(c.fixes)
@@ -51,10 +51,10 @@ function print_commit (c) {
.replace(/^[-a-z]+: /, '')
.replace(/^/mg, ' ')
.replace(/\n$/, '')
- // backtickify package@version
+ // backtickify package@version
.replace(/^(\s*[^@\s]+@\d+[.]\d+[.]\d+)(\s*\S)/g, '$1:$2')
.replace(/\b([^@\s]+@\d+[.]\d+[.]\d+)\b/g, '`$1`')
- // linkify commitids
+ // linkify commitids
.replace(/\b([a-f0-9]{7,8})\b/g, '[`$1`](https://github.com/npm/npm/commit/$1)')
.replace(/\b#(\d+)\b/g, '[#$1](https://github.com/npm/npm/issues/$1)')
console.log(msg)
@@ -71,9 +71,9 @@ function main () {
let commit
log.forEach(function (line) {
let m
- /*eslint no-cond-assign:0*/
+ /* eslint no-cond-assign:0 */
if (/^---$/.test(line)) {
- print_commit(commit)
+ printCommit(commit)
} else if (m = line.match(/^([a-f0-9]{7,9}) ([a-f0-9]+) (?:[(]([^)]+)[)] )?(.*?) [(](.*?)[)]/)) {
commit = {
shortid: m[1],
diff --git a/deps/npm/scripts/index-build.js b/deps/npm/scripts/index-build.js
index 058bc74019..e782716d77 100755
--- a/deps/npm/scripts/index-build.js
+++ b/deps/npm/scripts/index-build.js
@@ -18,10 +18,10 @@ glob(root + '/{README.md,doc/*/*.md}', function (er, files) {
return f
}).sort(function (a, b) {
return (a[0] === b[0])
- ? (path.basename(a[1]) === 'npm.md' ? -1
- : path.basename(b[1]) === 'npm.md' ? 1
- : a[1] > b[1] ? 1 : -1)
- : a[0] - b[0]
+ ? (path.basename(a[1]) === 'npm.md' ? -1
+ : path.basename(b[1]) === 'npm.md' ? 1
+ : a[1] > b[1] ? 1 : -1)
+ : a[0] - b[0]
}))
})
diff --git a/deps/npm/scripts/maketest b/deps/npm/scripts/maketest
index a71cadbc8c..118eb5fbc7 100755
--- a/deps/npm/scripts/maketest
+++ b/deps/npm/scripts/maketest
@@ -1,6 +1,6 @@
#!/usr/bin/env node
'use strict'
-var loadFromDir = require('tacks/load-from-dir.js')
+const loadFromDir = require('tacks/load-from-dir.js')
process.exit(main(process.argv.slice(2)))
@@ -9,7 +9,7 @@ function main (argv) {
console.error('Usage: maketest <fixturedir>')
return 1
}
- var fixturedir = process.argv[2]
+ const fixturedir = process.argv[2]
console.log(generateFromDir(fixturedir))
return 0
@@ -20,27 +20,26 @@ function indent (ind, str) {
}
function generateFromDir (dir) {
- var tacks = loadFromDir(dir)
+ const tacks = loadFromDir(dir)
return `'use strict'
-var path = require('path')
-var test = require('tap').test
-var mr = require('npm-registry-mock')
-var Tacks = require('tacks')
-var File = Tacks.File
-var Symlink = Tacks.Symlink
-var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
-var common = require('../common-tap.js')
+const path = require('path')
+const test = require('tap').test
+const mr = require('npm-registry-mock')
+const Tacks = require('tacks')
+const File = Tacks.File
+const Symlink = Tacks.Symlink
+const Dir = Tacks.Dir
+const common = require('../common-tap.js')
-var basedir = path.join(__dirname, path.basename(__filename, '.js'))
-var testdir = path.join(basedir, 'testdir')
-var cachedir = path.join(basedir, 'cache')
-var globaldir = path.join(basedir, 'global')
-var tmpdir = path.join(basedir, 'tmp')
+const basedir = path.join(__dirname, path.basename(__filename, '.js'))
+const testdir = path.join(basedir, 'testdir')
+const cachedir = path.join(basedir, 'cache')
+const globaldir = path.join(basedir, 'global')
+const tmpdir = path.join(basedir, 'tmp')
-var conf = {
+const conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
@@ -49,8 +48,8 @@ var conf = {
})
}
-var server
-var fixture = new Tacks(Dir({
+let server
+const fixture = new Tacks(Dir({
cache: Dir(),
global: Dir(),
tmp: Dir(),
diff --git a/deps/npm/scripts/release.sh b/deps/npm/scripts/release.sh
index 1a0c3b6875..705f21502a 100644
--- a/deps/npm/scripts/release.sh
+++ b/deps/npm/scripts/release.sh
@@ -12,6 +12,7 @@ node ./bin/npm-cli.js pack --loglevel error >/dev/null
mv *.tgz release
cd release
tar xzf *.tgz
+cp -r ../test package/
mkdir node_modules
mv package node_modules/npm
@@ -32,5 +33,7 @@ mv "node_modules/$tarname" .
rm -rf *.cmd
rm -rf node_modules
+cd ..
+
echo "release/$tarname"
echo "release/$zipname"
diff --git a/deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js b/deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js
index 61fe229bcf..6209319b41 100644
--- a/deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js
+++ b/deps/npm/test/broken-under-nyc-and-travis/lifecycle-path.js
@@ -162,8 +162,8 @@ function checkPath (testconfig, t) {
})
// get the ones we tacked on, then the system-specific requirements
- var expectedPaths = ['{{ROOT}}/bin/node-gyp-bin',
- '{{PKG}}/node_modules/.bin']
+ var expectedPaths = ['{{ROOT}}/node_modules/npm-lifecycle/node-gyp-bin',
+ '{{PKG}}/node_modules/.bin']
// Check that the behaviour matches the configuration that was actually
// used by the child process, as the coverage tooling may set the
diff --git a/deps/npm/test/common-tap.js b/deps/npm/test/common-tap.js
index 16475411e1..feb6918720 100644
--- a/deps/npm/test/common-tap.js
+++ b/deps/npm/test/common-tap.js
@@ -1,8 +1,9 @@
'use strict'
+/* eslint-disable camelcase */
+
var fs = require('graceful-fs')
var readCmdShim = require('read-cmd-shim')
var isWindows = require('../lib/utils/is-windows.js')
-var extend = Object.assign || require('util')._extend
var Bluebird = require('bluebird')
// cheesy hackaround for test deps (read: nock) that rely on setImmediate
@@ -21,6 +22,8 @@ exports.registry = 'http://localhost:' + port
const ourenv = {}
ourenv.npm_config_loglevel = 'error'
ourenv.npm_config_progress = 'false'
+ourenv.npm_config_metrics = 'false'
+ourenv.npm_config_audit = 'false'
var npm_config_cache = path.resolve(__dirname, 'npm_cache')
ourenv.npm_config_cache = exports.npm_config_cache = npm_config_cache
@@ -52,7 +55,7 @@ exports.npm = function (cmd, opts, cb) {
}
cb = once(cb)
cmd = [bin].concat(cmd)
- opts = extend({}, opts || {})
+ opts = Object.assign({}, opts || {})
opts.env = opts.env || process.env
if (opts.env._storage) opts.env = Object.assign({}, opts.env._storage)
@@ -62,6 +65,9 @@ exports.npm = function (cmd, opts, cb) {
if (!opts.env.npm_config_send_metrics) {
opts.env.npm_config_send_metrics = 'false'
}
+ if (!opts.env.npm_config_audit) {
+ opts.env.npm_config_audit = 'false'
+ }
nodeBin = opts.nodeExecPath || nodeBin
@@ -139,6 +145,20 @@ exports.pendIfWindows = function (why) {
process.exit(0)
}
+let mr
+exports.withServer = cb => {
+ if (!mr) { mr = Bluebird.promisify(require('npm-registry-mock')) }
+ return mr({port: port++, throwOnUnmatched: true})
+ .tap(server => {
+ server.registry = exports.registry.replace(exports.port, server.port)
+ return cb(server)
+ })
+ .then((server) => {
+ server.done()
+ return server.close()
+ })
+}
+
exports.newEnv = function () {
return new Environment(process.env)
}
@@ -158,7 +178,7 @@ function Environment (env) {
if (env instanceof Environment) return env.clone()
Object.defineProperty(this, '_storage', {
- value: extend({}, env)
+ value: Object.assign({}, env)
})
}
Environment.prototype = {}
diff --git a/deps/npm/test/fixtures/config/.npmrc b/deps/npm/test/fixtures/config/.npmrc
new file mode 100644
index 0000000000..7d59bd8be1
--- /dev/null
+++ b/deps/npm/test/fixtures/config/.npmrc
@@ -0,0 +1 @@
+just = testing
diff --git a/deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js b/deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js
index 77463e8bea..fadfc330fb 100644
--- a/deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js
+++ b/deps/npm/test/need-npm5-update/belongs-in-pacote/add-remote-git-get-resolved.js
@@ -88,7 +88,7 @@ test('add-remote-git#get-resolved edge cases', function (t) {
'git+ssh://user@bananaboat.com:galbi/blah.git#decadacefadabade',
'don\'t break non-hosted scp-style locations'
)
-/*
+ /*
t.equal(
tryGetResolved('git+ssh://bananaboat:galbi/blah', 'decadacefadabade'),
'git+ssh://bananaboat:galbi/blah#decadacefadabade',
diff --git a/deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js b/deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js
index c6c27d5040..60136125d4 100644
--- a/deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js
+++ b/deps/npm/test/need-npm5-update/belongs-in-pacote/git-races.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
var execFile = require('child_process').execFile
var path = require('path')
var zlib = require('zlib')
diff --git a/deps/npm/test/need-npm5-update/legacy-npm-self-install.js b/deps/npm/test/need-npm5-update/legacy-npm-self-install.js
index d9d1124bda..6bcd807362 100644
--- a/deps/npm/test/need-npm5-update/legacy-npm-self-install.js
+++ b/deps/npm/test/need-npm5-update/legacy-npm-self-install.js
@@ -9,7 +9,6 @@ var osenv = require('osenv')
var npmpath = path.resolve(__dirname, '../..')
var basepath = path.resolve(osenv.tmpdir(), path.basename(__filename, '.js'))
var globalpath = path.resolve(basepath, 'global')
-var extend = Object.assign || require('util')._extend
var isWin32 = process.platform === 'win32'
test('setup', function (t) {
@@ -41,7 +40,7 @@ function exists () {
test('npm-self-install', function (t) {
if (!tarball) return t.done()
- var env = extend({}, process.env)
+ var env = Object.assign({}, process.env)
var pathsep = isWin32 ? ';' : ':'
env.npm_config_prefix = globalpath
env.npm_config_global = 'true'
diff --git a/deps/npm/test/need-npm5-update/lifecycle-signal.js b/deps/npm/test/need-npm5-update/lifecycle-signal.js
index c0fdb766c0..a003fb54ab 100644
--- a/deps/npm/test/need-npm5-update/lifecycle-signal.js
+++ b/deps/npm/test/need-npm5-update/lifecycle-signal.js
@@ -19,7 +19,7 @@ asyncScript += '});setInterval(function(){},10);'
var zombieScript = 'console.error(process.pid);process.on(\'SIGINT\',function (){'
zombieScript += '});setInterval(function(){console.error(process.pid)},10);'
-var SIGSEGV = require('constants').SIGSEGV
+var SIGSEGV = require('constants').SIGSEGV // eslint-disable-line node/no-deprecated-api
var json = {
name: 'lifecycle-signal',
diff --git a/deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js b/deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js
index 4e487837ad..a00c720243 100644
--- a/deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js
+++ b/deps/npm/test/need-npm5-update/move-no-clobber-dest-node-modules.js
@@ -15,8 +15,8 @@ function File (contents) {
return {
type: 'file',
contents: typeof contents === 'object'
- ? JSON.stringify(contents)
- : contents
+ ? JSON.stringify(contents)
+ : contents
}
}
@@ -64,7 +64,7 @@ var fixtures = Dir({
version: '1.0.0'
})
}),
-// The local config
+ // The local config
'package.json': File({
dependencies: {
moda: fixturepath('moda@1.0.1'),
diff --git a/deps/npm/test/need-npm5-update/outdated-depth-integer.js b/deps/npm/test/need-npm5-update/outdated-depth-integer.js
index 5e743a0a77..98c08fa192 100644
--- a/deps/npm/test/need-npm5-update/outdated-depth-integer.js
+++ b/deps/npm/test/need-npm5-update/outdated-depth-integer.js
@@ -45,8 +45,8 @@ test('outdated depth integer', function (t) {
pkg,
'underscore',
undefined, // no version installed
- '1.3.1', // wanted
- '1.5.1', // latest
+ '1.3.1', // wanted
+ '1.5.1', // latest
'1.3.1',
null
]]
@@ -58,7 +58,7 @@ test('outdated depth integer', function (t) {
registry: common.registry,
depth: 5
}
- , function () {
+ , function () {
npm.install('request@0.9.0', function (er) {
if (er) throw new Error(er)
npm.outdated(function (err, d) {
diff --git a/deps/npm/test/need-npm5-update/outdated-symlink.js b/deps/npm/test/need-npm5-update/outdated-symlink.js
index a7792f4a31..2f74e0551a 100644
--- a/deps/npm/test/need-npm5-update/outdated-symlink.js
+++ b/deps/npm/test/need-npm5-update/outdated-symlink.js
@@ -10,11 +10,10 @@ var common = require('../common-tap.js')
var pkg = path.resolve(__dirname, 'outdated-symlink')
var cache = path.resolve(pkg, 'cache')
-var extend = Object.assign || require('util')._extend
var fakeRoot = path.join(pkg, 'fakeRoot')
var OPTS = {
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
'npm_config_prefix': fakeRoot,
'registry': common.registry
})
diff --git a/deps/npm/test/need-npm5-update/peer-deps-toplevel.js b/deps/npm/test/need-npm5-update/peer-deps-toplevel.js
index e2285e7699..137375a232 100644
--- a/deps/npm/test/need-npm5-update/peer-deps-toplevel.js
+++ b/deps/npm/test/need-npm5-update/peer-deps-toplevel.js
@@ -5,7 +5,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -16,7 +15,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/need-npm5-update/rm-linked.js b/deps/npm/test/need-npm5-update/rm-linked.js
index 381d7bc67a..9123b8760e 100644
--- a/deps/npm/test/need-npm5-update/rm-linked.js
+++ b/deps/npm/test/need-npm5-update/rm-linked.js
@@ -27,7 +27,7 @@ var linkedJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
dependencies: {
'baz': '1.0.0'
@@ -42,7 +42,7 @@ var linkedDepJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
@@ -54,7 +54,7 @@ var installJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
dependencies: {
'foo': '1.0.0'
diff --git a/deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js b/deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js
index 156721507f..abafde0afe 100644
--- a/deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js
+++ b/deps/npm/test/need-npm5-update/shrinkwrap-complete-except-dev.js
@@ -6,7 +6,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -22,7 +21,7 @@ var installedModuleD = path.join(appdir, 'node_modules', 'module-d')
var conf = {
cwd: appdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/network/git-cache-locking.js b/deps/npm/test/network/git-cache-locking.js
index 29ab5709b9..9c3e903bea 100644
--- a/deps/npm/test/network/git-cache-locking.js
+++ b/deps/npm/test/network/git-cache-locking.js
@@ -6,7 +6,6 @@ var mkdirp = require('mkdirp')
var pkg = path.resolve(__dirname, 'git-cache-locking')
var tmp = path.join(pkg, 'tmp')
var cache = path.join(pkg, 'cache')
-var shallowClone = Object.assign || require('util')._extend
test('setup', function (t) {
rimraf.sync(pkg)
@@ -18,7 +17,7 @@ test('git-cache-locking: install a git dependency', function (t) {
// disable git integration tests on Travis.
if (process.env.TRAVIS) return t.end()
- var gitEnv = shallowClone({}, process.env)
+ var gitEnv = Object.assign({}, process.env)
gitEnv.npm_config_cache = cache
gitEnv.npm_config_tmp = tmp
gitEnv.npm_config_prefix = pkg
diff --git a/deps/npm/test/network/registry.js b/deps/npm/test/network/registry.js
index d8ec4a204e..3dbe23ffd2 100644
--- a/deps/npm/test/network/registry.js
+++ b/deps/npm/test/network/registry.js
@@ -26,10 +26,8 @@ if (v[0] === 0 && v[1] < 10) {
})
}
-var extend = Object.assign || require('util')._extend
-
function runTests () {
- var env = extend({ TAP: 1 }, process.env)
+ var env = Object.assign({ TAP: 1 }, process.env)
env.npm = npmExec
// TODO: fix tap and / or nyc to handle nested invocations properly
env.COVERALLS_REPO_TOKEN = ''
diff --git a/deps/npm/test/tap/00-verify-ls-ok.js b/deps/npm/test/tap/00-verify-ls-ok.js
index 2d20e500b7..edff251d76 100644
--- a/deps/npm/test/tap/00-verify-ls-ok.js
+++ b/deps/npm/test/tap/00-verify-ls-ok.js
@@ -9,10 +9,19 @@ test('npm ls in npm', function (t) {
var files = fs.readdirSync(cwd)
t.notEqual(files.length, 0, 'ensure there are files in the directory we are to ls')
- var opt = { cwd: cwd, stdio: [ 'ignore', 'ignore', 2 ] }
- common.npm(['ls'], opt, function (err, code) {
+ var opt = { cwd: cwd, stdio: [ 'ignore', 'pipe', 2 ] }
+ common.npm(['ls', '--json'], opt, function (err, code, stdout) {
t.ifError(err, 'error should not exist')
t.equal(code, 0, 'npm ls exited with code')
+ const tree = JSON.parse(stdout).dependencies
+ // We need to have a toplevel `node-gyp` available, but we also need to
+ // make sure npm-lifecycle's version is updated in concert.
+ // See https://github.com/npm/npm/issues/20163
+ t.deepEqual(
+ tree['npm-lifecycle'].dependencies['node-gyp'].version,
+ tree['node-gyp'].version,
+ 'npm-lifecycle and npm using same version of node-gyp'
+ )
t.end()
})
})
diff --git a/deps/npm/test/tap/adduser-always-auth.js b/deps/npm/test/tap/adduser-always-auth.js
index 375c3ab262..d327e35a9e 100644
--- a/deps/npm/test/tap/adduser-always-auth.js
+++ b/deps/npm/test/tap/adduser-always-auth.js
@@ -33,10 +33,13 @@ function verifyStdout (runner, successMessage, t) {
function mocks (server) {
server.filteringRequestBody(function (r) {
- if (r.match(/\"_id\":\"org\.couchdb\.user:u\"/)) {
+ if (r.match(/"_id":"org\.couchdb\.user:u"/)) {
return 'auth'
+ } else {
+ return 'invalid'
}
})
+ server.post('/-/v1/login', 'invalid').reply(404, 'not found')
server.put('/-/user/org.couchdb.user:u', 'auth')
.reply(201, { username: 'u', password: 'p', email: 'u@p.me' })
}
@@ -50,18 +53,18 @@ test('npm login', function (t) {
'--loglevel', 'silent',
'--userconfig', outfile
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, /:always-auth=false/, 'always-auth is scoped and false (by default)')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, /:always-auth=false/, 'always-auth is scoped and false (by default)')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
})
- })
var message = 'Logged in as u on ' + common.registry + '/.'
runner.stdout.on('data', verifyStdout(runner, message, t))
@@ -80,36 +83,36 @@ test('npm login --scope <scope> uses <scope>:registry as its URI', function (t)
scope + ':registry',
uri
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
- mr({ port: port, plugin: mocks }, function (er, s) {
- var runner = common.npm(
- [
- 'login',
- '--loglevel', 'silent',
- '--userconfig', outfile,
- '--scope', scope
- ],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, new RegExp(scope + ':registry=' + uri), 'scope:registry is set')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
- })
- })
+ mr({ port: port, plugin: mocks }, function (er, s) {
+ var runner = common.npm(
+ [
+ 'login',
+ '--loglevel', 'silent',
+ '--userconfig', outfile,
+ '--scope', scope
+ ],
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, new RegExp(scope + ':registry=' + uri), 'scope:registry is set')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
+ })
- var message = 'Logged in as u to scope ' + scope + ' on ' + uri + '.'
- runner.stdout.on('data', verifyStdout(runner, message, t))
+ var message = 'Logged in as u to scope ' + scope + ' on ' + uri + '.'
+ runner.stdout.on('data', verifyStdout(runner, message, t))
+ })
})
- })
})
test('npm login --scope <scope> makes sure <scope> is prefixed by an @', function (t) {
@@ -125,36 +128,36 @@ test('npm login --scope <scope> makes sure <scope> is prefixed by an @', functio
prefixedScope + ':registry',
uri
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
- mr({ port: port, plugin: mocks }, function (er, s) {
- var runner = common.npm(
- [
- 'login',
- '--loglevel', 'silent',
- '--userconfig', outfile,
- '--scope', scope
- ],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, new RegExp(prefixedScope + ':registry=' + uri), 'scope:registry is set')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
- })
- })
+ mr({ port: port, plugin: mocks }, function (er, s) {
+ var runner = common.npm(
+ [
+ 'login',
+ '--loglevel', 'silent',
+ '--userconfig', outfile,
+ '--scope', scope
+ ],
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, new RegExp(prefixedScope + ':registry=' + uri), 'scope:registry is set')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
+ })
- var message = 'Logged in as u to scope ' + prefixedScope + ' on ' + uri + '.'
- runner.stdout.on('data', verifyStdout(runner, message, t))
+ var message = 'Logged in as u to scope ' + prefixedScope + ' on ' + uri + '.'
+ runner.stdout.on('data', verifyStdout(runner, message, t))
+ })
})
- })
})
test('npm login --scope <scope> --registry <registry> uses <registry> as its URI', function (t) {
@@ -167,37 +170,37 @@ test('npm login --scope <scope> --registry <registry> uses <registry> as its URI
scope + ':registry',
'invalidurl'
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
- mr({ port: common.port, plugin: mocks }, function (er, s) {
- var runner = common.npm(
- [
- 'login',
- '--registry', common.registry,
- '--loglevel', 'silent',
- '--userconfig', outfile,
- '--scope', scope
- ],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, new RegExp(scope + ':registry=' + common.registry), 'scope:registry is set')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
- })
- })
+ mr({ port: common.port, plugin: mocks }, function (er, s) {
+ var runner = common.npm(
+ [
+ 'login',
+ '--registry', common.registry,
+ '--loglevel', 'silent',
+ '--userconfig', outfile,
+ '--scope', scope
+ ],
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, new RegExp(scope + ':registry=' + common.registry), 'scope:registry is set')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
+ })
- var message = 'Logged in as u to scope ' + scope + ' on ' + common.registry + '/.'
- runner.stdout.on('data', verifyStdout(runner, message, t))
+ var message = 'Logged in as u to scope ' + scope + ' on ' + common.registry + '/.'
+ runner.stdout.on('data', verifyStdout(runner, message, t))
+ })
})
- })
})
test('npm login --always-auth', function (t) {
@@ -210,18 +213,18 @@ test('npm login --always-auth', function (t) {
'--userconfig', outfile,
'--always-auth'
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, /:always-auth=true/, 'always-auth is scoped and true')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, /:always-auth=true/, 'always-auth is scoped and true')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
})
- })
var message = 'Logged in as u on ' + common.registry + '/.'
runner.stdout.on('data', verifyStdout(runner, message, t))
@@ -238,18 +241,18 @@ test('npm login --no-always-auth', function (t) {
'--userconfig', outfile,
'--no-always-auth'
],
- opts,
- function (err, code) {
- t.notOk(code, 'exited OK')
- t.notOk(err, 'no error output')
- var config = fs.readFileSync(outfile, 'utf8')
- t.like(config, /:always-auth=false/, 'always-auth is scoped and false')
- s.close()
- rimraf(outfile, function (err) {
- t.ifError(err, 'removed config file OK')
- t.end()
+ opts,
+ function (err, code) {
+ t.notOk(code, 'exited OK')
+ t.notOk(err, 'no error output')
+ var config = fs.readFileSync(outfile, 'utf8')
+ t.like(config, /:always-auth=false/, 'always-auth is scoped and false')
+ s.close()
+ rimraf(outfile, function (err) {
+ t.ifError(err, 'removed config file OK')
+ t.end()
+ })
})
- })
var message = 'Logged in as u on ' + common.registry + '/.'
runner.stdout.on('data', verifyStdout(runner, message, t))
diff --git a/deps/npm/test/tap/adduser-legacy-auth.js b/deps/npm/test/tap/adduser-legacy-auth.js
index 67292cf06a..49015878f7 100644
--- a/deps/npm/test/tap/adduser-legacy-auth.js
+++ b/deps/npm/test/tap/adduser-legacy-auth.js
@@ -11,7 +11,7 @@ var opts = { cwd: __dirname }
var pkg = path.resolve(__dirname, 'adduser-legacy-auth')
var outfile = path.resolve(pkg, '_npmrc')
-var contents = '_auth=' + new Buffer('u:x').toString('base64') + '\n' +
+var contents = '_auth=' + Buffer.from('u:x').toString('base64') + '\n' +
'registry=https://nonexistent.lvh.me/registry\n' +
'email=u@p.me\n'
@@ -25,8 +25,11 @@ function mocks (server) {
server.filteringRequestBody(function (r) {
if (r.match(/"_id":"org\.couchdb\.user:u"/)) {
return 'auth'
+ } else {
+ return 'invalid'
}
})
+ server.post('/-/v1/login', 'invalid').reply(404, 'not found')
server.put('/-/user/org.couchdb.user:u', 'auth')
.reply(409, { error: 'user exists' })
server.get('/-/user/org.couchdb.user:u?write=true')
@@ -35,7 +38,7 @@ function mocks (server) {
'/-/user/org.couchdb.user:u/-rev/3-deadcafebabebeef',
'auth',
{ authorization: 'Basic dTpw' }
- ).reply(201, { username: 'u', password: 'p', email: 'u@p.me' })
+ ).reply(201, { username: 'u', password: 'p', email: 'u@p.me' })
}
test('setup', function (t) {
diff --git a/deps/npm/test/tap/adduser-oauth.js b/deps/npm/test/tap/adduser-oauth.js
index dc4ff895e0..04065048c4 100644
--- a/deps/npm/test/tap/adduser-oauth.js
+++ b/deps/npm/test/tap/adduser-oauth.js
@@ -20,8 +20,11 @@ function mocks (server) {
server.filteringRequestBody(function (r) {
if (r.match(/"_id":"org\.couchdb\.user:npm_oauth_auth_dummy_user"/)) {
return 'auth'
+ } else {
+ return 'invalid'
}
})
+ server.post('/-/v1/login', 'invalid').reply(404, 'not found')
server.put('/-/user/org.couchdb.user:npm_oauth_auth_dummy_user', 'auth')
.reply(201, { token: 'foo', sso: ssoUri })
}
@@ -30,7 +33,7 @@ test('setup', function (t) {
mkdirp.sync(pkg)
fs.writeFileSync(configfile, '')
var s = '#!/usr/bin/env bash\n' +
- 'echo \"$@\" > ' + outfile + '\n'
+ 'echo "$@" > ' + outfile + '\n'
fs.writeFileSync(fakeBrowser, s, 'ascii')
fs.chmodSync(fakeBrowser, '0755')
t.pass('made script')
@@ -42,7 +45,7 @@ test('npm login', function (t) {
s.get(
'/-/whoami', { authorization: 'Bearer foo' }
).max(1).reply(401, {})
- var runner = common.npm(
+ common.npm(
[
'login',
'--registry', common.registry,
@@ -66,15 +69,9 @@ test('npm login', function (t) {
}
)
- var buf = ''
- runner.stdout.on('data', function (chunk) {
- buf += chunk.toString('utf8')
- if (buf.match(/complete authentication/)) {
- s.get(
- '/-/whoami', { authorization: 'Bearer foo' }
- ).reply(200, { username: 'igotauthed' })
- }
- })
+ s.get(
+ '/-/whoami', { authorization: 'Bearer foo' }
+ ).reply(200, { username: 'igotauthed' })
})
})
diff --git a/deps/npm/test/tap/adduser-saml.js b/deps/npm/test/tap/adduser-saml.js
index 7fd1da2392..530ebb52b3 100644
--- a/deps/npm/test/tap/adduser-saml.js
+++ b/deps/npm/test/tap/adduser-saml.js
@@ -20,8 +20,11 @@ function mocks (server) {
server.filteringRequestBody(function (r) {
if (r.match(/"_id":"org\.couchdb\.user:npm_saml_auth_dummy_user"/)) {
return 'auth'
+ } else {
+ return 'invalid'
}
})
+ server.post('/-/v1/login', 'invalid').reply(404, 'not found')
server.put('/-/user/org.couchdb.user:npm_saml_auth_dummy_user', 'auth')
.reply(201, { token: 'foo', sso: ssoUri })
}
@@ -30,7 +33,7 @@ test('setup', function (t) {
mkdirp.sync(pkg)
fs.writeFileSync(configfile, '')
var s = '#!/usr/bin/env bash\n' +
- 'echo \"$@\" > ' + outfile + '\n'
+ 'echo "$@" > ' + outfile + '\n'
fs.writeFileSync(fakeBrowser, s, 'ascii')
fs.chmodSync(fakeBrowser, '0755')
t.pass('made script')
@@ -42,7 +45,7 @@ test('npm login', function (t) {
s.get(
'/-/whoami', { authorization: 'Bearer foo' }
).max(1).reply(401, {})
- var runner = common.npm(
+ common.npm(
[
'login',
'--registry', common.registry,
@@ -66,15 +69,9 @@ test('npm login', function (t) {
}
)
- var buf = ''
- runner.stdout.on('data', function (chunk) {
- buf += chunk.toString('utf8')
- if (buf.match(/complete authentication/)) {
- s.get(
- '/-/whoami', { authorization: 'Bearer foo' }
- ).reply(200, { username: 'igotauthed' })
- }
- })
+ s.get(
+ '/-/whoami', { authorization: 'Bearer foo' }
+ ).reply(200, { username: 'igotauthed' })
})
})
diff --git a/deps/npm/test/tap/anon-cli-metrics.js b/deps/npm/test/tap/anon-cli-metrics.js
index 2ece5a1e6c..100ca526cf 100644
--- a/deps/npm/test/tap/anon-cli-metrics.js
+++ b/deps/npm/test/tap/anon-cli-metrics.js
@@ -7,7 +7,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -19,7 +18,7 @@ var metricsFile = path.join(cachedir, 'anonymous-cli-metrics.json')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/audit-fix.js b/deps/npm/test/tap/audit-fix.js
new file mode 100644
index 0000000000..579d43a798
--- /dev/null
+++ b/deps/npm/test/tap/audit-fix.js
@@ -0,0 +1,669 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const common = BB.promisifyAll(require('../common-tap.js'))
+const fs = require('fs')
+const mr = BB.promisify(require('npm-registry-mock'))
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const Tacks = require('tacks')
+const tap = require('tap')
+const test = tap.test
+
+const Dir = Tacks.Dir
+const File = Tacks.File
+const testDir = path.join(__dirname, path.basename(__filename, '.js'))
+
+const EXEC_OPTS = { cwd: testDir }
+
+tap.tearDown(function () {
+ process.chdir(__dirname)
+ try {
+ rimraf.sync(testDir)
+ } catch (e) {
+ if (process.platform !== 'win32') {
+ throw e
+ }
+ }
+})
+
+function tmock (t) {
+ return mr({port: common.port}).then(s => {
+ t.tearDown(function () {
+ s.done()
+ s.close()
+ rimraf.sync(testDir)
+ })
+ return s
+ })
+}
+
+test('fixes shallow vulnerabilities', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ baddep: '1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits/quick', 'ok').reply(200, 'yeah')
+ srv.get('/baddep').twice().reply(200, {
+ name: 'baddep',
+ 'dist-tags': {
+ 'latest': '1.2.3'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'baddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.0.0.tgz'
+ }
+ },
+ '1.2.3': {
+ name: 'baddep',
+ version: '1.2.3',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.2.3.tgz'
+ }
+ }
+ }
+ })
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }]
+ }, 'installed bad version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [{
+ action: 'update',
+ module: 'baddep',
+ target: '1.2.3',
+ resolves: [{path: 'baddep'}]
+ }],
+ metadata: {
+ vulnerabilities: {
+ critical: 1
+ }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--json',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.2.3'
+ }]
+ }, 'reported dependency update')
+ t.similar(JSON.parse(fs.readFileSync(path.join(testDir, 'package-lock.json'), 'utf8')), {
+ dependencies: {
+ baddep: {
+ version: '1.2.3',
+ resolved: common.registry + '/idk/-/idk-1.2.3.tgz',
+ integrity: 'sha1-3q2+7w=='
+ }
+ }
+ }, 'pkglock updated correctly')
+ })
+ })
+ })
+})
+
+test('fixes nested dep vulnerabilities', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ gooddep: '^1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits/quick', 'ok').reply(200, 'yeah')
+ srv.get('/baddep').reply(200, {
+ name: 'baddep',
+ 'dist-tags': {
+ 'latest': '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'baddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'c0ffee',
+ integrity: 'sha1-c0ffee',
+ tarball: common.registry + '/baddep/-/baddep-1.0.0.tgz'
+ }
+ },
+ '1.2.3': {
+ name: 'baddep',
+ version: '1.2.3',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'bada55',
+ integrity: 'sha1-bada55',
+ tarball: common.registry + '/baddep/-/baddep-1.2.3.tgz'
+ }
+ }
+ }
+ })
+
+ srv.get('/gooddep').reply(200, {
+ name: 'gooddep',
+ 'dist-tags': {
+ 'latest': '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'gooddep',
+ version: '1.0.0',
+ dependencies: {
+ baddep: '^1.0.0'
+ },
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: '1234',
+ tarball: common.registry + '/gooddep/-/gooddep-1.0.0.tgz'
+ }
+ },
+ '1.2.3': {
+ name: 'gooddep',
+ version: '1.2.3',
+ _hasShrinkwrap: false,
+ dependencies: {
+ baddep: '^1.0.0'
+ },
+ dist: {
+ shasum: '123456',
+ tarball: common.registry + '/gooddep/-/gooddep-1.2.3.tgz'
+ }
+ }
+ }
+ })
+
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--global-style',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }, {
+ action: 'add',
+ name: 'gooddep',
+ version: '1.0.0'
+ }]
+ }, 'installed bad version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [{
+ action: 'update',
+ module: 'baddep',
+ target: '1.2.3',
+ resolves: [{path: 'gooddep>baddep'}]
+ }],
+ metadata: {
+ vulnerabilities: {
+ critical: 1
+ }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--offline',
+ '--json',
+ '--global-style',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.2.3'
+ }, {
+ action: 'add',
+ name: 'gooddep',
+ version: '1.0.0'
+ }]
+ }, 'reported dependency update')
+ t.similar(JSON.parse(fs.readFileSync(path.join(testDir, 'package-lock.json'), 'utf8')), {
+ dependencies: {
+ gooddep: {
+ version: '1.0.0',
+ resolved: common.registry + '/gooddep/-/gooddep-1.0.0.tgz',
+ integrity: 'sha1-EjQ=',
+ requires: {
+ baddep: '^1.0.0'
+ },
+ dependencies: {
+ baddep: {
+ version: '1.2.3',
+ resolved: common.registry + '/baddep/-/baddep-1.2.3.tgz',
+ integrity: 'sha1-bada55'
+ }
+ }
+ }
+ }
+ }, 'pkglock updated correctly')
+ })
+ })
+ })
+})
+
+test('no semver-major without --force', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ baddep: '1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits/quick', 'ok').reply(200, 'yeah')
+ srv.get('/baddep').twice().reply(200, {
+ name: 'baddep',
+ 'dist-tags': {
+ 'latest': '2.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'baddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.0.0.tgz'
+ }
+ },
+ '2.0.0': {
+ name: 'baddep',
+ version: '2.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-2.0.0.tgz'
+ }
+ }
+ }
+ })
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }]
+ }, 'installed bad version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [{
+ action: 'install',
+ module: 'baddep',
+ target: '2.0.0',
+ isMajor: true,
+ resolves: [{path: 'baddep'}]
+ }],
+ metadata: {
+ vulnerabilities: {
+ critical: 1
+ }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--loglevel=warn',
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.match(stdout, /breaking changes/, 'informs about semver-major')
+ t.match(stdout, /npm audit fix --force/, 'recommends --force')
+ t.similar(JSON.parse(fs.readFileSync(path.join(testDir, 'package-lock.json'), 'utf8')), {
+ dependencies: {
+ baddep: {
+ version: '1.0.0'
+ }
+ }
+ }, 'pkglock not updated')
+ })
+ })
+ })
+})
+
+test('semver-major when --force', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ baddep: '1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits/quick', 'ok').reply(200, 'yeah')
+ srv.get('/baddep').twice().reply(200, {
+ name: 'baddep',
+ 'dist-tags': {
+ 'latest': '2.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'baddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.0.0.tgz'
+ }
+ },
+ '2.0.0': {
+ name: 'baddep',
+ version: '2.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-2.0.0.tgz'
+ }
+ }
+ }
+ })
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }]
+ }, 'installed bad version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [{
+ action: 'install',
+ module: 'baddep',
+ target: '2.0.0',
+ isMajor: true,
+ resolves: [{path: 'baddep'}]
+ }],
+ metadata: {
+ vulnerabilities: {
+ critical: 1
+ }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--force',
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.match(stdout, /breaking changes/, 'informs about semver-major')
+ t.similar(JSON.parse(fs.readFileSync(path.join(testDir, 'package-lock.json'), 'utf8')), {
+ dependencies: {
+ baddep: {
+ version: '2.0.0'
+ }
+ }
+ }, 'pkglock not updated')
+ })
+ })
+ })
+})
+
+test('no installs for review-requires', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ baddep: '1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'k')
+ srv.post('/-/npm/v1/security/audits/quick', 'k').reply(200, 'yeah')
+ srv.get('/baddep').twice().reply(200, {
+ name: 'baddep',
+ 'dist-tags': {
+ 'latest': '1.2.3'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'baddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.0.0.tgz'
+ }
+ },
+ '1.2.3': {
+ name: 'baddep',
+ version: '1.2.3',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.2.3.tgz'
+ }
+ }
+ }
+ })
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }]
+ }, 'installed bad version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [{
+ action: 'review',
+ module: 'baddep',
+ target: '1.2.3',
+ resolves: [{path: 'baddep'}]
+ }],
+ metadata: {
+ vulnerabilities: {
+ critical: 1
+ }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--json',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'baddep',
+ version: '1.0.0'
+ }]
+ }, 'no update for dependency')
+ })
+ })
+ })
+})
+
+test('nothing to fix', t => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'foo',
+ version: '1.0.0',
+ dependencies: {
+ gooddep: '1.0.0'
+ }
+ })
+ }))
+ fixture.create(testDir)
+ return tmock(t).then(srv => {
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits/quick', 'ok').reply(200, 'yeah')
+ srv.get('/gooddep').twice().reply(200, {
+ name: 'gooddep',
+ 'dist-tags': {
+ 'latest': '1.2.3'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'gooddep',
+ version: '1.0.0',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.0.0.tgz'
+ }
+ },
+ '1.2.3': {
+ name: 'gooddep',
+ version: '1.2.3',
+ _hasShrinkwrap: false,
+ dist: {
+ shasum: 'deadbeef',
+ tarball: common.registry + '/idk/-/idk-1.2.3.tgz'
+ }
+ }
+ }
+ })
+ return common.npm([
+ 'install',
+ '--audit',
+ '--json',
+ '--package-lock-only',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'gooddep',
+ version: '1.0.0'
+ }]
+ }, 'installed good version')
+ srv.filteringRequestBody(req => 'ok')
+ srv.post('/-/npm/v1/security/audits', 'ok').reply(200, {
+ actions: [],
+ metadata: {
+ vulnerabilities: { }
+ }
+ })
+ return common.npm([
+ 'audit', 'fix',
+ '--package-lock-only',
+ '--json',
+ '--registry', common.registry,
+ '--cache', path.join(testDir, 'npm-cache')
+ ], EXEC_OPTS).then(([code, stdout, stderr]) => {
+ t.equal(code, 0, 'exited OK')
+ t.comment(stderr)
+ t.similar(JSON.parse(stdout), {
+ added: [{
+ action: 'add',
+ name: 'gooddep',
+ version: '1.0.0'
+ }]
+ }, 'nothing to update')
+ })
+ })
+ })
+})
+
+test('cleanup', t => {
+ return rimraf(testDir)
+})
diff --git a/deps/npm/test/tap/auto-prune.js b/deps/npm/test/tap/auto-prune.js
new file mode 100644
index 0000000000..3fa5d5d05b
--- /dev/null
+++ b/deps/npm/test/tap/auto-prune.js
@@ -0,0 +1,147 @@
+'use strict'
+const path = require('path')
+const test = require('tap').test
+const mr = require('npm-registry-mock')
+const Tacks = require('tacks')
+const File = Tacks.File
+const Dir = Tacks.Dir
+const common = require('../common-tap.js')
+
+const basedir = path.join(__dirname, path.basename(__filename, '.js'))
+const testdir = path.join(basedir, 'testdir')
+const cachedir = path.join(basedir, 'cache')
+const globaldir = path.join(basedir, 'global')
+const tmpdir = path.join(basedir, 'tmp')
+
+const conf = {
+ cwd: testdir,
+ env: Object.assign({}, process.env, {
+ npm_config_cache: cachedir,
+ npm_config_tmp: tmpdir,
+ npm_config_prefix: globaldir,
+ npm_config_registry: common.registry,
+ npm_config_loglevel: 'warn'
+ })
+}
+
+let server
+const fixture = new Tacks(Dir({
+ cache: Dir(),
+ global: Dir(),
+ tmp: Dir(),
+ testdir: Dir({
+ node_modules: Dir({
+ minimist: Dir({
+ 'package.json': File({
+ _integrity: 'sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=',
+ _resolved: 'https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz',
+ name: 'minimist',
+ version: '0.0.8'
+ })
+ }),
+ mkdirp: Dir({
+ 'package.json': File({
+ _integrity: 'sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=',
+ _resolved: 'https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz',
+ dependencies: {
+ minimist: '0.0.8'
+ },
+ name: 'mkdirp',
+ version: '0.5.1'
+ })
+ }),
+ null: Dir({
+ 'package.json': File({
+ _integrity: 'sha1-WoIdUnAxMlyG06AasQFzKgkfoew=',
+ _resolved: 'https://registry.npmjs.org/null/-/null-1.0.1.tgz',
+ _spec: 'null',
+ name: 'null',
+ version: '1.0.1'
+ })
+ })
+ }),
+ 'package-lock.json': File({
+ name: 'with-lock',
+ version: '1.0.0',
+ lockfileVersion: 1,
+ requires: true,
+ dependencies: {
+ minimist: {
+ version: '0.0.8',
+ resolved: 'https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz',
+ integrity: 'sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0='
+ },
+ mkdirp: {
+ version: '0.5.1',
+ resolved: 'https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz',
+ integrity: 'sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=',
+ requires: {
+ minimist: '0.0.8'
+ }
+ }
+ }
+ }),
+ 'package.json': File({
+ name: 'with-lock',
+ version: '1.0.0',
+ dependencies: {
+ mkdirp: '^0.5.1'
+ }
+ })
+ })
+}))
+
+function setup () {
+ cleanup()
+ fixture.create(basedir)
+}
+
+function cleanup () {
+ fixture.remove(basedir)
+}
+
+test('setup', function (t) {
+ setup()
+ mr({port: common.port, throwOnUnmatched: true}, function (err, s) {
+ if (err) throw err
+ server = s
+ t.done()
+ })
+})
+
+test('auto-prune w/ package-lock', function (t) {
+ common.npm(['install', '--dry-run', '--json'], conf, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'command ran ok')
+ t.comment(stderr.trim())
+ const result = JSON.parse(stdout)
+ t.is(result.added.length, 0, 'nothing added')
+ t.is(result.updated.length, 0, 'nothing updated')
+ t.is(result.moved.length, 0, 'nothing moved')
+ t.is(result.failed.length, 0, 'nothing failed')
+ t.is(result.removed.length, 1, 'pruned 1')
+ t.like(result, {'removed': [{'name': 'null'}]}, 'pruned the right one')
+ t.done()
+ })
+})
+
+test('auto-prune w/ --no-package-lock', function (t) {
+ common.npm(['install', '--dry-run', '--json', '--no-package-lock'], conf, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'command ran ok')
+ t.comment(stderr.trim())
+ const result = JSON.parse(stdout)
+ t.is(result.added.length, 0, 'nothing added')
+ t.is(result.updated.length, 0, 'nothing updated')
+ t.is(result.moved.length, 0, 'nothing moved')
+ t.is(result.failed.length, 0, 'nothing failed')
+ t.is(result.removed.length, 0, 'nothing pruned')
+ t.done()
+ })
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.done()
+})
diff --git a/deps/npm/test/tap/bugs.js b/deps/npm/test/tap/bugs.js
index 8b992fd7be..4d2ee37e13 100644
--- a/deps/npm/test/tap/bugs.js
+++ b/deps/npm/test/tap/bugs.js
@@ -14,7 +14,7 @@ var opts = { cwd: __dirname }
test('setup', function (t) {
var s = '#!/usr/bin/env bash\n' +
- 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n'
+ 'echo "$@" > ' + JSON.stringify(__dirname) + '/_output\n'
fs.writeFileSync(join(__dirname, '/_script.sh'), s, 'ascii')
fs.chmodSync(join(__dirname, '/_script.sh'), '0755')
t.pass('made script')
diff --git a/deps/npm/test/tap/builtin-config.js b/deps/npm/test/tap/builtin-config.js
index 22a447c9cf..b960ed0383 100644
--- a/deps/npm/test/tap/builtin-config.js
+++ b/deps/npm/test/tap/builtin-config.js
@@ -31,12 +31,12 @@ test('setup', function (t) {
test('install npm into first folder', function (t) {
t.plan(1)
var args = ['install', npm, '-g',
- '--prefix=' + folder + '/first',
- '--ignore-scripts',
- '--cache=' + folder + '/cache',
- '--tmp=' + folder + '/tmp',
- '--loglevel=warn',
- '--progress']
+ '--prefix=' + folder + '/first',
+ '--ignore-scripts',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp',
+ '--loglevel=warn',
+ '--progress']
common.npm(args, {}, function (er, code) {
if (er) throw er
t.equal(code, 0)
@@ -47,17 +47,17 @@ test('install npm into first folder', function (t) {
test('write npmrc file', function (t) {
t.plan(1)
common.npm(['explore', 'npm', '-g',
- '--prefix=' + folder + '/first',
- '--cache=' + folder + '/cache',
- '--tmp=' + folder + '/tmp',
- '--', node, __filename, 'write-builtin', process.pid
- ],
- {'stdio': 'inherit'},
- function (er, code) {
- if (er) throw er
- t.equal(code, 0)
- t.end()
- })
+ '--prefix=' + folder + '/first',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp',
+ '--', node, __filename, 'write-builtin', process.pid
+ ],
+ {'stdio': 'inherit'},
+ function (er, code) {
+ if (er) throw er
+ t.equal(code, 0)
+ t.end()
+ })
})
test('use first npm to install second npm', function (t) {
@@ -91,11 +91,11 @@ test('use first npm to install second npm', function (t) {
],
{}
)
- .on('error', function (er) { throw er })
- .on('close', function (code) {
- t.equal(code, 0, 'second npm install')
- t.end()
- })
+ .on('error', function (er) { throw er })
+ .on('close', function (code) {
+ t.equal(code, 0, 'second npm install')
+ t.end()
+ })
}
)
})
@@ -103,31 +103,31 @@ test('use first npm to install second npm', function (t) {
test('verify that the builtin config matches', function (t) {
t.plan(3)
common.npm([ 'root', '-g',
- '--prefix=' + folder + '/first',
- '--cache=' + folder + '/cache',
- '--tmp=' + folder + '/tmp'
- ], {},
- function (er, code, so) {
- if (er) throw er
- t.equal(code, 0)
- var firstRoot = so.trim()
- common.npm([ 'root', '-g',
- '--prefix=' + folder + '/second',
- '--cache=' + folder + '/cache',
- '--tmp=' + folder + '/tmp'
- ], {},
- function (er, code, so) {
- if (er) throw er
- t.equal(code, 0)
- var secondRoot = so.trim()
- var firstRc = path.resolve(firstRoot, 'npm', 'npmrc')
- var secondRc = path.resolve(secondRoot, 'npm', 'npmrc')
- var firstData = fs.readFileSync(firstRc, 'utf8').split(/\r?\n/)
- var secondData = fs.readFileSync(secondRc, 'utf8').split(/\r?\n/)
- t.isDeeply(firstData, secondData)
- t.end()
- })
- })
+ '--prefix=' + folder + '/first',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ], {},
+ function (er, code, so) {
+ if (er) throw er
+ t.equal(code, 0)
+ var firstRoot = so.trim()
+ common.npm([ 'root', '-g',
+ '--prefix=' + folder + '/second',
+ '--cache=' + folder + '/cache',
+ '--tmp=' + folder + '/tmp'
+ ], {},
+ function (er, code, so) {
+ if (er) throw er
+ t.equal(code, 0)
+ var secondRoot = so.trim()
+ var firstRc = path.resolve(firstRoot, 'npm', 'npmrc')
+ var secondRc = path.resolve(secondRoot, 'npm', 'npmrc')
+ var firstData = fs.readFileSync(firstRc, 'utf8').split(/\r?\n/)
+ var secondData = fs.readFileSync(secondRc, 'utf8').split(/\r?\n/)
+ t.isDeeply(firstData, secondData)
+ t.end()
+ })
+ })
})
test('clean', function (t) {
diff --git a/deps/npm/test/tap/bundled-dependencies-no-pkgjson.js b/deps/npm/test/tap/bundled-dependencies-no-pkgjson.js
deleted file mode 100644
index a7056408a9..0000000000
--- a/deps/npm/test/tap/bundled-dependencies-no-pkgjson.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var test = require('tap').test
-var path = require('path')
-var fs = require('graceful-fs')
-
-var mkdirp = require('mkdirp')
-var rimraf = require('rimraf')
-var common = require('../common-tap.js')
-
-var dir = path.resolve(__dirname, 'bundled-dependencies-no-pkgjson')
-var pkg = path.resolve(dir, 'pkg-with-bundled-dep')
-var dep = path.resolve(pkg, 'node_modules', 'a-bundled-dep')
-
-var pkgJson = JSON.stringify({
- name: 'pkg-with-bundled-dep',
- version: '1.0.0',
- dependencies: {
- },
- bundledDependencies: [
- 'a-bundled-dep'
- ]
-}, null, 2) + '\n'
-var packed
-
-test('setup', function (t) {
- rimraf.sync(dir)
- mkdirp.sync(path.join(dir, 'node_modules'))
- mkdirp.sync(dep)
-
- fs.writeFileSync(path.resolve(pkg, 'package.json'), pkgJson)
- fs.writeFileSync(path.resolve(dep, 'index.js'), '')
- common.npm(['pack', pkg], {cwd: dir}, function (err, code, stdout, stderr) {
- if (err) throw err
- t.is(code, 0, 'packed ok')
- packed = stdout.trim()
- t.comment(stderr)
- t.end()
- })
-})
-
-test('proper error on bundled dep with no package.json', function (t) {
- t.plan(2)
- var npmArgs = ['install', packed]
-
- common.npm(npmArgs, { cwd: dir }, function (err, code, stdout, stderr) {
- if (err) throw err
- t.notEqual(code, 0, 'npm ended in error')
- t.like(stderr, /ENOENT/, 'ENOENT should be in stderr')
- t.end()
- })
-})
-
-test('cleanup', function (t) {
- rimraf.sync(dir)
- t.end()
-})
diff --git a/deps/npm/test/tap/cache-add-unpublished.js b/deps/npm/test/tap/cache-add-unpublished.js
index 0d39ad815a..8966e43ae4 100644
--- a/deps/npm/test/tap/cache-add-unpublished.js
+++ b/deps/npm/test/tap/cache-add-unpublished.js
@@ -29,7 +29,7 @@ test('cache add', function (t) {
function setup (cb) {
var s = require('http').createServer(function (req, res) {
res.statusCode = 404
- res.end('{\"error\":\"not_found\"}\n')
+ res.end('{"error":"not_found"}\n')
})
s.listen(1337, function () {
cb(null, s)
diff --git a/deps/npm/test/tap/ci.js b/deps/npm/test/tap/ci.js
new file mode 100644
index 0000000000..a523f87623
--- /dev/null
+++ b/deps/npm/test/tap/ci.js
@@ -0,0 +1,304 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const common = BB.promisifyAll(require('../common-tap.js'))
+const fs = BB.promisifyAll(require('fs'))
+const mr = BB.promisify(require('npm-registry-mock'))
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const Tacks = require('tacks')
+const test = require('tap').test
+
+const Dir = Tacks.Dir
+const File = Tacks.File
+const testDir = path.join(__dirname, 'ci')
+
+const EXEC_OPTS = { cwd: testDir }
+
+const PKG = {
+ name: 'top',
+ version: '1.2.3',
+ dependencies: {
+ optimist: '0.6.0',
+ clean: '2.1.6'
+ }
+}
+let RAW_LOCKFILE
+let SERVER
+let TREE
+
+function scrubFrom (tree) {
+ // npm ci and npm i write different `from` fields for dependency deps. This
+ // is fine any ok, but it messes with `t.deepEqual` comparisons.
+ function _scrubFrom (deps) {
+ Object.keys(deps).forEach((k) => {
+ deps[k].from = ''
+ if (deps[k].dependencies) { _scrubFrom(deps[k].dependencies) }
+ })
+ }
+ tree.dependencies && _scrubFrom(tree.dependencies)
+}
+
+test('setup', () => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG)
+ }))
+ fixture.create(testDir)
+ return mr({port: common.port})
+ .then((server) => {
+ SERVER = server
+ return common.npm([
+ 'install',
+ '--registry', common.registry
+ ], EXEC_OPTS)
+ .then(() => fs.readFileAsync(
+ path.join(testDir, 'package-lock.json'),
+ 'utf8')
+ )
+ .then((lock) => {
+ RAW_LOCKFILE = lock
+ })
+ .then(() => common.npm(['ls', '--json'], EXEC_OPTS))
+ .then((ret) => {
+ TREE = scrubFrom(JSON.parse(ret[1]))
+ })
+ })
+})
+
+test('basic installation', (t) => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG),
+ 'package-lock.json': File(RAW_LOCKFILE)
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'ci',
+ '--registry', common.registry,
+ '--loglevel', 'warn'
+ ], EXEC_OPTS))
+ .then((ret) => {
+ const code = ret[0]
+ const stdout = ret[1]
+ const stderr = ret[2]
+ t.equal(code, 0, 'command completed without error')
+ t.equal(stdout.trim(), '', 'no output on stdout')
+ t.match(
+ stderr.trim(),
+ /^added 6 packages in \d+(?:\.\d+)?s$/,
+ 'no warnings on stderr, and final output has right number of packages'
+ )
+ return fs.readdirAsync(path.join(testDir, 'node_modules'))
+ })
+ .then((modules) => {
+ t.deepEqual(modules.sort(), [
+ 'async', 'checker', 'clean', 'minimist', 'optimist', 'wordwrap'
+ ], 'packages installed')
+ return BB.all(modules.map((mod) => {
+ return fs.readFileAsync(
+ path.join(testDir, 'node_modules', mod, 'package.json')
+ )
+ .then((f) => JSON.parse(f))
+ .then((pkgjson) => {
+ t.equal(pkgjson.name, mod, `${mod} package name correct`)
+ t.match(
+ pkgjson._integrity,
+ /sha\d+-[a-z0-9=+/]+$/i,
+ `${mod} pkgjson has _integrity`
+ )
+ t.match(
+ pkgjson._resolved,
+ new RegExp(`http.*/-/${mod}-${pkgjson.version}.tgz`),
+ `${mod} pkgjson has correct _resolved`
+ )
+ t.match(
+ pkgjson._from,
+ new RegExp(`${mod}@.*`),
+ `${mod} pkgjson has _from field`
+ )
+ })
+ }))
+ })
+ .then(() => fs.readFileAsync(
+ path.join(testDir, 'package-lock.json'),
+ 'utf8')
+ )
+ .then((lock) => t.equal(lock, RAW_LOCKFILE, 'package-lock.json unchanged'))
+ .then(() => common.npm(['ls', '--json'], EXEC_OPTS))
+ .then((ret) => {
+ const lsResult = JSON.parse(ret[1])
+ t.equal(ret[0], 0, 'ls exited successfully')
+ t.deepEqual(scrubFrom(lsResult), TREE, 'tree matches one from `install`')
+ })
+})
+
+test('supports npm-shrinkwrap.json as well', (t) => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG),
+ 'npm-shrinkwrap.json': File(RAW_LOCKFILE)
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'ci',
+ '--registry', common.registry,
+ '--loglevel', 'warn'
+ ], EXEC_OPTS))
+ .then((ret) => {
+ const code = ret[0]
+ const stdout = ret[1]
+ const stderr = ret[2]
+ t.equal(code, 0, 'command completed without error')
+ t.equal(stdout.trim(), '', 'no output on stdout')
+ t.match(
+ stderr.trim(),
+ /^added 6 packages in \d+(?:\.\d+)?s$/,
+ 'no warnings on stderr, and final output has right number of packages'
+ )
+ })
+ .then(() => common.npm(['ls', '--json'], EXEC_OPTS))
+ .then((ret) => {
+ t.equal(ret[0], 0, 'ls exited successfully')
+ t.deepEqual(
+ scrubFrom(JSON.parse(ret[1])),
+ TREE,
+ 'tree matches one from `install`'
+ )
+ })
+ .then(() => fs.readFileAsync(
+ path.join(testDir, 'npm-shrinkwrap.json'),
+ 'utf8')
+ )
+ .then((lock) => t.equal(lock, RAW_LOCKFILE, 'npm-shrinkwrap.json unchanged'))
+ .then(() => fs.readdirAsync(path.join(testDir)))
+ .then((files) => t.notOk(
+ files.some((f) => f === 'package-lock.json'),
+ 'no package-lock.json created'
+ ))
+})
+
+test('removes existing node_modules/ before installing', (t) => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG),
+ 'package-lock.json': File(RAW_LOCKFILE),
+ 'node_modules': Dir({
+ foo: Dir({
+ 'index.js': File('"hello world"')
+ })
+ })
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'ci',
+ '--registry', common.registry,
+ '--loglevel', 'warn'
+ ], EXEC_OPTS))
+ .then((ret) => {
+ const code = ret[0]
+ const stdout = ret[1]
+ const stderr = ret[2]
+ t.equal(code, 0, 'command completed without error')
+ t.equal(stdout.trim(), '', 'no output on stdout')
+ t.match(
+ stderr.trim(),
+ /^npm.*WARN.*removing existing node_modules/,
+ 'user warned that existing node_modules were removed'
+ )
+ return fs.readdirAsync(path.join(testDir, 'node_modules'))
+ })
+ .then((modules) => {
+ t.deepEqual(modules.sort(), [
+ 'async', 'checker', 'clean', 'minimist', 'optimist', 'wordwrap'
+ ], 'packages installed, with old node_modules dir gone')
+ })
+ .then(() => common.npm(['ls'], EXEC_OPTS))
+ .then((ret) => t.equal(ret[0], 0, 'ls exited successfully'))
+ .then(() => fs.readFileAsync(
+ path.join(testDir, 'package-lock.json'),
+ 'utf8')
+ )
+ .then((lock) => t.equal(lock, RAW_LOCKFILE, 'package-lock.json unchanged'))
+})
+
+test('installs all package types correctly')
+
+test('errors if package-lock.json missing', (t) => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG)
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'ci',
+ '--registry', common.registry,
+ '--loglevel', 'warn'
+ ], EXEC_OPTS))
+ .then((ret) => {
+ const code = ret[0]
+ const stdout = ret[1]
+ const stderr = ret[2]
+ t.equal(code, 1, 'command errored')
+ t.equal(stdout.trim(), '', 'no output on stdout')
+ t.match(
+ stderr.trim(),
+ /can only install packages with an existing package-lock/i,
+ 'user informed about the issue'
+ )
+ return fs.readdirAsync(path.join(testDir))
+ })
+ .then((dir) => {
+ t.notOk(dir.some((f) => f === 'node_modules'), 'no node_modules installed')
+ t.notOk(
+ dir.some((f) => f === 'package-lock.json'),
+ 'no package-lock.json created'
+ )
+ })
+})
+
+test('errors if package-lock.json invalid', (t) => {
+ const badJson = JSON.parse(RAW_LOCKFILE)
+ delete badJson.dependencies.optimist
+ const fixture = new Tacks(Dir({
+ 'package.json': File(PKG),
+ 'package-lock.json': File(badJson)
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'ci',
+ '--registry', common.registry,
+ '--loglevel', 'warn'
+ ], EXEC_OPTS))
+ .then((ret) => {
+ const code = ret[0]
+ const stdout = ret[1]
+ const stderr = ret[2]
+ t.equal(code, 1, 'command errored')
+ t.equal(stdout.trim(), '', 'no output on stdout')
+ t.match(
+ stderr.trim(),
+ /can only install packages when your package.json/i,
+ 'user informed about the issue'
+ )
+ return fs.readdirAsync(path.join(testDir))
+ })
+ .then((dir) => {
+ t.notOk(dir.some((f) => f === 'node_modules'), 'no node_modules installed')
+ })
+ .then(() => fs.readFileAsync(
+ path.join(testDir, 'package-lock.json'),
+ 'utf8')
+ )
+ .then((lock) => t.deepEqual(
+ JSON.parse(lock),
+ badJson,
+ 'bad package-lock.json left unchanged')
+ )
+})
+
+test('cleanup', () => {
+ SERVER.close()
+ return rimraf(testDir)
+})
diff --git a/deps/npm/test/tap/config-basic.js b/deps/npm/test/tap/config-basic.js
index 2787f81371..139b8e92f8 100644
--- a/deps/npm/test/tap/config-basic.js
+++ b/deps/npm/test/tap/config-basic.js
@@ -4,7 +4,6 @@ var common = require('./00-config-setup.js')
var path = require('path')
var projectData = {
- 'legacy-bundling': true
}
var ucData = common.ucData
diff --git a/deps/npm/test/tap/config-builtin.js b/deps/npm/test/tap/config-builtin.js
index 038f47dd12..885d099a1f 100644
--- a/deps/npm/test/tap/config-builtin.js
+++ b/deps/npm/test/tap/config-builtin.js
@@ -15,7 +15,6 @@ var biData = { 'builtin-config': true }
var cli = { foo: 'bar', heading: 'foo', 'git-tag-version': false }
var projectData = {
- 'legacy-bundling': true
}
var expectList = [
diff --git a/deps/npm/test/tap/config-envReplace.js b/deps/npm/test/tap/config-envReplace.js
new file mode 100644
index 0000000000..0b4f628d67
--- /dev/null
+++ b/deps/npm/test/tap/config-envReplace.js
@@ -0,0 +1,57 @@
+/* eslint-disable no-template-curly-in-string */
+
+const fs = require('fs')
+const mkdirp = require('mkdirp')
+const rimraf = require('rimraf')
+const path = require('path')
+const ini = require('ini')
+const test = require('tap').test
+const npmconf = require('../../lib/config/core.js')
+
+const packagePath = path.resolve(__dirname, 'config-envReplace')
+
+const packageJsonFile = JSON.stringify({
+ name: 'config-envReplace'
+})
+
+const inputConfigFile = [
+ 'registry=${NPM_REGISTRY_URL}',
+ '//${NPM_REGISTRY_HOST}/:_authToken=${NPM_AUTH_TOKEN}',
+ 'always-auth=true',
+ ''
+].join('\n')
+
+const expectConfigFile = [
+ 'registry=http://my.registry.com/',
+ '//my.registry.com/:_authToken=xxxxxxxxxxxxxxx',
+ 'always-auth=true',
+ ''
+].join('\n')
+
+test('environment variables replacing in configs', function (t) {
+ process.env = Object.assign(process.env, {
+ NPM_REGISTRY_URL: 'http://my.registry.com/',
+ NPM_REGISTRY_HOST: 'my.registry.com',
+ NPM_AUTH_TOKEN: 'xxxxxxxxxxxxxxx'
+ })
+ mkdirp.sync(packagePath)
+ const packageJsonPath = path.resolve(packagePath, 'package.json')
+ const configPath = path.resolve(packagePath, '.npmrc')
+ fs.writeFileSync(packageJsonPath, packageJsonFile)
+ fs.writeFileSync(configPath, inputConfigFile)
+
+ const originalCwdPath = process.cwd()
+ process.chdir(packagePath)
+ npmconf.load(function (error, conf) {
+ if (error) throw error
+
+ const foundConfigFile = ini.stringify(conf.sources.project.data)
+ t.same(ini.parse(foundConfigFile), ini.parse(expectConfigFile))
+
+ fs.unlinkSync(packageJsonPath)
+ fs.unlinkSync(configPath)
+ rimraf.sync(packagePath)
+ process.chdir(originalCwdPath)
+ t.end()
+ })
+})
diff --git a/deps/npm/test/tap/config-list.js b/deps/npm/test/tap/config-list.js
index b06dc154b2..05402d4bbe 100644
--- a/deps/npm/test/tap/config-list.js
+++ b/deps/npm/test/tap/config-list.js
@@ -6,7 +6,7 @@ var mkdirp = require('mkdirp')
var common = require('../common-tap.js')
var pkg = path.resolve(__dirname, 'config-list')
-var opts = { cwd: pkg }
+var opts = { cwd: pkg, env: common.emptyEnv() }
var npmrc = path.resolve(pkg, '.npmrc')
var npmrcContents = `
_private=private;
diff --git a/deps/npm/test/tap/config-meta.js b/deps/npm/test/tap/config-meta.js
index f667077a1a..527487f201 100644
--- a/deps/npm/test/tap/config-meta.js
+++ b/deps/npm/test/tap/config-meta.js
@@ -64,7 +64,7 @@ test('get lines', function (t) {
var literal = m.match(/^[''].+?['']/)
if (literal) {
m = literal[0].slice(1, -1)
- if (!m.match(/^\_/) && m !== 'argv') {
+ if (!m.match(/^_/) && m !== 'argv') {
CONFS[m] = {
file: f,
line: i
@@ -117,14 +117,14 @@ test('check configs', function (t) {
}
types.forEach(function (c) {
- if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') {
+ if (!c.match(/^_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') {
t.ok(DOC[c], 'defined type should be documented ' + c)
t.ok(CONFS[c], 'defined type should be used ' + c)
}
})
defaults.forEach(function (c) {
- if (!c.match(/^\_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') {
+ if (!c.match(/^_/) && c !== 'argv' && !c.match(/^versions?$/) && c !== 'ham-it-up') {
t.ok(DOC[c], 'defaulted type should be documented ' + c)
t.ok(CONFS[c], 'defaulted type should be used ' + c)
}
diff --git a/deps/npm/test/tap/correct-mkdir.js b/deps/npm/test/tap/correct-mkdir.js
index a4f8659873..2c93f943ad 100644
--- a/deps/npm/test/tap/correct-mkdir.js
+++ b/deps/npm/test/tap/correct-mkdir.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
var test = require('tap').test
var assert = require('assert')
var path = require('path')
@@ -71,7 +72,7 @@ test('correct-mkdir: ignore ENOENTs from chownr', function (t) {
}
}
var mock_chownr = function (path, uid, gid, cb) {
- cb({code: 'ENOENT'})
+ cb(Object.assign(new Error(), {code: 'ENOENT'}))
}
var mocks = {
'graceful-fs': mock_fs,
@@ -147,7 +148,7 @@ test('correct-mkdir: SUDO_UID and SUDO_GID Windows', function (t) {
}
var mock_chownr = function (path, uid, gid, cb) {
t.fail('chownr should not be called at all on Windows')
- cb('nope')
+ cb(new Error('nope'))
}
var mocks = {
'graceful-fs': mock_fs,
diff --git a/deps/npm/test/tap/debug-logs.js b/deps/npm/test/tap/debug-logs.js
index 4884512429..a699735263 100644
--- a/deps/npm/test/tap/debug-logs.js
+++ b/deps/npm/test/tap/debug-logs.js
@@ -6,7 +6,6 @@ var glob = require('glob')
var asyncMap = require('slide').asyncMap
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -17,7 +16,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/dist-tag.js b/deps/npm/test/tap/dist-tag.js
index 62ecab2c0a..651639f32a 100644
--- a/deps/npm/test/tap/dist-tag.js
+++ b/deps/npm/test/tap/dist-tag.js
@@ -27,7 +27,7 @@ function mocks (server) {
// add c
server.get('/-/package/@scoped%2fanother/dist-tags')
.reply(200, { latest: '2.0.0', a: '0.0.2', b: '0.6.0' })
- server.put('/-/package/@scoped%2fanother/dist-tags/c', '\"7.7.7\"')
+ server.put('/-/package/@scoped%2fanother/dist-tags/c', '"7.7.7"')
.reply(200, { latest: '7.7.7', a: '0.0.2', b: '0.6.0', c: '7.7.7' })
// set same version
diff --git a/deps/npm/test/tap/doctor.js b/deps/npm/test/tap/doctor.js
index fa1a5fad1c..26c74833e2 100644
--- a/deps/npm/test/tap/doctor.js
+++ b/deps/npm/test/tap/doctor.js
@@ -1,5 +1,5 @@
'use strict'
-
+/* eslint-disable camelcase */
const common = require('../common-tap.js')
const http = require('http')
const mr = require('npm-registry-mock')
diff --git a/deps/npm/test/tap/gently-rm-cmdshims.js b/deps/npm/test/tap/gently-rm-cmdshims.js
index ea1f47a0dd..304c6956bd 100644
--- a/deps/npm/test/tap/gently-rm-cmdshims.js
+++ b/deps/npm/test/tap/gently-rm-cmdshims.js
@@ -1,4 +1,5 @@
'use strict'
+/* eslint-disable camelcase */
var path = require('path')
var fs = require('graceful-fs')
var test = require('tap').test
@@ -127,30 +128,30 @@ test('remove-cmd-shims', function (t) {
var gentlyRm = require('../../lib/utils/gently-rm.js')
runAll([ [gentlyRm, doremove_example_cmd, true, doremove_module],
- [gentlyRm, doremove_example_cygwin, true, doremove_module] ],
- function () {
- fs.stat(doremove_example_cmd, function (er) {
- t.is(er && er.code, 'ENOENT', 'cmd-shim was removed')
- })
- fs.stat(doremove_example_cygwin, function (er) {
- t.is(er && er.code, 'ENOENT', 'cmd-shim cygwin script was removed')
- })
- })
+ [gentlyRm, doremove_example_cygwin, true, doremove_module] ],
+ function () {
+ fs.stat(doremove_example_cmd, function (er) {
+ t.is(er && er.code, 'ENOENT', 'cmd-shim was removed')
+ })
+ fs.stat(doremove_example_cygwin, function (er) {
+ t.is(er && er.code, 'ENOENT', 'cmd-shim cygwin script was removed')
+ })
+ })
})
test('dont-remove-cmd-shims', function (t) {
t.plan(2)
var gentlyRm = require('../../lib/utils/gently-rm.js')
runAll([ [gentlyRm, dontremove_example_cmd, true, dontremove_module],
- [gentlyRm, dontremove_example_cygwin, true, dontremove_module] ],
- function () {
- fs.stat(dontremove_example_cmd, function (er) {
- t.is(er, null, 'cmd-shim was not removed')
- })
- fs.stat(dontremove_example_cygwin, function (er) {
- t.is(er, null, 'cmd-shim cygwin script was not removed')
- })
- })
+ [gentlyRm, dontremove_example_cygwin, true, dontremove_module] ],
+ function () {
+ fs.stat(dontremove_example_cmd, function (er) {
+ t.is(er, null, 'cmd-shim was not removed')
+ })
+ fs.stat(dontremove_example_cygwin, function (er) {
+ t.is(er, null, 'cmd-shim cygwin script was not removed')
+ })
+ })
})
test('cleanup', function (t) {
diff --git a/deps/npm/test/tap/gently-rm-linked-module.js b/deps/npm/test/tap/gently-rm-linked-module.js
index a9804cd792..877c683c9f 100644
--- a/deps/npm/test/tap/gently-rm-linked-module.js
+++ b/deps/npm/test/tap/gently-rm-linked-module.js
@@ -9,7 +9,6 @@ var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
var Symlink = Tacks.Symlink
-var extend = Object.assign || require('util')._extend
var isWindows = require('../../lib/utils/is-windows.js')
var base = resolve(__dirname, basename(__filename, '.js'))
@@ -35,7 +34,7 @@ var workingDir = resolve(base, 'working-dir')
var toInstall = resolve(base, 'test-module')
var linkedGlobal = resolve(base, 'linked-global-dir')
-var env = extend({}, process.env)
+var env = Object.assign({}, process.env)
// We set the global install location via env var here
// instead of passing it in via `--prefix` because
diff --git a/deps/npm/test/tap/git-npmignore.js b/deps/npm/test/tap/git-npmignore.js
index 1fe2ca24e6..19d014c3d9 100644
--- a/deps/npm/test/tap/git-npmignore.js
+++ b/deps/npm/test/tap/git-npmignore.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
var child_process = require('child_process')
var readdir = require('graceful-fs').readdirSync
var path = require('path')
diff --git a/deps/npm/test/tap/help.js b/deps/npm/test/tap/help.js
index 0b8c22a7b8..bc66a92298 100644
--- a/deps/npm/test/tap/help.js
+++ b/deps/npm/test/tap/help.js
@@ -2,7 +2,7 @@ var test = require('tap').test
var common = require('../common-tap')
test('npm food', function (t) {
- common.npm('food', {}, function (err, code, stdout, stderr) {
+ common.npm('docz', {}, function (err, code, stdout, stderr) {
if (err) throw err
t.equal(code, 1, 'command ran with error')
diff --git a/deps/npm/test/tap/hook.js b/deps/npm/test/tap/hook.js
new file mode 100644
index 0000000000..d50b7b1221
--- /dev/null
+++ b/deps/npm/test/tap/hook.js
@@ -0,0 +1,243 @@
+'use strict'
+
+const common = require('../common-tap.js')
+const test = require('tap').test
+
+test('hook add', (t) => {
+ let body
+ return common.withServer(server => {
+ server.filteringRequestBody(bod => {
+ body = JSON.parse(bod)
+ t.deepEqual(body, {
+ type: 'owner',
+ name: 'zkat',
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ }, 'request sent correct body')
+ return true
+ })
+ .post('/-/npm/v1/hooks/hook', true)
+ .reply(201, {
+ name: 'zkat',
+ type: 'owner',
+ endpoint: 'https://example.com'
+ })
+ return common.npm([
+ 'hook', 'add', '~zkat', 'https://example.com', 'sekrit',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.match(
+ stdout.trim(),
+ /^\+ ~zkat.*https:\/\/example\.com$/,
+ 'output info about new hook'
+ )
+ })
+ })
+})
+
+test('hook add --json', (t) => {
+ return common.withServer(server => {
+ server
+ .filteringRequestBody(() => true)
+ .post('/-/npm/v1/hooks/hook', true)
+ .reply(201, {
+ name: 'npm',
+ type: 'scope',
+ endpoint: 'https://example.com'
+ })
+ return common.npm([
+ 'hook', 'add', '~zkat', 'https://example.com', 'sekrit',
+ '--json',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.deepEqual(JSON.parse(stdout), {
+ name: 'npm',
+ type: 'scope',
+ endpoint: 'https://example.com'
+ }, 'json response data returned')
+ })
+ })
+})
+
+test('hook rm', t => {
+ return common.withServer(server => {
+ server
+ .delete('/-/npm/v1/hooks/hook/dead%40beef')
+ .reply(200, {
+ name: 'zkat',
+ type: 'owner',
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ })
+ return common.npm([
+ 'hook', 'rm', 'dead@beef',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.match(
+ stdout.trim(),
+ /^- ~zkat.*https:\/\/example\.com$/,
+ 'output info about new hook'
+ )
+ })
+ })
+})
+
+test('hook rm --json', t => {
+ return common.withServer(server => {
+ server
+ .delete('/-/npm/v1/hooks/hook/dead%40beef')
+ .reply(200, {
+ name: 'zkat',
+ type: 'owner',
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ })
+ return common.npm([
+ 'hook', 'rm', 'dead@beef',
+ '--json',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.deepEqual(JSON.parse(stdout), {
+ name: 'zkat',
+ type: 'owner',
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ }, 'json response data returned')
+ })
+ })
+})
+
+test('hook ls', t => {
+ const objects = [
+ {id: 'foo', type: 'package', name: '@foo/pkg', endpoint: 'foo.com'},
+ {id: 'bar', type: 'owner', name: 'bar', endpoint: 'bar.com'},
+ {id: 'baz', type: 'scope', name: 'baz', endpoint: 'baz.com'}
+ ]
+ return common.withServer(server => {
+ server
+ .get('/-/npm/v1/hooks?package=%40npm%2Fhooks')
+ .reply(200, {objects})
+ return common.npm([
+ 'hook', 'ls', '@npm/hooks',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.match(
+ stdout,
+ /You have 3 hooks configured/,
+ 'message about hook count'
+ )
+ t.match(
+ stdout,
+ /foo\s+.*\s+@foo\/pkg\s+.*\s+foo\.com/,
+ 'package displayed as expected'
+ )
+ t.match(
+ stdout,
+ /bar\s+.*\s+~bar\s+.*\s+bar\.com/,
+ 'owner displayed as expected'
+ )
+ t.match(
+ stdout,
+ /baz\s+.*\s+@baz\s+.*\s+baz\.com/,
+ 'scope displayed as expected'
+ )
+ })
+ })
+})
+
+test('hook ls --json', t => {
+ const objects = [
+ {id: 'foo'},
+ {id: 'bar'},
+ {id: 'baz'}
+ ]
+ return common.withServer(server => {
+ server
+ .get('/-/npm/v1/hooks?package=%40npm%2Fhooks')
+ .reply(200, {objects})
+ return common.npm([
+ 'hook', 'ls', '@npm/hooks',
+ '--json',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.deepEqual(JSON.parse(stdout), objects, 'objects output as json')
+ })
+ })
+})
+
+test('hook update', t => {
+ return common.withServer(server => {
+ server.filteringRequestBody(() => true)
+ .put('/-/npm/v1/hooks/hook/dead%40beef', true)
+ .reply(200, {
+ type: 'scope',
+ name: 'npm',
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ })
+ return common.npm([
+ 'hook', 'update', 'dead@beef', 'https://example.com', 'sekrit',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ t.match(
+ stdout.trim(),
+ /^\+ @npm\s+.*\s+https:\/\/example\.com$/,
+ 'output info about updated hook'
+ )
+ })
+ })
+})
+
+test('hook update --json', t => {
+ let body
+ return common.withServer(server => {
+ server.filteringRequestBody(bod => {
+ body = JSON.parse(bod)
+ t.deepEqual(body, {
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ }, 'request sent correct body')
+ return true
+ })
+ .put('/-/npm/v1/hooks/hook/dead%40beef', true)
+ .reply(200, {
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ })
+ return common.npm([
+ 'hook', 'update', 'dead@beef', 'https://example.com', 'sekrit',
+ '--json',
+ '--registry', server.registry
+ ], {}).then(([code, stdout, stderr]) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.equal(code, 0, 'exited successfully')
+ const json = JSON.parse(stdout)
+ t.deepEqual(json, {
+ endpoint: 'https://example.com',
+ secret: 'sekrit'
+ }, 'json response data returned')
+ })
+ })
+})
diff --git a/deps/npm/test/tap/init-create.js b/deps/npm/test/tap/init-create.js
new file mode 100644
index 0000000000..22d9090a97
--- /dev/null
+++ b/deps/npm/test/tap/init-create.js
@@ -0,0 +1,171 @@
+/* eslint-disable standard/no-callback-literal */
+var test = require('tap').test
+var requireInject = require('require-inject')
+
+var npm = require('../../lib/npm.js')
+
+test('npm init <name>', function (t) {
+ var initJsonMock = function () {
+ t.ok(false, 'should not run initJson()')
+ }
+ initJsonMock.yes = function () {
+ t.ok(false, 'should not run initJson.yes()')
+ return false
+ }
+ var libnpxMock = function () {
+ return Promise.resolve()
+ }
+ libnpxMock.parseArgs = function (argv, defaultNpm) {
+ t.ok(argv[0].includes('node'), 'node is the first arg')
+ t.equals(argv[2], '--always-spawn', 'set npx opts.alwaysSpawn')
+ t.equals(argv[3], 'create-name', 'expands name')
+ t.ok(defaultNpm.endsWith('npm-cli.js'), 'passes npm bin path')
+ }
+
+ npm.load({ loglevel: 'silent' }, function () {
+ var init = requireInject('../../lib/init', {
+ 'init-package-json': initJsonMock,
+ 'libnpx': libnpxMock
+ })
+
+ init(['name'], function () {})
+
+ t.end()
+ })
+})
+
+test('npm init expands scopes', function (t) {
+ var libnpxMock = function () {
+ return Promise.resolve()
+ }
+
+ npm.load({ loglevel: 'silent' }, function () {
+ var init = requireInject('../../lib/init', {
+ 'libnpx': libnpxMock
+ })
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], '@scope/create', 'expands @scope')
+ }
+
+ init(['@scope'], function () {})
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], '@scope/create-name', 'expands @scope/name')
+ }
+
+ init(['@scope/name'], function () {})
+
+ t.end()
+ })
+})
+
+test('npm init expands version names', function (t) {
+ var libnpxMock = function () {
+ return Promise.resolve()
+ }
+
+ npm.load({ loglevel: 'silent' }, function () {
+ var init = requireInject('../../lib/init', {
+ 'libnpx': libnpxMock
+ })
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], 'create-name@1.2.3', 'expands name@1.2.3')
+ }
+
+ init(['name@1.2.3'], function () {})
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], 'create-name@^1.2.3', 'expands name@^1.2.3')
+ }
+
+ init(['name@^1.2.3'], function () {})
+
+ t.end()
+ })
+})
+
+test('npm init expands git names', function (t) {
+ var libnpxMock = function () {
+ return Promise.resolve()
+ }
+
+ npm.load({ loglevel: 'silent' }, function () {
+ var init = requireInject('../../lib/init', {
+ 'libnpx': libnpxMock
+ })
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], 'user/create-foo', 'expands git repo')
+ }
+
+ init(['user/foo'], function () {})
+
+ libnpxMock.parseArgs = function (argv) {
+ t.equals(argv[3], 'git+https://github.com/user/create-foo', 'expands git url')
+ }
+
+ init(['git+https://github.com/user/foo'], function () {})
+
+ t.end()
+ })
+})
+
+test('npm init errors on folder and tarballs', function (t) {
+ npm.load({ loglevel: 'silent' }, function () {
+ var init = require('../../lib/init')
+
+ try {
+ init(['../foo/bar/'], function () {})
+ } catch (e) {
+ t.equals(e.code, 'EUNSUPPORTED')
+ }
+
+ t.throws(
+ () => init(['../foo/bar/'], function () {}),
+ /Unrecognized initializer: \.\.\/foo\/bar\//
+ )
+
+ t.throws(
+ () => init(['file:foo.tar.gz'], function () {}),
+ /Unrecognized initializer: file:foo\.tar\.gz/
+ )
+
+ t.throws(
+ () => init(['http://x.com/foo.tgz'], function () {}),
+ /Unrecognized initializer: http:\/\/x\.com\/foo\.tgz/
+ )
+
+ t.end()
+ })
+})
+
+test('npm init forwards arguments', function (t) {
+ var libnpxMock = function () {
+ return Promise.resolve()
+ }
+
+ npm.load({ loglevel: 'silent' }, function () {
+ var origArgv = process.argv
+ var init = requireInject('../../lib/init', {
+ 'libnpx': libnpxMock
+ })
+
+ libnpxMock.parseArgs = function (argv) {
+ process.argv = origArgv
+ t.same(argv.slice(4), ['a', 'b', 'c'])
+ }
+ process.argv = [
+ process.argv0,
+ 'NPM_CLI_PATH',
+ 'init',
+ 'name',
+ 'a', 'b', 'c'
+ ]
+
+ init(['name'], function () {})
+
+ t.end()
+ })
+})
diff --git a/deps/npm/test/tap/init-interrupt.js b/deps/npm/test/tap/init-interrupt.js
index 799ff07164..b0c7643ddf 100644
--- a/deps/npm/test/tap/init-interrupt.js
+++ b/deps/npm/test/tap/init-interrupt.js
@@ -1,3 +1,4 @@
+/* eslint-disable standard/no-callback-literal */
// if 'npm init' is interrupted with ^C, don't report
// 'init written successfully'
var test = require('tap').test
diff --git a/deps/npm/test/tap/install-bad-dep-format.js b/deps/npm/test/tap/install-bad-dep-format.js
index 01d253c9e5..94c7d175fd 100644
--- a/deps/npm/test/tap/install-bad-dep-format.js
+++ b/deps/npm/test/tap/install-bad-dep-format.js
@@ -13,7 +13,7 @@ var json = {
name: 'bad-dep-format',
version: '0.0.0',
dependencies: {
- 'not-legit': 'npm:not-legit@1.0'
+ 'not-legit': 'bad:not-legit@1.0'
}
}
diff --git a/deps/npm/test/tap/install-cli-only-production.js b/deps/npm/test/tap/install-cli-only-production.js
index 7f46a23e15..40328d7735 100644
--- a/deps/npm/test/tap/install-cli-only-production.js
+++ b/deps/npm/test/tap/install-cli-only-production.js
@@ -47,9 +47,9 @@ test('setup', function (t) {
JSON.stringify(dependency, null, 2)
)
- mkdirp.sync(path.join(pkg, 'devDependency'))
+ mkdirp.sync(path.join(pkg, 'dev-dependency'))
fs.writeFileSync(
- path.join(pkg, 'devDependency', 'package.json'),
+ path.join(pkg, 'dev-dependency', 'package.json'),
JSON.stringify(devDependency, null, 2)
)
@@ -64,8 +64,10 @@ test('setup', function (t) {
})
test('\'npm install --only=production\' should only install dependencies', function (t) {
- common.npm(['install', '--only=production'], EXEC_OPTS, function (err, code) {
- t.ifError(err, 'install production successful')
+ common.npm(['install', '--only=production'], EXEC_OPTS, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.comment('1> ' + stdout)
+ t.comment('2> ' + stderr)
t.equal(code, 0, 'npm install did not raise error code')
t.ok(
JSON.parse(fs.readFileSync(
diff --git a/deps/npm/test/tap/install-cli-only-shrinkwrap.js b/deps/npm/test/tap/install-cli-only-shrinkwrap.js
index 17ff1ec955..aa731909d3 100644
--- a/deps/npm/test/tap/install-cli-only-shrinkwrap.js
+++ b/deps/npm/test/tap/install-cli-only-shrinkwrap.js
@@ -29,14 +29,14 @@ var shrinkwrap = {
name: 'install-cli-only-shrinkwrap',
description: 'fixture',
version: '0.0.0',
+ lockfileVersion: 1,
+ requires: true,
dependencies: {
dependency: {
- version: '0.0.0',
- from: 'file:./dependency'
+ version: 'file:./dependency'
},
'dev-dependency': {
- version: '0.0.0',
- from: 'file:./dev-dependency',
+ version: 'file:./dev-dependency',
dev: true
}
}
@@ -55,6 +55,7 @@ var devDependency = {
}
test('setup', function (t) {
+ cleanup()
setup()
t.pass('setup ran')
t.end()
diff --git a/deps/npm/test/tap/install-contributors-count.js b/deps/npm/test/tap/install-contributors-count.js
new file mode 100644
index 0000000000..52fba0fd24
--- /dev/null
+++ b/deps/npm/test/tap/install-contributors-count.js
@@ -0,0 +1,70 @@
+'use strict'
+var path = require('path')
+var test = require('tap').test
+var Tacks = require('tacks')
+var Dir = Tacks.Dir
+var File = Tacks.File
+var common = require('../common-tap.js')
+
+var testdir = path.resolve(__dirname, path.basename(__filename, '.js'))
+var fixture = new Tacks(Dir({
+ node_modules: Dir({
+ a: Dir({
+ 'package.json': File({
+ name: 'a',
+ version: '1.0.0',
+ dependencies: {
+ b: '1.0.0'
+ }
+ }),
+ node_modules: Dir({
+ b: Dir({
+ 'package.json': File({
+ name: 'b',
+ version: '1.0.0'
+ })
+ })
+ })
+ })
+ }),
+ 'b-src': Dir({
+ 'package.json': File({
+ name: 'b',
+ author: 'Author Contributor',
+ contributors: [
+ {name: 'Author Contributor'},
+ 'Another Contributor'
+ ],
+ version: '1.0.0'
+ })
+ })
+}))
+
+function setup () {
+ cleanup()
+ fixture.create(testdir)
+}
+
+function cleanup () {
+ fixture.remove(testdir)
+}
+
+test('setup', function (t) {
+ setup()
+ t.end()
+})
+
+test('install', function (t) {
+ common.npm(['install', '--no-save', './b-src'], {cwd: testdir}, function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.is(code, 0, 'installed successfully')
+ t.is(stderr, '', 'no warnings')
+ t.includes(stdout, 'added 1 package from 2 contributors', 'lists number of unique contributors')
+ t.end()
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.end()
+})
diff --git a/deps/npm/test/tap/install-duplicate-deps-warning.js b/deps/npm/test/tap/install-duplicate-deps-warning.js
index 9206fe253c..017a5cdfe1 100644
--- a/deps/npm/test/tap/install-duplicate-deps-warning.js
+++ b/deps/npm/test/tap/install-duplicate-deps-warning.js
@@ -8,7 +8,7 @@ var rimraf = require('rimraf')
var test = require('tap').test
var common = require('../common-tap.js')
-var npm = npm = require('../../')
+var npm = require('../../')
var pkg = path.resolve(__dirname, path.basename(__filename, '.js'))
diff --git a/deps/npm/test/tap/install-order.js b/deps/npm/test/tap/install-order.js
index 80b3f6f45e..c4a2b1c383 100644
--- a/deps/npm/test/tap/install-order.js
+++ b/deps/npm/test/tap/install-order.js
@@ -1,4 +1,5 @@
'use strict'
+/* eslint-disable no-use-before-define */
var test = require('tap').test
var sortActions = require('../../lib/install/diff-trees.js').sortActions
var top = {
diff --git a/deps/npm/test/tap/install-package-lock-only.js b/deps/npm/test/tap/install-package-lock-only.js
index b117dc97e3..9d8aa8dbec 100644
--- a/deps/npm/test/tap/install-package-lock-only.js
+++ b/deps/npm/test/tap/install-package-lock-only.js
@@ -6,7 +6,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -20,7 +19,7 @@ var nodeModulesPath = path.join(testdir, 'node_modules')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/install-parse-error.js b/deps/npm/test/tap/install-parse-error.js
index 72d19efc25..1330195ead 100644
--- a/deps/npm/test/tap/install-parse-error.js
+++ b/deps/npm/test/tap/install-parse-error.js
@@ -39,7 +39,7 @@ test('failing to parse package.json should be error', function (t) {
function (err, code, stdout, stderr) {
if (err) throw err
t.equal(code, 1, 'exit not ok')
- t.similar(stderr, /npm ERR! Failed to parse json/)
+ t.similar(stderr, /npm ERR! JSON.parse Failed to parse json/)
t.end()
}
)
@@ -49,4 +49,3 @@ test('cleanup', function (t) {
cleanup()
t.end()
})
-
diff --git a/deps/npm/test/tap/install-save-consistent-newlines.js b/deps/npm/test/tap/install-save-consistent-newlines.js
new file mode 100644
index 0000000000..6250377445
--- /dev/null
+++ b/deps/npm/test/tap/install-save-consistent-newlines.js
@@ -0,0 +1,122 @@
+'use strict'
+
+const fs = require('graceful-fs')
+const path = require('path')
+
+const mkdirp = require('mkdirp')
+const mr = require('npm-registry-mock')
+const osenv = require('osenv')
+const rimraf = require('rimraf')
+const test = require('tap').test
+
+const common = require('../common-tap.js')
+
+const pkg = path.join(__dirname, 'install-save-consistent-newlines')
+
+const EXEC_OPTS = { cwd: pkg }
+
+const json = {
+ name: 'install-save-consistent-newlines',
+ version: '0.0.1',
+ description: 'fixture'
+}
+
+var server
+
+test('setup', function (t) {
+ setup('\n')
+ mr({ port: common.port }, function (er, s) {
+ server = s
+ t.end()
+ })
+})
+
+test('\'npm install --save\' should keep the original package.json line endings (LF)', function (t) {
+ common.npm(
+ [
+ '--loglevel', 'silent',
+ '--registry', common.registry,
+ '--save',
+ 'install', 'underscore@1.3.1'
+ ],
+ EXEC_OPTS,
+ function (err, code) {
+ t.ifError(err, 'npm ran without issue')
+ t.notOk(code, 'npm install exited without raising an error code')
+
+ const pkgPath = path.resolve(pkg, 'package.json')
+ const pkgStr = fs.readFileSync(pkgPath, 'utf8')
+
+ t.match(pkgStr, '\n')
+ t.notMatch(pkgStr, '\r')
+
+ const pkgLockPath = path.resolve(pkg, 'package-lock.json')
+ const pkgLockStr = fs.readFileSync(pkgLockPath, 'utf8')
+
+ t.match(pkgLockStr, '\n')
+ t.notMatch(pkgLockStr, '\r')
+
+ t.end()
+ }
+ )
+})
+
+test('\'npm install --save\' should keep the original package.json line endings (CRLF)', function (t) {
+ setup('\r\n')
+
+ common.npm(
+ [
+ '--loglevel', 'silent',
+ '--registry', common.registry,
+ '--save',
+ 'install', 'underscore@1.3.1'
+ ],
+ EXEC_OPTS,
+ function (err, code) {
+ t.ifError(err, 'npm ran without issue')
+ t.notOk(code, 'npm install exited without raising an error code')
+
+ const pkgPath = path.resolve(pkg, 'package.json')
+ const pkgStr = fs.readFileSync(pkgPath, 'utf8')
+
+ t.match(pkgStr, '\r\n')
+ t.notMatch(pkgStr, /[^\r]\n/)
+
+ const pkgLockPath = path.resolve(pkg, 'package-lock.json')
+ const pkgLockStr = fs.readFileSync(pkgLockPath, 'utf8')
+
+ t.match(pkgLockStr, '\r\n')
+ t.notMatch(pkgLockStr, /[^\r]\n/)
+
+ t.end()
+ }
+ )
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.end()
+})
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
+
+function setup (lineEnding) {
+ cleanup()
+ mkdirp.sync(path.resolve(pkg, 'node_modules'))
+
+ var jsonStr = JSON.stringify(json, null, 2)
+
+ if (lineEnding === '\r\n') {
+ jsonStr = jsonStr.replace(/\n/g, '\r\n')
+ }
+
+ fs.writeFileSync(
+ path.join(pkg, 'package.json'),
+ jsonStr
+ )
+ process.chdir(pkg)
+}
diff --git a/deps/npm/test/tap/install-scoped-with-bundled-dependency.js b/deps/npm/test/tap/install-scoped-with-bundled-dependency.js
index 7a620dfdcd..bd197ae036 100644
--- a/deps/npm/test/tap/install-scoped-with-bundled-dependency.js
+++ b/deps/npm/test/tap/install-scoped-with-bundled-dependency.js
@@ -4,7 +4,6 @@ var test = require('tap').test
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -15,7 +14,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend({
+ env: Object.assign({
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/install-shrinkwrapped-git.js b/deps/npm/test/tap/install-shrinkwrapped-git.js
index db22acc7f6..7bbb4f6e5f 100644
--- a/deps/npm/test/tap/install-shrinkwrapped-git.js
+++ b/deps/npm/test/tap/install-shrinkwrapped-git.js
@@ -1,3 +1,5 @@
+'use strict'
+
var fs = require('fs')
var path = require('path')
var resolve = path.resolve
@@ -47,20 +49,30 @@ test('shrinkwrapped git dependency got updated', function (t) {
t.comment('test for https://github.com/npm/npm/issues/12718')
// Prepare the child package git repo with two commits
- prepareChildAndGetRefs(function (refs) {
+ prepareChildAndGetRefs(function (err, refs) {
+ if (err) { throw err }
chain([
// Install & shrinkwrap child package's first commit
[npm.commands.install, ['git://localhost:1234/child.git#' + refs[0]]],
// Backup node_modules with the first commit
[fs.rename, parentNodeModulesPath, outdatedNodeModulesPath],
- // Install & shrinkwrap child package's second commit
- [npm.commands.install, ['git://localhost:1234/child.git#' + refs[1]]],
+ // Install & shrinkwrap child package's latest commit
+ [npm.commands.install, ['git://localhost:1234/child.git#' + refs[1].substr(0, 8)]],
// Restore node_modules with the first commit
[rimraf, parentNodeModulesPath],
[fs.rename, outdatedNodeModulesPath, parentNodeModulesPath],
// Update node_modules
[npm.commands.install, []]
], function () {
+ const pkglock = require(path.join(parentPath, 'package-lock.json'))
+ t.similar(pkglock, {
+ dependencies: {
+ child: {
+ version: `git://localhost:1234/child.git#${refs[1]}`,
+ from: `git://localhost:1234/child.git#${refs[1].substr(0, 8)}`
+ }
+ }
+ }, 'version and from fields are correct in git-based pkglock dep')
var childPackageJSON = require(path.join(parentNodeModulesPath, 'child', 'package.json'))
t.equal(
childPackageJSON._resolved,
@@ -114,12 +126,13 @@ function prepareChildAndGetRefs (cb) {
git.chainableExec(['add', 'README.md'], opts),
git.chainableExec(['commit', '-m', 'Add README'], opts),
git.chainableExec(['log', '--pretty=format:"%H"', '-2'], opts)
- ], function () {
+ ], function (err) {
+ if (err) { return cb(err) }
var gitLogStdout = arguments[arguments.length - 1]
var refs = gitLogStdout[gitLogStdout.length - 1].split('\n').map(function (ref) {
return ref.match(/^"(.+)"$/)[1]
}).reverse() // Reverse refs order: last, first -> first, last
- cb(refs)
+ cb(null, refs)
})
}
diff --git a/deps/npm/test/tap/install-test-cli-without-package-lock.js b/deps/npm/test/tap/install-test-cli-without-package-lock.js
new file mode 100644
index 0000000000..ea3d75feb6
--- /dev/null
+++ b/deps/npm/test/tap/install-test-cli-without-package-lock.js
@@ -0,0 +1,83 @@
+var fs = require('graceful-fs')
+var path = require('path')
+
+var mkdirp = require('mkdirp')
+var osenv = require('osenv')
+var rimraf = require('rimraf')
+var test = require('tap').test
+
+var common = require('../common-tap.js')
+
+var pkg = path.join(__dirname, path.basename(__filename, '.js'))
+
+var EXEC_OPTS = { cwd: pkg }
+
+var json = {
+ name: 'install-test-cli-without-package-lock',
+ description: 'fixture',
+ version: '0.0.0',
+ dependencies: {
+ dependency: 'file:./dependency'
+ }
+}
+
+var dependency = {
+ name: 'dependency',
+ description: 'fixture',
+ version: '0.0.0'
+}
+
+test('setup', function (t) {
+ setup()
+ t.pass('setup ran')
+ t.end()
+})
+
+test('\'npm install-test\' should not generate package-lock.json.*', function (t) {
+ common.npm(['install-test'], EXEC_OPTS, function (err, code, stderr, stdout) {
+ if (err) throw err
+ t.comment(stdout.trim())
+ t.comment(stderr.trim())
+ t.is(code, 0, 'npm install did not raise error code')
+ var files = fs.readdirSync(pkg).filter(function (f) {
+ return f.indexOf('package-lock.json.') === 0
+ })
+ t.notOk(
+ files.length > 0,
+ 'package-lock.json.* should not be generated: ' + files
+ )
+ t.end()
+ })
+})
+
+test('cleanup', function (t) {
+ cleanup()
+ t.pass('cleaned up')
+ t.end()
+})
+
+function setup () {
+ mkdirp.sync(path.join(pkg, 'dependency'))
+ fs.writeFileSync(
+ path.join(pkg, 'dependency', 'package.json'),
+ JSON.stringify(dependency, null, 2)
+ )
+
+ mkdirp.sync(path.join(pkg, 'node_modules'))
+ fs.writeFileSync(
+ path.join(pkg, 'package.json'),
+ JSON.stringify(json, null, 2)
+ )
+
+ // Disable package-lock
+ fs.writeFileSync(
+ path.join(pkg, '.npmrc'),
+ 'package-lock=false\n'
+ )
+ process.chdir(pkg)
+}
+
+function cleanup () {
+ process.chdir(osenv.tmpdir())
+ rimraf.sync(pkg)
+}
diff --git a/deps/npm/test/tap/install-windows-newlines.js b/deps/npm/test/tap/install-windows-newlines.js
index 56ef172a29..1c69b204ad 100644
--- a/deps/npm/test/tap/install-windows-newlines.js
+++ b/deps/npm/test/tap/install-windows-newlines.js
@@ -67,7 +67,7 @@ test('setup', function (t) {
fs.readFileSync(
path.resolve(pkg, 'node_modules/cli-dependency/hashbang.js'),
'utf8'
- ).includes('\r\n'),
+ ).includes('node\r\n'),
'hashbang dependency cli newlines converted'
)
t.ok(
diff --git a/deps/npm/test/tap/install-with-dev-dep-duplicate.js b/deps/npm/test/tap/install-with-dev-dep-duplicate.js
index 41eb823311..2d31b8fad7 100644
--- a/deps/npm/test/tap/install-with-dev-dep-duplicate.js
+++ b/deps/npm/test/tap/install-with-dev-dep-duplicate.js
@@ -8,7 +8,7 @@ var rimraf = require('rimraf')
var test = require('tap').test
var common = require('../common-tap.js')
-var npm = npm = require('../../')
+var npm = require('../../')
var pkg = path.resolve(__dirname, 'dev-dep-duplicate')
diff --git a/deps/npm/test/tap/invalid-dep-version-filtering.js b/deps/npm/test/tap/invalid-dep-version-filtering.js
index a4a872f54e..19ab5d209d 100644
--- a/deps/npm/test/tap/invalid-dep-version-filtering.js
+++ b/deps/npm/test/tap/invalid-dep-version-filtering.js
@@ -14,7 +14,7 @@ var fixture = new Tacks(Dir({
cache: Dir(),
node_modules: Dir(),
tarballs: Dir({
- 'pkgA.tgz': File(new Buffer(
+ 'pkgA.tgz': File(Buffer.from(
'1f8b0800000000000003edcfcf0a0221100670cf3ec5e0396cfcb703bd8d' +
'842cb5e4ca5a5da2776f5da153b78408fc5d3e6684e133f9e3e4c7b04f35' +
'e539cf9135868883b5509206b725ea3a6f9c01a634598d8e48134365d0e0' +
@@ -23,7 +23,7 @@ var fixture = new Tacks(Dir({
'0000',
'hex'
)),
- 'pkgB1.tgz': File(new Buffer(
+ 'pkgB1.tgz': File(Buffer.from(
'1f8b0800000000000003edcfc10a0221140550d77ec5c375d8d3d111fa1b' +
'0b196ac891b16913fd7be308adda2544f0cee6e25d3caec99f463f847daa' +
'292f798aac3144ec8d8192aeb75ba2aeef8ded8029ed8c46eb1c1a86aa43' +
diff --git a/deps/npm/test/tap/is-fs-access-available.js b/deps/npm/test/tap/is-fs-access-available.js
index 3c1b30ed04..2e5c7edc98 100644
--- a/deps/npm/test/tap/is-fs-access-available.js
+++ b/deps/npm/test/tap/is-fs-access-available.js
@@ -3,13 +3,12 @@ var fs = require('fs')
var test = require('tap').test
var requireInject = require('require-inject')
var semver = require('semver')
-var extend = Object.assign || require('util')._extend
var globalProcess = global.process
function loadIsFsAccessAvailable (newProcess, newFs) {
- global.process = extend(extend({}, global.process), newProcess)
- var mocks = {fs: extend(extend({}, fs), newFs)}
+ global.process = Object.assign({}, global.process, newProcess)
+ var mocks = {fs: Object.assign({}, fs, newFs)}
var isFsAccessAvailable = requireInject('../../lib/install/is-fs-access-available.js', mocks)
global.process = globalProcess
return isFsAccessAvailable
diff --git a/deps/npm/test/tap/link.js b/deps/npm/test/tap/link.js
index 8a4275e19e..88f3caed79 100644
--- a/deps/npm/test/tap/link.js
+++ b/deps/npm/test/tap/link.js
@@ -29,7 +29,7 @@ var readJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
@@ -41,7 +41,7 @@ var readScopedJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
@@ -53,7 +53,7 @@ var installJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
@@ -65,7 +65,7 @@ var insideInstallJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
diff --git a/deps/npm/test/tap/lockfile-http-deps.js b/deps/npm/test/tap/lockfile-http-deps.js
index 058525c947..a614daf139 100644
--- a/deps/npm/test/tap/lockfile-http-deps.js
+++ b/deps/npm/test/tap/lockfile-http-deps.js
@@ -6,7 +6,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -17,7 +16,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/map-to-registry.js b/deps/npm/test/tap/map-to-registry.js
index d9677bd7e0..f6fdef5f10 100644
--- a/deps/npm/test/tap/map-to-registry.js
+++ b/deps/npm/test/tap/map-to-registry.js
@@ -6,7 +6,7 @@ var mapRegistry = require('../../lib/utils/map-to-registry.js')
var creds = {
'//registry.npmjs.org/:username': 'u',
- '//registry.npmjs.org/:_password': new Buffer('p').toString('base64'),
+ '//registry.npmjs.org/:_password': Buffer.from('p').toString('base64'),
'//registry.npmjs.org/:email': 'e',
cache: common.npm_config_cache
}
diff --git a/deps/npm/test/tap/nerf-dart.js b/deps/npm/test/tap/nerf-dart.js
index a6df7272c3..d205e527cc 100644
--- a/deps/npm/test/tap/nerf-dart.js
+++ b/deps/npm/test/tap/nerf-dart.js
@@ -20,13 +20,13 @@ validNerfDart('http://registry.npmjs.org/some-package#random-hash')
validNerfDart(
'http://relative.couchapp.npm/design/-/rewrite/',
- '//relative.couchapp.npm/design/-/rewrite/'
+ '//relative.couchapp.npm/design/-/rewrite/'
)
validNerfDart(
'http://relative.couchapp.npm:8080/design/-/rewrite/',
- '//relative.couchapp.npm:8080/design/-/rewrite/'
+ '//relative.couchapp.npm:8080/design/-/rewrite/'
)
validNerfDart(
'http://relative.couchapp.npm:8080/design/-/rewrite/some-package',
- '//relative.couchapp.npm:8080/design/-/rewrite/'
+ '//relative.couchapp.npm:8080/design/-/rewrite/'
)
diff --git a/deps/npm/test/tap/no-global-warns.js b/deps/npm/test/tap/no-global-warns.js
index 577b393122..304cf5bf54 100644
--- a/deps/npm/test/tap/no-global-warns.js
+++ b/deps/npm/test/tap/no-global-warns.js
@@ -31,7 +31,7 @@ var installJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC'
diff --git a/deps/npm/test/tap/optional-metadep-rollback-collision.js b/deps/npm/test/tap/optional-metadep-rollback-collision.js
index f4ac6bdc79..1c05d1ba58 100644
--- a/deps/npm/test/tap/optional-metadep-rollback-collision.js
+++ b/deps/npm/test/tap/optional-metadep-rollback-collision.js
@@ -1,4 +1,5 @@
'use strict'
+/* eslint-disable camelcase */
var fs = require('graceful-fs')
var path = require('path')
@@ -177,11 +178,11 @@ test('go go test racer', function (t) {
},
stdio: 'pipe'
}).spread((code, stdout, stderr) => {
- t.comment(stdout.trim())
- t.comment(stderr.trim())
- t.is(code, 0, 'npm install exited with code 0')
- t.notOk(/not ok/.test(stdout), 'should not contain the string \'not ok\'')
- })
+ t.comment(stdout.trim())
+ t.comment(stderr.trim())
+ t.is(code, 0, 'npm install exited with code 0')
+ t.notOk(/not ok/.test(stdout), 'should not contain the string \'not ok\'')
+ })
})
test('verify results', function (t) {
diff --git a/deps/npm/test/tap/outdated-color.js b/deps/npm/test/tap/outdated-color.js
index 7fc8c521e5..3a81d05a82 100644
--- a/deps/npm/test/tap/outdated-color.js
+++ b/deps/npm/test/tap/outdated-color.js
@@ -54,14 +54,14 @@ test('does not use ansi styling', function (t) {
'--registry', common.registry,
'outdated', 'underscore'
],
- EXEC_OPTS,
- function (err, code, stdout) {
- t.ifError(err)
- t.is(code, 1, 'npm outdated exited with code 1')
- t.ok(stdout, stdout.length)
- t.ok(!hasControlCodes(stdout))
- s.close()
- })
+ EXEC_OPTS,
+ function (err, code, stdout) {
+ t.ifError(err)
+ t.is(code, 1, 'npm outdated exited with code 1')
+ t.ok(stdout, stdout.length)
+ t.ok(!hasControlCodes(stdout))
+ s.close()
+ })
})
})
diff --git a/deps/npm/test/tap/outdated-latest.js b/deps/npm/test/tap/outdated-latest.js
new file mode 100644
index 0000000000..d72fd87176
--- /dev/null
+++ b/deps/npm/test/tap/outdated-latest.js
@@ -0,0 +1,109 @@
+'use strict'
+const path = require('path')
+const test = require('tap').test
+const mr = require('npm-registry-mock')
+const Tacks = require('tacks')
+const File = Tacks.File
+const Dir = Tacks.Dir
+const common = require('../common-tap.js')
+
+const basedir = path.join(__dirname, path.basename(__filename, '.js'))
+const testdir = path.join(basedir, 'testdir')
+const cachedir = path.join(basedir, 'cache')
+const globaldir = path.join(basedir, 'global')
+const tmpdir = path.join(basedir, 'tmp')
+
+const conf = {
+ cwd: testdir,
+ env: Object.assign({}, process.env, {
+ npm_config_cache: cachedir,
+ npm_config_tmp: tmpdir,
+ npm_config_prefix: globaldir,
+ npm_config_registry: common.registry,
+ npm_config_loglevel: 'warn'
+ })
+}
+
+function exampleManifest (version) {
+ return {
+ name: 'example',
+ version: version
+ }
+}
+
+const examplePackument = {
+ 'name': 'example',
+ 'dist-tags': {
+ 'latest': '1.2.4',
+ 'beta': '1.2.6'
+ },
+ 'versions': {
+ '1.2.0': exampleManifest('1.2.0'),
+ '1.2.1': exampleManifest('1.2.1'),
+ '1.2.2': exampleManifest('1.2.2'),
+ '1.2.3': exampleManifest('1.2.3'),
+ '1.2.4': exampleManifest('1.2.4'),
+ '1.2.5': exampleManifest('1.2.5'),
+ '1.2.6': exampleManifest('1.2.6')
+ }
+}
+
+const fixture = new Tacks(Dir({
+ cache: Dir(),
+ global: Dir(),
+ tmp: Dir(),
+ testdir: Dir({
+ node_modules: Dir({
+ example: Dir({
+ 'package.json': File({
+ name: 'example',
+ version: '1.2.3'
+ })
+ })
+ }),
+ 'package.json': File({
+ name: 'outdated-latest',
+ version: '1.0.0',
+ dependencies: {
+ example: '^1.2.0'
+ }
+ })
+ })
+}))
+
+function setup () {
+ cleanup()
+ fixture.create(basedir)
+}
+
+function cleanup () {
+ fixture.remove(basedir)
+}
+
+let server
+
+test('setup', function (t) {
+ setup()
+ mr({port: common.port, throwOnUnmatched: true}, function (err, s) {
+ if (err) throw err
+ server = s
+ server.get('/example').reply(200, examplePackument)
+ t.done()
+ })
+})
+
+test('example', function (t) {
+ return common.npm(['outdated', '--json'], conf).spread((code, stdout, stderr) => {
+ t.is(code, 1, 'files ARE outdated!')
+ const result = JSON.parse(stdout.trim())
+ t.comment(stderr.trim())
+ // your assertions here
+ t.like(result, {example: {current: '1.2.3', wanted: '1.2.4', latest: '1.2.4'}}, 'got latest, not beta')
+ })
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.done()
+})
diff --git a/deps/npm/test/tap/override-bundled.js b/deps/npm/test/tap/override-bundled.js
index cf6049a128..493ebf4a5d 100644
--- a/deps/npm/test/tap/override-bundled.js
+++ b/deps/npm/test/tap/override-bundled.js
@@ -15,7 +15,7 @@ var testtgz = testmod + '-1.0.0.tgz'
var bundleupdatesrc = path.resolve(testmod, 'bundle-update')
var bundleupdatetgz = bundleupdatesrc + '-1.0.0.tgz'
var bundleupdateNEW = path.resolve(bundleupdatesrc, 'NEW')
-var bundleupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'top-test', 'node_modules', 'bundle-update', 'NEW')
+var bundleupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'bundle-update', 'NEW')
var bundleupdatebad = path.resolve(testmod, 'node_modules', 'bundle-update')
var bundlekeepsrc = path.resolve(testmod, 'bundle-keep')
@@ -34,8 +34,7 @@ var bundledeepupdatesrc = path.resolve(testmod, 'bundle-deep-update')
var bundledeepupdatetgz = bundledeepupdatesrc + '-1.0.0.tgz'
var bundledeepupdate = path.resolve(bundledeep, 'node_modules', 'bundle-deep-update')
var bundledeepupdateNEW = path.resolve(bundledeepupdatesrc, 'NEW')
-var bundledeepupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'top-test',
- 'node_modules', 'bundle-deep', 'node_modules', 'bundle-deep-update', 'NEW')
+var bundledeepupdateNEWpostinstall = path.resolve(testdir, 'node_modules', 'bundle-deep-update', 'NEW')
var testjson = {
dependencies: {'top-test': 'file:' + testtgz}
@@ -56,7 +55,6 @@ var bundlejson = {
name: 'bundle-update',
version: '1.0.0',
files: ['OLD', 'NEW']
-
}
var bundlekeepjson = {
@@ -65,6 +63,8 @@ var bundlekeepjson = {
_requested: {
rawSpec: bundlekeeptgz
},
+ _resolved: bundlekeeptgz,
+ _shasum: 'baadf00d',
files: ['OLD', 'NEW']
}
@@ -77,6 +77,8 @@ var bundledeepjson = {
_requested: {
rawSpec: bundledeeptgz
},
+ _resolved: bundlekeeptgz,
+ _shasum: 'deadbeef',
files: ['OLD', 'NEW']
}
diff --git a/deps/npm/test/tap/files-and-ignores.js b/deps/npm/test/tap/pack-files-and-ignores.js
index 6d8b43e9d5..6d8b43e9d5 100644
--- a/deps/npm/test/tap/files-and-ignores.js
+++ b/deps/npm/test/tap/pack-files-and-ignores.js
diff --git a/deps/npm/test/tap/pack.js b/deps/npm/test/tap/pack.js
new file mode 100644
index 0000000000..a0c326210e
--- /dev/null
+++ b/deps/npm/test/tap/pack.js
@@ -0,0 +1,167 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const test = require('tap').test
+const common = require('../common-tap')
+const fs = BB.promisifyAll(require('graceful-fs'))
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const Tacks = require('tacks')
+
+const Dir = Tacks.Dir
+const File = Tacks.File
+
+const testDir = path.join(__dirname, 'pkg')
+const tmp = path.join(testDir, 'tmp')
+const cache = path.join(testDir, 'cache')
+
+test('basic pack', (t) => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'generic-package',
+ version: '90000.100001.5'
+ })
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'pack',
+ '--loglevel', 'notice',
+ '--cache', cache,
+ '--tmp', tmp,
+ '--prefix', testDir,
+ '--no-global'
+ ], {
+ cwd: testDir
+ }))
+ .spread((code, stdout, stderr) => {
+ t.equal(code, 0, 'npm pack exited ok')
+ t.match(stderr, /notice\s+\d+[a-z]+\s+package\.json/gi, 'mentions package.json')
+ t.match(stdout, /generic-package-90000\.100001\.5\.tgz/ig, 'found pkg')
+ return fs.statAsync(
+ path.join(testDir, 'generic-package-90000.100001.5.tgz')
+ )
+ })
+ .then((stat) => t.ok(stat, 'tarball written to cwd'))
+ .then(() => rimraf(testDir))
+})
+
+test('pack with bundled', (t) => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'generic-package',
+ version: '90000.100001.5',
+ dependencies: {
+ '@bundle/dep': '^1.0.0',
+ 'regular-dep': '^1.0.0'
+ },
+ bundleDependencies: [
+ '@bundle/dep',
+ 'regular-dep'
+ ]
+ }),
+ 'node_modules': new Dir({
+ 'regular-dep': new Dir({
+ 'package.json': new File({
+ name: 'regular-dep',
+ version: '1.0.0'
+ })
+ }),
+ '@bundle': new Dir({
+ 'dep': new Dir({
+ 'package.json': new File({
+ name: '@bundle/dep',
+ version: '1.0.0'
+ })
+ })
+ })
+ })
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'pack',
+ '--loglevel', 'notice',
+ '--cache', cache,
+ '--tmp', tmp,
+ '--prefix', testDir,
+ '--no-global'
+ ], {
+ cwd: testDir
+ }))
+ .spread((code, stdout, stderr) => {
+ t.equal(code, 0, 'npm pack exited ok')
+ t.match(stderr, /notice\s+\d+[a-z]+\s+package\.json/gi, 'mentions package.json')
+ t.match(stderr, /notice\s+regular-dep/, 'regular dep mentioned')
+ t.match(stderr, /notice\s+@bundle\/dep/, 'bundled dep mentioned')
+ })
+ .then(() => rimraf(testDir))
+})
+
+test('pack --dry-run', (t) => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'generic-package',
+ version: '90000.100001.5'
+ })
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'pack',
+ '--dry-run',
+ '--loglevel', 'notice',
+ '--cache', cache,
+ '--tmp', tmp,
+ '--prefix', testDir,
+ '--no-global'
+ ], {
+ cwd: testDir
+ }))
+ .spread((code, stdout, stderr) => {
+ t.equal(code, 0, 'npm pack exited ok')
+ t.match(stdout, /generic-package-90000\.100001\.5\.tgz/ig, 'found pkg')
+ return fs.statAsync(
+ path.join(testDir, 'generic-package-90000.100001.5.tgz')
+ )
+ .then(
+ () => { throw new Error('should have failed') },
+ (err) => t.equal(err.code, 'ENOENT', 'no tarball written!')
+ )
+ })
+ .then(() => rimraf(testDir))
+})
+
+test('pack --json', (t) => {
+ const fixture = new Tacks(new Dir({
+ 'package.json': new File({
+ name: 'generic-package',
+ version: '90000.100001.5'
+ })
+ }))
+ return rimraf(testDir)
+ .then(() => fixture.create(testDir))
+ .then(() => common.npm([
+ 'pack',
+ '--dry-run',
+ '--json',
+ '--loglevel', 'notice',
+ '--cache', cache,
+ '--tmp', tmp,
+ '--prefix', testDir,
+ '--no-global'
+ ], {
+ cwd: testDir
+ }))
+ .spread((code, stdout, stderr) => {
+ t.equal(code, 0, 'npm pack exited ok')
+ t.equal(stderr.trim(), '', 'no notice output')
+ t.similar(JSON.parse(stdout), [{
+ filename: 'generic-package-90000.100001.5.tgz',
+ files: [{path: 'package.json'}],
+ entryCount: 1
+ }], 'pack details output as valid json')
+ })
+ .then(() => rimraf(testDir))
+})
diff --git a/deps/npm/test/tap/peer-deps.js b/deps/npm/test/tap/peer-deps.js
index c319c32e48..b516818da1 100644
--- a/deps/npm/test/tap/peer-deps.js
+++ b/deps/npm/test/tap/peer-deps.js
@@ -8,7 +8,7 @@ var rimraf = require('rimraf')
var test = require('tap').test
var common = require('../common-tap.js')
-var npm = npm = require('../../')
+var npm = require('../../')
var pkg = path.resolve(__dirname, 'peer-deps')
diff --git a/deps/npm/test/tap/prepublish-only.js b/deps/npm/test/tap/prepublish-only.js
index 3681c76897..0d2d31589d 100644
--- a/deps/npm/test/tap/prepublish-only.js
+++ b/deps/npm/test/tap/prepublish-only.js
@@ -6,6 +6,7 @@ var test = require('tap').test
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
+var path = require('path')
var common = require('../common-tap')
@@ -57,7 +58,7 @@ var fixture = new Tacks(Dir({
},
scripts: {
build: 'helper',
- prepublishOnly: 'npm run build'
+ prepublishOnly: 'node ' + path.resolve(__dirname, '../../') + ' run build'
}
})
}))
@@ -93,8 +94,8 @@ test('setup', function (t) {
test('test', function (t) {
server.filteringRequestBody(function () { return true })
- .put('/npm-test-prepublish-only', true)
- .reply(201, {ok: true})
+ .put('/npm-test-prepublish-only', true)
+ .reply(201, {ok: true})
common.npm(
[
@@ -113,7 +114,7 @@ test('test', function (t) {
var c = stdout.trim()
var regex = new RegExp(
'> npm-test-prepublish-only@1.2.5 prepublishOnly [^\\r\\n]+\\r?\\n' +
- '> npm run build\\r?\\n' +
+ '> .* run build\\r?\\n' +
'\\r?\\n' +
'\\r?\\n' +
'> npm-test-prepublish-only@1.2.5 build [^\\r\\n]+\\r?\\n' +
diff --git a/deps/npm/test/tap/prune-dev-dep-with-bins.js b/deps/npm/test/tap/prune-dev-dep-with-bins.js
index c22b6343ab..686b5d8d6d 100644
--- a/deps/npm/test/tap/prune-dev-dep-with-bins.js
+++ b/deps/npm/test/tap/prune-dev-dep-with-bins.js
@@ -50,7 +50,7 @@ var fixture = new Tacks(
') ELSE (\n' +
'@SETLOCAL\n' +
'@SET PATHEXT=%PATHEXT:;.JS;=;%\n' +
- 'node "%~dp0\..\yes\yes.js" %*')
+ 'node "%~dp0\\..\\yes\\yes.js" %*')
})
}),
'package.json': File({
diff --git a/deps/npm/test/tap/publish-config.js b/deps/npm/test/tap/publish-config.js
index fb430af210..0566795dbe 100644
--- a/deps/npm/test/tap/publish-config.js
+++ b/deps/npm/test/tap/publish-config.js
@@ -19,7 +19,7 @@ fs.writeFileSync(pkg + '/package.json', JSON.stringify({
fs.writeFileSync(pkg + '/fixture_npmrc',
'//localhost:1337/:email = fancy@feast.net\n' +
'//localhost:1337/:username = fancy\n' +
- '//localhost:1337/:_password = ' + new Buffer('feast').toString('base64'))
+ '//localhost:1337/:_password = ' + Buffer.from('feast').toString('base64'))
test(function (t) {
let child
diff --git a/deps/npm/test/tap/publish-scoped.js b/deps/npm/test/tap/publish-scoped.js
index c2a8301b77..b8fe0ae2f6 100644
--- a/deps/npm/test/tap/publish-scoped.js
+++ b/deps/npm/test/tap/publish-scoped.js
@@ -35,15 +35,15 @@ test('setup', function (t) {
test('npm publish should honor scoping', function (t) {
server.filteringRequestBody(verify)
- .put('/@bigco%2fpublish-organized', true)
- .reply(201, {ok: true})
+ .put('/@bigco%2fpublish-organized', true)
+ .reply(201, {ok: true})
var configuration = [
'progress=false',
'cache=' + path.join(pkg, 'cache'),
'registry=http://nonexistent.lvh.me',
'//localhost:1337/:username=username',
- '//localhost:1337/:_password=' + new Buffer('password').toString('base64'),
+ '//localhost:1337/:_password=' + Buffer.from('password').toString('base64'),
'//localhost:1337/:email=' + 'ogd@aoaioxxysz.net',
'@bigco:registry=' + common.registry
]
diff --git a/deps/npm/test/tap/publish.js b/deps/npm/test/tap/publish.js
new file mode 100644
index 0000000000..765cfb07c6
--- /dev/null
+++ b/deps/npm/test/tap/publish.js
@@ -0,0 +1,174 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const common = require('../common-tap')
+const fs = require('fs')
+const mkdirp = require('mkdirp')
+const mr = BB.promisify(require('npm-registry-mock'))
+const path = require('path')
+const rimraf = require('rimraf')
+const test = require('tap').test
+
+const testDir = path.join(__dirname, 'publish_test_package')
+
+function setup () {
+ cleanup()
+ mkdirp.sync(path.join(testDir, 'cache'))
+
+ fs.writeFileSync(
+ path.join(testDir, 'package.json'),
+ JSON.stringify({
+ name: 'publish-organized',
+ version: '1.2.5'
+ }, null, 2),
+ 'utf8'
+ )
+
+ fs.writeFileSync(
+ path.join(testDir, 'index.js'),
+ 'hello',
+ 'utf8'
+ )
+}
+
+let port = common.port
+function withServer (cb) {
+ return mr({port: port++, throwOnUnmatched: true})
+ .tap(cb)
+ .then((server) => {
+ server.done()
+ return server.close()
+ })
+}
+
+test('basic npm publish', (t) => {
+ setup()
+ return withServer((server) => {
+ server.filteringRequestBody(verify)
+ .put('/publish-organized', true)
+ .reply(201, {ok: true})
+
+ return common.npm([
+ 'publish',
+ '--no-color',
+ '--cache', path.join(testDir, 'cache'),
+ '--registry=' + common.registry.replace(common.port, server.port),
+ `--//localhost:${server.port}/:username=username`,
+ `--//localhost:${server.port}/:_password=` + Buffer.from('password').toString('base64'),
+ `--//localhost:${server.port}/:email=` + 'ogd@aoaioxxysz.net'
+ ], {'cwd': testDir})
+ .spread((code, stdout, stderr) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.is(code, 0, 'published without error')
+ })
+
+ function verify (body) {
+ t.doesNotThrow(() => {
+ const parsed = JSON.parse(body)
+ const current = parsed.versions['1.2.5']
+ t.equal(
+ current._npmVersion,
+ require(path.resolve(__dirname, '../../package.json')).version,
+ 'npm version is correct'
+ )
+
+ t.equal(
+ current._nodeVersion,
+ process.versions.node,
+ 'node version is correct'
+ )
+ }, 'converted body back into object')
+
+ return true
+ }
+ })
+})
+
+test('npm publish --dry-run', (t) => {
+ setup()
+ return common.npm([
+ 'publish',
+ '--dry-run',
+ '--registry=https://example.registry/fake',
+ '--cache', path.join(testDir, 'cache'),
+ '--loglevel=notice',
+ '--no-color'
+ ], {'cwd': testDir})
+ .spread((code, stdout, stderr) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.is(code, 0, 'published without error')
+ t.match(stderr, /notice\s+\d+[a-z]+\s+package\.json/gi, 'mentions package.json')
+ t.match(stderr, /notice\s+\d+[a-z]+\s+index\.js/gi, 'mentions index.js')
+ })
+})
+
+test('npm publish --json', (t) => {
+ setup()
+ return withServer((server) => {
+ server.filteringRequestBody(() => true)
+ .put('/publish-organized', true)
+ .reply(201, {ok: true})
+ return common.npm([
+ 'publish',
+ '--json',
+ '--registry', common.registry.replace(common.port, server.port),
+ '--cache', path.join(testDir, 'cache')
+ ], {'cwd': testDir})
+ .spread((code, stdout, stderr) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.is(code, 0, 'published without error')
+ t.similar(JSON.parse(stdout), {
+ name: 'publish-organized',
+ version: '1.2.5',
+ files: [
+ {path: 'package.json'},
+ {path: 'index.js'}
+ ],
+ entryCount: 2
+ }, 'JSON output reflects package contents')
+ t.equal(stderr.trim(), '', 'nothing on stderr')
+ })
+ })
+})
+
+test('npm publish --dry-run --json', (t) => {
+ setup()
+ return common.npm([
+ 'publish',
+ '--dry-run',
+ '--json',
+ '--registry=https://example.registry/fake',
+ '--cache', path.join(testDir, 'cache'),
+ '--loglevel=notice',
+ '--no-color'
+ ], {'cwd': testDir})
+ .spread((code, stdout, stderr) => {
+ t.comment(stdout)
+ t.comment(stderr)
+ t.is(code, 0, 'published without error')
+ t.similar(JSON.parse(stdout), {
+ name: 'publish-organized',
+ version: '1.2.5',
+ files: [
+ {path: 'package.json'},
+ {path: 'index.js'}
+ ],
+ entryCount: 2
+ }, 'JSON output reflects package contents')
+ t.equal(stderr.trim(), '', 'nothing on stderr')
+ })
+})
+
+test('cleanup', (t) => {
+ cleanup()
+ t.end()
+})
+
+function cleanup () {
+ process.chdir(__dirname)
+ rimraf.sync(testDir)
+}
diff --git a/deps/npm/test/tap/repo.js b/deps/npm/test/tap/repo.js
index e2751573d0..54907f620c 100644
--- a/deps/npm/test/tap/repo.js
+++ b/deps/npm/test/tap/repo.js
@@ -14,7 +14,7 @@ common.pendIfWindows('This is trickier to convert without opening new shells')
test('setup', function (t) {
var s = '#!/usr/bin/env bash\n' +
- 'echo \"$@\" > ' + JSON.stringify(__dirname) + '/_output\n'
+ 'echo "$@" > ' + JSON.stringify(__dirname) + '/_output\n'
fs.writeFileSync(fakeBrowser, s, 'ascii')
fs.chmodSync(fakeBrowser, '0755')
t.pass('made script')
diff --git a/deps/npm/test/tap/retry-on-stale-cache.js b/deps/npm/test/tap/retry-on-stale-cache.js
index df6d7c2db3..8aec35ed4f 100644
--- a/deps/npm/test/tap/retry-on-stale-cache.js
+++ b/deps/npm/test/tap/retry-on-stale-cache.js
@@ -3,7 +3,6 @@ var path = require('path')
var mr = require('npm-registry-mock')
var test = require('tap').test
var common = require('../common-tap')
-var extend = Object.assign || require('util')._extend
var Tacks = require('tacks')
var Dir = Tacks.Dir
var File = Tacks.File
@@ -23,7 +22,7 @@ var config = [
var fixture = new Tacks(Dir({
'cache': Dir(),
'modules': Dir({
- 'good-night-0.1.0.tgz': File(new Buffer(
+ 'good-night-0.1.0.tgz': File(Buffer.from(
'1f8b0800000000000003ed934f4bc43010c57beea7187a59056dd36eff80' +
'de85050541c1f3d8c634da4e4a925a8af8dd6db7bb8ba0e0c15559e9eff2' +
'206f929909bc06f327143c6826f51f8d2267cf30c6d2388641c32c61ef75' +
@@ -37,7 +36,7 @@ var fixture = new Tacks(Dir({
'f6795d000c0000',
'hex'
)),
- 'good-night-1.0.0.tgz': File(new Buffer(
+ 'good-night-1.0.0.tgz': File(Buffer.from(
'1f8b0800000000000003ed954d6bc24010863dfb2bb6b9a8503793b849a0' +
'eda5979efa052d484184252e495a331b76d78a94fef76e8cf683163cd42a' +
'957d2e03796777268187543c7de299f0aba6d2472db1b5650020668cd81a' +
@@ -79,9 +78,9 @@ var onlyOldMetadata = {
}
}
-var oldAndNewMetadata = extend({}, onlyOldMetadata)
+var oldAndNewMetadata = Object.assign({}, onlyOldMetadata)
oldAndNewMetadata['dist-tags'] = { latest: '1.0.0' }
-oldAndNewMetadata.versions = extend({
+oldAndNewMetadata.versions = Object.assign({
'1.0.0': {
'name': 'good-night',
'version': '1.0.0',
diff --git a/deps/npm/test/tap/save-optional.js b/deps/npm/test/tap/save-optional.js
new file mode 100644
index 0000000000..66e430dc78
--- /dev/null
+++ b/deps/npm/test/tap/save-optional.js
@@ -0,0 +1,81 @@
+'use strict'
+const path = require('path')
+const test = require('tap').test
+const mr = require('npm-registry-mock')
+const Tacks = require('tacks')
+const fs = require('fs')
+const File = Tacks.File
+const Dir = Tacks.Dir
+const common = require('../common-tap.js')
+
+const basedir = path.join(__dirname, path.basename(__filename, '.js'))
+const testdir = path.join(basedir, 'testdir')
+const cachedir = path.join(basedir, 'cache')
+const globaldir = path.join(basedir, 'global')
+const tmpdir = path.join(basedir, 'tmp')
+
+const conf = {
+ cwd: testdir,
+ stdio: [0, 1, 2],
+ env: Object.assign({}, process.env, {
+ npm_config_cache: cachedir,
+ npm_config_tmp: tmpdir,
+ npm_config_prefix: globaldir,
+ npm_config_registry: common.registry,
+ npm_config_loglevel: 'silly'
+ })
+}
+
+let server
+const fixture = new Tacks(Dir({
+ cache: Dir(),
+ global: Dir(),
+ tmp: Dir(),
+ testdir: Dir({
+ example: Dir({
+ 'package.json': File({
+ name: 'example',
+ version: '1.0.0'
+ })
+ }),
+ 'package.json': File({
+ name: 'save-optional',
+ version: '1.0.0'
+ })
+ })
+}))
+
+function setup () {
+ cleanup()
+ fixture.create(basedir)
+}
+
+function cleanup () {
+ fixture.remove(basedir)
+}
+
+test('setup', function (t) {
+ setup()
+ mr({port: common.port, throwOnUnmatched: true}, function (err, s) {
+ if (err) throw err
+ server = s
+ t.done()
+ })
+})
+
+test('example', function (t) {
+ common.npm(['install', '-O', '--package-lock-only', 'file:example'], conf, function (err, code) {
+ if (err) throw err
+ t.is(code, 0, 'command ran ok')
+ const plock = JSON.parse(fs.readFileSync(`${testdir}/package-lock.json`))
+ t.like(plock, { dependencies: { example: { optional: true } } }, 'optional status saved')
+ // your assertions here
+ t.done()
+ })
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.done()
+})
diff --git a/deps/npm/test/tap/scripts-whitespace-windows.js b/deps/npm/test/tap/scripts-whitespace-windows.js
index 27a04601c7..4d1e53a8f5 100644
--- a/deps/npm/test/tap/scripts-whitespace-windows.js
+++ b/deps/npm/test/tap/scripts-whitespace-windows.js
@@ -21,7 +21,7 @@ var json = {
description: 'a test',
repository: 'git://github.com/robertkowalski/bogus',
scripts: {
- foo: 'foo --title \"Analysis of\" --recurse -d report src'
+ foo: 'foo --title "Analysis of" --recurse -d report src'
},
dependencies: {
'scripts-whitespace-windows-dep': '0.0.1'
@@ -35,8 +35,6 @@ var dependency = {
bin: [ 'bin/foo' ]
}
-var extend = Object.assign || require('util')._extend
-
var foo = function () { /*
#!/usr/bin/env node
@@ -65,7 +63,7 @@ test('setup', function (t) {
common.npm(['i', dep], {
cwd: pkg,
- env: extend({
+ env: Object.assign({
npm_config_cache: cache,
npm_config_tmp: tmp,
npm_config_prefix: pkg,
diff --git a/deps/npm/test/tap/search.js b/deps/npm/test/tap/search.js
index 3568170de1..df7ff0fe37 100644
--- a/deps/npm/test/tap/search.js
+++ b/deps/npm/test/tap/search.js
@@ -164,9 +164,9 @@ test('no arguments provided should error', function (t) {
t.equal(code, 1, 'search finished unsuccessfully')
t.match(
- stderr,
- /search must be called with arguments/,
- 'should have correct error message'
+ stderr,
+ /search must be called with arguments/,
+ 'should have correct error message'
)
t.end()
})
diff --git a/deps/npm/test/tap/shared-linked.js b/deps/npm/test/tap/shared-linked.js
index 0e2b462789..3ee00e063d 100644
--- a/deps/npm/test/tap/shared-linked.js
+++ b/deps/npm/test/tap/shared-linked.js
@@ -7,7 +7,6 @@ var Symlink = Tacks.Symlink
var Dir = Tacks.Dir
var common = require('../common-tap.js')
var mr = require('npm-registry-mock')
-var extend = Object.assign || require('util')._extend
var testdir = path.join(__dirname, path.basename(__filename, '.js'))
var bugdir = path.join(testdir, 'modules', 'bug')
@@ -122,7 +121,7 @@ test('setup', function (t) {
test('shared-linked', function (t) {
var options = {
cwd: bugdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_prefix: path.join(testdir, 'global')
})
}
diff --git a/deps/npm/test/tap/shrinkwrap-default-dev.js b/deps/npm/test/tap/shrinkwrap-default-dev.js
index 5c8929a43d..48f9f2a90a 100644
--- a/deps/npm/test/tap/shrinkwrap-default-dev.js
+++ b/deps/npm/test/tap/shrinkwrap-default-dev.js
@@ -5,7 +5,6 @@ var fs = require('fs')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -16,7 +15,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js b/deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js
index 8d5210c404..bc9ab9cf11 100644
--- a/deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js
+++ b/deps/npm/test/tap/shrinkwrap-lifecycle-cwd.js
@@ -5,7 +5,6 @@ var mr = require('npm-registry-mock')
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -17,7 +16,7 @@ var escapeArg = require('../../lib/utils/escape-arg.js')
var conf = {
cwd: testdir,
- env: extend({
+ env: Object.assign({
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/shrinkwrap-optional-dependency.js b/deps/npm/test/tap/shrinkwrap-optional-dependency.js
index 0373e89e62..5085dd0cbb 100644
--- a/deps/npm/test/tap/shrinkwrap-optional-dependency.js
+++ b/deps/npm/test/tap/shrinkwrap-optional-dependency.js
@@ -8,7 +8,7 @@ var rimraf = require('rimraf')
var test = require('tap').test
var common = require('../common-tap.js')
-var npm = npm = require('../../')
+var npm = require('../../')
var pkg = path.resolve(__dirname, 'shrinkwrap-optional-dependency')
diff --git a/deps/npm/test/tap/shrinkwrap-optional-platform.js b/deps/npm/test/tap/shrinkwrap-optional-platform.js
index 50a1706868..b109d89578 100644
--- a/deps/npm/test/tap/shrinkwrap-optional-platform.js
+++ b/deps/npm/test/tap/shrinkwrap-optional-platform.js
@@ -4,7 +4,6 @@ var test = require('tap').test
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -15,7 +14,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend(extend({}, process.env), {
+ env: Object.assign({}, process.env, {
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/shrinkwrap-optional-property.js b/deps/npm/test/tap/shrinkwrap-optional-property.js
index 19e55a45f8..ccff5a93e2 100644
--- a/deps/npm/test/tap/shrinkwrap-optional-property.js
+++ b/deps/npm/test/tap/shrinkwrap-optional-property.js
@@ -8,7 +8,7 @@ var rimraf = require('rimraf')
var test = require('tap').test
var common = require('../common-tap.js')
-var npm = npm = require('../../')
+var npm = require('../../')
var pkg = path.resolve(__dirname, 'shrinkwrap-optional-dependency')
diff --git a/deps/npm/test/tap/shrinkwrap-prod-dependency.js b/deps/npm/test/tap/shrinkwrap-prod-dependency.js
index 023a3bf0b7..34e30d7c7a 100644
--- a/deps/npm/test/tap/shrinkwrap-prod-dependency.js
+++ b/deps/npm/test/tap/shrinkwrap-prod-dependency.js
@@ -7,7 +7,7 @@ var osenv = require('osenv')
var rimraf = require('rimraf')
var test = require('tap').test
-var npm = npm = require('../../')
+var npm = require('../../')
var common = require('../common-tap.js')
var pkg = path.resolve(__dirname, 'shrinkwrap-prod-dependency')
diff --git a/deps/npm/test/tap/shrinkwrap-resolve-conflict.js b/deps/npm/test/tap/shrinkwrap-resolve-conflict.js
new file mode 100644
index 0000000000..146d1191bf
--- /dev/null
+++ b/deps/npm/test/tap/shrinkwrap-resolve-conflict.js
@@ -0,0 +1,117 @@
+'use strict'
+
+const BB = require('bluebird')
+
+const common = require('../common-tap.js')
+const fs = BB.promisifyAll(require('fs'))
+const path = require('path')
+const rimraf = BB.promisify(require('rimraf'))
+const test = require('tap').test
+const Tacks = require('tacks')
+
+const File = Tacks.File
+const Dir = Tacks.Dir
+
+const testDir = path.resolve(__dirname, path.basename(__filename, '.js'))
+const modAdir = path.resolve(testDir, 'modA')
+const modBdir = path.resolve(testDir, 'modB')
+const modCdir = path.resolve(testDir, 'modC')
+
+test('conflicts in shrinkwrap are auto-resolved on install', (t) => {
+ const fixture = new Tacks(Dir({
+ 'package.json': File({
+ name: 'foo',
+ dependencies: {
+ modA: 'file://' + modAdir,
+ modB: 'file://' + modBdir
+ },
+ devDependencies: {
+ modC: 'file://' + modCdir
+ }
+ }),
+ 'npm-shrinkwrap.json': File(
+ `
+{
+ "name": "foo",
+ "requires": true,
+ "lockfileVersion": 1,
+ "dependencies": {
+<<` + `<<` + `<<` + `< HEAD
+ "modA": {
+ "version": "file:modA"
+||` + `||` + `||` + `| merged common ancestors
+ "modB": {
+ "version": "file:modB"
+==` + `==` + `==` + `=
+ "modC": {
+ "version": "file:modC",
+ "dev": true
+>>` + `>>` + `>>` + `> branch
+ }
+ }
+}
+`),
+ 'modA': Dir({
+ 'package.json': File({
+ name: 'modA',
+ version: '1.0.0'
+ })
+ }),
+ 'modB': Dir({
+ 'package.json': File({
+ name: 'modB',
+ version: '1.0.0'
+ })
+ }),
+ 'modC': Dir({
+ 'package.json': File({
+ name: 'modC',
+ version: '1.0.0'
+ })
+ })
+ }))
+ fixture.create(testDir)
+ function readJson (file) {
+ return fs.readFileAsync(path.join(testDir, file)).then(JSON.parse)
+ }
+ return BB.fromNode((cb) => {
+ common.npm([
+ 'install',
+ '--loglevel', 'warn'
+ ], {cwd: testDir}, (err, code, out, stderr) => {
+ t.comment(stderr)
+ t.match(stderr, /warn.*conflict/gi, 'warns about a conflict')
+ cb(err || (code && new Error('non-zero exit code')) || null, out)
+ })
+ })
+ .then(() => BB.join(
+ readJson('npm-shrinkwrap.json'),
+ readJson('node_modules/modA/package.json'),
+ readJson('node_modules/modB/package.json'),
+ readJson('node_modules/modC/package.json'),
+ (lockfile, A, B, C) => {
+ t.deepEqual(lockfile, {
+ name: 'foo',
+ requires: true,
+ lockfileVersion: 1,
+ dependencies: {
+ modA: {
+ version: 'file:modA'
+ },
+ modB: {
+ version: 'file:modB'
+ },
+ modC: {
+ version: 'file:modC',
+ dev: true
+ }
+ }
+ }, 'resolved lockfile matches expectations')
+ t.equal(A.name, 'modA', 'installed modA')
+ t.equal(B.name, 'modB', 'installed modB')
+ t.equal(C.name, 'modC', 'installed modC')
+ }
+ ))
+})
+
+test('cleanup', () => rimraf(testDir))
diff --git a/deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js b/deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js
index 507f2c56f8..5934a758da 100644
--- a/deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js
+++ b/deps/npm/test/tap/shrinkwrap-save-dev-with-existing-deps.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
var fs = require('fs')
var path = require('path')
diff --git a/deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js b/deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js
index fa8895577a..5f0eb07962 100644
--- a/deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js
+++ b/deps/npm/test/tap/shrinkwrap-save-with-existing-dev-deps.js
@@ -1,3 +1,4 @@
+/* eslint-disable camelcase */
var fs = require('fs')
var path = require('path')
diff --git a/deps/npm/test/tap/spec-local-specifiers.js b/deps/npm/test/tap/spec-local-specifiers.js
index 8c8c565dc3..d149b7ea0e 100644
--- a/deps/npm/test/tap/spec-local-specifiers.js
+++ b/deps/npm/test/tap/spec-local-specifiers.js
@@ -365,7 +365,7 @@ testdirContent['install-behavior'] = Dir({
}
})
}),
- 'noext': File(new Buffer(
+ 'noext': File(Buffer.from(
'1f8b08000000000000032b484cce4e4c4fd52f80d07a59c5f9790c540606' +
'06066626260a20dadccc144c1b1841f86000923334363037343536343732' +
'633000728c0c80f2d4760836505a5c925804740aa5e640bca200a78708a8' +
@@ -373,7 +373,7 @@ testdirContent['install-behavior'] = Dir({
'1928d5720db41b47c1281805a36014501f00005012007200080000',
'hex'
)),
- 'tarball-1.0.0.tgz': File(new Buffer(
+ 'tarball-1.0.0.tgz': File(Buffer.from(
'1f8b08000000000000032b484cce4e4c4fd52f80d07a59c5f9790c540606' +
'06066626260a20dadccc144c1b1841f8606062a6c060686c606e686a6c68' +
'666ec26000e480e5a9ed106ca0b4b824b108e8144acd817845014e0f1150' +
diff --git a/deps/npm/test/tap/startstop.js b/deps/npm/test/tap/startstop.js
index b17a303c82..0e9d2d9402 100644
--- a/deps/npm/test/tap/startstop.js
+++ b/deps/npm/test/tap/startstop.js
@@ -16,8 +16,8 @@ var json = {
name: 'startstop',
version: '1.2.3',
scripts: {
- start: 'node -e \"console.log(\'start\')\"',
- stop: 'node -e \"console.log(\'stop\')\"'
+ start: 'node -e "console.log(\'start\')"',
+ stop: 'node -e "console.log(\'stop\')"'
}
}
diff --git a/deps/npm/test/tap/symlink-cycle.js b/deps/npm/test/tap/symlink-cycle.js
index 62aa8e0674..5bee2c5569 100644
--- a/deps/npm/test/tap/symlink-cycle.js
+++ b/deps/npm/test/tap/symlink-cycle.js
@@ -17,7 +17,7 @@ var cycleJSON = {
description: '',
main: 'index.js',
scripts: {
- test: 'echo \"Error: no test specified\" && exit 1'
+ test: 'echo "Error: no test specified" && exit 1'
},
dependencies: {
'cycle': '*'
diff --git a/deps/npm/test/tap/tagged-version-matching.js b/deps/npm/test/tap/tagged-version-matching.js
index 9d3f5f38e9..55dfb7b7c4 100644
--- a/deps/npm/test/tap/tagged-version-matching.js
+++ b/deps/npm/test/tap/tagged-version-matching.js
@@ -5,7 +5,6 @@ var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
var Symlink = Tacks.Symlink
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -16,7 +15,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend({
+ env: Object.assign({
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
@@ -46,24 +45,6 @@ var fixture = new Tacks(Dir({
'package.json': File({
_from: 'npm/example-gitdep',
_id: 'gitdep@1.0.0',
- _requested: {
- raw: 'gitdep@git://github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- scope: null,
- escapedName: 'gitdep',
- name: 'gitdep',
- rawSpec: 'git://github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- spec: 'git://github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- type: 'hosted',
- hosted: {
- type: 'github',
- ssh: 'git@github.com:npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- sshUrl: 'git+ssh://git@github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- httpsUrl: 'git+https://github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- gitUrl: 'git://github.com/npm/example-gitdep.git#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- shortcut: 'github:npm/example-gitdep#da39a3ee5e6b4b0d3255bfef95601890afd80709',
- directUrl: 'https://raw.githubusercontent.com/npm/example-gitdep/da39a3ee5e6b4b0d3255bfef95601890afd80709/package.json'
- }
- },
_resolved: 'github:npm/example-gitdep#da39a3ee5e6b4b0d3255bfef95601890afd80709',
name: 'gitdep',
version: '1.0.0'
@@ -74,15 +55,7 @@ var fixture = new Tacks(Dir({
_from: 'tagdep@latest',
_id: 'tagdep@1.0.0',
_integrity: 'sha1-0EJSKmsdk39848LlrRg/hZQo2B8=',
- _requested: {
- raw: 'tagdep@https://registry.example.com/tagdep/-/tagdep-1.0.0.tgz',
- scope: null,
- escapedName: 'tagdep',
- name: 'tagdep',
- rawSpec: 'https://registry.example.com/tagdep/-/tagdep-1.0.0.tgz',
- spec: 'https://registry.example.com/tagdep/-/tagdep-1.0.0.tgz',
- type: 'remote'
- },
+ _resolved: 'https://registry.example.com/tagdep/-/tagdep-1.0.0.tgz',
name: 'tagdep',
version: '1.0.0'
})
@@ -102,7 +75,7 @@ var fixture = new Tacks(Dir({
example: {
version: 'file:example',
requires: {
- tagdep: '1.0.0',
+ tagdep: '^1.0.0',
gitdep: 'github:npm/example-gitdep#da39a3ee5e6b4b0d3255bfef95601890afd80709'
}
},
diff --git a/deps/npm/test/tap/team.js b/deps/npm/test/tap/team.js
index b13fa86e8b..38caadde53 100644
--- a/deps/npm/test/tap/team.js
+++ b/deps/npm/test/tap/team.js
@@ -37,6 +37,30 @@ test('team create basic', function (t) {
})
})
+test('team create (allow optional @ prefix on scope)', function (t) {
+ var teamData = {
+ name: 'test',
+ scope_id: 1234,
+ created: '2015-07-23T18:07:49.959Z',
+ updated: '2015-07-23T18:07:49.959Z',
+ deleted: null
+ }
+ server.put('/-/org/myorg/team', JSON.stringify({
+ name: teamData.name
+ })).reply(200, teamData)
+ common.npm([
+ 'team', 'create', '@myorg:' + teamData.name,
+ '--registry', common.registry,
+ '--loglevel', 'silent'
+ ], {}, function (err, code, stdout, stderr) {
+ t.ifError(err, 'npm team')
+ t.equal(code, 0, 'exited OK')
+ t.equal(stderr, '', 'no error output')
+ t.same(JSON.parse(stdout), teamData)
+ t.end()
+ })
+})
+
test('team destroy', function (t) {
var teamData = {
name: 'myteam',
diff --git a/deps/npm/test/tap/test-run-ls.js b/deps/npm/test/tap/test-run-ls.js
index ea495879f3..9475695cb6 100644
--- a/deps/npm/test/tap/test-run-ls.js
+++ b/deps/npm/test/tap/test-run-ls.js
@@ -3,7 +3,7 @@ var test = require('tap').test
var path = require('path')
var cwd = path.resolve(__dirname, '..', '..')
var testscript = require('../../package.json').scripts.test
-var tsregexp = testscript.replace(/([\[\.\*\]])/g, '\\$1')
+var tsregexp = testscript.replace(/([[.*\]])/g, '\\$1')
test('default', function (t) {
common.npm(['run'], { cwd: cwd }, function (er, code, so) {
diff --git a/deps/npm/test/tap/unit-deps-earliestInstallable.js b/deps/npm/test/tap/unit-deps-earliestInstallable.js
index 538cfe6c09..8c5ca06ad8 100644
--- a/deps/npm/test/tap/unit-deps-earliestInstallable.js
+++ b/deps/npm/test/tap/unit-deps-earliestInstallable.js
@@ -2,6 +2,7 @@
var test = require('tap').test
var requireInject = require('require-inject')
var npa = require('npm-package-arg')
+var log = require('npmlog')
// we're just mocking to avoid having to call `npm.load`
var deps = requireInject('../../lib/install/deps.js', {
@@ -66,7 +67,7 @@ test('earliestInstallable should consider devDependencies', function (t) {
dep2a.parent = dep1
dep2.parent = pkg
- var earliest = earliestInstallable(dep1, dep1, dep2a.package)
+ var earliest = earliestInstallable(dep1, dep1, dep2a.package, log)
t.isDeeply(earliest, dep1, 'should hoist package when an incompatible devDependency is present')
t.end()
})
@@ -107,7 +108,7 @@ test('earliestInstallable should reuse shared prod/dev deps when they are identi
dep1.parent = pkg
dep2.parent = pkg
- var earliest = earliestInstallable(dep1, dep1, dep2.package)
+ var earliest = earliestInstallable(dep1, dep1, dep2.package, log)
t.isDeeply(earliest, pkg, 'should reuse identical shared dev/prod deps when installing both')
t.end()
})
diff --git a/deps/npm/test/tap/unit-token-validate-cidr.js b/deps/npm/test/tap/unit-token-validate-cidr.js
new file mode 100644
index 0000000000..db963c31f3
--- /dev/null
+++ b/deps/npm/test/tap/unit-token-validate-cidr.js
@@ -0,0 +1,19 @@
+'use strict'
+const test = require('tap').test
+const requireInject = require('require-inject')
+const validateCIDRList = requireInject('../../lib/token.js', {'../../lib/npm.js': {}})._validateCIDRList
+
+test('validateCIDRList', (t) => {
+ t.plan(10)
+ const single = ['127.0.0.0/24']
+ const double = ['127.0.0.0/24', '192.168.0.0/16']
+ const ipv6 = '2620:0:2d0:200::7/32'
+ const ipv6Mixed = ['127.0.0/24', '2620:0:2d0:200::7/32', '192.168.0.0/16']
+ t.doesNotThrow(() => t.isDeeply(validateCIDRList(single.join(',')), single), 'single string ipv4')
+ t.doesNotThrow(() => t.isDeeply(validateCIDRList(single), single), 'single array ipv4')
+ t.doesNotThrow(() => t.isDeeply(validateCIDRList(double.join(',')), double), 'double string ipv4')
+ t.doesNotThrow(() => t.isDeeply(validateCIDRList(double), double), 'double array ipv4')
+ t.throws(() => validateCIDRList(ipv6))
+ t.throws(() => validateCIDRList(ipv6Mixed))
+ t.done()
+})
diff --git a/deps/npm/test/tap/unsupported.js b/deps/npm/test/tap/unsupported.js
index 1a4ef61438..db604b3089 100644
--- a/deps/npm/test/tap/unsupported.js
+++ b/deps/npm/test/tap/unsupported.js
@@ -21,12 +21,15 @@ var versions = [
['v2.3.1', true, true],
['v3.0.0', true, true],
['v4.5.0', true, true],
- ['v4.8.4', false, false],
+ ['v4.8.4', false, true],
['v5.7.1', false, true],
['v6.8.1', false, false],
- ['v7.0.0-beta23', false, false],
- ['v7.2.3', false, false],
- ['v8.4.0', false, false]
+ ['v7.0.0-beta23', false, true],
+ ['v7.2.3', false, true],
+ ['v8.4.0', false, false],
+ ['v9.3.0', false, false],
+ ['v10.0.0-0', false, false],
+ ['v11.0.0-0', false, false]
]
test('versions', function (t) {
diff --git a/deps/npm/test/tap/update-examples.js b/deps/npm/test/tap/update-examples.js
index 532a67f386..8369d002fa 100644
--- a/deps/npm/test/tap/update-examples.js
+++ b/deps/npm/test/tap/update-examples.js
@@ -149,7 +149,7 @@ test('setup', function (t) {
t.pass('mock registry active')
npm.load({ cache: CACHE_DIR,
registry: common.registry,
- cwd: PKG_DIR }, function (err) {
+ cwd: PKG_DIR }, function (err) {
t.ifError(err, 'started server')
mockServer = server
diff --git a/deps/npm/test/tap/upgrade-lifecycles.js b/deps/npm/test/tap/upgrade-lifecycles.js
index f15fe0038e..0d0b8da616 100644
--- a/deps/npm/test/tap/upgrade-lifecycles.js
+++ b/deps/npm/test/tap/upgrade-lifecycles.js
@@ -4,7 +4,6 @@ var test = require('tap').test
var Tacks = require('tacks')
var File = Tacks.File
var Dir = Tacks.Dir
-var extend = Object.assign || require('util')._extend
var common = require('../common-tap.js')
var basedir = path.join(__dirname, path.basename(__filename, '.js'))
@@ -15,7 +14,7 @@ var tmpdir = path.join(basedir, 'tmp')
var conf = {
cwd: testdir,
- env: extend({
+ env: Object.assign({
npm_config_cache: cachedir,
npm_config_tmp: tmpdir,
npm_config_prefix: globaldir,
diff --git a/deps/npm/test/tap/version-consistent-newlines.js b/deps/npm/test/tap/version-consistent-newlines.js
new file mode 100644
index 0000000000..11020b2a70
--- /dev/null
+++ b/deps/npm/test/tap/version-consistent-newlines.js
@@ -0,0 +1,91 @@
+'use strict'
+
+const common = require('../common-tap.js')
+const test = require('tap').test
+const npm = require('../../')
+const osenv = require('osenv')
+const path = require('path')
+const fs = require('fs')
+const mkdirp = require('mkdirp')
+const rimraf = require('rimraf')
+const requireInject = require('require-inject')
+
+const pkg = path.resolve(__dirname, 'version-no-git')
+const cache = path.resolve(pkg, 'cache')
+const gitDir = path.resolve(pkg, '.git')
+
+test('npm version does not alter the line endings in package.json (LF)', function (t) {
+ setup('\n')
+
+ npm.load({cache: cache, registry: common.registry}, function () {
+ const version = requireInject('../../lib/version', {
+ which: function (cmd, cb) {
+ process.nextTick(function () {
+ cb(new Error('ENOGIT!'))
+ })
+ }
+ })
+
+ version(['patch'], function (err) {
+ if (!t.error(err)) return t.end()
+
+ const pkgPath = path.resolve(pkg, 'package.json')
+ const pkgStr = fs.readFileSync(pkgPath, 'utf8')
+
+ t.match(pkgStr, '\n')
+ t.notMatch(pkgStr, '\r')
+
+ t.end()
+ })
+ })
+})
+
+test('npm version does not alter the line endings in package.json (CRLF)', function (t) {
+ setup('\r\n')
+
+ npm.load({cache: cache, registry: common.registry}, function () {
+ const version = requireInject('../../lib/version', {
+ which: function (cmd, cb) {
+ process.nextTick(function () {
+ cb(new Error('ENOGIT!'))
+ })
+ }
+ })
+
+ version(['patch'], function (err) {
+ if (!t.error(err)) return t.end()
+
+ const pkgPath = path.resolve(pkg, 'package.json')
+ const pkgStr = fs.readFileSync(pkgPath, 'utf8')
+
+ t.match(pkgStr, '\r\n')
+ t.notMatch(pkgStr, /[^\r]\n/)
+
+ t.end()
+ })
+ })
+})
+
+test('cleanup', function (t) {
+ process.chdir(osenv.tmpdir())
+
+ rimraf.sync(pkg)
+ t.end()
+})
+
+function setup (lineEnding) {
+ mkdirp.sync(pkg)
+ mkdirp.sync(cache)
+ mkdirp.sync(gitDir)
+ fs.writeFileSync(
+ path.resolve(pkg, 'package.json'),
+ JSON.stringify({
+ author: 'Terin Stock',
+ name: 'version-no-git-test',
+ version: '0.0.0',
+ description: "Test for npm version if git binary doesn't exist"
+ }, null, 2).replace(/\n/g, lineEnding),
+ 'utf8'
+ )
+ process.chdir(pkg)
+}
diff --git a/deps/npm/test/tap/view.js b/deps/npm/test/tap/view.js
index 371e1d922d..30ccdb471c 100644
--- a/deps/npm/test/tap/view.js
+++ b/deps/npm/test/tap/view.js
@@ -111,8 +111,7 @@ test('npm view .', function (t) {
], { cwd: t2dir }, function (err, code, stdout) {
t.ifError(err, 'view command finished successfully')
t.equal(code, 0, 'exit ok')
- var re = new RegExp("name: 'test-repo-url-https'")
- t.similar(stdout, re)
+ t.matches(stdout, /test-repo-url-https/, 'has the right package')
t.end()
})
})
@@ -217,8 +216,7 @@ test('npm view <package name>', function (t) {
], { cwd: t2dir }, function (err, code, stdout) {
t.ifError(err, 'view command finished successfully')
t.equal(code, 0, 'exit ok')
- var re = new RegExp("name: 'underscore'")
- t.similar(stdout, re, 'should have name `underscore`')
+ t.matches(stdout, /underscore/, 'should have name `underscore`')
t.end()
})
})
@@ -232,8 +230,7 @@ test('npm view <package name> --global', function (t) {
], { cwd: t2dir }, function (err, code, stdout) {
t.ifError(err, 'view command finished successfully')
t.equal(code, 0, 'exit ok')
- var re = new RegExp("name: 'underscore'")
- t.similar(stdout, re, 'should have name `underscore`')
+ t.matches(stdout, /underscore/, 'should have name `underscore`')
t.end()
})
})
@@ -370,7 +367,7 @@ test('npm view with valid but non existent package name', function (t) {
t.equal(code, 1, 'exit not ok')
t.similar(stderr,
- new RegExp("'valid-but-non-existent-package' is not in the npm registry\."),
+ new RegExp("'valid-but-non-existent-package' is not in the npm registry\\."),
'Package should NOT be found')
t.similar(stderr, new RegExp('use the name yourself!'),